@depup/typebox 1.1.23-depup.0 → 1.3.8-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 (952) hide show
  1. package/README.md +2 -2
  2. package/build/compile/code.mjs +2 -2
  3. package/build/compile/validator.d.mts +7 -14
  4. package/build/compile/validator.mjs +32 -57
  5. package/build/error/errors.d.mts +1 -7
  6. package/build/format/_idna.mjs +36 -6
  7. package/build/format/_puny.mjs +4 -1
  8. package/build/format/_registry.mjs +9 -9
  9. package/build/format/format.d.mts +9 -9
  10. package/build/format/format.mjs +9 -9
  11. package/build/format/uuid.d.mts +2 -2
  12. package/build/format/uuid.mjs +3 -3
  13. package/build/guard/emit.d.mts +3 -5
  14. package/build/guard/emit.mjs +12 -13
  15. package/build/guard/guard.d.mts +15 -7
  16. package/build/guard/guard.mjs +40 -15
  17. package/build/guard/string.mjs +16 -4
  18. package/build/schema/build.d.mts +11 -7
  19. package/build/schema/build.mjs +28 -9
  20. package/build/schema/check.d.mts +3 -3
  21. package/build/schema/compile.d.mts +4 -4
  22. package/build/schema/compile.mjs +9 -9
  23. package/build/schema/engine/_context.mjs +3 -3
  24. package/build/schema/engine/_functions.mjs +34 -16
  25. package/build/schema/engine/_refine.mjs +4 -4
  26. package/build/schema/engine/_stack.d.mts +4 -4
  27. package/build/schema/engine/_stack.mjs +52 -18
  28. package/build/schema/engine/additionalItems.mjs +17 -7
  29. package/build/schema/engine/additionalProperties.mjs +1 -1
  30. package/build/schema/engine/boolean.d.mts +3 -3
  31. package/build/schema/engine/boolean.mjs +4 -4
  32. package/build/schema/engine/contains.mjs +18 -6
  33. package/build/schema/engine/dynamicRef.d.mts +6 -0
  34. package/build/schema/engine/dynamicRef.mjs +25 -0
  35. package/build/schema/engine/enum.mjs +1 -1
  36. package/build/schema/engine/index.d.mts +0 -1
  37. package/build/schema/engine/index.mjs +0 -1
  38. package/build/schema/engine/items.mjs +26 -6
  39. package/build/schema/engine/maxContains.mjs +3 -3
  40. package/build/schema/engine/minContains.mjs +14 -4
  41. package/build/schema/engine/not.mjs +4 -2
  42. package/build/schema/engine/oneOf.mjs +7 -6
  43. package/build/schema/engine/recursiveRef.mjs +3 -3
  44. package/build/schema/engine/ref.mjs +4 -10
  45. package/build/schema/engine/schema.mjs +15 -15
  46. package/build/schema/engine/type.mjs +15 -19
  47. package/build/schema/parse.d.mts +3 -3
  48. package/build/schema/pointer/index.d.mts +1 -1
  49. package/build/schema/pointer/index.mjs +1 -1
  50. package/build/schema/pointer/pointer.mjs +11 -1
  51. package/build/schema/resolve/ref.d.mts +1 -0
  52. package/build/schema/resolve/ref.mjs +61 -11
  53. package/build/schema/static/_canonical.d.mts +7 -0
  54. package/build/schema/static/{~elements.d.mts → _elements.d.mts} +3 -3
  55. package/build/schema/static/items.d.mts +1 -1
  56. package/build/schema/static/prefixItems.d.mts +1 -1
  57. package/build/schema/static/properties.d.mts +27 -6
  58. package/build/schema/static/ref.d.mts +1 -1
  59. package/build/schema/static/required.d.mts +1 -11
  60. package/build/schema/static/schema.d.mts +3 -2
  61. package/build/schema/static/static.d.mts +2 -2
  62. package/build/schema/types/_refine.d.mts +2 -2
  63. package/build/schema/types/_refine.mjs +4 -4
  64. package/build/schema/types/dependencies.mjs +1 -1
  65. package/build/schema/types/index.d.mts +0 -1
  66. package/build/schema/types/index.mjs +0 -1
  67. package/build/schema/types/schema.d.mts +1 -1
  68. package/build/schema/types/schema.mjs +2 -2
  69. package/build/system/locale/_config.d.mts +1 -1
  70. package/build/system/locale/ar_001.d.mts +1 -1
  71. package/build/system/locale/ar_001.mjs +0 -1
  72. package/build/system/locale/bn_BD.d.mts +1 -1
  73. package/build/system/locale/bn_BD.mjs +0 -1
  74. package/build/system/locale/cs_CZ.d.mts +1 -1
  75. package/build/system/locale/cs_CZ.mjs +0 -1
  76. package/build/system/locale/de_DE.d.mts +1 -1
  77. package/build/system/locale/de_DE.mjs +0 -1
  78. package/build/system/locale/el_GR.d.mts +1 -1
  79. package/build/system/locale/el_GR.mjs +0 -1
  80. package/build/system/locale/en_US.d.mts +1 -1
  81. package/build/system/locale/en_US.mjs +0 -1
  82. package/build/system/locale/es_419.d.mts +1 -1
  83. package/build/system/locale/es_419.mjs +0 -1
  84. package/build/system/locale/es_AR.d.mts +1 -1
  85. package/build/system/locale/es_AR.mjs +0 -1
  86. package/build/system/locale/es_ES.d.mts +1 -1
  87. package/build/system/locale/es_ES.mjs +0 -1
  88. package/build/system/locale/es_MX.d.mts +1 -1
  89. package/build/system/locale/es_MX.mjs +0 -1
  90. package/build/system/locale/fa_IR.d.mts +1 -1
  91. package/build/system/locale/fa_IR.mjs +0 -1
  92. package/build/system/locale/fil_PH.d.mts +1 -1
  93. package/build/system/locale/fil_PH.mjs +0 -1
  94. package/build/system/locale/fr_CA.d.mts +1 -1
  95. package/build/system/locale/fr_CA.mjs +0 -1
  96. package/build/system/locale/fr_FR.d.mts +1 -1
  97. package/build/system/locale/fr_FR.mjs +0 -1
  98. package/build/system/locale/ha_NG.d.mts +1 -1
  99. package/build/system/locale/ha_NG.mjs +0 -1
  100. package/build/system/locale/hi_IN.d.mts +1 -1
  101. package/build/system/locale/hi_IN.mjs +0 -1
  102. package/build/system/locale/hu_HU.d.mts +1 -1
  103. package/build/system/locale/hu_HU.mjs +0 -1
  104. package/build/system/locale/id_ID.d.mts +1 -1
  105. package/build/system/locale/id_ID.mjs +0 -1
  106. package/build/system/locale/it_IT.d.mts +1 -1
  107. package/build/system/locale/it_IT.mjs +0 -1
  108. package/build/system/locale/ja_JP.d.mts +1 -1
  109. package/build/system/locale/ja_JP.mjs +0 -1
  110. package/build/system/locale/ko_KR.d.mts +1 -1
  111. package/build/system/locale/ko_KR.mjs +0 -1
  112. package/build/system/locale/ms_MY.d.mts +1 -1
  113. package/build/system/locale/ms_MY.mjs +0 -1
  114. package/build/system/locale/nl_NL.d.mts +1 -1
  115. package/build/system/locale/nl_NL.mjs +0 -1
  116. package/build/system/locale/pl_PL.d.mts +1 -1
  117. package/build/system/locale/pl_PL.mjs +0 -1
  118. package/build/system/locale/pt_BR.d.mts +1 -1
  119. package/build/system/locale/pt_BR.mjs +0 -1
  120. package/build/system/locale/pt_PT.d.mts +1 -1
  121. package/build/system/locale/pt_PT.mjs +0 -1
  122. package/build/system/locale/ro_RO.d.mts +1 -1
  123. package/build/system/locale/ro_RO.mjs +0 -1
  124. package/build/system/locale/ru_RU.d.mts +1 -1
  125. package/build/system/locale/ru_RU.mjs +0 -1
  126. package/build/system/locale/sv_SE.d.mts +1 -1
  127. package/build/system/locale/sv_SE.mjs +0 -1
  128. package/build/system/locale/sw_TZ.d.mts +1 -1
  129. package/build/system/locale/sw_TZ.mjs +0 -1
  130. package/build/system/locale/th_TH.d.mts +1 -1
  131. package/build/system/locale/th_TH.mjs +0 -1
  132. package/build/system/locale/tr_TR.d.mts +1 -1
  133. package/build/system/locale/tr_TR.mjs +0 -1
  134. package/build/system/locale/uk_UA.d.mts +1 -1
  135. package/build/system/locale/uk_UA.mjs +0 -1
  136. package/build/system/locale/ur_PK.d.mts +1 -1
  137. package/build/system/locale/ur_PK.mjs +0 -1
  138. package/build/system/locale/vi_VN.d.mts +1 -1
  139. package/build/system/locale/vi_VN.mjs +0 -1
  140. package/build/system/locale/yo_NG.d.mts +1 -1
  141. package/build/system/locale/yo_NG.mjs +0 -1
  142. package/build/system/locale/zh_Hans.d.mts +1 -1
  143. package/build/system/locale/zh_Hans.mjs +0 -1
  144. package/build/system/locale/zh_Hant.d.mts +1 -1
  145. package/build/system/locale/zh_Hant.mjs +0 -1
  146. package/build/system/memory/clone.d.mts +2 -3
  147. package/build/system/memory/clone.mjs +73 -26
  148. package/build/system/settings/settings.d.mts +15 -0
  149. package/build/system/settings/settings.mjs +3 -1
  150. package/build/type/action/_add_immutable.d.mts +11 -0
  151. package/build/type/action/_add_immutable.mjs +11 -0
  152. package/build/type/action/_add_optional.d.mts +11 -0
  153. package/build/type/action/_add_optional.mjs +11 -0
  154. package/build/type/action/_add_readonly.d.mts +11 -0
  155. package/build/type/action/_add_readonly.mjs +11 -0
  156. package/build/type/action/_remove_immutable.d.mts +11 -0
  157. package/build/type/action/_remove_immutable.mjs +11 -0
  158. package/build/type/action/_remove_optional.d.mts +11 -0
  159. package/build/type/action/_remove_optional.mjs +11 -0
  160. package/build/type/action/_remove_readonly.d.mts +11 -0
  161. package/build/type/action/_remove_readonly.mjs +11 -0
  162. package/build/type/action/capitalize.d.mts +2 -2
  163. package/build/type/action/capitalize.mjs +2 -3
  164. package/build/type/action/conditional.d.mts +3 -2
  165. package/build/type/action/conditional.mjs +3 -2
  166. package/build/type/action/{constructor-parameters.d.mts → constructor_parameters.d.mts} +2 -2
  167. package/build/type/action/{constructor-parameters.mjs → constructor_parameters.mjs} +2 -3
  168. package/build/type/action/evaluate.d.mts +2 -2
  169. package/build/type/action/evaluate.mjs +2 -3
  170. package/build/type/action/exclude.d.mts +2 -2
  171. package/build/type/action/exclude.mjs +2 -3
  172. package/build/type/action/extract.d.mts +2 -2
  173. package/build/type/action/extract.mjs +2 -3
  174. package/build/type/action/index.d.mts +12 -9
  175. package/build/type/action/index.mjs +12 -9
  176. package/build/type/action/indexed.d.mts +3 -3
  177. package/build/type/action/indexed.mjs +3 -4
  178. package/build/type/action/{instance-type.d.mts → instance_type.d.mts} +2 -2
  179. package/build/type/action/{instance-type.mjs → instance_type.mjs} +2 -3
  180. package/build/type/action/interface.d.mts +2 -2
  181. package/build/type/action/interface.mjs +5 -3
  182. package/build/type/action/keyof.d.mts +2 -2
  183. package/build/type/action/keyof.mjs +2 -3
  184. package/build/type/action/lowercase.d.mts +2 -2
  185. package/build/type/action/lowercase.mjs +2 -3
  186. package/build/type/action/mapped.d.mts +3 -2
  187. package/build/type/action/mapped.mjs +3 -2
  188. package/build/type/action/module.d.mts +8 -7
  189. package/build/type/action/module.mjs +7 -6
  190. package/build/type/action/{non-nullable.d.mts → non_nullable.d.mts} +2 -2
  191. package/build/type/action/{non-nullable.mjs → non_nullable.mjs} +2 -3
  192. package/build/type/action/omit.d.mts +3 -3
  193. package/build/type/action/omit.mjs +3 -4
  194. package/build/type/action/parameters.d.mts +2 -2
  195. package/build/type/action/parameters.mjs +2 -3
  196. package/build/type/action/partial.d.mts +3 -3
  197. package/build/type/action/partial.mjs +2 -3
  198. package/build/type/action/pick.d.mts +3 -3
  199. package/build/type/action/pick.mjs +3 -4
  200. package/build/type/action/readonly_object.d.mts +16 -0
  201. package/build/type/action/readonly_object.mjs +19 -0
  202. package/build/type/action/required.d.mts +2 -2
  203. package/build/type/action/required.mjs +2 -3
  204. package/build/type/action/{return-type.d.mts → return_type.d.mts} +2 -2
  205. package/build/type/action/{return-type.mjs → return_type.mjs} +2 -3
  206. package/build/type/action/uncapitalize.d.mts +2 -2
  207. package/build/type/action/uncapitalize.mjs +2 -3
  208. package/build/type/action/uppercase.d.mts +2 -2
  209. package/build/type/action/uppercase.mjs +2 -3
  210. package/build/type/action/with.d.mts +11 -0
  211. package/build/type/action/with.mjs +11 -0
  212. package/build/type/engine/call/{distribute-arguments.mjs → distribute_arguments.mjs} +1 -7
  213. package/build/type/engine/call/instantiate.d.mts +4 -6
  214. package/build/type/engine/call/instantiate.mjs +6 -5
  215. package/build/type/engine/call/{resolve-arguments.mjs → resolve_arguments.mjs} +3 -9
  216. package/build/type/engine/conditional/instantiate.d.mts +4 -2
  217. package/build/type/engine/conditional/instantiate.mjs +13 -9
  218. package/build/type/engine/constructor_parameters/instantiate.d.mts +14 -0
  219. package/build/type/engine/constructor_parameters/instantiate.mjs +25 -0
  220. package/build/type/engine/cyclic/candidates.d.mts +3 -4
  221. package/build/type/engine/cyclic/candidates.mjs +3 -6
  222. package/build/type/engine/cyclic/check.d.mts +6 -9
  223. package/build/type/engine/cyclic/check.mjs +13 -22
  224. package/build/type/engine/cyclic/dependencies.d.mts +1 -4
  225. package/build/type/engine/cyclic/dependencies.mjs +9 -15
  226. package/build/type/engine/cyclic/extends.d.mts +1 -4
  227. package/build/type/engine/cyclic/extends.mjs +8 -14
  228. package/build/type/engine/cyclic/instantiate.d.mts +2 -5
  229. package/build/type/engine/cyclic/instantiate.mjs +3 -2
  230. package/build/type/engine/enum/index.d.mts +1 -2
  231. package/build/type/engine/enum/index.mjs +1 -2
  232. package/build/type/engine/evaluate/broaden.d.mts +1 -2
  233. package/build/type/engine/evaluate/broaden.mjs +2 -6
  234. package/build/type/engine/evaluate/composite.d.mts +11 -7
  235. package/build/type/engine/evaluate/composite.mjs +11 -7
  236. package/build/type/engine/evaluate/distribute.d.mts +2 -1
  237. package/build/type/engine/evaluate/distribute.mjs +7 -17
  238. package/build/type/engine/evaluate/evaluate.d.mts +17 -5
  239. package/build/type/engine/evaluate/evaluate.mjs +34 -8
  240. package/build/type/engine/evaluate/flatten.d.mts +1 -1
  241. package/build/type/engine/evaluate/instantiate.d.mts +3 -3
  242. package/build/type/engine/evaluate/instantiate.mjs +5 -10
  243. package/build/type/engine/evaluate/narrow.d.mts +3 -3
  244. package/build/type/engine/exclude/instantiate.d.mts +4 -11
  245. package/build/type/engine/exclude/instantiate.mjs +7 -28
  246. package/build/type/engine/exclude/operation.d.mts +10 -0
  247. package/build/type/engine/exclude/operation.mjs +23 -0
  248. package/build/type/engine/extract/instantiate.d.mts +4 -11
  249. package/build/type/engine/extract/instantiate.mjs +7 -28
  250. package/build/type/engine/extract/operation.d.mts +10 -0
  251. package/build/type/engine/extract/operation.mjs +23 -0
  252. package/build/type/engine/helpers/index.d.mts +1 -1
  253. package/build/type/engine/helpers/index.mjs +1 -1
  254. package/build/type/engine/immutable/instantiate_add.d.mts +10 -0
  255. package/build/type/engine/immutable/instantiate_add.mjs +14 -0
  256. package/build/type/engine/immutable/instantiate_remove.d.mts +10 -0
  257. package/build/type/engine/immutable/instantiate_remove.mjs +14 -0
  258. package/build/type/engine/index.d.mts +8 -8
  259. package/build/type/engine/index.mjs +8 -8
  260. package/build/type/engine/indexable/{from-cyclic.d.mts → from_cyclic.d.mts} +1 -1
  261. package/build/type/engine/{object/from-cyclic.mjs → indexable/from_cyclic.mjs} +1 -1
  262. package/build/type/engine/indexable/from_dependent.d.mts +5 -0
  263. package/build/type/engine/indexable/from_dependent.mjs +8 -0
  264. package/build/type/engine/indexable/from_enum.d.mts +6 -0
  265. package/build/type/engine/indexable/from_enum.mjs +8 -0
  266. package/build/type/engine/indexable/{from-intersect.d.mts → from_intersect.d.mts} +1 -1
  267. package/build/type/engine/indexable/{from-intersect.mjs → from_intersect.mjs} +1 -1
  268. package/build/type/engine/indexable/{from-literal.d.mts → from_literal.d.mts} +1 -1
  269. package/build/type/engine/indexable/from_template_literal.d.mts +5 -0
  270. package/build/type/engine/indexable/from_template_literal.mjs +8 -0
  271. package/build/type/engine/indexable/from_type.d.mts +19 -0
  272. package/build/type/engine/indexable/from_type.mjs +25 -0
  273. package/build/type/engine/indexable/{from-union.d.mts → from_union.d.mts} +1 -1
  274. package/build/type/engine/indexable/{from-union.mjs → from_union.mjs} +1 -1
  275. package/build/type/engine/indexable/{to-indexable-keys.d.mts → to_indexable_keys.d.mts} +1 -1
  276. package/build/type/engine/indexable/{to-indexable-keys.mjs → to_indexable_keys.mjs} +1 -1
  277. package/build/type/engine/indexed/from_object.d.mts +16 -0
  278. package/build/type/engine/indexed/from_object.mjs +40 -0
  279. package/build/type/engine/indexed/{from-tuple.d.mts → from_tuple.d.mts} +1 -1
  280. package/build/type/engine/indexed/{from-tuple.mjs → from_tuple.mjs} +1 -1
  281. package/build/type/engine/indexed/from_type.d.mts +11 -0
  282. package/build/type/engine/indexed/from_type.mjs +14 -0
  283. package/build/type/engine/indexed/instantiate.d.mts +7 -12
  284. package/build/type/engine/indexed/instantiate.mjs +13 -22
  285. package/build/type/engine/instance_type/instantiate.d.mts +12 -0
  286. package/build/type/engine/{instance-type → instance_type}/instantiate.mjs +10 -9
  287. package/build/type/engine/instantiate.d.mts +53 -42
  288. package/build/type/engine/instantiate.mjs +92 -106
  289. package/build/type/engine/interface/instantiate.d.mts +6 -7
  290. package/build/type/engine/interface/instantiate.mjs +12 -8
  291. package/build/type/engine/intrinsics/{from-template-literal.d.mts → from_template_literal.d.mts} +3 -3
  292. package/build/type/engine/intrinsics/from_template_literal.mjs +8 -0
  293. package/build/type/engine/intrinsics/{from-type.d.mts → from_type.d.mts} +4 -4
  294. package/build/type/engine/intrinsics/{from-type.mjs → from_type.mjs} +4 -4
  295. package/build/type/engine/intrinsics/{from-union.d.mts → from_union.d.mts} +1 -1
  296. package/build/type/engine/intrinsics/{from-union.mjs → from_union.mjs} +1 -1
  297. package/build/type/engine/intrinsics/instantiate.d.mts +13 -9
  298. package/build/type/engine/intrinsics/instantiate.mjs +29 -25
  299. package/build/type/engine/keyof/from_type.d.mts +15 -0
  300. package/build/type/engine/keyof/from_type.mjs +23 -0
  301. package/build/type/engine/keyof/instantiate.d.mts +6 -17
  302. package/build/type/engine/keyof/instantiate.mjs +12 -28
  303. package/build/type/engine/mapped/instantiate.d.mts +4 -19
  304. package/build/type/engine/mapped/instantiate.mjs +7 -42
  305. package/build/type/engine/mapped/mapped_operation.d.mts +22 -0
  306. package/build/type/engine/mapped/mapped_operation.mjs +42 -0
  307. package/build/type/engine/mapped/mapped_variants.d.mts +17 -0
  308. package/build/type/engine/mapped/mapped_variants.mjs +39 -0
  309. package/build/type/engine/module/instantiate.d.mts +7 -9
  310. package/build/type/engine/module/instantiate.mjs +17 -15
  311. package/build/type/engine/non_nullable/instantiate.d.mts +14 -0
  312. package/build/type/engine/non_nullable/instantiate.mjs +22 -0
  313. package/build/type/engine/object/collapse.d.mts +1 -1
  314. package/build/type/engine/object/collapse.mjs +1 -1
  315. package/build/type/engine/object/{from-cyclic.d.mts → from_cyclic.d.mts} +1 -1
  316. package/build/type/engine/{indexable/from-cyclic.mjs → object/from_cyclic.mjs} +1 -1
  317. package/build/type/engine/object/from_dependent.d.mts +5 -0
  318. package/build/type/engine/object/from_dependent.mjs +8 -0
  319. package/build/type/engine/object/{from-intersect.d.mts → from_intersect.d.mts} +1 -1
  320. package/build/type/engine/object/{from-intersect.mjs → from_intersect.mjs} +1 -1
  321. package/build/type/engine/object/{from-tuple.d.mts → from_tuple.d.mts} +2 -2
  322. package/build/type/engine/object/{from-tuple.mjs → from_tuple.mjs} +2 -2
  323. package/build/type/engine/object/from_type.d.mts +16 -0
  324. package/build/type/engine/object/from_type.mjs +23 -0
  325. package/build/type/engine/object/{from-union.d.mts → from_union.d.mts} +1 -1
  326. package/build/type/engine/object/{from-union.mjs → from_union.mjs} +4 -11
  327. package/build/type/engine/omit/from_type.d.mts +12 -0
  328. package/build/type/engine/omit/from_type.mjs +18 -0
  329. package/build/type/engine/omit/instantiate.d.mts +4 -11
  330. package/build/type/engine/omit/instantiate.mjs +7 -22
  331. package/build/type/engine/optional/instantiate_add.d.mts +10 -0
  332. package/build/type/engine/optional/instantiate_add.mjs +14 -0
  333. package/build/type/engine/optional/instantiate_remove.d.mts +10 -0
  334. package/build/type/engine/optional/instantiate_remove.mjs +14 -0
  335. package/build/type/engine/parameters/instantiate.d.mts +7 -7
  336. package/build/type/engine/parameters/instantiate.mjs +14 -11
  337. package/build/type/engine/{readonly-type/from-cyclic.d.mts → partial/from_cyclic.d.mts} +1 -1
  338. package/build/type/engine/partial/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
  339. package/build/type/engine/partial/from_dependent.d.mts +5 -0
  340. package/build/type/engine/partial/from_dependent.mjs +8 -0
  341. package/build/type/engine/partial/from_intersect.d.mts +5 -0
  342. package/build/type/engine/partial/from_intersect.mjs +8 -0
  343. package/build/type/engine/{readonly-type/from-object.d.mts → partial/from_object.d.mts} +2 -2
  344. package/build/type/engine/partial/{from-object.mjs → from_object.mjs} +2 -2
  345. package/build/type/engine/partial/from_type.d.mts +14 -0
  346. package/build/type/engine/partial/from_type.mjs +20 -0
  347. package/build/type/engine/{readonly-type/from-union.d.mts → partial/from_union.d.mts} +1 -1
  348. package/build/type/engine/{readonly-type/from-union.mjs → partial/from_union.mjs} +1 -1
  349. package/build/type/engine/partial/instantiate.d.mts +4 -4
  350. package/build/type/engine/partial/instantiate.mjs +8 -7
  351. package/build/type/engine/pick/from_type.d.mts +13 -0
  352. package/build/type/engine/pick/from_type.mjs +20 -0
  353. package/build/type/engine/pick/instantiate.d.mts +4 -12
  354. package/build/type/engine/pick/instantiate.mjs +7 -23
  355. package/build/type/engine/priority/index.d.mts +1 -0
  356. package/build/type/engine/priority/index.mjs +1 -0
  357. package/build/type/engine/priority/priority.d.mts +20 -0
  358. package/build/type/engine/priority/priority.mjs +28 -0
  359. package/build/type/engine/readonly/instantiate_add.d.mts +10 -0
  360. package/build/type/engine/readonly/instantiate_add.mjs +14 -0
  361. package/build/type/engine/readonly/instantiate_remove.d.mts +10 -0
  362. package/build/type/engine/readonly/instantiate_remove.mjs +14 -0
  363. package/build/type/engine/{readonly-type/from-array.d.mts → readonly_object/from_array.d.mts} +2 -2
  364. package/build/type/engine/{readonly-type/from-array.mjs → readonly_object/from_array.mjs} +2 -2
  365. package/build/type/engine/{partial/from-cyclic.d.mts → readonly_object/from_cyclic.d.mts} +1 -1
  366. package/build/type/engine/{required/from-cyclic.mjs → readonly_object/from_cyclic.mjs} +1 -1
  367. package/build/type/engine/readonly_object/from_dependent.d.mts +5 -0
  368. package/build/type/engine/readonly_object/from_dependent.mjs +8 -0
  369. package/build/type/engine/readonly_object/from_intersect.d.mts +5 -0
  370. package/build/type/engine/readonly_object/from_intersect.mjs +8 -0
  371. package/build/type/engine/{partial/from-object.d.mts → readonly_object/from_object.d.mts} +2 -2
  372. package/build/type/engine/{readonly-type/from-object.mjs → readonly_object/from_object.mjs} +2 -2
  373. package/build/type/engine/{readonly-type/from-tuple.d.mts → readonly_object/from_tuple.d.mts} +2 -2
  374. package/build/type/engine/{readonly-type/from-tuple.mjs → readonly_object/from_tuple.mjs} +2 -2
  375. package/build/type/engine/readonly_object/from_type.d.mts +18 -0
  376. package/build/type/engine/readonly_object/from_type.mjs +25 -0
  377. package/build/type/engine/{partial/from-union.d.mts → readonly_object/from_union.d.mts} +1 -1
  378. package/build/type/engine/{partial/from-union.mjs → readonly_object/from_union.mjs} +1 -1
  379. package/build/type/engine/readonly_object/instantiate.d.mts +9 -0
  380. package/build/type/engine/readonly_object/instantiate.mjs +15 -0
  381. package/build/type/engine/record/{from-key.d.mts → from_key.d.mts} +11 -11
  382. package/build/type/engine/record/{from-key.mjs → from_key.mjs} +11 -11
  383. package/build/type/engine/record/{from-key-any.mjs → from_key_any.mjs} +1 -1
  384. package/build/type/engine/record/{from-key-enum.d.mts → from_key_enum.d.mts} +3 -3
  385. package/build/type/engine/record/from_key_enum.mjs +8 -0
  386. package/build/type/engine/record/{from-key-integer.mjs → from_key_integer.mjs} +1 -1
  387. package/build/type/engine/record/{from-key-intersect.d.mts → from_key_intersect.d.mts} +1 -1
  388. package/build/type/engine/record/{from-key-intersect.mjs → from_key_intersect.mjs} +1 -1
  389. package/build/type/engine/record/{from-key-number.mjs → from_key_number.mjs} +1 -1
  390. package/build/type/engine/record/{from-key-string.mjs → from_key_string.mjs} +1 -1
  391. package/build/type/engine/record/{from-key-template-literal.d.mts → from_key_template_literal.d.mts} +4 -4
  392. package/build/type/engine/record/from_key_template_literal.mjs +12 -0
  393. package/build/type/engine/record/{from-key-union.mjs → from_key_union.mjs} +1 -1
  394. package/build/type/engine/record/instantiate.d.mts +4 -4
  395. package/build/type/engine/record/instantiate.mjs +9 -8
  396. package/build/type/engine/ref/instantiate.d.mts +4 -4
  397. package/build/type/engine/ref/instantiate.mjs +6 -6
  398. package/build/type/engine/required/{from-cyclic.d.mts → from_cyclic.d.mts} +1 -1
  399. package/build/type/engine/{readonly-type/from-cyclic.mjs → required/from_cyclic.mjs} +1 -1
  400. package/build/type/engine/required/from_dependent.d.mts +5 -0
  401. package/build/type/engine/required/from_dependent.mjs +8 -0
  402. package/build/type/engine/required/from_intersect.d.mts +5 -0
  403. package/build/type/engine/required/from_intersect.mjs +8 -0
  404. package/build/type/engine/required/{from-object.d.mts → from_object.d.mts} +2 -2
  405. package/build/type/engine/required/{from-object.mjs → from_object.mjs} +2 -2
  406. package/build/type/engine/required/from_type.d.mts +14 -0
  407. package/build/type/engine/required/from_type.mjs +20 -0
  408. package/build/type/engine/required/{from-union.d.mts → from_union.d.mts} +1 -1
  409. package/build/type/engine/required/{from-union.mjs → from_union.mjs} +1 -1
  410. package/build/type/engine/required/instantiate.d.mts +4 -4
  411. package/build/type/engine/required/instantiate.mjs +8 -7
  412. package/build/type/engine/return_type/instantiate.d.mts +12 -0
  413. package/build/type/engine/return_type/instantiate.mjs +21 -0
  414. package/build/type/engine/{template-literal → template_literal}/decode.d.mts +4 -4
  415. package/build/type/engine/{template-literal → template_literal}/decode.mjs +6 -12
  416. package/build/type/engine/{template-literal → template_literal}/encode.d.mts +6 -4
  417. package/build/type/engine/{template-literal → template_literal}/encode.mjs +17 -16
  418. package/build/type/engine/{template-literal → template_literal}/index.d.mts +2 -2
  419. package/build/type/engine/{template-literal → template_literal}/index.mjs +2 -2
  420. package/build/type/engine/{template-literal → template_literal}/instantiate.d.mts +4 -4
  421. package/build/type/engine/template_literal/instantiate.mjs +15 -0
  422. package/build/type/engine/{template-literal/is-finite.mjs → template_literal/is_finite.mjs} +3 -7
  423. package/build/type/engine/{template-literal/is-pattern.mjs → template_literal/is_pattern.mjs} +1 -0
  424. package/build/type/engine/this/expand_this.d.mts +16 -0
  425. package/build/type/engine/this/expand_this.mjs +26 -0
  426. package/build/type/engine/with/instantiate.d.mts +8 -0
  427. package/build/type/engine/with/instantiate.mjs +14 -0
  428. package/build/type/extends/any.d.mts +1 -1
  429. package/build/type/extends/any.mjs +1 -1
  430. package/build/type/extends/array.d.mts +2 -2
  431. package/build/type/extends/array.mjs +2 -2
  432. package/build/type/extends/bigint.d.mts +1 -1
  433. package/build/type/extends/bigint.mjs +1 -1
  434. package/build/type/extends/boolean.d.mts +1 -1
  435. package/build/type/extends/boolean.mjs +1 -1
  436. package/build/type/extends/constructor.d.mts +1 -1
  437. package/build/type/extends/constructor.mjs +1 -1
  438. package/build/type/extends/dependent.d.mts +6 -0
  439. package/build/type/extends/dependent.mjs +6 -0
  440. package/build/type/extends/enum.d.mts +5 -5
  441. package/build/type/extends/enum.mjs +4 -3
  442. package/build/type/extends/extends.d.mts +5 -3
  443. package/build/type/extends/extends.mjs +10 -8
  444. package/build/type/extends/{extends-left.d.mts → extends_left.d.mts} +7 -9
  445. package/build/type/extends/{extends-left.mjs → extends_left.mjs} +26 -29
  446. package/build/type/extends/{extends-right.d.mts → extends_right.d.mts} +9 -7
  447. package/build/type/extends/extends_right.mjs +49 -0
  448. package/build/type/extends/function.d.mts +1 -1
  449. package/build/type/extends/function.mjs +1 -1
  450. package/build/type/extends/inference.d.mts +1 -1
  451. package/build/type/extends/inference.mjs +2 -2
  452. package/build/type/extends/integer.d.mts +1 -1
  453. package/build/type/extends/integer.mjs +1 -1
  454. package/build/type/extends/intersect.d.mts +1 -1
  455. package/build/type/extends/intersect.mjs +1 -1
  456. package/build/type/extends/literal.d.mts +2 -2
  457. package/build/type/extends/literal.mjs +2 -2
  458. package/build/type/extends/never.d.mts +1 -1
  459. package/build/type/extends/never.mjs +1 -1
  460. package/build/type/extends/null.d.mts +1 -1
  461. package/build/type/extends/null.mjs +1 -1
  462. package/build/type/extends/number.d.mts +1 -1
  463. package/build/type/extends/number.mjs +1 -1
  464. package/build/type/extends/object.d.mts +10 -3
  465. package/build/type/extends/object.mjs +27 -5
  466. package/build/type/extends/parameters.d.mts +1 -1
  467. package/build/type/extends/parameters.mjs +4 -3
  468. package/build/type/extends/record.d.mts +13 -0
  469. package/build/type/extends/record.mjs +23 -0
  470. package/build/type/extends/result.d.mts +1 -4
  471. package/build/type/extends/result.mjs +0 -3
  472. package/build/type/extends/{return-type.d.mts → return_type.d.mts} +1 -1
  473. package/build/type/extends/{return-type.mjs → return_type.mjs} +1 -1
  474. package/build/type/extends/string.d.mts +1 -1
  475. package/build/type/extends/string.mjs +1 -1
  476. package/build/type/extends/symbol.d.mts +1 -1
  477. package/build/type/extends/symbol.mjs +1 -1
  478. package/build/type/extends/template_literal.d.mts +6 -0
  479. package/build/type/extends/template_literal.mjs +7 -0
  480. package/build/type/extends/tuple.d.mts +5 -8
  481. package/build/type/extends/tuple.mjs +8 -7
  482. package/build/type/extends/undefined.d.mts +1 -1
  483. package/build/type/extends/undefined.mjs +1 -1
  484. package/build/type/extends/union.d.mts +1 -1
  485. package/build/type/extends/union.mjs +4 -3
  486. package/build/type/extends/unknown.d.mts +1 -1
  487. package/build/type/extends/unknown.mjs +1 -1
  488. package/build/type/extends/void.d.mts +1 -1
  489. package/build/type/extends/void.mjs +1 -1
  490. package/build/type/script/mapping.d.mts +86 -98
  491. package/build/type/script/mapping.mjs +95 -92
  492. package/build/type/script/parser.d.mts +42 -40
  493. package/build/type/script/parser.mjs +23 -22
  494. package/build/type/script/script.d.mts +3 -4
  495. package/build/type/script/script.mjs +3 -2
  496. package/build/type/script/token/internal/guard.d.mts +1 -1
  497. package/build/type/script/token/internal/guard.mjs +1 -1
  498. package/build/type/script/token/internal/take.mjs +5 -9
  499. package/build/type/script/token/until.mjs +4 -7
  500. package/build/type/types/_codec.d.mts +12 -12
  501. package/build/type/types/_codec.mjs +0 -1
  502. package/build/type/types/_immutable.d.mts +2 -9
  503. package/build/type/types/_immutable.mjs +2 -10
  504. package/build/type/types/_optional.d.mts +2 -9
  505. package/build/type/types/_optional.mjs +2 -11
  506. package/build/type/types/_readonly.d.mts +2 -9
  507. package/build/type/types/_readonly.mjs +2 -10
  508. package/build/type/types/_refine.d.mts +13 -8
  509. package/build/type/types/_refine.mjs +20 -4
  510. package/build/type/types/array.d.mts +2 -1
  511. package/build/type/types/array.mjs +2 -1
  512. package/build/type/types/call.d.mts +3 -3
  513. package/build/type/types/call.mjs +3 -2
  514. package/build/type/types/deferred.d.mts +1 -0
  515. package/build/type/types/deferred.mjs +1 -1
  516. package/build/type/types/dependent.d.mts +17 -0
  517. package/build/type/types/{iterator.mjs → dependent.mjs} +9 -9
  518. package/build/type/types/enum.d.mts +5 -3
  519. package/build/type/types/enum.mjs +7 -2
  520. package/build/type/types/function.mjs +1 -1
  521. package/build/type/types/index.d.mts +2 -5
  522. package/build/type/types/index.mjs +2 -5
  523. package/build/type/types/number.d.mts +1 -1
  524. package/build/type/types/number.mjs +1 -1
  525. package/build/type/types/object.mjs +1 -1
  526. package/build/type/types/properties.d.mts +2 -1
  527. package/build/type/types/record.d.mts +19 -15
  528. package/build/type/types/record.mjs +19 -17
  529. package/build/type/types/static.d.mts +3 -6
  530. package/build/type/types/{template-literal.d.mts → template_literal.d.mts} +6 -4
  531. package/build/type/types/{template-literal.mjs → template_literal.mjs} +10 -4
  532. package/build/type/types/unsafe.d.mts +1 -2
  533. package/build/type/types/unsafe.mjs +5 -3
  534. package/build/typebox.d.mts +11 -15
  535. package/build/typebox.mjs +10 -14
  536. package/build/value/clean/clean.mjs +5 -3
  537. package/build/value/clean/{from-array.mjs → from_array.mjs} +1 -1
  538. package/build/value/clean/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
  539. package/build/value/clean/{from-intersect.mjs → from_intersect.mjs} +3 -3
  540. package/build/value/clean/{from-object.mjs → from_object.mjs} +1 -1
  541. package/build/value/clean/{from-record.mjs → from_record.mjs} +1 -1
  542. package/build/value/clean/{from-ref.mjs → from_ref.mjs} +1 -1
  543. package/build/value/clean/{from-tuple.mjs → from_tuple.mjs} +1 -1
  544. package/build/value/clean/from_type.mjs +21 -0
  545. package/build/value/clean/{from-union.mjs → from_union.mjs} +2 -3
  546. package/build/value/clone/clone.mjs +2 -72
  547. package/build/value/codec/decode.mjs +5 -3
  548. package/build/value/codec/encode.mjs +5 -3
  549. package/build/value/codec/{from-array.mjs → from_array.mjs} +2 -5
  550. package/build/value/codec/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
  551. package/build/value/codec/{from-intersect.mjs → from_intersect.mjs} +1 -1
  552. package/build/value/codec/{from-object.mjs → from_object.mjs} +3 -6
  553. package/build/value/codec/{from-record.mjs → from_record.mjs} +3 -8
  554. package/build/value/codec/{from-ref.mjs → from_ref.mjs} +1 -1
  555. package/build/value/codec/{from-tuple.mjs → from_tuple.mjs} +2 -5
  556. package/build/value/codec/{from-type.mjs → from_type.mjs} +8 -8
  557. package/build/value/codec/{from-union.mjs → from_union.mjs} +3 -4
  558. package/build/value/convert/convert.mjs +1 -1
  559. package/build/value/convert/{from-additional.mjs → from_additional.mjs} +1 -1
  560. package/build/value/convert/{from-array.mjs → from_array.mjs} +1 -1
  561. package/build/value/convert/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
  562. package/build/value/convert/from_enum.mjs +6 -0
  563. package/build/value/convert/{from-intersect.mjs → from_intersect.mjs} +1 -1
  564. package/build/value/convert/{from-literal.d.mts → from_literal.d.mts} +1 -1
  565. package/build/value/convert/{from-object.mjs → from_object.mjs} +3 -3
  566. package/build/value/convert/{from-record.mjs → from_record.mjs} +2 -2
  567. package/build/value/convert/{from-ref.mjs → from_ref.mjs} +1 -1
  568. package/build/value/convert/{from-template-literal.d.mts → from_template_literal.d.mts} +1 -1
  569. package/build/value/convert/from_template_literal.mjs +6 -0
  570. package/build/value/convert/{from-tuple.mjs → from_tuple.mjs} +1 -1
  571. package/build/value/convert/from_type.mjs +43 -0
  572. package/build/value/convert/{from-union.mjs → from_union.mjs} +1 -1
  573. package/build/value/convert/try/try.d.mts +8 -8
  574. package/build/value/convert/try/try.mjs +8 -8
  575. package/build/value/convert/try/{try-array.d.mts → try_array.d.mts} +1 -1
  576. package/build/value/convert/try/{try-array.mjs → try_array.mjs} +1 -1
  577. package/build/value/convert/try/{try-bigint.d.mts → try_bigint.d.mts} +1 -1
  578. package/build/value/convert/try/{try-bigint.mjs → try_bigint.mjs} +1 -1
  579. package/build/value/convert/try/{try-boolean.d.mts → try_boolean.d.mts} +1 -1
  580. package/build/value/convert/try/{try-boolean.mjs → try_boolean.mjs} +1 -1
  581. package/build/value/convert/try/{try-null.d.mts → try_null.d.mts} +1 -1
  582. package/build/value/convert/try/{try-null.mjs → try_null.mjs} +1 -1
  583. package/build/value/convert/try/{try-number.d.mts → try_number.d.mts} +1 -1
  584. package/build/value/convert/try/{try-number.mjs → try_number.mjs} +2 -2
  585. package/build/value/convert/try/{try-string.d.mts → try_string.d.mts} +1 -1
  586. package/build/value/convert/try/{try-string.mjs → try_string.mjs} +1 -1
  587. package/build/value/convert/try/{try-undefined.d.mts → try_undefined.d.mts} +1 -1
  588. package/build/value/convert/try/{try-undefined.mjs → try_undefined.mjs} +1 -1
  589. package/build/value/create/create.mjs +1 -1
  590. package/build/value/create/{from-array.mjs → from_array.mjs} +1 -1
  591. package/build/value/create/{from-constructor.mjs → from_constructor.mjs} +1 -1
  592. package/build/value/create/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
  593. package/build/value/create/from_enum.mjs +6 -0
  594. package/build/value/create/{from-function.mjs → from_function.mjs} +1 -1
  595. package/build/value/create/{from-intersect.mjs → from_intersect.mjs} +1 -1
  596. package/build/value/create/{from-object.mjs → from_object.mjs} +1 -1
  597. package/build/value/create/{from-ref.mjs → from_ref.mjs} +1 -1
  598. package/build/value/create/{from-template-literal.mjs → from_template_literal.mjs} +2 -2
  599. package/build/value/create/{from-tuple.mjs → from_tuple.mjs} +1 -1
  600. package/build/value/create/from_type.mjs +61 -0
  601. package/build/value/create/{from-union.mjs → from_union.mjs} +1 -1
  602. package/build/value/default/default.mjs +1 -1
  603. package/build/value/default/{from-array.mjs → from_array.mjs} +1 -1
  604. package/build/value/{clean/from-cyclic.d.mts → default/from_cyclic.d.mts} +1 -1
  605. package/build/value/default/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
  606. package/build/value/default/{from-intersect.mjs → from_intersect.mjs} +1 -1
  607. package/build/value/default/{from-object.mjs → from_object.mjs} +2 -2
  608. package/build/value/default/{from-record.mjs → from_record.mjs} +1 -1
  609. package/build/value/default/{from-ref.mjs → from_ref.mjs} +1 -1
  610. package/build/value/default/{from-tuple.mjs → from_tuple.mjs} +1 -1
  611. package/build/value/default/from_type.mjs +25 -0
  612. package/build/value/default/{from-union.mjs → from_union.mjs} +1 -1
  613. package/build/value/delta/diff.mjs +6 -0
  614. package/build/value/errors/errors.d.mts +2 -2
  615. package/build/value/errors/errors.mjs +1 -1
  616. package/build/value/index.d.mts +0 -1
  617. package/build/value/index.mjs +0 -1
  618. package/build/value/repair/{from-array.mjs → from_array.mjs} +1 -1
  619. package/build/value/repair/from_enum.mjs +6 -0
  620. package/build/value/repair/from_intersect.d.mts +2 -0
  621. package/build/value/repair/{from-intersect.mjs → from_intersect.mjs} +1 -1
  622. package/build/value/repair/{from-object.mjs → from_object.mjs} +1 -1
  623. package/build/value/repair/{from-record.mjs → from_record.mjs} +1 -1
  624. package/build/value/repair/{from-ref.mjs → from_ref.mjs} +1 -1
  625. package/build/value/{convert/from-template-literal.mjs → repair/from_template_literal.mjs} +2 -2
  626. package/build/value/repair/{from-tuple.mjs → from_tuple.mjs} +1 -1
  627. package/build/value/repair/{from-type.mjs → from_type.mjs} +34 -32
  628. package/build/value/{clean/from-union.d.mts → repair/from_union.d.mts} +1 -1
  629. package/build/value/repair/{from-union.mjs → from_union.mjs} +2 -2
  630. package/build/value/repair/repair.mjs +1 -1
  631. package/build/value/shared/index.d.mts +3 -3
  632. package/build/value/shared/index.mjs +3 -3
  633. package/build/value/shared/union_priority_sort.d.mts +7 -0
  634. package/build/value/shared/union_priority_sort.mjs +72 -0
  635. package/build/value/value.d.mts +0 -1
  636. package/build/value/value.mjs +0 -1
  637. package/changes.json +1 -1
  638. package/package.json +27 -27
  639. package/readme.md +214 -95
  640. package/build/schema/engine/_guard.d.mts +0 -6
  641. package/build/schema/engine/_guard.mjs +0 -26
  642. package/build/schema/static/~non-readonly.d.mts +0 -7
  643. package/build/schema/static/~readonly.d.mts +0 -6
  644. package/build/schema/static/~readonly.mjs +0 -2
  645. package/build/schema/types/_guard.d.mts +0 -10
  646. package/build/schema/types/_guard.mjs +0 -16
  647. package/build/type/action/_optional.d.mts +0 -19
  648. package/build/type/action/_optional.mjs +0 -40
  649. package/build/type/action/_readonly.d.mts +0 -19
  650. package/build/type/action/_readonly.mjs +0 -40
  651. package/build/type/action/awaited.d.mts +0 -11
  652. package/build/type/action/awaited.mjs +0 -12
  653. package/build/type/action/options.d.mts +0 -12
  654. package/build/type/action/options.mjs +0 -12
  655. package/build/type/action/readonly-type.d.mts +0 -11
  656. package/build/type/action/readonly-type.mjs +0 -12
  657. package/build/type/engine/awaited/instantiate.d.mts +0 -10
  658. package/build/type/engine/awaited/instantiate.mjs +0 -19
  659. package/build/type/engine/constructor-parameters/instantiate.d.mts +0 -14
  660. package/build/type/engine/constructor-parameters/instantiate.mjs +0 -22
  661. package/build/type/engine/enum/enum-to-union.d.mts +0 -14
  662. package/build/type/engine/enum/enum-to-union.mjs +0 -24
  663. package/build/type/engine/indexable/from-enum.d.mts +0 -6
  664. package/build/type/engine/indexable/from-enum.mjs +0 -8
  665. package/build/type/engine/indexable/from-template-literal.d.mts +0 -5
  666. package/build/type/engine/indexable/from-template-literal.mjs +0 -8
  667. package/build/type/engine/indexable/from-type.d.mts +0 -17
  668. package/build/type/engine/indexable/from-type.mjs +0 -22
  669. package/build/type/engine/indexed/from-object.d.mts +0 -9
  670. package/build/type/engine/indexed/from-object.mjs +0 -18
  671. package/build/type/engine/instance-type/instantiate.d.mts +0 -12
  672. package/build/type/engine/intrinsics/from-template-literal.mjs +0 -8
  673. package/build/type/engine/mapped/mapped-variants.d.mts +0 -15
  674. package/build/type/engine/mapped/mapped-variants.mjs +0 -29
  675. package/build/type/engine/non-nullable/instantiate.d.mts +0 -15
  676. package/build/type/engine/non-nullable/instantiate.mjs +0 -22
  677. package/build/type/engine/object/from-type.d.mts +0 -14
  678. package/build/type/engine/object/from-type.mjs +0 -20
  679. package/build/type/engine/options/instantiate.d.mts +0 -8
  680. package/build/type/engine/options/instantiate.mjs +0 -13
  681. package/build/type/engine/partial/from-intersect.d.mts +0 -5
  682. package/build/type/engine/partial/from-intersect.mjs +0 -7
  683. package/build/type/engine/partial/from-type.d.mts +0 -12
  684. package/build/type/engine/partial/from-type.mjs +0 -17
  685. package/build/type/engine/readonly-type/from-intersect.d.mts +0 -5
  686. package/build/type/engine/readonly-type/from-intersect.mjs +0 -7
  687. package/build/type/engine/readonly-type/from-type.d.mts +0 -16
  688. package/build/type/engine/readonly-type/from-type.mjs +0 -22
  689. package/build/type/engine/readonly-type/instantiate.d.mts +0 -9
  690. package/build/type/engine/readonly-type/instantiate.mjs +0 -14
  691. package/build/type/engine/record/from-key-enum.mjs +0 -8
  692. package/build/type/engine/record/from-key-template-literal.mjs +0 -12
  693. package/build/type/engine/required/from-intersect.d.mts +0 -5
  694. package/build/type/engine/required/from-intersect.mjs +0 -7
  695. package/build/type/engine/required/from-type.d.mts +0 -12
  696. package/build/type/engine/required/from-type.mjs +0 -17
  697. package/build/type/engine/return-type/index.d.mts +0 -1
  698. package/build/type/engine/return-type/index.mjs +0 -1
  699. package/build/type/engine/return-type/instantiate.d.mts +0 -11
  700. package/build/type/engine/return-type/instantiate.mjs +0 -18
  701. package/build/type/engine/template-literal/instantiate.mjs +0 -14
  702. package/build/type/extends/async-iterator.d.mts +0 -7
  703. package/build/type/extends/async-iterator.mjs +0 -9
  704. package/build/type/extends/extends-right.mjs +0 -43
  705. package/build/type/extends/iterator.d.mts +0 -7
  706. package/build/type/extends/iterator.mjs +0 -9
  707. package/build/type/extends/promise.d.mts +0 -7
  708. package/build/type/extends/promise.mjs +0 -9
  709. package/build/type/extends/template-literal.d.mts +0 -6
  710. package/build/type/extends/template-literal.mjs +0 -7
  711. package/build/type/types/async-iterator.d.mts +0 -16
  712. package/build/type/types/async-iterator.mjs +0 -24
  713. package/build/type/types/base.d.mts +0 -50
  714. package/build/type/types/base.mjs +0 -84
  715. package/build/type/types/iterator.d.mts +0 -16
  716. package/build/type/types/promise.d.mts +0 -16
  717. package/build/type/types/promise.mjs +0 -24
  718. package/build/value/clean/from-base.d.mts +0 -2
  719. package/build/value/clean/from-base.mjs +0 -4
  720. package/build/value/clean/from-type.mjs +0 -23
  721. package/build/value/convert/from-base.d.mts +0 -2
  722. package/build/value/convert/from-base.mjs +0 -4
  723. package/build/value/convert/from-enum.mjs +0 -7
  724. package/build/value/convert/from-type.mjs +0 -45
  725. package/build/value/create/from-async-iterator.d.mts +0 -2
  726. package/build/value/create/from-async-iterator.mjs +0 -5
  727. package/build/value/create/from-base.d.mts +0 -2
  728. package/build/value/create/from-base.mjs +0 -4
  729. package/build/value/create/from-enum.mjs +0 -6
  730. package/build/value/create/from-iterator.d.mts +0 -2
  731. package/build/value/create/from-iterator.mjs +0 -5
  732. package/build/value/create/from-promise.d.mts +0 -2
  733. package/build/value/create/from-promise.mjs +0 -5
  734. package/build/value/create/from-type.mjs +0 -69
  735. package/build/value/default/from-base.d.mts +0 -2
  736. package/build/value/default/from-base.mjs +0 -5
  737. package/build/value/default/from-intersect.d.mts +0 -2
  738. package/build/value/default/from-type.mjs +0 -27
  739. package/build/value/mutate/error.d.mts +0 -3
  740. package/build/value/mutate/error.mjs +0 -6
  741. package/build/value/mutate/from-array.d.mts +0 -2
  742. package/build/value/mutate/from-array.mjs +0 -16
  743. package/build/value/mutate/from-object.d.mts +0 -2
  744. package/build/value/mutate/from-object.mjs +0 -27
  745. package/build/value/mutate/from-unknown.d.mts +0 -2
  746. package/build/value/mutate/from-unknown.mjs +0 -7
  747. package/build/value/mutate/from-value.d.mts +0 -2
  748. package/build/value/mutate/from-value.mjs +0 -12
  749. package/build/value/mutate/index.d.mts +0 -1
  750. package/build/value/mutate/index.mjs +0 -1
  751. package/build/value/mutate/mutate.d.mts +0 -9
  752. package/build/value/mutate/mutate.mjs +0 -39
  753. package/build/value/repair/from-base.d.mts +0 -2
  754. package/build/value/repair/from-base.mjs +0 -8
  755. package/build/value/repair/from-enum.mjs +0 -7
  756. package/build/value/repair/from-template-literal.mjs +0 -7
  757. package/build/value/shared/union-priority-sort.d.mts +0 -3
  758. package/build/value/shared/union-priority-sort.mjs +0 -36
  759. /package/build/format/{date-time.d.mts → date_time.d.mts} +0 -0
  760. /package/build/format/{date-time.mjs → date_time.mjs} +0 -0
  761. /package/build/format/{idn-email.d.mts → idn_email.d.mts} +0 -0
  762. /package/build/format/{idn-email.mjs → idn_email.mjs} +0 -0
  763. /package/build/format/{idn-hostname.d.mts → idn_hostname.d.mts} +0 -0
  764. /package/build/format/{idn-hostname.mjs → idn_hostname.mjs} +0 -0
  765. /package/build/format/{iri-reference.d.mts → iri_reference.d.mts} +0 -0
  766. /package/build/format/{iri-reference.mjs → iri_reference.mjs} +0 -0
  767. /package/build/format/{json-pointer.d.mts → json_pointer.d.mts} +0 -0
  768. /package/build/format/{json-pointer.mjs → json_pointer.mjs} +0 -0
  769. /package/build/format/{json-pointer-uri-fragment.d.mts → json_pointer_uri_fragment.d.mts} +0 -0
  770. /package/build/format/{json-pointer-uri-fragment.mjs → json_pointer_uri_fragment.mjs} +0 -0
  771. /package/build/format/{relative-json-pointer.d.mts → relative_json_pointer.d.mts} +0 -0
  772. /package/build/format/{relative-json-pointer.mjs → relative_json_pointer.mjs} +0 -0
  773. /package/build/format/{uri-reference.d.mts → uri_reference.d.mts} +0 -0
  774. /package/build/format/{uri-reference.mjs → uri_reference.mjs} +0 -0
  775. /package/build/format/{uri-template.d.mts → uri_template.d.mts} +0 -0
  776. /package/build/format/{uri-template.mjs → uri_template.mjs} +0 -0
  777. /package/build/schema/pointer/{pointer-get.d.mts → pointer_get.d.mts} +0 -0
  778. /package/build/schema/pointer/{pointer-get.mjs → pointer_get.mjs} +0 -0
  779. /package/build/schema/static/{~comparer.mjs → _canonical.mjs} +0 -0
  780. /package/build/schema/static/{~comparer.d.mts → _comparer.d.mts} +0 -0
  781. /package/build/schema/static/{~elements.mjs → _comparer.mjs} +0 -0
  782. /package/build/schema/static/{~non-readonly.mjs → _elements.mjs} +0 -0
  783. /package/build/type/engine/call/{distribute-arguments.d.mts → distribute_arguments.d.mts} +0 -0
  784. /package/build/type/engine/call/{resolve-arguments.d.mts → resolve_arguments.d.mts} +0 -0
  785. /package/build/type/engine/call/{resolve-target.d.mts → resolve_target.d.mts} +0 -0
  786. /package/build/type/engine/call/{resolve-target.mjs → resolve_target.mjs} +0 -0
  787. /package/build/type/engine/{awaited → constructor_parameters}/index.d.mts +0 -0
  788. /package/build/type/engine/{awaited → constructor_parameters}/index.mjs +0 -0
  789. /package/build/type/engine/enum/{typescript-enum-to-enum-values.d.mts → typescript_enum_to_enum_values.d.mts} +0 -0
  790. /package/build/type/engine/enum/{typescript-enum-to-enum-values.mjs → typescript_enum_to_enum_values.mjs} +0 -0
  791. /package/build/type/engine/helpers/{keys-to-indexer.d.mts → keys_to_indexer.d.mts} +0 -0
  792. /package/build/type/engine/helpers/{keys-to-indexer.mjs → keys_to_indexer.mjs} +0 -0
  793. /package/build/type/engine/indexable/{from-literal.mjs → from_literal.mjs} +0 -0
  794. /package/build/type/engine/indexable/{to-indexable.d.mts → to_indexable.d.mts} +0 -0
  795. /package/build/type/engine/indexable/{to-indexable.mjs → to_indexable.mjs} +0 -0
  796. /package/build/type/engine/indexed/{array-indexer.d.mts → array_indexer.d.mts} +0 -0
  797. /package/build/type/engine/indexed/{array-indexer.mjs → array_indexer.mjs} +0 -0
  798. /package/build/type/engine/indexed/{from-array.d.mts → from_array.d.mts} +0 -0
  799. /package/build/type/engine/indexed/{from-array.mjs → from_array.mjs} +0 -0
  800. /package/build/type/engine/{constructor-parameters → instance_type}/index.d.mts +0 -0
  801. /package/build/type/engine/{constructor-parameters → instance_type}/index.mjs +0 -0
  802. /package/build/type/engine/intrinsics/{from-literal.d.mts → from_literal.d.mts} +0 -0
  803. /package/build/type/engine/intrinsics/{from-literal.mjs → from_literal.mjs} +0 -0
  804. /package/build/type/engine/keyof/{from-any.d.mts → from_any.d.mts} +0 -0
  805. /package/build/type/engine/keyof/{from-any.mjs → from_any.mjs} +0 -0
  806. /package/build/type/engine/keyof/{from-array.d.mts → from_array.d.mts} +0 -0
  807. /package/build/type/engine/keyof/{from-array.mjs → from_array.mjs} +0 -0
  808. /package/build/type/engine/keyof/{from-object.d.mts → from_object.d.mts} +0 -0
  809. /package/build/type/engine/keyof/{from-object.mjs → from_object.mjs} +0 -0
  810. /package/build/type/engine/keyof/{from-record.d.mts → from_record.d.mts} +0 -0
  811. /package/build/type/engine/keyof/{from-record.mjs → from_record.mjs} +0 -0
  812. /package/build/type/engine/keyof/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
  813. /package/build/type/engine/keyof/{from-tuple.mjs → from_tuple.mjs} +0 -0
  814. /package/build/type/engine/{instance-type → non_nullable}/index.d.mts +0 -0
  815. /package/build/type/engine/{instance-type → non_nullable}/index.mjs +0 -0
  816. /package/build/type/engine/object/{from-object.d.mts → from_object.d.mts} +0 -0
  817. /package/build/type/engine/object/{from-object.mjs → from_object.mjs} +0 -0
  818. /package/build/type/engine/{non-nullable → readonly_object}/index.d.mts +0 -0
  819. /package/build/type/engine/{non-nullable → readonly_object}/index.mjs +0 -0
  820. /package/build/type/engine/record/{from-key-any.d.mts → from_key_any.d.mts} +0 -0
  821. /package/build/type/engine/record/{from-key-boolean.d.mts → from_key_boolean.d.mts} +0 -0
  822. /package/build/type/engine/record/{from-key-boolean.mjs → from_key_boolean.mjs} +0 -0
  823. /package/build/type/engine/record/{from-key-integer.d.mts → from_key_integer.d.mts} +0 -0
  824. /package/build/type/engine/record/{from-key-literal.d.mts → from_key_literal.d.mts} +0 -0
  825. /package/build/type/engine/record/{from-key-literal.mjs → from_key_literal.mjs} +0 -0
  826. /package/build/type/engine/record/{from-key-number.d.mts → from_key_number.d.mts} +0 -0
  827. /package/build/type/engine/record/{from-key-string.d.mts → from_key_string.d.mts} +0 -0
  828. /package/build/type/engine/record/{from-key-union.d.mts → from_key_union.d.mts} +0 -0
  829. /package/build/type/engine/record/{record-create.d.mts → record_create.d.mts} +0 -0
  830. /package/build/type/engine/record/{record-create.mjs → record_create.mjs} +0 -0
  831. /package/build/type/engine/{options → return_type}/index.d.mts +0 -0
  832. /package/build/type/engine/{options → return_type}/index.mjs +0 -0
  833. /package/build/type/engine/{template-literal → template_literal}/create.d.mts +0 -0
  834. /package/build/type/engine/{template-literal → template_literal}/create.mjs +0 -0
  835. /package/build/type/engine/{template-literal/is-finite.d.mts → template_literal/is_finite.d.mts} +0 -0
  836. /package/build/type/engine/{template-literal/is-pattern.d.mts → template_literal/is_pattern.d.mts} +0 -0
  837. /package/build/type/engine/{template-literal → template_literal}/static.d.mts +0 -0
  838. /package/build/type/engine/{template-literal → template_literal}/static.mjs +0 -0
  839. /package/build/type/engine/tuple/{to-object.d.mts → to_object.d.mts} +0 -0
  840. /package/build/type/engine/tuple/{to-object.mjs → to_object.mjs} +0 -0
  841. /package/build/type/engine/{readonly-type → with}/index.d.mts +0 -0
  842. /package/build/type/engine/{readonly-type → with}/index.mjs +0 -0
  843. /package/build/value/clean/{from-array.d.mts → from_array.d.mts} +0 -0
  844. /package/build/value/{convert/from-cyclic.d.mts → clean/from_cyclic.d.mts} +0 -0
  845. /package/build/value/clean/{from-intersect.d.mts → from_intersect.d.mts} +0 -0
  846. /package/build/value/clean/{from-object.d.mts → from_object.d.mts} +0 -0
  847. /package/build/value/clean/{from-record.d.mts → from_record.d.mts} +0 -0
  848. /package/build/value/clean/{from-ref.d.mts → from_ref.d.mts} +0 -0
  849. /package/build/value/clean/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
  850. /package/build/value/clean/{from-type.d.mts → from_type.d.mts} +0 -0
  851. /package/build/value/{repair/from-union.d.mts → clean/from_union.d.mts} +0 -0
  852. /package/build/value/codec/{from-array.d.mts → from_array.d.mts} +0 -0
  853. /package/build/value/codec/{from-cyclic.d.mts → from_cyclic.d.mts} +0 -0
  854. /package/build/value/codec/{from-intersect.d.mts → from_intersect.d.mts} +0 -0
  855. /package/build/value/codec/{from-object.d.mts → from_object.d.mts} +0 -0
  856. /package/build/value/codec/{from-record.d.mts → from_record.d.mts} +0 -0
  857. /package/build/value/codec/{from-ref.d.mts → from_ref.d.mts} +0 -0
  858. /package/build/value/codec/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
  859. /package/build/value/codec/{from-type.d.mts → from_type.d.mts} +0 -0
  860. /package/build/value/codec/{from-union.d.mts → from_union.d.mts} +0 -0
  861. /package/build/value/convert/{from-additional.d.mts → from_additional.d.mts} +0 -0
  862. /package/build/value/convert/{from-array.d.mts → from_array.d.mts} +0 -0
  863. /package/build/value/convert/{from-bigint.d.mts → from_bigint.d.mts} +0 -0
  864. /package/build/value/convert/{from-bigint.mjs → from_bigint.mjs} +0 -0
  865. /package/build/value/convert/{from-boolean.d.mts → from_boolean.d.mts} +0 -0
  866. /package/build/value/convert/{from-boolean.mjs → from_boolean.mjs} +0 -0
  867. /package/build/value/{default/from-cyclic.d.mts → convert/from_cyclic.d.mts} +0 -0
  868. /package/build/value/convert/{from-enum.d.mts → from_enum.d.mts} +0 -0
  869. /package/build/value/convert/{from-integer.d.mts → from_integer.d.mts} +0 -0
  870. /package/build/value/convert/{from-integer.mjs → from_integer.mjs} +0 -0
  871. /package/build/value/convert/{from-intersect.d.mts → from_intersect.d.mts} +0 -0
  872. /package/build/value/convert/{from-literal.mjs → from_literal.mjs} +0 -0
  873. /package/build/value/convert/{from-null.d.mts → from_null.d.mts} +0 -0
  874. /package/build/value/convert/{from-null.mjs → from_null.mjs} +0 -0
  875. /package/build/value/convert/{from-number.d.mts → from_number.d.mts} +0 -0
  876. /package/build/value/convert/{from-number.mjs → from_number.mjs} +0 -0
  877. /package/build/value/convert/{from-object.d.mts → from_object.d.mts} +0 -0
  878. /package/build/value/convert/{from-record.d.mts → from_record.d.mts} +0 -0
  879. /package/build/value/convert/{from-ref.d.mts → from_ref.d.mts} +0 -0
  880. /package/build/value/convert/{from-string.d.mts → from_string.d.mts} +0 -0
  881. /package/build/value/convert/{from-string.mjs → from_string.mjs} +0 -0
  882. /package/build/value/convert/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
  883. /package/build/value/convert/{from-type.d.mts → from_type.d.mts} +0 -0
  884. /package/build/value/convert/{from-undefined.d.mts → from_undefined.d.mts} +0 -0
  885. /package/build/value/convert/{from-undefined.mjs → from_undefined.mjs} +0 -0
  886. /package/build/value/convert/{from-union.d.mts → from_union.d.mts} +0 -0
  887. /package/build/value/convert/{from-void.d.mts → from_void.d.mts} +0 -0
  888. /package/build/value/convert/{from-void.mjs → from_void.mjs} +0 -0
  889. /package/build/value/convert/try/{try-result.d.mts → try_result.d.mts} +0 -0
  890. /package/build/value/convert/try/{try-result.mjs → try_result.mjs} +0 -0
  891. /package/build/value/create/{from-array.d.mts → from_array.d.mts} +0 -0
  892. /package/build/value/create/{from-bigint.d.mts → from_bigint.d.mts} +0 -0
  893. /package/build/value/create/{from-bigint.mjs → from_bigint.mjs} +0 -0
  894. /package/build/value/create/{from-boolean.d.mts → from_boolean.d.mts} +0 -0
  895. /package/build/value/create/{from-boolean.mjs → from_boolean.mjs} +0 -0
  896. /package/build/value/create/{from-constructor.d.mts → from_constructor.d.mts} +0 -0
  897. /package/build/value/create/{from-cyclic.d.mts → from_cyclic.d.mts} +0 -0
  898. /package/build/value/create/{from-default.d.mts → from_default.d.mts} +0 -0
  899. /package/build/value/create/{from-default.mjs → from_default.mjs} +0 -0
  900. /package/build/value/create/{from-enum.d.mts → from_enum.d.mts} +0 -0
  901. /package/build/value/create/{from-function.d.mts → from_function.d.mts} +0 -0
  902. /package/build/value/create/{from-integer.d.mts → from_integer.d.mts} +0 -0
  903. /package/build/value/create/{from-integer.mjs → from_integer.mjs} +0 -0
  904. /package/build/value/create/{from-intersect.d.mts → from_intersect.d.mts} +0 -0
  905. /package/build/value/create/{from-literal.d.mts → from_literal.d.mts} +0 -0
  906. /package/build/value/create/{from-literal.mjs → from_literal.mjs} +0 -0
  907. /package/build/value/create/{from-never.d.mts → from_never.d.mts} +0 -0
  908. /package/build/value/create/{from-never.mjs → from_never.mjs} +0 -0
  909. /package/build/value/create/{from-null.d.mts → from_null.d.mts} +0 -0
  910. /package/build/value/create/{from-null.mjs → from_null.mjs} +0 -0
  911. /package/build/value/create/{from-number.d.mts → from_number.d.mts} +0 -0
  912. /package/build/value/create/{from-number.mjs → from_number.mjs} +0 -0
  913. /package/build/value/create/{from-object.d.mts → from_object.d.mts} +0 -0
  914. /package/build/value/create/{from-record.d.mts → from_record.d.mts} +0 -0
  915. /package/build/value/create/{from-record.mjs → from_record.mjs} +0 -0
  916. /package/build/value/create/{from-ref.d.mts → from_ref.d.mts} +0 -0
  917. /package/build/value/create/{from-string.d.mts → from_string.d.mts} +0 -0
  918. /package/build/value/create/{from-string.mjs → from_string.mjs} +0 -0
  919. /package/build/value/create/{from-symbol.d.mts → from_symbol.d.mts} +0 -0
  920. /package/build/value/create/{from-symbol.mjs → from_symbol.mjs} +0 -0
  921. /package/build/value/create/{from-template-literal.d.mts → from_template_literal.d.mts} +0 -0
  922. /package/build/value/create/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
  923. /package/build/value/create/{from-type.d.mts → from_type.d.mts} +0 -0
  924. /package/build/value/create/{from-undefined.d.mts → from_undefined.d.mts} +0 -0
  925. /package/build/value/create/{from-undefined.mjs → from_undefined.mjs} +0 -0
  926. /package/build/value/create/{from-union.d.mts → from_union.d.mts} +0 -0
  927. /package/build/value/create/{from-void.d.mts → from_void.d.mts} +0 -0
  928. /package/build/value/create/{from-void.mjs → from_void.mjs} +0 -0
  929. /package/build/value/default/{from-array.d.mts → from_array.d.mts} +0 -0
  930. /package/build/value/default/{from-default.d.mts → from_default.d.mts} +0 -0
  931. /package/build/value/default/{from-default.mjs → from_default.mjs} +0 -0
  932. /package/build/value/{repair/from-intersect.d.mts → default/from_intersect.d.mts} +0 -0
  933. /package/build/value/default/{from-object.d.mts → from_object.d.mts} +0 -0
  934. /package/build/value/default/{from-record.d.mts → from_record.d.mts} +0 -0
  935. /package/build/value/default/{from-ref.d.mts → from_ref.d.mts} +0 -0
  936. /package/build/value/default/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
  937. /package/build/value/default/{from-type.d.mts → from_type.d.mts} +0 -0
  938. /package/build/value/default/{from-union.d.mts → from_union.d.mts} +0 -0
  939. /package/build/value/repair/{from-array.d.mts → from_array.d.mts} +0 -0
  940. /package/build/value/repair/{from-enum.d.mts → from_enum.d.mts} +0 -0
  941. /package/build/value/repair/{from-object.d.mts → from_object.d.mts} +0 -0
  942. /package/build/value/repair/{from-record.d.mts → from_record.d.mts} +0 -0
  943. /package/build/value/repair/{from-ref.d.mts → from_ref.d.mts} +0 -0
  944. /package/build/value/repair/{from-template-literal.d.mts → from_template_literal.d.mts} +0 -0
  945. /package/build/value/repair/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
  946. /package/build/value/repair/{from-type.d.mts → from_type.d.mts} +0 -0
  947. /package/build/value/repair/{from-unknown.d.mts → from_unknown.d.mts} +0 -0
  948. /package/build/value/repair/{from-unknown.mjs → from_unknown.mjs} +0 -0
  949. /package/build/value/shared/{optional-undefined.d.mts → optional_undefined.d.mts} +0 -0
  950. /package/build/value/shared/{optional-undefined.mjs → optional_undefined.mjs} +0 -0
  951. /package/build/value/shared/{union-score-select.d.mts → union_score_select.d.mts} +0 -0
  952. /package/build/value/shared/{union-score-select.mjs → union_score_select.mjs} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { type TSchema } from '../../types/schema.mjs';
