@stackbone/sdk 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../libs/sdk/src/config.ts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/index.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/parse.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/regexes.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/doc.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/index.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ar.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/az.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/be.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/bg.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ca.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/cs.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/da.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/de.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/en.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/eo.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/es.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fa.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fi.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fr.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fr-CA.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/he.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/hu.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/hy.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/id.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/is.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/it.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ja.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ka.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/km.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/kh.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ko.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/lt.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/mk.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ms.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/nl.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/no.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ota.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ps.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/pl.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/pt.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ru.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/sl.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/sv.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ta.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/th.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/tr.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/uk.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ua.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ur.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/uz.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/vi.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/zh-CN.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/zh-TW.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/yo.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/api.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema-processors.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema-generator.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/schemas.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/checks.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/iso.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/errors.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/parse.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/compat.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/from-json-schema.js","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/coerce.js","../../../libs/validators/src/lib/common/json-object.ts","../../../libs/validators/src/lib/organizations/organizations.ts","../../../libs/validators/src/lib/agents/installations.ts","../../../libs/validators/src/lib/agents/agents.ts","../../../libs/validators/src/lib/agents/approvals.ts","../../../libs/validators/src/lib/agents/contract.ts","../../../libs/validators/src/lib/agents/runs.ts","../../../libs/validators/src/lib/auth/session.ts","../../../libs/validators/src/lib/billing/billing.ts","../../../libs/validators/src/lib/dev-tunnel/dev-tunnel.ts","../../../libs/validators/src/lib/organizations/members.ts","../../../libs/validators/src/lib/organizations/invitations.ts","../../../libs/validators/src/lib/studio/studio-config.ts","../../../libs/validators/src/lib/studio/studio-db.ts","../../../libs/validators/src/lib/studio/studio-queues.ts","../../../libs/validators/src/lib/studio/studio-rag.ts","../../../libs/validators/src/lib/studio/studio-secrets.ts","../../../libs/validators/src/lib/studio/studio-storage.ts","../../../libs/sdk/src/result.ts","../../../libs/sdk/src/contract/contract-handshake.ts","../../../libs/sdk/src/contract/capability-registry.ts","../../../libs/sdk/src/contract/module-gate.ts","../../../libs/sdk/src/facades/approval/tool.ts","../../../libs/sdk/src/facades/approval/verify.ts","../../../libs/sdk/src/facades/approval/approval.ts","../../../libs/sdk/src/facades/config/config.ts","../../../libs/sdk/src/facades/connections/connections.ts","../../../libs/sdk/src/facades/events/events.ts","../../../libs/sdk/src/facades/prompts/prompts.ts","../../../libs/sdk/src/facades/secrets/secrets.ts","../../../libs/sdk/src/lib/http-client.ts","../../../libs/sdk/src/modules/ai/ai.ts","../../../libs/sdk/src/modules/database/lazy-client.ts","../../../libs/sdk/src/modules/database/internal.ts","../../../libs/sdk/src/modules/database/database.ts","../../../libs/sdk/src/modules/memory/memory.ts","../../../libs/sdk/src/observability/aggregate-run-cost.ts","../../../libs/sdk/src/observability/logger.ts","../../../libs/sdk/src/observability/run-steps-exporter.ts","../../../libs/sdk/src/modules/observability/observability.ts","../../../libs/sdk/src/modules/queues/queues.ts","../../../libs/sdk/src/modules/rag/chunker.ts","../../../libs/sdk/src/modules/rag/embedder.ts","../../../libs/sdk/src/modules/rag/jobs.ts","../../../libs/sdk/src/modules/rag/parser.ts","../../../libs/sdk/src/modules/rag/sql.ts","../../../libs/sdk/src/modules/rag/pipeline.ts","../../../libs/sdk/src/modules/rag/rag.ts","../../../libs/sdk/src/modules/storage/storage.ts","../../../libs/sdk/src/client.ts"],"names":["resolveConfig","config","Object","freeze","env","process","_default","base64","base64url","bigint","boolean","_catch","cidrv4","cidrv6","core_exports","cuid","cuid2","date","decode","decodeAsync","describe","e164","email","emoji","encode","encodeAsync","_enum","guid","hex","hostname","ipv4","ipv6","ksuid","mac","meta","nanoid","_null","nullish","number","parse","parseAsync","safeDecode","safeDecodeAsync","safeEncode","safeEncodeAsync","safeParse","safeParseAsync","string","ulid","_undefined","uuid","_void","xid","_emoji","NEVER","status","$constructor","name","initializer","params","init","inst","def","_zod","defineProperty","value","constr","_","traits","Set","enumerable","has","add","proto","prototype","keys","i","length","k","bind","Parent","Definition","_a","deferred","fn","Symbol","hasInstance","$brand","$ZodAsyncError","Error","$ZodEncodeError","globalConfig","newConfig","assign","assertEqual","val","assertNotEqual","assertIs","_arg","assertNever","_x","assert","getEnumValues","entries","numericValues","values","filter","v","indexOf","map","joinValues","array","separator","stringifyPrimitive","join","jsonStringifyReplacer","toString","cached","getter","input","undefined","cleanRegex","source","start","startsWith","end","endsWith","slice","floatSafeRemainder","step","valDecCount","split","stepString","stepDecCount","test","match","Number","parseInt","decCount","valInt","toFixed","replace","stepInt","EVALUATING","defineLazy","object","key","get","set","configurable","objectClone","obj","create","getPrototypeOf","getOwnPropertyDescriptors","assignProp","target","prop","writable","mergeDefs","defs","mergedDescriptors","descriptors","defineProperties","cloneDef","schema","getElementAtPath","path","reduce","acc","promiseAllObject","promisesObj","promises","Promise","all","then","results","resolvedObj","randomString","chars","str","Math","floor","random","esc","JSON","stringify","slugify","toLowerCase","trim","captureStackTrace","_args","isObject","data","Array","isArray","allowsEval","navigator","userAgent","includes","F","Function","isPlainObject","o","ctor","prot","hasOwnProperty","call","shallowClone","numKeys","keyCount","getParsedType","t","isNaN","catch","Map","Date","File","propertyKeyTypes","primitiveTypes","escapeRegex","clone","cl","parent","normalizeParams","_params","error","message","createTransparentProxy","Proxy","receiver","Reflect","deleteProperty","ownKeys","getOwnPropertyDescriptor","descriptor","optionalKeys","shape","optin","optout","NUMBER_FORMAT_RANGES","safeint","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","int32","uint32","float32","float64","MAX_VALUE","BIGINT_FORMAT_RANGES","int64","BigInt","uint64","pick","mask","currDef","checks","hasChecks","newShape","omit","extend","existingShape","_shape","safeExtend","merge","a","b","catchall","partial","Class","oldShape","type","innerType","required","aborted","x","startIndex","issues","continue","prefixIssues","iss","unshift","unwrapMessage","finalizeIssue","ctx","full","customError","localeError","reportInput","getSizableOrigin","getLengthableOrigin","parsedType","issue","args","code","cleanEnum","el","base64ToUint8Array","binaryString","atob","bytes","Uint8Array","charCodeAt","uint8ArrayToBase64","String","fromCharCode","btoa","base64urlToUint8Array","padding","repeat","uint8ArrayToBase64url","hexToUint8Array","cleanHex","uint8ArrayToHex","from","padStart","$ZodError","$ZodRealError","flattenError","mapper","fieldErrors","formErrors","sub","push","formatError","_errors","processError","errors","curr","terminal","treeifyError","result","_b","fullpath","properties","items","toDotPath","_path","segs","seg","prettifyError","lines","sort","_parse","_Err","_ctx","async","run","e","Err","util","callee","_parseAsync","_safeParse","success","_safeParseAsync","_encode","direction","_decode","_encodeAsync","_decodeAsync","_safeEncode","_safeDecode","_safeEncodeAsync","_safeDecodeAsync","duration","extendedDuration","version","RegExp","uuid4","uuid6","uuid7","html5Email","rfc5322Email","unicodeEmail","idnEmail","browserEmail","delimiter","escapedDelim","domain","dateSource","timeSource","hhmm","regex","precision","time","datetime","opts","local","offset","timeRegex","minimum","maximum","integer","lowercase","uppercase","fixedBase64","bodyLength","fixedBase64url","md5_hex","md5_base64","md5_base64url","sha1_hex","sha1_base64","sha1_base64url","sha256_hex","sha256_base64","sha256_base64url","sha384_hex","sha384_base64","sha384_base64url","sha512_hex","sha512_base64","sha512_base64url","$ZodCheck","onattach","numericOriginMap","$ZodCheckLessThan","origin","bag","inclusive","exclusiveMaximum","POSITIVE_INFINITY","check","payload","getTime","abort","$ZodCheckGreaterThan","exclusiveMinimum","NEGATIVE_INFINITY","$ZodCheckMultipleOf","multipleOf","isMultiple","divisor","$ZodCheckNumberFormat","format","isInt","pattern","isInteger","expected","isSafeInteger","note","$ZodCheckBigIntFormat","$ZodCheckMaxSize","when","size","$ZodCheckMinSize","$ZodCheckSizeEquals","tooBig","exact","$ZodCheckMaxLength","$ZodCheckMinLength","$ZodCheckLengthEquals","$ZodCheckStringFormat","patterns","lastIndex","$ZodCheckRegex","$ZodCheckLowerCase","$ZodCheckUpperCase","$ZodCheckIncludes","escapedRegex","position","$ZodCheckStartsWith","prefix","$ZodCheckEndsWith","suffix","handleCheckPropertyResult","property","$ZodCheckProperty","$ZodCheckMimeType","mimeSet","mime","$ZodCheckOverwrite","tx","Doc","content","indent","indented","write","arg","execution","minIndent","min","trimStart","dedented","line","compile","major","minor","patch","$ZodType","ch","runChecks","isAborted","asyncResult","shouldRun","currLen","resolve","nextLen","handleCanaryResult","canary","checkResult","skipChecks","validate","r","vendor","$ZodString","pop","coerce","$ZodStringFormat","$ZodGUID","$ZodUUID","versionMap","v1","v2","v3","v4","v5","v6","v7","v8","$ZodEmail","$ZodURL","trimmed","url","URL","protocol","normalize","href","$ZodEmoji","$ZodNanoID","$ZodCUID","$ZodCUID2","$ZodULID","$ZodXID","$ZodKSUID","$ZodISODateTime","$ZodISODate","$ZodISOTime","$ZodISODuration","$ZodIPv4","$ZodIPv6","$ZodMAC","$ZodCIDRv4","$ZodCIDRv6","parts","address","prefixNum","isValidBase64","$ZodBase64","contentEncoding","isValidBase64URL","c","padded","padEnd","ceil","$ZodBase64URL","$ZodE164","isValidJWT","token","algorithm","tokensParts","header","parsedHeader","typ","alg","$ZodJWT","$ZodCustomStringFormat","$ZodNumber","isFinite","received","$ZodNumberFormat","$ZodBoolean","Boolean","$ZodBigInt","$ZodBigIntFormat","$ZodSymbol","$ZodUndefined","$ZodNull","null","$ZodAny","$ZodUnknown","$ZodNever","$ZodVoid","$ZodDate","_err","isDate","isValidDate","handleArrayResult","final","index","$ZodArray","proms","item","element","handlePropertyResult","isOptionalOut","normalizeDef","okeys","keySet","handleCatchall","unrecognized","_catchall","$ZodObject","desc","sh","newSh","_normalized","propValues","field","$ZodObjectJIT","superParse","generateFastpass","doc","normalized","parseStr","ids","counter","id","fastpass","jit","jitless","fastEnabled","handleUnionResults","nonaborted","$ZodUnion","options","some","every","flatMap","option","p","single","first","handleExclusiveUnionResults","successes","$ZodXor","$ZodDiscriminatedUnion","_super","pv","disc","discriminator","opt","unionFallback","$ZodIntersection","left","right","handleIntersectionResults","mergeValues","valid","bKeys","sharedKeys","newObj","sharedValue","mergeErrorPath","newArray","itemA","itemB","unrecKeys","unrecIssue","l","bothKeys","f","merged","$ZodTuple","reversedIndex","reverse","findIndex","optStart","rest","tooSmall","handleTupleResult","$ZodRecord","keyType","recordKeys","valueType","keyResult","checkNumericKey","retryResult","mode","$ZodMap","valueResult","handleMapResult","$ZodSet","handleSetResult","$ZodEnum","valuesSet","$ZodLiteral","$ZodFile","$ZodTransform","_out","transform","output","handleOptionalResult","$ZodOptional","$ZodExactOptional","$ZodNullable","$ZodDefault","defaultValue","handleDefaultResult","$ZodPrefault","$ZodNonOptional","handleNonOptionalResult","$ZodSuccess","$ZodCatch","catchValue","$ZodNaN","$ZodPipe","in","out","handlePipeResult","next","$ZodCodec","handleCodecAResult","transformed","handleCodecTxResult","reverseTransform","nextSchema","$ZodReadonly","handleReadonlyResult","$ZodTemplateLiteral","regexParts","part","shift","$ZodFunction","_def","implement","func","parsedArgs","apply","implementAsync","hasPromiseOutput","$ZodPromise","inner","$ZodLazy","$ZodCustom","handleRefineResult","_iss","Sizable","unit","verb","file","getSizing","FormatDictionary","uuidv4","uuidv6","json_string","jwt","template_literal","TypeDictionary","nan","receivedType","adj","sizing","_issue","getBelarusianPlural","count","one","few","many","absCount","abs","lastDigit","lastTwoDigits","maxValue","minValue","invalid_adj","function","symbol","record","tuple","enum","union","literal","promise","void","never","unknown","any","subject","int","TypeNames","label","gender","NaN","shortLabel","longLabel","typeEntry","typeLabel","withDefinite","verbFor","ends_with","starts_with","expectedKey","stringified","lastValue","restValues","comparison","be","singularPhrase","nounEntry","noun","adjective","place","getArmenianPlural","withDefiniteArticle","word","vowels","lastChar","km","capitalizeFirstCharacter","text","charAt","toUpperCase","getUnitTypeFromNumber","last","last2","smaller","notInclusive","bigger","unitType","targetShouldBe","longName","shortName","getRussianPlural","uk","$output","$input","$ZodRegistry","_map","WeakMap","_idmap","_meta","clear","remove","delete","pm","registry","globalThis","__zod_globalRegistry","globalRegistry","_string","_coercedString","_email","_guid","_uuid","_uuidv4","_uuidv6","_uuidv7","_url","_nanoid","_cuid","_cuid2","_ulid","_xid","_ksuid","_ipv4","_ipv6","_mac","_cidrv4","_cidrv6","_base64","_base64url","_e164","_jwt","TimePrecision","Any","Minute","Second","Millisecond","Microsecond","_isoDateTime","_isoDate","_isoTime","_isoDuration","_number","_coercedNumber","_int","_float32","_float64","_int32","_uint32","_boolean","_coercedBoolean","_bigint","_coercedBigint","_int64","_uint64","_symbol","_any","_unknown","_never","_date","_coercedDate","_nan","_lt","_lte","_gt","_gte","_positive","_negative","_nonpositive","_nonnegative","_multipleOf","_maxSize","_minSize","_size","_maxLength","_minLength","_length","_regex","_lowercase","_uppercase","_includes","_startsWith","_endsWith","_property","_mime","types","_overwrite","_normalize","form","_trim","_toLowerCase","_toUpperCase","_slugify","_array","_union","_xor","_discriminatedUnion","_intersection","_tuple","_paramsOrRest","hasRest","_record","_set","fromEntries","_nativeEnum","_literal","_file","_transform","_optional","_nullable","_nonoptional","_success","_pipe","in_","_readonly","_templateLiteral","_lazy","_promise","_custom","norm","_refine","_superRefine","_check","addIssue","fatal","description","existing","registries","metadata","_stringbool","Classes","truthyArray","truthy","falsyArray","falsy","case","truthySet","falsySet","_Codec","Codec","_Boolean","_String","stringSchema","booleanSchema","codec","_payload","_stringFormat","fnOrRegex","initializeContext","processors","metadataRegistry","unrepresentable","override","io","seen","cycles","reused","external","schemaPath","isCycle","cycle","overrideSchema","toJSONSchema","processJSONSchema","_json","processor","ref","isParent","isTransforming","examples","default","_prefault","_result","extractDefs","root","idToSchema","entry","makeURI","defsSegment","externalId","uriGenerator","uri","defId","uriPrefix","defUriPrefix","extractToDef","$ref","ext","finalize","flattenRef","zodSchema","_cached","refSeen","refSchema","allOf","isParentRef","parentSeen","jsonSchema","$schema","$id","$defs","definitions","finalized","createStandardJSONSchemaMethod","_schema","createToJSONSchemaMethod","libraryOptions","formatMap","stringProcessor","json","minLength","maxLength","regexes","numberProcessor","booleanProcessor","bigintProcessor","symbolProcessor","nullProcessor","nullable","undefinedProcessor","voidProcessor","neverProcessor","not","anyProcessor","unknownProcessor","dateProcessor","enumProcessor","literalProcessor","vals","const","nanProcessor","templateLiteralProcessor","fileProcessor","contentMediaType","anyOf","m","successProcessor","customProcessor","functionProcessor","transformProcessor","mapProcessor","setProcessor","arrayProcessor","minItems","maxItems","objectProcessor","allKeys","requiredKeys","additionalProperties","unionProcessor","isExclusive","oneOf","intersectionProcessor","isSimpleIntersection","tupleProcessor","prefixPath","restPath","prefixItems","additionalItems","recordProcessor","keyBag","valueSchema","patternProperties","propertyNames","keyValues","validKeyValues","nullableProcessor","nonoptionalProcessor","defaultProcessor","prefaultProcessor","catchProcessor","pipeProcessor","readonlyProcessor","readOnly","promiseProcessor","optionalProcessor","lazyProcessor","allProcessors","custom","intersection","nonoptional","prefault","pipe","readonly","optional","lazy","schemas","__shared","JSONSchemaGenerator","normalizedTarget","emit","plainResult","schemas_exports","checks_exports","ZodISODateTime","core","ZodStringFormat","ZodISODate","ZodISOTime","ZodISODuration","flatten","addIssues","isEmpty","ZodError","ZodRealError","ZodType","with","brand","register","reg","spa","refine","superRefine","refinement","overwrite","exactOptional","or","and","isOptional","isNullable","_ZodString","max","nonempty","ZodString","ZodEmail","ZodURL","ZodJWT","ZodEmoji","ZodGUID","ZodUUID","uuidv7","ZodNanoID","ZodCUID","ZodCUID2","ZodULID","ZodBase64","ZodBase64URL","ZodXID","ZodKSUID","ZodIPv4","ZodIPv6","ZodCIDRv4","ZodCIDRv6","ZodE164","httpUrl","ZodMAC","ZodCustomStringFormat","stringFormat","hash","enc","ZodNumber","gt","gte","lt","lte","safe","positive","nonnegative","negative","nonpositive","finite","ZodNumberFormat","ZodBoolean","ZodBigInt","ZodBigIntFormat","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","ZodDate","minDate","maxDate","ZodArray","len","unwrap","keyof","ZodObject","passthrough","loose","strict","strip","incoming","other","ZodOptional","ZodNonOptional","strictObject","looseObject","ZodUnion","ZodXor","xor","ZodDiscriminatedUnion","discriminatedUnion","ZodIntersection","ZodTuple","ZodRecord","partialRecord","looseRecord","ZodMap","ZodSet","ZodEnum","extract","newEntries","exclude","nativeEnum","ZodLiteral","ZodFile","ZodTransform","ZodExactOptional","ZodNullable","ZodDefault","removeDefault","ZodPrefault","ZodSuccess","ZodCatch","removeCatch","ZodNaN","ZodPipe","ZodCodec","ZodReadonly","ZodTemplateLiteral","templateLiteral","ZodLazy","ZodPromise","ZodFunction","_function","ZodCustom","_instanceof","cls","stringbool","preprocess","ZodIssueCode","invalid_type","too_big","too_small","invalid_format","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","invalid_value","setErrorMap","getErrorMap","ZodFirstPartyTypeKind","z","_schemas","_checks","iso","_iso","RECOGNIZED_KEYS","detectVersion","defaultTarget","resolveRef","rootSchema","defsKey","convertBaseSchema","unevaluatedItems","unevaluatedProperties","if","else","dependentSchemas","dependentRequired","refPath","refs","processing","resolved","convertSchema","enumValues","literalSchemas","typeSchemas","typeSchema","numberSchema","requiredSet","propSchema","propZodSchema","keySchema","objectSchema","recordSchema","patternProps","patternKeys","looseRecords","patternValue","schemasToIntersect","tupleItems","arraySchema","baseSchema","hasExplicitType","s","anyOfUnion","oneOfUnion","startIdx","extraMeta","coreMetadataKeys","contentMetadataKeys","fromJSONSchema","en","jsonObject","SLUG_REGEX","organizationSlugSchema","agentSlugSchema","slug","createdAt","updatedAt","tier","installationStatusSchema","installationKindSchema","installationProviderSchema","installationEventTypeSchema","agentId","agentVersion","installationResponseSchema","organizationId","kind","localTunnelUrl","lastActiveAt","createdByUserId","creatorOrganizationSlug","agentTemplateSlug","endUserOrganizationSlug","organizationSlug","agentSlug","installationId","ownerOrgSlug","templateSlug","templateOwnerOrgSlug","templateVersion","templateName","creatorOrganizationId","endUserOrganizationId","DEFAULT_RAG_EMBEDDING_MODEL","agentManifestRagSchema","embeddingModel","autoMigrate","agentManifestProtocolSchema","apiVersion","runtime","engine","database","migrations","dev","rag","approvalStatusSchema","approvalFallbackSchema","approvalOnTimeoutSchema","topic","title","onDecide","timeout","onTimeout","approver","idempotencyKey","approvalId","callbackUrl","expiresAt","approvalSchema","workspaceId","runId","requestedByStepId","fallback","timeoutAt","decidedAt","approvalDecisionSchema","actorUserId","actorEmail","decision","editedPayload","comment","nextCursor","prevCursor","decisions","approval","cursor","limit","order","runStepSchema","parentStepId","startedAt","finishedAt","durationMs","stack","around","window","MIN_SUPPORTED_CONTRACT_VERSION","CAPABILITIES","MODULE_CAPABILITIES","queues","events","secrets","storage","ai","contractBuildNameSchema","contractResponseSchema","minSupported","capabilities","build","requireVersion","contract","detected","requireCapability","capability","versionCheck","available","runStatusSchema","runTriggerSchema","runSchema","trigger","costEstimatedUsd","traceId","isPlayground","to","q","response","body","fixtureSchema","sessionUserSchema","emailVerified","user","session","tierSchema","tierResourceUsageSchema","usage","tierUsageBreakdownSchema","agents","agent_templates","members","pending_invitations","tierCreditsSchema","creditsEurPerMonth","usedEurThisPeriod","periodEnd","credits","stripePortalAvailable","agentsPaused","tierQuotaResourceSchema","statusCode","resource","currentTier","upgradeUrl","targetTier","downgradeBlockingResourceSchema","current","targetLimit","blockingResources","DEV_TUNNEL_GRANT_MAX_TTL_SECONDS","ttlSeconds","subdomain","relayHost","relayPort","frpcToken","memberRoleSchema","updateMemberRoleSchema","memberResponseSchema","userId","role","joinedAt","toUserId","invitationRoleSchema","invitationResponseSchema","invitedByUserId","invitedByEmail","studioAgentConfigSchema","updatedBy","previousValue","unchanged","studioAgentConfigVersionSchema","rolledBackFrom","createdByEmail","PG_IDENTIFIER_REGEX","dbIdentifierSchema","dbColumnSchema","data_type","is_nullable","is_primary_key","ordinal_position","dbTableSummarySchema","estimated_rows","dbSchemaListItemSchema","tables","table","sql","columns","rows","truncated","duration_ms","next_cursor","cursor_column","queueKindSchema","jobStatusSchema","queueSummarySchema","is_dlq","pending","in_flight","archived","jobSchema","queue","attempts","enqueued_at","next_visible_at","archived_at","msgId","STUDIO_RAG_DOCS_LIMIT_DEFAULT","STUDIO_RAG_DOCS_LIMIT_MAX","STUDIO_RAG_TOPK_DEFAULT","STUDIO_RAG_TOPK_MAX","STUDIO_RAG_JOBS_LIMIT_DEFAULT","STUDIO_RAG_JOBS_LIMIT_MAX","STUDIO_RAG_COLLECTION_REGEX","ragCollectionNameParamSchema","ragDistanceSchema","ragIndexKindSchema","ragCollectionSchema","dimensions","distance","index_kind","chunk_count","doc_count","last_ingested_at","ragDocumentSchema","namespace","chunks_count","preview","first_seen_at","last_seen_at","ragFilterSchema","embedding","model","topK","ragQueryHitSchema","chunk_idx","score","embedded_with","ragJobStatusSchema","ragJobSchema","collection","created_at","finished_at","jobId","STUDIO_SECRET_NAME_REGEX","STUDIO_SECRET_VALUE_MAX_BYTES","STUDIO_SECRET_DESCRIPTION_MAX","studioSecretNameParamSchema","studioSecretSchema","value_preview","created_by_email","last_rotated_at","secret","challenge_id","expires_at","STUDIO_STORAGE_LIST_LIMIT_DEFAULT","STUDIO_STORAGE_LIST_LIMIT_MAX","STUDIO_STORAGE_PRESIGN_TTL_MAX_SECONDS","STUDIO_STORAGE_PRESIGN_TTL_DEFAULT_SECONDS","STUDIO_STORAGE_BUCKET_REGEX","studioStorageBucketKindSchema","studioStorageBucketSchema","studioStorageObjectSchema","content_type","last_modified","etag","common_prefixes","ttl_seconds","ok","err","notImplemented","scope","cache","debugLogged","lastResolved","CONTRACT_PATH","ContractHandshake","baseUrl","reason","normaliseBaseUrl","ttl","readTtlMs","now","fetchImpl","fetch","performHandshake","maybeLogDebug","gatingEnabled","peek","__resetForTests","method","cause","cancel","parsed","host","raw","n","console","warn","assertCapability","module","warnedKeys","createModuleGate","stackboneApiUrl","handshake","resolveContract","agentFloor","protocolRequired","gateError","createApprovalTool","facade","spec","parameters","openaiSpec","invoke","resolveGate","needsApproval","requestOpts","toRequest","requested","request","execute","tool","SIGNATURE_HEADER","DEFAULT_TOLERANCE_SECONDS","HEX_RE","verifyCallback","signingKey","resolveSigningKey","headers","parseHeader","tolerance","toleranceSeconds","deltaSeconds","timestamp","FUTURE_DRIFT_TOLERANCE_SECONDS","rawBody","readRawBody","computeHmac","constantTimeEqual","signature","isDecision","approvalSigningKey","eqIdx","ENCODER","TextEncoder","crypto","subtle","importKey","sign","Buffer","mismatch","DECISION_STATUSES","ApprovalFacade","_gate","_resolved","_http","gate","validation","validateRequest","gateResult","post","encodeURIComponent","list","pickDefinedAsStrings","verify","ConfigFacade","remapNotFound","getMany","ConnectionsFacade","EventsFacade","_name","PromptsFacade","_options","_variables","_request","update","SecretsFacade","names","RETRYABLE_STATUS","IDEMPOTENT_METHODS","HttpClient","retryCount","retryDelay","withBody","put","resolveApiUrl","buildUrl","canRetry","idempotent","maxAttempts","requestHeaders","Headers","resolveAgentJwt","resolveInstallationId","serializeBody","lastError","attempt","sleepWithSignal","computeBackoff","signal","composeSignal","_rawBody","_callerSignal","_idempotent","_headers","statusText","parseResponse","sdkErr","mapFetchError","base","pow","jitter","round","agentJwt","searchParams","append","FormData","ArrayBuffer","isView","contentType","codeForStatus","timeoutMs","callerSignal","controller","AbortController","timer","setTimeout","onCallerAbort","addEventListener","once","clearTimeout","removeEventListener","ms","reject","onAbort","AiModule","_openai","_chat","_embeddings","_images","_models","clientOverride","chat","completions","ChatCompletionsNamespace","client","embeddings","EmbeddingsNamespace","images","ImagesNamespace","models","ModelsNamespace","apiKey","resolveApiKey","missingKeyError","OpenAI","baseURL","resolveBaseUrl","defaultHeaders","STACKBONE_DEFAULT_HEADERS","_getClient","wrapCall","generate","messages","prompt","modalities","imageConfig","image_config","completion","extractImages","created","clientResult","Authorization","mapApiError","OPENROUTER_DEFAULT_BASE_URL","OPENROUTER_KEY_MISSING_MESSAGE","openrouterKey","openrouterBaseUrl","getClient","DATA_URL_RE","choices","rawImages","img","image_url","exec","mimeType","b64Json","APIError","APIUserAbortError","APIConnectionTimeoutError","APIConnectionError","createDrizzleClient","connectionString","postgres","drizzle","cachedHandle","getDatabaseHandle","DatabaseNotConfiguredError","DATABASE_NOT_CONFIGURED_MESSAGE","POOL_TERMINATED_ERROR_CODES","isPoolTerminatedError","runWithColdStartRetry","firstAttempt","retryAttempt","stderr","withColdStartRetry","assertGate","GateBlockedError","sdkError","createRetriableQueryBuilder","seed","rootCall","buildProxy","steps","replayChain","_t","cb","finally","_this","TypeError","retriable","DatabaseModule","query","select","h","insert","transaction","MemoryModule","_content","search","_query","_memoryId","deleteAll","history","endSession","_sessionId","SQL","aggregateRunCost","unsafe","row","cost_estimated_usd","num","LOG_LEVELS","trace","debug","info","DEFAULT_BATCH_SIZE","DEFAULT_INTERVAL_MS","DEFAULT_HTTP_TIMEOUT_MS","createPlatformLogger","otelEndpoint","baseBindings","run_id","destination","OtlpHttpDestination","endpoint","resourceAttributes","httpTimeoutMs","flushBatchSize","flushIntervalMs","JsonlFileDestination","runsDir","defaultRunsDir","appendFileImpl","mkdirImpl","buildLogger","writeAt","level","msgOrObj","msg","levelNumber","child","bindings","flush","close","appendFile","mkdir","inFlight","dirReady","d","recursive","dirname","buffer","closed","armTimer","drained","splice","disarmTimer","unref","records","buildOtlpLogsBody","resp","SDK_SCOPE","resourceLogs","attributes","toOtlpAttributes","scopeLogs","logRecords","toOtlpLogRecord","timeUnixNano","severityNumber","severityText","stringValue","toOtlpAttributesFromUnknown","attrs","intValue","doubleValue","boolValue","homedir","RUN_STEP_TYPES","STEP_TYPE_ATTRIBUTE","RUN_ID_ATTRIBUTE","NAME_PREFIX_MAP","RunStepsSpanProcessor","stepIdBySpanId","batchSize","intervalMs","resolveStepType","newId","ownsSql","defaultStepTypeResolver","randomUUID","onStart","span","spanId","spanContext","onEnd","buildRow","forceFlush","shutdown","readString","stepId","parentSpanId","parentSpanContext","formatHrTime","startTime","endTime","hrTimeToMs","diffHrTime","isError","parent_step_id","serialisablePayload","started_at","writeBatch","ensureSql","mod","placeholders","explicit","hr","toISOString","seconds","nanos","ObservabilityModule","_processor","_loggers","_sql","_sqlResolved","spanProcessor","databaseUrl","logger","otel","exporterOtlpEndpoint","closeLogger","closeRun","resolveSql","QueuesModule","publish","DEFAULT_SIZE","DEFAULT_OVERLAP","RECURSIVE_SEPARATORS","SENTENCE_BOUNDARY","chunk","overlap","strategy","pieces","splitBySentence","splitRecursive","mergePieces","sepIdx","idx","sep","splitByLength","bufParts","bufLen","piece","candidateLen","seedText","tail","DEFAULT_CONCURRENCY","Embedder","_ai","_model","_batchSize","_concurrency","concurrency","embedOne","embedAll","texts","batches","worker","batchIndex","batch","isUnsupportedModelError","forEach","j","firstError","find","createSqlJobWriter","totalChunks","collectionId","ensureCollection","inserted","processedChunks","toJobsError","progress","currentDocument","complete","fail","isCancelled","tagged","hint","PDF_MIME_TYPES","PDF_MAGIC","sniffMime","toUint8Array","resolveKind","extractText","mergePages","TextDecoder","looksLikePdf","Blob","arrayBuffer","DEFAULT_NAMESPACE","META_KEY_DIMENSIONS","META_KEY_DISTANCE","ensureSchema","stored","begin","buildChunkTableDDL","CHUNK_INDEXES_DDL","reset","ingestDocument","docId","chunkIdx","formatVector","deleteByIds","deleteByFilter","filterClause","retrieve","embStr","contentColumn","includeContent","metadataColumn","includeMetadata","DEFAULT_TOP_K","RAG_SCHEMA_MISSING_HINT","PG_UNDEFINED_TABLE","RagPipeline","_sqlProvider","_embedder","_jobWriter","_progressBatchSize","deps","sqlProvider","embedder","jobWriter","progressBatchSize","ingest","validateIngest","chunks","isAutoEmbedIngest","embedded","onProgress","writer","started","event","startEvent","needsBatching","processed","cancelled","progressEvent","ordinal","completedEvent","mapped","toRagError","failedEvent","idList","deleted","deleteWhere","resolveQueryEmbedding","retrieveRows","hit","isAutoEmbedRetrieve","hasEmbedder","dims","isTaggedError","RagModule","_getAi","resolveIngestModel","withPipeline","buildEmbedderForIngest","pipeline","ingestAsync","_testSqlOverride","_testJobWriter","channel","createProgressChannel","requestWithHook","countChunks","facadeWriter","withPreallocatedJob","iterable","resolveRetrieveModel","buildEmbedderForRetrieve","resetSchema","chunkText","parseInput","$client","done","asyncIterator","getAi","DEFAULT_SIGNED_URL_TTL_SECONDS","StorageModule","_s3","bucket","StorageBucket","settings","accessKeyId","s3","secretAccessKey","S3_CREDENTIALS_MISSING_MESSAGE","S3_BUCKET_MISSING_MESSAGE","AGENT_ID_MISSING_MESSAGE","S3Client","region","forcePathStyle","credentials","bucketName","resolveSettings","upload","fullKey","send","PutObjectCommand","Bucket","Key","Body","ContentType","Metadata","stripEtag","ETag","toStorageError","download","GetObjectCommand","transformToByteArray","basePrefix","ListObjectsV2Command","Prefix","MaxKeys","ContinuationToken","stripPrefix","objects","Contents","itemKey","Size","LastModified","lastModified","IsTruncated","NextContinuationToken","DeleteObjectCommand","getPublicUrl","encodeS3Key","getSignedUploadUrl","expiresIn","getSignedUrl","getSignedDownloadUrl","normalisedKey","aws","$metadata","httpStatusCode","$fault","StackboneClient","_database","_storage","_queues","_rag","_memory","_observability","_approval","_secrets","_connections","_config","_events","_prompts","_httpClient","http","memory","observability","connections","prompts","createClient"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Optional overrides accepted by `createClient`. All fields are optional;\n * modules fall back to the corresponding upstream env var on first access.\n */\nexport interface ClientConfig {\n /** Ed25519 JWT signed by the control plane. Falls back to `STACKBONE_AGENT_JWT`. */\n agentJwt?: string;\n /** Stackbone control plane base URL used by the facade HttpClient. Falls back to `STACKBONE_API_URL`. */\n stackboneApiUrl?: string;\n /** Stable agent identifier injected at provisioning. Falls back to `STACKBONE_AGENT_ID`. Used as the multi-tenant key prefix in `client.storage`. */\n agentId?: string;\n /**\n * Postgres connection string consumed by `client.rag` and the platform\n * observability exporter. Falls back to `DATABASE_URL`. Note: `client.database`\n * uses `STACKBONE_POSTGRES_URL` instead — the two env vars are intentionally\n * different so that the SDK's own DB pool stays decoupled from the legacy\n * `DATABASE_URL` consumers until `feature 30` consolidates them.\n */\n databaseUrl?: string;\n openrouterKey?: string;\n openrouterBaseUrl?: string;\n qstashToken?: string;\n qstashCurrentSigningKey?: string;\n qstashNextSigningKey?: string;\n llamaParseApiKey?: string;\n /** mem0 API key for the long-term memory backend (`client.memory`). Falls back to `MEM0_API_KEY`. */\n mem0ApiKey?: string;\n /** mem0 API base URL. Falls back to `MEM0_BASE_URL` (defaults to mem0 cloud when unset). */\n mem0BaseUrl?: string;\n /** HMAC key the control plane uses to sign approval-decision callbacks. Falls back to `STACKBONE_APPROVAL_SIGNING_KEY`. */\n approvalSigningKey?: string;\n /**\n * Identifies the install the agent runs inside. Sent as the\n * `X-Stackbone-Installation-Id` header when the SDK talks to the control\n * plane. Falls back to `STACKBONE_INSTALLATION_ID`.\n * TODO(studio-v1): remove once `STACKBONE_AGENT_JWT` carries the install id\n * and `apps/api` derives it from the bearer instead of an explicit header.\n */\n installationId?: string;\n s3?: {\n /** Falls back to `AWS_ACCESS_KEY_ID`. */\n accessKeyId?: string;\n /** Falls back to `AWS_SECRET_ACCESS_KEY`. */\n secretAccessKey?: string;\n /** Falls back to `S3_ENDPOINT`. */\n endpoint?: string;\n /** Physical R2/S3 bucket scoped to the agent. Falls back to `S3_BUCKET`. */\n bucket?: string;\n };\n otel?: {\n exporterOtlpEndpoint?: string;\n resourceAttributes?: string;\n };\n /**\n * RAG-related defaults parsed from `agent.yaml.rag` by the CLI/orchestrator\n * and forwarded here. The SDK never reads `agent.yaml` itself — keeping\n * filesystem ownership in the CLI. Defaults follow ADR\n * `2026-05-10-rag-consolidation-on-client-database` (D2/D6).\n */\n rag?: {\n /**\n * Embedding model used by `client.rag.ingest`/`retrieve` when the caller\n * omits `model`. Defaults to `openai/text-embedding-3-small`.\n */\n embeddingModel?: string;\n };\n /**\n * Creator-side floor on the negotiated Stackbone Agent Protocol contract\n * version. Sourced from `agent.yaml.protocol.required` by the\n * CLI/orchestrator (the SDK never reads `agent.yaml` itself). When set and\n * the datapath's negotiated `contract.version` is below this value, every\n * gated module call returns `SdkError('contract_version_unsupported',\n * { detected, required })` — independent of per-module capability gating.\n * When omitted, the SDK uses `MIN_SUPPORTED_CONTRACT_VERSION` as the\n * implicit floor (i.e. behaviour matches slice F5).\n */\n protocolRequired?: number;\n}\n\n/**\n * `env` is a live reference to `process.env` (not a snapshot) so tests that\n * mutate the environment between `createClient()` and the first module access\n * still observe the new values via the lazy initialisers.\n */\nexport interface ResolvedConfig {\n config: Readonly<ClientConfig>;\n env: NodeJS.ProcessEnv;\n}\n\nexport function resolveConfig(config: ClientConfig): ResolvedConfig {\n return {\n config: Object.freeze({ ...config }),\n env: process.env,\n };\n}\n","export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, TimePrecision, util, NEVER, } from \"../core/index.js\";\nexport { toJSONSchema } from \"../core/json-schema-processors.js\";\nexport { fromJSONSchema } from \"./from-json-schema.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n","export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport { toJSONSchema } from \"./json-schema-processors.js\";\nexport { JSONSchemaGenerator } from \"./json-schema-generator.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n","/** 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 if (!inst._zod) {\n Object.defineProperty(inst, \"_zod\", {\n value: {\n def,\n constr: _,\n traits: new Set(),\n },\n enumerable: false,\n });\n }\n if (inst._zod.traits.has(name)) {\n return;\n }\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n const proto = _.prototype;\n const keys = Object.keys(proto);\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n if (!(k in inst)) {\n inst[k] = proto[k].bind(inst);\n }\n }\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\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(\"Unexpected value in exhaustive check\");\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const 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 function slugify(input) {\n return input\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/[\\s_-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = 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 if (typeof ctor !== \"function\")\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n if (Array.isArray(o))\n return [...o];\n 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 checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".pick() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".omit() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n // Only throw if new shape overlaps with existing shape\n // Use getOwnPropertyDescriptor to check key existence without accessing values\n const existingShape = schema._zod.def.shape;\n for (const key in shape) {\n if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) {\n throw new Error(\"Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.\");\n }\n }\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n });\n return clone(schema, def);\n}\nexport function merge(a, b) {\n 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 currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".partial() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\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 parsedType(data) {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"nan\" : \"number\";\n }\n case \"object\": {\n if (data === null) {\n return \"null\";\n }\n if (Array.isArray(data)) {\n return \"array\";\n }\n const obj = data;\n if (obj && Object.getPrototypeOf(obj) !== Object.prototype && \"constructor\" in obj && obj.constructor) {\n return obj.constructor.name;\n }\n }\n }\n return t;\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\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 = (issue) => issue.message) {\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, 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","import * as util from \"./util.js\";\nexport 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 = unicodeEmail;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;\nexport const mac = (delimiter) => {\n const escapedDelim = util.escapeRegex(delimiter ?? \":\");\n return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);\n};\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\n// E.164: leading digit must be 1-9; total digits (excluding '+') between 7-15\nexport const e164 = /^\\+[1-9]\\d{6,14}$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n if (args.offset)\n opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?$/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n inclusive: true,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n inclusive: true,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 3,\n patch: 6,\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 handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary\n // initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n // Lazy initialize ~standard to avoid creating objects for every schema\n util.defineLazy(inst, \"~standard\", () => ({\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n }));\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n // @ts-ignore\n const url = new URL(trimmed);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: def.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // Set the output value based on normalize flag\n if (def.normalize) {\n // Use normalized URL\n payload.value = url.href;\n }\n else {\n // Preserve the original input (trimmed)\n payload.value = trimmed;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `ipv4`;\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `ipv6`;\n inst._zod.check = (payload) => {\n try {\n // @ts-ignore\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodMAC = /*@__PURE__*/ core.$constructor(\"$ZodMAC\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.mac(def.delimiter));\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `mac`;\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const parts = payload.value.split(\"/\");\n try {\n if (parts.length !== 2)\n throw new Error();\n const [address, prefix] = parts;\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n // @ts-ignore\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.contentEncoding = \"base64\";\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.contentEncoding = \"base64url\";\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumberFormat\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checks\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigIntFormat\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.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, isOptionalOut) {\n if (result.issues.length) {\n // For optional-out schemas, ignore errors on absent keys\n if (isOptionalOut && !(key in input)) {\n return;\n }\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 const isOptionalOut = _catchall.optout === \"optional\";\n for (const key in 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, isOptionalOut)));\n }\n else {\n handlePropertyResult(r, payload, key, input, isOptionalOut);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n // const sh = def.shape;\n const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n if (!desc?.get) {\n const sh = def.shape;\n Object.defineProperty(def, \"shape\", {\n get: () => {\n const newSh = { ...sh };\n Object.defineProperty(def, \"shape\", {\n value: newSh,\n });\n return newSh;\n },\n });\n }\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = {};\n const proms = [];\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n const isOptionalOut = el._zod.optout === \"optional\";\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalOut)));\n }\n else {\n handlePropertyResult(r, payload, key, input, isOptionalOut);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {};`);\n for (const key of normalized.keys) {\n const id = ids[key];\n const k = util.esc(key);\n const schema = shape[key];\n const isOptionalOut = schema?._zod?.optout === \"optional\";\n doc.write(`const ${id} = ${parseStr(key)};`);\n if (isOptionalOut) {\n // For optional-out schemas, ignore errors on absent keys\n doc.write(`\n if (${id}.issues.length) {\n if (${k} in input) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n }\n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n else {\n doc.write(`\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const 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});\nfunction handleExclusiveUnionResults(results, final, inst, ctx) {\n const successes = results.filter((r) => r.issues.length === 0);\n if (successes.length === 1) {\n final.value = successes[0].value;\n return final;\n }\n if (successes.length === 0) {\n // No matches - same as regular union\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n }\n else {\n // Multiple matches - exclusive union failure\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: [],\n inclusive: false,\n });\n }\n return final;\n}\nexport const $ZodXor = /*@__PURE__*/ core.$constructor(\"$ZodXor\", (inst, def) => {\n $ZodUnion.init(inst, def);\n def.inclusive = false;\n const 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 results.push(result);\n }\n }\n if (!async)\n return handleExclusiveUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleExclusiveUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n def.inclusive = false;\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n 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 // Track which side(s) report each key as unrecognized\n const unrecKeys = new Map();\n let unrecIssue;\n for (const iss of left.issues) {\n if (iss.code === \"unrecognized_keys\") {\n unrecIssue ?? (unrecIssue = iss);\n for (const k of iss.keys) {\n if (!unrecKeys.has(k))\n unrecKeys.set(k, {});\n unrecKeys.get(k).l = true;\n }\n }\n else {\n result.issues.push(iss);\n }\n }\n for (const iss of right.issues) {\n if (iss.code === \"unrecognized_keys\") {\n for (const k of iss.keys) {\n if (!unrecKeys.has(k))\n unrecKeys.set(k, {});\n unrecKeys.get(k).r = true;\n }\n }\n else {\n result.issues.push(iss);\n }\n }\n // Report only keys unrecognized by BOTH sides\n const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k);\n if (bothKeys.length && unrecIssue) {\n result.issues.push({ ...unrecIssue, keys: bothKeys });\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n const reversedIndex = [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n const optStart = reversedIndex === -1 ? 0 : items.length - reversedIndex;\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\n ? { code: \"too_big\", maximum: items.length, inclusive: true }\n : { 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 const values = def.keyType._zod.values;\n if (values) {\n payload.value = {};\n const recordKeys = new Set();\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n recordKeys.add(typeof key === \"number\" ? key.toString() : key);\n const 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 (!recordKeys.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n // Numeric string fallback: if key is a numeric string and failed, retry with Number(key)\n // This handles z.number(), z.literal([1, 2, 3]), and unions containing numeric literals\n const checkNumericKey = typeof key === \"string\" && regexes.number.test(key) && keyResult.issues.length;\n if (checkNumericKey) {\n const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);\n if (retryResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (retryResult.issues.length === 0) {\n keyResult = retryResult;\n }\n }\n if (keyResult.issues.length) {\n if (def.mode === \"loose\") {\n // Pass through unchanged\n payload.value[key] = input[key];\n }\n else {\n // Default \"strict\" behavior: error on invalid key\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n }\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n if (def.values.length === 0) {\n throw new Error(\"Cannot create literal schema with no valid values\");\n }\n const values = new Set(def.values);\n inst._zod.values = values;\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.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 $ZodExactOptional = /*@__PURE__*/ core.$constructor(\"$ZodExactOptional\", (inst, def) => {\n // Call parent init - inherits optin/optout = \"optional\"\n $ZodOptional.init(inst, def);\n // Override values/pattern to NOT add undefined\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"pattern\", () => def.innerType._zod.pattern);\n // Override parse to just delegate (no undefined handling)\n inst._zod.parse = (payload, ctx) => {\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n 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: \"string\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._def = def;\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n return function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n };\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n };\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // 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","export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as bg } from \"./bg.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as da } from \"./da.js\";\nexport { default as de } from \"./de.js\";\nexport { default as 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 hy } from \"./hy.js\";\nexport { default as id } from \"./id.js\";\nexport { default as is } from \"./is.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as ka } from \"./ka.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as km } from \"./km.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as lt } from \"./lt.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as uk } from \"./uk.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as uz } from \"./uz.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\nexport { default as yo } from \"./yo.js\";\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حرف\", 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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `مدخلات غير مقبولة: يفترض إدخال instanceof ${issue.expected}، ولكن تم إدخال ${received}`;\n }\n return `مدخلات غير مقبولة: يفترض إدخال ${expected}، ولكن تم إدخال ${received}`;\n }\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 `${FormatDictionary[_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 FormatDictionary = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Yanlış dəyər: gözlənilən instanceof ${issue.expected}, daxil olan ${received}`;\n }\n return `Yanlış dəyər: gözlənilən ${expected}, daxil olan ${received}`;\n }\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ış ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"лік\",\n array: \"масіў\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Няправільны ўвод: чакаўся instanceof ${issue.expected}, атрымана ${received}`;\n }\n return `Няправільны ўвод: чакаўся ${expected}, атрымана ${received}`;\n }\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 `Няправільны ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"число\",\n array: \"масив\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Невалиден вход: очакван instanceof ${issue.expected}, получен ${received}`;\n }\n return `Невалиден вход: очакван ${expected}, получен ${received}`;\n }\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 let invalid_adj = \"Невалиден\";\n if (_issue.format === \"emoji\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"datetime\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"date\")\n invalid_adj = \"Невалидна\";\n if (_issue.format === \"time\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"duration\")\n invalid_adj = \"Невалидна\";\n return `${invalid_adj} ${FormatDictionary[_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: \"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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Tipus invàlid: s'esperava instanceof ${issue.expected}, s'ha rebut ${received}`;\n }\n return `Tipus invàlid: s'esperava ${expected}, s'ha rebut ${received}`;\n }\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 ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"číslo\",\n string: \"řetězec\",\n function: \"funkce\",\n array: \"pole\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Neplatný vstup: očekáváno instanceof ${issue.expected}, obdrženo ${received}`;\n }\n return `Neplatný vstup: očekáváno ${expected}, obdrženo ${received}`;\n }\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 ${FormatDictionary[_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 function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"e-mailadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslæ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 const TypeDictionary = {\n nan: \"NaN\",\n string: \"streng\",\n number: \"tal\",\n boolean: \"boolean\",\n array: \"liste\",\n object: \"objekt\",\n set: \"sæt\",\n file: \"fil\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ugyldigt input: forventede instanceof ${issue.expected}, fik ${received}`;\n }\n return `Ugyldigt input: forventede ${expected}, fik ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig væ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 = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing)\n return `For stor: forventede ${origin ?? \"value\"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor: forventede ${origin ?? \"value\"} havde ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing) {\n return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: skal starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: skal ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: skal indeholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: skal matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${FormatDictionary[_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 FormatDictionary = {\n regex: \"Eingabe\",\n email: \"E-Mail-Adresse\",\n url: \"URL\",\n emoji: \"Emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-Datum und -Uhrzeit\",\n date: \"ISO-Datum\",\n time: \"ISO-Uhrzeit\",\n duration: \"ISO-Dauer\",\n ipv4: \"IPv4-Adresse\",\n ipv6: \"IPv6-Adresse\",\n cidrv4: \"IPv4-Bereich\",\n cidrv6: \"IPv6-Bereich\",\n base64: \"Base64-codierter String\",\n base64url: \"Base64-URL-codierter String\",\n json_string: \"JSON-String\",\n e164: \"E.164-Nummer\",\n jwt: \"JWT\",\n template_literal: \"Eingabe\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"Zahl\",\n array: \"Array\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ungültige Eingabe: erwartet instanceof ${issue.expected}, erhalten ${received}`;\n }\n return `Ungültige Eingabe: erwartet ${expected}, erhalten ${received}`;\n }\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: ${FormatDictionary[_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\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n map: { unit: \"entries\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n mac: \"MAC address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n // type names: missing keys = do not translate (use raw value via ?? fallback)\n const TypeDictionary = {\n // Compatibility: \"nan\" -> \"NaN\" for display\n nan: \"NaN\",\n // All other type names omitted - they fall back to raw values via ?? operator\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n return `Invalid input: expected ${expected}, received ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karaktrojn\", verb: \"havi\" },\n file: { unit: \"bajtojn\", verb: \"havi\" },\n array: { unit: \"elementojn\", verb: \"havi\" },\n set: { unit: \"elementojn\", verb: \"havi\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"enigo\",\n email: \"retadreso\",\n url: \"URL\",\n emoji: \"emoĝ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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"nombro\",\n array: \"tabelo\",\n null: \"senvalora\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Nevalida enigo: atendiĝis instanceof ${issue.expected}, riceviĝis ${received}`;\n }\n return `Nevalida enigo: atendiĝis ${expected}, riceviĝis ${received}`;\n }\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 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} ŝ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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n string: \"texto\",\n number: \"número\",\n boolean: \"booleano\",\n array: \"arreglo\",\n object: \"objeto\",\n set: \"conjunto\",\n file: \"archivo\",\n date: \"fecha\",\n bigint: \"número grande\",\n symbol: \"símbolo\",\n undefined: \"indefinido\",\n null: \"nulo\",\n function: \"función\",\n map: \"mapa\",\n record: \"registro\",\n tuple: \"tupla\",\n enum: \"enumeración\",\n union: \"unión\",\n literal: \"literal\",\n promise: \"promesa\",\n void: \"vacío\",\n never: \"nunca\",\n unknown: \"desconocido\",\n any: \"cualquiera\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entrada inválida: se esperaba instanceof ${issue.expected}, recibido ${received}`;\n }\n return `Entrada inválida: se esperaba ${expected}, recibido ${received}`;\n }\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 const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing)\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing) {\n return `Demasiado pequeño: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Demasiado pequeño: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cadena invá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 ${FormatDictionary[_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 ${TypeDictionary[issue.origin] ?? issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido en ${TypeDictionary[issue.origin] ?? 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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"عدد\",\n array: \"آرایه\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `ورودی نامعتبر: می‌بایست instanceof ${issue.expected} می‌بود، ${received} دریافت شد`;\n }\n return `ورودی نامعتبر: می‌بایست ${expected} می‌بود، ${received} دریافت شد`;\n }\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 `${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Virheellinen tyyppi: odotettiin instanceof ${issue.expected}, oli ${received}`;\n }\n return `Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Virheellinen syö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 ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"nombre\",\n array: \"tableau\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entrée invalide : instanceof ${issue.expected} attendu, ${received} reçu`;\n }\n return `Entrée invalide : ${expected} attendu, ${received} reçu`;\n }\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 `${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entrée invalide : attendu instanceof ${issue.expected}, reçu ${received}`;\n }\n return `Entrée invalide : attendu ${expected}, reçu ${received}`;\n }\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 `${FormatDictionary[_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 // Hebrew labels + grammatical gender\n const TypeNames = {\n string: { label: \"מחרוזת\", gender: \"f\" },\n number: { label: \"מספר\", gender: \"m\" },\n boolean: { label: \"ערך בוליאני\", gender: \"m\" },\n bigint: { label: \"BigInt\", gender: \"m\" },\n date: { label: \"תאריך\", gender: \"m\" },\n array: { label: \"מערך\", gender: \"m\" },\n object: { label: \"אובייקט\", gender: \"m\" },\n null: { label: \"ערך ריק (null)\", gender: \"m\" },\n undefined: { label: \"ערך לא מוגדר (undefined)\", gender: \"m\" },\n symbol: { label: \"סימבול (Symbol)\", gender: \"m\" },\n function: { label: \"פונקציה\", gender: \"f\" },\n map: { label: \"מפה (Map)\", gender: \"f\" },\n set: { label: \"קבוצה (Set)\", gender: \"f\" },\n file: { label: \"קובץ\", gender: \"m\" },\n promise: { label: \"Promise\", gender: \"m\" },\n NaN: { label: \"NaN\", gender: \"m\" },\n unknown: { label: \"ערך לא ידוע\", gender: \"m\" },\n value: { label: \"ערך\", gender: \"m\" },\n };\n // Sizing units for size-related messages + localized origin labels\n const Sizable = {\n string: { unit: \"תווים\", shortLabel: \"קצר\", longLabel: \"ארוך\" },\n file: { unit: \"בייטים\", shortLabel: \"קטן\", longLabel: \"גדול\" },\n array: { unit: \"פריטים\", shortLabel: \"קטן\", longLabel: \"גדול\" },\n set: { unit: \"פריטים\", shortLabel: \"קטן\", longLabel: \"גדול\" },\n number: { unit: \"\", shortLabel: \"קטן\", longLabel: \"גדול\" }, // no unit\n };\n // Helpers — labels, articles, and verbs\n const typeEntry = (t) => (t ? TypeNames[t] : undefined);\n const typeLabel = (t) => {\n const e = typeEntry(t);\n if (e)\n return e.label;\n // fallback: show raw string if unknown\n return t ?? TypeNames.unknown.label;\n };\n const withDefinite = (t) => `ה${typeLabel(t)}`;\n const verbFor = (t) => {\n const e = typeEntry(t);\n const gender = e?.gender ?? \"m\";\n return gender === \"f\" ? \"צריכה להיות\" : \"צריך להיות\";\n };\n const getSizing = (origin) => {\n if (!origin)\n return null;\n return Sizable[origin] ?? null;\n };\n const FormatDictionary = {\n regex: { label: \"קלט\", gender: \"m\" },\n email: { label: \"כתובת אימייל\", gender: \"f\" },\n url: { label: \"כתובת רשת\", gender: \"f\" },\n emoji: { label: \"אימוג'י\", gender: \"m\" },\n uuid: { label: \"UUID\", gender: \"m\" },\n nanoid: { label: \"nanoid\", gender: \"m\" },\n guid: { label: \"GUID\", gender: \"m\" },\n cuid: { label: \"cuid\", gender: \"m\" },\n cuid2: { label: \"cuid2\", gender: \"m\" },\n ulid: { label: \"ULID\", gender: \"m\" },\n xid: { label: \"XID\", gender: \"m\" },\n ksuid: { label: \"KSUID\", gender: \"m\" },\n datetime: { label: \"תאריך וזמן ISO\", gender: \"m\" },\n date: { label: \"תאריך ISO\", gender: \"m\" },\n time: { label: \"זמן ISO\", gender: \"m\" },\n duration: { label: \"משך זמן ISO\", gender: \"m\" },\n ipv4: { label: \"כתובת IPv4\", gender: \"f\" },\n ipv6: { label: \"כתובת IPv6\", gender: \"f\" },\n cidrv4: { label: \"טווח IPv4\", gender: \"m\" },\n cidrv6: { label: \"טווח IPv6\", gender: \"m\" },\n base64: { label: \"מחרוזת בבסיס 64\", gender: \"f\" },\n base64url: { label: \"מחרוזת בבסיס 64 לכתובות רשת\", gender: \"f\" },\n json_string: { label: \"מחרוזת JSON\", gender: \"f\" },\n e164: { label: \"מספר E.164\", gender: \"m\" },\n jwt: { label: \"JWT\", gender: \"m\" },\n ends_with: { label: \"קלט\", gender: \"m\" },\n includes: { label: \"קלט\", gender: \"m\" },\n lowercase: { label: \"קלט\", gender: \"m\" },\n starts_with: { label: \"קלט\", gender: \"m\" },\n uppercase: { label: \"קלט\", gender: \"m\" },\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n // Expected type: show without definite article for clearer Hebrew\n const expectedKey = issue.expected;\n const expected = TypeDictionary[expectedKey ?? \"\"] ?? typeLabel(expectedKey);\n // Received: show localized label if known, otherwise constructor/raw\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? TypeNames[receivedType]?.label ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `קלט לא תקין: צריך להיות instanceof ${issue.expected}, התקבל ${received}`;\n }\n return `קלט לא תקין: צריך להיות ${expected}, התקבל ${received}`;\n }\n case \"invalid_value\": {\n if (issue.values.length === 1) {\n return `ערך לא תקין: הערך חייב להיות ${util.stringifyPrimitive(issue.values[0])}`;\n }\n // Join values with proper Hebrew formatting\n const stringified = issue.values.map((v) => util.stringifyPrimitive(v));\n if (issue.values.length === 2) {\n return `ערך לא תקין: האפשרויות המתאימות הן ${stringified[0]} או ${stringified[1]}`;\n }\n // For 3+ values: \"a\", \"b\" או \"c\"\n const lastValue = stringified[stringified.length - 1];\n const restValues = stringified.slice(0, -1).join(\", \");\n return `ערך לא תקין: האפשרויות המתאימות הן ${restValues} או ${lastValue}`;\n }\n case \"too_big\": {\n const sizing = getSizing(issue.origin);\n const subject = withDefinite(issue.origin ?? \"value\");\n if (issue.origin === \"string\") {\n // Special handling for strings - more natural Hebrew\n return `${sizing?.longLabel ?? \"ארוך\"} מדי: ${subject} צריכה להכיל ${issue.maximum.toString()} ${sizing?.unit ?? \"\"} ${issue.inclusive ? \"או פחות\" : \"לכל היותר\"}`.trim();\n }\n if (issue.origin === \"number\") {\n // Natural Hebrew for numbers\n const comparison = issue.inclusive ? `קטן או שווה ל-${issue.maximum}` : `קטן מ-${issue.maximum}`;\n return `גדול מדי: ${subject} צריך להיות ${comparison}`;\n }\n if (issue.origin === \"array\" || issue.origin === \"set\") {\n // Natural Hebrew for arrays and sets\n const verb = issue.origin === \"set\" ? \"צריכה\" : \"צריך\";\n const comparison = issue.inclusive\n ? `${issue.maximum} ${sizing?.unit ?? \"\"} או פחות`\n : `פחות מ-${issue.maximum} ${sizing?.unit ?? \"\"}`;\n return `גדול מדי: ${subject} ${verb} להכיל ${comparison}`.trim();\n }\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const be = verbFor(issue.origin ?? \"value\");\n if (sizing?.unit) {\n return `${sizing.longLabel} מדי: ${subject} ${be} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n }\n return `${sizing?.longLabel ?? \"גדול\"} מדי: ${subject} ${be} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const sizing = getSizing(issue.origin);\n const subject = withDefinite(issue.origin ?? \"value\");\n if (issue.origin === \"string\") {\n // Special handling for strings - more natural Hebrew\n return `${sizing?.shortLabel ?? \"קצר\"} מדי: ${subject} צריכה להכיל ${issue.minimum.toString()} ${sizing?.unit ?? \"\"} ${issue.inclusive ? \"או יותר\" : \"לפחות\"}`.trim();\n }\n if (issue.origin === \"number\") {\n // Natural Hebrew for numbers\n const comparison = issue.inclusive ? `גדול או שווה ל-${issue.minimum}` : `גדול מ-${issue.minimum}`;\n return `קטן מדי: ${subject} צריך להיות ${comparison}`;\n }\n if (issue.origin === \"array\" || issue.origin === \"set\") {\n // Natural Hebrew for arrays and sets\n const verb = issue.origin === \"set\" ? \"צריכה\" : \"צריך\";\n // Special case for singular (minimum === 1)\n if (issue.minimum === 1 && issue.inclusive) {\n const singularPhrase = issue.origin === \"set\" ? \"לפחות פריט אחד\" : \"לפחות פריט אחד\";\n return `קטן מדי: ${subject} ${verb} להכיל ${singularPhrase}`;\n }\n const comparison = issue.inclusive\n ? `${issue.minimum} ${sizing?.unit ?? \"\"} או יותר`\n : `יותר מ-${issue.minimum} ${sizing?.unit ?? \"\"}`;\n return `קטן מדי: ${subject} ${verb} להכיל ${comparison}`.trim();\n }\n const adj = issue.inclusive ? \">=\" : \">\";\n const be = verbFor(issue.origin ?? \"value\");\n if (sizing?.unit) {\n return `${sizing.shortLabel} מדי: ${subject} ${be} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `${sizing?.shortLabel ?? \"קטן\"} מדי: ${subject} ${be} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n // These apply to strings — use feminine grammar + ה׳ הידיעה\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 // Handle gender agreement for formats\n const nounEntry = FormatDictionary[_issue.format];\n const noun = nounEntry?.label ?? _issue.format;\n const gender = nounEntry?.gender ?? \"m\";\n const adjective = gender === \"f\" ? \"תקינה\" : \"תקין\";\n return `${noun} לא ${adjective}`;\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 `שדה לא תקין באובייקט`;\n }\n case \"invalid_union\":\n return \"קלט לא תקין\";\n case \"invalid_element\": {\n const place = withDefinite(issue.origin ?? \"array\");\n return `ערך לא תקין ב${place}`;\n }\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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"szám\",\n array: \"tömb\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Érvénytelen bemenet: a várt érték instanceof ${issue.expected}, a kapott érték ${received}`;\n }\n return `Érvénytelen bemenet: a várt érték ${expected}, a kapott érték ${received}`;\n }\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 ${FormatDictionary[_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\";\nfunction getArmenianPlural(count, one, many) {\n return Math.abs(count) === 1 ? one : many;\n}\nfunction withDefiniteArticle(word) {\n if (!word)\n return \"\";\n const vowels = [\"ա\", \"ե\", \"ը\", \"ի\", \"ո\", \"ու\", \"օ\"];\n const lastChar = word[word.length - 1];\n return word + (vowels.includes(lastChar) ? \"ն\" : \"ը\");\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"նշան\",\n many: \"նշաններ\",\n },\n verb: \"ունենալ\",\n },\n file: {\n unit: {\n one: \"բայթ\",\n many: \"բայթեր\",\n },\n verb: \"ունենալ\",\n },\n array: {\n unit: {\n one: \"տարր\",\n many: \"տարրեր\",\n },\n verb: \"ունենալ\",\n },\n set: {\n unit: {\n one: \"տարր\",\n many: \"տարրեր\",\n },\n verb: \"ունենալ\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"թիվ\",\n array: \"զանգված\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Սխալ մուտքագրում․ սպասվում էր instanceof ${issue.expected}, ստացվել է ${received}`;\n }\n return `Սխալ մուտքագրում․ սպասվում էր ${expected}, ստացվել է ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Սխալ մուտքագրում․ սպասվում էր ${util.stringifyPrimitive(issue.values[1])}`;\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 = getArmenianPlural(maxValue, sizing.unit.one, sizing.unit.many);\n return `Չափազանց մեծ արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin ?? \"արժեք\")} կունենա ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Չափազանց մեծ արժեք․ սպասվում է, որ ${withDefiniteArticle(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 = getArmenianPlural(minValue, sizing.unit.one, sizing.unit.many);\n return `Չափազանց փոքր արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin)} կունենա ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Չափազանց փոքր արժեք․ սպասվում է, որ ${withDefiniteArticle(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 `Սխալ ${FormatDictionary[_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 `Սխալ բանալի ${withDefiniteArticle(issue.origin)}-ում`;\n case \"invalid_union\":\n return \"Սխալ մուտքագրում\";\n case \"invalid_element\":\n return `Սխալ արժեք ${withDefiniteArticle(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: \"memiliki\" },\n file: { unit: \"byte\", verb: \"memiliki\" },\n array: { unit: \"item\", verb: \"memiliki\" },\n set: { unit: \"item\", verb: \"memiliki\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"alamat email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tanggal dan waktu format ISO\",\n date: \"tanggal format ISO\",\n time: \"jam format ISO\",\n duration: \"durasi format ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"rentang alamat IPv4\",\n cidrv6: \"rentang alamat IPv6\",\n base64: \"string dengan enkode base64\",\n base64url: \"string dengan enkode base64url\",\n json_string: \"string JSON\",\n e164: \"angka E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input tidak valid: diharapkan instanceof ${issue.expected}, diterima ${received}`;\n }\n return `Input tidak valid: diharapkan ${expected}, diterima ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} tidak valid`;\n }\n case \"not_multiple_of\":\n return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak valid di ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak valid\";\n case \"invalid_element\":\n return `Nilai tidak valid di ${issue.origin}`;\n default:\n return `Input tidak valid`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"stafi\", verb: \"að 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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"númer\",\n array: \"fylki\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Rangt gildi: Þú slóst inn ${received} þar sem á að vera instanceof ${issue.expected}`;\n }\n return `Rangt gildi: Þú slóst inn ${received} þar sem á að vera ${expected}`;\n }\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 ${FormatDictionary[_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 FormatDictionary = {\n regex: \"input\",\n email: \"indirizzo email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e ora ISO\",\n date: \"data ISO\",\n time: \"ora ISO\",\n duration: \"durata ISO\",\n ipv4: \"indirizzo IPv4\",\n ipv6: \"indirizzo IPv6\",\n cidrv4: \"intervallo IPv4\",\n cidrv6: \"intervallo IPv6\",\n base64: \"stringa codificata in base64\",\n base64url: \"URL codificata in base64\",\n json_string: \"stringa JSON\",\n e164: \"numero E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"numero\",\n array: \"vettore\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input non valido: atteso instanceof ${issue.expected}, ricevuto ${received}`;\n }\n return `Input non valido: atteso ${expected}, ricevuto ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chiave non valida in ${issue.origin}`;\n case \"invalid_union\":\n return \"Input non valido\";\n case \"invalid_element\":\n return `Valore non valido in ${issue.origin}`;\n default:\n return `Input non valido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"文字\", 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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"数値\",\n array: \"配列\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `無効な入力: instanceof ${issue.expected}が期待されましたが、${received}が入力されました`;\n }\n return `無効な入力: ${expected}が期待されましたが、${received}が入力されました`;\n }\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 `無効な${FormatDictionary[_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 FormatDictionary = {\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-კოდირებული სტრინგი\",\n base64url: \"base64url-კოდირებული სტრინგი\",\n json_string: \"JSON სტრინგი\",\n e164: \"E.164 ნომერი\",\n jwt: \"JWT\",\n template_literal: \"შეყვანა\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"რიცხვი\",\n string: \"სტრინგი\",\n boolean: \"ბულეანი\",\n function: \"ფუნქცია\",\n array: \"მასივი\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `არასწორი შეყვანა: მოსალოდნელი instanceof ${issue.expected}, მიღებული ${received}`;\n }\n return `არასწორი შეყვანა: მოსალოდნელი ${expected}, მიღებული ${received}`;\n }\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 }\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 `არასწორი ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"លេខ\",\n array: \"អារេ (Array)\",\n null: \"គ្មានតម្លៃ (null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${issue.expected} ប៉ុន្តែទទួលបាន ${received}`;\n }\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${expected} ប៉ុន្តែទទួលបាន ${received}`;\n }\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 `មិនត្រឹមត្រូវ៖ ${FormatDictionary[_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 km from \"./km.js\";\n/** @deprecated Use `km` instead. */\nexport default function () {\n return km();\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"문자\", 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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `잘못된 입력: 예상 타입은 instanceof ${issue.expected}, 받은 타입은 ${received}입니다`;\n }\n return `잘못된 입력: 예상 타입은 ${expected}, 받은 타입은 ${received}입니다`;\n }\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 `잘못된 ${FormatDictionary[_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 capitalizeFirstCharacter = (text) => {\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\nfunction getUnitTypeFromNumber(number) {\n const abs = Math.abs(number);\n const last = abs % 10;\n const last2 = abs % 100;\n if ((last2 >= 11 && last2 <= 19) || last === 0)\n return \"many\";\n if (last === 1)\n return \"one\";\n return \"few\";\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"simbolis\",\n few: \"simboliai\",\n many: \"simbolių\",\n },\n verb: {\n smaller: {\n inclusive: \"turi būti ne ilgesnė kaip\",\n notInclusive: \"turi būti trumpesnė kaip\",\n },\n bigger: {\n inclusive: \"turi būti ne trumpesnė kaip\",\n notInclusive: \"turi būti ilgesnė kaip\",\n },\n },\n },\n file: {\n unit: {\n one: \"baitas\",\n few: \"baitai\",\n many: \"baitų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi būti ne didesnis kaip\",\n notInclusive: \"turi būti mažesnis kaip\",\n },\n bigger: {\n inclusive: \"turi būti ne mažesnis kaip\",\n notInclusive: \"turi būti didesnis kaip\",\n },\n },\n },\n array: {\n unit: {\n one: \"elementą\",\n few: \"elementus\",\n many: \"elementų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi turėti ne daugiau kaip\",\n notInclusive: \"turi turėti mažiau kaip\",\n },\n bigger: {\n inclusive: \"turi turėti ne mažiau kaip\",\n notInclusive: \"turi turėti daugiau kaip\",\n },\n },\n },\n set: {\n unit: {\n one: \"elementą\",\n few: \"elementus\",\n many: \"elementų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi turėti ne daugiau kaip\",\n notInclusive: \"turi turėti mažiau kaip\",\n },\n bigger: {\n inclusive: \"turi turėti ne mažiau kaip\",\n notInclusive: \"turi turėti daugiau kaip\",\n },\n },\n },\n };\n function getSizing(origin, unitType, inclusive, targetShouldBe) {\n const result = Sizable[origin] ?? null;\n if (result === null)\n return result;\n return {\n unit: result.unit[unitType],\n verb: result.verb[targetShouldBe][inclusive ? \"inclusive\" : \"notInclusive\"],\n };\n }\n const FormatDictionary = {\n regex: \"įvestis\",\n email: \"el. pašto adresas\",\n url: \"URL\",\n emoji: \"jaustukas\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO data ir laikas\",\n date: \"ISO data\",\n time: \"ISO laikas\",\n duration: \"ISO trukmė\",\n ipv4: \"IPv4 adresas\",\n ipv6: \"IPv6 adresas\",\n cidrv4: \"IPv4 tinklo prefiksas (CIDR)\",\n cidrv6: \"IPv6 tinklo prefiksas (CIDR)\",\n base64: \"base64 užkoduota eilutė\",\n base64url: \"base64url užkoduota eilutė\",\n json_string: \"JSON eilutė\",\n e164: \"E.164 numeris\",\n jwt: \"JWT\",\n template_literal: \"įvestis\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"skaičius\",\n bigint: \"sveikasis skaičius\",\n string: \"eilutė\",\n boolean: \"loginė reikšmė\",\n undefined: \"neapibrėžta reikšmė\",\n function: \"funkcija\",\n symbol: \"simbolis\",\n array: \"masyvas\",\n object: \"objektas\",\n null: \"nulinė reikšmė\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Gautas tipas ${received}, o tikėtasi - instanceof ${issue.expected}`;\n }\n return `Gautas tipas ${received}, o tikėtasi - ${expected}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Privalo būti ${util.stringifyPrimitive(issue.values[0])}`;\n return `Privalo būti vienas iš ${util.joinValues(issue.values, \"|\")} pasirinkimų`;\n case \"too_big\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, \"smaller\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? \"elementų\"}`;\n const adj = issue.inclusive ? \"ne didesnis kaip\" : \"mažesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi būti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`;\n }\n case \"too_small\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, \"bigger\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? \"elementų\"}`;\n const adj = issue.inclusive ? \"ne mažesnis kaip\" : \"didesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi būti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Eilutė privalo prasidėti \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Eilutė privalo pasibaigti \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Eilutė privalo įtraukti \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Eilutė privalo atitikti ${_issue.pattern}`;\n return `Neteisingas ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Skaičius privalo būti ${issue.divisor} kartotinis.`;\n case \"unrecognized_keys\":\n return `Neatpažint${issue.keys.length > 1 ? \"i\" : \"as\"} rakt${issue.keys.length > 1 ? \"ai\" : \"as\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Rastas klaidingas raktas\";\n case \"invalid_union\":\n return \"Klaidinga įvestis\";\n case \"invalid_element\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi klaidingą įvestį`;\n }\n default:\n return \"Klaidinga įvestis\";\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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"број\",\n array: \"низа\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Грешен внес: се очекува instanceof ${issue.expected}, примено ${received}`;\n }\n return `Грешен внес: се очекува ${expected}, примено ${received}`;\n }\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 ${FormatDictionary[_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 FormatDictionary = {\n regex: \"input\",\n email: \"alamat e-mel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tarikh masa ISO\",\n date: \"tarikh ISO\",\n time: \"masa ISO\",\n duration: \"tempoh ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"julat IPv4\",\n cidrv6: \"julat IPv6\",\n base64: \"string dikodkan base64\",\n base64url: \"string dikodkan base64url\",\n json_string: \"string JSON\",\n e164: \"nombor E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"nombor\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input tidak sah: dijangka instanceof ${issue.expected}, diterima ${received}`;\n }\n return `Input tidak sah: dijangka ${expected}, diterima ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} tidak sah`;\n }\n case \"not_multiple_of\":\n return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak sah dalam ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak sah\";\n case \"invalid_element\":\n return `Nilai tidak sah dalam ${issue.origin}`;\n default:\n return `Input tidak sah`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tekens\", verb: \"heeft\" },\n file: { unit: \"bytes\", verb: \"heeft\" },\n array: { unit: \"elementen\", verb: \"heeft\" },\n set: { unit: \"elementen\", verb: \"heeft\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"invoer\",\n email: \"emailadres\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum en tijd\",\n date: \"ISO datum\",\n time: \"ISO tijd\",\n duration: \"ISO duur\",\n ipv4: \"IPv4-adres\",\n ipv6: \"IPv6-adres\",\n cidrv4: \"IPv4-bereik\",\n cidrv6: \"IPv6-bereik\",\n base64: \"base64-gecodeerde tekst\",\n base64url: \"base64 URL-gecodeerde tekst\",\n json_string: \"JSON string\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"invoer\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"getal\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ongeldige invoer: verwacht instanceof ${issue.expected}, ontving ${received}`;\n }\n return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const longName = issue.origin === \"date\" ? \"laat\" : issue.origin === \"string\" ? \"lang\" : \"groot\";\n if (sizing)\n return `Te ${longName}: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} ${sizing.verb}`;\n return `Te ${longName}: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const shortName = issue.origin === \"date\" ? \"vroeg\" : issue.origin === \"string\" ? \"kort\" : \"klein\";\n if (sizing) {\n return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;\n }\n return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n }\n if (_issue.format === \"ends_with\")\n return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n if (_issue.format === \"includes\")\n return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n if (_issue.format === \"regex\")\n return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n case \"unrecognized_keys\":\n return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ongeldige key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ongeldige invoer\";\n case \"invalid_element\":\n return `Ongeldige waarde in ${issue.origin}`;\n default:\n return `Ongeldige invoer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"å 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 FormatDictionary = {\n regex: \"input\",\n email: \"e-postadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslett\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslett\",\n duration: \"ISO-varighet\",\n ipv4: \"IPv4-områ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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"tall\",\n array: \"liste\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ugyldig input: forventet instanceof ${issue.expected}, fikk ${received}`;\n }\n return `Ugyldig input: forventet ${expected}, fikk ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å 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 ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"numara\",\n array: \"saf\",\n null: \"gayb\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Fâsit giren: umulan instanceof ${issue.expected}, alınan ${received}`;\n }\n return `Fâsit giren: umulan ${expected}, alınan ${received}`;\n }\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 ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"عدد\",\n array: \"ارې\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `ناسم ورودي: باید instanceof ${issue.expected} وای, مګر ${received} ترلاسه شو`;\n }\n return `ناسم ورودي: باید ${expected} وای, مګر ${received} ترلاسه شو`;\n }\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 `${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"liczba\",\n array: \"tablica\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Nieprawidłowe dane wejściowe: oczekiwano instanceof ${issue.expected}, otrzymano ${received}`;\n }\n return `Nieprawidłowe dane wejściowe: oczekiwano ${expected}, otrzymano ${received}`;\n }\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) ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"número\",\n null: \"nulo\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Tipo inválido: esperado instanceof ${issue.expected}, recebido ${received}`;\n }\n return `Tipo inválido: esperado ${expected}, recebido ${received}`;\n }\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 `${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"число\",\n array: \"массив\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Неверный ввод: ожидалось instanceof ${issue.expected}, получено ${received}`;\n }\n return `Неверный ввод: ожидалось ${expected}, получено ${received}`;\n }\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 `Неверный ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"število\",\n array: \"tabela\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Neveljaven vnos: pričakovano instanceof ${issue.expected}, prejeto ${received}`;\n }\n return `Neveljaven vnos: pričakovano ${expected}, prejeto ${received}`;\n }\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 ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"antal\",\n array: \"lista\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ogiltig inmatning: förväntat instanceof ${issue.expected}, fick ${received}`;\n }\n return `Ogiltig inmatning: förväntat ${expected}, fick ${received}`;\n }\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) ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"எண்\",\n array: \"அணி\",\n null: \"வெறுமை\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${issue.expected}, பெறப்பட்டது ${received}`;\n }\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${expected}, பெறப்பட்டது ${received}`;\n }\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 `தவறான ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"ตัวเลข\",\n array: \"อาร์เรย์ (Array)\",\n null: \"ไม่มีค่า (null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${issue.expected} แต่ได้รับ ${received}`;\n }\n return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${expected} แต่ได้รับ ${received}`;\n }\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 `รูปแบบไม่ถูกต้อง: ${FormatDictionary[_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: \"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 FormatDictionary = {\n regex: \"girdi\",\n email: \"e-posta adresi\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO tarih ve saat\",\n date: \"ISO tarih\",\n time: \"ISO saat\",\n duration: \"ISO sü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 const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Geçersiz değer: beklenen instanceof ${issue.expected}, alınan ${received}`;\n }\n return `Geçersiz değer: beklenen ${expected}, alınan ${received}`;\n }\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 ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"число\",\n array: \"масив\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Неправильні вхідні дані: очікується instanceof ${issue.expected}, отримано ${received}`;\n }\n return `Неправильні вхідні дані: очікується ${expected}, отримано ${received}`;\n }\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 `Неправильний ${FormatDictionary[_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 uk from \"./uk.js\";\n/** @deprecated Use `uk` instead. */\nexport default function () {\n return uk();\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حروف\", 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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"نمبر\",\n array: \"آرے\",\n null: \"نل\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `غلط ان پٹ: instanceof ${issue.expected} متوقع تھا، ${received} موصول ہوا`;\n }\n return `غلط ان پٹ: ${expected} متوقع تھا، ${received} موصول ہوا`;\n }\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 `غلط ${FormatDictionary[_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: \"belgi\", verb: \"bo‘lishi kerak\" },\n file: { unit: \"bayt\", verb: \"bo‘lishi kerak\" },\n array: { unit: \"element\", verb: \"bo‘lishi kerak\" },\n set: { unit: \"element\", verb: \"bo‘lishi kerak\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"kirish\",\n email: \"elektron pochta manzili\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO sana va vaqti\",\n date: \"ISO sana\",\n time: \"ISO vaqt\",\n duration: \"ISO davomiylik\",\n ipv4: \"IPv4 manzil\",\n ipv6: \"IPv6 manzil\",\n mac: \"MAC manzil\",\n cidrv4: \"IPv4 diapazon\",\n cidrv6: \"IPv6 diapazon\",\n base64: \"base64 kodlangan satr\",\n base64url: \"base64url kodlangan satr\",\n json_string: \"JSON satr\",\n e164: \"E.164 raqam\",\n jwt: \"JWT\",\n template_literal: \"kirish\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"raqam\",\n array: \"massiv\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Noto‘g‘ri kirish: kutilgan instanceof ${issue.expected}, qabul qilingan ${received}`;\n }\n return `Noto‘g‘ri kirish: kutilgan ${expected}, qabul qilingan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Noto‘g‘ri kirish: kutilgan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Noto‘g‘ri variant: quyidagilardan biri kutilgan ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Juda katta: kutilgan ${issue.origin ?? \"qiymat\"} ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;\n return `Juda katta: kutilgan ${issue.origin ?? \"qiymat\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;\n }\n return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Noto‘g‘ri satr: \"${_issue.prefix}\" bilan boshlanishi kerak`;\n if (_issue.format === \"ends_with\")\n return `Noto‘g‘ri satr: \"${_issue.suffix}\" bilan tugashi kerak`;\n if (_issue.format === \"includes\")\n return `Noto‘g‘ri satr: \"${_issue.includes}\" ni o‘z ichiga olishi kerak`;\n if (_issue.format === \"regex\")\n return `Noto‘g‘ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`;\n return `Noto‘g‘ri ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Noto‘g‘ri raqam: ${issue.divisor} ning karralisi bo‘lishi kerak`;\n case \"unrecognized_keys\":\n return `Noma’lum kalit${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} dagi kalit noto‘g‘ri`;\n case \"invalid_union\":\n return \"Noto‘g‘ri kirish\";\n case \"invalid_element\":\n return `${issue.origin} da noto‘g‘ri qiymat`;\n default:\n return `Noto‘g‘ri kirish`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ký 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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"số\",\n array: \"mảng\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Đầu vào không hợp lệ: mong đợi instanceof ${issue.expected}, nhận được ${received}`;\n }\n return `Đầu vào không hợp lệ: mong đợi ${expected}, nhận được ${received}`;\n }\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 `${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"数字\",\n array: \"数组\",\n null: \"空值(null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `无效输入:期望 instanceof ${issue.expected},实际接收 ${received}`;\n }\n return `无效输入:期望 ${expected},实际接收 ${received}`;\n }\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 `无效${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `無效的輸入值:預期為 instanceof ${issue.expected},但收到 ${received}`;\n }\n return `無效的輸入值:預期為 ${expected},但收到 ${received}`;\n }\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 `無效的 ${FormatDictionary[_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 FormatDictionary = {\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 const TypeDictionary = {\n nan: \"NaN\",\n number: \"nọ́mbà\",\n array: \"akopọ\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${issue.expected}, àmọ̀ a rí ${received}`;\n }\n return `Ìbáwọlé aṣìṣe: a ní láti fi ${expected}, àmọ̀ a rí ${received}`;\n }\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: ${FormatDictionary[_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","var _a;\nexport const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new WeakMap();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new WeakMap();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\n(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());\nexport const globalRegistry = globalThis.__zod_globalRegistry;\n","import * as checks from \"./checks.js\";\nimport * as registries from \"./registries.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\n// @__NO_SIDE_EFFECTS__\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mac(Class, params) {\n return new Class({\n type: \"string\",\n format: \"mac\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\n// @__NO_SIDE_EFFECTS__\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\n// @__NO_SIDE_EFFECTS__\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\n// @__NO_SIDE_EFFECTS__\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\n// @__NO_SIDE_EFFECTS__\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\n// @__NO_SIDE_EFFECTS__\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\n// @__NO_SIDE_EFFECTS__\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\n// @__NO_SIDE_EFFECTS__\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\n// @__NO_SIDE_EFFECTS__\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\n// @__NO_SIDE_EFFECTS__\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\n// @__NO_SIDE_EFFECTS__\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\n// @__NO_SIDE_EFFECTS__\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\n// slugify\n// @__NO_SIDE_EFFECTS__\nexport function _slugify() {\n return _overwrite((input) => util.slugify(input));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _xor(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n inclusive: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\n// @__NO_SIDE_EFFECTS__\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\n// @__NO_SIDE_EFFECTS__\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _superRefine(fn) {\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}\n// @__NO_SIDE_EFFECTS__\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function describe(description) {\n const ch = new checks.$ZodCheck({ check: \"describe\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, description });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function meta(metadata) {\n const ch = new checks.$ZodCheck({ check: \"meta\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, ...metadata });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n return codec;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import { globalRegistry } from \"./registries.js\";\n// function initializeContext<T extends schemas.$ZodType>(inputs: JSONSchemaGeneratorParams<T>): ToJSONSchemaContext<T> {\n// return {\n// processor: inputs.processor,\n// metadataRegistry: inputs.metadata ?? globalRegistry,\n// target: inputs.target ?? \"draft-2020-12\",\n// unrepresentable: inputs.unrepresentable ?? \"throw\",\n// };\n// }\nexport function initializeContext(params) {\n // Normalize target: convert old non-hyphenated versions to hyphenated versions\n let target = params?.target ?? \"draft-2020-12\";\n if (target === \"draft-4\")\n target = \"draft-04\";\n if (target === \"draft-7\")\n target = \"draft-07\";\n return {\n processors: params.processors ?? {},\n metadataRegistry: params?.metadata ?? globalRegistry,\n target,\n unrepresentable: params?.unrepresentable ?? \"throw\",\n override: params?.override ?? (() => { }),\n io: params?.io ?? \"output\",\n counter: 0,\n seen: new Map(),\n cycles: params?.cycles ?? \"ref\",\n reused: params?.reused ?? \"inline\",\n external: params?.external ?? undefined,\n };\n}\nexport function process(schema, ctx, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n // check for schema in seens\n const seen = ctx.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n ctx.seen.set(schema, result);\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n if (schema._zod.processJSONSchema) {\n schema._zod.processJSONSchema(ctx, result.schema, params);\n }\n else {\n const _json = result.schema;\n const processor = ctx.processors[def.type];\n if (!processor) {\n throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`);\n }\n processor(schema, ctx, _json, params);\n }\n const parent = schema._zod.parent;\n if (parent) {\n // Also set ref if processor didn't (for inheritance)\n if (!result.ref)\n result.ref = parent;\n process(parent, ctx, params);\n ctx.seen.get(parent).isParent = true;\n }\n }\n // metadata\n const meta = ctx.metadataRegistry.get(schema);\n if (meta)\n Object.assign(result.schema, meta);\n if (ctx.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (ctx.io === \"input\" && result.schema._prefault)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from ctx.seen in case it was overwritten\n const _result = ctx.seen.get(schema);\n return _result.schema;\n}\nexport function extractDefs(ctx, schema\n// params: EmitParams\n) {\n // iterate over seen map;\n const root = ctx.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // Track ids to detect duplicates across different schemas\n const idToSchema = new Map();\n for (const entry of ctx.seen.entries()) {\n const id = ctx.metadataRegistry.get(entry[0])?.id;\n if (id) {\n const existing = idToSchema.get(id);\n if (existing && existing !== entry[0]) {\n throw new Error(`Duplicate schema id \"${id}\" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);\n }\n idToSchema.set(id, entry[0]);\n }\n }\n // returns a ref to the schema\n // defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes\n // multiple schemas map to the same seen object.\n // e.g. lazy\n // external is configured\n const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (ctx.external) {\n const externalId = ctx.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${ctx.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = ctx.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n }\n if (entry[1] === root) {\n return { ref: \"#\" };\n }\n // self-contained schema\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`;\n return { defId, ref: defUriPrefix + defId };\n };\n // stored cached version in `def` property\n // remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema\n // or if the schema is the root schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (ctx.cycles === \"throw\") {\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/<root>` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (ctx.external) {\n const ext = ctx.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = ctx.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (ctx.reused === \"ref\") {\n extractToDef(entry);\n // biome-ignore lint:\n continue;\n }\n }\n }\n}\nexport function finalize(ctx, schema) {\n const root = ctx.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // flatten refs - inherit properties from parent schemas\n const flattenRef = (zodSchema) => {\n const seen = ctx.seen.get(zodSchema);\n // already processed\n if (seen.ref === null)\n return;\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n const ref = seen.ref;\n seen.ref = null; // prevent infinite recursion\n if (ref) {\n flattenRef(ref);\n const refSeen = ctx.seen.get(ref);\n const refSchema = refSeen.schema;\n // merge referenced schema into current\n if (refSchema.$ref && (ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\")) {\n // older drafts can't combine $ref with other properties\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n Object.assign(schema, refSchema);\n }\n // restore child's own properties (child wins)\n Object.assign(schema, _cached);\n const isParentRef = zodSchema._zod.parent === ref;\n // For parent chain, child is a refinement - remove parent-only properties\n if (isParentRef) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (!(key in _cached)) {\n delete schema[key];\n }\n }\n }\n // When ref was extracted to $defs, remove properties that match the definition\n if (refSchema.$ref && refSeen.def) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) {\n delete schema[key];\n }\n }\n }\n }\n // If parent was extracted (has $ref), propagate $ref to this schema\n // This handles cases like: readonly().meta({id}).describe()\n // where processor sets ref to innerType but parent should be referenced\n const parent = zodSchema._zod.parent;\n if (parent && parent !== ref) {\n // Ensure parent is processed first so its def has inherited properties\n flattenRef(parent);\n const parentSeen = ctx.seen.get(parent);\n if (parentSeen?.schema.$ref) {\n schema.$ref = parentSeen.schema.$ref;\n // De-duplicate with parent's definition\n if (parentSeen.def) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) {\n delete schema[key];\n }\n }\n }\n }\n }\n // execute overrides\n ctx.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n for (const entry of [...ctx.seen.entries()].reverse()) {\n flattenRef(entry[0]);\n }\n const result = {};\n if (ctx.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (ctx.target === \"draft-07\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (ctx.target === \"draft-04\") {\n result.$schema = \"http://json-schema.org/draft-04/schema#\";\n }\n else if (ctx.target === \"openapi-3.0\") {\n // OpenAPI 3.0 schema objects should not include a $schema property\n }\n else {\n // Arbitrary string values are allowed but won't have a $schema property set\n }\n if (ctx.external?.uri) {\n const id = ctx.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = ctx.external.uri(id);\n }\n Object.assign(result, root.def ?? root.schema);\n // build defs object\n const defs = ctx.external?.defs ?? {};\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n defs[seen.defId] = seen.def;\n }\n }\n // set definitions in result\n if (ctx.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (ctx.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed\n // each call to finalize() is functionally independent\n // though the seen map is shared\n const finalized = JSON.parse(JSON.stringify(result));\n Object.defineProperty(finalized, \"~standard\", {\n value: {\n ...schema[\"~standard\"],\n jsonSchema: {\n input: createStandardJSONSchemaMethod(schema, \"input\", ctx.processors),\n output: createStandardJSONSchemaMethod(schema, \"output\", ctx.processors),\n },\n },\n enumerable: false,\n writable: false,\n });\n return finalized;\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const def = _schema._zod.def;\n if (def.type === \"transform\")\n return true;\n if (def.type === \"array\")\n return isTransforming(def.element, ctx);\n if (def.type === \"set\")\n return isTransforming(def.valueType, ctx);\n if (def.type === \"lazy\")\n return isTransforming(def.getter(), ctx);\n if (def.type === \"promise\" ||\n def.type === \"optional\" ||\n def.type === \"nonoptional\" ||\n def.type === \"nullable\" ||\n def.type === \"readonly\" ||\n def.type === \"default\" ||\n def.type === \"prefault\") {\n return isTransforming(def.innerType, ctx);\n }\n if (def.type === \"intersection\") {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n if (def.type === \"record\" || def.type === \"map\") {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n if (def.type === \"pipe\") {\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n if (def.type === \"object\") {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n if (def.type === \"union\") {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n if (def.type === \"tuple\") {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n return false;\n}\n/**\n * Creates a toJSONSchema method for a schema instance.\n * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing.\n */\nexport const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {\n const ctx = initializeContext({ ...params, processors });\n process(schema, ctx);\n extractDefs(ctx, schema);\n return finalize(ctx, schema);\n};\nexport const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {\n const { libraryOptions, target } = params ?? {};\n const ctx = initializeContext({ ...(libraryOptions ?? {}), target, io, processors });\n process(schema, ctx);\n extractDefs(ctx, schema);\n return finalize(ctx, schema);\n};\n","import { extractDefs, finalize, initializeContext, process, } from \"./to-json-schema.js\";\nimport { getEnumValues } from \"./util.js\";\nconst formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n};\n// ==================== SIMPLE TYPE PROCESSORS ====================\nexport const stringProcessor = (schema, ctx, _json, _params) => {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n .bag;\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n // JSON Schema format: \"time\" requires a full time with offset or Z\n // z.iso.time() does not include timezone information, so format: \"time\" should never be used\n if (format === \"time\") {\n delete json.format;\n }\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const regexes = [...patterns];\n if (regexes.length === 1)\n json.pattern = regexes[0].source;\n else if (regexes.length > 1) {\n json.allOf = [\n ...regexes.map((regex) => ({\n ...(ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\"\n ? { type: \"string\" }\n : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n};\nexport const numberProcessor = (schema, ctx, _json, _params) => {\n const json = _json;\n const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n if (typeof format === \"string\" && format.includes(\"int\"))\n json.type = \"integer\";\n else\n json.type = \"number\";\n if (typeof exclusiveMinimum === \"number\") {\n if (ctx.target === \"draft-04\" || ctx.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\" && ctx.target !== \"draft-04\") {\n if (exclusiveMinimum >= minimum)\n delete json.minimum;\n else\n delete json.exclusiveMinimum;\n }\n }\n if (typeof exclusiveMaximum === \"number\") {\n if (ctx.target === \"draft-04\" || ctx.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\" && ctx.target !== \"draft-04\") {\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};\nexport const booleanProcessor = (_schema, _ctx, json, _params) => {\n json.type = \"boolean\";\n};\nexport const bigintProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"BigInt cannot be represented in JSON Schema\");\n }\n};\nexport const symbolProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Symbols cannot be represented in JSON Schema\");\n }\n};\nexport const nullProcessor = (_schema, ctx, json, _params) => {\n if (ctx.target === \"openapi-3.0\") {\n json.type = \"string\";\n json.nullable = true;\n json.enum = [null];\n }\n else {\n json.type = \"null\";\n }\n};\nexport const undefinedProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Undefined cannot be represented in JSON Schema\");\n }\n};\nexport const voidProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Void cannot be represented in JSON Schema\");\n }\n};\nexport const neverProcessor = (_schema, _ctx, json, _params) => {\n json.not = {};\n};\nexport const anyProcessor = (_schema, _ctx, _json, _params) => {\n // empty schema accepts anything\n};\nexport const unknownProcessor = (_schema, _ctx, _json, _params) => {\n // empty schema accepts anything\n};\nexport const dateProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Date cannot be represented in JSON Schema\");\n }\n};\nexport const enumProcessor = (schema, _ctx, json, _params) => {\n const def = schema._zod.def;\n const values = getEnumValues(def.entries);\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n};\nexport const literalProcessor = (schema, ctx, json, _params) => {\n const def = schema._zod.def;\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n }\n else {\n // do not add to vals\n }\n }\n else if (typeof val === \"bigint\") {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n }\n else {\n vals.push(Number(val));\n }\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n if (ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\") {\n json.enum = [val];\n }\n else {\n json.const = val;\n }\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"boolean\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n};\nexport const nanProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"NaN cannot be represented in JSON Schema\");\n }\n};\nexport const templateLiteralProcessor = (schema, _ctx, json, _params) => {\n const _json = json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n _json.type = \"string\";\n _json.pattern = pattern.source;\n};\nexport const fileProcessor = (schema, _ctx, json, _params) => {\n const _json = json;\n const file = {\n type: \"string\",\n format: \"binary\",\n contentEncoding: \"binary\",\n };\n const { minimum, maximum, mime } = schema._zod.bag;\n if (minimum !== undefined)\n file.minLength = minimum;\n if (maximum !== undefined)\n file.maxLength = maximum;\n if (mime) {\n if (mime.length === 1) {\n file.contentMediaType = mime[0];\n Object.assign(_json, file);\n }\n else {\n Object.assign(_json, file); // shared props at root\n _json.anyOf = mime.map((m) => ({ contentMediaType: m })); // only contentMediaType differs\n }\n }\n else {\n Object.assign(_json, file);\n }\n};\nexport const successProcessor = (_schema, _ctx, json, _params) => {\n json.type = \"boolean\";\n};\nexport const customProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n }\n};\nexport const functionProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Function types cannot be represented in JSON Schema\");\n }\n};\nexport const transformProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n }\n};\nexport const mapProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Map cannot be represented in JSON Schema\");\n }\n};\nexport const setProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Set cannot be represented in JSON Schema\");\n }\n};\n// ==================== COMPOSITE TYPE PROCESSORS ====================\nexport const arrayProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = process(def.element, ctx, { ...params, path: [...params.path, \"items\"] });\n};\nexport const objectProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"object\";\n json.properties = {};\n const shape = def.shape;\n for (const key in shape) {\n json.properties[key] = process(shape[key], ctx, {\n ...params,\n path: [...params.path, \"properties\", key],\n });\n }\n // required keys\n const allKeys = new Set(Object.keys(shape));\n const requiredKeys = new Set([...allKeys].filter((key) => {\n const v = def.shape[key]._zod;\n if (ctx.io === \"input\") {\n return v.optin === undefined;\n }\n else {\n return v.optout === undefined;\n }\n }));\n if (requiredKeys.size > 0) {\n json.required = Array.from(requiredKeys);\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (ctx.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = process(def.catchall, ctx, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n};\nexport const unionProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n // Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches)\n // This includes both z.xor() and discriminated unions\n const isExclusive = def.inclusive === false;\n const options = def.options.map((x, i) => process(x, ctx, {\n ...params,\n path: [...params.path, isExclusive ? \"oneOf\" : \"anyOf\", i],\n }));\n if (isExclusive) {\n json.oneOf = options;\n }\n else {\n json.anyOf = options;\n }\n};\nexport const intersectionProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n const a = process(def.left, ctx, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = process(def.right, ctx, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n};\nexport const tupleProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"array\";\n const prefixPath = ctx.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n const restPath = ctx.target === \"draft-2020-12\" ? \"items\" : ctx.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n const prefixItems = def.items.map((x, i) => process(x, ctx, {\n ...params,\n path: [...params.path, prefixPath, i],\n }));\n const rest = def.rest\n ? process(def.rest, ctx, {\n ...params,\n path: [...params.path, restPath, ...(ctx.target === \"openapi-3.0\" ? [def.items.length] : [])],\n })\n : null;\n if (ctx.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n if (rest) {\n json.items = rest;\n }\n }\n else if (ctx.target === \"openapi-3.0\") {\n json.items = {\n anyOf: prefixItems,\n };\n if (rest) {\n json.items.anyOf.push(rest);\n }\n json.minItems = prefixItems.length;\n if (!rest) {\n json.maxItems = prefixItems.length;\n }\n }\n else {\n json.items = prefixItems;\n if (rest) {\n json.additionalItems = rest;\n }\n }\n // length\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n};\nexport const recordProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"object\";\n // For looseRecord with regex patterns, use patternProperties\n // This correctly represents \"only validate keys matching the pattern\" semantics\n // and composes well with allOf (intersections)\n const keyType = def.keyType;\n const keyBag = keyType._zod.bag;\n const patterns = keyBag?.patterns;\n if (def.mode === \"loose\" && patterns && patterns.size > 0) {\n // Use patternProperties for looseRecord with regex patterns\n const valueSchema = process(def.valueType, ctx, {\n ...params,\n path: [...params.path, \"patternProperties\", \"*\"],\n });\n json.patternProperties = {};\n for (const pattern of patterns) {\n json.patternProperties[pattern.source] = valueSchema;\n }\n }\n else {\n // Default behavior: use propertyNames + additionalProperties\n if (ctx.target === \"draft-07\" || ctx.target === \"draft-2020-12\") {\n json.propertyNames = process(def.keyType, ctx, {\n ...params,\n path: [...params.path, \"propertyNames\"],\n });\n }\n json.additionalProperties = process(def.valueType, ctx, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n // Add required for keys with discrete values (enum, literal, etc.)\n const keyValues = keyType._zod.values;\n if (keyValues) {\n const validKeyValues = [...keyValues].filter((v) => typeof v === \"string\" || typeof v === \"number\");\n if (validKeyValues.length > 0) {\n json.required = validKeyValues;\n }\n }\n};\nexport const nullableProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n const inner = process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n if (ctx.target === \"openapi-3.0\") {\n seen.ref = def.innerType;\n json.nullable = true;\n }\n else {\n json.anyOf = [inner, { type: \"null\" }];\n }\n};\nexport const nonoptionalProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const defaultProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n json.default = JSON.parse(JSON.stringify(def.defaultValue));\n};\nexport const prefaultProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n if (ctx.io === \"input\")\n json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n};\nexport const catchProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n json.default = catchValue;\n};\nexport const pipeProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n const innerType = ctx.io === \"input\" ? (def.in._zod.def.type === \"transform\" ? def.out : def.in) : def.out;\n process(innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = innerType;\n};\nexport const readonlyProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n json.readOnly = true;\n};\nexport const promiseProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const optionalProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const lazyProcessor = (schema, ctx, _json, params) => {\n const innerType = schema._zod.innerType;\n process(innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = innerType;\n};\n// ==================== ALL PROCESSORS ====================\nexport const allProcessors = {\n string: stringProcessor,\n number: numberProcessor,\n boolean: booleanProcessor,\n bigint: bigintProcessor,\n symbol: symbolProcessor,\n null: nullProcessor,\n undefined: undefinedProcessor,\n void: voidProcessor,\n never: neverProcessor,\n any: anyProcessor,\n unknown: unknownProcessor,\n date: dateProcessor,\n enum: enumProcessor,\n literal: literalProcessor,\n nan: nanProcessor,\n template_literal: templateLiteralProcessor,\n file: fileProcessor,\n success: successProcessor,\n custom: customProcessor,\n function: functionProcessor,\n transform: transformProcessor,\n map: mapProcessor,\n set: setProcessor,\n array: arrayProcessor,\n object: objectProcessor,\n union: unionProcessor,\n intersection: intersectionProcessor,\n tuple: tupleProcessor,\n record: recordProcessor,\n nullable: nullableProcessor,\n nonoptional: nonoptionalProcessor,\n default: defaultProcessor,\n prefault: prefaultProcessor,\n catch: catchProcessor,\n pipe: pipeProcessor,\n readonly: readonlyProcessor,\n promise: promiseProcessor,\n optional: optionalProcessor,\n lazy: lazyProcessor,\n};\nexport function toJSONSchema(input, params) {\n if (\"_idmap\" in input) {\n // Registry case\n const registry = input;\n const ctx = initializeContext({ ...params, processors: allProcessors });\n const defs = {};\n // First pass: process all schemas to build the seen map\n for (const entry of registry._idmap.entries()) {\n const [_, schema] = entry;\n process(schema, ctx);\n }\n const schemas = {};\n const external = {\n registry,\n uri: params?.uri,\n defs,\n };\n // Update the context with external configuration\n ctx.external = external;\n // Second pass: emit each schema\n for (const entry of registry._idmap.entries()) {\n const [key, schema] = entry;\n extractDefs(ctx, schema);\n schemas[key] = finalize(ctx, schema);\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n // Single schema case\n const ctx = initializeContext({ ...params, processors: allProcessors });\n process(input, ctx);\n extractDefs(ctx, input);\n return finalize(ctx, input);\n}\n","import { allProcessors } from \"./json-schema-processors.js\";\nimport { extractDefs, finalize, initializeContext, process, } from \"./to-json-schema.js\";\n/**\n * Legacy class-based interface for JSON Schema generation.\n * This class wraps the new functional implementation to provide backward compatibility.\n *\n * @deprecated Use the `toJSONSchema` function instead for new code.\n *\n * @example\n * ```typescript\n * // Legacy usage (still supported)\n * const gen = new JSONSchemaGenerator({ target: \"draft-07\" });\n * gen.process(schema);\n * const result = gen.emit(schema);\n *\n * // Preferred modern usage\n * const result = toJSONSchema(schema, { target: \"draft-07\" });\n * ```\n */\nexport class JSONSchemaGenerator {\n /** @deprecated Access via ctx instead */\n get metadataRegistry() {\n return this.ctx.metadataRegistry;\n }\n /** @deprecated Access via ctx instead */\n get target() {\n return this.ctx.target;\n }\n /** @deprecated Access via ctx instead */\n get unrepresentable() {\n return this.ctx.unrepresentable;\n }\n /** @deprecated Access via ctx instead */\n get override() {\n return this.ctx.override;\n }\n /** @deprecated Access via ctx instead */\n get io() {\n return this.ctx.io;\n }\n /** @deprecated Access via ctx instead */\n get counter() {\n return this.ctx.counter;\n }\n set counter(value) {\n this.ctx.counter = value;\n }\n /** @deprecated Access via ctx instead */\n get seen() {\n return this.ctx.seen;\n }\n constructor(params) {\n // Normalize target for internal context\n let normalizedTarget = params?.target ?? \"draft-2020-12\";\n if (normalizedTarget === \"draft-4\")\n normalizedTarget = \"draft-04\";\n if (normalizedTarget === \"draft-7\")\n normalizedTarget = \"draft-07\";\n this.ctx = initializeContext({\n processors: allProcessors,\n target: normalizedTarget,\n ...(params?.metadata && { metadata: params.metadata }),\n ...(params?.unrepresentable && { unrepresentable: params.unrepresentable }),\n ...(params?.override && { override: params.override }),\n ...(params?.io && { io: params.io }),\n });\n }\n /**\n * Process a schema to prepare it for JSON Schema generation.\n * This must be called before emit().\n */\n process(schema, _params = { path: [], schemaPath: [] }) {\n return process(schema, this.ctx, _params);\n }\n /**\n * Emit the final JSON Schema after processing.\n * Must call process() first.\n */\n emit(schema, _params) {\n // Apply emit params to the context\n if (_params) {\n if (_params.cycles)\n this.ctx.cycles = _params.cycles;\n if (_params.reused)\n this.ctx.reused = _params.reused;\n if (_params.external)\n this.ctx.external = _params.external;\n }\n extractDefs(this.ctx, schema);\n const result = finalize(this.ctx, schema);\n // Strip ~standard property to match old implementation's return type\n const { \"~standard\": _, ...plainResult } = result;\n return plainResult;\n }\n}\n","export {};\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as processors from \"../core/json-schema-processors.js\";\nimport { createStandardJSONSchemaMethod, createToJSONSchemaMethod } from \"../core/to-json-schema.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n Object.assign(inst[\"~standard\"], {\n jsonSchema: {\n input: createStandardJSONSchemaMethod(inst, \"input\"),\n output: createStandardJSONSchemaMethod(inst, \"output\"),\n },\n });\n inst.toJSONSchema = createToJSONSchemaMethod(inst, {});\n inst.def = def;\n inst.type = def.type;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone(util.mergeDefs(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.with = inst.check;\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.exactOptional = () => exactOptional(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 inst.apply = (fn) => fn(inst);\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.stringProcessor(inst, ctx, json, params);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // 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 inst.slugify = () => inst.check(checks.slugify());\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 ZodMAC = /*@__PURE__*/ core.$constructor(\"ZodMAC\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodMAC.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function mac(params) {\n return core._mac(ZodMAC, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.numberProcessor(inst, ctx, json, params);\n 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 inst._zod.processJSONSchema = (ctx, json, params) => processors.booleanProcessor(inst, ctx, json, params);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.bigintProcessor(inst, ctx, json, params);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.symbolProcessor(inst, ctx, json, params);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.undefinedProcessor(inst, ctx, json, params);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nullProcessor(inst, ctx, json, params);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.anyProcessor(inst, ctx, json, params);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unknownProcessor(inst, ctx, json, params);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.neverProcessor(inst, ctx, json, params);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.voidProcessor(inst, ctx, json, params);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.dateProcessor(inst, ctx, json, params);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.arrayProcessor(inst, ctx, json, params);\n inst.element = def.element;\n 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 inst._zod.processJSONSchema = (ctx, json, params) => processors.objectProcessor(inst, ctx, json, params);\n util.defineLazy(inst, \"shape\", () => {\n return def.shape;\n });\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 shape: shape ?? {},\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodXor = /*@__PURE__*/ core.$constructor(\"ZodXor\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodXor.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n inst.options = def.options;\n});\n/** Creates an exclusive union (XOR) where exactly one option must match.\n * Unlike regular unions that succeed when any option matches, xor fails if\n * zero or more than one option matches the input. */\nexport function xor(options, params) {\n return new ZodXor({\n type: \"union\",\n options: options,\n inclusive: false,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.intersectionProcessor(inst, ctx, json, params);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.tupleProcessor(inst, ctx, json, params);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.recordProcessor(inst, ctx, json, params);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n const k = core.clone(keyType);\n k._zod.values = undefined;\n return new ZodRecord({\n type: \"record\",\n keyType: k,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function looseRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n mode: \"loose\",\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.mapProcessor(inst, ctx, json, params);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.setProcessor(inst, ctx, json, params);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.enumProcessor(inst, ctx, json, params);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.literalProcessor(inst, ctx, json, params);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.fileProcessor(inst, ctx, json, params);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.transformProcessor(inst, ctx, json, params);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n 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._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodExactOptional = /*@__PURE__*/ core.$constructor(\"ZodExactOptional\", (inst, def) => {\n core.$ZodExactOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function exactOptional(innerType) {\n return new ZodExactOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nullableProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.defaultProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.prefaultProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nonoptionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.successProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.catchProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nanProcessor(inst, ctx, json, params);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.pipeProcessor(inst, ctx, json, params);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.readonlyProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.templateLiteralProcessor(inst, ctx, json, params);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.lazyProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.promiseProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.functionProcessor(inst, ctx, json, params);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.customProcessor(inst, ctx, json, params);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n return core._superRefine(fn);\n}\n// Re-export describe and meta from core\nexport const describe = core.describe;\nexport const meta = core.meta;\nfunction _instanceof(cls, params = {}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n // Override check to emit invalid_type instead of custom\n inst._zod.check = (payload) => {\n if (!(payload.value instanceof cls)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: cls.name,\n input: payload.value,\n inst,\n path: [...(inst._zod.def.path ?? [])],\n });\n }\n };\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","export { _lt as lt, _lte as lte, _gt as gt, _gte as gte, _positive as positive, _negative as negative, _nonpositive as nonpositive, _nonnegative as nonnegative, _multipleOf as multipleOf, _maxSize as maxSize, _minSize as minSize, _size as size, _maxLength as maxLength, _minLength as minLength, _length as length, _regex as regex, _lowercase as lowercase, _uppercase as uppercase, _includes as includes, _startsWith as startsWith, _endsWith as endsWith, _property as property, _mime as mime, _overwrite as overwrite, _normalize as normalize, _trim as trim, _toLowerCase as toLowerCase, _toUpperCase as toUpperCase, _slugify as slugify, } from \"../core/index.js\";\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => {\n inst.issues.push(issue);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => {\n inst.issues.push(...issues);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = 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","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n","import { globalRegistry } from \"../core/registries.js\";\nimport * as _checks from \"./checks.js\";\nimport * as _iso from \"./iso.js\";\nimport * as _schemas from \"./schemas.js\";\n// Local z object to avoid circular dependency with ../index.js\nconst z = {\n ..._schemas,\n ..._checks,\n iso: _iso,\n};\n// Keys that are recognized and handled by the conversion logic\nconst RECOGNIZED_KEYS = new Set([\n // Schema identification\n \"$schema\",\n \"$ref\",\n \"$defs\",\n \"definitions\",\n // Core schema keywords\n \"$id\",\n \"id\",\n \"$comment\",\n \"$anchor\",\n \"$vocabulary\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n // Type\n \"type\",\n \"enum\",\n \"const\",\n // Composition\n \"anyOf\",\n \"oneOf\",\n \"allOf\",\n \"not\",\n // Object\n \"properties\",\n \"required\",\n \"additionalProperties\",\n \"patternProperties\",\n \"propertyNames\",\n \"minProperties\",\n \"maxProperties\",\n // Array\n \"items\",\n \"prefixItems\",\n \"additionalItems\",\n \"minItems\",\n \"maxItems\",\n \"uniqueItems\",\n \"contains\",\n \"minContains\",\n \"maxContains\",\n // String\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"format\",\n // Number\n \"minimum\",\n \"maximum\",\n \"exclusiveMinimum\",\n \"exclusiveMaximum\",\n \"multipleOf\",\n // Already handled metadata\n \"description\",\n \"default\",\n // Content\n \"contentEncoding\",\n \"contentMediaType\",\n \"contentSchema\",\n // Unsupported (error-throwing)\n \"unevaluatedItems\",\n \"unevaluatedProperties\",\n \"if\",\n \"then\",\n \"else\",\n \"dependentSchemas\",\n \"dependentRequired\",\n // OpenAPI\n \"nullable\",\n \"readOnly\",\n]);\nfunction detectVersion(schema, defaultTarget) {\n const $schema = schema.$schema;\n if ($schema === \"https://json-schema.org/draft/2020-12/schema\") {\n return \"draft-2020-12\";\n }\n if ($schema === \"http://json-schema.org/draft-07/schema#\") {\n return \"draft-7\";\n }\n if ($schema === \"http://json-schema.org/draft-04/schema#\") {\n return \"draft-4\";\n }\n // Use defaultTarget if provided, otherwise default to draft-2020-12\n return defaultTarget ?? \"draft-2020-12\";\n}\nfunction resolveRef(ref, ctx) {\n if (!ref.startsWith(\"#\")) {\n throw new Error(\"External $ref is not supported, only local refs (#/...) are allowed\");\n }\n const path = ref.slice(1).split(\"/\").filter(Boolean);\n // Handle root reference \"#\"\n if (path.length === 0) {\n return ctx.rootSchema;\n }\n const defsKey = ctx.version === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (path[0] === defsKey) {\n const key = path[1];\n if (!key || !ctx.defs[key]) {\n throw new Error(`Reference not found: ${ref}`);\n }\n return ctx.defs[key];\n }\n throw new Error(`Reference not found: ${ref}`);\n}\nfunction convertBaseSchema(schema, ctx) {\n // Handle unsupported features\n if (schema.not !== undefined) {\n // Special case: { not: {} } represents never\n if (typeof schema.not === \"object\" && Object.keys(schema.not).length === 0) {\n return z.never();\n }\n throw new Error(\"not is not supported in Zod (except { not: {} } for never)\");\n }\n if (schema.unevaluatedItems !== undefined) {\n throw new Error(\"unevaluatedItems is not supported\");\n }\n if (schema.unevaluatedProperties !== undefined) {\n throw new Error(\"unevaluatedProperties is not supported\");\n }\n if (schema.if !== undefined || schema.then !== undefined || schema.else !== undefined) {\n throw new Error(\"Conditional schemas (if/then/else) are not supported\");\n }\n if (schema.dependentSchemas !== undefined || schema.dependentRequired !== undefined) {\n throw new Error(\"dependentSchemas and dependentRequired are not supported\");\n }\n // Handle $ref\n if (schema.$ref) {\n const refPath = schema.$ref;\n if (ctx.refs.has(refPath)) {\n return ctx.refs.get(refPath);\n }\n if (ctx.processing.has(refPath)) {\n // Circular reference - use lazy\n return z.lazy(() => {\n if (!ctx.refs.has(refPath)) {\n throw new Error(`Circular reference not resolved: ${refPath}`);\n }\n return ctx.refs.get(refPath);\n });\n }\n ctx.processing.add(refPath);\n const resolved = resolveRef(refPath, ctx);\n const zodSchema = convertSchema(resolved, ctx);\n ctx.refs.set(refPath, zodSchema);\n ctx.processing.delete(refPath);\n return zodSchema;\n }\n // Handle enum\n if (schema.enum !== undefined) {\n const enumValues = schema.enum;\n // Special case: OpenAPI 3.0 null representation { type: \"string\", nullable: true, enum: [null] }\n if (ctx.version === \"openapi-3.0\" &&\n schema.nullable === true &&\n enumValues.length === 1 &&\n enumValues[0] === null) {\n return z.null();\n }\n if (enumValues.length === 0) {\n return z.never();\n }\n if (enumValues.length === 1) {\n return z.literal(enumValues[0]);\n }\n // Check if all values are strings\n if (enumValues.every((v) => typeof v === \"string\")) {\n return z.enum(enumValues);\n }\n // Mixed types - use union of literals\n const literalSchemas = enumValues.map((v) => z.literal(v));\n if (literalSchemas.length < 2) {\n return literalSchemas[0];\n }\n return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]);\n }\n // Handle const\n if (schema.const !== undefined) {\n return z.literal(schema.const);\n }\n // Handle type\n const type = schema.type;\n if (Array.isArray(type)) {\n // Expand type array into anyOf union\n const typeSchemas = type.map((t) => {\n const typeSchema = { ...schema, type: t };\n return convertBaseSchema(typeSchema, ctx);\n });\n if (typeSchemas.length === 0) {\n return z.never();\n }\n if (typeSchemas.length === 1) {\n return typeSchemas[0];\n }\n return z.union(typeSchemas);\n }\n if (!type) {\n // No type specified - empty schema (any)\n return z.any();\n }\n let zodSchema;\n switch (type) {\n case \"string\": {\n let stringSchema = z.string();\n // Apply format using .check() with Zod format functions\n if (schema.format) {\n const format = schema.format;\n // Map common formats to Zod check functions\n if (format === \"email\") {\n stringSchema = stringSchema.check(z.email());\n }\n else if (format === \"uri\" || format === \"uri-reference\") {\n stringSchema = stringSchema.check(z.url());\n }\n else if (format === \"uuid\" || format === \"guid\") {\n stringSchema = stringSchema.check(z.uuid());\n }\n else if (format === \"date-time\") {\n stringSchema = stringSchema.check(z.iso.datetime());\n }\n else if (format === \"date\") {\n stringSchema = stringSchema.check(z.iso.date());\n }\n else if (format === \"time\") {\n stringSchema = stringSchema.check(z.iso.time());\n }\n else if (format === \"duration\") {\n stringSchema = stringSchema.check(z.iso.duration());\n }\n else if (format === \"ipv4\") {\n stringSchema = stringSchema.check(z.ipv4());\n }\n else if (format === \"ipv6\") {\n stringSchema = stringSchema.check(z.ipv6());\n }\n else if (format === \"mac\") {\n stringSchema = stringSchema.check(z.mac());\n }\n else if (format === \"cidr\") {\n stringSchema = stringSchema.check(z.cidrv4());\n }\n else if (format === \"cidr-v6\") {\n stringSchema = stringSchema.check(z.cidrv6());\n }\n else if (format === \"base64\") {\n stringSchema = stringSchema.check(z.base64());\n }\n else if (format === \"base64url\") {\n stringSchema = stringSchema.check(z.base64url());\n }\n else if (format === \"e164\") {\n stringSchema = stringSchema.check(z.e164());\n }\n else if (format === \"jwt\") {\n stringSchema = stringSchema.check(z.jwt());\n }\n else if (format === \"emoji\") {\n stringSchema = stringSchema.check(z.emoji());\n }\n else if (format === \"nanoid\") {\n stringSchema = stringSchema.check(z.nanoid());\n }\n else if (format === \"cuid\") {\n stringSchema = stringSchema.check(z.cuid());\n }\n else if (format === \"cuid2\") {\n stringSchema = stringSchema.check(z.cuid2());\n }\n else if (format === \"ulid\") {\n stringSchema = stringSchema.check(z.ulid());\n }\n else if (format === \"xid\") {\n stringSchema = stringSchema.check(z.xid());\n }\n else if (format === \"ksuid\") {\n stringSchema = stringSchema.check(z.ksuid());\n }\n // Note: json-string format is not currently supported by Zod\n // Custom formats are ignored - keep as plain string\n }\n // Apply constraints\n if (typeof schema.minLength === \"number\") {\n stringSchema = stringSchema.min(schema.minLength);\n }\n if (typeof schema.maxLength === \"number\") {\n stringSchema = stringSchema.max(schema.maxLength);\n }\n if (schema.pattern) {\n // JSON Schema patterns are not implicitly anchored (match anywhere in string)\n stringSchema = stringSchema.regex(new RegExp(schema.pattern));\n }\n zodSchema = stringSchema;\n break;\n }\n case \"number\":\n case \"integer\": {\n let numberSchema = type === \"integer\" ? z.number().int() : z.number();\n // Apply constraints\n if (typeof schema.minimum === \"number\") {\n numberSchema = numberSchema.min(schema.minimum);\n }\n if (typeof schema.maximum === \"number\") {\n numberSchema = numberSchema.max(schema.maximum);\n }\n if (typeof schema.exclusiveMinimum === \"number\") {\n numberSchema = numberSchema.gt(schema.exclusiveMinimum);\n }\n else if (schema.exclusiveMinimum === true && typeof schema.minimum === \"number\") {\n numberSchema = numberSchema.gt(schema.minimum);\n }\n if (typeof schema.exclusiveMaximum === \"number\") {\n numberSchema = numberSchema.lt(schema.exclusiveMaximum);\n }\n else if (schema.exclusiveMaximum === true && typeof schema.maximum === \"number\") {\n numberSchema = numberSchema.lt(schema.maximum);\n }\n if (typeof schema.multipleOf === \"number\") {\n numberSchema = numberSchema.multipleOf(schema.multipleOf);\n }\n zodSchema = numberSchema;\n break;\n }\n case \"boolean\": {\n zodSchema = z.boolean();\n break;\n }\n case \"null\": {\n zodSchema = z.null();\n break;\n }\n case \"object\": {\n const shape = {};\n const properties = schema.properties || {};\n const requiredSet = new Set(schema.required || []);\n // Convert properties - mark optional ones\n for (const [key, propSchema] of Object.entries(properties)) {\n const propZodSchema = convertSchema(propSchema, ctx);\n // If not in required array, make it optional\n shape[key] = requiredSet.has(key) ? propZodSchema : propZodSchema.optional();\n }\n // Handle propertyNames\n if (schema.propertyNames) {\n const keySchema = convertSchema(schema.propertyNames, ctx);\n const valueSchema = schema.additionalProperties && typeof schema.additionalProperties === \"object\"\n ? convertSchema(schema.additionalProperties, ctx)\n : z.any();\n // Case A: No properties (pure record)\n if (Object.keys(shape).length === 0) {\n zodSchema = z.record(keySchema, valueSchema);\n break;\n }\n // Case B: With properties (intersection of object and looseRecord)\n const objectSchema = z.object(shape).passthrough();\n const recordSchema = z.looseRecord(keySchema, valueSchema);\n zodSchema = z.intersection(objectSchema, recordSchema);\n break;\n }\n // Handle patternProperties\n if (schema.patternProperties) {\n // patternProperties: keys matching pattern must satisfy corresponding schema\n // Use loose records so non-matching keys pass through\n const patternProps = schema.patternProperties;\n const patternKeys = Object.keys(patternProps);\n const looseRecords = [];\n for (const pattern of patternKeys) {\n const patternValue = convertSchema(patternProps[pattern], ctx);\n const keySchema = z.string().regex(new RegExp(pattern));\n looseRecords.push(z.looseRecord(keySchema, patternValue));\n }\n // Build intersection: object schema + all pattern property records\n const schemasToIntersect = [];\n if (Object.keys(shape).length > 0) {\n // Use passthrough so patternProperties can validate additional keys\n schemasToIntersect.push(z.object(shape).passthrough());\n }\n schemasToIntersect.push(...looseRecords);\n if (schemasToIntersect.length === 0) {\n zodSchema = z.object({}).passthrough();\n }\n else if (schemasToIntersect.length === 1) {\n zodSchema = schemasToIntersect[0];\n }\n else {\n // Chain intersections: (A & B) & C & D ...\n let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]);\n for (let i = 2; i < schemasToIntersect.length; i++) {\n result = z.intersection(result, schemasToIntersect[i]);\n }\n zodSchema = result;\n }\n break;\n }\n // Handle additionalProperties\n // In JSON Schema, additionalProperties defaults to true (allow any extra properties)\n // In Zod, objects strip unknown keys by default, so we need to handle this explicitly\n const objectSchema = z.object(shape);\n if (schema.additionalProperties === false) {\n // Strict mode - no extra properties allowed\n zodSchema = objectSchema.strict();\n }\n else if (typeof schema.additionalProperties === \"object\") {\n // Extra properties must match the specified schema\n zodSchema = objectSchema.catchall(convertSchema(schema.additionalProperties, ctx));\n }\n else {\n // additionalProperties is true or undefined - allow any extra properties (passthrough)\n zodSchema = objectSchema.passthrough();\n }\n break;\n }\n case \"array\": {\n // TODO: uniqueItems is not supported\n // TODO: contains/minContains/maxContains are not supported\n // Check if this is a tuple (prefixItems or items as array)\n const prefixItems = schema.prefixItems;\n const items = schema.items;\n if (prefixItems && Array.isArray(prefixItems)) {\n // Tuple with prefixItems (draft-2020-12)\n const tupleItems = prefixItems.map((item) => convertSchema(item, ctx));\n const rest = items && typeof items === \"object\" && !Array.isArray(items)\n ? convertSchema(items, ctx)\n : undefined;\n if (rest) {\n zodSchema = z.tuple(tupleItems).rest(rest);\n }\n else {\n zodSchema = z.tuple(tupleItems);\n }\n // Apply minItems/maxItems constraints to tuples\n if (typeof schema.minItems === \"number\") {\n zodSchema = zodSchema.check(z.minLength(schema.minItems));\n }\n if (typeof schema.maxItems === \"number\") {\n zodSchema = zodSchema.check(z.maxLength(schema.maxItems));\n }\n }\n else if (Array.isArray(items)) {\n // Tuple with items array (draft-7)\n const tupleItems = items.map((item) => convertSchema(item, ctx));\n const rest = schema.additionalItems && typeof schema.additionalItems === \"object\"\n ? convertSchema(schema.additionalItems, ctx)\n : undefined; // additionalItems: false means no rest, handled by default tuple behavior\n if (rest) {\n zodSchema = z.tuple(tupleItems).rest(rest);\n }\n else {\n zodSchema = z.tuple(tupleItems);\n }\n // Apply minItems/maxItems constraints to tuples\n if (typeof schema.minItems === \"number\") {\n zodSchema = zodSchema.check(z.minLength(schema.minItems));\n }\n if (typeof schema.maxItems === \"number\") {\n zodSchema = zodSchema.check(z.maxLength(schema.maxItems));\n }\n }\n else if (items !== undefined) {\n // Regular array\n const element = convertSchema(items, ctx);\n let arraySchema = z.array(element);\n // Apply constraints\n if (typeof schema.minItems === \"number\") {\n arraySchema = arraySchema.min(schema.minItems);\n }\n if (typeof schema.maxItems === \"number\") {\n arraySchema = arraySchema.max(schema.maxItems);\n }\n zodSchema = arraySchema;\n }\n else {\n // No items specified - array of any\n zodSchema = z.array(z.any());\n }\n break;\n }\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n // Apply metadata\n if (schema.description) {\n zodSchema = zodSchema.describe(schema.description);\n }\n if (schema.default !== undefined) {\n zodSchema = zodSchema.default(schema.default);\n }\n return zodSchema;\n}\nfunction convertSchema(schema, ctx) {\n if (typeof schema === \"boolean\") {\n return schema ? z.any() : z.never();\n }\n // Convert base schema first (ignoring composition keywords)\n let baseSchema = convertBaseSchema(schema, ctx);\n const hasExplicitType = schema.type || schema.enum !== undefined || schema.const !== undefined;\n // Process composition keywords LAST (they can appear together)\n // Handle anyOf - wrap base schema with union\n if (schema.anyOf && Array.isArray(schema.anyOf)) {\n const options = schema.anyOf.map((s) => convertSchema(s, ctx));\n const anyOfUnion = z.union(options);\n baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion;\n }\n // Handle oneOf - exclusive union (exactly one must match)\n if (schema.oneOf && Array.isArray(schema.oneOf)) {\n const options = schema.oneOf.map((s) => convertSchema(s, ctx));\n const oneOfUnion = z.xor(options);\n baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion;\n }\n // Handle allOf - wrap base schema with intersection\n if (schema.allOf && Array.isArray(schema.allOf)) {\n if (schema.allOf.length === 0) {\n baseSchema = hasExplicitType ? baseSchema : z.any();\n }\n else {\n let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx);\n const startIdx = hasExplicitType ? 0 : 1;\n for (let i = startIdx; i < schema.allOf.length; i++) {\n result = z.intersection(result, convertSchema(schema.allOf[i], ctx));\n }\n baseSchema = result;\n }\n }\n // Handle nullable (OpenAPI 3.0)\n if (schema.nullable === true && ctx.version === \"openapi-3.0\") {\n baseSchema = z.nullable(baseSchema);\n }\n // Handle readOnly\n if (schema.readOnly === true) {\n baseSchema = z.readonly(baseSchema);\n }\n // Collect metadata: core schema keywords and unrecognized keys\n const extraMeta = {};\n // Core schema keywords that should be captured as metadata\n const coreMetadataKeys = [\"$id\", \"id\", \"$comment\", \"$anchor\", \"$vocabulary\", \"$dynamicRef\", \"$dynamicAnchor\"];\n for (const key of coreMetadataKeys) {\n if (key in schema) {\n extraMeta[key] = schema[key];\n }\n }\n // Content keywords - store as metadata\n const contentMetadataKeys = [\"contentEncoding\", \"contentMediaType\", \"contentSchema\"];\n for (const key of contentMetadataKeys) {\n if (key in schema) {\n extraMeta[key] = schema[key];\n }\n }\n // Unrecognized keys (custom metadata)\n for (const key of Object.keys(schema)) {\n if (!RECOGNIZED_KEYS.has(key)) {\n extraMeta[key] = schema[key];\n }\n }\n if (Object.keys(extraMeta).length > 0) {\n ctx.registry.add(baseSchema, extraMeta);\n }\n return baseSchema;\n}\n/**\n * Converts a JSON Schema to a Zod schema. This function should be considered semi-experimental. It's behavior is liable to change. */\nexport function fromJSONSchema(schema, params) {\n // Handle boolean schemas\n if (typeof schema === \"boolean\") {\n return schema ? z.any() : z.never();\n }\n const version = detectVersion(schema, params?.defaultTarget);\n const defs = (schema.$defs || schema.definitions || {});\n const ctx = {\n version,\n defs,\n refs: new Map(),\n processing: new Set(),\n rootSchema: schema,\n registry: params?.registry ?? globalRegistry,\n };\n return convertSchema(schema, ctx);\n}\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n","// Centralizes the orval workaround for \"open JSON object\" fields.\n//\n// Why `z.looseObject({})` instead of `z.unknown()` / `z.record(z.unknown())`:\n// nestjs-zod emits OpenAPI 3.1 fragments for those schemas, including a\n// `propertyNames` clause that orval (our frontend client generator) currently\n// rejects. `z.looseObject({})` round-trips through nestjs-zod as a flat\n// open object in the emitted spec, which orval consumes cleanly while\n// preserving the \"any JSON object\" runtime contract.\n//\n// TODO: once orval supports OpenAPI 3.1 (incl. `propertyNames`), migrate\n// every call site of `jsonObject()` to `z.unknown()` / `z.record(z.unknown())`\n// and delete this helper. Until then, this is the single source of truth —\n// do not inline `z.looseObject({})` at call sites.\nimport { z } from 'zod';\n\nexport const jsonObject = () => z.looseObject({});\n","import { z } from 'zod';\n\n// Slug shape mirrors the runtime contract enforced by OrganizationService:\n// lowercase ASCII letters/digits separated by single hyphens, no leading or\n// trailing hyphen, 1..63 chars. Used by GET /api/v1/organizations/:slug.\nconst SLUG_REGEX = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\nexport const organizationSlugSchema = z\n .string()\n .min(1, 'slug must not be empty')\n .max(63, 'slug must be 63 chars or fewer')\n .regex(SLUG_REGEX, 'slug must be lowercase alphanumeric with single hyphens');\n\n// Same shape as organization slugs — the agent table uses an\n// (organization_id, slug) UNIQUE so slugs only need to be unique per\n// organization.\nexport const agentSlugSchema = organizationSlugSchema;\n\nexport const getOrganizationParamsSchema = z.object({\n slug: organizationSlugSchema,\n});\n\nexport type GetOrganizationParams = z.infer<typeof getOrganizationParamsSchema>;\n\n// Shared response shape for GET /api/v1/organizations/me and\n// GET /api/v1/organizations/:slug. Lives here (and not next to the controller)\n// so apps/cli can validate the same JSON without depending on libs/api-client\n// (Angular HttpClient-only). Ownership is derived from\n// `organization_member.role = 'owner'` and surfaced through the members\n// endpoint (`GET /api/v1/organizations/:slug/members`).\nexport const organizationResponseSchema = z.object({\n id: z.uuid(),\n slug: organizationSlugSchema,\n name: z.string(),\n createdAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n});\n\nexport type OrganizationResponse = z.infer<typeof organizationResponseSchema>;\n\n// Request body for `POST /api/v1/organizations`. `tier` is fixed to `'free'`\n// in MVP — paid creation goes through Stripe Checkout on an existing org.\n// When `name` is omitted the service falls back to \"Organization de <email>\"\n// for parity with `createForUser`.\nexport const createOrganizationRequestSchema = z.object({\n name: z.string().trim().min(1).max(120).optional(),\n tier: z.literal('free').default('free'),\n});\nexport type CreateOrganizationRequest = z.infer<typeof createOrganizationRequestSchema>;\n","import { z } from 'zod';\nimport { jsonObject } from '../common/json-object';\nimport { organizationSlugSchema } from '../organizations/organizations';\n\n// installationStatusSchema is the canonical list of installation lifecycle\n// states. `agents.ts` imports it from here.\nexport const installationStatusSchema = z.enum([\n 'provisioning',\n 'active',\n 'failed',\n 'deprovisioning',\n 'deprovisioned',\n]);\nexport type InstallationStatus = z.infer<typeof installationStatusSchema>;\n\n// Feature 42: `cloud` (default — provisioned in Stackbone infra) vs `local`\n// (a `stackbone dev` session registered for visibility and refresh-survival).\n// Orthogonal to `status`; a local row is born `kind='local',status='active'`.\nexport const installationKindSchema = z.enum(['cloud', 'local']);\nexport type InstallationKind = z.infer<typeof installationKindSchema>;\n\n// Sentinel `agent_version` for local-dev rows. The agent's real running code\n// lives on the creator's disk; the column is non-null so we surface this\n// distinguishable string rather than a fake semver.\nexport const LOCAL_DEV_AGENT_VERSION = 'local-dev';\n\n// TTL after which a local-dev row with no `last_active_at` bump is hard-deleted\n// by the daily GC scheduler.\nexport const LOCAL_DEV_INACTIVITY_TTL_DAYS = 7;\n\n// --- Installations -----------------------------------------------------------\n// One row in `installation` represents an agent installed by an organization\n// and the lifecycle of its data plane provisioning. The schemas below shape\n// the HTTP contract between apps/web (or apps/cli) and the control plane API.\n\nexport const installationProviderSchema = z.enum([\n 'neon',\n 'r2',\n 'qstash',\n 'axiom',\n 'llm_gateway',\n 'secrets',\n]);\nexport type InstallationProvider = z.infer<typeof installationProviderSchema>;\n\n// Canonical execution order. Shared by the orchestrator (saga sequencing) and\n// the frontend stepper (UI step layout) so the two cannot drift. Partners\n// `neon`/`r2`/`qstash`/`axiom`/`llm_gateway` are independent and the\n// orchestrator runs them as a parallel batch; `secrets` always runs last\n// because it consumes the aggregated bag emitted by every partner.\nexport const PROVISIONER_ORDER: readonly InstallationProvider[] = [\n 'neon',\n 'r2',\n 'qstash',\n 'axiom',\n 'llm_gateway',\n 'secrets',\n] as const;\n\nexport const installationEventTypeSchema = z.enum([\n 'step_started',\n 'step_completed',\n 'step_failed',\n 'provisioning_completed',\n 'provisioning_failed',\n 'deprovisioning_started',\n 'deprovisioning_completed',\n]);\nexport type InstallationEventType = z.infer<typeof installationEventTypeSchema>;\n\n// Body of POST /api/installations. `agentVersion` defaults to the latest\n// published version when omitted; `config` is the user's snapshot of\n// agent config and gets validated against the manifest schema by the\n// service before being persisted.\nexport const createInstallationRequestSchema = z.object({\n agentId: z.uuid(),\n agentVersion: z.string().min(1).max(64).optional(),\n config: jsonObject().optional(),\n});\nexport type CreateInstallationRequest = z.infer<typeof createInstallationRequestSchema>;\n\nexport const installationParamsSchema = z.object({ id: z.uuid() });\nexport type InstallationParams = z.infer<typeof installationParamsSchema>;\n\n// Path-scoped installation lookup under\n// `/api/v1/organizations/:slug/installations/:id`. The single-segment shape\n// above is kept for handlers that resolve scoping internally.\nexport const installationInOrganizationParamsSchema = z.object({\n slug: organizationSlugSchema,\n id: z.uuid(),\n});\nexport type InstallationInOrganizationParams = z.infer<\n typeof installationInOrganizationParamsSchema\n>;\n\nexport const installationResponseSchema = z.object({\n id: z.uuid(),\n organizationId: z.uuid(),\n agentId: z.uuid(),\n agentVersion: z.string(),\n status: installationStatusSchema,\n // Feature 42: defaults to 'cloud' for back-compat (every existing serializer\n // returned cloud rows). Set explicitly on local-dev rows.\n kind: installationKindSchema.default('cloud'),\n localTunnelUrl: z.url().nullable().optional(),\n lastActiveAt: z.iso.datetime().nullable().optional(),\n config: jsonObject(),\n createdByUserId: z.uuid(),\n createdAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n});\nexport type InstallationResponse = z.infer<typeof installationResponseSchema>;\n\n// --- Local-dev installation surface (feature 42) ---------------------------\n// The CLI calls these endpoints from `stackbone init` / `stackbone link` (to\n// register the session) and from `stackbone dev` start/stop (to patch the\n// tunnel URL). The cloud `POST /installations` endpoint is untouched.\n\n// `POST /api/v1/installations/local-dev` — register or refresh a local-dev\n// session. Idempotent on (creatorOrganizationId, agentTemplateId): a second\n// call returns the existing row and bumps `last_active_at`.\nexport const createLocalDevInstallationRequestSchema = z.object({\n // Slug of the org that OWNS the agent_template (the \"creator\" side). Falls\n // on `creator_organization_id` in the row.\n creatorOrganizationSlug: organizationSlugSchema,\n // Slug of the template the dev session belongs to. The service resolves\n // it to `agent_id` and asserts the caller can develop against it.\n agentTemplateSlug: z.string().min(1).max(80),\n // Slug of the org the local install lives in (the \"end-user\" side). For a\n // creator iterating on their own template this is the same as\n // `creatorOrganizationSlug`. Defaults to the creator org when omitted.\n endUserOrganizationSlug: organizationSlugSchema.optional(),\n});\nexport type CreateLocalDevInstallationRequest = z.infer<\n typeof createLocalDevInstallationRequestSchema\n>;\n\n// `PATCH /api/v1/installations/local-dev/:id` — set or clear the tunnel URL.\n// Setting bumps `last_active_at`; clearing does not (the SIGINT-PATCH should\n// not extend the TTL of an abandoned session).\nexport const patchLocalDevInstallationRequestSchema = z.object({\n // `null` clears the URL (session stopped); a URL sets the new active URL.\n // Optional so a caller can patch other fields in the future without touching\n // the tunnel — for now this is the only mutable field.\n localTunnelUrl: z.url().nullable(),\n});\nexport type PatchLocalDevInstallationRequest = z.infer<\n typeof patchLocalDevInstallationRequestSchema\n>;\n\n// Response shape used by both POST and PATCH. Same wire shape as the cloud\n// installation response plus the deeplink ingredients the CLI needs to print.\nexport const localDevInstallationResponseSchema = installationResponseSchema.extend({\n // Slug of the org the install lives in. The CLI uses it to build\n // `/app/<orgSlug>/installations/<id>?stackbone-dev=…`.\n organizationSlug: organizationSlugSchema,\n // Slug of the template (the agent the install was created from). Surfaces\n // alongside the deeplink so the CLI can format `Agent <name>` rows.\n agentSlug: z.string().min(1).max(80),\n});\nexport type LocalDevInstallationResponse = z.infer<typeof localDevInstallationResponseSchema>;\n\n// Shape of every SSE frame the controller emits from\n// GET /api/installations/:id/events. Frontend stepper consumes `step` to\n// pick the right row and `type` to flip the badge state.\nexport const installationProgressEventSchema = z.object({\n id: z.uuid(),\n installationId: z.uuid(),\n type: installationEventTypeSchema,\n step: installationProviderSchema.nullable(),\n message: z.string().nullable(),\n payload: z.unknown().nullable(),\n createdAt: z.iso.datetime(),\n});\nexport type InstallationProgressEvent = z.infer<typeof installationProgressEventSchema>;\n","import { z } from 'zod';\nimport { jsonObject } from '../common/json-object';\nimport { agentSlugSchema, organizationSlugSchema } from '../organizations/organizations';\nimport { installationStatusSchema } from './installations';\n\n// --- F6: Agent Templates (global publication endpoints) ----------------------\n// The `agent` table (legacy name) stores `agent_templates` (product language).\n// The rename is deferred to M2-M7 of ADR 2026-05-07; here only the HTTP\n// routes change to use `agent-templates` language.\n\n// POST /api/v1/agent-templates — create/publish a template.\n// `organizationSlug` resolves which organization owns the template (the\n// \"creator org\"). We require it in the body because `activeOrganizationId`\n// from better-auth is disabled (path-scoped routing per F2 design).\nexport const createAgentTemplateRequestSchema = z.object({\n organizationSlug: organizationSlugSchema,\n name: z.string().min(1, 'name must not be empty').max(120),\n slug: agentSlugSchema.optional(),\n description: z.string().max(280).optional(),\n});\nexport type CreateAgentTemplateRequest = z.infer<typeof createAgentTemplateRequestSchema>;\n\n// GET /api/v1/agent-templates/:ownerOrgSlug/:templateSlug — read one template.\n// Uses a two-segment path so the unique `(org, slug)` compound key maps to\n// a single URL without requiring global uniqueness on the template slug alone.\nexport const getAgentTemplateParamsSchema = z.object({\n ownerOrgSlug: organizationSlugSchema,\n templateSlug: agentSlugSchema,\n});\nexport type GetAgentTemplateParams = z.infer<typeof getAgentTemplateParamsSchema>;\n\n// POST /api/v1/organizations/:slug/agent-templates/:id/publish (and /unpublish).\n// `:id` is the template UUID — the cross-tenant publish gate lives in\n// AgentsService, but at the boundary the Zod schema only validates the shape.\nexport const publishAgentTemplateParamsSchema = z.object({\n id: z.uuid(),\n});\nexport type PublishAgentTemplateParams = z.infer<typeof publishAgentTemplateParamsSchema>;\n\n// Response shape for agent-templates endpoints.\nexport const agentTemplateResponseSchema = z.object({\n id: z.uuid(),\n organizationId: z.uuid(),\n slug: agentSlugSchema,\n name: z.string(),\n description: z.string().nullable(),\n createdByUserId: z.uuid(),\n createdAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n});\nexport type AgentTemplateResponse = z.infer<typeof agentTemplateResponseSchema>;\n\n// --- F6: Scoped install endpoints (POST /api/v1/organizations/:slug/agents) --\n// Body for creating an installation. `templateOwnerOrgSlug` is the key that\n// enables cross-tenant install: the installer org (`:slug`) is independent of\n// the template owner org (`templateOwnerOrgSlug`). When omitted, the template\n// must live in the same org as the installer (same-tenant install shortcut).\nexport const createInstallationBySlugRequestSchema = z.object({\n templateOwnerOrgSlug: organizationSlugSchema,\n templateSlug: agentSlugSchema,\n templateVersion: z.string().min(1).max(64).optional(),\n config: jsonObject().optional(),\n});\nexport type CreateInstallationBySlugRequest = z.infer<typeof createInstallationBySlugRequestSchema>;\n\n// Path params for /api/v1/organizations/:slug/agents/:agentSlug.\n// The agent slug here is the installation slug (derived from the template slug\n// at install time so the dashboard can show a human-readable name).\nexport const getInstallationBySlugParamsSchema = z.object({\n slug: organizationSlugSchema,\n agentSlug: agentSlugSchema,\n});\nexport type GetInstallationBySlugParams = z.infer<typeof getInstallationBySlugParamsSchema>;\n\n// Response shape for the new scoped agent (installation) endpoints.\n// Enriches the raw installation row with the template's name + owner org slug\n// so the UI can render \"installed X (by org-A)\" without a second round-trip.\nexport const agentInstallationResponseSchema = z.object({\n id: z.uuid(),\n organizationId: z.uuid(),\n agentId: z.uuid(),\n agentSlug: agentSlugSchema,\n agentVersion: z.string(),\n status: installationStatusSchema,\n config: jsonObject(),\n templateName: z.string(),\n templateOwnerOrgSlug: organizationSlugSchema,\n creatorOrganizationId: z.uuid(),\n endUserOrganizationId: z.uuid(),\n createdByUserId: z.uuid(),\n createdAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n});\nexport type AgentInstallationResponse = z.infer<typeof agentInstallationResponseSchema>;\n\n// Reduced manifest schema for POC. The full V1 manifest grows entries for\n// `triggers`, `secrets`, `egress` etc. Anything not declared here lives as\n// open keys ignored by `stackbone dev` until promoted into the schema.\n//\n// `database` and `dev.autoMigrate` are passed through verbatim. Path strings\n// are NOT resolved to absolute paths at parse time — the CLI resolves them at\n// command execution time relative to the agent root. This keeps the manifest\n// declarative and lets tooling (`stackbone dev`, `stackbone db migrate ...`)\n// stay the single owner of filesystem concerns.\n//\n// `rag` is the canonical block ADR `2026-05-10-rag-consolidation-on-client-database`\n// (D6) freezes — `.strict()` so unknown keys fail parse, defaults to `{}` so\n// agents that never touch `client.rag` don't have to declare it.\nexport const DEFAULT_RAG_EMBEDDING_MODEL = 'openai/text-embedding-3-small';\n\nexport const agentManifestRagSchema = z\n .object({\n embeddingModel: z.string().min(1).default(DEFAULT_RAG_EMBEDDING_MODEL),\n autoMigrate: z.boolean().default(false),\n })\n .strict()\n .default({ embeddingModel: DEFAULT_RAG_EMBEDDING_MODEL, autoMigrate: false });\nexport type AgentManifestRag = z.infer<typeof agentManifestRagSchema>;\n\n// Optional creator-side floor on the Stackbone Agent Protocol contract\n// version. When the datapath's negotiated `contract.version` is below\n// `protocol.required`, the SDK returns `contract_version_unsupported` for\n// every gated module call — independent of per-module capability gating.\n//\n// Strict to keep forward-compat changes explicit: future fields under\n// `protocol` (e.g. `protocol.preferredCapabilities`) become breaking adds\n// the moment we land them, not silent passthroughs.\nexport const agentManifestProtocolSchema = z\n .object({\n required: z.number().int().min(1).optional(),\n })\n .strict();\nexport type AgentManifestProtocol = z.infer<typeof agentManifestProtocolSchema>;\n\nexport const agentManifestSchema = z.object({\n apiVersion: z.literal('stackbone.ai/v1'),\n name: z.string().min(1),\n runtime: z\n .object({\n engine: z.enum(['node', 'bun']).default('node'),\n entry: z.string().default('src/index.ts'),\n })\n .default({ engine: 'node', entry: 'src/index.ts' }),\n database: z\n .object({\n schema: z.string().min(1).default('./src/schema.ts'),\n migrations: z.string().min(1).default('./.stackbone/migrations'),\n })\n .default({ schema: './src/schema.ts', migrations: './.stackbone/migrations' }),\n dev: z\n .object({\n autoMigrate: z.boolean().default(false),\n })\n .default({ autoMigrate: false }),\n rag: agentManifestRagSchema,\n // No default — when omitted the SDK falls back to\n // `MIN_SUPPORTED_CONTRACT_VERSION` as the implicit floor.\n protocol: agentManifestProtocolSchema.optional(),\n});\nexport type AgentManifest = z.infer<typeof agentManifestSchema>;\n","import { z } from 'zod';\nimport { jsonObject } from '../common/json-object';\n\n// --- Stackbone Agent Protocol — HITL approvals (V1) ----------------------------\n// Spec: docs/arquitectura/specs/stackbone-agent-protocol-v1.md §6.6/§6.7/§6.8.\n// Component: docs/arquitectura/componentes/08-hitl-inbox.md.\n// Schema: libs/platform-schema/src/migrations/0002_approvals.sql.\n\nexport const approvalStatusSchema = z.enum([\n 'pending',\n 'approved',\n 'rejected',\n 'timed_out',\n 'cancelled',\n]);\nexport type ApprovalStatus = z.infer<typeof approvalStatusSchema>;\n\nexport const approvalFallbackSchema = z.enum(['approve', 'reject', 'timeout']);\nexport type ApprovalFallback = z.infer<typeof approvalFallbackSchema>;\n\nexport const approvalOnTimeoutSchema = z.enum(['approve', 'reject', 'ignore']);\nexport type ApprovalOnTimeout = z.infer<typeof approvalOnTimeoutSchema>;\n\n// Request body the SDK sends to `POST /api/approvals` to create a new HITL\n// pause. `topic` and `onDecide` are the only fields the agent must always\n// supply; everything else is optional and the backend applies sensible\n// defaults (24h timeout, fallback `reject`, etc.).\nexport const createApprovalRequestSchema = z.object({\n topic: z.string().min(1).max(120),\n payload: jsonObject().optional(),\n schema: jsonObject().optional(),\n title: z.string().max(200).optional(),\n description: z.string().max(2000).optional(),\n onDecide: z.string().min(1).max(2048),\n timeout: z.union([z.string().min(1).max(32), z.number().int().min(1)]).optional(),\n onTimeout: approvalOnTimeoutSchema.optional(),\n approver: z.string().max(200).optional(),\n idempotencyKey: z.string().min(1).max(200).optional(),\n metadata: jsonObject().optional(),\n});\nexport type CreateApprovalRequest = z.infer<typeof createApprovalRequestSchema>;\n\n// Response returned by `POST /api/approvals`. Mirrors `ApprovalRequest` in\n// `libs/sdk/src/facades/approval/approval.ts` so the SDK and the backend stay\n// in sync by structural equivalence. `status` is modelled as a single-value\n// enum (not `z.literal`) so orval-emitted OpenAPI 3.0 stays inside the\n// generator's supported subset.\nexport const approvalCreatedResponseSchema = z.object({\n approvalId: z.uuid(),\n status: z.enum(['pending']),\n callbackUrl: z.string().min(1),\n expiresAt: z.iso.datetime(),\n});\nexport type ApprovalCreatedResponse = z.infer<typeof approvalCreatedResponseSchema>;\n\n// Canonical Approval record served by `GET /api/approvals` (list) and\n// `GET /api/approvals/:id` (detail). Field names match the storage schema in\n// `stackbone_platform.approvals` so handlers can serialise rows directly.\nexport const approvalSchema = z.object({\n id: z.uuid(),\n status: approvalStatusSchema,\n topic: z.string(),\n agentId: z.string().nullable(),\n workspaceId: z.string().nullable(),\n runId: z.uuid().nullable(),\n requestedByStepId: z.uuid().nullable(),\n payload: jsonObject(),\n schema: jsonObject().nullable(),\n callbackUrl: z.string().nullable(),\n fallback: approvalFallbackSchema.nullable(),\n metadata: jsonObject().default({}),\n createdAt: z.iso.datetime(),\n timeoutAt: z.iso.datetime().nullable(),\n decidedAt: z.iso.datetime().nullable(),\n});\nexport type Approval = z.infer<typeof approvalSchema>;\n\nexport const approvalDecisionSchema = z.object({\n id: z.uuid(),\n approvalId: z.uuid(),\n actorUserId: z.string().nullable(),\n actorEmail: z.email().nullable(),\n decision: z.enum(['approve', 'reject']),\n editedPayload: jsonObject().nullable(),\n comment: z.string().nullable(),\n decidedAt: z.iso.datetime(),\n});\nexport type ApprovalDecision = z.infer<typeof approvalDecisionSchema>;\n\nexport const approvalListResponseSchema = z.object({\n items: z.array(approvalSchema),\n nextCursor: z.string().nullable(),\n prevCursor: z.string().nullable(),\n});\nexport type ApprovalListResponse = z.infer<typeof approvalListResponseSchema>;\n\nexport const approvalDetailResponseSchema = approvalSchema.extend({\n decisions: z.array(approvalDecisionSchema),\n});\nexport type ApprovalDetailResponse = z.infer<typeof approvalDetailResponseSchema>;\n\nexport const decideApprovalRequestSchema = z.object({\n decision: z.enum(['approve', 'reject']),\n editedPayload: jsonObject().optional(),\n comment: z.string().max(2000).optional(),\n});\nexport type DecideApprovalRequest = z.infer<typeof decideApprovalRequestSchema>;\n\nexport const decideApprovalResponseSchema = z.object({\n approval: approvalSchema,\n decision: approvalDecisionSchema,\n});\nexport type DecideApprovalResponse = z.infer<typeof decideApprovalResponseSchema>;\n\n// Query params for `GET /api/approvals` — list with cursor + filters. The\n// frontend serialises filters as plain strings; the schema coerces and\n// validates before the controller hits the service.\nexport const listApprovalsQuerySchema = z.object({\n status: approvalStatusSchema.optional(),\n topic: z.string().min(1).max(120).optional(),\n cursor: z.string().min(1).optional(),\n limit: z.coerce.number().int().min(1).max(100).optional(),\n order: z.enum(['asc', 'desc']).optional(),\n});\nexport type ListApprovalsQuery = z.infer<typeof listApprovalsQuerySchema>;\n\n// Path params for `/api/approvals/:approvalId` and `/api/runs/:runId/steps`.\nexport const approvalIdParamSchema = z.object({ approvalId: z.uuid() });\nexport type ApprovalIdParam = z.infer<typeof approvalIdParamSchema>;\n\nexport const runStepSchema = z.object({\n id: z.uuid(),\n runId: z.uuid(),\n parentStepId: z.uuid().nullable(),\n type: z.enum([\n 'agent',\n 'llm_call',\n 'db_query',\n 'http_fetch',\n 'queue_publish',\n 'hitl_pause',\n 'tool_call',\n 'rag_query',\n 'storage_op',\n ]),\n name: z.string().nullable(),\n startedAt: z.iso.datetime(),\n finishedAt: z.iso.datetime().nullable(),\n durationMs: z.number().int().nullable(),\n status: z.enum(['ok', 'error', 'running']),\n payload: z.unknown(),\n error: z.object({ message: z.string(), stack: z.string().optional() }).nullable(),\n});\nexport type RunStep = z.infer<typeof runStepSchema>;\n\nexport const runStepsResponseSchema = z.object({\n items: z.array(runStepSchema),\n nextCursor: z.string().nullable(),\n prevCursor: z.string().nullable(),\n});\nexport type RunStepsResponse = z.infer<typeof runStepsResponseSchema>;\n\n// Two mutually exclusive modes:\n// - around+window: HITL context slice anchored to a step (V1).\n// - cursor+limit+order: paginated waterfall for the Run Detail (V2).\n// The handler picks the path by which params are present; sending both yields\n// `invalid_payload`.\nexport const runStepsQuerySchema = z.object({\n around: z.uuid().optional(),\n window: z.coerce.number().int().min(1).max(100).optional(),\n cursor: z.string().min(1).optional(),\n limit: z.coerce.number().int().min(1).max(200).optional(),\n order: z.enum(['asc', 'desc']).optional(),\n});\nexport type RunStepsQuery = z.infer<typeof runStepsQuerySchema>;\n\nexport const DEFAULT_APPROVAL_TIMEOUT_MS = 24 * 60 * 60 * 1000;\n\n// Local-only HMAC key. The cloud datapath derives the key from the\n// `installation_secret` row instead. Documented in spec §6.8.\nexport const LOCAL_APPROVAL_SIGNING_KEY = 'dev-only-signing-key';\n\n// Parses '24h', '15m', '90s', '500ms' or a positive integer milliseconds value.\n// Returns null for malformed input so callers can map it to a 400.\nexport function parseApprovalTimeoutMs(value: string | number | undefined): number | null {\n if (value === undefined) return DEFAULT_APPROVAL_TIMEOUT_MS;\n if (typeof value === 'number') {\n return Number.isFinite(value) && value > 0 ? Math.floor(value) : null;\n }\n const trimmed = value.trim();\n if (!trimmed) return null;\n const match = /^(\\d+)(ms|s|m|h|d)?$/i.exec(trimmed);\n if (!match) return null;\n const amount = Number.parseInt(match[1] as string, 10);\n if (!Number.isFinite(amount) || amount <= 0) return null;\n const unit = (match[2] ?? 'ms').toLowerCase();\n const multipliers: Record<string, number> = {\n ms: 1,\n s: 1_000,\n m: 60_000,\n h: 3_600_000,\n d: 86_400_000,\n };\n return amount * (multipliers[unit] as number);\n}\n","import { z } from 'zod';\n\n// --- Stackbone Agent Protocol (Studio handshake) --------------------------------\n// Normative spec: docs/arquitectura/specs/stackbone-agent-protocol-v1.md.\n// Both the Hono emulator (apps/cli/src/dev/) and apps/api expose\n// `GET /api/contract` returning this exact shape so the Studio UI can detect\n// version drift between the backend it is talking to and its own minimum\n// supported version. Bumps are documented in\n// docs/arquitectura/specs/stackbone-agent-protocol-changelog.md.\n\n/**\n * Monotonically increasing integer that identifies the wire-level revision of\n * the Stackbone Agent Protocol the backend (cloud `apps/api` or local\n * emulator) currently speaks. Append-only history (the only source of truth —\n * the markdown changelog mirrors this list manually):\n *\n * - v1 (initial): handshake shape frozen, `capabilities` reserved but empty.\n * - v9 (RAG consolidation, ADR 2026-05-10): client.database hosts the RAG\n * pipeline; older agents are pinned out of the RAG explorer via\n * `MIN_SUPPORTED_RAG_EXPLORER_CONTRACT_VERSION`.\n * - v10 (#23, this PR): `capabilities` becomes a populated, gated set. The\n * SDK now refuses module calls when their required capability is missing\n * from the handshake. No older datapaths are dropped (`MIN_SUPPORTED`\n * stays at 1) — the gating is purely additive on `capabilities`.\n *\n * Bumping this constant is a breaking simultaneous change: the SDK and Studio\n * upgrade in lockstep. There is no per-request negotiation.\n */\nexport const STACKBONE_CONTRACT_VERSION = 10 as const;\n\n/**\n * Floor of the protocol version range the SDK and Studio still execute\n * against. Bumped only when we deliberately want to break older datapaths;\n * additive changes (new capabilities, new endpoints) MUST NOT raise this.\n *\n * Today (v10) the floor stays at v1 because v10 is purely additive: it gates\n * new behaviour on `capabilities` membership without dropping any older wire\n * format. The first time we delete or rename an existing endpoint we raise\n * this together with `STACKBONE_CONTRACT_VERSION` in the same release.\n */\nexport const MIN_SUPPORTED_CONTRACT_VERSION = 1 as const;\n\n// RAG-explorer-specific gate. ADR `2026-05-10-rag-consolidation-on-client-database`\n// §D7: Studio hides the RAG explorer (and refuses to fetch `/api/rag/*`)\n// when the negotiated `contract.version` is below this number. The agent\n// shell (`MIN_SUPPORTED_CONTRACT_VERSION`) stays at the lower floor so the\n// rest of Studio keeps working against older agents.\nexport const MIN_SUPPORTED_RAG_EXPLORER_CONTRACT_VERSION = 9 as const;\n\n/**\n * Full set of dot-namespaced capability identifiers the Stackbone Agent\n * Protocol recognises. The array doubles as the runtime allowlist for the\n * `Capability` enum used by `contractResponseSchema` and as the source of\n * truth for `MODULE_CAPABILITIES` below.\n *\n * Membership is intentionally additive — adding an entry does NOT bump\n * `STACKBONE_CONTRACT_VERSION` (per spec §3.2), but removing or renaming\n * one is a breaking change and DOES.\n */\nexport const CAPABILITIES = [\n 'database.postgres_direct',\n 'database.drizzle',\n 'rag.basic',\n 'rag.async_ingest',\n 'queues.pgmq',\n 'events.bus',\n 'secrets.read_write',\n 'config.read_write',\n 'approval.fire_and_forget',\n 'storage.s3',\n 'ai.openrouter',\n] as const satisfies readonly string[];\n\n/**\n * Compile-time alias: any capability identifier the wire schema accepts.\n * Consumers (SDK modules, Studio guards) MUST type capability arguments as\n * `Capability` so the compiler refuses unknown literals; the runtime check\n * lives in `contractResponseSchema` via `z.enum(CAPABILITIES)`.\n */\nexport type Capability = (typeof CAPABILITIES)[number];\n\n/**\n * Maps every SDK module identifier (`client.<module>`) to the single\n * `Capability` its surface depends on for the MVP. The SDK's gating layer\n * looks up the required capability here — adding a module means adding a\n * row, and changing a module's required capability (e.g. `database` moving\n * from `postgres_direct` to `drizzle` once #29 lands) is the only reason to\n * edit this map.\n */\nexport const MODULE_CAPABILITIES = {\n database: 'database.postgres_direct',\n rag: 'rag.basic',\n queues: 'queues.pgmq',\n events: 'events.bus',\n secrets: 'secrets.read_write',\n config: 'config.read_write',\n approval: 'approval.fire_and_forget',\n storage: 'storage.s3',\n ai: 'ai.openrouter',\n} as const satisfies Record<string, Capability>;\n\n// Identifies which backend served the handshake. Both values are surfaced in\n// the response body so support can diagnose drift between local and cloud\n// without an extra hop.\nexport const contractBuildNameSchema = z.enum(['stackbone-cli', 'stackbone-api']);\nexport type ContractBuildName = z.infer<typeof contractBuildNameSchema>;\n\nexport const contractResponseSchema = z.object({\n version: z.number().int().min(1),\n minSupported: z.number().int().min(1),\n // `z.enum(CAPABILITIES)` rejects any string outside the union at runtime,\n // mirroring the compile-time guarantee of the `Capability` type.\n capabilities: z.array(z.enum(CAPABILITIES)),\n build: z.object({\n name: contractBuildNameSchema,\n version: z.string().min(1),\n }),\n});\nexport type ContractResponse = z.infer<typeof contractResponseSchema>;\n\n/**\n * Error envelope returned by the contract gating helpers below. Structurally\n * compatible with `SdkError` from `@stackbone/sdk` (`{ code, message, meta? }`)\n * — kept local because `libs/validators` is a leaf package and must not\n * depend on the SDK. The SDK widens these errors back into `SdkError` when\n * propagating them to user code.\n */\nexport interface ContractCheckError {\n code: 'contract_version_unsupported' | 'capability_unavailable';\n message: string;\n meta?: Record<string, unknown>;\n}\n\n/**\n * Discriminated result mirroring the `{ data, error }` envelope every other\n * SDK method returns. Narrowing on `error` refines `data` to the success\n * payload (here: `void`).\n */\nexport type ContractCheckResult =\n | { data: undefined; error: null }\n | { data: null; error: ContractCheckError };\n\n/**\n * Validates that the negotiated `contract.version` is at or above the\n * version the SDK still executes against. Pure, table-driven, never throws.\n *\n * Used by Studio's boot-time guard (`/api/contract` → if drift, render the\n * upgrade banner instead of the protected screen) and by every gated SDK\n * module before it dispatches its first call.\n */\nexport function requireVersion(contract: ContractResponse): ContractCheckResult {\n if (contract.version < MIN_SUPPORTED_CONTRACT_VERSION) {\n return {\n data: null,\n error: {\n code: 'contract_version_unsupported',\n message: `Stackbone Agent Protocol version ${contract.version} is below the minimum supported (${MIN_SUPPORTED_CONTRACT_VERSION}). Upgrade the CLI or the control plane.`,\n meta: {\n detected: contract.version,\n required: MIN_SUPPORTED_CONTRACT_VERSION,\n },\n },\n };\n }\n return { data: undefined, error: null };\n}\n\n/**\n * Validates that the negotiated contract both (a) meets the version floor\n * and (b) advertises the requested capability. Returns\n * `contract_version_unsupported` first if the version check fails so the SDK\n * never falls through to a misleading \"capability missing\" message when the\n * actual problem is a stale datapath. Pure, never throws.\n */\nexport function requireCapability(\n capability: Capability,\n contract: ContractResponse,\n): ContractCheckResult {\n const versionCheck = requireVersion(contract);\n if (versionCheck.error) {\n return versionCheck;\n }\n if (!contract.capabilities.includes(capability)) {\n return {\n data: null,\n error: {\n code: 'capability_unavailable',\n message: `Capability \"${capability}\" is not advertised by the negotiated Stackbone Agent Protocol contract.`,\n meta: {\n capability,\n available: contract.capabilities,\n },\n },\n };\n }\n return { data: undefined, error: null };\n}\n","import { z } from 'zod';\nimport { jsonObject } from '../common/json-object';\n\n// --- Stackbone Agent Protocol — Runs (V2) --------------------------------------\n// Spec: docs/arquitectura/specs/stackbone-agent-protocol-v1.md §6.1/§6.2.\n// Schema: libs/platform-schema/src/migrations/0001_runs.sql.\n\nexport const runStatusSchema = z.enum(['running', 'done', 'failed', 'interrupted']);\nexport type RunStatus = z.infer<typeof runStatusSchema>;\n\nexport const runTriggerSchema = z.enum(['manual', 'webhook', 'cron', 'event']);\nexport type RunTrigger = z.infer<typeof runTriggerSchema>;\n\n// Canonical Run record served by `GET /api/runs/:id`. Wire shape is camelCase;\n// the storage columns in `stackbone_platform.runs` stay snake_case and the\n// service layer maps them once at the boundary (see `apps/api/src/modules/\n// studio/approvals.service.ts`).\n// TODO(studio-v2): runs whose `input` is a primitive (string, number)\n// currently round-trip as objects because of the `jsonObject()` constraint;\n// widen once the underlying helper migrates to `unknown`.\nexport const runSchema = z.object({\n id: z.uuid(),\n status: runStatusSchema,\n trigger: runTriggerSchema,\n createdAt: z.iso.datetime(),\n startedAt: z.iso.datetime().nullable(),\n finishedAt: z.iso.datetime().nullable(),\n durationMs: z.number().int().nullable(),\n costEstimatedUsd: z.number().nullable(),\n traceId: z.string().nullable(),\n // True when the run was triggered from the Studio Playground (header\n // `STACKBONE_PLAYGROUND_HEADER` on `POST /api/invoke`). Billing and the Trust\n // Layer's verified metrics filter on this column to exclude stress-tests.\n isPlayground: z.boolean(),\n input: jsonObject().nullable(),\n output: jsonObject().nullable(),\n error: z.object({ message: z.string(), stack: z.string().optional() }).nullable(),\n});\nexport type Run = z.infer<typeof runSchema>;\n\nexport const runIdParamSchema = z.object({ runId: z.uuid() });\nexport type RunIdParam = z.infer<typeof runIdParamSchema>;\n\n// Query params for `GET /api/runs` (V4) — paginated list with filters. The\n// cursor is opaque base64url over (created_at, id). Filter values are\n// exact-match per the protocol spec §6.4 — `from`/`to` are ISO timestamps\n// and bound the `created_at` window inclusively. The cross-field refinement\n// rejects inverted ranges so a typo (`from=2026-12-01&to=2026-01-01`) does\n// not silently return an empty page.\nexport const listRunsQuerySchema = z\n .object({\n status: runStatusSchema.optional(),\n trigger: runTriggerSchema.optional(),\n from: z.iso.datetime().optional(),\n to: z.iso.datetime().optional(),\n cursor: z.string().min(1).optional(),\n limit: z.coerce.number().int().min(1).max(100).optional(),\n order: z.enum(['asc', 'desc']).optional(),\n })\n .refine((q) => !q.from || !q.to || q.from <= q.to, {\n message: '`from` must be earlier than or equal to `to`',\n path: ['from'],\n });\nexport type ListRunsQuery = z.infer<typeof listRunsQuerySchema>;\n\nexport const runListResponseSchema = z.object({\n items: z.array(runSchema),\n nextCursor: z.string().nullable(),\n prevCursor: z.string().nullable(),\n});\nexport type RunListResponse = z.infer<typeof runListResponseSchema>;\n\n// Action responses for `POST /api/runs/:id/retry` and\n// `POST /api/runs/:id/cancel` (V4). Retry returns the freshly-created run\n// (status=`running`); cancel returns the updated row (status=`interrupted`).\nexport const retryRunResponseSchema = z.object({\n run: runSchema,\n});\nexport type RetryRunResponse = z.infer<typeof retryRunResponseSchema>;\n\nexport const cancelRunResponseSchema = z.object({\n run: runSchema,\n});\nexport type CancelRunResponse = z.infer<typeof cancelRunResponseSchema>;\n\n// Header marker the Studio Playground UI sets to opt invocations out of\n// billing and verified metrics. Real triggers (webhook/cron) must NOT set it.\nexport const STACKBONE_PLAYGROUND_HEADER = 'x-stackbone-playground';\n\n// Body is free-form JSON validated by the agent itself against `/schema`;\n// the control plane treats it as opaque.\nexport const invokeRequestSchema = jsonObject();\nexport type InvokeRequest = z.infer<typeof invokeRequestSchema>;\n\n// Proxy-shape response. The richer `{ run_id, status, output, duration_ms }`\n// from spec §6.9 will land once the cloud dispatcher reports a definitive\n// run status.\nexport const invokeResponseSchema = z.object({\n runId: z.uuid(),\n response: z.object({\n status: z.number().int(),\n body: jsonObject().nullable(),\n }),\n});\nexport type InvokeResponse = z.infer<typeof invokeResponseSchema>;\n\n// Studio Playground fixtures (V5#03). Saved JSON inputs the creator pinned\n// for repeated invocations from the Playground. The shape is identical in\n// cloud (Neon) and local (`~/.stackbone/dev/fixtures/<agentId>.jsonl`); the\n// only asymmetry is the storage backend, not the wire format.\nexport const fixtureSchema = z.object({\n id: z.string(),\n name: z.string(),\n input: jsonObject().nullable(),\n description: z.string().nullable(),\n createdAt: z.iso.datetime(),\n});\nexport type Fixture = z.infer<typeof fixtureSchema>;\n\nexport const createFixtureRequestSchema = z.object({\n name: z.string().min(1).max(120),\n input: jsonObject(),\n description: z.string().max(2_000).optional().nullable(),\n});\nexport type CreateFixtureRequest = z.infer<typeof createFixtureRequestSchema>;\n\nexport const fixtureListResponseSchema = z.object({\n items: z.array(fixtureSchema),\n nextCursor: z.string().nullable(),\n prevCursor: z.string().nullable(),\n});\nexport type FixtureListResponse = z.infer<typeof fixtureListResponseSchema>;\n","import { z } from 'zod';\n\n// Mirrors `SessionUser` and `SessionInfo` in @stackbone/types. Lives here so\n// the CLI can validate sessions read from disk without dragging Zod into\n// the type-only lib. The static type alignment is asserted by the tests\n// in libs/types/src/lib/types.spec.ts.\nexport const sessionUserSchema = z.object({\n id: z.uuid(),\n email: z.email(),\n name: z.string().nullable(),\n emailVerified: z.boolean(),\n});\n\nexport const sessionInfoSchema = z.object({\n user: sessionUserSchema,\n session: z.object({\n id: z.string().min(1),\n token: z.string().min(1),\n expiresAt: z.iso.datetime(),\n }),\n});\n","import { z } from 'zod';\n\n// --- Billing / Tier --------------------------------------------------------\n// Frozen by ADR 2026-05-08. The schema lives here (not in\n// `@stackbone/billing-config`) because it is the wire shape the API\n// serializes — billing-config owns the numeric limits and the `Tier` enum\n// values, which we mirror with `z.enum`.\n\nexport const tierSchema = z.enum(['free', 'starter', 'pro', 'team']);\nexport type TierLiteral = z.infer<typeof tierSchema>;\n\n// Per-resource usage returned from GET /api/v1/organizations/:slug/billing.\n// `limit: null` advertises an unlimited quota on the active tier.\nexport const tierResourceUsageSchema = z.object({\n usage: z.number().int().min(0),\n limit: z.number().int().min(0).nullable(),\n});\nexport type TierResourceUsage = z.infer<typeof tierResourceUsageSchema>;\n\nexport const tierUsageBreakdownSchema = z.object({\n agents: tierResourceUsageSchema,\n agent_templates: tierResourceUsageSchema,\n members: tierResourceUsageSchema,\n pending_invitations: tierResourceUsageSchema,\n});\nexport type TierUsageBreakdown = z.infer<typeof tierUsageBreakdownSchema>;\n\n// `periodEnd` is `null` for free orgs (no Stripe subscription) and an ISO\n// timestamp for paid orgs.\nexport const tierCreditsSchema = z.object({\n creditsEurPerMonth: z.number().int().min(0),\n usedEurThisPeriod: z.number().int().min(0),\n periodEnd: z.iso.datetime().nullable(),\n});\nexport type TierCredits = z.infer<typeof tierCreditsSchema>;\n\nexport const organizationBillingResponseSchema = z.object({\n tier: tierSchema,\n usage: tierUsageBreakdownSchema,\n credits: tierCreditsSchema,\n stripePortalAvailable: z.boolean(),\n agentsPaused: z.boolean(),\n});\nexport type OrganizationBillingResponse = z.infer<typeof organizationBillingResponseSchema>;\n\n// PRD §\"HTTP error contract\" — wire shape the frontend interceptor matches\n// on. Documented as a Zod schema so the OpenAPI spec advertises the same\n// shape the HttpExceptionFilter emits.\nexport const tierQuotaResourceSchema = z.enum([\n 'agents',\n 'agent_templates',\n 'pending_invitations',\n 'members',\n 'free_organizations',\n]);\nexport type TierQuotaResource = z.infer<typeof tierQuotaResourceSchema>;\n\nexport const tierQuotaExceededErrorSchema = z.object({\n statusCode: z.literal(402),\n code: z.literal('TIER_QUOTA_EXCEEDED'),\n message: z.string(),\n resource: tierQuotaResourceSchema,\n currentTier: tierSchema,\n usage: z.number().int().min(0),\n limit: z.number().int().min(0),\n upgradeUrl: z.string(),\n});\nexport type TierQuotaExceededError = z.infer<typeof tierQuotaExceededErrorSchema>;\n\n// Request/response shape for the self-serve upgrade flow. `targetTier` is\n// constrained to paid tiers (free is rejected with HTTP 400) because the\n// free tier has no Stripe price and downgrades go through Customer Portal,\n// not this endpoint.\nexport const billingCheckoutRequestSchema = z.object({\n targetTier: z.enum(['starter', 'pro', 'team']),\n});\nexport type BillingCheckoutRequest = z.infer<typeof billingCheckoutRequestSchema>;\n\n// Self-serve downgrade request — `targetTier` here may be `free` (the\n// Customer Portal route also passes through the webhook gate, but the\n// in-app dialog calls this endpoint to schedule the cancellation cleanly).\nexport const billingDowngradeRequestSchema = z.object({\n targetTier: tierSchema,\n});\nexport type BillingDowngradeRequest = z.infer<typeof billingDowngradeRequestSchema>;\n\n// 409 contract emitted when the gate rejects a downgrade because current\n// usage exceeds the target tier's caps. Listed alongside the 402 contract so\n// the SPA's error interceptor branches cleanly on `code` only.\nexport const downgradeBlockingResourceSchema = z.object({\n resource: tierQuotaResourceSchema,\n current: z.number().int().min(0),\n targetLimit: z.number().int().min(0),\n});\nexport type DowngradeBlockingResource = z.infer<typeof downgradeBlockingResourceSchema>;\n\nexport const downgradeRequiresCleanupErrorSchema = z.object({\n statusCode: z.literal(409),\n code: z.literal('DOWNGRADE_REQUIRES_CLEANUP'),\n message: z.string(),\n currentTier: tierSchema,\n targetTier: tierSchema,\n blockingResources: z.array(downgradeBlockingResourceSchema),\n});\nexport type DowngradeRequiresCleanupError = z.infer<typeof downgradeRequiresCleanupErrorSchema>;\n\nexport const billingCheckoutResponseSchema = z.object({\n url: z.url(),\n});\nexport type BillingCheckoutResponse = z.infer<typeof billingCheckoutResponseSchema>;\n\n// Customer Portal redirect URL — the SPA navigates the browser to this URL\n// after `POST /billing/portal`. Mirrors `BillingCheckoutResponse` so the\n// frontend can reuse the same redirect helper.\nexport const billingPortalResponseSchema = z.object({\n url: z.url(),\n});\nexport type BillingPortalResponse = z.infer<typeof billingPortalResponseSchema>;\n","import { z } from 'zod';\nimport { agentSlugSchema } from '../organizations/organizations';\n\n// `stackbone dev` tunnel relay — control-plane HTTP contract.\n//\n// Feature 39 (`stackbone_dev_self_hosted_tunnel_relay`). The CLI exchanges its\n// better-auth session for a short-lived HMAC token bound to a single\n// `*.tun.stackbone.ai` subdomain, then spawns `frpc` against the\n// Stackbone-owned relay. Only the control plane signs the token; the relay\n// just validates the HMAC. See `.scratch/stackbone_dev_self_hosted_tunnel_relay/PRD.md`.\n\n// Max TTL is 24 h — the relay is intentionally scoped to dev sessions of\n// bounded lifetime. The CLI normally asks for the default 1 h; longer TTLs\n// are clamped so a runaway script cannot mint a forever-token.\nexport const DEV_TUNNEL_GRANT_DEFAULT_TTL_SECONDS = 3600;\nexport const DEV_TUNNEL_GRANT_MAX_TTL_SECONDS = 86_400;\n\n// POST /api/dev-tunnel/grants — body. `agentSlug` identifies which agent the\n// creator is running locally, used both for the deterministic-subdomain hash\n// and for audit. TTL defaults at the service layer (the schema only enforces\n// the cap so values past 24 h are rejected at the boundary).\nexport const createDevTunnelGrantSchema = z.object({\n agentSlug: agentSlugSchema,\n ttlSeconds: z\n .number()\n .int()\n .positive()\n .max(DEV_TUNNEL_GRANT_MAX_TTL_SECONDS, {\n message: `ttlSeconds must not exceed ${DEV_TUNNEL_GRANT_MAX_TTL_SECONDS}`,\n })\n .optional(),\n});\nexport type CreateDevTunnelGrantRequest = z.infer<typeof createDevTunnelGrantSchema>;\n\n// DELETE /api/dev-tunnel/grants/:subdomain — path param. Subdomains are the\n// `<random4>-<deterministic12>` shape the service mints; the schema only\n// constrains length and charset so malformed inputs short-circuit at the\n// boundary instead of hitting the repository.\nexport const devTunnelGrantParamsSchema = z.object({\n subdomain: z\n .string()\n .min(8)\n .max(64)\n .regex(/^[a-z0-9-]+$/, 'subdomain must be lowercase alphanumeric with optional hyphens'),\n});\nexport type DevTunnelGrantParams = z.infer<typeof devTunnelGrantParamsSchema>;\n\n// Response shape for POST /api/dev-tunnel/grants. The CLI plugs `frpcToken`\n// into the embedded `frpc` config and dials `relayHost:relayPort`; the public\n// URL the creator pastes into Studio is `https://<subdomain>.<relayHost>`.\nexport const devTunnelGrantResponseSchema = z.object({\n relayHost: z.string().min(1),\n relayPort: z.number().int().positive(),\n subdomain: z.string().min(1),\n frpcToken: z.string().min(1),\n expiresAt: z.iso.datetime(),\n});\nexport type DevTunnelGrantResponse = z.infer<typeof devTunnelGrantResponseSchema>;\n","import { z } from 'zod';\nimport { organizationSlugSchema } from './organizations';\n\n// --- Organization members ---------------------------------------------------\n// Wire shape backing `/api/v1/organizations/:slug/members` and the per-member\n// mutations. The membership table only stores `(userId, role, joinedAt)`; the\n// list endpoint joins `user` to surface email + name so the dashboard renders\n// member cards without a second round-trip.\n\nexport const memberRoleSchema = z.enum(['owner', 'admin', 'member', 'approver']);\nexport type MemberRole = z.infer<typeof memberRoleSchema>;\n\n// Roles assignable through `PATCH /members/:userId`. Excludes `owner` because\n// promoting to owner is exclusive to `POST /:slug/transfer` (D5 of the ADR —\n// owner is a single-occupant role enforced by a partial unique index).\nexport const updateMemberRoleSchema = z.enum(['admin', 'member', 'approver']);\nexport type UpdateMemberRole = z.infer<typeof updateMemberRoleSchema>;\n\nexport const memberResponseSchema = z.object({\n userId: z.uuid(),\n email: z.email(),\n name: z.string().nullable(),\n role: memberRoleSchema,\n joinedAt: z.iso.datetime(),\n});\nexport type MemberResponse = z.infer<typeof memberResponseSchema>;\n\nexport const memberListResponseSchema = z.object({\n items: z.array(memberResponseSchema),\n});\nexport type MemberListResponse = z.infer<typeof memberListResponseSchema>;\n\nexport const memberInOrganizationParamsSchema = z.object({\n slug: organizationSlugSchema,\n userId: z.uuid(),\n});\nexport type MemberInOrganizationParams = z.infer<typeof memberInOrganizationParamsSchema>;\n\nexport const updateMemberRequestSchema = z.object({\n role: updateMemberRoleSchema,\n});\nexport type UpdateMemberRequest = z.infer<typeof updateMemberRequestSchema>;\n\nexport const transferOrganizationRequestSchema = z.object({\n toUserId: z.uuid(),\n});\nexport type TransferOrganizationRequest = z.infer<typeof transferOrganizationRequestSchema>;\n","import { z } from 'zod';\nimport { organizationSlugSchema } from './organizations';\nimport { updateMemberRoleSchema } from './members';\n\n// --- Organization invitations ---------------------------------------------\n// Wire shape backing `/api/v1/organizations/:slug/invitations`. The accept\n// flow (F5) lives outside this surface; this schema only covers the issuer\n// side: create, list pending, revoke. `role` reuses\n// `updateMemberRoleSchema` so the wire boundary rejects `'owner'` (owner is\n// single-occupant per organization and only changes via `/transfer`).\n\nexport const invitationRoleSchema = updateMemberRoleSchema;\nexport type InvitationRole = z.infer<typeof invitationRoleSchema>;\n\nexport const createInvitationRequestSchema = z.object({\n email: z.email(),\n role: invitationRoleSchema,\n});\nexport type CreateInvitationRequest = z.infer<typeof createInvitationRequestSchema>;\n\n// Surfaced to the dashboard's invitations tab. `invitedByEmail` is JOINed\n// from `user` so the row renders \"invited by <X>\" without a second\n// round-trip; it is nullable because the FK uses `ON DELETE restrict` but\n// future hard-deletes of the inviter (e.g. a future GDPR purge) would\n// leave the JOIN empty.\nexport const invitationResponseSchema = z.object({\n id: z.uuid(),\n email: z.email(),\n role: invitationRoleSchema,\n expiresAt: z.iso.datetime(),\n invitedByUserId: z.uuid(),\n invitedByEmail: z.email().nullable(),\n createdAt: z.iso.datetime(),\n});\nexport type InvitationResponse = z.infer<typeof invitationResponseSchema>;\n\nexport const invitationListResponseSchema = z.object({\n items: z.array(invitationResponseSchema),\n});\nexport type InvitationListResponse = z.infer<typeof invitationListResponseSchema>;\n\nexport const invitationInOrganizationParamsSchema = z.object({\n slug: organizationSlugSchema,\n id: z.uuid(),\n});\nexport type InvitationInOrganizationParams = z.infer<typeof invitationInOrganizationParamsSchema>;\n\n// F5 — accept invitation endpoint (global, not org-scoped). The :token param\n// is a 32-byte base64url string generated at invite time.\nexport const acceptInvitationParamsSchema = z.object({\n token: z.string().min(1),\n});\nexport type AcceptInvitationParams = z.infer<typeof acceptInvitationParamsSchema>;\n\n// F5 — accept response. Flat shape (not a Zod discriminated union) because\n// `createZodDto` cannot use a discriminated union as a class base. By\n// contract:\n// kind = 'accepted' → organizationSlug is set, email is undefined.\n// kind = 'magic_link_dispatched' → email is set, organizationSlug is undefined.\n// Callers can narrow at the boundary by switching on `kind`.\nexport const acceptInvitationResponseSchema = z.object({\n kind: z.enum(['accepted', 'magic_link_dispatched']),\n organizationSlug: organizationSlugSchema.optional(),\n email: z.email().optional(),\n});\nexport type AcceptInvitationResponse = z.infer<typeof acceptInvitationResponseSchema>;\n","import { z } from 'zod';\nimport { jsonObject } from '../common/json-object';\n\n// Studio Config dinámica (V11). Spec: docs/arquitectura/componentes/11-stackbone-studio.md\n// §\"Mapa de pantallas / C.Config dinámica\". The agent declares a JSON Schema\n// for `AGENT_CONFIG` in its `agent.yaml` (surfaced through `GET /api/schema`\n// in the `configSchema` field). Studio writes versions of the value into\n// `stackbone_platform.agent_config_versions` (libs/platform-schema migration\n// 0007); the row with the highest `version` is the active config.\n//\n// Wire shape is identical local↔cloud so the orval-generated client and the\n// emulator's Hono routes share validators. Both surfaces emit\n// `agent_config.changed` over `stackbone_platform_events` (NOTIFY in cloud, the\n// same channel from the local Postgres) so the orchestrator (V11#04) and\n// the cloud install runtime can refresh the running container.\n\nexport const STUDIO_AGENT_CONFIG_VALUE_MAX_BYTES = 64 * 1024;\n\n// Trade-off: AGENT_CONFIG values must be JSON objects (never primitives)\n// because of the `jsonObject()` helper constraint. Agent `agent.yaml`\n// schemas are objects in practice; the constraint is acceptable for MVP.\nexport const studioAgentConfigPutRequestSchema = z.object({\n value: jsonObject(),\n});\nexport type StudioAgentConfigPutRequest = z.infer<typeof studioAgentConfigPutRequestSchema>;\n\nexport const studioAgentConfigSchema = z.object({\n // Active config payload. `null` only when the agent has never been\n // configured — i.e. the table is empty for this install.\n value: jsonObject().nullable(),\n // JSON Schema declared by the agent (`/schema#configSchema`). `null` when\n // the agent does not advertise one — Studio still allows free-form edits\n // in that case but skips client-side validation.\n schema: jsonObject().nullable(),\n // 0 when no version exists yet, otherwise the active version number.\n version: z.number().int().min(0),\n // ISO timestamp of the active version, `null` when none exists.\n updatedAt: z.iso.datetime().nullable(),\n // Best-effort author email of the active version.\n updatedBy: z.string().nullable(),\n});\nexport type StudioAgentConfig = z.infer<typeof studioAgentConfigSchema>;\n\nexport const studioAgentConfigGetResponseSchema = studioAgentConfigSchema;\nexport type StudioAgentConfigGetResponse = z.infer<typeof studioAgentConfigGetResponseSchema>;\n\n// Mutation response carries both the new active state (so the UI can reuse\n// the GET shape) and the previous value, so the diff viewer can render side\n// by side with `diff2html` without an extra round-trip. `unchanged` short-\n// circuits the no-op case so the UI can flag it instead of showing an empty\n// diff and bumping the version uselessly — the controller never inserts a\n// new row when the value is structurally identical to the active one.\nexport const studioAgentConfigPutResponseSchema = z.object({\n config: studioAgentConfigSchema,\n previousValue: jsonObject().nullable(),\n unchanged: z.boolean(),\n});\nexport type StudioAgentConfigPutResponse = z.infer<typeof studioAgentConfigPutResponseSchema>;\n\n// Versions list (V11#03). Includes the value so the UI can preview a\n// version before triggering a rollback without an extra fetch — config\n// payloads are bounded and the lateral list is paginated.\nexport const studioAgentConfigVersionSchema = z.object({\n version: z.number().int().min(1),\n value: jsonObject(),\n rolledBackFrom: z.number().int().min(1).nullable(),\n createdAt: z.iso.datetime(),\n createdByEmail: z.string().nullable(),\n});\nexport type StudioAgentConfigVersion = z.infer<typeof studioAgentConfigVersionSchema>;\n\nexport const studioAgentConfigVersionListResponseSchema = z.object({\n items: z.array(studioAgentConfigVersionSchema),\n});\nexport type StudioAgentConfigVersionListResponse = z.infer<\n typeof studioAgentConfigVersionListResponseSchema\n>;\n\nexport const studioAgentConfigVersionParamSchema = z\n .string()\n .regex(/^\\d+$/, { message: 'version must be a positive integer' })\n .transform((value) => Number.parseInt(value, 10))\n .pipe(z.number().int().min(1));\nexport type StudioAgentConfigVersionParam = z.infer<typeof studioAgentConfigVersionParamSchema>;\n","import { z } from 'zod';\nimport { jsonObject } from '../common/json-object';\n\n// Studio DB Explorer (V6). Spec: docs/arquitectura/componentes/11-stackbone-studio.md\n// §\"DB Explorer\". Identifier names accepted on the wire are restricted to\n// unquoted Postgres identifiers — the controller still wraps them in double\n// quotes before interpolation, but rejecting weird shapes early keeps the\n// 404/400 surface clean and the SET ROLE stackbone_viewer guarantee unbroken.\nconst PG_IDENTIFIER_REGEX = /^[A-Za-z_][A-Za-z0-9_]*$/;\n\nexport const dbIdentifierSchema = z\n .string()\n .min(1)\n .max(63)\n .regex(PG_IDENTIFIER_REGEX, 'identifier must match Postgres unquoted identifier rules');\n\nexport const dbColumnSchema = z.object({\n name: z.string(),\n data_type: z.string(),\n is_nullable: z.boolean(),\n is_primary_key: z.boolean(),\n ordinal_position: z.number().int(),\n});\nexport type DbColumn = z.infer<typeof dbColumnSchema>;\n\nexport const dbTableSummarySchema = z.object({\n name: z.string(),\n estimated_rows: z.number().nullable(),\n});\nexport type DbTableSummary = z.infer<typeof dbTableSummarySchema>;\n\nexport const dbSchemaListItemSchema = z.object({\n name: z.string(),\n tables: z.array(dbTableSummarySchema),\n});\nexport type DbSchemaListItem = z.infer<typeof dbSchemaListItemSchema>;\n\nexport const dbSchemasResponseSchema = z.object({\n schemas: z.array(dbSchemaListItemSchema),\n});\nexport type DbSchemasResponse = z.infer<typeof dbSchemasResponseSchema>;\n\nexport const dbBrowseParamsSchema = z.object({\n schema: dbIdentifierSchema,\n table: dbIdentifierSchema,\n});\nexport type DbBrowseParams = z.infer<typeof dbBrowseParamsSchema>;\n\nexport const dbBrowseQuerySchema = z.object({\n cursor: z.string().optional(),\n limit: z.coerce.number().int().min(1).max(200).default(50),\n order: z.enum(['asc', 'desc']).default('asc'),\n});\nexport type DbBrowseQuery = z.infer<typeof dbBrowseQuerySchema>;\n\n// Hard ceiling on the number of rows the Studio DB Explorer ad-hoc editor\n// returns. Queries without an explicit `LIMIT` are auto-wrapped at this\n// value; queries with a higher LIMIT are still capped server-side. The UI\n// surfaces a `truncated: true` warning when the server applied it.\nexport const STUDIO_DB_QUERY_ROW_LIMIT = 1000;\n\n// Per-statement timeout enforced by `SET LOCAL statement_timeout`. Spec\n// dictates 5s for V6 — long enough for index-driven scans on a few-million\n// row table, short enough that a missing index can't lock up the editor.\nexport const STUDIO_DB_QUERY_STATEMENT_TIMEOUT_MS = 5_000;\n\nexport const dbQueryRequestSchema = z.object({\n sql: z.string().min(1, 'sql must not be empty').max(50_000),\n});\nexport type DbQueryRequest = z.infer<typeof dbQueryRequestSchema>;\n\nexport const dbQueryResponseSchema = z.object({\n columns: z.array(\n z.object({\n name: z.string(),\n data_type: z.string(),\n }),\n ),\n rows: z.array(jsonObject()),\n // True when the server appended `LIMIT 1000` because the original SQL was\n // missing one (or had a higher one). The editor surfaces this as a banner.\n truncated: z.boolean(),\n duration_ms: z.number().nonnegative(),\n});\nexport type DbQueryResponse = z.infer<typeof dbQueryResponseSchema>;\n\nexport const dbBrowseResponseSchema = z.object({\n columns: z.array(dbColumnSchema),\n rows: z.array(jsonObject()),\n next_cursor: z.string().nullable(),\n // The PK column the cursor encodes, or null when the table has no single-\n // column PK and the browse fell back to LIMIT/OFFSET pagination. The UI\n // surfaces a \"best-effort order\" badge in the latter case.\n cursor_column: z.string().nullable(),\n});\nexport type DbBrowseResponse = z.infer<typeof dbBrowseResponseSchema>;\n","import { z } from 'zod';\nimport { jsonObject } from '../common/json-object';\nimport { dbIdentifierSchema } from './studio-db';\n\n// Studio Queues Inspector (V7). Spec: docs/arquitectura/componentes/11-stackbone-studio.md\n// §\"Queues Inspector\". Wire shape is identical for the local emulator (pgmq\n// against the agent's Postgres at :5433) and the cloud control plane (pgmq\n// against the install's Neon + QStash for cross-container push). The Studio\n// UI flips datapath without changing the resource hooks.\n\nexport const queueKindSchema = z.enum(['pgmq', 'qstash']);\nexport type QueueKind = z.infer<typeof queueKindSchema>;\n\n// Studio reduces pgmq's vt-based state to three buckets the UI can render:\n// pending — message is visible to consumers (`vt <= now()`).\n// in_flight — visibility timeout in the future (`vt > now()`); either a\n// worker is processing it or `pgmq.send` deferred delivery.\n// archived — moved to `pgmq.a_<name>` after `pgmq.archive`.\n// QStash messages collapse into the same three buckets — pending is\n// queued-but-undelivered, in_flight is delivering/retrying, archived is\n// dead-lettered. V7 does not expose distinct `dead_letter` because the DLQ\n// reproceso bulk surface is V1+ (see Notas y decisiones).\nexport const jobStatusSchema = z.enum(['pending', 'in_flight', 'archived']);\nexport type JobStatus = z.infer<typeof jobStatusSchema>;\n\nexport const queueSummarySchema = z.object({\n name: z.string(),\n kind: queueKindSchema,\n // `is_dlq: true` flags queues whose name follows the `*-dlq` / `*_dlq`\n // convention. Studio renders them under a \"Dead-letter\" subgroup; the\n // server-side actions (requeue/discard) are unchanged.\n is_dlq: z.boolean(),\n pending: z.number().int().nonnegative(),\n in_flight: z.number().int().nonnegative(),\n archived: z.number().int().nonnegative(),\n});\nexport type QueueSummary = z.infer<typeof queueSummarySchema>;\n\nexport const queueListResponseSchema = z.object({\n items: z.array(queueSummarySchema),\n});\nexport type QueueListResponse = z.infer<typeof queueListResponseSchema>;\n\n// Per-job row. `id` is the pgmq `msg_id` rendered as a string (BIGINT crosses\n// JS Number safe-integer at ~2^53; stringifying matches the same handling\n// used by other BIGINT-bearing surfaces). Composite job-actions URLs\n// (POST /api/jobs/:queue/:id/...) carry the queue separately so the row id\n// stays clean.\nexport const jobSchema = z.object({\n id: z.string(),\n queue: z.string(),\n kind: queueKindSchema,\n status: jobStatusSchema,\n attempts: z.number().int().nonnegative(),\n enqueued_at: z.iso.datetime(),\n next_visible_at: z.iso.datetime().nullable(),\n archived_at: z.iso.datetime().nullable(),\n payload: jsonObject(),\n});\nexport type Job = z.infer<typeof jobSchema>;\n\n// `queue` is mandatory: pgmq `msg_id` is unique per queue, not globally,\n// so we cannot list \"all jobs\" without scoping. The Studio sidebar always\n// has a queue selected before the table renders.\nexport const listJobsQuerySchema = z.object({\n queue: dbIdentifierSchema,\n status: jobStatusSchema.optional(),\n cursor: z.string().optional(),\n limit: z.coerce.number().int().min(1).max(200).default(50),\n});\nexport type ListJobsQuery = z.infer<typeof listJobsQuerySchema>;\n\nexport const jobListResponseSchema = z.object({\n items: z.array(jobSchema),\n next_cursor: z.string().nullable(),\n});\nexport type JobListResponse = z.infer<typeof jobListResponseSchema>;\n\n// Job-action URLs share the same `(queue, msgId)` shape so the controller can\n// route both `requeue` and `discard` through the same params DTO. The path\n// segment is named `msgId` (not `id`) because the surrounding install path\n// already binds `:id` to the installation UUID.\nexport const jobActionParamsSchema = z.object({\n queue: dbIdentifierSchema,\n msgId: z.string().regex(/^[0-9]+$/, 'job id must be a numeric pgmq msg_id'),\n});\nexport type JobActionParams = z.infer<typeof jobActionParamsSchema>;\n\nexport const jobActionResponseSchema = z.object({\n // Echoes the new msg_id when the action created a fresh row (requeue) and\n // the original id when the action only mutated state (discard).\n id: z.string(),\n queue: z.string(),\n status: jobStatusSchema,\n});\nexport type JobActionResponse = z.infer<typeof jobActionResponseSchema>;\n","import { z } from 'zod';\nimport { jsonObject } from '../common/json-object';\n\n// Studio RAG Collections (V9). Spec: docs/arquitectura/componentes/11-stackbone-studio.md\n// §\"RAG Collections\". Wire shape is identical for the local emulator and the\n// cloud control plane. Both surfaces query `_rag_meta` + `rag_chunks` against\n// the install's Postgres (Neon HTTP one-shot in cloud, pg.Client per request\n// in the emulator). The SDK's `client.rag` (libs/sdk/src/modules/rag) is the\n// writer side; Studio is the reader side.\n\nexport const STUDIO_RAG_DOCS_LIMIT_DEFAULT = 50;\nexport const STUDIO_RAG_DOCS_LIMIT_MAX = 200;\nexport const STUDIO_RAG_TOPK_DEFAULT = 10;\nexport const STUDIO_RAG_TOPK_MAX = 50;\nexport const STUDIO_RAG_PREVIEW_CHARS = 320;\nexport const STUDIO_RAG_JOBS_LIMIT_DEFAULT = 50;\nexport const STUDIO_RAG_JOBS_LIMIT_MAX = 200;\n\n// Namespace identifier — accepts the same character set the SDK uses at\n// ingest time (`namespace TEXT NOT NULL DEFAULT 'default'`). We bound it\n// loosely so creators can use slashes, dots, dashes etc. without surprises.\nconst STUDIO_RAG_COLLECTION_REGEX = /^[A-Za-z0-9][A-Za-z0-9._\\-/:]{0,127}$/;\n\nexport const ragCollectionNameParamSchema = z\n .string()\n .min(1)\n .max(128)\n .regex(STUDIO_RAG_COLLECTION_REGEX, 'collection must be 1..128 ASCII identifier-safe chars');\nexport type RagCollectionNameParam = z.infer<typeof ragCollectionNameParamSchema>;\n\n// Distance metric stored in `_rag_meta.value` as a JSON string. The SDK\n// only writes 'cosine' today (sql.ts:META_KEY_DISTANCE) but we keep the\n// schema open so future ingest paths can declare 'l2'/'ip' without forcing\n// a wire migration.\nexport const ragDistanceSchema = z.enum(['cosine', 'l2', 'ip']);\nexport type RagDistance = z.infer<typeof ragDistanceSchema>;\n\n// Single index kind today — HNSW with vector_cosine_ops (sql.ts:CHUNK_INDEXES_DDL).\n// Surfaced so the UI can render the metadata pill without re-querying pg_indexes.\nexport const ragIndexKindSchema = z.enum(['hnsw']);\nexport type RagIndexKind = z.infer<typeof ragIndexKindSchema>;\n\nexport const ragCollectionSchema = z.object({\n name: z.string(),\n dimensions: z.number().int().min(1),\n distance: ragDistanceSchema,\n index_kind: ragIndexKindSchema,\n chunk_count: z.number().int().nonnegative(),\n doc_count: z.number().int().nonnegative(),\n // Maximum `created_at` across the namespace's chunks. Null when the\n // namespace has zero chunks (it shows up because an earlier ingest left\n // metadata behind but the rows were since deleted).\n last_ingested_at: z.iso.datetime().nullable(),\n});\nexport type RagCollection = z.infer<typeof ragCollectionSchema>;\n\nexport const ragCollectionListResponseSchema = z.object({\n items: z.array(ragCollectionSchema),\n});\nexport type RagCollectionListResponse = z.infer<typeof ragCollectionListResponseSchema>;\n\nexport const ragDocumentSchema = z.object({\n id: z.string(),\n namespace: z.string(),\n chunks_count: z.number().int().min(1),\n // The SDK writes the same `metadata` for every chunk of a doc (rag.ts\n // ingest path). We surface the metadata of the first chunk so the UI can\n // render filterable tags without paging through chunks.\n metadata: jsonObject(),\n // Truncated content of the first chunk. Full body is one click away via\n // the docs drawer in the component.\n preview: z.string(),\n first_seen_at: z.iso.datetime(),\n last_seen_at: z.iso.datetime(),\n});\nexport type RagDocument = z.infer<typeof ragDocumentSchema>;\n\n// JSONB filter payload — a plain `Record<string, unknown>` mapped to a\n// pgvector `metadata @> $1::jsonb` containment match.\nexport const ragFilterSchema = jsonObject();\nexport type RagFilter = z.infer<typeof ragFilterSchema>;\n\nexport const listRagDocsQuerySchema = z.object({\n cursor: z.string().optional(),\n limit: z.coerce\n .number()\n .int()\n .min(1)\n .max(STUDIO_RAG_DOCS_LIMIT_MAX)\n .default(STUDIO_RAG_DOCS_LIMIT_DEFAULT),\n // Filter is sent JSON-encoded inside a single query param so the UI can\n // pass an arbitrarily nested object without colliding with the URL syntax.\n // Empty/absent => no filter.\n filter: z.string().optional(),\n});\nexport type ListRagDocsQuery = z.infer<typeof listRagDocsQuerySchema>;\n\nexport const ragDocumentListResponseSchema = z.object({\n items: z.array(ragDocumentSchema),\n next_cursor: z.string().nullable(),\n});\nexport type RagDocumentListResponse = z.infer<typeof ragDocumentListResponseSchema>;\n\n// Query payload (V9#02) — the wire accepts either a precomputed `embedding`\n// (raw pgvector input, useful for admin/testing) or `text` + `model` (server\n// embeds via the install's LLM gateway). The MVP cloud datapath only honours\n// the `embedding` mode; `text` mode is scaffolded with a 501 envelope and a\n// TODO(studio-v9) for the auto-embed path. The Studio UI defaults to the\n// embedding-paste form to keep parity local↔cloud.\nexport const ragQueryRequestSchema = z\n .object({\n text: z.string().min(1).optional(),\n embedding: z.array(z.number().finite()).min(1).optional(),\n model: z.string().min(1).optional(),\n topK: z.coerce.number().int().min(1).max(STUDIO_RAG_TOPK_MAX).default(STUDIO_RAG_TOPK_DEFAULT),\n filter: ragFilterSchema.optional(),\n })\n .refine((value) => value.embedding !== undefined || value.text !== undefined, {\n message: 'either `embedding` or `text` must be provided',\n path: ['embedding'],\n });\nexport type RagQueryRequest = z.infer<typeof ragQueryRequestSchema>;\n\nexport const ragQueryHitSchema = z.object({\n id: z.string(),\n chunk_idx: z.number().int().nonnegative(),\n // Cosine similarity in [-1, 1]. SDK retrieve() emits `1 - (embedding <=>\n // query)` (sql.ts:retrieve), so higher is closer. We surface the raw\n // value; the UI formats it.\n score: z.number(),\n content: z.string(),\n metadata: jsonObject(),\n});\nexport type RagQueryHit = z.infer<typeof ragQueryHitSchema>;\n\nexport const ragQueryResponseSchema = z.object({\n items: z.array(ragQueryHitSchema),\n // Echoes the dimensions used at retrieval time so the UI can flag a\n // dim-mismatch before it round-trips to a 4xx.\n dimensions: z.number().int().min(1),\n // Provider id when the server embedded `text` for the caller. Null when\n // the caller passed `embedding` directly.\n embedded_with: z.string().nullable(),\n});\nexport type RagQueryResponse = z.infer<typeof ragQueryResponseSchema>;\n\n// Ingest jobs (V9#03). The SDK does not currently materialise async ingest\n// jobs as DB rows — `client.rag.ingest()` is synchronous (libs/sdk/src/modules/\n// rag/rag.ts). The endpoints exist so the Studio UI tab is wired end-to-end;\n// the server returns an empty list until the SDK lands an `_rag_ingest_jobs`\n// table or equivalent. TODO(studio-v9) tracks the plumbing.\nexport const ragJobStatusSchema = z.enum(['queued', 'running', 'succeeded', 'failed', 'cancelled']);\nexport type RagJobStatus = z.infer<typeof ragJobStatusSchema>;\n\nexport const ragJobSchema = z.object({\n id: z.string(),\n collection: z.string(),\n status: ragJobStatusSchema,\n attempts: z.number().int().nonnegative(),\n error: z.string().nullable(),\n created_at: z.iso.datetime(),\n finished_at: z.iso.datetime().nullable(),\n});\nexport type RagJob = z.infer<typeof ragJobSchema>;\n\nexport const listRagJobsQuerySchema = z.object({\n collection: ragCollectionNameParamSchema.optional(),\n cursor: z.string().optional(),\n limit: z.coerce\n .number()\n .int()\n .min(1)\n .max(STUDIO_RAG_JOBS_LIMIT_MAX)\n .default(STUDIO_RAG_JOBS_LIMIT_DEFAULT),\n});\nexport type ListRagJobsQuery = z.infer<typeof listRagJobsQuerySchema>;\n\nexport const ragJobListResponseSchema = z.object({\n items: z.array(ragJobSchema),\n next_cursor: z.string().nullable(),\n});\nexport type RagJobListResponse = z.infer<typeof ragJobListResponseSchema>;\n\nexport const ragJobIdParamSchema = z.object({\n jobId: z.string().min(1).max(128),\n});\nexport type RagJobIdParam = z.infer<typeof ragJobIdParamSchema>;\n\nexport const ragJobActionResponseSchema = z.object({\n id: z.string(),\n status: ragJobStatusSchema,\n});\nexport type RagJobActionResponse = z.infer<typeof ragJobActionResponseSchema>;\n","import { z } from 'zod';\n\n// Studio Secrets (V10). Spec: docs/arquitectura/componentes/11-stackbone-studio.md\n// §\"Secrets\". Wire shape is identical local↔cloud. Cloud reads/writes the\n// `installation_secret` table in the control plane (PR 4 storage); local\n// stores the same shape in `stackbone_platform.secrets` of the emulator's\n// Postgres encrypted with the documented dev-only key.\n//\n// `value` only ever leaves the server through the reveal endpoint (V10#03)\n// and never via list/create — those return masked placeholders.\n\nexport const STUDIO_SECRET_NAME_REGEX = /^[A-Z][A-Z0-9_]{0,127}$/;\nexport const STUDIO_SECRET_VALUE_MAX_BYTES = 4 * 1024;\nexport const STUDIO_SECRET_DESCRIPTION_MAX = 256;\nexport const STUDIO_SECRET_VALUE_MASK = '••••••';\nexport const STUDIO_SECRET_REVEAL_TTL_SECONDS = 60;\n// Local-only fallback used by the emulator when MASTER_ENCRYPTION_KEY is\n// absent. Documented in apps/cli (`stackbone dev`) so creators can decrypt\n// stored secrets out-of-band if needed.\nexport const STUDIO_LOCAL_DEV_ENCRYPTION_KEY = 'dev-only-encryption-key';\n\n// Names the install saga injects (PR 4 + future provisioners). Centralised\n// here so both datapaths reject Studio attempts to shadow them. The\n// `STACKBONE_` prefix matches anything the SDK reads (STACKBONE_API_URL,\n// STACKBONE_AGENT_JWT, …) without listing every variant.\nexport const RESERVED_STUDIO_SECRET_NAMES: ReadonlySet<string> = new Set([\n 'AWS_ACCESS_KEY_ID',\n 'AWS_SECRET_ACCESS_KEY',\n 'S3_ENDPOINT',\n 'S3_BUCKET',\n 'QSTASH_TOKEN',\n 'QSTASH_URL',\n 'OPENROUTER_API_KEY',\n 'DATABASE_URL',\n]);\n\nexport const isReservedStudioSecretName = (name: string): boolean =>\n name.startsWith('STACKBONE_') || RESERVED_STUDIO_SECRET_NAMES.has(name);\n\nexport const studioSecretNameParamSchema = z\n .string()\n .min(1)\n .max(128)\n .regex(STUDIO_SECRET_NAME_REGEX, {\n message: 'secret name must be SHOUTY_SNAKE_CASE (A-Z, 0-9, _)',\n });\nexport type StudioSecretNameParam = z.infer<typeof studioSecretNameParamSchema>;\n\nexport const studioSecretSchema = z.object({\n name: studioSecretNameParamSchema,\n description: z.string().nullable(),\n // Always returned masked from list/get; never the plaintext.\n value_preview: z.string(),\n // Email of the user that last wrote this row, when available. Older rows\n // surface `null` because better-auth user lookup is best-effort.\n created_by_email: z.string().nullable(),\n created_at: z.iso.datetime(),\n // Refreshed on every successful upsert; surfaces \"last rotated\" in the UI.\n last_rotated_at: z.iso.datetime(),\n});\nexport type StudioSecret = z.infer<typeof studioSecretSchema>;\n\nexport const studioSecretListResponseSchema = z.object({\n items: z.array(studioSecretSchema),\n});\nexport type StudioSecretListResponse = z.infer<typeof studioSecretListResponseSchema>;\n\nexport const createStudioSecretRequestSchema = z.object({\n name: studioSecretNameParamSchema,\n value: z.string().min(1).max(STUDIO_SECRET_VALUE_MAX_BYTES),\n description: z.string().max(STUDIO_SECRET_DESCRIPTION_MAX).optional().nullable(),\n});\nexport type CreateStudioSecretRequest = z.infer<typeof createStudioSecretRequestSchema>;\n\nexport const studioSecretMutationResponseSchema = z.object({\n secret: studioSecretSchema,\n});\nexport type StudioSecretMutationResponse = z.infer<typeof studioSecretMutationResponseSchema>;\n\n// `z.enum([...])` (instead of `z.literal()`) keeps the OpenAPI emission\n// flat (`enum: ['deleted']`) so orval — which only consumes OpenAPI 3.0 —\n// doesn't choke on the `const` keyword nestjs-zod emits for literals.\nexport const studioSecretDeleteResponseSchema = z.object({\n name: studioSecretNameParamSchema,\n status: z.enum(['deleted']),\n});\nexport type StudioSecretDeleteResponse = z.infer<typeof studioSecretDeleteResponseSchema>;\n\n// Reveal flow (V10#03). Cloud paths return a `challenge` (magic-link sent\n// to the owner) plus the URL the creator should poll. Local paths skip the\n// reauth step and surface the value directly with a TTL bound matching the\n// cloud ephemeral page.\nexport const studioSecretRevealRequiredResponseSchema = z.object({\n status: z.enum(['reauth_required']),\n challenge_id: z.string(),\n expires_at: z.iso.datetime(),\n});\nexport type StudioSecretRevealRequiredResponse = z.infer<\n typeof studioSecretRevealRequiredResponseSchema\n>;\n\nexport const studioSecretRevealResponseSchema = z.object({\n status: z.enum(['revealed']),\n name: studioSecretNameParamSchema,\n value: z.string(),\n expires_at: z.iso.datetime(),\n});\nexport type StudioSecretRevealResponse = z.infer<typeof studioSecretRevealResponseSchema>;\n","import { z } from 'zod';\n\n// Studio Storage Browser (V8). Spec: docs/arquitectura/componentes/11-stackbone-studio.md\n// §\"Storage Browser\". Wire shape is identical for the local emulator (MinIO at\n// :9004) and the cloud control plane (Cloudflare R2 of the install). Both\n// surfaces sit on top of `@aws-sdk/client-s3` so list/upload/delete/presign\n// behave the same regardless of datapath.\n//\n// Multi-tenant prefix: the SDK writes objects keyed `<agentId>/<bucket>/<key>`\n// (libs/sdk §StorageModule). Studio scopes every browse and mutation to the\n// install's `<agentId>/` prefix so a Studio user can never escape the agent's\n// namespace within the install's S3 bucket.\n\nexport const STUDIO_STORAGE_LIST_LIMIT_DEFAULT = 100;\nexport const STUDIO_STORAGE_LIST_LIMIT_MAX = 1000;\n\n// Hard ceiling on `presign(ttl_seconds)`. Matches the §\"Storage Browser\" spec —\n// 1h is enough for the Studio's \"share this object with a teammate\" loop and\n// short enough that a leaked URL stops working before the next workday.\nexport const STUDIO_STORAGE_PRESIGN_TTL_MAX_SECONDS = 60 * 60;\nexport const STUDIO_STORAGE_PRESIGN_TTL_DEFAULT_SECONDS = 60 * 60;\n\n// Bucket names accepted on the wire follow the S3 / MinIO bucket naming\n// rules: 3..63 chars, lowercase alphanumerics with `.` and `-` separators.\n// We do not enforce the rules in full here — anything that round-trips\n// through the install's secret (cloud) or the dev emulator (local) is\n// already valid; this regex just keeps obvious garbage out of route params.\nconst STUDIO_STORAGE_BUCKET_REGEX = /^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/;\n\nexport const studioStorageBucketParamSchema = z\n .string()\n .min(3)\n .max(63)\n .regex(STUDIO_STORAGE_BUCKET_REGEX, 'bucket must follow S3 bucket naming rules');\nexport type StudioStorageBucketParam = z.infer<typeof studioStorageBucketParamSchema>;\n\n// Kept as `z.enum` (not `z.literal`) so nestjs-zod emits OpenAPI 3.0\n// `enum: ['s3']` instead of the 3.1-only `const: 's3'` which orval rejects\n// during validation. The Studio UI casts `kind` to a literal regardless.\nexport const studioStorageBucketKindSchema = z.enum(['s3']);\nexport type StudioStorageBucketKind = z.infer<typeof studioStorageBucketKindSchema>;\n\nexport const studioStorageBucketSchema = z.object({\n name: z.string(),\n kind: studioStorageBucketKindSchema,\n});\nexport type StudioStorageBucket = z.infer<typeof studioStorageBucketSchema>;\n\nexport const studioStorageBucketListResponseSchema = z.object({\n items: z.array(studioStorageBucketSchema),\n});\nexport type StudioStorageBucketListResponse = z.infer<typeof studioStorageBucketListResponseSchema>;\n\nexport const studioStorageObjectSchema = z.object({\n // User-facing key — already stripped of the `<agentId>/` scope prefix the\n // backend forces on the wire so the UI never has to think about it.\n key: z.string(),\n size: z.number().int().nonnegative(),\n content_type: z.string().nullable(),\n last_modified: z.iso.datetime().nullable(),\n etag: z.string().nullable(),\n});\nexport type StudioStorageObject = z.infer<typeof studioStorageObjectSchema>;\n\nexport const listStudioStorageObjectsQuerySchema = z.object({\n // Sub-prefix below the forced `<agentId>/` scope. `''` means \"list at the\n // root of the agent's namespace\". The UI passes the breadcrumb path here.\n prefix: z.string().max(1024).default(''),\n cursor: z.string().optional(),\n limit: z.coerce\n .number()\n .int()\n .min(1)\n .max(STUDIO_STORAGE_LIST_LIMIT_MAX)\n .default(STUDIO_STORAGE_LIST_LIMIT_DEFAULT),\n});\nexport type ListStudioStorageObjectsQuery = z.infer<typeof listStudioStorageObjectsQuerySchema>;\n\nexport const studioStorageObjectListResponseSchema = z.object({\n items: z.array(studioStorageObjectSchema),\n // Sub-folders one segment below the requested prefix. The UI renders these\n // as folder rows the user can drill into; clicking one re-issues the list\n // call with the new prefix.\n common_prefixes: z.array(z.string()),\n next_cursor: z.string().nullable(),\n});\nexport type StudioStorageObjectListResponse = z.infer<typeof studioStorageObjectListResponseSchema>;\n\nexport const studioStoragePresignRequestSchema = z.object({\n key: z.string().min(1).max(1024),\n ttl_seconds: z.coerce\n .number()\n .int()\n .min(1)\n .max(STUDIO_STORAGE_PRESIGN_TTL_MAX_SECONDS)\n .default(STUDIO_STORAGE_PRESIGN_TTL_DEFAULT_SECONDS),\n});\nexport type StudioStoragePresignRequest = z.infer<typeof studioStoragePresignRequestSchema>;\n\nexport const studioStoragePresignResponseSchema = z.object({\n url: z.string(),\n expires_at: z.iso.datetime(),\n});\nexport type StudioStoragePresignResponse = z.infer<typeof studioStoragePresignResponseSchema>;\n\nexport const studioStorageUploadResponseSchema = z.object({\n key: z.string(),\n size: z.number().int().nonnegative(),\n etag: z.string().nullable(),\n});\nexport type StudioStorageUploadResponse = z.infer<typeof studioStorageUploadResponseSchema>;\n\n// `key` arrives as a base64url-encoded segment so forward slashes can sit\n// inside the path without colliding with route boundaries. The controller\n// decodes it before forwarding to S3.\nexport const studioStorageObjectKeyParamSchema = z\n .string()\n .min(1, 'key must not be empty')\n .max(2048);\nexport type StudioStorageObjectKeyParam = z.infer<typeof studioStorageObjectKeyParamSchema>;\n","/**\n * Uniform error envelope returned by every SDK method. `cause` and `meta` are\n * optional escape hatches so wrappers can attach upstream errors / context\n * without breaking the public shape.\n */\nexport interface SdkError {\n code: string;\n message: string;\n cause?: unknown;\n meta?: Record<string, unknown>;\n}\n\n/**\n * Discriminated result the entire SDK returns. Narrowing on `result.error`\n * automatically refines `result.data` to `T`.\n */\nexport type Result<T> = { data: T; error: null } | { data: null; error: SdkError };\n\nexport function ok<T>(data: T): Result<T> {\n return { data, error: null };\n}\n\nexport function err<T = never>(error: SdkError): Result<T> {\n return { data: null, error };\n}\n\nexport function notImplemented<T = never>(scope: string): Result<T> {\n return {\n data: null,\n error: {\n code: 'not_implemented',\n message: `${scope} is not implemented yet`,\n },\n };\n}\n","import { type ContractResponse, contractResponseSchema } from '@stackbone/validators';\n\nimport { err, ok, type Result } from '../result';\n\n/**\n * Optional injection seam for tests. Production callers rely on the global\n * `fetch` implementation; specs hand in a `vi.fn()` so we can assert\n * single-flight, cache hits and error mapping without real HTTP.\n */\nexport interface ContractHandshakeOptions {\n fetch?: typeof fetch;\n /** Test-only clock override consulted by the TTL eviction path. */\n now?: () => number;\n}\n\n/**\n * Process-lifetime cache keyed by the **normalised** baseUrl\n * (lowercased scheme + host, trailing slash stripped — see `normaliseBaseUrl`\n * below). The map stores the in-flight Promise rather than the resolved\n * Result so two concurrent first-callers share a single fetch (single-flight).\n *\n * `expiresAt` is consulted lazily on the next `get()` and is `Infinity` when\n * `STACKBONE_CONTRACT_TTL_MS` is unset (the default — process-lifetime).\n */\ninterface CacheEntry {\n promise: Promise<Result<ContractResponse>>;\n expiresAt: number;\n}\n\nconst cache = new Map<string, CacheEntry>();\nconst debugLogged = new Set<string>();\n/** Lookup of the most recently resolved Result per normalised baseUrl. */\nconst lastResolved = new Map<string, Result<ContractResponse>>();\n\nconst CONTRACT_PATH = '/api/contract';\n\n/**\n * Static-namespace helper around the Stackbone Agent Protocol handshake. The\n * SDK calls `ContractHandshake.get(baseUrl)` lazily on the first module use;\n * `client.contract` exposes the latest resolved value for the configured\n * baseUrl as a synchronous read-only getter.\n */\nexport const ContractHandshake = {\n async get(\n baseUrl: string | undefined,\n options: ContractHandshakeOptions = {},\n ): Promise<Result<ContractResponse>> {\n if (!baseUrl || baseUrl.trim() === '') {\n // `STACKBONE_API_URL` may be set later in the process lifetime (e.g. in\n // tests that mutate `process.env` between calls). Returning a fresh\n // synchronous error each time avoids freezing the empty state.\n return err({\n code: 'contract_unreachable',\n message:\n 'STACKBONE_API_URL is not set — cannot perform the Stackbone Agent Protocol handshake.',\n meta: { reason: 'no_base_url' },\n });\n }\n\n const key = normaliseBaseUrl(baseUrl);\n const ttl = readTtlMs();\n const now = options.now ?? Date.now;\n\n const existing = cache.get(key);\n if (existing && existing.expiresAt > now()) {\n return existing.promise;\n }\n\n if (existing) {\n // Lazy eviction: TTL elapsed since the last resolution.\n cache.delete(key);\n }\n\n const fetchImpl = options.fetch ?? globalThis.fetch.bind(globalThis);\n const promise = performHandshake(key, fetchImpl);\n const expiresAt = ttl === undefined ? Number.POSITIVE_INFINITY : now() + ttl;\n cache.set(key, { promise, expiresAt });\n\n const resolved = await promise;\n lastResolved.set(key, resolved);\n if (!resolved.error) {\n maybeLogDebug(key, resolved.data);\n }\n return resolved;\n },\n\n /**\n * Synchronous read-only accessor consulted by the gating call sites in\n * slices #4/#5. Returns `false` only when `STACKBONE_REQUIRE_CONTRACT=0` is\n * set; everything else (including unset) keeps gating enabled.\n */\n gatingEnabled(): boolean {\n return process.env['STACKBONE_REQUIRE_CONTRACT'] !== '0';\n },\n\n /**\n * Returns the most recently resolved `ContractResponse` for the given\n * baseUrl, or `null` if no successful handshake has resolved yet (e.g. the\n * cache only holds an error, or no `get()` has been called).\n */\n peek(baseUrl: string | undefined): ContractResponse | null {\n if (!baseUrl || baseUrl.trim() === '') return null;\n const key = normaliseBaseUrl(baseUrl);\n const resolved = lastResolved.get(key);\n if (!resolved || resolved.error) return null;\n return resolved.data;\n },\n\n /** Test-only — clears the per-process cache so specs start from a clean state. */\n __resetForTests(): void {\n cache.clear();\n lastResolved.clear();\n debugLogged.clear();\n },\n} as const;\n\nasync function performHandshake(\n baseUrl: string,\n fetchImpl: typeof fetch,\n): Promise<Result<ContractResponse>> {\n const url = `${baseUrl}${CONTRACT_PATH}`;\n let response: Response;\n try {\n response = await fetchImpl(url, { method: 'GET' });\n } catch (cause) {\n return err({\n code: 'contract_unreachable',\n message: `Failed to reach ${url}: ${cause instanceof Error ? cause.message : String(cause)}`,\n cause,\n meta: { baseUrl },\n });\n }\n\n if (response.status === 404) {\n await response.body?.cancel();\n return err({\n code: 'contract_unreachable',\n message: `${url} responded 404 — the datapath is not Stackbone-shaped.`,\n meta: { baseUrl, reason: 'endpoint_missing' },\n });\n }\n\n if (response.status >= 500) {\n await response.body?.cancel();\n return err({\n code: 'contract_unreachable',\n message: `${url} responded ${response.status} — the datapath errored serving the contract.`,\n meta: { baseUrl, reason: 'datapath_error', status: response.status },\n });\n }\n\n let payload: unknown;\n try {\n payload = await response.json();\n } catch (cause) {\n return err({\n code: 'contract_malformed',\n message: `${url} returned a body that is not valid JSON.`,\n cause,\n meta: { baseUrl, issues: [] },\n });\n }\n\n const parsed = contractResponseSchema.safeParse(payload);\n if (!parsed.success) {\n return err({\n code: 'contract_malformed',\n message: `${url} returned a payload that does not match the contract schema.`,\n meta: { baseUrl, issues: parsed.error.issues },\n });\n }\n\n return ok(parsed.data);\n}\n\n/**\n * Normalises a baseUrl so the cache key collapses cosmetic differences:\n * lowercases the URL parser's `origin` (scheme + host + port) and drops a\n * trailing slash. Path components are intentionally ignored — the SDK only\n * accepts an _origin_ baseUrl today.\n *\n * Falls back to a string-level normalisation if `URL` rejects the input.\n */\nfunction normaliseBaseUrl(baseUrl: string): string {\n try {\n const parsed = new URL(baseUrl);\n return `${parsed.protocol.toLowerCase()}//${parsed.host.toLowerCase()}`;\n } catch {\n return baseUrl.trim().toLowerCase().replace(/\\/+$/, '');\n }\n}\n\nfunction readTtlMs(): number | undefined {\n const raw = process.env['STACKBONE_CONTRACT_TTL_MS'];\n if (raw === undefined || raw === '') return undefined;\n const n = Number.parseInt(raw, 10);\n if (!Number.isFinite(n) || n <= 0) return undefined;\n return n;\n}\n\nfunction maybeLogDebug(key: string, contract: ContractResponse): void {\n if (process.env['STACKBONE_DEBUG'] !== '1') return;\n if (debugLogged.has(key)) return;\n debugLogged.add(key);\n console.warn(\n `[stackbone] contract handshake ok: baseUrl=${key} version=${contract.version} capabilities=${contract.capabilities.length}`,\n );\n}\n","import {\n type ContractResponse,\n MODULE_CAPABILITIES,\n requireCapability,\n} from '@stackbone/validators';\n\nimport { err, type Result } from '../result';\n\n/**\n * Identifier of every gated SDK module — kept in lock-step with the keys of\n * `MODULE_CAPABILITIES` in `@stackbone/validators` (see slice #1). The SDK's\n * gating call sites (slices #4/#5) take a `ModuleId` argument so the compiler\n * refuses unknown module names.\n */\nexport type ModuleId = keyof typeof MODULE_CAPABILITIES;\n\n/**\n * Pure, table-driven gate. Looks up the module's required capability in the\n * shared `MODULE_CAPABILITIES` map, then delegates the actual version +\n * capability check to `requireCapability` from `@stackbone/validators`.\n *\n * Re-export site for slices #4/#5; intentionally not surfaced from\n * `libs/sdk/src/index.ts` (the SDK's only public contract surface remains\n * `client.contract`).\n */\nexport function assertCapability(module: ModuleId, contract: ContractResponse): Result<undefined> {\n const capability = MODULE_CAPABILITIES[module];\n const result = requireCapability(capability, contract);\n if (result.error) {\n // `ContractCheckError` is structurally compatible with `SdkError`\n // (`{ code, message, meta? }`), so the widening is just a type cast.\n return err(result.error);\n }\n return { data: undefined, error: null };\n}\n","import { type ContractResponse, MODULE_CAPABILITIES } from '@stackbone/validators';\n\nimport { type ResolvedConfig } from '../config';\nimport { err, ok, type Result } from '../result';\n\nimport { assertCapability, type ModuleId } from './capability-registry';\nimport { ContractHandshake, type ContractHandshakeOptions } from './contract-handshake';\n\n/**\n * Async predicate every gated SDK module awaits before forwarding to its\n * underlying implementation. Returns ok when the negotiated contract clears\n * the module's gate (or the escape hatch suppresses a gating error); returns\n * an error envelope otherwise — the caller propagates it back as the public\n * `Result<T>` of the method.\n *\n * Test seam — every gated module exposes an optional `gate` constructor\n * argument that defaults to `createModuleGate(<id>, resolved)`. Specs inject\n * a stub returning a synthetic `Result<undefined>` to exercise the gating\n * paths (ok / `contract_version_unsupported` / `capability_unavailable` /\n * `contract_unreachable`) without driving a real handshake.\n */\nexport type ModuleGate = () => Promise<Result<undefined>>;\n\n/**\n * Options accepted by `createModuleGate`. `fetch`/`now` only flow through to\n * the default `ContractHandshake.get(...)` resolver and are ignored when\n * `resolveContract` is supplied.\n *\n * `resolveContract` is the unit-test seam: lets a spec hand back a synthetic\n * (or even schema-invalid) `Result<ContractResponse>` without going through\n * the wire-level Zod parse — that is how the \"version below the SDK floor\"\n * path is tested even though the wire schema enforces `version >= 1`.\n */\nexport interface ModuleGateOptions extends ContractHandshakeOptions {\n resolveContract?: () => Promise<Result<ContractResponse>>;\n}\n\n/**\n * Gating-warning bookkeeping is global on purpose: the escape-hatch warning\n * is a property of the (process, baseUrl, capability) tuple, not of any one\n * gate instance. Storing the set on the module makes it survive HMR-style\n * facade re-instantiation while still being clearable for tests via\n * `__resetForTests` below.\n */\nconst warnedKeys = new Set<string>();\n\n/**\n * Builds the lazy contract-gate every facade method consults before\n * forwarding to the underlying call. The returned function:\n *\n * 1. Resolves the configured baseUrl from `resolved` (config first, then\n * `STACKBONE_API_URL`).\n * 2. Awaits the contract — by default `ContractHandshake.get(baseUrl)`\n * (single-flight, cached per baseUrl, lazy on first invocation). Tests\n * inject `resolveContract` to bypass the wire schema.\n * 3. On `contract_unreachable` / `contract_malformed`, returns the error.\n * These are reachability failures and remain hard errors regardless of\n * `STACKBONE_REQUIRE_CONTRACT` — the agent literally cannot tell what it\n * is talking to.\n * 4. On a successfully resolved contract, runs `assertCapability(module, c)`.\n * If it errors and `STACKBONE_REQUIRE_CONTRACT=0`, logs a single warning\n * per (process, baseUrl, capability) tuple to stderr and returns ok so\n * the underlying call proceeds. Otherwise returns the error.\n */\nexport function createModuleGate(\n module: ModuleId,\n resolved: ResolvedConfig,\n options: ModuleGateOptions = {},\n): ModuleGate {\n return async () => {\n const baseUrl = resolved.config.stackboneApiUrl ?? resolved.env['STACKBONE_API_URL'];\n const handshake = options.resolveContract\n ? await options.resolveContract()\n : await ContractHandshake.get(baseUrl, options);\n if (handshake.error) {\n // Reachability failures cannot be suppressed — we don't know what the\n // datapath is, so refusing the call is the only safe answer.\n return err(handshake.error);\n }\n\n // Agent-side floor (F6): when the creator declared `agent.yaml.protocol.required`,\n // the SDK enforces it BEFORE the per-module capability check. This way the\n // creator's declared minimum wins over a misleading `capability_unavailable`\n // when the datapath happens to advertise the capability under an older\n // protocol version the agent does not support.\n const agentFloor = resolved.config.protocolRequired;\n const gateError =\n agentFloor !== undefined && handshake.data.version < agentFloor\n ? ({\n code: 'contract_version_unsupported',\n message: `Stackbone Agent Protocol version ${handshake.data.version} is below the minimum required by this agent (${agentFloor}). Upgrade the datapath or lower agent.yaml.protocol.required.`,\n meta: { detected: handshake.data.version, required: agentFloor },\n } as const)\n : assertCapability(module, handshake.data).error;\n\n if (gateError === null) {\n return ok(undefined);\n }\n\n if (ContractHandshake.gatingEnabled()) {\n return err(gateError);\n }\n\n // STACKBONE_REQUIRE_CONTRACT=0 — escape hatch. We still ran the\n // handshake (so `client.contract` is populated) and we still computed\n // the gate; we just don't propagate the error and we warn loudly enough\n // that the creator notices in dev. We always reference the module's\n // required capability (via `MODULE_CAPABILITIES`) so the warning is\n // identical for both `contract_version_unsupported` (no `capability` in\n // meta) and `capability_unavailable` paths.\n const capability = MODULE_CAPABILITIES[module];\n const key = `${baseUrl ?? ''}::${capability}`;\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n console.warn(\n `[stackbone] STACKBONE_REQUIRE_CONTRACT=0 — suppressing ${gateError.code} for ${capability}; ` +\n `the underlying ${module} call may fail downstream.`,\n );\n }\n return ok(undefined);\n };\n}\n\n/**\n * Test-only — clears the per-process warning bookkeeping so specs can assert\n * on `console.warn` call counts without leaking state across tests.\n */\nexport function __resetModuleGateWarningsForTests(): void {\n warnedKeys.clear();\n}\n","import { err, ok, type Result } from '../../result';\n\nimport { type ApprovalFacade, type ApprovalRequestOptions } from './approval';\n\nexport interface ApprovalToolSpec<I, O> {\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n needsApproval?: boolean | ((input: I) => boolean | Promise<boolean>);\n /**\n * Maps the LLM input to the approval request fields. `topic` and `payload`\n * default to the tool name and the raw input respectively when omitted;\n * `onDecide` must always be supplied so the control plane knows where to\n * deliver the eventual decision.\n */\n toRequest: (\n input: I,\n ) => Omit<ApprovalRequestOptions<I>, 'payload' | 'topic'> &\n Partial<Pick<ApprovalRequestOptions<I>, 'payload' | 'topic'>>;\n execute: (input: I) => Promise<O> | O;\n}\n\nexport interface OpenAIToolSpec {\n type: 'function';\n function: {\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n };\n}\n\nexport type ToolInvokeResult<O> =\n | { status: 'pending'; approvalId: string; expiresAt: string }\n | { status: 'ok'; result: O };\n\nexport interface ApprovalTool<I, O> {\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n openaiSpec(): OpenAIToolSpec;\n invoke(input: I): Promise<Result<ToolInvokeResult<O>>>;\n}\n\nexport function createApprovalTool<I, O>(\n facade: ApprovalFacade,\n spec: ApprovalToolSpec<I, O>,\n): ApprovalTool<I, O> {\n return {\n name: spec.name,\n description: spec.description,\n parameters: spec.parameters,\n openaiSpec(): OpenAIToolSpec {\n return {\n type: 'function',\n function: {\n name: spec.name,\n description: spec.description,\n parameters: spec.parameters,\n },\n };\n },\n async invoke(input: I): Promise<Result<ToolInvokeResult<O>>> {\n if (await resolveGate(spec.needsApproval, input)) {\n const requestOpts = spec.toRequest(input);\n const requested = await facade.request<I>({\n ...requestOpts,\n topic: requestOpts.topic ?? `tool:${spec.name}`,\n payload: requestOpts.payload ?? input,\n });\n if (requested.error) return requested;\n return ok({\n status: 'pending',\n approvalId: requested.data.approvalId,\n expiresAt: requested.data.expiresAt,\n });\n }\n try {\n return ok({ status: 'ok', result: await spec.execute(input) });\n } catch (raw) {\n return err({\n code: 'approval_tool_execute_failed',\n message: raw instanceof Error ? raw.message : String(raw),\n cause: raw,\n meta: { tool: spec.name },\n });\n }\n },\n };\n}\n\nasync function resolveGate<I>(\n needsApproval: ApprovalToolSpec<I, unknown>['needsApproval'],\n input: I,\n): Promise<boolean> {\n if (needsApproval === undefined || needsApproval === false) return false;\n if (needsApproval === true) return true;\n return Boolean(await needsApproval(input));\n}\n","import { type ResolvedConfig } from '../../config';\nimport { err, ok, type Result } from '../../result';\n\nimport { DECISION_STATUSES, type Decision, type DecisionStatus } from './approval';\n\nexport interface VerifyOptions {\n /** Override the signing key resolved from `STACKBONE_APPROVAL_SIGNING_KEY` / `approvalSigningKey`. */\n signingKey?: string;\n /** Reject signatures whose timestamp is older than this (seconds). Default 300. */\n toleranceSeconds?: number;\n /** Inject a clock for tests. Defaults to `Date.now`. */\n now?: () => number;\n}\n\nconst SIGNATURE_HEADER = 'stackbone-signature';\nconst DEFAULT_TOLERANCE_SECONDS = 300;\nconst FUTURE_DRIFT_TOLERANCE_SECONDS = 30;\nconst HEX_RE = /^[0-9a-f]+$/i;\n\n/**\n * Header format follows the Stripe-style convention used elsewhere in\n * the platform: `t=<unix>,v1=<hex>`. HMAC-SHA256 is computed over\n * `${timestamp}.${rawBody}` with the agent's approval signing key. We\n * compare the digest in constant time and reject timestamps outside\n * `toleranceSeconds` to bound replay risk.\n */\nexport async function verifyCallback<T = unknown>(\n request: Request,\n resolved: ResolvedConfig,\n options: VerifyOptions = {},\n): Promise<Result<Decision<T>>> {\n const signingKey = resolveSigningKey(resolved, options.signingKey);\n if (!signingKey) {\n return err({\n code: 'approval_signing_key_missing',\n message:\n 'Cannot verify callback — set `STACKBONE_APPROVAL_SIGNING_KEY` in the container or pass `approvalSigningKey` to `createClient({...})`.',\n });\n }\n\n const header = request.headers.get(SIGNATURE_HEADER);\n if (!header) {\n return err({\n code: 'approval_invalid_signature',\n message: `Missing ${SIGNATURE_HEADER} header.`,\n });\n }\n\n const parsed = parseHeader(header);\n if (!parsed) {\n return err({\n code: 'approval_invalid_signature',\n message: 'Malformed signature header. Expected `t=<unix>,v1=<hex>`.',\n });\n }\n\n // Use a signed delta so we reject far-future timestamps (replay) while\n // still allowing the small positive clock drift typical between hosts.\n const tolerance = options.toleranceSeconds ?? DEFAULT_TOLERANCE_SECONDS;\n const now = (options.now ?? Date.now)();\n const deltaSeconds = now / 1000 - parsed.timestamp;\n if (deltaSeconds > tolerance || deltaSeconds < -FUTURE_DRIFT_TOLERANCE_SECONDS) {\n return err({\n code: 'approval_signature_expired',\n message: `Signature timestamp is outside the ${tolerance}s tolerance window.`,\n meta: { deltaSeconds, toleranceSeconds: tolerance },\n });\n }\n\n const rawBody = await readRawBody(request);\n const expected = await computeHmac(signingKey, `${parsed.timestamp}.${rawBody}`);\n if (!constantTimeEqual(expected, parsed.signature)) {\n return err({\n code: 'approval_invalid_signature',\n message: 'Signature does not match the request body.',\n });\n }\n\n let decision: Decision<T>;\n try {\n decision = JSON.parse(rawBody) as Decision<T>;\n } catch (e) {\n return err({\n code: 'approval_invalid_payload',\n message: `Callback body is not valid JSON: ${e instanceof Error ? e.message : String(e)}`,\n cause: e,\n });\n }\n\n if (!isDecision(decision)) {\n return err({\n code: 'approval_invalid_payload',\n message: 'Callback body is not a Decision<T> object.',\n });\n }\n\n return ok(decision);\n}\n\nfunction resolveSigningKey(resolved: ResolvedConfig, override?: string): string | undefined {\n return (\n override ?? resolved.config.approvalSigningKey ?? resolved.env['STACKBONE_APPROVAL_SIGNING_KEY']\n );\n}\n\nfunction parseHeader(header: string): { timestamp: number; signature: string } | null {\n let timestamp: number | undefined;\n let signature: string | undefined;\n for (const part of header.split(',')) {\n const eqIdx = part.indexOf('=');\n if (eqIdx === -1) continue;\n const key = part.slice(0, eqIdx).trim();\n const value = part.slice(eqIdx + 1).trim();\n if (!value) continue;\n if (key === 't') {\n const parsed = Number.parseInt(value, 10);\n if (Number.isFinite(parsed)) timestamp = parsed;\n } else if (key === 'v1') {\n if (HEX_RE.test(value)) signature = value.toLowerCase();\n }\n }\n if (timestamp === undefined || signature === undefined) return null;\n return { timestamp, signature };\n}\n\n/** `request.text()` consumes the body; clone upstream if you need to re-read it. */\nasync function readRawBody(request: Request): Promise<string> {\n return request.text();\n}\n\nconst ENCODER = new TextEncoder();\n\n/** @internal — exposed so the test suite can sign fixtures without forking the algorithm. */\nexport async function computeHmac(secret: string, message: string): Promise<string> {\n const key = await crypto.subtle.importKey(\n 'raw',\n ENCODER.encode(secret),\n { name: 'HMAC', hash: 'SHA-256' },\n false,\n ['sign'],\n );\n const signature = await crypto.subtle.sign('HMAC', key, ENCODER.encode(message));\n return Buffer.from(new Uint8Array(signature)).toString('hex');\n}\n\nfunction constantTimeEqual(a: string, b: string): boolean {\n if (a.length !== b.length) return false;\n let mismatch = 0;\n for (let i = 0; i < a.length; i++) {\n mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);\n }\n return mismatch === 0;\n}\n\nfunction isDecision(value: unknown): value is Decision<unknown> {\n if (!value || typeof value !== 'object') return false;\n const status = (value as { status?: unknown }).status;\n return DECISION_STATUSES.includes(status as DecisionStatus);\n}\n","import { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\nimport { type HttpClient } from '../../lib/http-client';\nimport { err, type Result } from '../../result';\n\nimport { createApprovalTool, type ApprovalToolSpec, type ApprovalTool } from './tool';\nimport { verifyCallback, type VerifyOptions } from './verify';\n\nexport type ApprovalTopic = string;\n\nexport const DECISION_STATUSES = ['approved', 'rejected', 'timed_out', 'cancelled'] as const;\nexport type DecisionStatus = (typeof DECISION_STATUSES)[number];\nexport type ApprovalStatus = 'pending' | DecisionStatus;\n\nexport type Decision<T = unknown> =\n | {\n status: 'approved' | 'rejected';\n payload: T;\n approver: ApproverInfo;\n decidedAt: string;\n reason?: string;\n }\n | { status: 'timed_out'; decidedAt: string }\n | { status: 'cancelled'; decidedAt: string; reason?: string };\n\nexport interface ApproverInfo {\n id: string;\n email: string;\n name?: string;\n}\n\nexport interface ApprovalRequestOptions<T = unknown> {\n topic: ApprovalTopic;\n payload: T;\n title?: string;\n description?: string;\n /** Path on the agent the control plane will POST the decision to (resolved against the agent's public URL server-side). */\n onDecide: string;\n /** ISO 8601 duration (`'24h'`) or milliseconds. Default 24h. */\n timeout?: string | number;\n onTimeout?: 'reject' | 'approve' | 'ignore';\n approver?: string;\n /** Same `(topic, idempotencyKey)` returns the same `approvalId` instead of creating a new one. */\n idempotencyKey?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface ApprovalRequest {\n approvalId: string;\n status: 'pending';\n callbackUrl: string;\n expiresAt: string;\n}\n\nexport interface ApprovalRecord<T = unknown> {\n approvalId: string;\n topic: ApprovalTopic;\n status: ApprovalStatus;\n payload: T;\n decision?: Decision<T>;\n createdAt: string;\n expiresAt: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface ApprovalListOptions {\n status?: ApprovalStatus;\n topic?: ApprovalTopic;\n cursor?: string;\n /** 1..100. Default 50. */\n limit?: number;\n}\n\nexport interface ApprovalListResult<T = unknown> {\n items: ApprovalRecord<T>[];\n nextCursor?: string;\n}\n\nexport class ApprovalFacade {\n private readonly _gate: ModuleGate;\n\n constructor(\n private readonly _resolved: ResolvedConfig,\n private readonly _http: HttpClient,\n /** Test seam — see `ModuleGate`. Defaults to the lazy contract gate. */\n gate?: ModuleGate,\n ) {\n this._gate = gate ?? createModuleGate('approval', _resolved);\n }\n\n async request<T = unknown>(options: ApprovalRequestOptions<T>): Promise<Result<ApprovalRequest>> {\n const validation = validateRequest(options);\n if (validation) return validation;\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n return this._http.post<ApprovalRequest>('/api/approvals', { ...options });\n }\n\n async cancel(approvalId: string, reason?: string): Promise<Result<void>> {\n if (!approvalId) {\n return err({ code: 'approval_invalid_request', message: '`approvalId` is required.' });\n }\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n return this._http.post<void>(\n `/api/approvals/${encodeURIComponent(approvalId)}/cancel`,\n reason ? { reason } : undefined,\n );\n }\n\n async get<T = unknown>(approvalId: string): Promise<Result<ApprovalRecord<T>>> {\n if (!approvalId) {\n return err({ code: 'approval_invalid_request', message: '`approvalId` is required.' });\n }\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n return this._http.get<ApprovalRecord<T>>(`/api/approvals/${encodeURIComponent(approvalId)}`);\n }\n\n async list<T = unknown>(\n options: ApprovalListOptions = {},\n ): Promise<Result<ApprovalListResult<T>>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const params = pickDefinedAsStrings({\n status: options.status,\n topic: options.topic,\n cursor: options.cursor,\n limit: options.limit,\n });\n return this._http.get<ApprovalListResult<T>>('/api/approvals', { params });\n }\n\n /**\n * Local crypto verification — does not touch the datapath, so it is NOT\n * gated by the contract handshake. Auditing rule: a method gates iff it\n * issues an HTTP request to the configured baseUrl.\n */\n verify<T = unknown>(request: Request, options?: VerifyOptions): Promise<Result<Decision<T>>> {\n return verifyCallback<T>(request, this._resolved, options);\n }\n\n /**\n * Pure factory — returns an `ApprovalTool` whose `invoke()` ultimately\n * calls back into `ApprovalFacade.request`, so the gate fires there. Not\n * gated here.\n */\n tool<I, O>(spec: ApprovalToolSpec<I, O>): ApprovalTool<I, O> {\n return createApprovalTool(this, spec);\n }\n}\n\nfunction validateRequest(options: ApprovalRequestOptions): Result<ApprovalRequest> | null {\n if (!options.topic?.trim()) {\n return err({ code: 'approval_invalid_request', message: '`topic` is required.' });\n }\n if (!options.onDecide?.trim()) {\n return err({ code: 'approval_invalid_request', message: '`onDecide` is required.' });\n }\n return null;\n}\n\nfunction pickDefinedAsStrings(\n source: Record<string, string | number | undefined>,\n): Record<string, string> {\n const out: Record<string, string> = {};\n for (const [k, v] of Object.entries(source)) {\n if (v !== undefined) out[k] = String(v);\n }\n return out;\n}\n\nexport type { VerifyOptions } from './verify';\nexport type { ApprovalToolSpec, ApprovalTool } from './tool';\n","import { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\nimport { type HttpClient } from '../../lib/http-client';\nimport { err, ok, type Result } from '../../result';\n\nexport class ConfigFacade {\n private readonly _gate: ModuleGate;\n\n constructor(\n resolved: ResolvedConfig,\n private readonly _http: HttpClient,\n /** Test seam — see `ModuleGate`. Defaults to the lazy contract gate. */\n gate?: ModuleGate,\n ) {\n this._gate = gate ?? createModuleGate('config', resolved);\n }\n\n async get<T = unknown>(key: string): Promise<Result<T>> {\n if (!key.trim()) {\n return err({ code: 'config_invalid_request', message: '`key` is required.' });\n }\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const result = await this._http.get<{ value: T }>(`/api/config/${encodeURIComponent(key)}`);\n if (result.error) return remapNotFound(result.error.code, key) ?? result;\n return ok(result.data.value);\n }\n\n /**\n * Keys absent from the agent's config come back as omissions in the\n * response — the returned map only contains entries the control plane\n * actually has, so callers must access fields with `?.` (the return type\n * is `Partial<T>`).\n */\n async getMany<T extends Record<string, unknown> = Record<string, unknown>>(\n keys: string[],\n ): Promise<Result<Partial<T>>> {\n if (!Array.isArray(keys) || keys.length === 0) {\n return err({\n code: 'config_invalid_request',\n message: '`keys` must be a non-empty array.',\n });\n }\n if (keys.some((k) => !k.trim())) {\n return err({\n code: 'config_invalid_request',\n message: '`keys[*]` must be non-empty strings.',\n });\n }\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const result = await this._http.get<{ values: Partial<T> }>('/api/config', {\n params: { keys: keys.join(',') },\n });\n // 404 here means the route is missing (misconfigured `stackboneApiUrl`),\n // not \"no entries\" — absent keys already come back as omissions in `values`.\n if (result.error) return result;\n const values = result.data.values;\n if (!values || typeof values !== 'object') {\n return err({\n code: 'config_invalid_response',\n message: 'Control plane returned a payload without a `values` map.',\n });\n }\n return ok(values);\n }\n}\n\nfunction remapNotFound(code: string, key: string): Result<never> | null {\n if (code !== 'http_not_found') return null;\n return err({\n code: 'config_not_found',\n message: `Config key \\`${key}\\` is not set for this agent.`,\n meta: { key },\n });\n}\n","import { type ResolvedConfig } from '../../config';\nimport { type HttpClient } from '../../lib/http-client';\nimport { notImplemented, type Result } from '../../result';\n\n/** OAuth connections (Notion, GDrive, Slack…). */\nexport class ConnectionsFacade {\n constructor(\n private readonly _resolved: ResolvedConfig,\n private readonly _http: HttpClient,\n ) {}\n\n async list(): Promise<Result<readonly never[]>> {\n return notImplemented('connections.list');\n }\n}\n","import { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\nimport { type HttpClient } from '../../lib/http-client';\nimport { err, notImplemented, type Result } from '../../result';\n\n/** Emit events to the workspace event bus. */\nexport class EventsFacade {\n private readonly _gate: ModuleGate;\n\n constructor(\n resolved: ResolvedConfig,\n private readonly _http: HttpClient,\n /** Test seam — see `ModuleGate`. Defaults to the lazy contract gate. */\n gate?: ModuleGate,\n ) {\n this._gate = gate ?? createModuleGate('events', resolved);\n }\n\n async emit(_name: string, _payload: unknown): Promise<Result<void>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n return notImplemented('events.emit');\n }\n}\n","import { type ResolvedConfig } from '../../config';\nimport { type HttpClient } from '../../lib/http-client';\nimport { notImplemented, type Result } from '../../result';\n\n/**\n * A prompt managed by the Stackbone control plane. Templates are plain strings\n * with Mustache-style `{{var}}` placeholders — no conditionals or loops.\n */\nexport interface Prompt {\n name: string;\n template: string;\n /** Monotonically increasing per `name`. The first `create` produces version `1`. */\n version: number;\n /** Variable names parsed from the template. */\n variables?: readonly string[];\n metadata?: Record<string, unknown>;\n /** ISO 8601 UTC timestamp. */\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface GetPromptOptions {\n /** Pin a specific version. Omitted -> latest. */\n version?: number;\n}\n\nexport interface ListPromptsOptions {\n /** 1..100. Default 50. */\n limit?: number;\n cursor?: string;\n}\n\nexport interface ListPromptsResult {\n /** Latest version of each prompt. */\n items: readonly Prompt[];\n nextCursor?: string;\n}\n\nexport interface CreatePromptRequest {\n name: string;\n template: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface UpdatePromptOptions {\n /** New template. Bumps `version` by one. */\n template?: string;\n /** Shallow-merged onto the existing metadata. */\n metadata?: Record<string, unknown>;\n}\n\nexport interface DeletePromptOptions {\n /** Delete a specific version. Omitted -> delete every version under `name`. */\n version?: number;\n}\n\nexport interface DeletePromptResult {\n name: string;\n /** Number of versions actually removed. */\n deleted: number;\n}\n\n/**\n * `client.prompts` — managed prompts for the agent. Prompts live outside the\n * code so creators can edit, version and A/B test them without rebuilding the\n * container. The first iteration is a scaffolding placeholder: every method\n * returns `not_implemented`. The real backend will be the Stackbone control\n * plane and the public surface defined here is the contract callers can\n * already type against.\n */\nexport class PromptsFacade {\n constructor(\n _resolved: ResolvedConfig,\n private readonly _http: HttpClient,\n ) {}\n\n async get(_name: string, _options?: GetPromptOptions): Promise<Result<Prompt>> {\n return notImplemented('prompts.get');\n }\n\n async compile(\n _name: string,\n _variables: Record<string, unknown>,\n _options?: GetPromptOptions,\n ): Promise<Result<string>> {\n return notImplemented('prompts.compile');\n }\n\n async list(_options?: ListPromptsOptions): Promise<Result<ListPromptsResult>> {\n return notImplemented('prompts.list');\n }\n\n async create(_request: CreatePromptRequest): Promise<Result<Prompt>> {\n return notImplemented('prompts.create');\n }\n\n async update(_name: string, _options: UpdatePromptOptions): Promise<Result<Prompt>> {\n return notImplemented('prompts.update');\n }\n\n async delete(_name: string, _options?: DeletePromptOptions): Promise<Result<DeletePromptResult>> {\n return notImplemented('prompts.delete');\n }\n}\n","import { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\nimport { type HttpClient } from '../../lib/http-client';\nimport { err, ok, type Result } from '../../result';\n\nexport class SecretsFacade {\n private readonly _gate: ModuleGate;\n\n constructor(\n resolved: ResolvedConfig,\n private readonly _http: HttpClient,\n /** Test seam — see `ModuleGate`. Defaults to the lazy contract gate. */\n gate?: ModuleGate,\n ) {\n this._gate = gate ?? createModuleGate('secrets', resolved);\n }\n\n async get(name: string): Promise<Result<string>> {\n if (!name.trim()) {\n return err({ code: 'secrets_invalid_request', message: '`name` is required.' });\n }\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const result = await this._http.get<{ value: string }>(\n `/api/secrets/${encodeURIComponent(name)}`,\n );\n if (result.error) return remapNotFound(result.error.code, name) ?? result;\n if (typeof result.data.value !== 'string') {\n return err({\n code: 'secrets_invalid_response',\n message: 'Control plane returned a secret without a string `value` field.',\n meta: { name },\n });\n }\n return ok(result.data.value);\n }\n\n /**\n * Names absent from the workspace come back as omissions in the response —\n * the returned map only contains entries the control plane actually has.\n * Callers that need \"all-or-nothing\" semantics should diff the keys.\n */\n async getMany(names: string[]): Promise<Result<Record<string, string>>> {\n if (!Array.isArray(names) || names.length === 0) {\n return err({\n code: 'secrets_invalid_request',\n message: '`names` must be a non-empty array.',\n });\n }\n if (names.some((n) => !n.trim())) {\n return err({\n code: 'secrets_invalid_request',\n message: '`names[*]` must be non-empty strings.',\n });\n }\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const result = await this._http.get<{ values: Record<string, string> }>('/api/secrets', {\n params: { names: names.join(',') },\n });\n // 404 here means the route is missing (misconfigured `stackboneApiUrl`),\n // not \"no entries\" — absent names already come back as omissions in `values`.\n if (result.error) return result;\n const values = result.data.values;\n if (!values || typeof values !== 'object') {\n return err({\n code: 'secrets_invalid_response',\n message: 'Control plane returned a payload without a `values` map.',\n });\n }\n return ok(values);\n }\n}\n\nfunction remapNotFound(code: string, name: string): Result<never> | null {\n if (code !== 'http_not_found') return null;\n return err({\n code: 'secrets_not_found',\n message: `Secret \\`${name}\\` is not registered for this workspace.`,\n meta: { name },\n });\n}\n","import { type ResolvedConfig } from '../config';\nimport { err, ok, type Result, type SdkError } from '../result';\n\n/** Subset of `RequestInit['body']` we serialize without modification. */\ntype SerializedBody = NonNullable<RequestInit['body']>;\n\nexport interface RequestOptions extends Omit<RequestInit, 'body' | 'signal'> {\n params?: Record<string, string>;\n body?: SerializedBody | Record<string, unknown> | unknown[] | null;\n signal?: AbortSignal;\n /** Allow retrying non-idempotent requests (POST, PATCH). Off by default to prevent duplicate writes. */\n idempotent?: boolean;\n}\n\nexport interface HttpClientOptions {\n /** Default 30_000. Set to 0 to disable. */\n timeout?: number;\n /** Default 3. Set to 0 to disable. */\n retryCount?: number;\n /** Initial backoff in ms; doubles each attempt with ±15% jitter. Default 500. */\n retryDelay?: number;\n /** Override the global fetch (useful for tests). */\n fetch?: typeof fetch;\n}\n\nconst RETRYABLE_STATUS = new Set([500, 502, 503, 504]);\nconst IDEMPOTENT_METHODS = new Set(['GET', 'HEAD', 'PUT', 'DELETE', 'OPTIONS']);\n\n/**\n * Shared HTTP client used by the control-plane facades (approval, secrets,\n * connections, config, events). Wraps `fetch` with timeout, exponential\n * backoff with jitter, idempotent-only retries, and a uniform Result\n * envelope so facades never throw at the SDK boundary.\n *\n * Reads `STACKBONE_API_URL` and `STACKBONE_AGENT_JWT` lazily on every request so\n * env-var rotation is picked up without restarting the client.\n */\nexport class HttpClient {\n private readonly timeout: number;\n private readonly retryCount: number;\n private readonly retryDelay: number;\n private readonly fetchImpl: typeof fetch;\n\n constructor(\n private readonly resolved: ResolvedConfig,\n options: HttpClientOptions = {},\n ) {\n this.timeout = options.timeout ?? 30_000;\n this.retryCount = options.retryCount ?? 3;\n this.retryDelay = options.retryDelay ?? 500;\n this.fetchImpl = options.fetch ?? globalThis.fetch.bind(globalThis);\n }\n\n get<T>(path: string, options?: RequestOptions): Promise<Result<T>> {\n return this.request<T>('GET', path, options);\n }\n\n post<T>(\n path: string,\n body?: RequestOptions['body'],\n options?: RequestOptions,\n ): Promise<Result<T>> {\n return this.request<T>('POST', path, withBody(options, body));\n }\n\n put<T>(\n path: string,\n body?: RequestOptions['body'],\n options?: RequestOptions,\n ): Promise<Result<T>> {\n return this.request<T>('PUT', path, withBody(options, body));\n }\n\n patch<T>(\n path: string,\n body?: RequestOptions['body'],\n options?: RequestOptions,\n ): Promise<Result<T>> {\n return this.request<T>('PATCH', path, withBody(options, body));\n }\n\n delete<T>(path: string, options?: RequestOptions): Promise<Result<T>> {\n return this.request<T>('DELETE', path, options);\n }\n\n async request<T>(method: string, path: string, options: RequestOptions = {}): Promise<Result<T>> {\n const baseUrl = resolveApiUrl(this.resolved);\n if (!baseUrl) {\n return err({\n code: 'stackbone_api_url_missing',\n message:\n 'Cannot reach the Stackbone control plane — set `STACKBONE_API_URL` in the container or pass `stackboneApiUrl` to `createClient({...})`.',\n });\n }\n\n const url = buildUrl(baseUrl, path, options.params);\n const canRetry = IDEMPOTENT_METHODS.has(method.toUpperCase()) || options.idempotent === true;\n const maxAttempts = canRetry ? this.retryCount : 0;\n\n const requestHeaders = new Headers(options.headers);\n const jwt = resolveAgentJwt(this.resolved);\n if (jwt && !requestHeaders.has('Authorization')) {\n requestHeaders.set('Authorization', `Bearer ${jwt}`);\n }\n const installationId = resolveInstallationId(this.resolved);\n if (installationId && !requestHeaders.has('X-Stackbone-Installation-Id')) {\n requestHeaders.set('X-Stackbone-Installation-Id', installationId);\n }\n const body = serializeBody(method, options.body, requestHeaders);\n\n let lastError: SdkError | null = null;\n\n for (let attempt = 0; attempt <= maxAttempts; attempt++) {\n if (attempt > 0) {\n try {\n await sleepWithSignal(this.computeBackoff(attempt), options.signal);\n } catch {\n return err({ code: 'http_aborted', message: 'Request aborted by caller' });\n }\n }\n\n const { signal, cancel } = composeSignal(this.timeout, options.signal);\n const {\n body: _rawBody,\n signal: _callerSignal,\n params: _params,\n idempotent: _idempotent,\n headers: _headers,\n ...passthrough\n } = options;\n const init: RequestInit = {\n ...passthrough,\n method,\n headers: requestHeaders,\n };\n if (body !== undefined) init.body = body;\n if (signal) init.signal = signal;\n\n try {\n const response = await this.fetchImpl(url, init);\n cancel();\n\n if (RETRYABLE_STATUS.has(response.status) && attempt < maxAttempts) {\n await response.body?.cancel();\n lastError = {\n code: 'http_server_error',\n message: `Server error: ${response.status} ${response.statusText}`,\n meta: { status: response.status },\n };\n continue;\n }\n\n return await parseResponse<T>(response);\n } catch (raw) {\n cancel();\n const sdkErr = mapFetchError(raw, this.timeout, options.signal);\n if (sdkErr.code === 'http_aborted' || sdkErr.code === 'http_timeout') {\n // Caller cancelled or timeout consumed all attempts — surface immediately.\n return err(sdkErr);\n }\n if (attempt < maxAttempts) {\n lastError = sdkErr;\n continue;\n }\n return err(sdkErr);\n }\n }\n\n return err(\n lastError ?? {\n code: 'http_request_failed',\n message: 'Request failed after all retry attempts',\n },\n );\n }\n\n private computeBackoff(attempt: number): number {\n const base = this.retryDelay * Math.pow(2, attempt - 1);\n const jitter = base * (0.85 + Math.random() * 0.3);\n return Math.round(jitter);\n }\n}\n\nfunction resolveApiUrl(resolved: ResolvedConfig): string | undefined {\n return resolved.config.stackboneApiUrl ?? resolved.env['STACKBONE_API_URL'];\n}\n\nfunction resolveAgentJwt(resolved: ResolvedConfig): string | undefined {\n return resolved.config.agentJwt ?? resolved.env['STACKBONE_AGENT_JWT'];\n}\n\nfunction resolveInstallationId(resolved: ResolvedConfig): string | undefined {\n return resolved.config.installationId ?? resolved.env['STACKBONE_INSTALLATION_ID'];\n}\n\nfunction buildUrl(baseUrl: string, path: string, params?: Record<string, string>): string {\n const url = new URL(path, baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`);\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.append(key, value);\n }\n }\n return url.toString();\n}\n\nfunction serializeBody(\n method: string,\n body: RequestOptions['body'] | undefined,\n headers: Headers,\n): SerializedBody | undefined {\n if (body === undefined || body === null) return undefined;\n if (method === 'GET' || method === 'HEAD') return undefined;\n if (typeof FormData !== 'undefined' && body instanceof FormData) return body;\n if (typeof body === 'string' || body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {\n return body as SerializedBody;\n }\n if (!headers.has('Content-Type')) {\n headers.set('Content-Type', 'application/json;charset=UTF-8');\n }\n return JSON.stringify(body);\n}\n\nasync function parseResponse<T>(response: Response): Promise<Result<T>> {\n if (response.status === 204) return ok(undefined as T);\n\n const contentType = response.headers.get('content-type');\n let parsed: unknown;\n try {\n parsed = contentType?.includes('json') ? await response.json() : await response.text();\n } catch (e) {\n return err({\n code: 'http_parse_error',\n message: `Failed to parse response body: ${e instanceof Error ? e.message : String(e)}`,\n cause: e,\n meta: { status: response.status },\n });\n }\n\n if (response.ok) return ok(parsed as T);\n\n const message =\n parsed &&\n typeof parsed === 'object' &&\n 'message' in parsed &&\n typeof parsed.message === 'string'\n ? parsed.message\n : `Request failed: ${response.statusText}`;\n return err({\n code: codeForStatus(response.status),\n message,\n meta: { status: response.status, body: parsed },\n });\n}\n\nfunction codeForStatus(status: number): string {\n if (status === 401) return 'http_unauthorized';\n if (status === 403) return 'http_forbidden';\n if (status === 404) return 'http_not_found';\n if (status === 408) return 'http_timeout';\n if (status === 429) return 'http_rate_limited';\n if (status >= 500) return 'http_server_error';\n if (status >= 400) return 'http_client_error';\n return 'http_request_failed';\n}\n\nfunction mapFetchError(\n raw: unknown,\n timeoutMs: number,\n callerSignal: AbortSignal | undefined,\n): SdkError {\n if (\n raw &&\n typeof raw === 'object' &&\n 'name' in raw &&\n (raw as { name: string }).name === 'AbortError'\n ) {\n if (callerSignal?.aborted) {\n return { code: 'http_aborted', message: 'Request aborted by caller', cause: raw };\n }\n return {\n code: 'http_timeout',\n message: `Request timed out after ${timeoutMs}ms`,\n cause: raw,\n };\n }\n return {\n code: 'http_network_error',\n message: raw instanceof Error ? raw.message : String(raw),\n cause: raw,\n };\n}\n\n/**\n * Composes the SDK's timeout signal with the caller's signal so either can\n * abort the in-flight request. `cancel()` clears the timeout when the\n * request settles to avoid keeping a dangling timer alive.\n */\nfunction composeSignal(\n timeoutMs: number,\n callerSignal: AbortSignal | undefined,\n): { signal: AbortSignal | undefined; cancel: () => void } {\n if (timeoutMs <= 0 && !callerSignal) return { signal: undefined, cancel: () => undefined };\n const controller = new AbortController();\n let timer: ReturnType<typeof setTimeout> | undefined;\n if (timeoutMs > 0) {\n timer = setTimeout(() => controller.abort(), timeoutMs);\n }\n let onCallerAbort: (() => void) | undefined;\n if (callerSignal) {\n if (callerSignal.aborted) {\n controller.abort(callerSignal.reason);\n } else {\n onCallerAbort = () => controller.abort(callerSignal.reason);\n callerSignal.addEventListener('abort', onCallerAbort, { once: true });\n }\n }\n return {\n signal: controller.signal,\n cancel: () => {\n if (timer !== undefined) clearTimeout(timer);\n if (onCallerAbort && callerSignal) callerSignal.removeEventListener('abort', onCallerAbort);\n },\n };\n}\n\nfunction withBody(\n options: RequestOptions | undefined,\n body: RequestOptions['body'] | undefined,\n): RequestOptions | undefined {\n if (body === undefined) return options;\n return { ...(options ?? {}), body };\n}\n\nasync function sleepWithSignal(ms: number, signal: AbortSignal | undefined): Promise<void> {\n if (signal?.aborted) throw signal.reason ?? new Error('aborted');\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n if (signal && onAbort) signal.removeEventListener('abort', onAbort);\n resolve();\n }, ms);\n const onAbort = signal\n ? () => {\n clearTimeout(timer);\n reject(signal.reason ?? new Error('aborted'));\n }\n : undefined;\n if (signal && onAbort) signal.addEventListener('abort', onAbort, { once: true });\n });\n}\n","import OpenAI from 'openai';\nimport type {\n ChatCompletion,\n ChatCompletionChunk,\n ChatCompletionCreateParamsNonStreaming,\n ChatCompletionCreateParamsStreaming,\n CreateEmbeddingResponse,\n EmbeddingCreateParams,\n} from 'openai/resources';\nimport type { Stream } from 'openai/streaming';\n\nimport { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\nimport { err, ok, type Result, type SdkError } from '../../result';\n\n/**\n * Public surface behind `client.ai`. Wraps the official `openai` SDK with a\n * `baseURL` override pointing to OpenRouter, so 300+ models are reachable\n * with a single, OpenAI-compatible API.\n *\n * Lazy: the underlying `OpenAI` client is built on the first method call\n * (or the first time a sub-namespace is touched) so env vars mutated after\n * `createClient()` are still picked up — same pattern as `DatabaseModule`.\n *\n * Error model: every method returns `Result<T>`. Upstream `APIError`s are\n * mapped to `SdkError` with stable `ai_*` codes. For streaming, the\n * `Result` envelope only covers connection establishment; once the stream\n * is open, mid-flight errors propagate through the iterator — callers must\n * wrap their `for await` loop in `try/catch`. Aborts via `signal.abort()`\n * surface as `ai_aborted` in non-streaming requests; in streaming, the\n * iterator simply terminates (the upstream SDK swallows the abort).\n *\n * Test override: pass `clientOverride` to inject a pre-built `OpenAI`\n * instance (or a stand-in) instead of letting the module build one. The\n * override flows to all four namespaces — `models.list()` included.\n */\nexport class AiModule {\n private _openai: OpenAI | null = null;\n private _chat: { completions: ChatCompletionsNamespace } | null = null;\n private _embeddings: EmbeddingsNamespace | null = null;\n private _images: ImagesNamespace | null = null;\n private _models: ModelsNamespace | null = null;\n private readonly _gate: ModuleGate;\n\n constructor(\n private readonly _resolved: ResolvedConfig,\n clientOverride?: OpenAI,\n /** Test seam — see `ModuleGate`. Defaults to the lazy contract gate. */\n gate?: ModuleGate,\n ) {\n if (clientOverride) this._openai = clientOverride;\n this._gate = gate ?? createModuleGate('ai', _resolved);\n }\n\n get chat(): { completions: ChatCompletionsNamespace } {\n this._chat ??= {\n completions: new ChatCompletionsNamespace(() => this.client(), this._gate),\n };\n return this._chat;\n }\n\n get embeddings(): EmbeddingsNamespace {\n this._embeddings ??= new EmbeddingsNamespace(() => this.client(), this._gate);\n return this._embeddings;\n }\n\n get images(): ImagesNamespace {\n this._images ??= new ImagesNamespace(() => this.client(), this._gate);\n return this._images;\n }\n\n get models(): ModelsNamespace {\n this._models ??= new ModelsNamespace(() => this.client(), this._gate);\n return this._models;\n }\n\n private client(): Result<OpenAI> {\n if (this._openai) return ok(this._openai);\n const apiKey = resolveApiKey(this._resolved);\n if (!apiKey) return missingKeyError();\n this._openai = new OpenAI({\n apiKey,\n baseURL: resolveBaseUrl(this._resolved),\n defaultHeaders: STACKBONE_DEFAULT_HEADERS,\n });\n return ok(this._openai);\n }\n}\n\nclass ChatCompletionsNamespace {\n constructor(\n private readonly _getClient: () => Result<OpenAI>,\n private readonly _gate: ModuleGate,\n ) {}\n\n create(\n params: ChatCompletionCreateParamsStreaming,\n options?: RequestOptions,\n ): Promise<Result<Stream<ChatCompletionChunk>>>;\n create(\n params: ChatCompletionCreateParamsNonStreaming,\n options?: RequestOptions,\n ): Promise<Result<ChatCompletion>>;\n async create(\n params: ChatCompletionCreateParamsNonStreaming | ChatCompletionCreateParamsStreaming,\n options?: RequestOptions,\n ): Promise<Result<ChatCompletion | Stream<ChatCompletionChunk>>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n return wrapCall(this._getClient, params.model, (client) =>\n client.chat.completions.create(params, { signal: options?.signal }),\n );\n }\n}\n\nclass EmbeddingsNamespace {\n constructor(\n private readonly _getClient: () => Result<OpenAI>,\n private readonly _gate: ModuleGate,\n ) {}\n\n async create(\n params: EmbeddingCreateParams,\n options?: RequestOptions,\n ): Promise<Result<CreateEmbeddingResponse>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const model = typeof params.model === 'string' ? params.model : undefined;\n return wrapCall(this._getClient, model, (client) =>\n client.embeddings.create(params, { signal: options?.signal }),\n );\n }\n}\n\nexport interface ImageGenerateParams {\n model: string;\n prompt: string;\n /** Forwarded to OpenRouter as `image_config`. Use for aspect ratio, size, etc. */\n imageConfig?: Record<string, unknown>;\n}\n\nexport interface ImagesResponse {\n created: number;\n data: GeneratedImage[];\n}\n\nexport interface GeneratedImage {\n /** Original `data:image/...;base64,...` URL as returned by OpenRouter. */\n url: string;\n /** Base64 payload extracted from the data URL. */\n b64Json?: string;\n /** MIME type parsed from the data URL prefix. */\n mimeType?: string;\n}\n\nclass ImagesNamespace {\n constructor(\n private readonly _getClient: () => Result<OpenAI>,\n private readonly _gate: ModuleGate,\n ) {}\n\n /**\n * OpenRouter does not implement the OpenAI `/v1/images/generations`\n * endpoint. Image models are reached via `/v1/chat/completions` with\n * `modalities: ['image']`, and the resulting image is returned as a\n * non-standard `message.images[]` array of base64 data URLs. This method\n * encapsulates that quirk and surfaces an OpenAI-shaped response so\n * agent code does not need to know.\n *\n * If the model does not return any images (wrong model, content policy,\n * etc.) this returns an `ai_no_image_generated` error rather than an\n * empty success — surfacing the failure to the caller instead of\n * silently producing zero images.\n */\n async generate(\n params: ImageGenerateParams,\n options?: RequestOptions,\n ): Promise<Result<ImagesResponse>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const body: OpenRouterImageRequest = {\n model: params.model,\n messages: [{ role: 'user', content: params.prompt }],\n modalities: ['image', 'text'],\n ...(params.imageConfig ? { image_config: params.imageConfig } : {}),\n };\n const completion = await wrapCall(this._getClient, params.model, (client) =>\n client.chat.completions.create(body as ChatCompletionCreateParamsNonStreaming, {\n signal: options?.signal,\n }),\n );\n if (completion.error) return completion;\n const data = extractImages(completion.data);\n if (data.length === 0) {\n return err({\n code: 'ai_no_image_generated',\n message: `Model ${params.model} did not return any images. Make sure the model supports image output via OpenRouter.`,\n meta: { model: params.model },\n });\n }\n return ok({ created: completion.data.created, data });\n }\n}\n\nexport interface OpenRouterModel {\n id: string;\n name?: string;\n description?: string;\n context_length?: number;\n pricing?: Record<string, unknown>;\n architecture?: Record<string, unknown>;\n supported_parameters?: string[];\n}\n\nexport interface ModelsListResponse {\n data: OpenRouterModel[];\n}\n\nclass ModelsNamespace {\n constructor(\n private readonly _getClient: () => Result<OpenAI>,\n private readonly _gate: ModuleGate,\n ) {}\n\n /**\n * Calls `GET ${baseURL}/models` directly with `fetch` — the upstream\n * `openai.models.list()` parses the response into OpenAI's `Model` type\n * which discards OpenRouter-specific fields (`pricing`, `context_length`,\n * `supported_parameters`, `architecture`). Going through `fetch` keeps\n * the full payload.\n *\n * Reuses the cached `OpenAI` instance (built lazily by `AiModule`) so\n * the resolved `apiKey` and `baseURL` are consistent with the rest of\n * the namespaces — and any `clientOverride` injected for tests applies\n * here too.\n */\n async list(options?: RequestOptions): Promise<Result<ModelsListResponse>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const clientResult = this._getClient();\n if (clientResult.error) return clientResult;\n const { apiKey, baseURL } = clientResult.data;\n const baseUrl = baseURL.replace(/\\/+$/, '');\n const init: RequestInit = {\n headers: {\n Authorization: `Bearer ${apiKey}`,\n ...STACKBONE_DEFAULT_HEADERS,\n },\n };\n if (options?.signal) init.signal = options.signal;\n try {\n const response = await fetch(`${baseUrl}/models`, init);\n if (!response.ok) {\n const body = (await response.json().catch(() => ({}))) as {\n error?: { message?: string };\n };\n return err({\n code: codeForStatus(response.status),\n message: body.error?.message ?? `HTTP ${response.status}`,\n meta: { status: response.status },\n });\n }\n const json = (await response.json()) as ModelsListResponse;\n return ok(json);\n } catch (raw) {\n return err(mapApiError(raw));\n }\n }\n}\n\ninterface RequestOptions {\n signal?: AbortSignal;\n}\n\ninterface OpenRouterImageRequest {\n model: string;\n messages: ChatCompletionCreateParamsNonStreaming['messages'];\n modalities: ('text' | 'audio' | 'image')[];\n image_config?: Record<string, unknown>;\n}\n\nconst STACKBONE_DEFAULT_HEADERS = {\n 'HTTP-Referer': 'https://stackbone.ai',\n 'X-Title': 'Stackbone Agent Platform',\n} as const;\n\nconst OPENROUTER_DEFAULT_BASE_URL = 'https://openrouter.ai/api/v1';\n\nconst OPENROUTER_KEY_MISSING_MESSAGE =\n 'Cannot reach OpenRouter — set `OPENROUTER_API_KEY` in the container or pass `openrouterKey` to `createClient({...})`.';\n\nfunction missingKeyError<T = never>(): Result<T> {\n return err({\n code: 'openrouter_key_missing',\n message: OPENROUTER_KEY_MISSING_MESSAGE,\n });\n}\n\nfunction resolveApiKey(resolved: ResolvedConfig): string | undefined {\n return resolved.config.openrouterKey ?? resolved.env['OPENROUTER_API_KEY'];\n}\n\nfunction resolveBaseUrl(resolved: ResolvedConfig): string {\n return (\n resolved.config.openrouterBaseUrl ??\n resolved.env['OPENROUTER_BASE_URL'] ??\n OPENROUTER_DEFAULT_BASE_URL\n );\n}\n\nasync function wrapCall<T>(\n getClient: () => Result<OpenAI>,\n model: string | undefined,\n fn: (client: OpenAI) => Promise<T>,\n): Promise<Result<T>> {\n const clientResult = getClient();\n if (clientResult.error) return clientResult;\n try {\n return ok(await fn(clientResult.data));\n } catch (raw) {\n return err(mapApiError(raw, model));\n }\n}\n\ninterface OpenRouterImageItem {\n type?: string;\n image_url?: { url?: string };\n}\n\nconst DATA_URL_RE = /^data:(image\\/[a-zA-Z0-9.+-]+);base64,(.*)$/;\n\nfunction extractImages(completion: ChatCompletion): GeneratedImage[] {\n const message = completion.choices[0]?.message as\n | (ChatCompletion['choices'][number]['message'] & {\n images?: OpenRouterImageItem[];\n })\n | undefined;\n const rawImages = message?.images ?? [];\n const out: GeneratedImage[] = [];\n for (const img of rawImages) {\n const url = img?.image_url?.url;\n if (!url) continue;\n const match = DATA_URL_RE.exec(url);\n if (match && match[1] && match[2]) {\n out.push({ url, mimeType: match[1], b64Json: match[2] });\n } else {\n out.push({ url });\n }\n }\n return out;\n}\n\nfunction codeForStatus(status: number): string {\n if (status === 401) return 'ai_unauthorized';\n if (status === 402) return 'ai_credits_exhausted';\n if (status === 403) return 'ai_forbidden';\n if (status === 408) return 'ai_timeout';\n if (status === 422 || status === 400) return 'ai_validation_error';\n if (status === 429) return 'ai_rate_limited';\n if (status === 451) return 'ai_moderation_blocked';\n return 'ai_provider_error';\n}\n\nfunction mapApiError(raw: unknown, model?: string): SdkError {\n if (raw instanceof OpenAI.APIError) {\n const meta: Record<string, unknown> = { status: raw.status };\n if (model) meta['model'] = model;\n if (raw.code != null) meta['openrouterCode'] = raw.code;\n if (raw.type != null) meta['openrouterType'] = raw.type;\n\n if (raw instanceof OpenAI.APIUserAbortError) {\n return { code: 'ai_aborted', message: raw.message, cause: raw, meta };\n }\n if (raw instanceof OpenAI.APIConnectionTimeoutError) {\n return { code: 'ai_timeout', message: raw.message, cause: raw, meta };\n }\n if (raw instanceof OpenAI.APIConnectionError) {\n return { code: 'ai_network_error', message: raw.message, cause: raw, meta };\n }\n return {\n code: raw.status != null ? codeForStatus(raw.status) : 'ai_provider_error',\n message: raw.message,\n cause: raw,\n meta,\n };\n }\n return {\n code: 'ai_network_error',\n message: raw instanceof Error ? raw.message : String(raw),\n cause: raw,\n };\n}\n","import { drizzle, type PostgresJsDatabase } from 'drizzle-orm/postgres-js';\nimport postgres, { type Sql } from 'postgres';\n\n/**\n * Public surface a creator can use through `client.database`. We pin it to the\n * `postgres-js` Drizzle wrapper because that is the only driver `@stackbone/sdk`\n * ships and the only one `STACKBONE_POSTGRES_URL` is contracted to point at.\n *\n * Re-exporting Drizzle's own type instead of inventing a structural alias keeps\n * the surface 1:1 with what `drizzle-orm` documents and what `@stackbone/sdk/db`\n * re-exports — so types flow end to end without translation.\n */\nexport type DrizzleClient = PostgresJsDatabase<Record<string, never>> & { $client: Sql };\n\n/**\n * Default factory used by `DatabaseModule`. Spied on in tests via\n * `vi.spyOn(lazyClient, 'createDrizzleClient')` to assert the proxy stays lazy\n * and to swap the real connection out for a fake builder. Tweaking the\n * `postgres()` options here (pool size, prepare flag, etc.) keeps that surface\n * in one place — for now we let the postgres-js defaults stand.\n *\n * Cold-start reconnect: after a Fly Machines `auto_stop_machines=suspend` the\n * pool's sockets may be dead. The first query then surfaces a postgres-js\n * `CONNECTION_TERMINATED`/`CONNECTION_ENDED`/`ECONNRESET`. `client.database`\n * traps that case in `internal.ts` (see `runWithColdStartRetry`), invalidates\n * the cached handle, calls `createDrizzleClient` again to rebuild the pool\n * against `STACKBONE_POSTGRES_URL`, and replays the query exactly once.\n */\nexport function createDrizzleClient(connectionString: string): DrizzleClient {\n const sql = postgres(connectionString);\n // `drizzle(sql)` returns `PostgresJsDatabase & { $client: Sql }`; the cast\n // pins the public alias so internal sibling modules (e.g. `client.rag`) can\n // reach the underlying postgres-js `Sql` via `handle.$client` and share the\n // same pool instead of opening their own.\n return drizzle(sql) as DrizzleClient;\n}\n","import { type ModuleGate } from '../../contract/module-gate';\nimport { type SdkError } from '../../result';\n\nimport { createDrizzleClient, type DrizzleClient } from './lazy-client';\n\n/**\n * Module-internal handle to the lazy Drizzle client that backs `client.database`.\n *\n * The handle is intentionally NOT re-exported from `libs/sdk/src/index.ts` nor\n * from `libs/sdk/src/db/index.ts`. It is consumed by direct relative-path\n * imports from sibling modules under `libs/sdk/src/modules/<other>/` (e.g. the\n * future `client.rag` refactor in feature 30 and the future `client.queues`\n * real implementation) so they can share the same connection pool as\n * `client.database` without bouncing through the public surface.\n *\n * Single-pool invariant: an agent process opens at most one `postgres()` pool\n * to its agent database. The first call to `getDatabaseHandle()` (or to a\n * `client.database` method, whichever happens first) builds the pool; every\n * subsequent caller reuses it. This is checked by `nx test sdk` via the spec\n * that asserts `createDrizzleClient` is invoked exactly once across many\n * callers.\n */\nlet cachedHandle: DrizzleClient | null = null;\n\n/**\n * Returns the process-wide Drizzle handle bound to `STACKBONE_POSTGRES_URL`.\n * The first call constructs the underlying `postgres()` pool; subsequent calls\n * return the same Drizzle instance — and therefore reuse the same pool.\n *\n * Throws `SdkError('database_not_configured')` when the env var is unset, with\n * the same shape `client.database` raises for the equivalent setup bug.\n */\nexport function getDatabaseHandle(): DrizzleClient {\n if (cachedHandle) return cachedHandle;\n const connectionString = process.env['STACKBONE_POSTGRES_URL'];\n if (!connectionString) {\n throw new DatabaseNotConfiguredError();\n }\n cachedHandle = createDrizzleClient(connectionString);\n return cachedHandle;\n}\n\nconst DATABASE_NOT_CONFIGURED_MESSAGE =\n 'Cannot reach the agent database — set `STACKBONE_POSTGRES_URL` in the container or run `stackbone dev` to spin up a local emulator.';\n\n/**\n * Mirrors `DatabaseModule`'s setup-bug error so internal callers see the same\n * `code`/`message` contract as the public `client.database` surface.\n */\nclass DatabaseNotConfiguredError extends Error implements SdkError {\n readonly code = 'database_not_configured';\n\n constructor() {\n super(DATABASE_NOT_CONFIGURED_MESSAGE);\n this.name = 'DatabaseNotConfiguredError';\n }\n}\n\n/**\n * Test-only reset hook for the process-wide singleton. Only the sibling spec\n * files in this folder use it; it is intentionally not re-exported from\n * `libs/sdk/src/index.ts` nor `libs/sdk/src/db/index.ts` (same as everything\n * else in this module-internal file). The name is loud on purpose so a\n * production caller would have to mean it.\n */\nexport function __resetDatabaseHandleForTesting(): void {\n cachedHandle = null;\n}\n\n// postgres-js connection codes raised when the underlying socket died (Fly\n// Machines suspended us between queries). SQLSTATE-shaped application errors\n// are excluded — rebuilding the pool only fixes broken sockets.\nconst POOL_TERMINATED_ERROR_CODES = new Set([\n 'CONNECTION_ENDED',\n 'CONNECTION_CLOSED',\n 'CONNECTION_DESTROYED',\n 'CONNECTION_TERMINATED',\n 'ECONNRESET',\n]);\n\nfunction isPoolTerminatedError(error: unknown): boolean {\n if (!error || typeof error !== 'object') return false;\n const code = (error as { code?: unknown }).code;\n return typeof code === 'string' && POOL_TERMINATED_ERROR_CODES.has(code);\n}\n\n// Runs `firstAttempt`; on a postgres-js connection-terminated rejection,\n// rebuilds the singleton pool once and runs `retryAttempt` against the fresh\n// handle. Non-pool errors pass through. If retry also fails, surfaces the\n// original error verbatim — single retry, no looping. One stderr line per\n// retry so operators see cold-start frequency in production.\nasync function runWithColdStartRetry<T>(\n firstAttempt: () => Promise<T> | T,\n retryAttempt: () => Promise<T> | T,\n): Promise<T> {\n try {\n return await firstAttempt();\n } catch (error) {\n if (!isPoolTerminatedError(error)) throw error;\n process.stderr.write(\n `[stackbone/sdk] database cold-start reconnect: rebuilding pool after ${\n (error as { code?: string }).code ?? 'unknown'\n }\\n`,\n );\n cachedHandle = null;\n try {\n return await retryAttempt();\n } catch {\n throw error;\n }\n }\n}\n\n// Thunk-shaped wrapper consumed by `client.database.transaction(...)` and\n// any future internal caller that does not flow through the chainable proxy.\n// `gate` is awaited before the first attempt; on failure, the gate's\n// `SdkError` is thrown as an `Error & { code, message, meta? }` so the\n// surface matches the synchronous `DatabaseNotConfiguredError` and the rest\n// of the SDK's `database` API (which throws on misuse rather than returning\n// `Result`).\nexport function withColdStartRetry<T>(\n attempt: () => Promise<T> | T,\n gate?: ModuleGate,\n): Promise<T> {\n if (!gate) return runWithColdStartRetry(attempt, attempt);\n return (async () => {\n await assertGate(gate);\n return runWithColdStartRetry(attempt, attempt);\n })();\n}\n\n/**\n * Awaits `gate()` and throws an `Error & SdkError` when the contract handshake\n * blocks the call. Mirrors the shape of `DatabaseNotConfiguredError` so the\n * `client.database` surface stays consistent: setup-bug and gating errors\n * both throw a tagged `Error` with `code` / `message` / `meta`.\n */\nasync function assertGate(gate: ModuleGate): Promise<void> {\n const result = await gate();\n if (result.error === null) return;\n throw new GateBlockedError(result.error);\n}\n\nclass GateBlockedError extends Error implements SdkError {\n readonly code: string;\n readonly meta?: Record<string, unknown>;\n override readonly cause?: unknown;\n\n constructor(sdkError: SdkError) {\n super(sdkError.message);\n this.name = 'GateBlockedError';\n this.code = sdkError.code;\n if (sdkError.meta) this.meta = sdkError.meta;\n if (sdkError.cause !== undefined) this.cause = sdkError.cause;\n }\n}\n\n// Chainable thenable proxy over a Drizzle query builder. `db.select().from(t)`\n// records the chain; only the terminal `then`/`catch`/`finally` triggers\n// execution. `seed` is the builder primed by the initial `handle.select(...)`\n// call so happy-path spies fire once; on retry we discard `seed`, rebuild the\n// pool, ask `rootCall` for a fresh builder, and replay the chain.\ntype ChainStep = { kind: 'call'; key: string; args: unknown[] } | { kind: 'get'; key: string };\n\nexport function createRetriableQueryBuilder(\n seed: unknown,\n rootCall: (handle: DrizzleClient) => unknown,\n gate?: ModuleGate,\n): unknown {\n return buildProxy([], seed, rootCall, gate);\n}\n\nfunction buildProxy(\n steps: ChainStep[],\n seed: unknown,\n rootCall: (handle: DrizzleClient) => unknown,\n gate: ModuleGate | undefined,\n): unknown {\n const target = function () {\n /* proxy traps every operation */\n };\n const run = async (): Promise<unknown> => {\n if (gate) await assertGate(gate);\n return runWithColdStartRetry(\n () => replayChain(seed, steps),\n () => replayChain(rootCall(getDatabaseHandle()), steps),\n );\n };\n return new Proxy(target, {\n get(_t, key) {\n if (key === 'then') {\n return (resolve: (v: unknown) => unknown, reject?: (e: unknown) => unknown) =>\n run().then(resolve, reject);\n }\n if (key === 'catch') {\n return (reject: (e: unknown) => unknown) => run().catch(reject);\n }\n if (key === 'finally') {\n return (cb: () => void) => run().finally(cb);\n }\n return buildProxy([...steps, { kind: 'get', key: String(key) }], seed, rootCall, gate);\n },\n apply(_t, _this, args) {\n // Previous step was the property access that produced this callable;\n // promote it from `get` to `call` carrying the args so replay invokes\n // the right method on the rebuilt handle.\n const last = steps[steps.length - 1];\n if (!last || last.kind !== 'get') {\n return buildProxy([...steps, { kind: 'call', key: '', args }], seed, rootCall, gate);\n }\n const next: ChainStep[] = [...steps.slice(0, -1), { kind: 'call', key: last.key, args }];\n return buildProxy(next, seed, rootCall, gate);\n },\n });\n}\n\nfunction replayChain(seed: unknown, steps: ChainStep[]): unknown {\n let current: unknown = seed;\n for (const step of steps) {\n if (current === null || current === undefined) return current;\n if (step.kind === 'get') {\n current = (current as Record<string, unknown>)[step.key];\n continue;\n }\n const parent = current as Record<string, unknown>;\n const fn = parent[step.key];\n if (typeof fn !== 'function') {\n throw new TypeError(\n `[stackbone/sdk] cold-start retry could not replay \"${step.key}\": not a function on the rebuilt handle`,\n );\n }\n current = (fn as (...a: unknown[]) => unknown).apply(parent, step.args);\n }\n return current;\n}\n","import { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\n\nimport { createRetriableQueryBuilder, getDatabaseHandle, withColdStartRetry } from './internal';\nimport { type DrizzleClient } from './lazy-client';\n\n// Tiny helper: prime the singleton handle with `rootCall(handle)`, hand the\n// resulting builder + factory to the proxy. Keeps the per-verb declarations\n// short and consistent. When a `gate` is provided, it is awaited at the\n// terminal `await` of the chainable proxy and throws a tagged\n// `GateBlockedError` (carrying `code` / `message` / `meta`) when the\n// negotiated contract refuses the call.\nfunction retriable(rootCall: (handle: DrizzleClient) => unknown, gate?: ModuleGate): unknown {\n return createRetriableQueryBuilder(rootCall(getDatabaseHandle()), rootCall, gate);\n}\n\n/**\n * `client.database` is a lazy wrapper over a `drizzle()` instance bound to\n * `STACKBONE_POSTGRES_URL`. The underlying postgres-js connection and the\n * Drizzle facade are constructed on the first method call so env vars rotated\n * post-`createClient()` are still honoured.\n *\n * Native Drizzle methods (`select`, `insert`, `update`, `delete`, `transaction`,\n * `execute`) are exposed verbatim — we explicitly avoid wrapping them in a\n * Result envelope here. Drizzle already throws on misuse and returns typed rows\n * on success; mirroring its API keeps the contract identical to what the\n * `@stackbone/sdk/db` re-exports document, so creators write idiomatic Drizzle.\n *\n * Missing `STACKBONE_POSTGRES_URL` raises `SdkError('database_not_configured')`\n * with an actionable hint that points to `stackbone dev`. This is a creator\n * setup bug, not something the agent's code can recover from at runtime.\n *\n * Methods are declared with their full Drizzle generic signatures (rather than\n * `(...args) => Drizzle[k](...args)` arrow properties) so the inferred row\n * types from `pgTable(...)` flow end-to-end into the caller, which is the\n * promise the `@stackbone/sdk/db` re-export makes.\n *\n * The actual `postgres()` pool and the Drizzle handle are owned by the\n * module-internal singleton in `./internal.ts`. `client.database` and any\n * other internal SDK module that imports `getDatabaseHandle` therefore share\n * one pool per agent process — see `internal.spec.ts` for the invariant.\n */\nexport class DatabaseModule {\n private readonly _gate: ModuleGate | undefined;\n\n // `_resolved` is kept on the constructor signature for API parity with the\n // sibling modules (`AiModule`, `RagModule`, ...) — `client.ts` always wires\n // them the same way. The actual URL lookup happens inside `getDatabaseHandle`\n // against `process.env`, which `ResolvedConfig.env` is a live reference to,\n // so future per-config overrides have a natural home without changing the\n // public surface.\n constructor(\n private readonly _resolved: ResolvedConfig,\n /**\n * Test seam — see `ModuleGate`. Defaults to the lazy contract gate.\n * The gate is awaited at the terminal `await` of every Drizzle chain\n * (`select/insert/update/delete/execute/transaction`); when it returns\n * an error, a tagged `GateBlockedError` is thrown so callers see the\n * same `Error & { code, message, meta }` surface as the existing\n * `database_not_configured` setup-bug.\n */\n gate?: ModuleGate,\n ) {\n this._gate = gate ?? createModuleGate('database', _resolved);\n }\n\n /**\n * Escape hatch — returns Drizzle's relational query builder verbatim. The\n * contract gate does NOT fire here because the surface is a synchronous\n * accessor; the user can still bypass the gate via `client.database.raw()`\n * for the same reason. Audit: `query` and `raw()` are intentionally\n * ungated escape hatches; the standard `select/insert/update/delete/\n * execute/transaction` path is fully gated.\n */\n get query(): DrizzleClient['query'] {\n return getDatabaseHandle().query;\n }\n\n // Each query-builder verb invokes Drizzle eagerly (handle construction is\n // observable to tests) and wraps the result in a chainable thenable proxy.\n // Intermediate hops (`from`, `where`, ...) are recorded; only the terminal\n // `await` runs the chain, so a stale pool after a Fly Machines suspend\n // rebuilds and replays the chain exactly once via `createRetriableQueryBuilder`.\n // The contract gate is awaited at the same terminal step.\n select: DrizzleClient['select'] = ((...args: Parameters<DrizzleClient['select']>) =>\n retriable((h) => h.select(...args), this._gate)) as DrizzleClient['select'];\n\n insert: DrizzleClient['insert'] = ((...args: Parameters<DrizzleClient['insert']>) =>\n retriable((h) => h.insert(...args), this._gate)) as DrizzleClient['insert'];\n\n update: DrizzleClient['update'] = ((...args: Parameters<DrizzleClient['update']>) =>\n retriable((h) => h.update(...args), this._gate)) as DrizzleClient['update'];\n\n delete: DrizzleClient['delete'] = ((...args: Parameters<DrizzleClient['delete']>) =>\n retriable((h) => h.delete(...args), this._gate)) as DrizzleClient['delete'];\n\n // `execute()` returns Drizzle's `PgRaw` thenable for raw SQL — same\n // chainable proxy treatment as the query-builder verbs above.\n execute: DrizzleClient['execute'] = ((...args: Parameters<DrizzleClient['execute']>) =>\n retriable((h) => h.execute(...args), this._gate)) as DrizzleClient['execute'];\n\n // `transaction()` takes a creator-supplied callback and returns a promise,\n // so it goes through the thunk-shaped wrapper. Any cold start mid-tx\n // rebuilds and replays the whole transaction; postgres-js will not commit\n // a half-baked tx. The contract gate fires before the first attempt.\n transaction: DrizzleClient['transaction'] = ((\n ...args: Parameters<DrizzleClient['transaction']>\n ) =>\n withColdStartRetry(\n () => getDatabaseHandle().transaction(...args),\n this._gate,\n )) as DrizzleClient['transaction'];\n\n /**\n * Escape hatch for callers that want the raw Drizzle handle (e.g. to pass\n * it to a library that expects `PostgresJsDatabase`). Reading this property\n * triggers the same lazy initialisation as any other method but\n * intentionally does NOT consult the contract gate — the surface is sync\n * and the caller is opting out of the SDK's structured surface.\n */\n raw(): DrizzleClient {\n return getDatabaseHandle();\n }\n}\n","import type { ChatCompletionMessageParam } from 'openai/resources';\n\nimport { type ResolvedConfig } from '../../config';\nimport { notImplemented, type Result } from '../../result';\n\n/**\n * Where a memory lives. Default `'user'`. `'session'` is short-lived and\n * collapsed (or dropped) by `endSession()`; `'agent'` is shared across every\n * user of the agent.\n */\nexport type MemoryScope = 'user' | 'session' | 'agent';\n\n/**\n * Either raw text or an OpenAI-shaped conversation. The future mem0 backend\n * accepts both: strings ingest verbatim, message arrays are summarised into\n * one or more facts.\n */\nexport type MemoryContent = string | ChatCompletionMessageParam[];\n\nexport interface AddMemoryRequest {\n userId: string;\n /** Conversation/session bucket. Required when `scope: 'session'`. */\n sessionId?: string;\n /** Default `'user'`. */\n scope?: MemoryScope;\n metadata?: Record<string, unknown>;\n}\n\nexport interface MemoryItem {\n id: string;\n content: string;\n userId: string;\n sessionId?: string;\n scope: MemoryScope;\n metadata?: Record<string, unknown>;\n /** ISO 8601 UTC timestamp. */\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface SearchMemoryOptions {\n userId?: string;\n sessionId?: string;\n /** 1..100. Default 10. */\n limit?: number;\n /** Minimum cosine similarity in [0, 1]. Hits below this are dropped. */\n threshold?: number;\n /** Metadata predicates AND-ed to the semantic match. */\n filters?: Record<string, unknown>;\n /** Restrict the search to a subset of scopes. Default: every scope. */\n includeScopes?: readonly MemoryScope[];\n}\n\nexport interface MemoryHit extends MemoryItem {\n /** Cosine similarity in [0, 1]. */\n score: number;\n}\n\nexport interface ListMemoryRequest {\n userId: string;\n /** 1..100. Default 50. */\n limit?: number;\n cursor?: string;\n}\n\nexport interface ListMemoryResult {\n items: readonly MemoryItem[];\n nextCursor?: string;\n}\n\nexport interface UpdateMemoryOptions {\n content?: string;\n /** Shallow-merged onto the existing metadata (mem0 semantics). */\n metadata?: Record<string, unknown>;\n}\n\nexport interface DeleteAllMemoryRequest {\n userId: string;\n}\n\nexport type MemoryHistoryEvent = 'created' | 'updated' | 'accessed' | 'deleted';\n\nexport interface MemoryHistoryEntry {\n id: string;\n memoryId: string;\n event: MemoryHistoryEvent;\n /** ISO 8601 UTC timestamp. */\n at: string;\n /** Identifier of who triggered the event (user id, agent id, etc.). */\n actor?: string;\n /** Content snapshot before the event. Only set for `updated`/`deleted`. */\n before?: string;\n /** Content snapshot after the event. Only set for `created`/`updated`. */\n after?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface EndSessionOptions {\n /** Persist session-scoped facts to long-term (`'user'`) memory before closing. Default `true`. */\n persist?: boolean;\n}\n\nexport interface EndSessionResult {\n sessionId: string;\n /** Number of session memories promoted to long-term storage. `0` when `persist: false`. */\n persisted: number;\n}\n\n/**\n * `client.memory` — long-term memory for the agent. The first iteration is a\n * scaffolding placeholder: every method returns `not_implemented`. The real\n * backend will be mem0 (`mem0ApiKey` / `MEM0_API_KEY`) and the public surface\n * defined here is the contract callers can already type against.\n */\nexport class MemoryModule {\n constructor(private readonly _resolved: ResolvedConfig) {}\n\n async add(_content: MemoryContent, _request: AddMemoryRequest): Promise<Result<MemoryItem>> {\n return notImplemented('memory.add');\n }\n\n async search(\n _query: string,\n _options?: SearchMemoryOptions,\n ): Promise<Result<readonly MemoryHit[]>> {\n return notImplemented('memory.search');\n }\n\n async delete(_memoryId: string): Promise<Result<{ id: string }>> {\n return notImplemented('memory.delete');\n }\n\n async deleteAll(_request: DeleteAllMemoryRequest): Promise<Result<{ deleted: number }>> {\n return notImplemented('memory.deleteAll');\n }\n\n async get(_memoryId: string): Promise<Result<MemoryItem>> {\n return notImplemented('memory.get');\n }\n\n async list(_request: ListMemoryRequest): Promise<Result<ListMemoryResult>> {\n return notImplemented('memory.list');\n }\n\n async update(_memoryId: string, _options: UpdateMemoryOptions): Promise<Result<MemoryItem>> {\n return notImplemented('memory.update');\n }\n\n async history(_memoryId: string): Promise<Result<readonly MemoryHistoryEntry[]>> {\n return notImplemented('memory.history');\n }\n\n async endSession(\n _sessionId: string,\n _options?: EndSessionOptions,\n ): Promise<Result<EndSessionResult>> {\n return notImplemented('memory.endSession');\n }\n}\n","import type { PostgresLike } from './run-steps-exporter';\n\n// Spans without a `cost_usd` attribute (unknown model / OpenRouter response\n// without the cost header) contribute 0 — observability is best-effort and\n// must not fail the run on missing telemetry.\n\nexport interface AggregateRunCostOptions {\n sql: PostgresLike;\n}\n\nexport interface AggregateRunCostResult {\n costEstimatedUsd: number;\n}\n\ninterface AggregatedRow {\n cost_estimated_usd: string | number | null;\n}\n\nconst SQL = `WITH llm_costs AS (\n SELECT COALESCE(SUM((payload->>'cost_usd')::numeric), 0) AS total\n FROM stackbone_platform.run_steps\n WHERE run_id = $1::uuid\n AND type = 'llm_call'\n )\n UPDATE stackbone_platform.runs\n SET cost_estimated_usd = (SELECT total FROM llm_costs)\n WHERE id = $1::uuid\n RETURNING cost_estimated_usd`;\n\nexport async function aggregateRunCost(\n runId: string,\n options: AggregateRunCostOptions,\n): Promise<AggregateRunCostResult> {\n const result = (await options.sql.unsafe(SQL, [runId])) as AggregatedRow[];\n const row = result[0];\n if (!row) {\n return { costEstimatedUsd: 0 };\n }\n // postgres-js returns numerics as strings to preserve precision; coerce\n // to a Number on the way out so callers don't need to know.\n const raw = row.cost_estimated_usd;\n if (raw === null || raw === undefined) return { costEstimatedUsd: 0 };\n const num = typeof raw === 'string' ? Number(raw) : raw;\n return { costEstimatedUsd: Number.isFinite(num) ? num : 0 };\n}\n","import { appendFile, mkdir } from 'node:fs/promises';\nimport { homedir } from 'node:os';\nimport { dirname, resolve } from 'node:path';\n\n// Numeric levels match Pino so JSONL files produced in local mode work with\n// `pino-pretty` and other Pino-aware tooling without translation.\nexport const LOG_LEVELS = {\n trace: 10,\n debug: 20,\n info: 30,\n warn: 40,\n error: 50,\n fatal: 60,\n} as const;\n\nexport type LogLevelName = keyof typeof LOG_LEVELS;\nexport type LogLevelNumber = (typeof LOG_LEVELS)[LogLevelName];\n\nexport interface LogRecord {\n /** Pino-style numeric level. */\n level: LogLevelNumber;\n /** Epoch milliseconds. Pino uses `time` as a number. */\n time: number;\n msg: string;\n run_id: string;\n trace_id?: string;\n installation_id?: string;\n agent_id?: string;\n [key: string]: unknown;\n}\n\nexport interface PlatformLoggerOptions {\n runId: string;\n installationId?: string | undefined;\n agentId?: string | undefined;\n /**\n * When set (cloud), logs are batched and POSTed to `<endpoint>/v1/logs` as\n * OTLP/HTTP/JSON. When unset (local), logs are appended to\n * `<runsDir>/<runId>.jsonl`. Falls back to `OTEL_EXPORTER_OTLP_ENDPOINT`.\n */\n otelEndpoint?: string | undefined;\n /** Local-only: directory where JSONL files live. Defaults to `~/.stackbone/dev/runs`. */\n runsDir?: string | undefined;\n /** Cloud-only: extra OTel resource attributes to send with every batch. */\n resourceAttributes?: Record<string, string> | undefined;\n /** Cloud-only: HTTP timeout per OTLP POST in ms. Defaults to 5_000. */\n httpTimeoutMs?: number | undefined;\n /** Flush trigger by buffer size. Defaults to 50. */\n flushBatchSize?: number | undefined;\n /** Flush trigger by elapsed time (ms). Defaults to 1_000. */\n flushIntervalMs?: number | undefined;\n /** Test seam — fetch implementation. Defaults to global `fetch`. */\n fetchImpl?: typeof fetch | undefined;\n /** Test seam — `fs.appendFile`-shaped sink the local destination uses. */\n appendFileImpl?: ((path: string, data: string) => Promise<void>) | undefined;\n /** Test seam — `fs.mkdir`-shaped helper the local destination uses. */\n mkdirImpl?: ((path: string) => Promise<void>) | undefined;\n /** Test seam — clock for `time` field. Defaults to `Date.now`. */\n now?: (() => number) | undefined;\n /** Override mode resolution (skips the env detection). */\n mode?: PlatformLoggerMode | undefined;\n}\n\nexport type PlatformLoggerMode = 'local' | 'cloud';\n\nexport interface PinoLike {\n trace(msgOrObj: unknown, msg?: string): void;\n debug(msgOrObj: unknown, msg?: string): void;\n info(msgOrObj: unknown, msg?: string): void;\n warn(msgOrObj: unknown, msg?: string): void;\n error(msgOrObj: unknown, msg?: string): void;\n fatal(msgOrObj: unknown, msg?: string): void;\n}\n\nexport interface PlatformLogger extends PinoLike {\n readonly mode: PlatformLoggerMode;\n /** Bind extra fields and return a child logger sharing the same destination. */\n child(bindings: Record<string, unknown>): PlatformLogger;\n /** Force-flush pending writes (close file handle or POST OTLP batch). */\n flush(): Promise<void>;\n /** Stop accepting writes and release resources. */\n close(): Promise<void>;\n}\n\ninterface Destination {\n write(record: LogRecord): void;\n flush(): Promise<void>;\n close(): Promise<void>;\n}\n\nconst DEFAULT_BATCH_SIZE = 50;\nconst DEFAULT_INTERVAL_MS = 1_000;\nconst DEFAULT_HTTP_TIMEOUT_MS = 5_000;\n\n/**\n * Creates a Pino-aligned logger that writes JSONL to disk in local mode and\n * batches OTLP/HTTP/JSON log records to an OTel collector in cloud mode. Mode\n * is resolved from `OTEL_EXPORTER_OTLP_ENDPOINT` or the explicit override.\n */\nexport function createPlatformLogger(options: PlatformLoggerOptions): PlatformLogger {\n const otelEndpoint =\n options.otelEndpoint ?? process.env['OTEL_EXPORTER_OTLP_ENDPOINT'] ?? undefined;\n const mode: PlatformLoggerMode = options.mode ?? (otelEndpoint ? 'cloud' : 'local');\n\n const baseBindings: Record<string, unknown> = { run_id: options.runId };\n if (options.installationId !== undefined)\n baseBindings['installation_id'] = options.installationId;\n if (options.agentId !== undefined) baseBindings['agent_id'] = options.agentId;\n\n const destination: Destination =\n mode === 'cloud'\n ? new OtlpHttpDestination({\n endpoint: otelEndpoint ?? '',\n resourceAttributes: options.resourceAttributes ?? {},\n httpTimeoutMs: options.httpTimeoutMs ?? DEFAULT_HTTP_TIMEOUT_MS,\n flushBatchSize: options.flushBatchSize ?? DEFAULT_BATCH_SIZE,\n flushIntervalMs: options.flushIntervalMs ?? DEFAULT_INTERVAL_MS,\n ...(options.fetchImpl !== undefined ? { fetchImpl: options.fetchImpl } : {}),\n })\n : new JsonlFileDestination({\n runId: options.runId,\n runsDir: options.runsDir ?? defaultRunsDir(),\n ...(options.appendFileImpl !== undefined\n ? { appendFileImpl: options.appendFileImpl }\n : {}),\n ...(options.mkdirImpl !== undefined ? { mkdirImpl: options.mkdirImpl } : {}),\n });\n\n const now = options.now ?? Date.now;\n return buildLogger({ destination, baseBindings, mode, now });\n}\n\ninterface LoggerBuildOptions {\n destination: Destination;\n baseBindings: Record<string, unknown>;\n mode: PlatformLoggerMode;\n now: () => number;\n}\n\nfunction buildLogger(opts: LoggerBuildOptions): PlatformLogger {\n const writeAt = (level: LogLevelName, msgOrObj: unknown, msg?: string): void => {\n const time = opts.now();\n const levelNumber = LOG_LEVELS[level];\n const record: LogRecord = {\n level: levelNumber,\n time,\n msg: '',\n run_id: String(opts.baseBindings['run_id'] ?? ''),\n ...opts.baseBindings,\n };\n if (typeof msgOrObj === 'string') {\n record.msg = msgOrObj;\n } else if (msgOrObj && typeof msgOrObj === 'object') {\n Object.assign(record, msgOrObj);\n if (typeof msg === 'string') record.msg = msg;\n else if (typeof record.msg !== 'string') record.msg = '';\n }\n opts.destination.write(record);\n };\n\n const child = (bindings: Record<string, unknown>): PlatformLogger =>\n buildLogger({ ...opts, baseBindings: { ...opts.baseBindings, ...bindings } });\n\n return {\n mode: opts.mode,\n trace: (msgOrObj, msg) => writeAt('trace', msgOrObj, msg),\n debug: (msgOrObj, msg) => writeAt('debug', msgOrObj, msg),\n info: (msgOrObj, msg) => writeAt('info', msgOrObj, msg),\n warn: (msgOrObj, msg) => writeAt('warn', msgOrObj, msg),\n error: (msgOrObj, msg) => writeAt('error', msgOrObj, msg),\n fatal: (msgOrObj, msg) => writeAt('fatal', msgOrObj, msg),\n child,\n flush: () => opts.destination.flush(),\n close: () => opts.destination.close(),\n };\n}\n\ninterface JsonlFileDestinationOptions {\n runId: string;\n runsDir: string;\n appendFileImpl?: (path: string, data: string) => Promise<void>;\n mkdirImpl?: (path: string) => Promise<void>;\n}\n\nclass JsonlFileDestination implements Destination {\n private readonly path: string;\n private readonly appendFile: (path: string, data: string) => Promise<void>;\n private readonly mkdir: (path: string) => Promise<void>;\n private inFlight: Promise<void> = Promise.resolve();\n private dirReady = false;\n\n constructor(opts: JsonlFileDestinationOptions) {\n this.path = resolve(opts.runsDir, `${opts.runId}.jsonl`);\n this.appendFile = opts.appendFileImpl ?? ((p, d) => appendFile(p, d, 'utf8'));\n this.mkdir =\n opts.mkdirImpl ??\n (async (p) => {\n await mkdir(p, { recursive: true });\n });\n }\n\n write(record: LogRecord): void {\n const line = `${JSON.stringify(record)}\\n`;\n this.inFlight = this.inFlight.then(async () => {\n if (!this.dirReady) {\n await this.mkdir(dirname(this.path));\n this.dirReady = true;\n }\n try {\n await this.appendFile(this.path, line);\n } catch (error) {\n process.stderr.write(\n `[stackbone/sdk] PlatformLogger JSONL write failed: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n }\n });\n }\n\n async flush(): Promise<void> {\n await this.inFlight;\n }\n\n async close(): Promise<void> {\n await this.flush();\n }\n}\n\ninterface OtlpHttpDestinationOptions {\n endpoint: string;\n resourceAttributes: Record<string, string>;\n httpTimeoutMs: number;\n flushBatchSize: number;\n flushIntervalMs: number;\n fetchImpl?: typeof fetch;\n}\n\n// OTLP/HTTP/JSON spec: OpenTelemetry Logs Data Model §B.1. Failures log to\n// stderr — telemetry must never block agent execution.\nclass OtlpHttpDestination implements Destination {\n private readonly url: string;\n private readonly resourceAttributes: Record<string, string>;\n private readonly httpTimeoutMs: number;\n private readonly flushBatchSize: number;\n private readonly flushIntervalMs: number;\n private readonly fetchImpl: typeof fetch;\n private buffer: LogRecord[] = [];\n private timer: NodeJS.Timeout | null = null;\n private inFlight: Promise<void> = Promise.resolve();\n private closed = false;\n\n constructor(opts: OtlpHttpDestinationOptions) {\n this.url = `${opts.endpoint.replace(/\\/+$/, '')}/v1/logs`;\n this.resourceAttributes = opts.resourceAttributes;\n this.httpTimeoutMs = opts.httpTimeoutMs;\n this.flushBatchSize = opts.flushBatchSize;\n this.flushIntervalMs = opts.flushIntervalMs;\n this.fetchImpl = opts.fetchImpl ?? fetch;\n }\n\n write(record: LogRecord): void {\n if (this.closed) return;\n this.buffer.push(record);\n if (this.buffer.length >= this.flushBatchSize) {\n void this.flush();\n } else {\n this.armTimer();\n }\n }\n\n async flush(): Promise<void> {\n await this.inFlight;\n if (this.buffer.length === 0) return;\n const drained = this.buffer.splice(0, this.buffer.length);\n this.disarmTimer();\n this.inFlight = this.post(drained).catch((error) => {\n process.stderr.write(\n `[stackbone/sdk] PlatformLogger OTLP POST failed: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n });\n await this.inFlight;\n }\n\n async close(): Promise<void> {\n this.closed = true;\n await this.flush();\n }\n\n private armTimer(): void {\n if (this.timer) return;\n this.timer = setTimeout(() => {\n this.timer = null;\n void this.flush();\n }, this.flushIntervalMs);\n this.timer.unref?.();\n }\n\n private disarmTimer(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n private async post(records: LogRecord[]): Promise<void> {\n const body = JSON.stringify(buildOtlpLogsBody(records, this.resourceAttributes));\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), this.httpTimeoutMs);\n try {\n const resp = await this.fetchImpl(this.url, {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n signal: controller.signal,\n });\n if (!resp.ok) {\n const text = await resp.text().catch(() => '');\n throw new Error(`HTTP ${resp.status}${text ? `: ${text.slice(0, 200)}` : ''}`);\n }\n } finally {\n clearTimeout(timeout);\n }\n }\n}\n\ninterface OtlpKeyValue {\n key: string;\n value:\n | { stringValue: string }\n | { intValue: string }\n | { doubleValue: number }\n | { boolValue: boolean };\n}\n\ninterface OtlpResource {\n attributes: OtlpKeyValue[];\n}\n\ninterface OtlpLogRecord {\n timeUnixNano: string;\n severityNumber: number;\n severityText: string;\n body: { stringValue: string };\n attributes: OtlpKeyValue[];\n}\n\ninterface OtlpLogsBody {\n resourceLogs: Array<{\n resource: OtlpResource;\n scopeLogs: Array<{\n scope: { name: string; version: string };\n logRecords: OtlpLogRecord[];\n }>;\n }>;\n}\n\nconst SDK_SCOPE = { name: '@stackbone/sdk', version: '0.0.1' };\n\nfunction buildOtlpLogsBody(\n records: LogRecord[],\n resourceAttributes: Record<string, string>,\n): OtlpLogsBody {\n return {\n resourceLogs: [\n {\n resource: { attributes: toOtlpAttributes(resourceAttributes) },\n scopeLogs: [\n {\n scope: SDK_SCOPE,\n logRecords: records.map(toOtlpLogRecord),\n },\n ],\n },\n ],\n };\n}\n\nfunction toOtlpLogRecord(record: LogRecord): OtlpLogRecord {\n const { level, time, msg, ...rest } = record;\n return {\n timeUnixNano: `${time * 1_000_000}`,\n severityNumber: level,\n severityText: severityText(level),\n body: { stringValue: msg },\n attributes: toOtlpAttributesFromUnknown(rest),\n };\n}\n\nfunction severityText(level: number): string {\n for (const [name, value] of Object.entries(LOG_LEVELS)) {\n if (value === level) return name.toUpperCase();\n }\n return 'INFO';\n}\n\nfunction toOtlpAttributes(attrs: Record<string, string>): OtlpKeyValue[] {\n return Object.entries(attrs).map(([key, value]) => ({\n key,\n value: { stringValue: value },\n }));\n}\n\nfunction toOtlpAttributesFromUnknown(attrs: Record<string, unknown>): OtlpKeyValue[] {\n const out: OtlpKeyValue[] = [];\n for (const [key, value] of Object.entries(attrs)) {\n if (value === null || value === undefined) continue;\n if (typeof value === 'string') {\n out.push({ key, value: { stringValue: value } });\n } else if (typeof value === 'number') {\n if (Number.isInteger(value)) out.push({ key, value: { intValue: String(value) } });\n else out.push({ key, value: { doubleValue: value } });\n } else if (typeof value === 'boolean') {\n out.push({ key, value: { boolValue: value } });\n } else {\n out.push({ key, value: { stringValue: JSON.stringify(value) } });\n }\n }\n return out;\n}\n\nexport function defaultRunsDir(): string {\n return resolve(homedir(), '.stackbone', 'dev', 'runs');\n}\n","import { randomUUID } from 'node:crypto';\n\n// Canonical step types stored in `stackbone_platform.run_steps.type`. The list\n// has to stay in sync with the CHECK constraint in\n// `libs/platform-schema/src/migrations/0001_runs.sql`. Exported so agents\n// can discover the closed set without reaching into the migration file.\nexport const RUN_STEP_TYPES = [\n 'agent',\n 'llm_call',\n 'db_query',\n 'http_fetch',\n 'queue_publish',\n 'hitl_pause',\n 'tool_call',\n 'rag_query',\n 'storage_op',\n] as const;\nexport type RunStepType = (typeof RUN_STEP_TYPES)[number];\n\n// Span attribute we read first to pin a step type explicitly. When absent,\n// the resolver falls back to a span.name prefix mapping.\nexport const STEP_TYPE_ATTRIBUTE = 'stackbone.step.type';\n\n// Span attribute that carries the active run id. The processor drops spans\n// without it because `stackbone_platform.run_steps.run_id` is NOT NULL — there\n// is no useful row we could write otherwise.\nexport const RUN_ID_ATTRIBUTE = 'stackbone.run.id';\n\nconst NAME_PREFIX_MAP: ReadonlyArray<readonly [RegExp, RunStepType]> = [\n [/^stackbone\\.ai\\./, 'llm_call'],\n [/^stackbone\\.db\\./, 'db_query'],\n [/^stackbone\\.http\\./, 'http_fetch'],\n [/^stackbone\\.queues\\./, 'queue_publish'],\n [/^stackbone\\.approval\\./, 'hitl_pause'],\n [/^stackbone\\.tool\\./, 'tool_call'],\n [/^stackbone\\.rag\\./, 'rag_query'],\n [/^stackbone\\.storage\\./, 'storage_op'],\n];\n\n/**\n * Minimal duck-typed view of an OpenTelemetry `ReadableSpan`. We mirror the\n * shape the OTel SDK exposes on `@opentelemetry/sdk-trace-base` rather than\n * importing the package so `@stackbone/sdk` doesn't pull the OTel runtime into\n * every agent that doesn't enable Studio. Agents wire the processor with\n * `provider.addSpanProcessor(new RunStepsSpanProcessor(...))` and the\n * structural match satisfies TypeScript.\n */\nexport interface SpanContextLike {\n spanId: string;\n traceId: string;\n}\n\nexport interface ReadableSpanLike {\n spanContext(): SpanContextLike;\n parentSpanContext?: SpanContextLike | undefined;\n parentSpanId?: string | undefined;\n name: string;\n attributes: Record<string, unknown>;\n status?: { code: number; message?: string } | undefined;\n startTime?: [number, number] | undefined;\n endTime?: [number, number] | undefined;\n duration?: [number, number] | undefined;\n}\n\nexport interface PostgresLike {\n unsafe(query: string, params?: unknown[]): Promise<unknown>;\n end?(): Promise<void>;\n}\n\nexport interface RunStepsSpanProcessorOptions {\n /**\n * Postgres connection string of the install (local emulator at :5433 in\n * dev, Neon TCP/HTTP URL in cloud). Falls back to `DATABASE_URL`.\n */\n connectionString?: string | undefined;\n /** Flush trigger by buffer size. Defaults to 50. */\n flushBatchSize?: number | undefined;\n /** Flush trigger by elapsed time (ms). Defaults to 500. */\n flushIntervalMs?: number | undefined;\n /** Override how a span maps to a step type. */\n resolveStepType?: ((span: ReadableSpanLike) => RunStepType) | undefined;\n /** Test seam — inject a postgres-js-compatible client. */\n sql?: PostgresLike | undefined;\n /** Test seam — deterministic UUID generator. */\n newId?: (() => string) | undefined;\n}\n\ninterface BufferedRow {\n id: string;\n run_id: string;\n parent_step_id: string | null;\n type: RunStepType;\n name: string;\n status: 'ok' | 'error';\n payload: Record<string, unknown>;\n error: { message: string } | null;\n started_at: string;\n finished_at: string;\n duration_ms: number;\n}\n\nconst DEFAULT_BATCH_SIZE = 50;\nconst DEFAULT_INTERVAL_MS = 500;\n\n/**\n * Materialises every OTel span produced by the agent into a row of\n * `stackbone_platform.run_steps`. Designed to coexist with the OTLP exporter:\n * cloud builds register both processors so Postgres feeds Studio (paridad\n * con local) and Tempo feeds Platform Ops with retention/aggregation. If a\n * write fails the processor logs to stderr and keeps accepting spans —\n * observability is never load-bearing for agent execution.\n *\n * Spec: docs/arquitectura/specs/stackbone-agent-protocol-v1.md §6.3\n * ADR: docs/arquitectura/decisiones/2026-05-03-stackbone-studio-datapath-y-scope-mvp.md §D9\n */\nexport class RunStepsSpanProcessor {\n private readonly buffer: BufferedRow[] = [];\n private readonly stepIdBySpanId = new Map<string, string>();\n private readonly batchSize: number;\n private readonly intervalMs: number;\n private readonly resolveStepType: (span: ReadableSpanLike) => RunStepType;\n private readonly newId: () => string;\n private readonly connectionString: string | undefined;\n private readonly ownsSql: boolean;\n private sql: PostgresLike | null;\n private timer: NodeJS.Timeout | null = null;\n private inFlight: Promise<void> | null = null;\n\n constructor(options: RunStepsSpanProcessorOptions = {}) {\n this.batchSize = options.flushBatchSize ?? DEFAULT_BATCH_SIZE;\n this.intervalMs = options.flushIntervalMs ?? DEFAULT_INTERVAL_MS;\n this.resolveStepType = options.resolveStepType ?? defaultStepTypeResolver;\n this.newId = options.newId ?? randomUUID;\n this.connectionString = options.connectionString ?? process.env['DATABASE_URL'];\n if (options.sql) {\n this.sql = options.sql;\n this.ownsSql = false;\n } else {\n this.sql = null;\n this.ownsSql = true;\n }\n }\n\n // OTel calls onStart for the parent before any child, and onEnd for\n // children before the parent. Reserving the UUID up-front lets the child's\n // onEnd resolve `parent_step_id` synchronously — the alternative (looking\n // up the parent at write time) would race the buffer flush.\n onStart(span: ReadableSpanLike): void {\n const spanId = span.spanContext().spanId;\n if (!this.stepIdBySpanId.has(spanId)) {\n this.stepIdBySpanId.set(spanId, this.newId());\n }\n }\n\n onEnd(span: ReadableSpanLike): void {\n const row = this.buildRow(span);\n if (!row) return;\n this.buffer.push(row);\n if (this.buffer.length >= this.batchSize) {\n void this.flush();\n } else {\n this.armTimer();\n }\n }\n\n async forceFlush(): Promise<void> {\n await this.flush();\n }\n\n async shutdown(): Promise<void> {\n this.disarmTimer();\n await this.flush();\n if (this.ownsSql && this.sql?.end) {\n await this.sql.end().catch(() => undefined);\n }\n }\n\n private buildRow(span: ReadableSpanLike): BufferedRow | null {\n const runId = readString(span.attributes[RUN_ID_ATTRIBUTE]);\n if (!runId) return null;\n\n const spanId = span.spanContext().spanId;\n const stepId = this.stepIdBySpanId.get(spanId) ?? this.newId();\n this.stepIdBySpanId.delete(spanId);\n\n const parentSpanId = span.parentSpanContext?.spanId ?? span.parentSpanId ?? null;\n // Parents end after children, so the parent's UUID is still in the map\n // when the child's onEnd runs. Once the parent ends and gets removed the\n // child rows already reference it via `parent_step_id`.\n const parentStepId = parentSpanId ? (this.stepIdBySpanId.get(parentSpanId) ?? null) : null;\n\n const startedAt = formatHrTime(span.startTime);\n const finishedAt = formatHrTime(span.endTime ?? span.startTime);\n const durationMs = hrTimeToMs(span.duration ?? diffHrTime(span.endTime, span.startTime));\n\n const isError = span.status?.code === 2;\n\n return {\n id: stepId,\n run_id: runId,\n parent_step_id: parentStepId,\n type: this.resolveStepType(span),\n name: span.name,\n status: isError ? 'error' : 'ok',\n payload: serialisablePayload(span.attributes),\n error: isError ? { message: span.status?.message ?? 'span ended with ERROR status' } : null,\n started_at: startedAt,\n finished_at: finishedAt,\n duration_ms: durationMs,\n };\n }\n\n private armTimer(): void {\n if (this.timer) return;\n this.timer = setTimeout(() => {\n this.timer = null;\n void this.flush();\n }, this.intervalMs);\n // Don't keep the Node process alive just for the flush timer.\n this.timer.unref?.();\n }\n\n private disarmTimer(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n private async flush(): Promise<void> {\n if (this.inFlight) {\n await this.inFlight;\n }\n if (this.buffer.length === 0) return;\n const drained = this.buffer.splice(0, this.buffer.length);\n this.disarmTimer();\n this.inFlight = this.writeBatch(drained).finally(() => {\n this.inFlight = null;\n });\n await this.inFlight;\n }\n\n private async ensureSql(): Promise<PostgresLike | null> {\n if (this.sql) return this.sql;\n if (!this.connectionString) return null;\n // Lazy import — agents that never enable Studio don't pay the cost of\n // wiring a Postgres connection at boot.\n const mod = (await import('postgres')) as { default: (url: string) => PostgresLike };\n this.sql = mod.default(this.connectionString);\n return this.sql;\n }\n\n private async writeBatch(rows: BufferedRow[]): Promise<void> {\n try {\n const sql = await this.ensureSql();\n if (!sql) {\n process.stderr.write(\n '[stackbone/sdk] RunStepsSpanProcessor dropped batch: no DATABASE_URL configured.\\n',\n );\n return;\n }\n const placeholders: string[] = [];\n const params: unknown[] = [];\n for (const row of rows) {\n const base = params.length;\n placeholders.push(\n `($${base + 1}::uuid, $${base + 2}::uuid, $${base + 3}::uuid, $${base + 4}, $${base + 5}, $${base + 6}, $${base + 7}::jsonb, $${base + 8}::jsonb, $${base + 9}::timestamptz, $${base + 10}::timestamptz, $${base + 11}::int)`,\n );\n params.push(\n row.id,\n row.run_id,\n row.parent_step_id,\n row.type,\n row.name,\n row.status,\n JSON.stringify(row.payload),\n row.error ? JSON.stringify(row.error) : null,\n row.started_at,\n row.finished_at,\n row.duration_ms,\n );\n }\n const text = `INSERT INTO stackbone_platform.run_steps (\n id, run_id, parent_step_id, type, name, status, payload, error,\n started_at, finished_at, duration_ms\n ) VALUES ${placeholders.join(', ')}`;\n await sql.unsafe(text, params);\n } catch (error) {\n process.stderr.write(\n `[stackbone/sdk] RunStepsSpanProcessor write failed: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n }\n }\n}\n\nconst defaultStepTypeResolver = (span: ReadableSpanLike): RunStepType => {\n const explicit = readString(span.attributes[STEP_TYPE_ATTRIBUTE]);\n if (explicit && (RUN_STEP_TYPES as readonly string[]).includes(explicit)) {\n return explicit as RunStepType;\n }\n for (const [pattern, type] of NAME_PREFIX_MAP) {\n if (pattern.test(span.name)) return type;\n }\n return 'agent';\n};\n\nconst readString = (value: unknown): string | undefined =>\n typeof value === 'string' && value.length > 0 ? value : undefined;\n\nconst formatHrTime = (hr?: [number, number]): string =>\n new Date(hr ? hrTimeToMs(hr) : Date.now()).toISOString();\n\nconst hrTimeToMs = (hr?: [number, number]): number => {\n if (!hr) return 0;\n const [seconds, nanos] = hr;\n return seconds * 1_000 + Math.floor(nanos / 1_000_000);\n};\n\nconst diffHrTime = (\n end?: [number, number],\n start?: [number, number],\n): [number, number] | undefined => {\n if (!end || !start) return undefined;\n const seconds = end[0] - start[0];\n const nanos = end[1] - start[1];\n return [seconds, nanos];\n};\n\nconst serialisablePayload = (attributes: Record<string, unknown>): Record<string, unknown> => {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(attributes)) {\n if (key === RUN_ID_ATTRIBUTE) continue;\n if (key === STEP_TYPE_ATTRIBUTE) continue;\n out[key] = value;\n }\n return out;\n};\n","import { type ResolvedConfig } from '../../config';\nimport { err, ok, type Result } from '../../result';\nimport {\n aggregateRunCost,\n type AggregateRunCostResult,\n} from '../../observability/aggregate-run-cost';\nimport {\n createPlatformLogger,\n type PlatformLogger,\n type PlatformLoggerOptions,\n} from '../../observability/logger';\nimport {\n RunStepsSpanProcessor,\n type RunStepsSpanProcessorOptions,\n type PostgresLike,\n} from '../../observability/run-steps-exporter';\n\nexport class ObservabilityModule {\n private _processor?: RunStepsSpanProcessor;\n private readonly _loggers = new Map<string, PlatformLogger>();\n private _sql: PostgresLike | null = null;\n private _sqlResolved = false;\n\n constructor(private readonly _resolved: ResolvedConfig) {}\n\n /**\n * Singleton SpanProcessor that the agent registers in its OTel\n * TracerProvider. Coexists with the OTLP exporter — cloud builds wire\n * both so Postgres feeds Studio (paridad con local) and Tempo feeds\n * Platform Ops.\n */\n spanProcessor(options: RunStepsSpanProcessorOptions = {}): RunStepsSpanProcessor {\n if (!this._processor) {\n const merged: RunStepsSpanProcessorOptions = {\n ...options,\n connectionString:\n options.connectionString ??\n this._resolved.config.databaseUrl ??\n this._resolved.env['DATABASE_URL'],\n };\n this._processor = new RunStepsSpanProcessor(merged);\n }\n return this._processor;\n }\n\n async flush(): Promise<Result<void>> {\n if (this._processor) {\n await this._processor.forceFlush();\n }\n for (const logger of this._loggers.values()) {\n await logger.flush();\n }\n if (this._sql) {\n await this._sql.end?.();\n this._sql = null;\n this._sqlResolved = false;\n }\n return ok(undefined);\n }\n\n /**\n * Per-run structured logger. In local mode (no `OTEL_EXPORTER_OTLP_ENDPOINT`)\n * appends JSONL to `~/.stackbone/dev/runs/<runId>.jsonl`; in cloud mode batches\n * OTLP/HTTP/JSON log records to the collector. Cached by `runId` so the\n * file handle / buffered timer stays stable across repeated calls inside\n * the same run.\n */\n logger(options: { runId: string } & Partial<PlatformLoggerOptions>): PlatformLogger {\n const cached = this._loggers.get(options.runId);\n if (cached) return cached;\n const logger = createPlatformLogger({\n ...options,\n runId: options.runId,\n installationId:\n options.installationId ??\n this._resolved.config.installationId ??\n this._resolved.env['STACKBONE_INSTALLATION_ID'],\n agentId:\n options.agentId ??\n this._resolved.config.agentId ??\n this._resolved.env['STACKBONE_AGENT_ID'],\n otelEndpoint:\n options.otelEndpoint ??\n this._resolved.config.otel?.exporterOtlpEndpoint ??\n this._resolved.env['OTEL_EXPORTER_OTLP_ENDPOINT'],\n });\n this._loggers.set(options.runId, logger);\n return logger;\n }\n\n /** Closes the per-run logger (flushes the JSONL file or the OTLP buffer). */\n async closeLogger(runId: string): Promise<void> {\n const logger = this._loggers.get(runId);\n if (!logger) return;\n this._loggers.delete(runId);\n await logger.close();\n }\n\n /**\n * Hook the agent calls when a run finishes. Sums `cost_usd` from every\n * `llm_call` span of the run and writes the total to\n * `stackbone_platform.runs.cost_estimated_usd`. Errors are folded into the\n * Result envelope so the agent's run cleanup never aborts on a flaky\n * Postgres call — the cost is decorative metadata, not load-bearing.\n */\n async closeRun(runId: string): Promise<Result<AggregateRunCostResult>> {\n const sql = await this.resolveSql();\n if (!sql) {\n return err({\n code: 'database_url_missing',\n message:\n 'Cannot reach the agent Postgres — set `DATABASE_URL` in the container or pass `databaseUrl` to `createClient({...})`.',\n });\n }\n try {\n const result = await aggregateRunCost(runId, { sql });\n return ok(result);\n } catch (error) {\n return err({\n code: 'observability_close_run_failed',\n message: error instanceof Error ? error.message : String(error),\n cause: error,\n });\n }\n }\n\n // Lazy-imported postgres-js client, cached for the lifetime of the module\n // and torn down in `flush()`. Lazy so agents that never opt in to Studio\n // don't pay the dep cost.\n private async resolveSql(): Promise<PostgresLike | null> {\n if (this._sqlResolved) return this._sql;\n const connectionString =\n this._resolved.config.databaseUrl ?? this._resolved.env['DATABASE_URL'];\n if (!connectionString) {\n this._sqlResolved = true;\n return null;\n }\n const mod = (await import('postgres')) as { default: (url: string) => PostgresLike };\n this._sql = mod.default(connectionString);\n this._sqlResolved = true;\n return this._sql;\n }\n}\n","import { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\nimport { err, notImplemented, type Result } from '../../result';\n\nexport interface PublishRequest {\n url: string;\n body: unknown;\n retries?: number;\n delay?: number;\n deduplicationId?: string;\n headers?: Record<string, string>;\n}\n\nexport class QueuesModule {\n private readonly _gate: ModuleGate;\n\n constructor(\n resolved: ResolvedConfig,\n /** Test seam — see `ModuleGate`. Defaults to the lazy contract gate. */\n gate?: ModuleGate,\n ) {\n this._gate = gate ?? createModuleGate('queues', resolved);\n }\n\n async publish(_request: PublishRequest): Promise<Result<{ messageId: string }>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n return notImplemented('queues.publish');\n }\n}\n","export type ChunkStrategy = 'recursive' | 'sentence';\n\nexport interface ChunkOptions {\n /** Splitter algorithm. Default `recursive`. */\n strategy?: ChunkStrategy;\n /** Target characters per chunk. Default 512. */\n size?: number;\n /** Characters of overlap between consecutive chunks. Default 64. */\n overlap?: number;\n}\n\nconst DEFAULT_SIZE = 512;\nconst DEFAULT_OVERLAP = 64;\n\nconst RECURSIVE_SEPARATORS = ['\\n\\n', '\\n', ' ', ''] as const;\n\nconst SENTENCE_BOUNDARY = /(?<=[.!?])\\s+(?=[A-ZÀ-ſ])/g;\n\nexport function chunk(text: string, options: ChunkOptions = {}): string[] {\n const size = options.size ?? DEFAULT_SIZE;\n const overlap = options.overlap ?? DEFAULT_OVERLAP;\n const strategy = options.strategy ?? 'recursive';\n\n if (size <= 0) throw new Error('chunk: `size` must be > 0');\n if (overlap < 0) throw new Error('chunk: `overlap` must be >= 0');\n if (overlap >= size) throw new Error('chunk: `overlap` must be < `size`');\n\n const trimmed = text.trim();\n if (!trimmed) return [];\n\n const pieces = strategy === 'sentence' ? splitBySentence(trimmed) : splitRecursive(trimmed, size);\n return mergePieces(pieces, size, overlap);\n}\n\n/**\n * `sepIdx` skips separators that have already failed for the parent fragment —\n * once `\\n\\n` produced no split, the recursive call on each part doesn't need\n * to retry it.\n */\nfunction splitRecursive(text: string, size: number, sepIdx = 0): string[] {\n if (text.length <= size) return [text];\n for (let idx = sepIdx; idx < RECURSIVE_SEPARATORS.length; idx++) {\n const sep = RECURSIVE_SEPARATORS[idx] as string;\n if (sep === '') return splitByLength(text, size);\n const parts = text.split(sep);\n if (parts.length === 1) continue;\n const out: string[] = [];\n for (const part of parts) {\n if (!part) continue;\n if (part.length <= size) out.push(part);\n else out.push(...splitRecursive(part, size, idx + 1));\n }\n return out;\n }\n return splitByLength(text, size);\n}\n\nfunction splitByLength(text: string, size: number): string[] {\n const out: string[] = [];\n for (let i = 0; i < text.length; i += size) out.push(text.slice(i, i + size));\n return out;\n}\n\nfunction splitBySentence(text: string): string[] {\n return text.split(SENTENCE_BOUNDARY).filter((s) => s.trim().length > 0);\n}\n\n/**\n * Greedy pack into chunks up to `size`, carrying the trailing `overlap`\n * characters of the previous chunk into the next. Avoids O(n²) string\n * concatenation by buffering parts and joining once per chunk.\n */\nfunction mergePieces(pieces: string[], size: number, overlap: number): string[] {\n const out: string[] = [];\n let bufParts: string[] = [];\n let bufLen = 0;\n\n const flush = (): string => {\n const closed = bufParts.join(' ');\n out.push(closed);\n bufParts = [];\n bufLen = 0;\n return closed;\n };\n\n const seed = (text: string): void => {\n bufParts = [text];\n bufLen = text.length;\n };\n\n for (const piece of pieces) {\n if (!piece) continue;\n if (piece.length > size) {\n if (bufLen > 0) flush();\n for (const slice of splitByLength(piece, size)) out.push(slice);\n continue;\n }\n const candidateLen = bufLen === 0 ? piece.length : bufLen + 1 + piece.length;\n if (candidateLen <= size) {\n bufParts.push(piece);\n bufLen = candidateLen;\n continue;\n }\n const closed = flush();\n if (overlap > 0) {\n const seedText = `${tail(closed, overlap)} ${piece}`.trimStart();\n if (seedText.length > size) {\n for (const slice of splitByLength(seedText, size)) out.push(slice);\n } else {\n seed(seedText);\n }\n } else {\n seed(piece);\n }\n }\n if (bufLen > 0) flush();\n return out;\n}\n\nfunction tail(text: string, n: number): string {\n return text.length <= n ? text : text.slice(text.length - n);\n}\n","import { err, ok, type Result, type SdkError } from '../../result';\nimport { type AiModule } from '../ai/ai';\n\nconst DEFAULT_BATCH_SIZE = 128;\nconst DEFAULT_CONCURRENCY = 4;\n\nexport interface EmbedderOptions {\n ai: AiModule;\n model: string;\n batchSize?: number;\n /** Maximum parallel batches in flight. Default 4. */\n concurrency?: number;\n}\n\n/**\n * `Embedder` — thin adapter around `client.ai.embeddings.create(...)` that\n * batches calls up to the model's batch limit, runs a bounded number of\n * batches concurrently, and maps provider errors into the canonical\n * `rag_embedding_failed` `SdkError` shape consumed by `RagPipeline`.\n *\n * The class is decoupled from postgres and from `client.rag` so the ingestion\n * pipeline can be unit-tested with a deterministic fake `Embedder` that\n * returns fixed vectors per input string.\n */\nexport class Embedder {\n private readonly _ai: AiModule;\n private readonly _model: string;\n private readonly _batchSize: number;\n private readonly _concurrency: number;\n\n constructor(options: EmbedderOptions) {\n const batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE;\n if (!Number.isInteger(batchSize) || batchSize <= 0) {\n throw new Error('Embedder: `batchSize` must be a positive integer.');\n }\n this._ai = options.ai;\n this._model = options.model;\n this._batchSize = batchSize;\n this._concurrency = options.concurrency ?? DEFAULT_CONCURRENCY;\n }\n\n get model(): string {\n return this._model;\n }\n\n async embedOne(text: string): Promise<Result<number[]>> {\n const result = await this.embedAll([text]);\n if (result.error) return err(result.error);\n const first = result.data[0];\n if (!first) {\n return err({\n code: 'rag_embedding_failed',\n message: 'Embedding API returned no vector for the input text.',\n });\n }\n return ok(first);\n }\n\n async embedAll(texts: string[]): Promise<Result<number[][]>> {\n if (texts.length === 0) return ok([]);\n\n const batches: string[][] = [];\n for (let i = 0; i < texts.length; i += this._batchSize) {\n batches.push(texts.slice(i, i + this._batchSize));\n }\n\n const out: number[][] = new Array(texts.length);\n let cursor = 0;\n\n const worker = async (): Promise<SdkError | null> => {\n while (cursor < batches.length) {\n const batchIndex = cursor++;\n const batch = batches[batchIndex] as string[];\n const result = await this._ai.embeddings.create({ model: this._model, input: batch });\n if (result.error) {\n const meta = { ...(result.error.meta ?? {}), batchIndex, model: this._model };\n if (isUnsupportedModelError(result.error)) {\n return {\n code: 'rag_embedding_model_unsupported',\n message: `Embedding model \\`${this._model}\\` is not available through the configured AI client: ${result.error.message}`,\n cause: result.error,\n meta,\n };\n }\n return {\n code: 'rag_embedding_failed',\n message: `Embedding batch ${batchIndex} failed: ${result.error.message}`,\n cause: result.error,\n meta,\n };\n }\n const offset = batchIndex * this._batchSize;\n result.data.data.forEach((item, j) => {\n out[offset + j] = item.embedding;\n });\n }\n return null;\n };\n\n const errors = await Promise.all(\n Array.from({ length: Math.min(this._concurrency, batches.length) }, () => worker()),\n );\n const firstError = errors.find((e) => e !== null);\n if (firstError) return err(firstError);\n return ok(out);\n }\n}\n\n/**\n * Detects underlying `client.ai` errors that mean \"the embedding model is not\n * available through the configured AI client\" — typically OpenRouter 404 for\n * an unknown model id, or a 400/422 validation error rejecting the model\n * field. The pipeline maps these to the canonical\n * `rag_embedding_model_unsupported` error so creators get an actionable hint\n * instead of a raw provider error. ADR `2026-05-10-rag-consolidation-on-client-database` §D2.\n */\nfunction isUnsupportedModelError(error: SdkError): boolean {\n const status = (error.meta as { status?: number } | undefined)?.status;\n if (status === 404) return true;\n if (error.code === 'ai_validation_error') return true;\n return false;\n}\n","// F07 — `stackbone_rag_jobs` writer + streaming progress events.\n//\n// `RagPipeline` is intentionally agnostic about *where* job lifecycle goes:\n// it calls into an `IngestJobWriter` whenever one is supplied, and the\n// concrete implementation in `RagModule` plugs the writer that talks to the\n// canonical `stackbone_rag_jobs` table via the shared `client.database`\n// pool. Tests pass an in-memory writer that records the event sequence and\n// can simulate cancellation between batches.\n//\n// Event shape is locked by ADR `2026-05-10-rag-consolidation-on-client-database` §D9.\n\nimport { type Sql } from 'postgres';\n\nimport { err, ok, type Result, type SdkError } from '../../result';\n\nexport type RagIngestProgress =\n | { type: 'started'; jobId: string; totalChunks: number }\n | {\n type: 'progress';\n jobId: string;\n processedChunks: number;\n totalChunks: number;\n currentDocument?: { source: string; ordinal: number };\n }\n | { type: 'completed'; jobId: string; totalChunks: number }\n | { type: 'failed'; jobId: string; error: string };\n\nexport interface IngestJobStartArgs {\n collection: string;\n source: string;\n totalChunks: number;\n}\n\nexport interface IngestJobProgressArgs {\n jobId: string;\n processedChunks: number;\n totalChunks: number;\n currentDocument?: { source: string; ordinal: number };\n}\n\nexport interface IngestJobCompleteArgs {\n jobId: string;\n totalChunks: number;\n}\n\nexport interface IngestJobFailArgs {\n jobId: string;\n error: string;\n}\n\nexport interface IngestJobWriter {\n /**\n * Allocates a `stackbone_rag_jobs` row in `running` state and returns its\n * id. Caller is expected to surface this id to the user before any\n * progress event fires so a `client.rag.ingestAsync` consumer can\n * immediately address the job (e.g. `POST /api/rag/jobs/:jobId/cancel`).\n */\n start(args: IngestJobStartArgs): Promise<Result<{ jobId: string }>>;\n /** Idempotent — last write wins on `progress` jsonb. */\n progress(args: IngestJobProgressArgs): Promise<void>;\n /** Marks the row terminal (status='succeeded'). */\n complete(args: IngestJobCompleteArgs): Promise<void>;\n /** Marks the row terminal (status='failed') and stores the error message. */\n fail(args: IngestJobFailArgs): Promise<void>;\n /**\n * Polled between chunk batches. Returning `true` makes the pipeline abort\n * with `rag_ingest_cancelled`, leaving the row in whatever terminal state\n * the writer transitions it to next (typically `cancelled`).\n */\n isCancelled(args: { jobId: string }): Promise<boolean>;\n}\n\ninterface CollectionRow {\n id: string;\n}\n\ninterface JobRow {\n id: string;\n status: 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled';\n}\n\n/**\n * Writer bound to the shared `client.database` pool. Resolves the\n * `stackbone_rag_collections.id` for the requested collection name (creating\n * the row on the fly so an `ingestAsync` against a brand-new collection\n * doesn't 404 on the FK). Cancellation is observed by re-reading the row's\n * status — the `/api/rag/jobs/:jobId/cancel` handler from F06 flips it to\n * `cancelled` from outside the pipeline.\n */\nexport function createSqlJobWriter(sql: Sql): IngestJobWriter {\n return {\n async start({ collection, totalChunks }): Promise<Result<{ jobId: string }>> {\n try {\n const collectionId = await ensureCollection(sql, collection);\n const inserted = await sql<JobRow[]>`\n INSERT INTO stackbone_rag_jobs (collection_id, status, progress)\n VALUES (${collectionId}, 'running', ${sql.json({ totalChunks, processedChunks: 0 })})\n RETURNING id, status\n `;\n const row = inserted[0];\n if (!row) {\n return err({\n code: 'rag_job_insert_failed',\n message: 'Job row insert returned no rows.',\n });\n }\n return ok({ jobId: row.id });\n } catch (cause) {\n return err(toJobsError(cause, 'Job start failed'));\n }\n },\n async progress({ jobId, processedChunks, totalChunks, currentDocument }): Promise<void> {\n const payload = currentDocument\n ? { totalChunks, processedChunks, currentDocument }\n : { totalChunks, processedChunks };\n await sql`\n UPDATE stackbone_rag_jobs\n SET progress = ${sql.json(payload)}, updated_at = now()\n WHERE id = ${jobId}\n `;\n },\n async complete({ jobId, totalChunks }): Promise<void> {\n await sql`\n UPDATE stackbone_rag_jobs\n SET status = 'succeeded',\n progress = ${sql.json({ totalChunks, processedChunks: totalChunks })},\n updated_at = now()\n WHERE id = ${jobId} AND status NOT IN ('cancelled', 'succeeded', 'failed')\n `;\n },\n async fail({ jobId, error }): Promise<void> {\n await sql`\n UPDATE stackbone_rag_jobs\n SET status = 'failed', error = ${error}, updated_at = now()\n WHERE id = ${jobId} AND status NOT IN ('cancelled', 'succeeded', 'failed')\n `;\n },\n async isCancelled({ jobId }): Promise<boolean> {\n const rows = await sql<JobRow[]>`\n SELECT id, status FROM stackbone_rag_jobs WHERE id = ${jobId}\n `;\n return rows[0]?.status === 'cancelled';\n },\n };\n}\n\nasync function ensureCollection(sql: Sql, name: string): Promise<string> {\n const existing = await sql<CollectionRow[]>`\n SELECT id FROM stackbone_rag_collections WHERE name = ${name} LIMIT 1\n `;\n if (existing[0]) return existing[0].id;\n const inserted = await sql<CollectionRow[]>`\n INSERT INTO stackbone_rag_collections (name) VALUES (${name})\n ON CONFLICT (name) DO UPDATE SET name = EXCLUDED.name\n RETURNING id\n `;\n const row = inserted[0];\n if (!row) {\n throw new Error(`stackbone_rag_collections insert returned no row for ${name}`);\n }\n return row.id;\n}\n\nfunction toJobsError(cause: unknown, message: string): SdkError {\n if (cause instanceof Error) {\n const tagged = cause as Error & { code?: string };\n if (tagged.code === '42P01') {\n return {\n code: 'rag_schema_missing',\n message:\n 'RAG tables are not installed — run `stackbone db migrate add-rag` and `stackbone db migrate up`.',\n cause,\n meta: { hint: 'run `stackbone db migrate add-rag` and `stackbone db migrate up`' },\n };\n }\n return {\n code: tagged.code ?? 'rag_jobs_error',\n message: `${message}: ${cause.message}`,\n cause,\n };\n }\n return { code: 'rag_jobs_error', message, cause };\n}\n","import { extractText } from 'unpdf';\n\nexport interface ParseOptions {\n /** MIME type override. If omitted, the parser sniffs the input (Blob.type or PDF magic bytes). */\n mime?: string;\n}\n\nexport type ParseInput = Blob | string | Uint8Array | ArrayBuffer;\n\nconst PDF_MIME_TYPES = new Set(['application/pdf', 'application/x-pdf']);\nconst PDF_MAGIC = [0x25, 0x50, 0x44, 0x46];\n\n/**\n * Markdown is returned verbatim — no HTML rendering, no frontmatter stripping.\n * PDFs are flattened to one string with newlines between pages (no OCR).\n */\nexport async function parse(input: ParseInput, options: ParseOptions = {}): Promise<string> {\n if (typeof input === 'string') return input;\n\n const mime = (options.mime ?? sniffMime(input))?.toLowerCase();\n const bytes = await toUint8Array(input);\n const kind = resolveKind(mime, bytes);\n\n switch (kind) {\n case 'pdf': {\n const { text } = await extractText(bytes, { mergePages: true });\n return text;\n }\n case 'text':\n return new TextDecoder().decode(bytes);\n case 'unsupported':\n throw new Error(\n `parse: unsupported MIME type \\`${mime}\\`. Supported: text/*, application/pdf.`,\n );\n }\n}\n\nfunction resolveKind(mime: string | undefined, bytes: Uint8Array): 'pdf' | 'text' | 'unsupported' {\n if (mime) {\n if (PDF_MIME_TYPES.has(mime)) return 'pdf';\n if (mime.startsWith('text/')) return 'text';\n return 'unsupported';\n }\n return looksLikePdf(bytes) ? 'pdf' : 'text';\n}\n\nasync function toUint8Array(input: Exclude<ParseInput, string>): Promise<Uint8Array> {\n if (input instanceof Uint8Array) return input;\n if (input instanceof Blob) return new Uint8Array(await input.arrayBuffer());\n return new Uint8Array(input);\n}\n\nfunction sniffMime(input: Exclude<ParseInput, string>): string | undefined {\n if (input instanceof Blob && input.type) return input.type;\n return undefined;\n}\n\nfunction looksLikePdf(bytes: Uint8Array): boolean {\n if (bytes.length < PDF_MAGIC.length) return false;\n return PDF_MAGIC.every((b, i) => bytes[i] === b);\n}\n","import type { Sql } from 'postgres';\n\nexport const DEFAULT_NAMESPACE = 'default';\nexport const META_KEY_DIMENSIONS = 'dimensions';\nexport const META_KEY_DISTANCE = 'distance';\n\nexport interface IngestRow {\n docId: string;\n chunkIdx: number;\n namespace: string;\n content: string;\n embedding: number[];\n metadata: Record<string, unknown>;\n}\n\nexport interface RetrieveRow {\n docId: string;\n chunkIdx: number;\n content: string | null;\n metadata: Record<string, unknown> | null;\n score: number;\n}\n\n/**\n * Idempotent. On the first call provisions extension + tables + indexes; on\n * subsequent calls it short-circuits after verifying stored dimensions match.\n * Throws an Error tagged with `code = 'rag_dim_mismatch'` so callers can map\n * it to the SDK error envelope.\n */\nexport async function ensureSchema(sql: Sql, dimensions: number): Promise<void> {\n if (!Number.isInteger(dimensions) || dimensions <= 0 || dimensions > 8192) {\n throw new Error(\n `rag.ensureSchema: invalid dimensions ${dimensions}. Must be a positive integer <= 8192.`,\n );\n }\n\n const existing = await sql<{ value: number }[]>`\n SELECT value::int AS value FROM _rag_meta WHERE key = ${META_KEY_DIMENSIONS}\n `.catch(() => [] as { value: number }[]);\n\n if (existing.length > 0 && existing[0]) {\n const stored = existing[0].value;\n if (stored !== dimensions) {\n const error = new Error(\n `Embedding dimensions mismatch: collection was provisioned with ${stored} dims but received ${dimensions}. ` +\n `Call \\`stackbone.rag.reset()\\` to recreate the collection with the new dimensions.`,\n ) as Error & { code: string; meta: Record<string, unknown> };\n error.code = 'rag_dim_mismatch';\n error.meta = { stored, received: dimensions };\n throw error;\n }\n return;\n }\n\n await sql.begin(async (tx) => {\n await tx`CREATE EXTENSION IF NOT EXISTS vector`;\n await tx`\n CREATE TABLE IF NOT EXISTS _rag_meta (\n key TEXT PRIMARY KEY,\n value JSONB NOT NULL\n )\n `;\n await tx.unsafe(buildChunkTableDDL(dimensions));\n await tx.unsafe(CHUNK_INDEXES_DDL);\n await tx`\n INSERT INTO _rag_meta (key, value) VALUES\n (${META_KEY_DIMENSIONS}, ${tx.json(dimensions)}),\n (${META_KEY_DISTANCE}, ${tx.json('cosine')})\n ON CONFLICT (key) DO NOTHING\n `;\n });\n}\n\nexport async function reset(sql: Sql): Promise<void> {\n await sql.begin(async (tx) => {\n await tx`DROP TABLE IF EXISTS rag_chunks`;\n await tx`DROP TABLE IF EXISTS _rag_meta`;\n });\n}\n\n/**\n * Replaces a document's chunks atomically: deletes the old `(namespace, doc_id)`\n * rows and inserts the new ones in a single round-trip via multi-row VALUES,\n * regardless of how many chunks the doc has.\n */\nexport async function ingestDocument(\n sql: Sql,\n docId: string,\n namespace: string,\n rows: IngestRow[],\n): Promise<number> {\n if (rows.length === 0) return 0;\n await sql.begin(async (tx) => {\n await tx`\n DELETE FROM rag_chunks\n WHERE namespace = ${namespace} AND doc_id = ${docId}\n `;\n const placeholders = rows\n .map((_, i) => {\n const base = i * 6;\n return `($${base + 1}, $${base + 2}, $${base + 3}, $${base + 4}, $${base + 5}::vector, $${base + 6}::jsonb)`;\n })\n .join(',');\n const params = rows.flatMap((row) => [\n row.docId,\n row.chunkIdx,\n row.namespace,\n row.content,\n formatVector(row.embedding),\n JSON.stringify(row.metadata),\n ]);\n await tx.unsafe(\n `INSERT INTO rag_chunks (doc_id, chunk_idx, namespace, content, embedding, metadata) VALUES ${placeholders}`,\n params,\n );\n });\n return rows.length;\n}\n\nexport async function deleteByIds(sql: Sql, ids: string[], namespace: string): Promise<number> {\n if (ids.length === 0) return 0;\n const result = await sql`\n DELETE FROM rag_chunks\n WHERE namespace = ${namespace} AND doc_id = ANY(${ids})\n `;\n return result.count ?? 0;\n}\n\nexport async function deleteByFilter(\n sql: Sql,\n filter: Record<string, unknown>,\n namespace: string,\n): Promise<number> {\n const filterClause =\n Object.keys(filter).length > 0 ? sql`AND metadata @> ${sql.json(filter as never)}` : sql``;\n const result = await sql`\n DELETE FROM rag_chunks\n WHERE namespace = ${namespace} ${filterClause}\n `;\n return result.count ?? 0;\n}\n\nexport interface RetrieveParams {\n embedding: number[];\n topK: number;\n filter?: Record<string, unknown>;\n namespace: string;\n includeContent: boolean;\n includeMetadata: boolean;\n}\n\nexport async function retrieve(sql: Sql, params: RetrieveParams): Promise<RetrieveRow[]> {\n const embStr = formatVector(params.embedding);\n const filterClause =\n params.filter && Object.keys(params.filter).length > 0\n ? sql`AND metadata @> ${sql.json(params.filter as never)}`\n : sql``;\n const contentColumn = params.includeContent ? sql`content` : sql`NULL AS content`;\n const metadataColumn = params.includeMetadata ? sql`metadata` : sql`NULL AS metadata`;\n return sql<RetrieveRow[]>`\n SELECT\n doc_id AS \"docId\",\n chunk_idx AS \"chunkIdx\",\n ${contentColumn},\n ${metadataColumn},\n 1 - (embedding <=> ${embStr}::vector) AS score\n FROM rag_chunks\n WHERE namespace = ${params.namespace} ${filterClause}\n ORDER BY embedding <=> ${embStr}::vector\n LIMIT ${params.topK}\n `;\n}\n\nfunction formatVector(embedding: number[]): string {\n return `[${embedding.join(',')}]`;\n}\n\nfunction buildChunkTableDDL(dimensions: number): string {\n return `\n CREATE TABLE IF NOT EXISTS rag_chunks (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n doc_id TEXT NOT NULL,\n chunk_idx INT NOT NULL,\n namespace TEXT NOT NULL DEFAULT 'default',\n content TEXT NOT NULL,\n embedding VECTOR(${dimensions}) NOT NULL,\n metadata JSONB NOT NULL DEFAULT '{}'::jsonb,\n created_at TIMESTAMPTZ NOT NULL DEFAULT now(),\n UNIQUE (namespace, doc_id, chunk_idx)\n )\n `;\n}\n\nconst CHUNK_INDEXES_DDL = `\n CREATE INDEX IF NOT EXISTS rag_chunks_namespace_idx ON rag_chunks (namespace);\n CREATE INDEX IF NOT EXISTS rag_chunks_doc_idx ON rag_chunks (namespace, doc_id);\n CREATE INDEX IF NOT EXISTS rag_chunks_metadata_idx ON rag_chunks USING gin (metadata);\n CREATE INDEX IF NOT EXISTS rag_chunks_embedding_idx ON rag_chunks USING hnsw (embedding vector_cosine_ops);\n`;\n","import { type Sql } from 'postgres';\n\nimport { err, ok, type Result, type SdkError } from '../../result';\n\nimport { type Embedder } from './embedder';\nimport { type IngestJobWriter, type RagIngestProgress } from './jobs';\nimport {\n DEFAULT_NAMESPACE,\n deleteByFilter,\n deleteByIds,\n ensureSchema,\n ingestDocument,\n retrieve as retrieveRows,\n} from './sql';\n\nexport interface IngestChunk {\n content: string;\n embedding: number[];\n}\n\ninterface IngestRequestBase {\n /** Document identifier — re-ingesting with the same `id` replaces all its chunks atomically. */\n id: string;\n metadata?: Record<string, unknown>;\n /** Logical namespace for separation. Default `'default'`. */\n namespace?: string;\n /**\n * Canonical collection name used by the `stackbone_rag_jobs` writer (F07)\n * to bind the row to a `stackbone_rag_collections` parent. Optional for\n * back-compat with pre-F07 callers — when absent, no job row is written\n * and progress is delivered only via `onProgress` (if any).\n */\n collection?: string;\n /**\n * Optional sink for streaming progress events. Fired in addition to (and\n * before) the matching `IngestJobWriter` call so synchronous `ingest`\n * consumers can observe progress without paying the SQL writer cost.\n */\n onProgress?: (event: RagIngestProgress) => void | Promise<void>;\n}\n\nexport interface IngestRequestPrecomputed extends IngestRequestBase {\n chunks: IngestChunk[];\n}\n\nexport interface IngestRequestAutoEmbed extends IngestRequestBase {\n chunks: string[];\n /** Embedding model id. When set, the pipeline calls the configured Embedder. */\n model: string;\n /**\n * Items per embeddings request. Consumed by the facade when it builds the\n * `Embedder`; ignored by the pipeline itself (the embedder is fully\n * configured at construction time).\n */\n batchSize?: number;\n}\n\nexport type IngestRequest = IngestRequestPrecomputed | IngestRequestAutoEmbed;\n\nexport interface IngestResponse {\n id: string;\n chunks: number;\n}\n\nexport interface DeleteOptions {\n namespace?: string;\n}\n\nexport interface DeleteResponse {\n deleted: number;\n}\n\ninterface RetrieveRequestBase {\n topK?: number;\n filter?: Record<string, unknown>;\n namespace?: string;\n includeContent?: boolean;\n includeMetadata?: boolean;\n}\n\nexport interface RetrieveRequestPrecomputed extends RetrieveRequestBase {\n embedding: number[];\n}\n\nexport interface RetrieveRequestAutoEmbed extends RetrieveRequestBase {\n text: string;\n /** Must match the model used at ingest time. */\n model: string;\n}\n\nexport type RetrieveRequest = RetrieveRequestPrecomputed | RetrieveRequestAutoEmbed;\n\nexport interface RetrieveHit {\n id: string;\n chunkIdx: number;\n content?: string;\n metadata?: Record<string, unknown>;\n score: number;\n}\n\nconst DEFAULT_TOP_K = 5;\nconst RAG_SCHEMA_MISSING_HINT = 'run `stackbone db migrate add-rag` and `stackbone db migrate up`';\nconst PG_UNDEFINED_TABLE = '42P01';\n\nexport interface RagPipelineDeps {\n /**\n * Provides the postgres-js `Sql` to bind queries to. Called lazily, after\n * input validation and any auto-embed step, so that callers whose request\n * is rejected upstream never trigger a pool build.\n *\n * Pass `() => ok($client)` of the shared Drizzle handle for normal\n * operation, or a thunk that yields a transaction-bound `Sql` from\n * `client.database.transaction(...)` to enrol RAG writes in the caller's\n * transaction. May return a `Result.err` (e.g. `database_not_configured`)\n * which the pipeline forwards verbatim.\n */\n sqlProvider: () => Result<Sql>;\n /**\n * Optional embedder for auto-embed ingest/retrieve. Required when callers\n * pass a `model` to `ingest`/`retrieve`; precomputed-vector calls work\n * without one.\n */\n embedder?: Embedder;\n /**\n * Optional `stackbone_rag_jobs` writer. When present, every `ingest`\n * call allocates a job row, emits `started`/`progress`/`completed`/`failed`\n * events through it, and polls `isCancelled` between chunk batches. The\n * facade wires this with the shared `client.database` pool for\n * `ingestAsync`; sync `ingest` callers may also opt in. ADR §D9 locks\n * the event shape.\n */\n jobWriter?: IngestJobWriter;\n /**\n * How many persisted chunks to accumulate before firing a `progress`\n * event and re-checking cancellation. Default `1` so small ingests still\n * surface granular feedback; large ingests can raise this to amortise\n * writer overhead. Always emits at least one event per request.\n */\n progressBatchSize?: number;\n}\n\n/**\n * `RagPipeline` — owns the parse → chunk → embed → persist flow for a single\n * RAG operation. The `client.rag` facade builds one bound to the shared\n * `client.database` pool; integration tests build one bound to a dockerized\n * Postgres with a deterministic fake `Embedder`.\n *\n * The pipeline is a deep module: its public surface (`ingest`, `retrieve`,\n * `delete`, `deleteWhere`) is small and stable; everything underneath\n * (validation, batching, transaction shape, error mapping) is implementation\n * detail.\n */\nexport class RagPipeline {\n private readonly _sqlProvider: () => Result<Sql>;\n private readonly _embedder: Embedder | undefined;\n private readonly _jobWriter: IngestJobWriter | undefined;\n private readonly _progressBatchSize: number | undefined;\n\n constructor(deps: RagPipelineDeps) {\n this._sqlProvider = deps.sqlProvider;\n this._embedder = deps.embedder;\n this._jobWriter = deps.jobWriter;\n this._progressBatchSize =\n deps.progressBatchSize !== undefined ? Math.max(1, deps.progressBatchSize) : undefined;\n }\n\n async ingest(request: IngestRequest): Promise<Result<IngestResponse>> {\n const validation = validateIngest(request, this._embedder !== undefined);\n if (validation.error) return err(validation.error);\n\n const namespace = request.namespace ?? DEFAULT_NAMESPACE;\n const metadata = request.metadata ?? {};\n\n let chunks: IngestChunk[];\n if (isAutoEmbedIngest(request)) {\n // Validation above guarantees the embedder is present.\n const embedded = await (this._embedder as Embedder).embedAll(request.chunks);\n if (embedded.error) return err(embedded.error);\n if (embedded.data.length !== request.chunks.length) {\n return err({\n code: 'rag_embedding_failed',\n message: `Embedding API returned ${embedded.data.length} vectors for ${request.chunks.length} chunks.`,\n meta: { expected: request.chunks.length, received: embedded.data.length },\n });\n }\n chunks = request.chunks.map((content, i) => ({\n content,\n embedding: embedded.data[i] as number[],\n }));\n } else {\n chunks = request.chunks;\n }\n\n const dimensions = chunks[0]?.embedding.length ?? 0;\n const rows = chunks.map((c, idx) => ({\n docId: request.id,\n chunkIdx: idx,\n namespace,\n content: c.content,\n embedding: c.embedding,\n metadata,\n }));\n\n const sql = this._sqlProvider();\n if (sql.error) return err(sql.error);\n\n const totalChunks = rows.length;\n const onProgress = request.onProgress;\n const writer = this._jobWriter;\n let jobId: string | null = null;\n\n if (writer && request.collection) {\n const started = await writer.start({\n collection: request.collection,\n source: request.id,\n totalChunks,\n });\n if (started.error) return err(started.error);\n jobId = started.data.jobId;\n }\n\n const emit = async (event: RagIngestProgress): Promise<void> => {\n if (onProgress) await onProgress(event);\n };\n\n const startEvent: RagIngestProgress = {\n type: 'started',\n jobId: jobId ?? request.id,\n totalChunks,\n };\n await emit(startEvent);\n\n try {\n await ensureSchema(sql.data, dimensions);\n // When neither a job writer nor an onProgress hook is configured, keep\n // the original single-INSERT behaviour for back-compat with pre-F07\n // callers (sql-level row-count assertions in `pipeline.spec.ts`).\n const needsBatching = Boolean(writer || onProgress);\n const batchSize = this._progressBatchSize ?? (needsBatching ? 1 : rows.length || 1);\n let processed = 0;\n for (let offset = 0; offset < rows.length; offset += batchSize) {\n if (writer && jobId) {\n const cancelled = await writer.isCancelled({ jobId });\n if (cancelled) {\n return err({\n code: 'rag_ingest_cancelled',\n message: `Ingest job ${jobId} was cancelled after ${processed}/${totalChunks} chunks.`,\n meta: { jobId, processedChunks: processed, totalChunks },\n });\n }\n }\n const slice = rows.slice(offset, offset + batchSize);\n await ingestDocument(sql.data, request.id, namespace, slice);\n processed += slice.length;\n const progressEvent: RagIngestProgress = {\n type: 'progress',\n jobId: jobId ?? request.id,\n processedChunks: processed,\n totalChunks,\n currentDocument: { source: request.id, ordinal: processed - 1 },\n };\n await emit(progressEvent);\n if (writer && jobId) {\n await writer.progress({\n jobId,\n processedChunks: processed,\n totalChunks,\n currentDocument: { source: request.id, ordinal: processed - 1 },\n });\n }\n }\n const completedEvent: RagIngestProgress = {\n type: 'completed',\n jobId: jobId ?? request.id,\n totalChunks,\n };\n await emit(completedEvent);\n if (writer && jobId) await writer.complete({ jobId, totalChunks });\n return ok({ id: request.id, chunks: rows.length });\n } catch (cause) {\n const mapped = toRagError(cause, 'Ingest failed');\n const failedEvent: RagIngestProgress = {\n type: 'failed',\n jobId: jobId ?? request.id,\n error: mapped.message,\n };\n await emit(failedEvent);\n if (writer && jobId) await writer.fail({ jobId, error: mapped.message });\n return err(mapped);\n }\n }\n\n async delete(ids: string | string[], options?: DeleteOptions): Promise<Result<DeleteResponse>> {\n const namespace = options?.namespace ?? DEFAULT_NAMESPACE;\n const idList = Array.isArray(ids) ? ids : [ids];\n if (idList.length === 0) return ok({ deleted: 0 });\n const sql = this._sqlProvider();\n if (sql.error) return err(sql.error);\n try {\n const deleted = await deleteByIds(sql.data, idList, namespace);\n return ok({ deleted });\n } catch (cause) {\n return err(toRagError(cause, 'Delete failed'));\n }\n }\n\n async deleteWhere(\n filter: Record<string, unknown>,\n options?: DeleteOptions,\n ): Promise<Result<DeleteResponse>> {\n const namespace = options?.namespace ?? DEFAULT_NAMESPACE;\n const sql = this._sqlProvider();\n if (sql.error) return err(sql.error);\n try {\n const deleted = await deleteByFilter(sql.data, filter, namespace);\n return ok({ deleted });\n } catch (cause) {\n return err(toRagError(cause, 'Delete by filter failed'));\n }\n }\n\n async retrieve(request: RetrieveRequest): Promise<Result<RetrieveHit[]>> {\n const resolved = await this.resolveQueryEmbedding(request);\n if (resolved.error) return err(resolved.error);\n\n const includeContent = request.includeContent ?? true;\n const includeMetadata = request.includeMetadata ?? true;\n\n const params: Parameters<typeof retrieveRows>[1] = {\n embedding: resolved.data,\n topK: request.topK ?? DEFAULT_TOP_K,\n namespace: request.namespace ?? DEFAULT_NAMESPACE,\n includeContent,\n includeMetadata,\n };\n if (request.filter) params.filter = request.filter;\n\n const sql = this._sqlProvider();\n if (sql.error) return err(sql.error);\n\n try {\n const rows = await retrieveRows(sql.data, params);\n return ok(\n rows.map((row) => {\n const hit: RetrieveHit = {\n id: row.docId,\n chunkIdx: row.chunkIdx,\n score: Number(row.score),\n };\n if (includeContent && row.content !== null) hit.content = row.content;\n if (includeMetadata && row.metadata !== null) hit.metadata = row.metadata;\n return hit;\n }),\n );\n } catch (cause) {\n return err(toRagError(cause, 'Retrieve failed'));\n }\n }\n\n private async resolveQueryEmbedding(request: RetrieveRequest): Promise<Result<number[]>> {\n if (isAutoEmbedRetrieve(request)) {\n if (!request.text) {\n return err({ code: 'rag_invalid_request', message: '`text` is required.' });\n }\n if (!this._embedder) {\n return err({\n code: 'rag_invalid_request',\n message: '`model` was supplied but no Embedder is configured on the pipeline.',\n });\n }\n const embedded = await this._embedder.embedOne(request.text);\n if (embedded.error) return err(embedded.error);\n return ok(embedded.data);\n }\n if (!Array.isArray(request.embedding) || request.embedding.length === 0) {\n return err({\n code: 'rag_invalid_request',\n message: '`embedding` is required and must be a non-empty array.',\n });\n }\n return ok(request.embedding);\n }\n}\n\nexport function isAutoEmbedIngest(request: IngestRequest): request is IngestRequestAutoEmbed {\n return 'model' in request && typeof request.model === 'string';\n}\n\nexport function isAutoEmbedRetrieve(request: RetrieveRequest): request is RetrieveRequestAutoEmbed {\n return 'model' in request && typeof request.model === 'string';\n}\n\nfunction validateIngest(request: IngestRequest, hasEmbedder: boolean): Result<true> {\n if (!request.id) return err({ code: 'rag_invalid_request', message: '`id` is required.' });\n if (!Array.isArray(request.chunks) || request.chunks.length === 0) {\n return err({\n code: 'rag_invalid_request',\n message: '`chunks` must contain at least one item.',\n });\n }\n if (isAutoEmbedIngest(request)) {\n if (!hasEmbedder) {\n return err({\n code: 'rag_invalid_request',\n message: '`model` was supplied but no Embedder is configured on the pipeline.',\n });\n }\n for (let i = 0; i < request.chunks.length; i++) {\n const c = request.chunks[i];\n if (typeof c !== 'string' || c.length === 0) {\n return err({\n code: 'rag_invalid_request',\n message: `chunks[${i}] must be a non-empty string when \\`model\\` is provided.`,\n });\n }\n }\n return ok(true);\n }\n const dims = request.chunks[0]?.embedding.length ?? 0;\n if (dims === 0) {\n return err({\n code: 'rag_invalid_request',\n message:\n 'First chunk has no embedding — pass `model` to auto-embed or include precomputed embeddings.',\n });\n }\n for (let i = 0; i < request.chunks.length; i++) {\n const c = request.chunks[i];\n if (!c || !c.content || !Array.isArray(c.embedding) || c.embedding.length === 0) {\n return err({\n code: 'rag_invalid_request',\n message: `chunks[${i}] must include non-empty content and embedding.`,\n });\n }\n if (c.embedding.length !== dims) {\n return err({\n code: 'rag_invalid_request',\n message: `chunks[${i}].embedding has ${c.embedding.length} dims but chunks[0] has ${dims}.`,\n });\n }\n }\n return ok(true);\n}\n\nfunction isTaggedError(\n cause: unknown,\n): cause is Error & { code?: string; meta?: Record<string, unknown> } {\n return cause instanceof Error;\n}\n\nfunction toRagError(cause: unknown, message: string): SdkError {\n if (isTaggedError(cause) && cause.code === PG_UNDEFINED_TABLE) {\n return {\n code: 'rag_schema_missing',\n message: `RAG tables are not installed — ${RAG_SCHEMA_MISSING_HINT}.`,\n cause,\n meta: { hint: RAG_SCHEMA_MISSING_HINT },\n };\n }\n if (isTaggedError(cause)) {\n const error: SdkError = {\n code: cause.code ?? 'rag_error',\n message: `${message}: ${cause.message}`,\n cause,\n };\n if (cause.meta) error.meta = cause.meta;\n return error;\n }\n return { code: 'rag_error', message, cause };\n}\n","import { type Sql } from 'postgres';\n\nimport { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\nimport { err, ok, type Result, type SdkError } from '../../result';\nimport { type AiModule } from '../ai/ai';\nimport { getDatabaseHandle } from '../database/internal';\n\nimport { chunk as chunkText, type ChunkOptions } from './chunker';\nimport { Embedder } from './embedder';\nimport { createSqlJobWriter, type IngestJobWriter, type RagIngestProgress } from './jobs';\nimport { parse as parseInput, type ParseInput, type ParseOptions } from './parser';\nimport {\n type DeleteOptions,\n type DeleteResponse,\n type IngestRequest,\n type IngestRequestAutoEmbed,\n type IngestResponse,\n isAutoEmbedIngest,\n isAutoEmbedRetrieve,\n RagPipeline,\n type RetrieveHit,\n type RetrieveRequest,\n type RetrieveRequestAutoEmbed,\n} from './pipeline';\nimport { reset as resetSchema } from './sql';\n\nexport type {\n DeleteOptions,\n DeleteResponse,\n IngestChunk,\n IngestRequest,\n IngestRequestAutoEmbed,\n IngestRequestPrecomputed,\n IngestResponse,\n RetrieveHit,\n RetrieveRequest,\n RetrieveRequestAutoEmbed,\n RetrieveRequestPrecomputed,\n} from './pipeline';\nexport type { RagIngestProgress } from './jobs';\n\n/**\n * Handle returned by `client.rag.ingestAsync`. The job id is allocated\n * synchronously against `stackbone_rag_jobs` so the caller can track / cancel\n * the work via the `/api/rag/jobs/:jobId/*` surface; `events` is a streaming\n * channel of progress events (ADR §D9 shape); `result` settles when the\n * pipeline finishes (or fails / is cancelled).\n */\nexport interface IngestAsyncHandle {\n jobId: string;\n events: AsyncIterable<RagIngestProgress>;\n result: Promise<Result<IngestResponse>>;\n}\n\nconst DEFAULT_BATCH_SIZE = 128;\n\n/**\n * Default embedding model when neither the call site nor the resolved\n * `ClientConfig.rag.embeddingModel` (parsed by the CLI from `agent.yaml.rag`)\n * specifies one. Frozen by ADR `2026-05-10-rag-consolidation-on-client-database`\n * §D2 — kept in sync with `DEFAULT_RAG_EMBEDDING_MODEL` in `@stackbone/validators`.\n */\nexport const DEFAULT_RAG_EMBEDDING_MODEL = 'openai/text-embedding-3-small';\n\n/**\n * `client.rag` — `pgvector`-backed retrieval. Two shapes per write/read:\n * pass `model` to let the SDK embed for you; pass embeddings precomputed for\n * provider/dimension/batching control.\n *\n * Implementation note: `RagModule` is a thin facade over `RagPipeline`. The\n * pipeline owns parse → chunk → embed → persist; the facade resolves the\n * shared `client.database` pool, builds an `Embedder` on demand, and maps\n * configuration errors. See ADR `2026-05-10-rag-consolidation-on-client-database`.\n *\n * Connection ownership: this module never opens its own postgres pool. It\n * pulls the underlying `postgres-js` `Sql` from the shared\n * `getDatabaseHandle()` exposed by `client.database`, so an agent that\n * touches both surfaces still opens exactly one connection pool against\n * `STACKBONE_POSTGRES_URL`.\n *\n * Schema readiness: starting with feature 30, the canonical schema is\n * installed by the CLI (`stackbone db migrate add-rag` + `migrate up`). When\n * an operation hits `42P01 relation does not exist`, the pipeline returns\n * `SdkError('rag_schema_missing')` with an actionable hint.\n */\nexport class RagModule {\n private readonly _gate: ModuleGate;\n\n constructor(\n private readonly _resolved: ResolvedConfig,\n private readonly _getAi: () => AiModule,\n /** Test seam — see `ModuleGate`. Defaults to the lazy contract gate. */\n gate?: ModuleGate,\n ) {\n this._gate = gate ?? createModuleGate('rag', _resolved);\n }\n\n async ingest(request: IngestRequest): Promise<Result<IngestResponse>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const resolved = resolveIngestModel(request, this._resolved);\n return this.withPipeline(buildEmbedderForIngest(resolved, this._getAi), (pipeline) =>\n pipeline.ingest(resolved),\n );\n }\n\n /**\n * Asynchronous ingest. Allocates a `stackbone_rag_jobs` row, returns the\n * job id immediately, and exposes both an `AsyncIterable` of streaming\n * progress events and the final `Result` so callers can `await` either\n * surface — typical webhook handlers consume `events` and ignore `result`,\n * tests `await result` directly. Cancellation is observed by flipping the\n * row's status (e.g. via `POST /api/rag/jobs/:jobId/cancel`); the worker\n * polls between chunk batches and bails out with `rag_ingest_cancelled`.\n *\n * Connection ownership: the `IngestJobWriter` is bound to the same SQL\n * pulled off the shared `client.database` handle, so a single agent that\n * issues `ingestAsync` and `client.database.select` in flight still opens\n * exactly one pool against `STACKBONE_POSTGRES_URL`.\n */\n async ingestAsync(request: IngestRequest): Promise<Result<IngestAsyncHandle>> {\n if (!request.collection) {\n return err({\n code: 'rag_invalid_request',\n message: '`collection` is required for ingestAsync.',\n });\n }\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const sql = this._testSqlOverride ? this._testSqlOverride() : this.sql();\n if (sql.error) return err(sql.error);\n\n const writer: IngestJobWriter = this._testJobWriter ?? createSqlJobWriter(sql.data);\n const channel = createProgressChannel();\n const resolved = resolveIngestModel(request, this._resolved);\n const requestWithHook: IngestRequest = {\n ...resolved,\n onProgress: (event) => channel.push(event),\n } as IngestRequest;\n\n // Allocate the job row up-front so the caller has a stable id before we\n // hand back the handle. The pipeline will reuse the same writer (and\n // therefore the same row) when `request.collection` is set.\n const started = await writer.start({\n collection: request.collection,\n source: request.id,\n totalChunks: countChunks(resolved),\n });\n if (started.error) {\n channel.close();\n return err(started.error);\n }\n const jobId = started.data.jobId;\n const facadeWriter = withPreallocatedJob(writer, jobId);\n\n const embedder = buildEmbedderForIngest(resolved, this._getAi);\n const pipeline = new RagPipeline({\n sqlProvider: () => sql,\n ...(embedder && { embedder }),\n jobWriter: facadeWriter,\n });\n\n const result = pipeline\n .ingest(requestWithHook)\n .then((r) => {\n channel.close();\n return r;\n })\n .catch((cause: unknown) => {\n channel.close();\n return err<IngestResponse>(toRagError(cause, 'Ingest failed'));\n });\n\n return ok({ jobId, events: channel.iterable, result });\n }\n\n /** Test-only seam — assigned by `ingest-async.spec.ts`. */\n private _testJobWriter?: IngestJobWriter;\n /** Test-only seam — assigned by `ingest-async.spec.ts`. */\n private _testSqlOverride?: () => Result<Sql>;\n\n async delete(ids: string | string[], options?: DeleteOptions): Promise<Result<DeleteResponse>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n return this.withPipeline(null, (pipeline) => pipeline.delete(ids, options));\n }\n\n async deleteWhere(\n filter: Record<string, unknown>,\n options?: DeleteOptions,\n ): Promise<Result<DeleteResponse>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n return this.withPipeline(null, (pipeline) => pipeline.deleteWhere(filter, options));\n }\n\n async retrieve(request: RetrieveRequest): Promise<Result<RetrieveHit[]>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const resolved = resolveRetrieveModel(request, this._resolved);\n return this.withPipeline(buildEmbedderForRetrieve(resolved, this._getAi), (pipeline) =>\n pipeline.retrieve(resolved),\n );\n }\n\n /**\n * Drops the legacy ad-hoc RAG schema. Kept for backwards compatibility with\n * pre-feature-30 agents whose tables were provisioned by `ensureSchema` on\n * first call. The canonical RAG schema (feature 30) is owned by the CLI and\n * removed via `stackbone db migrate` flows, not by this method.\n */\n async reset(): Promise<Result<void>> {\n const gateResult = await this._gate();\n if (gateResult.error) return err(gateResult.error);\n const sql = this.sql();\n if (sql.error) return err(sql.error);\n try {\n await resetSchema(sql.data);\n return ok(undefined);\n } catch (cause) {\n return err(toRagError(cause, 'Reset failed'));\n }\n }\n\n /**\n * Pure helper — exposed verbatim from the chunker. No DB, no AI, no\n * datapath traffic, so it is intentionally NOT gated.\n */\n chunk(text: string, options?: ChunkOptions): string[] {\n return chunkText(text, options);\n }\n\n /**\n * Pure helper — exposed verbatim from the parser. No DB, no AI, no\n * datapath traffic, so it is intentionally NOT gated.\n */\n parse(input: ParseInput, options?: ParseOptions): Promise<string> {\n return parseInput(input, options);\n }\n\n /**\n * Resolves the postgres-js `Sql` to use for this operation. Pulls `$client`\n * off the shared Drizzle handle (single pool per agent process). Slice F03's\n * NOTE about cross-module transaction propagation lives here: this is the\n * seam where a future `database.transaction` integration plugs a tx-bound\n * `Sql` into the pipeline instead of the pool-bound one.\n *\n * Configuration errors (`STACKBONE_POSTGRES_URL` unset) flow up as a\n * `Result.err` with the same `database_not_configured` shape `client.database`\n * raises, instead of throwing through the public surface.\n */\n // `_resolved` is reserved for future per-config overrides (e.g. routing\n // RAG queries through a logical replica). The URL itself is owned by the\n // shared handle.\n private sql(): Result<Sql> {\n void this._resolved;\n try {\n return ok(getDatabaseHandle().$client);\n } catch (cause) {\n if (isTaggedError(cause) && cause.code === 'database_not_configured') {\n return err({\n code: 'database_not_configured',\n message: cause.message,\n cause,\n });\n }\n return err(toRagError(cause, 'Database handle unavailable'));\n }\n }\n\n private async withPipeline<T>(\n embedder: Embedder | null,\n run: (pipeline: RagPipeline) => Promise<Result<T>>,\n ): Promise<Result<T>> {\n const pipeline = new RagPipeline({\n sqlProvider: () => this.sql(),\n ...(embedder && { embedder }),\n });\n return run(pipeline);\n }\n}\n\nfunction countChunks(request: IngestRequest): number {\n return Array.isArray(request.chunks) ? request.chunks.length : 0;\n}\n\n/**\n * Wraps an `IngestJobWriter` so the pipeline reuses an already-allocated job\n * row instead of inserting a new one. The facade pre-allocates so it can hand\n * the `jobId` back to the caller before launching the pipeline.\n */\nfunction withPreallocatedJob(writer: IngestJobWriter, jobId: string): IngestJobWriter {\n return {\n async start() {\n return ok({ jobId });\n },\n progress: writer.progress.bind(writer),\n complete: writer.complete.bind(writer),\n fail: writer.fail.bind(writer),\n isCancelled: writer.isCancelled.bind(writer),\n };\n}\n\ninterface ProgressChannel {\n push(event: RagIngestProgress): void;\n close(): void;\n iterable: AsyncIterable<RagIngestProgress>;\n}\n\n/**\n * Tiny single-consumer pull-channel. Buffers events when the consumer hasn't\n * started iterating yet (typical for `ingestAsync` callers that grab the\n * handle and `for await` later), and resolves a pending `next()` promise\n * synchronously when an event arrives mid-iteration.\n */\nfunction createProgressChannel(): ProgressChannel {\n const buffer: RagIngestProgress[] = [];\n let pending: ((value: IteratorResult<RagIngestProgress>) => void) | null = null;\n let closed = false;\n return {\n push(event) {\n if (pending) {\n const resolve = pending;\n pending = null;\n resolve({ value: event, done: false });\n return;\n }\n buffer.push(event);\n },\n close() {\n closed = true;\n if (pending) {\n const resolve = pending;\n pending = null;\n resolve({ value: undefined as never, done: true });\n }\n },\n iterable: {\n [Symbol.asyncIterator]() {\n return {\n next(): Promise<IteratorResult<RagIngestProgress>> {\n if (buffer.length > 0) {\n return Promise.resolve({ value: buffer.shift() as RagIngestProgress, done: false });\n }\n if (closed) return Promise.resolve({ value: undefined as never, done: true });\n return new Promise((resolve) => {\n pending = resolve;\n });\n },\n };\n },\n },\n };\n}\n\nfunction buildEmbedderForIngest(request: IngestRequest, getAi: () => AiModule): Embedder | null {\n if (!isAutoEmbedIngest(request)) return null;\n return new Embedder({\n ai: getAi(),\n model: request.model,\n batchSize: request.batchSize ?? DEFAULT_BATCH_SIZE,\n });\n}\n\nfunction buildEmbedderForRetrieve(\n request: RetrieveRequest,\n getAi: () => AiModule,\n): Embedder | null {\n if (!isAutoEmbedRetrieve(request)) return null;\n return new Embedder({ ai: getAi(), model: request.model });\n}\n\n/**\n * Inject the configured embedding model when the caller supplied string\n * chunks but omitted `model`. Precomputed-embedding requests are passed\n * through untouched. Source of the default: `agent.yaml.rag.embeddingModel`\n * (parsed by the CLI into `ResolvedConfig.config.rag.embeddingModel`),\n * falling back to the ADR-frozen `DEFAULT_RAG_EMBEDDING_MODEL`.\n */\nfunction resolveIngestModel(request: IngestRequest, resolved: ResolvedConfig): IngestRequest {\n if (isAutoEmbedIngest(request)) return request;\n if (!Array.isArray(request.chunks) || request.chunks.length === 0) return request;\n if (typeof request.chunks[0] !== 'string') return request;\n const model = resolved.config.rag?.embeddingModel ?? DEFAULT_RAG_EMBEDDING_MODEL;\n return { ...(request as unknown as IngestRequestAutoEmbed), model };\n}\n\nfunction resolveRetrieveModel(request: RetrieveRequest, resolved: ResolvedConfig): RetrieveRequest {\n if (isAutoEmbedRetrieve(request)) return request;\n if (typeof (request as unknown as RetrieveRequestAutoEmbed).text !== 'string') return request;\n const model = resolved.config.rag?.embeddingModel ?? DEFAULT_RAG_EMBEDDING_MODEL;\n return { ...(request as unknown as RetrieveRequestAutoEmbed), model };\n}\n\nfunction isTaggedError(\n cause: unknown,\n): cause is Error & { code?: string; meta?: Record<string, unknown> } {\n return cause instanceof Error;\n}\n\nfunction toRagError(cause: unknown, message: string): SdkError {\n if (isTaggedError(cause)) {\n const error: SdkError = {\n code: cause.code ?? 'rag_error',\n message: `${message}: ${cause.message}`,\n cause,\n };\n if (cause.meta) error.meta = cause.meta;\n return error;\n }\n return { code: 'rag_error', message, cause };\n}\n","import {\n DeleteObjectCommand,\n GetObjectCommand,\n ListObjectsV2Command,\n PutObjectCommand,\n S3Client,\n type ListObjectsV2CommandOutput,\n} from '@aws-sdk/client-s3';\nimport { getSignedUrl } from '@aws-sdk/s3-request-presigner';\n\nimport { type ResolvedConfig } from '../../config';\nimport { createModuleGate, type ModuleGate } from '../../contract/module-gate';\nimport { err, ok, type Result, type SdkError } from '../../result';\n\nexport interface StorageObject {\n key: string;\n size: number;\n lastModified?: Date;\n etag?: string;\n}\n\nexport interface UploadOptions {\n contentType?: string;\n metadata?: Record<string, string>;\n}\n\nexport interface ListOptions {\n prefix?: string;\n /** Maximum number of objects to return per page. Must be > 0. */\n limit?: number;\n cursor?: string;\n}\n\nexport interface SignedUrlOptions {\n /** Seconds until the URL expires. Defaults to 3600 (1h). */\n expiresIn?: number;\n /** Only honoured by `getSignedUploadUrl` — pinned into the signature so the uploader must send a matching `Content-Type`. */\n contentType?: string;\n}\n\nexport interface SignedUrl {\n url: string;\n expiresAt: Date;\n}\n\nexport type StorageBody = Blob | Uint8Array | string;\n\ninterface S3Settings {\n client: S3Client;\n endpoint: string;\n bucket: string;\n agentId: string;\n}\n\ninterface ResolvedKey extends S3Settings {\n /** Multi-tenant key sent to S3 — `${agentId}/${bucketName}/${userKey}`. */\n fullKey: string;\n}\n\nconst DEFAULT_SIGNED_URL_TTL_SECONDS = 3600;\n\n/**\n * Public surface behind `client.storage`. Wraps `@aws-sdk/client-s3` against\n * R2 (prod) or MinIO (dev). Exposes a bucket-scoped API via `from(bucket)`.\n *\n * Multi-tenancy: every key is prefixed with `agentId/bucket/` before hitting\n * S3. Credentials are scoped to the agent's physical bucket (env `S3_BUCKET`),\n * and the `bucket` argument is a logical namespace the agent uses to organise\n * its own objects. The full prefixed key is an internal detail — public\n * methods accept and return the user-facing key (without prefix). Metadata\n * tracking in `_storage_objects` (Neon) is out-of-scope for this iteration.\n *\n * Memory note: `download()` materialises the whole object as a `Blob` in\n * memory. For agents that need to stream large objects, prefer\n * `getSignedDownloadUrl()` and `fetch()` the URL directly to consume the\n * stream incrementally.\n */\nexport class StorageModule {\n private _s3: S3Client | null = null;\n private readonly _gate: ModuleGate;\n\n constructor(\n private readonly _resolved: ResolvedConfig,\n /** Test seam — see `ModuleGate`. Defaults to the lazy contract gate. */\n gate?: ModuleGate,\n ) {\n this._gate = gate ?? createModuleGate('storage', _resolved);\n }\n\n from(bucket: string): StorageBucket {\n return new StorageBucket(bucket, () => this.settings(), this._gate);\n }\n\n private settings(): Result<S3Settings> {\n const accessKeyId =\n this._resolved.config.s3?.accessKeyId ?? this._resolved.env['AWS_ACCESS_KEY_ID'];\n const secretAccessKey =\n this._resolved.config.s3?.secretAccessKey ?? this._resolved.env['AWS_SECRET_ACCESS_KEY'];\n const endpoint = this._resolved.config.s3?.endpoint ?? this._resolved.env['S3_ENDPOINT'];\n const bucket = this._resolved.config.s3?.bucket ?? this._resolved.env['S3_BUCKET'];\n const agentId = this._resolved.config.agentId ?? this._resolved.env['STACKBONE_AGENT_ID'];\n\n if (!accessKeyId || !secretAccessKey || !endpoint) {\n return err({\n code: 's3_credentials_missing',\n message: S3_CREDENTIALS_MISSING_MESSAGE,\n });\n }\n if (!bucket) {\n return err({ code: 's3_bucket_missing', message: S3_BUCKET_MISSING_MESSAGE });\n }\n if (!agentId) {\n return err({ code: 'agent_id_missing', message: AGENT_ID_MISSING_MESSAGE });\n }\n\n this._s3 ??= new S3Client({\n endpoint,\n region: 'auto',\n forcePathStyle: true,\n credentials: { accessKeyId, secretAccessKey },\n });\n return ok({ client: this._s3, endpoint, bucket, agentId });\n }\n}\n\nexport class StorageBucket {\n constructor(\n private readonly bucketName: string,\n private readonly resolveSettings: () => Result<S3Settings>,\n private readonly gate: ModuleGate,\n ) {}\n\n async upload(\n key: string,\n body: StorageBody,\n options?: UploadOptions,\n ): Promise<Result<{ key: string; etag?: string }>> {\n const gateResult = await this.gate();\n if (gateResult.error) return err(gateResult.error);\n const resolved = this.resolve(key);\n if (resolved.error) return err(resolved.error);\n const { client, bucket, fullKey } = resolved.data;\n try {\n const response = await client.send(\n new PutObjectCommand({\n Bucket: bucket,\n Key: fullKey,\n Body: body,\n ContentType: options?.contentType,\n Metadata: options?.metadata,\n }),\n );\n const etag = stripEtag(response.ETag);\n return ok(etag === undefined ? { key } : { key, etag });\n } catch (cause) {\n return err(toStorageError('Upload failed', cause));\n }\n }\n\n async download(key: string): Promise<Result<Blob>> {\n const gateResult = await this.gate();\n if (gateResult.error) return err(gateResult.error);\n const resolved = this.resolve(key);\n if (resolved.error) return err(resolved.error);\n const { client, bucket, fullKey } = resolved.data;\n try {\n const response = await client.send(new GetObjectCommand({ Bucket: bucket, Key: fullKey }));\n const body = response.Body;\n if (!body) {\n return err({\n code: 's3_empty_response',\n message: `S3 returned an empty body for ${fullKey}`,\n });\n }\n const bytes = await body.transformToByteArray();\n return ok(new Blob([bytes], { type: response.ContentType ?? 'application/octet-stream' }));\n } catch (cause) {\n return err(toStorageError('Download failed', cause));\n }\n }\n\n async list(\n options?: ListOptions,\n ): Promise<Result<{ objects: readonly StorageObject[]; nextCursor?: string }>> {\n const gateResult = await this.gate();\n if (gateResult.error) return err(gateResult.error);\n const resolved = this.resolve(options?.prefix ?? '');\n if (resolved.error) return err(resolved.error);\n const { client, bucket, agentId, fullKey: basePrefix } = resolved.data;\n const limit = options?.limit;\n if (limit !== undefined && limit <= 0) {\n return err({\n code: 's3_invalid_argument',\n message: '`limit` must be a positive integer',\n });\n }\n try {\n const response: ListObjectsV2CommandOutput = await client.send(\n new ListObjectsV2Command({\n Bucket: bucket,\n Prefix: basePrefix,\n ...(limit !== undefined ? { MaxKeys: limit } : {}),\n ...(options?.cursor ? { ContinuationToken: options.cursor } : {}),\n }),\n );\n const stripPrefix = `${agentId}/${this.bucketName}/`;\n const objects: StorageObject[] = (response.Contents ?? []).map((item) => {\n const itemKey = item.Key?.startsWith(stripPrefix)\n ? item.Key.slice(stripPrefix.length)\n : (item.Key ?? '');\n const obj: StorageObject = { key: itemKey, size: item.Size ?? 0 };\n if (item.LastModified) obj.lastModified = item.LastModified;\n const etag = stripEtag(item.ETag);\n if (etag) obj.etag = etag;\n return obj;\n });\n const nextCursor =\n response.IsTruncated && response.NextContinuationToken\n ? response.NextContinuationToken\n : undefined;\n return ok(nextCursor === undefined ? { objects } : { objects, nextCursor });\n } catch (cause) {\n return err(toStorageError('List failed', cause));\n }\n }\n\n async remove(key: string): Promise<Result<{ key: string }>> {\n const gateResult = await this.gate();\n if (gateResult.error) return err(gateResult.error);\n const resolved = this.resolve(key);\n if (resolved.error) return err(resolved.error);\n const { client, bucket, fullKey } = resolved.data;\n try {\n await client.send(new DeleteObjectCommand({ Bucket: bucket, Key: fullKey }));\n return ok({ key });\n } catch (cause) {\n return err(toStorageError('Delete failed', cause));\n }\n }\n\n /**\n * Returns the canonical S3-style URL for an object. Pure URL-builder — no\n * S3 round-trip — so this method intentionally bypasses the contract gate.\n * Whether the URL is publicly fetchable depends on the bucket policy; for\n * private buckets, use `getSignedDownloadUrl` instead.\n */\n getPublicUrl(key: string): Result<string> {\n const resolved = this.resolve(key);\n if (resolved.error) return err(resolved.error);\n const { endpoint, bucket, fullKey } = resolved.data;\n const base = endpoint.replace(/\\/+$/, '');\n return ok(`${base}/${bucket}/${encodeS3Key(fullKey)}`);\n }\n\n async getSignedUploadUrl(key: string, options?: SignedUrlOptions): Promise<Result<SignedUrl>> {\n const gateResult = await this.gate();\n if (gateResult.error) return err(gateResult.error);\n const resolved = this.resolve(key);\n if (resolved.error) return err(resolved.error);\n const { client, bucket, fullKey } = resolved.data;\n const expiresIn = options?.expiresIn ?? DEFAULT_SIGNED_URL_TTL_SECONDS;\n try {\n const url = await getSignedUrl(\n client,\n new PutObjectCommand({\n Bucket: bucket,\n Key: fullKey,\n ContentType: options?.contentType,\n }),\n { expiresIn },\n );\n return ok({ url, expiresAt: new Date(Date.now() + expiresIn * 1000) });\n } catch (cause) {\n return err(toStorageError('Signing upload URL failed', cause));\n }\n }\n\n async getSignedDownloadUrl(key: string, options?: SignedUrlOptions): Promise<Result<SignedUrl>> {\n const gateResult = await this.gate();\n if (gateResult.error) return err(gateResult.error);\n const resolved = this.resolve(key);\n if (resolved.error) return err(resolved.error);\n const { client, bucket, fullKey } = resolved.data;\n const expiresIn = options?.expiresIn ?? DEFAULT_SIGNED_URL_TTL_SECONDS;\n try {\n const url = await getSignedUrl(\n client,\n new GetObjectCommand({ Bucket: bucket, Key: fullKey }),\n { expiresIn },\n );\n return ok({ url, expiresAt: new Date(Date.now() + expiresIn * 1000) });\n } catch (cause) {\n return err(toStorageError('Signing download URL failed', cause));\n }\n }\n\n /**\n * Resolves S3 settings, validates the user key, and prefixes it with\n * `${agentId}/${bucketName}/`. Rejects path-traversal segments (`..`) so a\n * caller-controlled key cannot escape the agent's namespace.\n */\n private resolve(key: string): Result<ResolvedKey> {\n const settings = this.resolveSettings();\n if (settings.error) return err(settings.error);\n const normalisedKey = key.replace(/^\\/+/, '');\n if (/(^|\\/)\\.\\.(\\/|$)/.test(normalisedKey)) {\n return err({\n code: 's3_invalid_key',\n message: `Invalid storage key: path traversal segments are not allowed (received \"${key}\")`,\n });\n }\n const { agentId } = settings.data;\n const fullKey = normalisedKey\n ? `${agentId}/${this.bucketName}/${normalisedKey}`\n : `${agentId}/${this.bucketName}/`;\n return ok({ ...settings.data, fullKey });\n }\n}\n\nconst S3_CREDENTIALS_MISSING_MESSAGE =\n 'Cannot reach object storage — set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `S3_ENDPOINT` in the container or pass `s3` to `createClient({...})`.';\nconst S3_BUCKET_MISSING_MESSAGE =\n 'No storage bucket configured — set `S3_BUCKET` in the container or pass `s3.bucket` to `createClient({...})`.';\nconst AGENT_ID_MISSING_MESSAGE =\n 'No agent identity configured — set `STACKBONE_AGENT_ID` in the container or pass `agentId` to `createClient({...})`.';\n\nfunction stripEtag(etag: string | undefined): string | undefined {\n return etag?.replace(/^\"|\"$/g, '');\n}\n\nfunction encodeS3Key(key: string): string {\n return key.split('/').map(encodeURIComponent).join('/');\n}\n\ninterface AwsServiceErrorShape {\n $metadata?: { httpStatusCode?: number };\n $fault?: 'client' | 'server';\n}\n\nfunction toStorageError(message: string, cause: unknown): SdkError {\n if (cause instanceof Error) {\n const aws = cause as Error & AwsServiceErrorShape;\n const meta: Record<string, unknown> = { name: aws.name };\n if (aws.$metadata?.httpStatusCode !== undefined) {\n meta['httpStatusCode'] = aws.$metadata.httpStatusCode;\n }\n if (aws.$fault) meta['fault'] = aws.$fault;\n return {\n code: 's3_error',\n message: `${message}: ${cause.message}`,\n cause,\n meta,\n };\n }\n return { code: 's3_error', message, cause };\n}\n","import type { ContractResponse } from '@stackbone/validators';\n\nimport { type ClientConfig, resolveConfig, type ResolvedConfig } from './config';\nimport { ContractHandshake } from './contract/contract-handshake';\nimport { createModuleGate } from './contract/module-gate';\nimport { ApprovalFacade } from './facades/approval/approval';\nimport { ConfigFacade } from './facades/config/config';\nimport { ConnectionsFacade } from './facades/connections/connections';\nimport { EventsFacade } from './facades/events/events';\nimport { PromptsFacade } from './facades/prompts/prompts';\nimport { SecretsFacade } from './facades/secrets/secrets';\nimport { HttpClient } from './lib/http-client';\nimport { AiModule } from './modules/ai/ai';\nimport { DatabaseModule } from './modules/database/database';\nimport { MemoryModule } from './modules/memory/memory';\nimport { ObservabilityModule } from './modules/observability/observability';\nimport { QueuesModule } from './modules/queues/queues';\nimport { RagModule } from './modules/rag/rag';\nimport { StorageModule } from './modules/storage/storage';\n\n/**\n * Each accessor builds its module on first access and caches it — env vars\n * and partner SDK init costs are paid only when the agent actually touches\n * that surface.\n */\nexport class StackboneClient {\n private _database?: DatabaseModule;\n private _storage?: StorageModule;\n private _ai?: AiModule;\n private _queues?: QueuesModule;\n private _rag?: RagModule;\n private _memory?: MemoryModule;\n private _observability?: ObservabilityModule;\n private _approval?: ApprovalFacade;\n private _secrets?: SecretsFacade;\n private _connections?: ConnectionsFacade;\n private _config?: ConfigFacade;\n private _events?: EventsFacade;\n private _prompts?: PromptsFacade;\n private _httpClient?: HttpClient;\n\n constructor(private readonly resolved: ResolvedConfig) {}\n\n private http(): HttpClient {\n this._httpClient ??= new HttpClient(this.resolved);\n return this._httpClient;\n }\n\n get database(): DatabaseModule {\n this._database ??= new DatabaseModule(\n this.resolved,\n createModuleGate('database', this.resolved),\n );\n return this._database;\n }\n\n get storage(): StorageModule {\n this._storage ??= new StorageModule(this.resolved, createModuleGate('storage', this.resolved));\n return this._storage;\n }\n\n get ai(): AiModule {\n this._ai ??= new AiModule(this.resolved, undefined, createModuleGate('ai', this.resolved));\n return this._ai;\n }\n\n get queues(): QueuesModule {\n this._queues ??= new QueuesModule(this.resolved, createModuleGate('queues', this.resolved));\n return this._queues;\n }\n\n get rag(): RagModule {\n this._rag ??= new RagModule(\n this.resolved,\n () => this.ai,\n createModuleGate('rag', this.resolved),\n );\n return this._rag;\n }\n\n get memory(): MemoryModule {\n this._memory ??= new MemoryModule(this.resolved);\n return this._memory;\n }\n\n get observability(): ObservabilityModule {\n this._observability ??= new ObservabilityModule(this.resolved);\n return this._observability;\n }\n\n get approval(): ApprovalFacade {\n this._approval ??= new ApprovalFacade(\n this.resolved,\n this.http(),\n createModuleGate('approval', this.resolved),\n );\n return this._approval;\n }\n\n get secrets(): SecretsFacade {\n this._secrets ??= new SecretsFacade(\n this.resolved,\n this.http(),\n createModuleGate('secrets', this.resolved),\n );\n return this._secrets;\n }\n\n get connections(): ConnectionsFacade {\n this._connections ??= new ConnectionsFacade(this.resolved, this.http());\n return this._connections;\n }\n\n get config(): ConfigFacade {\n this._config ??= new ConfigFacade(\n this.resolved,\n this.http(),\n createModuleGate('config', this.resolved),\n );\n return this._config;\n }\n\n get events(): EventsFacade {\n this._events ??= new EventsFacade(\n this.resolved,\n this.http(),\n createModuleGate('events', this.resolved),\n );\n return this._events;\n }\n\n get prompts(): PromptsFacade {\n this._prompts ??= new PromptsFacade(this.resolved, this.http());\n return this._prompts;\n }\n\n /**\n * Read-only view of the most recently resolved Stackbone Agent Protocol\n * contract for this client's `stackboneApiUrl`. Returns `null` until a\n * handshake has resolved successfully (the handshake fires lazily on the\n * first gated module call — slices #4/#5). Synchronous, never throws,\n * performs no fetches.\n */\n get contract(): ContractResponse | null {\n const baseUrl = this.resolved.config.stackboneApiUrl ?? this.resolved.env['STACKBONE_API_URL'];\n return ContractHandshake.peek(baseUrl);\n }\n}\n\nexport function createClient(config: ClientConfig = {}): StackboneClient {\n return new StackboneClient(resolveConfig(config));\n}\n"]}