@depup/typebox 1.1.6-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1351) hide show
  1. package/README.md +25 -0
  2. package/build/compile/code.d.mts +12 -0
  3. package/build/compile/code.mjs +65 -0
  4. package/build/compile/compile.d.mts +6 -0
  5. package/build/compile/compile.mjs +11 -0
  6. package/build/compile/index.d.mts +8 -0
  7. package/build/compile/index.mjs +14 -0
  8. package/build/compile/validator.d.mts +42 -0
  9. package/build/compile/validator.mjs +116 -0
  10. package/build/error/errors.d.mts +214 -0
  11. package/build/error/errors.mjs +17 -0
  12. package/build/error/index.d.mts +1 -0
  13. package/build/error/index.mjs +1 -0
  14. package/build/format/_registry.d.mts +15 -0
  15. package/build/format/_registry.mjs +96 -0
  16. package/build/format/date-time.d.mts +6 -0
  17. package/build/format/date-time.mjs +11 -0
  18. package/build/format/date.d.mts +6 -0
  19. package/build/format/date.mjs +19 -0
  20. package/build/format/duration.d.mts +5 -0
  21. package/build/format/duration.mjs +8 -0
  22. package/build/format/email.d.mts +2 -0
  23. package/build/format/email.mjs +5 -0
  24. package/build/format/format.d.mts +22 -0
  25. package/build/format/format.mjs +22 -0
  26. package/build/format/hostname.d.mts +2 -0
  27. package/build/format/hostname.mjs +5 -0
  28. package/build/format/idn-email.d.mts +2 -0
  29. package/build/format/idn-email.mjs +5 -0
  30. package/build/format/idn-hostname.d.mts +5 -0
  31. package/build/format/idn-hostname.mjs +128 -0
  32. package/build/format/index.d.mts +4 -0
  33. package/build/format/index.mjs +4 -0
  34. package/build/format/ipv4.d.mts +6 -0
  35. package/build/format/ipv4.mjs +9 -0
  36. package/build/format/ipv6.d.mts +6 -0
  37. package/build/format/ipv6.mjs +9 -0
  38. package/build/format/iri-reference.d.mts +5 -0
  39. package/build/format/iri-reference.mjs +59 -0
  40. package/build/format/iri.d.mts +5 -0
  41. package/build/format/iri.mjs +13 -0
  42. package/build/format/json-pointer-uri-fragment.d.mts +6 -0
  43. package/build/format/json-pointer-uri-fragment.mjs +9 -0
  44. package/build/format/json-pointer.d.mts +6 -0
  45. package/build/format/json-pointer.mjs +9 -0
  46. package/build/format/regex.d.mts +6 -0
  47. package/build/format/regex.mjs +17 -0
  48. package/build/format/relative-json-pointer.d.mts +6 -0
  49. package/build/format/relative-json-pointer.mjs +9 -0
  50. package/build/format/time.d.mts +5 -0
  51. package/build/format/time.mjs +27 -0
  52. package/build/format/uri-reference.d.mts +6 -0
  53. package/build/format/uri-reference.mjs +9 -0
  54. package/build/format/uri-template.d.mts +6 -0
  55. package/build/format/uri-template.mjs +10 -0
  56. package/build/format/uri.d.mts +6 -0
  57. package/build/format/uri.mjs +9 -0
  58. package/build/format/url.d.mts +6 -0
  59. package/build/format/url.mjs +9 -0
  60. package/build/format/uuid.d.mts +6 -0
  61. package/build/format/uuid.mjs +9 -0
  62. package/build/guard/emit.d.mts +58 -0
  63. package/build/guard/emit.mjs +194 -0
  64. package/build/guard/globals.d.mts +35 -0
  65. package/build/guard/globals.mjs +90 -0
  66. package/build/guard/guard.d.mts +63 -0
  67. package/build/guard/guard.mjs +208 -0
  68. package/build/guard/index.d.mts +6 -0
  69. package/build/guard/index.mjs +6 -0
  70. package/build/guard/native.d.mts +20 -0
  71. package/build/guard/native.mjs +60 -0
  72. package/build/guard/string.d.mts +10 -0
  73. package/build/guard/string.mjs +158 -0
  74. package/build/index.d.mts +8 -0
  75. package/build/index.mjs +14 -0
  76. package/build/schema/build.d.mts +35 -0
  77. package/build/schema/build.mjs +99 -0
  78. package/build/schema/check.d.mts +6 -0
  79. package/build/schema/check.mjs +14 -0
  80. package/build/schema/compile.d.mts +22 -0
  81. package/build/schema/compile.mjs +46 -0
  82. package/build/schema/engine/_context.d.mts +32 -0
  83. package/build/schema/engine/_context.mjs +98 -0
  84. package/build/schema/engine/_exact_optional.d.mts +3 -0
  85. package/build/schema/engine/_exact_optional.mjs +20 -0
  86. package/build/schema/engine/_externals.d.mts +9 -0
  87. package/build/schema/engine/_externals.mjs +34 -0
  88. package/build/schema/engine/_functions.d.mts +6 -0
  89. package/build/schema/engine/_functions.mjs +47 -0
  90. package/build/schema/engine/_guard.d.mts +6 -0
  91. package/build/schema/engine/_guard.mjs +26 -0
  92. package/build/schema/engine/_reducer.d.mts +4 -0
  93. package/build/schema/engine/_reducer.mjs +45 -0
  94. package/build/schema/engine/_refine.d.mts +6 -0
  95. package/build/schema/engine/_refine.mjs +29 -0
  96. package/build/schema/engine/_stack.d.mts +18 -0
  97. package/build/schema/engine/_stack.mjs +73 -0
  98. package/build/schema/engine/_unique.d.mts +2 -0
  99. package/build/schema/engine/_unique.mjs +5 -0
  100. package/build/schema/engine/additionalItems.d.mts +6 -0
  101. package/build/schema/engine/additionalItems.mjs +50 -0
  102. package/build/schema/engine/additionalProperties.d.mts +9 -0
  103. package/build/schema/engine/additionalProperties.mjs +110 -0
  104. package/build/schema/engine/allOf.d.mts +6 -0
  105. package/build/schema/engine/allOf.mjs +47 -0
  106. package/build/schema/engine/anyOf.d.mts +6 -0
  107. package/build/schema/engine/anyOf.mjs +52 -0
  108. package/build/schema/engine/boolean.d.mts +5 -0
  109. package/build/schema/engine/boolean.mjs +25 -0
  110. package/build/schema/engine/const.d.mts +6 -0
  111. package/build/schema/engine/const.mjs +30 -0
  112. package/build/schema/engine/contains.d.mts +6 -0
  113. package/build/schema/engine/contains.mjs +42 -0
  114. package/build/schema/engine/dependencies.d.mts +6 -0
  115. package/build/schema/engine/dependencies.mjs +45 -0
  116. package/build/schema/engine/dependentRequired.d.mts +6 -0
  117. package/build/schema/engine/dependentRequired.mjs +40 -0
  118. package/build/schema/engine/dependentSchemas.d.mts +6 -0
  119. package/build/schema/engine/dependentSchemas.mjs +38 -0
  120. package/build/schema/engine/enum.d.mts +6 -0
  121. package/build/schema/engine/enum.mjs +33 -0
  122. package/build/schema/engine/exclusiveMaximum.d.mts +6 -0
  123. package/build/schema/engine/exclusiveMaximum.mjs +25 -0
  124. package/build/schema/engine/exclusiveMinimum.d.mts +6 -0
  125. package/build/schema/engine/exclusiveMinimum.mjs +25 -0
  126. package/build/schema/engine/format.d.mts +6 -0
  127. package/build/schema/engine/format.mjs +26 -0
  128. package/build/schema/engine/if.d.mts +6 -0
  129. package/build/schema/engine/if.mjs +47 -0
  130. package/build/schema/engine/index.d.mts +49 -0
  131. package/build/schema/engine/index.mjs +55 -0
  132. package/build/schema/engine/items.d.mts +6 -0
  133. package/build/schema/engine/items.mjs +68 -0
  134. package/build/schema/engine/maxContains.d.mts +6 -0
  135. package/build/schema/engine/maxContains.mjs +42 -0
  136. package/build/schema/engine/maxItems.d.mts +6 -0
  137. package/build/schema/engine/maxItems.mjs +25 -0
  138. package/build/schema/engine/maxLength.d.mts +6 -0
  139. package/build/schema/engine/maxLength.mjs +25 -0
  140. package/build/schema/engine/maxProperties.d.mts +6 -0
  141. package/build/schema/engine/maxProperties.mjs +25 -0
  142. package/build/schema/engine/maximum.d.mts +6 -0
  143. package/build/schema/engine/maximum.mjs +25 -0
  144. package/build/schema/engine/minContains.d.mts +6 -0
  145. package/build/schema/engine/minContains.mjs +41 -0
  146. package/build/schema/engine/minItems.d.mts +6 -0
  147. package/build/schema/engine/minItems.mjs +25 -0
  148. package/build/schema/engine/minLength.d.mts +6 -0
  149. package/build/schema/engine/minLength.mjs +25 -0
  150. package/build/schema/engine/minProperties.d.mts +6 -0
  151. package/build/schema/engine/minProperties.mjs +25 -0
  152. package/build/schema/engine/minimum.d.mts +6 -0
  153. package/build/schema/engine/minimum.mjs +25 -0
  154. package/build/schema/engine/multipleOf.d.mts +6 -0
  155. package/build/schema/engine/multipleOf.mjs +25 -0
  156. package/build/schema/engine/not.d.mts +6 -0
  157. package/build/schema/engine/not.mjs +37 -0
  158. package/build/schema/engine/oneOf.d.mts +6 -0
  159. package/build/schema/engine/oneOf.mjs +58 -0
  160. package/build/schema/engine/pattern.d.mts +6 -0
  161. package/build/schema/engine/pattern.mjs +28 -0
  162. package/build/schema/engine/patternProperties.d.mts +6 -0
  163. package/build/schema/engine/patternProperties.mjs +44 -0
  164. package/build/schema/engine/prefixItems.d.mts +6 -0
  165. package/build/schema/engine/prefixItems.mjs +35 -0
  166. package/build/schema/engine/properties.d.mts +6 -0
  167. package/build/schema/engine/properties.mjs +75 -0
  168. package/build/schema/engine/propertyNames.d.mts +6 -0
  169. package/build/schema/engine/propertyNames.mjs +39 -0
  170. package/build/schema/engine/recursiveRef.d.mts +6 -0
  171. package/build/schema/engine/recursiveRef.mjs +25 -0
  172. package/build/schema/engine/ref.d.mts +6 -0
  173. package/build/schema/engine/ref.mjs +58 -0
  174. package/build/schema/engine/required.d.mts +6 -0
  175. package/build/schema/engine/required.mjs +32 -0
  176. package/build/schema/engine/schema.d.mts +6 -0
  177. package/build/schema/engine/schema.mjs +336 -0
  178. package/build/schema/engine/type.d.mts +6 -0
  179. package/build/schema/engine/type.mjs +74 -0
  180. package/build/schema/engine/unevaluatedItems.d.mts +6 -0
  181. package/build/schema/engine/unevaluatedItems.mjs +51 -0
  182. package/build/schema/engine/unevaluatedProperties.d.mts +6 -0
  183. package/build/schema/engine/unevaluatedProperties.mjs +51 -0
  184. package/build/schema/engine/uniqueItems.d.mts +6 -0
  185. package/build/schema/engine/uniqueItems.mjs +51 -0
  186. package/build/schema/errors.d.mts +6 -0
  187. package/build/schema/errors.mjs +24 -0
  188. package/build/schema/index.d.mts +3 -0
  189. package/build/schema/index.mjs +9 -0
  190. package/build/schema/parse.d.mts +13 -0
  191. package/build/schema/parse.mjs +27 -0
  192. package/build/schema/pointer/index.d.mts +2 -0
  193. package/build/schema/pointer/index.mjs +2 -0
  194. package/build/schema/pointer/pointer-get.d.mts +9 -0
  195. package/build/schema/pointer/pointer-get.mjs +2 -0
  196. package/build/schema/pointer/pointer.d.mts +10 -0
  197. package/build/schema/pointer/pointer.mjs +96 -0
  198. package/build/schema/resolve/index.d.mts +1 -0
  199. package/build/schema/resolve/index.mjs +1 -0
  200. package/build/schema/resolve/ref.d.mts +2 -0
  201. package/build/schema/resolve/ref.mjs +96 -0
  202. package/build/schema/resolve/resolve.d.mts +1 -0
  203. package/build/schema/resolve/resolve.mjs +1 -0
  204. package/build/schema/schema.d.mts +10 -0
  205. package/build/schema/schema.mjs +10 -0
  206. package/build/schema/static/additionalProperties.d.mts +7 -0
  207. package/build/schema/static/additionalProperties.mjs +2 -0
  208. package/build/schema/static/allOf.d.mts +3 -0
  209. package/build/schema/static/allOf.mjs +2 -0
  210. package/build/schema/static/anyOf.d.mts +3 -0
  211. package/build/schema/static/anyOf.mjs +2 -0
  212. package/build/schema/static/const.d.mts +1 -0
  213. package/build/schema/static/const.mjs +2 -0
  214. package/build/schema/static/enum.d.mts +1 -0
  215. package/build/schema/static/enum.mjs +2 -0
  216. package/build/schema/static/if.d.mts +15 -0
  217. package/build/schema/static/if.mjs +2 -0
  218. package/build/schema/static/index.d.mts +1 -0
  219. package/build/schema/static/index.mjs +1 -0
  220. package/build/schema/static/items.d.mts +7 -0
  221. package/build/schema/static/items.mjs +2 -0
  222. package/build/schema/static/oneOf.d.mts +3 -0
  223. package/build/schema/static/oneOf.mjs +2 -0
  224. package/build/schema/static/patternProperties.d.mts +7 -0
  225. package/build/schema/static/patternProperties.mjs +2 -0
  226. package/build/schema/static/prefixItems.d.mts +3 -0
  227. package/build/schema/static/prefixItems.mjs +2 -0
  228. package/build/schema/static/properties.d.mts +11 -0
  229. package/build/schema/static/properties.mjs +2 -0
  230. package/build/schema/static/ref.d.mts +8 -0
  231. package/build/schema/static/ref.mjs +2 -0
  232. package/build/schema/static/required.d.mts +13 -0
  233. package/build/schema/static/required.mjs +2 -0
  234. package/build/schema/static/schema.d.mts +55 -0
  235. package/build/schema/static/schema.mjs +2 -0
  236. package/build/schema/static/static.d.mts +4 -0
  237. package/build/schema/static/static.mjs +2 -0
  238. package/build/schema/static/type.d.mts +4 -0
  239. package/build/schema/static/type.mjs +2 -0
  240. package/build/schema/static/unevaluatedProperties.d.mts +7 -0
  241. package/build/schema/static/unevaluatedProperties.mjs +2 -0
  242. package/build/schema/static/~comparer.d.mts +6 -0
  243. package/build/schema/static/~comparer.mjs +2 -0
  244. package/build/schema/static/~elements.d.mts +18 -0
  245. package/build/schema/static/~elements.mjs +2 -0
  246. package/build/schema/static/~non-readonly.d.mts +7 -0
  247. package/build/schema/static/~non-readonly.mjs +2 -0
  248. package/build/schema/static/~readonly.d.mts +6 -0
  249. package/build/schema/static/~readonly.mjs +2 -0
  250. package/build/schema/types/_guard.d.mts +10 -0
  251. package/build/schema/types/_guard.mjs +16 -0
  252. package/build/schema/types/_refine.d.mts +13 -0
  253. package/build/schema/types/_refine.mjs +18 -0
  254. package/build/schema/types/additionalItems.d.mts +9 -0
  255. package/build/schema/types/additionalItems.mjs +14 -0
  256. package/build/schema/types/additionalProperties.d.mts +9 -0
  257. package/build/schema/types/additionalProperties.mjs +14 -0
  258. package/build/schema/types/allOf.d.mts +9 -0
  259. package/build/schema/types/allOf.mjs +15 -0
  260. package/build/schema/types/anchor.d.mts +8 -0
  261. package/build/schema/types/anchor.mjs +12 -0
  262. package/build/schema/types/anyOf.d.mts +9 -0
  263. package/build/schema/types/anyOf.mjs +15 -0
  264. package/build/schema/types/const.d.mts +9 -0
  265. package/build/schema/types/const.mjs +12 -0
  266. package/build/schema/types/contains.d.mts +9 -0
  267. package/build/schema/types/contains.mjs +14 -0
  268. package/build/schema/types/contentEncoding.d.mts +9 -0
  269. package/build/schema/types/contentEncoding.mjs +13 -0
  270. package/build/schema/types/contentMediaType.d.mts +9 -0
  271. package/build/schema/types/contentMediaType.mjs +13 -0
  272. package/build/schema/types/default.d.mts +9 -0
  273. package/build/schema/types/default.mjs +12 -0
  274. package/build/schema/types/defs.d.mts +6 -0
  275. package/build/schema/types/defs.mjs +12 -0
  276. package/build/schema/types/dependencies.d.mts +11 -0
  277. package/build/schema/types/dependencies.mjs +16 -0
  278. package/build/schema/types/dependentRequired.d.mts +9 -0
  279. package/build/schema/types/dependentRequired.mjs +15 -0
  280. package/build/schema/types/dependentSchemas.d.mts +9 -0
  281. package/build/schema/types/dependentSchemas.mjs +15 -0
  282. package/build/schema/types/dynamicAnchor.d.mts +8 -0
  283. package/build/schema/types/dynamicAnchor.mjs +12 -0
  284. package/build/schema/types/dynamicRef.d.mts +8 -0
  285. package/build/schema/types/dynamicRef.mjs +12 -0
  286. package/build/schema/types/else.d.mts +9 -0
  287. package/build/schema/types/else.mjs +14 -0
  288. package/build/schema/types/enum.d.mts +9 -0
  289. package/build/schema/types/enum.mjs +13 -0
  290. package/build/schema/types/exclusiveMaximum.d.mts +9 -0
  291. package/build/schema/types/exclusiveMaximum.mjs +13 -0
  292. package/build/schema/types/exclusiveMinimum.d.mts +9 -0
  293. package/build/schema/types/exclusiveMinimum.mjs +13 -0
  294. package/build/schema/types/format.d.mts +9 -0
  295. package/build/schema/types/format.mjs +13 -0
  296. package/build/schema/types/id.d.mts +9 -0
  297. package/build/schema/types/id.mjs +13 -0
  298. package/build/schema/types/if.d.mts +9 -0
  299. package/build/schema/types/if.mjs +14 -0
  300. package/build/schema/types/index.d.mts +54 -0
  301. package/build/schema/types/index.mjs +60 -0
  302. package/build/schema/types/items.d.mts +19 -0
  303. package/build/schema/types/items.mjs +26 -0
  304. package/build/schema/types/maxContains.d.mts +9 -0
  305. package/build/schema/types/maxContains.mjs +13 -0
  306. package/build/schema/types/maxItems.d.mts +9 -0
  307. package/build/schema/types/maxItems.mjs +13 -0
  308. package/build/schema/types/maxLength.d.mts +9 -0
  309. package/build/schema/types/maxLength.mjs +13 -0
  310. package/build/schema/types/maxProperties.d.mts +9 -0
  311. package/build/schema/types/maxProperties.mjs +13 -0
  312. package/build/schema/types/maximum.d.mts +9 -0
  313. package/build/schema/types/maximum.mjs +13 -0
  314. package/build/schema/types/minContains.d.mts +9 -0
  315. package/build/schema/types/minContains.mjs +13 -0
  316. package/build/schema/types/minItems.d.mts +9 -0
  317. package/build/schema/types/minItems.mjs +13 -0
  318. package/build/schema/types/minLength.d.mts +9 -0
  319. package/build/schema/types/minLength.mjs +13 -0
  320. package/build/schema/types/minProperties.d.mts +9 -0
  321. package/build/schema/types/minProperties.mjs +13 -0
  322. package/build/schema/types/minimum.d.mts +9 -0
  323. package/build/schema/types/minimum.mjs +13 -0
  324. package/build/schema/types/multipleOf.d.mts +9 -0
  325. package/build/schema/types/multipleOf.mjs +13 -0
  326. package/build/schema/types/not.d.mts +9 -0
  327. package/build/schema/types/not.mjs +14 -0
  328. package/build/schema/types/oneOf.d.mts +9 -0
  329. package/build/schema/types/oneOf.mjs +15 -0
  330. package/build/schema/types/pattern.d.mts +9 -0
  331. package/build/schema/types/pattern.mjs +14 -0
  332. package/build/schema/types/patternProperties.d.mts +9 -0
  333. package/build/schema/types/patternProperties.mjs +15 -0
  334. package/build/schema/types/prefixItems.d.mts +8 -0
  335. package/build/schema/types/prefixItems.mjs +14 -0
  336. package/build/schema/types/properties.d.mts +9 -0
  337. package/build/schema/types/properties.mjs +15 -0
  338. package/build/schema/types/propertyNames.d.mts +9 -0
  339. package/build/schema/types/propertyNames.mjs +15 -0
  340. package/build/schema/types/recursiveAnchor.d.mts +12 -0
  341. package/build/schema/types/recursiveAnchor.mjs +19 -0
  342. package/build/schema/types/recursiveRef.d.mts +8 -0
  343. package/build/schema/types/recursiveRef.mjs +12 -0
  344. package/build/schema/types/ref.d.mts +9 -0
  345. package/build/schema/types/ref.mjs +13 -0
  346. package/build/schema/types/required.d.mts +9 -0
  347. package/build/schema/types/required.mjs +14 -0
  348. package/build/schema/types/schema.d.mts +9 -0
  349. package/build/schema/types/schema.mjs +14 -0
  350. package/build/schema/types/then.d.mts +9 -0
  351. package/build/schema/types/then.mjs +14 -0
  352. package/build/schema/types/type.d.mts +9 -0
  353. package/build/schema/types/type.mjs +15 -0
  354. package/build/schema/types/unevaluatedItems.d.mts +9 -0
  355. package/build/schema/types/unevaluatedItems.mjs +14 -0
  356. package/build/schema/types/unevaluatedProperties.d.mts +9 -0
  357. package/build/schema/types/unevaluatedProperties.mjs +14 -0
  358. package/build/schema/types/uniqueItems.d.mts +9 -0
  359. package/build/schema/types/uniqueItems.mjs +13 -0
  360. package/build/system/arguments/arguments.d.mts +5 -0
  361. package/build/system/arguments/arguments.mjs +9 -0
  362. package/build/system/arguments/index.d.mts +1 -0
  363. package/build/system/arguments/index.mjs +1 -0
  364. package/build/system/environment/can-evaluate.d.mts +2 -0
  365. package/build/system/environment/can-evaluate.mjs +26 -0
  366. package/build/system/environment/environment.d.mts +1 -0
  367. package/build/system/environment/environment.mjs +1 -0
  368. package/build/system/environment/index.d.mts +1 -0
  369. package/build/system/environment/index.mjs +1 -0
  370. package/build/system/hashing/hash.d.mts +4 -0
  371. package/build/system/hashing/hash.mjs +232 -0
  372. package/build/system/hashing/index.d.mts +1 -0
  373. package/build/system/hashing/index.mjs +1 -0
  374. package/build/system/index.d.mts +4 -0
  375. package/build/system/index.mjs +4 -0
  376. package/build/system/locale/_config.d.mts +7 -0
  377. package/build/system/locale/_config.mjs +15 -0
  378. package/build/system/locale/_locale.d.mts +40 -0
  379. package/build/system/locale/_locale.mjs +40 -0
  380. package/build/system/locale/ar_001.d.mts +3 -0
  381. package/build/system/locale/ar_001.mjs +41 -0
  382. package/build/system/locale/bn_BD.d.mts +3 -0
  383. package/build/system/locale/bn_BD.mjs +41 -0
  384. package/build/system/locale/cs_CZ.d.mts +3 -0
  385. package/build/system/locale/cs_CZ.mjs +41 -0
  386. package/build/system/locale/de_DE.d.mts +3 -0
  387. package/build/system/locale/de_DE.mjs +41 -0
  388. package/build/system/locale/el_GR.d.mts +3 -0
  389. package/build/system/locale/el_GR.mjs +41 -0
  390. package/build/system/locale/en_US.d.mts +3 -0
  391. package/build/system/locale/en_US.mjs +40 -0
  392. package/build/system/locale/es_419.d.mts +3 -0
  393. package/build/system/locale/es_419.mjs +41 -0
  394. package/build/system/locale/es_AR.d.mts +3 -0
  395. package/build/system/locale/es_AR.mjs +41 -0
  396. package/build/system/locale/es_ES.d.mts +3 -0
  397. package/build/system/locale/es_ES.mjs +41 -0
  398. package/build/system/locale/es_MX.d.mts +3 -0
  399. package/build/system/locale/es_MX.mjs +41 -0
  400. package/build/system/locale/fa_IR.d.mts +3 -0
  401. package/build/system/locale/fa_IR.mjs +41 -0
  402. package/build/system/locale/fil_PH.d.mts +3 -0
  403. package/build/system/locale/fil_PH.mjs +41 -0
  404. package/build/system/locale/fr_CA.d.mts +3 -0
  405. package/build/system/locale/fr_CA.mjs +41 -0
  406. package/build/system/locale/fr_FR.d.mts +3 -0
  407. package/build/system/locale/fr_FR.mjs +41 -0
  408. package/build/system/locale/ha_NG.d.mts +3 -0
  409. package/build/system/locale/ha_NG.mjs +41 -0
  410. package/build/system/locale/hi_IN.d.mts +3 -0
  411. package/build/system/locale/hi_IN.mjs +41 -0
  412. package/build/system/locale/hu_HU.d.mts +3 -0
  413. package/build/system/locale/hu_HU.mjs +41 -0
  414. package/build/system/locale/id_ID.d.mts +3 -0
  415. package/build/system/locale/id_ID.mjs +41 -0
  416. package/build/system/locale/index.d.mts +1 -0
  417. package/build/system/locale/index.mjs +1 -0
  418. package/build/system/locale/it_IT.d.mts +3 -0
  419. package/build/system/locale/it_IT.mjs +41 -0
  420. package/build/system/locale/ja_JP.d.mts +3 -0
  421. package/build/system/locale/ja_JP.mjs +41 -0
  422. package/build/system/locale/ko_KR.d.mts +3 -0
  423. package/build/system/locale/ko_KR.mjs +41 -0
  424. package/build/system/locale/ms_MY.d.mts +3 -0
  425. package/build/system/locale/ms_MY.mjs +41 -0
  426. package/build/system/locale/nl_NL.d.mts +3 -0
  427. package/build/system/locale/nl_NL.mjs +41 -0
  428. package/build/system/locale/pl_PL.d.mts +3 -0
  429. package/build/system/locale/pl_PL.mjs +41 -0
  430. package/build/system/locale/pt_BR.d.mts +3 -0
  431. package/build/system/locale/pt_BR.mjs +41 -0
  432. package/build/system/locale/pt_PT.d.mts +3 -0
  433. package/build/system/locale/pt_PT.mjs +41 -0
  434. package/build/system/locale/ro_RO.d.mts +3 -0
  435. package/build/system/locale/ro_RO.mjs +41 -0
  436. package/build/system/locale/ru_RU.d.mts +3 -0
  437. package/build/system/locale/ru_RU.mjs +41 -0
  438. package/build/system/locale/sv_SE.d.mts +3 -0
  439. package/build/system/locale/sv_SE.mjs +41 -0
  440. package/build/system/locale/sw_TZ.d.mts +3 -0
  441. package/build/system/locale/sw_TZ.mjs +41 -0
  442. package/build/system/locale/th_TH.d.mts +3 -0
  443. package/build/system/locale/th_TH.mjs +41 -0
  444. package/build/system/locale/tr_TR.d.mts +3 -0
  445. package/build/system/locale/tr_TR.mjs +41 -0
  446. package/build/system/locale/uk_UA.d.mts +3 -0
  447. package/build/system/locale/uk_UA.mjs +41 -0
  448. package/build/system/locale/ur_PK.d.mts +3 -0
  449. package/build/system/locale/ur_PK.mjs +41 -0
  450. package/build/system/locale/vi_VN.d.mts +3 -0
  451. package/build/system/locale/vi_VN.mjs +41 -0
  452. package/build/system/locale/yo_NG.d.mts +3 -0
  453. package/build/system/locale/yo_NG.mjs +41 -0
  454. package/build/system/locale/zh_Hans.d.mts +3 -0
  455. package/build/system/locale/zh_Hans.mjs +41 -0
  456. package/build/system/locale/zh_Hant.d.mts +3 -0
  457. package/build/system/locale/zh_Hant.mjs +41 -0
  458. package/build/system/memory/assign.d.mts +14 -0
  459. package/build/system/memory/assign.mjs +10 -0
  460. package/build/system/memory/clone.d.mts +6 -0
  461. package/build/system/memory/clone.mjs +63 -0
  462. package/build/system/memory/create.d.mts +8 -0
  463. package/build/system/memory/create.mjs +29 -0
  464. package/build/system/memory/discard.d.mts +4 -0
  465. package/build/system/memory/discard.mjs +16 -0
  466. package/build/system/memory/index.d.mts +1 -0
  467. package/build/system/memory/index.mjs +1 -0
  468. package/build/system/memory/memory.d.mts +6 -0
  469. package/build/system/memory/memory.mjs +7 -0
  470. package/build/system/memory/metrics.d.mts +14 -0
  471. package/build/system/memory/metrics.mjs +8 -0
  472. package/build/system/memory/update.d.mts +7 -0
  473. package/build/system/memory/update.mjs +32 -0
  474. package/build/system/settings/index.d.mts +1 -0
  475. package/build/system/settings/index.mjs +1 -0
  476. package/build/system/settings/settings.d.mts +56 -0
  477. package/build/system/settings/settings.mjs +32 -0
  478. package/build/system/system.d.mts +6 -0
  479. package/build/system/system.mjs +6 -0
  480. package/build/system/unreachable/index.d.mts +1 -0
  481. package/build/system/unreachable/index.mjs +1 -0
  482. package/build/system/unreachable/unreachable.d.mts +3 -0
  483. package/build/system/unreachable/unreachable.mjs +6 -0
  484. package/build/type/action/_optional.d.mts +19 -0
  485. package/build/type/action/_optional.mjs +40 -0
  486. package/build/type/action/_readonly.d.mts +19 -0
  487. package/build/type/action/_readonly.mjs +40 -0
  488. package/build/type/action/awaited.d.mts +11 -0
  489. package/build/type/action/awaited.mjs +11 -0
  490. package/build/type/action/capitalize.d.mts +11 -0
  491. package/build/type/action/capitalize.mjs +11 -0
  492. package/build/type/action/conditional.d.mts +11 -0
  493. package/build/type/action/conditional.mjs +11 -0
  494. package/build/type/action/constructor-parameters.d.mts +11 -0
  495. package/build/type/action/constructor-parameters.mjs +11 -0
  496. package/build/type/action/evaluate.d.mts +11 -0
  497. package/build/type/action/evaluate.mjs +11 -0
  498. package/build/type/action/exclude.d.mts +11 -0
  499. package/build/type/action/exclude.mjs +11 -0
  500. package/build/type/action/extract.d.mts +11 -0
  501. package/build/type/action/extract.mjs +11 -0
  502. package/build/type/action/index.d.mts +27 -0
  503. package/build/type/action/index.mjs +27 -0
  504. package/build/type/action/indexed.d.mts +14 -0
  505. package/build/type/action/indexed.mjs +14 -0
  506. package/build/type/action/instance-type.d.mts +11 -0
  507. package/build/type/action/instance-type.mjs +11 -0
  508. package/build/type/action/interface.d.mts +14 -0
  509. package/build/type/action/interface.mjs +19 -0
  510. package/build/type/action/keyof.d.mts +11 -0
  511. package/build/type/action/keyof.mjs +11 -0
  512. package/build/type/action/lowercase.d.mts +11 -0
  513. package/build/type/action/lowercase.mjs +11 -0
  514. package/build/type/action/mapped.d.mts +12 -0
  515. package/build/type/action/mapped.mjs +11 -0
  516. package/build/type/action/module.d.mts +12 -0
  517. package/build/type/action/module.mjs +11 -0
  518. package/build/type/action/non-nullable.d.mts +11 -0
  519. package/build/type/action/non-nullable.mjs +11 -0
  520. package/build/type/action/omit.d.mts +14 -0
  521. package/build/type/action/omit.mjs +14 -0
  522. package/build/type/action/options.d.mts +12 -0
  523. package/build/type/action/options.mjs +11 -0
  524. package/build/type/action/parameters.d.mts +11 -0
  525. package/build/type/action/parameters.mjs +11 -0
  526. package/build/type/action/partial.d.mts +11 -0
  527. package/build/type/action/partial.mjs +11 -0
  528. package/build/type/action/pick.d.mts +14 -0
  529. package/build/type/action/pick.mjs +14 -0
  530. package/build/type/action/readonly-type.d.mts +11 -0
  531. package/build/type/action/readonly-type.mjs +11 -0
  532. package/build/type/action/required.d.mts +11 -0
  533. package/build/type/action/required.mjs +11 -0
  534. package/build/type/action/return-type.d.mts +11 -0
  535. package/build/type/action/return-type.mjs +11 -0
  536. package/build/type/action/uncapitalize.d.mts +11 -0
  537. package/build/type/action/uncapitalize.mjs +11 -0
  538. package/build/type/action/uppercase.d.mts +11 -0
  539. package/build/type/action/uppercase.mjs +11 -0
  540. package/build/type/engine/awaited/index.d.mts +1 -0
  541. package/build/type/engine/awaited/index.mjs +1 -0
  542. package/build/type/engine/awaited/instantiate.d.mts +10 -0
  543. package/build/type/engine/awaited/instantiate.mjs +19 -0
  544. package/build/type/engine/call/instantiate.d.mts +20 -0
  545. package/build/type/engine/call/instantiate.mjs +38 -0
  546. package/build/type/engine/call/resolve-arguments.d.mts +13 -0
  547. package/build/type/engine/call/resolve-arguments.mjs +39 -0
  548. package/build/type/engine/call/resolve-target.d.mts +25 -0
  549. package/build/type/engine/call/resolve-target.mjs +27 -0
  550. package/build/type/engine/conditional/index.d.mts +1 -0
  551. package/build/type/engine/conditional/index.mjs +1 -0
  552. package/build/type/engine/conditional/instantiate.d.mts +10 -0
  553. package/build/type/engine/conditional/instantiate.mjs +19 -0
  554. package/build/type/engine/constructor-parameters/index.d.mts +1 -0
  555. package/build/type/engine/constructor-parameters/index.mjs +1 -0
  556. package/build/type/engine/constructor-parameters/instantiate.d.mts +14 -0
  557. package/build/type/engine/constructor-parameters/instantiate.mjs +21 -0
  558. package/build/type/engine/cyclic/candidates.d.mts +9 -0
  559. package/build/type/engine/cyclic/candidates.mjs +19 -0
  560. package/build/type/engine/cyclic/check.d.mts +24 -0
  561. package/build/type/engine/cyclic/check.mjs +54 -0
  562. package/build/type/engine/cyclic/dependencies.d.mts +25 -0
  563. package/build/type/engine/cyclic/dependencies.mjs +53 -0
  564. package/build/type/engine/cyclic/extends.d.mts +31 -0
  565. package/build/type/engine/cyclic/extends.mjs +53 -0
  566. package/build/type/engine/cyclic/index.d.mts +6 -0
  567. package/build/type/engine/cyclic/index.mjs +6 -0
  568. package/build/type/engine/cyclic/instantiate.d.mts +20 -0
  569. package/build/type/engine/cyclic/instantiate.mjs +29 -0
  570. package/build/type/engine/cyclic/target.d.mts +10 -0
  571. package/build/type/engine/cyclic/target.mjs +16 -0
  572. package/build/type/engine/enum/enum-to-union.d.mts +14 -0
  573. package/build/type/engine/enum/enum-to-union.mjs +24 -0
  574. package/build/type/engine/enum/index.d.mts +2 -0
  575. package/build/type/engine/enum/index.mjs +2 -0
  576. package/build/type/engine/enum/typescript-enum-to-enum-values.d.mts +8 -0
  577. package/build/type/engine/enum/typescript-enum-to-enum-values.mjs +9 -0
  578. package/build/type/engine/evaluate/broaden.d.mts +16 -0
  579. package/build/type/engine/evaluate/broaden.mjs +48 -0
  580. package/build/type/engine/evaluate/compare.d.mts +15 -0
  581. package/build/type/engine/evaluate/compare.mjs +21 -0
  582. package/build/type/engine/evaluate/composite.d.mts +30 -0
  583. package/build/type/engine/evaluate/composite.mjs +63 -0
  584. package/build/type/engine/evaluate/distribute.d.mts +27 -0
  585. package/build/type/engine/evaluate/distribute.mjs +55 -0
  586. package/build/type/engine/evaluate/evaluate.d.mts +14 -0
  587. package/build/type/engine/evaluate/evaluate.mjs +27 -0
  588. package/build/type/engine/evaluate/flatten.d.mts +6 -0
  589. package/build/type/engine/evaluate/flatten.mjs +11 -0
  590. package/build/type/engine/evaluate/index.d.mts +8 -0
  591. package/build/type/engine/evaluate/index.mjs +8 -0
  592. package/build/type/engine/evaluate/instantiate.d.mts +8 -0
  593. package/build/type/engine/evaluate/instantiate.mjs +17 -0
  594. package/build/type/engine/evaluate/narrow.d.mts +5 -0
  595. package/build/type/engine/evaluate/narrow.mjs +11 -0
  596. package/build/type/engine/exclude/index.d.mts +1 -0
  597. package/build/type/engine/exclude/index.mjs +1 -0
  598. package/build/type/engine/exclude/instantiate.d.mts +16 -0
  599. package/build/type/engine/exclude/instantiate.mjs +36 -0
  600. package/build/type/engine/extract/index.d.mts +1 -0
  601. package/build/type/engine/extract/index.mjs +1 -0
  602. package/build/type/engine/extract/instantiate.d.mts +16 -0
  603. package/build/type/engine/extract/instantiate.mjs +36 -0
  604. package/build/type/engine/helpers/index.d.mts +3 -0
  605. package/build/type/engine/helpers/index.mjs +3 -0
  606. package/build/type/engine/helpers/keys-to-indexer.d.mts +7 -0
  607. package/build/type/engine/helpers/keys-to-indexer.mjs +15 -0
  608. package/build/type/engine/helpers/keys.d.mts +3 -0
  609. package/build/type/engine/helpers/keys.mjs +8 -0
  610. package/build/type/engine/helpers/union.d.mts +7 -0
  611. package/build/type/engine/helpers/union.mjs +2 -0
  612. package/build/type/engine/index.d.mts +31 -0
  613. package/build/type/engine/index.mjs +37 -0
  614. package/build/type/engine/indexable/from-cyclic.d.mts +6 -0
  615. package/build/type/engine/indexable/from-cyclic.mjs +8 -0
  616. package/build/type/engine/indexable/from-enum.d.mts +6 -0
  617. package/build/type/engine/indexable/from-enum.mjs +8 -0
  618. package/build/type/engine/indexable/from-intersect.d.mts +5 -0
  619. package/build/type/engine/indexable/from-intersect.mjs +8 -0
  620. package/build/type/engine/indexable/from-literal.d.mts +3 -0
  621. package/build/type/engine/indexable/from-literal.mjs +5 -0
  622. package/build/type/engine/indexable/from-template-literal.d.mts +5 -0
  623. package/build/type/engine/indexable/from-template-literal.mjs +8 -0
  624. package/build/type/engine/indexable/from-type.d.mts +17 -0
  625. package/build/type/engine/indexable/from-type.mjs +22 -0
  626. package/build/type/engine/indexable/from-union.d.mts +4 -0
  627. package/build/type/engine/indexable/from-union.mjs +7 -0
  628. package/build/type/engine/indexable/to-indexable-keys.d.mts +10 -0
  629. package/build/type/engine/indexable/to-indexable-keys.mjs +12 -0
  630. package/build/type/engine/indexable/to-indexable.d.mts +9 -0
  631. package/build/type/engine/indexable/to-indexable.mjs +14 -0
  632. package/build/type/engine/indexed/array-indexer.d.mts +12 -0
  633. package/build/type/engine/indexed/array-indexer.mjs +18 -0
  634. package/build/type/engine/indexed/from-array.d.mts +15 -0
  635. package/build/type/engine/indexed/from-array.mjs +26 -0
  636. package/build/type/engine/indexed/from-object.d.mts +9 -0
  637. package/build/type/engine/indexed/from-object.mjs +18 -0
  638. package/build/type/engine/indexed/from-tuple.d.mts +13 -0
  639. package/build/type/engine/indexed/from-tuple.mjs +28 -0
  640. package/build/type/engine/indexed/index.d.mts +1 -0
  641. package/build/type/engine/indexed/index.mjs +1 -0
  642. package/build/type/engine/indexed/instantiate.d.mts +21 -0
  643. package/build/type/engine/indexed/instantiate.mjs +37 -0
  644. package/build/type/engine/instance-type/index.d.mts +1 -0
  645. package/build/type/engine/instance-type/index.mjs +1 -0
  646. package/build/type/engine/instance-type/instantiate.d.mts +12 -0
  647. package/build/type/engine/instance-type/instantiate.mjs +20 -0
  648. package/build/type/engine/instantiate.d.mts +167 -0
  649. package/build/type/engine/instantiate.mjs +172 -0
  650. package/build/type/engine/interface/index.d.mts +1 -0
  651. package/build/type/engine/interface/index.mjs +1 -0
  652. package/build/type/engine/interface/instantiate.d.mts +16 -0
  653. package/build/type/engine/interface/instantiate.mjs +19 -0
  654. package/build/type/engine/intrinsics/from-literal.d.mts +5 -0
  655. package/build/type/engine/intrinsics/from-literal.mjs +9 -0
  656. package/build/type/engine/intrinsics/from-template-literal.d.mts +6 -0
  657. package/build/type/engine/intrinsics/from-template-literal.mjs +8 -0
  658. package/build/type/engine/intrinsics/from-type.d.mts +10 -0
  659. package/build/type/engine/intrinsics/from-type.mjs +13 -0
  660. package/build/type/engine/intrinsics/from-union.d.mts +6 -0
  661. package/build/type/engine/intrinsics/from-union.mjs +7 -0
  662. package/build/type/engine/intrinsics/index.d.mts +1 -0
  663. package/build/type/engine/intrinsics/index.mjs +1 -0
  664. package/build/type/engine/intrinsics/instantiate.d.mts +34 -0
  665. package/build/type/engine/intrinsics/instantiate.mjs +48 -0
  666. package/build/type/engine/intrinsics/mapping.d.mts +9 -0
  667. package/build/type/engine/intrinsics/mapping.mjs +4 -0
  668. package/build/type/engine/keyof/from-any.d.mts +6 -0
  669. package/build/type/engine/keyof/from-any.mjs +8 -0
  670. package/build/type/engine/keyof/from-array.d.mts +4 -0
  671. package/build/type/engine/keyof/from-array.mjs +5 -0
  672. package/build/type/engine/keyof/from-object.d.mts +10 -0
  673. package/build/type/engine/keyof/from-object.mjs +20 -0
  674. package/build/type/engine/keyof/from-record.d.mts +4 -0
  675. package/build/type/engine/keyof/from-record.mjs +5 -0
  676. package/build/type/engine/keyof/from-tuple.d.mts +5 -0
  677. package/build/type/engine/keyof/from-tuple.mjs +7 -0
  678. package/build/type/engine/keyof/index.d.mts +1 -0
  679. package/build/type/engine/keyof/index.mjs +1 -0
  680. package/build/type/engine/keyof/instantiate.d.mts +27 -0
  681. package/build/type/engine/keyof/instantiate.mjs +45 -0
  682. package/build/type/engine/mapped/index.d.mts +1 -0
  683. package/build/type/engine/mapped/index.mjs +1 -0
  684. package/build/type/engine/mapped/instantiate.d.mts +28 -0
  685. package/build/type/engine/mapped/instantiate.mjs +47 -0
  686. package/build/type/engine/mapped/mapped-keys.d.mts +14 -0
  687. package/build/type/engine/mapped/mapped-keys.mjs +29 -0
  688. package/build/type/engine/module/index.d.mts +1 -0
  689. package/build/type/engine/module/index.mjs +1 -0
  690. package/build/type/engine/module/instantiate.d.mts +21 -0
  691. package/build/type/engine/module/instantiate.mjs +33 -0
  692. package/build/type/engine/non-nullable/index.d.mts +1 -0
  693. package/build/type/engine/non-nullable/index.mjs +1 -0
  694. package/build/type/engine/non-nullable/instantiate.d.mts +15 -0
  695. package/build/type/engine/non-nullable/instantiate.mjs +21 -0
  696. package/build/type/engine/object/collapse.d.mts +12 -0
  697. package/build/type/engine/object/collapse.mjs +14 -0
  698. package/build/type/engine/object/from-cyclic.d.mts +6 -0
  699. package/build/type/engine/object/from-cyclic.mjs +8 -0
  700. package/build/type/engine/object/from-intersect.d.mts +17 -0
  701. package/build/type/engine/object/from-intersect.mjs +21 -0
  702. package/build/type/engine/object/from-object.d.mts +3 -0
  703. package/build/type/engine/object/from-object.mjs +4 -0
  704. package/build/type/engine/object/from-tuple.d.mts +6 -0
  705. package/build/type/engine/object/from-tuple.mjs +9 -0
  706. package/build/type/engine/object/from-type.d.mts +14 -0
  707. package/build/type/engine/object/from-type.mjs +19 -0
  708. package/build/type/engine/object/from-union.d.mts +12 -0
  709. package/build/type/engine/object/from-union.mjs +26 -0
  710. package/build/type/engine/object/index.d.mts +1 -0
  711. package/build/type/engine/object/index.mjs +1 -0
  712. package/build/type/engine/omit/index.d.mts +1 -0
  713. package/build/type/engine/omit/index.mjs +1 -0
  714. package/build/type/engine/omit/instantiate.d.mts +16 -0
  715. package/build/type/engine/omit/instantiate.mjs +31 -0
  716. package/build/type/engine/options/index.d.mts +1 -0
  717. package/build/type/engine/options/index.mjs +1 -0
  718. package/build/type/engine/options/instantiate.d.mts +8 -0
  719. package/build/type/engine/options/instantiate.mjs +13 -0
  720. package/build/type/engine/parameters/index.d.mts +1 -0
  721. package/build/type/engine/parameters/index.mjs +1 -0
  722. package/build/type/engine/parameters/instantiate.d.mts +14 -0
  723. package/build/type/engine/parameters/instantiate.mjs +21 -0
  724. package/build/type/engine/partial/from-cyclic.d.mts +10 -0
  725. package/build/type/engine/partial/from-cyclic.mjs +11 -0
  726. package/build/type/engine/partial/from-intersect.d.mts +5 -0
  727. package/build/type/engine/partial/from-intersect.mjs +7 -0
  728. package/build/type/engine/partial/from-object.d.mts +8 -0
  729. package/build/type/engine/partial/from-object.mjs +11 -0
  730. package/build/type/engine/partial/from-type.d.mts +12 -0
  731. package/build/type/engine/partial/from-type.mjs +16 -0
  732. package/build/type/engine/partial/from-union.d.mts +5 -0
  733. package/build/type/engine/partial/from-union.mjs +7 -0
  734. package/build/type/engine/partial/index.d.mts +1 -0
  735. package/build/type/engine/partial/index.mjs +1 -0
  736. package/build/type/engine/partial/instantiate.d.mts +9 -0
  737. package/build/type/engine/partial/instantiate.mjs +14 -0
  738. package/build/type/engine/patterns/index.d.mts +2 -0
  739. package/build/type/engine/patterns/index.mjs +2 -0
  740. package/build/type/engine/patterns/pattern.d.mts +6 -0
  741. package/build/type/engine/patterns/pattern.mjs +11 -0
  742. package/build/type/engine/patterns/template.d.mts +7 -0
  743. package/build/type/engine/patterns/template.mjs +20 -0
  744. package/build/type/engine/pick/index.d.mts +1 -0
  745. package/build/type/engine/pick/index.mjs +1 -0
  746. package/build/type/engine/pick/instantiate.d.mts +17 -0
  747. package/build/type/engine/pick/instantiate.mjs +31 -0
  748. package/build/type/engine/readonly-type/from-array.d.mts +5 -0
  749. package/build/type/engine/readonly-type/from-array.mjs +7 -0
  750. package/build/type/engine/readonly-type/from-cyclic.d.mts +10 -0
  751. package/build/type/engine/readonly-type/from-cyclic.mjs +11 -0
  752. package/build/type/engine/readonly-type/from-intersect.d.mts +5 -0
  753. package/build/type/engine/readonly-type/from-intersect.mjs +7 -0
  754. package/build/type/engine/readonly-type/from-object.d.mts +8 -0
  755. package/build/type/engine/readonly-type/from-object.mjs +11 -0
  756. package/build/type/engine/readonly-type/from-tuple.d.mts +5 -0
  757. package/build/type/engine/readonly-type/from-tuple.mjs +7 -0
  758. package/build/type/engine/readonly-type/from-type.d.mts +16 -0
  759. package/build/type/engine/readonly-type/from-type.mjs +22 -0
  760. package/build/type/engine/readonly-type/from-union.d.mts +5 -0
  761. package/build/type/engine/readonly-type/from-union.mjs +7 -0
  762. package/build/type/engine/readonly-type/index.d.mts +1 -0
  763. package/build/type/engine/readonly-type/index.mjs +1 -0
  764. package/build/type/engine/readonly-type/instantiate.d.mts +9 -0
  765. package/build/type/engine/readonly-type/instantiate.mjs +14 -0
  766. package/build/type/engine/record/from-key-any.d.mts +4 -0
  767. package/build/type/engine/record/from-key-any.mjs +6 -0
  768. package/build/type/engine/record/from-key-boolean.d.mts +7 -0
  769. package/build/type/engine/record/from-key-boolean.mjs +5 -0
  770. package/build/type/engine/record/from-key-enum.d.mts +6 -0
  771. package/build/type/engine/record/from-key-enum.mjs +8 -0
  772. package/build/type/engine/record/from-key-integer.d.mts +5 -0
  773. package/build/type/engine/record/from-key-integer.mjs +7 -0
  774. package/build/type/engine/record/from-key-intersect.d.mts +5 -0
  775. package/build/type/engine/record/from-key-intersect.mjs +8 -0
  776. package/build/type/engine/record/from-key-literal.d.mts +11 -0
  777. package/build/type/engine/record/from-key-literal.mjs +10 -0
  778. package/build/type/engine/record/from-key-number.d.mts +5 -0
  779. package/build/type/engine/record/from-key-number.mjs +7 -0
  780. package/build/type/engine/record/from-key-string.d.mts +5 -0
  781. package/build/type/engine/record/from-key-string.mjs +12 -0
  782. package/build/type/engine/record/from-key-template-literal.d.mts +8 -0
  783. package/build/type/engine/record/from-key-template-literal.mjs +12 -0
  784. package/build/type/engine/record/from-key-union.d.mts +20 -0
  785. package/build/type/engine/record/from-key-union.mjs +39 -0
  786. package/build/type/engine/record/from-key.d.mts +24 -0
  787. package/build/type/engine/record/from-key.mjs +40 -0
  788. package/build/type/engine/record/index.d.mts +1 -0
  789. package/build/type/engine/record/index.mjs +1 -0
  790. package/build/type/engine/record/instantiate.d.mts +9 -0
  791. package/build/type/engine/record/instantiate.mjs +16 -0
  792. package/build/type/engine/record/record-create.d.mts +3 -0
  793. package/build/type/engine/record/record-create.mjs +7 -0
  794. package/build/type/engine/ref/index.d.mts +1 -0
  795. package/build/type/engine/ref/index.mjs +1 -0
  796. package/build/type/engine/ref/instantiate.d.mts +6 -0
  797. package/build/type/engine/ref/instantiate.mjs +10 -0
  798. package/build/type/engine/required/from-cyclic.d.mts +10 -0
  799. package/build/type/engine/required/from-cyclic.mjs +11 -0
  800. package/build/type/engine/required/from-intersect.d.mts +5 -0
  801. package/build/type/engine/required/from-intersect.mjs +7 -0
  802. package/build/type/engine/required/from-object.d.mts +8 -0
  803. package/build/type/engine/required/from-object.mjs +11 -0
  804. package/build/type/engine/required/from-type.d.mts +12 -0
  805. package/build/type/engine/required/from-type.mjs +16 -0
  806. package/build/type/engine/required/from-union.d.mts +5 -0
  807. package/build/type/engine/required/from-union.mjs +7 -0
  808. package/build/type/engine/required/index.d.mts +1 -0
  809. package/build/type/engine/required/index.mjs +1 -0
  810. package/build/type/engine/required/instantiate.d.mts +9 -0
  811. package/build/type/engine/required/instantiate.mjs +14 -0
  812. package/build/type/engine/rest/index.d.mts +1 -0
  813. package/build/type/engine/rest/index.mjs +1 -0
  814. package/build/type/engine/rest/spread.d.mts +12 -0
  815. package/build/type/engine/rest/spread.mjs +19 -0
  816. package/build/type/engine/return-type/index.d.mts +1 -0
  817. package/build/type/engine/return-type/index.mjs +1 -0
  818. package/build/type/engine/return-type/instantiate.d.mts +11 -0
  819. package/build/type/engine/return-type/instantiate.mjs +18 -0
  820. package/build/type/engine/template-literal/create.d.mts +1 -0
  821. package/build/type/engine/template-literal/create.mjs +5 -0
  822. package/build/type/engine/template-literal/decode.d.mts +30 -0
  823. package/build/type/engine/template-literal/decode.mjs +87 -0
  824. package/build/type/engine/template-literal/encode.d.mts +31 -0
  825. package/build/type/engine/template-literal/encode.mjs +80 -0
  826. package/build/type/engine/template-literal/index.d.mts +6 -0
  827. package/build/type/engine/template-literal/index.mjs +6 -0
  828. package/build/type/engine/template-literal/instantiate.d.mts +9 -0
  829. package/build/type/engine/template-literal/instantiate.mjs +14 -0
  830. package/build/type/engine/template-literal/is-finite.d.mts +12 -0
  831. package/build/type/engine/template-literal/is-finite.mjs +30 -0
  832. package/build/type/engine/template-literal/is-pattern.d.mts +6 -0
  833. package/build/type/engine/template-literal/is-pattern.mjs +9 -0
  834. package/build/type/engine/template-literal/static.d.mts +18 -0
  835. package/build/type/engine/template-literal/static.mjs +2 -0
  836. package/build/type/engine/tuple/to-object.d.mts +12 -0
  837. package/build/type/engine/tuple/to-object.mjs +13 -0
  838. package/build/type/extends/any.d.mts +9 -0
  839. package/build/type/extends/any.mjs +12 -0
  840. package/build/type/extends/array.d.mts +20 -0
  841. package/build/type/extends/array.mjs +21 -0
  842. package/build/type/extends/async-iterator.d.mts +7 -0
  843. package/build/type/extends/async-iterator.mjs +9 -0
  844. package/build/type/extends/bigint.d.mts +7 -0
  845. package/build/type/extends/bigint.mjs +9 -0
  846. package/build/type/extends/boolean.d.mts +7 -0
  847. package/build/type/extends/boolean.mjs +9 -0
  848. package/build/type/extends/constructor.d.mts +8 -0
  849. package/build/type/extends/constructor.mjs +16 -0
  850. package/build/type/extends/enum.d.mts +7 -0
  851. package/build/type/extends/enum.mjs +6 -0
  852. package/build/type/extends/extends-left.d.mts +55 -0
  853. package/build/type/extends/extends-left.mjs +83 -0
  854. package/build/type/extends/extends-right.d.mts +25 -0
  855. package/build/type/extends/extends-right.mjs +59 -0
  856. package/build/type/extends/extends.d.mts +11 -0
  857. package/build/type/extends/extends.mjs +15 -0
  858. package/build/type/extends/function.d.mts +8 -0
  859. package/build/type/extends/function.mjs +16 -0
  860. package/build/type/extends/index.d.mts +2 -0
  861. package/build/type/extends/index.mjs +2 -0
  862. package/build/type/extends/inference.d.mts +34 -0
  863. package/build/type/extends/inference.mjs +72 -0
  864. package/build/type/extends/integer.d.mts +8 -0
  865. package/build/type/extends/integer.mjs +10 -0
  866. package/build/type/extends/intersect.d.mts +6 -0
  867. package/build/type/extends/intersect.mjs +15 -0
  868. package/build/type/extends/iterator.d.mts +7 -0
  869. package/build/type/extends/iterator.mjs +9 -0
  870. package/build/type/extends/literal.d.mts +18 -0
  871. package/build/type/extends/literal.mjs +44 -0
  872. package/build/type/extends/never.d.mts +8 -0
  873. package/build/type/extends/never.mjs +9 -0
  874. package/build/type/extends/null.d.mts +7 -0
  875. package/build/type/extends/null.mjs +9 -0
  876. package/build/type/extends/number.d.mts +7 -0
  877. package/build/type/extends/number.mjs +9 -0
  878. package/build/type/extends/object.d.mts +25 -0
  879. package/build/type/extends/object.mjs +89 -0
  880. package/build/type/extends/parameters.d.mts +15 -0
  881. package/build/type/extends/parameters.mjs +37 -0
  882. package/build/type/extends/promise.d.mts +7 -0
  883. package/build/type/extends/promise.mjs +9 -0
  884. package/build/type/extends/result.d.mts +21 -0
  885. package/build/type/extends/result.mjs +33 -0
  886. package/build/type/extends/return-type.d.mts +7 -0
  887. package/build/type/extends/return-type.mjs +9 -0
  888. package/build/type/extends/string.d.mts +7 -0
  889. package/build/type/extends/string.mjs +9 -0
  890. package/build/type/extends/symbol.d.mts +7 -0
  891. package/build/type/extends/symbol.mjs +9 -0
  892. package/build/type/extends/template-literal.d.mts +6 -0
  893. package/build/type/extends/template-literal.mjs +7 -0
  894. package/build/type/extends/tuple.d.mts +25 -0
  895. package/build/type/extends/tuple.mjs +82 -0
  896. package/build/type/extends/undefined.d.mts +8 -0
  897. package/build/type/extends/undefined.mjs +10 -0
  898. package/build/type/extends/union.d.mts +11 -0
  899. package/build/type/extends/union.mjs +36 -0
  900. package/build/type/extends/unknown.d.mts +9 -0
  901. package/build/type/extends/unknown.mjs +12 -0
  902. package/build/type/extends/void.d.mts +7 -0
  903. package/build/type/extends/void.mjs +9 -0
  904. package/build/type/index.d.mts +5 -0
  905. package/build/type/index.mjs +5 -0
  906. package/build/type/script/index.d.mts +1 -0
  907. package/build/type/script/index.mjs +1 -0
  908. package/build/type/script/mapping.d.mts +365 -0
  909. package/build/type/script/mapping.mjs +532 -0
  910. package/build/type/script/parser.d.mts +260 -0
  911. package/build/type/script/parser.mjs +135 -0
  912. package/build/type/script/script.d.mts +17 -0
  913. package/build/type/script/script.mjs +21 -0
  914. package/build/type/script/token/bigint.d.mts +8 -0
  915. package/build/type/script/token/bigint.mjs +20 -0
  916. package/build/type/script/token/const.d.mts +11 -0
  917. package/build/type/script/token/const.mjs +18 -0
  918. package/build/type/script/token/ident.d.mts +16 -0
  919. package/build/type/script/token/ident.mjs +35 -0
  920. package/build/type/script/token/index.d.mts +9 -0
  921. package/build/type/script/token/index.mjs +9 -0
  922. package/build/type/script/token/integer.d.mts +19 -0
  923. package/build/type/script/token/integer.mjs +45 -0
  924. package/build/type/script/token/internal/char.d.mts +75 -0
  925. package/build/type/script/token/internal/char.mjs +26 -0
  926. package/build/type/script/token/internal/guard.d.mts +1 -0
  927. package/build/type/script/token/internal/guard.mjs +15 -0
  928. package/build/type/script/token/internal/many.d.mts +7 -0
  929. package/build/type/script/token/internal/many.mjs +17 -0
  930. package/build/type/script/token/internal/optional.d.mts +5 -0
  931. package/build/type/script/token/internal/optional.mjs +12 -0
  932. package/build/type/script/token/internal/result.d.mts +2 -0
  933. package/build/type/script/token/internal/result.mjs +7 -0
  934. package/build/type/script/token/internal/take.d.mts +6 -0
  935. package/build/type/script/token/internal/take.mjs +19 -0
  936. package/build/type/script/token/internal/trim.d.mts +19 -0
  937. package/build/type/script/token/internal/trim.mjs +34 -0
  938. package/build/type/script/token/number.d.mts +20 -0
  939. package/build/type/script/token/number.mjs +65 -0
  940. package/build/type/script/token/span.d.mts +10 -0
  941. package/build/type/script/token/span.mjs +35 -0
  942. package/build/type/script/token/string.d.mts +11 -0
  943. package/build/type/script/token/string.mjs +24 -0
  944. package/build/type/script/token/until.d.mts +6 -0
  945. package/build/type/script/token/until.mjs +21 -0
  946. package/build/type/script/token/until_1.d.mts +5 -0
  947. package/build/type/script/token/until_1.mjs +16 -0
  948. package/build/type/types/_codec.d.mts +30 -0
  949. package/build/type/types/_codec.mjs +60 -0
  950. package/build/type/types/_immutable.d.mts +16 -0
  951. package/build/type/types/_immutable.mjs +26 -0
  952. package/build/type/types/_optional.d.mts +16 -0
  953. package/build/type/types/_optional.mjs +27 -0
  954. package/build/type/types/_readonly.d.mts +16 -0
  955. package/build/type/types/_readonly.mjs +26 -0
  956. package/build/type/types/_refine.d.mts +19 -0
  957. package/build/type/types/_refine.mjs +20 -0
  958. package/build/type/types/any.d.mts +10 -0
  959. package/build/type/types/any.mjs +18 -0
  960. package/build/type/types/array.d.mts +17 -0
  961. package/build/type/types/array.mjs +24 -0
  962. package/build/type/types/async-iterator.d.mts +16 -0
  963. package/build/type/types/async-iterator.mjs +24 -0
  964. package/build/type/types/base.d.mts +50 -0
  965. package/build/type/types/base.mjs +84 -0
  966. package/build/type/types/bigint.d.mts +12 -0
  967. package/build/type/types/bigint.mjs +21 -0
  968. package/build/type/types/boolean.d.mts +11 -0
  969. package/build/type/types/boolean.mjs +17 -0
  970. package/build/type/types/call.d.mts +16 -0
  971. package/build/type/types/call.mjs +21 -0
  972. package/build/type/types/constructor.d.mts +18 -0
  973. package/build/type/types/constructor.mjs +24 -0
  974. package/build/type/types/cyclic.d.mts +16 -0
  975. package/build/type/types/cyclic.mjs +29 -0
  976. package/build/type/types/deferred.d.mts +12 -0
  977. package/build/type/types/deferred.mjs +16 -0
  978. package/build/type/types/enum.d.mts +16 -0
  979. package/build/type/types/enum.mjs +17 -0
  980. package/build/type/types/function.d.mts +21 -0
  981. package/build/type/types/function.mjs +25 -0
  982. package/build/type/types/generic.d.mts +13 -0
  983. package/build/type/types/generic.mjs +17 -0
  984. package/build/type/types/identifier.d.mts +11 -0
  985. package/build/type/types/identifier.mjs +17 -0
  986. package/build/type/types/index.d.mts +48 -0
  987. package/build/type/types/index.mjs +54 -0
  988. package/build/type/types/infer.d.mts +15 -0
  989. package/build/type/types/infer.mjs +20 -0
  990. package/build/type/types/integer.d.mts +12 -0
  991. package/build/type/types/integer.mjs +21 -0
  992. package/build/type/types/intersect.d.mts +15 -0
  993. package/build/type/types/intersect.mjs +24 -0
  994. package/build/type/types/iterator.d.mts +16 -0
  995. package/build/type/types/iterator.mjs +24 -0
  996. package/build/type/types/literal.d.mts +31 -0
  997. package/build/type/types/literal.mjs +62 -0
  998. package/build/type/types/never.d.mts +12 -0
  999. package/build/type/types/never.mjs +21 -0
  1000. package/build/type/types/null.d.mts +11 -0
  1001. package/build/type/types/null.mjs +17 -0
  1002. package/build/type/types/number.d.mts +12 -0
  1003. package/build/type/types/number.mjs +21 -0
  1004. package/build/type/types/object.d.mts +18 -0
  1005. package/build/type/types/object.mjs +28 -0
  1006. package/build/type/types/parameter.d.mts +17 -0
  1007. package/build/type/types/parameter.mjs +21 -0
  1008. package/build/type/types/promise.d.mts +16 -0
  1009. package/build/type/types/promise.mjs +24 -0
  1010. package/build/type/types/properties.d.mts +42 -0
  1011. package/build/type/types/properties.mjs +16 -0
  1012. package/build/type/types/record.d.mts +48 -0
  1013. package/build/type/types/record.mjs +63 -0
  1014. package/build/type/types/ref.d.mts +19 -0
  1015. package/build/type/types/ref.mjs +17 -0
  1016. package/build/type/types/rest.d.mts +11 -0
  1017. package/build/type/types/rest.mjs +17 -0
  1018. package/build/type/types/schema.d.mts +199 -0
  1019. package/build/type/types/schema.mjs +15 -0
  1020. package/build/type/types/static.d.mts +48 -0
  1021. package/build/type/types/static.mjs +3 -0
  1022. package/build/type/types/string.d.mts +12 -0
  1023. package/build/type/types/string.mjs +22 -0
  1024. package/build/type/types/symbol.d.mts +11 -0
  1025. package/build/type/types/symbol.mjs +17 -0
  1026. package/build/type/types/template-literal.d.mts +26 -0
  1027. package/build/type/types/template-literal.mjs +31 -0
  1028. package/build/type/types/this.d.mts +14 -0
  1029. package/build/type/types/this.mjs +17 -0
  1030. package/build/type/types/tuple.d.mts +38 -0
  1031. package/build/type/types/tuple.mjs +25 -0
  1032. package/build/type/types/undefined.d.mts +11 -0
  1033. package/build/type/types/undefined.mjs +17 -0
  1034. package/build/type/types/union.d.mts +15 -0
  1035. package/build/type/types/union.mjs +24 -0
  1036. package/build/type/types/unknown.d.mts +10 -0
  1037. package/build/type/types/unknown.mjs +17 -0
  1038. package/build/type/types/unsafe.d.mts +11 -0
  1039. package/build/type/types/unsafe.mjs +18 -0
  1040. package/build/type/types/void.d.mts +11 -0
  1041. package/build/type/types/void.mjs +17 -0
  1042. package/build/typebox.d.mts +73 -0
  1043. package/build/typebox.mjs +89 -0
  1044. package/build/value/assert/assert.d.mts +14 -0
  1045. package/build/value/assert/assert.mjs +27 -0
  1046. package/build/value/assert/index.d.mts +1 -0
  1047. package/build/value/assert/index.mjs +1 -0
  1048. package/build/value/check/check.d.mts +5 -0
  1049. package/build/value/check/check.mjs +11 -0
  1050. package/build/value/check/index.d.mts +1 -0
  1051. package/build/value/check/index.mjs +1 -0
  1052. package/build/value/clean/additional.d.mts +2 -0
  1053. package/build/value/clean/additional.mjs +6 -0
  1054. package/build/value/clean/clean.d.mts +15 -0
  1055. package/build/value/clean/clean.mjs +15 -0
  1056. package/build/value/clean/from-array.d.mts +2 -0
  1057. package/build/value/clean/from-array.mjs +8 -0
  1058. package/build/value/clean/from-base.d.mts +2 -0
  1059. package/build/value/clean/from-base.mjs +4 -0
  1060. package/build/value/clean/from-cyclic.d.mts +2 -0
  1061. package/build/value/clean/from-cyclic.mjs +6 -0
  1062. package/build/value/clean/from-intersect.d.mts +2 -0
  1063. package/build/value/clean/from-intersect.mjs +26 -0
  1064. package/build/value/clean/from-object.d.mts +2 -0
  1065. package/build/value/clean/from-object.mjs +31 -0
  1066. package/build/value/clean/from-record.d.mts +2 -0
  1067. package/build/value/clean/from-record.mjs +32 -0
  1068. package/build/value/clean/from-ref.d.mts +2 -0
  1069. package/build/value/clean/from-ref.mjs +8 -0
  1070. package/build/value/clean/from-tuple.d.mts +2 -0
  1071. package/build/value/clean/from-tuple.mjs +14 -0
  1072. package/build/value/clean/from-type.d.mts +2 -0
  1073. package/build/value/clean/from-type.mjs +23 -0
  1074. package/build/value/clean/from-union.d.mts +2 -0
  1075. package/build/value/clean/from-union.mjs +12 -0
  1076. package/build/value/clean/index.d.mts +1 -0
  1077. package/build/value/clean/index.mjs +1 -0
  1078. package/build/value/clone/clone.d.mts +5 -0
  1079. package/build/value/clone/clone.mjs +82 -0
  1080. package/build/value/clone/index.d.mts +1 -0
  1081. package/build/value/clone/index.mjs +1 -0
  1082. package/build/value/codec/callback.d.mts +2 -0
  1083. package/build/value/codec/callback.mjs +25 -0
  1084. package/build/value/codec/decode.d.mts +22 -0
  1085. package/build/value/codec/decode.mjs +55 -0
  1086. package/build/value/codec/encode.d.mts +12 -0
  1087. package/build/value/codec/encode.mjs +50 -0
  1088. package/build/value/codec/from-array.d.mts +2 -0
  1089. package/build/value/codec/from-array.mjs +38 -0
  1090. package/build/value/codec/from-cyclic.d.mts +2 -0
  1091. package/build/value/codec/from-cyclic.mjs +8 -0
  1092. package/build/value/codec/from-intersect.d.mts +2 -0
  1093. package/build/value/codec/from-intersect.mjs +28 -0
  1094. package/build/value/codec/from-object.d.mts +2 -0
  1095. package/build/value/codec/from-object.mjs +45 -0
  1096. package/build/value/codec/from-record.d.mts +2 -0
  1097. package/build/value/codec/from-record.mjs +44 -0
  1098. package/build/value/codec/from-ref.d.mts +2 -0
  1099. package/build/value/codec/from-ref.mjs +10 -0
  1100. package/build/value/codec/from-tuple.d.mts +2 -0
  1101. package/build/value/codec/from-tuple.mjs +35 -0
  1102. package/build/value/codec/from-type.d.mts +2 -0
  1103. package/build/value/codec/from-type.mjs +22 -0
  1104. package/build/value/codec/from-union.d.mts +2 -0
  1105. package/build/value/codec/from-union.mjs +42 -0
  1106. package/build/value/codec/has.d.mts +5 -0
  1107. package/build/value/codec/has.mjs +93 -0
  1108. package/build/value/codec/index.d.mts +3 -0
  1109. package/build/value/codec/index.mjs +3 -0
  1110. package/build/value/convert/convert.d.mts +13 -0
  1111. package/build/value/convert/convert.mjs +15 -0
  1112. package/build/value/convert/from-additional.d.mts +6 -0
  1113. package/build/value/convert/from-additional.mjs +18 -0
  1114. package/build/value/convert/from-array.d.mts +2 -0
  1115. package/build/value/convert/from-array.mjs +8 -0
  1116. package/build/value/convert/from-base.d.mts +2 -0
  1117. package/build/value/convert/from-base.mjs +4 -0
  1118. package/build/value/convert/from-bigint.d.mts +2 -0
  1119. package/build/value/convert/from-bigint.mjs +9 -0
  1120. package/build/value/convert/from-boolean.d.mts +2 -0
  1121. package/build/value/convert/from-boolean.mjs +9 -0
  1122. package/build/value/convert/from-cyclic.d.mts +2 -0
  1123. package/build/value/convert/from-cyclic.mjs +6 -0
  1124. package/build/value/convert/from-enum.d.mts +2 -0
  1125. package/build/value/convert/from-enum.mjs +7 -0
  1126. package/build/value/convert/from-integer.d.mts +2 -0
  1127. package/build/value/convert/from-integer.mjs +9 -0
  1128. package/build/value/convert/from-intersect.d.mts +2 -0
  1129. package/build/value/convert/from-intersect.mjs +8 -0
  1130. package/build/value/convert/from-literal.d.mts +2 -0
  1131. package/build/value/convert/from-literal.mjs +44 -0
  1132. package/build/value/convert/from-null.d.mts +2 -0
  1133. package/build/value/convert/from-null.mjs +9 -0
  1134. package/build/value/convert/from-number.d.mts +2 -0
  1135. package/build/value/convert/from-number.mjs +9 -0
  1136. package/build/value/convert/from-object.d.mts +2 -0
  1137. package/build/value/convert/from-object.mjs +28 -0
  1138. package/build/value/convert/from-record.d.mts +2 -0
  1139. package/build/value/convert/from-record.mjs +23 -0
  1140. package/build/value/convert/from-ref.d.mts +2 -0
  1141. package/build/value/convert/from-ref.mjs +8 -0
  1142. package/build/value/convert/from-string.d.mts +2 -0
  1143. package/build/value/convert/from-string.mjs +9 -0
  1144. package/build/value/convert/from-template-literal.d.mts +2 -0
  1145. package/build/value/convert/from-template-literal.mjs +7 -0
  1146. package/build/value/convert/from-tuple.d.mts +2 -0
  1147. package/build/value/convert/from-tuple.mjs +11 -0
  1148. package/build/value/convert/from-type.d.mts +2 -0
  1149. package/build/value/convert/from-type.mjs +45 -0
  1150. package/build/value/convert/from-undefined.d.mts +2 -0
  1151. package/build/value/convert/from-undefined.mjs +9 -0
  1152. package/build/value/convert/from-union.d.mts +2 -0
  1153. package/build/value/convert/from-union.mjs +13 -0
  1154. package/build/value/convert/from-void.d.mts +2 -0
  1155. package/build/value/convert/from-void.mjs +9 -0
  1156. package/build/value/convert/index.d.mts +1 -0
  1157. package/build/value/convert/index.mjs +1 -0
  1158. package/build/value/convert/try/index.d.mts +1 -0
  1159. package/build/value/convert/try/index.mjs +1 -0
  1160. package/build/value/convert/try/try-bigint.d.mts +2 -0
  1161. package/build/value/convert/try/try-bigint.mjs +74 -0
  1162. package/build/value/convert/try/try-boolean.d.mts +2 -0
  1163. package/build/value/convert/try/try-boolean.mjs +64 -0
  1164. package/build/value/convert/try/try-null.d.mts +2 -0
  1165. package/build/value/convert/try/try-null.mjs +61 -0
  1166. package/build/value/convert/try/try-number.d.mts +2 -0
  1167. package/build/value/convert/try/try-number.mjs +76 -0
  1168. package/build/value/convert/try/try-result.d.mts +8 -0
  1169. package/build/value/convert/try/try-result.mjs +18 -0
  1170. package/build/value/convert/try/try-string.d.mts +2 -0
  1171. package/build/value/convert/try/try-string.mjs +56 -0
  1172. package/build/value/convert/try/try-undefined.d.mts +2 -0
  1173. package/build/value/convert/try/try-undefined.mjs +61 -0
  1174. package/build/value/convert/try/try.d.mts +7 -0
  1175. package/build/value/convert/try/try.mjs +7 -0
  1176. package/build/value/create/create.d.mts +5 -0
  1177. package/build/value/create/create.mjs +11 -0
  1178. package/build/value/create/error.d.mts +5 -0
  1179. package/build/value/create/error.mjs +7 -0
  1180. package/build/value/create/from-array.d.mts +2 -0
  1181. package/build/value/create/from-array.mjs +10 -0
  1182. package/build/value/create/from-async-iterator.d.mts +2 -0
  1183. package/build/value/create/from-async-iterator.mjs +5 -0
  1184. package/build/value/create/from-base.d.mts +2 -0
  1185. package/build/value/create/from-base.mjs +4 -0
  1186. package/build/value/create/from-bigint.d.mts +2 -0
  1187. package/build/value/create/from-bigint.mjs +7 -0
  1188. package/build/value/create/from-boolean.d.mts +2 -0
  1189. package/build/value/create/from-boolean.mjs +4 -0
  1190. package/build/value/create/from-constructor.d.mts +2 -0
  1191. package/build/value/create/from-constructor.mjs +10 -0
  1192. package/build/value/create/from-cyclic.d.mts +2 -0
  1193. package/build/value/create/from-cyclic.mjs +6 -0
  1194. package/build/value/create/from-default.d.mts +3 -0
  1195. package/build/value/create/from-default.mjs +10 -0
  1196. package/build/value/create/from-enum.d.mts +2 -0
  1197. package/build/value/create/from-enum.mjs +6 -0
  1198. package/build/value/create/from-function.d.mts +2 -0
  1199. package/build/value/create/from-function.mjs +6 -0
  1200. package/build/value/create/from-integer.d.mts +2 -0
  1201. package/build/value/create/from-integer.mjs +8 -0
  1202. package/build/value/create/from-intersect.d.mts +2 -0
  1203. package/build/value/create/from-intersect.mjs +8 -0
  1204. package/build/value/create/from-iterator.d.mts +2 -0
  1205. package/build/value/create/from-iterator.mjs +5 -0
  1206. package/build/value/create/from-literal.d.mts +2 -0
  1207. package/build/value/create/from-literal.mjs +4 -0
  1208. package/build/value/create/from-never.d.mts +2 -0
  1209. package/build/value/create/from-never.mjs +5 -0
  1210. package/build/value/create/from-null.d.mts +2 -0
  1211. package/build/value/create/from-null.mjs +4 -0
  1212. package/build/value/create/from-number.d.mts +2 -0
  1213. package/build/value/create/from-number.mjs +8 -0
  1214. package/build/value/create/from-object.d.mts +2 -0
  1215. package/build/value/create/from-object.mjs +9 -0
  1216. package/build/value/create/from-promise.d.mts +2 -0
  1217. package/build/value/create/from-promise.mjs +5 -0
  1218. package/build/value/create/from-record.d.mts +2 -0
  1219. package/build/value/create/from-record.mjs +8 -0
  1220. package/build/value/create/from-ref.d.mts +2 -0
  1221. package/build/value/create/from-ref.mjs +9 -0
  1222. package/build/value/create/from-string.d.mts +2 -0
  1223. package/build/value/create/from-string.mjs +9 -0
  1224. package/build/value/create/from-symbol.d.mts +2 -0
  1225. package/build/value/create/from-symbol.mjs +4 -0
  1226. package/build/value/create/from-template-literal.d.mts +2 -0
  1227. package/build/value/create/from-template-literal.mjs +11 -0
  1228. package/build/value/create/from-tuple.d.mts +2 -0
  1229. package/build/value/create/from-tuple.mjs +5 -0
  1230. package/build/value/create/from-type.d.mts +2 -0
  1231. package/build/value/create/from-type.mjs +69 -0
  1232. package/build/value/create/from-undefined.d.mts +2 -0
  1233. package/build/value/create/from-undefined.mjs +4 -0
  1234. package/build/value/create/from-union.d.mts +2 -0
  1235. package/build/value/create/from-union.mjs +9 -0
  1236. package/build/value/create/from-void.d.mts +2 -0
  1237. package/build/value/create/from-void.mjs +4 -0
  1238. package/build/value/create/index.d.mts +2 -0
  1239. package/build/value/create/index.mjs +2 -0
  1240. package/build/value/default/default.d.mts +13 -0
  1241. package/build/value/default/default.mjs +15 -0
  1242. package/build/value/default/from-array.d.mts +2 -0
  1243. package/build/value/default/from-array.mjs +12 -0
  1244. package/build/value/default/from-base.d.mts +2 -0
  1245. package/build/value/default/from-base.mjs +5 -0
  1246. package/build/value/default/from-cyclic.d.mts +2 -0
  1247. package/build/value/default/from-cyclic.mjs +7 -0
  1248. package/build/value/default/from-default.d.mts +3 -0
  1249. package/build/value/default/from-default.mjs +13 -0
  1250. package/build/value/default/from-intersect.d.mts +2 -0
  1251. package/build/value/default/from-intersect.mjs +9 -0
  1252. package/build/value/default/from-object.d.mts +2 -0
  1253. package/build/value/default/from-object.mjs +32 -0
  1254. package/build/value/default/from-record.d.mts +2 -0
  1255. package/build/value/default/from-record.mjs +26 -0
  1256. package/build/value/default/from-ref.d.mts +2 -0
  1257. package/build/value/default/from-ref.mjs +9 -0
  1258. package/build/value/default/from-tuple.d.mts +2 -0
  1259. package/build/value/default/from-tuple.mjs +14 -0
  1260. package/build/value/default/from-type.d.mts +2 -0
  1261. package/build/value/default/from-type.mjs +27 -0
  1262. package/build/value/default/from-union.d.mts +2 -0
  1263. package/build/value/default/from-union.mjs +14 -0
  1264. package/build/value/default/index.d.mts +1 -0
  1265. package/build/value/default/index.mjs +1 -0
  1266. package/build/value/delta/diff.d.mts +10 -0
  1267. package/build/value/delta/diff.mjs +129 -0
  1268. package/build/value/delta/edit.d.mts +24 -0
  1269. package/build/value/delta/edit.mjs +17 -0
  1270. package/build/value/delta/index.d.mts +3 -0
  1271. package/build/value/delta/index.mjs +3 -0
  1272. package/build/value/delta/patch.d.mts +8 -0
  1273. package/build/value/delta/patch.mjs +42 -0
  1274. package/build/value/equal/equal.d.mts +2 -0
  1275. package/build/value/equal/equal.mjs +6 -0
  1276. package/build/value/equal/index.d.mts +1 -0
  1277. package/build/value/equal/index.mjs +1 -0
  1278. package/build/value/errors/errors.d.mts +16 -0
  1279. package/build/value/errors/errors.mjs +17 -0
  1280. package/build/value/errors/index.d.mts +1 -0
  1281. package/build/value/errors/index.mjs +1 -0
  1282. package/build/value/hash/hash.d.mts +6 -0
  1283. package/build/value/hash/hash.mjs +10 -0
  1284. package/build/value/hash/index.d.mts +1 -0
  1285. package/build/value/hash/index.mjs +1 -0
  1286. package/build/value/index.d.mts +20 -0
  1287. package/build/value/index.mjs +26 -0
  1288. package/build/value/mutate/error.d.mts +3 -0
  1289. package/build/value/mutate/error.mjs +6 -0
  1290. package/build/value/mutate/from-array.d.mts +2 -0
  1291. package/build/value/mutate/from-array.mjs +16 -0
  1292. package/build/value/mutate/from-object.d.mts +2 -0
  1293. package/build/value/mutate/from-object.mjs +27 -0
  1294. package/build/value/mutate/from-unknown.d.mts +2 -0
  1295. package/build/value/mutate/from-unknown.mjs +7 -0
  1296. package/build/value/mutate/from-value.d.mts +2 -0
  1297. package/build/value/mutate/from-value.mjs +12 -0
  1298. package/build/value/mutate/index.d.mts +1 -0
  1299. package/build/value/mutate/index.mjs +1 -0
  1300. package/build/value/mutate/mutate.d.mts +9 -0
  1301. package/build/value/mutate/mutate.mjs +39 -0
  1302. package/build/value/parse/index.d.mts +1 -0
  1303. package/build/value/parse/index.mjs +1 -0
  1304. package/build/value/parse/parse.d.mts +11 -0
  1305. package/build/value/parse/parse.mjs +47 -0
  1306. package/build/value/pipeline/index.d.mts +1 -0
  1307. package/build/value/pipeline/index.mjs +1 -0
  1308. package/build/value/pipeline/pipeline.d.mts +10 -0
  1309. package/build/value/pipeline/pipeline.mjs +15 -0
  1310. package/build/value/pointer/index.d.mts +1 -0
  1311. package/build/value/pointer/index.mjs +1 -0
  1312. package/build/value/repair/error.d.mts +7 -0
  1313. package/build/value/repair/error.mjs +8 -0
  1314. package/build/value/repair/from-array.d.mts +2 -0
  1315. package/build/value/repair/from-array.mjs +39 -0
  1316. package/build/value/repair/from-base.d.mts +2 -0
  1317. package/build/value/repair/from-base.mjs +8 -0
  1318. package/build/value/repair/from-enum.d.mts +2 -0
  1319. package/build/value/repair/from-enum.mjs +7 -0
  1320. package/build/value/repair/from-intersect.d.mts +2 -0
  1321. package/build/value/repair/from-intersect.mjs +8 -0
  1322. package/build/value/repair/from-object.d.mts +2 -0
  1323. package/build/value/repair/from-object.mjs +33 -0
  1324. package/build/value/repair/from-record.d.mts +2 -0
  1325. package/build/value/repair/from-record.mjs +33 -0
  1326. package/build/value/repair/from-ref.d.mts +2 -0
  1327. package/build/value/repair/from-ref.mjs +9 -0
  1328. package/build/value/repair/from-template-literal.d.mts +2 -0
  1329. package/build/value/repair/from-template-literal.mjs +7 -0
  1330. package/build/value/repair/from-tuple.d.mts +2 -0
  1331. package/build/value/repair/from-tuple.mjs +12 -0
  1332. package/build/value/repair/from-type.d.mts +2 -0
  1333. package/build/value/repair/from-type.mjs +86 -0
  1334. package/build/value/repair/from-union.d.mts +2 -0
  1335. package/build/value/repair/from-union.mjs +71 -0
  1336. package/build/value/repair/from-unknown.d.mts +2 -0
  1337. package/build/value/repair/from-unknown.mjs +12 -0
  1338. package/build/value/repair/index.d.mts +1 -0
  1339. package/build/value/repair/index.mjs +1 -0
  1340. package/build/value/repair/repair.d.mts +17 -0
  1341. package/build/value/repair/repair.mjs +20 -0
  1342. package/build/value/shared/index.d.mts +1 -0
  1343. package/build/value/shared/index.mjs +2 -0
  1344. package/build/value/shared/optional-undefined.d.mts +2 -0
  1345. package/build/value/shared/optional-undefined.mjs +15 -0
  1346. package/build/value/value.d.mts +16 -0
  1347. package/build/value/value.mjs +16 -0
  1348. package/changes.json +5 -0
  1349. package/license +23 -0
  1350. package/package.json +99 -0
  1351. package/readme.md +285 -0