2
2
  import { type TUnion } from '../../types/union.mjs';
3
- import { type TFromType } from './from-type.mjs';
3
+ import { type TFromType } from './from_type.mjs';
4
4
  export type TFromUnion<Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromUnion<Right, [...Result, TFromType<Left>]> : TUnion<Result>);
5
5
  export declare function FromUnion<Types extends TSchema[]>(types: [...Types]): TFromUnion<Types>;
@@ -1,6 +1,6 @@
1
1
  // deno-fmt-ignore-file
2
2
  import { Union } from '../../types/union.mjs';
3
- import { FromType } from './from-type.mjs';
3
+ import { FromType } from './from_type.mjs';
4
4
  export function FromUnion(types) {
5
5
  const result = types.map(type => FromType(type));
6
6
  return Union(result);
@@ -1,9 +1,9 @@
1
1
  import { type TSchema, type TSchemaOptions } from '../../types/schema.mjs';
2
2
  import { type TProperties } from '../../types/properties.mjs';
3
- import { type TFromType } from './from-type.mjs';
3
+ import { type TFromType } from './from_type.mjs';
4
4
  import { type TRequiredDeferred } from '../../action/required.mjs';
5
5
  import { type TState, type TInstantiateType, type TCanInstantiate } from '../instantiate.mjs';
6
- type TRequiredImmediate<Context extends TProperties, State extends TState, Type extends TSchema, InstantiatedType extends TSchema = TInstantiateType<Context, State, Type>> = TFromType<InstantiatedType>;
7
- export type TRequiredInstantiate<Context extends TProperties, State extends TState, Type extends TSchema> = TCanInstantiate<Context, [Type]> extends true ? TRequiredImmediate<Context, State, Type> : TRequiredDeferred<Type>;
6
+ export type TRequiredAction<Type extends TSchema, Result extends TSchema = TCanInstantiate<[Type]> extends true ? TFromType<Type> : TRequiredDeferred<Type>> = Result;
7
+ export declare function RequiredAction<Type extends TSchema>(type: Type, options: TSchemaOptions): TRequiredAction<Type>;
8
+ export type TRequiredInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, InstantiatedType extends TSchema = TInstantiateType<Context, State, Type>> = TRequiredAction<InstantiatedType>;
8
9
  export declare function RequiredInstantiate<Context extends TProperties, State extends TState, Type extends TSchema>(context: Context, state: State, type: Type, options: TSchemaOptions): TRequiredInstantiate<Context, State, Type>;
9
- export {};
@@ -1,14 +1,15 @@
1
1
  // deno-fmt-ignore-file
2
2
  import { Memory } from '../../../system/memory/index.mjs';
3
- import { FromType } from './from-type.mjs';
3
+ import { FromType } from './from_type.mjs';
4
4
  import { RequiredDeferred } from '../../action/required.mjs';
5
5
  import { InstantiateType, CanInstantiate } from '../instantiate.mjs';
6
- function RequiredImmediate(context, state, type, options) {
7
- const instaniatedType = InstantiateType(context, state, type);
8
- return Memory.Update(FromType(instaniatedType), {}, options);
6
+ export function RequiredAction(type, options) {
7
+ const result = CanInstantiate([type])
8
+ ? Memory.Update(FromType(type), {}, options)
9
+ : RequiredDeferred(type, options);
10
+ return result;
9
11
  }
10
12
  export function RequiredInstantiate(context, state, type, options) {
11
- return (CanInstantiate(context, [type])
12
- ? RequiredImmediate(context, state, type, options)
13
- : RequiredDeferred(type, options));
13
+ const instaniatedType = InstantiateType(context, state, type);
14
+ return RequiredAction(instaniatedType, options);
14
15
  }
@@ -0,0 +1,12 @@
1
+ import { type TSchema, type TSchemaOptions } from '../../types/schema.mjs';
2
+ import { type TProperties } from '../../types/properties.mjs';
3
+ import { type TFunction } from '../../types/function.mjs';
4
+ import { type TNever } from '../../types/never.mjs';
5
+ import { type TReturnTypeDeferred } from '../../action/return_type.mjs';
6
+ import { type TState, type TInstantiateType, type TCanInstantiate } from '../instantiate.mjs';
7
+ type TReturnTypeOperation<Type extends TSchema> = (Type extends TFunction ? Type['returnType'] : TNever);
8
+ export type TReturnTypeAction<Type extends TSchema, Result extends TSchema = TCanInstantiate<[Type]> extends true ? TReturnTypeOperation<Type> : TReturnTypeDeferred<Type>> = Result;
9
+ export declare function ReturnTypeAction<Type extends TSchema>(type: Type, options: TSchemaOptions): TReturnTypeAction<Type>;
10
+ export type TReturnTypeInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, InstantiatedType extends TSchema = TInstantiateType<Context, State, Type>> = TReturnTypeAction<InstantiatedType>;
11
+ export declare function ReturnTypeInstantiate<Context extends TProperties, State extends TState, Type extends TSchema>(context: Context, state: State, type: Type, options?: TSchemaOptions): TReturnTypeInstantiate<Context, State, Type>;
12
+ export {};
@@ -0,0 +1,21 @@
1
+ // deno-fmt-ignore-file
2
+ import { Memory } from '../../../system/memory/index.mjs';
3
+ import { IsFunction } from '../../types/function.mjs';
4
+ import { Never } from '../../types/never.mjs';
5
+ import { ReturnTypeDeferred } from '../../action/return_type.mjs';
6
+ import { InstantiateType, CanInstantiate } from '../instantiate.mjs';
7
+ function ReturnTypeOperation(type) {
8
+ return (IsFunction(type)
9
+ ? type['returnType']
10
+ : Never());
11
+ }
12
+ export function ReturnTypeAction(type, options) {
13
+ const result = CanInstantiate([type])
14
+ ? Memory.Update(ReturnTypeOperation(type), {}, options)
15
+ : ReturnTypeDeferred(type, options);
16
+ return result;
17
+ }
18
+ export function ReturnTypeInstantiate(context, state, type, options = {}) {
19
+ const instantiatedType = InstantiateType(context, state, type);
20
+ return ReturnTypeAction(instantiatedType, options);
21
+ }
@@ -1,11 +1,11 @@
1
- import { TUnreachable } from '../../../system/unreachable/index.mjs';
2
- import { type TLiteral, type TLiteralValue } from '../../types/literal.mjs';
1
+ import { type TUnreachable } from '../../../system/unreachable/index.mjs';
3
2
  import { type TSchema } from '../../types/schema.mjs';
3
+ import { type TLiteral, type TLiteralValue } from '../../types/literal.mjs';
4
4
  import { type TString } from '../../types/string.mjs';
5
- import { type TTemplateLiteral } from '../../types/template-literal.mjs';
5
+ import { type TTemplateLiteral } from '../../types/template_literal.mjs';
6
6
  import { type TUnion } from '../../types/union.mjs';
7
7
  import { type TParsePatternIntoTypes } from '../patterns/pattern.mjs';
8
- import { type TIsTemplateLiteralFinite } from './is-finite.mjs';
8
+ import { type TIsTemplateLiteralFinite } from './is_finite.mjs';
9
9
  type TFromLiteralPush<Variants extends string[], Value extends TLiteralValue, Result extends string[] = []> = Variants extends [infer Left extends string, ...infer Right extends string[]] ? TFromLiteralPush<Right, Value, [...Result, `${Left}${Value}`]> : Result;
10
10
  type TFromLiteral<Variants extends string[], Value extends TLiteralValue> = Variants extends [] ? [`${Value}`] : TFromLiteralPush<Variants, Value>;
11
11
  type TFromUnion<Variants extends string[], Types extends TSchema[], Result extends string[] = []> = Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromUnion<Variants, Right, [...Result, ...TFromType<Variants, Left>]> : Result;
@@ -1,26 +1,21 @@
1
1
  // deno-fmt-ignore-file
2
- import { Unreachable } from '../../../system/unreachable/index.mjs';
3
2
  import { Guard } from '../../../guard/index.mjs';
3
+ import { Unreachable } from '../../../system/unreachable/index.mjs';
4
4
  import { Literal, IsLiteral } from '../../types/literal.mjs';
5
- import { IsSchema } from '../../types/schema.mjs';
6
5
  import { String } from '../../types/string.mjs';
7
- import { IsTemplateLiteral } from '../../types/template-literal.mjs';
6
+ import { IsTemplateLiteral } from '../../types/template_literal.mjs';
8
7
  import { Union, IsUnion } from '../../types/union.mjs';
9
8
  import { ParsePatternIntoTypes } from '../patterns/pattern.mjs';
10
- import { IsTemplateLiteralFinite } from './is-finite.mjs';
9
+ import { IsTemplateLiteralFinite } from './is_finite.mjs';
11
10
  import { TemplateLiteralCreate } from './create.mjs';
12
11
  function FromLiteralPush(variants, value, result = []) {
13
- const [left, ...right] = variants;
14
- return (Guard.IsString(left) ? FromLiteralPush(right, value, [...result, `${left}${value}`]) : result);
12
+ return Guard.ShiftLeft(variants, (left, right) => FromLiteralPush(right, value, [...result, `${left}${value}`]), () => result);
15
13
  }
16
14
  function FromLiteral(variants, value) {
17
15
  return (Guard.IsEqual(variants.length, 0) ? [`${value}`] : FromLiteralPush(variants, value));
18
16
  }
19
17
  function FromUnion(variants, types, result = []) {
20
- const [left, ...right] = types;
21
- return (IsSchema(left)
22
- ? FromUnion(variants, right, [...result, ...FromType(variants, left)])
23
- : result);
18
+ return Guard.ShiftLeft(types, (left, right) => FromUnion(variants, right, [...result, ...FromType(variants, left)]), () => result);
24
19
  }
25
20
  // ------------------------------------------------------------------
26
21
  // deno-coverage-ignore-start - symmetric unreachable | internal
@@ -38,8 +33,7 @@ function FromType(variants, type) {
38
33
  return result;
39
34
  }
40
35
  function DecodeFromSpan(variants, types) {
41
- const [left, ...right] = types;
42
- return (IsSchema(left) ? DecodeFromSpan(FromType(variants, left), right) : variants);
36
+ return Guard.ShiftLeft(types, (left, right) => DecodeFromSpan(FromType(variants, left), right), () => variants);
43
37
  }
44
38
  function VariantsToLiterals(variants) {
45
39
  return variants.map(variant => Literal(variant));
@@ -2,14 +2,15 @@ import { type TSchema } from '../../types/schema.mjs';
2
2
  import { type TEnum, type TEnumValue } from '../../types/enum.mjs';
3
3
  import { type TLiteral, type TLiteralValue } from '../../types/literal.mjs';
4
4
  import { type TUnion } from '../../types/union.mjs';
5
- import { type TTemplateLiteral } from '../../types/template-literal.mjs';
5
+ import { type TTemplateLiteral, type TTemplateLiteralDeferred } from '../../types/template_literal.mjs';
6
6
  import { type TBigInt, BigIntPattern } from '../../types/bigint.mjs';
7
7
  import { type TString, StringPattern } from '../../types/string.mjs';
8
8
  import { type TNumber, NumberPattern } from '../../types/number.mjs';
9
9
  import { type TInteger, IntegerPattern } from '../../types/integer.mjs';
10
10
  import { type TBoolean } from '../../types/boolean.mjs';
11
11
  import { NeverPattern } from '../../types/never.mjs';
12
- import { type TEnumValuesToVariants } from '../enum/enum-to-union.mjs';
12
+ import { type TEvaluateEnum } from '../evaluate/evaluate.mjs';
13
+ import { type TTemplateLiteralAction } from './instantiate.mjs';
13
14
  type TJoinString<Input extends string[], Result extends string = ''> = (Input extends [infer Left extends string, ...infer Right extends string[]] ? Result extends '' ? TJoinString<Right, Left> : TJoinString<Right, `${Result}|${Left}`> : Result);
14
15
  type TUnwrapTemplateLiteralPattern<Pattern extends string> = (Pattern extends `^${infer Pattern extends string}$` ? Pattern : never);
15
16
  type TEncodeLiteral<Value extends TLiteralValue, Right extends TSchema[], Pattern extends string> = (TEncodeTypes<Right, `${Pattern}${Value}`>);
@@ -19,9 +20,10 @@ type TEncodeNumber<Right extends TSchema[], Pattern extends string> = (TEncodeTy
19
20
  type TEncodeBoolean<Right extends TSchema[], Pattern extends string> = (TEncodeType<TUnion<[TLiteral<'false'>, TLiteral<'true'>]>, Right, Pattern>);
20
21
  type TEncodeString<Right extends TSchema[], Pattern extends string> = (TEncodeTypes<Right, `${Pattern}${typeof StringPattern}`>);
21
22
  type TEncodeTemplateLiteral<TemplatePattern extends string, Right extends TSchema[], Pattern extends string> = (TEncodeTypes<Right, `${Pattern}${TUnwrapTemplateLiteralPattern<TemplatePattern>}`>);
22
- type TEncodeEnum<Types extends TEnumValue[], Right extends TSchema[], Pattern extends string, Variants extends TSchema[] = TEnumValuesToVariants<Types>> = TEncodeUnion<Variants, Right, Pattern>;
23
+ type TEncodeTemplateLiteralDeferred<Types extends TSchema[], Right extends TSchema[], Pattern extends string, TemplateLiteral extends TSchema = TTemplateLiteralAction<Types>, Result extends TSchema = TEncodeType<TemplateLiteral, Right, Pattern>> = Result;
24
+ type TEncodeEnum<Values extends TEnumValue[], Right extends TSchema[], Pattern extends string, Evaluated extends TSchema = TEvaluateEnum<Values>> = TEncodeType<Evaluated, Right, Pattern>;
23
25
  type TEncodeUnion<Types extends TSchema[], Right extends TSchema[], Pattern extends string, Result extends string[] = []> = Types extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TEncodeUnion<Tail, Right, Pattern, [...Result, TEncodeType<Head, [], ''>]> : TEncodeTypes<Right, `${Pattern}(${TJoinString<Result>})`>;
24
- type TEncodeType<Type extends TSchema, Right extends TSchema[], Pattern extends string> = (Type extends TEnum<infer Values extends TEnumValue[]> ? TEncodeEnum<Values, Right, Pattern> : Type extends TInteger ? TEncodeInteger<Right, Pattern> : Type extends TLiteral<infer Value extends TLiteralValue> ? TEncodeLiteral<Value, Right, Pattern> : Type extends TBigInt ? TEncodeBigInt<Right, Pattern> : Type extends TBoolean ? TEncodeBoolean<Right, Pattern> : Type extends TNumber ? TEncodeNumber<Right, Pattern> : Type extends TString ? TEncodeString<Right, Pattern> : Type extends TTemplateLiteral<infer TemplatePattern extends string> ? TEncodeTemplateLiteral<TemplatePattern, Right, Pattern> : Type extends TUnion<infer Types extends TSchema[]> ? TEncodeUnion<Types, Right, Pattern> : typeof NeverPattern);
26
+ type TEncodeType<Type extends TSchema, Right extends TSchema[], Pattern extends string> = (Type extends TEnum<infer Values extends TEnumValue[]> ? TEncodeEnum<Values, Right, Pattern> : Type extends TInteger ? TEncodeInteger<Right, Pattern> : Type extends TLiteral<infer Value extends TLiteralValue> ? TEncodeLiteral<Value, Right, Pattern> : Type extends TBigInt ? TEncodeBigInt<Right, Pattern> : Type extends TBoolean ? TEncodeBoolean<Right, Pattern> : Type extends TNumber ? TEncodeNumber<Right, Pattern> : Type extends TString ? TEncodeString<Right, Pattern> : Type extends TTemplateLiteral<infer TemplatePattern extends string> ? TEncodeTemplateLiteral<TemplatePattern, Right, Pattern> : Type extends TTemplateLiteralDeferred<infer Types extends TSchema[]> ? TEncodeTemplateLiteralDeferred<Types, Right, Pattern> : Type extends TUnion<infer Types extends TSchema[]> ? TEncodeUnion<Types, Right, Pattern> : typeof NeverPattern);
25
27
  type TEncodeTypes<Types extends TSchema[], Pattern extends string> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TEncodeType<Left, Right, Pattern> : Pattern);
26
28
  type TEncodePattern<Types extends TSchema[], Encoded extends string = TEncodeTypes<Types, ''>, Result extends string = `^${Encoded}$`> = Result;
27
29
  /** Encodes a TemplateLiteral type sequence into a TemplateLiteral */
@@ -1,9 +1,9 @@
1
1
  // deno-fmt-ignore-file
2
- import { IsSchema } from '../../types/schema.mjs';
2
+ import { Guard } from '../../../guard/index.mjs';
3
3
  import { IsEnum } from '../../types/enum.mjs';
4
4
  import { Literal, IsLiteral } from '../../types/literal.mjs';
5
5
  import { Union, IsUnion } from '../../types/union.mjs';
6
- import { IsTemplateLiteral } from '../../types/template-literal.mjs';
6
+ import { IsTemplateLiteral, IsTemplateLiteralDeferred } from '../../types/template_literal.mjs';
7
7
  import { IsBigInt, BigIntPattern } from '../../types/bigint.mjs';
8
8
  import { IsString, StringPattern } from '../../types/string.mjs';
9
9
  import { IsNumber, NumberPattern } from '../../types/number.mjs';
@@ -11,7 +11,8 @@ import { IsInteger, IntegerPattern } from '../../types/integer.mjs';
11
11
  import { IsBoolean } from '../../types/boolean.mjs';
12
12
  import { NeverPattern } from '../../types/never.mjs';
13
13
  import { TemplateLiteralCreate } from './create.mjs';
14
- import { EnumValuesToVariants } from '../enum/enum-to-union.mjs';
14
+ import { EvaluateEnum } from '../evaluate/evaluate.mjs';
15
+ import { TemplateLiteralAction } from './instantiate.mjs';
15
16
  function JoinString(input) {
16
17
  return input.join('|');
17
18
  }
@@ -39,15 +40,17 @@ function EncodeString(right, pattern) {
39
40
  function EncodeTemplateLiteral(templatePattern, right, pattern) {
40
41
  return EncodeTypes(right, `${pattern}${UnwrapTemplateLiteralPattern(templatePattern)}`);
41
42
  }
42
- function EncodeEnum(types, right, pattern) {
43
- const variants = EnumValuesToVariants(types);
44
- return EncodeUnion(variants, right, pattern);
43
+ function EncodeTemplateLiteralDeferred(types, right, pattern) {
44
+ const templateLiteral = TemplateLiteralAction(types, {});
45
+ const result = EncodeType(templateLiteral, right, pattern);
46
+ return result;
47
+ }
48
+ function EncodeEnum(values, right, pattern) {
49
+ const evaluated = EvaluateEnum(values);
50
+ return EncodeType(evaluated, right, pattern);
45
51
  }
46
52
  function EncodeUnion(types, right, pattern, result = []) {
47
- const [head, ...tail] = types;
48
- return (IsSchema(head)
49
- ? EncodeUnion(tail, right, pattern, [...result, EncodeType(head, [], '')])
50
- : EncodeTypes(right, `${pattern}(${JoinString(result)})`));
53
+ return Guard.ShiftLeft(types, (head, tail) => EncodeUnion(tail, right, pattern, [...result, EncodeType(head, [], '')]), () => EncodeTypes(right, `${pattern}(${JoinString(result)})`));
51
54
  }
52
55
  function EncodeType(type, right, pattern) {
53
56
  return (IsEnum(type) ? EncodeEnum(type.enum, right, pattern) :
@@ -58,14 +61,12 @@ function EncodeType(type, right, pattern) {
58
61
  IsNumber(type) ? EncodeNumber(right, pattern) :
59
62
  IsString(type) ? EncodeString(right, pattern) :
60
63
  IsTemplateLiteral(type) ? EncodeTemplateLiteral(type.pattern, right, pattern) :
61
- IsUnion(type) ? EncodeUnion(type.anyOf, right, pattern) :
62
- NeverPattern);
64
+ IsTemplateLiteralDeferred(type) ? EncodeTemplateLiteralDeferred(type.parameters[0], right, pattern) :
65
+ IsUnion(type) ? EncodeUnion(type.anyOf, right, pattern) :
66
+ NeverPattern);
63
67
  }
64
68
  function EncodeTypes(types, pattern) {
65
- const [left, ...right] = types;
66
- return (IsSchema(left)
67
- ? EncodeType(left, right, pattern)
68
- : pattern);
69
+ return Guard.ShiftLeft(types, (left, right) => EncodeType(left, right, pattern), () => pattern);
69
70
  }
70
71
  function EncodePattern(types) {
71
72
  const encoded = EncodeTypes(types, '');
@@ -2,5 +2,5 @@ export * from './create.mjs';
2
2
  export * from './decode.mjs';
3
3
  export * from './encode.mjs';
4
4
  export * from './static.mjs';
5
- export * from './is-finite.mjs';
6
- export * from './is-pattern.mjs';
5
+ export * from './is_finite.mjs';
6
+ export * from './is_pattern.mjs';
@@ -2,5 +2,5 @@ export * from './create.mjs';
2
2
  export * from './decode.mjs';
3
3
  export * from './encode.mjs';
4
4
  export * from './static.mjs';
5
- export * from './is-finite.mjs';
6
- export * from './is-pattern.mjs';
5
+ export * from './is_finite.mjs';
6
+ export * from './is_pattern.mjs';
@@ -1,9 +1,9 @@
1
1
  import { type TSchema, type TSchemaOptions } from '../../types/schema.mjs';
2
2
  import { type TProperties } from '../../types/properties.mjs';
3
- import { type TTemplateLiteralDeferred } from '../../types/template-literal.mjs';
3
+ import { type TTemplateLiteralDeferred } from '../../types/template_literal.mjs';
4
4
  import { type TTemplateLiteralEncode } from './encode.mjs';
5
5
  import { type TState, type TInstantiateTypes, type TCanInstantiate } from '../instantiate.mjs';
6
- type TTemplateLiteralImmediate<Context extends TProperties, State extends TState, Types extends TSchema[], InstantiatedTypes extends TSchema[] = TInstantiateTypes<Context, State, Types>, Result extends TSchema = TTemplateLiteralEncode<InstantiatedTypes>> = Result;
7
- export type TTemplateLiteralInstantiate<Context extends TProperties, State extends TState, Types extends TSchema[]> = TCanInstantiate<Context, Types> extends true ? TTemplateLiteralImmediate<Context, State, Types> : TTemplateLiteralDeferred<Types>;
6
+ export type TTemplateLiteralAction<Types extends TSchema[], Result extends TSchema = TCanInstantiate<Types> extends true ? TTemplateLiteralEncode<Types> : TTemplateLiteralDeferred<Types>> = Result;
7
+ export declare function TemplateLiteralAction<Types extends TSchema[]>(types: [...Types], options: TSchemaOptions): TTemplateLiteralAction<Types>;
8
+ export type TTemplateLiteralInstantiate<Context extends TProperties, State extends TState, Types extends TSchema[], InstantiatedTypes extends TSchema[] = TInstantiateTypes<Context, State, Types>> = TTemplateLiteralAction<InstantiatedTypes>;
8
9
  export declare function TemplateLiteralInstantiate<Context extends TProperties, State extends TState, Types extends TSchema[]>(context: Context, state: State, types: [...Types], options: TSchemaOptions): TTemplateLiteralInstantiate<Context, State, Types>;
9
- export {};
@@ -0,0 +1,15 @@
1
+ // deno-fmt-ignore-file
2
+ import { Memory } from '../../../system/memory/index.mjs';
3
+ import { TemplateLiteralDeferred } from '../../types/template_literal.mjs';
4
+ import { TemplateLiteralEncode } from './encode.mjs';
5
+ import { InstantiateTypes, CanInstantiate } from '../instantiate.mjs';
6
+ export function TemplateLiteralAction(types, options) {
7
+ const result = CanInstantiate(types)
8
+ ? Memory.Update(TemplateLiteralEncode(types), {}, options)
9
+ : TemplateLiteralDeferred(types, options);
10
+ return result;
11
+ }
12
+ export function TemplateLiteralInstantiate(context, state, types, options) {
13
+ const instantiatedTypes = InstantiateTypes(context, state, types);
14
+ return TemplateLiteralAction(instantiatedTypes, options);
15
+ }
@@ -1,18 +1,14 @@
1
1
  // deno-fmt-ignore-file
2
2
  import { Guard } from '../../../guard/index.mjs';
3
- import { IsSchema } from '../../types/schema.mjs';
4
3
  import { IsLiteral } from '../../types/literal.mjs';
5
4
  import { IsUnion } from '../../types/union.mjs';
6
5
  function FromLiteral(_value) {
7
6
  return true;
8
7
  }
9
8
  function FromTypesReduce(types) {
10
- const [left, ...right] = types;
11
- return (IsSchema(left)
12
- ? FromType(left)
13
- ? FromTypesReduce(right)
14
- : false
15
- : true);
9
+ return Guard.ShiftLeft(types, (left, right) => FromType(left)
10
+ ? FromTypesReduce(right)
11
+ : false, () => true);
16
12
  }
17
13
  function FromTypes(types) {
18
14
  const result = Guard.IsEqual(types.length, 0) ? false : FromTypesReduce(types);
@@ -7,3 +7,4 @@ export function IsTemplateLiteralPattern(pattern) {
7
7
  const result = Guard.IsEqual(types.length, 0) ? false : true;
8
8
  return result;
9
9
  }
10
+ // deno-coverage-ignore-stop
@@ -0,0 +1,16 @@
1
+ import { type TArray } from '../../types/array.mjs';
2
+ import { type TConstructor } from '../../types/constructor.mjs';
3
+ import { type TFunction } from '../../types/function.mjs';
4
+ import { type TIntersect } from '../../types/intersect.mjs';
5
+ import { type TObject } from '../../types/object.mjs';
6
+ import { type TProperties } from '../../types/properties.mjs';
7
+ import { type TSchema } from '../../types/schema.mjs';
8
+ import { type TTuple } from '../../types/tuple.mjs';
9
+ import { type TThis } from '../../types/this.mjs';
10
+ import { type TUnion } from '../../types/union.mjs';
11
+ type TFromTypes<Properties extends TProperties, Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromTypes<Properties, Right, [...Result, TFromType<Properties, Left>]> : Result);
12
+ export type TFromType<Properties extends TProperties, Type extends TSchema> = (Type extends TArray<infer Type extends TSchema> ? TArray<TFromType<Properties, Type>> : Type extends TConstructor<infer Parameters extends TSchema[], infer InstanceType extends TSchema> ? TConstructor<TFromTypes<Properties, Parameters>, TFromType<Properties, InstanceType>> : Type extends TFunction<infer Parameters extends TSchema[], infer ReturnType extends TSchema> ? TFunction<TFromTypes<Properties, Parameters>, TFromType<Properties, ReturnType>> : Type extends TTuple<infer Types extends TSchema[]> ? TTuple<TFromTypes<Properties, Types>> : Type extends TUnion<infer Types extends TSchema[]> ? TUnion<TFromTypes<Properties, Types>> : Type extends TIntersect<infer Types extends TSchema[]> ? TIntersect<TFromTypes<Properties, Types>> : Type extends TThis ? TObject<Properties> : Type);
13
+ export declare function FromType<Properties extends TProperties, Type extends TSchema>(properties: Properties, type: Type): TFromType<Properties, Type>;
14
+ export type TExpandThis<Properties extends TProperties, Type extends TSchema, Result extends TSchema = TFromType<Properties, Type>> = Result;
15
+ export declare function ExpandThis<Properties extends TProperties, Type extends TSchema>(properties: TProperties, type: Type): TExpandThis<Properties, Type>;
16
+ export {};
@@ -0,0 +1,26 @@
1
+ // deno-fmt-ignore-file
2
+ import { IsArray, _Array_ } from '../../types/array.mjs';
3
+ import { IsConstructor, Constructor } from '../../types/constructor.mjs';
4
+ import { IsFunction, _Function_ } from '../../types/function.mjs';
5
+ import { IsIntersect, Intersect } from '../../types/intersect.mjs';
6
+ import { _Object_ } from '../../types/object.mjs';
7
+ import { IsTuple, Tuple } from '../../types/tuple.mjs';
8
+ import { IsThis } from '../../types/this.mjs';
9
+ import { IsUnion, Union } from '../../types/union.mjs';
10
+ function FromTypes(properties, types) {
11
+ return types.map(type => FromType(properties, type));
12
+ }
13
+ export function FromType(properties, type) {
14
+ return (IsArray(type) ? _Array_(FromType(properties, type.items)) :
15
+ IsConstructor(type) ? Constructor(FromTypes(properties, type.parameters), FromType(properties, type.instanceType)) :
16
+ IsFunction(type) ? _Function_(FromTypes(properties, type.parameters), FromType(properties, type.returnType)) :
17
+ IsTuple(type) ? Tuple(FromTypes(properties, type.items)) :
18
+ IsUnion(type) ? Union(FromTypes(properties, type.anyOf)) :
19
+ IsIntersect(type) ? Intersect(FromTypes(properties, type.allOf)) :
20
+ IsThis(type) ? _Object_(properties) :
21
+ type);
22
+ }
23
+ export function ExpandThis(properties, type) {
24
+ const result = FromType(properties, type);
25
+ return result;
26
+ }
@@ -0,0 +1,8 @@
1
+ import { type TProperties } from '../../types/properties.mjs';
2
+ import { type TSchema } from '../../types/schema.mjs';
3
+ import { type TState, type TInstantiateType, type TCanInstantiate } from '../instantiate.mjs';
4
+ import { type TWithDeferred, type TWith } from '../../action/with.mjs';
5
+ export type TWithAction<Type extends TSchema, Options extends TSchema, Result extends TSchema = TCanInstantiate<[Type]> extends true ? TWith<Type, Options> : TWithDeferred<Type, Options>> = Result;
6
+ export declare function WithAction<Type extends TSchema, Options extends TSchema>(type: Type, options: Options): TWithAction<Type, Options>;
7
+ export type TWithInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, Options extends TSchema, InstantiatedType extends TSchema = TInstantiateType<Context, State, Type>> = TWithAction<InstantiatedType, Options>;
8
+ export declare function WithInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, Options extends TSchema>(context: Context, state: State, type: Type, options: Options): TWithInstantiate<Context, State, Type, Options>;
@@ -0,0 +1,14 @@
1
+ // deno-fmt-ignore-file
2
+ import { Memory } from '../../../system/memory/index.mjs';
3
+ import { InstantiateType, CanInstantiate } from '../instantiate.mjs';
4
+ import { WithDeferred } from '../../action/with.mjs';
5
+ export function WithAction(type, options) {
6
+ const result = CanInstantiate([type])
7
+ ? Memory.Update(type, {}, options)
8
+ : WithDeferred(type, options);
9
+ return result;
10
+ }
11
+ export function WithInstantiate(context, state, type, options) {
12
+ const instaniatedType = InstantiateType(context, state, type);
13
+ return WithAction(instaniatedType, options);
14
+ }
@@ -3,7 +3,7 @@ import { type TProperties } from '../types/properties.mjs';
3
3
  import { type TInfer } from '../types/infer.mjs';
4
4
  import { type TAny } from '../types/any.mjs';
5
5
  import { type TUnknown } from '../types/unknown.mjs';
6
- import { type TExtendsRight } from './extends-right.mjs';
6
+ import { type TExtendsRight } from './extends_right.mjs';
7
7
  import * as Result from './result.mjs';
8
8
  export type TExtendsAny<Inferred extends TProperties, Left extends TAny, Right extends TSchema> = (Right extends TInfer ? TExtendsRight<Inferred, Left, Right> : Right extends TAny ? Result.TExtendsTrue<Inferred> : Right extends TUnknown ? Result.TExtendsTrue<Inferred> : Result.TExtendsUnion<Inferred>);
9
9
  export declare function ExtendsAny<Inferred extends TProperties, Left extends TAny, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsAny<Inferred, Left, Right>;
@@ -2,7 +2,7 @@
2
2
  import { IsInfer } from '../types/infer.mjs';
3
3
  import { IsAny } from '../types/any.mjs';
4
4
  import { IsUnknown } from '../types/unknown.mjs';
5
- import { ExtendsRight } from './extends-right.mjs';
5
+ import { ExtendsRight } from './extends_right.mjs';
6
6
  import * as Result from './result.mjs';
7
7
  export function ExtendsAny(inferred, left, right) {
8
8
  return (IsInfer(right) ? ExtendsRight(inferred, left, right) :
@@ -2,8 +2,8 @@ import { type TSchema } from '../types/schema.mjs';
2
2
  import { type TProperties } from '../types/properties.mjs';
3
3
  import { type TArray } from '../types/array.mjs';
4
4
  import { type TImmutable } from '../types/_immutable.mjs';
5
- import { type TExtendsRight } from './extends-right.mjs';
6
- import { type TExtendsLeft } from './extends-left.mjs';
5
+ import { type TExtendsRight } from './extends_right.mjs';
6
+ import { type TExtendsLeft } from './extends_left.mjs';
7
7
  import * as Result from './result.mjs';
8
8
  type TExtendsImmutable<Left extends TSchema, Right extends TSchema, IsImmutableLeft extends boolean = Left extends TImmutable ? true : false, IsImmutableRight extends boolean = Right extends TImmutable ? true : false, Result extends boolean = [
9
9
  IsImmutableLeft,
@@ -1,8 +1,8 @@
1
1
  // deno-fmt-ignore-file
2
2
  import { IsArray } from '../types/array.mjs';
3
3
  import { IsImmutable } from '../types/_immutable.mjs';
4
- import { ExtendsRight } from './extends-right.mjs';
5
- import { ExtendsLeft } from './extends-left.mjs';
4
+ import { ExtendsRight } from './extends_right.mjs';
5
+ import { ExtendsLeft } from './extends_left.mjs';
6
6
  import * as Result from './result.mjs';
7
7
  function ExtendsImmutable(left, right) {
8
8
  const isImmutableLeft = IsImmutable(left);
@@ -1,7 +1,7 @@
1
1
  import { type TSchema } from '../types/schema.mjs';
2
2
  import { type TProperties } from '../types/properties.mjs';
3
3
  import { type TBigInt } from '../types/bigint.mjs';
4
- import { type TExtendsRight } from './extends-right.mjs';
4
+ import { type TExtendsRight } from './extends_right.mjs';
5
5
  import * as Result from './result.mjs';
6
6
  export type TExtendsBigInt<Inferred extends TProperties, Left extends TBigInt, Right extends TSchema> = (Right extends TBigInt ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, Left, Right>);
7
7
  export declare function ExtendsBigInt<Inferred extends TProperties, Left extends TBigInt, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsBigInt<Inferred, Left, Right>;
@@ -1,6 +1,6 @@
1
1
  // deno-fmt-ignore-file
2
2
  import { IsBigInt } from '../types/bigint.mjs';
3
- import { ExtendsRight } from './extends-right.mjs';
3
+ import { ExtendsRight } from './extends_right.mjs';
4
4
  import * as Result from './result.mjs';
5
5
  export function ExtendsBigInt(inferred, left, right) {
6
6
  return (IsBigInt(right)
@@ -1,7 +1,7 @@
1
1
  import { type TSchema } from '../types/schema.mjs';
2
2
  import { type TProperties } from '../types/properties.mjs';
3
3
  import { type TBoolean } from '../types/boolean.mjs';
4
- import { type TExtendsRight } from './extends-right.mjs';
4
+ import { type TExtendsRight } from './extends_right.mjs';
5
5
  import * as Result from './result.mjs';
6
6
  export type TExtendsBoolean<Inferred extends TProperties, Left extends TBoolean, Right extends TSchema> = (Right extends TBoolean ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, Left, Right>);
7
7
  export declare function ExtendsBoolean<Inferred extends TProperties, Left extends TBoolean, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsBoolean<Inferred, Left, Right>;
@@ -1,6 +1,6 @@
1
1
  // deno-fmt-ignore-file
2
2
  import { IsBoolean } from '../types/boolean.mjs';
3
- import { ExtendsRight } from './extends-right.mjs';
3
+ import { ExtendsRight } from './extends_right.mjs';
4
4
  import * as Result from './result.mjs';
5
5
  export function ExtendsBoolean(inferred, left, right) {
6
6
  return (IsBoolean(right)
@@ -5,6 +5,6 @@ import { type TConstructor } from '../types/constructor.mjs';
5
5
  import { type TUnknown } from '../types/unknown.mjs';
6
6
  import * as Result from './result.mjs';
7
7
  import { type TExtendsParameters } from './parameters.mjs';
8
- import { type TExtendsReturnType } from './return-type.mjs';
8
+ import { type TExtendsReturnType } from './return_type.mjs';
9
9
  export type TExtendsConstructor<Inferred extends TProperties, Parameters extends TSchema[], InstanceType extends TSchema, Right extends TSchema> = (Right extends TAny ? Result.TExtendsTrue<Inferred> : Right extends TUnknown ? Result.TExtendsTrue<Inferred> : Right extends TConstructor ? TExtendsParameters<Inferred, Parameters, Right['parameters']> extends Result.TExtendsTrueLike<infer Inferred extends TProperties> ? TExtendsReturnType<Inferred, InstanceType, Right['instanceType']> : Result.TExtendsFalse : Result.TExtendsFalse);
10
10
  export declare function ExtendsConstructor<Inferred extends TProperties, Parameters extends TSchema[], InstanceType extends TSchema, Right extends TSchema>(inferred: Inferred, parameters: [...Parameters], returnType: InstanceType, right: Right): TExtendsConstructor<Inferred, Parameters, InstanceType, Right>;
@@ -7,7 +7,7 @@ import * as Result from './result.mjs';
7
7
  // Parameters | ReturnType
8
8
  // ------------------------------------------------------------------
9
9
  import { ExtendsParameters } from './parameters.mjs';
10
- import { ExtendsReturnType } from './return-type.mjs';
10
+ import { ExtendsReturnType } from './return_type.mjs';
11
11
  export function ExtendsConstructor(inferred, parameters, returnType, right) {
12
12
  return (IsAny(right) ? Result.ExtendsTrue(inferred) :
13
13
  IsUnknown(right) ? Result.ExtendsTrue(inferred) :
@@ -0,0 +1,6 @@
1
+ import { type TProperties } from '../types/properties.mjs';
2
+ import { type TSchema } from '../types/schema.mjs';
3
+ import { type TExtendsLeft } from './extends_left.mjs';
4
+ import * as Result from './result.mjs';
5
+ export type TExtendsDependent<Inferred extends TProperties, If extends TSchema, Then extends TSchema, Else extends TSchema, Right extends TSchema> = (TExtendsLeft<Inferred, If, Right> extends Result.TExtendsTrueLike<infer Inferred extends TProperties> ? TExtendsLeft<Inferred, Then, Right> : TExtendsLeft<Inferred, Else, Right>);
6
+ export declare function ExtendsDependent<Inferred extends TProperties, If extends TSchema, Then extends TSchema, Else extends TSchema, Right extends TSchema>(inferred: Inferred, if_: If, then_: Then, else_: Else, right: Right): TExtendsDependent<Inferred, If, Then, Else, Right>;
@@ -0,0 +1,6 @@
1
+ // deno-fmt-ignore-file
2
+ import { ExtendsLeft } from './extends_left.mjs';
3
+ import * as Result from './result.mjs';
4
+ export function ExtendsDependent(inferred, if_, then_, else_, right) {
5
+ return Result.Match(ExtendsLeft(inferred, if_, right), () => ExtendsLeft(inferred, then_, right), () => ExtendsLeft(inferred, else_, right));
6
+ }
@@ -1,7 +1,7 @@
1
1
  import { type TSchema } from '../types/schema.mjs';
2
2
  import { type TProperties } from '../types/properties.mjs';
3
- import { type TEnum } from '../types/enum.mjs';
4
- import { type TExtendsLeft } from './extends-left.mjs';
5
- import { type TEnumToUnion } from '../engine/enum/index.mjs';
6
- export type TExtendsEnum<Inferred extends TProperties, Left extends TEnum, Right extends TSchema> = (TExtendsLeft<Inferred, TEnumToUnion<Left>, Right>);
7
- export declare function ExtendsEnum<Inferred extends TProperties, Left extends TEnum, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsEnum<Inferred, Left, Right>;
3
+ import { type TEnumValue } from '../types/enum.mjs';
4
+ import { type TExtendsLeft } from './extends_left.mjs';
5
+ import { type TEvaluateEnum } from '../engine/evaluate/evaluate.mjs';
6
+ export type TExtendsEnum<Inferred extends TProperties, Left extends TEnumValue[], Right extends TSchema, Evaluated extends TSchema = TEvaluateEnum<Left>> = TExtendsLeft<Inferred, Evaluated, Right>;
7
+ export declare function ExtendsEnum<Inferred extends TProperties, Left extends TEnumValue[], Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsEnum<Inferred, Left, Right>;
@@ -1,6 +1,7 @@
1
1
  // deno-fmt-ignore-file
2
- import { ExtendsLeft } from './extends-left.mjs';
3
- import { EnumToUnion } from '../engine/enum/index.mjs';
2
+ import { ExtendsLeft } from './extends_left.mjs';
3
+ import { EvaluateEnum } from '../engine/evaluate/evaluate.mjs';
4
4
  export function ExtendsEnum(inferred, left, right) {
5
- return ExtendsLeft(inferred, EnumToUnion(left), right);
5
+ const evaluated = EvaluateEnum(left);
6
+ return ExtendsLeft(inferred, evaluated, right);
6
7
  }
@@ -1,11 +1,13 @@
1
1
  import { type TSchema } from '../types/schema.mjs';
2
2
  import { type TProperties } from '../types/properties.mjs';
3
3
  import { type TCyclic } from '../types/cyclic.mjs';
4
- import { type TExtendsLeft } from './extends-left.mjs';
4
+ import { type TUnknown } from '../types/unknown.mjs';
5
+ import { type TUnsafe } from '../types/unsafe.mjs';
6
+ import { type TExtendsLeft } from './extends_left.mjs';
5
7
  import { type TCyclicExtends } from '../engine/cyclic/index.mjs';
6
- type TNormal<Type extends TSchema> = (Type extends TCyclic ? TCyclicExtends<Type> : Type);
8
+ type TCanonical<Type extends TSchema> = (Type extends TCyclic ? TCyclicExtends<Type> : Type extends TUnsafe ? TUnknown : Type);
7
9
  /** Performs a structural extends check on left and right types and yields inferred types on right if specified. */
8
- export type TExtends<Inferred extends TProperties, Left extends TSchema, Right extends TSchema, NormalLeft extends TSchema = TNormal<Left>, NormalRight extends TSchema = TNormal<Right>> = TExtendsLeft<Inferred, NormalLeft, NormalRight>;
10
+ export type TExtends<Inferred extends TProperties, Left extends TSchema, Right extends TSchema, CanonicalLeft extends TSchema = TCanonical<Left>, CanonicalRight extends TSchema = TCanonical<Right>> = TExtendsLeft<Inferred, CanonicalLeft, CanonicalRight>;
9
11
  /** Performs a structural extends check on left and right types and yields inferred types on right if specified. */
10
12
  export declare function Extends<Inferred extends TProperties, Left extends TSchema, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtends<Inferred, Left, Right>;
11
13
  export {};