@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,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/has-cjs-syntax.ts"],
4
+ "mappings": "AAKA,OAAO,oBAAoB;AAsB3B,MAAM,eAAe,CAAC,SAA0B;AAC9C,iBAAe,MAAM,MAAM;AAS3B,QAAM,mBACJ;AAEF,SAAO,CAAC,CAAC,KAAK,MAAM,gBAAgB;AACtC;AAEA,IAAO,yBAAQ;",
5
+ "names": []
6
+ }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @file hasESMSyntax
3
- * @module mlly/lib/hasESMSyntax
3
+ * @module mlly/utils/hasESMSyntax
4
4
  */
5
5
  /**
6
6
  * Detects if `code` contains ESM syntax. Ignores matches in comments.
@@ -11,8 +11,11 @@
11
11
  * - `import` (default, dynamic, named, star)
12
12
  * - `import.meta.(env|resolve|url)`
13
13
  *
14
- * @param {string} code - Code to check
14
+ * @see https://regex101.com/r/xfreyy
15
+ *
16
+ * @param {string} code - Code to evaluate
15
17
  * @return {boolean} `true` if `code` contains esm syntax, `false` otherwise
18
+ * @throws {NodeError<TypeError>} If `code` is not a string
16
19
  */
17
20
  declare const hasESMSyntax: (code: string) => boolean;
18
21
  export default hasESMSyntax;