@@ -0,0 +1,25 @@
1
+ import { type TUnreachable } from '../../../system/unreachable/index.mjs';
2
+ import { type TSchema } from '../../types/schema.mjs';
3
+ import { type TArray } from '../../types/array.mjs';
4
+ import { type TAsyncIterator } from '../../types/async-iterator.mjs';
5
+ import { type TConstructor } from '../../types/constructor.mjs';
6
+ import { type TFunction } from '../../types/function.mjs';
7
+ import { type TIntersect } from '../../types/intersect.mjs';
8
+ import { type TIterator } from '../../types/iterator.mjs';
9
+ import { type TObject } from '../../types/object.mjs';
10
+ import { type TPromise } from '../../types/promise.mjs';
11
+ import { type TProperties, type TPropertyValues } from '../../types/properties.mjs';
12
+ import { type TRecord } from '../../types/record.mjs';
13
+ import { type TTuple } from '../../types/tuple.mjs';
14
+ import { type TUnion } from '../../types/union.mjs';
15
+ import { type TRef } from '../../types/ref.mjs';
16
+ import { type TInterfaceDeferred } from '../../action/interface.mjs';
17
+ type TFromRef<Context extends TProperties, Ref extends string, Dependencies extends string[]> = Ref extends Dependencies[number] ? Dependencies : Ref extends keyof Context ? TFromType<Context, Context[Ref], [...Dependencies, Ref]> : TUnreachable;
18
+ type TFromProperties<Context extends TProperties, Properties extends TProperties, Dependencies extends string[], Types extends TSchema[] = TPropertyValues<Properties>> = TFromTypes<Context, Types, Dependencies>;
19
+ type TFromTypes<Context extends TProperties, Types extends TSchema[], Dependencies extends string[]> = Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromTypes<Context, Right, TFromType<Context, Left, Dependencies>> : Dependencies;
20
+ type TFromType<Context extends TProperties, Type extends TSchema, Result extends string[]> = (Type extends TRef<infer Ref extends string> ? TFromRef<Context, Ref, Result> : Type extends TArray<infer Type extends TSchema> ? TFromType<Context, Type, Result> : Type extends TAsyncIterator<infer Type extends TSchema> ? TFromType<Context, Type, Result> : Type extends TConstructor<infer Parameters extends TSchema[], infer InstanceType extends TSchema> ? TFromTypes<Context, [...Parameters, InstanceType], Result> : Type extends TFunction<infer Parameters extends TSchema[], infer ReturnType extends TSchema> ? TFromTypes<Context, [...Parameters, ReturnType], Result> : Type extends TInterfaceDeferred<TSchema[], infer Properties extends TProperties> ? TFromProperties<Context, Properties, Result> : Type extends TIntersect<infer Types extends TSchema[]> ? TFromTypes<Context, Types, Result> : Type extends TIterator<infer Type extends TSchema> ? TFromType<Context, Type, Result> : Type extends TObject<infer Properties extends TProperties> ? TFromProperties<Context, Properties, Result> : Type extends TPromise<infer Type extends TSchema> ? TFromType<Context, Type, Result> : Type extends TUnion<infer Types extends TSchema[]> ? TFromTypes<Context, Types, Result> : Type extends TTuple<infer Types extends TSchema[]> ? TFromTypes<Context, Types, Result> : Type extends TRecord<string, infer Type extends TSchema> ? TFromType<Context, Type, Result> : Result);
21
+ /** Returns dependent cyclic keys for the given type. This function is used to dead-type-eliminate (DTE) for initializing TCyclic types. */
22
+ export type TCyclicDependencies<Context extends TProperties, Key extends string, Type extends TSchema, Result extends string[] = TFromType<Context, Type, [Key]>> = Result;
23
+ /** Returns dependent cyclic keys for the given type. This function is used to dead-type-eliminate (DTE) for initializing TCyclic types. */
24
+ export declare function CyclicDependencies<Context extends TProperties, Key extends string, Type extends TSchema>(context: Context, key: Key, type: Type): TCyclicDependencies<Context, Key, Type>;
25
+ export {};
@@ -0,0 +1,53 @@
1
+ // deno-fmt-ignore-file
2
+ import { Unreachable } from '../../../system/unreachable/index.mjs';
3
+ import { IsArray } from '../../types/array.mjs';
4
+ import { IsAsyncIterator } from '../../types/async-iterator.mjs';
5
+ import { IsConstructor } from '../../types/constructor.mjs';
6
+ import { IsFunction } from '../../types/function.mjs';
7
+ import { IsIntersect } from '../../types/intersect.mjs';
8
+ import { IsIterator } from '../../types/iterator.mjs';
9
+ import { IsObject } from '../../types/object.mjs';
10
+ import { IsPromise } from '../../types/promise.mjs';
11
+ import { PropertyValues } from '../../types/properties.mjs';
12
+ import { IsRecord, RecordValue } from '../../types/record.mjs';
13
+ import { IsTuple } from '../../types/tuple.mjs';
14
+ import { IsUnion } from '../../types/union.mjs';
15
+ import { IsRef } from '../../types/ref.mjs';
16
+ import { IsInterfaceDeferred } from '../../action/interface.mjs';
17
+ function FromRef(context, ref, result) {
18
+ return (result.includes(ref)
19
+ ? result
20
+ : ref in context
21
+ ? FromType(context, context[ref], [...result, ref])
22
+ : Unreachable());
23
+ }
24
+ function FromProperties(context, properties, result) {
25
+ const types = PropertyValues(properties);
26
+ return FromTypes(context, types, result);
27
+ }
28
+ function FromTypes(context, types, result) {
29
+ return types.reduce((result, left) => {
30
+ return FromType(context, left, result);
31
+ }, result);
32
+ }
33
+ function FromType(context, type, result) {
34
+ return (IsRef(type) ? FromRef(context, type.$ref, result) :
35
+ IsArray(type) ? FromType(context, type.items, result) :
36
+ IsAsyncIterator(type) ? FromType(context, type.iteratorItems, result) :
37
+ IsConstructor(type) ? FromTypes(context, [...type.parameters, type.instanceType], result) :
38
+ IsFunction(type) ? FromTypes(context, [...type.parameters, type.returnType], result) :
39
+ IsInterfaceDeferred(type) ? FromProperties(context, type.parameters[1], result) :
40
+ IsIntersect(type) ? FromTypes(context, type.allOf, result) :
41
+ IsIterator(type) ? FromType(context, type.iteratorItems, result) :
42
+ IsObject(type) ? FromProperties(context, type.properties, result) :
43
+ IsPromise(type) ? FromType(context, type.item, result) :
44
+ IsUnion(type) ? FromTypes(context, type.anyOf, result) :
45
+ IsTuple(type) ? FromTypes(context, type.items, result) :
46
+ IsRecord(type) ? FromType(context, RecordValue(type), result) :
47
+ result);
48
+ }
49
+ /** Returns dependent cyclic keys for the given type. This function is used to dead-type-eliminate (DTE) for initializing TCyclic types. */
50
+ export function CyclicDependencies(context, key, type) {
51
+ const result = FromType(context, type, [key]);
52
+ return result;
53
+ }
@@ -0,0 +1,31 @@
1
+ import { type TSchema } from '../../types/schema.mjs';
2
+ import { type TAny } from '../../types/any.mjs';
3
+ import { type TArray } from '../../types/array.mjs';
4
+ import { type TAsyncIterator } from '../../types/async-iterator.mjs';
5
+ import { type TConstructor } from '../../types/constructor.mjs';
6
+ import { type TCyclic } from '../../types/cyclic.mjs';
7
+ import { type TFunction } from '../../types/function.mjs';
8
+ import { type TIntersect } from '../../types/intersect.mjs';
9
+ import { type TIterator } from '../../types/iterator.mjs';
10
+ import { type TObject } from '../../types/object.mjs';
11
+ import { type TPromise } from '../../types/promise.mjs';
12
+ import { type TProperties } from '../../types/properties.mjs';
13
+ import { type TRecord } from '../../types/record.mjs';
14
+ import { type TRef } from '../../types/ref.mjs';
15
+ import { type TTuple } from '../../types/tuple.mjs';
16
+ import { type TUnion } from '../../types/union.mjs';
17
+ import { type TUnknown } from '../../types/unknown.mjs';
18
+ type TFromRef<_Ref extends string> = (TAny);
19
+ type TFromProperties<Properties extends TProperties, Result extends TProperties = {
20
+ [Key in keyof Properties]: TFromType<Properties[Key]>;
21
+ }> = {
22
+ [Key in keyof Result]: Result[Key];
23
+ };
24
+ type TFromTypes<Types extends TSchema[], Result extends TSchema[] = []> = Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromTypes<Right, [...Result, TFromType<Left>]> : Result;
25
+ type TFromType<Type extends TSchema> = (Type extends TRef<infer Ref extends string> ? TFromRef<Ref> : Type extends TArray<infer Type extends TSchema> ? TArray<TFromType<Type>> : Type extends TAsyncIterator<infer Type extends TSchema> ? TAsyncIterator<TFromType<Type>> : Type extends TConstructor<infer Parameters extends TSchema[], infer InstanceType extends TSchema> ? TFunction<TFromTypes<Parameters>, TFromType<InstanceType>> : Type extends TFunction<infer Parameters extends TSchema[], infer ReturnType extends TSchema> ? TFunction<TFromTypes<Parameters>, TFromType<ReturnType>> : Type extends TIntersect<infer Types extends TSchema[]> ? TIntersect<TFromTypes<Types>> : Type extends TIterator<infer Type extends TSchema> ? TIterator<TFromType<Type>> : Type extends TObject<infer Properties extends TProperties> ? TObject<TFromProperties<Properties>> : Type extends TPromise<infer Type extends TSchema> ? TPromise<TFromType<Type>> : Type extends TRecord<infer Pattern extends string, infer Value extends TSchema> ? TRecord<Pattern, TFromType<Value>> : Type extends TUnion<infer Types extends TSchema[]> ? TUnion<TFromTypes<Types>> : Type extends TTuple<infer Types extends TSchema[]> ? TTuple<TFromTypes<Types>> : Type);
26
+ type TCyclicAnyFromParameters<Defs extends TProperties, Ref extends string> = (Ref extends keyof Defs ? TFromType<Defs[Ref]> : TUnknown);
27
+ /** Transforms TCyclic TRef's into TAny's. This function is used prior to TExtends checks to enable cyclics to be structurally checked and terminated (with TAny) at first point of recursion, what would otherwise be a recursive TRef.*/
28
+ export type TCyclicExtends<Type extends TCyclic, Result extends TSchema = TCyclicAnyFromParameters<Type['$defs'], Type['$ref']>> = Result;
29
+ /** Transforms TCyclic TRef's into TAny's. This function is used prior to TExtends checks to enable cyclics to be structurally checked and terminated (with TAny) at first point of recursion, what would otherwise be a recursive TRef.*/
30
+ export declare function CyclicExtends<Type extends TCyclic>(type: Type): TCyclicExtends<Type>;
31
+ export {};
@@ -0,0 +1,53 @@
1
+ // deno-fmt-ignore-file
2
+ import { Guard } from '../../../guard/index.mjs';
3
+ import { Any } from '../../types/any.mjs';
4
+ import { Array, IsArray, ArrayOptions } from '../../types/array.mjs';
5
+ import { AsyncIterator, IsAsyncIterator } from '../../types/async-iterator.mjs';
6
+ import { Constructor, IsConstructor } from '../../types/constructor.mjs';
7
+ import { Function as _Function, IsFunction } from '../../types/function.mjs';
8
+ import { Intersect, IsIntersect } from '../../types/intersect.mjs';
9
+ import { Iterator, IsIterator } from '../../types/iterator.mjs';
10
+ import { Object, IsObject } from '../../types/object.mjs';
11
+ import { Promise, IsPromise } from '../../types/promise.mjs';
12
+ import { IsRecord, Record, RecordKey, RecordValue } from '../../types/record.mjs';
13
+ import { IsRef } from '../../types/ref.mjs';
14
+ import { Tuple, IsTuple } from '../../types/tuple.mjs';
15
+ import { Union, IsUnion } from '../../types/union.mjs';
16
+ import { Unknown } from '../../types/unknown.mjs';
17
+ function FromRef(_ref) {
18
+ return Any();
19
+ }
20
+ function FromProperties(properties) {
21
+ return Guard.Keys(properties).reduce((result, key) => {
22
+ return { ...result, [key]: FromType(properties[key]) };
23
+ }, {});
24
+ }
25
+ function FromTypes(types) {
26
+ return types.reduce((result, left) => {
27
+ return [...result, FromType(left)];
28
+ }, []);
29
+ }
30
+ function FromType(type) {
31
+ return (IsRef(type) ? FromRef(type.$ref) :
32
+ IsArray(type) ? Array(FromType(type.items), ArrayOptions(type)) :
33
+ IsAsyncIterator(type) ? AsyncIterator(FromType(type.iteratorItems)) :
34
+ IsConstructor(type) ? Constructor(FromTypes(type.parameters), FromType(type.instanceType)) :
35
+ IsFunction(type) ? _Function(FromTypes(type.parameters), FromType(type.returnType)) :
36
+ IsIntersect(type) ? Intersect(FromTypes(type.allOf)) :
37
+ IsIterator(type) ? Iterator(FromType(type.iteratorItems)) :
38
+ IsObject(type) ? Object(FromProperties(type.properties)) :
39
+ IsPromise(type) ? Promise(FromType(type.item)) :
40
+ IsRecord(type) ? Record(RecordKey(type), FromType(RecordValue(type))) :
41
+ IsUnion(type) ? Union(FromTypes(type.anyOf)) :
42
+ IsTuple(type) ? Tuple(FromTypes(type.items)) :
43
+ type);
44
+ }
45
+ function CyclicAnyFromParameters(defs, ref) {
46
+ return (ref in defs
47
+ ? FromType(defs[ref])
48
+ : Unknown());
49
+ }
50
+ /** Transforms TCyclic TRef's into TAny's. This function is used prior to TExtends checks to enable cyclics to be structurally checked and terminated (with TAny) at first point of recursion, what would otherwise be a recursive TRef.*/
51
+ export function CyclicExtends(type) {
52
+ return CyclicAnyFromParameters(type.$defs, type.$ref);
53
+ }
@@ -0,0 +1,6 @@
1
+ export * from './candidates.mjs';
2
+ export * from './check.mjs';
3
+ export * from './dependencies.mjs';
4
+ export * from './extends.mjs';
5
+ export * from './instantiate.mjs';
6
+ export * from './target.mjs';
@@ -0,0 +1,6 @@
1
+ export * from './candidates.mjs';
2
+ export * from './check.mjs';
3
+ export * from './dependencies.mjs';
4
+ export * from './extends.mjs';
5
+ export * from './instantiate.mjs';
6
+ export * from './target.mjs';
@@ -0,0 +1,20 @@
1
+ import { type TSchema } from '../../types/schema.mjs';
2
+ import { type TProperties } from '../../types/properties.mjs';
3
+ import { type TCyclic } from '../../types/cyclic.mjs';
4
+ import { type TObject } from '../../types/object.mjs';
5
+ import { type TCyclicDependencies } from '../cyclic/dependencies.mjs';
6
+ import { type TInterfaceDeferred } from '../../action/index.mjs';
7
+ import { type TInstantiateProperties } from '../instantiate.mjs';
8
+ import { type TInstantiateTypes } from '../instantiate.mjs';
9
+ import { type TEvaluateIntersect } from '../evaluate/evaluate.mjs';
10
+ type TCyclicInterface<Context extends TProperties, Heritage extends TSchema[], Properties extends TProperties, InstantiatedHeritage extends TSchema[] = TInstantiateTypes<Context, {
11
+ callstack: [];
12
+ }, Heritage>, instantiatedProperties extends TProperties = TInstantiateProperties<{}, {
13
+ callstack: [];
14
+ }, Properties>, EvaluatedInterface extends TSchema = TEvaluateIntersect<[...InstantiatedHeritage, TObject<instantiatedProperties>]>> = EvaluatedInterface;
15
+ type TCyclicDefinitions<Context extends TProperties, Dependencies extends string[], Result extends TProperties = {
16
+ [Key in Extract<keyof Context, Dependencies[number]>]: Context[Key] extends TInterfaceDeferred<infer Heritage extends TSchema[], infer Properties extends TProperties> ? TCyclicInterface<Context, Heritage, Properties> : Context[Key];
17
+ }> = Result;
18
+ export type TInstantiateCyclic<Context extends TProperties, Ref extends string, Type extends TSchema, Dependencies extends string[] = TCyclicDependencies<Context, Ref, Type>, Definitions extends TProperties = TCyclicDefinitions<Context, Dependencies>, Result extends TSchema = TCyclic<Definitions, Ref>> = Result;
19
+ export declare function InstantiateCyclic<Context extends TProperties, Ref extends string, Type extends TSchema>(context: Context, ref: Ref, type: Type): TInstantiateCyclic<Context, Ref, Type>;
20
+ export {};
@@ -0,0 +1,29 @@
1
+ // deno-fmt-ignore-file
2
+ import { Guard } from '../../../guard/index.mjs';
3
+ import { Cyclic } from '../../types/cyclic.mjs';
4
+ import { Object } from '../../types/object.mjs';
5
+ import { CyclicDependencies } from '../cyclic/dependencies.mjs';
6
+ import { IsInterfaceDeferred } from '../../action/index.mjs';
7
+ import { InstantiateProperties } from '../instantiate.mjs';
8
+ import { InstantiateTypes } from '../instantiate.mjs';
9
+ import { EvaluateIntersect } from '../evaluate/evaluate.mjs';
10
+ function CyclicInterface(context, heritage, properties) {
11
+ const instantiatedHeritage = InstantiateTypes(context, { callstack: [] }, heritage);
12
+ const instantiatedProperties = InstantiateProperties({}, { callstack: [] }, properties);
13
+ const evaluatedInterface = EvaluateIntersect([...instantiatedHeritage, Object(instantiatedProperties)]);
14
+ return evaluatedInterface;
15
+ }
16
+ function CyclicDefinitions(context, dependencies) {
17
+ const keys = Guard.Keys(context).filter(key => dependencies.includes(key));
18
+ return keys.reduce((result, key) => {
19
+ const type = context[key];
20
+ const instantiatedType = IsInterfaceDeferred(type) ? CyclicInterface(context, type.parameters[0], type.parameters[1]) : type;
21
+ return { ...result, [key]: instantiatedType };
22
+ }, {});
23
+ }
24
+ export function InstantiateCyclic(context, ref, type) {
25
+ const dependencies = CyclicDependencies(context, ref, type);
26
+ const definitions = CyclicDefinitions(context, dependencies);
27
+ const result = Cyclic(definitions, ref);
28
+ return result;
29
+ }
@@ -0,0 +1,10 @@
1
+ import { type TSchema } from '../../types/schema.mjs';
2
+ import { type TProperties } from '../../types/properties.mjs';
3
+ import { type TNever } from '../../types/never.mjs';
4
+ import { type TRef } from '../../types/ref.mjs';
5
+ type TResolve<Defs extends TProperties, Ref extends string> = (Ref extends keyof Defs ? Defs[Ref] extends TRef<infer Ref extends string> ? TResolve<Defs, Ref> : Defs[Ref] : TNever);
6
+ /** Returns the target Type from the Defs or Never if target is non-resolvable */
7
+ export type TCyclicTarget<Defs extends TProperties, Ref extends string, Result extends TSchema = TResolve<Defs, Ref>> = Result;
8
+ /** Returns the target Type from the Defs or Never if target is non-resolvable */
9
+ export declare function CyclicTarget<Defs extends TProperties, Ref extends string>(defs: Defs, ref: Ref): TCyclicTarget<Defs, Ref>;
10
+ export {};
@@ -0,0 +1,16 @@
1
+ // deno-fmt-ignore-file
2
+ import { Never } from '../../types/never.mjs';
3
+ import { IsRef } from '../../types/ref.mjs';
4
+ function Resolve(defs, ref) {
5
+ return (ref in defs
6
+ ? IsRef(defs[ref])
7
+ // @ts-ignore 5.0.4 - does not see $ref
8
+ ? Resolve(defs, defs[ref].$ref)
9
+ : defs[ref]
10
+ : Never());
11
+ }
12
+ /** Returns the target Type from the Defs or Never if target is non-resolvable */
13
+ export function CyclicTarget(defs, ref) {
14
+ const result = Resolve(defs, ref);
15
+ return result;
16
+ }
@@ -0,0 +1,14 @@
1
+ import { type TSchema } from '../../types/schema.mjs';
2
+ import { type TEnum, type TEnumValue } from '../../types/enum.mjs';
3
+ import { type TUnion } from '../../types/union.mjs';
4
+ import { type TLiteral } from '../../types/literal.mjs';
5
+ import { type TNull } from '../../types/null.mjs';
6
+ import { type TNever } from '../../types/never.mjs';
7
+ type TFromEnumValue<Value extends TEnumValue, Result extends TSchema = Value extends string | number ? TLiteral<Value> : Value extends null ? TNull : TNever> = Result;
8
+ export type TEnumValuesToVariants<Values extends TEnumValue[], Result extends TSchema[] = []> = (Values extends [infer Left extends TEnumValue, ...infer Right extends TEnumValue[]] ? TEnumValuesToVariants<Right, [...Result, TFromEnumValue<Left>]> : Result);
9
+ export declare function EnumValuesToVariants<Values extends TEnumValue[]>(values: [...Values]): TEnumValuesToVariants<Values>;
10
+ export type TEnumValuesToUnion<Values extends TEnumValue[], Variants extends TSchema[] = TEnumValuesToVariants<Values>, Results extends TSchema = TUnion<Variants>> = Results;
11
+ export declare function EnumValuesToUnion<Values extends TEnumValue[]>(values: [...Values]): TEnumValuesToUnion<Values>;
12
+ export type TEnumToUnion<Type extends TEnum, Result extends TSchema = TEnumValuesToUnion<Type['enum']>> = Result;
13
+ export declare function EnumToUnion<Type extends TEnum>(type: Type): TEnumToUnion<Type>;
14
+ export {};
@@ -0,0 +1,24 @@
1
+ // deno-fmt-ignore-file
2
+ import { Guard } from '../../../guard/index.mjs';
3
+ import { Union } from '../../types/union.mjs';
4
+ import { Literal } from '../../types/literal.mjs';
5
+ import { Null } from '../../types/null.mjs';
6
+ import { Never } from '../../types/never.mjs';
7
+ function FromEnumValue(value) {
8
+ return (Guard.IsString(value) || Guard.IsNumber(value) ? Literal(value) :
9
+ Guard.IsNull(value) ? Null() :
10
+ Never());
11
+ }
12
+ export function EnumValuesToVariants(values) {
13
+ const result = values.map(value => FromEnumValue(value));
14
+ return result;
15
+ }
16
+ export function EnumValuesToUnion(values) {
17
+ const variants = EnumValuesToVariants(values);
18
+ const result = Union(variants);
19
+ return result;
20
+ }
21
+ export function EnumToUnion(type) {
22
+ const result = EnumValuesToUnion(type.enum);
23
+ return result;
24
+ }
@@ -0,0 +1,2 @@
1
+ export * from './enum-to-union.mjs';
2
+ export * from './typescript-enum-to-enum-values.mjs';
@@ -0,0 +1,2 @@
1
+ export * from './enum-to-union.mjs';
2
+ export * from './typescript-enum-to-enum-values.mjs';
@@ -0,0 +1,8 @@
1
+ import { type TEnumValue } from '../../types/enum.mjs';
2
+ import { type TUnionToTuple } from '../helpers/union.mjs';
3
+ export type TTypeScriptEnumLike = Record<PropertyKey, TEnumValue>;
4
+ export declare function IsTypeScriptEnumLike(value: unknown): value is TTypeScriptEnumLike;
5
+ type TReduceEnumValues<Keys extends string[], Type extends TTypeScriptEnumLike, Result extends TEnumValue[] = []> = (Keys extends [infer Left extends string, ...infer Right extends string[]] ? TReduceEnumValues<Right, Type, [...Result, Type[Left]]> : Result);
6
+ export type TTypeScriptEnumToEnumValues<Type extends TTypeScriptEnumLike, EnumKeys extends string[] = TUnionToTuple<Extract<keyof Type, string>>, Elements extends TEnumValue[] = TReduceEnumValues<EnumKeys, Type>> = Elements;
7
+ export declare function TypeScriptEnumToEnumValues<Type extends TTypeScriptEnumLike>(type: Type): TTypeScriptEnumToEnumValues<Type>;
8
+ export {};
@@ -0,0 +1,9 @@
1
+ // deno-fmt-ignore-file
2
+ import { Guard } from '../../../guard/index.mjs';
3
+ export function IsTypeScriptEnumLike(value) {
4
+ return Guard.IsObjectNotArray(value);
5
+ }
6
+ export function TypeScriptEnumToEnumValues(type) {
7
+ const keys = Guard.Keys(type).filter((key) => isNaN(key));
8
+ return keys.reduce((result, key) => [...result, type[key]], []);
9
+ }
@@ -0,0 +1,16 @@
1
+ import { type TSchema } from '../../types/schema.mjs';
2
+ import { type TAny } from '../../types/any.mjs';
3
+ import { type TNever } from '../../types/never.mjs';
4
+ import { type TObject } from '../../types/object.mjs';
5
+ import { type TUnion } from '../../types/union.mjs';
6
+ import { type TCompare, ResultRightInside, ResultLeftInside, ResultEqual } from './compare.mjs';
7
+ import { type TFlatten } from './flatten.mjs';
8
+ import { type TEvaluateType } from './evaluate.mjs';
9
+ type TBroadFilter<Type extends TSchema, Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TCompare<Type, Left> extends typeof ResultRightInside ? TBroadFilter<Type, Right, [...Result]> : TBroadFilter<Type, Right, [...Result, Left]> : Result);
10
+ type TIsBroadestType<Type extends TSchema, Types extends TSchema[]> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TCompare<Type, Left> extends typeof ResultLeftInside | typeof ResultEqual ? false : TIsBroadestType<Type, Right> : true);
11
+ type TBroadenType<Type extends TSchema, Types extends TSchema[], Evaluated extends TSchema = TEvaluateType<Type>, Result extends TSchema[] = (Evaluated extends TAny ? [Evaluated] : TIsBroadestType<Evaluated, Types> extends true ? [...TBroadFilter<Evaluated, Types>, Evaluated] : Types)> = Result;
12
+ type TBroadenTypes<Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? Left extends TObject ? TBroadenTypes<Right, [...Result, Left]> : TBroadenTypes<Right, TBroadenType<Left, Result>> : Result);
13
+ export type TBroaden<Types extends TSchema[], Broadened extends TSchema[] = TBroadenTypes<Types>, Flattened extends TSchema[] = TFlatten<Broadened>, Result extends TSchema = (Flattened extends [] ? TNever : Flattened extends [infer Type extends TSchema] ? Type : TUnion<Flattened>)> = Result;
14
+ /** Broadens a set of types and returns either the most broad type, or union or disjoint types. */
15
+ export declare function Broaden<Types extends TSchema[]>(types: [...Types]): TBroaden<Types>;
16
+ export {};
@@ -0,0 +1,48 @@
1
+ // deno-fmt-ignore-file
2
+ import { Guard } from '../../../guard/index.mjs';
3
+ import { IsSchema } from '../../types/schema.mjs';
4
+ import { IsAny } from '../../types/any.mjs';
5
+ import { Never } from '../../types/never.mjs';
6
+ import { IsObject } from '../../types/object.mjs';
7
+ import { Union } from '../../types/union.mjs';
8
+ import { Compare, ResultRightInside, ResultLeftInside, ResultEqual } from './compare.mjs';
9
+ import { Flatten } from './flatten.mjs';
10
+ import { EvaluateType } from './evaluate.mjs';
11
+ function BroadFilter(type, types) {
12
+ return types.filter(left => {
13
+ return Compare(type, left) === ResultRightInside
14
+ ? false
15
+ : true;
16
+ });
17
+ }
18
+ function IsBroadestType(type, types) {
19
+ const result = types.some(left => {
20
+ const result = Compare(type, left);
21
+ return Guard.IsEqual(result, ResultLeftInside) || Guard.IsEqual(result, ResultEqual);
22
+ });
23
+ return Guard.IsEqual(result, false);
24
+ }
25
+ function BroadenType(type, types) {
26
+ const evaluated = EvaluateType(type);
27
+ return (IsAny(evaluated) ? [evaluated] :
28
+ IsBroadestType(evaluated, types)
29
+ ? [...BroadFilter(evaluated, types), evaluated]
30
+ : types);
31
+ }
32
+ function BroadenTypes(types, result = []) {
33
+ const [left, ...right] = types;
34
+ return (IsSchema(left)
35
+ ? IsObject(left)
36
+ ? BroadenTypes(right, [...result, left]) // special: push object type
37
+ : BroadenTypes(right, BroadenType(left, result))
38
+ : result);
39
+ }
40
+ /** Broadens a set of types and returns either the most broad type, or union or disjoint types. */
41
+ export function Broaden(types) {
42
+ const broadened = BroadenTypes(types);
43
+ const flattened = Flatten(broadened);
44
+ const result = (flattened.length === 0 ? Never() :
45
+ flattened.length === 1 ? flattened[0] :
46
+ Union(flattened));
47
+ return result;
48
+ }
@@ -0,0 +1,15 @@
1
+ import { type TSchema } from '../../types/index.mjs';
2
+ import { type TUnknown } from '../../types/unknown.mjs';
3
+ import { type TExtends, ExtendsResult } from "../../extends/index.mjs";
4
+ export declare const ResultEqual = "equal";
5
+ export declare const ResultDisjoint = "disjoint";
6
+ export declare const ResultLeftInside = "left-inside";
7
+ export declare const ResultRightInside = "right-inside";
8
+ export type TCompareResult = typeof ResultEqual | typeof ResultDisjoint | typeof ResultLeftInside | typeof ResultRightInside;
9
+ /** Compares left and right types and determines their set relationship */
10
+ export type TCompare<Left extends TSchema, Right extends TSchema, Extends extends [ExtendsResult.TResult, ExtendsResult.TResult] = [
11
+ Left extends TUnknown ? ExtendsResult.TExtendsFalse : TExtends<{}, Left, Right>,
12
+ Left extends TUnknown ? ExtendsResult.TExtendsTrue : TExtends<{}, Right, Left>
13
+ ]> = (Extends extends [ExtendsResult.TExtendsTrueLike, ExtendsResult.TExtendsTrueLike] ? typeof ResultEqual : Extends extends [ExtendsResult.TExtendsTrueLike, ExtendsResult.TExtendsFalse] ? typeof ResultLeftInside : Extends extends [ExtendsResult.TExtendsFalse, ExtendsResult.TExtendsTrueLike] ? typeof ResultRightInside : typeof ResultDisjoint);
14
+ /** Compares left and right types and determines their set relationship. */
15
+ export declare function Compare<Left extends TSchema, Right extends TSchema>(left: Left, right: Right): TCompare<Left, Right>;
@@ -0,0 +1,21 @@
1
+ // deno-fmt-ignore-file
2
+ import { IsUnknown } from '../../types/unknown.mjs';
3
+ import { Extends, ExtendsResult } from "../../extends/index.mjs";
4
+ // ------------------------------------------------------------------
5
+ // TCompare
6
+ // ------------------------------------------------------------------
7
+ export const ResultEqual = 'equal';
8
+ export const ResultDisjoint = 'disjoint';
9
+ export const ResultLeftInside = 'left-inside';
10
+ export const ResultRightInside = 'right-inside';
11
+ /** Compares left and right types and determines their set relationship. */
12
+ export function Compare(left, right) {
13
+ const extendsCheck = [
14
+ IsUnknown(left) ? ExtendsResult.ExtendsFalse() : Extends({}, left, right),
15
+ IsUnknown(left) ? ExtendsResult.ExtendsTrue({}) : Extends({}, right, left),
16
+ ];
17
+ return (ExtendsResult.IsExtendsTrueLike(extendsCheck[0]) && ExtendsResult.IsExtendsTrueLike(extendsCheck[1]) ? ResultEqual :
18
+ ExtendsResult.IsExtendsTrueLike(extendsCheck[0]) && ExtendsResult.IsExtendsFalse(extendsCheck[1]) ? ResultLeftInside :
19
+ ExtendsResult.IsExtendsFalse(extendsCheck[0]) && ExtendsResult.IsExtendsTrueLike(extendsCheck[1]) ? ResultRightInside :
20
+ ResultDisjoint);
21
+ }
@@ -0,0 +1,30 @@
1
+ import { type TUnreachable } from '../../../system/unreachable/index.mjs';
2
+ import { type TReadonly, type TReadonlyAdd, type TReadonlyRemove } from '../../types/_readonly.mjs';
3
+ import { type TOptional, type TOptionalAdd, type TOptionalRemove } from '../../types/_optional.mjs';
4
+ import { type TSchema } from '../../types/schema.mjs';
5
+ import { type TProperties } from '../../types/properties.mjs';
6
+ import { type TObject } from '../../types/object.mjs';
7
+ import { type TNever } from '../../types/never.mjs';
8
+ import { type TTuple } from '../../types/tuple.mjs';
9
+ import { type TTupleElementsToProperties } from '../tuple/to-object.mjs';
10
+ import { type TEvaluateIntersect } from './evaluate.mjs';
11
+ type TIsReadonlyProperty<Left extends TSchema, Right extends TSchema> = (Left extends TReadonly<Left> ? Right extends TReadonly<Right> ? true : false : false);
12
+ type TIsOptionalProperty<Left extends TSchema, Right extends TSchema> = (Left extends TOptional<Left> ? Right extends TOptional<Right> ? true : false : false);
13
+ type TCompositeProperty<Left extends TSchema, Right extends TSchema, IsReadonly extends boolean = TIsReadonlyProperty<Left, Right>, IsOptional extends boolean = TIsOptionalProperty<Left, Right>, Evaluated extends TSchema = TEvaluateIntersect<[Left, Right]>, Property extends TSchema = TReadonlyRemove<TOptionalRemove<Evaluated>>> = ([
14
+ IsReadonly,
15
+ IsOptional
16
+ ] extends [true, true] ? TReadonlyAdd<TOptionalAdd<Property>> : [
17
+ IsReadonly,
18
+ IsOptional
19
+ ] extends [true, false] ? TReadonlyAdd<Property> : [
20
+ IsReadonly,
21
+ IsOptional
22
+ ] extends [false, true] ? TOptionalAdd<Property> : Property);
23
+ type TCompositePropertyKey<Left extends TProperties, Right extends TProperties, Key extends PropertyKey, Result extends TSchema = (Key extends keyof Left ? Key extends keyof Right ? TCompositeProperty<Left[Key], Right[Key]> : Left[Key] : Key extends keyof Right ? Right[Key] : TNever)> = Result;
24
+ type TCompositeProperties<Left extends TProperties, Right extends TProperties, Result extends TProperties = {
25
+ [Key in keyof (Right & Left)]: TCompositePropertyKey<Left, Right, Key>;
26
+ }> = Result;
27
+ type TGetProperties<Type extends TSchema, Result extends TProperties = (Type extends TObject<infer Properties extends TProperties> ? Properties : Type extends TTuple<infer Types extends TSchema[]> ? TTupleElementsToProperties<Types> : TUnreachable)> = Result;
28
+ export type TComposite<Left extends TSchema, Right extends TSchema, LeftProperties extends TProperties = TGetProperties<Left>, RightProperties extends TProperties = TGetProperties<Right>, Properties extends TProperties = TCompositeProperties<LeftProperties, RightProperties>, Result extends TSchema = TObject<Properties>> = Result;
29
+ export declare function Composite<Left extends TSchema, Right extends TSchema>(left: Left, right: Right): TComposite<Left, Right>;
30
+ export {};
@@ -0,0 +1,63 @@
1
+ // deno-fmt-ignore-file
2
+ // deno-lint-ignore-file
3
+ import { Unreachable } from '../../../system/unreachable/index.mjs';
4
+ import { Guard } from '../../../guard/index.mjs';
5
+ import { ReadonlyAdd, ReadonlyRemove, IsReadonly } from '../../types/_readonly.mjs';
6
+ import { OptionalAdd, OptionalRemove, IsOptional } from '../../types/_optional.mjs';
7
+ import { Object, IsObject } from '../../types/object.mjs';
8
+ import { Never } from '../../types/never.mjs';
9
+ import { IsTuple } from '../../types/tuple.mjs';
10
+ import { TupleElementsToProperties } from '../tuple/to-object.mjs';
11
+ import { EvaluateIntersect } from './evaluate.mjs';
12
+ function IsReadonlyProperty(left, right) {
13
+ return (IsReadonly(left) ? IsReadonly(right) ? true : false : false);
14
+ }
15
+ function IsOptionalProperty(left, right) {
16
+ return (IsOptional(left) ? IsOptional(right) ? true : false : false);
17
+ }
18
+ function CompositeProperty(left, right) {
19
+ const isReadonly = IsReadonlyProperty(left, right);
20
+ const isOptional = IsOptionalProperty(left, right);
21
+ const evaluated = EvaluateIntersect([left, right]);
22
+ // Modifiers need to be discarded and re-applied
23
+ const property = ReadonlyRemove(OptionalRemove(evaluated));
24
+ return (isReadonly && isOptional ? ReadonlyAdd(OptionalAdd(property)) :
25
+ isReadonly && !isOptional ? ReadonlyAdd(property) :
26
+ !isReadonly && isOptional ? OptionalAdd(property) :
27
+ property);
28
+ }
29
+ function CompositePropertyKey(left, right, key) {
30
+ return (key in left
31
+ ? key in right
32
+ ? CompositeProperty(left[key], right[key])
33
+ : left[key]
34
+ : key in right
35
+ ? right[key]
36
+ : Never());
37
+ }
38
+ function CompositeProperties(left, right) {
39
+ const keys = new Set([...Guard.Keys(right), ...Guard.Keys(left)]);
40
+ return [...keys].reduce((result, key) => {
41
+ return { ...result, [key]: CompositePropertyKey(left, right, key) };
42
+ }, {});
43
+ }
44
+ // ------------------------------------------------------------------
45
+ // deno-coverage-ignore-start - symmetric unreachable | internal
46
+ //
47
+ // Composite is called by Distribute which provisions the type as
48
+ // either TObject ot TTuple. Fall-through unreachable.
49
+ //
50
+ // ------------------------------------------------------------------
51
+ function GetProperties(type) {
52
+ const result = (IsObject(type) ? type.properties :
53
+ IsTuple(type) ? TupleElementsToProperties(type.items) :
54
+ Unreachable() // {}
55
+ );
56
+ return result;
57
+ }
58
+ export function Composite(left, right) {
59
+ const leftProperties = GetProperties(left);
60
+ const rightProperties = GetProperties(right);
61
+ const properties = CompositeProperties(leftProperties, rightProperties);
62
+ return Object(properties);
63
+ }
@@ -0,0 +1,27 @@
1
+ import { type TSchema } from '../../types/schema.mjs';
2
+ import { type TUnion } from '../../types/union.mjs';
3
+ import { type TObject } from '../../types/object.mjs';
4
+ import { type TTuple } from '../../types/tuple.mjs';
5
+ import { type TComposite } from './composite.mjs';
6
+ import { type TNarrow } from './narrow.mjs';
7
+ import { type TEvaluateType } from './evaluate.mjs';
8
+ import { type TEvaluateIntersect } from './evaluate.mjs';
9
+ type TIsObjectLike<Type extends TSchema> = Type extends TObject | TTuple ? true : false;
10
+ type TIsUnionOperand<Left extends TSchema, Right extends TSchema, IsUnionLeft extends boolean = Left extends TUnion ? true : false, IsUnionRight extends boolean = Right extends TUnion ? true : false, Result extends boolean = IsUnionLeft extends true ? true : IsUnionRight extends true ? true : false> = Result;
11
+ type TDistributeOperation<Left extends TSchema, Right extends TSchema, EvaluatedLeft extends TSchema = TEvaluateType<Left>, EvaluatedRight extends TSchema = TEvaluateType<Right>, IsUnionOperand extends boolean = TIsUnionOperand<EvaluatedLeft, EvaluatedRight>, IsObjectLeft extends boolean = TIsObjectLike<EvaluatedLeft>, IsObjectRight extends boolean = TIsObjectLike<EvaluatedRight>, Result extends TSchema = ([
12
+ IsUnionOperand
13
+ ] extends [true] ? TEvaluateIntersect<[EvaluatedLeft, EvaluatedRight]> : [
14
+ IsObjectLeft,
15
+ IsObjectRight
16
+ ] extends [true, true] ? TComposite<EvaluatedLeft, EvaluatedRight> : [
17
+ IsObjectLeft,
18
+ IsObjectRight
19
+ ] extends [true, false] ? EvaluatedLeft : [
20
+ IsObjectLeft,
21
+ IsObjectRight
22
+ ] extends [false, true] ? EvaluatedRight : TNarrow<EvaluatedLeft, EvaluatedRight>)> = Result;
23
+ type TDistributeType<Type extends TSchema, Distribution extends TSchema[], Result extends TSchema[] = []> = (Distribution extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TDistributeType<Type, Right, [...Result, TDistributeOperation<Type, Left>]> : Result extends [] ? [Type] : Result);
24
+ type TDistributeUnion<Types extends TSchema[], Distribution extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TDistributeUnion<Right, Distribution, [...Result, ...TDistribute<[Left], Distribution>]> : Result);
25
+ export type TDistribute<Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? Left extends TUnion<infer UnionTypes extends TSchema[]> ? TDistribute<Right, TDistributeUnion<UnionTypes, Result>> : TDistribute<Right, TDistributeType<Left, Result>> : Result);
26
+ export declare function Distribute<Types extends TSchema[]>(types: [...Types], result?: TSchema[]): TDistribute<Types>;
27
+ export {};