@sinclair/typebox 0.32.0-dev-16 → 0.32.0-dev-18

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 (575) hide show
  1. package/build/import/compiler/compiler.d.mts +9 -0
  2. package/build/import/compiler/compiler.mjs +60 -6
  3. package/build/import/errors/errors.d.mts +3 -0
  4. package/build/import/errors/errors.mjs +28 -3
  5. package/build/import/errors/function.d.mts +3 -0
  6. package/build/import/errors/function.mjs +4 -0
  7. package/build/import/index.mjs +9 -0
  8. package/build/import/system/policy.d.mts +10 -0
  9. package/build/import/system/policy.mjs +13 -0
  10. package/build/import/system/system.d.mts +3 -0
  11. package/build/import/system/system.mjs +9 -0
  12. package/build/import/type/any/any.d.mts +1 -0
  13. package/build/import/type/any/any.mjs +1 -0
  14. package/build/import/type/array/array.d.mts +7 -0
  15. package/build/import/type/array/array.mjs +1 -0
  16. package/build/import/type/async-iterator/async-iterator.d.mts +1 -0
  17. package/build/import/type/async-iterator/async-iterator.mjs +1 -0
  18. package/build/import/type/awaited/awaited.d.mts +7 -6
  19. package/build/import/type/awaited/awaited.mjs +23 -13
  20. package/build/import/type/bigint/bigint.d.mts +1 -0
  21. package/build/import/type/bigint/bigint.mjs +1 -0
  22. package/build/import/type/boolean/boolean.d.mts +1 -0
  23. package/build/import/type/boolean/boolean.mjs +1 -0
  24. package/build/import/type/clone/type.d.mts +2 -0
  25. package/build/import/type/clone/type.mjs +2 -0
  26. package/build/import/type/clone/value.d.mts +1 -0
  27. package/build/import/type/clone/value.mjs +2 -0
  28. package/build/import/type/composite/composite.d.mts +1 -0
  29. package/build/import/type/composite/composite.mjs +1 -0
  30. package/build/import/type/const/const.d.mts +2 -1
  31. package/build/import/type/const/const.mjs +5 -1
  32. package/build/import/type/constructor/constructor.d.mts +1 -0
  33. package/build/import/type/constructor/constructor.mjs +1 -0
  34. package/build/import/type/constructor-parameters/constructor-parameters.d.mts +1 -0
  35. package/build/import/type/constructor-parameters/constructor-parameters.mjs +1 -0
  36. package/build/import/type/date/date.d.mts +6 -0
  37. package/build/import/type/date/date.mjs +1 -0
  38. package/build/import/type/deref/deref.d.mts +1 -0
  39. package/build/import/type/deref/deref.mjs +18 -0
  40. package/build/import/type/enum/enum.d.mts +1 -0
  41. package/build/import/type/enum/enum.mjs +1 -0
  42. package/build/import/type/exclude/exclude-from-mapped-result.mjs +3 -0
  43. package/build/import/type/exclude/exclude.d.mts +2 -0
  44. package/build/import/type/exclude/exclude.mjs +3 -0
  45. package/build/import/type/extends/extends-check.mjs +173 -1
  46. package/build/import/type/extends/extends-from-mapped-key.mjs +4 -0
  47. package/build/import/type/extends/extends-from-mapped-result.mjs +3 -0
  48. package/build/import/type/extends/extends-undefined.d.mts +1 -0
  49. package/build/import/type/extends/extends-undefined.mjs +3 -0
  50. package/build/import/type/extends/extends.d.mts +3 -0
  51. package/build/import/type/extends/extends.mjs +7 -0
  52. package/build/import/type/extract/extract-from-mapped-result.mjs +3 -0
  53. package/build/import/type/extract/extract.d.mts +2 -0
  54. package/build/import/type/extract/extract.mjs +3 -0
  55. package/build/import/type/function/function.d.mts +1 -0
  56. package/build/import/type/function/function.mjs +1 -0
  57. package/build/import/type/guard/type.d.mts +46 -0
  58. package/build/import/type/guard/type.mjs +84 -1
  59. package/build/import/type/guard/value.d.mts +14 -0
  60. package/build/import/type/guard/value.mjs +14 -0
  61. package/build/import/type/helpers/helpers.d.mts +1 -0
  62. package/build/import/type/helpers/helpers.mjs +1 -0
  63. package/build/import/type/indexed/index.d.mts +0 -1
  64. package/build/import/type/indexed/index.mjs +0 -1
  65. package/build/import/type/indexed/indexed-from-mapped-key.d.mts +2 -2
  66. package/build/import/type/indexed/indexed-from-mapped-key.mjs +10 -3
  67. package/build/import/type/indexed/indexed-property-keys.d.mts +1 -0
  68. package/build/import/type/indexed/indexed-property-keys.mjs +9 -0
  69. package/build/import/type/indexed/indexed.d.mts +40 -4
  70. package/build/import/type/indexed/indexed.mjs +84 -5
  71. package/build/import/type/instance-type/instance-type.d.mts +1 -0
  72. package/build/import/type/instance-type/instance-type.mjs +1 -0
  73. package/build/import/type/integer/integer.d.mts +1 -0
  74. package/build/import/type/integer/integer.mjs +1 -0
  75. package/build/import/type/intersect/intersect-create.mjs +8 -0
  76. package/build/import/type/intersect/intersect-evaluated.d.mts +1 -0
  77. package/build/import/type/intersect/intersect-evaluated.mjs +9 -0
  78. package/build/import/type/intersect/intersect.d.mts +1 -0
  79. package/build/import/type/intersect/intersect.mjs +5 -0
  80. package/build/import/type/intrinsic/capitalize.d.mts +1 -0
  81. package/build/import/type/intrinsic/capitalize.mjs +1 -0
  82. package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +4 -0
  83. package/build/import/type/intrinsic/intrinsic.d.mts +2 -0
  84. package/build/import/type/intrinsic/intrinsic.mjs +16 -1
  85. package/build/import/type/intrinsic/lowercase.d.mts +1 -0
  86. package/build/import/type/intrinsic/lowercase.mjs +1 -0
  87. package/build/import/type/intrinsic/uncapitalize.d.mts +1 -0
  88. package/build/import/type/intrinsic/uncapitalize.mjs +1 -0
  89. package/build/import/type/intrinsic/uppercase.d.mts +1 -0
  90. package/build/import/type/intrinsic/uppercase.mjs +1 -0
  91. package/build/import/type/iterator/iterator.d.mts +1 -0
  92. package/build/import/type/iterator/iterator.mjs +1 -0
  93. package/build/import/type/keyof/keyof-from-mapped-result.mjs +3 -0
  94. package/build/import/type/keyof/keyof-property-keys.d.mts +2 -0
  95. package/build/import/type/keyof/keyof-property-keys.mjs +20 -0
  96. package/build/import/type/keyof/keyof.d.mts +2 -0
  97. package/build/import/type/keyof/keyof.mjs +6 -0
  98. package/build/import/type/literal/literal.d.mts +1 -0
  99. package/build/import/type/literal/literal.mjs +1 -0
  100. package/build/import/type/mapped/mapped-key.mjs +1 -0
  101. package/build/import/type/mapped/mapped-result.mjs +1 -0
  102. package/build/import/type/mapped/mapped.d.mts +2 -0
  103. package/build/import/type/mapped/mapped.mjs +19 -1
  104. package/build/import/type/modifiers/modifiers.mjs +10 -0
  105. package/build/import/type/never/never.d.mts +1 -0
  106. package/build/import/type/never/never.mjs +1 -0
  107. package/build/import/type/not/not.d.mts +1 -0
  108. package/build/import/type/not/not.mjs +1 -0
  109. package/build/import/type/null/null.d.mts +1 -0
  110. package/build/import/type/null/null.mjs +1 -0
  111. package/build/import/type/number/number.d.mts +1 -0
  112. package/build/import/type/number/number.mjs +1 -0
  113. package/build/import/type/object/object.d.mts +5 -0
  114. package/build/import/type/object/object.mjs +6 -0
  115. package/build/import/type/omit/omit-from-mapped-key.mjs +4 -0
  116. package/build/import/type/omit/omit.d.mts +3 -0
  117. package/build/import/type/omit/omit.mjs +12 -0
  118. package/build/import/type/operators/operators.d.mts +8 -0
  119. package/build/import/type/operators/operators.mjs +15 -0
  120. package/build/import/type/optional/optional.d.mts +1 -0
  121. package/build/import/type/optional/optional.mjs +1 -0
  122. package/build/import/type/parameters/parameters.d.mts +1 -0
  123. package/build/import/type/parameters/parameters.mjs +1 -0
  124. package/build/import/type/partial/partial-from-mapped-result.mjs +3 -0
  125. package/build/import/type/partial/partial.d.mts +2 -0
  126. package/build/import/type/partial/partial.mjs +9 -0
  127. package/build/import/type/pick/pick-from-mapped-key.mjs +4 -0
  128. package/build/import/type/pick/pick.d.mts +3 -0
  129. package/build/import/type/pick/pick.mjs +7 -0
  130. package/build/import/type/promise/promise.d.mts +1 -0
  131. package/build/import/type/promise/promise.mjs +1 -0
  132. package/build/import/type/readonly/readonly.d.mts +1 -0
  133. package/build/import/type/readonly/readonly.mjs +1 -0
  134. package/build/import/type/readonly-optional/readonly-optional.d.mts +1 -0
  135. package/build/import/type/readonly-optional/readonly-optional.mjs +1 -0
  136. package/build/import/type/record/record.d.mts +11 -9
  137. package/build/import/type/record/record.mjs +53 -28
  138. package/build/import/type/recursive/recursive.d.mts +1 -0
  139. package/build/import/type/recursive/recursive.mjs +3 -0
  140. package/build/import/type/ref/ref.d.mts +2 -0
  141. package/build/import/type/ref/ref.mjs +1 -0
  142. package/build/import/type/regexp/regexp.d.mts +2 -0
  143. package/build/import/type/regexp/regexp.mjs +1 -0
  144. package/build/import/type/registry/format.d.mts +6 -0
  145. package/build/import/type/registry/format.mjs +7 -0
  146. package/build/import/type/registry/type.d.mts +6 -0
  147. package/build/import/type/registry/type.mjs +7 -0
  148. package/build/import/type/required/required-from-mapped-result.mjs +3 -0
  149. package/build/import/type/required/required.d.mts +2 -0
  150. package/build/import/type/required/required.mjs +9 -0
  151. package/build/import/type/rest/rest.d.mts +1 -0
  152. package/build/import/type/rest/rest.mjs +5 -0
  153. package/build/import/type/return-type/return-type.d.mts +1 -0
  154. package/build/import/type/return-type/return-type.mjs +1 -0
  155. package/build/import/type/schema/schema.d.mts +7 -0
  156. package/build/import/type/static/static.d.mts +3 -0
  157. package/build/import/type/strict/strict.d.mts +1 -0
  158. package/build/import/type/strict/strict.mjs +1 -0
  159. package/build/import/type/string/string.d.mts +7 -0
  160. package/build/import/type/string/string.mjs +1 -0
  161. package/build/import/type/symbol/symbol.d.mts +1 -0
  162. package/build/import/type/symbol/symbol.mjs +1 -0
  163. package/build/import/type/symbols/symbols.d.mts +5 -0
  164. package/build/import/type/symbols/symbols.mjs +5 -0
  165. package/build/import/type/template-literal/finite.mjs +10 -0
  166. package/build/import/type/template-literal/generate.mjs +10 -0
  167. package/build/import/type/template-literal/parser.d.mts +2 -0
  168. package/build/import/type/template-literal/parser.mjs +17 -0
  169. package/build/import/type/template-literal/pattern.mjs +11 -0
  170. package/build/import/type/template-literal/syntax.d.mts +1 -0
  171. package/build/import/type/template-literal/syntax.mjs +8 -0
  172. package/build/import/type/template-literal/template-literal.d.mts +2 -0
  173. package/build/import/type/template-literal/template-literal.mjs +2 -0
  174. package/build/import/type/template-literal/union.d.mts +1 -0
  175. package/build/import/type/template-literal/union.mjs +4 -0
  176. package/build/import/type/transform/transform.d.mts +1 -0
  177. package/build/import/type/transform/transform.mjs +9 -0
  178. package/build/import/type/tuple/tuple.d.mts +1 -0
  179. package/build/import/type/tuple/tuple.mjs +3 -0
  180. package/build/import/type/type/index.d.mts +1 -0
  181. package/build/import/type/type/index.mjs +7 -0
  182. package/build/import/type/type/javascript.d.mts +19 -0
  183. package/build/import/type/type/javascript.mjs +18 -0
  184. package/build/import/type/type/json.d.mts +64 -3
  185. package/build/import/type/type/json.mjs +55 -1
  186. package/build/import/type/type/type.mjs +3 -0
  187. package/build/import/type/uint8array/uint8array.d.mts +1 -0
  188. package/build/import/type/uint8array/uint8array.mjs +1 -0
  189. package/build/import/type/undefined/undefined.d.mts +1 -0
  190. package/build/import/type/undefined/undefined.mjs +1 -0
  191. package/build/import/type/union/union-evaluated.d.mts +1 -0
  192. package/build/import/type/union/union-evaluated.mjs +10 -0
  193. package/build/import/type/union/union.d.mts +1 -0
  194. package/build/import/type/union/union.mjs +2 -0
  195. package/build/import/type/unknown/unknown.d.mts +1 -0
  196. package/build/import/type/unknown/unknown.mjs +1 -0
  197. package/build/import/type/unsafe/unsafe.d.mts +1 -0
  198. package/build/import/type/unsafe/unsafe.mjs +1 -0
  199. package/build/import/type/void/void.d.mts +1 -0
  200. package/build/import/type/void/void.mjs +1 -0
  201. package/build/import/value/cast/cast.d.mts +2 -0
  202. package/build/import/value/cast/cast.mjs +28 -0
  203. package/build/import/value/check/check.d.mts +2 -0
  204. package/build/import/value/check/check.mjs +19 -1
  205. package/build/import/value/clean/clean.d.mts +2 -0
  206. package/build/import/value/clean/clean.mjs +12 -1
  207. package/build/import/value/clone/clone.d.mts +1 -0
  208. package/build/import/value/clone/clone.mjs +7 -0
  209. package/build/import/value/convert/convert.d.mts +2 -0
  210. package/build/import/value/convert/convert.mjs +30 -1
  211. package/build/import/value/create/create.d.mts +2 -0
  212. package/build/import/value/create/create.mjs +17 -0
  213. package/build/import/value/default/default.d.mts +2 -0
  214. package/build/import/value/default/default.mjs +19 -0
  215. package/build/import/value/delta/delta.mjs +15 -0
  216. package/build/import/value/deref/deref.d.mts +1 -0
  217. package/build/import/value/deref/deref.mjs +1 -0
  218. package/build/import/value/equal/equal.d.mts +1 -0
  219. package/build/import/value/equal/equal.mjs +7 -0
  220. package/build/import/value/guard/guard.d.mts +20 -0
  221. package/build/import/value/guard/guard.mjs +30 -0
  222. package/build/import/value/hash/hash.d.mts +1 -0
  223. package/build/import/value/hash/hash.mjs +19 -0
  224. package/build/import/value/index.mjs +12 -0
  225. package/build/import/value/mutate/mutate.d.mts +1 -0
  226. package/build/import/value/mutate/mutate.mjs +11 -0
  227. package/build/import/value/pointer/pointer.d.mts +5 -0
  228. package/build/import/value/pointer/pointer.mjs +18 -0
  229. package/build/import/value/transform/decode.d.mts +5 -0
  230. package/build/import/value/transform/decode.mjs +23 -0
  231. package/build/import/value/transform/encode.d.mts +6 -0
  232. package/build/import/value/transform/encode.mjs +25 -0
  233. package/build/import/value/transform/has.d.mts +1 -0
  234. package/build/import/value/transform/has.mjs +16 -0
  235. package/build/import/value/value/value.d.mts +24 -0
  236. package/build/import/value/value/value.mjs +15 -0
  237. package/build/require/compiler/compiler.d.ts +9 -0
  238. package/build/require/compiler/compiler.js +61 -6
  239. package/build/require/compiler/index.js +1 -0
  240. package/build/require/errors/errors.d.ts +3 -0
  241. package/build/require/errors/errors.js +29 -3
  242. package/build/require/errors/function.d.ts +3 -0
  243. package/build/require/errors/function.js +5 -0
  244. package/build/require/errors/index.js +1 -0
  245. package/build/require/index.js +10 -0
  246. package/build/require/system/index.js +1 -0
  247. package/build/require/system/policy.d.ts +10 -0
  248. package/build/require/system/policy.js +14 -0
  249. package/build/require/system/system.d.ts +3 -0
  250. package/build/require/system/system.js +10 -0
  251. package/build/require/type/any/any.d.ts +1 -0
  252. package/build/require/type/any/any.js +2 -0
  253. package/build/require/type/any/index.js +1 -0
  254. package/build/require/type/array/array.d.ts +7 -0
  255. package/build/require/type/array/array.js +2 -0
  256. package/build/require/type/array/index.js +1 -0
  257. package/build/require/type/async-iterator/async-iterator.d.ts +1 -0
  258. package/build/require/type/async-iterator/async-iterator.js +2 -0
  259. package/build/require/type/async-iterator/index.js +1 -0
  260. package/build/require/type/awaited/awaited.d.ts +7 -6
  261. package/build/require/type/awaited/awaited.js +25 -15
  262. package/build/require/type/awaited/index.js +1 -0
  263. package/build/require/type/bigint/bigint.d.ts +1 -0
  264. package/build/require/type/bigint/bigint.js +2 -0
  265. package/build/require/type/bigint/index.js +1 -0
  266. package/build/require/type/boolean/boolean.d.ts +1 -0
  267. package/build/require/type/boolean/boolean.js +2 -0
  268. package/build/require/type/boolean/index.js +1 -0
  269. package/build/require/type/clone/index.js +1 -0
  270. package/build/require/type/clone/type.d.ts +2 -0
  271. package/build/require/type/clone/type.js +3 -0
  272. package/build/require/type/clone/value.d.ts +1 -0
  273. package/build/require/type/clone/value.js +3 -0
  274. package/build/require/type/composite/composite.d.ts +1 -0
  275. package/build/require/type/composite/composite.js +2 -0
  276. package/build/require/type/composite/index.js +1 -0
  277. package/build/require/type/const/const.d.ts +2 -1
  278. package/build/require/type/const/const.js +6 -1
  279. package/build/require/type/const/index.js +1 -0
  280. package/build/require/type/constructor/constructor.d.ts +1 -0
  281. package/build/require/type/constructor/constructor.js +2 -0
  282. package/build/require/type/constructor/index.js +1 -0
  283. package/build/require/type/constructor-parameters/constructor-parameters.d.ts +1 -0
  284. package/build/require/type/constructor-parameters/constructor-parameters.js +2 -0
  285. package/build/require/type/constructor-parameters/index.js +1 -0
  286. package/build/require/type/date/date.d.ts +6 -0
  287. package/build/require/type/date/date.js +2 -0
  288. package/build/require/type/date/index.js +1 -0
  289. package/build/require/type/deref/deref.d.ts +1 -0
  290. package/build/require/type/deref/deref.js +19 -0
  291. package/build/require/type/deref/index.js +1 -0
  292. package/build/require/type/discard/discard.js +1 -0
  293. package/build/require/type/discard/index.js +1 -0
  294. package/build/require/type/enum/enum.d.ts +1 -0
  295. package/build/require/type/enum/enum.js +2 -0
  296. package/build/require/type/enum/index.js +1 -0
  297. package/build/require/type/exclude/exclude-from-mapped-result.js +4 -0
  298. package/build/require/type/exclude/exclude.d.ts +2 -0
  299. package/build/require/type/exclude/exclude.js +4 -0
  300. package/build/require/type/exclude/index.js +1 -0
  301. package/build/require/type/extends/extends-check.js +174 -1
  302. package/build/require/type/extends/extends-from-mapped-key.js +5 -0
  303. package/build/require/type/extends/extends-from-mapped-result.js +4 -0
  304. package/build/require/type/extends/extends-undefined.d.ts +1 -0
  305. package/build/require/type/extends/extends-undefined.js +4 -0
  306. package/build/require/type/extends/extends.d.ts +3 -0
  307. package/build/require/type/extends/extends.js +8 -0
  308. package/build/require/type/extends/index.js +1 -0
  309. package/build/require/type/extract/extract-from-mapped-result.js +4 -0
  310. package/build/require/type/extract/extract.d.ts +2 -0
  311. package/build/require/type/extract/extract.js +4 -0
  312. package/build/require/type/extract/index.js +1 -0
  313. package/build/require/type/function/function.d.ts +1 -0
  314. package/build/require/type/function/function.js +2 -0
  315. package/build/require/type/function/index.js +1 -0
  316. package/build/require/type/guard/index.js +1 -0
  317. package/build/require/type/guard/type.d.ts +46 -0
  318. package/build/require/type/guard/type.js +85 -1
  319. package/build/require/type/guard/value.d.ts +14 -0
  320. package/build/require/type/guard/value.js +15 -0
  321. package/build/require/type/helpers/helpers.d.ts +1 -0
  322. package/build/require/type/helpers/helpers.js +2 -0
  323. package/build/require/type/helpers/index.js +1 -0
  324. package/build/require/type/index.js +1 -0
  325. package/build/require/type/indexed/index.d.ts +0 -1
  326. package/build/require/type/indexed/index.js +1 -1
  327. package/build/require/type/indexed/indexed-from-mapped-key.d.ts +2 -2
  328. package/build/require/type/indexed/indexed-from-mapped-key.js +11 -3
  329. package/build/require/type/indexed/indexed-property-keys.d.ts +1 -0
  330. package/build/require/type/indexed/indexed-property-keys.js +10 -0
  331. package/build/require/type/indexed/indexed.d.ts +40 -4
  332. package/build/require/type/indexed/indexed.js +84 -4
  333. package/build/require/type/instance-type/index.js +1 -0
  334. package/build/require/type/instance-type/instance-type.d.ts +1 -0
  335. package/build/require/type/instance-type/instance-type.js +2 -0
  336. package/build/require/type/integer/index.js +1 -0
  337. package/build/require/type/integer/integer.d.ts +1 -0
  338. package/build/require/type/integer/integer.js +2 -0
  339. package/build/require/type/intersect/index.js +1 -0
  340. package/build/require/type/intersect/intersect-create.js +9 -0
  341. package/build/require/type/intersect/intersect-evaluated.d.ts +1 -0
  342. package/build/require/type/intersect/intersect-evaluated.js +10 -0
  343. package/build/require/type/intersect/intersect-type.js +1 -0
  344. package/build/require/type/intersect/intersect.d.ts +1 -0
  345. package/build/require/type/intersect/intersect.js +6 -0
  346. package/build/require/type/intrinsic/capitalize.d.ts +1 -0
  347. package/build/require/type/intrinsic/capitalize.js +2 -0
  348. package/build/require/type/intrinsic/index.js +1 -0
  349. package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +5 -0
  350. package/build/require/type/intrinsic/intrinsic.d.ts +2 -0
  351. package/build/require/type/intrinsic/intrinsic.js +17 -1
  352. package/build/require/type/intrinsic/lowercase.d.ts +1 -0
  353. package/build/require/type/intrinsic/lowercase.js +2 -0
  354. package/build/require/type/intrinsic/uncapitalize.d.ts +1 -0
  355. package/build/require/type/intrinsic/uncapitalize.js +2 -0
  356. package/build/require/type/intrinsic/uppercase.d.ts +1 -0
  357. package/build/require/type/intrinsic/uppercase.js +2 -0
  358. package/build/require/type/iterator/index.js +1 -0
  359. package/build/require/type/iterator/iterator.d.ts +1 -0
  360. package/build/require/type/iterator/iterator.js +2 -0
  361. package/build/require/type/keyof/index.js +1 -0
  362. package/build/require/type/keyof/keyof-from-mapped-result.js +4 -0
  363. package/build/require/type/keyof/keyof-property-keys.d.ts +2 -0
  364. package/build/require/type/keyof/keyof-property-keys.js +21 -0
  365. package/build/require/type/keyof/keyof.d.ts +2 -0
  366. package/build/require/type/keyof/keyof.js +7 -0
  367. package/build/require/type/literal/index.js +1 -0
  368. package/build/require/type/literal/literal.d.ts +1 -0
  369. package/build/require/type/literal/literal.js +2 -0
  370. package/build/require/type/mapped/index.js +1 -0
  371. package/build/require/type/mapped/mapped-key.js +2 -0
  372. package/build/require/type/mapped/mapped-result.js +2 -0
  373. package/build/require/type/mapped/mapped.d.ts +2 -0
  374. package/build/require/type/mapped/mapped.js +20 -1
  375. package/build/require/type/modifiers/index.js +1 -0
  376. package/build/require/type/modifiers/modifiers.js +11 -0
  377. package/build/require/type/never/index.js +1 -0
  378. package/build/require/type/never/never.d.ts +1 -0
  379. package/build/require/type/never/never.js +2 -0
  380. package/build/require/type/not/index.js +1 -0
  381. package/build/require/type/not/not.d.ts +1 -0
  382. package/build/require/type/not/not.js +2 -0
  383. package/build/require/type/null/index.js +1 -0
  384. package/build/require/type/null/null.d.ts +1 -0
  385. package/build/require/type/null/null.js +2 -0
  386. package/build/require/type/number/index.js +1 -0
  387. package/build/require/type/number/number.d.ts +1 -0
  388. package/build/require/type/number/number.js +2 -0
  389. package/build/require/type/object/index.js +1 -0
  390. package/build/require/type/object/object.d.ts +5 -0
  391. package/build/require/type/object/object.js +7 -0
  392. package/build/require/type/omit/index.js +1 -0
  393. package/build/require/type/omit/omit-from-mapped-key.js +5 -0
  394. package/build/require/type/omit/omit.d.ts +3 -0
  395. package/build/require/type/omit/omit.js +13 -0
  396. package/build/require/type/operators/index.js +1 -0
  397. package/build/require/type/operators/operators.d.ts +8 -0
  398. package/build/require/type/operators/operators.js +16 -0
  399. package/build/require/type/optional/index.js +1 -0
  400. package/build/require/type/optional/optional.d.ts +1 -0
  401. package/build/require/type/optional/optional.js +2 -0
  402. package/build/require/type/parameters/index.js +1 -0
  403. package/build/require/type/parameters/parameters.d.ts +1 -0
  404. package/build/require/type/parameters/parameters.js +2 -0
  405. package/build/require/type/partial/index.js +1 -0
  406. package/build/require/type/partial/partial-from-mapped-result.js +4 -0
  407. package/build/require/type/partial/partial.d.ts +2 -0
  408. package/build/require/type/partial/partial.js +10 -0
  409. package/build/require/type/patterns/index.js +1 -0
  410. package/build/require/type/patterns/patterns.js +1 -0
  411. package/build/require/type/pick/index.js +1 -0
  412. package/build/require/type/pick/pick-from-mapped-key.js +5 -0
  413. package/build/require/type/pick/pick.d.ts +3 -0
  414. package/build/require/type/pick/pick.js +8 -0
  415. package/build/require/type/promise/index.js +1 -0
  416. package/build/require/type/promise/promise.d.ts +1 -0
  417. package/build/require/type/promise/promise.js +2 -0
  418. package/build/require/type/readonly/index.js +1 -0
  419. package/build/require/type/readonly/readonly.d.ts +1 -0
  420. package/build/require/type/readonly/readonly.js +2 -0
  421. package/build/require/type/readonly-optional/index.js +1 -0
  422. package/build/require/type/readonly-optional/readonly-optional.d.ts +1 -0
  423. package/build/require/type/readonly-optional/readonly-optional.js +2 -0
  424. package/build/require/type/record/index.js +1 -0
  425. package/build/require/type/record/record.d.ts +11 -9
  426. package/build/require/type/record/record.js +54 -28
  427. package/build/require/type/recursive/index.js +1 -0
  428. package/build/require/type/recursive/recursive.d.ts +1 -0
  429. package/build/require/type/recursive/recursive.js +4 -0
  430. package/build/require/type/ref/index.js +1 -0
  431. package/build/require/type/ref/ref.d.ts +2 -0
  432. package/build/require/type/ref/ref.js +2 -0
  433. package/build/require/type/regexp/index.js +1 -0
  434. package/build/require/type/regexp/regexp.d.ts +2 -0
  435. package/build/require/type/regexp/regexp.js +2 -0
  436. package/build/require/type/registry/format.d.ts +6 -0
  437. package/build/require/type/registry/format.js +8 -0
  438. package/build/require/type/registry/index.js +1 -0
  439. package/build/require/type/registry/type.d.ts +6 -0
  440. package/build/require/type/registry/type.js +8 -0
  441. package/build/require/type/required/index.js +1 -0
  442. package/build/require/type/required/required-from-mapped-result.js +4 -0
  443. package/build/require/type/required/required.d.ts +2 -0
  444. package/build/require/type/required/required.js +10 -0
  445. package/build/require/type/rest/index.js +1 -0
  446. package/build/require/type/rest/rest.d.ts +1 -0
  447. package/build/require/type/rest/rest.js +6 -0
  448. package/build/require/type/return-type/index.js +1 -0
  449. package/build/require/type/return-type/return-type.d.ts +1 -0
  450. package/build/require/type/return-type/return-type.js +2 -0
  451. package/build/require/type/schema/anyschema.js +1 -0
  452. package/build/require/type/schema/index.js +1 -0
  453. package/build/require/type/schema/schema.d.ts +7 -0
  454. package/build/require/type/schema/schema.js +1 -0
  455. package/build/require/type/static/index.js +1 -0
  456. package/build/require/type/static/static.d.ts +3 -0
  457. package/build/require/type/static/static.js +1 -0
  458. package/build/require/type/strict/index.js +1 -0
  459. package/build/require/type/strict/strict.d.ts +1 -0
  460. package/build/require/type/strict/strict.js +2 -0
  461. package/build/require/type/string/index.js +1 -0
  462. package/build/require/type/string/string.d.ts +7 -0
  463. package/build/require/type/string/string.js +2 -0
  464. package/build/require/type/symbol/index.js +1 -0
  465. package/build/require/type/symbol/symbol.d.ts +1 -0
  466. package/build/require/type/symbol/symbol.js +2 -0
  467. package/build/require/type/symbols/index.js +1 -0
  468. package/build/require/type/symbols/symbols.d.ts +5 -0
  469. package/build/require/type/symbols/symbols.js +6 -0
  470. package/build/require/type/template-literal/finite.js +11 -0
  471. package/build/require/type/template-literal/generate.js +11 -0
  472. package/build/require/type/template-literal/index.js +1 -0
  473. package/build/require/type/template-literal/parser.d.ts +2 -0
  474. package/build/require/type/template-literal/parser.js +18 -0
  475. package/build/require/type/template-literal/pattern.js +12 -0
  476. package/build/require/type/template-literal/syntax.d.ts +1 -0
  477. package/build/require/type/template-literal/syntax.js +9 -0
  478. package/build/require/type/template-literal/template-literal.d.ts +2 -0
  479. package/build/require/type/template-literal/template-literal.js +3 -0
  480. package/build/require/type/template-literal/union.d.ts +1 -0
  481. package/build/require/type/template-literal/union.js +5 -0
  482. package/build/require/type/transform/index.js +1 -0
  483. package/build/require/type/transform/transform.d.ts +1 -0
  484. package/build/require/type/transform/transform.js +10 -0
  485. package/build/require/type/tuple/index.js +1 -0
  486. package/build/require/type/tuple/tuple.d.ts +1 -0
  487. package/build/require/type/tuple/tuple.js +4 -0
  488. package/build/require/type/type/index.d.ts +1 -0
  489. package/build/require/type/type/index.js +8 -0
  490. package/build/require/type/type/javascript.d.ts +19 -0
  491. package/build/require/type/type/javascript.js +19 -0
  492. package/build/require/type/type/json.d.ts +64 -3
  493. package/build/require/type/type/json.js +56 -1
  494. package/build/require/type/type/type.js +4 -0
  495. package/build/require/type/uint8array/index.js +1 -0
  496. package/build/require/type/uint8array/uint8array.d.ts +1 -0
  497. package/build/require/type/uint8array/uint8array.js +2 -0
  498. package/build/require/type/undefined/index.js +1 -0
  499. package/build/require/type/undefined/undefined.d.ts +1 -0
  500. package/build/require/type/undefined/undefined.js +2 -0
  501. package/build/require/type/union/index.js +1 -0
  502. package/build/require/type/union/union-create.js +1 -0
  503. package/build/require/type/union/union-evaluated.d.ts +1 -0
  504. package/build/require/type/union/union-evaluated.js +11 -0
  505. package/build/require/type/union/union-type.js +1 -0
  506. package/build/require/type/union/union.d.ts +1 -0
  507. package/build/require/type/union/union.js +3 -0
  508. package/build/require/type/unknown/index.js +1 -0
  509. package/build/require/type/unknown/unknown.d.ts +1 -0
  510. package/build/require/type/unknown/unknown.js +2 -0
  511. package/build/require/type/unsafe/index.js +1 -0
  512. package/build/require/type/unsafe/unsafe.d.ts +1 -0
  513. package/build/require/type/unsafe/unsafe.js +2 -0
  514. package/build/require/type/void/index.js +1 -0
  515. package/build/require/type/void/void.d.ts +1 -0
  516. package/build/require/type/void/void.js +2 -0
  517. package/build/require/value/cast/cast.d.ts +2 -0
  518. package/build/require/value/cast/cast.js +29 -0
  519. package/build/require/value/cast/index.js +1 -0
  520. package/build/require/value/check/check.d.ts +2 -0
  521. package/build/require/value/check/check.js +20 -1
  522. package/build/require/value/check/index.js +1 -0
  523. package/build/require/value/clean/clean.d.ts +2 -0
  524. package/build/require/value/clean/clean.js +13 -1
  525. package/build/require/value/clean/index.js +1 -0
  526. package/build/require/value/clone/clone.d.ts +1 -0
  527. package/build/require/value/clone/clone.js +8 -0
  528. package/build/require/value/clone/index.js +1 -0
  529. package/build/require/value/convert/convert.d.ts +2 -0
  530. package/build/require/value/convert/convert.js +31 -1
  531. package/build/require/value/convert/index.js +1 -0
  532. package/build/require/value/create/create.d.ts +2 -0
  533. package/build/require/value/create/create.js +18 -0
  534. package/build/require/value/create/index.js +1 -0
  535. package/build/require/value/default/default.d.ts +2 -0
  536. package/build/require/value/default/default.js +20 -0
  537. package/build/require/value/default/index.js +1 -0
  538. package/build/require/value/delta/delta.js +16 -0
  539. package/build/require/value/delta/index.js +1 -0
  540. package/build/require/value/deref/deref.d.ts +1 -0
  541. package/build/require/value/deref/deref.js +2 -0
  542. package/build/require/value/deref/index.js +1 -0
  543. package/build/require/value/equal/equal.d.ts +1 -0
  544. package/build/require/value/equal/equal.js +8 -0
  545. package/build/require/value/equal/index.js +1 -0
  546. package/build/require/value/guard/guard.d.ts +20 -0
  547. package/build/require/value/guard/guard.js +31 -0
  548. package/build/require/value/guard/index.js +1 -0
  549. package/build/require/value/hash/hash.d.ts +1 -0
  550. package/build/require/value/hash/hash.js +20 -0
  551. package/build/require/value/hash/index.js +1 -0
  552. package/build/require/value/index.js +13 -0
  553. package/build/require/value/mutate/index.js +1 -0
  554. package/build/require/value/mutate/mutate.d.ts +1 -0
  555. package/build/require/value/mutate/mutate.js +12 -0
  556. package/build/require/value/pointer/index.js +1 -0
  557. package/build/require/value/pointer/pointer.d.ts +5 -0
  558. package/build/require/value/pointer/pointer.js +19 -0
  559. package/build/require/value/transform/decode.d.ts +5 -0
  560. package/build/require/value/transform/decode.js +24 -0
  561. package/build/require/value/transform/encode.d.ts +6 -0
  562. package/build/require/value/transform/encode.js +26 -0
  563. package/build/require/value/transform/has.d.ts +1 -0
  564. package/build/require/value/transform/has.js +17 -0
  565. package/build/require/value/transform/index.js +1 -0
  566. package/build/require/value/value/index.js +1 -0
  567. package/build/require/value/value/value.d.ts +24 -0
  568. package/build/require/value/value/value.js +16 -0
  569. package/license +3 -1
  570. package/package.json +1 -1
  571. package/readme.md +4 -5
  572. package/build/import/type/indexed/indexed-result.d.mts +0 -33
  573. package/build/import/type/indexed/indexed-result.mjs +0 -65
  574. package/build/require/type/indexed/indexed-result.d.ts +0 -33
  575. package/build/require/type/indexed/indexed-result.js +0 -69
