vest 3.2.4-dev-c9788a → 3.2.7

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.
Files changed (70) hide show
  1. package/README.md +115 -0
  2. package/any.d.ts +3 -0
  3. package/any.js +1 -0
  4. package/classNames.d.ts +14 -0
  5. package/classNames.js +1 -0
  6. package/docs/.nojekyll +0 -0
  7. package/docs/README.md +115 -0
  8. package/docs/_assets/favicon.ico +0 -0
  9. package/docs/_assets/vest-logo.png +0 -0
  10. package/docs/_sidebar.md +19 -0
  11. package/docs/_sidebar.md.bak +14 -0
  12. package/docs/cross_field_validations.md +79 -0
  13. package/docs/enforce.md +18 -0
  14. package/docs/enforce.md.bak +13 -0
  15. package/docs/exclusion.md +128 -0
  16. package/docs/getting_started.md +79 -0
  17. package/docs/group.md +142 -0
  18. package/docs/index.html +41 -0
  19. package/docs/migration.md +107 -0
  20. package/docs/n4s/compound.md +187 -0
  21. package/docs/n4s/custom.md +52 -0
  22. package/docs/n4s/external.md +54 -0
  23. package/docs/n4s/rules.md +1282 -0
  24. package/docs/n4s/template.md +53 -0
  25. package/docs/node.md +43 -0
  26. package/docs/optional.md +51 -0
  27. package/docs/result.md +238 -0
  28. package/docs/state.md +102 -0
  29. package/docs/test.md +172 -0
  30. package/docs/utilities.md +105 -0
  31. package/docs/warn.md +82 -0
  32. package/enforce.d.ts +230 -0
  33. package/esm/package.json +1 -0
  34. package/esm/vest.es.development.js +2493 -0
  35. package/esm/vest.es.production.js +2490 -0
  36. package/esm/vest.es.production.min.js +1 -0
  37. package/package.json +65 -12
  38. package/promisify.d.ts +7 -0
  39. package/{dist/umd/promisify.production.js → promisify.js} +1 -1
  40. package/schema.d.ts +26 -0
  41. package/schema.js +1 -0
  42. package/vest.cjs.development.js +2494 -0
  43. package/vest.cjs.production.js +2491 -0
  44. package/vest.cjs.production.min.js +1 -0
  45. package/vest.d.ts +249 -0
  46. package/vest.js +7 -0
  47. package/vest.umd.development.js +2711 -0
  48. package/vest.umd.production.js +2708 -0
  49. package/vest.umd.production.min.js +1 -0
  50. package/vestResult.d.ts +105 -0
  51. package/CHANGELOG.md +0 -52
  52. package/LICENSE +0 -21
  53. package/dist/cjs/classnames.development.js +0 -67
  54. package/dist/cjs/classnames.production.js +0 -1
  55. package/dist/cjs/promisify.development.js +0 -20
  56. package/dist/cjs/promisify.production.js +0 -1
  57. package/dist/cjs/vest.development.js +0 -1616
  58. package/dist/cjs/vest.production.js +0 -1
  59. package/dist/es/classnames.development.js +0 -65
  60. package/dist/es/classnames.production.js +0 -1
  61. package/dist/es/promisify.development.js +0 -18
  62. package/dist/es/promisify.production.js +0 -1
  63. package/dist/es/vest.development.js +0 -1604
  64. package/dist/es/vest.production.js +0 -1
  65. package/dist/umd/classnames.development.js +0 -73
  66. package/dist/umd/classnames.production.js +0 -1
  67. package/dist/umd/promisify.development.js +0 -26
  68. package/dist/umd/vest.development.js +0 -1622
  69. package/dist/umd/vest.production.js +0 -1
  70. package/index.js +0 -7