@@ -0,0 +1,11 @@
1
+ import validateString from "../internal/validate-string.mjs";
2
+ const hasESMSyntax = (code) => {
3
+ validateString(code, "code");
4
+ const ESM_SYNTAX_REGEX = /(?<!(?:\/\/|\*).*)((?:export|import)[\s\w*,{}]*(?=\sfrom)|export\b\s*(?:[*{]|async function|(?:abstract\s)?class|const|default|enum|function|interface|let|type|var)|await import|import\.meta\.(?:env(?:\.\w+)?|resolve|url))/gm;
5
+ return !!code.match(ESM_SYNTAX_REGEX);
6
+ };
7
+ var has_esm_syntax_default = hasESMSyntax;
8
+ export {
9
+ has_esm_syntax_default as default
10
+ };
11
+ //# sourceMappingURL=has-esm-syntax.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/has-esm-syntax.ts"],
4
+ "mappings": "AAKA,OAAO,oBAAoB;AAkB3B,MAAM,eAAe,CAAC,SAA0B;AAC9C,iBAAe,MAAM,MAAM;AAS3B,QAAM,mBACJ;AAEF,SAAO,CAAC,CAAC,KAAK,MAAM,gBAAgB;AACtC;AAEA,IAAO,yBAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @file Utilities
3
+ * @module mlly/utils
4
+ */
5
+ export { default as compareSubpaths } from './compare-subpaths.mjs';
6
+ export { default as CONDITIONS } from './conditions.mjs';
7
+ export { default as detectSyntax } from './detect-syntax.mjs';
8
+ export { default as EXTENSION_FORMAT_MAP } from './extension-format-map.mjs';
9
+ export { default as extractStatements } from './extract-statements.mjs';
10
+ export { default as fillModules } from './fill-modules.mjs';
11
+ export { default as findDynamicImports } from './find-dynamic-imports.mjs';
12
+ export { default as findExports } from './find-exports.mjs';
13
+ export { default as findRequires } from './find-requires.mjs';
14
+ export { default as findStaticImports } from './find-static-imports.mjs';
15
+ export { default as findSubpath } from './find-subpath.mjs';
16
+ export { default as getFormat } from './get-format.mjs';
17
+ export { default as getSource } from './get-source.mjs';
18
+ export { default as hasCJSSyntax } from './has-cjs-syntax.mjs';
19
+ export { default as hasESMSyntax } from './has-esm-syntax.mjs';
20
+ export { default as isAbsoluteSpecifier } from './is-absolute-specifier.mjs';
21
+ export { default as isBareSpecifier } from './is-bare-specifier.mjs';
22
+ export { default as isExportsSugar } from './is-exports-sugar.mjs';
23
+ export { default as isRelativeSpecifier } from './is-relative-specifier.mjs';
24
+ export { default as lookupPackageScope } from './lookup-package-scope.mjs';
25
+ export { default as parseDataURL } from './parse-data-url.mjs';
26
+ export { default as parseModuleId } from './parse-module-id.mjs';
27
+ export { default as parseSubpath } from './parse-subpath.mjs';
28
+ export { default as PATTERN_CHARACTER } from './pattern-character.mjs';
29
+ export { default as readPackageJson } from './read-package-json.mjs';
30
+ export { default as resolveAlias } from './resolve-alias.mjs';
31
+ export { default as resolveAliases } from './resolve-aliases.mjs';
32
+ export { default as RESOLVE_EXTENSIONS } from './resolve-extensions.mjs';
33
+ export { default as resolveModule } from './resolve-module.mjs';
34
+ export { default as resolveModules } from './resolve-modules.mjs';
35
+ export { default as toAbsoluteSpecifier } from './to-absolute-specifier.mjs';
36
+ export { default as toBareSpecifier } from './to-bare-specifier.mjs';
37
+ export { default as toDataURL } from './to-data-url.mjs';
38
+ export { default as toNodeURL } from './to-node-url.mjs';
39
+ export { default as toRelativeSpecifier } from './to-relative-specifier.mjs';
40
+ export { default as toURL } from './to-url.mjs';
41
+ export { default as validateAssertions } from './validate-assertions.mjs';
42
+ export { default as validateExports } from './validate-exports.mjs';
@@ -0,0 +1,79 @@
1
+ import { default as default2 } from "./compare-subpaths.mjs";
2
+ import { default as default3 } from "./conditions.mjs";
3
+ import { default as default4 } from "./detect-syntax.mjs";
4
+ import { default as default5 } from "./extension-format-map.mjs";
5
+ import { default as default6 } from "./extract-statements.mjs";
6
+ import { default as default7 } from "./fill-modules.mjs";
7
+ import { default as default8 } from "./find-dynamic-imports.mjs";
8
+ import { default as default9 } from "./find-exports.mjs";
9
+ import { default as default10 } from "./find-requires.mjs";
10
+ import { default as default11 } from "./find-static-imports.mjs";
11
+ import { default as default12 } from "./find-subpath.mjs";
12
+ import { default as default13 } from "./get-format.mjs";
13
+ import { default as default14 } from "./get-source.mjs";
14
+ import { default as default15 } from "./has-cjs-syntax.mjs";
15
+ import { default as default16 } from "./has-esm-syntax.mjs";
16
+ import { default as default17 } from "./is-absolute-specifier.mjs";
17
+ import { default as default18 } from "./is-bare-specifier.mjs";
18
+ import { default as default19 } from "./is-exports-sugar.mjs";
19
+ import { default as default20 } from "./is-relative-specifier.mjs";
20
+ import { default as default21 } from "./lookup-package-scope.mjs";
21
+ import { default as default22 } from "./parse-data-url.mjs";
22
+ import { default as default23 } from "./parse-module-id.mjs";
23
+ import { default as default24 } from "./parse-subpath.mjs";
24
+ import { default as default25 } from "./pattern-character.mjs";
25
+ import { default as default26 } from "./read-package-json.mjs";
26
+ import { default as default27 } from "./resolve-alias.mjs";
27
+ import { default as default28 } from "./resolve-aliases.mjs";
28
+ import { default as default29 } from "./resolve-extensions.mjs";
29
+ import { default as default30 } from "./resolve-module.mjs";
30
+ import { default as default31 } from "./resolve-modules.mjs";
31
+ import { default as default32 } from "./to-absolute-specifier.mjs";
32
+ import { default as default33 } from "./to-bare-specifier.mjs";
33
+ import { default as default34 } from "./to-data-url.mjs";
34
+ import { default as default35 } from "./to-node-url.mjs";
35
+ import { default as default36 } from "./to-relative-specifier.mjs";
36
+ import { default as default37 } from "./to-url.mjs";
37
+ import { default as default38 } from "./validate-assertions.mjs";
38
+ import { default as default39 } from "./validate-exports.mjs";
39
+ export {
40
+ default3 as CONDITIONS,
41
+ default5 as EXTENSION_FORMAT_MAP,
42
+ default25 as PATTERN_CHARACTER,
43
+ default29 as RESOLVE_EXTENSIONS,
44
+ default2 as compareSubpaths,
45
+ default4 as detectSyntax,
46
+ default6 as extractStatements,
47
+ default7 as fillModules,
48
+ default8 as findDynamicImports,
49
+ default9 as findExports,
50
+ default10 as findRequires,
51
+ default11 as findStaticImports,
52
+ default12 as findSubpath,
53
+ default13 as getFormat,
54
+ default14 as getSource,
55
+ default15 as hasCJSSyntax,
56
+ default16 as hasESMSyntax,
57
+ default17 as isAbsoluteSpecifier,
58
+ default18 as isBareSpecifier,
59
+ default19 as isExportsSugar,
60
+ default20 as isRelativeSpecifier,
61
+ default21 as lookupPackageScope,
62
+ default22 as parseDataURL,
63
+ default23 as parseModuleId,
64
+ default24 as parseSubpath,
65
+ default26 as readPackageJson,
66
+ default27 as resolveAlias,
67
+ default28 as resolveAliases,
68
+ default30 as resolveModule,
69
+ default31 as resolveModules,
70
+ default32 as toAbsoluteSpecifier,
71
+ default33 as toBareSpecifier,
72
+ default34 as toDataURL,
73
+ default35 as toNodeURL,
74
+ default36 as toRelativeSpecifier,
75
+ default37 as toURL,
76
+ default38 as validateAssertions,
77
+ default39 as validateExports
78
+ };
79
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/index.ts"],
4
+ "mappings": "AAKA,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAA+B;AACxC,SAAoB,WAAXA,gBAAuC;AAChD,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAA8B;AACvC,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA8B;AACvC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAoC;AAC7C,SAAoB,WAAXA,iBAA8B;AACvC,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAqC;AAC9C,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAgC;AACzC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAoC;AAC7C,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAAqC;AAC9C,SAAoB,WAAXA,iBAAgC;AACzC,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAwB;AACjC,SAAoB,WAAXA,iBAAqC;AAC9C,SAAoB,WAAXA,iBAAkC;",
5
+ "names": ["default"]
6
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @file isAbsoluteSpecifier
3
+ * @module mlly/utils/isAbsoluteSpecifier
4
+ */
5
+ /**
6
+ * Checks if the given `specifier` is an absolute specifier.
7
+ *
8
+ * ::: warning
9
+ * Only checks specifier syntax. Does **not** guarantee the specifier references
10
+ * a file that exists.
11
+ * :::
12
+ *
13
+ * @see https://nodejs.org/api/esm.html#terminology
14
+ *
15
+ * @param {string} specifier - Specifier to evaluate
16
+ * @return {boolean} `true` if `specifier` is absolute specifier
17
+ */
18
+ declare const isAbsoluteSpecifier: (specifier: string) => boolean;
19
+ export default isAbsoluteSpecifier;
@@ -0,0 +1,25 @@
1
+ import pathe from "@flex-development/pathe";
2
+ import { URL } from "node:url";
3
+ const isAbsoluteSpecifier = (specifier) => {
4
+ let absolute = false;
5
+ switch (true) {
6
+ case pathe.isAbsolute(specifier):
7
+ absolute = true;
8
+ break;
9
+ case specifier.startsWith("file:"):
10
+ try {
11
+ new URL(specifier);
12
+ absolute = true;
13
+ } catch {
14
+ }
15
+ break;
16
+ default:
17
+ absolute = false;
18
+ }
19
+ return absolute;
20
+ };
21
+ var is_absolute_specifier_default = isAbsoluteSpecifier;
22
+ export {
23
+ is_absolute_specifier_default as default
24
+ };
25
+ //# sourceMappingURL=is-absolute-specifier.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/is-absolute-specifier.ts"],
4
+ "mappings": "AAKA,OAAO,WAAW;AAClB,SAAS,WAAW;AAepB,MAAM,sBAAsB,CAAC,cAA+B;AAM1D,MAAI,WAAoB;AAGxB,UAAQ,MAAM;AAAA,IACZ,KAAK,MAAM,WAAW,SAAS;AAC7B,iBAAW;AACX;AAAA,IACF,KAAK,UAAU,WAAW,OAAO;AAC/B,UAAI;AACF,YAAI,IAAI,SAAS;AACjB,mBAAW;AAAA,MACb,QAAuB;AAAA,MAAO;AAC9B;AAAA,IACF;AACE,iBAAW;AAAA,EACf;AAEA,SAAO;AACT;AAEA,IAAO,gCAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @file isBareSpecifier
3
+ * @module mlly/utils/isBareSpecifier
4
+ */
5
+ /**
6
+ * Checks if the given `specifier` is a bare specifier.
7
+ *
8
+ * ::: warning
9
+ * Only checks specifier syntax. Does **not** guarantee the specifier references
10
+ * a file that exists.
11
+ * :::
12
+ *
13
+ * @see https://nodejs.org/api/esm.html#terminology
14
+ *
15
+ * @param {string} specifier - Specifier to evaluate
16
+ * @return {boolean} `true` if `specifier` is bare specifier
17
+ */
18
+ declare const isBareSpecifier: (specifier: string) => boolean;
19
+ export default isBareSpecifier;
@@ -0,0 +1,10 @@
1
+ import isAbsoluteSpecifier from "./is-absolute-specifier.mjs";
2
+ import isRelativeSpecifier from "./is-relative-specifier.mjs";
3
+ const isBareSpecifier = (specifier) => {
4
+ return specifier.trim().length > 0 && !isAbsoluteSpecifier(specifier) && !isRelativeSpecifier(specifier);
5
+ };
6
+ var is_bare_specifier_default = isBareSpecifier;
7
+ export {
8
+ is_bare_specifier_default as default
9
+ };
10
+ //# sourceMappingURL=is-bare-specifier.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/is-bare-specifier.ts"],
4
+ "mappings": "AAKA,OAAO,yBAAyB;AAChC,OAAO,yBAAyB;AAehC,MAAM,kBAAkB,CAAC,cAA+B;AACtD,SACE,UAAU,KAAK,EAAE,SAAS,KAC1B,CAAC,oBAAoB,SAAS,KAC9B,CAAC,oBAAoB,SAAS;AAElC;AAEA,IAAO,4BAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @file isExportsSugar
3
+ * @module mlly/utils/isExportsSugar
4
+ */
5
+ import type { ModuleId } from '../types/index.mjs';
6
+ import type { Exports } from '@flex-development/pkg-types';
7
+ /**
8
+ * Checks if the given package [`exports`][1] value is using [exports sugar][2].
9
+ *
10
+ * [1]: https://nodejs.org/api/packages.html#exports
11
+ * [2]: https://nodejs.org/api/packages.html#exports-sugar
12
+ *
13
+ * @see {@linkcode Exports}
14
+ * @see {@linkcode ModuleId}
15
+ *
16
+ * @param {Exports | undefined} exports - Package `exports`
17
+ * @param {ModuleId} pkg - URL of relevant `package.json` file
18
+ * @param {ModuleId} parent - URL of module to resolve from
19
+ * @return {boolean} `true` if `exports` is using exports sugar
20
+ * @throws {NodeError<Error | TypeError>} If either `pkg` or `parent` is not an
21
+ * instance of {@linkcode URL} or a string, or if `exports` configuration or
22
+ * schema is invalid
23
+ */
24
+ declare const isExportsSugar: (exports: Exports | undefined, pkg: ModuleId, parent: ModuleId) => boolean;
25
+ export default isExportsSugar;
@@ -0,0 +1,26 @@
1
+ import { isNIL } from "@flex-development/tutils";
2
+ import validateExports from "./validate-exports.mjs";
3
+ const isExportsSugar = (exports, pkg, parent) => {
4
+ var _a;
5
+ let sugar = false;
6
+ switch (true) {
7
+ case Array.isArray(exports):
8
+ case typeof exports === "string":
9
+ sugar = true;
10
+ break;
11
+ case isNIL(exports):
12
+ case typeof exports !== "object":
13
+ sugar = false;
14
+ break;
15
+ default:
16
+ exports = exports;
17
+ validateExports(exports, pkg, parent);
18
+ sugar = !((_a = Object.getOwnPropertyNames(exports)[0]) == null ? void 0 : _a.startsWith("."));
19
+ }
20
+ return sugar;
21
+ };
22
+ var is_exports_sugar_default = isExportsSugar;
23
+ export {
24
+ is_exports_sugar_default as default
25
+ };
26
+ //# sourceMappingURL=is-exports-sugar.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/is-exports-sugar.ts"],
4
+ "mappings": "AAQA,SAAS,aAAa;AACtB,OAAO,qBAAqB;AAmB5B,MAAM,iBAAiB,CACrB,SACA,KACA,WACY;AAhCd;AAwCE,MAAI,QAAiB;AAGrB,UAAQ,MAAM;AAAA,IACZ,KAAK,MAAM,QAAQ,OAAO;AAAA,IAC1B,KAAK,OAAO,YAAY;AACtB,cAAQ;AACR;AAAA,IACF,KAAK,MAAM,OAAO;AAAA,IAClB,KAAK,OAAO,YAAY;AACtB,cAAQ;AACR;AAAA,IACF;AACE,gBAAU;AAWV,sBAAgB,SAAS,KAAK,MAAM;AAGpC,cAAQ,GAAC,YAAO,oBAAoB,OAAO,EAAE,CAAC,MAArC,mBAAwC,WAAW;AAAA,EAChE;AAEA,SAAO;AACT;AAEA,IAAO,2BAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file isRelativeSpecifier
3
+ * @module mlly/utils/isRelativeSpecifier
4
+ */
5
+ /**
6
+ * Checks if the given `specifier` is a relative specifier.
7
+ *
8
+ * ::: warning
9
+ * Only checks specifier syntax. Does **not** guarantee the specifier references
10
+ * a file that exists.
11
+ * :::
12
+ *
13
+ * @see https://nodejs.org/api/esm.html#terminology
14
+ *
15
+ * @param {string} specifier - Specifier to evaluate
16
+ * @return {boolean} `true` if `specifier` is relative specifier
17
+ * @throws {NodeError<TypeError>} If `specifier` is not a string
18
+ */
19
+ declare const isRelativeSpecifier: (specifier: string) => boolean;
20
+ export default isRelativeSpecifier;
@@ -0,0 +1,11 @@
1
+ import validateString from "../internal/validate-string.mjs";
2
+ import pathe from "@flex-development/pathe";
3
+ const isRelativeSpecifier = (specifier) => {
4
+ validateString(specifier, "specifier");
5
+ return specifier.startsWith(".") ? specifier.length === 1 || specifier[1] === pathe.sep ? true : specifier[1] === "." && (specifier.length === 2 || specifier[2] === pathe.sep) : false;
6
+ };
7
+ var is_relative_specifier_default = isRelativeSpecifier;
8
+ export {
9
+ is_relative_specifier_default as default
10
+ };
11
+ //# sourceMappingURL=is-relative-specifier.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/is-relative-specifier.ts"],
4
+ "mappings": "AAKA,OAAO,oBAAoB;AAE3B,OAAO,WAAW;AAgBlB,MAAM,sBAAsB,CAAC,cAA+B;AAC1D,iBAAe,WAAW,WAAW;AACrC,SAAO,UAAU,WAAW,GAAG,IAC3B,UAAU,WAAW,KAAK,UAAU,CAAC,MAAM,MAAM,MAC/C,OACA,UAAU,CAAC,MAAM,QAChB,UAAU,WAAW,KAAK,UAAU,CAAC,MAAM,MAAM,OACpD;AACN;AAEA,IAAO,gCAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @file lookupPackageScope
3
+ * @module mlly/utils/lookupPackageScope
4
+ */
5
+ import type { PackageScope } from '../interfaces/index.mjs';
6
+ import type { ModuleId } from '../types/index.mjs';
7
+ import type { Nullable } from '@flex-development/tutils';
8
+ /**
9
+ * Finds a `package.json` file for the given module `id`. Ends the search at the
10
+ * given end point **after** checking for a `package.json` file.
11
+ *
12
+ * Returns `null` if a `package.json` file is not found.
13
+ *
14
+ * @see {@linkcode ModuleId}
15
+ * @see {@linkcode PackageScope}
16
+ *
17
+ * @param {ModuleId} id - Id of module to get package scope for
18
+ * @param {ModuleId?} [stopdir=pathe.sep] - Directory to end search
19
+ * @param {string?} [specifier] - Module specifier passed by user
20
+ * @param {ModuleId?} [parent] - Id of module to resolve from
21
+ * @return {?PackageScope} Package scope result or `null`
22
+ * @throws {NodeError<TypeError>} If either `id` or `stopdir` is not an instance
23
+ * of {@linkcode URL} or a string
24
+ */
25
+ declare const lookupPackageScope: (id: ModuleId, stopdir?: ModuleId, specifier?: string, parent?: ModuleId) => Nullable<PackageScope>;
26
+ export default lookupPackageScope;
@@ -0,0 +1,38 @@
1
+ import validateURLString from "../internal/validate-url-string.mjs";
2
+ import pathe from "@flex-development/pathe";
3
+ import { pathToFileURL } from "node:url";
4
+ import readPackageJson from "./read-package-json.mjs";
5
+ import toURL from "./to-url.mjs";
6
+ const lookupPackageScope = (id, stopdir = pathe.sep, specifier, parent) => {
7
+ validateURLString(id, "id");
8
+ validateURLString(stopdir, "stopdir");
9
+ stopdir = toURL(stopdir).pathname;
10
+ let dir = toURL(id).pathname;
11
+ let scope = null;
12
+ while (dir && !dir.endsWith("node_modules")) {
13
+ if (pathe.relative(stopdir, dir).startsWith("../"))
14
+ break;
15
+ const pkgjson = readPackageJson(
16
+ dir,
17
+ specifier,
18
+ parent
19
+ );
20
+ if (pkgjson) {
21
+ scope = {
22
+ dir: pathToFileURL(dir = pathe.resolve(process.cwd(), dir)).href,
23
+ pkg: pathToFileURL(pathe.join(dir, "package.json")).href,
24
+ pkgjson
25
+ };
26
+ break;
27
+ }
28
+ if (dir === stopdir.replace(/\/$/, ""))
29
+ break;
30
+ dir = pathe.dirname(dir);
31
+ }
32
+ return scope;
33
+ };
34
+ var lookup_package_scope_default = lookupPackageScope;
35
+ export {
36
+ lookup_package_scope_default as default
37
+ };
38
+ //# sourceMappingURL=lookup-package-scope.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/lookup-package-scope.ts"],
4
+ "mappings": "AAMA,OAAO,uBAAuB;AAG9B,OAAO,WAAW;AAGlB,SAAS,qBAAqB;AAC9B,OAAO,qBAAqB;AAC5B,OAAO,WAAW;AAmBlB,MAAM,qBAAqB,CACzB,IACA,UAAoB,MAAM,KAC1B,WACA,WAC2B;AAC3B,oBAAkB,IAAI,IAAI;AAC1B,oBAAkB,SAAS,SAAS;AAGpC,YAAU,MAAM,OAAO,EAAE;AAOzB,MAAI,MAAc,MAAM,EAAE,EAAE;AAO5B,MAAI,QAAgC;AAGpC,SAAO,OAAO,CAAC,IAAI,SAAS,cAAc,GAAG;AAE3C,QAAI,MAAM,SAAS,SAAS,GAAG,EAAE,WAAW,KAAK;AAAG;AAOpD,UAAM,UAAiC;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,QAAI,SAAS;AACX,cAAQ;AAAA,QACN,KAAK,cAAe,MAAM,MAAM,QAAQ,QAAQ,IAAI,GAAG,GAAG,CAAE,EAAE;AAAA,QAC9D,KAAK,cAAc,MAAM,KAAK,KAAK,cAAc,CAAC,EAAE;AAAA,QACpD;AAAA,MACF;AAEA;AAAA,IACF;AAGA,QAAI,QAAQ,QAAQ,QAAQ,OAAO,EAAE;AAAG;AAGxC,UAAM,MAAM,QAAQ,GAAG;AAAA,EACzB;AAEA,SAAO;AACT;AAEA,IAAO,+BAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @file parseDataURL
3
+ * @module mlly/utils/parseDataURL
4
+ */
5
+ import type { ParsedDataUrl } from '../interfaces/index.mjs';
6
+ import type { URL } from 'node:url';
7
+ /**
8
+ * Parses a [`data:` URL][1].
9
+ *
10
+ * If valid, returns an object representing the given `url`.
11
+ *
12
+ * **Note**: A [MIME type][2] string is required.
13
+ *
14
+ * [1]: https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URLs
15
+ * [2]: https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/MIME_types
16
+ *
17
+ * @see https://nodejs.org/api/esm.html#data-imports
18
+ *
19
+ * @param {URL | string} url - URL to evaluate
20
+ * @return {ParsedDataUrl} Object representing `url`
21
+ * @throws {ErrInvalidUrl | NodeError<TypeError>} If `url` is not a string or
22
+ * instance of {@linkcode URL}, or if `url` not a valid `data:` URL
23
+ */
24
+ declare const parseDataURL: (url: URL | string) => ParsedDataUrl;
25
+ export default parseDataURL;
@@ -0,0 +1,25 @@
1
+ import {
2
+ ERR_INVALID_URL
3
+ } from "@flex-development/errnode";
4
+ import toURL from "./to-url.mjs";
5
+ const parseDataURL = (url) => {
6
+ url = toURL(url);
7
+ const regex = /^(?<protocol>data:)(?<mime>[^/]+\/[^,;]+)[^,]*?(?:;(?<base64>base64))?,(?<data>[\S\s]*?)$/;
8
+ const match = regex.exec(url.href);
9
+ if (!match)
10
+ throw new ERR_INVALID_URL(url.href);
11
+ const [, , mime = "", base64, data = ""] = match;
12
+ return {
13
+ base64: !!base64,
14
+ data: data.trim(),
15
+ href: url.href,
16
+ mime,
17
+ pathname: url.pathname,
18
+ protocol: url.protocol
19
+ };
20
+ };
21
+ var parse_data_url_default = parseDataURL;
22
+ export {
23
+ parse_data_url_default as default
24
+ };
25
+ //# sourceMappingURL=parse-data-url.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/parse-data-url.ts"],
4
+ "mappings": "AAMA;AAAA,EACE;AAAA,OAGK;AAGP,OAAO,WAAW;AAmBlB,MAAM,eAAe,CAAC,QAAqC;AAEzD,QAAM,MAAM,GAAG;AAUf,QAAM,QACJ;AAOF,QAAM,QAAmC,MAAM,KAAK,IAAI,IAAI;AAG5D,MAAI,CAAC;AAAO,UAAM,IAAI,gBAAgB,IAAI,IAAI;AAG9C,QAAM,CAAC,EAAE,EAAE,OAAO,IAAI,QAAQ,OAAO,EAAE,IAAI;AAE3C,SAAO;AAAA,IACL,QAAQ,CAAC,CAAC;AAAA,IACV,MAAM,KAAK,KAAK;AAAA,IAChB,MAAM,IAAI;AAAA,IACV;AAAA,IACA,UAAU,IAAI;AAAA,IACd,UAAU,IAAI;AAAA,EAChB;AACF;AAEA,IAAO,yBAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @file parseModuleId
3
+ * @module mlly/lib/parseModuleId
4
+ */
5
+ import type { ParseModuleIdOptions, ParsedModuleId } from '../interfaces/index.mjs';
6
+ import type { ModuleId } from '../types/index.mjs';
7
+ /**
8
+ * Creates an object representation the given module `id`.
9
+ *
10
+ * @see {@linkcode ModuleId}
11
+ * @see {@linkcode ParseModuleIdOptions}
12
+ * @see {@linkcode ParsedModuleId}
13
+ *
14
+ * @param {ModuleId} id - Module id to parse
15
+ * @param {ParseModuleIdOptions?} [options={}] - Parsing options
16
+ * @return {ParsedModuleId} Object representing `id`
17
+ * @throws {NodeError<TypeError>} If `id` is not an instance of {@linkcode URL}
18
+ * or a string, if `id` includes encoded path separators, or if `id` is invalid
19
+ * according to `options.internal` or `options.pkgname`
20
+ */
21
+ declare const parseModuleId: (id: ModuleId, options?: ParseModuleIdOptions) => ParsedModuleId;
22
+ export default parseModuleId;
@@ -0,0 +1,122 @@
1
+ import ENCODED_SEP_REGEX from "../internal/regex-encoded-sep.mjs";
2
+ import INTERNAL_SPECIFIER_REGEX from "../internal/regex-internal-specifier.mjs";
3
+ import PACKAGE_PATH_REGEX from "../internal/regex-package-path.mjs";
4
+ import validateURLString from "../internal/validate-url-string.mjs";
5
+ import {
6
+ ERR_INVALID_MODULE_SPECIFIER
7
+ } from "@flex-development/errnode";
8
+ import { isBuiltin } from "@flex-development/is-builtin";
9
+ import pathe from "@flex-development/pathe";
10
+ import { URL, fileURLToPath } from "node:url";
11
+ import isBareSpecifier from "./is-bare-specifier.mjs";
12
+ import isRelativeSpecifier from "./is-relative-specifier.mjs";
13
+ import toNodeURL from "./to-node-url.mjs";
14
+ const parseModuleId = (id, options = {}) => {
15
+ const {
16
+ internal = id instanceof URL ? false : id.startsWith("#"),
17
+ pkgname = false
18
+ } = options;
19
+ validateURLString(id, "id");
20
+ id = id instanceof URL ? id.href : id.trim();
21
+ let error;
22
+ let parsed = {
23
+ internal: false,
24
+ path: id,
25
+ pkg: "",
26
+ protocol: "",
27
+ raw: id,
28
+ scope: "",
29
+ version: "",
30
+ version_prefix: ""
31
+ };
32
+ switch (true) {
33
+ case ENCODED_SEP_REGEX.test(id):
34
+ error = `must not include encoded '${pathe.sep}' or '\\' characters`;
35
+ break;
36
+ case isBuiltin(id):
37
+ const { href, protocol, pathname } = new URL(toNodeURL(id));
38
+ parsed = {
39
+ internal: false,
40
+ path: pathname.replace(/^\S+?(?=\/|$)/, ""),
41
+ pkg: href.replace(/\/.*$/, ""),
42
+ protocol: id.startsWith("node:") ? protocol : "",
43
+ raw: id,
44
+ scope: "",
45
+ version: "",
46
+ version_prefix: ""
47
+ };
48
+ break;
49
+ case INTERNAL_SPECIFIER_REGEX.test(id):
50
+ const [, root = ""] = INTERNAL_SPECIFIER_REGEX.exec(id);
51
+ parsed = {
52
+ internal: true,
53
+ path: id,
54
+ pkg: root,
55
+ protocol: "",
56
+ raw: id,
57
+ scope: "",
58
+ version: "",
59
+ version_prefix: ""
60
+ };
61
+ break;
62
+ case PACKAGE_PATH_REGEX.test(id):
63
+ const [
64
+ ,
65
+ pkg = "",
66
+ scope = "",
67
+ version_prefix = "",
68
+ version = "",
69
+ subpath = ""
70
+ ] = PACKAGE_PATH_REGEX.exec(id);
71
+ parsed = {
72
+ internal: false,
73
+ path: "." + subpath,
74
+ pkg,
75
+ protocol: "",
76
+ raw: id,
77
+ scope,
78
+ version,
79
+ version_prefix
80
+ };
81
+ break;
82
+ case /^[\w-]{2,}:/.test(id):
83
+ try {
84
+ const { host, protocol: protocol2, pathname: pathname2 } = new URL(id);
85
+ parsed = {
86
+ internal: false,
87
+ path: host + pathname2,
88
+ pkg: "",
89
+ protocol: protocol2,
90
+ raw: id,
91
+ scope: "",
92
+ version: "",
93
+ version_prefix: ""
94
+ };
95
+ } catch {
96
+ error = "is not a valid URL";
97
+ }
98
+ break;
99
+ case isBareSpecifier(id):
100
+ case isRelativeSpecifier(id):
101
+ case pathe.isAbsolute(id):
102
+ break;
103
+ default:
104
+ error = "";
105
+ break;
106
+ }
107
+ error = ENCODED_SEP_REGEX.test(id) ? error : internal && !INTERNAL_SPECIFIER_REGEX.test(id) ? "is not a valid internal imports specifier name" : pkgname && !PACKAGE_PATH_REGEX.test(id) ? "does not start with a valid package name" : error;
108
+ if (error !== void 0) {
109
+ let { parent } = options;
110
+ if (parent !== void 0) {
111
+ validateURLString(parent, "options.parent");
112
+ parent = fileURLToPath(parent);
113
+ }
114
+ throw new ERR_INVALID_MODULE_SPECIFIER(id, error, parent);
115
+ }
116
+ return parsed;
117
+ };
118
+ var parse_module_id_default = parseModuleId;
119
+ export {
120
+ parse_module_id_default as default
121
+ };
122
+ //# sourceMappingURL=parse-module-id.mjs.map