@@ -1,83 +1,114 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.IsValueType = exports.IsSymbol = exports.IsFunction = exports.IsString = exports.IsBigInt = exports.IsInteger = exports.IsNumber = exports.IsBoolean = exports.IsNull = exports.IsUndefined = exports.IsArray = exports.IsObject = exports.IsPlainObject = exports.HasPropertyKey = exports.IsDate = exports.IsUint8Array = exports.IsPromise = exports.IsTypedArray = exports.IsIterator = exports.IsAsyncIterator = void 0;
5
+ // --------------------------------------------------------------------------
6
+ // Iterators
7
+ // --------------------------------------------------------------------------
8
+ /** Returns true if this value is an async iterator */
4
9
  function IsAsyncIterator(value) {
5
10
  return IsObject(value) && Symbol.asyncIterator in value;
6
11
  }
7
12
  exports.IsAsyncIterator = IsAsyncIterator;
13
+ /** Returns true if this value is an iterator */
8
14
  function IsIterator(value) {
9
15
  return IsObject(value) && Symbol.iterator in value;
10
16
  }
11
17
  exports.IsIterator = IsIterator;
18
+ // --------------------------------------------------------------------------
19
+ // Nominal
20
+ // --------------------------------------------------------------------------
21
+ /** Returns true if this value is a typed array */
12
22
  function IsTypedArray(value) {
13
23
  return ArrayBuffer.isView(value);
14
24
  }
