@flex-development/mlly 1.0.0-alpha.1 → 1.0.0-alpha.11

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 (380) hide show
  1. package/CHANGELOG.md +431 -3
  2. package/README.md +6 -4
  3. package/changelog.config.ts +404 -0
  4. package/dist/enums/assert-type.d.mts +21 -0
  5. package/dist/enums/assert-type.mjs +10 -0
  6. package/dist/enums/assert-type.mjs.map +6 -0
  7. package/dist/enums/format.d.mts +17 -0
  8. package/dist/enums/format.mjs +13 -0
  9. package/dist/enums/format.mjs.map +6 -0
  10. package/dist/enums/index.d.mts +10 -0
  11. package/dist/enums/index.mjs +15 -0
  12. package/dist/enums/index.mjs.map +6 -0
  13. package/dist/enums/kind-specifier-syntax.d.mts +14 -0
  14. package/dist/enums/kind-specifier-syntax.mjs +10 -0
  15. package/dist/enums/kind-specifier-syntax.mjs.map +6 -0
  16. package/dist/enums/kind-specifier.d.mts +17 -0
  17. package/dist/enums/kind-specifier.mjs +11 -0
  18. package/dist/enums/kind-specifier.mjs.map +6 -0
  19. package/dist/enums/kind-statement-syntax.d.mts +22 -0
  20. package/dist/enums/kind-statement-syntax.mjs +18 -0
  21. package/dist/enums/kind-statement-syntax.mjs.map +6 -0
  22. package/dist/enums/kind-statement.d.mts +15 -0
  23. package/dist/enums/kind-statement.mjs +11 -0
  24. package/dist/enums/kind-statement.mjs.map +6 -0
  25. package/dist/index.d.mts +2 -2
  26. package/dist/index.mjs +3 -2
  27. package/dist/index.mjs.map +6 -0
  28. package/dist/interfaces/import-assertions.d.mts +20 -0
  29. package/dist/interfaces/import-dynamic.d.mts +26 -6
  30. package/dist/interfaces/import-static.d.mts +22 -4
  31. package/dist/interfaces/index.d.mts +12 -0
  32. package/dist/interfaces/index.mjs +1 -0
  33. package/dist/interfaces/index.mjs.map +6 -0
  34. package/dist/interfaces/options-fill-module.d.mts +23 -0
  35. package/dist/interfaces/options-find-subpath.d.mts +49 -0
  36. package/dist/interfaces/options-get-format.d.mts +83 -0
  37. package/dist/interfaces/options-get-source.d.mts +63 -0
  38. package/dist/interfaces/options-parse-module-id.d.mts +33 -0
  39. package/dist/interfaces/options-parse-subpath.d.mts +31 -0
  40. package/dist/interfaces/options-resolve-alias.d.mts +26 -42
  41. package/dist/interfaces/options-resolve-module.d.mts +64 -0
  42. package/dist/interfaces/options-resolve.d.mts +7 -52
  43. package/dist/interfaces/package-scope.d.mts +25 -0
  44. package/dist/interfaces/parsed-data-url.d.mts +56 -0
  45. package/dist/interfaces/parsed-module-id.d.mts +80 -0
  46. package/dist/interfaces/parsed-subpath.d.mts +40 -0
  47. package/dist/interfaces/statement-export.d.mts +22 -9
  48. package/dist/interfaces/statement-import.d.mts +15 -4
  49. package/dist/interfaces/statement-require.d.mts +15 -4
  50. package/dist/interfaces/statement.d.mts +24 -8
  51. package/dist/internal/escape-reg-exp.d.mts +16 -0
  52. package/dist/internal/escape-reg-exp.mjs +10 -0
  53. package/dist/internal/escape-reg-exp.mjs.map +6 -0
  54. package/dist/internal/format-type-map.d.mts +17 -0
  55. package/dist/internal/format-type-map.mjs +13 -0
  56. package/dist/internal/format-type-map.mjs.map +6 -0
  57. package/dist/internal/get-specifier-kind.d.mts +17 -0
  58. package/dist/internal/get-specifier-kind.mjs +14 -0
  59. package/dist/internal/get-specifier-kind.mjs.map +6 -0
  60. package/dist/internal/get-subpaths.d.mts +25 -0
  61. package/dist/internal/get-subpaths.mjs +10 -0
  62. package/dist/internal/get-subpaths.mjs.map +6 -0
  63. package/dist/internal/is-array-index.d.mts +15 -0
  64. package/dist/internal/is-array-index.mjs +9 -0
  65. package/dist/internal/is-array-index.mjs.map +6 -0
  66. package/dist/internal/is-directory.d.mts +13 -0
  67. package/dist/internal/is-directory.mjs +16 -0
  68. package/dist/internal/is-directory.mjs.map +6 -0
  69. package/dist/internal/is-file.d.mts +13 -0
  70. package/dist/internal/is-file.mjs +16 -0
  71. package/dist/internal/is-file.mjs.map +6 -0
  72. package/dist/internal/is-function.d.mts +12 -0
  73. package/dist/internal/is-function.mjs +8 -0
  74. package/dist/internal/is-function.mjs.map +6 -0
  75. package/dist/internal/regex-encoded-sep.d.mts +13 -0
  76. package/dist/internal/regex-encoded-sep.mjs +6 -0
  77. package/dist/internal/regex-encoded-sep.mjs.map +6 -0
  78. package/dist/internal/regex-internal-specifier.d.mts +14 -0
  79. package/dist/internal/regex-internal-specifier.mjs +6 -0
  80. package/dist/internal/regex-internal-specifier.mjs.map +6 -0
  81. package/dist/internal/regex-package-name.d.mts +13 -0
  82. package/dist/internal/regex-package-name.mjs +6 -0
  83. package/dist/internal/regex-package-name.mjs.map +6 -0
  84. package/dist/internal/regex-package-path.d.mts +15 -0
  85. package/dist/internal/regex-package-path.mjs +6 -0
  86. package/dist/internal/regex-package-path.mjs.map +6 -0
  87. package/dist/internal/resolver.d.mts +130 -0
  88. package/dist/internal/resolver.mjs +500 -0
  89. package/dist/internal/resolver.mjs.map +6 -0
  90. package/dist/internal/validate-boolean.d.mts +20 -0
  91. package/dist/internal/validate-boolean.mjs +11 -0
  92. package/dist/internal/validate-boolean.mjs.map +6 -0
  93. package/dist/internal/validate-object.d.mts +23 -0
  94. package/dist/internal/validate-object.mjs +11 -0
  95. package/dist/internal/validate-object.mjs.map +6 -0
  96. package/dist/internal/validate-set.d.mts +23 -0
  97. package/dist/internal/validate-set.mjs +11 -0
  98. package/dist/internal/validate-set.mjs.map +6 -0
  99. package/dist/internal/validate-string.d.mts +20 -0
  100. package/dist/internal/validate-string.mjs +11 -0
  101. package/dist/internal/validate-string.mjs.map +6 -0
  102. package/dist/internal/validate-url-string.d.mts +22 -0
  103. package/dist/internal/validate-url-string.mjs +12 -0
  104. package/dist/internal/validate-url-string.mjs.map +6 -0
  105. package/dist/types/declaration.d.mts +1 -1
  106. package/dist/types/fn-change-ext.d.mts +28 -0
  107. package/dist/types/index.d.mts +8 -4
  108. package/dist/types/index.mjs +1 -0
  109. package/dist/types/index.mjs.map +6 -0
  110. package/dist/types/mime-type.d.mts +7 -5
  111. package/dist/types/module-id.d.mts +13 -0
  112. package/dist/types/module-specifier-type.d.mts +11 -0
  113. package/dist/types/protocol.d.mts +14 -0
  114. package/dist/types/syntax-kind-export.d.mts +12 -0
  115. package/dist/types/syntax-kind-import.d.mts +12 -0
  116. package/dist/types/syntax-kind-require.d.mts +12 -0
  117. package/dist/utils/compare-subpaths.d.mts +25 -0
  118. package/dist/utils/compare-subpaths.mjs +24 -0
  119. package/dist/utils/compare-subpaths.mjs.map +6 -0
  120. package/dist/utils/conditions.d.mts +13 -0
  121. package/dist/utils/conditions.mjs +6 -0
  122. package/dist/utils/conditions.mjs.map +6 -0
  123. package/dist/{lib → utils}/detect-syntax.d.mts +4 -4
  124. package/dist/{lib → utils}/detect-syntax.mjs +1 -0
  125. package/dist/utils/detect-syntax.mjs.map +6 -0
  126. package/dist/utils/extension-format-map.d.mts +16 -0
  127. package/dist/utils/extension-format-map.mjs +22 -0
  128. package/dist/utils/extension-format-map.mjs.map +6 -0
  129. package/dist/utils/extract-statements.d.mts +21 -0
  130. package/dist/{lib → utils}/extract-statements.mjs +4 -1
  131. package/dist/utils/extract-statements.mjs.map +6 -0
  132. package/dist/utils/fill-modules.d.mts +23 -0
  133. package/dist/utils/fill-modules.mjs +64 -0
  134. package/dist/utils/fill-modules.mjs.map +6 -0
  135. package/dist/utils/find-dynamic-imports.d.mts +18 -0
  136. package/dist/utils/find-dynamic-imports.mjs +39 -0
  137. package/dist/utils/find-dynamic-imports.mjs.map +6 -0
  138. package/dist/utils/find-exports.d.mts +21 -0
  139. package/dist/utils/find-exports.mjs +95 -0
  140. package/dist/utils/find-exports.mjs.map +6 -0
  141. package/dist/utils/find-requires.d.mts +18 -0
  142. package/dist/utils/find-requires.mjs +32 -0
  143. package/dist/utils/find-requires.mjs.map +6 -0
  144. package/dist/utils/find-static-imports.d.mts +18 -0
  145. package/dist/utils/find-static-imports.mjs +34 -0
  146. package/dist/utils/find-static-imports.mjs.map +6 -0
  147. package/dist/utils/find-subpath.d.mts +30 -0
  148. package/dist/utils/find-subpath.mjs +106 -0
  149. package/dist/utils/find-subpath.mjs.map +6 -0
  150. package/dist/utils/get-format.d.mts +24 -0
  151. package/dist/utils/get-format.mjs +111 -0
  152. package/dist/utils/get-format.mjs.map +6 -0
  153. package/dist/utils/get-source.d.mts +22 -0
  154. package/dist/utils/get-source.mjs +63 -0
  155. package/dist/utils/get-source.mjs.map +6 -0
  156. package/dist/{lib → utils}/has-cjs-syntax.d.mts +5 -2
  157. package/dist/utils/has-cjs-syntax.mjs +11 -0
  158. package/dist/utils/has-cjs-syntax.mjs.map +6 -0
  159. package/dist/{lib → utils}/has-esm-syntax.d.mts +5 -2
  160. package/dist/utils/has-esm-syntax.mjs +11 -0
  161. package/dist/utils/has-esm-syntax.mjs.map +6 -0
  162. package/dist/utils/index.d.mts +42 -0
  163. package/dist/utils/index.mjs +79 -0
  164. package/dist/utils/index.mjs.map +6 -0
  165. package/dist/utils/is-absolute-specifier.d.mts +19 -0
  166. package/dist/utils/is-absolute-specifier.mjs +25 -0
  167. package/dist/utils/is-absolute-specifier.mjs.map +6 -0
  168. package/dist/utils/is-bare-specifier.d.mts +19 -0
  169. package/dist/utils/is-bare-specifier.mjs +10 -0
  170. package/dist/utils/is-bare-specifier.mjs.map +6 -0
  171. package/dist/utils/is-exports-sugar.d.mts +25 -0
  172. package/dist/utils/is-exports-sugar.mjs +26 -0
  173. package/dist/utils/is-exports-sugar.mjs.map +6 -0
  174. package/dist/utils/is-relative-specifier.d.mts +20 -0
  175. package/dist/utils/is-relative-specifier.mjs +11 -0
  176. package/dist/utils/is-relative-specifier.mjs.map +6 -0
  177. package/dist/utils/lookup-package-scope.d.mts +26 -0
  178. package/dist/utils/lookup-package-scope.mjs +38 -0
  179. package/dist/utils/lookup-package-scope.mjs.map +6 -0
  180. package/dist/utils/parse-data-url.d.mts +25 -0
  181. package/dist/utils/parse-data-url.mjs +25 -0
  182. package/dist/utils/parse-data-url.mjs.map +6 -0
  183. package/dist/utils/parse-module-id.d.mts +22 -0
  184. package/dist/utils/parse-module-id.mjs +122 -0
  185. package/dist/utils/parse-module-id.mjs.map +6 -0
  186. package/dist/utils/parse-subpath.d.mts +35 -0
  187. package/dist/utils/parse-subpath.mjs +54 -0
  188. package/dist/utils/parse-subpath.mjs.map +6 -0
  189. package/dist/utils/pattern-character.d.mts +11 -0
  190. package/dist/utils/pattern-character.mjs +6 -0
  191. package/dist/utils/pattern-character.mjs.map +6 -0
  192. package/dist/utils/read-package-json.d.mts +26 -0
  193. package/dist/utils/read-package-json.mjs +43 -0
  194. package/dist/utils/read-package-json.mjs.map +6 -0
  195. package/dist/utils/resolve-alias.d.mts +20 -0
  196. package/dist/utils/resolve-alias.mjs +106 -0
  197. package/dist/utils/resolve-alias.mjs.map +6 -0
  198. package/dist/utils/resolve-aliases.d.mts +19 -0
  199. package/dist/utils/resolve-aliases.mjs +28 -0
  200. package/dist/utils/resolve-aliases.mjs.map +6 -0
  201. package/dist/utils/resolve-extensions.d.mts +14 -0
  202. package/dist/utils/resolve-extensions.mjs +22 -0
  203. package/dist/utils/resolve-extensions.mjs.map +6 -0
  204. package/dist/utils/resolve-module.d.mts +39 -0
  205. package/dist/utils/resolve-module.mjs +64 -0
  206. package/dist/utils/resolve-module.mjs.map +6 -0
  207. package/dist/utils/resolve-modules.d.mts +25 -0
  208. package/dist/{lib → utils}/resolve-modules.mjs +7 -10
  209. package/dist/utils/resolve-modules.mjs.map +6 -0
  210. package/dist/{lib → utils}/to-absolute-specifier.d.mts +6 -6
  211. package/dist/utils/to-absolute-specifier.mjs +8 -0
  212. package/dist/utils/to-absolute-specifier.mjs.map +6 -0
  213. package/dist/utils/to-bare-specifier.d.mts +42 -0
  214. package/dist/utils/to-bare-specifier.mjs +90 -0
  215. package/dist/utils/to-bare-specifier.mjs.map +6 -0
  216. package/dist/{lib → utils}/to-data-url.d.mts +6 -5
  217. package/dist/{lib → utils}/to-data-url.mjs +4 -0
  218. package/dist/utils/to-data-url.mjs.map +6 -0
  219. package/dist/utils/to-node-url.d.mts +19 -0
  220. package/dist/utils/to-node-url.mjs +10 -0
  221. package/dist/utils/to-node-url.mjs.map +6 -0
  222. package/dist/{lib → utils}/to-relative-specifier.d.mts +6 -6
  223. package/dist/{lib → utils}/to-relative-specifier.mjs +7 -3
  224. package/dist/utils/to-relative-specifier.mjs.map +6 -0
  225. package/dist/utils/to-url.d.mts +22 -0
  226. package/dist/utils/to-url.mjs +12 -0
  227. package/dist/utils/to-url.mjs.map +6 -0
  228. package/dist/utils/validate-assertions.d.mts +23 -0
  229. package/dist/utils/validate-assertions.mjs +52 -0
  230. package/dist/utils/validate-assertions.mjs.map +6 -0
  231. package/dist/utils/validate-exports.d.mts +24 -0
  232. package/dist/utils/validate-exports.mjs +72 -0
  233. package/dist/utils/validate-exports.mjs.map +6 -0
  234. package/package.json +106 -83
  235. package/src/enums/assert-type.ts +23 -0
  236. package/src/enums/format.ts +19 -0
  237. package/src/enums/index.ts +11 -0
  238. package/src/enums/kind-specifier-syntax.ts +16 -0
  239. package/src/enums/kind-specifier.ts +19 -0
  240. package/src/enums/kind-statement-syntax.ts +24 -0
  241. package/src/enums/kind-statement.ts +17 -0
  242. package/src/index.ts +9 -0
  243. package/src/interfaces/import-assertions.ts +24 -0
  244. package/src/interfaces/import-dynamic.ts +48 -0
  245. package/src/interfaces/import-static.ts +50 -0
  246. package/src/interfaces/index.ts +25 -0
  247. package/src/interfaces/options-fill-module.ts +26 -0
  248. package/src/interfaces/options-find-subpath.ts +56 -0
  249. package/src/interfaces/options-get-format.ts +92 -0
  250. package/src/interfaces/options-get-source.ts +70 -0
  251. package/src/interfaces/options-parse-module-id.ts +38 -0
  252. package/src/interfaces/options-parse-subpath.ts +36 -0
  253. package/src/interfaces/options-resolve-alias.ts +59 -0
  254. package/src/interfaces/options-resolve-module.ts +72 -0
  255. package/src/interfaces/options-resolve.ts +17 -0
  256. package/src/interfaces/package-scope.ts +30 -0
  257. package/src/interfaces/parsed-data-url.ts +63 -0
  258. package/src/interfaces/parsed-module-id.ts +90 -0
  259. package/src/interfaces/parsed-subpath.ts +47 -0
  260. package/src/interfaces/statement-export.ts +52 -0
  261. package/src/interfaces/statement-import.ts +45 -0
  262. package/src/interfaces/statement-require.ts +45 -0
  263. package/src/interfaces/statement.ts +64 -0
  264. package/src/internal/escape-reg-exp.ts +24 -0
  265. package/src/internal/format-type-map.ts +26 -0
  266. package/src/internal/get-specifier-kind.ts +38 -0
  267. package/src/internal/get-subpaths.ts +41 -0
  268. package/src/internal/is-array-index.ts +28 -0
  269. package/src/internal/is-directory.ts +25 -0
  270. package/src/internal/is-file.ts +25 -0
  271. package/src/internal/is-function.ts +16 -0
  272. package/src/internal/regex-encoded-sep.ts +15 -0
  273. package/src/internal/regex-internal-specifier.ts +17 -0
  274. package/src/internal/regex-package-name.ts +16 -0
  275. package/src/internal/regex-package-path.ts +18 -0
  276. package/src/internal/resolver.ts +783 -0
  277. package/src/internal/validate-boolean.ts +27 -0
  278. package/src/internal/validate-object.ts +30 -0
  279. package/src/internal/validate-set.ts +33 -0
  280. package/src/internal/validate-string.ts +27 -0
  281. package/src/internal/validate-url-string.ts +31 -0
  282. package/src/types/declaration.ts +22 -0
  283. package/src/types/fn-change-ext.ts +33 -0
  284. package/src/types/index.ts +14 -0
  285. package/src/types/mime-type.ts +19 -0
  286. package/src/types/module-id.ts +15 -0
  287. package/src/types/module-specifier-type.ts +13 -0
  288. package/src/types/protocol.ts +40 -0
  289. package/src/types/syntax-kind-export.ts +20 -0
  290. package/src/types/syntax-kind-import.ts +22 -0
  291. package/src/types/syntax-kind-require.ts +15 -0
  292. package/src/utils/compare-subpaths.ts +100 -0
  293. package/src/utils/conditions.ts +15 -0
  294. package/src/utils/detect-syntax.ts +40 -0
  295. package/src/utils/extension-format-map.ts +34 -0
  296. package/src/utils/extract-statements.ts +42 -0
  297. package/src/utils/fill-modules.ts +116 -0
  298. package/src/utils/find-dynamic-imports.ts +75 -0
  299. package/src/utils/find-exports.ts +164 -0
  300. package/src/utils/find-requires.ts +75 -0
  301. package/src/utils/find-static-imports.ts +89 -0
  302. package/src/utils/find-subpath.ts +241 -0
  303. package/src/utils/get-format.ts +222 -0
  304. package/src/utils/get-source.ts +129 -0
  305. package/src/utils/has-cjs-syntax.ts +44 -0
  306. package/src/utils/has-esm-syntax.ts +40 -0
  307. package/src/utils/index.ts +43 -0
  308. package/src/utils/is-absolute-specifier.ts +48 -0
  309. package/src/utils/is-bare-specifier.ts +30 -0
  310. package/src/utils/is-exports-sugar.ts +74 -0
  311. package/src/utils/is-relative-specifier.ts +34 -0
  312. package/src/utils/lookup-package-scope.ts +97 -0
  313. package/src/utils/parse-data-url.ts +71 -0
  314. package/src/utils/parse-module-id.ts +186 -0
  315. package/src/utils/parse-subpath.ts +173 -0
  316. package/src/utils/pattern-character.ts +13 -0
  317. package/src/utils/read-package-json.ts +101 -0
  318. package/src/utils/resolve-alias.ts +219 -0
  319. package/src/utils/resolve-aliases.ts +58 -0
  320. package/src/utils/resolve-extensions.ts +33 -0
  321. package/src/utils/resolve-module.ts +153 -0
  322. package/src/utils/resolve-modules.ts +62 -0
  323. package/src/utils/to-absolute-specifier.ts +30 -0
  324. package/src/utils/to-bare-specifier.ts +201 -0
  325. package/src/utils/to-data-url.ts +42 -0
  326. package/src/utils/to-node-url.ts +27 -0
  327. package/src/utils/to-relative-specifier.ts +47 -0
  328. package/src/utils/to-url.ts +31 -0
  329. package/src/utils/validate-assertions.ts +119 -0
  330. package/src/utils/validate-exports.ts +124 -0
  331. package/changelog.config.cts +0 -204
  332. package/dist/constants.d.mts +0 -19
  333. package/dist/constants.mjs +0 -24
  334. package/dist/interfaces/import-dynamic.mjs +0 -0
  335. package/dist/interfaces/import-static.mjs +0 -0
  336. package/dist/interfaces/options-resolve-alias.mjs +0 -0
  337. package/dist/interfaces/options-resolve.mjs +0 -0
  338. package/dist/interfaces/statement-export.mjs +0 -0
  339. package/dist/interfaces/statement-import.mjs +0 -0
  340. package/dist/interfaces/statement-require.mjs +0 -0
  341. package/dist/interfaces/statement.mjs +0 -0
  342. package/dist/internal/compiler-options-json.d.mts +0 -111
  343. package/dist/internal/compiler-options-json.mjs +0 -0
  344. package/dist/internal/constants.d.mts +0 -70
  345. package/dist/internal/constants.mjs +0 -18
  346. package/dist/internal/get-compiler-options.d.mts +0 -21
  347. package/dist/internal/get-compiler-options.mjs +0 -14
  348. package/dist/internal/index.d.mts +0 -7
  349. package/dist/internal/index.mjs +0 -5
  350. package/dist/lib/extract-statements.d.mts +0 -21
  351. package/dist/lib/find-dynamic-imports.d.mts +0 -15
  352. package/dist/lib/find-dynamic-imports.mjs +0 -20
  353. package/dist/lib/find-exports.d.mts +0 -15
  354. package/dist/lib/find-exports.mjs +0 -53
  355. package/dist/lib/find-requires.d.mts +0 -17
  356. package/dist/lib/find-requires.mjs +0 -19
  357. package/dist/lib/find-static-imports.d.mts +0 -15
  358. package/dist/lib/find-static-imports.mjs +0 -20
  359. package/dist/lib/has-cjs-syntax.mjs +0 -6
  360. package/dist/lib/has-esm-syntax.mjs +0 -6
  361. package/dist/lib/index.d.mts +0 -20
  362. package/dist/lib/index.mjs +0 -34
  363. package/dist/lib/resolve-alias.d.mts +0 -20
  364. package/dist/lib/resolve-alias.mjs +0 -41
  365. package/dist/lib/resolve-aliases.d.mts +0 -17
  366. package/dist/lib/resolve-aliases.mjs +0 -34
  367. package/dist/lib/resolve-module.d.mts +0 -31
  368. package/dist/lib/resolve-module.mjs +0 -74
  369. package/dist/lib/resolve-modules.d.mts +0 -19
  370. package/dist/lib/to-absolute-specifier.mjs +0 -20
  371. package/dist/lib/to-bare-specifier.d.mts +0 -28
  372. package/dist/lib/to-bare-specifier.mjs +0 -78
  373. package/dist/types/declaration.mjs +0 -0
  374. package/dist/types/ext.d.mts +0 -9
  375. package/dist/types/ext.mjs +0 -0
  376. package/dist/types/mime-type.mjs +0 -0
  377. package/dist/types/specifier-type.d.mts +0 -11
  378. package/dist/types/specifier-type.mjs +0 -0
  379. package/dist/types/statement-type.d.mts +0 -9
  380. package/dist/types/statement-type.mjs +0 -0
