@chaos-maker/core 0.3.0 → 0.4.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/README.md +60 -2
- package/dist/chaos-maker.cjs +110 -4
- package/dist/chaos-maker.js +2375 -1782
- package/dist/chaos-maker.umd.js +110 -4
- package/dist/sw.js +1 -0
- package/dist/sw.mjs +720 -0
- package/dist/types/ChaosMaker.d.ts +19 -1
- package/dist/types/builder.d.ts +13 -1
- package/dist/types/config.d.ts +68 -13
- package/dist/types/events.d.ts +7 -1
- package/dist/types/graphql.d.ts +54 -0
- package/dist/types/index.d.ts +6 -2
- package/dist/types/interceptors/eventSource.d.ts +41 -0
- package/dist/types/interceptors/networkFetch.d.ts +1 -1
- package/dist/types/interceptors/websocket.d.ts +2 -2
- package/dist/types/sw-bridge-source.d.ts +18 -0
- package/dist/types/sw.d.ts +97 -0
- package/dist/types/transport.d.ts +21 -0
- package/package.json +10 -5
package/dist/chaos-maker.cjs
CHANGED
|
@@ -1,4 +1,110 @@
|
|
|
1
|
-
"use strict";var vt=Object.defineProperty;var _t=(s,e,t)=>e in s?vt(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var P=(s,e,t)=>_t(s,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var C;(function(s){s.assertEqual=n=>{};function e(n){}s.assertIs=e;function t(n){throw new Error}s.assertNever=t,s.arrayToEnum=n=>{const a={};for(const i of n)a[i]=i;return a},s.getValidEnumValues=n=>{const a=s.objectKeys(n).filter(o=>typeof n[n[o]]!="number"),i={};for(const o of a)i[o]=n[o];return s.objectValues(i)},s.objectValues=n=>s.objectKeys(n).map(function(a){return n[a]}),s.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{const a=[];for(const i in n)Object.prototype.hasOwnProperty.call(n,i)&&a.push(i);return a},s.find=(n,a)=>{for(const i of n)if(a(i))return i},s.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function r(n,a=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(a)}s.joinValues=r,s.jsonStringifyReplacer=(n,a)=>typeof a=="bigint"?a.toString():a})(C||(C={}));var $e;(function(s){s.mergeShapes=(e,t)=>({...e,...t})})($e||($e={}));const h=C.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),K=s=>{switch(typeof s){case"undefined":return h.undefined;case"string":return h.string;case"number":return Number.isNaN(s)?h.nan:h.number;case"boolean":return h.boolean;case"function":return h.function;case"bigint":return h.bigint;case"symbol":return h.symbol;case"object":return Array.isArray(s)?h.array:s===null?h.null:s.then&&typeof s.then=="function"&&s.catch&&typeof s.catch=="function"?h.promise:typeof Map<"u"&&s instanceof Map?h.map:typeof Set<"u"&&s instanceof Set?h.set:typeof Date<"u"&&s instanceof Date?h.date:h.object;default:return h.unknown}},u=C.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class J extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(a){return a.message},r={_errors:[]},n=a=>{for(const i of a.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)r._errors.push(t(i));else{let o=r,l=0;for(;l<i.path.length;){const c=i.path[l];l===i.path.length-1?(o[c]=o[c]||{_errors:[]},o[c]._errors.push(t(i))):o[c]=o[c]||{_errors:[]},o=o[c],l++}}};return n(this),r}static assert(e){if(!(e instanceof J))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,C.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},r=[];for(const n of this.issues)if(n.path.length>0){const a=n.path[0];t[a]=t[a]||[],t[a].push(e(n))}else r.push(e(n));return{formErrors:r,fieldErrors:t}}get formErrors(){return this.flatten()}}J.create=s=>new J(s);const Te=(s,e)=>{let t;switch(s.code){case u.invalid_type:s.received===h.undefined?t="Required":t=`Expected ${s.expected}, received ${s.received}`;break;case u.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(s.expected,C.jsonStringifyReplacer)}`;break;case u.unrecognized_keys:t=`Unrecognized key(s) in object: ${C.joinValues(s.keys,", ")}`;break;case u.invalid_union:t="Invalid input";break;case u.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${C.joinValues(s.options)}`;break;case u.invalid_enum_value:t=`Invalid enum value. Expected ${C.joinValues(s.options)}, received '${s.received}'`;break;case u.invalid_arguments:t="Invalid function arguments";break;case u.invalid_return_type:t="Invalid function return type";break;case u.invalid_date:t="Invalid date";break;case u.invalid_string:typeof s.validation=="object"?"includes"in s.validation?(t=`Invalid input: must include "${s.validation.includes}"`,typeof s.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${s.validation.position}`)):"startsWith"in s.validation?t=`Invalid input: must start with "${s.validation.startsWith}"`:"endsWith"in s.validation?t=`Invalid input: must end with "${s.validation.endsWith}"`:C.assertNever(s.validation):s.validation!=="regex"?t=`Invalid ${s.validation}`:t="Invalid";break;case u.too_small:s.type==="array"?t=`Array must contain ${s.exact?"exactly":s.inclusive?"at least":"more than"} ${s.minimum} element(s)`:s.type==="string"?t=`String must contain ${s.exact?"exactly":s.inclusive?"at least":"over"} ${s.minimum} character(s)`:s.type==="number"?t=`Number must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${s.minimum}`:s.type==="bigint"?t=`Number must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${s.minimum}`:s.type==="date"?t=`Date must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(s.minimum))}`:t="Invalid input";break;case u.too_big:s.type==="array"?t=`Array must contain ${s.exact?"exactly":s.inclusive?"at most":"less than"} ${s.maximum} element(s)`:s.type==="string"?t=`String must contain ${s.exact?"exactly":s.inclusive?"at most":"under"} ${s.maximum} character(s)`:s.type==="number"?t=`Number must be ${s.exact?"exactly":s.inclusive?"less than or equal to":"less than"} ${s.maximum}`:s.type==="bigint"?t=`BigInt must be ${s.exact?"exactly":s.inclusive?"less than or equal to":"less than"} ${s.maximum}`:s.type==="date"?t=`Date must be ${s.exact?"exactly":s.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(s.maximum))}`:t="Invalid input";break;case u.custom:t="Invalid input";break;case u.invalid_intersection_types:t="Intersection results could not be merged";break;case u.not_multiple_of:t=`Number must be a multiple of ${s.multipleOf}`;break;case u.not_finite:t="Number must be finite";break;default:t=e.defaultError,C.assertNever(s)}return{message:t}};let bt=Te;function kt(){return bt}const wt=s=>{const{data:e,path:t,errorMaps:r,issueData:n}=s,a=[...t,...n.path||[]],i={...n,path:a};if(n.message!==void 0)return{...n,path:a,message:n.message};let o="";const l=r.filter(c=>!!c).slice().reverse();for(const c of l)o=c(i,{data:e,defaultError:o}).message;return{...n,path:a,message:o}};function f(s,e){const t=kt(),r=wt({issueData:e,data:s.data,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,t,t===Te?void 0:Te].filter(n=>!!n)});s.common.issues.push(r)}class ${constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const r=[];for(const n of t){if(n.status==="aborted")return _;n.status==="dirty"&&e.dirty(),r.push(n.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,t){const r=[];for(const n of t){const a=await n.key,i=await n.value;r.push({key:a,value:i})}return $.mergeObjectSync(e,r)}static mergeObjectSync(e,t){const r={};for(const n of t){const{key:a,value:i}=n;if(a.status==="aborted"||i.status==="aborted")return _;a.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(r[a.value]=i.value)}return{status:e.value,value:r}}}const _=Object.freeze({status:"aborted"}),he=s=>({status:"dirty",value:s}),q=s=>({status:"valid",value:s}),Ie=s=>s.status==="aborted",Le=s=>s.status==="dirty",oe=s=>s.status==="valid",ve=s=>typeof Promise<"u"&&s instanceof Promise;var y;(function(s){s.errToObj=e=>typeof e=="string"?{message:e}:e||{},s.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(y||(y={}));class H{constructor(e,t,r,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=r,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const De=(s,e)=>{if(oe(e))return{success:!0,data:e.value};if(!s.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new J(s.common.issues);return this._error=t,this._error}}};function k(s){if(!s)return{};const{errorMap:e,invalid_type_error:t,required_error:r,description:n}=s;if(e&&(t||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(i,o)=>{const{message:l}=s;return i.code==="invalid_enum_value"?{message:l??o.defaultError}:typeof o.data>"u"?{message:l??r??o.defaultError}:i.code!=="invalid_type"?{message:o.defaultError}:{message:l??t??o.defaultError}},description:n}}class x{get description(){return this._def.description}_getType(e){return K(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:K(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new $,ctx:{common:e.parent.common,data:e.data,parsedType:K(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(ve(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const r=this.safeParse(e,t);if(r.success)return r.data;throw r.error}safeParse(e,t){const r={common:{issues:[],async:(t==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K(e)},n=this._parseSync({data:e,path:r.path,parent:r});return De(r,n)}"~validate"(e){var r,n;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:t});return oe(a)?{value:a.value}:{issues:t.common.issues}}catch(a){(n=(r=a==null?void 0:a.message)==null?void 0:r.toLowerCase())!=null&&n.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(a=>oe(a)?{value:a.value}:{issues:t.common.issues})}async parseAsync(e,t){const r=await this.safeParseAsync(e,t);if(r.success)return r.data;throw r.error}async safeParseAsync(e,t){const r={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K(e)},n=this._parse({data:e,path:r.path,parent:r}),a=await(ve(n)?n:Promise.resolve(n));return De(r,a)}refine(e,t){const r=n=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(n):t;return this._refinement((n,a)=>{const i=e(n),o=()=>a.addIssue({code:u.custom,...r(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(o(),!1)):i?!0:(o(),!1)})}refinement(e,t){return this._refinement((r,n)=>e(r)?!0:(n.addIssue(typeof t=="function"?t(r,n):t),!1))}_refinement(e){return new ue({schema:this,typeName:v.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return ee.create(this,this._def)}nullable(){return le.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return B.create(this)}promise(){return xe.create(this,this._def)}or(e){return be.create([this,e],this._def)}and(e){return ke.create(this,e,this._def)}transform(e){return new ue({...k(this._def),schema:this,typeName:v.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new Ne({...k(this._def),innerType:this,defaultValue:t,typeName:v.ZodDefault})}brand(){return new Bt({typeName:v.ZodBranded,type:this,...k(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new Ae({...k(this._def),innerType:this,catchValue:t,typeName:v.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return je.create(this,e)}readonly(){return Ee.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const xt=/^c[^\s-]{8,}$/i,Ct=/^[0-9a-z]+$/,St=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Tt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ot=/^[a-z0-9_-]{21}$/i,Nt=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,At=/^[-+]?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)?)??$/,Et=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Rt="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Se;const Mt=/^(?:(?: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])$/,jt=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,Pt=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Zt=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,$t=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,It=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ct="((\\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])))",Lt=new RegExp(`^${ct}$`);function dt(s){let e="[0-5]\\d";s.precision?e=`${e}\\.\\d{${s.precision}}`:s.precision==null&&(e=`${e}(\\.\\d+)?`);const t=s.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function Dt(s){return new RegExp(`^${dt(s)}$`)}function Vt(s){let e=`${ct}T${dt(s)}`;const t=[];return t.push(s.local?"Z?":"Z"),s.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function zt(s,e){return!!((e==="v4"||!e)&&Mt.test(s)||(e==="v6"||!e)&&Pt.test(s))}function Ut(s,e){if(!Nt.test(s))return!1;try{const[t]=s.split(".");if(!t)return!1;const r=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=JSON.parse(atob(r));return!(typeof n!="object"||n===null||"typ"in n&&(n==null?void 0:n.typ)!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}function qt(s,e){return!!((e==="v4"||!e)&&jt.test(s)||(e==="v6"||!e)&&Zt.test(s))}class G extends x{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==h.string){const a=this._getOrReturnCtx(e);return f(a,{code:u.invalid_type,expected:h.string,received:a.parsedType}),_}const r=new $;let n;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(n=this._getOrReturnCtx(e,n),f(n,{code:u.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),r.dirty());else if(a.kind==="max")e.data.length>a.value&&(n=this._getOrReturnCtx(e,n),f(n,{code:u.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),r.dirty());else if(a.kind==="length"){const i=e.data.length>a.value,o=e.data.length<a.value;(i||o)&&(n=this._getOrReturnCtx(e,n),i?f(n,{code:u.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):o&&f(n,{code:u.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),r.dirty())}else if(a.kind==="email")Et.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"email",code:u.invalid_string,message:a.message}),r.dirty());else if(a.kind==="emoji")Se||(Se=new RegExp(Rt,"u")),Se.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"emoji",code:u.invalid_string,message:a.message}),r.dirty());else if(a.kind==="uuid")Tt.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"uuid",code:u.invalid_string,message:a.message}),r.dirty());else if(a.kind==="nanoid")Ot.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"nanoid",code:u.invalid_string,message:a.message}),r.dirty());else if(a.kind==="cuid")xt.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"cuid",code:u.invalid_string,message:a.message}),r.dirty());else if(a.kind==="cuid2")Ct.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"cuid2",code:u.invalid_string,message:a.message}),r.dirty());else if(a.kind==="ulid")St.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"ulid",code:u.invalid_string,message:a.message}),r.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),f(n,{validation:"url",code:u.invalid_string,message:a.message}),r.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"regex",code:u.invalid_string,message:a.message}),r.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(n=this._getOrReturnCtx(e,n),f(n,{code:u.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),r.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(n=this._getOrReturnCtx(e,n),f(n,{code:u.invalid_string,validation:{startsWith:a.value},message:a.message}),r.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(n=this._getOrReturnCtx(e,n),f(n,{code:u.invalid_string,validation:{endsWith:a.value},message:a.message}),r.dirty()):a.kind==="datetime"?Vt(a).test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{code:u.invalid_string,validation:"datetime",message:a.message}),r.dirty()):a.kind==="date"?Lt.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{code:u.invalid_string,validation:"date",message:a.message}),r.dirty()):a.kind==="time"?Dt(a).test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{code:u.invalid_string,validation:"time",message:a.message}),r.dirty()):a.kind==="duration"?At.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"duration",code:u.invalid_string,message:a.message}),r.dirty()):a.kind==="ip"?zt(e.data,a.version)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"ip",code:u.invalid_string,message:a.message}),r.dirty()):a.kind==="jwt"?Ut(e.data,a.alg)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"jwt",code:u.invalid_string,message:a.message}),r.dirty()):a.kind==="cidr"?qt(e.data,a.version)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"cidr",code:u.invalid_string,message:a.message}),r.dirty()):a.kind==="base64"?$t.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"base64",code:u.invalid_string,message:a.message}),r.dirty()):a.kind==="base64url"?It.test(e.data)||(n=this._getOrReturnCtx(e,n),f(n,{validation:"base64url",code:u.invalid_string,message:a.message}),r.dirty()):C.assertNever(a);return{status:r.value,value:e.data}}_regex(e,t,r){return this.refinement(n=>e.test(n),{validation:t,code:u.invalid_string,...y.errToObj(r)})}_addCheck(e){return new G({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...y.errToObj(e)})}url(e){return this._addCheck({kind:"url",...y.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...y.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...y.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...y.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...y.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...y.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...y.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...y.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...y.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...y.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...y.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...y.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...y.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...y.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...y.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...y.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...y.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...y.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...y.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...y.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...y.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...y.errToObj(t)})}nonempty(e){return this.min(1,y.errToObj(e))}trim(){return new G({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new G({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new G({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}G.create=s=>new G({checks:[],typeName:v.ZodString,coerce:(s==null?void 0:s.coerce)??!1,...k(s)});function Ft(s,e){const t=(s.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,n=t>r?t:r,a=Number.parseInt(s.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return a%i/10**n}class ce extends x{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==h.number){const a=this._getOrReturnCtx(e);return f(a,{code:u.invalid_type,expected:h.number,received:a.parsedType}),_}let r;const n=new $;for(const a of this._def.checks)a.kind==="int"?C.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),f(r,{code:u.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(r=this._getOrReturnCtx(e,r),f(r,{code:u.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(r=this._getOrReturnCtx(e,r),f(r,{code:u.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty()):a.kind==="multipleOf"?Ft(e.data,a.value)!==0&&(r=this._getOrReturnCtx(e,r),f(r,{code:u.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),f(r,{code:u.not_finite,message:a.message}),n.dirty()):C.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,y.toString(t))}gt(e,t){return this.setLimit("min",e,!1,y.toString(t))}lte(e,t){return this.setLimit("max",e,!0,y.toString(t))}lt(e,t){return this.setLimit("max",e,!1,y.toString(t))}setLimit(e,t,r,n){return new ce({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:r,message:y.toString(n)}]})}_addCheck(e){return new ce({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:y.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:y.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:y.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:y.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:y.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:y.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:y.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:y.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:y.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&C.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(t===null||r.value>t)&&(t=r.value):r.kind==="max"&&(e===null||r.value<e)&&(e=r.value)}return Number.isFinite(t)&&Number.isFinite(e)}}ce.create=s=>new ce({checks:[],typeName:v.ZodNumber,coerce:(s==null?void 0:s.coerce)||!1,...k(s)});class pe extends x{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==h.bigint)return this._getInvalidInput(e);let r;const n=new $;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(r=this._getOrReturnCtx(e,r),f(r,{code:u.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(r=this._getOrReturnCtx(e,r),f(r,{code:u.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),f(r,{code:u.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):C.assertNever(a);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return f(t,{code:u.invalid_type,expected:h.bigint,received:t.parsedType}),_}gte(e,t){return this.setLimit("min",e,!0,y.toString(t))}gt(e,t){return this.setLimit("min",e,!1,y.toString(t))}lte(e,t){return this.setLimit("max",e,!0,y.toString(t))}lt(e,t){return this.setLimit("max",e,!1,y.toString(t))}setLimit(e,t,r,n){return new pe({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:r,message:y.toString(n)}]})}_addCheck(e){return new pe({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:y.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:y.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:y.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:y.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:y.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}pe.create=s=>new pe({checks:[],typeName:v.ZodBigInt,coerce:(s==null?void 0:s.coerce)??!1,...k(s)});class Ve extends x{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==h.boolean){const r=this._getOrReturnCtx(e);return f(r,{code:u.invalid_type,expected:h.boolean,received:r.parsedType}),_}return q(e.data)}}Ve.create=s=>new Ve({typeName:v.ZodBoolean,coerce:(s==null?void 0:s.coerce)||!1,...k(s)});class _e extends x{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==h.date){const a=this._getOrReturnCtx(e);return f(a,{code:u.invalid_type,expected:h.date,received:a.parsedType}),_}if(Number.isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return f(a,{code:u.invalid_date}),_}const r=new $;let n;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(n=this._getOrReturnCtx(e,n),f(n,{code:u.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),r.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(n=this._getOrReturnCtx(e,n),f(n,{code:u.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),r.dirty()):C.assertNever(a);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new _e({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:y.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:y.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}_e.create=s=>new _e({checks:[],coerce:(s==null?void 0:s.coerce)||!1,typeName:v.ZodDate,...k(s)});class ze extends x{_parse(e){if(this._getType(e)!==h.symbol){const r=this._getOrReturnCtx(e);return f(r,{code:u.invalid_type,expected:h.symbol,received:r.parsedType}),_}return q(e.data)}}ze.create=s=>new ze({typeName:v.ZodSymbol,...k(s)});class Ue extends x{_parse(e){if(this._getType(e)!==h.undefined){const r=this._getOrReturnCtx(e);return f(r,{code:u.invalid_type,expected:h.undefined,received:r.parsedType}),_}return q(e.data)}}Ue.create=s=>new Ue({typeName:v.ZodUndefined,...k(s)});class qe extends x{_parse(e){if(this._getType(e)!==h.null){const r=this._getOrReturnCtx(e);return f(r,{code:u.invalid_type,expected:h.null,received:r.parsedType}),_}return q(e.data)}}qe.create=s=>new qe({typeName:v.ZodNull,...k(s)});class Fe extends x{constructor(){super(...arguments),this._any=!0}_parse(e){return q(e.data)}}Fe.create=s=>new Fe({typeName:v.ZodAny,...k(s)});class Be extends x{constructor(){super(...arguments),this._unknown=!0}_parse(e){return q(e.data)}}Be.create=s=>new Be({typeName:v.ZodUnknown,...k(s)});class te extends x{_parse(e){const t=this._getOrReturnCtx(e);return f(t,{code:u.invalid_type,expected:h.never,received:t.parsedType}),_}}te.create=s=>new te({typeName:v.ZodNever,...k(s)});class He extends x{_parse(e){if(this._getType(e)!==h.undefined){const r=this._getOrReturnCtx(e);return f(r,{code:u.invalid_type,expected:h.void,received:r.parsedType}),_}return q(e.data)}}He.create=s=>new He({typeName:v.ZodVoid,...k(s)});class B extends x{_parse(e){const{ctx:t,status:r}=this._processInputParams(e),n=this._def;if(t.parsedType!==h.array)return f(t,{code:u.invalid_type,expected:h.array,received:t.parsedType}),_;if(n.exactLength!==null){const i=t.data.length>n.exactLength.value,o=t.data.length<n.exactLength.value;(i||o)&&(f(t,{code:i?u.too_big:u.too_small,minimum:o?n.exactLength.value:void 0,maximum:i?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),r.dirty())}if(n.minLength!==null&&t.data.length<n.minLength.value&&(f(t,{code:u.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),r.dirty()),n.maxLength!==null&&t.data.length>n.maxLength.value&&(f(t,{code:u.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),r.dirty()),t.common.async)return Promise.all([...t.data].map((i,o)=>n.type._parseAsync(new H(t,i,t.path,o)))).then(i=>$.mergeArray(r,i));const a=[...t.data].map((i,o)=>n.type._parseSync(new H(t,i,t.path,o)));return $.mergeArray(r,a)}get element(){return this._def.type}min(e,t){return new B({...this._def,minLength:{value:e,message:y.toString(t)}})}max(e,t){return new B({...this._def,maxLength:{value:e,message:y.toString(t)}})}length(e,t){return new B({...this._def,exactLength:{value:e,message:y.toString(t)}})}nonempty(e){return this.min(1,e)}}B.create=(s,e)=>new B({type:s,minLength:null,maxLength:null,exactLength:null,typeName:v.ZodArray,...k(e)});function ie(s){if(s instanceof A){const e={};for(const t in s.shape){const r=s.shape[t];e[t]=ee.create(ie(r))}return new A({...s._def,shape:()=>e})}else return s instanceof B?new B({...s._def,type:ie(s.element)}):s instanceof ee?ee.create(ie(s.unwrap())):s instanceof le?le.create(ie(s.unwrap())):s instanceof re?re.create(s.items.map(e=>ie(e))):s}class A extends x{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=C.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==h.object){const c=this._getOrReturnCtx(e);return f(c,{code:u.invalid_type,expected:h.object,received:c.parsedType}),_}const{status:r,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),o=[];if(!(this._def.catchall instanceof te&&this._def.unknownKeys==="strip"))for(const c in n.data)i.includes(c)||o.push(c);const l=[];for(const c of i){const g=a[c],O=n.data[c];l.push({key:{status:"valid",value:c},value:g._parse(new H(n,O,n.path,c)),alwaysSet:c in n.data})}if(this._def.catchall instanceof te){const c=this._def.unknownKeys;if(c==="passthrough")for(const g of o)l.push({key:{status:"valid",value:g},value:{status:"valid",value:n.data[g]}});else if(c==="strict")o.length>0&&(f(n,{code:u.unrecognized_keys,keys:o}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const g of o){const O=n.data[g];l.push({key:{status:"valid",value:g},value:c._parse(new H(n,O,n.path,g)),alwaysSet:g in n.data})}}return n.common.async?Promise.resolve().then(async()=>{const c=[];for(const g of l){const O=await g.key,N=await g.value;c.push({key:O,value:N,alwaysSet:g.alwaysSet})}return c}).then(c=>$.mergeObjectSync(r,c)):$.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(e){return y.errToObj,new A({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,r)=>{var a,i;const n=((i=(a=this._def).errorMap)==null?void 0:i.call(a,t,r).message)??r.defaultError;return t.code==="unrecognized_keys"?{message:y.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new A({...this._def,unknownKeys:"strip"})}passthrough(){return new A({...this._def,unknownKeys:"passthrough"})}extend(e){return new A({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new A({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:v.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new A({...this._def,catchall:e})}pick(e){const t={};for(const r of C.objectKeys(e))e[r]&&this.shape[r]&&(t[r]=this.shape[r]);return new A({...this._def,shape:()=>t})}omit(e){const t={};for(const r of C.objectKeys(this.shape))e[r]||(t[r]=this.shape[r]);return new A({...this._def,shape:()=>t})}deepPartial(){return ie(this)}partial(e){const t={};for(const r of C.objectKeys(this.shape)){const n=this.shape[r];e&&!e[r]?t[r]=n:t[r]=n.optional()}return new A({...this._def,shape:()=>t})}required(e){const t={};for(const r of C.objectKeys(this.shape))if(e&&!e[r])t[r]=this.shape[r];else{let a=this.shape[r];for(;a instanceof ee;)a=a._def.innerType;t[r]=a}return new A({...this._def,shape:()=>t})}keyof(){return ut(C.objectKeys(this.shape))}}A.create=(s,e)=>new A({shape:()=>s,unknownKeys:"strip",catchall:te.create(),typeName:v.ZodObject,...k(e)});A.strictCreate=(s,e)=>new A({shape:()=>s,unknownKeys:"strict",catchall:te.create(),typeName:v.ZodObject,...k(e)});A.lazycreate=(s,e)=>new A({shape:s,unknownKeys:"strip",catchall:te.create(),typeName:v.ZodObject,...k(e)});class be extends x{_parse(e){const{ctx:t}=this._processInputParams(e),r=this._def.options;function n(a){for(const o of a)if(o.result.status==="valid")return o.result;for(const o of a)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;const i=a.map(o=>new J(o.ctx.common.issues));return f(t,{code:u.invalid_union,unionErrors:i}),_}if(t.common.async)return Promise.all(r.map(async a=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await a._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(n);{let a;const i=[];for(const l of r){const c={...t,common:{...t.common,issues:[]},parent:null},g=l._parseSync({data:t.data,path:t.path,parent:c});if(g.status==="valid")return g;g.status==="dirty"&&!a&&(a={result:g,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(a)return t.common.issues.push(...a.ctx.common.issues),a.result;const o=i.map(l=>new J(l));return f(t,{code:u.invalid_union,unionErrors:o}),_}}get options(){return this._def.options}}be.create=(s,e)=>new be({options:s,typeName:v.ZodUnion,...k(e)});function Oe(s,e){const t=K(s),r=K(e);if(s===e)return{valid:!0,data:s};if(t===h.object&&r===h.object){const n=C.objectKeys(e),a=C.objectKeys(s).filter(o=>n.indexOf(o)!==-1),i={...s,...e};for(const o of a){const l=Oe(s[o],e[o]);if(!l.valid)return{valid:!1};i[o]=l.data}return{valid:!0,data:i}}else if(t===h.array&&r===h.array){if(s.length!==e.length)return{valid:!1};const n=[];for(let a=0;a<s.length;a++){const i=s[a],o=e[a],l=Oe(i,o);if(!l.valid)return{valid:!1};n.push(l.data)}return{valid:!0,data:n}}else return t===h.date&&r===h.date&&+s==+e?{valid:!0,data:s}:{valid:!1}}class ke extends x{_parse(e){const{status:t,ctx:r}=this._processInputParams(e),n=(a,i)=>{if(Ie(a)||Ie(i))return _;const o=Oe(a.value,i.value);return o.valid?((Le(a)||Le(i))&&t.dirty(),{status:t.value,value:o.data}):(f(r,{code:u.invalid_intersection_types}),_)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([a,i])=>n(a,i)):n(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}ke.create=(s,e,t)=>new ke({left:s,right:e,typeName:v.ZodIntersection,...k(t)});class re extends x{_parse(e){const{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==h.array)return f(r,{code:u.invalid_type,expected:h.array,received:r.parsedType}),_;if(r.data.length<this._def.items.length)return f(r,{code:u.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),_;!this._def.rest&&r.data.length>this._def.items.length&&(f(r,{code:u.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...r.data].map((i,o)=>{const l=this._def.items[o]||this._def.rest;return l?l._parse(new H(r,i,r.path,o)):null}).filter(i=>!!i);return r.common.async?Promise.all(a).then(i=>$.mergeArray(t,i)):$.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new re({...this._def,rest:e})}}re.create=(s,e)=>{if(!Array.isArray(s))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new re({items:s,typeName:v.ZodTuple,rest:null,...k(e)})};class we extends x{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==h.object)return f(r,{code:u.invalid_type,expected:h.object,received:r.parsedType}),_;const n=[],a=this._def.keyType,i=this._def.valueType;for(const o in r.data)n.push({key:a._parse(new H(r,o,r.path,o)),value:i._parse(new H(r,r.data[o],r.path,o)),alwaysSet:o in r.data});return r.common.async?$.mergeObjectAsync(t,n):$.mergeObjectSync(t,n)}get element(){return this._def.valueType}static create(e,t,r){return t instanceof x?new we({keyType:e,valueType:t,typeName:v.ZodRecord,...k(r)}):new we({keyType:G.create(),valueType:e,typeName:v.ZodRecord,...k(t)})}}class We extends x{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==h.map)return f(r,{code:u.invalid_type,expected:h.map,received:r.parsedType}),_;const n=this._def.keyType,a=this._def.valueType,i=[...r.data.entries()].map(([o,l],c)=>({key:n._parse(new H(r,o,r.path,[c,"key"])),value:a._parse(new H(r,l,r.path,[c,"value"]))}));if(r.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const l of i){const c=await l.key,g=await l.value;if(c.status==="aborted"||g.status==="aborted")return _;(c.status==="dirty"||g.status==="dirty")&&t.dirty(),o.set(c.value,g.value)}return{status:t.value,value:o}})}else{const o=new Map;for(const l of i){const c=l.key,g=l.value;if(c.status==="aborted"||g.status==="aborted")return _;(c.status==="dirty"||g.status==="dirty")&&t.dirty(),o.set(c.value,g.value)}return{status:t.value,value:o}}}}We.create=(s,e,t)=>new We({valueType:e,keyType:s,typeName:v.ZodMap,...k(t)});class me extends x{_parse(e){const{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==h.set)return f(r,{code:u.invalid_type,expected:h.set,received:r.parsedType}),_;const n=this._def;n.minSize!==null&&r.data.size<n.minSize.value&&(f(r,{code:u.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),t.dirty()),n.maxSize!==null&&r.data.size>n.maxSize.value&&(f(r,{code:u.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());const a=this._def.valueType;function i(l){const c=new Set;for(const g of l){if(g.status==="aborted")return _;g.status==="dirty"&&t.dirty(),c.add(g.value)}return{status:t.value,value:c}}const o=[...r.data.values()].map((l,c)=>a._parse(new H(r,l,r.path,c)));return r.common.async?Promise.all(o).then(l=>i(l)):i(o)}min(e,t){return new me({...this._def,minSize:{value:e,message:y.toString(t)}})}max(e,t){return new me({...this._def,maxSize:{value:e,message:y.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}me.create=(s,e)=>new me({valueType:s,minSize:null,maxSize:null,typeName:v.ZodSet,...k(e)});class Xe extends x{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}Xe.create=(s,e)=>new Xe({getter:s,typeName:v.ZodLazy,...k(e)});class Ge extends x{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return f(t,{received:t.data,code:u.invalid_literal,expected:this._def.value}),_}return{status:"valid",value:e.data}}get value(){return this._def.value}}Ge.create=(s,e)=>new Ge({value:s,typeName:v.ZodLiteral,...k(e)});function ut(s,e){return new de({values:s,typeName:v.ZodEnum,...k(e)})}class de extends x{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),r=this._def.values;return f(t,{expected:C.joinValues(r),received:t.parsedType,code:u.invalid_type}),_}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),r=this._def.values;return f(t,{received:t.data,code:u.invalid_enum_value,options:r}),_}return q(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return de.create(e,{...this._def,...t})}exclude(e,t=this._def){return de.create(this.options.filter(r=>!e.includes(r)),{...this._def,...t})}}de.create=ut;class Je extends x{_parse(e){const t=C.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==h.string&&r.parsedType!==h.number){const n=C.objectValues(t);return f(r,{expected:C.joinValues(n),received:r.parsedType,code:u.invalid_type}),_}if(this._cache||(this._cache=new Set(C.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const n=C.objectValues(t);return f(r,{received:r.data,code:u.invalid_enum_value,options:n}),_}return q(e.data)}get enum(){return this._def.values}}Je.create=(s,e)=>new Je({values:s,typeName:v.ZodNativeEnum,...k(e)});class xe extends x{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==h.promise&&t.common.async===!1)return f(t,{code:u.invalid_type,expected:h.promise,received:t.parsedType}),_;const r=t.parsedType===h.promise?t.data:Promise.resolve(t.data);return q(r.then(n=>this._def.type.parseAsync(n,{path:t.path,errorMap:t.common.contextualErrorMap})))}}xe.create=(s,e)=>new xe({type:s,typeName:v.ZodPromise,...k(e)});class ue extends x{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===v.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:r}=this._processInputParams(e),n=this._def.effect||null,a={addIssue:i=>{f(r,i),i.fatal?t.abort():t.dirty()},get path(){return r.path}};if(a.addIssue=a.addIssue.bind(a),n.type==="preprocess"){const i=n.transform(r.data,a);if(r.common.async)return Promise.resolve(i).then(async o=>{if(t.value==="aborted")return _;const l=await this._def.schema._parseAsync({data:o,path:r.path,parent:r});return l.status==="aborted"?_:l.status==="dirty"||t.value==="dirty"?he(l.value):l});{if(t.value==="aborted")return _;const o=this._def.schema._parseSync({data:i,path:r.path,parent:r});return o.status==="aborted"?_:o.status==="dirty"||t.value==="dirty"?he(o.value):o}}if(n.type==="refinement"){const i=o=>{const l=n.refinement(o,a);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?_:(o.status==="dirty"&&t.dirty(),i(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>o.status==="aborted"?_:(o.status==="dirty"&&t.dirty(),i(o.value).then(()=>({status:t.value,value:o.value}))))}if(n.type==="transform")if(r.common.async===!1){const i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!oe(i))return _;const o=n.transform(i.value,a);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>oe(i)?Promise.resolve(n.transform(i.value,a)).then(o=>({status:t.value,value:o})):_);C.assertNever(n)}}ue.create=(s,e,t)=>new ue({schema:s,typeName:v.ZodEffects,effect:e,...k(t)});ue.createWithPreprocess=(s,e,t)=>new ue({schema:e,effect:{type:"preprocess",transform:s},typeName:v.ZodEffects,...k(t)});class ee extends x{_parse(e){return this._getType(e)===h.undefined?q(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}ee.create=(s,e)=>new ee({innerType:s,typeName:v.ZodOptional,...k(e)});class le extends x{_parse(e){return this._getType(e)===h.null?q(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}le.create=(s,e)=>new le({innerType:s,typeName:v.ZodNullable,...k(e)});class Ne extends x{_parse(e){const{ctx:t}=this._processInputParams(e);let r=t.data;return t.parsedType===h.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Ne.create=(s,e)=>new Ne({innerType:s,typeName:v.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...k(e)});class Ae extends x{_parse(e){const{ctx:t}=this._processInputParams(e),r={...t,common:{...t.common,issues:[]}},n=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return ve(n)?n.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new J(r.common.issues)},input:r.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new J(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}Ae.create=(s,e)=>new Ae({innerType:s,typeName:v.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...k(e)});class Ye extends x{_parse(e){if(this._getType(e)!==h.nan){const r=this._getOrReturnCtx(e);return f(r,{code:u.invalid_type,expected:h.nan,received:r.parsedType}),_}return{status:"valid",value:e.data}}}Ye.create=s=>new Ye({typeName:v.ZodNaN,...k(s)});class Bt extends x{_parse(e){const{ctx:t}=this._processInputParams(e),r=t.data;return this._def.type._parse({data:r,path:t.path,parent:t})}unwrap(){return this._def.type}}class je extends x{_parse(e){const{status:t,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?_:a.status==="dirty"?(t.dirty(),he(a.value)):this._def.out._parseAsync({data:a.value,path:r.path,parent:r})})();{const n=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return n.status==="aborted"?_:n.status==="dirty"?(t.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:r.path,parent:r})}}static create(e,t){return new je({in:e,out:t,typeName:v.ZodPipeline})}}class Ee extends x{_parse(e){const t=this._def.innerType._parse(e),r=n=>(oe(n)&&(n.value=Object.freeze(n.value)),n);return ve(t)?t.then(n=>r(n)):r(t)}unwrap(){return this._def.innerType}}Ee.create=(s,e)=>new Ee({innerType:s,typeName:v.ZodReadonly,...k(e)});var v;(function(s){s.ZodString="ZodString",s.ZodNumber="ZodNumber",s.ZodNaN="ZodNaN",s.ZodBigInt="ZodBigInt",s.ZodBoolean="ZodBoolean",s.ZodDate="ZodDate",s.ZodSymbol="ZodSymbol",s.ZodUndefined="ZodUndefined",s.ZodNull="ZodNull",s.ZodAny="ZodAny",s.ZodUnknown="ZodUnknown",s.ZodNever="ZodNever",s.ZodVoid="ZodVoid",s.ZodArray="ZodArray",s.ZodObject="ZodObject",s.ZodUnion="ZodUnion",s.ZodDiscriminatedUnion="ZodDiscriminatedUnion",s.ZodIntersection="ZodIntersection",s.ZodTuple="ZodTuple",s.ZodRecord="ZodRecord",s.ZodMap="ZodMap",s.ZodSet="ZodSet",s.ZodFunction="ZodFunction",s.ZodLazy="ZodLazy",s.ZodLiteral="ZodLiteral",s.ZodEnum="ZodEnum",s.ZodEffects="ZodEffects",s.ZodNativeEnum="ZodNativeEnum",s.ZodOptional="ZodOptional",s.ZodNullable="ZodNullable",s.ZodDefault="ZodDefault",s.ZodCatch="ZodCatch",s.ZodPromise="ZodPromise",s.ZodBranded="ZodBranded",s.ZodPipeline="ZodPipeline",s.ZodReadonly="ZodReadonly"})(v||(v={}));const E=G.create,W=ce.create;te.create;const Z=B.create,I=A.create;be.create;ke.create;re.create;const Ht=we.create,Ce=de.create;xe.create;ee.create;le.create;class lt extends Error{constructor(t){const r=`Invalid ChaosConfig:
|
|
2
|
-
${t.map(
|
|
3
|
-
`)}`;super(r);P(this,"issues");this.name="ChaosConfigError",this.issues=t}}const X=W().min(0,"Probability must be >= 0").max(1,"Probability must be <= 1"),Qe=W().int().min(1),Y={onNth:Qe.optional(),everyNth:Qe.optional(),afterN:W().int().min(0).optional()},Wt=s=>[s.onNth,s.everyNth,s.afterN].filter(e=>e!==void 0).length<=1,Q=[Wt,{message:"Only one of onNth, everyNth, or afterN may be set on a single rule"}],Xt=I({urlPattern:E().min(1,"urlPattern must not be empty"),methods:Z(E()).optional(),statusCode:W().int().min(100).max(599),probability:X,body:E().optional(),statusText:E().optional(),headers:Ht(E()).optional(),...Y}).strict().refine(...Q),Gt=I({urlPattern:E().min(1,"urlPattern must not be empty"),methods:Z(E()).optional(),delayMs:W().min(0,"delayMs must be >= 0"),probability:X,...Y}).strict().refine(...Q),Jt=I({urlPattern:E().min(1,"urlPattern must not be empty"),methods:Z(E()).optional(),probability:X,timeout:W().min(0,"timeout must be >= 0").optional(),...Y}).strict().refine(...Q),Yt=I({urlPattern:E().min(1,"urlPattern must not be empty"),methods:Z(E()).optional(),probability:X,strategy:Ce(["truncate","malformed-json","empty","wrong-type"]),...Y}).strict().refine(...Q),Qt=I({urlPattern:E().min(1,"urlPattern must not be empty"),methods:Z(E()).optional(),probability:X,...Y}).strict().refine(...Q),Kt=I({failures:Z(Xt).optional(),latencies:Z(Gt).optional(),aborts:Z(Jt).optional(),corruptions:Z(Yt).optional(),cors:Z(Qt).optional()}).strict(),es=I({selector:E().min(1,"selector must not be empty"),action:Ce(["disable","hide","remove"]),probability:X}).strict(),ts=I({assaults:Z(es).optional()}).strict(),Pe=Ce(["inbound","outbound","both"]),ss=I({urlPattern:E().min(1,"urlPattern must not be empty"),direction:Pe,probability:X,...Y}).strict().refine(...Q),rs=I({urlPattern:E().min(1,"urlPattern must not be empty"),direction:Pe,delayMs:W().min(0,"delayMs must be >= 0"),probability:X,...Y}).strict().refine(...Q),ns=I({urlPattern:E().min(1,"urlPattern must not be empty"),direction:Pe,strategy:Ce(["truncate","malformed-json","empty","wrong-type"]),probability:X,...Y}).strict().refine(...Q),as=W().int().refine(s=>s===1e3||s>=3e3&&s<=4999,{message:"code must be 1000 or in the range 3000-4999"}),is=E().refine(s=>new TextEncoder().encode(s).length<=123,{message:"reason must be <= 123 UTF-8 bytes"}),os=I({urlPattern:E().min(1,"urlPattern must not be empty"),code:as.optional(),reason:is.optional(),afterMs:W().min(0,"afterMs must be >= 0").optional(),probability:X,...Y}).strict().refine(...Q),cs=I({drops:Z(ss).optional(),delays:Z(rs).optional(),corruptions:Z(ns).optional(),closes:Z(os).optional()}).strict(),ds=I({network:Kt.optional(),ui:ts.optional(),websocket:cs.optional(),seed:W().int("Seed must be an integer").optional()}).strict();function ft(s){const e=ds.safeParse(s);if(!e.success){const t=e.error.issues.map(r=>`${r.path.join(".")}: ${r.message}`);throw new lt(t)}return e.data}function us(s){let e=s|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function ht(){return Math.random()*4294967296>>>0}function pt(s){const e=s??ht();return{random:us(e),seed:e}}class mt{constructor(e=2e3){P(this,"listeners",new Map);P(this,"log",[]);this.maxLogEntries=e}on(e,t){this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t)}off(e,t){var r;(r=this.listeners.get(e))==null||r.delete(t)}emit(e){this.log.push(e),this.log.length>this.maxLogEntries&&this.log.shift(),this.notify(this.listeners.get(e.type),e),this.notify(this.listeners.get("*"),e)}getLog(){return[...this.log]}clearLog(){this.log=[]}notify(e,t){if(e)for(const r of e)try{r(t)}catch{}}}function D(s,e){return e()<s}function V(s,e){const t=(e.get(s)??0)+1;return e.set(s,t),t}function z(s,e){return s.onNth!==void 0?e===s.onNth:s.everyNth!==void 0?e%s.everyNth===0:s.afterN!==void 0?e>s.afterN:!0}function U(s,e){return e==="*"?!0:s.includes(e)}function yt(s,e){switch(e){case"truncate":return s.slice(0,Math.max(0,Math.floor(s.length/2)));case"malformed-json":return`${s}"}`;case"empty":return"";case"wrong-type":return"<html><body>Unexpected HTML</body></html>"}}function Ze(s){return typeof Request<"u"&&s instanceof Request}function ls(s){return Ze(s)?s.url:s.toString()}function fs(s,e){return e!=null&&e.method?e.method.toUpperCase():Ze(s)?s.method.toUpperCase():"GET"}function hs(s,e){if(e!=null&&e.signal)return e.signal;if(Ze(s))return s.signal}function ps(){if(typeof DOMException<"u")return new DOMException("The user aborted a request.","AbortError");const s=new Error("The user aborted a request.");return s.name="AbortError",s}function ms(s,e){if(!e)return s;const t=new AbortController,r=o=>{i(),t.signal.aborted||t.abort(o.reason)},n=()=>r(s),a=()=>r(e),i=()=>{s.removeEventListener("abort",n),e.removeEventListener("abort",a)};return s.aborted?(r(s),t.signal):e.aborted?(r(e),t.signal):(s.addEventListener("abort",n,{once:!0}),e.addEventListener("abort",a,{once:!0}),t.signal)}function ys(s,e){return e?{...s??{},signal:e}:s}function Ke(s,e,t,r,n){s==null||s.emit({type:"network:abort",timestamp:Date.now(),applied:n,detail:{url:t,method:r,timeoutMs:e.timeout}})}function ye(s,e,t,r,n){s==null||s.emit({type:"network:corruption",timestamp:Date.now(),applied:n,detail:{url:t,method:r,strategy:e.strategy}})}function gs(s,e,t,r,n=new Map){return async(a,i)=>{const o=ls(a),l=fs(a,i),c=hs(a,i);if(e.cors){for(const d of e.cors)if(U(o,d.urlPattern)&&(!d.methods||d.methods.includes(l))){const b=V(d,n);if(!z(d,b))continue;const w=D(d.probability,t);if(r==null||r.emit({type:"network:cors",timestamp:Date.now(),applied:w,detail:{url:o,method:l}}),w){console.debug(`[chaos-maker] CORS block: ${l} ${o}`);const S=new TypeError("Failed to fetch");throw S.stack="",S}}}let g=null,O,N,M=!1;const R=d=>{!g||M||(M=!0,N&&(clearTimeout(N),N=void 0),Ke(r,g,o,l,d))};if(e.aborts){for(const d of e.aborts)if(U(o,d.urlPattern)&&(!d.methods||d.methods.includes(l))){const b=V(d,n);if(!z(d,b))continue;if(!D(d.probability,t)){Ke(r,d,o,l,!1);continue}console.warn(`CHAOS: Aborting ${l} ${o} after ${d.timeout||0}ms`),g=d;const S=new AbortController;O=ms(S.signal,c);const T=()=>{M||(R(!0),S.abort(ps()))};d.timeout?N=setTimeout(T,d.timeout):T();break}}if(g)try{const d=await s(a,ys(i,O));return R(!1),d}catch(d){throw R(!1),d}if(e.failures){for(const d of e.failures)if(U(o,d.urlPattern)&&(!d.methods||d.methods.includes(l))){const b=V(d,n);if(!z(d,b))continue;const w=D(d.probability,t);if(r==null||r.emit({type:"network:failure",timestamp:Date.now(),applied:w,detail:{url:o,method:l,statusCode:d.statusCode}}),w){console.warn(`CHAOS: Forcing ${d.statusCode} for ${l} ${o}`);const S=d.body??JSON.stringify({error:"Chaos Maker Attack!"}),T=d.headers??{};return new Response(S,{status:d.statusCode,statusText:d.statusText??"Service Unavailable (Chaos)",headers:T})}}}if(e.latencies){for(const d of e.latencies)if(U(o,d.urlPattern)&&(!d.methods||d.methods.includes(l))){const b=V(d,n);if(!z(d,b))continue;const w=D(d.probability,t);r==null||r.emit({type:"network:latency",timestamp:Date.now(),applied:w,detail:{url:o,method:l,delayMs:d.delayMs}}),w&&(console.warn(`CHAOS: Adding ${d.delayMs}ms latency to ${l} ${o}`),await new Promise(S=>setTimeout(S,d.delayMs)))}}let m=null;if(e.corruptions){for(const d of e.corruptions)if(U(o,d.urlPattern)&&(!d.methods||d.methods.includes(l))){const b=V(d,n);if(!z(d,b))continue;if(!D(d.probability,t)){ye(r,d,o,l,!1);continue}m=d;break}}let p;try{p=await s(a,i)}catch(d){throw m&&ye(r,m,o,l,!1),d}if(!m)return p;try{console.warn(`CHAOS: Corrupting response for ${l} ${o} with strategy: ${m.strategy}`);const d=await p.text(),b=yt(d,m.strategy);return ye(r,m,o,l,!0),new Response(b,{status:p.status,statusText:p.statusText,headers:p.headers})}catch(d){throw ye(r,m,o,l,!1),d}}}function et(s,e,t,r,n){s==null||s.emit({type:"network:abort",timestamp:Date.now(),applied:n,detail:{url:t,method:r,timeoutMs:e.timeout}})}function tt(s,e,t,r,n){s==null||s.emit({type:"network:corruption",timestamp:Date.now(),applied:n,detail:{url:t,method:r,strategy:e.strategy}})}function vs(s,e,t,r,n=new Map){return function(a){const i=this._chaos_url,o=this._chaos_method;if(e.cors){for(const c of e.cors)if(U(i,c.urlPattern)&&(!c.methods||c.methods.includes(o))){const g=V(c,n);if(!z(c,g))continue;const O=D(c.probability,t);if(r==null||r.emit({type:"network:cors",timestamp:Date.now(),applied:O,detail:{url:i,method:o}}),O){console.debug(`[chaos-maker] CORS block: ${o} ${i}`),Object.defineProperty(this,"status",{value:0}),Object.defineProperty(this,"statusText",{value:""}),this.dispatchEvent(new Event("error")),this.dispatchEvent(new Event("loadend"));return}}}if(e.aborts){for(const c of e.aborts)if(U(i,c.urlPattern)&&(!c.methods||c.methods.includes(o))){const g=V(c,n);if(!z(c,g))continue;if(!D(c.probability,t)){et(r,c,i,o,!1);continue}console.warn(`CHAOS: Aborting ${o} ${i} after ${c.timeout||0}ms`);let N=!1,M;const R=()=>{M&&(clearTimeout(M),M=void 0),typeof this.removeEventListener=="function"&&this.removeEventListener("loadend",p)},m=b=>{N||(N=!0,R(),et(r,c,i,o,b))},p=()=>{m(!1)},d=()=>{N||(m(!0),this.abort())};typeof this.addEventListener=="function"&&this.addEventListener("loadend",p);try{s.call(this,a)}catch(b){throw m(!1),b}if(N)return;c.timeout?M=setTimeout(d,c.timeout):d();return}}if(e.failures){for(const c of e.failures)if(U(i,c.urlPattern)&&(!c.methods||c.methods.includes(o))){const g=V(c,n);if(!z(c,g))continue;const O=D(c.probability,t);if(r==null||r.emit({type:"network:failure",timestamp:Date.now(),applied:O,detail:{url:i,method:o,statusCode:c.statusCode}}),O){console.warn(`CHAOS: Forcing ${c.statusCode} for ${o} ${i}`),Object.defineProperty(this,"status",{value:c.statusCode}),Object.defineProperty(this,"statusText",{value:c.statusText??"Service Unavailable (Chaos)"});const N=c.body??JSON.stringify({error:"Chaos Maker Attack!"});Object.defineProperty(this,"responseText",{value:N,configurable:!0});const M=c.headers??{};Object.defineProperty(this,"getResponseHeader",{value:R=>{const m=Object.keys(M).find(p=>p.toLowerCase()===R.toLowerCase());return m?M[m]:null},configurable:!0}),Object.defineProperty(this,"getAllResponseHeaders",{value:()=>Object.entries(M).map(([R,m])=>`${R}: ${m}`).join(`\r
|
|
4
|
-
`),configurable:!0}),this.dispatchEvent(new Event("error")),this.dispatchEvent(new Event("load")),this.dispatchEvent(new Event("loadend"));return}}}let l=null;if(e.corruptions){for(const c of e.corruptions)if(U(i,c.urlPattern)&&(!c.methods||c.methods.includes(o))){const g=V(c,n);if(!z(c,g))continue;if(!D(c.probability,t)){tt(r,c,i,o,!1);continue}l=c;break}}if(l){let c=!1,g=null;const O=()=>{typeof this.removeEventListener=="function"&&(this.removeEventListener("error",R),this.removeEventListener("abort",R),this.removeEventListener("loadend",m))},N=p=>{c||(c=!0,tt(r,l,i,o,p),O())},M=()=>{if(g!==null)return g;delete this.responseText;try{const p=this.responseText;return typeof p!="string"?(Object.defineProperty(this,"responseText",{value:p,configurable:!0}),N(!1),p):(g=yt(p,l.strategy),Object.defineProperty(this,"responseText",{value:g,configurable:!0}),N(!0),g)}catch(p){throw N(!1),p}},R=()=>{N(!1)},m=()=>{if(!c)try{M()}catch{}};typeof this.addEventListener=="function"&&(this.addEventListener("error",R),this.addEventListener("abort",R),this.addEventListener("loadend",m)),Object.defineProperty(this,"responseText",{get(){return M()},configurable:!0})}if(e.latencies){for(const c of e.latencies)if(U(i,c.urlPattern)&&(!c.methods||c.methods.includes(o))){const g=V(c,n);if(!z(c,g))continue;const O=D(c.probability,t);if(r==null||r.emit({type:"network:latency",timestamp:Date.now(),applied:O,detail:{url:i,method:o,delayMs:c.delayMs}}),O){console.warn(`CHAOS: Adding ${c.delayMs}ms latency to ${o} ${i}`),setTimeout(()=>{s.call(this,a)},c.delayMs);return}}}s.call(this,a)}}function _s(s){return function(e,t){this._chaos_url=t.toString(),this._chaos_method=e.toUpperCase(),s.call(this,e,t)}}function Re(s,e,t,r){const n=D(e.probability,t);if(r==null||r.emit({type:"ui:assault",timestamp:Date.now(),applied:n,detail:{selector:e.selector,action:e.action}}),!!n){console.warn(`CHAOS: Applying action '${e.action}' to element:`,s);try{switch(e.action){case"disable":"disabled"in s&&(s.disabled=!0);break;case"hide":s.style.display="none";break;case"remove":s.remove();break}}catch(a){console.error("Chaos Maker failed to assault element:",a,s)}}}function bs(s,e,t,r){if(s.nodeType!==Node.ELEMENT_NODE||!e.assaults)return;const n=s;for(const a of e.assaults)try{n.matches(a.selector)&&Re(n,a,t,r),n.querySelectorAll(a.selector).forEach(i=>{Re(i,a,t,r)})}catch(i){console.error(`Chaos Maker: Invalid selector '${a.selector}'`,i)}}function ks(s,e,t){if(s.assaults){console.log("CHAOS: Running initial DOM scan for existing elements...");for(const n of s.assaults)try{document.querySelectorAll(n.selector).forEach(a=>{Re(a,n,e,t)})}catch(a){console.error(`Chaos Maker: Invalid selector in initial scan '${n.selector}'`,a)}}return new MutationObserver(n=>{for(const a of n)a.type==="childList"&&a.addedNodes.forEach(i=>bs(i,s,e,t))})}const st=Symbol.for("chaos-maker.websocket.intercepted");function ws(s,e){return s==="both"?!0:s===e}function rt(s){return typeof s=="string"?"text":"binary"}function nt(s,e){switch(e){case"truncate":return s.slice(0,Math.max(0,Math.floor(s.length/2)));case"malformed-json":return`${s}"}`;case"empty":return"";case"wrong-type":return"<html><body>Unexpected HTML</body></html>"}}function at(s,e){if(e==="malformed-json"||e==="wrong-type")return null;if(e==="empty")return typeof Blob<"u"&&s instanceof Blob?new Blob([]):s instanceof ArrayBuffer?new ArrayBuffer(0):new Uint8Array(0);if(typeof Blob<"u"&&s instanceof Blob)return s.slice(0,Math.max(0,Math.floor(s.size/2)));if(s instanceof ArrayBuffer)return s.slice(0,Math.max(0,Math.floor(s.byteLength/2)));const t=s,r=Math.max(0,Math.floor(t.byteLength/2));return new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+r))}function ne(s,e,t,r,n){if(!s)return null;for(const a of s){if(!U(e,a.urlPattern)||!ws(a.direction,t))continue;const i=V(a,n);if(z(a,i)&&D(a.probability,r))return a}return null}function ge(s,e,t,r,n){s.emit({type:"websocket:drop",timestamp:Date.now(),applied:!0,detail:{url:e,direction:t,payloadType:r,...n?{reason:n}:{}}})}function it(s,e,t,r,n){s.emit({type:"websocket:delay",timestamp:Date.now(),applied:!0,detail:{url:e,direction:t,payloadType:r,delayMs:n}})}function ae(s,e,t,r,n,a,i){s.emit({type:"websocket:corrupt",timestamp:Date.now(),applied:a,detail:{url:e,direction:t,payloadType:r,strategy:n,...i?{reason:i}:{}}})}function xs(s,e,t,r){s.emit({type:"websocket:close",timestamp:Date.now(),applied:!0,detail:{url:e,closeCode:t,closeReason:r}})}function Cs(s,e,t,r,n){const a=new Map;let i=!0;const o=(m,p)=>{let d=a.get(m);d||(d=new Set,a.set(m,d)),d.add(p)},l=(m,p)=>{var d;(d=a.get(m))==null||d.delete(p)},c=(m,p)=>{const d=a.get(m);if(d){for(const b of d)clearTimeout(b.handle),b.kind==="delay"&&ge(t,b.url,b.direction,b.payloadType,p);a.delete(m)}},g=(m,p,d)=>{const b=new MessageEvent("message",{data:d,origin:p.origin,lastEventId:p.lastEventId,source:p.source,ports:Array.from(p.ports??[])});b[st]=!0,m.dispatchEvent(b)},O=(m,p,d,b)=>{if(!i)return{handled:!1,data:d};const w="outbound",S=rt(d);if(ne(e.drops,p,w,r,n))return ge(t,p,w,S),{handled:!0,data:d};let T=d;const j=ne(e.corruptions,p,w,r,n);if(j)if(S==="text")T=nt(T,j.strategy),ae(t,p,w,S,j.strategy,!0);else{const F=at(T,j.strategy);F===null?ae(t,p,w,S,j.strategy,!1,"incompatible-payload-type"):(T=F,ae(t,p,w,S,j.strategy,!0))}const L=ne(e.delays,p,w,r,n);if(L){it(t,p,w,S,L.delayMs);const F={kind:"delay",handle:setTimeout(()=>{l(m,F);try{b(T)}catch{}},L.delayMs),url:p,direction:w,payloadType:S};return o(m,F),{handled:!0,data:T}}return{handled:!1,data:T}},N=(m,p)=>{m.addEventListener("message",d=>{const b=d;if(b[st]||!i)return;const w="inbound",S=rt(b.data);if(ne(e.drops,p,w,r,n)){b.stopImmediatePropagation(),ge(t,p,w,S);return}let T=b.data,j=!1;const L=ne(e.corruptions,p,w,r,n);if(L)if(S==="text")T=nt(T,L.strategy),j=!0,ae(t,p,w,S,L.strategy,!0);else{const fe=at(T,L.strategy);fe===null?ae(t,p,w,S,L.strategy,!1,"incompatible-payload-type"):(T=fe,j=!0,ae(t,p,w,S,L.strategy,!0))}const F=ne(e.delays,p,w,r,n);if(F){b.stopImmediatePropagation(),it(t,p,w,S,F.delayMs);const fe={kind:"delay",handle:setTimeout(()=>{l(m,fe),g(m,b,T)},F.delayMs),url:p,direction:w,payloadType:S};o(m,fe);return}j&&(b.stopImmediatePropagation(),g(m,b,T))})},M=(m,p)=>{if(e.closes)for(const d of e.closes){if(!U(p,d.urlPattern))continue;const b=V(d,n);if(!z(d,b)||!D(d.probability,r))continue;const w=d.code??1e3,S=d.reason??"Chaos Maker close",T=d.afterMs??0,j=()=>{if(i){c(m,"close-interrupt"),xs(t,p,w,S);try{m.close(w,S)}catch{try{m.close()}catch{}}}};if(T<=0)m.readyState===m.OPEN?j():m.addEventListener("open",j,{once:!0});else{const L=()=>{const F={kind:"close",handle:setTimeout(j,T)};o(m,F)};m.readyState===m.OPEN?L():m.addEventListener("open",L,{once:!0})}return}};function R(m,p){const d=new s(m,p),b=typeof m=="string"?m:m.toString(),w=d.send.bind(d);return d.send=function(T){const j=O(d,b,T,w);j.handled||w(j.data)},N(d,b),M(d,b),d}Object.defineProperty(R,"prototype",{value:s.prototype,writable:!1});for(const m of["CONNECTING","OPEN","CLOSING","CLOSED"])R[m]=s[m];return{Wrapped:R,uninstall(){i=!1;for(const[,m]of a)for(const p of m)clearTimeout(p.handle),p.kind==="delay"&&ge(t,p.url,p.direction,p.payloadType,"stop-during-delay");a.clear()}}}class Me{constructor(e){P(this,"config");P(this,"emitter");P(this,"random");P(this,"seed");P(this,"running",!1);P(this,"originalFetch");P(this,"originalXhrSend");P(this,"originalXhrOpen");P(this,"domObserver");P(this,"originalWebSocket");P(this,"webSocketHandle");P(this,"requestCounters",new Map);this.config=ft(e),this.emitter=new mt;const t=pt(e.seed);this.random=t.random,this.seed=t.seed,console.log(`Chaos Maker initialized (seed: ${this.seed})`)}getSeed(){return this.seed}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}getLog(){return this.emitter.getLog()}clearLog(){this.emitter.clearLog()}start(){if(this.running){console.warn("Chaos Maker is already running. Call stop() first.");return}this.requestCounters.clear(),this.running=!0,console.log("🛠️ Chaos Maker ENGAGED 🛠️"),this.config.network&&(this.originalFetch=window.fetch,window.fetch=gs(this.originalFetch.bind(window),this.config.network,this.random,this.emitter,this.requestCounters),this.originalXhrOpen=window.XMLHttpRequest.prototype.open,window.XMLHttpRequest.prototype.open=_s(this.originalXhrOpen),this.originalXhrSend=window.XMLHttpRequest.prototype.send,window.XMLHttpRequest.prototype.send=vs(this.originalXhrSend,this.config.network,this.random,this.emitter,this.requestCounters)),this.config.ui&&(this.domObserver=ks(this.config.ui,this.random,this.emitter),this.domObserver.observe(document.body,{childList:!0,subtree:!0}),console.log("UI Assailant is now observing the DOM.")),this.config.websocket&&typeof window<"u"&&typeof window.WebSocket<"u"&&(this.originalWebSocket=window.WebSocket,this.webSocketHandle=Cs(this.originalWebSocket,this.config.websocket,this.emitter,this.random,this.requestCounters),window.WebSocket=this.webSocketHandle.Wrapped)}stop(){this.running=!1,console.log("🛑 Chaos Maker DISENGAGED 🛑"),this.originalFetch&&(window.fetch=this.originalFetch),this.originalXhrSend&&(window.XMLHttpRequest.prototype.send=this.originalXhrSend),this.originalXhrOpen&&(window.XMLHttpRequest.prototype.open=this.originalXhrOpen),this.domObserver&&(this.domObserver.disconnect(),console.log("UI Assailant has stopped observing.")),this.originalWebSocket&&(window.WebSocket=this.originalWebSocket,this.originalWebSocket=void 0),this.webSocketHandle&&(this.webSocketHandle.uninstall(),this.webSocketHandle=void 0)}}function ot(s){return JSON.parse(JSON.stringify(s))}class Ss{constructor(e){P(this,"config");this.config=e?ot(e):{network:{},ui:{},websocket:{}},this.config.network||(this.config.network={}),this.config.ui||(this.config.ui={}),this.config.websocket||(this.config.websocket={})}failRequests(e,t,r,n,a,i,o){return this.config.network.failures||(this.config.network.failures=[]),this.config.network.failures.push({urlPattern:e,statusCode:t,probability:r,methods:n,body:a,headers:i,...o}),this}addLatency(e,t,r,n,a){return this.config.network.latencies||(this.config.network.latencies=[]),this.config.network.latencies.push({urlPattern:e,delayMs:t,probability:r,methods:n,...a}),this}abortRequests(e,t,r,n,a){return this.config.network.aborts||(this.config.network.aborts=[]),this.config.network.aborts.push({urlPattern:e,probability:t,timeout:r,methods:n,...a}),this}corruptResponses(e,t,r,n,a){return this.config.network.corruptions||(this.config.network.corruptions=[]),this.config.network.corruptions.push({urlPattern:e,strategy:t,probability:r,methods:n,...a}),this}simulateCors(e,t,r,n){return this.config.network.cors||(this.config.network.cors=[]),this.config.network.cors.push({urlPattern:e,probability:t,methods:r,...n}),this}failRequestsOnNth(e,t,r,n){return this.failRequests(e,t,1,n,void 0,void 0,{onNth:r})}addLatencyOnNth(e,t,r,n){return this.addLatency(e,t,1,n,{onNth:r})}abortRequestsOnNth(e,t,r,n){return this.abortRequests(e,1,r,n,{onNth:t})}corruptResponsesOnNth(e,t,r,n){return this.corruptResponses(e,t,1,n,{onNth:r})}simulateCorsOnNth(e,t,r){return this.simulateCors(e,1,r,{onNth:t})}failRequestsEveryNth(e,t,r,n){return this.failRequests(e,t,1,n,void 0,void 0,{everyNth:r})}addLatencyEveryNth(e,t,r,n){return this.addLatency(e,t,1,n,{everyNth:r})}abortRequestsEveryNth(e,t,r,n){return this.abortRequests(e,1,r,n,{everyNth:t})}corruptResponsesEveryNth(e,t,r,n){return this.corruptResponses(e,t,1,n,{everyNth:r})}simulateCorsEveryNth(e,t,r){return this.simulateCors(e,1,r,{everyNth:t})}failRequestsAfterN(e,t,r,n){return this.failRequests(e,t,1,n,void 0,void 0,{afterN:r})}addLatencyAfterN(e,t,r,n){return this.addLatency(e,t,1,n,{afterN:r})}abortRequestsAfterN(e,t,r,n){return this.abortRequests(e,1,r,n,{afterN:t})}corruptResponsesAfterN(e,t,r,n){return this.corruptResponses(e,t,1,n,{afterN:r})}simulateCorsAfterN(e,t,r){return this.simulateCors(e,1,r,{afterN:t})}assaultUi(e,t,r){return this.config.ui.assaults||(this.config.ui.assaults=[]),this.config.ui.assaults.push({selector:e,action:t,probability:r}),this}dropMessages(e,t,r,n){return this.config.websocket.drops||(this.config.websocket.drops=[]),this.config.websocket.drops.push({urlPattern:e,direction:t,probability:r,...n}),this}delayMessages(e,t,r,n,a){return this.config.websocket.delays||(this.config.websocket.delays=[]),this.config.websocket.delays.push({urlPattern:e,direction:t,delayMs:r,probability:n,...a}),this}corruptMessages(e,t,r,n,a){return this.config.websocket.corruptions||(this.config.websocket.corruptions=[]),this.config.websocket.corruptions.push({urlPattern:e,direction:t,strategy:r,probability:n,...a}),this}closeConnection(e,t,r,n){return this.config.websocket.closes||(this.config.websocket.closes=[]),this.config.websocket.closes.push({urlPattern:e,probability:t,...r,...n}),this}dropMessagesOnNth(e,t,r){return this.dropMessages(e,t,1,{onNth:r})}delayMessagesOnNth(e,t,r,n){return this.delayMessages(e,t,r,1,{onNth:n})}withSeed(e){return this.config.seed=e,this}build(){return ot(this.config)}}const se="*";function gt(s){if(s&&typeof s=="object"&&!Object.isFrozen(s)){Object.freeze(s);for(const e of Object.values(s))gt(e)}return s}const Ts=gt({unstableApi:{network:{failures:[{urlPattern:"/api/",statusCode:500,probability:.1}],latencies:[{urlPattern:"/api/",delayMs:1e3,probability:.2}]}},slowNetwork:{network:{latencies:[{urlPattern:se,delayMs:2e3,probability:1}]}},offlineMode:{network:{cors:[{urlPattern:se,probability:1}]}},flakyConnection:{network:{aborts:[{urlPattern:se,probability:.05}],latencies:[{urlPattern:se,delayMs:3e3,probability:.1}]}},degradedUi:{ui:{assaults:[{selector:"button",action:"disable",probability:.2},{selector:"a",action:"hide",probability:.1}]}},unreliableWebSocket:{websocket:{drops:[{urlPattern:se,direction:"both",probability:.1}],delays:[{urlPattern:se,direction:"inbound",delayMs:500,probability:1}],corruptions:[{urlPattern:se,direction:"inbound",strategy:"truncate",probability:.05}]}}});if(typeof window<"u"){window.ChaosMaker=Me;const s={instance:null,start:e=>{try{return s.instance&&s.instance.stop(),s.instance=new Me(e),s.instance.start(),{success:!0,message:"Chaos started"}}catch(t){return console.error("Chaos Utils Error:",t),{success:!1,message:t.message}}},stop:()=>s.instance?(s.instance.stop(),s.instance=null,{success:!0,message:"Chaos stopped"}):{success:!1,message:"No chaos instance to stop"},getLog:()=>s.instance?s.instance.getLog():[],getSeed:()=>s.instance?s.instance.getSeed():null};if(window.chaosUtils=s,window.__CHAOS_CONFIG__)try{const e=window.__CHAOS_CONFIG__;s.start(e),delete window.__CHAOS_CONFIG__}catch(e){console.error("ChaosMaker auto-start failed:",e)}}exports.ChaosConfigBuilder=Ss;exports.ChaosConfigError=lt;exports.ChaosEventEmitter=mt;exports.ChaosMaker=Me;exports.createPrng=pt;exports.generateSeed=ht;exports.presets=Ts;exports.validateConfig=ft;
|
|
1
|
+
"use strict";var Ft=Object.defineProperty;var Ut=(r,e,t)=>e in r?Ft(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var R=(r,e,t)=>Ut(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var A;(function(r){r.assertEqual=s=>{};function e(s){}r.assertIs=e;function t(s){throw new Error}r.assertNever=t,r.arrayToEnum=s=>{const a={};for(const o of s)a[o]=o;return a},r.getValidEnumValues=s=>{const a=r.objectKeys(s).filter(i=>typeof s[s[i]]!="number"),o={};for(const i of a)o[i]=s[i];return r.objectValues(o)},r.objectValues=s=>r.objectKeys(s).map(function(a){return s[a]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const a=[];for(const o in s)Object.prototype.hasOwnProperty.call(s,o)&&a.push(o);return a},r.find=(s,a)=>{for(const o of s)if(a(o))return o},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,a=" | "){return s.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}r.joinValues=n,r.jsonStringifyReplacer=(s,a)=>typeof a=="bigint"?a.toString():a})(A||(A={}));var at;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(at||(at={}));const g=A.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),te=r=>{switch(typeof r){case"undefined":return g.undefined;case"string":return g.string;case"number":return Number.isNaN(r)?g.nan:g.number;case"boolean":return g.boolean;case"function":return g.function;case"bigint":return g.bigint;case"symbol":return g.symbol;case"object":return Array.isArray(r)?g.array:r===null?g.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?g.promise:typeof Map<"u"&&r instanceof Map?g.map:typeof Set<"u"&&r instanceof Set?g.set:typeof Date<"u"&&r instanceof Date?g.date:g.object;default:return g.unknown}},d=A.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class ee extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(a){return a.message},n={_errors:[]},s=a=>{for(const o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(s);else if(o.code==="invalid_return_type")s(o.returnTypeError);else if(o.code==="invalid_arguments")s(o.argumentsError);else if(o.path.length===0)n._errors.push(t(o));else{let i=n,u=0;for(;u<o.path.length;){const y=o.path[u];u===o.path.length-1?(i[y]=i[y]||{_errors:[]},i[y]._errors.push(t(o))):i[y]=i[y]||{_errors:[]},i=i[y],u++}}};return s(this),n}static assert(e){if(!(e instanceof ee))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,A.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const s of this.issues)if(s.path.length>0){const a=s.path[0];t[a]=t[a]||[],t[a].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}ee.create=r=>new ee(r);const Ue=(r,e)=>{let t;switch(r.code){case d.invalid_type:r.received===g.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case d.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,A.jsonStringifyReplacer)}`;break;case d.unrecognized_keys:t=`Unrecognized key(s) in object: ${A.joinValues(r.keys,", ")}`;break;case d.invalid_union:t="Invalid input";break;case d.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${A.joinValues(r.options)}`;break;case d.invalid_enum_value:t=`Invalid enum value. Expected ${A.joinValues(r.options)}, received '${r.received}'`;break;case d.invalid_arguments:t="Invalid function arguments";break;case d.invalid_return_type:t="Invalid function return type";break;case d.invalid_date:t="Invalid date";break;case d.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:A.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case d.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case d.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case d.custom:t="Invalid input";break;case d.invalid_intersection_types:t="Intersection results could not be merged";break;case d.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case d.not_finite:t="Number must be finite";break;default:t=e.defaultError,A.assertNever(r)}return{message:t}};let Wt=Ue;function Bt(){return Wt}const Ht=r=>{const{data:e,path:t,errorMaps:n,issueData:s}=r,a=[...t,...s.path||[]],o={...s,path:a};if(s.message!==void 0)return{...s,path:a,message:s.message};let i="";const u=n.filter(y=>!!y).slice().reverse();for(const y of u)i=y(o,{data:e,defaultError:i}).message;return{...s,path:a,message:i}};function p(r,e){const t=Bt(),n=Ht({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===Ue?void 0:Ue].filter(s=>!!s)});r.common.issues.push(n)}class D{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const s of t){if(s.status==="aborted")return w;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const s of t){const a=await s.key,o=await s.value;n.push({key:a,value:o})}return D.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const s of t){const{key:a,value:o}=s;if(a.status==="aborted"||o.status==="aborted")return w;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||s.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}}const w=Object.freeze({status:"aborted"}),_e=r=>({status:"dirty",value:r}),W=r=>({status:"valid",value:r}),it=r=>r.status==="aborted",ot=r=>r.status==="dirty",fe=r=>r.status==="valid",Re=r=>typeof Promise<"u"&&r instanceof Promise;var v;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(v||(v={}));class Q{constructor(e,t,n,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const ct=(r,e)=>{if(fe(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new ee(r.common.issues);return this._error=t,this._error}}};function T(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:s}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(o,i)=>{const{message:u}=r;return o.code==="invalid_enum_value"?{message:u??i.defaultError}:typeof i.data>"u"?{message:u??n??i.defaultError}:o.code!=="invalid_type"?{message:i.defaultError}:{message:u??t??i.defaultError}},description:s}}class E{get description(){return this._def.description}_getType(e){return te(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:te(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new D,ctx:{common:e.parent.common,data:e.data,parsedType:te(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(Re(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:(t==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:te(e)},s=this._parseSync({data:e,path:n.path,parent:n});return ct(n,s)}"~validate"(e){var n,s;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:te(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:t});return fe(a)?{value:a.value}:{issues:t.common.issues}}catch(a){(s=(n=a==null?void 0:a.message)==null?void 0:n.toLowerCase())!=null&&s.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(a=>fe(a)?{value:a.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:te(e)},s=this._parse({data:e,path:n.path,parent:n}),a=await(Re(s)?s:Promise.resolve(s));return ct(n,a)}refine(e,t){const n=s=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(s):t;return this._refinement((s,a)=>{const o=e(s),i=()=>a.addIssue({code:d.custom,...n(s)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(i(),!1)):o?!0:(i(),!1)})}refinement(e,t){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof t=="function"?t(n,s):t),!1))}_refinement(e){return new me({schema:this,typeName:k.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return re.create(this,this._def)}nullable(){return ye.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return X.create(this)}promise(){return Ie.create(this,this._def)}or(e){return Le.create([this,e],this._def)}and(e){return Pe.create(this,e,this._def)}transform(e){return new me({...T(this._def),schema:this,typeName:k.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new Be({...T(this._def),innerType:this,defaultValue:t,typeName:k.ZodDefault})}brand(){return new yr({typeName:k.ZodBranded,type:this,...T(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new He({...T(this._def),innerType:this,catchValue:t,typeName:k.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Ke.create(this,e)}readonly(){return Ge.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Gt=/^c[^\s-]{8,}$/i,Xt=/^[0-9a-z]+$/,Qt=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Jt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Yt=/^[a-z0-9_-]{21}$/i,Kt=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,er=/^[-+]?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)?)??$/,tr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,rr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let ze;const nr=/^(?:(?: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])$/,sr=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,ar=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ir=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,or=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,cr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Mt="((\\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])))",ur=new RegExp(`^${Mt}$`);function Lt(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);const t=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function lr(r){return new RegExp(`^${Lt(r)}$`)}function dr(r){let e=`${Mt}T${Lt(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function fr(r,e){return!!((e==="v4"||!e)&&nr.test(r)||(e==="v6"||!e)&&ar.test(r))}function hr(r,e){if(!Kt.test(r))return!1;try{const[t]=r.split(".");if(!t)return!1;const n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&(s==null?void 0:s.typ)!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function pr(r,e){return!!((e==="v4"||!e)&&sr.test(r)||(e==="v6"||!e)&&ir.test(r))}class K extends E{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==g.string){const a=this._getOrReturnCtx(e);return p(a,{code:d.invalid_type,expected:g.string,received:a.parsedType}),w}const n=new D;let s;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(s=this._getOrReturnCtx(e,s),p(s,{code:d.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="max")e.data.length>a.value&&(s=this._getOrReturnCtx(e,s),p(s,{code:d.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){const o=e.data.length>a.value,i=e.data.length<a.value;(o||i)&&(s=this._getOrReturnCtx(e,s),o?p(s,{code:d.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):i&&p(s,{code:d.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),n.dirty())}else if(a.kind==="email")tr.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"email",code:d.invalid_string,message:a.message}),n.dirty());else if(a.kind==="emoji")ze||(ze=new RegExp(rr,"u")),ze.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"emoji",code:d.invalid_string,message:a.message}),n.dirty());else if(a.kind==="uuid")Jt.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"uuid",code:d.invalid_string,message:a.message}),n.dirty());else if(a.kind==="nanoid")Yt.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"nanoid",code:d.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid")Gt.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"cuid",code:d.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid2")Xt.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"cuid2",code:d.invalid_string,message:a.message}),n.dirty());else if(a.kind==="ulid")Qt.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"ulid",code:d.invalid_string,message:a.message}),n.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),p(s,{validation:"url",code:d.invalid_string,message:a.message}),n.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"regex",code:d.invalid_string,message:a.message}),n.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(s=this._getOrReturnCtx(e,s),p(s,{code:d.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),n.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(s=this._getOrReturnCtx(e,s),p(s,{code:d.invalid_string,validation:{startsWith:a.value},message:a.message}),n.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(s=this._getOrReturnCtx(e,s),p(s,{code:d.invalid_string,validation:{endsWith:a.value},message:a.message}),n.dirty()):a.kind==="datetime"?dr(a).test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{code:d.invalid_string,validation:"datetime",message:a.message}),n.dirty()):a.kind==="date"?ur.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{code:d.invalid_string,validation:"date",message:a.message}),n.dirty()):a.kind==="time"?lr(a).test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{code:d.invalid_string,validation:"time",message:a.message}),n.dirty()):a.kind==="duration"?er.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"duration",code:d.invalid_string,message:a.message}),n.dirty()):a.kind==="ip"?fr(e.data,a.version)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"ip",code:d.invalid_string,message:a.message}),n.dirty()):a.kind==="jwt"?hr(e.data,a.alg)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"jwt",code:d.invalid_string,message:a.message}),n.dirty()):a.kind==="cidr"?pr(e.data,a.version)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"cidr",code:d.invalid_string,message:a.message}),n.dirty()):a.kind==="base64"?or.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"base64",code:d.invalid_string,message:a.message}),n.dirty()):a.kind==="base64url"?cr.test(e.data)||(s=this._getOrReturnCtx(e,s),p(s,{validation:"base64url",code:d.invalid_string,message:a.message}),n.dirty()):A.assertNever(a);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(s=>e.test(s),{validation:t,code:d.invalid_string,...v.errToObj(n)})}_addCheck(e){return new K({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...v.errToObj(e)})}url(e){return this._addCheck({kind:"url",...v.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...v.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...v.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...v.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...v.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...v.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...v.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...v.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...v.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...v.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...v.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...v.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...v.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...v.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...v.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...v.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...v.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...v.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...v.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...v.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...v.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...v.errToObj(t)})}nonempty(e){return this.min(1,v.errToObj(e))}trim(){return new K({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new K({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new K({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}K.create=r=>new K({checks:[],typeName:k.ZodString,coerce:(r==null?void 0:r.coerce)??!1,...T(r)});function mr(r,e){const t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=t>n?t:n,a=Number.parseInt(r.toFixed(s).replace(".","")),o=Number.parseInt(e.toFixed(s).replace(".",""));return a%o/10**s}class he extends E{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==g.number){const a=this._getOrReturnCtx(e);return p(a,{code:d.invalid_type,expected:g.number,received:a.parsedType}),w}let n;const s=new D;for(const a of this._def.checks)a.kind==="int"?A.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{code:d.invalid_type,expected:"integer",received:"float",message:a.message}),s.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),p(n,{code:d.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),p(n,{code:d.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind==="multipleOf"?mr(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),p(n,{code:d.not_multiple_of,multipleOf:a.value,message:a.message}),s.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{code:d.not_finite,message:a.message}),s.dirty()):A.assertNever(a);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,v.toString(t))}gt(e,t){return this.setLimit("min",e,!1,v.toString(t))}lte(e,t){return this.setLimit("max",e,!0,v.toString(t))}lt(e,t){return this.setLimit("max",e,!1,v.toString(t))}setLimit(e,t,n,s){return new he({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:v.toString(s)}]})}_addCheck(e){return new he({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:v.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:v.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:v.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:v.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:v.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:v.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:v.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:v.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:v.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&A.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}he.create=r=>new he({checks:[],typeName:k.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,...T(r)});class we extends E{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==g.bigint)return this._getInvalidInput(e);let n;const s=new D;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),p(n,{code:d.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),s.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),p(n,{code:d.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),s.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),p(n,{code:d.not_multiple_of,multipleOf:a.value,message:a.message}),s.dirty()):A.assertNever(a);return{status:s.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return p(t,{code:d.invalid_type,expected:g.bigint,received:t.parsedType}),w}gte(e,t){return this.setLimit("min",e,!0,v.toString(t))}gt(e,t){return this.setLimit("min",e,!1,v.toString(t))}lte(e,t){return this.setLimit("max",e,!0,v.toString(t))}lt(e,t){return this.setLimit("max",e,!1,v.toString(t))}setLimit(e,t,n,s){return new we({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:v.toString(s)}]})}_addCheck(e){return new we({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:v.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:v.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:v.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:v.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:v.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}we.create=r=>new we({checks:[],typeName:k.ZodBigInt,coerce:(r==null?void 0:r.coerce)??!1,...T(r)});class ut extends E{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==g.boolean){const n=this._getOrReturnCtx(e);return p(n,{code:d.invalid_type,expected:g.boolean,received:n.parsedType}),w}return W(e.data)}}ut.create=r=>new ut({typeName:k.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,...T(r)});class Me extends E{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==g.date){const a=this._getOrReturnCtx(e);return p(a,{code:d.invalid_type,expected:g.date,received:a.parsedType}),w}if(Number.isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return p(a,{code:d.invalid_date}),w}const n=new D;let s;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(s=this._getOrReturnCtx(e,s),p(s,{code:d.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),n.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(s=this._getOrReturnCtx(e,s),p(s,{code:d.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):A.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Me({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:v.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:v.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}Me.create=r=>new Me({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:k.ZodDate,...T(r)});class lt extends E{_parse(e){if(this._getType(e)!==g.symbol){const n=this._getOrReturnCtx(e);return p(n,{code:d.invalid_type,expected:g.symbol,received:n.parsedType}),w}return W(e.data)}}lt.create=r=>new lt({typeName:k.ZodSymbol,...T(r)});class dt extends E{_parse(e){if(this._getType(e)!==g.undefined){const n=this._getOrReturnCtx(e);return p(n,{code:d.invalid_type,expected:g.undefined,received:n.parsedType}),w}return W(e.data)}}dt.create=r=>new dt({typeName:k.ZodUndefined,...T(r)});class ft extends E{_parse(e){if(this._getType(e)!==g.null){const n=this._getOrReturnCtx(e);return p(n,{code:d.invalid_type,expected:g.null,received:n.parsedType}),w}return W(e.data)}}ft.create=r=>new ft({typeName:k.ZodNull,...T(r)});class xe extends E{constructor(){super(...arguments),this._any=!0}_parse(e){return W(e.data)}}xe.create=r=>new xe({typeName:k.ZodAny,...T(r)});class ht extends E{constructor(){super(...arguments),this._unknown=!0}_parse(e){return W(e.data)}}ht.create=r=>new ht({typeName:k.ZodUnknown,...T(r)});class ne extends E{_parse(e){const t=this._getOrReturnCtx(e);return p(t,{code:d.invalid_type,expected:g.never,received:t.parsedType}),w}}ne.create=r=>new ne({typeName:k.ZodNever,...T(r)});class pt extends E{_parse(e){if(this._getType(e)!==g.undefined){const n=this._getOrReturnCtx(e);return p(n,{code:d.invalid_type,expected:g.void,received:n.parsedType}),w}return W(e.data)}}pt.create=r=>new pt({typeName:k.ZodVoid,...T(r)});class X extends E{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),s=this._def;if(t.parsedType!==g.array)return p(t,{code:d.invalid_type,expected:g.array,received:t.parsedType}),w;if(s.exactLength!==null){const o=t.data.length>s.exactLength.value,i=t.data.length<s.exactLength.value;(o||i)&&(p(t,{code:o?d.too_big:d.too_small,minimum:i?s.exactLength.value:void 0,maximum:o?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&t.data.length<s.minLength.value&&(p(t,{code:d.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&t.data.length>s.maxLength.value&&(p(t,{code:d.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((o,i)=>s.type._parseAsync(new Q(t,o,t.path,i)))).then(o=>D.mergeArray(n,o));const a=[...t.data].map((o,i)=>s.type._parseSync(new Q(t,o,t.path,i)));return D.mergeArray(n,a)}get element(){return this._def.type}min(e,t){return new X({...this._def,minLength:{value:e,message:v.toString(t)}})}max(e,t){return new X({...this._def,maxLength:{value:e,message:v.toString(t)}})}length(e,t){return new X({...this._def,exactLength:{value:e,message:v.toString(t)}})}nonempty(e){return this.min(1,e)}}X.create=(r,e)=>new X({type:r,minLength:null,maxLength:null,exactLength:null,typeName:k.ZodArray,...T(e)});function de(r){if(r instanceof M){const e={};for(const t in r.shape){const n=r.shape[t];e[t]=re.create(de(n))}return new M({...r._def,shape:()=>e})}else return r instanceof X?new X({...r._def,type:de(r.element)}):r instanceof re?re.create(de(r.unwrap())):r instanceof ye?ye.create(de(r.unwrap())):r instanceof ce?ce.create(r.items.map(e=>de(e))):r}class M extends E{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=A.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==g.object){const y=this._getOrReturnCtx(e);return p(y,{code:d.invalid_type,expected:g.object,received:y.parsedType}),w}const{status:n,ctx:s}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),i=[];if(!(this._def.catchall instanceof ne&&this._def.unknownKeys==="strip"))for(const y in s.data)o.includes(y)||i.push(y);const u=[];for(const y of o){const x=a[y],L=s.data[y];u.push({key:{status:"valid",value:y},value:x._parse(new Q(s,L,s.path,y)),alwaysSet:y in s.data})}if(this._def.catchall instanceof ne){const y=this._def.unknownKeys;if(y==="passthrough")for(const x of i)u.push({key:{status:"valid",value:x},value:{status:"valid",value:s.data[x]}});else if(y==="strict")i.length>0&&(p(s,{code:d.unrecognized_keys,keys:i}),n.dirty());else if(y!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const y=this._def.catchall;for(const x of i){const L=s.data[x];u.push({key:{status:"valid",value:x},value:y._parse(new Q(s,L,s.path,x)),alwaysSet:x in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const y=[];for(const x of u){const L=await x.key,z=await x.value;y.push({key:L,value:z,alwaysSet:x.alwaysSet})}return y}).then(y=>D.mergeObjectSync(n,y)):D.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return v.errToObj,new M({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var a,o;const s=((o=(a=this._def).errorMap)==null?void 0:o.call(a,t,n).message)??n.defaultError;return t.code==="unrecognized_keys"?{message:v.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new M({...this._def,unknownKeys:"strip"})}passthrough(){return new M({...this._def,unknownKeys:"passthrough"})}extend(e){return new M({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new M({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:k.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new M({...this._def,catchall:e})}pick(e){const t={};for(const n of A.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new M({...this._def,shape:()=>t})}omit(e){const t={};for(const n of A.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new M({...this._def,shape:()=>t})}deepPartial(){return de(this)}partial(e){const t={};for(const n of A.objectKeys(this.shape)){const s=this.shape[n];e&&!e[n]?t[n]=s:t[n]=s.optional()}return new M({...this._def,shape:()=>t})}required(e){const t={};for(const n of A.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof re;)a=a._def.innerType;t[n]=a}return new M({...this._def,shape:()=>t})}keyof(){return Pt(A.objectKeys(this.shape))}}M.create=(r,e)=>new M({shape:()=>r,unknownKeys:"strip",catchall:ne.create(),typeName:k.ZodObject,...T(e)});M.strictCreate=(r,e)=>new M({shape:()=>r,unknownKeys:"strict",catchall:ne.create(),typeName:k.ZodObject,...T(e)});M.lazycreate=(r,e)=>new M({shape:r,unknownKeys:"strip",catchall:ne.create(),typeName:k.ZodObject,...T(e)});class Le extends E{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function s(a){for(const i of a)if(i.result.status==="valid")return i.result;for(const i of a)if(i.result.status==="dirty")return t.common.issues.push(...i.ctx.common.issues),i.result;const o=a.map(i=>new ee(i.ctx.common.issues));return p(t,{code:d.invalid_union,unionErrors:o}),w}if(t.common.async)return Promise.all(n.map(async a=>{const o={...t,common:{...t.common,issues:[]},parent:null};return{result:await a._parseAsync({data:t.data,path:t.path,parent:o}),ctx:o}})).then(s);{let a;const o=[];for(const u of n){const y={...t,common:{...t.common,issues:[]},parent:null},x=u._parseSync({data:t.data,path:t.path,parent:y});if(x.status==="valid")return x;x.status==="dirty"&&!a&&(a={result:x,ctx:y}),y.common.issues.length&&o.push(y.common.issues)}if(a)return t.common.issues.push(...a.ctx.common.issues),a.result;const i=o.map(u=>new ee(u));return p(t,{code:d.invalid_union,unionErrors:i}),w}}get options(){return this._def.options}}Le.create=(r,e)=>new Le({options:r,typeName:k.ZodUnion,...T(e)});function We(r,e){const t=te(r),n=te(e);if(r===e)return{valid:!0,data:r};if(t===g.object&&n===g.object){const s=A.objectKeys(e),a=A.objectKeys(r).filter(i=>s.indexOf(i)!==-1),o={...r,...e};for(const i of a){const u=We(r[i],e[i]);if(!u.valid)return{valid:!1};o[i]=u.data}return{valid:!0,data:o}}else if(t===g.array&&n===g.array){if(r.length!==e.length)return{valid:!1};const s=[];for(let a=0;a<r.length;a++){const o=r[a],i=e[a],u=We(o,i);if(!u.valid)return{valid:!1};s.push(u.data)}return{valid:!0,data:s}}else return t===g.date&&n===g.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}class Pe extends E{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=(a,o)=>{if(it(a)||it(o))return w;const i=We(a.value,o.value);return i.valid?((ot(a)||ot(o))&&t.dirty(),{status:t.value,value:i.data}):(p(n,{code:d.invalid_intersection_types}),w)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([a,o])=>s(a,o)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}Pe.create=(r,e,t)=>new Pe({left:r,right:e,typeName:k.ZodIntersection,...T(t)});class ce extends E{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==g.array)return p(n,{code:d.invalid_type,expected:g.array,received:n.parsedType}),w;if(n.data.length<this._def.items.length)return p(n,{code:d.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),w;!this._def.rest&&n.data.length>this._def.items.length&&(p(n,{code:d.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map((o,i)=>{const u=this._def.items[i]||this._def.rest;return u?u._parse(new Q(n,o,n.path,i)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>D.mergeArray(t,o)):D.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new ce({...this._def,rest:e})}}ce.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ce({items:r,typeName:k.ZodTuple,rest:null,...T(e)})};class je extends E{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==g.object)return p(n,{code:d.invalid_type,expected:g.object,received:n.parsedType}),w;const s=[],a=this._def.keyType,o=this._def.valueType;for(const i in n.data)s.push({key:a._parse(new Q(n,i,n.path,i)),value:o._parse(new Q(n,n.data[i],n.path,i)),alwaysSet:i in n.data});return n.common.async?D.mergeObjectAsync(t,s):D.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof E?new je({keyType:e,valueType:t,typeName:k.ZodRecord,...T(n)}):new je({keyType:K.create(),valueType:e,typeName:k.ZodRecord,...T(t)})}}class mt extends E{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==g.map)return p(n,{code:d.invalid_type,expected:g.map,received:n.parsedType}),w;const s=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([i,u],y)=>({key:s._parse(new Q(n,i,n.path,[y,"key"])),value:a._parse(new Q(n,u,n.path,[y,"value"]))}));if(n.common.async){const i=new Map;return Promise.resolve().then(async()=>{for(const u of o){const y=await u.key,x=await u.value;if(y.status==="aborted"||x.status==="aborted")return w;(y.status==="dirty"||x.status==="dirty")&&t.dirty(),i.set(y.value,x.value)}return{status:t.value,value:i}})}else{const i=new Map;for(const u of o){const y=u.key,x=u.value;if(y.status==="aborted"||x.status==="aborted")return w;(y.status==="dirty"||x.status==="dirty")&&t.dirty(),i.set(y.value,x.value)}return{status:t.value,value:i}}}}mt.create=(r,e,t)=>new mt({valueType:e,keyType:r,typeName:k.ZodMap,...T(t)});class Ce extends E{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==g.set)return p(n,{code:d.invalid_type,expected:g.set,received:n.parsedType}),w;const s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&(p(n,{code:d.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),t.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&(p(n,{code:d.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const a=this._def.valueType;function o(u){const y=new Set;for(const x of u){if(x.status==="aborted")return w;x.status==="dirty"&&t.dirty(),y.add(x.value)}return{status:t.value,value:y}}const i=[...n.data.values()].map((u,y)=>a._parse(new Q(n,u,n.path,y)));return n.common.async?Promise.all(i).then(u=>o(u)):o(i)}min(e,t){return new Ce({...this._def,minSize:{value:e,message:v.toString(t)}})}max(e,t){return new Ce({...this._def,maxSize:{value:e,message:v.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}Ce.create=(r,e)=>new Ce({valueType:r,minSize:null,maxSize:null,typeName:k.ZodSet,...T(e)});class yt extends E{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}yt.create=(r,e)=>new yt({getter:r,typeName:k.ZodLazy,...T(e)});class gt extends E{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return p(t,{received:t.data,code:d.invalid_literal,expected:this._def.value}),w}return{status:"valid",value:e.data}}get value(){return this._def.value}}gt.create=(r,e)=>new gt({value:r,typeName:k.ZodLiteral,...T(e)});function Pt(r,e){return new pe({values:r,typeName:k.ZodEnum,...T(e)})}class pe extends E{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return p(t,{expected:A.joinValues(n),received:t.parsedType,code:d.invalid_type}),w}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return p(t,{received:t.data,code:d.invalid_enum_value,options:n}),w}return W(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return pe.create(e,{...this._def,...t})}exclude(e,t=this._def){return pe.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}pe.create=Pt;class vt extends E{_parse(e){const t=A.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==g.string&&n.parsedType!==g.number){const s=A.objectValues(t);return p(n,{expected:A.joinValues(s),received:n.parsedType,code:d.invalid_type}),w}if(this._cache||(this._cache=new Set(A.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const s=A.objectValues(t);return p(n,{received:n.data,code:d.invalid_enum_value,options:s}),w}return W(e.data)}get enum(){return this._def.values}}vt.create=(r,e)=>new vt({values:r,typeName:k.ZodNativeEnum,...T(e)});class Ie extends E{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==g.promise&&t.common.async===!1)return p(t,{code:d.invalid_type,expected:g.promise,received:t.parsedType}),w;const n=t.parsedType===g.promise?t.data:Promise.resolve(t.data);return W(n.then(s=>this._def.type.parseAsync(s,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Ie.create=(r,e)=>new Ie({type:r,typeName:k.ZodPromise,...T(e)});class me extends E{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===k.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=this._def.effect||null,a={addIssue:o=>{p(n,o),o.fatal?t.abort():t.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),s.type==="preprocess"){const o=s.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async i=>{if(t.value==="aborted")return w;const u=await this._def.schema._parseAsync({data:i,path:n.path,parent:n});return u.status==="aborted"?w:u.status==="dirty"||t.value==="dirty"?_e(u.value):u});{if(t.value==="aborted")return w;const i=this._def.schema._parseSync({data:o,path:n.path,parent:n});return i.status==="aborted"?w:i.status==="dirty"||t.value==="dirty"?_e(i.value):i}}if(s.type==="refinement"){const o=i=>{const u=s.refinement(i,a);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return i};if(n.common.async===!1){const i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?w:(i.status==="dirty"&&t.dirty(),o(i.value),{status:t.value,value:i.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>i.status==="aborted"?w:(i.status==="dirty"&&t.dirty(),o(i.value).then(()=>({status:t.value,value:i.value}))))}if(s.type==="transform")if(n.common.async===!1){const o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!fe(o))return w;const i=s.transform(o.value,a);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:i}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>fe(o)?Promise.resolve(s.transform(o.value,a)).then(i=>({status:t.value,value:i})):w);A.assertNever(s)}}me.create=(r,e,t)=>new me({schema:r,typeName:k.ZodEffects,effect:e,...T(t)});me.createWithPreprocess=(r,e,t)=>new me({schema:e,effect:{type:"preprocess",transform:r},typeName:k.ZodEffects,...T(t)});class re extends E{_parse(e){return this._getType(e)===g.undefined?W(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}re.create=(r,e)=>new re({innerType:r,typeName:k.ZodOptional,...T(e)});class ye extends E{_parse(e){return this._getType(e)===g.null?W(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}ye.create=(r,e)=>new ye({innerType:r,typeName:k.ZodNullable,...T(e)});class Be extends E{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===g.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Be.create=(r,e)=>new Be({innerType:r,typeName:k.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...T(e)});class He extends E{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Re(s)?s.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new ee(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ee(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}He.create=(r,e)=>new He({innerType:r,typeName:k.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...T(e)});class _t extends E{_parse(e){if(this._getType(e)!==g.nan){const n=this._getOrReturnCtx(e);return p(n,{code:d.invalid_type,expected:g.nan,received:n.parsedType}),w}return{status:"valid",value:e.data}}}_t.create=r=>new _t({typeName:k.ZodNaN,...T(r)});class yr extends E{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class Ke extends E{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?w:a.status==="dirty"?(t.dirty(),_e(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{const s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?w:s.status==="dirty"?(t.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,t){return new Ke({in:e,out:t,typeName:k.ZodPipeline})}}class Ge extends E{_parse(e){const t=this._def.innerType._parse(e),n=s=>(fe(s)&&(s.value=Object.freeze(s.value)),s);return Re(t)?t.then(s=>n(s)):n(t)}unwrap(){return this._def.innerType}}Ge.create=(r,e)=>new Ge({innerType:r,typeName:k.ZodReadonly,...T(e)});function bt(r,e){const t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}function gr(r,e={},t){return r?xe.create().superRefine((n,s)=>{const a=r(n);if(a instanceof Promise)return a.then(o=>{if(!o){const i=bt(e,n),u=i.fatal??t??!0;s.addIssue({code:"custom",...i,fatal:u})}});if(!a){const o=bt(e,n),i=o.fatal??t??!0;s.addIssue({code:"custom",...o,fatal:i})}}):xe.create()}var k;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(k||(k={}));const vr=(r,e={message:`Input not instance of ${r.name}`})=>gr(t=>t instanceof r,e),I=K.create,B=he.create;xe.create;ne.create;const $=X.create,j=M.create,_r=Le.create;Pe.create;ce.create;const br=je.create,Se=pe.create;Ie.create;re.create;ye.create;class jt extends Error{constructor(t){const n=`Invalid ChaosConfig:
|
|
2
|
+
${t.map(s=>` - ${s}`).join(`
|
|
3
|
+
`)}`;super(n);R(this,"issues");this.name="ChaosConfigError",this.issues=t}}const q=B().min(0,"Probability must be >= 0").max(1,"Probability must be <= 1"),kt=B().int().min(1),F={onNth:kt.optional(),everyNth:kt.optional(),afterN:B().int().min(0).optional()},kr=r=>[r.onNth,r.everyNth,r.afterN].filter(e=>e!==void 0).length<=1,U=[kr,{message:"Only one of onNth, everyNth, or afterN may be set on a single rule"}],wr=_r([I().min(1,"graphqlOperation must not be empty"),vr(RegExp).refine(r=>!r.global&&!r.sticky,{message:"graphqlOperation RegExp must not use global (g) or sticky (y) flags due to lastIndex mutation"})]),Te={urlPattern:I().min(1,"urlPattern must not be empty"),methods:$(I()).optional(),graphqlOperation:wr.optional()},xr=j({...Te,statusCode:B().int().min(100).max(599),probability:q,body:I().optional(),statusText:I().optional(),headers:br(I()).optional(),...F}).strict().refine(...U),Cr=j({...Te,delayMs:B().min(0,"delayMs must be >= 0"),probability:q,...F}).strict().refine(...U),Sr=j({...Te,probability:q,timeout:B().min(0,"timeout must be >= 0").optional(),...F}).strict().refine(...U),Tr=j({...Te,probability:q,strategy:Se(["truncate","malformed-json","empty","wrong-type"]),...F}).strict().refine(...U),Or=j({...Te,probability:q,...F}).strict().refine(...U),Er=j({failures:$(xr).optional(),latencies:$(Cr).optional(),aborts:$(Sr).optional(),corruptions:$(Tr).optional(),cors:$(Or).optional()}).strict(),Nr=j({selector:I().min(1,"selector must not be empty"),action:Se(["disable","hide","remove"]),probability:q}).strict(),Ar=j({assaults:$(Nr).optional()}).strict(),et=Se(["inbound","outbound","both"]),Rr=j({urlPattern:I().min(1,"urlPattern must not be empty"),direction:et,probability:q,...F}).strict().refine(...U),Mr=j({urlPattern:I().min(1,"urlPattern must not be empty"),direction:et,delayMs:B().min(0,"delayMs must be >= 0"),probability:q,...F}).strict().refine(...U),Lr=j({urlPattern:I().min(1,"urlPattern must not be empty"),direction:et,strategy:Se(["truncate","malformed-json","empty","wrong-type"]),probability:q,...F}).strict().refine(...U),Pr=B().int().refine(r=>r===1e3||r>=3e3&&r<=4999,{message:"code must be 1000 or in the range 3000-4999"}),jr=I().refine(r=>new TextEncoder().encode(r).length<=123,{message:"reason must be <= 123 UTF-8 bytes"}),Ir=j({urlPattern:I().min(1,"urlPattern must not be empty"),code:Pr.optional(),reason:jr.optional(),afterMs:B().min(0,"afterMs must be >= 0").optional(),probability:q,...F}).strict().refine(...U),$r=j({drops:$(Rr).optional(),delays:$(Mr).optional(),corruptions:$(Lr).optional(),closes:$(Ir).optional()}).strict(),tt=I().min(1,"eventType must not be empty"),Zr=j({urlPattern:I().min(1,"urlPattern must not be empty"),eventType:tt.optional(),probability:q,...F}).strict().refine(...U),Dr=j({urlPattern:I().min(1,"urlPattern must not be empty"),eventType:tt.optional(),delayMs:B().min(0,"delayMs must be >= 0"),probability:q,...F}).strict().refine(...U),qr=j({urlPattern:I().min(1,"urlPattern must not be empty"),eventType:tt.optional(),strategy:Se(["truncate","malformed-json","empty","wrong-type"]),probability:q,...F}).strict().refine(...U),zr=j({urlPattern:I().min(1,"urlPattern must not be empty"),afterMs:B().min(0,"afterMs must be >= 0").optional(),probability:q,...F}).strict().refine(...U),Vr=j({drops:$(Zr).optional(),delays:$(Dr).optional(),corruptions:$(qr).optional(),closes:$(zr).optional()}).strict(),Fr=j({network:Er.optional(),ui:Ar.optional(),websocket:$r.optional(),sse:Vr.optional(),seed:B().int("Seed must be an integer").optional()}).strict();function It(r){const e=Fr.safeParse(r);if(!e.success){const t=e.error.issues.map(n=>`${n.path.join(".")}: ${n.message}`);throw new jt(t)}return e.data}function Ur(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function $t(){return Math.random()*4294967296>>>0}function Zt(r){const e=r??$t();return{random:Ur(e),seed:e}}class Dt{constructor(e=2e3){R(this,"listeners",new Map);R(this,"log",[]);this.maxLogEntries=e}on(e,t){this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t)}off(e,t){var n;(n=this.listeners.get(e))==null||n.delete(t)}emit(e){this.log.push(e),this.log.length>this.maxLogEntries&&this.log.shift(),this.notify(this.listeners.get(e.type),e),this.notify(this.listeners.get("*"),e)}getLog(){return[...this.log]}clearLog(){this.log=[]}notify(e,t){if(e)for(const n of e)try{n(t)}catch{}}}function Z(r,e){return e()<r}function se(r,e){const t=(e.get(r)??0)+1;return e.set(r,t),t}function ae(r,e){return r.onNth!==void 0?e===r.onNth:r.everyNth!==void 0?e%r.everyNth===0:r.afterN!==void 0?e>r.afterN:!0}function ie(r,e){return e==="*"?!0:r.includes(e)}function rt(r,e){switch(e){case"truncate":return r.slice(0,Math.max(0,Math.floor(r.length/2)));case"malformed-json":return`${r}"}`;case"empty":return"";case"wrong-type":return"<html><body>Unexpected HTML</body></html>"}}function nt(r){const e=r.replace(/#[^\r\n]*/g," "),t=/\b(?:query|mutation|subscription)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(e);return(t==null?void 0:t[1])??null}function Wr(r){try{return JSON.parse(r)}catch{return}}function qt(r){if(!r||typeof r!="object")return{isGraphQL:!1,operationName:null};if(Array.isArray(r))return r.length===0?{isGraphQL:!1,operationName:null}:qt(r[0]);const e=r,t=typeof e.query=="string",n=typeof e.operationName=="string";return!t&&!n?{isGraphQL:!1,operationName:null}:n&&e.operationName.length>0?{isGraphQL:!0,operationName:e.operationName}:t?{isGraphQL:!0,operationName:nt(e.query)}:{isGraphQL:!0,operationName:null}}function Br(r){let e;try{e=new URL(r,"http://_chaos-maker.invalid")}catch{return{kind:"not-graphql"}}const t=e.searchParams.get("operationName"),n=e.searchParams.get("query");return t&&t.length>0?{kind:"extracted",operationName:t}:n&&n.length>0?{kind:"extracted",operationName:nt(n)}:{kind:"not-graphql"}}function st(r,e,t,n){const s=r.toUpperCase();if(s==="POST"){if(t!==null){const a=Wr(t);if(a===void 0)return{kind:"not-graphql"};const{isGraphQL:o,operationName:i}=qt(a);return o?{kind:"extracted",operationName:i}:{kind:"not-graphql"}}return n?{kind:"unparseable"}:{kind:"not-graphql"}}return s==="GET"?Br(e):{kind:"not-graphql"}}function zt(r,e){return e===null?!1:typeof r=="string"?r===e:((r.global||r.sticky)&&(r.lastIndex=0),r.test(e))}function De(r,e){return r?e.kind==="not-graphql"?{kind:"no-match"}:e.kind==="unparseable"?{kind:"unparseable"}:zt(r,e.operationName)?{kind:"match",operationName:e.operationName}:{kind:"no-match"}:e.kind==="extracted"?{kind:"skip-no-constraint",operationName:e.operationName}:{kind:"skip-no-constraint",operationName:null}}function qe(r){return typeof Request<"u"&&r instanceof Request}function Hr(r){return qe(r)?r.url:r.toString()}function Gr(r,e){return e!=null&&e.method?e.method.toUpperCase():qe(r)?r.method.toUpperCase():"GET"}function Xr(r,e){if(e!=null&&e.signal)return e.signal;if(qe(r))return r.signal}function Qr(){if(typeof DOMException<"u")return new DOMException("The user aborted a request.","AbortError");const r=new Error("The user aborted a request.");return r.name="AbortError",r}function Jr(r,e){if(!e)return r;const t=new AbortController,n=i=>{o(),t.signal.aborted||t.abort(i.reason)},s=()=>n(r),a=()=>n(e),o=()=>{r.removeEventListener("abort",s),e.removeEventListener("abort",a)};return r.aborted?(n(r),t.signal):e.aborted?(n(e),t.signal):(r.addEventListener("abort",s,{once:!0}),e.addEventListener("abort",a,{once:!0}),t.signal)}function Yr(r,e){return e?{...r??{},signal:e}:r}async function Kr(r,e){const t=e==null?void 0:e.body;if(t!=null){if(typeof t=="string")return{text:t,unparseable:!1};if(typeof URLSearchParams<"u"&&t instanceof URLSearchParams)return{text:t.toString(),unparseable:!1};if(typeof Blob<"u"&&t instanceof Blob){if(!(t.type===""||/json|text|graphql/i.test(t.type)))return{text:null,unparseable:!0};try{return{text:await t.text(),unparseable:!1}}catch{return{text:null,unparseable:!0}}}return{text:null,unparseable:!0}}if(qe(r)){if(r.body===null)return{text:null,unparseable:!1};try{return{text:await r.clone().text(),unparseable:!1}}catch{return{text:null,unparseable:!0}}}return{text:null,unparseable:!1}}function ge(r,e,t,n,s){r==null||r.emit({type:e,timestamp:Date.now(),applied:!1,detail:{url:t,method:n,...s,reason:"graphql-body-unparseable"}})}function Oe(r,e,t,n,s){if(!ie(e,r.urlPattern))return{proceed:!1,outcome:null};if(r.methods&&!r.methods.includes(t))return{proceed:!1,outcome:null};const a=De(r.graphqlOperation,n);if(a.kind==="no-match"||a.kind==="unparseable")return{proceed:!1,outcome:a};const o=se(r,s);return ae(r,o)?{proceed:!0,outcome:a}:{proceed:!1,outcome:a}}function be(r){return r?r.kind==="match"||r.kind==="skip-no-constraint"?r.operationName?{operationName:r.operationName}:{}:{}:{}}function wt(r,e,t,n,s,a){r==null||r.emit({type:"network:abort",timestamp:Date.now(),applied:s,detail:{url:t,method:n,timeoutMs:e.timeout,...be(a)}})}function Ee(r,e,t,n,s,a){r==null||r.emit({type:"network:corruption",timestamp:Date.now(),applied:s,detail:{url:t,method:n,strategy:e.strategy,...be(a)}})}function en(r){return r.graphqlOperation!==void 0}function tn(r,e,t,n,s=new Map){return async(a,o)=>{var C,S,O,P;const i=Hr(a),u=Gr(a,o),y=Xr(a,o),x=(()=>{const h=[e.failures,e.latencies,e.aborts,e.corruptions,e.cors];for(const N of h)if(N!=null&&N.some(en))return!0;return!1})();let L={kind:"not-graphql"};if(x){const h=await Kr(a,o);L=st(u,i,h.text,h.unparseable)}if(e.cors)for(const h of e.cors){if(!ie(i,h.urlPattern)||h.methods&&!h.methods.includes(u))continue;const N=De(h.graphqlOperation,L);if(N.kind==="no-match")continue;if(N.kind==="unparseable"){ge(n,"network:cors",i,u,{});continue}const H=se(h,s);if(!ae(h,H))continue;const Y=Z(h.probability,t);if(n==null||n.emit({type:"network:cors",timestamp:Date.now(),applied:Y,detail:{url:i,method:u,...be(N)}}),Y){console.debug(`[chaos-maker] CORS block: ${u} ${i}`);const oe=new TypeError("Failed to fetch");throw oe.stack="",oe}}let z=null,J=null,V,f,c=!1;const l=h=>{!z||c||(c=!0,f&&(clearTimeout(f),f=void 0),wt(n,z,i,u,h,J))};if(e.aborts)for(const h of e.aborts){const N=Oe(h,i,u,L,s);if(!N.proceed){((C=N.outcome)==null?void 0:C.kind)==="unparseable"&&ge(n,"network:abort",i,u,{timeoutMs:h.timeout});continue}if(!Z(h.probability,t)){wt(n,h,i,u,!1,N.outcome);continue}console.warn(`CHAOS: Aborting ${u} ${i} after ${h.timeout||0}ms`),z=h,J=N.outcome;const Y=new AbortController;V=Jr(Y.signal,y);const oe=()=>{c||(l(!0),Y.abort(Qr()))};h.timeout?f=setTimeout(oe,h.timeout):oe();break}if(z)try{const h=await r(a,Yr(o,V));return l(!1),h}catch(h){throw l(!1),h}if(e.failures)for(const h of e.failures){const N=Oe(h,i,u,L,s);if(!N.proceed){((S=N.outcome)==null?void 0:S.kind)==="unparseable"&&ge(n,"network:failure",i,u,{statusCode:h.statusCode});continue}const H=Z(h.probability,t);if(n==null||n.emit({type:"network:failure",timestamp:Date.now(),applied:H,detail:{url:i,method:u,statusCode:h.statusCode,...be(N.outcome)}}),H){console.warn(`CHAOS: Forcing ${h.statusCode} for ${u} ${i}`);const Y=h.body??JSON.stringify({error:"Chaos Maker Attack!"}),oe=h.headers??{};return new Response(Y,{status:h.statusCode,statusText:h.statusText??"Service Unavailable (Chaos)",headers:oe})}}if(e.latencies)for(const h of e.latencies){const N=Oe(h,i,u,L,s);if(!N.proceed){((O=N.outcome)==null?void 0:O.kind)==="unparseable"&&ge(n,"network:latency",i,u,{delayMs:h.delayMs});continue}const H=Z(h.probability,t);n==null||n.emit({type:"network:latency",timestamp:Date.now(),applied:H,detail:{url:i,method:u,delayMs:h.delayMs,...be(N.outcome)}}),H&&(console.warn(`CHAOS: Adding ${h.delayMs}ms latency to ${u} ${i}`),await new Promise(Y=>setTimeout(Y,h.delayMs)))}let m=null,_=null;if(e.corruptions)for(const h of e.corruptions){const N=Oe(h,i,u,L,s);if(!N.proceed){((P=N.outcome)==null?void 0:P.kind)==="unparseable"&&ge(n,"network:corruption",i,u,{strategy:h.strategy});continue}if(!Z(h.probability,t)){Ee(n,h,i,u,!1,N.outcome);continue}m=h,_=N.outcome;break}let b;try{b=await r(a,o)}catch(h){throw m&&Ee(n,m,i,u,!1,_),h}if(!m)return b;try{console.warn(`CHAOS: Corrupting response for ${u} ${i} with strategy: ${m.strategy}`);const h=await b.text(),N=rt(h,m.strategy);return Ee(n,m,i,u,!0,_),new Response(N,{status:b.status,statusText:b.statusText,headers:b.headers})}catch(h){throw Ee(n,m,i,u,!1,_),h}}}function rn(r){return r==null?{text:null,unparseable:!1}:typeof r=="string"?{text:r,unparseable:!1}:typeof URLSearchParams<"u"&&r instanceof URLSearchParams?{text:r.toString(),unparseable:!1}:{text:null,unparseable:!0}}function nn(r){return r.graphqlOperation!==void 0}function sn(r){const e=[r.failures,r.latencies,r.aborts,r.corruptions,r.cors];for(const t of e)if(t!=null&&t.some(nn))return!0;return!1}function ve(r,e,t,n,s){r==null||r.emit({type:e,timestamp:Date.now(),applied:!1,detail:{url:t,method:n,...s,reason:"graphql-body-unparseable"}})}function Ne(r,e,t,n,s){if(!ie(e,r.urlPattern))return{proceed:!1,outcome:null};if(r.methods&&!r.methods.includes(t))return{proceed:!1,outcome:null};const a=De(r.graphqlOperation,n);if(a.kind==="no-match"||a.kind==="unparseable")return{proceed:!1,outcome:a};const o=se(r,s);return ae(r,o)?{proceed:!0,outcome:a}:{proceed:!1,outcome:a}}function ke(r){return r?r.kind==="match"||r.kind==="skip-no-constraint"?r.operationName?{operationName:r.operationName}:{}:{}:{}}function xt(r,e,t,n,s,a){r==null||r.emit({type:"network:abort",timestamp:Date.now(),applied:s,detail:{url:t,method:n,timeoutMs:e.timeout,...ke(a)}})}function Ct(r,e,t,n,s,a){r==null||r.emit({type:"network:corruption",timestamp:Date.now(),applied:s,detail:{url:t,method:n,strategy:e.strategy,...ke(a)}})}function an(r,e,t,n,s=new Map){const a=sn(e);return function(o){var z,J,V,f;const i=this._chaos_url,u=this._chaos_method;let y={kind:"not-graphql"};if(a){const c=rn(o);y=st(u,i,c.text,c.unparseable)}if(e.cors)for(const c of e.cors){if(!ie(i,c.urlPattern)||c.methods&&!c.methods.includes(u))continue;const l=De(c.graphqlOperation,y);if(l.kind==="no-match")continue;if(l.kind==="unparseable"){ve(n,"network:cors",i,u,{});continue}const m=se(c,s);if(!ae(c,m))continue;const _=Z(c.probability,t);if(n==null||n.emit({type:"network:cors",timestamp:Date.now(),applied:_,detail:{url:i,method:u,...ke(l)}}),_){console.debug(`[chaos-maker] CORS block: ${u} ${i}`),Object.defineProperty(this,"status",{value:0}),Object.defineProperty(this,"statusText",{value:""}),this.dispatchEvent(new Event("error")),this.dispatchEvent(new Event("loadend"));return}}if(e.aborts)for(const c of e.aborts){const l=Ne(c,i,u,y,s);if(!l.proceed){((z=l.outcome)==null?void 0:z.kind)==="unparseable"&&ve(n,"network:abort",i,u,{timeoutMs:c.timeout});continue}if(!Z(c.probability,t)){xt(n,c,i,u,!1,l.outcome);continue}console.warn(`CHAOS: Aborting ${u} ${i} after ${c.timeout||0}ms`);let _=!1,b;const C=()=>{b&&(clearTimeout(b),b=void 0),typeof this.removeEventListener=="function"&&this.removeEventListener("loadend",O)},S=h=>{_||(_=!0,C(),xt(n,c,i,u,h,l.outcome))},O=()=>{S(!1)},P=()=>{_||(S(!0),this.abort())};typeof this.addEventListener=="function"&&this.addEventListener("loadend",O);try{r.call(this,o)}catch(h){throw S(!1),h}if(_)return;c.timeout?b=setTimeout(P,c.timeout):P();return}if(e.failures)for(const c of e.failures){const l=Ne(c,i,u,y,s);if(!l.proceed){((J=l.outcome)==null?void 0:J.kind)==="unparseable"&&ve(n,"network:failure",i,u,{statusCode:c.statusCode});continue}const m=Z(c.probability,t);if(n==null||n.emit({type:"network:failure",timestamp:Date.now(),applied:m,detail:{url:i,method:u,statusCode:c.statusCode,...ke(l.outcome)}}),m){console.warn(`CHAOS: Forcing ${c.statusCode} for ${u} ${i}`),Object.defineProperty(this,"status",{value:c.statusCode}),Object.defineProperty(this,"statusText",{value:c.statusText??"Service Unavailable (Chaos)"});const _=c.body??JSON.stringify({error:"Chaos Maker Attack!"});Object.defineProperty(this,"responseText",{value:_,configurable:!0});const b=c.headers??{};Object.defineProperty(this,"getResponseHeader",{value:C=>{const S=Object.keys(b).find(O=>O.toLowerCase()===C.toLowerCase());return S?b[S]:null},configurable:!0}),Object.defineProperty(this,"getAllResponseHeaders",{value:()=>Object.entries(b).map(([C,S])=>`${C}: ${S}`).join(`\r
|
|
4
|
+
`),configurable:!0}),this.dispatchEvent(new Event("error")),this.dispatchEvent(new Event("load")),this.dispatchEvent(new Event("loadend"));return}}let x=null,L=null;if(e.corruptions)for(const c of e.corruptions){const l=Ne(c,i,u,y,s);if(!l.proceed){((V=l.outcome)==null?void 0:V.kind)==="unparseable"&&ve(n,"network:corruption",i,u,{strategy:c.strategy});continue}if(!Z(c.probability,t)){Ct(n,c,i,u,!1,l.outcome);continue}x=c,L=l.outcome;break}if(x){let c=!1,l=null;const m=()=>{typeof this.removeEventListener=="function"&&(this.removeEventListener("error",C),this.removeEventListener("abort",C),this.removeEventListener("loadend",S))},_=O=>{c||(c=!0,Ct(n,x,i,u,O,L),m())},b=()=>{if(l!==null)return l;delete this.responseText;try{const O=this.responseText;return typeof O!="string"?(Object.defineProperty(this,"responseText",{value:O,configurable:!0}),_(!1),O):(l=rt(O,x.strategy),Object.defineProperty(this,"responseText",{value:l,configurable:!0}),_(!0),l)}catch(O){throw _(!1),O}},C=()=>{_(!1)},S=()=>{if(!c)try{b()}catch{}};typeof this.addEventListener=="function"&&(this.addEventListener("error",C),this.addEventListener("abort",C),this.addEventListener("loadend",S)),Object.defineProperty(this,"responseText",{get(){return b()},configurable:!0})}if(e.latencies)for(const c of e.latencies){const l=Ne(c,i,u,y,s);if(!l.proceed){((f=l.outcome)==null?void 0:f.kind)==="unparseable"&&ve(n,"network:latency",i,u,{delayMs:c.delayMs});continue}const m=Z(c.probability,t);if(n==null||n.emit({type:"network:latency",timestamp:Date.now(),applied:m,detail:{url:i,method:u,delayMs:c.delayMs,...ke(l.outcome)}}),m){console.warn(`CHAOS: Adding ${c.delayMs}ms latency to ${u} ${i}`),setTimeout(()=>{r.call(this,o)},c.delayMs);return}}r.call(this,o)}}function on(r){return function(e,t){this._chaos_url=t.toString(),this._chaos_method=e.toUpperCase(),r.call(this,e,t)}}function Xe(r,e,t,n){const s=Z(e.probability,t);if(n==null||n.emit({type:"ui:assault",timestamp:Date.now(),applied:s,detail:{selector:e.selector,action:e.action}}),!!s){console.warn(`CHAOS: Applying action '${e.action}' to element:`,r);try{switch(e.action){case"disable":"disabled"in r&&(r.disabled=!0);break;case"hide":r.style.display="none";break;case"remove":r.remove();break}}catch(a){console.error("Chaos Maker failed to assault element:",a,r)}}}function cn(r,e,t,n){if(r.nodeType!==Node.ELEMENT_NODE||!e.assaults)return;const s=r;for(const a of e.assaults)try{s.matches(a.selector)&&Xe(s,a,t,n),s.querySelectorAll(a.selector).forEach(o=>{Xe(o,a,t,n)})}catch(o){console.error(`Chaos Maker: Invalid selector '${a.selector}'`,o)}}function un(r,e,t){if(r.assaults){console.log("CHAOS: Running initial DOM scan for existing elements...");for(const s of r.assaults)try{document.querySelectorAll(s.selector).forEach(a=>{Xe(a,s,e,t)})}catch(a){console.error(`Chaos Maker: Invalid selector in initial scan '${s.selector}'`,a)}}return new MutationObserver(s=>{for(const a of s)a.type==="childList"&&a.addedNodes.forEach(o=>cn(o,r,e,t))})}const St=Symbol.for("chaos-maker.websocket.intercepted");function ln(r,e){return r==="both"?!0:r===e}function Tt(r){return typeof r=="string"?"text":"binary"}function Ot(r,e){switch(e){case"truncate":return r.slice(0,Math.max(0,Math.floor(r.length/2)));case"malformed-json":return`${r}"}`;case"empty":return"";case"wrong-type":return"<html><body>Unexpected HTML</body></html>"}}function Et(r,e){if(e==="malformed-json"||e==="wrong-type")return null;if(e==="empty")return typeof Blob<"u"&&r instanceof Blob?new Blob([]):r instanceof ArrayBuffer?new ArrayBuffer(0):new Uint8Array(0);if(typeof Blob<"u"&&r instanceof Blob)return r.slice(0,Math.max(0,Math.floor(r.size/2)));if(r instanceof ArrayBuffer)return r.slice(0,Math.max(0,Math.floor(r.byteLength/2)));const t=r,n=Math.max(0,Math.floor(t.byteLength/2));return new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+n))}function ue(r,e,t,n,s){if(!r)return null;for(const a of r){if(!ie(e,a.urlPattern)||!ln(a.direction,t))continue;const o=se(a,s);if(ae(a,o)&&Z(a.probability,n))return a}return null}function Ae(r,e,t,n,s){r.emit({type:"websocket:drop",timestamp:Date.now(),applied:!0,detail:{url:e,direction:t,payloadType:n,...s?{reason:s}:{}}})}function Nt(r,e,t,n,s){r.emit({type:"websocket:delay",timestamp:Date.now(),applied:!0,detail:{url:e,direction:t,payloadType:n,delayMs:s}})}function le(r,e,t,n,s,a,o){r.emit({type:"websocket:corrupt",timestamp:Date.now(),applied:a,detail:{url:e,direction:t,payloadType:n,strategy:s,...o?{reason:o}:{}}})}function dn(r,e,t,n){r.emit({type:"websocket:close",timestamp:Date.now(),applied:!0,detail:{url:e,closeCode:t,closeReason:n}})}function fn(r,e,t,n,s){const a=new Map;let o=!0;const i=(f,c)=>{let l=a.get(f);l||(l=new Set,a.set(f,l)),l.add(c)},u=(f,c)=>{var l;(l=a.get(f))==null||l.delete(c)},y=(f,c)=>{const l=a.get(f);if(l){for(const m of l)clearTimeout(m.handle),m.kind==="delay"&&Ae(t,m.url,m.direction,m.payloadType,c);a.delete(f)}},x=(f,c,l)=>{const m=new MessageEvent("message",{data:l,origin:c.origin,lastEventId:c.lastEventId,source:c.source,ports:Array.from(c.ports??[])});m[St]=!0,f.dispatchEvent(m)},L=(f,c,l,m)=>{if(!o)return{handled:!1,data:l};const _="outbound",b=Tt(l);if(ue(e.drops,c,_,n,s))return Ae(t,c,_,b),{handled:!0,data:l};let C=l;const S=ue(e.corruptions,c,_,n,s);if(S)if(b==="text")C=Ot(C,S.strategy),le(t,c,_,b,S.strategy,!0);else{const P=Et(C,S.strategy);P===null?le(t,c,_,b,S.strategy,!1,"incompatible-payload-type"):(C=P,le(t,c,_,b,S.strategy,!0))}const O=ue(e.delays,c,_,n,s);if(O){Nt(t,c,_,b,O.delayMs);const P={kind:"delay",handle:setTimeout(()=>{u(f,P);try{m(C)}catch{}},O.delayMs),url:c,direction:_,payloadType:b};return i(f,P),{handled:!0,data:C}}return{handled:!1,data:C}},z=(f,c)=>{f.addEventListener("message",l=>{const m=l;if(m[St]||!o)return;const _="inbound",b=Tt(m.data);if(ue(e.drops,c,_,n,s)){m.stopImmediatePropagation(),Ae(t,c,_,b);return}let C=m.data,S=!1;const O=ue(e.corruptions,c,_,n,s);if(O)if(b==="text")C=Ot(C,O.strategy),S=!0,le(t,c,_,b,O.strategy,!0);else{const h=Et(C,O.strategy);h===null?le(t,c,_,b,O.strategy,!1,"incompatible-payload-type"):(C=h,S=!0,le(t,c,_,b,O.strategy,!0))}const P=ue(e.delays,c,_,n,s);if(P){m.stopImmediatePropagation(),Nt(t,c,_,b,P.delayMs);const h={kind:"delay",handle:setTimeout(()=>{u(f,h),x(f,m,C)},P.delayMs),url:c,direction:_,payloadType:b};i(f,h);return}S&&(m.stopImmediatePropagation(),x(f,m,C))})},J=(f,c)=>{if(e.closes)for(const l of e.closes){if(!ie(c,l.urlPattern))continue;const m=se(l,s);if(!ae(l,m)||!Z(l.probability,n))continue;const _=l.code??1e3,b=l.reason??"Chaos Maker close",C=l.afterMs??0,S=()=>{if(o){y(f,"close-interrupt"),dn(t,c,_,b);try{f.close(_,b)}catch{try{f.close()}catch{}}}};if(C<=0)f.readyState===f.OPEN?S():f.addEventListener("open",S,{once:!0});else{const O=()=>{const P={kind:"close",handle:setTimeout(S,C)};i(f,P)};f.readyState===f.OPEN?O():f.addEventListener("open",O,{once:!0})}return}};function V(f,c){const l=new r(f,c),m=typeof f=="string"?f:f.toString(),_=l.send.bind(l);return l.send=function(C){const S=L(l,m,C,_);S.handled||_(S.data)},z(l,m),J(l,m),l}Object.defineProperty(V,"prototype",{value:r.prototype,writable:!1});for(const f of["CONNECTING","OPEN","CLOSING","CLOSED"])V[f]=r[f];return{Wrapped:V,uninstall(){o=!1;for(const[,f]of a)for(const c of f)clearTimeout(c.handle),c.kind==="delay"&&Ae(t,c.url,c.direction,c.payloadType,"stop-during-delay");a.clear()}}}const At=Symbol.for("chaos-maker.eventsource.intercepted");function hn(r,e){return r===void 0||r==="*"?!0:r===e}function Ve(r,e,t,n,s){if(!r)return null;for(const a of r){if(!ie(e,a.urlPattern)||!hn(a.eventType,t))continue;const o=se(a,s);if(ae(a,o)&&Z(a.probability,n))return a}return null}function Fe(r,e,t,n){r.emit({type:"sse:drop",timestamp:Date.now(),applied:!0,detail:{url:e,eventType:t,...n?{reason:n}:{}}})}function pn(r,e,t,n){r.emit({type:"sse:delay",timestamp:Date.now(),applied:!0,detail:{url:e,eventType:t,delayMs:n}})}function mn(r,e,t,n){r.emit({type:"sse:corrupt",timestamp:Date.now(),applied:!0,detail:{url:e,eventType:t,strategy:n}})}function yn(r,e,t){r.emit({type:"sse:close",timestamp:Date.now(),applied:!0,detail:{url:e,reason:t}})}function gn(r,e,t,n,s){const a=new Map;let o=!0;const i=(f,c)=>{let l=a.get(f);l||(l=new Set,a.set(f,l)),l.add(c)},u=(f,c)=>{var l;(l=a.get(f))==null||l.delete(c)},y=(f,c)=>{const l=a.get(f);if(l){for(const m of l)clearTimeout(m.handle),m.kind==="delay"&&Fe(t,m.url,m.eventType,c);a.delete(f)}},x=(f,c,l)=>{const m=new MessageEvent(c.type||"message",{data:l,origin:c.origin,lastEventId:c.lastEventId});m[At]=!0,f.dispatchEvent(m)},L=(f,c,l)=>{if(l[At]||!o)return;const m=l.type||"message";if(Ve(e.drops,c,m,n,s)){l.stopImmediatePropagation(),Fe(t,c,m);return}let _=typeof l.data=="string"?l.data:String(l.data),b=!1;const C=Ve(e.corruptions,c,m,n,s);C&&(_=rt(_,C.strategy),b=!0,mn(t,c,m,C.strategy));const S=Ve(e.delays,c,m,n,s);if(S){l.stopImmediatePropagation(),pn(t,c,m,S.delayMs);const O={kind:"delay",handle:setTimeout(()=>{u(f,O),o&&f.readyState!==f.CLOSED&&x(f,l,_)},S.delayMs),url:c,eventType:m};i(f,O);return}b&&(l.stopImmediatePropagation(),x(f,l,_))},z=f=>{if(!e.closes)return null;for(const c of e.closes){if(!ie(f,c.urlPattern))continue;const l=se(c,s);if(ae(c,l)&&Z(c.probability,n))return c}return null},J=(f,c)=>{const l=z(c);if(!l)return;const m=l.afterMs??0,_=()=>{if(o){y(f,"close-interrupt"),yn(t,c,"chaos-maker-close");try{f.close()}catch{}try{f.dispatchEvent(new Event("error"))}catch{}}};if(m<=0){const b={kind:"close",handle:setTimeout(_,0)};i(f,b)}else{const b={kind:"close",handle:setTimeout(_,m)};i(f,b)}};function V(f,c){const l=new r(f,c),m=typeof f=="string"?f:f.toString(),_=h=>{L(l,m,h)},b=new Set,C=l.addEventListener.bind(l),S=h=>{b.has(h)||(b.add(h),C(h,_,{capture:!0}))};S("message");const O=h=>{if(h)for(const N of h)N.eventType&&N.eventType!=="*"&&N.eventType!=="message"&&S(N.eventType)};O(e.drops),O(e.delays),O(e.corruptions);const P=(h,N,H)=>{h!=="open"&&h!=="error"&&S(h),C(h,N,H)};return l.addEventListener=P,J(l,m),l}Object.defineProperty(V,"prototype",{value:r.prototype,writable:!1});for(const f of["CONNECTING","OPEN","CLOSED"])V[f]=r[f];return{Wrapped:V,uninstall(){o=!1;for(const[,f]of a)for(const c of f)clearTimeout(c.handle),c.kind==="delay"&&Fe(t,c.url,c.eventType,"stop-during-delay");a.clear()}}}class Qe{constructor(e,t={}){R(this,"config");R(this,"emitter");R(this,"random");R(this,"seed");R(this,"running",!1);R(this,"target");R(this,"originalFetch");R(this,"originalXhrSend");R(this,"originalXhrOpen");R(this,"domObserver");R(this,"originalWebSocket");R(this,"webSocketHandle");R(this,"originalEventSource");R(this,"eventSourceHandle");R(this,"requestCounters",new Map);this.config=It(e),this.emitter=new Dt;const n=Zt(e.seed);this.random=n.random,this.seed=n.seed,this.target=t.target??globalThis,console.log(`Chaos Maker initialized (seed: ${this.seed})`)}getSeed(){return this.seed}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}getLog(){return this.emitter.getLog()}clearLog(){this.emitter.clearLog()}start(){if(this.running){console.warn("Chaos Maker is already running. Call stop() first.");return}this.requestCounters.clear(),this.running=!0,console.log("🛠️ Chaos Maker ENGAGED 🛠️");const e=this.target;this.config.network&&(typeof e.fetch=="function"&&(this.originalFetch=e.fetch,e.fetch=tn(this.originalFetch.bind(e),this.config.network,this.random,this.emitter,this.requestCounters)),typeof e.XMLHttpRequest=="function"&&(this.originalXhrOpen=e.XMLHttpRequest.prototype.open,e.XMLHttpRequest.prototype.open=on(this.originalXhrOpen),this.originalXhrSend=e.XMLHttpRequest.prototype.send,e.XMLHttpRequest.prototype.send=an(this.originalXhrSend,this.config.network,this.random,this.emitter,this.requestCounters))),this.config.ui&&(typeof document>"u"||typeof MutationObserver>"u"?console.warn("Chaos Maker: UI config ignored — no DOM available in current context."):(this.domObserver=un(this.config.ui,this.random,this.emitter),this.domObserver.observe(document.body,{childList:!0,subtree:!0}),console.log("UI Assailant is now observing the DOM."))),this.config.websocket&&typeof e.WebSocket<"u"&&(this.originalWebSocket=e.WebSocket,this.webSocketHandle=fn(this.originalWebSocket,this.config.websocket,this.emitter,this.random,this.requestCounters),e.WebSocket=this.webSocketHandle.Wrapped),this.config.sse&&typeof e.EventSource<"u"&&(this.originalEventSource=e.EventSource,this.eventSourceHandle=gn(this.originalEventSource,this.config.sse,this.emitter,this.random,this.requestCounters),e.EventSource=this.eventSourceHandle.Wrapped)}stop(){this.running=!1,console.log("🛑 Chaos Maker DISENGAGED 🛑");const e=this.target;this.originalFetch&&(e.fetch=this.originalFetch),this.originalXhrSend&&typeof e.XMLHttpRequest=="function"&&(e.XMLHttpRequest.prototype.send=this.originalXhrSend),this.originalXhrOpen&&typeof e.XMLHttpRequest=="function"&&(e.XMLHttpRequest.prototype.open=this.originalXhrOpen),this.domObserver&&(this.domObserver.disconnect(),console.log("UI Assailant has stopped observing.")),this.originalWebSocket&&(e.WebSocket=this.originalWebSocket,this.originalWebSocket=void 0),this.webSocketHandle&&(this.webSocketHandle.uninstall(),this.webSocketHandle=void 0),this.originalEventSource&&(e.EventSource=this.originalEventSource,this.originalEventSource=void 0),this.eventSourceHandle&&(this.eventSourceHandle.uninstall(),this.eventSourceHandle=void 0)}}function Je(r){if(r===null||typeof r!="object")return r;if(r instanceof RegExp)return new RegExp(r.source,r.flags);if(Array.isArray(r))return r.map(t=>Je(t));const e={};for(const[t,n]of Object.entries(r))e[t]=Je(n);return e}function Rt(r){return Je(r)}class vn{constructor(e){R(this,"config");this.config=e?Rt(e):{network:{},ui:{},websocket:{},sse:{}},this.config.network||(this.config.network={}),this.config.ui||(this.config.ui={}),this.config.websocket||(this.config.websocket={}),this.config.sse||(this.config.sse={})}failRequests(e,t,n,s,a,o,i){return this.config.network.failures||(this.config.network.failures=[]),this.config.network.failures.push({urlPattern:e,statusCode:t,probability:n,methods:s,body:a,headers:o,...i}),this}addLatency(e,t,n,s,a){return this.config.network.latencies||(this.config.network.latencies=[]),this.config.network.latencies.push({urlPattern:e,delayMs:t,probability:n,methods:s,...a}),this}abortRequests(e,t,n,s,a){return this.config.network.aborts||(this.config.network.aborts=[]),this.config.network.aborts.push({urlPattern:e,probability:t,timeout:n,methods:s,...a}),this}corruptResponses(e,t,n,s,a){return this.config.network.corruptions||(this.config.network.corruptions=[]),this.config.network.corruptions.push({urlPattern:e,strategy:t,probability:n,methods:s,...a}),this}simulateCors(e,t,n,s){return this.config.network.cors||(this.config.network.cors=[]),this.config.network.cors.push({urlPattern:e,probability:t,methods:n,...s}),this}failRequestsOnNth(e,t,n,s){return this.failRequests(e,t,1,s,void 0,void 0,{onNth:n})}addLatencyOnNth(e,t,n,s){return this.addLatency(e,t,1,s,{onNth:n})}abortRequestsOnNth(e,t,n,s){return this.abortRequests(e,1,n,s,{onNth:t})}corruptResponsesOnNth(e,t,n,s){return this.corruptResponses(e,t,1,s,{onNth:n})}simulateCorsOnNth(e,t,n){return this.simulateCors(e,1,n,{onNth:t})}failRequestsEveryNth(e,t,n,s){return this.failRequests(e,t,1,s,void 0,void 0,{everyNth:n})}addLatencyEveryNth(e,t,n,s){return this.addLatency(e,t,1,s,{everyNth:n})}abortRequestsEveryNth(e,t,n,s){return this.abortRequests(e,1,n,s,{everyNth:t})}corruptResponsesEveryNth(e,t,n,s){return this.corruptResponses(e,t,1,s,{everyNth:n})}simulateCorsEveryNth(e,t,n){return this.simulateCors(e,1,n,{everyNth:t})}failRequestsAfterN(e,t,n,s){return this.failRequests(e,t,1,s,void 0,void 0,{afterN:n})}addLatencyAfterN(e,t,n,s){return this.addLatency(e,t,1,s,{afterN:n})}abortRequestsAfterN(e,t,n,s){return this.abortRequests(e,1,n,s,{afterN:t})}corruptResponsesAfterN(e,t,n,s){return this.corruptResponses(e,t,1,s,{afterN:n})}simulateCorsAfterN(e,t,n){return this.simulateCors(e,1,n,{afterN:t})}assaultUi(e,t,n){return this.config.ui.assaults||(this.config.ui.assaults=[]),this.config.ui.assaults.push({selector:e,action:t,probability:n}),this}dropMessages(e,t,n,s){return this.config.websocket.drops||(this.config.websocket.drops=[]),this.config.websocket.drops.push({urlPattern:e,direction:t,probability:n,...s}),this}delayMessages(e,t,n,s,a){return this.config.websocket.delays||(this.config.websocket.delays=[]),this.config.websocket.delays.push({urlPattern:e,direction:t,delayMs:n,probability:s,...a}),this}corruptMessages(e,t,n,s,a){return this.config.websocket.corruptions||(this.config.websocket.corruptions=[]),this.config.websocket.corruptions.push({urlPattern:e,direction:t,strategy:n,probability:s,...a}),this}closeConnection(e,t,n,s){return this.config.websocket.closes||(this.config.websocket.closes=[]),this.config.websocket.closes.push({urlPattern:e,probability:t,...n,...s}),this}dropMessagesOnNth(e,t,n){return this.dropMessages(e,t,1,{onNth:n})}delayMessagesOnNth(e,t,n,s){return this.delayMessages(e,t,n,1,{onNth:s})}failGraphQLOperation(e,t,n,s="*"){return this.config.network.failures||(this.config.network.failures=[]),this.config.network.failures.push({urlPattern:s,statusCode:t,probability:n,graphqlOperation:e}),this}delayGraphQLOperation(e,t,n,s="*"){return this.config.network.latencies||(this.config.network.latencies=[]),this.config.network.latencies.push({urlPattern:s,delayMs:t,probability:n,graphqlOperation:e}),this}dropSSE(e,t,n,s){return this.config.sse.drops||(this.config.sse.drops=[]),this.config.sse.drops.push({urlPattern:e,probability:t,...n?{eventType:n}:{},...s}),this}delaySSE(e,t,n,s,a){return this.config.sse.delays||(this.config.sse.delays=[]),this.config.sse.delays.push({urlPattern:e,delayMs:t,probability:n,...s?{eventType:s}:{},...a}),this}corruptSSE(e,t,n,s,a){return this.config.sse.corruptions||(this.config.sse.corruptions=[]),this.config.sse.corruptions.push({urlPattern:e,strategy:t,probability:n,...s?{eventType:s}:{},...a}),this}closeSSE(e,t,n,s){return this.config.sse.closes||(this.config.sse.closes=[]),this.config.sse.closes.push({urlPattern:e,probability:t,...n,...s}),this}withSeed(e){return this.config.seed=e,this}build(){return Rt(this.config)}}const G="*";function Vt(r){if(r&&typeof r=="object"&&!Object.isFrozen(r)){Object.freeze(r);for(const e of Object.values(r))Vt(e)}return r}const _n=Vt({unstableApi:{network:{failures:[{urlPattern:"/api/",statusCode:500,probability:.1}],latencies:[{urlPattern:"/api/",delayMs:1e3,probability:.2}]}},slowNetwork:{network:{latencies:[{urlPattern:G,delayMs:2e3,probability:1}]}},offlineMode:{network:{cors:[{urlPattern:G,probability:1}]}},flakyConnection:{network:{aborts:[{urlPattern:G,probability:.05}],latencies:[{urlPattern:G,delayMs:3e3,probability:.1}]}},degradedUi:{ui:{assaults:[{selector:"button",action:"disable",probability:.2},{selector:"a",action:"hide",probability:.1}]}},unreliableWebSocket:{websocket:{drops:[{urlPattern:G,direction:"both",probability:.1}],delays:[{urlPattern:G,direction:"inbound",delayMs:500,probability:1}],corruptions:[{urlPattern:G,direction:"inbound",strategy:"truncate",probability:.05}]}},unreliableEventStream:{sse:{drops:[{urlPattern:G,probability:.05}],delays:[{urlPattern:G,delayMs:200,probability:1}],closes:[{urlPattern:G,probability:.02,afterMs:2e3}]}}}),$e="__chaosMakerRegExp";function bn(r){if(r===null||typeof r!="object")return!1;const e=r,t=Object.keys(e);if(t.length!==1||t[0]!==$e)return!1;const n=e[$e];if(!n||typeof n!="object")return!1;const s=n;for(const a of Object.keys(s))if(a!=="source"&&a!=="flags")return!1;return typeof s.source=="string"&&typeof s.flags=="string"}function Ye(r){if(r===null||typeof r!="object")return r;if(r instanceof RegExp)return{[$e]:{source:r.source,flags:r.flags}};if(Array.isArray(r))return r.map(t=>Ye(t));const e={};for(const[t,n]of Object.entries(r))e[t]=Ye(n);return e}function Ze(r){if(r===null||typeof r!="object"||r instanceof RegExp)return r;if(bn(r)){const{source:t,flags:n}=r[$e];try{return new RegExp(t,n)}catch(s){return console.warn(`[chaos-maker] deserializeForTransport: invalid RegExp { source: ${JSON.stringify(t)}, flags: ${JSON.stringify(n)} } — ${s.message}`),r}}if(Array.isArray(r))return r.map(t=>Ze(t));const e={};for(const[t,n]of Object.entries(r))e[t]=Ze(n);return e}const kn=`
|
|
5
|
+
(function installChaosMakerSWBridge() {
|
|
6
|
+
if (typeof window === 'undefined') return;
|
|
7
|
+
if (window.__chaosMakerSWBridgeInstalled) return;
|
|
8
|
+
window.__chaosMakerSWBridgeInstalled = true;
|
|
9
|
+
|
|
10
|
+
var log = [];
|
|
11
|
+
var lastConfig = null;
|
|
12
|
+
|
|
13
|
+
function addSwListeners() {
|
|
14
|
+
if (!('serviceWorker' in navigator)) return;
|
|
15
|
+
navigator.serviceWorker.addEventListener('message', function (evt) {
|
|
16
|
+
var data = evt && evt.data;
|
|
17
|
+
if (data && data.__chaosMakerSWEvent && data.event) {
|
|
18
|
+
log.push(data.event);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
navigator.serviceWorker.addEventListener('controllerchange', function () {
|
|
22
|
+
if (lastConfig) {
|
|
23
|
+
postConfig(lastConfig, 5000).catch(function (err) {
|
|
24
|
+
try { console.warn('[chaos-maker] re-apply after controllerchange failed', err); } catch (_) {}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function waitForController(timeoutMs) {
|
|
31
|
+
return new Promise(function (resolve, reject) {
|
|
32
|
+
if (!('serviceWorker' in navigator)) {
|
|
33
|
+
reject(new Error('[chaos-maker] service worker API not available on this page'));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
var start = Date.now();
|
|
37
|
+
(function poll() {
|
|
38
|
+
if (navigator.serviceWorker.controller) {
|
|
39
|
+
resolve(navigator.serviceWorker.controller);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (Date.now() - start >= timeoutMs) {
|
|
43
|
+
reject(new Error('[chaos-maker] no SW controller after ' + timeoutMs + 'ms — did you register the SW?'));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
setTimeout(poll, 50);
|
|
47
|
+
})();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function postViaPort(controller, message, timeoutMs) {
|
|
52
|
+
return new Promise(function (resolve, reject) {
|
|
53
|
+
var channel = new MessageChannel();
|
|
54
|
+
var settled = false;
|
|
55
|
+
var timer = setTimeout(function () {
|
|
56
|
+
if (settled) return;
|
|
57
|
+
settled = true;
|
|
58
|
+
try { channel.port1.close(); } catch (_) {}
|
|
59
|
+
reject(new Error('[chaos-maker] SW ack timeout after ' + timeoutMs + 'ms'));
|
|
60
|
+
}, timeoutMs);
|
|
61
|
+
channel.port1.onmessage = function (evt) {
|
|
62
|
+
if (settled) return;
|
|
63
|
+
settled = true;
|
|
64
|
+
clearTimeout(timer);
|
|
65
|
+
resolve(evt && evt.data);
|
|
66
|
+
};
|
|
67
|
+
controller.postMessage(message, [channel.port2]);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function postConfig(cfg, timeoutMs) {
|
|
72
|
+
return waitForController(timeoutMs).then(function (ctrl) {
|
|
73
|
+
return postViaPort(ctrl, { __chaosMakerConfig: cfg }, timeoutMs);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
window.__chaosMakerSWBridge = {
|
|
78
|
+
apply: function (cfg, timeoutMs) {
|
|
79
|
+
// Stash cfg BEFORE awaiting ack — intentional. If the first ack times
|
|
80
|
+
// out (e.g. SW still installing), the controllerchange listener above
|
|
81
|
+
// will retry with this config once the new SW claims the page. Caller
|
|
82
|
+
// still sees the rejection from this attempt and can re-throw.
|
|
83
|
+
lastConfig = cfg;
|
|
84
|
+
return postConfig(cfg, timeoutMs).then(function (ack) {
|
|
85
|
+
return { seed: ack && typeof ack.seed === 'number' ? ack.seed : null };
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
stop: function (timeoutMs) {
|
|
89
|
+
lastConfig = null;
|
|
90
|
+
if (!('serviceWorker' in navigator) || !navigator.serviceWorker.controller) {
|
|
91
|
+
return Promise.resolve({ running: false });
|
|
92
|
+
}
|
|
93
|
+
return postViaPort(navigator.serviceWorker.controller, { __chaosMakerStop: true }, timeoutMs);
|
|
94
|
+
},
|
|
95
|
+
getLocalLog: function () { return log.slice(); },
|
|
96
|
+
clearLocalLog: function () { log.length = 0; },
|
|
97
|
+
getRemoteLog: function (timeoutMs) {
|
|
98
|
+
if (!('serviceWorker' in navigator) || !navigator.serviceWorker.controller) {
|
|
99
|
+
return Promise.resolve([]);
|
|
100
|
+
}
|
|
101
|
+
return postViaPort(navigator.serviceWorker.controller, { __chaosMakerGetLog: true }, timeoutMs)
|
|
102
|
+
.then(function (reply) {
|
|
103
|
+
return (reply && Array.isArray(reply.log)) ? reply.log : [];
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
addSwListeners();
|
|
109
|
+
})();
|
|
110
|
+
`;if(typeof window<"u"){window.ChaosMaker=Qe;const r={instance:null,start:e=>{try{r.instance&&r.instance.stop();const t=Ze(e);return r.instance=new Qe(t),r.instance.start(),{success:!0,message:"Chaos started"}}catch(t){return console.error("Chaos Utils Error:",t),{success:!1,message:t.message}}},stop:()=>r.instance?(r.instance.stop(),r.instance=null,{success:!0,message:"Chaos stopped"}):{success:!1,message:"No chaos instance to stop"},getLog:()=>r.instance?r.instance.getLog():[],getSeed:()=>r.instance?r.instance.getSeed():null};if(window.chaosUtils=r,window.__CHAOS_CONFIG__)try{const e=window.__CHAOS_CONFIG__;r.start(e),delete window.__CHAOS_CONFIG__}catch(e){console.error("ChaosMaker auto-start failed:",e)}}exports.ChaosConfigBuilder=vn;exports.ChaosConfigError=jt;exports.ChaosEventEmitter=Dt;exports.ChaosMaker=Qe;exports.SW_BRIDGE_SOURCE=kn;exports.createPrng=Zt;exports.deserializeForTransport=Ze;exports.extractGraphQLOperation=st;exports.generateSeed=$t;exports.operationNameMatches=zt;exports.parseOperationFromQueryString=nt;exports.presets=_n;exports.serializeForTransport=Ye;exports.validateConfig=It;
|