15
25
  exports.IsTypedArray = IsTypedArray;
26
+ /** Returns true if this value is a Promise */
16
27
  function IsPromise(value) {
17
28
  return value instanceof Promise;
18
29
  }
19
30
  exports.IsPromise = IsPromise;
31
+ /** Returns true if the value is a Uint8Array */
20
32
  function IsUint8Array(value) {
21
33
  return value instanceof Uint8Array;
22
34
  }
23
35
  exports.IsUint8Array = IsUint8Array;
36
+ /** Returns true if this value is a Date */
24
37
  function IsDate(value) {
25
38
  return value instanceof Date && Number.isFinite(value.getTime());
26
39
  }
27
40
  exports.IsDate = IsDate;
41
+ // --------------------------------------------------------------------------
42
+ // Standard
43
+ // --------------------------------------------------------------------------
44
+ /** Returns true if this value has this property key */
28
45
  function HasPropertyKey(value, key) {
29
46
  return key in value;
30
47
  }
31
48
  exports.HasPropertyKey = HasPropertyKey;
49
+ /** Returns true if this object is not an instance of any other type */
32
50
  function IsPlainObject(value) {
33
51
  return IsObject(value) && IsFunction(value.constructor) && value.constructor.name === 'Object';
34
52
  }
35
53
  exports.IsPlainObject = IsPlainObject;
