vest 5.0.0-dev-781e21 → 5.0.2-dev-d315d9

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 (182) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +2 -57
  3. package/dist/cjs/classnames.development.js +18 -16
  4. package/dist/cjs/classnames.production.js +1 -1
  5. package/dist/cjs/enforce/compose.development.js +5 -54
  6. package/dist/cjs/enforce/compose.production.js +1 -1
  7. package/dist/cjs/enforce/compounds.development.js +20 -83
  8. package/dist/cjs/enforce/compounds.production.js +1 -1
  9. package/dist/cjs/enforce/schema.development.js +19 -82
  10. package/dist/cjs/enforce/schema.production.js +1 -1
  11. package/dist/cjs/parser.development.js +12 -9
  12. package/dist/cjs/parser.production.js +1 -1
  13. package/dist/cjs/promisify.development.js +4 -8
  14. package/dist/cjs/promisify.production.js +1 -1
  15. package/dist/cjs/vest.development.js +1287 -1153
  16. package/dist/cjs/vest.production.js +1 -1
  17. package/dist/es/classnames.development.js +20 -18
  18. package/dist/es/classnames.production.js +1 -1
  19. package/dist/es/enforce/compose.development.js +1 -58
  20. package/dist/es/enforce/compose.production.js +1 -1
  21. package/dist/es/enforce/compounds.development.js +2 -90
  22. package/dist/es/enforce/compounds.production.js +1 -1
  23. package/dist/es/enforce/schema.development.js +2 -88
  24. package/dist/es/enforce/schema.production.js +1 -1
  25. package/dist/es/parser.development.js +12 -9
  26. package/dist/es/parser.production.js +1 -1
  27. package/dist/es/promisify.development.js +5 -9
  28. package/dist/es/promisify.production.js +1 -1
  29. package/dist/es/vest.development.js +1286 -1148
  30. package/dist/es/vest.production.js +1 -1
  31. package/dist/umd/classnames.development.js +21 -19
  32. package/dist/umd/classnames.production.js +1 -1
  33. package/dist/umd/enforce/compose.development.js +9 -57
  34. package/dist/umd/enforce/compose.production.js +1 -1
  35. package/dist/umd/enforce/compounds.development.js +32 -94
  36. package/dist/umd/enforce/compounds.production.js +1 -1
  37. package/dist/umd/enforce/schema.development.js +32 -94
  38. package/dist/umd/enforce/schema.production.js +1 -1
  39. package/dist/umd/parser.development.js +16 -13
  40. package/dist/umd/parser.production.js +1 -1
  41. package/dist/umd/promisify.development.js +7 -11
  42. package/dist/umd/promisify.production.js +1 -1
  43. package/dist/umd/vest.development.js +1289 -1155
  44. package/dist/umd/vest.production.js +1 -1
  45. package/package.json +12 -16
  46. package/src/__tests__/__snapshots__/integration.async-tests.test.ts.snap +71 -0
  47. package/src/__tests__/__snapshots__/integration.base.test.ts.snap +71 -0
  48. package/src/__tests__/__snapshots__/integration.stateful-async.test.ts.snap +243 -0
  49. package/src/__tests__/__snapshots__/integration.stateful-tests.test.ts.snap +376 -0
  50. package/src/__tests__/integration.async-tests.test.ts +90 -0
  51. package/src/__tests__/integration.base.test.ts +45 -0
  52. package/src/__tests__/integration.exclusive.test.ts +88 -0
  53. package/src/__tests__/integration.stateful-async.test.ts +137 -0
  54. package/src/__tests__/integration.stateful-tests.test.ts +155 -0
  55. package/src/__tests__/isolate.test.ts +288 -0
  56. package/src/__tests__/state_refill.test.ts +41 -0
  57. package/src/core/SuiteWalker/SuiteWalker.ts +64 -0
  58. package/src/core/SuiteWalker/__tests__/hasRemainingTests.test.ts +130 -0
  59. package/src/core/VestBus/VestBus.ts +78 -0
  60. package/src/core/context/PersistedContext.ts +243 -0
  61. package/src/core/context/SuiteContext.ts +74 -0
  62. package/src/core/isolate/IsolateTest/IsolateTest.ts +213 -0
  63. package/src/core/isolate/IsolateTest/IsolateTestReconciler.ts +156 -0
  64. package/src/core/isolate/IsolateTest/IsolateTestStateMachine.ts +69 -0
  65. package/src/core/isolate/IsolateTest/SimpleStateMachine.ts +43 -0
  66. package/src/core/isolate/IsolateTest/TestWalker.ts +77 -0
  67. package/src/core/isolate/IsolateTypes.ts +10 -0
  68. package/src/core/isolate/isIsolate.ts +6 -0
  69. package/src/core/isolate/isolate.ts +110 -0
  70. package/src/core/isolate/reconciler/Reconciler/Reconciler.ts +123 -0
  71. package/src/core/isolate/reconciler/cancelOverriddenPendingTest.ts +15 -0
  72. package/src/core/isolate/reconciler/isSameProfileTest.ts +12 -0
  73. package/src/core/isolate/walker.ts +127 -0
  74. package/src/core/test/TestTypes.ts +3 -0
  75. package/src/core/test/__tests__/IsolateTest.test.ts +152 -0
  76. package/src/core/test/__tests__/__snapshots__/IsolateTest.test.ts.snap +39 -0
  77. package/src/core/test/__tests__/__snapshots__/memo.test.ts.snap +101 -0
  78. package/src/core/test/__tests__/__snapshots__/test.test.ts.snap +231 -0
  79. package/src/core/test/__tests__/key.test.ts +195 -0
  80. package/src/core/test/__tests__/memo.test.ts +218 -0
  81. package/src/core/test/__tests__/merging_of_previous_test_runs.test.ts +341 -0
  82. package/src/core/test/__tests__/runAsyncTest.test.ts +175 -0
  83. package/src/core/test/__tests__/test.test.ts +226 -0
  84. package/src/core/test/helpers/__tests__/nonMatchingSeverityProfile.test.ts +52 -0
  85. package/src/core/test/helpers/asVestTest.ts +9 -0
  86. package/src/core/test/helpers/matchingFieldName.ts +16 -0
  87. package/src/core/test/helpers/matchingGroupName.ts +12 -0
  88. package/src/core/test/helpers/nonMatchingSeverityProfile.ts +14 -0
  89. package/src/core/test/helpers/shouldUseErrorMessage.ts +9 -0
  90. package/src/core/test/test.memo.ts +81 -0
  91. package/src/core/test/test.ts +64 -0
  92. package/src/core/test/testLevelFlowControl/runTest.ts +86 -0
  93. package/src/core/test/testLevelFlowControl/verifyTestRun.ts +32 -0
  94. package/src/core/test/testObjectIsolate.ts +11 -0
  95. package/src/errors/ErrorStrings.ts +4 -0
  96. package/src/exports/__tests__/classnames.test.ts +92 -0
  97. package/src/exports/__tests__/parser.test.ts +441 -0
  98. package/src/exports/__tests__/promisify.test.ts +77 -0
  99. package/src/exports/classnames.ts +35 -0
  100. package/src/exports/enforce@compose.ts +1 -0
  101. package/src/exports/enforce@compounds.ts +1 -0
  102. package/src/exports/enforce@schema.ts +1 -0
  103. package/src/exports/parser.ts +63 -0
  104. package/src/exports/promisify.ts +18 -0
  105. package/src/hooks/__tests__/__snapshots__/include.test.ts.snap +794 -0
  106. package/src/hooks/__tests__/eager.test.ts +130 -0
  107. package/src/hooks/__tests__/exclusive.test.ts +578 -0
  108. package/src/hooks/__tests__/include.test.ts +431 -0
  109. package/src/hooks/__tests__/optional.test.ts +83 -0
  110. package/src/hooks/__tests__/warn.test.ts +42 -0
  111. package/src/hooks/exclusive.ts +179 -0
  112. package/src/hooks/include.ts +54 -0
  113. package/src/hooks/mode.ts +47 -0
  114. package/src/hooks/optional/OptionalTypes.ts +31 -0
  115. package/src/hooks/optional/optional.ts +69 -0
  116. package/src/hooks/warn.ts +19 -0
  117. package/src/isolates/__tests__/__snapshots__/each.test.ts.snap +3 -0
  118. package/src/isolates/__tests__/__snapshots__/group.test.ts.snap +114 -0
  119. package/src/isolates/__tests__/__snapshots__/omitWhen.test.ts.snap +443 -0
  120. package/src/isolates/__tests__/__snapshots__/skipWhen.test.ts.snap +99 -0
  121. package/src/isolates/__tests__/each.test.ts +35 -0
  122. package/src/isolates/__tests__/group.test.ts +362 -0
  123. package/src/isolates/__tests__/omitWhen.test.ts +246 -0
  124. package/src/isolates/__tests__/skipWhen.test.ts +163 -0
  125. package/src/isolates/each.ts +30 -0
  126. package/src/isolates/group.ts +9 -0
  127. package/src/isolates/omitWhen.ts +41 -0
  128. package/src/isolates/skipWhen.ts +42 -0
  129. package/src/suite/__tests__/__snapshots__/create.test.ts.snap +67 -0
  130. package/src/suite/__tests__/create.test.ts +109 -0
  131. package/src/suite/__tests__/remove.test.ts +50 -0
  132. package/src/suite/__tests__/resetField.test.ts +74 -0
  133. package/src/suite/createSuite.ts +94 -0
  134. package/src/suite/runCallbacks.ts +28 -0
  135. package/src/suiteResult/Severity.ts +15 -0
  136. package/src/suiteResult/SuiteResultTypes.ts +42 -0
  137. package/src/suiteResult/__tests__/done.test.ts +334 -0
  138. package/src/suiteResult/__tests__/produce.test.ts +163 -0
  139. package/src/suiteResult/done/deferDoneCallback.ts +28 -0
  140. package/src/suiteResult/done/shouldSkipDoneRegistration.ts +20 -0
  141. package/src/suiteResult/selectors/__tests__/__snapshots__/collectFailureMessages.test.ts.snap +89 -0
  142. package/src/suiteResult/selectors/__tests__/collectFailureMessages.test.ts +124 -0
  143. package/src/suiteResult/selectors/__tests__/getFailures.test.ts +158 -0
  144. package/src/suiteResult/selectors/__tests__/getFailuresByGroup.test.ts +199 -0
  145. package/src/suiteResult/selectors/__tests__/hasFailures.test.ts +141 -0
  146. package/src/suiteResult/selectors/__tests__/hasFailuresByGroup.test.ts +185 -0
  147. package/src/suiteResult/selectors/__tests__/hasFailuresByTestObject.test.ts +88 -0
  148. package/src/suiteResult/selectors/__tests__/isValid.test.ts +359 -0
  149. package/src/suiteResult/selectors/__tests__/isValidByGroup.test.ts +480 -0
  150. package/src/suiteResult/selectors/collectFailures.ts +43 -0
  151. package/src/suiteResult/selectors/hasFailuresByTestObjects.ts +62 -0
  152. package/src/suiteResult/selectors/produceSuiteSummary.ts +135 -0
  153. package/src/suiteResult/selectors/shouldAddValidProperty.ts +148 -0
  154. package/src/suiteResult/selectors/suiteSelectors.ts +199 -0
  155. package/src/suiteResult/suiteResult.ts +15 -0
  156. package/src/suiteResult/suiteRunResult.ts +43 -0
  157. package/src/vest.ts +36 -0
  158. package/testUtils/TVestMock.ts +5 -0
  159. package/testUtils/__tests__/partition.test.ts +4 -4
  160. package/testUtils/mockThrowError.ts +4 -2
  161. package/testUtils/suiteDummy.ts +2 -1
  162. package/testUtils/testDummy.ts +12 -10
  163. package/testUtils/testPromise.ts +3 -0
  164. package/tsconfig.json +84 -2
  165. package/types/classnames.d.ts +39 -4
  166. package/types/classnames.d.ts.map +1 -0
  167. package/types/enforce/compose.d.ts +2 -126
  168. package/types/enforce/compose.d.ts.map +1 -0
  169. package/types/enforce/compounds.d.ts +2 -136
  170. package/types/enforce/compounds.d.ts.map +1 -0
  171. package/types/enforce/schema.d.ts +2 -144
  172. package/types/enforce/schema.d.ts.map +1 -0
  173. package/types/parser.d.ts +45 -10
  174. package/types/parser.d.ts.map +1 -0
  175. package/types/promisify.d.ts +36 -34
  176. package/types/promisify.d.ts.map +1 -0
  177. package/types/vest.d.ts +169 -224
  178. package/types/vest.d.ts.map +1 -0
  179. package/CHANGELOG.md +0 -87
  180. package/testUtils/expandStateRef.ts +0 -8
  181. package/testUtils/runCreateRef.ts +0 -10
  182. package/testUtils/testObjects.ts +0 -6
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e,r=require("n4s"),i=require("vest-utils"),u=require("context");function o(){var n=0;return{current:function(){return n},next:function(){n++}}}function s(n,t){return void 0===t&&(t=[]),{cursor:o(),keys:{current:{},prev:{}},path:t,type:n}}(t=n||(n={}))[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP",function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(e||(e={}));var a=u.createCascade((function(t,r){return r?null:i.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:s(n.DEFAULT),mode:[e.ALL]},t)}));function c(){return a.useX().stateRef}function f(){return c().suiteId()[0]}function l(){return c().testCallbacks()}function p(){return c().optionalFields()}function d(n,t){(0,p()[1])((function(e){var r;return i.assign(e,((r={})[n]=i.assign({},e[n],t(e[n])),r))}))}function v(n){var t;return null!==(t=p()[0][n])&&void 0!==t?t:{}}function E(){return c().testObjects()}function h(){g((function(n){return n}))}function g(n){(0,E()[1])((function(t){return{prev:t.prev,current:i.asArray(n(t.current))}}))}function y(){return R().filter((function(n){return n.isPending()}))}var N,m=i.cache();function R(){var n=E()[0].current;return m([n],(function(){return i.nestedArray.flatten(n)}))}function S(n){R().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(N||(N={}));var T,C,A=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=i.seq(),this.severity=N.Error,this.status=_,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return i.isUndefined(n)&&i.isStringValue(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==x||(this.status=n)},n.prototype.warns=function(){return this.severity===N.Warning},n.prototype.setPending=function(){this.setStatus(k)},n.prototype.fail=function(){this.setStatus(this.warns()?O:F)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(b)},n.prototype.warn=function(){this.severity=N.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(I)},n.prototype.cancel=function(){this.setStatus(P),h()},n.prototype.reset=function(){this.status=_,h()},n.prototype.omit=function(){this.setStatus(x)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.isPending=function(){return this.statusEquals(k)},n.prototype.isOmitted=function(){return this.statusEquals(x)},n.prototype.isUntested=function(){return this.statusEquals(_)},n.prototype.isFailing=function(){return this.statusEquals(F)},n.prototype.isCanceled=function(){return this.statusEquals(P)},n.prototype.isSkipped=function(){return this.statusEquals(I)},n.prototype.isPassing=function(){return this.statusEquals(b)},n.prototype.isWarning=function(){return this.statusEquals(O)},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},n.prototype.statusEquals=function(n){return this.status===n},n}(),_="UNTESTED",I="SKIPPED",F="FAILED",O="WARNING",b="PASSING",k="PENDING",P="CANCELED",x="OMITTED";function L(n){function t(n,t,u){return r.references.push(),e(n,i.optionalFunctionValue(t,u)),function(){return[r.references[n],function(t){return e(n,i.optionalFunctionValue(t,r.references[n]))}]}}function e(t,e){var o=r.references[t];r.references[t]=e,t=u[t][1],i.isFunction(t)&&t(e,o),i.isFunction(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function U(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function D(){return a.useX().isolate}function W(){var n=D();return n.path.concat(n.cursor.current())}function V(){return D().cursor}function w(t,e){t=void 0===(t=t.type)?n.DEFAULT:t,i.invariant(i.isFunction(e));var r=s(t,W());return t=a.run({isolate:r},(function(){return r.keys.prev=function(){var n=E()[0].prev;return i.asArray(i.nestedArray.getCurrent(n,W())).reduce((function(n,t){return t instanceof A&&!i.isNullish(t.key)?(n[t.key]=t,n):n}),{})}(),g((function(n){return i.nestedArray.setValueAtPath(n,r.path,[])})),e()})),V().next(),t}function G(n){return n===T.ERRORS?C.ERROR_COUNT:C.WARN_COUNT}function q(n,t){return!!t&&!X(n,t)}function X(n,t){return!(!t||n.fieldName!==t)}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(T||(T={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(C||(C={}));var H,K=i.bindNot((function(n,t){return n.groupName===t}));function M(n){return function(n,t){return R().some((function(e){return B(e,n,t)}))}(T.ERRORS,n)}function B(n,t,e){return!(!n.hasFailures()||q(n,e)||function(n,t){return i.either(n===T.WARNINGS,t.warns())}(t,n))}function j(n){return!!n&&v(n).applied}function Y(n){if(j(n))return!0;var t=R();return!(i.isEmpty(t)||M(n)||function(n){return i.isNotEmpty(y().filter((function(t){return z(t,n)})))}(n))&&function(n){return R().every((function(t){return Q(t,n)}))}(n)}function J(n,t){return!!j(t)||!function(n,t,e){return R().some((function(r){return!K(r,t)&&B(r,n,e)}))}(T.ERRORS,n,t)&&!function(n,t){return i.isNotEmpty(y().filter((function(e){return!K(e,n)&&z(e,t)})))}(n,t)&&function(n,t){return R().every((function(e){return!!K(e,n)||Q(e,t)}))}(n,t)}function z(n,t){return!q(n,t)&&j(t)}function Q(n,t){return!!q(n,t)||(function(n){return v(n.fieldName).type===H.Delayed&&n.awaitsResolution()}(n)||n.isTested()||n.isOmitted())}function Z(){var n=R(),t=i.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=$(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&Y(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=$(n[e],t),n[e][t.fieldName].valid=!1!==n[e][t.fieldName].valid&&J(e,t.fieldName))}(n.groups,t),n}),t),t.valid=Y(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function $(n,t){function e(n){var t=G(n);o[t]++,u&&(o[n]=(o[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||i.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(T.ERRORS):t.isWarning()&&e(T.WARNINGS)),o}function nn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r={},u=G(t);for(e in n)i.isPositive(n[e][u])&&(r[e]=n[e][t]||[]);return r}(n,t)}function tn(n){return{getErrors:function(t){return en(n,T.ERRORS,t)},getErrorsByGroup:function(t,e){return rn(n,T.ERRORS,t,e)},getWarnings:function(t){return en(n,T.WARNINGS,t)},getWarningsByGroup:function(t,e){return rn(n,T.WARNINGS,t,e)},hasErrors:function(t){return sn(n,C.ERROR_COUNT,t)},hasErrorsByGroup:function(t,e){return on(n,C.ERROR_COUNT,t,e)},hasWarnings:function(t){return sn(n,C.WARN_COUNT,t)},hasWarningsByGroup:function(t,e){return on(n,C.WARN_COUNT,t,e)},isValid:function(t){var e;return t?!(null===(e=n.tests[t])||void 0===e||!e.valid):n.valid},isValidByGroup:function(t,e){if(!(t=n.groups[t]))return!1;if(e)return un(t,e);for(var r in t)if(!un(t,r))return!1;return!0}}}function en(n,t,e){return nn(n.tests,t,e)}function rn(n,t,e,r){return nn(n.groups[e],t,r)}function un(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function on(n,t,e,r){var u,o;if(!(n=n.groups[e]))return!1;if(r)return i.isPositive(null===(u=n[r])||void 0===u?void 0:u[t]);for(var s in n)if(i.isPositive(null===(o=n[s])||void 0===o?void 0:o[t]))return!0;return!1}function sn(n,t,e){var r;return n=e?null===(r=n.tests[e])||void 0===r?void 0:r[t]:n[t]||0,i.isPositive(n)}!function(n){n[n.Immediate=0]="Immediate",n[n.Delayed=1]="Delayed"}(H||(H={}));var an=i.cache(1);function cn(){var n=R(),t={stateRef:c()};return an([n],a.bind(t,(function(){var n=Z(),t=c().suiteName()[0];return i.assign(n,tn(n),{suiteName:t})})))}function fn(n){var t=y();return!i.isEmpty(t)&&(!n||t.some((function(t){return X(t,n)})))}var ln=i.cache(20);function pn(){var n=R(),t={stateRef:c()};return ln([n],a.bind(t,(function(){return i.assign({},cn(),{done:a.bind(t,hn)})})))}function dn(n,t,e){var r;return!!(!i.isFunction(n)||t&&i.numberEquals(null===(r=e.tests[t])||void 0===r?void 0:r.testCount,0))}function vn(n){return!(fn()&&(!n||fn(n)))}var En,hn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=pn(),dn(e,n,t))return t;var r=function(){return e(cn())};return vn(n)?(r(),t):(gn(r,n),t)};function gn(n,t){(0,l()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function yn(){var n=i.bus.createBus();return n.on(En.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=l()[0].fieldCallbacks;n&&!fn(n)&&i.isArray(t[n])&&i.callEach(t[n])}(t.fieldName),fn()||n.emit(En.ALL_RUNNING_TESTS_FINISHED))})),n.on(En.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),d(n.fieldName,(function(){return{applied:!0}})))}var t=p()[0];if(!i.isEmpty(t)){var e={};R().forEach((function(t){if(i.hasOwnProperty(e,t.fieldName))n(t);else{var r=v(t.fieldName);r.type===H.Immediate&&(e[t.fieldName]=i.optionalFunctionValue(r.rule),n(t))}})),h()}}()})),n.on(En.ALL_RUNNING_TESTS_FINISHED,(function(){!function(){var n=l()[0].doneCallbacks;i.callEach(n)}()})),n.on(En.REMOVE_FIELD,(function(n){S((function(t){X(t,n)&&(t.cancel(),function(n){g((function(t){return i.nestedArray.transform(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(En.RESET_FIELD,(function(n){S((function(t){X(t,n)&&t.reset()}))})),n}function Nn(){var n=a.useX();return i.invariant(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(En||(En={}));function mn(){return!!a.useX().skipped}function Rn(n){return Cn(0,"tests",n)}function Sn(n){return Cn(1,"tests",n)}function Tn(n){var t=n.fieldName;if(n=n.groupName,mn())return!0;var e=a.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[t];if(!1===o)return!0;if(o=!0===o,n){if(function(n){var t=a.useX().exclusion.groups;return i.hasOwnProperty(t,n)?!1===t[n]:_n()}(n))return!0;if(!0===r.groups[n])return!o&&(!!An(u)||!1===u[t])}return!!function(n){return!!_n()&&!n}(n)||!o&&(!!An(u)&&!i.optionalFunctionValue(e[t]))}function Cn(n,t,e){var r=a.useX("hook called outside of a running suite.");e&&i.asArray(e).forEach((function(e){i.isStringValue(e)&&(r.exclusion[t][e]=0===n)}))}function An(n){for(var t in n)if(!0===n[t])return!0;return!1}function _n(){var n,t=a.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function In(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Fn(n){return function(n){return a.useX().mode[0]===n}(e.EAGER)&&M(n.fieldName)}function On(){return!!a.useX().omitted}function bn(n,t,e){if(e||2===arguments.length)for(var r,i=0,u=t.length;i<u;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return n.concat(r||Array.prototype.slice.call(t))}function kn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Pn(n){var t=n.asyncTest,e=n.message;if(i.isPromise(t)){var r=Nn().emit,u=c(),o=a.bind({stateRef:u},(function(){h(),r(En.TEST_COMPLETED,n)}));u=a.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=i.isStringValue(t)?t:e,n.fail(),o())}));try{t.then(o,u)}catch(n){u()}}}function xn(n){var t=Nn(),e=function(n){return a.run({currentTest:n},(function(){return n.run()}))}(n);try{i.isPromise(e)?(n.asyncTest=e,n.setPending(),Pn(n)):t.emit(En.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function Ln(t){var e=E()[0].prev;return i.isEmpty(e)?(Un(t),t):(e=function(n){var t=W();return i.nestedArray.valueAtPath(n,t)}(e),i.isNullish(t.key)?(function(n,t){return i.isNotEmpty(n)&&!kn(n,t)}(e,t)&&(function(t,e){D().type===n.EACH||i.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(e.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.'))}(e,t),function(){var n=V().current();g((function(t){return t.splice(n),t}))}(),e=null),Un(t=i.defaultTo(e,t)),t):(t=function(n,t){var e=function(n){return D().keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=D().keys.current;i.isNullish(e[n])?e[n]=t:i.deferThrow('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(t.key,t),Un(t),t))}function Un(n){var t=W();g((function(e){return i.nestedArray.setValueAtPath(e,t,n)}))}function Dn(n){var t=V();if(Fn(n))return n.skip(),Ln(n),t.next(),n;var e=Ln(n);return On()||j(n.fieldName)?(e.omit(),t.next(),e):Tn(n)?(e.skip(mn()),t.next(),e):(function(n,t){t!==n&&kn(n,t)&&n.isPending()&&n.cancel()}(e,n),Un(n),function(n){n.isUntested()?xn(n):i.isPromise(n.asyncTest)&&(n.setPending(),Pn(n))}(n),t.next(),n)}function Wn(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=i.isFunction(t[1])?t:bn([void 0],t,!0);t=r[0],e=r[1],r=r[2],i.invariant(i.isStringValue(n),wn("fieldName","string")),i.invariant(i.isFunction(e),wn("Test callback","function"));var u=a.useX();return Dn(t=new A(n,e,{message:t,groupName:u.groupName,key:r}))}Rn.group=function(n){return Cn(0,"groups",n)},Sn.group=function(n){return Cn(1,"groups",n)};var Vn=i.assign(Wn,{memo:function(n){var t=i.cache(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=V().current();var o=(r=r.reverse())[0],s=r[1],a=r[2];return u=[f(),e,u].concat(o),r=t.get(u),i.isNull(r)?t(u,(function(){return n(e,a,s)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,a,s)}))):Dn(r[1])}}(Wn)});function wn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return r.enforce}}),exports.VERSION="5.0.0-dev-781e21",exports.context=a,exports.create=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=(t=t.reverse())[0];t=t[1],i.invariant(i.isFunction(r),"vest.create: Expected callback to be a function.");var u=yn(),o=L();return t={stateRef:U(o,{suiteId:i.seq(),suiteName:t}),bus:u},i.assign(a.bind(t,(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return o.reset(),w({type:n.SUITE},(function(){r.apply(void 0,t)})),u.emit(En.SUITE_CALLBACK_DONE_RUNNING),pn()})),{get:a.bind(t,cn),remove:a.bind(t,(function(n){u.emit(En.REMOVE_FIELD,n)})),reset:o.reset,resetField:a.bind(t,(function(n){u.emit(En.RESET_FIELD,n)}))})},exports.each=function(t,e){i.invariant(i.isFunction(e),"each callback must be a function"),w({type:n.EACH},(function(){t.forEach((function(n,t){e(n,t)}))}))},exports.eager=function(){!function(n){a.useX().mode[0]=n}(e.EAGER)},exports.group=function(t,e){i.invariant(i.isStringValue(t),In("name must be a string")),i.invariant(i.isFunction(e),In("callback must be a function")),w({type:n.GROUP},(function(){a.run({groupName:t},e)}))},exports.include=function(n){var t=a.useX(),e=t.inclusion;return t=t.exclusion,i.invariant(i.isStringValue(n)),e[n]=i.defaultTo(t.tests[n],!0),{when:function(t){var e=a.useX(),r=e.exclusion;e.inclusion[n]=function(){return i.hasOwnProperty(r.tests,n)?i.defaultTo(r.tests[n],!0):i.isStringValue(t)?!!r.tests[t]:i.optionalFunctionValue(t,i.optionalFunctionValue(cn))}}}},exports.omitWhen=function(t,e){w({type:n.OMIT_WHEN},(function(){a.run({omitted:On()||i.optionalFunctionValue(t,i.optionalFunctionValue(cn))},(function(){return e()}))}))},exports.only=Rn,exports.optional=function(n){if(i.isArray(n)||i.isStringValue(n))i.asArray(n).forEach((function(n){d(n,(function(){return{type:H.Delayed,applied:!1,rule:null}}))}));else{var t,e=function(t){var e=n[t];d(t,(function(){return{type:H.Immediate,rule:e,applied:i.optionalFunctionValue(e)}}))};for(t in n)e(t)}},exports.skip=Sn,exports.skipWhen=function(t,e){w({type:n.SKIP_WHEN},(function(){a.run({skipped:mn()||i.optionalFunctionValue(t,i.optionalFunctionValue(cn))},(function(){return e()}))}))},exports.suiteSelectors=tn,exports.test=Vn,exports.warn=function(){var n=a.useX("warn hook called outside of a running suite.");i.invariant(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,n,i,s,r=require("n4s"),o=require("vest-utils"),u=require("context");!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(t||(t={})),function(t){t.DEFAULT="DEFAULT",t.TEST="TEST",t.SUITE="SUITE",t.EACH="EACH",t.GROUP="GROUP",t.SKIP_WHEN="SKIP_WHEN",t.OMIT_WHEN="OMIT_WHEN",t.TEST_MEMO="TEST_MEMO"}(e||(e={}));class a{static reconciler(t,e){return o.isNullish(e),t}static reconcile(t,e){var n;const i=vt(),s=pt();let r=s;i&&(r=null!==(n=null==s?void 0:s.at(Rt()))&&void 0!==n?n:null);const u=this.reconciler(t,r);return o.invariant(u),Object.is(u,t)?[t,c(r,t,e)]:[u,u.output]}static removeAllNextNodesInIsolate(){const t=vt(),e=pt();e&&t&&e.slice(Rt())}static handleCollision(t,e){return t.usesKey()?this.handleIsolateNodeWithKey(t):(this.nodeReorderDetected(t,e)&&this.onNodeReorder(t,e),e||t)}static nodeReorderDetected(t,e){return!(null!=t?t:e)}static onNodeReorder(t,e){return this.removeAllNextNodesInIsolate(),null!=t?t:e}static handleIsolateNodeWithKey(t){o.invariant(t.usesKey());const e=function(t){var e;if(o.isNullish(t))return null;const n=ut.useX().historyNode;return null!==(e=null==n?void 0:n.keys[t])&&void 0!==e?e:null}(t.key);let n=t;return o.isNullish(e)||(n=e),function(t,e){if(!t)return;const n=vt();if(o.invariant(n,"Not within an active isolate"),o.isNullish(n.keys[t]))return void(n.keys[t]=e);o.deferThrow(`Encountered the same test key "${t}" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.`)}(t.key,t),n}}function c(t,e,n){const i=It(),s=ut.run(Object.assign({historyNode:t,runtimeNode:e},!i&&{runtimeRoot:e}),(()=>n(e)));return e.output=s,s}function l(t,e){return t.fieldName===e.fieldName&&t.groupName===e.groupName&&t.key===e.key}function f(t){return t===i.ERRORS?s.ERROR_COUNT:s.WARN_COUNT}function d(t,e){return!!e&&!E(t,e)}function E(t,e){return!(!e||t.fieldName!==e)}!function(t){t.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",t.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest"}(n||(n={})),function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(i||(i={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={}));const N=o.bindNot((function(t,e){return t.groupName===e}));function h(t){return function(t,e){return st.someTests((n=>T(n,t,e)))}(i.ERRORS,t)}function T(t,e,n){return!!t.hasFailures()&&(!d(t,n)&&!function(t,e){return o.either(t===i.WARNINGS,e.warns())}(e,t))}var S;function p(){return function(t){const[e]=g();return e===t}(S.EAGER)}function m(t){return p()&&h(t.fieldName)}!function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(S||(S={}));const v=u.createCascade(((t,e)=>e?null:o.assign({exclusion:{tests:{},groups:{}},inclusion:{},mode:o.tinyState.createTinyState(S.ALL),testMemoCache:y},t)));function R(t){return v.useX(t).exclusion}function I(){return v.useX().inclusion}function g(){return v.useX().mode()}const y=o.cache(10);class D{constructor(t,e){this.type=t,this.children=[],this.keys={},this.parent=null,this.key=null}setParent(t){return this.parent=t,this}saveOutput(t){return this.output=t,this}setKey(t){return this.key=t,this}usesKey(){return o.isNotNullish(this.key)}addChild(t){o.invariant(this.children),this.children.push(t)}removeChild(t){var e,n;this.children=null!==(n=null===(e=this.children)||void 0===e?void 0:e.filter((e=>e!==t)))&&void 0!==n?n:null}slice(t){o.isNullish(this.children)||(this.children.length=t)}at(t){var e,n;return null!==(n=null===(e=this.children)||void 0===e?void 0:e[t])&&void 0!==n?n:null}cursor(){var t,e;return null!==(e=null===(t=this.children)||void 0===t?void 0:t.length)&&void 0!==e?e:0}static create(t,e,n){return this.createImplementation(t,e,n)}static createImplementation(t,e,n){const i=vt(),s=new this(t,n).setParent(i),[r,o]=this.reconciler.reconcile(s,e);return r.saveOutput(o),this.setNode(r),r}static setNode(t){vt()?function(t){const e=vt();o.invariant(e,"Not within an active isolate"),e.addChild(t)}(t):function(t){const e=ut.useX(),[,n]=e.historyRoot();n(t)}(t)}static is(t){return t instanceof D}}function A(t){return!!yt(t)||!st.hasNoTests()&&(!h(t)&&(!function(t){return st.someIncompleteTests((e=>_(e,t)))}(t)&&function(t){return st.everyTest((e=>O(e,t)))}(t)))}function C(t,e){return!!yt(e)||!function(t,e,n){return st.someTests((i=>!N(i,e)&&T(i,t,n)))}(i.ERRORS,t,e)&&(!function(t,e){return st.someIncompleteTests((n=>!N(n,t)&&_(n,e)))}(t,e)&&function(t,e){return st.everyTest((n=>!!N(n,t)||O(n,e)))}(t,e))}function _(t,e){return!d(t,e)&&yt(e)}function O(e,n){return!!d(e,n)||(function(e){return Nt(e.fieldName).type===t.Delayed&&e.awaitsResolution()}(e)||e.isTested()||e.isOmitted())}function P(){const t=o.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return st.walkTests((e=>{!function(t,e){t[e.fieldName]=U(t,e),t[e.fieldName].valid=!1!==t[e.fieldName].valid&&A(e.fieldName)}(t.tests,e),function(t,e){const{groupName:n}=e;if(!n)return;t[n]=t[n]||{},t[n][e.fieldName]=U(t[n],e),t[n][e.fieldName].valid=!1!==t[n][e.fieldName].valid&&C(n,e.fieldName)}(t.groups,e)})),t.valid=A(),function(t){for(const e in t.tests)t.errorCount+=t.tests[e].errorCount,t.warnCount+=t.tests[e].warnCount,t.testCount+=t.tests[e].testCount;return t}(t)}function U(t,e){const{fieldName:n,message:s}=e;t[n]=t[n]||o.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});const r=t[n];return e.isNonActionable()||(t[n].testCount++,e.isFailing()?u(i.ERRORS):e.isWarning()&&u(i.WARNINGS)),r;function u(t){const e=f(t);r[e]++,s&&(r[t]=(r[t]||[]).concat(s))}}function F(t,e,n){return n?function(t,e,n){var i;return(null===(i=null==t?void 0:t[n])||void 0===i?void 0:i[e])||[]}(t,e,n):function(t,e){const n={},i=f(e);for(const s in t)o.isPositive(t[s][i])&&(n[s]=t[s][e]||[]);return n}(t,e)}function L(t){const e={getErrors:function(e){return k(t,i.ERRORS,e)},getErrorsByGroup:function(e,n){return G(t,i.ERRORS,e,n)},getWarnings:function(e){return k(t,i.WARNINGS,e)},getWarningsByGroup:function(e,n){return G(t,i.WARNINGS,e,n)},hasErrors:function(e){return M(t,s.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return w(t,s.ERROR_COUNT,e,n)},hasWarnings:function(e){return M(t,s.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return w(t,s.WARN_COUNT,e,n)},isValid:function(e){var n;return e?Boolean(null===(n=t.tests[e])||void 0===n?void 0:n.valid):t.valid},isValidByGroup:function(e,n){const i=t.groups[e];if(!i)return!1;if(n)return W(i,n);for(const t in i)if(!W(i,t))return!1;return!0}};return e}function k(t,e,n){return F(t.tests,e,n)}function G(t,e,n,i){return F(t.groups[n],e,i)}function W(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function w(t,e,n,i){var s,r;const u=t.groups[n];if(!u)return!1;if(i)return o.isPositive(null===(s=u[i])||void 0===s?void 0:s[e]);for(const t in u)if(o.isPositive(null===(r=u[t])||void 0===r?void 0:r[e]))return!0;return!1}function M(t,e,n){var i;const s=n?null===(i=t.tests[n])||void 0===i?void 0:i[e]:t[e]||0;return o.isPositive(s)}function X(){const t=P(),e=ut.useX().suiteName;return n=()=>o.assign(t,L(t),{suiteName:e}),(0,ut.useX().suiteResultCache)([mt()],n);var n}function x(){return null!==(t=v.useX().skipped)&&void 0!==t&&t;var t}function b(t){return H(0,"tests",t)}function K(t){return H(1,"tests",t)}function V(t){const{fieldName:e,groupName:n}=t;if(x())return!0;const i=R(),s=I(),r=i.tests,u=r[e];if(!1===u)return!0;const a=!0===u;if(n){if(function(t){const e=R().groups;if(o.hasOwnProperty(e,t))return!1===e[t];return B()}(n))return!0;if(!0===i.groups[n])return!a&&(!!q(r)||!1===r[e])}return!!function(t){if(!B())return!1;return!t}(n)||!a&&(!!q(r)&&!o.optionalFunctionValue(s[e]))}function H(t,e,i){const s=R(n.HOOK_CALLED_OUTSIDE);i&&o.asArray(i).forEach((n=>{o.isStringValue(n)&&(s[e][n]=0===t)}))}function q(t){for(const e in t)if(!0===t[e])return!0;return!1}function B(){const t=R();for(const e in t.groups)if(t.groups[e])return!0;return!1}function $(){return null!==(t=v.useX().omitted)&&void 0!==t&&t;var t}D.reconciler=a,b.group=t=>H(0,"groups",t),K.group=t=>H(1,"groups",t);var j,Y;function J(){return function(t){let e=t.initial;return{getState:function(){return e},transition:function(n,i){let s=t.states[e][n];if(Array.isArray(s)){const[,t]=s;if(!t(i))return;s=s[0]}s&&s!==e&&(e=s)}}}(z)}!function(t){t.UNTESTED="UNTESTED",t.SKIPPED="SKIPPED",t.FAILED="FAILED",t.WARNING="WARNING",t.PASSING="PASSING",t.PENDING="PENDING",t.CANCELED="CANCELED",t.OMITTED="OMITTED"}(j||(j={})),function(t){t.RESET="RESET"}(Y||(Y={}));const z={initial:j.UNTESTED,states:{[j.UNTESTED]:{[j.CANCELED]:j.CANCELED,[j.FAILED]:j.FAILED,[j.OMITTED]:j.OMITTED,[j.PASSING]:j.PASSING,[j.PENDING]:j.PENDING,[j.SKIPPED]:j.SKIPPED,[j.WARNING]:j.WARNING},[j.SKIPPED]:{[Y.RESET]:j.UNTESTED},[j.FAILED]:{[Y.RESET]:j.UNTESTED},[j.WARNING]:{[Y.RESET]:j.UNTESTED},[j.PASSING]:{[Y.RESET]:j.UNTESTED},[j.PENDING]:{[Y.RESET]:j.UNTESTED,[j.CANCELED]:j.CANCELED,[j.FAILED]:j.FAILED,[j.OMITTED]:j.OMITTED,[j.PASSING]:j.PASSING,[j.SKIPPED]:[j.SKIPPED,t=>!0===t],[j.WARNING]:j.WARNING},[j.CANCELED]:{[Y.RESET]:j.UNTESTED},[j.OMITTED]:{[Y.RESET]:j.UNTESTED}}};class Q extends D{constructor(t,{fieldName:e,testFn:n,message:i,groupName:s,key:r=null}){super(t),this.children=null,this.id=o.seq(),this.severity=Z.Error,this.stateMachine=J(),this.fieldName=e,this.testFn=n,s&&(this.groupName=s),i&&(this.message=i),this.setKey(r)}static factory(t,n){return super.create(e.TEST,t,n)}get status(){return this.stateMachine.getState()}setStatus(t,e){this.stateMachine.transition(t,e)}run(){let t;try{t=this.testFn()}catch(e){(function(t,e){return o.isUndefined(t)&&o.isStringValue(e)})(this.message,e)&&(this.message=e),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===Z.Warning}isPending(){return this.statusEquals(j.PENDING)}isOmitted(){return this.statusEquals(j.OMITTED)}isUntested(){return this.statusEquals(j.UNTESTED)}isFailing(){return this.statusEquals(j.FAILED)}isCanceled(){return this.statusEquals(j.CANCELED)}isSkipped(){return this.statusEquals(j.SKIPPED)}isPassing(){return this.statusEquals(j.PASSING)}isWarning(){return this.statusEquals(j.WARNING)}hasFailures(){return this.isFailing()||this.isWarning()}isNonActionable(){return this.isSkipped()||this.isOmitted()||this.isCanceled()}isTested(){return this.hasFailures()||this.isPassing()}awaitsResolution(){return this.isSkipped()||this.isUntested()||this.isPending()}statusEquals(t){return this.status===t}setPending(){this.setStatus(j.PENDING)}fail(){this.setStatus(this.warns()?j.WARNING:j.FAILED)}pass(){this.setStatus(j.PASSING)}warn(){this.severity=Z.Warning}skip(t){this.setStatus(j.SKIPPED,t)}cancel(){this.setStatus(j.CANCELED)}reset(){this.stateMachine.transition(Y.RESET)}omit(){this.setStatus(j.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return o.isPromise(this.asyncTest)}static is(t){return t instanceof Q}static isX(t){o.invariant(this.is(t))}}var Z,tt;function et(t,e,n){if(o.isNullish(t.children))return;let i=!1;for(const r of t.children){if(i)return;if((o.isNullish(n)||o.optionalFunctionValue(n,r))&&e(r,s),i)return;et(r,((t,n)=>{e(t,(()=>{n(),s()}))}),n)}function s(){i=!0}}function nt(t,e,n){let i=!1;return et(t,((t,n)=>{e(t)&&(n(),i=!0)}),n),i}Q.reconciler=class extends a{static reconciler(t,e){if(!Q.is(t))return t;if(o.isNullish(e))return this.handleNoHistoryNode(t);if(!Q.is(e))return t;const n=this.pickNode(e,t);return function(t,e,n){t===e&&Q.is(e)&&(s=e)!==(i=n)&&l(i,s)&&i.isPending()&&i.cancel();var i,s}(n,t,e),n}static nodeReorderDetected(t,e){return!!Q.is(e)&&!l(e,t)}static handleCollision(t,e){return t.usesKey()?this.handleIsolateNodeWithKey(t):this.nodeReorderDetected(t,e)?this.onNodeReorder(t,e):e||t}static onNodeReorder(t,n){return function(t,n){if(function(t){const n=t.parent;return o.invariant(n),function(t,e){return t.type===e}(n,e.EACH)}(t))return;o.deferThrow(`Vest Critical Error: Tests called in different order than previous run.\n expected: ${t.fieldName}\n received: ${Q.is(n)?n.fieldName:void 0}\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.`)}(t,n),this.removeAllNextNodesInIsolate(),t}static pickNode(t,e){const n=this.handleCollision(e,t);return m(e)?((i=e).skip(),i):(s=e,$()||yt(s.fieldName)?function(t){return t.omit(),t}(e):V(e)?function(t){return t.skip(x()),t}(n):e);var i,s}static handleNoHistoryNode(t){return t.usesKey()?this.handleIsolateNodeWithKey(t):t}},function(t){t.Error="error",t.Warning="warning"}(Z||(Z={}));class it{static walk(t,e){const n=gt();n&&et(n,t,e)}static some(t,e){const n=gt();return!!n&&nt(n,t,e)}static has(t){const e=gt();return!!e&&function(t,e){return nt(t,(()=>!0),e)}(e,t)}static find(t,e){const n=gt();return n?function(t,e,n){let i=null;return et(t,((t,n)=>{e(t)&&(n(),i=t)}),n),i}(n,t,e):null}static every(t,e){const n=gt();return!!n&&function(t,e,n){let i=!0;return et(t,((t,n)=>{e(t)||(n(),i=!1)}),n),i}(n,t,e)}static pluck(t,e){const n=gt();if(n)return function(t,e,n){et(t,(t=>{e(t)&&t.parent&&t.parent.removeChild(t)}),n)}(n,t,e)}}class st{static hasNoTests(){return!it.has(Q.is)}static someIncompleteTests(t){return it.some((e=>(Q.isX(e),e.isPending()&&t(e))),Q.is)}static someTests(t){return it.some((e=>(Q.isX(e),t(e))),Q.is)}static everyTest(t){return it.every((e=>(Q.isX(e),t(e))),Q.is)}static walkTests(t){it.walk(((e,n)=>{Q.isX(e),t(e,n)}),Q.is)}static hasRemainingTests(t){return st.someIncompleteTests((e=>!t||E(e,t)))}static pluckTests(t){it.pluck((e=>(Q.isX(e),t(e))),Q.is)}static resetField(t){st.walkTests((e=>{E(e,t)&&e.reset()}))}static removeTestByFieldName(t){st.pluckTests((e=>E(e,t)))}}function rt(){const t=o.bus.createBus();return e(tt.TEST_COMPLETED,(e=>{e.isCanceled()||(e.pass(),function(t){const[e]=Tt();t&&!st.hasRemainingTests(t)&&o.isArray(e[t])&&o.callEach(e[t])}(e.fieldName),st.hasRemainingTests()||t.emit(tt.ALL_RUNNING_TESTS_FINISHED))})),e(tt.TEST_RUN_STARTED,(()=>{})),e(tt.ALL_RUNNING_TESTS_FINISHED,(()=>{!function(){const[t]=ht();o.callEach(t)}()})),e(tt.RESET_FIELD,(t=>{st.resetField(t)})),e(tt.SUITE_RUN_STARTED,(()=>{ct()})),e(tt.REMOVE_FIELD,(t=>{st.removeTestByFieldName(t)})),e(tt.RESET_SUITE,(()=>{!function(){ct();const[,,t]=St();t()}()})),t;function e(e,n){t.on(e,((...t)=>{ut.useX().suiteResultCache.invalidate([mt()]),n(...t)}))}}!function(t){t.TEST_RUN_STARTED="test_run_started",t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.RESET_SUITE="reset_suite",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",t.SUITE_RUN_STARTED="suite_run_started"}(tt||(tt={}));const ot=o.cache(),ut=u.createCascade(((t,e)=>{if(e)return null;o.invariant(t.historyRoot);const[n]=t.historyRoot(),i={};return o.assign(i,{historyNode:n,optional:{},runtimeNode:null,runtimeRoot:null},t),i}));function at(t){const e=ut.useX();return function(...n){var i;const s=null!==(i=ut.use())&&void 0!==i?i:e;return ut.run(s,(()=>t(...n)))}}function ct(){const[,,t]=ht(),[,,e]=Tt();t(),e()}function lt(){return ut.useX().VestBus}function ft(){return at(lt().emit)}function dt(t){const e=ft();return n=>e(t,n)}function Et(){return ut.useX().optional}function Nt(t){var e;return null!==(e=Et()[t])&&void 0!==e?e:{}}function ht(){return ut.useX().doneCallbacks()}function Tt(){return ut.useX().fieldCallbacks()}function St(){return ut.useX().historyRoot()}function pt(){return ut.useX().historyNode}function mt(){return ut.useX().suiteId}function vt(){var t;return null!==(t=ut.useX().runtimeNode)&&void 0!==t?t:null}function Rt(){var t,e;return null!==(e=null===(t=vt())||void 0===t?void 0:t.cursor())&&void 0!==e?e:0}function It(){return ut.useX().runtimeRoot}function gt(){const t=It();if(t)return t;const[e]=St();return e}function yt(t){return!!t&&Nt(t).applied}function Dt(t,e){const n=Et(),i=Nt(t);o.assign(n,{[t]:o.assign({},i,e(i))})}function At(){return o.assign({},X(),{done:at(Ct)})}function Ct(...t){const[e,n]=t.reverse(),i=At();if(function(t,e,n){var i;return!!(!o.isFunction(t)||e&&o.numberEquals(null===(i=n.tests[e])||void 0===i?void 0:i.testCount,0))}(e,n,i))return i;const s=()=>e(X());return st.hasRemainingTests(n)?(function(t,e){const[,n]=Tt(),[,i]=ht();e?n((n=>o.assign(n,{[e]:(n[e]||[]).concat(t)}))):i((e=>e.concat(t)))}(s,n),i):(s(),i)}function _t(t){!function(t){m(t)?t.skip():$()||yt(t.fieldName)?t.omit():V(t)&&t.skip(x())}(t),t.isNonActionable()||(t.isUntested()?function(t){const e=lt(),n=function(t){return v.run({currentTest:t},(()=>t.run()))}(t);try{o.isPromise(n)?(t.asyncTest=n,t.setPending(),Ot(t)):e.emit(tt.TEST_COMPLETED,t)}catch(e){throw new Error(`Unexpected error encountered during test registration.\n Test Object: ${JSON.stringify(t)}.\n Error: ${e}.`)}}(t):t.isAsyncTest()&&(t.setPending(),Ot(t)))}function Ot(t){const{asyncTest:e,message:n}=t;if(!o.isPromise(e))return;const i=lt(),s=at((()=>{i.emit(tt.TEST_COMPLETED,t)})),r=at((e=>{t.isCanceled()||(t.message=o.isStringValue(e)?e:n,t.fail(),s())}));e.then(s,r)}function Pt(t,...e){const[n,i,s]=o.isFunction(e[1])?e:[void 0,...e];o.invariant(o.isStringValue(t),Ft("fieldName","string")),o.invariant(o.isFunction(i),Ft("callback","function"));const r={fieldName:t,groupName:v.useX().groupName,key:s,message:n,testFn:i};return ft()(tt.TEST_RUN_STARTED),function(t){return Q.factory((t=>_t(t)),t)}(r)}const Ut=o.assign(Pt,{memo:function(t){return function(e,...n){const[i,s,r]=n.reverse();return function(t,e){const n=v.useX().testMemoCache,i=n.get(t);if(o.isNull(i))return n(t,e);const[,s]=i;if(s.isCanceled())return n.invalidate(t),n(t,e);return Q.setNode(s),s}([mt(),e,Rt()].concat(i),(function(){return t(e,r,s)}))}}(Pt)});function Ft(t,e){return`Incompatible params passed to test function. Test ${t} must be a ${e}`}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return r.enforce}}),exports.create=function(...t){const[n,i]=t.reverse();!function(t){o.invariant(o.isFunction(t),"vest.create: Expected callback to be a function.")}(n);const s=function({suiteName:t}){return{VestBus:rt(),doneCallbacks:o.tinyState.createTinyState((()=>[])),fieldCallbacks:o.tinyState.createTinyState((()=>({}))),historyRoot:o.tinyState.createTinyState(null),optional:{},suiteId:o.seq(),suiteName:t,suiteResultCache:ot}}({suiteName:i});function r(...t){return v.run({},(()=>(ft()(tt.SUITE_RUN_STARTED),D.create(e.SUITE,function(...t){return()=>(n(...t),At())}(...t))))).output}return ut.run(s,(()=>o.assign(ut.bind(s,r),{get:at(X),remove:dt(tt.REMOVE_FIELD),reset:dt(tt.RESET_SUITE),resetField:dt(tt.RESET_FIELD)})))},exports.each=function(t,n){o.invariant(o.isFunction(n),"each callback must be a function"),D.create(e.EACH,(()=>{t.forEach(((t,e)=>{n(t,e)}))}))},exports.eager=function(){const[,t]=g();t(S.EAGER)},exports.group=function(t,n){return D.create(e.GROUP,(()=>{v.run({groupName:t},n)}))},exports.include=function(t){const e=I(),n=R();return o.invariant(o.isStringValue(t)),e[t]=o.defaultTo(n.tests[t],!0),{when:function(e){const n=I(),i=R();n[t]=()=>o.hasOwnProperty(i.tests,t)?o.defaultTo(i.tests[t],!0):o.isStringValue(e)?Boolean(i.tests[e]):o.optionalFunctionValue(e,o.optionalFunctionValue(X))}}},exports.omitWhen=function(t,n){D.create(e.OMIT_WHEN,(()=>{v.run({omitted:$()||o.optionalFunctionValue(t,o.optionalFunctionValue(X))},n)}))},exports.only=b,exports.optional=function(e){if(o.isArray(e)||o.isStringValue(e))o.asArray(e).forEach((e=>{Dt(e,(()=>({type:t.Delayed,applied:!1,rule:null})))}));else for(const n in e){const i=e[n];Dt(n,(()=>({type:t.Immediate,rule:i,applied:o.optionalFunctionValue(i)})))}},exports.skip=K,exports.skipWhen=function(t,n){D.create(e.SKIP_WHEN,(()=>{v.run({skipped:x()||o.optionalFunctionValue(t,o.optionalFunctionValue(X))},n)}))},exports.suiteSelectors=L,exports.test=Ut,exports.warn=function(){const t=(e=n.HOOK_CALLED_OUTSIDE,v.useX(e).currentTest);var e;o.invariant(t,"warn called outside of a test."),t.warn()};
@@ -1,30 +1,33 @@
1
- import { invariant, hasOwnProperty, isPositive, isFunction } from 'vest-utils';
1
+ import { invariant, hasOwnProperty, isNullish, isPositive, isFunction } from 'vest-utils';
2
2
  import { suiteSelectors } from 'vest';
