vest 4.2.1 → 4.3.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.
Files changed (44) hide show
  1. package/dist/cjs/classnames.development.js +76 -28
  2. package/dist/cjs/classnames.production.js +1 -1
  3. package/dist/cjs/enforce/compose.development.js +27 -59
  4. package/dist/cjs/enforce/compose.production.js +1 -1
  5. package/dist/cjs/parser.development.js +84 -22
  6. package/dist/cjs/parser.production.js +1 -1
  7. package/dist/cjs/promisify.development.js +21 -8
  8. package/dist/cjs/promisify.production.js +1 -1
  9. package/dist/cjs/vest.development.js +219 -203
  10. package/dist/cjs/vest.production.js +1 -1
  11. package/dist/es/classnames.development.js +76 -28
  12. package/dist/es/classnames.production.js +1 -1
  13. package/dist/es/enforce/compose.development.js +27 -59
  14. package/dist/es/enforce/compose.production.js +1 -1
  15. package/dist/es/parser.development.js +84 -22
  16. package/dist/es/parser.production.js +1 -1
  17. package/dist/es/promisify.development.js +21 -8
  18. package/dist/es/promisify.production.js +1 -1
  19. package/dist/es/vest.development.js +219 -203
  20. package/dist/es/vest.production.js +1 -1
  21. package/dist/umd/classnames.development.js +76 -28
  22. package/dist/umd/classnames.production.js +1 -1
  23. package/dist/umd/enforce/compose.development.js +89 -99
  24. package/dist/umd/enforce/compose.production.js +1 -1
  25. package/dist/umd/enforce/compounds.development.js +34 -36
  26. package/dist/umd/enforce/compounds.production.js +1 -1
  27. package/dist/umd/enforce/schema.development.js +34 -36
  28. package/dist/umd/enforce/schema.production.js +1 -1
  29. package/dist/umd/parser.development.js +84 -22
  30. package/dist/umd/parser.production.js +1 -1
  31. package/dist/umd/promisify.development.js +21 -8
  32. package/dist/umd/promisify.production.js +1 -1
  33. package/dist/umd/vest.development.js +213 -204
  34. package/dist/umd/vest.production.js +1 -1
  35. package/package.json +3 -3
  36. package/testUtils/mockThrowError.ts +3 -6
  37. package/testUtils/suiteDummy.ts +5 -1
  38. package/types/classnames.d.ts +13 -54
  39. package/types/enforce/compose.d.ts +2 -1
  40. package/types/enforce/compounds.d.ts +2 -1
  41. package/types/enforce/schema.d.ts +2 -1
  42. package/types/parser.d.ts +12 -53
  43. package/types/promisify.d.ts +12 -9
  44. package/types/vest.d.ts +17 -14