54
+ /** Returns true of this value is an object type */
36
55
  function IsObject(value) {
37
56
  return value !== null && typeof value === 'object';
38
57
  }
39
58
  exports.IsObject = IsObject;
59
+ /** Returns true if this value is an array, but not a typed array */
40
60
  function IsArray(value) {
41
61
  return Array.isArray(value) && !ArrayBuffer.isView(value);
42
62
  }
43
63
  exports.IsArray = IsArray;
64
+ /** Returns true if this value is an undefined */
44
65
  function IsUndefined(value) {
45
66
  return value === undefined;
46
67
  }
47
68
  exports.IsUndefined = IsUndefined;
69
+ /** Returns true if this value is an null */
48
70
  function IsNull(value) {
49
71
  return value === null;
50
72
  }
51
73
  exports.IsNull = IsNull;
74
+ /** Returns true if this value is an boolean */
52
75
  function IsBoolean(value) {
53
76
  return typeof value === 'boolean';
54
77
  }
55
78
  exports.IsBoolean = IsBoolean;
79
+ /** Returns true if this value is an number */
56
80
  function IsNumber(value) {
57
81
  return typeof value === 'number';
58
82
  }
59
83
  exports.IsNumber = IsNumber;
84
+ /** Returns true if this value is an integer */
60
85
  function IsInteger(value) {
61
86
  return IsNumber(value) && Number.isInteger(value);
62
87
  }