3
3
 
4
- // eslint-disable-next-line max-statements
5
4
  function parse(summary) {
6
5
  invariant(summary && hasOwnProperty(summary, 'valid'), "Vest parser: expected argument at position 0 to be Vest's result object.");
7
- var sel = suiteSelectors(summary);
8
- var testedStorage = {};
9
- var selectors = {
6
+ const sel = suiteSelectors(summary);
7
+ const testedStorage = {};
8
+ const selectors = {
10
9
  invalid: sel.hasErrors,
11
10
  tested: isTested,
12
11
  untested: isUntested,
13
12
  valid: sel.isValid,
14
- warning: sel.hasWarnings
13
+ warning: sel.hasWarnings,
15
14
  };
16
15
  return selectors;
17
16
  // Booleans
18
17
  function isTested(fieldName) {
19
- if (!fieldName) {
18
+ if (isNullish(fieldName)) {
20
19
  return isPositive(summary.testCount);
21
20
  }
22
- if (hasOwnProperty(testedStorage, fieldName))
21
+ if (hasOwnProperty(testedStorage, fieldName)) {
23
22
  return testedStorage[fieldName];
23
+ }
24
+ addFieldToTestedStorage(fieldName);
25
+ return selectors.tested(fieldName);
26
+ }
27
+ function addFieldToTestedStorage(fieldName) {
24
28
  testedStorage[fieldName] =
25
29
  hasOwnProperty(summary.tests, fieldName) &&
26
30
  isPositive(summary.tests[fieldName].testCount);
27
- return selectors.tested(fieldName);
28
31
  }
29
32
  function isUntested(fieldName) {
30
33
  return !(isPositive(summary.testCount) && selectors.tested(fieldName));
@@ -34,14 +37,13 @@ function parse(summary) {
34
37
  /**
35
38
  * Creates a function that returns class names that match the validation result
36
39
  */
37
- function classnames(res, classes) {
38
- if (classes === void 0) { classes = {}; }
39
- var selectors = parse(res);
40
- return function (key) {
41
- var classesArray = [];
42
- for (var selector in classes) {
43
- var sel = selector;
44
- if (isFunction(selectors[sel]) && selectors[sel](key)) {
40
+ function classnames(res, classes = {}) {
41
+ const selectors = parse(res);
42
+ return function cn(fieldName) {
43
+ const classesArray = [];
44
+ for (const selector in classes) {
45
+ const sel = selector;
46
+ if (isFunction(selectors[sel]) && selectors[sel](fieldName)) {
45
47
  classesArray.push(classes[sel]);
46
48
  }
47
49
  }
@@ -49,4 +51,4 @@ function classnames(res, classes) {
49
51
  };
50
52
  }
51
53
 
52
- export default classnames;
54
+ export { classnames as default };
@@ -1 +1 @@
1
- import{suiteSelectors as t}from"vest";import{invariant as e,hasOwnProperty as r,isPositive as n,isFunction as s}from"vest-utils";export default function(i,o){void 0===o&&(o={});var u=function(s){e(s&&r(s,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var i=t(s),o={},u={invalid:i.hasErrors,tested:function(t){return t?r(o,t)?o[t]:(o[t]=r(s.tests,t)&&n(s.tests[t].testCount),u.tested(t)):n(s.testCount)},untested:function(t){return!(n(s.testCount)&&u.tested(t))},valid:i.isValid,warning:i.hasWarnings};return u}(i);return function(t){var e,r=[];for(e in o){var n=e;s(u[n])&&u[n](t)&&r.push(o[n])}return r.join(" ")}}
1
+ import{invariant as t,hasOwnProperty as n,isNullish as e,isPositive as s,isFunction as o}from"vest-utils";import{suiteSelectors as r}from"vest";function i(i,u={}){const a=function(o){t(o&&n(o,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");const i=r(o),u={},a={invalid:i.hasErrors,tested:function(t){return e(t)?s(o.testCount):n(u,t)?u[t]:(c(t),a.tested(t))},untested:function(t){return!(s(o.testCount)&&a.tested(t))},valid:i.isValid,warning:i.hasWarnings};return a;function c(t){u[t]=n(o.tests,t)&&s(o.tests[t].testCount)}}(i);return function(t){const n=[];for(const e in u){const s=e;o(a[s])&&a[s](t)&&n.push(u[s])}return n.join(" ")}}export{i as default};
@@ -1,58 +1 @@
1
- import { ctx } from 'n4s';
2
- import { defaultTo, assign, mapFirst, invariant, StringObject } from 'vest-utils';
3
-
4
- function ruleReturn(pass, message) {
5
- var output = { pass: pass };
6
- if (message) {
7
- output.message = message;
8
- }
9
- return output;
10
- }
11
- function failing() {
12
- return ruleReturn(false);
13
- }
14
- function passing() {
15
- return ruleReturn(true);
16
- }
17
- function defaultToPassing(callback) {
18
- return defaultTo(callback, passing());
19
- }
20
-
21
- function runLazyRule(lazyRule, currentValue) {
22
- try {
23
- return lazyRule.run(currentValue);
24
- }
25
- catch (_a) {
26
- return failing();
27
- }
28
- }
29
-
30
- /* eslint-disable max-lines-per-function */
31
- function compose() {
32
- var composites = [];
33
- for (var _i = 0; _i < arguments.length; _i++) {
34
- composites[_i] = arguments[_i];
35
- }
36
- return assign(function (value) {
37
- var res = run(value);
38
- invariant(res.pass, StringObject(res.message));
39
- }, {
40
- run: run,
41
- test: function (value) { return run(value).pass; }
42
- });
43
- function run(value) {
44
- return ctx.run({ value: value }, function () {
45
- return defaultToPassing(mapFirst(composites, function (composite, breakout) {
46
- /* HACK: Just a small white lie. ~~HELP WANTED~~.
47
- The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
48
- The problem is that lazy rules can't really be passed to this function due to some generic hell
49
- so we're limiting it to a small set of functions.
50
- */
51
- var res = runLazyRule(composite, value);
52
- breakout(!res.pass, res);
53
- }));
54
- });
55
- }
56
- }
57
-
58
- export default compose;
1
+ export { default } from 'n4s/compose';
@@ -1 +1 @@
1
- import{defaultTo as n,assign as t,mapFirst as r,invariant as u,StringObject as s}from"vest-utils";import{ctx as e}from"n4s";function o(n,t){return n={pass:n},t&&(n.message=t),n}export default function(){function a(t){return e.run({value:t},(function(){return n(r(f,(function(n,r){try{var u=n.run(t)}catch(n){u=o(!1)}r(!u.pass,u)})),o(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return t((function(n){n=a(n),u(n.pass,s(n.message))}),{run:a,test:function(n){return a(n).pass}})}
1
+ export{default}from"n4s/compose";
@@ -1,90 +1,2 @@
1
- import { enforce } from 'n4s';
2
- import { defaultTo, mapFirst, bindNot, greaterThan } from 'vest-utils';
3
-
4
- function ruleReturn(pass, message) {
5
- var output = { pass: pass };
6
- if (message) {
7
- output.message = message;
8
- }
9
- return output;
10
- }
11
- function failing() {
12
- return ruleReturn(false);
13
- }
14
- function passing() {
15
- return ruleReturn(true);
16
- }
17
- function defaultToFailing(callback) {
18
- return defaultTo(callback, failing());
19
- }
20
- function defaultToPassing(callback) {
21
- return defaultTo(callback, passing());
22
- }
23
-
24
- function runLazyRule(lazyRule, currentValue) {
25
- try {
26
- return lazyRule.run(currentValue);
27
- }
28
- catch (_a) {
29
- return failing();
30
- }
31
- }
32
-
33
- function allOf(value) {
34
- var rules = [];
35
- for (var _i = 1; _i < arguments.length; _i++) {
36
- rules[_i - 1] = arguments[_i];
37
- }
38
- return defaultToPassing(mapFirst(rules, function (rule, breakout) {
39
- var res = runLazyRule(rule, value);
40
- breakout(!res.pass, res);
41
- }));
42
- }
43
-
44
- function anyOf(value) {
45
- var rules = [];
46
- for (var _i = 1; _i < arguments.length; _i++) {
47
- rules[_i - 1] = arguments[_i];
48
- }
49
- return defaultToFailing(mapFirst(rules, function (rule, breakout) {
50
- var res = runLazyRule(rule, value);
51
- breakout(res.pass, res);
52
- }));
53
- }
54
-
55
- function noneOf(value) {
56
- var rules = [];
57
- for (var _i = 1; _i < arguments.length; _i++) {
58
- rules[_i - 1] = arguments[_i];
59
- }
60
- return defaultToPassing(mapFirst(rules, function (rule, breakout) {
61
- var res = runLazyRule(rule, value);
62
- breakout(res.pass, failing());
63
- }));
64
- }
65
-
66
- function equals(value, arg1) {
67
- return value === arg1;
68
- }
69
- bindNot(equals);
70
-
71
- var REQUIRED_COUNT = 1;
72
- function oneOf(value) {
73
- var rules = [];
74
- for (var _i = 1; _i < arguments.length; _i++) {
75
- rules[_i - 1] = arguments[_i];
76
- }
77
- var passingCount = 0;
78
- rules.some(function (rule) {
79
- var res = runLazyRule(rule, value);
80
- if (res.pass) {
81
- passingCount++;
82
- }
83
- if (greaterThan(passingCount, REQUIRED_COUNT)) {
84
- return false;
85
- }
86
- });
87
- return ruleReturn(equals(passingCount, REQUIRED_COUNT));
88
- }
89
-
90
- enforce.extend({ allOf: allOf, anyOf: anyOf, noneOf: noneOf, oneOf: oneOf });
1
+ import * as compounds from 'n4s/compounds';
2
+ export { compounds };
@@ -1 +1 @@
1
- import{defaultTo as n,mapFirst as r,bindNot as t,greaterThan as f}from"vest-utils";import{enforce as o}from"n4s";function u(n,r){return n={pass:n},r&&(n.message=r),n}function e(n,r){try{return n.run(r)}catch(n){return u(!1)}}t((function(n,r){return n===r})),o.extend({allOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r(!(n=e(n,t)).pass,n)})),u(!0))},anyOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r((n=e(n,t)).pass,n)})),u(!1))},noneOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r((n=e(n,t)).pass,u(!1))})),u(!0))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var o=0;return r.some((function(r){if(e(r,n).pass&&o++,f(o,1))return!1})),u(1===o)}});
1
+ import*as o from"n4s/compounds";export{o as compounds};
@@ -1,88 +1,2 @@
1
- import { ctx, enforce } from 'n4s';
2
- import { defaultTo, mapFirst, isNullish, hasOwnProperty } from 'vest-utils';
3
-
4
- function ruleReturn(pass, message) {
5
- var output = { pass: pass };
6
- if (message) {
7
- output.message = message;
8
- }
9
- return output;
10
- }
11
- function failing() {
12
- return ruleReturn(false);
13
- }
14
- function passing() {
15
- return ruleReturn(true);
16
- }
17
- function defaultToPassing(callback) {
18
- return defaultTo(callback, passing());
19
- }
20
-
21
- function runLazyRule(lazyRule, currentValue) {
22
- try {
23
- return lazyRule.run(currentValue);
24
- }
25
- catch (_a) {
26
- return failing();
27
- }
28
- }
29
-
30
- function isArrayOf(inputArray, currentRule) {
31
- return defaultToPassing(mapFirst(inputArray, function (currentValue, breakout, index) {
32
- var res = ctx.run({ value: currentValue, set: true, meta: { index: index } }, function () { return runLazyRule(currentRule, currentValue); });
33
- breakout(!res.pass, res);
34
- }));
35
- }
36
-
37
- function loose(inputObject, shapeObject) {
38
- var _loop_1 = function (key) {
39
- var currentValue = inputObject[key];
40
- var currentRule = shapeObject[key];
41
- var res = ctx.run({ value: currentValue, set: true, meta: { key: key } }, function () {
42
- return runLazyRule(currentRule, currentValue);
43
- });
44
- if (!res.pass) {
45
- return { value: res };
46
- }
47
- };
48
- for (var key in shapeObject) {
49
- var state_1 = _loop_1(key);
50
- if (typeof state_1 === "object")
51
- return state_1.value;
52
- }
53
- return passing();
54
- }
55
-
56
- function optional(value, ruleChain) {
57
- if (isNullish(value)) {
58
- return passing();
59
- }
60
- return runLazyRule(ruleChain, value);
61
- }
62
-
63
- function shape(inputObject, shapeObject) {
64
- var baseRes = loose(inputObject, shapeObject);
65
- if (!baseRes.pass) {
66
- return baseRes;
67
- }
68
- for (var key in inputObject) {
69
- if (!hasOwnProperty(shapeObject, key)) {
70
- return failing();
71
- }
72
- }
73
- return passing();
74
- }
75
-
76
- // Help needed improving the typings of this file.
77
- // Ideally, we'd be able to extend ShapeObject, but that's not possible.
78
- function partial(shapeObject) {
79
- var output = {};
80
- for (var key in shapeObject) {
81
- output[key] = enforce.optional(shapeObject[key]);
82
- }
83
- return output;
84
- }
85
-
86
- enforce.extend({ isArrayOf: isArrayOf, loose: loose, optional: optional, shape: shape });
87
-
88
- export { partial };
1
+ import * as schema from 'n4s/schema';
2
+ export { schema };
@@ -1 +1 @@
1
- import{defaultTo as r,mapFirst as n,isNullish as t,hasOwnProperty as e}from"vest-utils";import{ctx as u,enforce as o}from"n4s";function i(r,n){return r={pass:r},n&&(r.message=n),r}function a(r,n){try{return r.run(n)}catch(r){return i(!1)}}function f(r,n){function t(t){var e=r[t],o=n[t];if(!(t=u.run({value:e,set:!0,meta:{key:t}},(function(){return a(o,e)}))).pass)return{value:t}}for(var e in n){var o=t(e);if("object"==typeof o)return o.value}return i(!0)}o.extend({isArrayOf:function(t,e){return r(n(t,(function(r,n,t){n(!(t=u.run({value:r,set:!0,meta:{index:t}},(function(){return a(e,r)}))).pass,t)})),i(!0))},loose:f,optional:function(r,n){return t(r)?i(!0):a(n,r)},shape:function(r,n){var t=f(r,n);if(!t.pass)return t;for(var u in r)if(!e(n,u))return i(!1);return i(!0)}});export function partial(r){var n,t={};for(n in r)t[n]=o.optional(r[n]);return t}
1
+ import*as m from"n4s/schema";export{m as schema};
@@ -1,30 +1,33 @@
1
+ import { invariant, hasOwnProperty, isNullish, isPositive } from 'vest-utils';
1
2
  import { suiteSelectors } from 'vest';
2
- import { invariant, hasOwnProperty, isPositive } from 'vest-utils';
3
3
 
4
- // eslint-disable-next-line max-statements
5
4
  function parse(summary) {
6
5
  invariant(summary && hasOwnProperty(summary, 'valid'), "Vest parser: expected argument at position 0 to be Vest's result object.");
7
- var sel = suiteSelectors(summary);
8
- var testedStorage = {};
9
- var selectors = {
6
+ const sel = suiteSelectors(summary);
7
+ const testedStorage = {};
8
+ const selectors = {
10
9
  invalid: sel.hasErrors,
11
10
  tested: isTested,
12
11
  untested: isUntested,
13
12
  valid: sel.isValid,
14
- warning: sel.hasWarnings
13
+ warning: sel.hasWarnings,
15
14
  };
16
15
  return selectors;
17
16
  // Booleans
18
17
  function isTested(fieldName) {
19
- if (!fieldName) {
18
+ if (isNullish(fieldName)) {
20
19
  return isPositive(summary.testCount);
21
20
  }
22
- if (hasOwnProperty(testedStorage, fieldName))
21
+ if (hasOwnProperty(testedStorage, fieldName)) {
23
22
  return testedStorage[fieldName];
23
+ }
24
+ addFieldToTestedStorage(fieldName);
25
+ return selectors.tested(fieldName);
26
+ }
27
+ function addFieldToTestedStorage(fieldName) {
24
28
  testedStorage[fieldName] =
25
29
  hasOwnProperty(summary.tests, fieldName) &&
26
30
  isPositive(summary.tests[fieldName].testCount);
27
- return selectors.tested(fieldName);
28
31
  }
29
32
  function isUntested(fieldName) {
30
33
  return !(isPositive(summary.testCount) && selectors.tested(fieldName));
@@ -1 +1 @@
1
- import{invariant as t,hasOwnProperty as e,isPositive as s}from"vest-utils";import{suiteSelectors as r}from"vest";export function parse(n){t(n&&e(n,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var i=r(n),o={},a={invalid:i.hasErrors,tested:function(t){return t?e(o,t)?o[t]:(o[t]=e(n.tests,t)&&s(n.tests[t].testCount),a.tested(t)):s(n.testCount)},untested:function(t){return!(s(n.testCount)&&a.tested(t))},valid:i.isValid,warning:i.hasWarnings};return a}
1
+ import{invariant as t,hasOwnProperty as e,isNullish as s,isPositive as n}from"vest-utils";import{suiteSelectors as r}from"vest";function i(i){t(i&&e(i,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");const o=r(i),u={},a={invalid:o.hasErrors,tested:function(t){if(s(t))return n(i.testCount);if(e(u,t))return u[t];return d(t),a.tested(t)},untested:function(t){return!(n(i.testCount)&&a.tested(t))},valid:o.isValid,warning:o.hasWarnings};return a;function d(t){u[t]=e(i.tests,t)&&n(i.tests[t].testCount)}}export{i as parse};
@@ -1,14 +1,10 @@
1
1
  import { invariant, isFunction } from 'vest-utils';
2
2
 
3
- var promisify = function (validatorFn) {
4
- return function () {
5
- var args = [];
6
- for (var _i = 0; _i < arguments.length; _i++) {
7
- args[_i] = arguments[_i];
8
- }
3
+ function promisify(validatorFn) {
4
+ return (...args) => {
9
5
  invariant(isFunction(validatorFn), 'promisify: Expected validatorFn to be a function.');
10
- return new Promise(function (resolve) { return validatorFn.apply(void 0, args).done(resolve); });
6
+ return new Promise(resolve => validatorFn(...args).done(resolve));
11
7
  };
12
- };
8
+ }
13
9
 
14
- export default promisify;
10
+ export { promisify as default };
@@ -1 +1 @@
1
- import{invariant as t,isFunction as n}from"vest-utils";export default function(o){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return t(n(o),"promisify: Expected validatorFn to be a function."),new Promise((function(t){return o.apply(void 0,r).done(t)}))}}
1
+ import{invariant as t,isFunction as e}from"vest-utils";function o(o){return(...i)=>(t(e(o),"promisify: Expected validatorFn to be a function."),new Promise((t=>o(...i).done(t))))}export{o as default};