@zipbul/baker 3.4.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/README.md +256 -159
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/src/baker.d.ts +31 -0
- package/dist/src/baker.js +1 -0
- package/dist/src/configure.d.ts +3 -8
- package/dist/src/configure.js +1 -1
- package/dist/src/create-rule.d.ts +2 -1
- package/dist/src/decorators/field.d.ts +2 -1
- package/dist/src/decorators/field.js +1 -1
- package/dist/src/decorators/index.d.ts +0 -1
- package/dist/src/decorators/index.js +1 -1
- package/dist/src/enums.d.ts +51 -0
- package/dist/src/enums.js +1 -0
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/errors.js +1 -1
- package/dist/src/functions/check-call-options.d.ts +1 -1
- package/dist/src/functions/check-call-options.js +1 -1
- package/dist/src/functions/deserialize.d.ts +1 -1
- package/dist/src/functions/serialize.d.ts +1 -1
- package/dist/src/rule-plan.d.ts +5 -3
- package/dist/src/rule-plan.js +1 -1
- package/dist/src/rules/array.js +1 -1
- package/dist/src/rules/date.js +1 -1
- package/dist/src/rules/locales.js +1 -1
- package/dist/src/rules/number.js +1 -1
- package/dist/src/rules/object.js +1 -1
- package/dist/src/rules/string.js +5 -5
- package/dist/src/rules/typechecker.js +5 -5
- package/dist/src/seal/deserialize-builder.js +230 -230
- package/dist/src/seal/enums.d.ts +8 -0
- package/dist/src/seal/enums.js +1 -0
- package/dist/src/seal/expose-validator.js +1 -1
- package/dist/src/seal/seal.d.ts +10 -21
- package/dist/src/seal/seal.js +1 -1
- package/dist/src/seal/serialize-builder.js +8 -8
- package/dist/src/seal/validate-meta.js +1 -1
- package/dist/src/symbols.d.ts +1 -1
- package/dist/src/types.d.ts +15 -14
- package/package.json +1 -1
- package/dist/src/decorators/recipe.d.ts +0 -17
- package/dist/src/decorators/recipe.js +0 -1
- package/dist/src/registry.d.ts +0 -8
- package/dist/src/registry.js +0 -1
- package/dist/src/seal/seal-state.d.ts +0 -10
- package/dist/src/seal/seal-state.js +0 -1
package/dist/src/rules/string.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import{makePlannedRule as C,makeRule as q,planCompare as h,planLength as P,planOr as Hj}from"../rule-plan.js";function X(j,Z,$,z="string",Q={}){return q({name:j,requiresType:z,constraints:Q,validate:(J)=>typeof J==="string"&&Z(J),emit:$})}function minLength(j){const Z={cacheKey:"length",failure:h(P(),"<",j)};return C({name:"minLength",requiresType:"string",constraints:{min:j},plan:Z,validate:($)=>typeof $==="string"&&$.length>=j})}function maxLength(j){const Z={cacheKey:"length",failure:h(P(),">",j)};return C({name:"maxLength",requiresType:"string",constraints:{max:j},plan:Z,validate:($)=>typeof $==="string"&&$.length<=j})}function length(j,Z){const $={cacheKey:"length",failure:Hj(h(P(),"<",j),h(P(),">",Z))};return C({name:"length",requiresType:"string",constraints:{min:j,max:Z},plan:$,validate:(z)=>typeof z==="string"&&z.length>=j&&z.length<=Z})}function contains(j){return q({name:"contains",requiresType:"string",constraints:{seed:j},validate:(Z)=>typeof Z==="string"&&Z.includes(j),emit:(Z,$)=>{const z=$.addRef(j);return`if (!${Z}.includes(refs[${z}])) ${$.fail("contains")};`}})}function notContains(j){return q({name:"notContains",requiresType:"string",constraints:{seed:j},validate:(Z)=>typeof Z==="string"&&!Z.includes(j),emit:(Z,$)=>{const z=$.addRef(j);return`if (${Z}.includes(refs[${z}])) ${$.fail("notContains")};`}})}function matches(j,Z){const $=j instanceof RegExp?j:new RegExp(j,Z);return q({name:"matches",requiresType:"string",constraints:{pattern:$.source},validate:(z)=>typeof z==="string"&&$.test(z),emit:(z,Q)=>{return`if (!re[${Q.addRegex($)}].test(${z})) ${Q.fail("matches")};`}})}const isLowercase=q({name:"isLowercase",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&j===j.toLowerCase(),emit:(j,Z)=>`if (${j} !== ${j}.toLowerCase()) ${Z.fail("isLowercase")};`});const isUppercase=q({name:"isUppercase",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&j===j.toUpperCase(),emit:(j,Z)=>`if (${j} !== ${j}.toUpperCase()) ${Z.fail("isUppercase")};`});const T=new RegExp(`^[${String.fromCharCode(0)}-${String.fromCharCode(127)}]*$`);const isAscii=X("isAscii",(j)=>T.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(T)}].test(${j})) ${Z.fail("isAscii")};`});const A=/^[a-zA-Z]+$/;const isAlpha=X("isAlpha",(j)=>A.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(A)}].test(${j})) ${Z.fail("isAlpha")};`});const k=/^[a-zA-Z0-9]+$/;const isAlphanumeric=X("isAlphanumeric",(j)=>k.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(k)}].test(${j})) ${Z.fail("isAlphanumeric")};`});const g=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;const isHttpToken=X("isHttpToken",(j)=>g.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(g)}].test(${j})) ${Z.fail("isHttpToken")};`});const O=(j)=>{if(j==="null")return!0;try{return new URL(j).origin===j}catch{return!1}};const isOrigin=q({name:"isOrigin",requiresType:"string",constraints:{format:"origin"},validate:(j)=>typeof j==="string"&&O(j),emit:(j,Z)=>{return`if (!(refs[${Z.addRef(O)}](${j}))) ${Z.fail("isOrigin")};`}});const L=(j)=>j==="*"||O(j);const isCorsOrigin=q({name:"isCorsOrigin",requiresType:"string",constraints:{format:"origin",allowWildcard:!0},validate:(j)=>typeof j==="string"&&L(j),emit:(j,Z)=>{return`if (!(refs[${Z.addRef(L)}](${j}))) ${Z.fail("isCorsOrigin")};`}});const isBooleanString=q({name:"isBooleanString",requiresType:"string",constraints:{},validate:(j)=>j==="true"||j==="false"||j==="1"||j==="0",emit:(j,Z)=>`if (${j} !== 'true' && ${j} !== 'false' && ${j} !== '1' && ${j} !== '0') ${Z.fail("isBooleanString")};`});const Bj=/^[0-9]+$/;const Oj=/^[+-]?(?:[0-9]*\.)?[0-9]+$/;function isNumberString(j){const Z=j?.no_symbols??!1,$=Z?Bj:Oj;return X("isNumberString",(z)=>$.test(z),(z,Q)=>{return`if (!re[${Q.addRegex($)}].test(${z})) ${Q.fail("isNumberString")};`},"string",{no_symbols:Z})}function isDecimal(){const j=/^[-+]?(?:\d+(?:\.\d+)?|\.\d+)$/;return X("isDecimal",(Z)=>j.test(Z),(Z,$)=>{return`if (!re[${$.addRegex(j)}].test(${Z})) ${$.fail("isDecimal")};`})}const H=/[^\u0020-\u007E\uFF61-\uFF9F]/;const isFullWidth=X("isFullWidth",(j)=>H.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(H)}].test(${j})) ${Z.fail("isFullWidth")};`});const B=/[\u0020-\u007E\uFF61-\uFF9F]/;const isHalfWidth=X("isHalfWidth",(j)=>B.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(B)}].test(${j})) ${Z.fail("isHalfWidth")};`});const isVariableWidth=X("isVariableWidth",(j)=>H.test(j)&&B.test(j),(j,Z)=>{const $=Z.addRegex(H),z=Z.addRegex(B);return`if (!re[${$}].test(${j}) || !re[${z}].test(${j})) ${Z.fail("isVariableWidth")};`});const I=new RegExp(`[^${String.fromCharCode(0)}-${String.fromCharCode(255)}]`);const isMultibyte=X("isMultibyte",(j)=>I.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(I)}].test(${j})) ${Z.fail("isMultibyte")};`});const d=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;const isSurrogatePair=X("isSurrogatePair",(j)=>d.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(d)}].test(${j})) ${Z.fail("isSurrogatePair")};`});const p=/^[0-9a-fA-F]+$/;const isHexadecimal=X("isHexadecimal",(j)=>p.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(p)}].test(${j})) ${Z.fail("isHexadecimal")};`});const S=/^(0[oO])?[0-7]+$/;const isOctal=X("isOctal",(j)=>S.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(S)}].test(${j})) ${Z.fail("isOctal")};`});const _=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\.[a-zA-Z]{2,}$/;function isEmail(){return X("isEmail",(j)=>_.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(_)}].test(${j})) ${Z.fail("isEmail")};`},"string",{format:"email"})}const Cj=["http","https","ftp"];function isURL(j){const Z=j?.protocols??Cj,$=Z.map((Q)=>Q.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),z=new RegExp(`^(?:${$}):\\/\\/(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)(?::(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[1-5]\\d{4}|[1-9]\\d{0,3}|0))?(?:\\/[^\\s]*)?$`);return q({name:"isURL",requiresType:"string",constraints:{format:"uri",protocols:Z},validate:(Q)=>typeof Q==="string"&&z.test(Q),emit:(Q,J)=>{return`if (!re[${J.addRegex(z)}].test(${Q})) ${J.fail("isURL")};`}})}const E={all:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,1:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-1[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,2:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-2[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,3:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-3[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,4:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,5:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-5[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/};function isUUID(j){const Z=j!=null?E[j]:E.all;return X("isUUID",($)=>Z.test($),($,z)=>{return`if (!re[${z.addRegex(Z)}].test(${$})) ${z.fail("isUUID")};`},"string",{format:"uuid",version:j})}const y=/^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/;const G=/^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|^::(?:[0-9a-fA-F]{1,4}:){0,6}[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}$|^::$|^::1$|^::(?:ffff(?::0{1,4})?:)?(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$|^(?:[0-9a-fA-F]{1,4}:){1,4}:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/;function isIP(j){return q({name:"isIP",requiresType:"string",constraints:{version:j},validate:(Z)=>{if(typeof Z!=="string")return!1;if(j===4)return y.test(Z);if(j===6)return G.test(Z);return y.test(Z)||G.test(Z)},emit:(Z,$)=>{if(j===4)return`if (!re[${$.addRegex(y)}].test(${Z})) ${$.fail("isIP")};`;if(j===6)return`if (!re[${$.addRegex(G)}].test(${Z})) ${$.fail("isIP")};`;const z=$.addRegex(y),Q=$.addRegex(G);return`if (!re[${z}].test(${Z}) && !re[${Q}].test(${Z})) ${$.fail("isIP")};`}})}const o=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;const isHexColor=X("isHexColor",(j)=>o.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(o)}].test(${j})) ${Z.fail("isHexColor")};`});const M=/^rgb\(\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*\)$/;const D=/^rgba\(\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(0|0?\.\d+|1(\.0+)?)\s*\)$/;const R=/^rgb\(\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*\)$/;const N=/^rgba\(\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*,\s*(0|0?\.\d+|1(?:\.0+)?)\s*\)$/;function isRgbColor(j=!1){return q({name:"isRgbColor",requiresType:"string",constraints:{includePercentValues:j},validate:(Z)=>{if(typeof Z!=="string")return!1;if(j)return R.test(Z)||N.test(Z)||M.test(Z)||D.test(Z);return M.test(Z)||D.test(Z)},emit:(Z,$)=>{if(j){const J=$.addRegex(R),f=$.addRegex(N),K=$.addRegex(M),Y=$.addRegex(D);return`if (!re[${J}].test(${Z}) && !re[${f}].test(${Z}) && !re[${K}].test(${Z}) && !re[${Y}].test(${Z})) ${$.fail("isRgbColor")};`}const z=$.addRegex(M),Q=$.addRegex(D);return`if (!re[${z}].test(${Z}) && !re[${Q}].test(${Z})) ${$.fail("isRgbColor")};`}})}const s=/^(?:hsl\(\s*(?:360|3[0-5]\d|[12]\d{2}|[1-9]\d|\d)\s*,\s*(?:100|[1-9]\d|\d)%\s*,\s*(?:100|[1-9]\d|\d)%\s*\)|hsla\(\s*(?:360|3[0-5]\d|[12]\d{2}|[1-9]\d|\d)\s*,\s*(?:100|[1-9]\d|\d)%\s*,\s*(?:100|[1-9]\d|\d)%\s*,\s*(?:0|0?\.\d+|1(?:\.0+)?)\s*\))$/;const isHSL=X("isHSL",(j)=>s.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(s)}].test(${j})) ${Z.fail("isHSL")};`});const n=/^[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}$/;const u=/^[0-9a-fA-F]{2}(?:-[0-9a-fA-F]{2}){5}$/;const x=/^[0-9a-fA-F]{12}$/;function isMACAddress(j){return q({name:"isMACAddress",requiresType:"string",constraints:{no_separators:j?.no_separators},validate:(Z)=>{if(typeof Z!=="string")return!1;if(j?.no_separators)return x.test(Z);return n.test(Z)||u.test(Z)},emit:(Z,$)=>{if(j?.no_separators)return`if (!re[${$.addRegex(x)}].test(${Z})) ${$.fail("isMACAddress")};`;const z=$.addRegex(n),Q=$.addRegex(u);return`if (!re[${z}].test(${Z}) && !re[${Q}].test(${Z})) ${$.fail("isMACAddress")};`}})}function i(j){const Z=j.replace(/[-\s]/g,"");if(!/^\d{9}[\dX]$/.test(Z))return!1;let $=0;for(let Q=0;Q<9;Q++)$+=(10-Q)*(Z.charCodeAt(Q)-48);const z=Z[9]==="X"?10:Z.charCodeAt(9)-48;$+=z;return $%11===0}function l(j){const Z=j.replace(/[-\s]/g,"");if(!/^\d{13}$/.test(Z))return!1;let $=0;for(let Q=0;Q<12;Q++)$+=(Z.charCodeAt(Q)-48)*(Q%2===0?1:3);return(10-$%10)%10===Z.charCodeAt(12)-48}function isISBN(j){const Z=(Q)=>{if(typeof Q!=="string")return!1;if(j===10)return i(Q);if(j===13)return l(Q);return i(Q)||l(Q)},$=(Q)=>`{var s=${Q}.replace(/[-\\s]/g,'');if(!/^\\d{9}[\\dX]$/.test(s)){%%FAIL%%}else{var sm=0;for(var i=0;i<9;i++)sm+=(10-i)*(s.charCodeAt(i)-48);var l=s[9]==='X'?10:(s.charCodeAt(9)-48);sm+=l;if(sm%11!==0){%%FAIL%%}}}`,z=(Q)=>`{var s=${Q}.replace(/[-\\s]/g,'');if(!/^\\d{13}$/.test(s)){%%FAIL%%}else{var sm=0;for(var i=0;i<12;i++)sm+=(s.charCodeAt(i)-48)*(i%2===0?1:3);var ck=(10-(sm%10))%10;if(ck!==(s.charCodeAt(12)-48)){%%FAIL%%}}}`;return q({name:"isISBN",requiresType:"string",constraints:{version:j},validate:Z,emit:(Q,J)=>{const f=J.fail("isISBN");if(j===10)return $(Q).replace(/%%FAIL%%/g,f);if(j===13)return z(Q).replace(/%%FAIL%%/g,f);const K=$(Q).replace(/%%FAIL%%/g,"__isbn_ok=false"),Y=z(Q).replace(/%%FAIL%%/g,"__isbn_ok=false");return`{var __isbn_ok=true;${K} if(!__isbn_ok){__isbn_ok=true;${Y}} if(!__isbn_ok)${f};}`}})}const Uj=/^[A-Z]{2}[A-Z0-9]{9}[0-9]$/;function Tj(j){if(!Uj.test(j))return!1;let Z=0,$=!1;for(let z=j.length-1;z>=0;z--){const Q=j.charCodeAt(z);if(Q<=57){let J=Q-48;if($){J*=2;if(J>9)J-=9}Z+=J;$=!$}else{const J=Q-55,f=J%10;let K=f;if($){K*=2;if(K>9)K-=9}Z+=K;$=!$;K=(J-f)/10;if($){K*=2;if(K>9)K-=9}Z+=K;$=!$}}return Z%10===0}const isISIN=X("isISIN",Tj,(j,Z)=>{return`if (!re[${Z.addRegex(Uj)}].test(${j})) ${Z.fail("isISIN")};
|
|
1
|
+
import{CacheKey as k,RequiredType as f,RuleOp as h}from"../enums.js";import{makePlannedRule as g,makeRule as W,planCompare as B,planLength as y,planOr as Cj}from"../rule-plan.js";function X(j,Z,$,z=f.String,Q={}){return W({name:j,requiresType:z,constraints:Q,validate:(K)=>typeof K==="string"&&Z(K),emit:$})}function minLength(j){const Z={cacheKey:k.Length,failure:B(y(),h.Lt,j)};return g({name:"minLength",requiresType:f.String,constraints:{min:j},plan:Z,validate:($)=>typeof $==="string"&&$.length>=j})}function maxLength(j){const Z={cacheKey:k.Length,failure:B(y(),h.Gt,j)};return g({name:"maxLength",requiresType:f.String,constraints:{max:j},plan:Z,validate:($)=>typeof $==="string"&&$.length<=j})}function length(j,Z){const $={cacheKey:k.Length,failure:Cj(B(y(),h.Lt,j),B(y(),h.Gt,Z))};return g({name:"length",requiresType:f.String,constraints:{min:j,max:Z},plan:$,validate:(z)=>typeof z==="string"&&z.length>=j&&z.length<=Z})}function contains(j){return W({name:"contains",requiresType:f.String,constraints:{seed:j},validate:(Z)=>typeof Z==="string"&&Z.includes(j),emit:(Z,$)=>{const z=$.addRef(j);return`if (!${Z}.includes(refs[${z}])) ${$.fail("contains")};`}})}function notContains(j){return W({name:"notContains",requiresType:f.String,constraints:{seed:j},validate:(Z)=>typeof Z==="string"&&!Z.includes(j),emit:(Z,$)=>{const z=$.addRef(j);return`if (${Z}.includes(refs[${z}])) ${$.fail("notContains")};`}})}function matches(j,Z){const $=j instanceof RegExp?j:new RegExp(j,Z);return W({name:"matches",requiresType:f.String,constraints:{pattern:$.source},validate:(z)=>typeof z==="string"&&$.test(z),emit:(z,Q)=>{return`if (!re[${Q.addRegex($)}].test(${z})) ${Q.fail("matches")};`}})}const isLowercase=W({name:"isLowercase",requiresType:f.String,constraints:{},validate:(j)=>typeof j==="string"&&j===j.toLowerCase(),emit:(j,Z)=>`if (${j} !== ${j}.toLowerCase()) ${Z.fail("isLowercase")};`});const isUppercase=W({name:"isUppercase",requiresType:f.String,constraints:{},validate:(j)=>typeof j==="string"&&j===j.toUpperCase(),emit:(j,Z)=>`if (${j} !== ${j}.toUpperCase()) ${Z.fail("isUppercase")};`});const L=new RegExp(`^[${String.fromCharCode(0)}-${String.fromCharCode(127)}]*$`);const isAscii=X("isAscii",(j)=>L.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(L)}].test(${j})) ${Z.fail("isAscii")};`});const I=/^[a-zA-Z]+$/;const isAlpha=X("isAlpha",(j)=>I.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(I)}].test(${j})) ${Z.fail("isAlpha")};`});const T=/^[a-zA-Z0-9]+$/;const isAlphanumeric=X("isAlphanumeric",(j)=>T.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(T)}].test(${j})) ${Z.fail("isAlphanumeric")};`});const S=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;const isHttpToken=X("isHttpToken",(j)=>S.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(S)}].test(${j})) ${Z.fail("isHttpToken")};`});const A=(j)=>{if(j==="null")return!0;try{return new URL(j).origin===j}catch{return!1}};const isOrigin=W({name:"isOrigin",requiresType:f.String,constraints:{format:"origin"},validate:(j)=>typeof j==="string"&&A(j),emit:(j,Z)=>{return`if (!(refs[${Z.addRef(A)}](${j}))) ${Z.fail("isOrigin")};`}});const d=(j)=>j==="*"||A(j);const isCorsOrigin=W({name:"isCorsOrigin",requiresType:f.String,constraints:{format:"origin",allowWildcard:!0},validate:(j)=>typeof j==="string"&&d(j),emit:(j,Z)=>{return`if (!(refs[${Z.addRef(d)}](${j}))) ${Z.fail("isCorsOrigin")};`}});const isBooleanString=W({name:"isBooleanString",requiresType:f.String,constraints:{},validate:(j)=>j==="true"||j==="false"||j==="1"||j==="0",emit:(j,Z)=>`if (${j} !== 'true' && ${j} !== 'false' && ${j} !== '1' && ${j} !== '0') ${Z.fail("isBooleanString")};`});const Aj=/^[0-9]+$/;const kj=/^[+-]?(?:[0-9]*\.)?[0-9]+$/;function isNumberString(j){const Z=j?.no_symbols??!1,$=Z?Aj:kj;return X("isNumberString",(z)=>$.test(z),(z,Q)=>{return`if (!re[${Q.addRegex($)}].test(${z})) ${Q.fail("isNumberString")};`},f.String,{no_symbols:Z})}function isDecimal(){const j=/^[-+]?(?:\d+(?:\.\d+)?|\.\d+)$/;return X("isDecimal",(Z)=>j.test(Z),(Z,$)=>{return`if (!re[${$.addRegex(j)}].test(${Z})) ${$.fail("isDecimal")};`})}const O=/[^\u0020-\u007E\uFF61-\uFF9F]/;const isFullWidth=X("isFullWidth",(j)=>O.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(O)}].test(${j})) ${Z.fail("isFullWidth")};`});const C=/[\u0020-\u007E\uFF61-\uFF9F]/;const isHalfWidth=X("isHalfWidth",(j)=>C.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(C)}].test(${j})) ${Z.fail("isHalfWidth")};`});const isVariableWidth=X("isVariableWidth",(j)=>O.test(j)&&C.test(j),(j,Z)=>{const $=Z.addRegex(O),z=Z.addRegex(C);return`if (!re[${$}].test(${j}) || !re[${z}].test(${j})) ${Z.fail("isVariableWidth")};`});const p=new RegExp(`[^${String.fromCharCode(0)}-${String.fromCharCode(255)}]`);const isMultibyte=X("isMultibyte",(j)=>p.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(p)}].test(${j})) ${Z.fail("isMultibyte")};`});const _=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;const isSurrogatePair=X("isSurrogatePair",(j)=>_.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(_)}].test(${j})) ${Z.fail("isSurrogatePair")};`});const E=/^[0-9a-fA-F]+$/;const isHexadecimal=X("isHexadecimal",(j)=>E.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(E)}].test(${j})) ${Z.fail("isHexadecimal")};`});const o=/^(0[oO])?[0-7]+$/;const isOctal=X("isOctal",(j)=>o.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(o)}].test(${j})) ${Z.fail("isOctal")};`});const N=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\.[a-zA-Z]{2,}$/;function isEmail(){return X("isEmail",(j)=>N.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(N)}].test(${j})) ${Z.fail("isEmail")};`},f.String,{format:"email"})}const gj=["http","https","ftp"];function isURL(j){const Z=j?.protocols??gj,$=Z.map((Q)=>Q.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),z=new RegExp(`^(?:${$}):\\/\\/(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)(?::(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[1-5]\\d{4}|[1-9]\\d{0,3}|0))?(?:\\/[^\\s]*)?$`);return W({name:"isURL",requiresType:f.String,constraints:{format:"uri",protocols:Z},validate:(Q)=>typeof Q==="string"&&z.test(Q),emit:(Q,K)=>{return`if (!re[${K.addRegex(z)}].test(${Q})) ${K.fail("isURL")};`}})}const R={all:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,1:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-1[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,2:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-2[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,3:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-3[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,4:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,5:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-5[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/};function isUUID(j){const Z=j!=null?R[j]:R.all;return X("isUUID",($)=>Z.test($),($,z)=>{return`if (!re[${z.addRegex(Z)}].test(${$})) ${z.fail("isUUID")};`},f.String,{format:"uuid",version:j})}const q=/^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/;const D=/^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|^::(?:[0-9a-fA-F]{1,4}:){0,6}[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}$|^::$|^::1$|^::(?:ffff(?::0{1,4})?:)?(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$|^(?:[0-9a-fA-F]{1,4}:){1,4}:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/;function isIP(j){return W({name:"isIP",requiresType:f.String,constraints:{version:j},validate:(Z)=>{if(typeof Z!=="string")return!1;if(j===4)return q.test(Z);if(j===6)return D.test(Z);return q.test(Z)||D.test(Z)},emit:(Z,$)=>{if(j===4)return`if (!re[${$.addRegex(q)}].test(${Z})) ${$.fail("isIP")};`;if(j===6)return`if (!re[${$.addRegex(D)}].test(${Z})) ${$.fail("isIP")};`;const z=$.addRegex(q),Q=$.addRegex(D);return`if (!re[${z}].test(${Z}) && !re[${Q}].test(${Z})) ${$.fail("isIP")};`}})}const s=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;const isHexColor=X("isHexColor",(j)=>s.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(s)}].test(${j})) ${Z.fail("isHexColor")};`});const U=/^rgb\(\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*\)$/;const P=/^rgba\(\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\s*,\s*(0|0?\.\d+|1(\.0+)?)\s*\)$/;const n=/^rgb\(\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*\)$/;const x=/^rgba\(\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*,\s*(\d{1,2}|100)%\s*,\s*(0|0?\.\d+|1(?:\.0+)?)\s*\)$/;function isRgbColor(j=!1){return W({name:"isRgbColor",requiresType:f.String,constraints:{includePercentValues:j},validate:(Z)=>{if(typeof Z!=="string")return!1;if(j)return n.test(Z)||x.test(Z)||U.test(Z)||P.test(Z);return U.test(Z)||P.test(Z)},emit:(Z,$)=>{if(j){const K=$.addRegex(n),Y=$.addRegex(x),J=$.addRegex(U),w=$.addRegex(P);return`if (!re[${K}].test(${Z}) && !re[${Y}].test(${Z}) && !re[${J}].test(${Z}) && !re[${w}].test(${Z})) ${$.fail("isRgbColor")};`}const z=$.addRegex(U),Q=$.addRegex(P);return`if (!re[${z}].test(${Z}) && !re[${Q}].test(${Z})) ${$.fail("isRgbColor")};`}})}const u=/^(?:hsl\(\s*(?:360|3[0-5]\d|[12]\d{2}|[1-9]\d|\d)\s*,\s*(?:100|[1-9]\d|\d)%\s*,\s*(?:100|[1-9]\d|\d)%\s*\)|hsla\(\s*(?:360|3[0-5]\d|[12]\d{2}|[1-9]\d|\d)\s*,\s*(?:100|[1-9]\d|\d)%\s*,\s*(?:100|[1-9]\d|\d)%\s*,\s*(?:0|0?\.\d+|1(?:\.0+)?)\s*\))$/;const isHSL=X("isHSL",(j)=>u.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(u)}].test(${j})) ${Z.fail("isHSL")};`});const l=/^[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}$/;const i=/^[0-9a-fA-F]{2}(?:-[0-9a-fA-F]{2}){5}$/;const m=/^[0-9a-fA-F]{12}$/;function isMACAddress(j){return W({name:"isMACAddress",requiresType:f.String,constraints:{no_separators:j?.no_separators},validate:(Z)=>{if(typeof Z!=="string")return!1;if(j?.no_separators)return m.test(Z);return l.test(Z)||i.test(Z)},emit:(Z,$)=>{if(j?.no_separators)return`if (!re[${$.addRegex(m)}].test(${Z})) ${$.fail("isMACAddress")};`;const z=$.addRegex(l),Q=$.addRegex(i);return`if (!re[${z}].test(${Z}) && !re[${Q}].test(${Z})) ${$.fail("isMACAddress")};`}})}function c(j){const Z=j.replace(/[-\s]/g,"");if(!/^\d{9}[\dX]$/.test(Z))return!1;let $=0;for(let Q=0;Q<9;Q++)$+=(10-Q)*(Z.charCodeAt(Q)-48);const z=Z[9]==="X"?10:Z.charCodeAt(9)-48;$+=z;return $%11===0}function r(j){const Z=j.replace(/[-\s]/g,"");if(!/^\d{13}$/.test(Z))return!1;let $=0;for(let Q=0;Q<12;Q++)$+=(Z.charCodeAt(Q)-48)*(Q%2===0?1:3);return(10-$%10)%10===Z.charCodeAt(12)-48}function isISBN(j){const Z=(Q)=>{if(typeof Q!=="string")return!1;if(j===10)return c(Q);if(j===13)return r(Q);return c(Q)||r(Q)},$=(Q)=>`{var s=${Q}.replace(/[-\\s]/g,'');if(!/^\\d{9}[\\dX]$/.test(s)){%%FAIL%%}else{var sm=0;for(var i=0;i<9;i++)sm+=(10-i)*(s.charCodeAt(i)-48);var l=s[9]==='X'?10:(s.charCodeAt(9)-48);sm+=l;if(sm%11!==0){%%FAIL%%}}}`,z=(Q)=>`{var s=${Q}.replace(/[-\\s]/g,'');if(!/^\\d{13}$/.test(s)){%%FAIL%%}else{var sm=0;for(var i=0;i<12;i++)sm+=(s.charCodeAt(i)-48)*(i%2===0?1:3);var ck=(10-(sm%10))%10;if(ck!==(s.charCodeAt(12)-48)){%%FAIL%%}}}`;return W({name:"isISBN",requiresType:f.String,constraints:{version:j},validate:Z,emit:(Q,K)=>{const Y=K.fail("isISBN");if(j===10)return $(Q).replace(/%%FAIL%%/g,Y);if(j===13)return z(Q).replace(/%%FAIL%%/g,Y);const J=$(Q).replace(/%%FAIL%%/g,"__isbn_ok=false"),w=z(Q).replace(/%%FAIL%%/g,"__isbn_ok=false");return`{var __isbn_ok=true;${J} if(!__isbn_ok){__isbn_ok=true;${w}} if(!__isbn_ok)${Y};}`}})}const Bj=/^[A-Z]{2}[A-Z0-9]{9}[0-9]$/;function Lj(j){if(!Bj.test(j))return!1;let Z=0,$=!1;for(let z=j.length-1;z>=0;z--){const Q=j.charCodeAt(z);if(Q<=57){let K=Q-48;if($){K*=2;if(K>9)K-=9}Z+=K;$=!$}else{const K=Q-55,Y=K%10;let J=Y;if($){J*=2;if(J>9)J-=9}Z+=J;$=!$;J=(K-Y)/10;if($){J*=2;if(J>9)J-=9}Z+=J;$=!$}}return Z%10===0}const isISIN=X("isISIN",Lj,(j,Z)=>{return`if (!re[${Z.addRegex(Bj)}].test(${j})) ${Z.fail("isISIN")};
|
|
2
2
|
else { var isSum=0,isAlt=false;
|
|
3
3
|
for(var isI=${j}.length-1;isI>=0;isI--){var isCd=${j}.charCodeAt(isI);if(isCd<=57){var isN=isCd-48;if(isAlt){isN*=2;if(isN>9)isN-=9;}isSum+=isN;isAlt=!isAlt;}else{var isVal=isCd-55;var isO=isVal%10;var isN=isO;if(isAlt){isN*=2;if(isN>9)isN-=9;}isSum+=isN;isAlt=!isAlt;isN=(isVal-isO)/10;if(isAlt){isN*=2;if(isN>9)isN-=9;}isSum+=isN;isAlt=!isAlt;}}
|
|
4
|
-
if(isSum%10!==0)${Z.fail("isISIN")}; }`});const
|
|
5
|
-
else { var dm=${$}.match(/^(\\d{4})-(\\d{2})(?:-(\\d{2}))?/);if(dm){var mo=Number(dm[2]);if(mo<1||mo>12){${z.fail("isISO8601")}}else if(dm[3]!==undefined){var da=Number(dm[3]),md=new Date(Number(dm[1]),mo,0).getDate();if(da<1||da>md){${z.fail("isISO8601")}}}}var tm=${$}.match(/T(\\d{2}):(\\d{2}):(\\d{2})/);if(tm){var hh=Number(tm[1]),mm=Number(tm[2]),ss=Number(tm[3]);if(hh<0||hh>23||mm<0||mm>59||ss<0||ss>60)${z.fail("isISO8601")};} }`}});return X("isISO8601",(Z)=>U.test(Z),(Z,$)=>{return`if (!re[${$.addRegex(U)}].test(${Z})) ${$.fail("isISO8601")};`},"string",{format:"date-time",strict:!1})}const m=/^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$|^[A-Z]{2}[A-Z0-9]{3}\d{7}$/;const isISRC=X("isISRC",(j)=>m.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(m)}].test(${j})) ${Z.fail("isISRC")};`});function kj(j,Z){const $=Z?.requireHyphen!==!1,z=$?j:j.replace(/-/g,"");if(!($?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/).test(z))return!1;const J=z.replace(/-/g,"");let f=0;for(let Y=0;Y<7;Y++)f+=(8-Y)*(J.charCodeAt(Y)-48);const K=J[7]==="X"?10:J.charCodeAt(7)-48;f+=K;return f%11===0}function isISSN(j){const Z=j?.requireHyphen!==!1,$=(Q)=>typeof Q==="string"&&kj(Q,j),z=Z?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/;return q({name:"isISSN",requiresType:"string",constraints:{requireHyphen:j?.requireHyphen},validate:$,emit:(Q,J)=>{const f=J.addRegex(z);return`{var issn=${Z?Q:`${Q}.replace(/-/g,'')`};if(!re[${f}].test(issn)){${J.fail("isISSN")}}else{var id=issn.replace(/-/g,''),iss=0;for(var ii=0;ii<7;ii++)iss+=(8-ii)*(id.charCodeAt(ii)-48);var il=id[7]==='X'?10:(id.charCodeAt(7)-48);iss+=il;if(iss%11!==0)${J.fail("isISSN")};}}`}})}const c=/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/;const isJWT=X("isJWT",(j)=>c.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(c)}].test(${j})) ${Z.fail("isJWT")};`});const r=/^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$/;function isLatLong(){return X("isLatLong",(j)=>r.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(r)}].test(${j})) ${Z.fail("isLatLong")};`})}const v=/^[a-zA-Z]{2,3}(?:-[a-zA-Z]{4})?(?:-(?:[a-zA-Z]{2}|\d{3}))?(?:-[a-zA-Z\d]{5,8})*$/;const isLocale=X("isLocale",(j)=>v.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(v)}].test(${j})) ${Z.fail("isLocale")};`});const t=/^data:([a-zA-Z0-9!#$&\-^_]+\/[a-zA-Z0-9!#$&\-^_]+)(?:;[a-zA-Z0-9-]+=[a-zA-Z0-9-]+)*(?:;base64)?,[\s\S]*$/;const isDataURI=X("isDataURI",(j)=>t.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(t)}].test(${j})) ${Z.fail("isDataURI")};`});function isFQDN(j){const Z=j?.require_tld!==!1,$=j?.allow_underscores??!1,z=j?.allow_trailing_dot??!1,Q=$?/^[a-zA-Z0-9_-]+$/:/^[a-zA-Z0-9-]+$/,J=(f)=>{if(typeof f!=="string")return!1;let K=f;if(z&&K.endsWith("."))K=K.slice(0,-1);if(K.length===0)return!1;const Y=K.split(".");if(Z&&Y.length<2)return!1;if(Z){const W=Y[Y.length-1];if(!W||W.length<2||!/^[a-zA-Z]{2,}$/.test(W))return!1}return Y.every((W)=>{if(W.length===0||W.length>63)return!1;if(!Q.test(W))return!1;if(!$&&(W.startsWith("-")||W.endsWith("-")))return!1;return!0})};return q({name:"isFQDN",requiresType:"string",constraints:{require_tld:j?.require_tld,allow_underscores:j?.allow_underscores,allow_trailing_dot:j?.allow_trailing_dot},validate:J,emit:(f,K)=>{const Y=K.addRegex(Q),W=Z?K.addRegex(/^[a-zA-Z]{2,}$/):-1,F=`var fqOk=true;for(var fi=0;fi<fp.length;fi++){var p=fp[fi];${`if(p.length===0||p.length>63){fqOk=false;break;}if(!re[${Y}].test(p)){fqOk=false;break;}`+($?"":"if(p[0]==='-'||p[p.length-1]==='-'){fqOk=false;break;}")}}if(!fqOk)${K.fail("isFQDN")};`;let w=`{var fq=${f};`;if(z)w+="if(fq.endsWith('.'))fq=fq.slice(0,-1);";w+=`if(fq.length===0)${K.fail("isFQDN")};`;w+="else{var fp=fq.split('.');";if(Z){w+=`if(fp.length<2)${K.fail("isFQDN")};`;w+="else{var tld=fp[fp.length-1];";w+=`if(!tld||tld.length<2||!re[${W}].test(tld))${K.fail("isFQDN")};`;w+=`else{${F}}`;w+="}"}else w+=F;w+="}";w+="}";return w}})}const e=/^(?:6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{1,3}|\d)$/;const isPort=X("isPort",(j)=>e.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(e)}].test(${j})) ${Z.fail("isPort")};`});function gj(j){if(!/^\d{8}$/.test(j)&&!/^\d{13}$/.test(j))return!1;const Z=j.length;let $=0;for(let Q=0;Q<Z-1;Q++){const J=j.charCodeAt(Q)-48;$+=J*(Z===8?Q%2===0?3:1:Q%2===0?1:3)}return(10-$%10)%10===j.charCodeAt(Z-1)-48}const isEAN=X("isEAN",gj,(j,Z)=>{const $=Z.addRegex(/^\d{8}$/),z=Z.addRegex(/^\d{13}$/);return`{var ev=${j};if(!re[${$}].test(ev)&&!re[${z}].test(ev)){${Z.fail("isEAN")}}else{var el=ev.length,es=0;for(var ei=0;ei<el-1;ei++){var ed=ev.charCodeAt(ei)-48;es+=ed*(el===8?(ei%2===0?3:1):(ei%2===0?1:3));}var ec=(10-(es%10))%10;if(ec!==(ev.charCodeAt(el-1)-48))${Z.fail("isEAN")};}}`});const a=new Set(["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]);const isISO31661Alpha2=q({name:"isISO31661Alpha2",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&a.has(j.toUpperCase()),emit:(j,Z)=>{return`if (!refs[${Z.addRef(a)}].has(${j}.toUpperCase())) ${Z.fail("isISO31661Alpha2")};`}});const jj=new Set(["ABW","AFG","AGO","AIA","ALA","ALB","AND","ANT","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","YEM","ZAF","ZMB","ZWE"]);const isISO31661Alpha3=q({name:"isISO31661Alpha3",requiresType:"string",constraints:{},validate:(j)=>typeof j==="string"&&jj.has(j.toUpperCase()),emit:(j,Z)=>{return`if (!refs[${Z.addRef(jj)}].has(${j}.toUpperCase())) ${Z.fail("isISO31661Alpha3")};`}});const Zj=/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/i;const isBIC=X("isBIC",(j)=>Zj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Zj)}].test(${j})) ${Z.fail("isBIC")};`});const $j=/^[a-zA-Z0-9_-]{20}$/;const isFirebasePushId=X("isFirebasePushId",(j)=>$j.test(j),(j,Z)=>{return`if (!re[${Z.addRegex($j)}].test(${j})) ${Z.fail("isFirebasePushId")};`});const zj=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;const isSemVer=X("isSemVer",(j)=>zj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(zj)}].test(${j})) ${Z.fail("isSemVer")};`});const Qj=/^[0-9a-fA-F]{24}$/;const isMongoId=X("isMongoId",(j)=>Qj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Qj)}].test(${j})) ${Z.fail("isMongoId")};`});const Lj=(j)=>{if(typeof j!=="string")return!1;try{JSON.parse(j);return!0}catch{return!1}};const isJSON=q({name:"isJSON",requiresType:"string",constraints:{},validate:Lj,emit:(j,Z)=>`try { JSON.parse(${j}); } catch { ${Z.fail("isJSON")}; }`});const Kj=/^[A-Z2-7]+=*$/i;function isBase32(){return X("isBase32",(j)=>j.length%8===0&&Kj.test(j),(j,Z)=>{const $=Z.addRegex(Kj);return`if (${j}.length % 8 !== 0 || !re[${$}].test(${j})) ${Z.fail("isBase32")};`})}const Jj=/^[1-9A-HJ-NP-Za-km-z]+$/;const isBase58=X("isBase58",(j)=>Jj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Jj)}].test(${j})) ${Z.fail("isBase58")};`});const Ij=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/;const dj=/^[A-Za-z0-9_-]+={0,2}$/;function isBase64(j){const Z=j?.urlSafe?dj:Ij;return X("isBase64",($)=>Z.test($),($,z)=>{return`if (!re[${z.addRegex(Z)}].test(${$})) ${z.fail("isBase64")};`},"string",{urlSafe:j?.urlSafe})}const hj=/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;function pj(j){if(!hj.test(j))return!1;const Z=Number(j.slice(0,4)),$=Number(j.slice(5,7)),z=Number(j.slice(8,10)),Q=new Date(Z,$,0).getDate();return z>=1&&z<=Q}function isDateString(){return X("isDateString",pj,(j,Z)=>{return`if (!re[${Z.addRegex(hj)}].test(${j})) ${Z.fail("isDateString")};
|
|
6
|
-
else { var y=Number(${j}.slice(0,4)),m=Number(${j}.slice(5,7)),d=Number(${j}.slice(8,10));var md=new Date(y,m,0).getDate(); if(d<1||d>md)${Z.fail("isDateString")}; }`})}const
|
|
4
|
+
if(isSum%10!==0)${Z.fail("isISIN")}; }`});const H=/^\d{4}(?:-\d{2}(?:-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?)?)?$/;function Ij(j){if(!H.test(j))return!1;const Z=j.match(/^(\d{4})-(\d{2})(?:-(\d{2}))?/);if(!Z)return!0;const $=Number(Z[2]);if($<1||$>12)return!1;if(Z[3]!==void 0){const J=Number(Z[3]),w=new Date(Number(Z[1]),$,0).getDate();if(J<1||J>w)return!1}const z=j.match(/T(\d{2}):(\d{2}):(\d{2})/);if(!z)return!0;const Q=Number(z[1]),K=Number(z[2]),Y=Number(z[3]);return Q>=0&&Q<=23&&K>=0&&K<=59&&Y>=0&&Y<=60}function isISO8601(j){if(j?.strict){const Z=($)=>typeof $==="string"&&Ij($);return W({name:"isISO8601",requiresType:f.String,constraints:{format:"date-time",strict:!0},validate:Z,emit:($,z)=>{return`if (!re[${z.addRegex(H)}].test(${$})) ${z.fail("isISO8601")};
|
|
5
|
+
else { var dm=${$}.match(/^(\\d{4})-(\\d{2})(?:-(\\d{2}))?/);if(dm){var mo=Number(dm[2]);if(mo<1||mo>12){${z.fail("isISO8601")}}else if(dm[3]!==undefined){var da=Number(dm[3]),md=new Date(Number(dm[1]),mo,0).getDate();if(da<1||da>md){${z.fail("isISO8601")}}}}var tm=${$}.match(/T(\\d{2}):(\\d{2}):(\\d{2})/);if(tm){var hh=Number(tm[1]),mm=Number(tm[2]),ss=Number(tm[3]);if(hh<0||hh>23||mm<0||mm>59||ss<0||ss>60)${z.fail("isISO8601")};} }`}})}return X("isISO8601",(Z)=>H.test(Z),(Z,$)=>{return`if (!re[${$.addRegex(H)}].test(${Z})) ${$.fail("isISO8601")};`},f.String,{format:"date-time",strict:!1})}const v=/^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$|^[A-Z]{2}[A-Z0-9]{3}\d{7}$/;const isISRC=X("isISRC",(j)=>v.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(v)}].test(${j})) ${Z.fail("isISRC")};`});function Tj(j,Z){const $=Z?.requireHyphen!==!1,z=$?j:j.replace(/-/g,"");if(!($?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/).test(z))return!1;const K=z.replace(/-/g,"");let Y=0;for(let w=0;w<7;w++)Y+=(8-w)*(K.charCodeAt(w)-48);const J=K[7]==="X"?10:K.charCodeAt(7)-48;Y+=J;return Y%11===0}function isISSN(j){const Z=j?.requireHyphen!==!1,$=(Q)=>typeof Q==="string"&&Tj(Q,j),z=Z?/^\d{4}-\d{3}[\dX]$/:/^\d{7}[\dX]$/;return W({name:"isISSN",requiresType:f.String,constraints:{requireHyphen:j?.requireHyphen},validate:$,emit:(Q,K)=>{const Y=K.addRegex(z);return`{var issn=${Z?Q:`${Q}.replace(/-/g,'')`};if(!re[${Y}].test(issn)){${K.fail("isISSN")}}else{var id=issn.replace(/-/g,''),iss=0;for(var ii=0;ii<7;ii++)iss+=(8-ii)*(id.charCodeAt(ii)-48);var il=id[7]==='X'?10:(id.charCodeAt(7)-48);iss+=il;if(iss%11!==0)${K.fail("isISSN")};}}`}})}const t=/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/;const isJWT=X("isJWT",(j)=>t.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(t)}].test(${j})) ${Z.fail("isJWT")};`});const a=/^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$/;function isLatLong(){return X("isLatLong",(j)=>a.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(a)}].test(${j})) ${Z.fail("isLatLong")};`})}const e=/^[a-zA-Z]{2,3}(?:-[a-zA-Z]{4})?(?:-(?:[a-zA-Z]{2}|\d{3}))?(?:-[a-zA-Z\d]{5,8})*$/;const isLocale=X("isLocale",(j)=>e.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(e)}].test(${j})) ${Z.fail("isLocale")};`});const jj=/^data:([a-zA-Z0-9!#$&\-^_]+\/[a-zA-Z0-9!#$&\-^_]+)(?:;[a-zA-Z0-9-]+=[a-zA-Z0-9-]+)*(?:;base64)?,[\s\S]*$/;const isDataURI=X("isDataURI",(j)=>jj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(jj)}].test(${j})) ${Z.fail("isDataURI")};`});function isFQDN(j){const Z=j?.require_tld!==!1,$=j?.allow_underscores??!1,z=j?.allow_trailing_dot??!1,Q=$?/^[a-zA-Z0-9_-]+$/:/^[a-zA-Z0-9-]+$/,K=(Y)=>{if(typeof Y!=="string")return!1;let J=Y;if(z&&J.endsWith("."))J=J.slice(0,-1);if(J.length===0)return!1;const w=J.split(".");if(Z&&w.length<2)return!1;if(Z){const b=w[w.length-1];if(!b||b.length<2||!/^[a-zA-Z]{2,}$/.test(b))return!1}return w.every((b)=>{if(b.length===0||b.length>63)return!1;if(!Q.test(b))return!1;if(!$&&(b.startsWith("-")||b.endsWith("-")))return!1;return!0})};return W({name:"isFQDN",requiresType:f.String,constraints:{require_tld:j?.require_tld,allow_underscores:j?.allow_underscores,allow_trailing_dot:j?.allow_trailing_dot},validate:K,emit:(Y,J)=>{const w=J.addRegex(Q),b=Z?J.addRegex(/^[a-zA-Z]{2,}$/):-1,G=`var fqOk=true;for(var fi=0;fi<fp.length;fi++){var p=fp[fi];${`if(p.length===0||p.length>63){fqOk=false;break;}if(!re[${w}].test(p)){fqOk=false;break;}`+($?"":"if(p[0]==='-'||p[p.length-1]==='-'){fqOk=false;break;}")}}if(!fqOk)${J.fail("isFQDN")};`;let F=`{var fq=${Y};`;if(z)F+="if(fq.endsWith('.'))fq=fq.slice(0,-1);";F+=`if(fq.length===0)${J.fail("isFQDN")};`;F+="else{var fp=fq.split('.');";if(Z){F+=`if(fp.length<2)${J.fail("isFQDN")};`;F+="else{var tld=fp[fp.length-1];";F+=`if(!tld||tld.length<2||!re[${b}].test(tld))${J.fail("isFQDN")};`;F+=`else{${G}}`;F+="}"}else F+=G;F+="}";F+="}";return F}})}const Zj=/^(?:6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{1,3}|\d)$/;const isPort=X("isPort",(j)=>Zj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Zj)}].test(${j})) ${Z.fail("isPort")};`});function Sj(j){if(!/^\d{8}$/.test(j)&&!/^\d{13}$/.test(j))return!1;const Z=j.length;let $=0;for(let Q=0;Q<Z-1;Q++){const K=j.charCodeAt(Q)-48;$+=K*(Z===8?Q%2===0?3:1:Q%2===0?1:3)}return(10-$%10)%10===j.charCodeAt(Z-1)-48}const isEAN=X("isEAN",Sj,(j,Z)=>{const $=Z.addRegex(/^\d{8}$/),z=Z.addRegex(/^\d{13}$/);return`{var ev=${j};if(!re[${$}].test(ev)&&!re[${z}].test(ev)){${Z.fail("isEAN")}}else{var el=ev.length,es=0;for(var ei=0;ei<el-1;ei++){var ed=ev.charCodeAt(ei)-48;es+=ed*(el===8?(ei%2===0?3:1):(ei%2===0?1:3));}var ec=(10-(es%10))%10;if(ec!==(ev.charCodeAt(el-1)-48))${Z.fail("isEAN")};}}`});const $j=new Set(["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]);const isISO31661Alpha2=W({name:"isISO31661Alpha2",requiresType:f.String,constraints:{},validate:(j)=>typeof j==="string"&&$j.has(j.toUpperCase()),emit:(j,Z)=>{return`if (!refs[${Z.addRef($j)}].has(${j}.toUpperCase())) ${Z.fail("isISO31661Alpha2")};`}});const zj=new Set(["ABW","AFG","AGO","AIA","ALA","ALB","AND","ANT","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","YEM","ZAF","ZMB","ZWE"]);const isISO31661Alpha3=W({name:"isISO31661Alpha3",requiresType:f.String,constraints:{},validate:(j)=>typeof j==="string"&&zj.has(j.toUpperCase()),emit:(j,Z)=>{return`if (!refs[${Z.addRef(zj)}].has(${j}.toUpperCase())) ${Z.fail("isISO31661Alpha3")};`}});const Qj=/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/i;const isBIC=X("isBIC",(j)=>Qj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Qj)}].test(${j})) ${Z.fail("isBIC")};`});const Jj=/^[a-zA-Z0-9_-]{20}$/;const isFirebasePushId=X("isFirebasePushId",(j)=>Jj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Jj)}].test(${j})) ${Z.fail("isFirebasePushId")};`});const Kj=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;const isSemVer=X("isSemVer",(j)=>Kj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Kj)}].test(${j})) ${Z.fail("isSemVer")};`});const Xj=/^[0-9a-fA-F]{24}$/;const isMongoId=X("isMongoId",(j)=>Xj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Xj)}].test(${j})) ${Z.fail("isMongoId")};`});const dj=(j)=>{if(typeof j!=="string")return!1;try{JSON.parse(j);return!0}catch{return!1}};const isJSON=W({name:"isJSON",requiresType:f.String,constraints:{},validate:dj,emit:(j,Z)=>`try { JSON.parse(${j}); } catch { ${Z.fail("isJSON")}; }`});const fj=/^[A-Z2-7]+=*$/i;function isBase32(){return X("isBase32",(j)=>j.length%8===0&&fj.test(j),(j,Z)=>{const $=Z.addRegex(fj);return`if (${j}.length % 8 !== 0 || !re[${$}].test(${j})) ${Z.fail("isBase32")};`})}const Yj=/^[1-9A-HJ-NP-Za-km-z]+$/;const isBase58=X("isBase58",(j)=>Yj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Yj)}].test(${j})) ${Z.fail("isBase58")};`});const pj=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/;const _j=/^[A-Za-z0-9_-]+={0,2}$/;function isBase64(j){const Z=j?.urlSafe?_j:pj;return X("isBase64",($)=>Z.test($),($,z)=>{return`if (!re[${z.addRegex(Z)}].test(${$})) ${z.fail("isBase64")};`},f.String,{urlSafe:j?.urlSafe})}const yj=/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;function Ej(j){if(!yj.test(j))return!1;const Z=Number(j.slice(0,4)),$=Number(j.slice(5,7)),z=Number(j.slice(8,10)),Q=new Date(Z,$,0).getDate();return z>=1&&z<=Q}function isDateString(){return X("isDateString",Ej,(j,Z)=>{return`if (!re[${Z.addRegex(yj)}].test(${j})) ${Z.fail("isDateString")};
|
|
6
|
+
else { var y=Number(${j}.slice(0,4)),m=Number(${j}.slice(5,7)),d=Number(${j}.slice(8,10));var md=new Date(y,m,0).getDate(); if(d<1||d>md)${Z.fail("isDateString")}; }`})}const Wj=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-^_.+]*(?:;.+)?$/;const isMimeType=X("isMimeType",(j)=>Wj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Wj)}].test(${j})) ${Z.fail("isMimeType")};`});const wj=/^(?:[-+]?\$?|\$[-+]?)(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d{1,2})?$/;function isCurrency(){return X("isCurrency",(j)=>wj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(wj)}].test(${j})) ${Z.fail("isCurrency")};`})}const bj=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}(?:&[a-z][a-z0-9.]*=[^&\s]*)*$/i;const isMagnetURI=X("isMagnetURI",(j)=>bj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(bj)}].test(${j})) ${Z.fail("isMagnetURI")};`});function oj(j){const Z=j.replace(/[\s-]/g,"");if(Z.length===0||!/^\d+$/.test(Z))return!1;let $=0,z=!1;for(let Q=Z.length-1;Q>=0;Q--){let K=Z.charCodeAt(Q)-48;if(z){K*=2;if(K>9)K-=9}$+=K;z=!z}return $%10===0}const isCreditCard=W({name:"isCreditCard",requiresType:f.String,constraints:{},validate:(j)=>typeof j==="string"&&oj(j),emit:(j,Z)=>`{
|
|
7
7
|
var cs=${j}.replace(/[\\s-]/g,'');
|
|
8
8
|
if(cs.length===0||!/^\\d+$/.test(cs)){${Z.fail("isCreditCard")}}
|
|
9
9
|
else{var sum=0,alt=false;
|
|
10
10
|
for(var ci=cs.length-1;ci>=0;ci--){var cn=cs.charCodeAt(ci)-48;if(alt){cn*=2;if(cn>9)cn-=9;}sum+=cn;alt=!alt;}
|
|
11
11
|
if(sum%10!==0)${Z.fail("isCreditCard")};}
|
|
12
|
-
}`});const
|
|
12
|
+
}`});const Oj={AD:24,AE:23,AL:28,AT:20,AZ:28,BA:20,BE:16,BG:22,BH:22,BR:29,CH:21,CR:22,CY:28,CZ:24,DE:22,DK:18,DO:28,EE:20,ES:24,FI:18,FO:18,FR:27,GB:22,GE:22,GI:23,GL:18,GR:27,GT:28,HR:21,HU:28,IE:22,IL:23,IS:26,IT:27,JO:30,KW:30,KZ:20,LB:28,LC:32,LI:21,LT:20,LU:20,LV:21,MC:27,MD:24,ME:22,MK:19,MR:27,MT:31,MU:30,NL:18,NO:15,PK:24,PL:28,PS:29,PT:25,QA:29,RO:24,RS:22,SA:24,SC:31,SE:24,SI:19,SK:24,SM:27,ST:25,SV:28,TL:23,TN:24,TR:26,UA:29,VA:22,VG:24,XK:20};function Nj(j,Z){let $=Z?.allowSpaces?j.replace(/\s/g,""):j;$=$.toUpperCase();if(!/^[A-Z]{2}\d{2}[A-Z0-9]+$/.test($))return!1;const z=$.slice(0,2),Q=Oj[z];if(Q!==void 0&&$.length!==Q)return!1;const K=$.slice(4)+$.slice(0,4);let Y=0;for(let J=0;J<K.length;J++){const w=K.charCodeAt(J);if(w<=57)Y=(Y*10+(w-48))%97;else{const b=w-55;Y=(Y*100+b)%97}}return Y===1}function isIBAN(j){const Z=j?.allowSpaces??!1,$=(z)=>typeof z==="string"&&Nj(z,j);return W({name:"isIBAN",requiresType:f.String,constraints:{allowSpaces:j?.allowSpaces},validate:$,emit:(z,Q)=>{const K=Q.addRegex(/^[A-Z]{2}\d{2}[A-Z0-9]+$/),Y=Q.addRef(Oj);let J="{";J+=`var ib=${Z?`${z}.replace(/\\s/g,'')`:z}.toUpperCase();`;J+=`if(!re[${K}].test(ib)){${Q.fail("isIBAN")}}`;J+=`else{var ic=ib.slice(0,2),il=refs[${Y}][ic];`;J+=`if(il!==undefined&&ib.length!==il){${Q.fail("isIBAN")}}`;J+="else{var ir=ib.slice(4)+ib.slice(0,4);";J+="var im=0;for(var ii=0;ii<ir.length;ii++){var cc=ir.charCodeAt(ii);";J+="if(cc<=57){im=(im*10+(cc-48))%97;}else{im=(im*100+(cc-55))%97;}}";J+=`if(im!==1)${Q.fail("isIBAN")};}}}`;return J}})}function isByteLength(j,Z){const $=(z)=>{if(typeof z!=="string")return!1;const Q=Buffer.byteLength(z,"utf8");if(Q<j)return!1;if(Z!==void 0&&Q>Z)return!1;return!0};return W({name:"isByteLength",requiresType:f.String,constraints:{min:j,max:Z},validate:$,emit:(z,Q)=>{let K=`{var bl=Buffer.byteLength(${z},'utf8');`;K+=`if(bl<${j})${Q.fail("isByteLength")};`;if(Z!==void 0)K+=`else if(bl>${Z})${Q.fail("isByteLength")};`;K+="}";return K}})}const Rj={md5:/^[a-f0-9]{32}$/i,md4:/^[a-f0-9]{32}$/i,md2:/^[a-f0-9]{32}$/i,sha1:/^[a-f0-9]{40}$/i,sha256:/^[a-f0-9]{64}$/i,sha384:/^[a-f0-9]{96}$/i,sha512:/^[a-f0-9]{128}$/i,ripemd128:/^[a-f0-9]{32}$/i,ripemd160:/^[a-f0-9]{40}$/i,"tiger128,3":/^[a-f0-9]{32}$/i,"tiger128,4":/^[a-f0-9]{32}$/i,"tiger160,3":/^[a-f0-9]{40}$/i,"tiger160,4":/^[a-f0-9]{40}$/i,"tiger192,3":/^[a-f0-9]{48}$/i,"tiger192,4":/^[a-f0-9]{48}$/i,crc32:/^[a-f0-9]{8}$/i,crc32b:/^[a-f0-9]{8}$/i};function isHash(j){const Z=Rj[j];return W({name:"isHash",requiresType:f.String,constraints:{algorithm:j},validate:($)=>typeof $==="string"&&!!Z&&Z.test($),emit:($,z)=>{if(!Z)return z.fail("isHash")+";";return`if (!re[${z.addRegex(Z)}].test(${$})) ${z.fail("isHash")};`}})}const Fj=/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/i;const isRFC3339=X("isRFC3339",(j)=>Fj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Fj)}].test(${j})) ${Z.fail("isRFC3339")};`});const Vj=/^([01]\d|2[0-3]):[0-5]\d$/;const isMilitaryTime=X("isMilitaryTime",(j)=>Vj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Vj)}].test(${j})) ${Z.fail("isMilitaryTime")};`});function sj(j){if(typeof j==="number")return j>=-90&&j<=90;if(typeof j==="string"){const Z=parseFloat(j);if(isNaN(Z))return!1;if(!/^-?\d+(\.\d+)?$/.test(j))return!1;return Z>=-90&&Z<=90}return!1}const isLatitude=W({name:"isLatitude",constraints:{},validate:sj,emit:(j,Z)=>{const $=Z.addRegex(/^-?\d+(\.\d+)?$/);return`if(typeof ${j}==='number'){if(${j}<-90||${j}>90)${Z.fail("isLatitude")};}else if(typeof ${j}==='string'){if(!re[${$}].test(${j})){${Z.fail("isLatitude")}}else{var lt=parseFloat(${j});if(lt<-90||lt>90)${Z.fail("isLatitude")};}}else{${Z.fail("isLatitude")};}`}});function nj(j){if(typeof j==="number")return j>=-180&&j<=180;if(typeof j==="string"){const Z=parseFloat(j);if(isNaN(Z))return!1;if(!/^-?\d+(\.\d+)?$/.test(j))return!1;return Z>=-180&&Z<=180}return!1}const isLongitude=W({name:"isLongitude",constraints:{},validate:nj,emit:(j,Z)=>{const $=Z.addRegex(/^-?\d+(\.\d+)?$/);return`if(typeof ${j}==='number'){if(${j}<-180||${j}>180)${Z.fail("isLongitude")};}else if(typeof ${j}==='string'){if(!re[${$}].test(${j})){${Z.fail("isLongitude")}}else{var ln=parseFloat(${j});if(ln<-180||ln>180)${Z.fail("isLongitude")};}}else{${Z.fail("isLongitude")};}`}});const Gj=/^0x[0-9a-fA-F]{40}$/;const isEthereumAddress=X("isEthereumAddress",(j)=>Gj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Gj)}].test(${j})) ${Z.fail("isEthereumAddress")};`});const Mj=/^1[a-km-zA-HJ-NP-Z1-9]{25,34}$/;const qj=/^3[a-km-zA-HJ-NP-Z1-9]{25,34}$/;const Dj=/^(bc1)[a-z0-9]{6,87}$/;const isBtcAddress=X("isBtcAddress",(j)=>Mj.test(j)||qj.test(j)||Dj.test(j),(j,Z)=>{const $=Z.addRegex(Mj),z=Z.addRegex(qj),Q=Z.addRegex(Dj);return`if (!re[${$}].test(${j}) && !re[${z}].test(${j}) && !re[${Q}].test(${j})) ${Z.fail("isBtcAddress")};`});const Uj=new Set(["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","YER","ZAR","ZMW","ZWL"]);const isISO4217CurrencyCode=X("isISO4217CurrencyCode",(j)=>Uj.has(j),(j,Z)=>{return`if (!refs[${Z.addRef(Uj)}].has(${j})) ${Z.fail("isISO4217CurrencyCode")};`});const Pj=/^\+[1-9]\d{6,14}$/;const isPhoneNumber=X("isPhoneNumber",(j)=>Pj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Pj)}].test(${j})) ${Z.fail("isPhoneNumber")};`});function isStrongPassword(j){const Z=j?.minLength??8,$=j?.minLowercase??1,z=j?.minUppercase??1,Q=j?.minNumbers??1,K=j?.minSymbols??1,Y=(J)=>{if(J.length<Z)return!1;let w=0,b=0,V=0,G=0;for(let F=0;F<J.length;F++){const M=J.charCodeAt(F);if(M>=97&&M<=122)w++;else if(M>=65&&M<=90)b++;else if(M>=48&&M<=57)V++;else G++}return w>=$&&b>=z&&V>=Q&&G>=K};return W({name:"isStrongPassword",requiresType:f.String,constraints:{},validate:(J)=>typeof J==="string"&&Y(J),emit:(J,w)=>{const b=w.fail("isStrongPassword"),V=[];if($>0)V.push(`spLo<${$}`);if(z>0)V.push(`spUp<${z}`);if(Q>0)V.push(`spNum<${Q}`);if(K>0)V.push(`spSym<${K}`);const G=V.length===0?"":`if(${V.join("||")}){${b}}`;return`if(${J}.length<${Z}){${b}}else{var spLo=0,spUp=0,spNum=0,spSym=0;for(var spI=0;spI<${J}.length;spI++){var spC=${J}.charCodeAt(spI);if(spC>=97&&spC<=122)spLo++;else if(spC>=65&&spC<=90)spUp++;else if(spC>=48&&spC<=57)spNum++;else spSym++;}`+G+"}"}})}const xj={US:/^\d{2}-\d{7}$/,KR:/^\d{3}-\d{2}-\d{5}$/,DE:/^\d{11}$/,FR:/^[0-9]{13}$/,GB:/^\d{10}$/,IT:/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/i,ES:/^[0-9A-Z]\d{7}[0-9A-Z]$/i,AU:/^\d{11}$/,CA:/^\d{9}$/,IN:/^[A-Z]{5}\d{4}[A-Z]$/i};function isTaxId(j){const Z=xj[j];return W({name:"isTaxId",requiresType:f.String,constraints:{locale:j},validate:($)=>typeof $==="string"&&!!Z&&Z.test($),emit:($,z)=>{if(!Z)return z.fail("isTaxId")+";";return`if (!re[${z.addRegex(Z)}].test(${$})) ${z.fail("isTaxId")};`}})}const Hj=/^[0-9A-HJKMNP-TV-Z]{26}$/;function isULID(){return X("isULID",(j)=>Hj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(Hj)}].test(${j})) ${Z.fail("isULID")};`},f.String,{format:"ulid"})}const hj=/^[a-z][0-9a-z]{23,31}$/;function isCUID2(){return X("isCUID2",(j)=>hj.test(j),(j,Z)=>{return`if (!re[${Z.addRegex(hj)}].test(${j})) ${Z.fail("isCUID2")};`},f.String,{format:"cuid2"})}export{minLength,maxLength,length,contains,notContains,matches,isLowercase,isUppercase,isAscii,isAlpha,isAlphanumeric,isHttpToken,isOrigin,isCorsOrigin,isBooleanString,isNumberString,isDecimal,isFullWidth,isHalfWidth,isVariableWidth,isMultibyte,isSurrogatePair,isHexadecimal,isOctal,isEmail,isURL,isUUID,isIP,isHexColor,isRgbColor,isHSL,isMACAddress,isISBN,isISIN,isISO8601,isISRC,isISSN,isJWT,isLatLong,isLocale,isDataURI,isFQDN,isPort,isEAN,isISO31661Alpha2,isISO31661Alpha3,isBIC,isFirebasePushId,isSemVer,isMongoId,isJSON,isBase32,isBase58,isBase64,isDateString,isMimeType,isCurrency,isMagnetURI,isCreditCard,isIBAN,isByteLength,isHash,isRFC3339,isMilitaryTime,isLatitude,isLongitude,isEthereumAddress,isBtcAddress,isISO4217CurrencyCode,isPhoneNumber,isStrongPassword,isTaxId,isULID,isCUID2};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{makeRule as
|
|
2
|
-
else `:""}{ var exp=${h}.toExponential().split('e'); var mant=(exp[0].split('.')[1]||'').length; var exp2=parseInt(exp[1],10); if(Math.max(0,mant-exp2)>${
|
|
3
|
-
else if (isNaN(${h})) ${j.fail("isNumber")};`;if(!
|
|
4
|
-
else if (${h} === Infinity || ${h} === -Infinity) ${j.fail("isNumber")};`;if(
|
|
5
|
-
else { var exp=${h}.toExponential().split('e'); var mant=(exp[0].split('.')[1]||'').length; var exp2=parseInt(exp[1],10); if(Math.max(0,mant-exp2)>${
|
|
1
|
+
import{RequiredType as G}from"../enums.js";import{makeRule as z}from"../rule-plan.js";export const isString=z({name:"isString",constraints:{},validate:(b)=>typeof b==="string",emit:(b,g)=>`if (typeof ${b} !== 'string') ${g.fail("isString")};`});export function isNumber(b){const g=b?.allowNaN??!1,C=b?.allowInfinity??!1,A=b?.maxDecimalPlaces,B=(h)=>{if(typeof h!=="number")return!1;if(isNaN(h))return g;if(!isFinite(h))return C;if(A!==void 0){const j=h.toExponential().split("e"),E=(j[0].split(".")[1]||"").length,F=parseInt(j[1],10);if(Math.max(0,E-F)>A)return!1}return!0};return z({name:"isNumber",constraints:{allowNaN:b?.allowNaN,allowInfinity:b?.allowInfinity,maxDecimalPlaces:b?.maxDecimalPlaces},validate:B,emit:(h,j)=>{if(j.insideTypeGate){let F="";if(!C)F+=`if (${h} === Infinity || ${h} === -Infinity) ${j.fail("isNumber")};`;if(A!==void 0)F+=`${F?`
|
|
2
|
+
else `:""}{ var exp=${h}.toExponential().split('e'); var mant=(exp[0].split('.')[1]||'').length; var exp2=parseInt(exp[1],10); if(Math.max(0,mant-exp2)>${A}) ${j.fail("isNumber")}; }`;return F}let E=`if (typeof ${h} !== 'number') ${j.fail("isNumber")};`;if(!g)E+=`
|
|
3
|
+
else if (isNaN(${h})) ${j.fail("isNumber")};`;if(!C)E+=`
|
|
4
|
+
else if (${h} === Infinity || ${h} === -Infinity) ${j.fail("isNumber")};`;if(A!==void 0)E+=`
|
|
5
|
+
else { var exp=${h}.toExponential().split('e'); var mant=(exp[0].split('.')[1]||'').length; var exp2=parseInt(exp[1],10); if(Math.max(0,mant-exp2)>${A}) ${j.fail("isNumber")}; }`;return E}})}export const isBoolean=z({name:"isBoolean",constraints:{},validate:(b)=>typeof b==="boolean",emit:(b,g)=>`if (typeof ${b} !== 'boolean') ${g.fail("isBoolean")};`});export const isDate=z({name:"isDate",constraints:{},validate:(b)=>b instanceof Date&&!isNaN(b.getTime()),emit:(b,g)=>`if (!(${b} instanceof Date) || isNaN(${b}.getTime())) ${g.fail("isDate")};`});export function isEnum(b){const g=Object.values(b),C=g.length>=8,A=C?new Set(g):null;return z({name:"isEnum",constraints:{values:g},validate:C?(B)=>A.has(B):(B)=>g.includes(B),emit:(B,h)=>{if(C)return`if (!refs[${h.addRef(A)}].has(${B})) ${h.fail("isEnum")};`;return`if (!refs[${h.addRef(g)}].includes(${B})) ${h.fail("isEnum")};`}})}export const isInt=z({name:"isInt",requiresType:G.Number,constraints:{},validate:(b)=>typeof b==="number"&&Number.isInteger(b),emit:(b,g)=>g.insideTypeGate?`if (!Number.isInteger(${b})) ${g.fail("isInt")};`:`if (typeof ${b} !== 'number' || !Number.isInteger(${b})) ${g.fail("isInt")};`});export const isArray=z({name:"isArray",constraints:{},validate:(b)=>Array.isArray(b),emit:(b,g)=>`if (!Array.isArray(${b})) ${g.fail("isArray")};`});export const isObject=z({name:"isObject",constraints:{},validate:(b)=>typeof b==="object"&&b!==null&&!Array.isArray(b),emit:(b,g)=>`if (typeof ${b} !== 'object' || ${b} === null || Array.isArray(${b})) ${g.fail("isObject")};`});export const isRegExp=z({name:"isRegExp",constraints:{},validate:(b)=>b instanceof RegExp,emit:(b,g)=>`if (!(${b} instanceof RegExp)) ${g.fail("isRegExp")};`});export const isFunction=z({name:"isFunction",constraints:{},validate:(b)=>typeof b==="function",emit:(b,g)=>`if (typeof ${b} !== 'function') ${g.fail("isFunction")};`});export const isStatelessRegExp=z({name:"isStatelessRegExp",constraints:{},validate:(b)=>b instanceof RegExp&&!b.global&&!b.sticky,emit:(b,g)=>`if (!(${b} instanceof RegExp) || ${b}.global || ${b}.sticky) ${g.fail("isStatelessRegExp")};`});
|