63
88
  exports.IsInteger = IsInteger;
89
+ /** Returns true if this value is bigint */
64
90
  function IsBigInt(value) {
65
91
  return typeof value === 'bigint';
66
92
  }
67
93
  exports.IsBigInt = IsBigInt;
94
+ /** Returns true if this value is string */
68
95
  function IsString(value) {
69
96
  return typeof value === 'string';
70
97
  }
71
98
  exports.IsString = IsString;
99
+ /** Returns true if this value is a function */
72
100
  function IsFunction(value) {
73
101
  return typeof value === 'function';
74
102
  }
75
103
  exports.IsFunction = IsFunction;
104
+ /** Returns true if this value is a symbol */
76
105
  function IsSymbol(value) {
77
106
  return typeof value === 'symbol';
78
107
  }
79
108
  exports.IsSymbol = IsSymbol;
109
+ /** Returns true if this value is a value type such as number, string, boolean */
80
110
  function IsValueType(value) {
111
+ // prettier-ignore
81
112
  return (IsBigInt(value) ||
82
113
  IsBoolean(value) ||
83
114
  IsNull(value) ||
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -2,4 +2,5 @@ export declare class ValueHashError extends Error {
2
2
  readonly value: unknown;
3
3
  constructor(value: unknown);
4
4
  }
5
+ /** Creates a FNV1A-64 non cryptographic hash of the given value */
5
6
  export declare function Hash(value: unknown): bigint;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Hash = exports.ValueHashError = void 0;
4
5
  const index_1 = require("../guard/index");
6
+ // ------------------------------------------------------------------
7
+ // Errors
8
+ // ------------------------------------------------------------------
5
9
  class ValueHashError extends Error {
6
10
  constructor(value) {
7
11
  super(`Unable to hash value`);
@@ -9,6 +13,9 @@ class ValueHashError extends Error {
9
13
  }
10
14
  }
11
15
  exports.ValueHashError = ValueHashError;
16
+ // ------------------------------------------------------------------
17
+ // ByteMarker
18
+ // ------------------------------------------------------------------
12
19
  var ByteMarker;
13
20
  (function (ByteMarker) {
14
21
  ByteMarker[ByteMarker["Undefined"] = 0] = "Undefined";
@@ -23,18 +30,27 @@ var ByteMarker;
23
30
  ByteMarker[ByteMarker["Symbol"] = 9] = "Symbol";
24
31
  ByteMarker[ByteMarker["BigInt"] = 10] = "BigInt";
25
32
  })(ByteMarker || (ByteMarker = {}));
33
+ // ------------------------------------------------------------------
34
+ // State
35
+ // ------------------------------------------------------------------
26
36
  let Accumulator = BigInt('14695981039346656037');
27
37
  const [Prime, Size] = [BigInt('1099511628211'), BigInt('2') ** BigInt('64')];
28
38
  const Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i));
29
39
  const F64 = new Float64Array(1);
30
40
  const F64In = new DataView(F64.buffer);
31
41
  const F64Out = new Uint8Array(F64.buffer);
42
+ // ------------------------------------------------------------------
43
+ // NumberToBytes
44
+ // ------------------------------------------------------------------
32
45
  function* NumberToBytes(value) {
33
46
  const byteCount = value === 0 ? 1 : Math.ceil(Math.floor(Math.log2(value) + 1) / 8);
34
47
  for (let i = 0; i < byteCount; i++) {
35
48
  yield (value >> (8 * (byteCount - 1 - i))) & 0xff;
36
49
  }
37
50
  }
51
+ // ------------------------------------------------------------------
52
+ // Hashing Functions
53
+ // ------------------------------------------------------------------
38
54
  function ArrayType(value) {
39
55
  FNV1A64(ByteMarker.Array);
40
56
  for (const item of value) {
@@ -123,6 +139,10 @@ function FNV1A64(byte) {
123
139
  Accumulator = Accumulator ^ Bytes[byte];
124
140
  Accumulator = (Accumulator * Prime) % Size;
125
141
  }
142
+ // ------------------------------------------------------------------
143
+ // Hash
144
+ // ------------------------------------------------------------------
145
+ /** Creates a FNV1A-64 non cryptographic hash of the given value */
126
146
  function Hash(value) {
127
147
  Accumulator = BigInt('14695981039346656037');
128
148
  Visit(value);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.IsInteger = exports.IsFunction = exports.IsDate = exports.IsBoolean = exports.IsBigInt = exports.IsAsyncIterator = exports.IsArray = exports.HasPropertyKey = exports.TransformEncodeError = exports.TransformEncodeCheckError = exports.TransformDecodeError = exports.TransformDecodeCheckError = exports.HasTransform = exports.EncodeTransform = exports.DecodeTransform = exports.ValuePointer = exports.ValueMutateTypeMismatchError = exports.ValueMutateInvalidRootMutationError = exports.Mutate = exports.ValueHashError = exports.Hash = exports.Equal = exports.ValueDeltaUnableToDiffUnknownValue = exports.ValueDeltaObjectWithSymbolKeyError = exports.Update = exports.Insert = exports.Delete = exports.Edit = exports.Patch = exports.Diff = exports.Default = exports.ValueCreateUnknownTypeError = exports.ValueCreateTempateLiteralTypeError = exports.ValueCreateRecursiveInstantiationError = exports.ValueCreateNotTypeError = exports.ValueCreateNeverTypeError = exports.ValueCreateIntersectTypeError = exports.Create = exports.ValueConvertUnknownTypeError = exports.Convert = exports.Clone = exports.Clean = exports.Check = exports.ValueCastUnknownTypeError = exports.ValueCastRecursiveTypeError = exports.ValueCastNeverTypeError = exports.ValueCastArrayUniqueItemsTypeError = exports.Cast = exports.ValueErrorIterator = exports.ValueErrorType = void 0;
4
5
  exports.Value = exports.IsValueType = exports.IsUndefined = exports.IsUint8Array = exports.IsTypedArray = exports.IsSymbol = exports.IsString = exports.IsPromise = exports.IsPlainObject = exports.IsObject = exports.IsNumber = exports.IsNull = exports.IsIterator = void 0;
6
+ // ------------------------------------------------------------------
7
+ // Value Errors (re-export)
8
+ // ------------------------------------------------------------------
5
9
  var index_1 = require("../errors/index");
6
10
  Object.defineProperty(exports, "ValueErrorType", { enumerable: true, get: function () { return index_1.ValueErrorType; } });
7
11
  Object.defineProperty(exports, "ValueErrorIterator", { enumerable: true, get: function () { return index_1.ValueErrorIterator; } });
12
+ // ------------------------------------------------------------------
13
+ // Value Operators
14
+ // ------------------------------------------------------------------
8
15
  var index_2 = require("./cast/index");
9
16
  Object.defineProperty(exports, "Cast", { enumerable: true, get: function () { return index_2.Cast; } });
10
17
  Object.defineProperty(exports, "ValueCastArrayUniqueItemsTypeError", { enumerable: true, get: function () { return index_2.ValueCastArrayUniqueItemsTypeError; } });
@@ -58,6 +65,9 @@ Object.defineProperty(exports, "TransformDecodeCheckError", { enumerable: true,
58
65
  Object.defineProperty(exports, "TransformDecodeError", { enumerable: true, get: function () { return index_14.TransformDecodeError; } });
59
66
  Object.defineProperty(exports, "TransformEncodeCheckError", { enumerable: true, get: function () { return index_14.TransformEncodeCheckError; } });
60
67
  Object.defineProperty(exports, "TransformEncodeError", { enumerable: true, get: function () { return index_14.TransformEncodeError; } });
68
+ // ------------------------------------------------------------------
69
+ // Value Guards
70
+ // ------------------------------------------------------------------
61
71
  var index_15 = require("./guard/index");
62
72
  Object.defineProperty(exports, "HasPropertyKey", { enumerable: true, get: function () { return index_15.HasPropertyKey; } });
63
73
  Object.defineProperty(exports, "IsArray", { enumerable: true, get: function () { return index_15.IsArray; } });
@@ -79,5 +89,8 @@ Object.defineProperty(exports, "IsTypedArray", { enumerable: true, get: function
79
89
  Object.defineProperty(exports, "IsUint8Array", { enumerable: true, get: function () { return index_15.IsUint8Array; } });
80
90
  Object.defineProperty(exports, "IsUndefined", { enumerable: true, get: function () { return index_15.IsUndefined; } });
81
91
  Object.defineProperty(exports, "IsValueType", { enumerable: true, get: function () { return index_15.IsValueType; } });
92
+ // ------------------------------------------------------------------
93
+ // Value Namespace
94
+ // ------------------------------------------------------------------
82
95
  var index_16 = require("./value/index");
83
96
  Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return index_16.Value; } });
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -7,4 +7,5 @@ export declare class ValueMutateInvalidRootMutationError extends Error {
7
7
  export type Mutable = {
8
8
  [key: string]: unknown;
9
9
  } | unknown[];
10
+ /** `[Mutable]` Performs a deep mutable value assignment while retaining internal references */
10
11
  export declare function Mutate(current: Mutable, next: Mutable): void;
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Mutate = exports.ValueMutateInvalidRootMutationError = exports.ValueMutateTypeMismatchError = void 0;
4
5
  const index_1 = require("../guard/index");
5
6
  const index_2 = require("../pointer/index");
6
7
  const index_3 = require("../clone/index");
8
+ // ------------------------------------------------------------------
9
+ // Errors
10
+ // ------------------------------------------------------------------
7
11
  class ValueMutateTypeMismatchError extends Error {
8
12
  constructor() {
9
13
  super('Cannot assign due type mismatch of assignable values');
@@ -74,13 +78,21 @@ function Visit(root, path, current, next) {
74
78
  if ((0, index_1.IsValueType)(next))
75
79
  return ValueType(root, path, current, next);
76
80
  }
81
+ // ------------------------------------------------------------------
82
+ // IsNonMutableValue
83
+ // ------------------------------------------------------------------
77
84
  function IsNonMutableValue(value) {
78
85
  return (0, index_1.IsTypedArray)(value) || (0, index_1.IsValueType)(value);
79
86
  }
80
87
  function IsMismatchedValue(current, next) {
88
+ // prettier-ignore
81
89
  return (((0, index_1.IsPlainObject)(current) && (0, index_1.IsArray)(next)) ||
82
90
  ((0, index_1.IsArray)(current) && (0, index_1.IsPlainObject)(next)));
83
91
  }
92
+ // ------------------------------------------------------------------
93
+ // Mutate
94
+ // ------------------------------------------------------------------
95
+ /** `[Mutable]` Performs a deep mutable value assignment while retaining internal references */
84
96
  function Mutate(current, next) {
85
97
  if (IsNonMutableValue(current) || IsNonMutableValue(next))
86
98
  throw new ValueMutateInvalidRootMutationError();
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.ValuePointer = void 0;
4
5
  exports.ValuePointer = require("./pointer");
@@ -9,8 +9,13 @@ export declare class ValuePointerRootDeleteError extends Error {
9
9
  readonly path: string;
10
10
  constructor(value: unknown, path: string);
11
11
  }
12
+ /** Formats the given pointer into navigable key components */
12
13
  export declare function Format(pointer: string): IterableIterator<string>;
14
+ /** Sets the value at the given pointer. If the value at the pointer does not exist it is created */
13
15
  export declare function Set(value: any, pointer: string, update: unknown): void;
16
+ /** Deletes a value at the given pointer */
14
17
  export declare function Delete(value: any, pointer: string): void;
18
+ /** Returns true if a value exists at the given pointer */
15
19
  export declare function Has(value: any, pointer: string): boolean;
20
+ /** Gets the value at the given pointer */
16
21
  export declare function Get(value: any, pointer: string): any;
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Get = exports.Has = exports.Delete = exports.Set = exports.Format = exports.ValuePointerRootDeleteError = exports.ValuePointerRootSetError = void 0;
5
+ // ------------------------------------------------------------------
6
+ // Errors
7
+ // ------------------------------------------------------------------
4
8
  class ValuePointerRootSetError extends Error {
5
9
  constructor(value, path, update) {
6
10
  super('Cannot set root value');
@@ -18,9 +22,16 @@ class ValuePointerRootDeleteError extends Error {
18
22
  }
19
23
  }
20
24
  exports.ValuePointerRootDeleteError = ValuePointerRootDeleteError;
25
+ // ------------------------------------------------------------------
26
+ // ValuePointer
27
+ // ------------------------------------------------------------------
28
+ /** Provides functionality to update values through RFC6901 string pointers */
29
+ // prettier-ignore
21
30
  function Escape(component) {
22
31
  return component.indexOf('~') === -1 ? component : component.replace(/~1/g, '/').replace(/~0/g, '~');
23
32
  }
33
+ /** Formats the given pointer into navigable key components */
34
+ // prettier-ignore
24
35
  function* Format(pointer) {
25
36
  if (pointer === '')
26
37
  return;
@@ -44,6 +55,8 @@ function* Format(pointer) {
44
55
  yield Escape(pointer.slice(start));
45
56
  }
46
57
  exports.Format = Format;
58
+ /** Sets the value at the given pointer. If the value at the pointer does not exist it is created */
59
+ // prettier-ignore
47
60
  function Set(value, pointer, update) {
48
61
  if (pointer === '')
49
62
  throw new ValuePointerRootSetError(value, pointer, update);
@@ -58,6 +71,8 @@ function Set(value, pointer, update) {
58
71
  owner[key] = update;
59
72
  }
60
73
  exports.Set = Set;
74
+ /** Deletes a value at the given pointer */
75
+ // prettier-ignore
61
76
  function Delete(value, pointer) {
62
77
  if (pointer === '')
63
78
  throw new ValuePointerRootDeleteError(value, pointer);
@@ -78,6 +93,8 @@ function Delete(value, pointer) {
78
93
  }
79
94
  }
80
95
  exports.Delete = Delete;
96
+ /** Returns true if a value exists at the given pointer */
97
+ // prettier-ignore
81
98
  function Has(value, pointer) {
82
99
  if (pointer === '')
83
100
  return true;
@@ -92,6 +109,8 @@ function Has(value, pointer) {
92
109
  return Object.getOwnPropertyNames(owner).includes(key);
93
110
  }
94
111
  exports.Has = Has;
112
+ /** Gets the value at the given pointer */
113
+ // prettier-ignore
95
114
  function Get(value, pointer) {
96
115
  if (pointer === '')
97
116
  return value;
@@ -11,4 +11,9 @@ export declare class TransformDecodeError extends Error {
11
11
  readonly value: unknown;
12
12
  constructor(schema: TSchema, value: unknown, error: any);
13
13
  }
14
+ /**
15
+ * `[Internal]` Decodes the value and returns the result. This function requires that
16
+ * the caller `Check` the value before use. Passing unchecked values may result in
17
+ * undefined behavior. Refer to the `Value.Decode()` for implementation details.
18
+ */
14
19
  export declare function TransformDecode(schema: TSchema, references: TSchema[], value: unknown): unknown;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.TransformDecode = exports.TransformDecodeError = exports.TransformDecodeCheckError = void 0;
4
5
  const type_1 = require("../../type/guard/type");
@@ -8,6 +9,10 @@ const index_3 = require("../../type/keyof/index");
8
9
  const index_4 = require("../../type/indexed/index");
9
10
  const index_5 = require("../deref/index");
10
11
  const index_6 = require("../check/index");
12
+ // ------------------------------------------------------------------
13
+ // Errors
14
+ // ------------------------------------------------------------------
15
+ // thrown externally
11
16
  class TransformDecodeCheckError extends Error {
12
17
  constructor(schema, value, error) {
13
18
  super(`Unable to decode due to invalid value`);
@@ -25,6 +30,10 @@ class TransformDecodeError extends Error {
25
30
  }
26
31
  }
27
32
  exports.TransformDecodeError = TransformDecodeError;
33
+ // ------------------------------------------------------------------
34
+ // Decode
35
+ // ------------------------------------------------------------------
36
+ // prettier-ignore
28
37
  function Default(schema, value) {
29
38
  try {
30
39
  return (0, type_1.TTransform)(schema) ? schema[index_1.TransformKind].Decode(value) : value;
@@ -33,11 +42,13 @@ function Default(schema, value) {
33
42
  throw new TransformDecodeError(schema, value, error);
34
43
  }
35
44
  }
45
+ // prettier-ignore
36
46
  function TArray(schema, references, value) {
37
47
  return ((0, index_2.IsArray)(value))
38
48
  ? Default(schema, value.map((value) => Visit(schema.items, references, value)))
39
49
  : Default(schema, value);
40
50
  }
51
+ // prettier-ignore
41
52
  function TIntersect(schema, references, value) {
42
53
  if (!(0, index_2.IsPlainObject)(value) || (0, index_2.IsValueType)(value))
43
54
  return Default(schema, value);
@@ -62,6 +73,7 @@ function TIntersect(schema, references, value) {
62
73
  function TNot(schema, references, value) {
63
74
  return Default(schema, Visit(schema.not, references, value));
64
75
  }
76
+ // prettier-ignore
65
77
  function TObject(schema, references, value) {
66
78
  if (!(0, index_2.IsPlainObject)(value))
67
79
  return Default(schema, value);
@@ -83,6 +95,7 @@ function TObject(schema, references, value) {
83
95
  }, knownProperties);
84
96
  return Default(schema, unknownProperties);
85
97
  }
98
+ // prettier-ignore
86
99
  function TRecord(schema, references, value) {
87
100
  if (!(0, index_2.IsPlainObject)(value))
88
101
  return Default(schema, value);
@@ -105,28 +118,34 @@ function TRecord(schema, references, value) {
105
118
  }, knownProperties);
106
119
  return Default(schema, unknownProperties);
107
120
  }
121
+ // prettier-ignore
108
122
  function TRef(schema, references, value) {
109
123
  const target = (0, index_5.Deref)(schema, references);
110
124
  return Default(schema, Visit(target, references, value));
111
125
  }
126
+ // prettier-ignore
112
127
  function TThis(schema, references, value) {
113
128
  const target = (0, index_5.Deref)(schema, references);
114
129
  return Default(schema, Visit(target, references, value));
115
130
  }
131
+ // prettier-ignore
116
132
  function TTuple(schema, references, value) {
117
133
  return ((0, index_2.IsArray)(value) && (0, index_2.IsArray)(schema.items))
118
134
  ? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
119
135
  : Default(schema, value);
120
136
  }
137
+ // prettier-ignore
121
138
  function TUnion(schema, references, value) {
122
139
  for (const subschema of schema.anyOf) {
123
140
  if (!(0, index_6.Check)(subschema, references, value))
124
141
  continue;
142
+ // note: ensure interior is decoded first
125
143
  const decoded = Visit(subschema, references, value);
126
144
  return Default(schema, decoded);
127
145
  }
128
146
  return Default(schema, value);
129
147
  }
148
+ // prettier-ignore
130
149
  function Visit(schema, references, value) {
131
150
  const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
132
151
  const schema_ = schema;
@@ -155,6 +174,11 @@ function Visit(schema, references, value) {
155
174
  return Default(schema_, value);
156
175
  }
157
176
  }
177
+ /**
178
+ * `[Internal]` Decodes the value and returns the result. This function requires that
179
+ * the caller `Check` the value before use. Passing unchecked values may result in
180
+ * undefined behavior. Refer to the `Value.Decode()` for implementation details.
181
+ */
158
182
  function TransformDecode(schema, references, value) {
159
183
  return Visit(schema, references, value);
160
184
  }
@@ -11,4 +11,10 @@ export declare class TransformEncodeError extends Error {
11
11
  readonly value: unknown;
12
12
  constructor(schema: TSchema, value: unknown, error: any);
13
13
  }
14
+ /**
15
+ * `[Internal]` Encodes the value and returns the result. This function expects the
16
+ * caller to pass a statically checked value. This function does not check the encoded
17
+ * result, meaning the result should be passed to `Check` before use. Refer to the
18
+ * `Value.Encode()` function for implementation details.
19
+ */
14
20
  export declare function TransformEncode(schema: TSchema, references: TSchema[], value: unknown): unknown;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.TransformEncode = exports.TransformEncodeError = exports.TransformEncodeCheckError = void 0;
4
5
  const type_1 = require("../../type/guard/type");
@@ -8,6 +9,9 @@ const index_3 = require("../../type/keyof/index");
8
9
  const index_4 = require("../../type/indexed/index");
9
10
  const index_5 = require("../deref/index");
10
11
  const index_6 = require("../check/index");
12
+ // ------------------------------------------------------------------
13
+ // Errors
14
+ // ------------------------------------------------------------------
11
15
  class TransformEncodeCheckError extends Error {
12
16
  constructor(schema, value, error) {
13
17
  super(`Unable to encode due to invalid value`);
@@ -25,6 +29,10 @@ class TransformEncodeError extends Error {
25
29
  }
26
30
  }
27
31
  exports.TransformEncodeError = TransformEncodeError;
32
+ // ------------------------------------------------------------------
33
+ // Encode
34
+ // ------------------------------------------------------------------
35
+ // prettier-ignore
28
36
  function Default(schema, value) {
29
37
  try {
30
38
  return (0, type_1.TTransform)(schema) ? schema[index_1.TransformKind].Encode(value) : value;
@@ -33,12 +41,14 @@ function Default(schema, value) {
33
41
  throw new TransformEncodeError(schema, value, error);
34
42
  }
35
43
  }
44
+ // prettier-ignore
36
45
  function TArray(schema, references, value) {
37
46
  const defaulted = Default(schema, value);
38
47
  return (0, index_2.IsArray)(defaulted)
39
48
  ? defaulted.map((value) => Visit(schema.items, references, value))
40
49
  : defaulted;
41
50
  }
51
+ // prettier-ignore
42
52
  function TIntersect(schema, references, value) {
43
53
  const defaulted = Default(schema, value);
44
54
  if (!(0, index_2.IsPlainObject)(value) || (0, index_2.IsValueType)(value))
@@ -60,9 +70,11 @@ function TIntersect(schema, references, value) {
60
70
  : value;
61
71
  }, knownProperties);
62
72
  }
73
+ // prettier-ignore
63
74
  function TNot(schema, references, value) {
64
75
  return Default(schema.not, Default(schema, value));
65
76
  }
77
+ // prettier-ignore
66
78
  function TObject(schema, references, value) {
67
79
  const defaulted = Default(schema, value);
68
80
  if (!(0, index_2.IsPlainObject)(value))
@@ -84,6 +96,7 @@ function TObject(schema, references, value) {
84
96
  : value;
85
97
  }, knownProperties);
86
98
  }
99
+ // prettier-ignore
87
100
  function TRecord(schema, references, value) {
88
101
  const defaulted = Default(schema, value);
89
102
  if (!(0, index_2.IsPlainObject)(value))
@@ -106,27 +119,33 @@ function TRecord(schema, references, value) {
106
119
  : value;
107
120
  }, knownProperties);
108
121
  }
122
+ // prettier-ignore
109
123
  function TRef(schema, references, value) {
110
124
  const target = (0, index_5.Deref)(schema, references);
111
125
  const resolved = Visit(target, references, value);
112
126
  return Default(schema, resolved);
113
127
  }
128
+ // prettier-ignore
114
129
  function TThis(schema, references, value) {
115
130
  const target = (0, index_5.Deref)(schema, references);
116
131
  const resolved = Visit(target, references, value);
117
132
  return Default(schema, resolved);
118
133
  }
134
+ // prettier-ignore
119
135
  function TTuple(schema, references, value) {
120
136
  const value1 = Default(schema, value);
121
137
  return (0, index_2.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
122
138
  }
139
+ // prettier-ignore
123
140
  function TUnion(schema, references, value) {
141
+ // test value against union variants
124
142
  for (const subschema of schema.anyOf) {
125
143
  if (!(0, index_6.Check)(subschema, references, value))
126
144
  continue;
127
145
  const value1 = Visit(subschema, references, value);
128
146
  return Default(schema, value1);
129
147
  }
148
+ // test transformed value against union variants
130
149
  for (const subschema of schema.anyOf) {
131
150
  const value1 = Visit(subschema, references, value);
132
151
  if (!(0, index_6.Check)(schema, references, value1))
@@ -135,6 +154,7 @@ function TUnion(schema, references, value) {
135
154
  }
136
155
  return Default(schema, value);
137
156
  }
157
+ // prettier-ignore
138
158
  function Visit(schema, references, value) {
139
159
  const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
140
160
  const schema_ = schema;
@@ -161,6 +181,12 @@ function Visit(schema, references, value) {
161
181
  return Default(schema_, value);
162
182
  }
163
183
  }
184
+ /**
185
+ * `[Internal]` Encodes the value and returns the result. This function expects the
186
+ * caller to pass a statically checked value. This function does not check the encoded
187
+ * result, meaning the result should be passed to `Check` before use. Refer to the
188
+ * `Value.Encode()` function for implementation details.
189
+ */
164
190
  function TransformEncode(schema, references, value) {
165
191
  return Visit(schema, references, value);
166
192
  }
@@ -1,2 +1,3 @@
1
1
  import type { TSchema } from '../../type/schema/index';
2
+ /** Returns true if this schema contains a transform codec */
2
3
  export declare function HasTransform(schema: TSchema, references: TSchema[]): boolean;