@@ -0,0 +1 @@
1
+ function e(e){return"function"==typeof e}function t(t,n){return e(t)?t.apply(null,n):t}function n(){return(n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var r=Object.assign;let s=function(e){function t(t,i){var a,u,o=r();return t=n({},o||{},null!==(a=null==e?void 0:e(t,o))&&void 0!==a?a:t),a=s.ctx=Object.freeze(t),s.ancestry.unshift(a),i=i(a),s.ancestry.shift(),s.ctx=null!==(u=s.ancestry[0])&&void 0!==u?u:null,i}function r(){return s.ctx}var s={ancestry:[]};return{run:t,bind:function(e,n){for(var r=arguments.length,s=Array(2<r?r-2:0),i=2;i<r;i++)s[i-2]=arguments[i];return function(){for(var r=arguments.length,i=Array(r),a=0;a<r;a++)i[a]=arguments[a];return t(e,(function(){return n.apply(void 0,s.concat(i))}))}},use:r}}(((e,t)=>t?null:r({},{exclusion:{tests:{},groups:{}}},e))),i=(a=0,()=>""+a++);var a;function u(e){return"function"==typeof e}function o(e){return function(){return!e.apply(this,arguments)}}function l(e){return null===e}let c=o(l);function f(e,t){return e.length===Number(t)}let d=o(f),p=(e=10)=>{const t=[],n=(r,s)=>{const i=n.get(r);return c(i)?i[1]:(s=s(),t.unshift([r.concat(),s]),t.length>e&&(t.length=e),s)};return n.get=e=>t[t.findIndex((([t])=>f(e,t.length)&&e.every(((e,n)=>e===t[n]))))]||null,n};function g(){return s.use().stateRef.testObjects()}let h=e=>{for(const t in e.tests)e.errorCount+=e.tests[t].errorCount,e.warnCount+=e.tests[t].warnCount,e.testCount+=e.tests[t].testCount;return e},m=(e,t,n)=>{const{fieldName:r,isWarning:s,failed:i,statement:a}=t;return e[r]=e[r]||{errorCount:0,warnCount:0,testCount:0},t=e[r],n||(e[r].testCount++,i&&(s?(t.warnCount++,a&&(t.warnings=(t.warnings||[]).concat(a))):(t.errorCount++,a&&(t.errors=(t.errors||[]).concat(a))))),t},y=(e,t)=>{const[n]=g(),{group:r,fieldName:s}=t||{};return t=n.reduce(((t,n)=>(r&&n.groupName!==r||s&&n.fieldName!==s||!n.failed||"warnings"!==e&&n.isWarning||"warnings"===e&&!n.isWarning||(t[n.fieldName]=(t[n.fieldName]||[]).concat(n.statement)),t)),{}),s?t[s]||[]:t};function b(e,t){return y(e,{fieldName:t})}let N=(e,t=Error)=>{throw new t(`[vest]: ${e}`)},w=(e,t,n)=>(t||N(`get${e[0].toUpperCase()}${e.slice(1)}ByGroup requires a group name. Received \`${t}\` instead.`),y(e,{group:t,fieldName:n})),v=(e,t,n)=>!(!e.failed||n&&n!==e.fieldName||"warnings"!==t&&e.isWarning||"warnings"===t&&!e.isWarning),E=(e,t)=>{const[n]=g();return n.some((n=>v(n,e,t)))},F=(e,t,n)=>{const[r]=g();return r.some((r=>t===r.groupName&&v(r,e,n)))};function k(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function C(e){return!(isNaN(parseFloat(e))||isNaN(Number(e))||!isFinite(e))}let O=o(C);function R(e){if(e){if(C(e))return 0===e;if(k(e,"length"))return f(e,0);if("object"==typeof e)return f(Object.keys(e),0)}return!0}let x=o(R),W=e=>{const[{pending:t,lagging:n}]=s.use().stateRef.pending(),r=t.concat(n);return!R(r)&&(e?r.some((t=>t.fieldName===e)):x(r))};function A(e,t){var n;return null!==(n=Object.getOwnPropertyDescriptor(e,"name"))&&void 0!==n&&n.configurable?Object.defineProperty(e,"name",{value:t}):e}function T(e,t){return A((function(){let t=Array.from(arguments),n=t.splice(e.length-1);return e.apply(null,t.concat([n]))}),t||e.name)}let S=p(20),j=e=>{const{stateRef:t}=s.use(),[n]=g(),r={stateRef:t};return S([n,e],s.bind(r,(()=>[["hasErrors",E,"errors"],["hasWarnings",E,"warnings"],["getErrors",b,"errors"],["getWarnings",b,"warnings"],["hasErrorsByGroup",F,"errors"],["hasWarningsByGroup",F,"warnings"],["getErrorsByGroup",w,"errors"],["getWarningsByGroup",w,"warnings"]].concat([["isValid",B]],e?[]:[["done",T(q)]]).reduce(((e,[t,n,i])=>(e[t]=s.bind(r,n,i),e)),(()=>{function e(e,t){e.forEach((e=>{const{fieldName:n,groupName:r}=e;i.tests[n]=m(i.tests,e,t),r&&(i.groups[r]=i.groups[r]||{},i.groups[r][n]=m(i.groups[r],e,t))}))}const[t]=g(),[n]=s.use().stateRef.suiteId(),[r]=s.use().stateRef.skippedTests(),i={errorCount:0,warnCount:0,testCount:0,groups:{},name:n.name,tests:{}};return e(t),e(r,!0),h(i)})()))))};function q(e){let[t,n]=e.reverse();var{stateRef:r}=s.use();e=j();let i=n&&(!e.tests[n]||0===e.tests[n].testCount);if(!u(t)||i)return e;let a=s.bind({stateRef:r},(()=>t(j(!0))));return!W()||n&&!W(n)?(a(),e):([,r]=s.use().stateRef.testCallbacks(),r((e=>(n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(a):e.doneCallbacks.push(a),e))),e)}function B(){let e=j();if(e.hasErrors())return!1;var[t]=g();if(0===t.length)return!1;[t]=s.use().stateRef.optionalFields();let[{pending:n,lagging:r}]=s.use().stateRef.pending();if(x(n.concat(r).filter((e=>!e.isWarning))))return!1;for(let n in e.tests)if(!t[n]&&0===e.tests[n].testCount)return!1;return!0}let I=T((n=>{const[r,a]=n.reverse();u(r)||N("Suite initialization error. Expected `tests` to be a function.");const o=[],l=function(n){function r(e,n){return i.references.push(),s(e,t(n)),function(){return[i.references[e],function(n){return s(e,t(n,[i.references[e]]))}]}}function s(t,r){var s=i.references[t];i.references[t]=r,e(t=a[t][1])&&t(r,s),e(n)&&n()}var i={references:[]},a=[];return{registerStateKey:function(e,t){var n=a.length;return a.push([e,t]),r(n,e)},reset:function(){i.references=[],a.forEach((function(e,t){return r(t,e[0])}))}}}((()=>{o.forEach((e=>e({suiteState:c,type:"suiteStateUpdate"})))})),c=function(e,{suiteId:t,name:n}){return{carryOverTests:e.registerStateKey((()=>[])),optionalFields:e.registerStateKey((()=>({}))),pending:e.registerStateKey((()=>({pending:[],lagging:[]}))),skippedTests:e.registerStateKey((()=>[])),suiteId:e.registerStateKey((()=>({id:t,name:n}))),testCallbacks:e.registerStateKey((()=>({fieldCallbacks:{},doneCallbacks:[]}))),testObjects:e.registerStateKey((()=>[]))}}(l,{suiteId:i(),name:a});return(n=s.bind({stateRef:c},(function(){const[e]=g(),[,t]=s.use().stateRef.carryOverTests(),[{pending:n},i]=s.use().stateRef.pending();return l.reset(),t((()=>e)),i({lagging:n,pending:[]}),r.apply(null,arguments),j()}))).get=s.bind({stateRef:c},j,!0),n.reset=l.reset,n.remove=s.bind({stateRef:c},(e=>{const[t]=g();[].concat(t).forEach((t=>{t.fieldName===e&&t.cancel()}))})),n.subscribe=function(e){u(e)&&(o.push(e),e({type:"suiteSubscribeInit",suiteState:c}))},n}));function P(e){r(this,e)}function K(e){return!!e===e}P.prototype.setFailFast=function(e){return this.failFast=!!e,this},P.unwrap=function(e){return P.is(e)?e.value:e},P.wrap=function(e){return P.is(e)?e:new P({value:e})},P.is=function(e){return e instanceof P};let $=o(K);function G(e){return void 0===e}let U=o(G);function z(e){G(e)||(K(e)?this.setFailed(!e):this.extend(e))}function V(e,t){let n=z.is(e),r=z.is(t);if(n&&r){if(e.setFailed(e.failed||t.failed),R(e.children)&&R(t.children))return e;if(e.children&&t.children){for(let n in e.children)V(e.children[n],t.children[n]);for(let n in t.children)k(e.children,n)||e.setChild(n,t.children[n]);return e}if(e.children){if(!t.children)return e}else e.children=t.children}else{if(n)return e;if(r)return t}return new z(!1)}function D(e,t){return!t.pass&&!t.warn&&(!!P.is(e)&&e.failFast)}function M(e,t){let n=new z(!0);for(let r of[].concat(e)){if(D(t,n))break;n.extend(H(r,t))}return n}function H(e,t){return e.run(t)}function J(e,t,n){let r=new z(!0);R(t)&&r.setFailed(!0);let s=[],i=0;for(let a of t){if(null===(t=H(a,e)))return null;let u=t.pass;if(u?i++:s.push(t),n)if("any"===n.mode){if(u){r.extend(t);break}}else{if(r.extend(t),"all"===n.mode&&!u)break;if("one"===n.mode&&(r.setFailed(1!==i),1<i))break}else if(r.extend(t),u)break}return r.pass&&0===i&&(r.setFailed(!0),s.forEach((e=>r.extend(e)))),r}z.is=function(e){return e instanceof z},z.prototype.asArray=function(){return this.isArray=!0,this},z.prototype.setAttribute=function(e,t){return this[e]=t,this},z.prototype.setFailed=function(e){return this.setAttribute(this.warn?"hasWarnings":"hasErrors",e),this.setAttribute("failed",e)},z.prototype.setChild=function(e,t){if(null===t)return null;let n=this.hasWarnings||t.hasWarnings||t.warn||this.warn;return this.setAttribute("hasWarnings",n&&t.failed||!1),this.setAttribute("hasErrors",this.hasErrors||t.hasErrors||!n&&t.failed||!1),this.setFailed(this.failed||t.failed),this.children=this.children||{},this.children[e]=t},z.prototype.getChild=function(e){return(this.children||{})[e]},z.prototype.extend=function(e){if(null===e)return this;e=z.is(e)?e:(new z).setAttribute("warn",!!this.warn).setFailed(!e);let t=this.failed||e.failed,n=V(e,this).children;r(this,e),R(n)||(this.children=n),this.setFailed(t),this.setAttribute("hasWarnings",!(!this.hasWarnings&&!e.hasWarnings)),this.setAttribute("hasErrors",!(!this.hasErrors&&!e.hasErrors))},Object.defineProperty(z.prototype,"pass",{get(){return!this.failed}});var L=T((function(e,t){return J(e,t,{mode:"all"})})),Q=T((function(e,t){return J(e,t,{mode:"any"})}));function X(e){return!!Array.isArray(e)}let Y=o(X);function Z(e,t,n){let r=P.unwrap(e),s=new z(!0);for(let n in t){let i=t[n],a=r[n];if(D(a,s))break;s.setChild(n,H(i,new P({value:a,obj:r,key:n}).setFailFast(e.failFast)))}if(!(n||{}).loose)for(let e in r)if(!k(t,e))return s.setFailed(!0);return s}var _={allOf:L,anyOf:Q,isArrayOf:T((function(e,t){let n=P.unwrap(e),r=new z(!0).asArray();if(Y(n))return r.setFailed(!0);for(let s=0;s<n.length;s++)r.setChild(s,J(new P({value:n[s],obj:n,key:s}).setFailFast(e.failFast),t,{mode:"any"}));return r})),loose:(e,t)=>Z(e,t,{loose:!0}),oneOf:T((function(e,t){return J(e,t,{mode:"one"})})),optional:T((function(e,t){let{obj:n,key:r}=e;return!(k(n,r)&&!G(n[r]||null===n[r])&&!R(t))||J(n[r],t,{mode:"all"})})),shape:Z};function ee(e,t){return u(e)?e.apply(null,t):e}var te={warn:function(e,t=!0){return t},message:function(e,t){return ee(t,[P.unwrap(e)])},when:function(e,t,n){return n(e=!ee(t,[P.unwrap(e)].concat(P.is(e)?[e.key,e.obj]:[])))}};function ne(e){return String(e)===e}function re(e,t){return ne(e)&&ne(t)&&e.endsWith(t)}let se=o(re);function ie(e,t){return e===t}let ae=o(ie);function ue(e,t){return C(e)&&C(t)&&Number(e)>Number(t)}function oe(e,t){return C(e)&&C(t)&&Number(e)>=Number(t)}function le(e,t){return!!(Array.isArray(t)&&/^[s|n|b]/.test(typeof e)||ne(t)&&ne(e))&&-1!==t.indexOf(e)}let ce=o(le);function fe(e,t){return C(e)&&C(t)&&Number(e)<=Number(t)}function de(e,t,n){return oe(e,t)&&fe(e,n)}let pe=o(de);function ge(e){return"string"==typeof e&&""===e.trim()}let he=o(ge);function me(e){return Number.isNaN(e)}let ye=o(me);function be(e){return!!C(e)&&0>Number(e)}let Ne=o(be);function we(e){return"number"==typeof e}let ve=o(we),Ee=o(ne);function Fe(e){return!!e}let ke=o(Fe);function Ce(e,t){return C(e)&&C(t)&&Number(e)<Number(t)}function Oe(e,t){return t instanceof RegExp?t.test(e):!!ne(t)&&new RegExp(t).test(e)}let Re=o(Oe);function xe(e,t){return C(e)&&C(t)&&Number(e)===Number(t)}let We=o(xe);function Ae(e,t){return ne(e)&&ne(t)&&e.startsWith(t)}let Te=o(Ae);var Se=r({doesNotEndWith:se,doesNotStartWith:Te,endsWith:re,equals:ie,greaterThan:ue,greaterThanOrEquals:oe,gt:ue,gte:oe,inside:le,isArray:X,isBetween:de,isBoolean:K,isBlank:ge,isEmpty:R,isEven:e=>!!C(e)&&0==e%2,isFalsy:ke,isNaN:me,isNegative:be,isNotArray:Y,isNotBetween:pe,isNotBlank:he,isNotBoolean:$,isNotEmpty:x,isNotNaN:ye,isNotNull:c,isNotNumber:ve,isNotNumeric:O,isNotString:Ee,isNotUndefined:U,isNull:l,isNumber:we,isNumeric:C,isOdd:e=>!!C(e)&&0!=e%2,isPositive:Ne,isString:ne,isTruthy:Fe,isUndefined:G,lengthEquals:f,lengthNotEquals:d,lessThan:Ce,lessThanOrEquals:fe,longerThan:function(e,t){return e.length>Number(t)},longerThanOrEquals:function(e,t){return e.length>=Number(t)},lt:Ce,lte:fe,matches:Oe,notEquals:ae,notInside:ce,notMatches:Re,numberEquals:xe,numberNotEquals:We,shorterThan:function(e,t){return e.length<Number(t)},shorterThanOrEquals:function(e,t){return e.length<=Number(t)},startsWith:Ae},_,te);let je=Function("return this")();function qe(e,t){if(u(je.Proxy))return new Proxy(e,{get:(e,n)=>k(e,n)?e[n]:k(Se,n)&&u(Se[n])?t(n):e[n]});for(let n in Se)u(e[n])||Object.defineProperties(e,{[n]:{get:()=>t(n)}});return e}function Be(e){let t=[],n=[],r=e=>T((s=>{const i=Se[e];te[i.name]===i?n.push(((e,t,n)=>{t.setAttribute(i.name,i(e,s[0],n))})):t.push(A((e=>i.apply(null,[k(_,i.name)?P.wrap(e):P.unwrap(e)].concat(s))),e));const a=qe({},r);return a.run=e=>{const r=new z(!0);let s=!1;if(n.forEach((t=>{t(e,r,(e=>s=e))})),s)return null;for(const n of t)try{if(r.extend(n(e)),!r.pass)break}catch(e){r.setFailed(!0);break}return r},a.test=e=>a.run(P.wrap(e).setFailFast(!0)).pass,a}),e);return r(e)}function Ie(e,t,n=[]){let r=k(_,e.name),s=r?P.wrap(t).setFailFast(!0):P.unwrap(t);if(n=e.apply(null,[s].concat(n)),r||(n=function(e,{rule:t,value:n}){return n={message:Error(`invalid ${typeof n} value`)},K(e)||e&&K(e.pass)||N(t.name+"wrong return value"),K(e)?(n.pass=e,n):(n.pass=e.pass,e.message&&(n.message=ee(e.message)),n)}(n,{rule:e,value:t})),!n.pass)throw n.message}let Pe=e=>{const t=qe({},(n=>T((r=>(Ie(Se[n],e,r),t)))));return t},Ke=qe(Pe,Be);function $e(e){return ze("only","tests",e)}function Ge(e){return ze("skip","tests",e)}function Ue(e){let{fieldName:t,groupName:n}=e;({exclusion:e}=s.use());let r=e.tests;var i=r[t];if(!1===i)return!0;if(i=!0===i,n){e:{var{exclusion:a}=s.use();if(k(a=a.groups,n))var u=!1===a[n];else{for(u in a)if(!0===a[u]){u=!0;break e}u=!1}}if(u)return!0;if(!0===e.groups[n])return!i&&(!!Ve(r)||!1===r[t])}return!i&&Ve(r)}!function(e,t){e.extend=n=>(r(Se,n),u(je.Proxy)||qe(t,Be),e)}(Ke,Pe),Ke.template=T((e=>{let t=t=>{Ie(M.bind(null,e),t);const n=qe({},(e=>T((r=>(Ie(Se[e],t,r),n)))));return n};return t.run=t=>M(e,t),t.test=t=>M(e,P.wrap(t).setFailFast(!0)).pass,t})),$e.group=e=>ze("only","groups",e),Ge.group=e=>ze("skip","groups",e);let ze=(e,t,n)=>{const r=s.use();n&&(r?[].concat(n).forEach((n=>{if(!ne(n))return null;r.exclusion[t][n]="only"===e})):N(`${e} hook called outside of a running suite.`))},Ve=e=>{for(const t in e)if(!0===e[t])return!0;return!1};function De(e,t){ke(ee(e))&&u(t)&&t()}let Me=()=>{const e=s.use();e?e.currentTest?e.currentTest.warn():N("warn called outside of a test."):N("warn hook called outside of a running suite.")},He=()=>N("group initialization error. Incompatible argument passed to group."),Je=(e,t)=>{ne(e)||He(),u(t)||He(),s.bind({groupName:e},t)()};function Le(e){let[,t]=s.use().stateRef.optionalFields();t((t=>([].concat(e).forEach((e=>{t[e]=!0})),t)))}let Qe=(e,t)=>(-1!==(t=e.indexOf(t))&&e.splice(t,1),e),Xe=e=>{const[t,n]=s.use().stateRef.pending(),r=[].concat(t.lagging).reduce(((t,n)=>(e.fieldName===n.fieldName&&e.groupName===n.groupName&&n.id!==e.id?n.cancel():t.push(n),t)),[]);n((t=>({lagging:r,pending:t.pending.concat(e)})))},Ye=e=>{const[,t]=s.use().stateRef.pending();t((t=>({pending:Qe(t.pending,e),lagging:Qe(t.lagging,e)})))};function Ze({fieldName:e,statement:t,testFn:n,group:r}){let s={cancel:function(){s.canceled=!0,Ye(this),(e=>{let[,t]=g();t((t=>[].concat(Qe(t,e))))})(this)},fail:function(){s.failed=!0},failed:!1,fieldName:e,id:i(),isWarning:!1,statement:t,testFn:n,valueOf:function(){return!0!==s.failed},warn:function(){s.isWarning=!0}};return r&&(s.groupName=r),s}var _e=e=>{let[,t]=g();t((t=>t.concat(e)))};function et(e){return e.forEach((e=>e()))}let tt=e=>{const{asyncTest:t,statement:n}=e;var{stateRef:r}=s.use();const i=s.bind({stateRef:r},(()=>{if(Ye(e),!e.canceled){var t=e.fieldName;const[{fieldCallbacks:n,doneCallbacks:r}]=s.use().stateRef.testCallbacks();t&&!W(t)&&Array.isArray(n[t])&&et(n[t]),W()||et(r)}}));r=s.bind({stateRef:r},(t=>{e.statement=ne(t)?t:n,e.fail(),[,t]=g(),t((e=>e.slice())),i()}));try{t.then(i,r)}catch(e){r()}};function nt(e){_e(e);let t=function(e){return s.run({currentTest:e},(()=>{let t;try{t=e.testFn()}catch(n){G(e.statement)&&ne(n)&&(e.statement=n),t=!1}return!1===t&&e.fail(),t}))}(e);try{t&&u(t.then)&&(e.asyncTest=t,Xe(e),tt(e))}catch(e){}}let rt=T((function(e,t){const[n,r]=t.reverse();[,t]=s.use().stateRef.skippedTests();const{groupName:i}=s.use(),a=Ze({fieldName:e,group:i,statement:r,testFn:n});return Ue(a)?(t((e=>e.concat(a))),function(e){let[t,n]=s.use().stateRef.carryOverTests(),[,r]=g(),[i,a]=function(e,t){return e.reduce(((n,r,s)=>(n[t(r,s,e)?0:1].push(r),n)),[[],[]])}(t,(t=>t.fieldName===e.fieldName&&t.groupName===e.groupName));n((()=>a)),r((e=>e.concat(i)))}(a),a):u(n)?(nt(a),a):a}));!function(e){e.each=function(t){return Array.isArray(t)||N("test.each: Expected table to be an array."),T(((n,r)=>{let[s,i]=r.reverse();return t.map((t=>(t=[].concat(t),e(ee(n,t),ee(i,t),(()=>s.apply(null,t))))))}))}}(rt),function(e){let t=p(100);e.memo=T((function(n,r){var[i]=s.use().stateRef.suiteId();let[a,o,l]=r.reverse();return r=[i.id,n].concat(a),null===(i=t.get(r))?t(r,e.bind(null,n,l,o)):([,n]=i,Ue(n)||(_e(n),(r=n)&&(r=(r=n.asyncTest)&&u(r.then)),r&&(Xe(n),tt(n))),n)}))}(rt);export default{VERSION:"3.2.7",create:I,enforce:Ke,group:Je,only:$e,optional:Le,skip:Ge,skipWhen:De,test:rt,warn:Me};var st="3.2.7";export{st as VERSION,I as create,Ke as enforce,Je as group,$e as only,Le as optional,Ge as skip,De as skipWhen,rt as test,Me as warn};
package/package.json CHANGED
@@ -1,16 +1,69 @@
1
1
  {
2
- "version": "3.2.4-dev-c9788a",
3
- "license": "MIT",
4
- "main": "index.js",
5
- "types": "types/vest.d.ts",
6
- "files": [
7
- "dist"
8
- ],
9
2
  "name": "vest",
3
+ "version": "3.2.7",
4
+ "description": "Declarative validations.",
5
+ "main": "./vest.js",
6
+ "browser": "./vest.js",
7
+ "exports": {
8
+ "./vest.js": "./vest.js",
9
+ "./vest": "./vest.js",
10
+ "./package.json": "./package.json",
11
+ "./package": "./package.json",
12
+ "./any.js": "./any.js",
13
+ "./any": "./any.js",
14
+ "./classNames.js": "./classNames.js",
15
+ "./classNames": "./classNames.js",
16
+ "./esm/vest.es.development.js": "./esm/vest.es.development.js",
17
+ "./esm/vest.es.development": "./esm/vest.es.development.js",
18
+ "./esm/vest.es.production.js": "./esm/vest.es.production.js",
19
+ "./esm/vest.es.production": "./esm/vest.es.production.js",
20
+ "./esm/vest.es.production.min.js": "./esm/vest.es.production.min.js",
21
+ "./esm/vest.es.production.min": "./esm/vest.es.production.min.js",
22
+ "./promisify.js": "./promisify.js",
23
+ "./promisify": "./promisify.js",
24
+ "./schema.js": "./schema.js",
25
+ "./schema": "./schema.js",
26
+ "./vest.cjs.development.js": "./vest.cjs.development.js",
27
+ "./vest.cjs.development": "./vest.cjs.development.js",
28
+ "./vest.cjs.production.js": "./vest.cjs.production.js",
29
+ "./vest.cjs.production": "./vest.cjs.production.js",
30
+ "./vest.cjs.production.min.js": "./vest.cjs.production.min.js",
31
+ "./vest.cjs.production.min": "./vest.cjs.production.min.js",
32
+ "./vest.umd.development.js": "./vest.umd.development.js",
33
+ "./vest.umd.development": "./vest.umd.development.js",
34
+ "./vest.umd.production.js": "./vest.umd.production.js",
35
+ "./vest.umd.production": "./vest.umd.production.js",
36
+ "./vest.umd.production.min.js": "./vest.umd.production.min.js",
37
+ "./vest.umd.production.min": "./vest.umd.production.min.js",
38
+ ".": {
39
+ "browser": "./esm/vest.es.production.js",
40
+ "import": "./esm/vest.es.production.js",
41
+ "require": "./vest.cjs.production.js",
42
+ "node": "./vest.cjs.production.js",
43
+ "default": "./vest.cjs.production.js"
44
+ }
45
+ },
46
+ "types": "./vest.d.ts",
10
47
  "author": "ealush",
48
+ "license": "MIT",
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/ealush/vest.git"
52
+ },
53
+ "bugs": {
54
+ "url": "https://github.com/ealush/vest/issues"
55
+ },
56
+ "homepage": "https://vestjs.dev/",
11
57
  "scripts": {
12
- "test": "vx test",
13
- "build": "vx build",
14
- "release": "vx release"
15
- }
16
- }
58
+ "build": "rollup -c ./config/rollup/rollup.config.js",
59
+ "test": "jest"
60
+ },
61
+ "devDependencies": {
62
+ "anyone": "^0.0.7",
63
+ "context": "^1.1.3",
64
+ "n4s": "^2.1.1",
65
+ "vast": "^1.0.2"
66
+ },
67
+ "module": "./esm/vest.es.production.js",
68
+ "dependencies": {}
69
+ }
package/promisify.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { IVestResult, DraftResult } from './vestResult';
2
+
3
+ declare function promisify(
4
+ validatorFn: (...args: any[]) => IVestResult
5
+ ): (...args: any[]) => Promise<DraftResult>;
6
+
7
+ export default promisify;
@@ -1 +1 @@
1
- "use strict";!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).promisify=n()}(this,(function(){return function(e){return function(){for(var n=[],o=0;o<arguments.length;o++)n[o]=arguments[o];if("function"!=typeof e)throw Error("[vest/promisify]: Expected validatorFn to be a function.");return new Promise((function(o){return e.apply(void 0,n).done(o)}))}}}));
1
+ "use strict";!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).promisify=n()}(this,(function(){return function(e){return function(){for(var n=arguments.length,o=Array(n),t=0;t<n;t++)o[t]=arguments[t];if("function"!=typeof e)throw Error("[vest/promisify]: Expected validatorFn to be a function.");return new Promise((function(n){return e.apply(void 0,o).done(n)}))}}}));
package/schema.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ declare function getFn(fieldName: string): string[];
2
+ declare function getFn(): { [fieldName: string]: string[] };
3
+
4
+ declare const schema: {
5
+ (enforceSchema: any, body?: (...args: any[]) => void): (
6
+ data: any
7
+ ) => {
8
+ hasErrors: (fieldName?: string) => boolean;
9
+ hasWarnings: (fieldName?: string) => boolean;
10
+ getErrors: typeof getFn;
11
+ getWarnings: typeof getFn;
12
+ tests: {
13
+ [key: string]: {
14
+ hasErrors: boolean;
15
+ hasWarnings: boolean;
16
+ warnings: string[];
17
+ errors: string[];
18
+ };
19
+ };
20
+ };
21
+
22
+ skip: (namespace: string) => void;
23
+ only: (namespace: string) => void;
24
+ };
25
+
26
+ export default schema;
package/schema.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(n="undefined"!=typeof globalThis?globalThis:n||self).schema=r()}(this,(function(){function n(){return(n=Object.assign||function(n){for(var r=1;r<arguments.length;r++){var e,t=arguments[r];for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e])}return n}).apply(this,arguments)}function r(n,r){return r[n]?r[n]:r[n=n.split(s).reduce((function(n,r){if(!r)return n;var e=parseInt(r),t=e==r;return n?n+(t?"["+e+"]":"."+r):n+(t?e:r)}),"")]}function e(n){var r={};return function n(e,t){if(void 0===t&&(t=""),t&&(r[t]={errors:[],hasErrors:e.hasErrors,hasWarnings:e.hasWarnings,warnings:[]}),e.failed&&e.message)if(e.warn){var s;e.warnings=Object.assign({},e.warnings,((s={})[e.message]=e.message,s))}else{var i;e.errors=Object.assign({},e.errors,((i={})[e.message]=e.message,i))}for(var o in e.children)n(s=e.children[o],t?[t,e.isArray?"["+o+"]":(t?".":"")+o].join(""):o),e.warnings=Object.assign({},e.warnings,s.warnings),e.errors=Object.assign({},e.errors,s.errors);t&&(r[t].warnings=Object.assign({},r[t].warnings,e.warnings),r[t].errors=Object.assign({},r[t].errors,e.errors))}(n),r}var t=function(n,r){throw void 0===r&&(r=Error),new r('["schema"]: '+n)},s=/\.|\[([\d)]*)\]/g,i=function(r){function e(e,i){var o,u,a=t();return e=n({},a||{},null!==(o=null==r?void 0:{include:[],exclude:[]})&&void 0!==o?o:e),o=s.ctx=Object.freeze(e),s.ancestry.unshift(o),i=i(o),s.ancestry.shift(),s.ctx=null!==(u=s.ancestry[0])&&void 0!==u?u:null,i}function t(){return s.ctx}var s={ancestry:[]};return{run:e,bind:function(n,r){for(var t=arguments.length,s=Array(2<t?t-2:0),i=2;i<t;i++)s[i-2]=arguments[i];return function(){for(var t=arguments.length,i=Array(t),o=0;o<t;o++)i[o]=arguments[o];return e(n,(function(){return r.apply(void 0,s.concat(i))}))}},use:t}}((function(){return{include:[],exclude:[]}}));return Object.defineProperties((function(n,s){return i.bind({},(function(){"function"==typeof s&&s.apply(void 0,arguments),"function"!=typeof n.run&&t("Not a valid enforce schema.");var o,u,a=n.run.apply(n,arguments),c=e(a),f={},l={},g={},d=(a=i.use()).include,h=a.exclude;for(var v in a=function(n){var r=h.some((function(r){return n.startsWith(r)})),e=d.some((function(r){return n.startsWith(r)}));if(r||d.length&&!e)return"continue";g[n]=c[n],f[n]=c[n].errors=Object.keys(c[n].errors),l[n]=c[n].warnings=Object.keys(c[n].warnings),o=o||c[n].hasErrors,u=u||c[n].hasWarnings},c)a(v);return{getErrors:function(n){return n?r(n,f)||[]:f},getWarnings:function(n){return n?r(n,l)||[]:l},hasErrors:function(n){var r;return n?!(null===(r=f[n])||void 0===r||!r.length):o},hasWarnings:function(n){var r;return n?!(null===(r=l[n])||void 0===r||!r.length):u},tests:g}}))}),{skip:{value:function(n){i.use().exclude.push(n)}},only:{value:function(n){i.use().include.push(n)}}})}));