lib0 0.2.116 → 1.0.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +160 -407
- package/{array.js → src/array.js} +6 -2
- package/{binary.js → src/binary.js} +29 -35
- package/{delta → src/delta}/delta.js +474 -410
- package/{environment.js → src/environment.js} +30 -16
- package/{hash → src/hash}/rabin.js +6 -6
- package/{schema.js → src/schema.js} +127 -58
- package/{string.js → src/string.js} +47 -26
- package/{testing.js → src/testing.js} +3 -1
- package/src/ts.js +46 -0
- package/{dist → types}/array.d.ts +1 -1
- package/types/array.d.ts.map +1 -0
- package/{dist → types}/binary.d.ts +31 -37
- package/types/binary.d.ts.map +1 -0
- package/types/broadcastchannel.d.ts.map +1 -0
- package/types/buffer.d.ts.map +1 -0
- package/types/cache.d.ts.map +1 -0
- package/types/component.d.ts.map +1 -0
- package/types/conditions.d.ts.map +1 -0
- package/types/decoding.d.ts.map +1 -0
- package/types/delta/delta.d.ts +87 -16
- package/types/delta/delta.d.ts.map +1 -1
- package/types/delta/t3.test.d.ts.map +1 -1
- package/types/diff.d.ts.map +1 -0
- package/types/dom.d.ts.map +1 -0
- package/types/encoding.d.ts.map +1 -0
- package/{environment.d.ts → types/environment.d.ts} +2 -0
- package/types/environment.d.ts.map +1 -0
- package/types/error.d.ts.map +1 -0
- package/types/eventloop.d.ts.map +1 -0
- package/{function.d.ts → types/function.d.ts} +1 -1
- package/types/function.d.ts.map +1 -0
- package/types/indexeddb.d.ts.map +1 -0
- package/types/indexeddbV2.d.ts.map +1 -0
- package/types/iterator.d.ts.map +1 -0
- package/types/json.d.ts.map +1 -0
- package/types/list.d.ts.map +1 -0
- package/types/logging.common.d.ts.map +1 -0
- package/types/logging.d.ts.map +1 -0
- package/types/logging.node.d.ts.map +1 -0
- package/types/map.d.ts.map +1 -0
- package/types/math.d.ts.map +1 -0
- package/types/metric.d.ts.map +1 -0
- package/types/mutex.d.ts.map +1 -0
- package/{number.d.ts → types/number.d.ts} +2 -2
- package/types/number.d.ts.map +1 -0
- package/types/object.d.ts.map +1 -0
- package/types/observable.d.ts.map +1 -0
- package/types/pair.d.ts.map +1 -0
- package/types/performance.d.ts.map +1 -0
- package/types/performance.node.d.ts.map +1 -0
- package/types/pledge.d.ts.map +1 -0
- package/types/prng.d.ts.map +1 -0
- package/types/promise.d.ts.map +1 -0
- package/types/queue.d.ts.map +1 -0
- package/types/random.d.ts.map +1 -0
- package/{schema.d.ts → types/schema.d.ts} +65 -59
- package/types/schema.d.ts.map +1 -0
- package/types/set.d.ts.map +1 -0
- package/types/sort.d.ts.map +1 -0
- package/types/statistics.d.ts.map +1 -0
- package/types/storage.d.ts.map +1 -0
- package/{string.d.ts → types/string.d.ts} +3 -8
- package/types/string.d.ts.map +1 -0
- package/types/symbol.d.ts.map +1 -0
- package/{testing.d.ts → types/testing.d.ts} +2 -1
- package/types/testing.d.ts.map +1 -0
- package/types/time.d.ts.map +1 -0
- package/types/trait/equality.d.ts.map +1 -1
- package/types/tree.d.ts.map +1 -0
- package/types/ts.d.ts +22 -0
- package/types/ts.d.ts.map +1 -0
- package/types/url.d.ts.map +1 -0
- package/types/webcrypto.d.ts.map +1 -0
- package/types/webcrypto.deno.d.ts.map +1 -0
- package/types/webcrypto.node.d.ts.map +1 -0
- package/types/webcrypto.react-native.d.ts.map +1 -0
- package/types/websocket.d.ts.map +1 -0
- package/.github/workflows/node.js.yml +0 -24
- package/.jsdoc.json +0 -18
- package/.vscode/launch.json +0 -17
- package/array.d.ts +0 -30
- package/array.d.ts.map +0 -1
- package/array.test.d.ts +0 -13
- package/array.test.d.ts.map +0 -1
- package/bin/0ecdsa-generate-keypair.d.ts +0 -3
- package/bin/0ecdsa-generate-keypair.d.ts.map +0 -1
- package/bin/0serve.d.ts +0 -3
- package/bin/0serve.d.ts.map +0 -1
- package/bin/gendocs.d.ts +0 -3
- package/bin/gendocs.d.ts.map +0 -1
- package/bin/gentesthtml.d.ts +0 -3
- package/bin/gentesthtml.d.ts.map +0 -1
- package/binary.d.ts +0 -87
- package/binary.d.ts.map +0 -1
- package/binary.test.d.ts +0 -4
- package/binary.test.d.ts.map +0 -1
- package/broadcastchannel.d.ts.map +0 -1
- package/broadcastchannel.test.d.ts +0 -3
- package/broadcastchannel.test.d.ts.map +0 -1
- package/buffer.d.ts.map +0 -1
- package/buffer.test.d.ts +0 -6
- package/buffer.test.d.ts.map +0 -1
- package/cache.d.ts.map +0 -1
- package/cache.test.d.ts +0 -3
- package/cache.test.d.ts.map +0 -1
- package/component.d.ts.map +0 -1
- package/conditions.d.ts.map +0 -1
- package/coverage/tmp/coverage-54474-1766470859038-0.json +0 -1
- package/crypto/aes-gcm.d.ts +0 -17
- package/crypto/aes-gcm.d.ts.map +0 -1
- package/crypto/common.d.ts +0 -3
- package/crypto/common.d.ts.map +0 -1
- package/crypto/ecdsa.d.ts +0 -17
- package/crypto/ecdsa.d.ts.map +0 -1
- package/crypto/jwt.d.ts +0 -10
- package/crypto/jwt.d.ts.map +0 -1
- package/crypto/rsa-oaep.d.ts +0 -13
- package/crypto/rsa-oaep.d.ts.map +0 -1
- package/crypto.test.d.ts +0 -9
- package/crypto.test.d.ts.map +0 -1
- package/decoding.d.ts.map +0 -1
- package/delta/binding.d.ts +0 -107
- package/delta/binding.d.ts.map +0 -1
- package/delta/binding.test.d.ts +0 -5
- package/delta/binding.test.d.ts.map +0 -1
- package/delta/delta-pitch.test.d.ts +0 -5
- package/delta/delta-pitch.test.d.ts.map +0 -1
- package/delta/delta.d.ts +0 -1008
- package/delta/delta.d.ts.map +0 -1
- package/delta/delta.test.d.ts +0 -28
- package/delta/delta.test.d.ts.map +0 -1
- package/delta/t3.test.d.ts +0 -19
- package/delta/t3.test.d.ts.map +0 -1
- package/deno.json +0 -12
- package/deno.lock +0 -122
- package/diff/patience.d.ts +0 -16
- package/diff/patience.d.ts.map +0 -1
- package/diff/patience.test.d.ts +0 -4
- package/diff/patience.test.d.ts.map +0 -1
- package/diff.d.ts.map +0 -1
- package/diff.test.d.ts +0 -6
- package/diff.test.d.ts.map +0 -1
- package/dist/aes-gcm.cjs +0 -171
- package/dist/aes-gcm.cjs.map +0 -1
- package/dist/array-78849c95.cjs +0 -260
- package/dist/array-78849c95.cjs.map +0 -1
- package/dist/array.cjs +0 -26
- package/dist/array.cjs.map +0 -1
- package/dist/array.d.ts.map +0 -1
- package/dist/array.test.d.ts +0 -13
- package/dist/array.test.d.ts.map +0 -1
- package/dist/bin/0ecdsa-generate-keypair.d.ts +0 -3
- package/dist/bin/0ecdsa-generate-keypair.d.ts.map +0 -1
- package/dist/bin/0serve.d.ts +0 -3
- package/dist/bin/0serve.d.ts.map +0 -1
- package/dist/bin/gendocs.d.ts +0 -3
- package/dist/bin/gendocs.d.ts.map +0 -1
- package/dist/bin/gentesthtml.d.ts +0 -3
- package/dist/bin/gentesthtml.d.ts.map +0 -1
- package/dist/binary-ac8e39e2.cjs +0 -229
- package/dist/binary-ac8e39e2.cjs.map +0 -1
- package/dist/binary.cjs +0 -74
- package/dist/binary.cjs.map +0 -1
- package/dist/binary.d.ts.map +0 -1
- package/dist/binary.test.d.ts +0 -4
- package/dist/binary.test.d.ts.map +0 -1
- package/dist/binding.cjs +0 -484
- package/dist/binding.cjs.map +0 -1
- package/dist/broadcastchannel-aca4f606.cjs +0 -128
- package/dist/broadcastchannel-aca4f606.cjs.map +0 -1
- package/dist/broadcastchannel.cjs +0 -29
- package/dist/broadcastchannel.cjs.map +0 -1
- package/dist/broadcastchannel.d.ts +0 -8
- package/dist/broadcastchannel.d.ts.map +0 -1
- package/dist/broadcastchannel.test.d.ts +0 -3
- package/dist/broadcastchannel.test.d.ts.map +0 -1
- package/dist/buffer-3e750729.cjs +0 -198
- package/dist/buffer-3e750729.cjs.map +0 -1
- package/dist/buffer.cjs +0 -38
- package/dist/buffer.cjs.map +0 -1
- package/dist/buffer.d.ts +0 -22
- package/dist/buffer.d.ts.map +0 -1
- package/dist/buffer.test.d.ts +0 -6
- package/dist/buffer.test.d.ts.map +0 -1
- package/dist/cache.cjs +0 -223
- package/dist/cache.cjs.map +0 -1
- package/dist/cache.d.ts +0 -52
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.test.d.ts +0 -3
- package/dist/cache.test.d.ts.map +0 -1
- package/dist/common.cjs +0 -47
- package/dist/common.cjs.map +0 -1
- package/dist/component.cjs +0 -437
- package/dist/component.cjs.map +0 -1
- package/dist/component.d.ts +0 -86
- package/dist/component.d.ts.map +0 -1
- package/dist/conditions-f5c0c102.cjs +0 -24
- package/dist/conditions-f5c0c102.cjs.map +0 -1
- package/dist/conditions.cjs +0 -10
- package/dist/conditions.cjs.map +0 -1
- package/dist/conditions.d.ts +0 -2
- package/dist/conditions.d.ts.map +0 -1
- package/dist/crypto/aes-gcm.d.ts +0 -17
- package/dist/crypto/aes-gcm.d.ts.map +0 -1
- package/dist/crypto/common.d.ts +0 -3
- package/dist/crypto/common.d.ts.map +0 -1
- package/dist/crypto/ecdsa.d.ts +0 -17
- package/dist/crypto/ecdsa.d.ts.map +0 -1
- package/dist/crypto/jwt.d.ts +0 -10
- package/dist/crypto/jwt.d.ts.map +0 -1
- package/dist/crypto/rsa-oaep.d.ts +0 -13
- package/dist/crypto/rsa-oaep.d.ts.map +0 -1
- package/dist/crypto.test.d.ts +0 -9
- package/dist/crypto.test.d.ts.map +0 -1
- package/dist/decoding-76e75827.cjs +0 -795
- package/dist/decoding-76e75827.cjs.map +0 -1
- package/dist/decoding.cjs +0 -55
- package/dist/decoding.cjs.map +0 -1
- package/dist/decoding.d.ts +0 -165
- package/dist/decoding.d.ts.map +0 -1
- package/dist/delta/binding.d.ts +0 -107
- package/dist/delta/binding.d.ts.map +0 -1
- package/dist/delta/binding.test.d.ts +0 -5
- package/dist/delta/binding.test.d.ts.map +0 -1
- package/dist/delta/delta-pitch.test.d.ts +0 -5
- package/dist/delta/delta-pitch.test.d.ts.map +0 -1
- package/dist/delta/delta.d.ts +0 -1008
- package/dist/delta/delta.d.ts.map +0 -1
- package/dist/delta/delta.test.d.ts +0 -28
- package/dist/delta/delta.test.d.ts.map +0 -1
- package/dist/delta/t3.test.d.ts +0 -19
- package/dist/delta/t3.test.d.ts.map +0 -1
- package/dist/delta.cjs +0 -2409
- package/dist/delta.cjs.map +0 -1
- package/dist/diff/patience.d.ts +0 -16
- package/dist/diff/patience.d.ts.map +0 -1
- package/dist/diff/patience.test.d.ts +0 -4
- package/dist/diff/patience.test.d.ts.map +0 -1
- package/dist/diff-9d236524.cjs +0 -162
- package/dist/diff-9d236524.cjs.map +0 -1
- package/dist/diff.cjs +0 -18
- package/dist/diff.cjs.map +0 -1
- package/dist/diff.d.ts +0 -36
- package/dist/diff.d.ts.map +0 -1
- package/dist/diff.test.d.ts +0 -6
- package/dist/diff.test.d.ts.map +0 -1
- package/dist/dom-7e625b09.cjs +0 -371
- package/dist/dom-7e625b09.cjs.map +0 -1
- package/dist/dom.cjs +0 -71
- package/dist/dom.cjs.map +0 -1
- package/dist/dom.d.ts.map +0 -1
- package/dist/ecdsa.cjs +0 -130
- package/dist/ecdsa.cjs.map +0 -1
- package/dist/encoding-1a745c43.cjs +0 -1025
- package/dist/encoding-1a745c43.cjs.map +0 -1
- package/dist/encoding.cjs +0 -54
- package/dist/encoding.cjs.map +0 -1
- package/dist/encoding.d.ts.map +0 -1
- package/dist/encoding.test.d.ts +0 -50
- package/dist/encoding.test.d.ts.map +0 -1
- package/dist/environment-1c97264d.cjs +0 -180
- package/dist/environment-1c97264d.cjs.map +0 -1
- package/dist/environment.cjs +0 -29
- package/dist/environment.cjs.map +0 -1
- package/dist/environment.d.ts +0 -19
- package/dist/environment.d.ts.map +0 -1
- package/dist/equality.cjs +0 -34
- package/dist/equality.cjs.map +0 -1
- package/dist/error-0c1f634f.cjs +0 -53
- package/dist/error-0c1f634f.cjs.map +0 -1
- package/dist/error.cjs +0 -13
- package/dist/error.cjs.map +0 -1
- package/dist/error.d.ts.map +0 -1
- package/dist/eventloop-a0168106.cjs +0 -151
- package/dist/eventloop-a0168106.cjs.map +0 -1
- package/dist/eventloop.cjs +0 -19
- package/dist/eventloop.cjs.map +0 -1
- package/dist/eventloop.d.ts.map +0 -1
- package/dist/eventloop.test.d.ts +0 -10
- package/dist/eventloop.test.d.ts.map +0 -1
- package/dist/fingerprint.cjs +0 -44
- package/dist/fingerprint.cjs.map +0 -1
- package/dist/function-314580f7.cjs +0 -223
- package/dist/function-314580f7.cjs.map +0 -1
- package/dist/function.cjs +0 -26
- package/dist/function.cjs.map +0 -1
- package/dist/function.d.ts +0 -19
- package/dist/function.d.ts.map +0 -1
- package/dist/function.test.d.ts +0 -5
- package/dist/function.test.d.ts.map +0 -1
- package/dist/hash/rabin-gf2-polynomial.d.ts +0 -45
- package/dist/hash/rabin-gf2-polynomial.d.ts.map +0 -1
- package/dist/hash/rabin-uncached.d.ts +0 -29
- package/dist/hash/rabin-uncached.d.ts.map +0 -1
- package/dist/hash/rabin.d.ts +0 -27
- package/dist/hash/rabin.d.ts.map +0 -1
- package/dist/hash/rabin.test.d.ts +0 -8
- package/dist/hash/rabin.test.d.ts.map +0 -1
- package/dist/hash/sha256.d.ts +0 -2
- package/dist/hash/sha256.d.ts.map +0 -1
- package/dist/hash/sha256.node.d.ts +0 -2
- package/dist/hash/sha256.node.d.ts.map +0 -1
- package/dist/hash/sha256.test.d.ts +0 -7
- package/dist/hash/sha256.test.d.ts.map +0 -1
- package/dist/index.cjs +0 -99
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -35
- package/dist/index.d.ts.map +0 -1
- package/dist/indexeddb-46d1e737.cjs +0 -311
- package/dist/indexeddb-46d1e737.cjs.map +0 -1
- package/dist/indexeddb.cjs +0 -37
- package/dist/indexeddb.cjs.map +0 -1
- package/dist/indexeddb.d.ts.map +0 -1
- package/dist/indexeddb.test.d.ts +0 -3
- package/dist/indexeddb.test.d.ts.map +0 -1
- package/dist/indexeddbV2.cjs +0 -288
- package/dist/indexeddbV2.cjs.map +0 -1
- package/dist/indexeddbV2.d.ts.map +0 -1
- package/dist/indexeddbV2.test.d.ts +0 -3
- package/dist/indexeddbV2.test.d.ts.map +0 -1
- package/dist/isomorphic.cjs +0 -17
- package/dist/isomorphic.cjs.map +0 -1
- package/dist/iterator-9fc627c1.cjs +0 -78
- package/dist/iterator-9fc627c1.cjs.map +0 -1
- package/dist/iterator.cjs +0 -13
- package/dist/iterator.cjs.map +0 -1
- package/dist/iterator.d.ts.map +0 -1
- package/dist/json-092190a1.cjs +0 -34
- package/dist/json-092190a1.cjs.map +0 -1
- package/dist/json.cjs +0 -11
- package/dist/json.cjs.map +0 -1
- package/dist/json.d.ts.map +0 -1
- package/dist/jwt.cjs +0 -96
- package/dist/jwt.cjs.map +0 -1
- package/dist/list.cjs +0 -266
- package/dist/list.cjs.map +0 -1
- package/dist/list.d.ts.map +0 -1
- package/dist/list.test.d.ts +0 -6
- package/dist/list.test.d.ts.map +0 -1
- package/dist/logging.cjs +0 -428
- package/dist/logging.cjs.map +0 -1
- package/dist/logging.common.cjs +0 -132
- package/dist/logging.common.cjs.map +0 -1
- package/dist/logging.common.d.ts.map +0 -1
- package/dist/logging.d.ts.map +0 -1
- package/dist/logging.node.cjs +0 -203
- package/dist/logging.node.cjs.map +0 -1
- package/dist/logging.node.d.ts.map +0 -1
- package/dist/logging.test.d.ts +0 -3
- package/dist/logging.test.d.ts.map +0 -1
- package/dist/map-24d263c0.cjs +0 -139
- package/dist/map-24d263c0.cjs.map +0 -1
- package/dist/map.cjs +0 -15
- package/dist/map.cjs.map +0 -1
- package/dist/map.d.ts.map +0 -1
- package/dist/map.test.d.ts +0 -4
- package/dist/map.test.d.ts.map +0 -1
- package/dist/math-96d5e8c4.cjs +0 -103
- package/dist/math-96d5e8c4.cjs.map +0 -1
- package/dist/math.cjs +0 -26
- package/dist/math.cjs.map +0 -1
- package/dist/math.d.ts.map +0 -1
- package/dist/math.test.d.ts +0 -3
- package/dist/math.test.d.ts.map +0 -1
- package/dist/metric.cjs +0 -83
- package/dist/metric.cjs.map +0 -1
- package/dist/metric.d.ts.map +0 -1
- package/dist/metric.test.d.ts +0 -3
- package/dist/metric.test.d.ts.map +0 -1
- package/dist/mutex-63f09c81.cjs +0 -54
- package/dist/mutex-63f09c81.cjs.map +0 -1
- package/dist/mutex.cjs +0 -10
- package/dist/mutex.cjs.map +0 -1
- package/dist/mutex.d.ts.map +0 -1
- package/dist/mutex.test.d.ts +0 -3
- package/dist/mutex.test.d.ts.map +0 -1
- package/dist/number-1fb57bba.cjs +0 -64
- package/dist/number-1fb57bba.cjs.map +0 -1
- package/dist/number.cjs +0 -20
- package/dist/number.cjs.map +0 -1
- package/dist/number.d.ts +0 -10
- package/dist/number.d.ts.map +0 -1
- package/dist/number.test.d.ts +0 -4
- package/dist/number.test.d.ts.map +0 -1
- package/dist/object-c0c9435b.cjs +0 -212
- package/dist/object-c0c9435b.cjs.map +0 -1
- package/dist/object.cjs +0 -27
- package/dist/object.cjs.map +0 -1
- package/dist/object.d.ts.map +0 -1
- package/dist/object.test.d.ts +0 -6
- package/dist/object.test.d.ts.map +0 -1
- package/dist/observable.cjs +0 -169
- package/dist/observable.cjs.map +0 -1
- package/dist/observable.d.ts.map +0 -1
- package/dist/observable.test.d.ts +0 -3
- package/dist/observable.test.d.ts.map +0 -1
- package/dist/pair-ab022bc3.cjs +0 -69
- package/dist/pair-ab022bc3.cjs.map +0 -1
- package/dist/pair.cjs +0 -14
- package/dist/pair.cjs.map +0 -1
- package/dist/pair.d.ts.map +0 -1
- package/dist/pair.test.d.ts +0 -3
- package/dist/pair.test.d.ts.map +0 -1
- package/dist/patience.cjs +0 -236
- package/dist/patience.cjs.map +0 -1
- package/dist/performance.cjs +0 -14
- package/dist/performance.cjs.map +0 -1
- package/dist/performance.d.ts.map +0 -1
- package/dist/performance.node.cjs +0 -36
- package/dist/performance.node.cjs.map +0 -1
- package/dist/performance.node.d.ts.map +0 -1
- package/dist/pledge.cjs +0 -308
- package/dist/pledge.cjs.map +0 -1
- package/dist/pledge.d.ts.map +0 -1
- package/dist/pledge.test.d.ts +0 -6
- package/dist/pledge.test.d.ts.map +0 -1
- package/dist/prng/Mt19937.d.ts +0 -29
- package/dist/prng/Mt19937.d.ts.map +0 -1
- package/dist/prng/Xoroshiro128plus.d.ts +0 -27
- package/dist/prng/Xoroshiro128plus.d.ts.map +0 -1
- package/dist/prng/Xorshift32.d.ts +0 -21
- package/dist/prng/Xorshift32.d.ts.map +0 -1
- package/dist/prng-37d48618.cjs +0 -387
- package/dist/prng-37d48618.cjs.map +0 -1
- package/dist/prng.cjs +0 -44
- package/dist/prng.cjs.map +0 -1
- package/dist/prng.d.ts.map +0 -1
- package/dist/prng.test.d.ts +0 -6
- package/dist/prng.test.d.ts.map +0 -1
- package/dist/promise-cda7b9bb.cjs +0 -145
- package/dist/promise-cda7b9bb.cjs.map +0 -1
- package/dist/promise.cjs +0 -22
- package/dist/promise.cjs.map +0 -1
- package/dist/promise.d.ts.map +0 -1
- package/dist/promise.test.d.ts +0 -5
- package/dist/promise.test.d.ts.map +0 -1
- package/dist/queue.cjs +0 -97
- package/dist/queue.cjs.map +0 -1
- package/dist/queue.d.ts.map +0 -1
- package/dist/queue.test.d.ts +0 -3
- package/dist/queue.test.d.ts.map +0 -1
- package/dist/rabin-gf2-polynomial.cjs +0 -440
- package/dist/rabin-gf2-polynomial.cjs.map +0 -1
- package/dist/rabin-uncached.cjs +0 -90
- package/dist/rabin-uncached.cjs.map +0 -1
- package/dist/rabin.cjs +0 -128
- package/dist/rabin.cjs.map +0 -1
- package/dist/random.cjs +0 -48
- package/dist/random.cjs.map +0 -1
- package/dist/random.d.ts.map +0 -1
- package/dist/random.test.d.ts +0 -7
- package/dist/random.test.d.ts.map +0 -1
- package/dist/rollup.config.d.ts +0 -13
- package/dist/rollup.config.d.ts.map +0 -1
- package/dist/rsa-oaep.cjs +0 -112
- package/dist/rsa-oaep.cjs.map +0 -1
- package/dist/schema.cjs +0 -1223
- package/dist/schema.cjs.map +0 -1
- package/dist/schema.d.ts +0 -595
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.test.d.ts +0 -15
- package/dist/schema.test.d.ts.map +0 -1
- package/dist/set-5b47859e.cjs +0 -45
- package/dist/set-5b47859e.cjs.map +0 -1
- package/dist/set.cjs +0 -13
- package/dist/set.cjs.map +0 -1
- package/dist/set.d.ts.map +0 -1
- package/dist/set.test.d.ts +0 -3
- package/dist/set.test.d.ts.map +0 -1
- package/dist/sha256.cjs +0 -183
- package/dist/sha256.cjs.map +0 -1
- package/dist/sha256.node.cjs +0 -17
- package/dist/sha256.node.cjs.map +0 -1
- package/dist/sort-812cc211.cjs +0 -103
- package/dist/sort-812cc211.cjs.map +0 -1
- package/dist/sort.cjs +0 -13
- package/dist/sort.cjs.map +0 -1
- package/dist/sort.d.ts.map +0 -1
- package/dist/sort.test.d.ts +0 -7
- package/dist/sort.test.d.ts.map +0 -1
- package/dist/statistics-65f6114b.cjs +0 -32
- package/dist/statistics-65f6114b.cjs.map +0 -1
- package/dist/statistics.cjs +0 -12
- package/dist/statistics.cjs.map +0 -1
- package/dist/statistics.d.ts.map +0 -1
- package/dist/statistics.test.d.ts +0 -3
- package/dist/statistics.test.d.ts.map +0 -1
- package/dist/storage.cjs +0 -81
- package/dist/storage.cjs.map +0 -1
- package/dist/storage.d.ts.map +0 -1
- package/dist/storage.test.d.ts +0 -3
- package/dist/storage.test.d.ts.map +0 -1
- package/dist/string-fddc5f8b.cjs +0 -209
- package/dist/string-fddc5f8b.cjs.map +0 -1
- package/dist/string.cjs +0 -32
- package/dist/string.cjs.map +0 -1
- package/dist/string.d.ts +0 -28
- package/dist/string.d.ts.map +0 -1
- package/dist/string.test.d.ts +0 -9
- package/dist/string.test.d.ts.map +0 -1
- package/dist/symbol-9c439012.cjs +0 -29
- package/dist/symbol-9c439012.cjs.map +0 -1
- package/dist/symbol.cjs +0 -11
- package/dist/symbol.cjs.map +0 -1
- package/dist/symbol.d.ts.map +0 -1
- package/dist/symbol.test.d.ts +0 -3
- package/dist/symbol.test.d.ts.map +0 -1
- package/dist/testing.cjs +0 -709
- package/dist/testing.cjs.map +0 -1
- package/dist/testing.d.ts +0 -64
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.test.d.ts +0 -9
- package/dist/testing.test.d.ts.map +0 -1
- package/dist/time-d8438852.cjs +0 -63
- package/dist/time-d8438852.cjs.map +0 -1
- package/dist/time.cjs +0 -14
- package/dist/time.cjs.map +0 -1
- package/dist/time.d.ts.map +0 -1
- package/dist/time.test.d.ts +0 -4
- package/dist/time.test.d.ts.map +0 -1
- package/dist/trait/equality.d.ts +0 -6
- package/dist/trait/equality.d.ts.map +0 -1
- package/dist/trait/fingerprint.d.ts +0 -13
- package/dist/trait/fingerprint.d.ts.map +0 -1
- package/dist/trait/traits.d.ts +0 -3
- package/dist/trait/traits.d.ts.map +0 -1
- package/dist/trait/traits.test.d.ts +0 -5
- package/dist/trait/traits.test.d.ts.map +0 -1
- package/dist/traits.cjs +0 -31
- package/dist/traits.cjs.map +0 -1
- package/dist/tree-9f3c8837.cjs +0 -557
- package/dist/tree-9f3c8837.cjs.map +0 -1
- package/dist/tree.cjs +0 -10
- package/dist/tree.cjs.map +0 -1
- package/dist/tree.d.ts.map +0 -1
- package/dist/tree.test.d.ts +0 -2
- package/dist/tree.test.d.ts.map +0 -1
- package/dist/url.cjs +0 -46
- package/dist/url.cjs.map +0 -1
- package/dist/url.d.ts.map +0 -1
- package/dist/url.test.d.ts +0 -3
- package/dist/url.test.d.ts.map +0 -1
- package/dist/webcrypto.cjs +0 -12
- package/dist/webcrypto.cjs.map +0 -1
- package/dist/webcrypto.d.ts.map +0 -1
- package/dist/webcrypto.deno.cjs +0 -12
- package/dist/webcrypto.deno.cjs.map +0 -1
- package/dist/webcrypto.deno.d.ts.map +0 -1
- package/dist/webcrypto.node.cjs +0 -12
- package/dist/webcrypto.node.cjs.map +0 -1
- package/dist/webcrypto.node.d.ts.map +0 -1
- package/dist/webcrypto.react-native.cjs +0 -20
- package/dist/webcrypto.react-native.cjs.map +0 -1
- package/dist/webcrypto.react-native.d.ts.map +0 -1
- package/dist/websocket-b073d0fc.cjs +0 -157
- package/dist/websocket-b073d0fc.cjs.map +0 -1
- package/dist/websocket.cjs +0 -17
- package/dist/websocket.cjs.map +0 -1
- package/dist/websocket.d.ts.map +0 -1
- package/dom.d.ts +0 -60
- package/dom.d.ts.map +0 -1
- package/encoding.d.ts +0 -235
- package/encoding.d.ts.map +0 -1
- package/encoding.test.d.ts +0 -50
- package/encoding.test.d.ts.map +0 -1
- package/environment.d.ts.map +0 -1
- package/error.d.ts +0 -5
- package/error.d.ts.map +0 -1
- package/eventloop.d.ts +0 -16
- package/eventloop.d.ts.map +0 -1
- package/eventloop.test.d.ts +0 -10
- package/eventloop.test.d.ts.map +0 -1
- package/function.d.ts.map +0 -1
- package/function.test.d.ts +0 -5
- package/function.test.d.ts.map +0 -1
- package/hash/rabin-gf2-polynomial.d.ts +0 -45
- package/hash/rabin-gf2-polynomial.d.ts.map +0 -1
- package/hash/rabin-uncached.d.ts +0 -29
- package/hash/rabin-uncached.d.ts.map +0 -1
- package/hash/rabin.d.ts +0 -27
- package/hash/rabin.d.ts.map +0 -1
- package/hash/rabin.test.d.ts +0 -8
- package/hash/rabin.test.d.ts.map +0 -1
- package/hash/sha256.d.ts +0 -2
- package/hash/sha256.d.ts.map +0 -1
- package/hash/sha256.node.d.ts +0 -2
- package/hash/sha256.node.d.ts.map +0 -1
- package/hash/sha256.test.d.ts +0 -7
- package/hash/sha256.test.d.ts.map +0 -1
- package/index.d.ts +0 -35
- package/index.d.ts.map +0 -1
- package/index.js +0 -82
- package/indexeddb.d.ts +0 -34
- package/indexeddb.d.ts.map +0 -1
- package/indexeddb.test.d.ts +0 -3
- package/indexeddb.test.d.ts.map +0 -1
- package/indexeddbV2.d.ts +0 -35
- package/indexeddbV2.d.ts.map +0 -1
- package/indexeddbV2.test.d.ts +0 -3
- package/indexeddbV2.test.d.ts.map +0 -1
- package/isomorphic.js +0 -10
- package/iterator.d.ts +0 -5
- package/iterator.d.ts.map +0 -1
- package/json.d.ts +0 -23
- package/json.d.ts.map +0 -1
- package/list.d.ts +0 -55
- package/list.d.ts.map +0 -1
- package/list.test.d.ts +0 -6
- package/list.test.d.ts.map +0 -1
- package/logging.common.d.ts +0 -12
- package/logging.common.d.ts.map +0 -1
- package/logging.d.ts +0 -55
- package/logging.d.ts.map +0 -1
- package/logging.node.d.ts +0 -14
- package/logging.node.d.ts.map +0 -1
- package/logging.test.d.ts +0 -3
- package/logging.test.d.ts.map +0 -1
- package/map.d.ts +0 -8
- package/map.d.ts.map +0 -1
- package/map.test.d.ts +0 -4
- package/map.test.d.ts.map +0 -1
- package/math.d.ts +0 -23
- package/math.d.ts.map +0 -1
- package/math.test.d.ts +0 -3
- package/math.test.d.ts.map +0 -1
- package/metric.d.ts +0 -25
- package/metric.d.ts.map +0 -1
- package/metric.test.d.ts +0 -3
- package/metric.test.d.ts.map +0 -1
- package/mutex.d.ts +0 -3
- package/mutex.d.ts.map +0 -1
- package/mutex.test.d.ts +0 -3
- package/mutex.test.d.ts.map +0 -1
- package/number.d.ts.map +0 -1
- package/number.test.d.ts +0 -4
- package/number.test.d.ts.map +0 -1
- package/object.d.ts +0 -72
- package/object.d.ts.map +0 -1
- package/object.test.d.ts +0 -6
- package/object.test.d.ts.map +0 -1
- package/observable.d.ts +0 -86
- package/observable.d.ts.map +0 -1
- package/observable.test.d.ts +0 -3
- package/observable.test.d.ts.map +0 -1
- package/pair.d.ts +0 -22
- package/pair.d.ts.map +0 -1
- package/pair.test.d.ts +0 -3
- package/pair.test.d.ts.map +0 -1
- package/performance.d.ts +0 -4
- package/performance.d.ts.map +0 -1
- package/performance.node.d.ts +0 -14
- package/performance.node.d.ts.map +0 -1
- package/pledge.d.ts +0 -68
- package/pledge.d.ts.map +0 -1
- package/pledge.test.d.ts +0 -6
- package/pledge.test.d.ts.map +0 -1
- package/prng/Mt19937.d.ts +0 -29
- package/prng/Mt19937.d.ts.map +0 -1
- package/prng/Xoroshiro128plus.d.ts +0 -27
- package/prng/Xoroshiro128plus.d.ts.map +0 -1
- package/prng/Xorshift32.d.ts +0 -21
- package/prng/Xorshift32.d.ts.map +0 -1
- package/prng.d.ts +0 -44
- package/prng.d.ts.map +0 -1
- package/prng.test.d.ts +0 -6
- package/prng.test.d.ts.map +0 -1
- package/promise.d.ts +0 -22
- package/promise.d.ts.map +0 -1
- package/promise.test.d.ts +0 -5
- package/promise.test.d.ts.map +0 -1
- package/queue.d.ts +0 -34
- package/queue.d.ts.map +0 -1
- package/queue.test.d.ts +0 -3
- package/queue.test.d.ts.map +0 -1
- package/random.d.ts +0 -6
- package/random.d.ts.map +0 -1
- package/random.test.d.ts +0 -7
- package/random.test.d.ts.map +0 -1
- package/rollup.config.d.ts +0 -13
- package/rollup.config.d.ts.map +0 -1
- package/schema.d.ts.map +0 -1
- package/schema.test.d.ts +0 -15
- package/schema.test.d.ts.map +0 -1
- package/set.d.ts +0 -5
- package/set.d.ts.map +0 -1
- package/set.test.d.ts +0 -3
- package/set.test.d.ts.map +0 -1
- package/sort.d.ts +0 -4
- package/sort.d.ts.map +0 -1
- package/sort.test.d.ts +0 -7
- package/sort.test.d.ts.map +0 -1
- package/statistics.d.ts +0 -3
- package/statistics.d.ts.map +0 -1
- package/statistics.test.d.ts +0 -3
- package/statistics.test.d.ts.map +0 -1
- package/storage.d.ts +0 -15
- package/storage.d.ts.map +0 -1
- package/storage.test.d.ts +0 -3
- package/storage.test.d.ts.map +0 -1
- package/string.d.ts.map +0 -1
- package/string.test.d.ts +0 -9
- package/string.test.d.ts.map +0 -1
- package/symbol.d.ts +0 -11
- package/symbol.d.ts.map +0 -1
- package/symbol.test.d.ts +0 -3
- package/symbol.test.d.ts.map +0 -1
- package/test.d.ts +0 -2
- package/test.d.ts.map +0 -1
- package/test.html +0 -168
- package/test.js +0 -104
- package/testing.d.ts.map +0 -1
- package/testing.test.d.ts +0 -9
- package/testing.test.d.ts.map +0 -1
- package/time.d.ts +0 -9
- package/time.d.ts.map +0 -1
- package/time.test.d.ts +0 -4
- package/time.test.d.ts.map +0 -1
- package/trait/equality.d.ts +0 -6
- package/trait/equality.d.ts.map +0 -1
- package/trait/fingerprint.d.ts +0 -13
- package/trait/fingerprint.d.ts.map +0 -1
- package/trait/traits.d.ts +0 -3
- package/trait/traits.d.ts.map +0 -1
- package/trait/traits.test.d.ts +0 -5
- package/trait/traits.test.d.ts.map +0 -1
- package/tree.d.ts +0 -96
- package/tree.d.ts.map +0 -1
- package/tree.test.d.ts +0 -2
- package/tree.test.d.ts.map +0 -1
- package/url.d.ts +0 -7
- package/url.d.ts.map +0 -1
- package/url.test.d.ts +0 -3
- package/url.test.d.ts.map +0 -1
- package/webcrypto.d.ts +0 -3
- package/webcrypto.d.ts.map +0 -1
- package/webcrypto.deno.d.ts +0 -3
- package/webcrypto.deno.d.ts.map +0 -1
- package/webcrypto.node.d.ts +0 -3
- package/webcrypto.node.d.ts.map +0 -1
- package/webcrypto.react-native.d.ts +0 -3
- package/webcrypto.react-native.d.ts.map +0 -1
- package/websocket.d.ts +0 -38
- package/websocket.d.ts.map +0 -1
- /package/{bin → src/bin}/0ecdsa-generate-keypair.js +0 -0
- /package/{bin → src/bin}/0serve.js +0 -0
- /package/{bin → src/bin}/gendocs.js +0 -0
- /package/{bin → src/bin}/gentesthtml.js +0 -0
- /package/{broadcastchannel.js → src/broadcastchannel.js} +0 -0
- /package/{buffer.js → src/buffer.js} +0 -0
- /package/{cache.js → src/cache.js} +0 -0
- /package/{component.js → src/component.js} +0 -0
- /package/{conditions.js → src/conditions.js} +0 -0
- /package/{crypto → src/crypto}/aes-gcm.js +0 -0
- /package/{crypto → src/crypto}/common.js +0 -0
- /package/{crypto → src/crypto}/ecdsa.js +0 -0
- /package/{crypto → src/crypto}/jwt.js +0 -0
- /package/{crypto → src/crypto}/rsa-oaep.js +0 -0
- /package/{decoding.js → src/decoding.js} +0 -0
- /package/{delta → src/delta}/binding.js +0 -0
- /package/{delta → src/delta}/readme.md +0 -0
- /package/{diff → src/diff}/patience.js +0 -0
- /package/{diff.js → src/diff.js} +0 -0
- /package/{dom.js → src/dom.js} +0 -0
- /package/{encoding.js → src/encoding.js} +0 -0
- /package/{error.js → src/error.js} +0 -0
- /package/{eventloop.js → src/eventloop.js} +0 -0
- /package/{function.js → src/function.js} +0 -0
- /package/{hash → src/hash}/rabin-gf2-polynomial.js +0 -0
- /package/{hash → src/hash}/rabin-uncached.js +0 -0
- /package/{hash → src/hash}/sha256.js +0 -0
- /package/{hash → src/hash}/sha256.node.js +0 -0
- /package/{indexeddb.js → src/indexeddb.js} +0 -0
- /package/{indexeddbV2.js → src/indexeddbV2.js} +0 -0
- /package/{iterator.js → src/iterator.js} +0 -0
- /package/{json.js → src/json.js} +0 -0
- /package/{list.js → src/list.js} +0 -0
- /package/{logging.common.js → src/logging.common.js} +0 -0
- /package/{logging.js → src/logging.js} +0 -0
- /package/{logging.node.js → src/logging.node.js} +0 -0
- /package/{map.js → src/map.js} +0 -0
- /package/{math.js → src/math.js} +0 -0
- /package/{metric.js → src/metric.js} +0 -0
- /package/{mutex.js → src/mutex.js} +0 -0
- /package/{number.js → src/number.js} +0 -0
- /package/{object.js → src/object.js} +0 -0
- /package/{observable.js → src/observable.js} +0 -0
- /package/{pair.js → src/pair.js} +0 -0
- /package/{performance.js → src/performance.js} +0 -0
- /package/{performance.node.js → src/performance.node.js} +0 -0
- /package/{pledge.js → src/pledge.js} +0 -0
- /package/{prng → src/prng}/Mt19937.js +0 -0
- /package/{prng → src/prng}/Xoroshiro128plus.js +0 -0
- /package/{prng → src/prng}/Xorshift32.js +0 -0
- /package/{prng.js → src/prng.js} +0 -0
- /package/{promise.js → src/promise.js} +0 -0
- /package/{queue.js → src/queue.js} +0 -0
- /package/{random.js → src/random.js} +0 -0
- /package/{set.js → src/set.js} +0 -0
- /package/{sort.js → src/sort.js} +0 -0
- /package/{statistics.js → src/statistics.js} +0 -0
- /package/{storage.js → src/storage.js} +0 -0
- /package/{symbol.js → src/symbol.js} +0 -0
- /package/{time.js → src/time.js} +0 -0
- /package/{trait → src/trait}/equality.js +0 -0
- /package/{trait → src/trait}/fingerprint.js +0 -0
- /package/{trait → src/trait}/traits.js +0 -0
- /package/{tree.js → src/tree.js} +0 -0
- /package/{url.js → src/url.js} +0 -0
- /package/{webcrypto.deno.js → src/webcrypto.deno.js} +0 -0
- /package/{webcrypto.js → src/webcrypto.js} +0 -0
- /package/{webcrypto.node.js → src/webcrypto.node.js} +0 -0
- /package/{webcrypto.react-native.js → src/webcrypto.react-native.js} +0 -0
- /package/{websocket.js → src/websocket.js} +0 -0
- /package/{broadcastchannel.d.ts → types/broadcastchannel.d.ts} +0 -0
- /package/{buffer.d.ts → types/buffer.d.ts} +0 -0
- /package/{cache.d.ts → types/cache.d.ts} +0 -0
- /package/{component.d.ts → types/component.d.ts} +0 -0
- /package/{conditions.d.ts → types/conditions.d.ts} +0 -0
- /package/{decoding.d.ts → types/decoding.d.ts} +0 -0
- /package/{diff.d.ts → types/diff.d.ts} +0 -0
- /package/{dist → types}/dom.d.ts +0 -0
- /package/{dist → types}/encoding.d.ts +0 -0
- /package/{dist → types}/error.d.ts +0 -0
- /package/{dist → types}/eventloop.d.ts +0 -0
- /package/{dist → types}/indexeddb.d.ts +0 -0
- /package/{dist → types}/indexeddbV2.d.ts +0 -0
- /package/{dist → types}/iterator.d.ts +0 -0
- /package/{dist → types}/json.d.ts +0 -0
- /package/{dist → types}/list.d.ts +0 -0
- /package/{dist → types}/logging.common.d.ts +0 -0
- /package/{dist → types}/logging.d.ts +0 -0
- /package/{dist → types}/logging.node.d.ts +0 -0
- /package/{dist → types}/map.d.ts +0 -0
- /package/{dist → types}/math.d.ts +0 -0
- /package/{dist → types}/metric.d.ts +0 -0
- /package/{dist → types}/mutex.d.ts +0 -0
- /package/{dist → types}/object.d.ts +0 -0
- /package/{dist → types}/observable.d.ts +0 -0
- /package/{dist → types}/pair.d.ts +0 -0
- /package/{dist → types}/performance.d.ts +0 -0
- /package/{dist → types}/performance.node.d.ts +0 -0
- /package/{dist → types}/pledge.d.ts +0 -0
- /package/{dist → types}/prng.d.ts +0 -0
- /package/{dist → types}/promise.d.ts +0 -0
- /package/{dist → types}/queue.d.ts +0 -0
- /package/{dist → types}/random.d.ts +0 -0
- /package/{dist → types}/set.d.ts +0 -0
- /package/{dist → types}/sort.d.ts +0 -0
- /package/{dist → types}/statistics.d.ts +0 -0
- /package/{dist → types}/storage.d.ts +0 -0
- /package/{dist → types}/symbol.d.ts +0 -0
- /package/{dist → types}/time.d.ts +0 -0
- /package/{dist → types}/tree.d.ts +0 -0
- /package/{dist → types}/url.d.ts +0 -0
- /package/{dist → types}/webcrypto.d.ts +0 -0
- /package/{dist → types}/webcrypto.deno.d.ts +0 -0
- /package/{dist → types}/webcrypto.node.d.ts +0 -0
- /package/{dist → types}/webcrypto.react-native.d.ts +0 -0
- /package/{dist → types}/websocket.d.ts +0 -0
package/dist/schema.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.cjs","sources":["../schema.js"],"sourcesContent":["/**\n * @experimental WIP\n *\n * Simple & efficient schemas for your data.\n */\n\nimport * as obj from './object.js'\nimport * as arr from './array.js'\nimport * as error from './error.js'\nimport * as env from './environment.js'\nimport * as equalityTraits from './trait/equality.js'\nimport * as fun from './function.js'\nimport * as string from './string.js'\nimport * as prng from './prng.js'\nimport * as number from './number.js'\n\n/**\n * @typedef {string|number|bigint|boolean|null|undefined|symbol} Primitive\n */\n\n/**\n * @typedef {{ [k:string|number|symbol]: any }} AnyObject\n */\n\n/**\n * @template T\n * @typedef {T extends Schema<infer X> ? X : T} Unwrap\n */\n\n/**\n * @template T\n * @typedef {T extends Schema<infer X> ? X : T} TypeOf\n */\n\n/**\n * @template {readonly unknown[]} T\n * @typedef {T extends readonly [Schema<infer First>, ...infer Rest] ? [First, ...UnwrapArray<Rest>] : [] } UnwrapArray\n */\n\n/**\n * @template T\n * @typedef {T extends Schema<infer S> ? Schema<S> : never} CastToSchema\n */\n\n/**\n * @template {unknown[]} Arr\n * @typedef {Arr extends [...unknown[], infer L] ? L : never} TupleLast\n */\n\n/**\n * @template {unknown[]} Arr\n * @typedef {Arr extends [...infer Fs, unknown] ? Fs : never} TuplePop\n */\n\n/**\n * @template {readonly unknown[]} T\n * @typedef {T extends []\n * ? {}\n * : T extends [infer First]\n * ? First\n * : T extends [infer First, ...infer Rest]\n * ? First & Intersect<Rest>\n * : never\n * } Intersect\n */\n\nconst schemaSymbol = Symbol('0schema')\n\nexport class ValidationError {\n constructor () {\n /**\n * Reverse errors\n * @type {Array<{ path: string?, expected: string, has: string, message: string? }>}\n */\n this._rerrs = []\n }\n\n /**\n * @param {string?} path\n * @param {string} expected\n * @param {string} has\n * @param {string?} message\n */\n extend (path, expected, has, message = null) {\n this._rerrs.push({ path, expected, has, message })\n }\n\n toString () {\n const s = []\n for (let i = this._rerrs.length - 1; i > 0; i--) {\n const r = this._rerrs[i]\n /* c8 ignore next */\n s.push(string.repeat(' ', (this._rerrs.length - i) * 2) + `${r.path != null ? `[${r.path}] ` : ''}${r.has} doesn't match ${r.expected}. ${r.message}`)\n }\n return s.join('\\n')\n }\n}\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nconst shapeExtends = (a, b) => {\n if (a === b) return true\n if (a == null || b == null || a.constructor !== b.constructor) return false\n if (a[equalityTraits.EqualityTraitSymbol]) return equalityTraits.equals(a, b) // last resort: check equality (do this before array and obj check which don't implement the equality trait)\n if (arr.isArray(a)) {\n return arr.every(a, aitem =>\n arr.some(b, bitem => shapeExtends(aitem, bitem))\n )\n } else if (obj.isObject(a)) {\n return obj.every(a, (aitem, akey) =>\n shapeExtends(aitem, b[akey])\n )\n }\n /* c8 ignore next */\n return false\n}\n\n/**\n * @template T\n * @implements {equalityTraits.EqualityTrait}\n */\nexport class Schema {\n // this.shape must not be defined on Schema. Otherwise typecheck on metatypes (e.g. $$object) won't work as expected anymore\n /**\n * If true, the more things are added to the shape the more objects this schema will accept (e.g.\n * union). By default, the more objects are added, the the fewer objects this schema will accept.\n * @protected\n */\n static _dilutes = false\n\n /**\n * @param {Schema<any>} other\n */\n extends (other) {\n let [a, b] = [/** @type {any} */(this).shape, /** @type {any} */ (other).shape]\n if (/** @type {typeof Schema<any>} */ (this.constructor)._dilutes) [b, a] = [a, b]\n return shapeExtends(a, b)\n }\n\n /**\n * Overwrite this when necessary. By default, we only check the `shape` property which every shape\n * should have.\n * @param {Schema<any>} other\n */\n equals (other) {\n // @ts-ignore\n return this.constructor === other.constructor && fun.equalityDeep(this.shape, other.shape)\n }\n\n [schemaSymbol] () { return true }\n\n /**\n * @param {object} other\n */\n [equalityTraits.EqualityTraitSymbol] (other) {\n return this.equals(/** @type {any} */ (other))\n }\n\n /**\n * Use `schema.validate(obj)` with a typed parameter that is already of typed to be an instance of\n * Schema. Validate will check the structure of the parameter and return true iff the instance\n * really is an instance of Schema.\n *\n * @param {T} o\n * @return {boolean}\n */\n validate (o) {\n return this.check(o)\n }\n\n /* c8 ignore start */\n /**\n * Similar to validate, but this method accepts untyped parameters.\n *\n * @param {any} _o\n * @param {ValidationError} [_err]\n * @return {_o is T}\n */\n check (_o, _err) {\n error.methodUnimplemented()\n }\n /* c8 ignore stop */\n\n /**\n * @type {Schema<T?>}\n */\n get nullable () {\n // @ts-ignore\n return $union(this, $null)\n }\n\n /**\n * @type {$Optional<Schema<T>>}\n */\n get optional () {\n return new $Optional(/** @type {Schema<T>} */ (this))\n }\n\n /**\n * Cast a variable to a specific type. Returns the casted value, or throws an exception otherwise.\n * Use this if you know that the type is of a specific type and you just want to convince the type\n * system.\n *\n * **Do not rely on these error messages!**\n * Performs an assertion check only if not in a production environment.\n *\n * @template OO\n * @param {OO} o\n * @return {Extract<OO, T> extends never ? T : (OO extends Array<never> ? T : Extract<OO,T>)}\n */\n cast (o) {\n assert(o, this)\n return /** @type {any} */ (o)\n }\n\n /**\n * EXPECTO PATRONUM!! 🪄\n * This function protects against type errors. Though it may not work in the real world.\n *\n * \"After all this time?\"\n * \"Always.\" - Snape, talking about type safety\n *\n * Ensures that a variable is a a specific type. Returns the value, or throws an exception if the assertion check failed.\n * Use this if you know that the type is of a specific type and you just want to convince the type\n * system.\n *\n * Can be useful when defining lambdas: `s.lambda(s.$number, s.$void).expect((n) => n + 1)`\n *\n * **Do not rely on these error messages!**\n * Performs an assertion check if not in a production environment.\n *\n * @param {T} o\n * @return {o extends T ? T : never}\n */\n expect (o) {\n assert(o, this)\n return o\n }\n}\n\n/**\n * @template {(new (...args:any[]) => any) | ((...args:any[]) => any)} Constr\n * @typedef {Constr extends ((...args:any[]) => infer T) ? T : (Constr extends (new (...args:any[]) => any) ? InstanceType<Constr> : never)} Instance\n */\n\n/**\n * @template {(new (...args:any[]) => any) | ((...args:any[]) => any)} C\n * @extends {Schema<Instance<C>>}\n */\nexport class $ConstructedBy extends Schema {\n /**\n * @param {C} c\n * @param {((o:Instance<C>)=>boolean)|null} check\n */\n constructor (c, check) {\n super()\n this.shape = c\n this._c = check\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is C extends ((...args:any[]) => infer T) ? T : (C extends (new (...args:any[]) => any) ? InstanceType<C> : never)} o\n */\n check (o, err = undefined) {\n const c = o?.constructor === this.shape && (this._c == null || this._c(o))\n /* c8 ignore next */\n !c && err?.extend(null, this.shape.name, o?.constructor.name, o?.constructor !== this.shape ? 'Constructor match failed' : 'Check failed')\n return c\n }\n}\n\n/**\n * @template {(new (...args:any[]) => any) | ((...args:any[]) => any)} C\n * @param {C} c\n * @param {((o:Instance<C>) => boolean)|null} check\n * @return {CastToSchema<$ConstructedBy<C>>}\n */\nexport const $constructedBy = (c, check = null) => new $ConstructedBy(c, check)\nexport const $$constructedBy = $constructedBy($ConstructedBy)\n\n/**\n * Check custom properties on any object. You may want to overwrite the generated Schema<any>.\n *\n * @extends {Schema<any>}\n */\nexport class $Custom extends Schema {\n /**\n * @param {(o:any) => boolean} check\n */\n constructor (check) {\n super()\n /**\n * @type {(o:any) => boolean}\n */\n this.shape = check\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is any}\n */\n check (o, err) {\n const c = this.shape(o)\n /* c8 ignore next */\n !c && err?.extend(null, 'custom prop', o?.constructor.name, 'failed to check custom prop')\n return c\n }\n}\n\n/**\n * @param {(o:any) => boolean} check\n * @return {Schema<any>}\n */\nexport const $custom = (check) => new $Custom(check)\nexport const $$custom = $constructedBy($Custom)\n\n/**\n * @template {Primitive} T\n * @extends {Schema<T>}\n */\nexport class $Literal extends Schema {\n /**\n * @param {Array<T>} literals\n */\n constructor (literals) {\n super()\n this.shape = literals\n }\n\n /**\n *\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is T}\n */\n check (o, err) {\n const c = this.shape.some(a => a === o)\n /* c8 ignore next */\n !c && err?.extend(null, this.shape.join(' | '), o.toString())\n return c\n }\n}\n\n/**\n * @template {Primitive[]} T\n * @param {T} literals\n * @return {CastToSchema<$Literal<T[number]>>}\n */\nexport const $literal = (...literals) => new $Literal(literals)\nexport const $$literal = $constructedBy($Literal)\n\n/**\n * @template {Array<string|Schema<string|number>>} Ts\n * @typedef {Ts extends [] ? `` : (Ts extends [infer T] ? (Unwrap<T> extends (string|number) ? Unwrap<T> : never) : (Ts extends [infer T1, ...infer Rest] ? `${Unwrap<T1> extends (string|number) ? Unwrap<T1> : never}${Rest extends Array<string|Schema<string|number>> ? CastStringTemplateArgsToTemplate<Rest> : never}` : never))} CastStringTemplateArgsToTemplate\n */\n\n/**\n * @param {string} str\n * @return {string}\n */\nconst _regexEscape = /** @type {any} */ (RegExp).escape || /** @type {(str:string) => string} */ (str =>\n str.replace(/[().|&,$^[\\]]/g, s => '\\\\' + s)\n)\n\n/**\n * @param {string|Schema<any>} s\n * @return {string[]}\n */\nconst _schemaStringTemplateToRegex = s => {\n if ($string.check(s)) {\n return [_regexEscape(s)]\n }\n if ($$literal.check(s)) {\n return /** @type {Array<string|number>} */ (s.shape).map(v => v + '')\n }\n if ($$number.check(s)) {\n return ['[+-]?\\\\d+.?\\\\d*']\n }\n if ($$string.check(s)) {\n return ['.*']\n }\n if ($$union.check(s)) {\n return s.shape.map(_schemaStringTemplateToRegex).flat(1)\n }\n /* c8 ignore next 2 */\n // unexpected schema structure (only supports unions and string in literal types)\n error.unexpectedCase()\n}\n\n/**\n * @template {Array<string|Schema<string|number>>} T\n * @extends {Schema<CastStringTemplateArgsToTemplate<T>>}\n */\nexport class $StringTemplate extends Schema {\n /**\n * @param {T} shape\n */\n constructor (shape) {\n super()\n this.shape = shape\n this._r = new RegExp('^' + shape.map(_schemaStringTemplateToRegex).map(opts => `(${opts.join('|')})`).join('') + '$')\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is CastStringTemplateArgsToTemplate<T>}\n */\n check (o, err) {\n const c = this._r.exec(o) != null\n /* c8 ignore next */\n !c && err?.extend(null, this._r.toString(), o.toString(), 'String doesn\\'t match string template.')\n return c\n }\n}\n\n/**\n * @template {Array<string|Schema<string|number>>} T\n * @param {T} literals\n * @return {CastToSchema<$StringTemplate<T>>}\n */\nexport const $stringTemplate = (...literals) => new $StringTemplate(literals)\nexport const $$stringTemplate = $constructedBy($StringTemplate)\n\nconst isOptionalSymbol = Symbol('optional')\n/**\n * @template {Schema<any>} S\n * @extends Schema<Unwrap<S>|undefined>\n */\nclass $Optional extends Schema {\n /**\n * @param {S} shape\n */\n constructor (shape) {\n super()\n this.shape = shape\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is (Unwrap<S>|undefined)}\n */\n check (o, err) {\n const c = o === undefined || this.shape.check(o)\n /* c8 ignore next */\n !c && err?.extend(null, 'undefined (optional)', '()')\n return c\n }\n\n get [isOptionalSymbol] () { return true }\n}\nexport const $$optional = $constructedBy($Optional)\n\n/**\n * @extends Schema<never>\n */\nclass $Never extends Schema {\n /**\n * @param {any} _o\n * @param {ValidationError} [err]\n * @return {_o is never}\n */\n check (_o, err) {\n /* c8 ignore next */\n err?.extend(null, 'never', typeof _o)\n return false\n }\n}\n\n/**\n * @type {Schema<never>}\n */\nexport const $never = new $Never()\nexport const $$never = $constructedBy($Never)\n\n/**\n * @template {{ [key: string|symbol|number]: Schema<any> }} S\n * @typedef {{ [Key in keyof S as S[Key] extends $Optional<Schema<any>> ? Key : never]?: S[Key] extends $Optional<Schema<infer Type>> ? Type : never } & { [Key in keyof S as S[Key] extends $Optional<Schema<any>> ? never : Key]: S[Key] extends Schema<infer Type> ? Type : never }} $ObjectToType\n */\n\n/**\n * @template {{[key:string|symbol|number]: Schema<any>}} S\n * @extends {Schema<$ObjectToType<S>>}\n */\nexport class $Object extends Schema {\n /**\n * @param {S} shape\n * @param {boolean} partial\n */\n constructor (shape, partial = false) {\n super()\n /**\n * @type {S}\n */\n this.shape = shape\n this._isPartial = partial\n }\n\n static _dilutes = true\n\n /**\n * @type {Schema<Partial<$ObjectToType<S>>>}\n */\n get partial () {\n return new $Object(this.shape, true)\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is $ObjectToType<S>}\n */\n check (o, err) {\n if (o == null) {\n /* c8 ignore next */\n err?.extend(null, 'object', 'null')\n return false\n }\n return obj.every(this.shape, (vv, vk) => {\n const c = (this._isPartial && !obj.hasProperty(o, vk)) || vv.check(o[vk], err)\n !c && err?.extend(vk.toString(), vv.toString(), typeof o[vk], 'Object property does not match')\n return c\n })\n }\n}\n\n/**\n * @template S\n * @typedef {Schema<{ [Key in keyof S as S[Key] extends $Optional<Schema<any>> ? Key : never]?: S[Key] extends $Optional<Schema<infer Type>> ? Type : never } & { [Key in keyof S as S[Key] extends $Optional<Schema<any>> ? never : Key]: S[Key] extends Schema<infer Type> ? Type : never }>} _ObjectDefToSchema\n */\n\n// I used an explicit type annotation instead of $ObjectToType, so that the user doesn't see the\n// weird type definitions when inspecting type definions.\n/**\n * @template {{ [key:string|symbol|number]: Schema<any> }} S\n * @param {S} def\n * @return {_ObjectDefToSchema<S> extends Schema<infer S> ? Schema<{ [K in keyof S]: S[K] }> : never}\n */\nexport const $object = def => /** @type {any} */ (new $Object(def))\nexport const $$object = $constructedBy($Object)\n/**\n * @type {Schema<{[key:string]: any}>}\n */\nexport const $objectAny = $custom(o => o != null && (o.constructor === Object || o.constructor == null))\n\n/**\n * @template {Schema<string|number|symbol>} Keys\n * @template {Schema<any>} Values\n * @extends {Schema<{ [key in Unwrap<Keys>]: Unwrap<Values> }>}\n */\nexport class $Record extends Schema {\n /**\n * @param {Keys} keys\n * @param {Values} values\n */\n constructor (keys, values) {\n super()\n this.shape = {\n keys, values\n }\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is { [key in Unwrap<Keys>]: Unwrap<Values> }}\n */\n check (o, err) {\n return o != null && obj.every(o, (vv, vk) => {\n const ck = this.shape.keys.check(vk, err)\n /* c8 ignore next */\n !ck && err?.extend(vk + '', 'Record', typeof o, ck ? 'Key doesn\\'t match schema' : 'Value doesn\\'t match value')\n return ck && this.shape.values.check(vv, err)\n })\n }\n}\n\n/**\n * @template {Schema<string|number|symbol>} Keys\n * @template {Schema<any>} Values\n * @param {Keys} keys\n * @param {Values} values\n * @return {CastToSchema<$Record<Keys,Values>>}\n */\nexport const $record = (keys, values) => new $Record(keys, values)\nexport const $$record = $constructedBy($Record)\n\n/**\n * @template {Schema<any>[]} S\n * @extends {Schema<{ [Key in keyof S]: S[Key] extends Schema<infer Type> ? Type : never }>}\n */\nexport class $Tuple extends Schema {\n /**\n * @param {S} shape\n */\n constructor (shape) {\n super()\n this.shape = shape\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is { [K in keyof S]: S[K] extends Schema<infer Type> ? Type : never }}\n */\n check (o, err) {\n return o != null && obj.every(this.shape, (vv, vk) => {\n const c = /** @type {Schema<any>} */ (vv).check(o[vk], err)\n /* c8 ignore next */\n !c && err?.extend(vk.toString(), 'Tuple', typeof vv)\n return c\n })\n }\n}\n\n/**\n * @template {Array<Schema<any>>} T\n * @param {T} def\n * @return {CastToSchema<$Tuple<T>>}\n */\nexport const $tuple = (...def) => new $Tuple(def)\nexport const $$tuple = $constructedBy($Tuple)\n\n/**\n * @template {Schema<any>} S\n * @extends {Schema<Array<S extends Schema<infer T> ? T : never>>}\n */\nexport class $Array extends Schema {\n /**\n * @param {Array<S>} v\n */\n constructor (v) {\n super()\n /**\n * @type {Schema<S extends Schema<infer T> ? T : never>}\n */\n this.shape = v.length === 1 ? v[0] : new $Union(v)\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is Array<S extends Schema<infer T> ? T : never>} o\n */\n check (o, err) {\n const c = arr.isArray(o) && arr.every(o, oi => this.shape.check(oi))\n /* c8 ignore next */\n !c && err?.extend(null, 'Array', '')\n return c\n }\n}\n\n/**\n * @template {Array<Schema<any>>} T\n * @param {T} def\n * @return {Schema<Array<T extends Array<Schema<infer S>> ? S : never>>}\n */\nexport const $array = (...def) => new $Array(def)\nexport const $$array = $constructedBy($Array)\n/**\n * @type {Schema<Array<any>>}\n */\nexport const $arrayAny = $custom(o => arr.isArray(o))\n\n/**\n * @template T\n * @extends {Schema<T>}\n */\nexport class $InstanceOf extends Schema {\n /**\n * @param {new (...args:any) => T} constructor\n * @param {((o:T) => boolean)|null} check\n */\n constructor (constructor, check) {\n super()\n this.shape = constructor\n this._c = check\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is T}\n */\n check (o, err) {\n const c = o instanceof this.shape && (this._c == null || this._c(o))\n /* c8 ignore next */\n !c && err?.extend(null, this.shape.name, o?.constructor.name)\n return c\n }\n}\n\n/**\n * @template T\n * @param {new (...args:any) => T} c\n * @param {((o:T) => boolean)|null} check\n * @return {Schema<T>}\n */\nexport const $instanceOf = (c, check = null) => new $InstanceOf(c, check)\nexport const $$instanceOf = $constructedBy($InstanceOf)\n\nexport const $$schema = $instanceOf(Schema)\n\n/**\n * @template {Schema<any>[]} Args\n * @typedef {(...args:UnwrapArray<TuplePop<Args>>)=>Unwrap<TupleLast<Args>>} _LArgsToLambdaDef\n */\n\n/**\n * @template {Array<Schema<any>>} Args\n * @extends {Schema<_LArgsToLambdaDef<Args>>}\n */\nexport class $Lambda extends Schema {\n /**\n * @param {Args} args\n */\n constructor (args) {\n super()\n this.len = args.length - 1\n this.args = $tuple(...args.slice(-1))\n this.res = args[this.len]\n }\n\n /**\n * @param {any} f\n * @param {ValidationError} err\n * @return {f is _LArgsToLambdaDef<Args>}\n */\n check (f, err) {\n const c = f.constructor === Function && f.length <= this.len\n /* c8 ignore next */\n !c && err?.extend(null, 'function', typeof f)\n return c\n }\n}\n\n/**\n * @template {Schema<any>[]} Args\n * @param {Args} args\n * @return {Schema<(...args:UnwrapArray<TuplePop<Args>>)=>Unwrap<TupleLast<Args>>>}\n */\nexport const $lambda = (...args) => new $Lambda(args.length > 0 ? args : [$void])\nexport const $$lambda = $constructedBy($Lambda)\n\n/**\n * @type {Schema<Function>}\n */\nexport const $function = $custom(o => typeof o === 'function')\n\n/**\n * @template {Array<Schema<any>>} T\n * @extends {Schema<Intersect<UnwrapArray<T>>>}\n */\nexport class $Intersection extends Schema {\n /**\n * @param {T} v\n */\n constructor (v) {\n super()\n /**\n * @type {T}\n */\n this.shape = v\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is Intersect<UnwrapArray<T>>}\n */\n check (o, err) {\n // @ts-ignore\n const c = arr.every(this.shape, check => check.check(o, err))\n /* c8 ignore next */\n !c && err?.extend(null, 'Intersectinon', typeof o)\n return c\n }\n}\n\n/**\n * @template {Schema<any>[]} T\n * @param {T} def\n * @return {CastToSchema<$Intersection<T>>}\n */\nexport const $intersect = (...def) => new $Intersection(def)\nexport const $$intersect = $constructedBy($Intersection, o => o.shape.length > 0) // Intersection with length=0 is considered \"any\"\n\n/**\n * @template S\n * @extends {Schema<S>}\n */\nexport class $Union extends Schema {\n static _dilutes = true\n\n /**\n * @param {Array<Schema<S>>} v\n */\n constructor (v) {\n super()\n this.shape = v\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is S}\n */\n check (o, err) {\n const c = arr.some(this.shape, (vv) => vv.check(o, err))\n err?.extend(null, 'Union', typeof o)\n return c\n }\n}\n\n/**\n * @template {Array<any>} T\n * @param {T} schemas\n * @return {CastToSchema<$Union<Unwrap<ReadSchema<T>>>>}\n */\nexport const $union = (...schemas) => schemas.findIndex($s => $$union.check($s)) >= 0\n ? $union(...schemas.map($s => $($s)).map($s => $$union.check($s) ? $s.shape : [$s]).flat(1))\n : (schemas.length === 1\n ? schemas[0]\n : new $Union(schemas))\nexport const $$union = /** @type {Schema<$Union<any>>} */ ($constructedBy($Union))\n\nconst _t = () => true\n/**\n * @type {Schema<any>}\n */\nexport const $any = $custom(_t)\nexport const $$any = /** @type {Schema<Schema<any>>} */ ($constructedBy($Custom, o => o.shape === _t))\n\n/**\n * @type {Schema<bigint>}\n */\nexport const $bigint = $custom(o => typeof o === 'bigint')\nexport const $$bigint = /** @type {Schema<Schema<BigInt>>} */ ($custom(o => o === $bigint))\n\n/**\n * @type {Schema<symbol>}\n */\nexport const $symbol = $custom(o => typeof o === 'symbol')\nexport const $$symbol = /** @type {Schema<Schema<Symbol>>} */ ($custom(o => o === $symbol))\n\n/**\n * @type {Schema<number>}\n */\nexport const $number = $custom(o => typeof o === 'number')\nexport const $$number = /** @type {Schema<Schema<number>>} */ ($custom(o => o === $number))\n\n/**\n * @type {Schema<string>}\n */\nexport const $string = $custom(o => typeof o === 'string')\nexport const $$string = /** @type {Schema<Schema<string>>} */ ($custom(o => o === $string))\n\n/**\n * @type {Schema<boolean>}\n */\nexport const $boolean = $custom(o => typeof o === 'boolean')\nexport const $$boolean = /** @type {Schema<Schema<Boolean>>} */ ($custom(o => o === $boolean))\n\n/**\n * @type {Schema<undefined>}\n */\nexport const $undefined = $literal(undefined)\nexport const $$undefined = /** @type {Schema<Schema<undefined>>} */ ($constructedBy($Literal, o => o.shape.length === 1 && o.shape[0] === undefined))\n\n/**\n * @type {Schema<void>}\n */\nexport const $void = $literal(undefined)\nexport const $$void = /** @type {Schema<Schema<void>>} */ ($$undefined)\n\nexport const $null = $literal(null)\nexport const $$null = /** @type {Schema<Schema<null>>} */ ($constructedBy($Literal, o => o.shape.length === 1 && o.shape[0] === null))\n\nexport const $uint8Array = $constructedBy(Uint8Array)\nexport const $$uint8Array = /** @type {Schema<Schema<Uint8Array>>} */ ($constructedBy($ConstructedBy, o => o.shape === Uint8Array))\n\n/**\n * @type {Schema<Primitive>}\n */\nexport const $primitive = $union($number, $string, $null, $undefined, $bigint, $boolean, $symbol)\n\n/**\n * @typedef {JSON[]} JSONArray\n */\n/**\n * @typedef {Primitive|JSONArray|{ [key:string]:JSON }} JSON\n */\n/**\n * @type {Schema<null|number|string|boolean|JSON[]|{[key:string]:JSON}>}\n */\nexport const $json = (() => {\n const $jsonArr = /** @type {$Array<$any>} */ ($array($any))\n const $jsonRecord = /** @type {$Record<$string,$any>} */ ($record($string, $any))\n const $json = $union($number, $string, $null, $boolean, $jsonArr, $jsonRecord)\n $jsonArr.shape = $json\n $jsonRecord.shape.values = $json\n return $json\n})()\n\n/**\n * @template {any} IN\n * @typedef {IN extends Schema<any> ? IN\n * : (IN extends string|number|boolean|null ? Schema<IN>\n * : (IN extends new (...args:any[])=>any ? Schema<InstanceType<IN>>\n * : (IN extends any[] ? Schema<{ [K in keyof IN]: Unwrap<ReadSchema<IN[K]>> }[number]>\n * : (IN extends object ? (_ObjectDefToSchema<{[K in keyof IN]:ReadSchema<IN[K]>}> extends Schema<infer S> ? Schema<{ [K in keyof S]: S[K] }> : never)\n * : never)\n * )\n * )\n * )\n * } ReadSchemaOld\n */\n\n/**\n * @template {any} IN\n * @typedef {[Extract<IN,Schema<any>>,Extract<IN,string|number|boolean|null>,Extract<IN,new (...args:any[])=>any>,Extract<IN,any[]>,Extract<Exclude<IN,Schema<any>|string|number|boolean|null|(new (...args:any[])=>any)|any[]>,object>] extends [infer Schemas, infer Primitives, infer Constructors, infer Arrs, infer Obj]\n * ? Schema<\n * (Schemas extends Schema<infer S> ? S : never)\n * | Primitives\n * | (Constructors extends new (...args:any[])=>any ? InstanceType<Constructors> : never)\n * | (Arrs extends any[] ? { [K in keyof Arrs]: Unwrap<ReadSchema<Arrs[K]>> }[number] : never)\n * | (Obj extends object ? Unwrap<(_ObjectDefToSchema<{[K in keyof Obj]:ReadSchema<Obj[K]>}> extends Schema<infer S> ? Schema<{ [K in keyof S]: S[K] }> : never)> : never)>\n * : never\n * } ReadSchema\n */\n\n/**\n * @typedef {ReadSchema<{x:42}|{y:99}|Schema<string>|[1,2,{}]>} Q\n */\n\n/**\n * @template IN\n * @param {IN} o\n * @return {ReadSchema<IN>}\n */\nexport const $ = o => {\n if ($$schema.check(o)) {\n return /** @type {any} */ (o)\n } else if ($objectAny.check(o)) {\n /**\n * @type {any}\n */\n const o2 = {}\n for (const k in o) {\n o2[k] = $(o[k])\n }\n return /** @type {any} */ ($object(o2))\n } else if ($arrayAny.check(o)) {\n return /** @type {any} */ ($union(...o.map($)))\n } else if ($primitive.check(o)) {\n return /** @type {any} */ ($literal(o))\n } else if ($function.check(o)) {\n return /** @type {any} */ ($constructedBy(/** @type {any} */ (o)))\n }\n /* c8 ignore next */\n error.unexpectedCase()\n}\n\n/* c8 ignore start */\n/**\n * Assert that a variable is of this specific type.\n * The assertion check is only performed in non-production environments.\n *\n * @type {<T>(o:any,schema:Schema<T>) => asserts o is T}\n */\nexport const assert = env.production\n ? () => {}\n : (o, schema) => {\n const err = new ValidationError()\n if (!schema.check(o, err)) {\n throw error.create(`Expected value to be of type ${schema.constructor.name}.\\n${err.toString()}`)\n }\n }\n/* c8 ignore end */\n\n/**\n * @template In\n * @template Out\n * @typedef {{ if: Schema<In>, h: (o:In,state?:any)=>Out }} Pattern\n */\n\n/**\n * @template {Pattern<any,any>} P\n * @template In\n * @typedef {ReturnType<Extract<P,Pattern<In extends number ? number : (In extends string ? string : In),any>>['h']>} PatternMatchResult\n */\n\n/**\n * @todo move this to separate library\n * @template {any} [State=undefined]\n * @template {Pattern<any,any>} [Patterns=never]\n */\nexport class PatternMatcher {\n /**\n * @param {Schema<State>} [$state]\n */\n constructor ($state) {\n /**\n * @type {Array<Patterns>}\n */\n this.patterns = []\n this.$state = $state\n }\n\n /**\n * @template P\n * @template R\n * @param {P} pattern\n * @param {(o:NoInfer<Unwrap<ReadSchema<P>>>,s:State)=>R} handler\n * @return {PatternMatcher<State,Patterns|Pattern<Unwrap<ReadSchema<P>>,R>>}\n */\n if (pattern, handler) {\n // @ts-ignore\n this.patterns.push({ if: $(pattern), h: handler })\n // @ts-ignore\n return this\n }\n\n /**\n * @template R\n * @param {(o:any,s:State)=>R} h\n */\n else (h) {\n return this.if($any, h)\n }\n\n /**\n * @return {State extends undefined\n * ? <In extends Unwrap<Patterns['if']>>(o:In,state?:undefined)=>PatternMatchResult<Patterns,In>\n * : <In extends Unwrap<Patterns['if']>>(o:In,state:State)=>PatternMatchResult<Patterns,In>}\n */\n done () {\n // @ts-ignore\n return /** @type {any} */ (o, s) => {\n for (let i = 0; i < this.patterns.length; i++) {\n const p = this.patterns[i]\n if (p.if.check(o)) {\n // @ts-ignore\n return p.h(o, s)\n }\n }\n throw error.create('Unhandled pattern')\n }\n }\n}\n\n/**\n * @template [State=undefined]\n * @param {State} [state]\n * @return {PatternMatcher<State extends undefined ? undefined : Unwrap<ReadSchema<State>>>}\n */\nexport const match = state => new PatternMatcher(/** @type {any} */ (state))\n\n/**\n * Helper function to generate a (non-exhaustive) sample set from a gives schema.\n *\n * @type {<T>(o:T,gen:prng.PRNG)=>T}\n */\nconst _random = /** @type {any} */ (match(/** @type {Schema<prng.PRNG>} */ ($any))\n .if($$number, (_o, gen) => prng.int53(gen, number.MIN_SAFE_INTEGER, number.MAX_SAFE_INTEGER))\n .if($$string, (_o, gen) => prng.word(gen))\n .if($$boolean, (_o, gen) => prng.bool(gen))\n .if($$bigint, (_o, gen) => BigInt(prng.int53(gen, number.MIN_SAFE_INTEGER, number.MAX_SAFE_INTEGER)))\n .if($$union, (o, gen) => random(gen, prng.oneOf(gen, o.shape)))\n .if($$object, (o, gen) => {\n /**\n * @type {any}\n */\n const res = {}\n for (const k in o.shape) {\n let prop = o.shape[k]\n if ($$optional.check(prop)) {\n if (prng.bool(gen)) { continue }\n prop = prop.shape\n }\n res[k] = _random(prop, gen)\n }\n return res\n })\n .if($$array, (o, gen) => {\n const arr = []\n const n = prng.int32(gen, 0, 42)\n for (let i = 0; i < n; i++) {\n arr.push(random(gen, o.shape))\n }\n return arr\n })\n .if($$literal, (o, gen) => {\n return prng.oneOf(gen, o.shape)\n })\n .if($$null, (o, gen) => {\n return null\n })\n .if($$lambda, (o, gen) => {\n const res = random(gen, o.res)\n return () => res\n })\n .if($$any, (o, gen) => random(gen, prng.oneOf(gen, [\n $number, $string, $null, $undefined, $bigint, $boolean,\n $array($number),\n $record($union('a', 'b', 'c'), $number)\n ])))\n .if($$record, (o, gen) => {\n /**\n * @type {any}\n */\n const res = {}\n const keysN = prng.int53(gen, 0, 3)\n for (let i = 0; i < keysN; i++) {\n const key = random(gen, o.shape.keys)\n const val = random(gen, o.shape.values)\n res[key] = val\n }\n return res\n })\n .done())\n\n/**\n * @template S\n * @param {prng.PRNG} gen\n * @param {S} schema\n * @return {Unwrap<ReadSchema<S>>}\n */\nexport const random = (gen, schema) => /** @type {any} */ (_random($(schema), gen))\n"],"names":["string.repeat","equalityTraits.EqualityTraitSymbol","equalityTraits.equals","arr.isArray","arr.every","arr.some","obj.isObject","obj.every","fun.equalityDeep","error.methodUnimplemented","error.unexpectedCase","obj.hasProperty","env.production","error.create","prng.int53","number.MIN_SAFE_INTEGER","number.MAX_SAFE_INTEGER","prng.word","prng.bool","prng.oneOf","prng.int32"],"mappings":"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"}
|