@mojir/lits 2.2.3 → 2.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 (65) hide show
  1. package/README.md +1 -8
  2. package/dist/cli/cli.js +1264 -909
  3. package/dist/cli/src/Lits/Lits.d.ts +8 -2
  4. package/dist/cli/src/builtin/bindingNode.d.ts +2 -1
  5. package/dist/cli/src/builtin/interface.d.ts +3 -2
  6. package/dist/cli/src/builtin/modules/number-theory/sequences/index.d.ts +2 -1
  7. package/dist/cli/src/evaluator/functionExecutors.d.ts +2 -1
  8. package/dist/cli/src/evaluator/index.d.ts +3 -2
  9. package/dist/cli/src/evaluator/interface.d.ts +3 -2
  10. package/dist/cli/src/utils/maybePromise.d.ts +54 -0
  11. package/dist/full.esm.js +1 -1
  12. package/dist/full.esm.js.map +1 -1
  13. package/dist/full.js +1 -1
  14. package/dist/full.js.map +1 -1
  15. package/dist/index.esm.js +1 -1
  16. package/dist/index.esm.js.map +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/lits.iife.js +1 -1
  20. package/dist/lits.iife.js.map +1 -1
  21. package/dist/modules/assert.esm.js +1 -1
  22. package/dist/modules/assert.esm.js.map +1 -1
  23. package/dist/modules/assert.js +1 -1
  24. package/dist/modules/assert.js.map +1 -1
  25. package/dist/modules/collection.esm.js +1 -1
  26. package/dist/modules/collection.esm.js.map +1 -1
  27. package/dist/modules/collection.js +1 -1
  28. package/dist/modules/collection.js.map +1 -1
  29. package/dist/modules/grid.esm.js +1 -1
  30. package/dist/modules/grid.esm.js.map +1 -1
  31. package/dist/modules/grid.js +1 -1
  32. package/dist/modules/grid.js.map +1 -1
  33. package/dist/modules/number-theory.esm.js +1 -1
  34. package/dist/modules/number-theory.esm.js.map +1 -1
  35. package/dist/modules/number-theory.js +1 -1
  36. package/dist/modules/number-theory.js.map +1 -1
  37. package/dist/modules/sequence.esm.js +1 -1
  38. package/dist/modules/sequence.esm.js.map +1 -1
  39. package/dist/modules/sequence.js +1 -1
  40. package/dist/modules/sequence.js.map +1 -1
  41. package/dist/modules/src/Lits/Lits.d.ts +8 -2
  42. package/dist/modules/src/builtin/bindingNode.d.ts +2 -1
  43. package/dist/modules/src/builtin/interface.d.ts +3 -2
  44. package/dist/modules/src/builtin/modules/number-theory/sequences/index.d.ts +2 -1
  45. package/dist/modules/src/evaluator/functionExecutors.d.ts +2 -1
  46. package/dist/modules/src/evaluator/index.d.ts +3 -2
  47. package/dist/modules/src/evaluator/interface.d.ts +3 -2
  48. package/dist/modules/src/utils/maybePromise.d.ts +54 -0
  49. package/dist/modules/vector.esm.js +1 -1
  50. package/dist/modules/vector.esm.js.map +1 -1
  51. package/dist/modules/vector.js +1 -1
  52. package/dist/modules/vector.js.map +1 -1
  53. package/dist/src/Lits/Lits.d.ts +8 -2
  54. package/dist/src/builtin/bindingNode.d.ts +2 -1
  55. package/dist/src/builtin/interface.d.ts +3 -2
  56. package/dist/src/builtin/modules/number-theory/sequences/index.d.ts +2 -1
  57. package/dist/src/evaluator/functionExecutors.d.ts +2 -1
  58. package/dist/src/evaluator/index.d.ts +3 -2
  59. package/dist/src/evaluator/interface.d.ts +3 -2
  60. package/dist/src/utils/maybePromise.d.ts +54 -0
  61. package/dist/testFramework.esm.js +1 -1
  62. package/dist/testFramework.esm.js.map +1 -1
  63. package/dist/testFramework.js +1 -1
  64. package/dist/testFramework.js.map +1 -1
  65. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){if(!e.position||!e.code)return"";const t=e.position.column-1,s=e.code.length-t-1;return`${" ".repeat(Math.max(t,0))}^${" ".repeat(Math.max(s,0))}`}class t extends Error{sourceCodeInfo;shortMessage;constructor(s,r){const a=s instanceof Error?s.message:`${s}`;super(function(t,s){if(!s)return t;const r=`${s.position.line}:${s.position.column}`;return`${t}${s.filePath?`\n${s.filePath}:${r}`:`\nLocation ${r}`}\n${s.code}\n${e(s)}`}(a,r)),this.shortMessage=a,this.sourceCodeInfo=r,Object.setPrototypeOf(this,t.prototype),this.name="LitsError"}getCodeMarker(){return this.sourceCodeInfo&&e(this.sourceCodeInfo)}}class s extends t{constructor(e,t){super(e,t),Object.setPrototypeOf(this,s.prototype),this.name="AssertionError"}}const r={Number:1,String:2,NormalExpression:3,SpecialExpression:4,UserDefinedSymbol:5,NormalBuiltinSymbol:6,SpecialBuiltinSymbol:7,ReservedSymbol:8,Binding:9,Spread:10},a=new Set(Object.values(r));const n=new Set(["UserDefined","Partial","Comp","Constantly","Juxt","Complement","EveryPred","SomePred","Fnull","Builtin","SpecialBuiltin","NativeJsFunction","Module"]);const o="^^fn^^";function i(e){return null!==e&&"object"==typeof e&&(o in e&&"functionType"in e&&("string"==typeof(t=e.functionType)&&n.has(t)));var t}function l(e){return!(!Array.isArray(e)||e.length<2)&&("number"==typeof(t=e[0])&&a.has(t));var t}function u(e){return i(e)?`<function ${e.name||"λ"}>`:l(e)?`${t=e[0],Object.keys(r).find(e=>r[e]===t)}-node`:null===e?"null":"object"==typeof e&&e instanceof RegExp?`${e}`:"object"==typeof e&&e instanceof Error?e.toString():JSON.stringify(e);var t}function m(e,s,r){return new t(`Expected ${e}, got ${u(s)}.`,function(e,t){return e?.sourceCodeInfo??t}(s,r))}function c(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function y(e){return null!==e&&"object"==typeof e&&!!e[o]}function g(e,t){return function(e,t){if(!function(e){return void 0!==e}(e))throw m("not undefined",e,t)}(e,t),e}function p(e){return Array.isArray(e)||"string"==typeof e}function h(e){return!(null===e||"object"!=typeof e||Array.isArray(e)||e instanceof RegExp||y(e)||f(e))}function d(e){return p(e)||h(e)}function f(e){return null!==e&&"object"==typeof e&&!!e["^^re^^"]}function v(e,t){if(!function(e){return"number"==typeof e||!!d(e)||!!y(e)}(e))throw m("FunctionLike",e,t)}function x(e,t={}){return"number"==typeof e&&(!Number.isNaN(e)&&(!(t.integer&&!Number.isInteger(e))&&(!(t.finite&&!Number.isFinite(e))&&((!t.zero||0===e)&&((!t.nonZero||0!==e)&&(!(t.positive&&e<=0)&&(!(t.negative&&e>=0)&&(!(t.nonPositive&&e>0)&&(!(t.nonNegative&&e<0)&&(!("number"==typeof t.gt&&e<=t.gt)&&(!("number"==typeof t.gte&&e<t.gte)&&(!("number"==typeof t.lt&&e>=t.lt)&&!("number"==typeof t.lte&&e>t.lte)))))))))))))}function $(e,t,s={}){if(!function(e,t={}){return!("string"!=typeof e||t.nonEmpty&&0===e.length||t.char&&1!==e.length)}(e,s))throw m(""+(s.nonEmpty?"non empty string":s.char?"character":"string"),e,t)}function w(e,t,s={}){return $(e,t,s),e}function b(e,t){if(!function(e){return"string"==typeof e||"number"==typeof e}(e))throw m("string or number",e,t)}function E(e,s,r){if(b(e,r),b(s,r),"string"==typeof e&&"string"==typeof s)return e<s?-1:e>s?1:0;if("number"==typeof e&&"number"==typeof s)return Math.sign(e-s);throw new t(`Cannot compare values of different types: ${typeof e} and ${typeof s}`,r)}function A(e,t,s){if(e===t)return!0;if("number"==typeof e&&"number"==typeof t)return function(e,t,s=N){if(e===t)return!0;const r=Math.abs(e-t);if(0===e||0===t||r<s)return r<s;const a=Math.abs(e),n=Math.abs(t);return r/(a+n)<s}(e,t);if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1)if(!A(g(e[r],s),g(t[r],s),s))return!1;return!0}if(f(e)&&f(t))return e.s===t.s&&e.f===t.f;if(c(e)&&c(t)){const r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!1;for(let a=0;a<r.length;a+=1){const n=w(r[a],s);if(!A(e[n],t[n],s))return!1}return!0}return!1}const N=1e-10;const O=new WeakSet,S=new WeakSet,F=new WeakSet,I=new WeakSet,j=new WeakSet,J=new WeakSet,q=new WeakSet;const k={assert:{category:"assert",description:"If $value is falsy it throws `AssertionError` with $message. If no $message is provided, message is set to $value.",returns:{type:"any"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert } = import("assert");\ntry assert(0, "Expected a positive value") catch (e) e.message end'],seeAlso:["assert.assert-truthy","assert.assert-true"],hideOperatorForm:!0},"assert!=":{category:"assert",description:"If $a is the same as $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert!= } = import("assert");\ntry assert!=(0, 0, "Expected different values") catch (e) e.message end','let { assert!= } = import("assert");\ntry assert!=(0, 0) catch (e) e.message end','let { assert!= } = import("assert");\ntry 0 assert!= 0 catch (e) e.message end','let { assert!= } = import("assert");\ntry assert!=(0, 1) catch (e) e.message end'],seeAlso:["assert.assert="],hideOperatorForm:!0},"assert=":{category:"assert",description:"If $a is not structural equal to $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert= } = import("assert");\ntry assert=({ "a": 1 }, { "a": 2 }, "Expected equal values") catch (e) e.message end','let { assert= } = import("assert");\ntry assert=({ "a": 1 }, { "a": 2 }) catch (e) e.message end','let { assert= } = import("assert");\ntry assert=({ "a": 1 }, { "a": 1 }) catch (e) e.message end'],seeAlso:["assert.assert!="],hideOperatorForm:!0},"assert-gt":{category:"assert",description:"If $a is not greater than $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert-gt } = import("assert");\ntry assert-gt(0, 1, "Expected greater value") catch (e) e.message end','let { assert-gt } = import("assert");\ntry assert-gt(0, 0) catch (e) e.message end','let { assert-gt } = import("assert");\ntry assert-gt(1, 0) catch (e) e.message end'],seeAlso:["assert.assert-lt","assert.assert-gte","assert.assert-lte"],hideOperatorForm:!0},"assert-lt":{category:"assert",description:"If $a is not less than $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert-lt } = import("assert");\ntry assert-lt(1, 0, "Expected smaller value value") catch (e) e.message end','let { assert-lt } = import("assert");\ntry assert-lt(1, 1) catch (e) e.message end','let { assert-lt } = import("assert");\ntry assert-lt(0, 1) catch (e) e.message end'],seeAlso:["assert.assert-gt","assert.assert-lte","assert.assert-gte"],hideOperatorForm:!0},"assert-gte":{category:"assert",description:"If $a is less than $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert-gte } = import("assert");\ntry assert-gte(0, 1, "Expected greater value") catch (e) e.message end','let { assert-gte } = import("assert");\ntry assert-gte(0, 1) catch (e) e.message end','let { assert-gte } = import("assert");\ntry assert-gte(1, 1) catch (e) e.message end'],seeAlso:["assert.assert-lte","assert.assert-gt","assert.assert-lt"],hideOperatorForm:!0},"assert-lte":{category:"assert",description:"If $a is grater than $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert-lte } = import("assert");\ntry assert-lte(1, 0, "Expected smaller value value") catch (e) e.message end','let { assert-lte } = import("assert");\ntry assert-lte(1, 0) catch (e) e.message end','let { assert-lte } = import("assert");\ntry assert-lte(1, 1) catch (e) e.message end'],seeAlso:["assert.assert-gte","assert.assert-lt","assert.assert-gt"],hideOperatorForm:!0},"assert-true":{category:"assert",description:"If $value is not `true` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-true } = import("assert");\ntry assert-true(false, "Expected true") catch (e) e.message end','let { assert-true } = import("assert");\ntry assert-true(false) catch (e) e.message end','let { assert-true } = import("assert");\ntry assert-true(true) catch (e) e.message end'],seeAlso:["assert.assert-false","assert.assert-truthy","assert.assert-falsy","assert.assert","assert.assert-boolean"],hideOperatorForm:!0},"assert-false":{category:"assert",description:"If $value is not `false` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-false } = import("assert");\ntry assert-false(true, "Expected false") catch (e) e.message end','let { assert-false } = import("assert");\ntry assert-false(true) catch (e) e.message end','let { assert-false } = import("assert");\ntry assert-false(false) catch (e) e.message end'],seeAlso:["assert.assert-true","assert.assert-falsy","assert.assert-truthy","assert.assert-boolean"],hideOperatorForm:!0},"assert-truthy":{category:"assert",description:"If $value is not `truthy` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-truthy } = import("assert");\ntry assert-truthy(false, "Expected truthy") catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(false) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(0) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(null) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy("") catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(true) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(1) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy("x") catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy([]) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(nd) catch (e) e.message end'],seeAlso:["assert.assert-falsy","assert.assert-true","assert.assert-false","assert.assert","assert.assert-null"],hideOperatorForm:!0},"assert-falsy":{category:"assert",description:"If $value is not `falsy` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-falsy } = import("assert");\ntry assert-falsy(true, "Expected falsy") catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy("x") catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy([]) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(nd) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(1) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(false) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(0) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(null) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy("") catch (e) e.message end'],seeAlso:["assert.assert-truthy","assert.assert-false","assert.assert-true","assert.assert-null"],hideOperatorForm:!0},"assert-null":{category:"assert",description:"If $value is not `null` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-null } = import("assert");\ntry assert-null(null) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(true, "Expected null") catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null("x") catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null([]) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(nd) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(1) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(false) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(0) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null("") catch (e) e.message end'],seeAlso:["assert.assert-truthy","assert.assert-falsy"],hideOperatorForm:!0},"assert-throws":{category:"assert",description:"If $fun does not throw, it throws `AssertionError`.",returns:{type:"null"},args:{fun:{type:"function"},message:{type:"string"}},variants:[{argumentNames:["fun"]},{argumentNames:["fun","message"]}],examples:['let { assert-throws } = import("assert");\nassert-throws(-> throw("Error"))','let { assert-throws } = import("assert");\ntry assert-throws(-> identity("Error")) catch (e) e.message end'],seeAlso:["assert.assert-throws-error","assert.assert-not-throws"],hideOperatorForm:!0},"assert-throws-error":{category:"assert",description:"If $fun does not throw $error-message, it throws `AssertionError`.",returns:{type:"null"},args:{fun:{type:"function"},"error-message":{type:"string"},message:{type:"string"}},variants:[{argumentNames:["value","error-message"]},{argumentNames:["value","error-message","message"]}],examples:['let { assert-throws-error } = import("assert");\ntry assert-throws-error(-> throw("Error"), "Error") catch (e) e.message end','let { assert-throws-error } = import("assert");\ntry assert-throws-error(-> identity("Error"), "Error") catch (e) e.message end'],seeAlso:["assert.assert-throws","assert.assert-not-throws"],hideOperatorForm:!0},"assert-not-throws":{category:"assert",description:"If $fun throws, it throws `AssertionError`.",returns:{type:"null"},args:{fun:{type:"function"},message:{type:"string"}},variants:[{argumentNames:["fun"]},{argumentNames:["fun","message"]}],examples:['let { assert-not-throws } = import("assert");\ntry assert-not-throws(-> identity("Error")) catch (e) e.message end','let { assert-not-throws } = import("assert");\ntry assert-not-throws(-> throw("Error")) catch (e) e.message end'],seeAlso:["assert.assert-throws","assert.assert-throws-error"],hideOperatorForm:!0},"assert-array":{category:"assert",description:"If $value is not an `array` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-array } = import("assert");\ntry assert-array([1, 2, 3]) catch (e) e.message end','let { assert-array } = import("assert");\ntry assert-array("string") catch (e) e.message end','let { assert-array } = import("assert");\ntry assert-array(42, "Expected an array") catch (e) e.message end'],seeAlso:["assert.assert-object","assert.assert-collection","assert.assert-sequence"],hideOperatorForm:!0},"assert-boolean":{category:"assert",description:"If $value is not a `boolean` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-boolean } = import("assert");\ntry assert-boolean(true) catch (e) e.message end','let { assert-boolean } = import("assert");\ntry assert-boolean(false) catch (e) e.message end','let { assert-boolean } = import("assert");\ntry assert-boolean(1, "Expected a boolean") catch (e) e.message end'],seeAlso:["assert.assert-true","assert.assert-false","assert.assert-number","assert.assert-string"],hideOperatorForm:!0},"assert-collection":{category:"assert",description:"If $value is not a `collection` (array, object, or string) it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-collection } = import("assert");\ntry assert-collection([1, 2]) catch (e) e.message end','let { assert-collection } = import("assert");\ntry assert-collection({ a: 1 }) catch (e) e.message end','let { assert-collection } = import("assert");\ntry assert-collection("hello") catch (e) e.message end','let { assert-collection } = import("assert");\ntry assert-collection(42, "Expected a collection") catch (e) e.message end'],seeAlso:["assert.assert-sequence","assert.assert-array","assert.assert-object"],hideOperatorForm:!0},"assert-function":{category:"assert",description:"If $value is not a `function` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-function } = import("assert");\ntry assert-function(-> $ + 1) catch (e) e.message end','let { assert-function } = import("assert");\ntry assert-function(42, "Expected a function") catch (e) e.message end'],seeAlso:["assert.assert-number","assert.assert-string"],hideOperatorForm:!0},"assert-grid":{category:"assert",description:"If $value is not a `grid` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-grid } = import("assert");\ntry assert-grid([[1, 2], [3, 4]]) catch (e) e.message end','let { assert-grid } = import("assert");\ntry assert-grid([1, 2], "Expected a grid") catch (e) e.message end'],seeAlso:["assert.assert-matrix","assert.assert-vector"],hideOperatorForm:!0},"assert-integer":{category:"assert",description:"If $value is not an `integer` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-integer } = import("assert");\ntry assert-integer(42) catch (e) e.message end','let { assert-integer } = import("assert");\ntry assert-integer(3.14, "Expected an integer") catch (e) e.message end'],seeAlso:["assert.assert-number"],hideOperatorForm:!0},"assert-matrix":{category:"assert",description:"If $value is not a `matrix` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-matrix } = import("assert");\ntry assert-matrix([[1, 2], [3, 4]]) catch (e) e.message end','let { assert-matrix } = import("assert");\ntry assert-matrix([1, 2], "Expected a matrix") catch (e) e.message end'],seeAlso:["assert.assert-vector","assert.assert-grid"],hideOperatorForm:!0},"assert-number":{category:"assert",description:"If $value is not a `number` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-number } = import("assert");\ntry assert-number(42) catch (e) e.message end','let { assert-number } = import("assert");\ntry assert-number("hello", "Expected a number") catch (e) e.message end'],seeAlso:["assert.assert-integer","assert.assert-boolean","assert.assert-string","assert.assert-function"],hideOperatorForm:!0},"assert-object":{category:"assert",description:"If $value is not an `object` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-object } = import("assert");\ntry assert-object({ a: 1 }) catch (e) e.message end','let { assert-object } = import("assert");\ntry assert-object([1, 2], "Expected an object") catch (e) e.message end'],seeAlso:["assert.assert-array","assert.assert-collection"],hideOperatorForm:!0},"assert-regexp":{category:"assert",description:"If $value is not a `regexp` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-regexp } = import("assert");\ntry assert-regexp(#"^start") catch (e) e.message end','let { assert-regexp } = import("assert");\ntry assert-regexp("hello", "Expected a regexp") catch (e) e.message end'],seeAlso:["assert.assert-string"],hideOperatorForm:!0},"assert-sequence":{category:"assert",description:"If $value is not a `sequence` (array or string) it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-sequence } = import("assert");\ntry assert-sequence([1, 2]) catch (e) e.message end','let { assert-sequence } = import("assert");\ntry assert-sequence("hello") catch (e) e.message end','let { assert-sequence } = import("assert");\ntry assert-sequence({ a: 1 }, "Expected a sequence") catch (e) e.message end'],seeAlso:["assert.assert-collection","assert.assert-array"],hideOperatorForm:!0},"assert-string":{category:"assert",description:"If $value is not a `string` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-string } = import("assert");\ntry assert-string("hello") catch (e) e.message end','let { assert-string } = import("assert");\ntry assert-string(42, "Expected a string") catch (e) e.message end'],seeAlso:["assert.assert-number","assert.assert-boolean","assert.assert-regexp","assert.assert-function"],hideOperatorForm:!0},"assert-vector":{category:"assert",description:"If $value is not a `vector` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-vector } = import("assert");\ntry assert-vector([1, 2, 3]) catch (e) e.message end','let { assert-vector } = import("assert");\ntry assert-vector(["a", "b"], "Expected a vector") catch (e) e.message end'],seeAlso:["assert.assert-matrix","assert.assert-grid"],hideOperatorForm:!0}},M={assert:{evaluate:(e,t)=>{const r=e[0],a=2===e.length?e[1]:`${r}`;if($(a,t),!r)throw new s(a,t);return g(r,t)},arity:{min:1,max:2}},"assert=":{evaluate:([e,t,r],a)=>{if(void 0!==r&&($(r,a),r=` ${r}`),r??="",!A(g(e,a),g(t,a),a))throw new s(`Expected ${JSON.stringify(e,null,2)} to deep equal ${JSON.stringify(t,null,2)}.${r}`,a);return null},arity:{min:2,max:3}},"assert!=":{evaluate:([e,t,r],a)=>{if(void 0!==r&&($(r,a),r=` ${r}`),r??="",A(g(e,a),g(t,a),a))throw new s(`Expected ${JSON.stringify(e)} not to deep equal ${JSON.stringify(t)}.${r}`,a);return null},arity:{min:2,max:3}},"assert-gt":{evaluate:([e,t,r],a)=>{if(b(e,a),b(t,a),void 0!==r&&($(r,a),r=` ${r}`),r??="",E(e,t,a)<=0)throw new s(`Expected ${e} to be grater than ${t}.${r}`,a);return null},arity:{min:2,max:3}},"assert-gte":{evaluate:([e,t,r],a)=>{if(b(e,a),b(t,a),void 0!==r&&($(r,a),r=` ${r}`),r??="",E(e,t,a)<0)throw new s(`Expected ${e} to be grater than or equal to ${t}.${r}`,a);return null},arity:{min:2,max:3}},"assert-lt":{evaluate:([e,t,r],a)=>{if(b(e,a),b(t,a),void 0!==r&&($(r,a),r=` ${r}`),r??="",E(e,t,a)>=0)throw new s(`Expected ${e} to be less than ${t}.${r}`,a);return null},arity:{min:2,max:3}},"assert-lte":{evaluate:([e,t,r],a)=>{if(b(e,a),b(t,a),void 0!==r&&($(r,a),r=` ${r}`),r??="",E(e,t,a)>0)throw new s(`Expected ${e} to be less than or equal to ${t}.${r}`,a);return null},arity:{min:2,max:3}},"assert-true":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!0!==e)throw new s(`Expected ${e} to be true.${t}`,r);return null},arity:{min:1,max:2}},"assert-false":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!1!==e)throw new s(`Expected ${e} to be false.${t}`,r);return null},arity:{min:1,max:2}},"assert-truthy":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!e)throw new s(`Expected ${e} to be truthy.${t}`,r);return null},arity:{min:1,max:2}},"assert-falsy":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",e)throw new s(`Expected ${e} to be falsy.${t}`,r);return null},arity:{min:1,max:2}},"assert-null":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",null!==e)throw new s(`Expected ${e} to be null.${t}`,r);return null},arity:{min:1,max:2}},"assert-throws":{evaluate:([e,t],r,a,{executeFunction:n})=>{void 0!==t&&($(t,r),t=` ${t}`),t??="",v(e,r);try{n(e,[],a,r)}catch{return null}throw new s(`Expected function to throw.${t}`,r)},arity:{min:1,max:2}},"assert-throws-error":{evaluate:([e,t,r],a,n,{executeFunction:o})=>{void 0!==r&&($(r,a),r=` ${r}`),r??="",$(t,a),v(e,a);try{o(e,[],n,a)}catch(e){const n=e.shortMessage;if(n!==t)throw new s(`Expected function to throw "${t}", but thrown "${n}".${r}`,a);return null}throw new s(`Expected function to throw "${t}".${r}`,a)},arity:{min:2,max:3}},"assert-not-throws":{evaluate:([e,t],r,a,{executeFunction:n})=>{void 0!==t&&($(t,r),t=` ${t}`),t??="",v(e,r);try{n(e,[],a,r)}catch{throw new s(`Expected function not to throw.${t}`,r)}return null},arity:{min:1,max:2}},"assert-array":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!Array.isArray(e))throw new s(`Expected ${JSON.stringify(e)} to be an array.${t}`,r);return null},arity:{min:1,max:2}},"assert-boolean":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="","boolean"!=typeof e)throw new s(`Expected ${JSON.stringify(e)} to be a boolean.${t}`,r);return null},arity:{min:1,max:2}},"assert-collection":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!d(e))throw new s(`Expected ${JSON.stringify(e)} to be a collection.${t}`,r);return null},arity:{min:1,max:2}},"assert-function":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!y(e))throw new s(`Expected ${JSON.stringify(e)} to be a function.${t}`,r);return null},arity:{min:1,max:2}},"assert-grid":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!function(e){if(!Array.isArray(e))return!1;if(J.has(e))return!0;if(q.has(e))return!1;if(0===e.length)return q.add(e),!1;if(!Array.isArray(e[0]))return q.add(e),!1;const t=e[0].length;for(const s of e.slice(1)){if(!Array.isArray(s))return q.add(e),!1;if(s.length!==t)return q.add(e),!1}return O.add(e),J.add(e),!0}(e))throw new s(`Expected ${JSON.stringify(e)} to be a grid.${t}`,r);return null},arity:{min:1,max:2}},"assert-integer":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="","number"!=typeof e||!x(e,{integer:!0}))throw new s(`Expected ${JSON.stringify(e)} to be an integer.${t}`,r);return null},arity:{min:1,max:2}},"assert-matrix":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!function(e){if(!Array.isArray(e))return!1;if(I.has(e))return!0;if(j.has(e))return!1;if(0===e.length)return j.add(e),!1;if(!Array.isArray(e[0])||0===e[0].length)return j.add(e),!1;const t=e[0].length;for(const s of e)if(!Array.isArray(s)||s.length!==t||s.some(e=>!x(e)))return j.add(e),!1;return O.add(e),J.add(e),I.add(e),!0}(e))throw new s(`Expected ${JSON.stringify(e)} to be a matrix.${t}`,r);return null},arity:{min:1,max:2}},"assert-number":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="","number"!=typeof e)throw new s(`Expected ${JSON.stringify(e)} to be a number.${t}`,r);return null},arity:{min:1,max:2}},"assert-object":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!h(e))throw new s(`Expected ${JSON.stringify(e)} to be an object.${t}`,r);return null},arity:{min:1,max:2}},"assert-regexp":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!f(e))throw new s(`Expected ${JSON.stringify(e)} to be a regexp.${t}`,r);return null},arity:{min:1,max:2}},"assert-sequence":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!p(e))throw new s(`Expected ${JSON.stringify(e)} to be a sequence.${t}`,r);return null},arity:{min:1,max:2}},"assert-string":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="","string"!=typeof e)throw new s(`Expected ${JSON.stringify(e)} to be a string.${t}`,r);return null},arity:{min:1,max:2}},"assert-vector":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",a=e,!Array.isArray(a)||!S.has(a)&&(F.has(a)||(a.every(e=>x(e))?(O.add(a),S.add(a),0):(F.add(a),1))))throw new s(`Expected ${JSON.stringify(e)} to be a vector.${t}`,r);var a;return null},arity:{min:1,max:2}}};for(const[e,t]of Object.entries(k))M[e]&&(M[e].docs=t);const C={name:"assert",functions:M};exports.assertModule=C;
1
+ "use strict";function e(e){if(!e.position||!e.code)return"";const t=e.position.column-1,s=e.code.length-t-1;return`${" ".repeat(Math.max(t,0))}^${" ".repeat(Math.max(s,0))}`}class t extends Error{sourceCodeInfo;shortMessage;constructor(s,r){const a=s instanceof Error?s.message:`${s}`;super(function(t,s){if(!s)return t;const r=`${s.position.line}:${s.position.column}`;return`${t}${s.filePath?`\n${s.filePath}:${r}`:`\nLocation ${r}`}\n${s.code}\n${e(s)}`}(a,r)),this.shortMessage=a,this.sourceCodeInfo=r,Object.setPrototypeOf(this,t.prototype),this.name="LitsError"}getCodeMarker(){return this.sourceCodeInfo&&e(this.sourceCodeInfo)}}class s extends t{constructor(e,t){super(e,t),Object.setPrototypeOf(this,s.prototype),this.name="AssertionError"}}const r={Number:1,String:2,NormalExpression:3,SpecialExpression:4,UserDefinedSymbol:5,NormalBuiltinSymbol:6,SpecialBuiltinSymbol:7,ReservedSymbol:8,Binding:9,Spread:10},a=new Set(Object.values(r));const n=new Set(["UserDefined","Partial","Comp","Constantly","Juxt","Complement","EveryPred","SomePred","Fnull","Builtin","SpecialBuiltin","NativeJsFunction","Module"]);const o="^^fn^^";function i(e){return null!==e&&"object"==typeof e&&(o in e&&"functionType"in e&&("string"==typeof(t=e.functionType)&&n.has(t)));var t}function l(e){return!(!Array.isArray(e)||e.length<2)&&("number"==typeof(t=e[0])&&a.has(t));var t}function u(e){return i(e)?`<function ${e.name||"λ"}>`:l(e)?`${t=e[0],Object.keys(r).find(e=>r[e]===t)}-node`:null===e?"null":"object"==typeof e&&e instanceof RegExp?`${e}`:"object"==typeof e&&e instanceof Error?e.toString():JSON.stringify(e);var t}function m(e,s,r){return new t(`Expected ${e}, got ${u(s)}.`,function(e,t){return e?.sourceCodeInfo??t}(s,r))}function c(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function y(e){return null!==e&&"object"==typeof e&&!!e[o]}function g(e,t){return function(e,t){if(!function(e){return void 0!==e}(e))throw m("not undefined",e,t)}(e,t),e}function p(e){return Array.isArray(e)||"string"==typeof e}function h(e){return!(null===e||"object"!=typeof e||Array.isArray(e)||e instanceof RegExp||y(e)||f(e))}function d(e){return p(e)||h(e)}function f(e){return null!==e&&"object"==typeof e&&!!e["^^re^^"]}function v(e,t){if(!function(e){return"number"==typeof e||!!d(e)||!!y(e)}(e))throw m("FunctionLike",e,t)}function x(e,t={}){return"number"==typeof e&&(!Number.isNaN(e)&&(!(t.integer&&!Number.isInteger(e))&&(!(t.finite&&!Number.isFinite(e))&&((!t.zero||0===e)&&((!t.nonZero||0!==e)&&(!(t.positive&&e<=0)&&(!(t.negative&&e>=0)&&(!(t.nonPositive&&e>0)&&(!(t.nonNegative&&e<0)&&(!("number"==typeof t.gt&&e<=t.gt)&&(!("number"==typeof t.gte&&e<t.gte)&&(!("number"==typeof t.lt&&e>=t.lt)&&!("number"==typeof t.lte&&e>t.lte)))))))))))))}function $(e,t,s={}){if(!function(e,t={}){return!("string"!=typeof e||t.nonEmpty&&0===e.length||t.char&&1!==e.length)}(e,s))throw m(""+(s.nonEmpty?"non empty string":s.char?"character":"string"),e,t)}function w(e,t,s={}){return $(e,t,s),e}function b(e,t){if(!function(e){return"string"==typeof e||"number"==typeof e}(e))throw m("string or number",e,t)}function E(e,s,r){if(b(e,r),b(s,r),"string"==typeof e&&"string"==typeof s)return e<s?-1:e>s?1:0;if("number"==typeof e&&"number"==typeof s)return Math.sign(e-s);throw new t(`Cannot compare values of different types: ${typeof e} and ${typeof s}`,r)}function A(e,t,s){if(e===t)return!0;if("number"==typeof e&&"number"==typeof t)return function(e,t,s=N){if(e===t)return!0;const r=Math.abs(e-t);if(0===e||0===t||r<s)return r<s;const a=Math.abs(e),n=Math.abs(t);return r/(a+n)<s}(e,t);if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1)if(!A(g(e[r],s),g(t[r],s),s))return!1;return!0}if(f(e)&&f(t))return e.s===t.s&&e.f===t.f;if(c(e)&&c(t)){const r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!1;for(let a=0;a<r.length;a+=1){const n=w(r[a],s);if(!A(e[n],t[n],s))return!1}return!0}return!1}const N=1e-10;const O=new WeakSet,S=new WeakSet,F=new WeakSet,I=new WeakSet,j=new WeakSet,J=new WeakSet,q=new WeakSet;function k(e,t){return e instanceof Promise?e.then(t):t(e)}function M(e,t){try{const s=e();return s instanceof Promise?s.catch(t):s}catch(e){return t(e)}}const C={assert:{category:"assert",description:"If $value is falsy it throws `AssertionError` with $message. If no $message is provided, message is set to $value.",returns:{type:"any"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert } = import("assert");\ntry assert(0, "Expected a positive value") catch (e) e.message end'],seeAlso:["assert.assert-truthy","assert.assert-true"],hideOperatorForm:!0},"assert!=":{category:"assert",description:"If $a is the same as $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert!= } = import("assert");\ntry assert!=(0, 0, "Expected different values") catch (e) e.message end','let { assert!= } = import("assert");\ntry assert!=(0, 0) catch (e) e.message end','let { assert!= } = import("assert");\ntry 0 assert!= 0 catch (e) e.message end','let { assert!= } = import("assert");\ntry assert!=(0, 1) catch (e) e.message end'],seeAlso:["assert.assert="],hideOperatorForm:!0},"assert=":{category:"assert",description:"If $a is not structural equal to $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert= } = import("assert");\ntry assert=({ "a": 1 }, { "a": 2 }, "Expected equal values") catch (e) e.message end','let { assert= } = import("assert");\ntry assert=({ "a": 1 }, { "a": 2 }) catch (e) e.message end','let { assert= } = import("assert");\ntry assert=({ "a": 1 }, { "a": 1 }) catch (e) e.message end'],seeAlso:["assert.assert!="],hideOperatorForm:!0},"assert-gt":{category:"assert",description:"If $a is not greater than $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert-gt } = import("assert");\ntry assert-gt(0, 1, "Expected greater value") catch (e) e.message end','let { assert-gt } = import("assert");\ntry assert-gt(0, 0) catch (e) e.message end','let { assert-gt } = import("assert");\ntry assert-gt(1, 0) catch (e) e.message end'],seeAlso:["assert.assert-lt","assert.assert-gte","assert.assert-lte"],hideOperatorForm:!0},"assert-lt":{category:"assert",description:"If $a is not less than $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert-lt } = import("assert");\ntry assert-lt(1, 0, "Expected smaller value value") catch (e) e.message end','let { assert-lt } = import("assert");\ntry assert-lt(1, 1) catch (e) e.message end','let { assert-lt } = import("assert");\ntry assert-lt(0, 1) catch (e) e.message end'],seeAlso:["assert.assert-gt","assert.assert-lte","assert.assert-gte"],hideOperatorForm:!0},"assert-gte":{category:"assert",description:"If $a is less than $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert-gte } = import("assert");\ntry assert-gte(0, 1, "Expected greater value") catch (e) e.message end','let { assert-gte } = import("assert");\ntry assert-gte(0, 1) catch (e) e.message end','let { assert-gte } = import("assert");\ntry assert-gte(1, 1) catch (e) e.message end'],seeAlso:["assert.assert-lte","assert.assert-gt","assert.assert-lt"],hideOperatorForm:!0},"assert-lte":{category:"assert",description:"If $a is grater than $b it throws `AssertionError`.",returns:{type:"null"},args:{a:{type:"any"},b:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["a","b"]},{argumentNames:["a","b","message"]}],examples:['let { assert-lte } = import("assert");\ntry assert-lte(1, 0, "Expected smaller value value") catch (e) e.message end','let { assert-lte } = import("assert");\ntry assert-lte(1, 0) catch (e) e.message end','let { assert-lte } = import("assert");\ntry assert-lte(1, 1) catch (e) e.message end'],seeAlso:["assert.assert-gte","assert.assert-lt","assert.assert-gt"],hideOperatorForm:!0},"assert-true":{category:"assert",description:"If $value is not `true` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-true } = import("assert");\ntry assert-true(false, "Expected true") catch (e) e.message end','let { assert-true } = import("assert");\ntry assert-true(false) catch (e) e.message end','let { assert-true } = import("assert");\ntry assert-true(true) catch (e) e.message end'],seeAlso:["assert.assert-false","assert.assert-truthy","assert.assert-falsy","assert.assert","assert.assert-boolean"],hideOperatorForm:!0},"assert-false":{category:"assert",description:"If $value is not `false` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-false } = import("assert");\ntry assert-false(true, "Expected false") catch (e) e.message end','let { assert-false } = import("assert");\ntry assert-false(true) catch (e) e.message end','let { assert-false } = import("assert");\ntry assert-false(false) catch (e) e.message end'],seeAlso:["assert.assert-true","assert.assert-falsy","assert.assert-truthy","assert.assert-boolean"],hideOperatorForm:!0},"assert-truthy":{category:"assert",description:"If $value is not `truthy` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-truthy } = import("assert");\ntry assert-truthy(false, "Expected truthy") catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(false) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(0) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(null) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy("") catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(true) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(1) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy("x") catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy([]) catch (e) e.message end','let { assert-truthy } = import("assert");\ntry assert-truthy(nd) catch (e) e.message end'],seeAlso:["assert.assert-falsy","assert.assert-true","assert.assert-false","assert.assert","assert.assert-null"],hideOperatorForm:!0},"assert-falsy":{category:"assert",description:"If $value is not `falsy` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-falsy } = import("assert");\ntry assert-falsy(true, "Expected falsy") catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy("x") catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy([]) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(nd) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(1) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(false) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(0) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy(null) catch (e) e.message end','let { assert-falsy } = import("assert");\ntry assert-falsy("") catch (e) e.message end'],seeAlso:["assert.assert-truthy","assert.assert-false","assert.assert-true","assert.assert-null"],hideOperatorForm:!0},"assert-null":{category:"assert",description:"If $value is not `null` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-null } = import("assert");\ntry assert-null(null) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(true, "Expected null") catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null("x") catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null([]) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(nd) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(1) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(false) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null(0) catch (e) e.message end','let { assert-null } = import("assert");\ntry assert-null("") catch (e) e.message end'],seeAlso:["assert.assert-truthy","assert.assert-falsy"],hideOperatorForm:!0},"assert-throws":{category:"assert",description:"If $fun does not throw, it throws `AssertionError`.",returns:{type:"null"},args:{fun:{type:"function"},message:{type:"string"}},variants:[{argumentNames:["fun"]},{argumentNames:["fun","message"]}],examples:['let { assert-throws } = import("assert");\nassert-throws(-> throw("Error"))','let { assert-throws } = import("assert");\ntry assert-throws(-> identity("Error")) catch (e) e.message end'],seeAlso:["assert.assert-throws-error","assert.assert-not-throws"],hideOperatorForm:!0},"assert-throws-error":{category:"assert",description:"If $fun does not throw $error-message, it throws `AssertionError`.",returns:{type:"null"},args:{fun:{type:"function"},"error-message":{type:"string"},message:{type:"string"}},variants:[{argumentNames:["value","error-message"]},{argumentNames:["value","error-message","message"]}],examples:['let { assert-throws-error } = import("assert");\ntry assert-throws-error(-> throw("Error"), "Error") catch (e) e.message end','let { assert-throws-error } = import("assert");\ntry assert-throws-error(-> identity("Error"), "Error") catch (e) e.message end'],seeAlso:["assert.assert-throws","assert.assert-not-throws"],hideOperatorForm:!0},"assert-not-throws":{category:"assert",description:"If $fun throws, it throws `AssertionError`.",returns:{type:"null"},args:{fun:{type:"function"},message:{type:"string"}},variants:[{argumentNames:["fun"]},{argumentNames:["fun","message"]}],examples:['let { assert-not-throws } = import("assert");\ntry assert-not-throws(-> identity("Error")) catch (e) e.message end','let { assert-not-throws } = import("assert");\ntry assert-not-throws(-> throw("Error")) catch (e) e.message end'],seeAlso:["assert.assert-throws","assert.assert-throws-error"],hideOperatorForm:!0},"assert-array":{category:"assert",description:"If $value is not an `array` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-array } = import("assert");\ntry assert-array([1, 2, 3]) catch (e) e.message end','let { assert-array } = import("assert");\ntry assert-array("string") catch (e) e.message end','let { assert-array } = import("assert");\ntry assert-array(42, "Expected an array") catch (e) e.message end'],seeAlso:["assert.assert-object","assert.assert-collection","assert.assert-sequence"],hideOperatorForm:!0},"assert-boolean":{category:"assert",description:"If $value is not a `boolean` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-boolean } = import("assert");\ntry assert-boolean(true) catch (e) e.message end','let { assert-boolean } = import("assert");\ntry assert-boolean(false) catch (e) e.message end','let { assert-boolean } = import("assert");\ntry assert-boolean(1, "Expected a boolean") catch (e) e.message end'],seeAlso:["assert.assert-true","assert.assert-false","assert.assert-number","assert.assert-string"],hideOperatorForm:!0},"assert-collection":{category:"assert",description:"If $value is not a `collection` (array, object, or string) it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-collection } = import("assert");\ntry assert-collection([1, 2]) catch (e) e.message end','let { assert-collection } = import("assert");\ntry assert-collection({ a: 1 }) catch (e) e.message end','let { assert-collection } = import("assert");\ntry assert-collection("hello") catch (e) e.message end','let { assert-collection } = import("assert");\ntry assert-collection(42, "Expected a collection") catch (e) e.message end'],seeAlso:["assert.assert-sequence","assert.assert-array","assert.assert-object"],hideOperatorForm:!0},"assert-function":{category:"assert",description:"If $value is not a `function` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-function } = import("assert");\ntry assert-function(-> $ + 1) catch (e) e.message end','let { assert-function } = import("assert");\ntry assert-function(42, "Expected a function") catch (e) e.message end'],seeAlso:["assert.assert-number","assert.assert-string"],hideOperatorForm:!0},"assert-grid":{category:"assert",description:"If $value is not a `grid` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-grid } = import("assert");\ntry assert-grid([[1, 2], [3, 4]]) catch (e) e.message end','let { assert-grid } = import("assert");\ntry assert-grid([1, 2], "Expected a grid") catch (e) e.message end'],seeAlso:["assert.assert-matrix","assert.assert-vector"],hideOperatorForm:!0},"assert-integer":{category:"assert",description:"If $value is not an `integer` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-integer } = import("assert");\ntry assert-integer(42) catch (e) e.message end','let { assert-integer } = import("assert");\ntry assert-integer(3.14, "Expected an integer") catch (e) e.message end'],seeAlso:["assert.assert-number"],hideOperatorForm:!0},"assert-matrix":{category:"assert",description:"If $value is not a `matrix` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-matrix } = import("assert");\ntry assert-matrix([[1, 2], [3, 4]]) catch (e) e.message end','let { assert-matrix } = import("assert");\ntry assert-matrix([1, 2], "Expected a matrix") catch (e) e.message end'],seeAlso:["assert.assert-vector","assert.assert-grid"],hideOperatorForm:!0},"assert-number":{category:"assert",description:"If $value is not a `number` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-number } = import("assert");\ntry assert-number(42) catch (e) e.message end','let { assert-number } = import("assert");\ntry assert-number("hello", "Expected a number") catch (e) e.message end'],seeAlso:["assert.assert-integer","assert.assert-boolean","assert.assert-string","assert.assert-function"],hideOperatorForm:!0},"assert-object":{category:"assert",description:"If $value is not an `object` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-object } = import("assert");\ntry assert-object({ a: 1 }) catch (e) e.message end','let { assert-object } = import("assert");\ntry assert-object([1, 2], "Expected an object") catch (e) e.message end'],seeAlso:["assert.assert-array","assert.assert-collection"],hideOperatorForm:!0},"assert-regexp":{category:"assert",description:"If $value is not a `regexp` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-regexp } = import("assert");\ntry assert-regexp(#"^start") catch (e) e.message end','let { assert-regexp } = import("assert");\ntry assert-regexp("hello", "Expected a regexp") catch (e) e.message end'],seeAlso:["assert.assert-string"],hideOperatorForm:!0},"assert-sequence":{category:"assert",description:"If $value is not a `sequence` (array or string) it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-sequence } = import("assert");\ntry assert-sequence([1, 2]) catch (e) e.message end','let { assert-sequence } = import("assert");\ntry assert-sequence("hello") catch (e) e.message end','let { assert-sequence } = import("assert");\ntry assert-sequence({ a: 1 }, "Expected a sequence") catch (e) e.message end'],seeAlso:["assert.assert-collection","assert.assert-array"],hideOperatorForm:!0},"assert-string":{category:"assert",description:"If $value is not a `string` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-string } = import("assert");\ntry assert-string("hello") catch (e) e.message end','let { assert-string } = import("assert");\ntry assert-string(42, "Expected a string") catch (e) e.message end'],seeAlso:["assert.assert-number","assert.assert-boolean","assert.assert-regexp","assert.assert-function"],hideOperatorForm:!0},"assert-vector":{category:"assert",description:"If $value is not a `vector` it throws `AssertionError`.",returns:{type:"null"},args:{value:{type:"any"},message:{type:"string"}},variants:[{argumentNames:["value"]},{argumentNames:["value","message"]}],examples:['let { assert-vector } = import("assert");\ntry assert-vector([1, 2, 3]) catch (e) e.message end','let { assert-vector } = import("assert");\ntry assert-vector(["a", "b"], "Expected a vector") catch (e) e.message end'],seeAlso:["assert.assert-matrix","assert.assert-grid"],hideOperatorForm:!0}},P={assert:{evaluate:(e,t)=>{const r=e[0],a=2===e.length?e[1]:`${r}`;if($(a,t),!r)throw new s(a,t);return g(r,t)},arity:{min:1,max:2}},"assert=":{evaluate:([e,t,r],a)=>{if(void 0!==r&&($(r,a),r=` ${r}`),r??="",!A(g(e,a),g(t,a),a))throw new s(`Expected ${JSON.stringify(e,null,2)} to deep equal ${JSON.stringify(t,null,2)}.${r}`,a);return null},arity:{min:2,max:3}},"assert!=":{evaluate:([e,t,r],a)=>{if(void 0!==r&&($(r,a),r=` ${r}`),r??="",A(g(e,a),g(t,a),a))throw new s(`Expected ${JSON.stringify(e)} not to deep equal ${JSON.stringify(t)}.${r}`,a);return null},arity:{min:2,max:3}},"assert-gt":{evaluate:([e,t,r],a)=>{if(b(e,a),b(t,a),void 0!==r&&($(r,a),r=` ${r}`),r??="",E(e,t,a)<=0)throw new s(`Expected ${e} to be grater than ${t}.${r}`,a);return null},arity:{min:2,max:3}},"assert-gte":{evaluate:([e,t,r],a)=>{if(b(e,a),b(t,a),void 0!==r&&($(r,a),r=` ${r}`),r??="",E(e,t,a)<0)throw new s(`Expected ${e} to be grater than or equal to ${t}.${r}`,a);return null},arity:{min:2,max:3}},"assert-lt":{evaluate:([e,t,r],a)=>{if(b(e,a),b(t,a),void 0!==r&&($(r,a),r=` ${r}`),r??="",E(e,t,a)>=0)throw new s(`Expected ${e} to be less than ${t}.${r}`,a);return null},arity:{min:2,max:3}},"assert-lte":{evaluate:([e,t,r],a)=>{if(b(e,a),b(t,a),void 0!==r&&($(r,a),r=` ${r}`),r??="",E(e,t,a)>0)throw new s(`Expected ${e} to be less than or equal to ${t}.${r}`,a);return null},arity:{min:2,max:3}},"assert-true":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!0!==e)throw new s(`Expected ${e} to be true.${t}`,r);return null},arity:{min:1,max:2}},"assert-false":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!1!==e)throw new s(`Expected ${e} to be false.${t}`,r);return null},arity:{min:1,max:2}},"assert-truthy":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!e)throw new s(`Expected ${e} to be truthy.${t}`,r);return null},arity:{min:1,max:2}},"assert-falsy":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",e)throw new s(`Expected ${e} to be falsy.${t}`,r);return null},arity:{min:1,max:2}},"assert-null":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",null!==e)throw new s(`Expected ${e} to be null.${t}`,r);return null},arity:{min:1,max:2}},"assert-throws":{evaluate:([e,t],r,a,{executeFunction:n})=>(void 0!==t&&($(t,r),t=` ${t}`),t??="",v(e,r),M(()=>k(n(e,[],a,r),()=>{throw new s(`Expected function to throw.${t}`,r)}),()=>null)),arity:{min:1,max:2}},"assert-throws-error":{evaluate:([e,t,r],a,n,{executeFunction:o})=>(void 0!==r&&($(r,a),r=` ${r}`),r??="",$(t,a),v(e,a),M(()=>k(o(e,[],n,a),()=>{throw new s(`Expected function to throw "${t}".${r}`,a)}),e=>{const n=e.shortMessage;if(n!==t)throw new s(`Expected function to throw "${t}", but thrown "${n}".${r}`,a);return null})),arity:{min:2,max:3}},"assert-not-throws":{evaluate:([e,t],r,a,{executeFunction:n})=>(void 0!==t&&($(t,r),t=` ${t}`),t??="",v(e,r),M(()=>k(n(e,[],a,r),()=>null),()=>{throw new s(`Expected function not to throw.${t}`,r)})),arity:{min:1,max:2}},"assert-array":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!Array.isArray(e))throw new s(`Expected ${JSON.stringify(e)} to be an array.${t}`,r);return null},arity:{min:1,max:2}},"assert-boolean":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="","boolean"!=typeof e)throw new s(`Expected ${JSON.stringify(e)} to be a boolean.${t}`,r);return null},arity:{min:1,max:2}},"assert-collection":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!d(e))throw new s(`Expected ${JSON.stringify(e)} to be a collection.${t}`,r);return null},arity:{min:1,max:2}},"assert-function":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!y(e))throw new s(`Expected ${JSON.stringify(e)} to be a function.${t}`,r);return null},arity:{min:1,max:2}},"assert-grid":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!function(e){if(!Array.isArray(e))return!1;if(J.has(e))return!0;if(q.has(e))return!1;if(0===e.length)return q.add(e),!1;if(!Array.isArray(e[0]))return q.add(e),!1;const t=e[0].length;for(const s of e.slice(1)){if(!Array.isArray(s))return q.add(e),!1;if(s.length!==t)return q.add(e),!1}return O.add(e),J.add(e),!0}(e))throw new s(`Expected ${JSON.stringify(e)} to be a grid.${t}`,r);return null},arity:{min:1,max:2}},"assert-integer":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="","number"!=typeof e||!x(e,{integer:!0}))throw new s(`Expected ${JSON.stringify(e)} to be an integer.${t}`,r);return null},arity:{min:1,max:2}},"assert-matrix":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!function(e){if(!Array.isArray(e))return!1;if(I.has(e))return!0;if(j.has(e))return!1;if(0===e.length)return j.add(e),!1;if(!Array.isArray(e[0])||0===e[0].length)return j.add(e),!1;const t=e[0].length;for(const s of e)if(!Array.isArray(s)||s.length!==t||s.some(e=>!x(e)))return j.add(e),!1;return O.add(e),J.add(e),I.add(e),!0}(e))throw new s(`Expected ${JSON.stringify(e)} to be a matrix.${t}`,r);return null},arity:{min:1,max:2}},"assert-number":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="","number"!=typeof e)throw new s(`Expected ${JSON.stringify(e)} to be a number.${t}`,r);return null},arity:{min:1,max:2}},"assert-object":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!h(e))throw new s(`Expected ${JSON.stringify(e)} to be an object.${t}`,r);return null},arity:{min:1,max:2}},"assert-regexp":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!f(e))throw new s(`Expected ${JSON.stringify(e)} to be a regexp.${t}`,r);return null},arity:{min:1,max:2}},"assert-sequence":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",!p(e))throw new s(`Expected ${JSON.stringify(e)} to be a sequence.${t}`,r);return null},arity:{min:1,max:2}},"assert-string":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="","string"!=typeof e)throw new s(`Expected ${JSON.stringify(e)} to be a string.${t}`,r);return null},arity:{min:1,max:2}},"assert-vector":{evaluate:([e,t],r)=>{if(void 0!==t&&($(t,r),t=` ${t}`),t??="",a=e,!Array.isArray(a)||!S.has(a)&&(F.has(a)||(a.every(e=>x(e))?(O.add(a),S.add(a),0):(F.add(a),1))))throw new s(`Expected ${JSON.stringify(e)} to be a vector.${t}`,r);var a;return null},arity:{min:1,max:2}}};for(const[e,t]of Object.entries(C))P[e]&&(P[e].docs=t);const W={name:"assert",functions:P};exports.assertModule=W;
2
2
  //# sourceMappingURL=assert.js.map