@@ -1 +1 @@
1
- import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}function i(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),r.length>Number(t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var o=u((function(t){return null===t}));function s(t){return"function"==typeof t}function a(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return s(t)?t.apply(void 0,n):t}function c(t,n){var e;return null!==(e=a(t))&&void 0!==e?e:n}function f(t){return(t=[].concat(t))[t.length-1]}function l(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(l(u,n)):(u=n(u),o(u)&&e.push(u))}return e}function p(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(p(n)):[].concat(t).concat(n)}),[])}function d(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=c(t[r],[]),t=t[r]}return t}var v=Object.assign;function h(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return f(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,f(n)},removeLevel:function(){n.pop()},reset:t}}var g,E=g||(g={});E[E.DEFAULT=0]="DEFAULT",E[E.SUITE=1]="SUITE",E[E.EACH=2]="EACH",E[E.SKIP_WHEN=3]="SKIP_WHEN",E[E.OMIT_WHEN=4]="OMIT_WHEN",E[E.GROUP=5]="GROUP";var m,y=m||(m={});y[y.ALL=0]="ALL",y[y.EAGER=1]="EAGER";var N=t((function(t,n){return n?null:v({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:g.DEFAULT,keys:{current:{},prev:{}}},mode:[m.ALL],testCursor:h()},t)}));function b(){return N.useX().stateRef}function S(){return b().testObjects()}function C(){(0,S()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function R(t){(0,S()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function T(){return p(l(S()[0].current,(function(t){return t.isPending()?t:null})))}var A=i();function I(){var t=S()[0].current;return A([t],(function(){return p(t)}))}var k,O=k||(k={});O.Error="error",O.Warning="warning";var _=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=k.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==D||(this.status=t)},t.prototype.warns=function(){return this.severity===k.Warning},t.prototype.setPending=function(){this.setStatus(X)},t.prototype.fail=function(){this.setStatus(this.warns()?P:G)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(W)},t.prototype.warn=function(){this.severity=k.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(F)},t.prototype.cancel=function(){this.setStatus(w),C()},t.prototype.reset=function(){this.status=L,C()},t.prototype.omit=function(){this.setStatus(D)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(X)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(D)},t.prototype.isUntested=function(){return this.statusEquals(L)},t.prototype.isFailing=function(){return this.statusEquals(G)},t.prototype.isCanceled=function(){return this.statusEquals(w)},t.prototype.isSkipped=function(){return this.statusEquals(F)},t.prototype.isPassing=function(){return this.statusEquals(W)},t.prototype.isWarning=function(){return this.statusEquals(P)},t.prototype.statusEquals=function(t){return this.status===t},t}(),L="UNTESTED",F="SKIPPED",G="FAILED",P="WARNING",W="PASSING",X="PENDING",w="CANCELED",D="OMITTED";function U(t,n){throw Error(c(n,t))}function x(t,n){setTimeout((function(){U(t,n)}),0)}function H(t){function n(t,n,u){return r.references.push(),e(t,a(n,u)),function(){return[r.references[t],function(n){return e(t,a(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,s(n=u[n][1])&&n(e,i),s(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function K(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function j(t){return null==t}function M(){return N.useX().testCursor.getCursor()}function q(){return N.useX().testCursor.next()}function B(t,n){if(t=void 0===(t=t.type)?g.DEFAULT:t,s(n)){var e={current:{},prev:{}},r=M();return N.run({isolate:{type:t,keys:e}},(function(){N.useX().testCursor.addLevel(),e.prev=function(){var t=S()[0].prev;return[].concat(d(t,M())).reduce((function(t,n){return n instanceof _&&!j(n.key)?(t[n.key]=n,t):t}),{})}(),R((function(t){return d(t,r)[f(r)]=[],t}));var t=n();return N.useX().testCursor.removeLevel(),q(),t}))}}var V,Y=V||(V={});function J(t,n){function e(t){i[t===V.ERRORS?"errorCount":"warnCount"]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(V.ERRORS):n.isWarning()&&e(V.WARNINGS)),i}function z(){return(z=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function Q(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function Z(t,n){return!(!n||t.fieldName!==n)}function $(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!Z(e,i)?r=!0:(r=e.warns(),r=t===V.WARNINGS!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),z({},i&&((r={})[i]=[],r)))}function tt(t){return et(V.ERRORS,t)}function nt(t){return et(V.WARNINGS,t)}function et(t,n){return t=$(t,I(),{fieldName:n}),n?t[n]:t}function rt(t,n){return t=it(V.ERRORS,t,n),n?t[n]:t}function ut(t,n){return t=it(V.WARNINGS,t,n),n?t[n]:t}function it(t,n,e){return n||U("get".concat(t[0].toUpperCase()).concat(t.slice(1),"ByGroup requires a group name. Received `").concat(n,"` instead.")),$(t,I(),{group:n,fieldName:e})}function ot(t,n,e){return(e=!t.hasFailures()||e&&!Z(t,e))||(t=t.warns(),e=n===V.WARNINGS!=!!t),!e}function st(t){return ct(V.ERRORS,t)}function at(t){return ct(V.WARNINGS,t)}function ct(t,n){return I().some((function(e){return ot(e,t,n)}))}function ft(t,n){return pt(V.ERRORS,t,n)}function lt(t,n){return pt(V.WARNINGS,t,n)}function pt(t,n,e){return I().some((function(r){return n===r.groupName&&ot(r,t,e)}))}function dt(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}Y.WARNINGS="warnings",Y.ERRORS="errors";var vt=u(dt);var ht=i(20);function gt(){var t=I(),n={stateRef:b()};return ht([t],N.bind(n,(function(){var t=b().suiteName()[0];return v(function(){var t=I(),n=v({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return t.forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=J(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=J(n.groups[r],t))})),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}(),{getErrors:N.bind(n,tt),getErrorsByGroup:N.bind(n,rt),getWarnings:N.bind(n,nt),getWarningsByGroup:N.bind(n,ut),hasErrors:N.bind(n,st),hasErrorsByGroup:N.bind(n,ft),hasWarnings:N.bind(n,at),hasWarningsByGroup:N.bind(n,lt),isValid:N.bind(n,(function(t){var n=gt(),e=I().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(dt(e=I())||t&&dt(n.tests[t])||function(t){var n=b().optionalFields()[0];return vt(T().filter((function(e){return!(t&&!Z(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=I(),e=b().optionalFields()[0];return n.every((function(n){return!(!t||Z(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}function Et(t){var n=T();return!dt(n)&&(t?n.some((function(n){return Z(n,t)})):vt(n))}var mt=i(20);function yt(){var t=I(),n={stateRef:b()};return mt([t],N.bind(n,(function(){return v({},gt(),{done:N.bind(n,St)})})))}function Nt(t,n,e){return!(s(t)&&(!n||e.tests[n]&&!dt(e.tests[n].testCount)))}function bt(t){return!(Et()&&(!t||Et(t)))}function St(){function t(){return r(gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=yt(),Nt(r,n,e)?e:bt(n)?(t(),e):(Ct(t,n),e)}function Ct(t,n){var e=N.bind({},t);(0,b().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function Rt(t){return t.forEach((function(t){return t()}))}function Tt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(It.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=b().testCallbacks()[0].fieldCallbacks;n&&!Et(n)&&Array.isArray(e[n])&&Rt(e[n]),Et()||t.emit(It.ALL_RUNNING_TESTS_FINISHED)}})),t.on(It.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var t=b().optionalFields()[0];if(!dt(t)){var n={};R((function(e){return l(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var u=t[r];s(u)&&(n[r]=u(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(It.ALL_RUNNING_TESTS_FINISHED,(function(){Rt(b().testCallbacks()[0].doneCallbacks)})),t.on(It.REMOVE_FIELD,(function(t){I().forEach((function(n){Z(n,t)&&(n.cancel(),function(t){R((function(n){return l(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(It.RESET_FIELD,(function(t){I().forEach((function(n){Z(n,t)&&n.reset()}))})),t}function At(){var t=N.useX();return t.bus||U(),t.bus}var It,kt=It||(It={});function Ot(t){return Lt(0,"tests",t)}function _t(t){return Lt(1,"tests",t)}function Lt(t,n,e){var u=N.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function Ft(t){for(var n in t)if(!0===t[n])return!0;return!1}function Gt(t){U("Wrong arguments passed to group. Group ".concat(t,"."))}kt.TEST_COMPLETED="test_completed",kt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",kt.REMOVE_FIELD="remove_field",kt.RESET_FIELD="reset_field",kt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Ot.group=function(t){return Lt(0,"groups",t)},_t.group=function(t){return Lt(1,"groups",t)};var Pt=u(r);function Wt(t){var n=t.asyncTest,e=t.message;if(n&&s(n.then)){var u=At().emit,i=b(),o=N.bind({stateRef:i},(function(){C(),u(It.TEST_COMPLETED,t)}));i=N.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Xt(t){var n=M();R((function(e){return d(e,n)[f(n)]=t,e}))}function wt(t){var n=S()[0].prev;if(dt(n))Xt(t),n=t;else{var e=M();if(n=d(n,e)[f(e)],j(t.key))!vt(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(N.useX().isolate.type!==g.EACH&&x("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S(),n=t[1],e=t[0].prev;t=d(e,M());var r=N.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Xt(n=c(n,t));else{n=t.key;var u=N.useX().isolate.keys.prev[n];e=t,u&&(e=u),u=e;var i=N.useX().isolate.keys.current;j(i[n])?i[n]=u:x('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Xt(n=e)}}if(e=m.EAGER,e=!(N.useX().mode[0]!==e||!st(t.fieldName)))return q(),t.skip(),t;if(N.useX().omitted)return n.omit(),q(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,N.useX().skipped)return!0;var e=N.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){t:{var o=N.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,t))var s=!1===o[t];else{for(s in o)if(!0===o[s]){s=!0;break t}s=!1}}if(s)return!0;if(!0===r.groups[t])return!(i||!Ft(u)&&!1!==u[n])}r=N.useX().exclusion;t:{for(c in(s=N.useX().exclusion).groups)if(s.groups[c]){var c=!0;break t}c=!1}return!(!c||t&&t in r.groups&&r.groups[t])||!i&&!!Ft(u)&&!a(e[n])}(t))return n.skip(!!N.useX().skipped),q(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Xt(t),q(),t.isUntested()){n=At(),e=function(t){return N.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&r(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&s(e.then)?(t.asyncTest=e,t.setPending(),Wt(t)):n.emit(It.TEST_COMPLETED,t)}catch(n){U("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&s(n.then)&&(t.setPending(),Wt(t));return t}function Dt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=s(n[1])?n:Q([void 0],n,!0);n=r[0],e=r[1],r=r[2],Pt(t)&&xt("fieldName","string"),s(e)||xt("Test callback","function");var u=N.useX();return wt(n=new _(t,e,{message:n,groupName:u.groupName,key:r}))}var Ut=v(Dt,{memo:function(t){var n=i(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=N.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[b().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):wt(r[1])}}(Dt)});function xt(t,n){U("Incompatible params passed to test function. ".concat(t," must be a ").concat(n))}var Ht="4.2.1";function Kt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],s(r)||U("vest.create: Expected callback to be a function.");var u=Tt(),i=H();return t={stateRef:K(i,{suiteId:e(),suiteName:t}),bus:u},v(N.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.reset(),B({type:g.SUITE},(function(){r.apply(void 0,t)})),u.emit(It.SUITE_CALLBACK_DONE_RUNNING),yt()})),{get:N.bind(t,gt),remove:N.bind(t,(function(t){u.emit(It.REMOVE_FIELD,t)})),reset:i.reset,resetField:N.bind(t,(function(t){u.emit(It.RESET_FIELD,t)}))})}function jt(t,n){s(n)||U("each callback must be a function"),B({type:g.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Mt(){var t=m.EAGER;N.useX().mode[0]=t}function qt(t,n){r(t)||Gt("name must be a string"),s(n)||Gt("callback must be a function"),B({type:g.GROUP},(function(){N.run({groupName:t},n)}))}function Bt(t){function n(n){var e=N.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?c(u.tests[t],!0):r(n)?!!u.tests[n]:a(n,a(gt))}}var e=N.useX();return t?(e.inclusion[t]=c(e.exclusion.tests[t],!0),{when:n}):{when:n}}function Vt(t,n){B({type:g.OMIT_WHEN},(function(){N.run({omitted:!!N.useX().omitted||a(t,a(gt))},(function(){return n()}))}))}function Yt(t){(0,b().optionalFields()[1])((function(n){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Jt(t,n){B({type:g.SKIP_WHEN},(function(){N.run({skipped:!!N.useX().skipped||a(t,a(gt))},(function(){return n()}))}))}function zt(){var t=N.useX("warn hook called outside of a running suite.");t.currentTest||U("warn called outside of a test."),t.currentTest.warn()}export{Ht as VERSION,N as context,Kt as create,jt as each,Mt as eager,qt as group,Bt as include,Vt as omitWhen,Ot as only,Yt as optional,_t as skip,Jt as skipWhen,Ut as test,zt as warn};
1
+ import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}function i(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),r.length>Number(t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var o=u((function(t){return null===t}));function s(t){return"function"==typeof t}function a(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return s(t)?t.apply(void 0,n):t}function c(t,n){var e;return null!==(e=a(t))&&void 0!==e?e:n}function f(t){return(t=[].concat(t))[t.length-1]}function l(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(l(u,n)):(u=n(u),o(u)&&e.push(u))}return e}function p(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(p(n)):[].concat(t).concat(n)}),[])}function d(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=c(t[r],[]),t=t[r]}return t}var v=Object.assign;function h(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return f(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,f(n)},removeLevel:function(){n.pop()},reset:t}}var g,N=g||(g={});N[N.DEFAULT=0]="DEFAULT",N[N.SUITE=1]="SUITE",N[N.EACH=2]="EACH",N[N.SKIP_WHEN=3]="SKIP_WHEN",N[N.OMIT_WHEN=4]="OMIT_WHEN",N[N.GROUP=5]="GROUP";var m,E=m||(m={});E[E.ALL=0]="ALL",E[E.EAGER=1]="EAGER";var y=t((function(t,n){return n?null:v({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:g.DEFAULT,keys:{current:{},prev:{}}},mode:[m.ALL],testCursor:h()},t)}));function b(){return y.useX().stateRef}function S(){return b().testObjects()}function C(){(0,S()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function R(t){(0,S()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function T(){return p(l(S()[0].current,(function(t){return t.isPending()?t:null})))}var A=i();function O(){var t=S()[0].current;return A([t],(function(){return p(t)}))}var I,_=I||(I={});_.Error="error",_.Warning="warning";var k=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=I.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==X||(this.status=t)},t.prototype.warns=function(){return this.severity===I.Warning},t.prototype.setPending=function(){this.setStatus(W)},t.prototype.fail=function(){this.setStatus(this.warns()?P:G)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(U)},t.prototype.warn=function(){this.severity=I.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(F)},t.prototype.cancel=function(){this.setStatus(w),C()},t.prototype.reset=function(){this.status=L,C()},t.prototype.omit=function(){this.setStatus(X)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(W)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(X)},t.prototype.isUntested=function(){return this.statusEquals(L)},t.prototype.isFailing=function(){return this.statusEquals(G)},t.prototype.isCanceled=function(){return this.statusEquals(w)},t.prototype.isSkipped=function(){return this.statusEquals(F)},t.prototype.isPassing=function(){return this.statusEquals(U)},t.prototype.isWarning=function(){return this.statusEquals(P)},t.prototype.statusEquals=function(t){return this.status===t},t}(),L="UNTESTED",F="SKIPPED",G="FAILED",P="WARNING",U="PASSING",W="PENDING",w="CANCELED",X="OMITTED";function D(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?a(n):n)}function x(t){function n(t,n,u){return r.references.push(),e(t,a(n,u)),function(){return[r.references[t],function(n){return e(t,a(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,s(n=u[n][1])&&n(e,i),s(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function H(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function K(t){return null==t}function j(t){setTimeout((function(){throw Error(t)}),0)}function M(){return y.useX().testCursor.getCursor()}function q(){return y.useX().testCursor.next()}function B(t,n){if(t=void 0===(t=t.type)?g.DEFAULT:t,s(n)){var e={current:{},prev:{}},r=M();return y.run({isolate:{type:t,keys:e}},(function(){y.useX().testCursor.addLevel(),e.prev=function(){var t=S()[0].prev;return[].concat(d(t,M())).reduce((function(t,n){return n instanceof k&&!K(n.key)?(t[n.key]=n,t):t}),{})}(),R((function(t){return d(t,r)[f(r)]=[],t}));var t=n();return y.useX().testCursor.removeLevel(),q(),t}))}}var V,Y=V||(V={});Y.WARNINGS="warnings",Y.ERRORS="errors";var J,z=J||(J={});function Q(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}z.ERROR_COUNT="errorCount",z.WARN_COUNT="warnCount";var Z=u(Q);function $(t,n){return!(!n||t.fieldName!==n)}function tt(t,n,e){return(e=!t.hasFailures()||e&&!$(t,e))||(t=t.warns(),e=n===V.WARNINGS!=!!t),!e}function nt(t){return rt(V.ERRORS,t)}function et(t){return rt(V.WARNINGS,t)}function rt(t,n){return O().some((function(e){return tt(e,t,n)}))}function ut(t){var n=O().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(n=!!t&&!!n[t])||!nt(t)&&(!(Q(n=O())||function(t){var n=O();return!!t&&!n.find((function(n){return n.fieldName===t}))}(t)||function(t){var n=b().optionalFields()[0];return Z(T().filter((function(e){return!(t&&!$(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=O(),e=b().optionalFields()[0];return n.every((function(n){return!(!t||$(n,t))||(!0===e[n.fieldName]||n.isTested()||n.isOmitted())}))}(t))}function it(t,n){function e(t){i[t===V.ERRORS?J.ERROR_COUNT:J.WARN_COUNT]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(V.ERRORS):n.isWarning()&&e(V.WARNINGS)),i}function ot(){return(ot=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function st(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function at(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!$(e,i)?r=!0:(r=e.warns(),r=t===V.WARNINGS!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),ot({},i&&((r={})[i]=[],r)))}function ct(t){return lt(V.ERRORS,t)}function ft(t){return lt(V.WARNINGS,t)}function lt(t,n){return t=at(t,O(),{fieldName:n}),n?t[n]:t}function pt(t,n){return t=vt(V.ERRORS,t,n),n?t[n]:t}function dt(t,n){return t=vt(V.WARNINGS,t,n),n?t[n]:t}function vt(t,n,e){return D(n,"get".concat(t[0].toUpperCase()).concat(t.slice(1),"ByGroup requires a group name. Received `").concat(n,"` instead.")),at(t,O(),{group:n,fieldName:e})}function ht(t,n){return Nt(V.ERRORS,t,n)}function gt(t,n){return Nt(V.WARNINGS,t,n)}function Nt(t,n,e){return O().some((function(r){return n===r.groupName&&tt(r,t,e)}))}var mt=i(20);function Et(){var t=O(),n={stateRef:b()};return mt([t],y.bind(n,(function(){var t=b().suiteName()[0];return v(function(){var t=O(),n=v({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=it(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ut(n.fieldName),e=t.groups;var r=n.groupName;return r&&(e[r]=e[r]||{},e[r][n.fieldName]=it(e[r],n)),t}),n),n.valid=ut(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}(),{getErrors:y.bind(n,ct),getErrorsByGroup:y.bind(n,pt),getWarnings:y.bind(n,ft),getWarningsByGroup:y.bind(n,dt),hasErrors:y.bind(n,nt),hasErrorsByGroup:y.bind(n,ht),hasWarnings:y.bind(n,et),hasWarningsByGroup:y.bind(n,gt),isValid:y.bind(n,ut),suiteName:t})})))}function yt(t){var n=T();return!Q(n)&&(t?n.some((function(n){return $(n,t)})):Z(n))}var bt=i(20);function St(){var t=O(),n={stateRef:b()};return bt([t],y.bind(n,(function(){return v({},Et(),{done:y.bind(n,Tt)})})))}function Ct(t,n,e){return!(s(t)&&(!n||e.tests[n]&&!Q(e.tests[n].testCount)))}function Rt(t){return!(yt()&&(!t||yt(t)))}function Tt(){function t(){return r(Et())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=St(),Ct(r,n,e)?e:Rt(n)?(t(),e):(At(t,n),e)}function At(t,n){var e=y.bind({},t);(0,b().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function Ot(t){return t.forEach((function(t){return t()}))}function It(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(kt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=b().testCallbacks()[0].fieldCallbacks;n&&!yt(n)&&Array.isArray(e[n])&&Ot(e[n]),yt()||t.emit(kt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(kt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var t=b().optionalFields()[0];if(!Q(t)){var n={};R((function(e){return l(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var u=t[r];s(u)&&(n[r]=u(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(kt.ALL_RUNNING_TESTS_FINISHED,(function(){Ot(b().testCallbacks()[0].doneCallbacks)})),t.on(kt.REMOVE_FIELD,(function(t){O().forEach((function(n){$(n,t)&&(n.cancel(),function(t){R((function(n){return l(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(kt.RESET_FIELD,(function(t){O().forEach((function(n){$(n,t)&&n.reset()}))})),t}function _t(){var t=y.useX();return D(t.bus),t.bus}var kt,Lt=kt||(kt={});function Ft(t){return Pt(0,"tests",t)}function Gt(t){return Pt(1,"tests",t)}function Pt(t,n,e){var u=y.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function Ut(t){for(var n in t)if(!0===t[n])return!0;return!1}function Wt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function wt(t){var n=t.asyncTest,e=t.message;if(n&&s(n.then)){var u=_t().emit,i=b(),o=y.bind({stateRef:i},(function(){C(),u(kt.TEST_COMPLETED,t)}));i=y.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Xt(t){var n=S()[0].prev;if(Q(n))return Dt(t),t;var e=M();if(n=d(n,e)[f(e)],!K(t.key)){n=t.key,(e=y.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=y.useX().isolate.keys.current;return K(r[n])?r[n]=e:j('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Dt(t),t}return!Z(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(y.useX().isolate.type===g.EACH||j("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S(),n=t[1],e=t[0].prev;t=d(e,M());var r=y.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Dt(t=c(n,t)),t}function Dt(t){var n=M();R((function(e){return d(e,n)[f(n)]=t,e}))}function xt(t){var n=m.EAGER;if(n=!(y.useX().mode[0]!==n||!nt(t.fieldName)))return t.skip(),Xt(t),q(),t;if(n=Xt(t),y.useX().omitted)return n.omit(),q(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,y.useX().skipped)return!0;var e=y.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){t:{var o=y.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,t))var s=!1===o[t];else{for(s in o)if(!0===o[s]){s=!0;break t}s=!1}}if(s)return!0;if(!0===r.groups[t])return!(i||!Ut(u)&&!1!==u[n])}r=y.useX().exclusion;t:{for(c in(s=y.useX().exclusion).groups)if(s.groups[c]){var c=!0;break t}c=!1}return!(!c||t&&t in r.groups&&r.groups[t])||!i&&!!Ut(u)&&!a(e[n])}(t))return n.skip(!!y.useX().skipped),q(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Dt(t),q(),t.isUntested()){n=_t();var e=function(t){return y.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&r(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&s(e.then)?(t.asyncTest=e,t.setPending(),wt(t)):n.emit(kt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&s(n.then)&&(t.setPending(),wt(t));return t}function Ht(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=s(n[1])?n:st([void 0],n,!0);n=u[0],e=u[1],u=u[2],D(r(t),jt("fieldName","string")),D(s(e),jt("Test callback","function"));var i=y.useX();return xt(n=new k(t,e,{message:n,groupName:i.groupName,key:u}))}Lt.TEST_COMPLETED="test_completed",Lt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Lt.REMOVE_FIELD="remove_field",Lt.RESET_FIELD="reset_field",Lt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Ft.group=function(t){return Pt(0,"groups",t)},Gt.group=function(t){return Pt(1,"groups",t)};var Kt=v(Ht,{memo:function(t){var n=i(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=y.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[b().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):xt(r[1])}}(Ht)});function jt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var Mt="4.3.0";function qt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],D(s(r),"vest.create: Expected callback to be a function.");var u=It(),i=x();return t={stateRef:H(i,{suiteId:e(),suiteName:t}),bus:u},v(y.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.reset(),B({type:g.SUITE},(function(){r.apply(void 0,t)})),u.emit(kt.SUITE_CALLBACK_DONE_RUNNING),St()})),{get:y.bind(t,Et),remove:y.bind(t,(function(t){u.emit(kt.REMOVE_FIELD,t)})),reset:i.reset,resetField:y.bind(t,(function(t){u.emit(kt.RESET_FIELD,t)}))})}function Bt(t,n){D(s(n),"each callback must be a function"),B({type:g.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Vt(){var t=m.EAGER;y.useX().mode[0]=t}function Yt(t,n){D(r(t),Wt("name must be a string")),D(s(n),Wt("callback must be a function")),B({type:g.GROUP},(function(){y.run({groupName:t},n)}))}function Jt(t){function n(n){var e=y.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?c(u.tests[t],!0):r(n)?!!u.tests[n]:a(n,a(Et))}}var e=y.useX();return t?(e.inclusion[t]=c(e.exclusion.tests[t],!0),{when:n}):{when:n}}function zt(t,n){B({type:g.OMIT_WHEN},(function(){y.run({omitted:!!y.useX().omitted||a(t,a(Et))},(function(){return n()}))}))}function Qt(t){(0,b().optionalFields()[1])((function(n){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Zt(t,n){B({type:g.SKIP_WHEN},(function(){y.run({skipped:!!y.useX().skipped||a(t,a(Et))},(function(){return n()}))}))}function $t(){var t=y.useX("warn hook called outside of a running suite.");D(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{Mt as VERSION,y as context,qt as create,Bt as each,Vt as eager,Yt as group,Jt as include,zt as omitWhen,Ft as only,Qt as optional,Gt as skip,Zt as skipWhen,Kt as test,$t as warn};
@@ -9,10 +9,32 @@
9
9
  }
10
10
 
11
11
  /**
12
- * Throws a timed out error.
12
+ * A safe hasOwnProperty access
13
13
  */
14
- function throwError(devMessage, productionMessage) {
15
- throw new Error(devMessage );
14
+ function hasOwnProperty(obj, key) {
15
+ return Object.prototype.hasOwnProperty.call(obj, key);
16
+ }
17
+
18
+ function optionalFunctionValue(value) {
19
+ var args = [];
20
+ for (var _i = 1; _i < arguments.length; _i++) {
21
+ args[_i - 1] = arguments[_i];
22
+ }
23
+ return isFunction(value) ? value.apply(void 0, args) : value;
24
+ }
25
+
26
+ function invariant(condition,
27
+ // eslint-disable-next-line @typescript-eslint/ban-types
28
+ message) {
29
+ if (condition) {
30
+ return;
31
+ }
32
+ // If message is a string object (rather than string literal)
33
+ // Throw the value directly as a string
34
+ // Alternatively, throw an error with the message
35
+ throw message instanceof String
36
+ ? message.valueOf()
37
+ : new Error(message ? optionalFunctionValue(message) : message);
16
38
  }
17
39
 
18
40
  function isNumeric(value) {
@@ -26,35 +48,64 @@
26
48
  return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
27
49
  }
28
50
 
29
- /**
30
- * A safe hasOwnProperty access
31
- */
32
- function hasOwnProperty(obj, key) {
33
- return Object.prototype.hasOwnProperty.call(obj, key);
51
+ function isPositive(value) {
52
+ return greaterThan(value, 0);
34
53
  }
35
54
 
55
+ var Severity;
56
+ (function (Severity) {
57
+ Severity["WARNINGS"] = "warnings";
58
+ Severity["ERRORS"] = "errors";
59
+ })(Severity || (Severity = {}));
60
+ var SeverityCount;
61
+ (function (SeverityCount) {
62
+ SeverityCount["ERROR_COUNT"] = "errorCount";
63
+ SeverityCount["WARN_COUNT"] = "warnCount";
64
+ })(SeverityCount || (SeverityCount = {}));
65
+
66
+ // eslint-disable-next-line max-lines-per-function
36
67
  function parse(res) {
68
+ invariant(res && hasOwnProperty(res, 'valid'), "Vest parser: expected argument at position 0 to be Vest's result object.");
37
69
  var testedStorage = {};
38
70
  var selectors = {
39
- invalid: res.hasErrors,
40
- tested: function (fieldName) {
41
- if (!fieldName) {
42
- return greaterThan(res.testCount, 0);
43
- }
44
- if (hasOwnProperty(testedStorage, fieldName))
45
- return testedStorage[fieldName];
46
- testedStorage[fieldName] =
47
- hasOwnProperty(res.tests, fieldName) &&
48
- greaterThan(res.tests[fieldName].testCount, 0);
49
- return selectors.tested(fieldName);
50
- },
51
- untested: function (fieldName) {
52
- return res.testCount === 0 || !selectors.tested(fieldName);
53
- },
54
- valid: res.isValid,
55
- warning: res.hasWarnings
71
+ invalid: hasErrors,
72
+ tested: isTested,
73
+ untested: isUntested,
74
+ valid: isValid,
75
+ warning: hasWarnings
56
76
  };
57
77
  return selectors;
78
+ function isTested(fieldName) {
79
+ if (!fieldName) {
80
+ return isPositive(res.testCount);
81
+ }
82
+ if (hasOwnProperty(testedStorage, fieldName))
83
+ return testedStorage[fieldName];
84
+ testedStorage[fieldName] =
85
+ hasOwnProperty(res.tests, fieldName) &&
86
+ isPositive(res.tests[fieldName].testCount);
87
+ return selectors.tested(fieldName);
88
+ }
89
+ function isUntested(fieldName) {
90
+ return res.testCount === 0 || !selectors.tested(fieldName);
91
+ }
92
+ function isValid(fieldName) {
93
+ var _a, _b;
94
+ return Boolean(fieldName ? (_b = (_a = res.tests) === null || _a === void 0 ? void 0 : _a[fieldName]) === null || _b === void 0 ? void 0 : _b.valid : res.valid);
95
+ }
96
+ function hasWarnings(fieldName) {
97
+ return hasFailures(res, SeverityCount.WARN_COUNT, fieldName);
98
+ }
99
+ function hasErrors(fieldName) {
100
+ return hasFailures(res, SeverityCount.ERROR_COUNT, fieldName);
101
+ }
102
+ }
103
+ function hasFailures(res, countKey, fieldName) {
104
+ var _a, _b, _c;
105
+ var failureCount = fieldName
106
+ ? (_b = (_a = res.tests) === null || _a === void 0 ? void 0 : _a[fieldName]) === null || _b === void 0 ? void 0 : _b[countKey]
107
+ : (_c = res[countKey]) !== null && _c !== void 0 ? _c : 0;
108
+ return isPositive(failureCount);
58
109
  }
59
110
 
60
111
  /**
@@ -62,9 +113,6 @@
62
113
  */
63
114
  function classnames(res, classes) {
64
115
  if (classes === void 0) { classes = {}; }
65
- if (!res || !isFunction(res.hasErrors)) {
66
- throwError("classnames: Expected first argument to be Vest's result object.");
67
- }
68
116
  var selectors = parse(res);
69
117
  return function (key) {
70
118
  var classesArray = [];
@@ -1 +1 @@
1
- "use strict";!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=e()}(this,(function(){function t(t){return"function"==typeof t}function e(e,n){var r;return null!==(r=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return t(e)?e.apply(void 0,n):e}(e))&&void 0!==r?r:n}function n(t){var e=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(e))}function r(t,e){return n(t)&&n(e)&&Number(t)>Number(e)}return function(n,o){if(void 0===o&&(o={}),!n||!t(n.hasErrors))throw Error(e(void 0,"classnames: Expected first argument to be Vest's result object."));var i=function(t){var e={},n={invalid:t.hasErrors,tested:function(o){return o?Object.prototype.hasOwnProperty.call(e,o)?e[o]:(e[o]=Object.prototype.hasOwnProperty.call(t.tests,o)&&r(t.tests[o].testCount,0),n.tested(o)):r(t.testCount,0)},untested:function(e){return 0===t.testCount||!n.tested(e)},valid:t.isValid,warning:t.hasWarnings};return n}(n);return function(e){var n,r=[];for(n in o){var s=n;t(i[s])&&i[s](e)&&r.push(o[s])}return r.join(" ")}}}));
1
+ "use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=n()}(this,(function(){function t(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function n(n,e){return t(n)&&t(e)&&Number(n)>Number(e)}function e(t){!function(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return"function"==typeof t?t.apply(void 0,n):t}(n):n)}(t&&Object.prototype.hasOwnProperty.call(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var e={},o={invalid:function(n){return r(t,u.ERROR_COUNT,n)},tested:function(r){return r?Object.prototype.hasOwnProperty.call(e,r)?e[r]:(e[r]=Object.prototype.hasOwnProperty.call(t.tests,r)&&n(t.tests[r].testCount,0),o.tested(r)):n(t.testCount,0)},untested:function(n){return 0===t.testCount||!o.tested(n)},valid:function(n){var e,r;return!!(n?null!==(r=null===(e=t.tests)||void 0===e?void 0:e[n])&&void 0!==r&&r.valid:t.valid)},warning:function(n){return r(t,u.WARN_COUNT,n)}};return o}function r(t,e,r){var o,i,u;return n(t=r?null===(i=null===(o=t.tests)||void 0===o?void 0:o[r])||void 0===i?void 0:i[e]:null!==(u=t[e])&&void 0!==u?u:0,0)}var o,i,u;return(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(u||(u={})),function(t,n){void 0===n&&(n={});var r=e(t);return function(t){var e,o=[];for(e in n){var i=e;"function"==typeof r[i]&&r[i](t)&&o.push(n[i])}return o.join(" ")}}}));
@@ -4,21 +4,6 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.compose = factory());
5
5
  }(this, (function () { 'use strict';
6
6
 
7
- function mapFirst(array, callback) {
8
- var broke = false;
9
- var breakoutValue = null;
10
- for (var i = 0; i < array.length; i++) {
11
- callback(array[i], breakout, i);
12
- if (broke) {
13
- return breakoutValue;
14
- }
15
- }
16
- function breakout(value) {
17
- broke = true;
18
- breakoutValue = value;
19
- }
20
- }
21
-
22
7
  function isFunction(value) {
23
8
  return typeof value === 'function';
24
9
  }
@@ -31,18 +16,37 @@
31
16
  return isFunction(value) ? value.apply(void 0, args) : value;
32
17
  }
33
18
 
34
- function defaultTo(callback, defaultValue) {
35
- var _a;
36
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
19
+ function invariant(condition,
20
+ // eslint-disable-next-line @typescript-eslint/ban-types
21
+ message) {
22
+ if (condition) {
23
+ return;
24
+ }
25
+ // If message is a string object (rather than string literal)
26
+ // Throw the value directly as a string
27
+ // Alternatively, throw an error with the message
28
+ throw message instanceof String
29
+ ? message.valueOf()
30
+ : new Error(message ? optionalFunctionValue(message) : message);
37
31
  }
38
32
 
39
- /**
40
- * Throws a timed out error.
41
- */
42
- function throwError(devMessage, productionMessage) {
43
- throw new Error(devMessage );
33
+ function mapFirst(array, callback) {
34
+ var broke = false;
35
+ var breakoutValue = null;
36
+ for (var i = 0; i < array.length; i++) {
37
+ callback(array[i], breakout, i);
38
+ if (broke) {
39
+ return breakoutValue;
40
+ }
41
+ }
42
+ function breakout(value) {
43
+ broke = true;
44
+ breakoutValue = value;
45
+ }
44
46
  }
45
47
 
48
+ var assign = Object.assign;
49
+
46
50
  function bindNot(fn) {
47
51
  return function () {
48
52
  var args = [];
@@ -53,42 +57,6 @@
53
57
  };
54
58
  }
55
59
 
56
- /**
57
- * A safe hasOwnProperty access
58
- */
59
- function hasOwnProperty(obj, key) {
60
- return Object.prototype.hasOwnProperty.call(obj, key);
61
- }
62
-
63
- function isNumber(value) {
64
- return Boolean(typeof value === 'number');
65
- }
66
- var isNotNumber = bindNot(isNumber);
67
-
68
- function lengthEquals(value, arg1) {
69
- return value.length === Number(arg1);
70
- }
71
- var lengthNotEquals = bindNot(lengthEquals);
72
-
73
- function isEmpty(value) {
74
- if (!value) {
75
- return true;
76
- }
77
- else if (isNumber(value)) {
78
- return value === 0;
79
- }
80
- else if (hasOwnProperty(value, 'length')) {
81
- return lengthEquals(value, 0);
82
- }
83
- else if (typeof value === 'object') {
84
- return lengthEquals(Object.keys(value), 0);
85
- }
86
- return true;
87
- }
88
- var isNotEmpty = bindNot(isEmpty);
89
-
90
- var assign = Object.assign;
91
-
92
60
  function isNull(value) {
93
61
  return value === null;
94
62
  }
@@ -130,8 +98,13 @@
130
98
  return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
131
99
  }
132
100
 
101
+ function numberEquals(value, eq) {
102
+ return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
103
+ }
104
+ var numberNotEquals = bindNot(numberEquals);
105
+
133
106
  function greaterThanOrEquals(value, gte) {
134
- return isNumeric(value) && isNumeric(gte) && Number(value) >= Number(gte);
107
+ return numberEquals(value, gte) || greaterThan(value, gte);
135
108
  }
136
109
 
137
110
  // The module is named "isArrayValue" since it
@@ -154,8 +127,12 @@
154
127
  }
155
128
  var notInside = bindNot(inside);
156
129
 
130
+ function lessThan(value, lt) {
131
+ return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
132
+ }
133
+
157
134
  function lessThanOrEquals(value, lte) {
158
- return isNumeric(value) && isNumeric(lte) && Number(value) <= Number(lte);
135
+ return numberEquals(value, lte) || lessThan(value, lte);
159
136
  }
160
137
 
161
138
  function isBetween(value, min, max) {
@@ -174,6 +151,40 @@
174
151
 
175
152
  var isNotBoolean = bindNot(isBoolean);
176
153
 
154
+ /**
155
+ * A safe hasOwnProperty access
156
+ */
157
+ function hasOwnProperty(obj, key) {
158
+ return Object.prototype.hasOwnProperty.call(obj, key);
159
+ }
160
+
161
+ function isNumber(value) {
162
+ return Boolean(typeof value === 'number');
163
+ }
164
+ var isNotNumber = bindNot(isNumber);
165
+
166
+ function lengthEquals(value, arg1) {
167
+ return value.length === Number(arg1);
168
+ }
169
+ var lengthNotEquals = bindNot(lengthEquals);
170
+
171
+ function isEmpty(value) {
172
+ if (!value) {
173
+ return true;
174
+ }
175
+ else if (isNumber(value)) {
176
+ return value === 0;
177
+ }
178
+ else if (hasOwnProperty(value, 'length')) {
179
+ return lengthEquals(value, 0);
180
+ }
181
+ else if (typeof value === 'object') {
182
+ return lengthEquals(Object.keys(value), 0);
183
+ }
184
+ return true;
185
+ }
186
+ var isNotEmpty = bindNot(isEmpty);
187
+
177
188
  /**
178
189
  * Validates that a given value is an even number
179
190
  */
@@ -195,12 +206,8 @@
195
206
  var isNotNaN = bindNot(isNaN$1);
196
207
 
197
208
  function isNegative(value) {
198
- if (isNumeric(value)) {
199
- return Number(value) < 0;
200
- }
201
- return false;
209
+ return lessThan(value, 0);
202
210
  }
203
- var isPositive = bindNot(isNegative);
204
211
 
205
212
  /**
206
213
  * Validates that a given value is an odd number
@@ -212,6 +219,10 @@
212
219
  return false;
213
220
  };
214
221
 
222
+ function isPositive(value) {
223
+ return greaterThan(value, 0);
224
+ }
225
+
215
226
  var isNotString = bindNot(isStringValue);
216
227
 
217
228
  function isTruthy(value) {
@@ -232,10 +243,6 @@
232
243
  }
233
244
  var isNotValueOf = bindNot(isValueOf);
234
245
 
235
- function lessThan(value, lt) {
236
- return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
237
- }
238
-
239
246
  function longerThan(value, arg1) {
240
247
  return value.length > Number(arg1);
241
248
  }
@@ -257,11 +264,6 @@
257
264
  }
258
265
  var notMatches = bindNot(matches);
259
266
 
260
- function numberEquals(value, eq) {
261
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
262
- }
263
- var numberNotEquals = bindNot(numberEquals);
264
-
265
267
  function condition(value, callback) {
266
268
  try {
267
269
  return callback(value);
@@ -365,6 +367,11 @@
365
367
  }
366
368
  }
367
369
 
370
+ function defaultTo(callback, defaultValue) {
371
+ var _a;
372
+ return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
373
+ }
374
+
368
375
  // eslint-disable-next-line max-lines-per-function
369
376
  function createContext(init) {
370
377
  var storage = { ancestry: [] };
@@ -375,8 +382,8 @@
375
382
  useX: useX
376
383
  };
377
384
  function useX(errorMessage) {
378
- var _a;
379
- return ((_a = storage.ctx) !== null && _a !== void 0 ? _a : throwError(defaultTo(errorMessage, 'Context was used after it was closed')));
385
+ invariant(storage.ctx, defaultTo(errorMessage, 'Context was used after it was closed'));
386
+ return storage.ctx;
380
387
  }
381
388
  function run(ctxRef, fn) {
382
389
  var _a;
@@ -516,10 +523,7 @@
516
523
  }
517
524
  function validateResult(result) {
518
525
  // if result is boolean, or if result.pass is boolean
519
- if (isBoolean(result) || (result && isBoolean(result.pass))) {
520
- return;
521
- }
522
- throwError('Incorrect return value for rule: ' + JSON.stringify(result));
526
+ invariant(isBoolean(result) || (result && isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
523
527
  }
524
528
 
525
529
  function enforceEager(value) {
@@ -548,15 +552,9 @@
548
552
  var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args, false)); }),
549
553
  ruleName,
550
554
  value], args, false));
551
- if (!transformedResult.pass) {
552
- if (isEmpty(transformedResult.message)) {
553
- throwError("enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value)));
554
- }
555
- else {
556
- // Explicitly throw a string so that vest.test can pick it up as the validation error message
557
- throw transformedResult.message;
558
- }
559
- }
555
+ invariant(transformedResult.pass, isEmpty(transformedResult.message)
556
+ ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
557
+ : new String(transformedResult.message));
560
558
  return target;
561
559
  };
562
560
  }
@@ -690,15 +688,7 @@
690
688
  }
691
689
  return Object.assign(function (value) {
692
690
  var res = run(value);
693
- if (!res.pass) {
694
- if (isEmpty(res.message)) {
695
- throwError();
696
- }
697
- else {
698
- // Explicitly throw a string so that vest.test can pick it up as the validation error message
699
- throw res.message;
700
- }
701
- }
691
+ invariant(res.pass, new String(res.message));
702
692
  }, {
703
693
  run: run,
704
694
  test: function (value) { return run(value).pass; }
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=t()}(this,(function(){function n(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function t(n){return"function"==typeof n}function r(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function e(n,t){var e;return null!==(e=r(n))&&void 0!==e?e:t}function u(n,t){throw Error(e(t,n))}function i(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function o(n){return"number"==typeof n}function s(n,t){return n.length===Number(t)}function f(n){if(n){if(o(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return s(n,0);if("object"==typeof n)return s(Object.keys(n),0)}return!0}function a(n){return null===n}function c(n){return void 0===n}function l(n){return null===n||c(n)}function N(n){return String(n)===n}function h(n,t){return N(n)&&N(t)&&n.endsWith(t)}function p(n,t){return n===t}function v(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function g(n,t){return v(n)&&v(t)&&Number(n)>Number(t)}function m(n,t){return v(n)&&v(t)&&Number(n)>=Number(t)}function d(n){return!!Array.isArray(n)}function y(n,t){return!!(d(t)||N(t)&&N(n))&&-1!==t.indexOf(n)}function b(n,t){return v(n)&&v(t)&&Number(n)<=Number(t)}function O(n,t,r){return m(n,t)&&b(n,r)}function x(n){return l(n)||N(n)&&!n.trim()}function E(n){return!!n===n}function w(n,t){return n in t}function T(n){return Number.isNaN(n)}function q(n){return!!v(n)&&0>Number(n)}function j(n){return!!n}function S(n,t){if(l(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function A(n,t){return v(n)&&v(t)&&Number(n)<Number(t)}function B(n,t){return t instanceof RegExp?t.test(n):!!N(t)&&new RegExp(t).test(n)}function P(n,t){return v(n)&&v(t)&&Number(n)===Number(t)}function W(n,t){return N(n)&&N(t)&&n.startsWith(t)}function k(n){for(var r in Nn){var e=Nn[r];t(e)&&n(r,e)}}function F(){return null}function I(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function J(){try{return t(Proxy)}catch(n){return!1}}function K(n,t){return n={pass:n},t&&(n.message=t),n}function R(n,t,e){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];return E(n)||n&&E(n.pass)||u("Incorrect return value for rule: "+JSON.stringify(n)),E(n)?K(n):K(n.pass,r.apply(void 0,I([n.message,t,e],i,!1)))}function U(n){function t(t,r,e){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=R.apply(void 0,I([hn.run({value:n},(function(){return r.apply(void 0,I([n],i,!1))})),e,n],i,!1))).pass){if(!f(o.message))throw o.message;u("enforce/".concat(e," failed with ").concat(JSON.stringify(n)))}return t}}var r={};if(!J())return k((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=Nn[r])return t(e,n,r)}});return e}function V(t){var u,i=[];return function t(o){return function(){for(var s=[],f=0;f<arguments.length;f++)s[f]=arguments[f];var a=Nn[o];i.push((function(n){return R.apply(void 0,I([a.apply(void 0,I([n],s,!1)),o,n],s,!1))}));var c={run:function(t){return e(n(i,(function(n,e){var i,o=hn.run({value:t},(function(){return n(t)}));o.pass||e(K(!!o.pass,null!==(i=r(u,t,o.message))&&void 0!==i?i:o.message))})),K(!0))},test:function(n){return c.run(n).pass},message:function(n){return n&&(u=n),c}};return J()?c=new Proxy(c,{get:function(n,r){return Nn[r]?t(r):n[r]}}):(k((function(n){c[n]=t(n)})),c)}}(t)}var X,z=i(o),C=i(s),M=i(f),D=Object.assign,G=i(a),H=i(c),L=i(l),Q=i(h),Y=i(p),Z=i(v),$=i(d),_=i(y),nn=i(O),tn=i(x),rn=i(E),en=i(w),un=i(T),on=i(q),sn=i(N),fn=i(j),an=i(S),cn=i(B),ln=i(P),Nn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Q,doesNotStartWith:i(W),endsWith:h,equals:p,greaterThan:g,greaterThanOrEquals:m,gt:g,gte:m,inside:y,isArray:d,isBetween:O,isBlank:x,isBoolean:E,isEmpty:f,isEven:function(n){return!!v(n)&&0==n%2},isFalsy:fn,isKeyOf:w,isNaN:T,isNegative:q,isNotArray:$,isNotBetween:nn,isNotBlank:tn,isNotBoolean:rn,isNotEmpty:M,isNotKeyOf:en,isNotNaN:un,isNotNull:G,isNotNullish:L,isNotNumber:z,isNotNumeric:Z,isNotString:sn,isNotUndefined:H,isNotValueOf:an,isNull:a,isNullish:l,isNumber:o,isNumeric:v,isOdd:function(n){return!!v(n)&&0!=n%2},isPositive:on,isString:N,isTruthy:j,isUndefined:c,isValueOf:S,lengthEquals:s,lengthNotEquals:C,lessThan:A,lessThanOrEquals:b,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:A,lte:b,matches:B,notEquals:Y,notInside:_,notMatches:cn,numberEquals:P,numberNotEquals:ln,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:W},hn=function(n){function t(t,e){var u,s,f=i();return t=D({},f||{},null!==(u=r(n,t,f))&&void 0!==u?u:t),u=o.ctx=Object.freeze(t),o.ancestry.unshift(u),e=e(u),o.ancestry.shift(),o.ctx=null!==(s=o.ancestry[0])&&void 0!==s?s:null,e}function i(){return o.ctx}var o={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:i,useX:function(n){var t;return null!==(t=o.ctx)&&void 0!==t?t:u(e(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?D(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:D(r,{parent:F})}));return X={context:function(){return hn.useX()},extend:function(n){D(Nn,n)}},J()?new Proxy(D(U,X),{get:function(n,t){return t in n?n[t]:Nn[t]?V(t):void 0}}):(k((function(n){X[n]=V(n)})),D(U,X)),function(){function t(t){return hn.run({value:t},(function(){return e(n(r,(function(n,r){try{var e=n.run(t)}catch(n){e=K(!1)}e.pass||r(e)})),K(!0))}))}for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];return Object.assign((function(n){if(!(n=t(n)).pass){if(!f(n.message))throw n.message;u()}}),{run:t,test:function(n){return t(n).pass}})}}));
1
+ "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=t()}(this,(function(){function n(n){return"function"==typeof n}function t(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return n(t)?t.apply(void 0,r):t}function r(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?t(r):r)}function e(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function u(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function i(n){return null===n}function o(n){return void 0===n}function s(n){return null===n||o(n)}function f(n){return String(n)===n}function a(n,t){return f(n)&&f(t)&&n.endsWith(t)}function c(n,t){return n===t}function l(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function p(n,t){return l(n)&&l(t)&&Number(n)>Number(t)}function N(n,t){return l(n)&&l(t)&&Number(n)===Number(t)}function g(n,t){return N(n,t)||p(n,t)}function h(n){return!!Array.isArray(n)}function v(n,t){return!!(h(t)||f(t)&&f(n))&&-1!==t.indexOf(n)}function y(n,t){return l(n)&&l(t)&&Number(n)<Number(t)}function d(n,t){return N(n,t)||y(n,t)}function m(n,t,r){return g(n,t)&&d(n,r)}function b(n){return s(n)||f(n)&&!n.trim()}function O(n){return!!n===n}function x(n){return"number"==typeof n}function E(n,t){return n.length===Number(t)}function w(n){if(n){if(x(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return E(n,0);if("object"==typeof n)return E(Object.keys(n),0)}return!0}function T(n,t){return n in t}function q(n){return Number.isNaN(n)}function S(n){return!!n}function j(n,t){if(s(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function A(n,t){return t instanceof RegExp?t.test(n):!!f(t)&&new RegExp(t).test(n)}function B(n,t){return f(n)&&f(t)&&n.startsWith(t)}function P(t){for(var r in cn){var e=cn[r];n(e)&&t(r,e)}}function W(n,r){var e;return null!==(e=t(n))&&void 0!==e?e:r}function k(){return null}function F(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function I(){try{return n(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function K(n,e,u){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];return r(O(n)||n&&O(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),O(n)?J(n):J(n.pass,t.apply(void 0,F([n.message,e,u],i,!1)))}function R(n){function t(t,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];return r((o=K.apply(void 0,F([ln.run({value:n},(function(){return e.apply(void 0,F([n],i,!1))})),u,n],i,!1))).pass,w(o.message)?"enforce/".concat(u," failed with ").concat(JSON.stringify(n)):new String(o.message)),t}}var e={};if(!I())return P((function(n,r){e[n]=t(e,r,n)})),e;var u=new Proxy(e,{get:function(n,r){if(n=cn[r])return t(u,n,r)}});return u}function U(n){var r,u=[];return function n(i){return function(){for(var o=[],s=0;s<arguments.length;s++)o[s]=arguments[s];var f=cn[i];u.push((function(n){return K.apply(void 0,F([f.apply(void 0,F([n],o,!1)),i,n],o,!1))}));var a={run:function(n){return W(e(u,(function(e,u){var i,o=ln.run({value:n},(function(){return e(n)}));o.pass||u(J(!!o.pass,null!==(i=t(r,n,o.message))&&void 0!==i?i:o.message))})),J(!0))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return I()?a=new Proxy(a,{get:function(t,r){return cn[r]?n(r):t[r]}}):(P((function(t){a[t]=n(t)})),a)}}(n)}var V,X=Object.assign,z=u(i),C=u(o),M=u(s),D=u(a),G=u(c),H=u(l),L=u(N),Q=u(h),Y=u(v),Z=u(m),$=u(b),_=u(O),nn=u(x),tn=u(E),rn=u(w),en=u(T),un=u(q),on=u(f),sn=u(S),fn=u(j),an=u(A),cn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:D,doesNotStartWith:u(B),endsWith:a,equals:c,greaterThan:p,greaterThanOrEquals:g,gt:p,gte:g,inside:v,isArray:h,isBetween:m,isBlank:b,isBoolean:O,isEmpty:w,isEven:function(n){return!!l(n)&&0==n%2},isFalsy:sn,isKeyOf:T,isNaN:q,isNegative:function(n){return y(n,0)},isNotArray:Q,isNotBetween:Z,isNotBlank:$,isNotBoolean:_,isNotEmpty:rn,isNotKeyOf:en,isNotNaN:un,isNotNull:z,isNotNullish:M,isNotNumber:nn,isNotNumeric:H,isNotString:on,isNotUndefined:C,isNotValueOf:fn,isNull:i,isNullish:s,isNumber:x,isNumeric:l,isOdd:function(n){return!!l(n)&&0!=n%2},isPositive:function(n){return p(n,0)},isString:f,isTruthy:S,isUndefined:o,isValueOf:j,lengthEquals:E,lengthNotEquals:tn,lessThan:y,lessThanOrEquals:d,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:y,lte:d,matches:A,notEquals:G,notInside:Y,notMatches:an,numberEquals:N,numberNotEquals:L,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:B},ln=function(n){function e(r,e){var o,s,f=u();return r=X({},f||{},null!==(o=t(n,r,f))&&void 0!==o?o:r),o=i.ctx=Object.freeze(r),i.ancestry.unshift(o),e=e(o),i.ancestry.shift(),i.ctx=null!==(s=i.ancestry[0])&&void 0!==s?s:null,e}function u(){return i.ctx}var i={ancestry:[]};return{bind:function(n,t){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return e(n,(function(){return t.apply(void 0,r)}))}},run:e,use:u,useX:function(n){return r(i.ctx,W(n,"Context was used after it was closed")),i.ctx}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?X(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:X(r,{parent:k})}));return V={context:function(){return ln.useX()},extend:function(n){X(cn,n)}},I()?new Proxy(X(R,V),{get:function(n,t){return t in n?n[t]:cn[t]?U(t):void 0}}):(P((function(n){V[n]=U(n)})),X(R,V)),function(){function n(n){return ln.run({value:n},(function(){return W(e(t,(function(t,r){try{var e=t.run(n)}catch(n){e=J(!1)}e.pass||r(e)})),J(!0))}))}for(var t=[],u=0;u<arguments.length;u++)t[u]=arguments[u];return Object.assign((function(t){r((t=n(t)).pass,new String(t.message))}),{run:n,test:function(t){return n(t).pass}})}}));