@@ -0,0 +1,500 @@
1
+ import CONDITIONS from "../utils/conditions.mjs";
2
+ import isExportsSugar from "../utils/is-exports-sugar.mjs";
3
+ import isRelativeSpecifier from "../utils/is-relative-specifier.mjs";
4
+ import lookupPackageScope from "../utils/lookup-package-scope.mjs";
5
+ import parseModuleId from "../utils/parse-module-id.mjs";
6
+ import parseSubpath from "../utils/parse-subpath.mjs";
7
+ import PATTERN_CHARACTER from "../utils/pattern-character.mjs";
8
+ import readPackageJson from "../utils/read-package-json.mjs";
9
+ import toNodeURL from "../utils/to-node-url.mjs";
10
+ import toURL from "../utils/to-url.mjs";
11
+ import {
12
+ ERR_INVALID_MODULE_SPECIFIER,
13
+ ERR_INVALID_PACKAGE_CONFIG,
14
+ ERR_INVALID_PACKAGE_TARGET,
15
+ ERR_MODULE_NOT_FOUND,
16
+ ERR_PACKAGE_IMPORT_NOT_DEFINED,
17
+ ERR_PACKAGE_PATH_NOT_EXPORTED,
18
+ ERR_UNSUPPORTED_DIR_IMPORT,
19
+ ErrorCode
20
+ } from "@flex-development/errnode";
21
+ import { isBuiltin } from "@flex-development/is-builtin";
22
+ import pathe from "@flex-development/pathe";
23
+ import { isNIL } from "@flex-development/tutils";
24
+ import fs from "node:fs";
25
+ import { URL, fileURLToPath, pathToFileURL } from "node:url";
26
+ import regexp from "./escape-reg-exp.mjs";
27
+ import isArrayIndex from "./is-array-index.mjs";
28
+ import isDirectory from "./is-directory.mjs";
29
+ import isFile from "./is-file.mjs";
30
+ import PACKAGE_NAME_REGEX from "./regex-package-name.mjs";
31
+ import PACKAGE_PATH_REGEX from "./regex-package-path.mjs";
32
+ class Resolver {
33
+ /**
34
+ * Resolves `specifier` according to the [ESM Resolver algorithm][1].
35
+ *
36
+ * [1]: https://nodejs.org/api/esm.html#esm_resolver_algorithm
37
+ *
38
+ * @public
39
+ *
40
+ * @param {string} specifier - Module specifier to resolve
41
+ * @param {ModuleId} parent - URL of module to resolve from
42
+ * @param {string?} [condition='default'] - Export condition to apply
43
+ * @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
44
+ * @param {boolean?} [preserveSymlinks=false] - Skip resolving symlinks
45
+ * @return {URL} Resolved module URL
46
+ * @throws {NodeError}
47
+ */
48
+ resolveModule(specifier, parent, condition = "default", conditions = CONDITIONS, preserveSymlinks = false) {
49
+ parent = toURL(parent);
50
+ const remote = /^https?:$/.test(parent.protocol);
51
+ let error = new ERR_MODULE_NOT_FOUND(
52
+ specifier,
53
+ remote ? parent.href : fileURLToPath(parent),
54
+ PACKAGE_PATH_REGEX.test(specifier) ? "package" : "module"
55
+ );
56
+ let url = null;
57
+ try {
58
+ switch (true) {
59
+ case isRelativeSpecifier(specifier):
60
+ case pathe.isAbsolute(specifier):
61
+ url = new URL(specifier, parent);
62
+ break;
63
+ case (!remote && specifier.startsWith("#")):
64
+ url = this.resolvePackageImport(
65
+ specifier,
66
+ parent,
67
+ condition,
68
+ conditions
69
+ );
70
+ break;
71
+ default:
72
+ try {
73
+ url = new URL(specifier);
74
+ } catch {
75
+ if (!remote) {
76
+ url = this.resolvePackage(
77
+ specifier,
78
+ parent,
79
+ condition,
80
+ conditions
81
+ );
82
+ }
83
+ }
84
+ break;
85
+ }
86
+ if (url && url.protocol === "file:") {
87
+ const path = fileURLToPath(url);
88
+ if (!isFile(path)) {
89
+ throw isDirectory(path) ? new ERR_UNSUPPORTED_DIR_IMPORT(path, fileURLToPath(parent)) : new ERR_MODULE_NOT_FOUND(path, fileURLToPath(parent), "module");
90
+ }
91
+ if (!preserveSymlinks) {
92
+ const { hash, search } = url;
93
+ url = pathToFileURL(fs.realpathSync(path));
94
+ url.hash = hash;
95
+ url.search = search;
96
+ }
97
+ }
98
+ } catch (e) {
99
+ error = e;
100
+ url = null;
101
+ }
102
+ if (!url)
103
+ throw error;
104
+ return url;
105
+ }
106
+ /**
107
+ * Resolves a package path using a combination of the following algorithms:
108
+ *
109
+ * - `PACKAGE_RESOLVE`
110
+ * - `PACKAGE_SELF_RESOLVE`
111
+ *
112
+ * @see https://nodejs.org/api/esm.html#resolver-algorithm-specification
113
+ *
114
+ * @public
115
+ *
116
+ * @param {string} specifier - Module specifier to resolve
117
+ * @param {ModuleId} parent - URL of module to resolve from
118
+ * @param {string?} [condition='default'] - Export condition to apply
119
+ * @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
120
+ * @return {URL} Resolved package path URL
121
+ * @throws {NodeError}
122
+ */
123
+ resolvePackage(specifier, parent, condition = "default", conditions = CONDITIONS) {
124
+ const id = parseModuleId(specifier, {
125
+ parent,
126
+ pkgname: !isBuiltin(specifier)
127
+ });
128
+ if (isBuiltin(id.raw))
129
+ return new URL(toNodeURL(id.raw));
130
+ const stopdir = pathToFileURL("." + pathe.sep);
131
+ let scope = lookupPackageScope(
132
+ parent,
133
+ stopdir,
134
+ specifier,
135
+ parent
136
+ );
137
+ if ((scope == null ? void 0 : scope.pkgjson.name) === id.pkg && !isNIL(scope.pkgjson.exports)) {
138
+ return this.resolvePackageExport(
139
+ id.raw,
140
+ scope.pkg,
141
+ parent,
142
+ condition,
143
+ conditions
144
+ );
145
+ }
146
+ let url = null;
147
+ if (scope) {
148
+ let { dir: pkgdir } = scope;
149
+ while (pkgdir !== ".") {
150
+ scope = lookupPackageScope(
151
+ new URL(`node_modules/${id.raw}`, pkgdir + pathe.sep),
152
+ stopdir,
153
+ specifier,
154
+ parent
155
+ );
156
+ if (scope)
157
+ break;
158
+ pkgdir = pathe.dirname(pkgdir);
159
+ }
160
+ }
161
+ switch (true) {
162
+ case (scope && !isNIL(scope.pkgjson.exports)):
163
+ url = this.resolvePackageExport(
164
+ specifier,
165
+ scope.pkg,
166
+ parent,
167
+ condition,
168
+ conditions
169
+ );
170
+ break;
171
+ case (scope && id.path === "."):
172
+ url = this.resolvePackageMain(scope.pkg, scope.pkgjson, parent);
173
+ break;
174
+ case !!scope:
175
+ url = new URL(id.path, scope.pkg);
176
+ break;
177
+ }
178
+ if (!url)
179
+ throw new ERR_MODULE_NOT_FOUND(id.pkg, fileURLToPath(parent));
180
+ return url;
181
+ }
182
+ /**
183
+ * Resolves a subpath export according to the `PACKAGE_EXPORTS_RESOLVE`
184
+ * algorithm.
185
+ *
186
+ * @see https://nodejs.org/api/esm.html#resolver-algorithm-specification
187
+ * @see https://nodejs.org/api/packages.html#subpath-exports
188
+ *
189
+ * @public
190
+ *
191
+ * @param {string} specifier - Module specifier containing subpath
192
+ * @param {ModuleId} pkg - URL of relevant `package.json` file
193
+ * @param {ModuleId} parent - URL of module to resolve from
194
+ * @param {string?} [condition='default'] - Export condition to apply
195
+ * @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
196
+ * @return {URL} Resolved package export URL
197
+ * @throws {NodeError<Error | TypeError>}
198
+ */
199
+ resolvePackageExport(specifier, pkg, parent, condition = "default", conditions = CONDITIONS) {
200
+ const dir = new URL(".", pkg);
201
+ const pkgjson = readPackageJson(
202
+ dir,
203
+ specifier,
204
+ parent
205
+ );
206
+ let exports = pkgjson == null ? void 0 : pkgjson.exports;
207
+ const subpath = parseSubpath(specifier, exports, {
208
+ dir,
209
+ parent
210
+ });
211
+ if (!subpath.internal && isExportsSugar(exports, pkg, parent)) {
212
+ exports = { ".": exports };
213
+ }
214
+ const url = this.resolvePackageTarget(
215
+ dir,
216
+ exports == null ? void 0 : exports[subpath.key],
217
+ subpath.base,
218
+ subpath.key,
219
+ parent,
220
+ subpath.internal,
221
+ condition,
222
+ conditions
223
+ );
224
+ if (!url) {
225
+ throw new ERR_PACKAGE_PATH_NOT_EXPORTED(
226
+ fileURLToPath(dir),
227
+ subpath.raw,
228
+ fileURLToPath(parent)
229
+ );
230
+ }
231
+ return url;
232
+ }
233
+ /**
234
+ * Resolves a subpath import according to the `PACKAGE_IMPORTS_RESOLVE`
235
+ * algorithm.
236
+ *
237
+ * @see https://nodejs.org/api/esm.html#resolver-algorithm-specification
238
+ * @see https://nodejs.org/api/packages.html#subpath-imports
239
+ *
240
+ * @public
241
+ *
242
+ * @param {string} specifier - Module specifier containing subpath
243
+ * @param {ModuleId} parent - URL of module to resolve from
244
+ * @param {string?} [condition='default'] - Export condition to apply
245
+ * @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
246
+ * @return {URL} Resolved package import URL
247
+ * @throws {NodeError<Error | TypeError>}
248
+ */
249
+ resolvePackageImport(specifier, parent, condition = "default", conditions = CONDITIONS) {
250
+ const id = parseModuleId(specifier, {
251
+ internal: true,
252
+ parent
253
+ });
254
+ const scope = lookupPackageScope(
255
+ parent,
256
+ pathToFileURL("."),
257
+ specifier,
258
+ parent
259
+ );
260
+ let url = null;
261
+ if (scope) {
262
+ const imports = scope.pkgjson.imports;
263
+ const subpath = parseSubpath(id.raw, imports, {
264
+ dir: scope.dir,
265
+ internal: true,
266
+ parent
267
+ });
268
+ url = this.resolvePackageTarget(
269
+ scope.dir,
270
+ imports == null ? void 0 : imports[subpath.key],
271
+ subpath.base,
272
+ subpath.key,
273
+ parent,
274
+ subpath.internal,
275
+ condition,
276
+ conditions
277
+ );
278
+ }
279
+ if (!url) {
280
+ throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(
281
+ specifier,
282
+ fileURLToPath(parent),
283
+ /* c8 ignore next */
284
+ (scope == null ? void 0 : scope.dir) ? fileURLToPath(scope.dir) : void 0
285
+ );
286
+ }
287
+ return url;
288
+ }
289
+ /**
290
+ * Resolves a package entry point using the legacy CommonJS `main` resolution
291
+ * alogirthm:
292
+ *
293
+ * 1. let M = pkgdir `pkgjson.main`
294
+ * 2. TRY(M, M.js, M.json, M.node, M/index.js, M/index.json, M/index.node)
295
+ * 4. TRY(pkgdir/index.js, pkgdir/index.json, pkgdir/index.node)
296
+ * 5. ERR_MODULE_NOT_FOUND
297
+ *
298
+ * @todo emit deprecation messages
299
+ *
300
+ * @public
301
+ *
302
+ * @param {ModuleId} pkg - URL of relevant `package.json` file
303
+ * @param {PackageJson} pkgjson - Relevant `package.json` object
304
+ * @param {ModuleId} parent - URL of module to resolve from
305
+ * @return {URL} Package entry point URL
306
+ * @throws {NodeError} If package entry point is not found
307
+ */
308
+ resolvePackageMain(pkg, pkgjson, parent) {
309
+ const tries = [
310
+ ...pkgjson.main ? [
311
+ pkgjson.main,
312
+ `./${pkgjson.main}.js`,
313
+ `./${pkgjson.main}.json`,
314
+ `./${pkgjson.main}.node`,
315
+ `./${pkgjson.main}/index.js`,
316
+ `./${pkgjson.main}/index.json`,
317
+ `./${pkgjson.main}/index.node`
318
+ ] : [],
319
+ "./index.js",
320
+ "./index.json",
321
+ "./index.node"
322
+ ];
323
+ let url = null;
324
+ for (const input of tries) {
325
+ if (isFile(url = new URL(input, pkg)))
326
+ break;
327
+ url = null;
328
+ }
329
+ if (!url) {
330
+ throw new ERR_MODULE_NOT_FOUND(
331
+ fileURLToPath(new URL(".", pkg)),
332
+ fileURLToPath(parent)
333
+ );
334
+ }
335
+ return url;
336
+ }
337
+ /**
338
+ * Resolves a package target according to the `PACKAGE_TARGET_RESOLVE`
339
+ * algorithm.
340
+ *
341
+ * @see https://nodejs.org/api/esm.html#resolver-algorithm-specification
342
+ *
343
+ * @todo emit deprecation messages
344
+ *
345
+ * @public
346
+ *
347
+ * @param {ModuleId} dir - URL of directory containing relevant `package.json`
348
+ * @param {Exports | undefined} target - Package `exports` or `imports` target
349
+ * @param {string} subpath - Package subpath without entry prefix (`key`)
350
+ * @param {string} key - Subpath defined in relevant `package.json` file
351
+ * @param {ModuleId} parent - URL of module to resolve from
352
+ * @param {boolean?} [internal=false] - Package `imports` hint
353
+ * @param {string?} [condition='default'] - Export condition to apply
354
+ * @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
355
+ * @return {Nullable<URL>} Resolved package target URL or `null`
356
+ * @throws {NodeError<Error | TypeError>}
357
+ */
358
+ resolvePackageTarget(dir, target, subpath, key, parent, internal = false, condition = "default", conditions = CONDITIONS) {
359
+ let url = null;
360
+ switch (true) {
361
+ case target === null:
362
+ break;
363
+ case Array.isArray(target):
364
+ let error;
365
+ for (const item of target) {
366
+ try {
367
+ url = this.resolvePackageTarget(
368
+ dir,
369
+ item,
370
+ subpath,
371
+ key,
372
+ parent,
373
+ internal,
374
+ condition,
375
+ conditions
376
+ );
377
+ } catch (e) {
378
+ error = e;
379
+ if (error.code !== ErrorCode.ERR_INVALID_PACKAGE_TARGET)
380
+ throw error;
381
+ continue;
382
+ }
383
+ if (url)
384
+ break;
385
+ }
386
+ if (error && !url)
387
+ throw error;
388
+ break;
389
+ case typeof target === "object":
390
+ target = target;
391
+ for (const prop of Object.getOwnPropertyNames(target)) {
392
+ if (isArrayIndex(prop)) {
393
+ throw new ERR_INVALID_PACKAGE_CONFIG(
394
+ fileURLToPath(dir),
395
+ fileURLToPath(parent),
396
+ '"exports" cannot contain numeric property keys'
397
+ );
398
+ }
399
+ if (prop === condition || conditions.has(prop)) {
400
+ url = this.resolvePackageTarget(
401
+ dir,
402
+ target[prop],
403
+ subpath,
404
+ key,
405
+ parent,
406
+ internal,
407
+ condition,
408
+ conditions
409
+ );
410
+ if (url)
411
+ break;
412
+ }
413
+ }
414
+ break;
415
+ case typeof target === "string":
416
+ target = target;
417
+ const pattern = key.includes(PATTERN_CHARACTER);
418
+ switch (true) {
419
+ case (subpath && !pattern && !target.endsWith(pathe.sep)):
420
+ throw new ERR_INVALID_PACKAGE_TARGET(
421
+ fileURLToPath(dir),
422
+ key,
423
+ target,
424
+ internal,
425
+ fileURLToPath(parent)
426
+ );
427
+ case (internal && PACKAGE_NAME_REGEX.test(target)):
428
+ url = this.resolvePackage(target, parent, condition, conditions);
429
+ break;
430
+ case target.startsWith("." + pathe.sep):
431
+ const invalidSegmentRegex = (type) => {
432
+ return new RegExp(
433
+ `(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))${type === "deprecated" ? "" : "?"}(\\\\|\\/|$)`,
434
+ "i"
435
+ );
436
+ };
437
+ if (invalidSegmentRegex().test(target.slice(2))) {
438
+ if (invalidSegmentRegex("deprecated").test(target.slice(2))) {
439
+ throw new ERR_INVALID_PACKAGE_TARGET(
440
+ fileURLToPath(dir),
441
+ key,
442
+ target,
443
+ internal,
444
+ fileURLToPath(parent)
445
+ );
446
+ }
447
+ }
448
+ url = new URL(
449
+ target,
450
+ pathToFileURL(fileURLToPath(dir).replace(/\/$/, "") + pathe.sep)
451
+ );
452
+ if (subpath) {
453
+ if (invalidSegmentRegex().test(subpath)) {
454
+ if (invalidSegmentRegex("deprecated").test(subpath)) {
455
+ throw new ERR_INVALID_MODULE_SPECIFIER(
456
+ key.replace(PATTERN_CHARACTER, subpath),
457
+ [
458
+ `request is not a valid match in pattern "${key}" for`,
459
+ `the "${internal ? "imports" : "exports"}" resolution`,
460
+ `of ${fileURLToPath(dir).replace(/\/$/, "")}/package.json`
461
+ ].join(" "),
462
+ fileURLToPath(parent)
463
+ );
464
+ }
465
+ }
466
+ url = new URL(
467
+ url.href.replace(
468
+ new RegExp(regexp(PATTERN_CHARACTER), "g"),
469
+ subpath
470
+ )
471
+ );
472
+ }
473
+ break;
474
+ default:
475
+ throw new ERR_INVALID_PACKAGE_TARGET(
476
+ fileURLToPath(dir),
477
+ key,
478
+ target,
479
+ internal,
480
+ fileURLToPath(parent)
481
+ );
482
+ }
483
+ break;
484
+ default:
485
+ throw new ERR_INVALID_PACKAGE_TARGET(
486
+ fileURLToPath(dir),
487
+ key,
488
+ target,
489
+ internal,
490
+ fileURLToPath(parent)
491
+ );
492
+ }
493
+ return url;
494
+ }
495
+ }
496
+ var resolver_default = Resolver;
497
+ export {
498
+ resolver_default as default
499
+ };
500
+ //# sourceMappingURL=resolver.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internal/resolver.ts"],
4
+ "mappings": "AAWA,OAAO,gBAAgB;AACvB,OAAO,oBAAoB;AAC3B,OAAO,yBAAyB;AAChC,OAAO,wBAAwB;AAC/B,OAAO,mBAAmB;AAC1B,OAAO,kBAAkB;AACzB,OAAO,uBAAuB;AAC9B,OAAO,qBAAqB;AAC5B,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,iBAAiB;AAC1B,OAAO,WAAW;AAOlB,SAAS,aAA4B;AACrC,OAAO,QAAQ;AACf,SAAS,KAAK,eAAe,qBAAqB;AAClD,OAAO,YAAY;AACnB,OAAO,kBAAkB;AACzB,OAAO,iBAAiB;AACxB,OAAO,YAAY;AACnB,OAAO,wBAAwB;AAC/B,OAAO,wBAAwB;AAS/B,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBN,cACL,WACA,QACA,YAAoB,WACpB,aAA0B,YAC1B,mBAA4B,OACvB;AAEL,aAAS,MAAM,MAAM;AAOrB,UAAM,SAAkB,YAAY,KAAK,OAAO,QAAQ;AAOxD,QAAI,QAAmB,IAAI;AAAA,MACzB;AAAA,MACA,SAAS,OAAO,OAAO,cAAc,MAAM;AAAA,MAC3C,mBAAmB,KAAK,SAAS,IAAI,YAAY;AAAA,IACnD;AAOA,QAAI,MAAqB;AAGzB,QAAI;AACF,cAAQ,MAAM;AAAA,QACZ,KAAK,oBAAoB,SAAS;AAAA,QAClC,KAAK,MAAM,WAAW,SAAS;AAC7B,gBAAM,IAAI,IAAI,WAAW,MAAM;AAC/B;AAAA,QACF,MAAK,CAAC,UAAU,UAAU,WAAW,GAAG;AACtC,gBAAM,KAAK;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AACA;AAAA,QACF;AACE,cAAI;AACF,kBAAM,IAAI,IAAI,SAAS;AAAA,UACzB,QAAE;AACA,gBAAI,CAAC,QAAQ;AACX,oBAAM,KAAK;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAEA;AAAA,MACJ;AAGA,UAAI,OAAO,IAAI,aAAa,SAAS;AAMnC,cAAM,OAAe,cAAc,GAAG;AAGtC,YAAI,CAAC,OAAO,IAAI,GAAG;AACjB,gBAAM,YAAY,IAAI,IAClB,IAAI,2BAA2B,MAAM,cAAc,MAAM,CAAC,IAC1D,IAAI,qBAAqB,MAAM,cAAc,MAAM,GAAG,QAAQ;AAAA,QACpE;AAGA,YAAI,CAAC,kBAAkB;AAErB,gBAAM,EAAE,MAAM,OAAO,IAAI;AAGzB,gBAAM,cAAc,GAAG,aAAa,IAAI,CAAC;AAGzC,cAAI,OAAO;AACX,cAAI,SAAS;AAAA,QACf;AAAA,MACF;AAAA,IACF,SAAS,GAAP;AACA,cAAQ;AACR,YAAM;AAAA,IACR;AAGA,QAAI,CAAC;AAAK,YAAM;AAEhB,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBO,eACL,WACA,QACA,YAAoB,WACpB,aAA0B,YACrB;AAML,UAAM,KAAqB,cAAc,WAAW;AAAA,MAClD;AAAA,MACA,SAAS,CAAC,UAAU,SAAS;AAAA,IAC/B,CAAC;AAGD,QAAI,UAAU,GAAG,GAAG;AAAG,aAAO,IAAI,IAAI,UAAU,GAAG,GAAG,CAAC;AAOvD,UAAM,UAAe,cAAc,MAAM,MAAM,GAAG;AAOlD,QAAI,QAAgC;AAAA,MAClC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,SAAI,+BAAO,QAAQ,UAAS,GAAG,OAAO,CAAC,MAAM,MAAM,QAAQ,OAAO,GAAG;AACnE,aAAO,KAAK;AAAA,QACV,GAAG;AAAA,QACH,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAOA,QAAI,MAAqB;AAGzB,QAAI,OAAO;AACT,UAAI,EAAE,KAAK,OAAO,IAAI;AAGtB,aAAO,WAAW,KAAK;AACrB,gBAAQ;AAAA,UACN,IAAI,IAAI,gBAAgB,GAAG,OAAO,SAAS,MAAM,GAAG;AAAA,UACpD;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAGA,YAAI;AAAO;AAGX,iBAAS,MAAM,QAAQ,MAAM;AAAA,MAC/B;AAAA,IACF;AAGA,YAAQ,MAAM;AAAA,MACZ,MAAK,SAAS,CAAC,MAAM,MAAM,QAAQ,OAAO;AACxC,cAAM,KAAK;AAAA,UACT;AAAA,UACA,MAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,QACF;AACA;AAAA,MACF,MAAK,SAAS,GAAG,SAAS;AACxB,cAAM,KAAK,mBAAmB,MAAO,KAAK,MAAO,SAAS,MAAM;AAChE;AAAA,MACF,KAAK,CAAC,CAAC;AACL,cAAM,IAAI,IAAI,GAAG,MAAM,MAAO,GAAG;AACjC;AAAA,IACJ;AAGA,QAAI,CAAC;AAAK,YAAM,IAAI,qBAAqB,GAAG,KAAK,cAAc,MAAM,CAAC;AAEtE,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBO,qBACL,WACA,KACA,QACA,YAAoB,WACpB,aAA0B,YACrB;AAML,UAAM,MAAW,IAAI,IAAI,KAAK,GAAG;AAOjC,UAAM,UAAiC;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAOA,QAAI,UAA+B,mCAAS;AAO5C,UAAM,UAAyB,aAAa,WAAW,SAAS;AAAA,MAC9D;AAAA,MACA;AAAA,IACF,CAAC;AAGD,QAAI,CAAC,QAAQ,YAAY,eAAe,SAAS,KAAK,MAAM,GAAG;AAC7D,gBAAU,EAAE,KAAK,QAAQ;AAAA,IAC3B;AAOA,UAAM,MAAqB,KAAK;AAAA,MAC9B;AAAA,MACC,mCAAgD,QAAQ;AAAA,MACzD,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAGA,QAAI,CAAC,KAAK;AACR,YAAM,IAAI;AAAA,QACR,cAAc,GAAG;AAAA,QACjB,QAAQ;AAAA,QACR,cAAc,MAAM;AAAA,MACtB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBO,qBACL,WACA,QACA,YAAoB,WACpB,aAA0B,YACrB;AAQL,UAAM,KAAqB,cAAc,WAAW;AAAA,MAClD,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AAOD,UAAM,QAAgC;AAAA,MACpC;AAAA,MACA,cAAc,GAAG;AAAA,MACjB;AAAA,MACA;AAAA,IACF;AAOA,QAAI,MAAqB;AAGzB,QAAI,OAAO;AAMT,YAAM,UAA+B,MAAM,QAAQ;AAOnD,YAAM,UAAyB,aAAa,GAAG,KAAK,SAAS;AAAA,QAC3D,KAAK,MAAM;AAAA,QACX,UAAU;AAAA,QACV;AAAA,MACF,CAAC;AAED,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,mCAAU,QAAQ;AAAA,QAClB,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAGA,QAAI,CAAC,KAAK;AACR,YAAM,IAAI;AAAA,QACR;AAAA,QACA,cAAc,MAAM;AAAA;AAAA,SACC,+BAAO,OAAM,cAAc,MAAM,GAAG,IAAI;AAAA,MAC/D;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBO,mBACL,KACA,SACA,QACK;AAML,UAAM,QAAkB;AAAA,MACtB,GAAI,QAAQ,OACR;AAAA,QACE,QAAQ;AAAA,QACR,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,MACf,IACA,CAAC;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAOA,QAAI,MAAqB;AAGzB,eAAW,SAAS,OAAO;AACzB,UAAI,OAAQ,MAAM,IAAI,IAAI,OAAO,GAAG,CAAE;AAAG;AACzC,YAAM;AAAA,IACR;AAGA,QAAI,CAAC,KAAK;AACR,YAAM,IAAI;AAAA,QACR,cAAc,IAAI,IAAI,KAAK,GAAG,CAAC;AAAA,QAC/B,cAAc,MAAM;AAAA,MACtB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBO,qBACL,KACA,QACA,SACA,KACA,QACA,WAAoB,OACpB,YAAoB,WACpB,aAA0B,YACX;AAMf,QAAI,MAAqB;AAGzB,YAAQ,MAAM;AAAA,MACZ,KAAK,WAAW;AACd;AAAA,MACF,KAAK,MAAM,QAAQ,MAAM;AAMvB,YAAI;AAGJ,mBAAW,QAAQ,QAAoB;AACrC,cAAI;AACF,kBAAM,KAAK;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,UACF,SAAS,GAAP;AACA,oBAAQ;AAGR,gBAAI,MAAM,SAAS,UAAU;AAA4B,oBAAM;AAE/D;AAAA,UACF;AAGA,cAAI;AAAK;AAAA,QACX;AAGA,YAAI,SAAS,CAAC;AAAK,gBAAM;AAEzB;AAAA,MACF,KAAK,OAAO,WAAW;AACrB,iBAAS;AAET,mBAAW,QAAQ,OAAO,oBAAoB,MAAM,GAAG;AAErD,cAAI,aAAa,IAAI,GAAG;AACtB,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,UACF;AAGA,cAAI,SAAS,aAAa,WAAW,IAAI,IAAI,GAAG;AAC9C,kBAAM,KAAK;AAAA,cACT;AAAA,cACA,OAAO,IAAI;AAAA,cACX;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAGA,gBAAI;AAAK;AAAA,UACX;AAAA,QACF;AAEA;AAAA,MACF,KAAK,OAAO,WAAW;AACrB,iBAAS;AAOT,cAAM,UAAmB,IAAI,SAAS,iBAAiB;AAEvD,gBAAQ,MAAM;AAAA,UACZ,MAAK,WAAW,CAAC,WAAW,CAAC,OAAO,SAAS,MAAM,GAAG;AACpD,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,cACA,cAAc,MAAM;AAAA,YACtB;AAAA,UACF,MAAK,YAAY,mBAAmB,KAAK,MAAM;AAC7C,kBAAM,KAAK,eAAe,QAAQ,QAAQ,WAAW,UAAU;AAC/D;AAAA,UACF,KAAK,OAAO,WAAW,MAAM,MAAM,GAAG;AAWpC,kBAAM,sBAAsB,CAAC,SAAgC;AAC3D,qBAAO,IAAI;AAAA,gBACT,qKACE,SAAS,eAAe,KAAK;AAAA,gBAE/B;AAAA,cACF;AAAA,YACF;AAGA,gBAAI,oBAAoB,EAAE,KAAK,OAAO,MAAM,CAAC,CAAC,GAAG;AAC/C,kBAAI,oBAAoB,YAAY,EAAE,KAAK,OAAO,MAAM,CAAC,CAAC,GAAG;AAC3D,sBAAM,IAAI;AAAA,kBACR,cAAc,GAAG;AAAA,kBACjB;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,cAAc,MAAM;AAAA,gBACtB;AAAA,cACF;AAAA,YACF;AAGA,kBAAM,IAAI;AAAA,cACR;AAAA,cACA,cAAc,cAAc,GAAG,EAAE,QAAQ,OAAO,EAAE,IAAI,MAAM,GAAG;AAAA,YACjE;AAGA,gBAAI,SAAS;AACX,kBAAI,oBAAoB,EAAE,KAAK,OAAO,GAAG;AACvC,oBAAI,oBAAoB,YAAY,EAAE,KAAK,OAAO,GAAG;AACnD,wBAAM,IAAI;AAAA,oBACR,IAAI,QAAQ,mBAAmB,OAAO;AAAA,oBACtC;AAAA,sBACE,4CAA4C;AAAA,sBAC5C,QAAQ,WAAW,YAAY;AAAA,sBAC/B,MAAM,cAAc,GAAG,EAAE,QAAQ,OAAO,EAAE;AAAA,oBAC5C,EAAE,KAAK,GAAG;AAAA,oBACV,cAAc,MAAM;AAAA,kBACtB;AAAA,gBACF;AAAA,cACF;AAGA,oBAAM,IAAI;AAAA,gBACR,IAAI,KAAK;AAAA,kBACP,IAAI,OAAO,OAAO,iBAAiB,GAAG,GAAG;AAAA,kBACzC;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAEA;AAAA,UACF;AACE,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,cACA,cAAc,MAAM;AAAA,YACtB;AAAA,QACJ;AAEA;AAAA,MACF;AACE,cAAM,IAAI;AAAA,UACR,cAAc,GAAG;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc,MAAM;AAAA,QACtB;AAAA,IACJ;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file Internal - validateBoolean
3
+ * @module mlly/internal/validateBoolean
4
+ */
5
+ /**
6
+ * Checks if given `value` is a boolean.
7
+ *
8
+ * Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a boolean.
9
+ *
10
+ * [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
11
+ *
12
+ * @see {@linkcode ERR_INVALID_ARG_TYPE}
13
+ *
14
+ * @param {unknown} value - Value supplied by user
15
+ * @param {string} name - Name of invalid argument or property
16
+ * @return {value is boolean} `true` if `value` is a boolean
17
+ * @throws {NodeError<TypeError>} If `value` is not a boolean
18
+ */
19
+ declare const validateBoolean: (value: unknown, name: string) => value is boolean;
20
+ export default validateBoolean;
@@ -0,0 +1,11 @@
1
+ import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
2
+ const validateBoolean = (value, name) => {
3
+ if (typeof value === "boolean")
4
+ return true;
5
+ throw new ERR_INVALID_ARG_TYPE(name, "boolean", value);
6
+ };
7
+ var validate_boolean_default = validateBoolean;
8
+ export {
9
+ validate_boolean_default as default
10
+ };
11
+ //# sourceMappingURL=validate-boolean.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internal/validate-boolean.ts"],
4
+ "mappings": "AAKA,SAAS,4BAA4C;AAgBrD,MAAM,kBAAkB,CAAC,OAAgB,SAAmC;AAC1E,MAAI,OAAO,UAAU;AAAW,WAAO;AACvC,QAAM,IAAI,qBAAqB,MAAM,WAAW,KAAK;AACvD;AAEA,IAAO,2BAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @file Internal - validateObject
3
+ * @module mlly/internal/validateObject
4
+ */
5
+ import type { ObjectPlain } from '@flex-development/tutils';
6
+ /**
7
+ * Checks if given `value` is an object.
8
+ *
9
+ * **Note**: Array values are not considered objects.
10
+ *
11
+ * Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not an object.
12
+ *
13
+ * [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
14
+ *
15
+ * @see {@linkcode ERR_INVALID_ARG_TYPE}
16
+ *
17
+ * @param {unknown} value - Value supplied by user
18
+ * @param {string} name - Name of invalid argument or property
19
+ * @return {value is ObjectPlain} `true` if `value` is an object
20
+ * @throws {NodeError<TypeError>} If `value` is not an object
21
+ */
22
+ declare const validateObject: (value: unknown, name: string) => value is ObjectPlain;
23
+ export default validateObject;
@@ -0,0 +1,11 @@
1
+ import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
2
+ const validateObject = (value, name) => {
3
+ if (typeof value === "object" && value && !Array.isArray(value))
4
+ return true;
5
+ throw new ERR_INVALID_ARG_TYPE(name, "object", value);
6
+ };
7
+ var validate_object_default = validateObject;
8
+ export {
9
+ validate_object_default as default
10
+ };
11
+ //# sourceMappingURL=validate-object.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internal/validate-object.ts"],
4
+ "mappings": "AAKA,SAAS,4BAA4C;AAmBrD,MAAM,iBAAiB,CAAC,OAAgB,SAAuC;AAC7E,MAAI,OAAO,UAAU,YAAY,SAAS,CAAC,MAAM,QAAQ,KAAK;AAAG,WAAO;AACxE,QAAM,IAAI,qBAAqB,MAAM,UAAU,KAAK;AACtD;AAEA,IAAO,0BAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @file Internal - validateSet
3
+ * @module mlly/internal/validateSet
4
+ */
5
+ /**
6
+ * Checks if given `value` is an instance of {@linkcode Set}.
7
+ *
8
+ * Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a {@linkcode Set}
9
+ * instance.
10
+ *
11
+ * [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
12
+ *
13
+ * @see {@linkcode ERR_INVALID_ARG_TYPE}
14
+ *
15
+ * @template T - Item type(s)
16
+ *
17
+ * @param {unknown} value - Value supplied by user
18
+ * @param {string} name - Name of invalid argument or property
19
+ * @return {value is Set} `true` if `value` is instance of {@linkcode Set}
20
+ * @throws {NodeError<TypeError>} If `value` is an instance of {@linkcode Set}
21
+ */
22
+ declare function validateSet<T = unknown>(value: unknown, name: string): value is Set<T>;
23
+ export default validateSet;
@@ -0,0 +1,11 @@
1
+ import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
2
+ function validateSet(value, name) {
3
+ if (value instanceof Set)
4
+ return true;
5
+ throw new ERR_INVALID_ARG_TYPE(name, ["Set"], value);
6
+ }
7
+ var validate_set_default = validateSet;
8
+ export {
9
+ validate_set_default as default
10
+ };
11
+ //# sourceMappingURL=validate-set.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internal/validate-set.ts"],
4
+ "mappings": "AAKA,SAAS,4BAA4C;AAmBrD,SAAS,YACP,OACA,MACiB;AACjB,MAAI,iBAAiB;AAAK,WAAO;AACjC,QAAM,IAAI,qBAAqB,MAAM,CAAC,KAAK,GAAG,KAAK;AACrD;AAEA,IAAO,uBAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file Internal - validateString
3
+ * @module mlly/internal/validateString
4
+ */
5
+ /**
6
+ * Checks if given `value` is a string.
7
+ *
8
+ * Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a string.
9
+ *
10
+ * [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
11
+ *
12
+ * @see {@linkcode ERR_INVALID_ARG_TYPE}
13
+ *
14
+ * @param {unknown} value - Value supplied by user
15
+ * @param {string} name - Name of invalid argument or property
16
+ * @return {value is string} `true` if `value` is a string
17
+ * @throws {NodeError<TypeError>} If `value` is not a string
18
+ */
19
+ declare const validateString: (value: unknown, name: string) => value is string;
20
+ export default validateString;
@@ -0,0 +1,11 @@
1
+ import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
2
+ const validateString = (value, name) => {
3
+ if (typeof value === "string")
4
+ return true;
5
+ throw new ERR_INVALID_ARG_TYPE(name, "string", value);
6
+ };
7
+ var validate_string_default = validateString;
8
+ export {
9
+ validate_string_default as default
10
+ };
11
+ //# sourceMappingURL=validate-string.mjs.map