@flex-development/mlly 1.0.0-alpha.17 → 1.0.0-alpha.19

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 (303) hide show
  1. package/CHANGELOG.md +829 -681
  2. package/README.md +173 -12
  3. package/dist/index.d.mts +3 -4
  4. package/dist/index.mjs +1 -5
  5. package/dist/interfaces/aliases.d.mts +11 -0
  6. package/dist/interfaces/context-get-source.d.mts +52 -0
  7. package/dist/interfaces/file-system.d.mts +57 -0
  8. package/dist/interfaces/index.d.mts +11 -21
  9. package/dist/interfaces/main-field-map.d.mts +13 -0
  10. package/dist/interfaces/module-format-map.d.mts +17 -0
  11. package/dist/interfaces/options-get-source.d.mts +22 -29
  12. package/dist/interfaces/options-resolve-alias.d.mts +14 -26
  13. package/dist/interfaces/options-resolve-module.d.mts +38 -27
  14. package/dist/interfaces/protocol-map.d.mts +35 -0
  15. package/dist/interfaces/stats.d.mts +28 -0
  16. package/dist/internal/chars.mjs +11 -0
  17. package/dist/internal/check-invalid-segments.mjs +19 -0
  18. package/dist/internal/fs.browser.mjs +36 -0
  19. package/dist/internal/fs.d.mts +7 -0
  20. package/dist/internal/invalid-package-target.mjs +18 -0
  21. package/dist/internal/invalid-subpath.mjs +16 -0
  22. package/dist/internal/process.browser.mjs +7 -0
  23. package/dist/internal/process.d.mts +4 -0
  24. package/dist/lib/can-parse-url.d.mts +21 -0
  25. package/dist/lib/can-parse-url.mjs +12 -0
  26. package/dist/lib/cwd.d.mts +12 -0
  27. package/dist/lib/cwd.mjs +8 -0
  28. package/dist/lib/default-conditions.d.mts +15 -0
  29. package/dist/lib/default-conditions.mjs +5 -0
  30. package/dist/lib/default-extensions.d.mts +14 -0
  31. package/dist/lib/default-extensions.mjs +21 -0
  32. package/dist/lib/default-main-fields.d.mts +14 -0
  33. package/dist/lib/default-main-fields.mjs +5 -0
  34. package/dist/lib/extension-format-map.d.mts +16 -0
  35. package/dist/lib/extension-format-map.mjs +21 -0
  36. package/dist/lib/formats.d.mts +21 -0
  37. package/dist/lib/formats.mjs +14 -0
  38. package/dist/lib/get-source.d.mts +26 -0
  39. package/dist/lib/get-source.mjs +70 -0
  40. package/dist/lib/index.d.mts +40 -0
  41. package/dist/lib/index.mjs +53 -0
  42. package/dist/lib/is-absolute-specifier.d.mts +23 -0
  43. package/dist/lib/is-absolute-specifier.mjs +9 -0
  44. package/dist/lib/is-array-index.d.mts +17 -0
  45. package/dist/lib/is-array-index.mjs +11 -0
  46. package/dist/lib/is-bare-specifier.d.mts +23 -0
  47. package/dist/lib/is-bare-specifier.mjs +11 -0
  48. package/dist/lib/is-directory.d.mts +22 -0
  49. package/dist/lib/is-directory.mjs +13 -0
  50. package/dist/lib/is-file.d.mts +22 -0
  51. package/dist/lib/is-file.mjs +13 -0
  52. package/dist/lib/is-imports-subpath.d.mts +19 -0
  53. package/dist/lib/is-imports-subpath.mjs +8 -0
  54. package/dist/lib/is-relative-specifier.d.mts +21 -0
  55. package/dist/lib/is-relative-specifier.mjs +16 -0
  56. package/dist/lib/lookup-package-scope.d.mts +26 -0
  57. package/dist/lib/lookup-package-scope.mjs +16 -0
  58. package/dist/lib/pattern-key-compare.d.mts +31 -0
  59. package/dist/lib/pattern-key-compare.mjs +18 -0
  60. package/dist/lib/pattern-match.d.mts +19 -0
  61. package/dist/lib/pattern-match.mjs +36 -0
  62. package/dist/lib/read-package-json.d.mts +35 -0
  63. package/dist/lib/read-package-json.mjs +29 -0
  64. package/dist/lib/resolve-alias.d.mts +19 -0
  65. package/dist/lib/resolve-alias.mjs +50 -0
  66. package/dist/lib/resolve-module.d.mts +37 -0
  67. package/dist/lib/resolve-module.mjs +75 -0
  68. package/dist/lib/resolver.d.mts +280 -0
  69. package/dist/lib/resolver.mjs +462 -0
  70. package/dist/lib/root.d.mts +11 -0
  71. package/dist/lib/root.mjs +6 -0
  72. package/dist/lib/to-relative-specifier.d.mts +25 -0
  73. package/dist/lib/to-relative-specifier.mjs +26 -0
  74. package/dist/lib/to-url.d.mts +24 -0
  75. package/dist/lib/to-url.mjs +10 -0
  76. package/dist/types/awaitable.d.mts +14 -0
  77. package/dist/types/change-ext-fn.d.mts +29 -0
  78. package/dist/types/get-source-handler.d.mts +21 -0
  79. package/dist/types/get-source-handlers.d.mts +14 -0
  80. package/dist/types/index.d.mts +12 -10
  81. package/dist/types/main-field.d.mts +13 -0
  82. package/dist/types/module-format.d.mts +13 -0
  83. package/dist/types/module-id.d.mts +2 -4
  84. package/dist/types/numeric.d.mts +9 -0
  85. package/dist/types/pattern-key-compare-result.d.mts +9 -0
  86. package/dist/types/pattern-match.d.mts +10 -0
  87. package/dist/types/protocol.d.mts +6 -7
  88. package/package.json +227 -155
  89. package/dist/enums/assert-type.d.mts +0 -21
  90. package/dist/enums/assert-type.mjs +0 -4
  91. package/dist/enums/format.d.mts +0 -17
  92. package/dist/enums/format.mjs +0 -4
  93. package/dist/enums/index.d.mts +0 -10
  94. package/dist/enums/index.mjs +0 -14
  95. package/dist/enums/kind-specifier-syntax.d.mts +0 -14
  96. package/dist/enums/kind-specifier-syntax.mjs +0 -4
  97. package/dist/enums/kind-specifier.d.mts +0 -17
  98. package/dist/enums/kind-specifier.mjs +0 -4
  99. package/dist/enums/kind-statement-syntax.d.mts +0 -22
  100. package/dist/enums/kind-statement-syntax.mjs +0 -4
  101. package/dist/enums/kind-statement.d.mts +0 -15
  102. package/dist/enums/kind-statement.mjs +0 -4
  103. package/dist/index.mjs.map +0 -8
  104. package/dist/interfaces/import-assertions.d.mts +0 -20
  105. package/dist/interfaces/import-dynamic.d.mts +0 -41
  106. package/dist/interfaces/import-static.d.mts +0 -35
  107. package/dist/interfaces/index.mjs +0 -0
  108. package/dist/interfaces/options-fill-module.d.mts +0 -23
  109. package/dist/interfaces/options-find-subpath.d.mts +0 -50
  110. package/dist/interfaces/options-get-format.d.mts +0 -73
  111. package/dist/interfaces/options-parse-module-id.d.mts +0 -34
  112. package/dist/interfaces/options-parse-subpath.d.mts +0 -50
  113. package/dist/interfaces/options-resolve.d.mts +0 -15
  114. package/dist/interfaces/package-scope.d.mts +0 -25
  115. package/dist/interfaces/parsed-data-url.d.mts +0 -56
  116. package/dist/interfaces/parsed-module-id.d.mts +0 -80
  117. package/dist/interfaces/parsed-subpath.d.mts +0 -44
  118. package/dist/interfaces/statement-export.d.mts +0 -44
  119. package/dist/interfaces/statement-import.d.mts +0 -38
  120. package/dist/interfaces/statement-require.d.mts +0 -38
  121. package/dist/interfaces/statement.d.mts +0 -49
  122. package/dist/internal/dequote.d.mts +0 -14
  123. package/dist/internal/dequote.mjs +0 -7
  124. package/dist/internal/dequote.mjs.map +0 -8
  125. package/dist/internal/format-type-map.d.mts +0 -19
  126. package/dist/internal/format-type-map.mjs +0 -13
  127. package/dist/internal/format-type-map.mjs.map +0 -8
  128. package/dist/internal/get-specifier-kind.d.mts +0 -19
  129. package/dist/internal/get-specifier-kind.mjs +0 -11
  130. package/dist/internal/get-specifier-kind.mjs.map +0 -8
  131. package/dist/internal/get-subpaths.d.mts +0 -28
  132. package/dist/internal/get-subpaths.mjs +0 -8
  133. package/dist/internal/get-subpaths.mjs.map +0 -8
  134. package/dist/internal/regex-encoded-sep.d.mts +0 -15
  135. package/dist/internal/regex-encoded-sep.mjs +0 -6
  136. package/dist/internal/regex-encoded-sep.mjs.map +0 -8
  137. package/dist/internal/regex-internal-specifier.d.mts +0 -16
  138. package/dist/internal/regex-internal-specifier.mjs +0 -6
  139. package/dist/internal/regex-internal-specifier.mjs.map +0 -8
  140. package/dist/internal/regex-invalid-segment.d.mts +0 -16
  141. package/dist/internal/regex-invalid-segment.mjs +0 -9
  142. package/dist/internal/regex-invalid-segment.mjs.map +0 -8
  143. package/dist/internal/regex-package-name.d.mts +0 -15
  144. package/dist/internal/regex-package-name.mjs +0 -6
  145. package/dist/internal/regex-package-name.mjs.map +0 -8
  146. package/dist/internal/regex-package-path.d.mts +0 -17
  147. package/dist/internal/regex-package-path.mjs +0 -6
  148. package/dist/internal/regex-package-path.mjs.map +0 -8
  149. package/dist/internal/resolver.d.mts +0 -132
  150. package/dist/internal/resolver.mjs +0 -483
  151. package/dist/internal/resolver.mjs.map +0 -8
  152. package/dist/internal/validate-array-set.d.mts +0 -24
  153. package/dist/internal/validate-array-set.mjs +0 -12
  154. package/dist/internal/validate-array-set.mjs.map +0 -8
  155. package/dist/internal/validate-boolean.d.mts +0 -22
  156. package/dist/internal/validate-boolean.mjs +0 -12
  157. package/dist/internal/validate-boolean.mjs.map +0 -8
  158. package/dist/internal/validate-map.d.mts +0 -26
  159. package/dist/internal/validate-map.mjs +0 -12
  160. package/dist/internal/validate-map.mjs.map +0 -8
  161. package/dist/internal/validate-object.d.mts +0 -23
  162. package/dist/internal/validate-object.mjs +0 -12
  163. package/dist/internal/validate-object.mjs.map +0 -8
  164. package/dist/internal/validate-set.d.mts +0 -24
  165. package/dist/internal/validate-set.mjs +0 -12
  166. package/dist/internal/validate-set.mjs.map +0 -8
  167. package/dist/internal/validate-string.d.mts +0 -23
  168. package/dist/internal/validate-string.mjs +0 -12
  169. package/dist/internal/validate-string.mjs.map +0 -8
  170. package/dist/internal/validate-url-string.d.mts +0 -24
  171. package/dist/internal/validate-url-string.mjs +0 -13
  172. package/dist/internal/validate-url-string.mjs.map +0 -8
  173. package/dist/types/declaration.d.mts +0 -9
  174. package/dist/types/fn-change-ext.d.mts +0 -31
  175. package/dist/types/index.mjs +0 -0
  176. package/dist/types/mime-type.d.mts +0 -13
  177. package/dist/types/module-specifier-type.d.mts +0 -11
  178. package/dist/types/syntax-kind-export.d.mts +0 -12
  179. package/dist/types/syntax-kind-import.d.mts +0 -12
  180. package/dist/types/syntax-kind-require.d.mts +0 -12
  181. package/dist/utils/compare-subpaths.d.mts +0 -25
  182. package/dist/utils/compare-subpaths.mjs +0 -19
  183. package/dist/utils/compare-subpaths.mjs.map +0 -8
  184. package/dist/utils/conditions.d.mts +0 -13
  185. package/dist/utils/conditions.mjs +0 -6
  186. package/dist/utils/conditions.mjs.map +0 -8
  187. package/dist/utils/detect-syntax.d.mts +0 -21
  188. package/dist/utils/detect-syntax.mjs +0 -11
  189. package/dist/utils/detect-syntax.mjs.map +0 -8
  190. package/dist/utils/extension-format-map.d.mts +0 -16
  191. package/dist/utils/extension-format-map.mjs +0 -22
  192. package/dist/utils/extension-format-map.mjs.map +0 -8
  193. package/dist/utils/extract-statements.d.mts +0 -21
  194. package/dist/utils/extract-statements.mjs +0 -20
  195. package/dist/utils/extract-statements.mjs.map +0 -8
  196. package/dist/utils/fill-modules.d.mts +0 -24
  197. package/dist/utils/fill-modules.mjs +0 -67
  198. package/dist/utils/fill-modules.mjs.map +0 -8
  199. package/dist/utils/find-dynamic-imports.d.mts +0 -18
  200. package/dist/utils/find-dynamic-imports.mjs +0 -36
  201. package/dist/utils/find-dynamic-imports.mjs.map +0 -8
  202. package/dist/utils/find-exports.d.mts +0 -21
  203. package/dist/utils/find-exports.mjs +0 -92
  204. package/dist/utils/find-exports.mjs.map +0 -8
  205. package/dist/utils/find-requires.d.mts +0 -18
  206. package/dist/utils/find-requires.mjs +0 -32
  207. package/dist/utils/find-requires.mjs.map +0 -8
  208. package/dist/utils/find-static-imports.d.mts +0 -18
  209. package/dist/utils/find-static-imports.mjs +0 -30
  210. package/dist/utils/find-static-imports.mjs.map +0 -8
  211. package/dist/utils/find-subpath.d.mts +0 -31
  212. package/dist/utils/find-subpath.mjs +0 -86
  213. package/dist/utils/find-subpath.mjs.map +0 -8
  214. package/dist/utils/get-format.d.mts +0 -31
  215. package/dist/utils/get-format.mjs +0 -107
  216. package/dist/utils/get-format.mjs.map +0 -8
  217. package/dist/utils/get-source.d.mts +0 -30
  218. package/dist/utils/get-source.mjs +0 -61
  219. package/dist/utils/get-source.mjs.map +0 -8
  220. package/dist/utils/has-cjs-syntax.d.mts +0 -25
  221. package/dist/utils/has-cjs-syntax.mjs +0 -11
  222. package/dist/utils/has-cjs-syntax.mjs.map +0 -8
  223. package/dist/utils/has-esm-syntax.d.mts +0 -21
  224. package/dist/utils/has-esm-syntax.mjs +0 -11
  225. package/dist/utils/has-esm-syntax.mjs.map +0 -8
  226. package/dist/utils/index.d.mts +0 -44
  227. package/dist/utils/index.mjs +0 -83
  228. package/dist/utils/index.mjs.map +0 -8
  229. package/dist/utils/is-absolute-specifier.d.mts +0 -20
  230. package/dist/utils/is-absolute-specifier.mjs +0 -26
  231. package/dist/utils/is-absolute-specifier.mjs.map +0 -8
  232. package/dist/utils/is-bare-specifier.d.mts +0 -20
  233. package/dist/utils/is-bare-specifier.mjs +0 -10
  234. package/dist/utils/is-bare-specifier.mjs.map +0 -8
  235. package/dist/utils/is-directory.d.mts +0 -13
  236. package/dist/utils/is-directory.mjs +0 -14
  237. package/dist/utils/is-directory.mjs.map +0 -8
  238. package/dist/utils/is-exports-sugar.d.mts +0 -26
  239. package/dist/utils/is-exports-sugar.mjs +0 -29
  240. package/dist/utils/is-exports-sugar.mjs.map +0 -8
  241. package/dist/utils/is-file.d.mts +0 -13
  242. package/dist/utils/is-file.mjs +0 -14
  243. package/dist/utils/is-file.mjs.map +0 -8
  244. package/dist/utils/is-relative-specifier.d.mts +0 -19
  245. package/dist/utils/is-relative-specifier.mjs +0 -9
  246. package/dist/utils/is-relative-specifier.mjs.map +0 -8
  247. package/dist/utils/lookup-package-scope.d.mts +0 -26
  248. package/dist/utils/lookup-package-scope.mjs +0 -34
  249. package/dist/utils/lookup-package-scope.mjs.map +0 -8
  250. package/dist/utils/parse-data-url.d.mts +0 -25
  251. package/dist/utils/parse-data-url.mjs +0 -25
  252. package/dist/utils/parse-data-url.mjs.map +0 -8
  253. package/dist/utils/parse-module-id.d.mts +0 -20
  254. package/dist/utils/parse-module-id.mjs +0 -123
  255. package/dist/utils/parse-module-id.mjs.map +0 -8
  256. package/dist/utils/parse-subpath.d.mts +0 -35
  257. package/dist/utils/parse-subpath.mjs +0 -149
  258. package/dist/utils/parse-subpath.mjs.map +0 -8
  259. package/dist/utils/pattern-character.d.mts +0 -11
  260. package/dist/utils/pattern-character.mjs +0 -6
  261. package/dist/utils/pattern-character.mjs.map +0 -8
  262. package/dist/utils/read-package-json.d.mts +0 -26
  263. package/dist/utils/read-package-json.mjs +0 -48
  264. package/dist/utils/read-package-json.mjs.map +0 -8
  265. package/dist/utils/resolve-alias.d.mts +0 -20
  266. package/dist/utils/resolve-alias.mjs +0 -101
  267. package/dist/utils/resolve-alias.mjs.map +0 -8
  268. package/dist/utils/resolve-aliases.d.mts +0 -19
  269. package/dist/utils/resolve-aliases.mjs +0 -26
  270. package/dist/utils/resolve-aliases.mjs.map +0 -8
  271. package/dist/utils/resolve-extensions.d.mts +0 -14
  272. package/dist/utils/resolve-extensions.mjs +0 -22
  273. package/dist/utils/resolve-extensions.mjs.map +0 -8
  274. package/dist/utils/resolve-module.d.mts +0 -39
  275. package/dist/utils/resolve-module.mjs +0 -63
  276. package/dist/utils/resolve-module.mjs.map +0 -8
  277. package/dist/utils/resolve-modules.d.mts +0 -25
  278. package/dist/utils/resolve-modules.mjs +0 -23
  279. package/dist/utils/resolve-modules.mjs.map +0 -8
  280. package/dist/utils/to-absolute-specifier.d.mts +0 -22
  281. package/dist/utils/to-absolute-specifier.mjs +0 -8
  282. package/dist/utils/to-absolute-specifier.mjs.map +0 -8
  283. package/dist/utils/to-bare-specifier.d.mts +0 -42
  284. package/dist/utils/to-bare-specifier.mjs +0 -72
  285. package/dist/utils/to-bare-specifier.mjs.map +0 -8
  286. package/dist/utils/to-data-url.d.mts +0 -30
  287. package/dist/utils/to-data-url.mjs +0 -7
  288. package/dist/utils/to-data-url.mjs.map +0 -8
  289. package/dist/utils/to-node-url.d.mts +0 -19
  290. package/dist/utils/to-node-url.mjs +0 -7
  291. package/dist/utils/to-node-url.mjs.map +0 -8
  292. package/dist/utils/to-relative-specifier.d.mts +0 -24
  293. package/dist/utils/to-relative-specifier.mjs +0 -10
  294. package/dist/utils/to-relative-specifier.mjs.map +0 -8
  295. package/dist/utils/to-url.d.mts +0 -21
  296. package/dist/utils/to-url.mjs +0 -8
  297. package/dist/utils/to-url.mjs.map +0 -8
  298. package/dist/utils/validate-assertions.d.mts +0 -23
  299. package/dist/utils/validate-assertions.mjs +0 -47
  300. package/dist/utils/validate-assertions.mjs.map +0 -8
  301. package/dist/utils/validate-exports.d.mts +0 -25
  302. package/dist/utils/validate-exports.mjs +0 -73
  303. package/dist/utils/validate-exports.mjs.map +0 -8
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @file Interfaces - ProtocolMap
3
+ * @module mlly/interfaces/ProtocolMap
4
+ */
5
+ /**
6
+ * URL protocol registry.
7
+ *
8
+ * @see https://nodejs.org/api/url.html#urlprotocol
9
+ * @see https://iana.org/assignments/uri-schemes/uri-schemes.xhtml
10
+ * @see https://url.spec.whatwg.org/#special-scheme
11
+ */
12
+ interface ProtocolMap {
13
+ blob: 'blob:';
14
+ content: 'content:';
15
+ cvs: 'cvs:';
16
+ data: 'data:';
17
+ dns: 'dns:';
18
+ file: 'file:';
19
+ fish: 'fish:';
20
+ ftp: 'ftp:';
21
+ git: 'git:';
22
+ http: 'http:';
23
+ https: 'https:';
24
+ mvn: 'mvn:';
25
+ node: 'node:';
26
+ redis: 'redis:';
27
+ sftp: 'sftp:';
28
+ ssh: 'ssh:';
29
+ svn: 'svn:';
30
+ urn: 'urn:';
31
+ viewSource: 'view-source:';
32
+ ws: 'ws:';
33
+ wss: 'wss:';
34
+ }
35
+ export type { ProtocolMap as default };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @file Interfaces - Stats
3
+ * @module mlly/interfaces/Stats
4
+ */
5
+ /**
6
+ * File system metadata.
7
+ */
8
+ interface Stats {
9
+ /**
10
+ * Check if the stats object describes a file system directory.
11
+ *
12
+ * @this {void}
13
+ *
14
+ * @return {boolean}
15
+ * `true` if stats object describes directory, `false` otherwise
16
+ */
17
+ isDirectory(this: void): boolean;
18
+ /**
19
+ * Check if the stats object describes a regular file.
20
+ *
21
+ * @this {void}
22
+ *
23
+ * @return {boolean}
24
+ * `true` if stats object describes regular file, `false` otherwise
25
+ */
26
+ isFile(this: void): boolean;
27
+ }
28
+ export type { Stats as default };
@@ -0,0 +1,11 @@
1
+ var chars = /* @__PURE__ */ ((chars2) => {
2
+ chars2["asterisk"] = "*";
3
+ chars2["at"] = "@";
4
+ chars2["empty"] = "";
5
+ chars2["hash"] = "#";
6
+ return chars2;
7
+ })(chars || {});
8
+ var chars_default = chars;
9
+ export {
10
+ chars_default as default
11
+ };
@@ -0,0 +1,19 @@
1
+ import chars from "#internal/chars";
2
+ function checkInvalidSegments(str) {
3
+ const separator = /\/|\\/;
4
+ const segments = str.startsWith("./") ? str.slice(2).split(separator) : str.split(separator);
5
+ const checks = [
6
+ /^(\.|%2e)(\.|%2e)?/i,
7
+ /^(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)/i
8
+ ];
9
+ for (const segment of segments) {
10
+ if (segment === chars.empty || checks.some((check) => check.test(segment))) {
11
+ return true;
12
+ }
13
+ }
14
+ return false;
15
+ }
16
+ var check_invalid_segments_default = checkInvalidSegments;
17
+ export {
18
+ check_invalid_segments_default as default
19
+ };
@@ -0,0 +1,36 @@
1
+ const fs = {
2
+ /**
3
+ * Get the contents of a file.
4
+ *
5
+ * @return {never}
6
+ * Never; not implemented
7
+ * @throws {Error}
8
+ */
9
+ readFile() {
10
+ throw new Error("[readFile] not implemented");
11
+ },
12
+ /**
13
+ * Get the resolved pathname of a file.
14
+ *
15
+ * @return {never}
16
+ * Never; not implemented
17
+ * @throws {Error}
18
+ */
19
+ realpath() {
20
+ throw new Error("[realpath] not implemented");
21
+ },
22
+ /**
23
+ * Get information about a file.
24
+ *
25
+ * @return {never}
26
+ * Never; not implemented
27
+ * @throws {Error}
28
+ */
29
+ stat() {
30
+ throw new Error("[stat] not implemented");
31
+ }
32
+ };
33
+ var fs_browser_default = fs;
34
+ export {
35
+ fs_browser_default as default
36
+ };
@@ -0,0 +1,7 @@
1
+ declare module '#internal/fs' {
2
+ import type { FileSystem } from '@flex-development/mlly'
3
+
4
+ const fs: FileSystem
5
+
6
+ export default fs
7
+ }
@@ -0,0 +1,18 @@
1
+ import chars from "#internal/chars";
2
+ import {
3
+ ERR_INVALID_PACKAGE_TARGET
4
+ } from "@flex-development/errnode";
5
+ import { fileURLToPath } from "@flex-development/pathe";
6
+ function invalidPackageTarget(packageUrl, subpath, target, isImports, parent) {
7
+ return new ERR_INVALID_PACKAGE_TARGET(
8
+ fileURLToPath(packageUrl),
9
+ subpath,
10
+ typeof target === "object" && target !== null ? JSON.stringify(target, null, "") : String(target) + (typeof target === "bigint" ? "n" : chars.empty),
11
+ isImports,
12
+ parent && fileURLToPath(parent)
13
+ );
14
+ }
15
+ var invalid_package_target_default = invalidPackageTarget;
16
+ export {
17
+ invalid_package_target_default as default
18
+ };
@@ -0,0 +1,16 @@
1
+ import chars from "#internal/chars";
2
+ import {
3
+ ERR_INVALID_MODULE_SPECIFIER
4
+ } from "@flex-development/errnode";
5
+ import { fileURLToPath } from "@flex-development/pathe";
6
+ function invalidSubpath(subpath, patternMatch, packageUrl, isImports, parent) {
7
+ return new ERR_INVALID_MODULE_SPECIFIER(
8
+ subpath.replace(chars.asterisk, () => patternMatch),
9
+ `request is not a valid match in pattern "${subpath}" for the "${isImports ? "imports" : "exports"}" resolution of ${fileURLToPath(new URL("package.json", packageUrl))}`,
10
+ parent && fileURLToPath(parent)
11
+ );
12
+ }
13
+ var invalid_subpath_default = invalidSubpath;
14
+ export {
15
+ invalid_subpath_default as default
16
+ };
@@ -0,0 +1,7 @@
1
+ var process_browser_default = {
2
+ browser: true,
3
+ platform: "browser"
4
+ };
5
+ export {
6
+ process_browser_default as default
7
+ };
@@ -0,0 +1,4 @@
1
+ declare module '#internal/process' {
2
+ const process: NodeJS.Process
3
+ export default process
4
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @file canParseUrl
3
+ * @module mlly/lib/canParseUrl
4
+ */
5
+ /**
6
+ * Check if `input` can be parsed to a {@linkcode URL}.
7
+ *
8
+ * > 👉 **Note**: If `input` is relative, `base` is required. If `input` is
9
+ * > absolute, `base` is ignored.
10
+ *
11
+ * @see {@linkcode ModuleId}
12
+ *
13
+ * @param {unknown} input
14
+ * The absolute or relative input URL to parse
15
+ * @param {unknown} [base]
16
+ * Base URL to resolve against if `input` is not absolute
17
+ * @return {boolean}
18
+ * `true` if `input` can be parsed to a `URL`
19
+ */
20
+ declare function canParseUrl(input: unknown, base?: unknown): boolean;
21
+ export default canParseUrl;
@@ -0,0 +1,12 @@
1
+ function canParseUrl(input, base) {
2
+ try {
3
+ new URL(input, base ?? void 0);
4
+ return true;
5
+ } catch {
6
+ return false;
7
+ }
8
+ }
9
+ var can_parse_url_default = canParseUrl;
10
+ export {
11
+ can_parse_url_default as default
12
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @file cwd
3
+ * @module mlly/lib/cwd
4
+ */
5
+ /**
6
+ * Get the URL of the current working directory.
7
+ *
8
+ * @return {URL}
9
+ * URL of current working directory
10
+ */
11
+ declare function cwd(): URL;
12
+ export default cwd;
@@ -0,0 +1,8 @@
1
+ import pathe from "@flex-development/pathe";
2
+ function cwd() {
3
+ return pathe.pathToFileURL(pathe.cwd() + pathe.sep);
4
+ }
5
+ var cwd_default = cwd;
6
+ export {
7
+ cwd_default as default
8
+ };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @file defaultConditions
3
+ * @module mlly/lib/defaultConditions
4
+ */
5
+ import type { Condition } from '@flex-development/pkg-types';
6
+ /**
7
+ * Default conditions.
8
+ *
9
+ * @see {@linkcode Condition}
10
+ * @see https://nodejs.org/api/packages.html#conditional-exports
11
+ *
12
+ * @const {Set<Condition>} defaultConditions
13
+ */
14
+ declare const defaultConditions: Set<Condition>;
15
+ export default defaultConditions;
@@ -0,0 +1,5 @@
1
+ const defaultConditions = /* @__PURE__ */ new Set(["node", "import"]);
2
+ var default_conditions_default = defaultConditions;
3
+ export {
4
+ default_conditions_default as default
5
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @file defaultExtensions
3
+ * @module mlly/lib/defaultExtensions
4
+ */
5
+ import type { Ext } from '@flex-development/pathe';
6
+ /**
7
+ * Default resolvable file extensions.
8
+ *
9
+ * @see {@linkcode Ext}
10
+ *
11
+ * @const {Set<Ext>} defaultExtensions
12
+ */
13
+ declare const defaultExtensions: Set<Ext>;
14
+ export default defaultExtensions;
@@ -0,0 +1,21 @@
1
+ const defaultExtensions = /* @__PURE__ */ new Set([
2
+ ".mjs",
3
+ ".mts",
4
+ ".cjs",
5
+ ".cts",
6
+ ".js",
7
+ ".ts",
8
+ ".jsx",
9
+ ".tsx",
10
+ ".css",
11
+ ".json",
12
+ ".node",
13
+ ".wasm",
14
+ ".d.mts",
15
+ ".d.cts",
16
+ ".d.ts"
17
+ ]);
18
+ var default_extensions_default = defaultExtensions;
19
+ export {
20
+ default_extensions_default as default
21
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @file defaultMainFields
3
+ * @module mlly/lib/defaultMainFields
4
+ */
5
+ import type { MainField } from '@flex-development/mlly';
6
+ /**
7
+ * Default main fields.
8
+ *
9
+ * @see {@linkcode MainField}
10
+ *
11
+ * @const {Set<MainField>} defaultMainFields
12
+ */
13
+ declare const defaultMainFields: Set<MainField>;
14
+ export default defaultMainFields;
@@ -0,0 +1,5 @@
1
+ const defaultMainFields = /* @__PURE__ */ new Set(["main"]);
2
+ var default_main_fields_default = defaultMainFields;
3
+ export {
4
+ default_main_fields_default as default
5
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @file extensionFormatMap
3
+ * @module mlly/lib/extensionFormatMap
4
+ */
5
+ import type { ModuleFormat } from '@flex-development/mlly';
6
+ import type { Ext } from '@flex-development/pathe';
7
+ /**
8
+ * File extension to module format map.
9
+ *
10
+ * @see {@linkcode Ext}
11
+ * @see {@linkcode ModuleFormat}
12
+ *
13
+ * @const {Map<Ext, ModuleFormat>} extensionFormatMap
14
+ */
15
+ declare const extensionFormatMap: Map<Ext, ModuleFormat>;
16
+ export default extensionFormatMap;
@@ -0,0 +1,21 @@
1
+ import formats from "#lib/formats";
2
+ const extensionFormatMap = /* @__PURE__ */ new Map([
3
+ [".cjs", formats.commonjs],
4
+ [".cts", formats.cts],
5
+ [".d.cts", formats.cts],
6
+ [".d.mts", formats.mts],
7
+ [".d.ts", formats.mts],
8
+ [".js", formats.module],
9
+ [".json", formats.json],
10
+ [".jsx", formats.module],
11
+ [".mjs", formats.module],
12
+ [".mts", formats.mts],
13
+ [".node", formats.commonjs],
14
+ [".ts", formats.mts],
15
+ [".tsx", formats.mts],
16
+ [".wasm", formats.wasm]
17
+ ]);
18
+ var extension_format_map_default = extensionFormatMap;
19
+ export {
20
+ extension_format_map_default as default
21
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @file formats
3
+ * @module mlly/lib/formats
4
+ */
5
+ /**
6
+ * Module formats.
7
+ *
8
+ * @see {@linkcode ModuleFormat}
9
+ *
10
+ * @enum {ModuleFormat}
11
+ */
12
+ declare enum formats {
13
+ builtin = "builtin",
14
+ commonjs = "commonjs",
15
+ cts = "commonjs-typescript",
16
+ json = "json",
17
+ module = "module",
18
+ mts = "module-typescript",
19
+ wasm = "wasm"
20
+ }
21
+ export default formats;
@@ -0,0 +1,14 @@
1
+ var formats = /* @__PURE__ */ ((formats2) => {
2
+ formats2["builtin"] = "builtin";
3
+ formats2["commonjs"] = "commonjs";
4
+ formats2["cts"] = "commonjs-typescript";
5
+ formats2["json"] = "json";
6
+ formats2["module"] = "module";
7
+ formats2["mts"] = "module-typescript";
8
+ formats2["wasm"] = "wasm";
9
+ return formats2;
10
+ })(formats || {});
11
+ var formats_default = formats;
12
+ export {
13
+ formats_default as default
14
+ };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @file getSource
3
+ * @module mlly/lib/getSource
4
+ */
5
+ import type { GetSourceOptions, ModuleId } from '@flex-development/mlly';
6
+ export default getSource;
7
+ /**
8
+ * Get the source code for `id`.
9
+ *
10
+ * @see {@linkcode ErrUnsupportedEsmUrlScheme}
11
+ * @see {@linkcode GetSourceOptions}
12
+ * @see {@linkcode ModuleId}
13
+ *
14
+ * @async
15
+ *
16
+ * @this {void}
17
+ *
18
+ * @param {ModuleId} id
19
+ * Module id to handle
20
+ * @param {GetSourceOptions | null | undefined} [options]
21
+ * Source code retrieval options
22
+ * @return {Promise<string | null | undefined>}
23
+ * Source code for `id`
24
+ * @throws {ErrUnsupportedEsmUrlScheme}
25
+ */
26
+ declare function getSource(this: void, id: ModuleId, options?: GetSourceOptions | null | undefined): Promise<string | null | undefined>;
@@ -0,0 +1,70 @@
1
+ import fs from "#internal/fs";
2
+ import process from "#internal/process";
3
+ import isFile from "#lib/is-file";
4
+ import toUrl from "#lib/to-url";
5
+ import {
6
+ ERR_UNSUPPORTED_ESM_URL_SCHEME
7
+ } from "@flex-development/errnode";
8
+ import { ok } from "devlop";
9
+ var get_source_default = getSource;
10
+ async function getSource(id, options) {
11
+ const context = {
12
+ ...options,
13
+ error: false,
14
+ fs: options?.fs ?? fs,
15
+ handlers: {
16
+ "data:": data,
17
+ "file:": file,
18
+ "http:": https,
19
+ "https:": https,
20
+ "node:": node,
21
+ ...options?.handlers
22
+ },
23
+ req: { ...options?.req },
24
+ schemes: new Set(
25
+ options?.schemes ? [...options.schemes] : ["data", "file", "http", "https", "node"]
26
+ )
27
+ };
28
+ const url = toUrl(id);
29
+ const handle = context.handlers[url.protocol];
30
+ let code;
31
+ if (handle) {
32
+ code = await handle.call(context, url);
33
+ } else {
34
+ context.error = true;
35
+ }
36
+ if (context.error && !context.ignoreErrors) {
37
+ throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(
38
+ url,
39
+ [...context.schemes],
40
+ process.platform === "win32"
41
+ );
42
+ }
43
+ if (code !== null && code !== void 0) code = String(code);
44
+ return code;
45
+ }
46
+ function data(url) {
47
+ const [mime, data2 = ""] = url.pathname.split(",");
48
+ ok(url.protocol === "data:", "expected `data:` URL");
49
+ ok(mime !== void 0, "expected `mime` to be a string");
50
+ return Buffer.from(
51
+ decodeURIComponent(data2),
52
+ mime.endsWith("base64") ? "base64" : "utf8"
53
+ );
54
+ }
55
+ async function file(url) {
56
+ ok(url.protocol === "file:", "expected `file:` URL");
57
+ let code = null;
58
+ if (await isFile(url, this.fs)) code = await this.fs.readFile(url);
59
+ return code;
60
+ }
61
+ async function https(url) {
62
+ ok(/^https?:$/.test(url.protocol), "expected `http:` or `https:` URL");
63
+ return (await fetch(url.href, this.req)).text();
64
+ }
65
+ function node(url) {
66
+ return void ok(url.protocol === "node:", "expected `node:` URL");
67
+ }
68
+ export {
69
+ get_source_default as default
70
+ };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @file Entry Point - Library
3
+ * @module mlly/lib
4
+ *
5
+ * @todo `detectModuleSyntax` (esast integration)
6
+ * @todo `findDynamicImports` (esast integration)
7
+ * @todo `findExports` (esast integration)
8
+ * @todo `findImports` (esast integration)
9
+ * @todo `findRequires` (esast integration)
10
+ * @todo `findSpecifiers` (esast integration)
11
+ * @todo `findStaticImports` (esast integration)
12
+ * @todo `resolveAliases` (esast integration)
13
+ * @todo `resolveModules` (esast integration)
14
+ */
15
+ export { default as canParseUrl } from '#lib/can-parse-url';
16
+ export { default as cwd } from '#lib/cwd';
17
+ export { default as defaultConditions } from '#lib/default-conditions';
18
+ export { default as defaultExtensions } from '#lib/default-extensions';
19
+ export { default as defaultMainFields } from '#lib/default-main-fields';
20
+ export { default as extensionFormatMap } from '#lib/extension-format-map';
21
+ export { default as formats } from '#lib/formats';
22
+ export { default as getSource } from '#lib/get-source';
23
+ export { default as isAbsoluteSpecifier } from '#lib/is-absolute-specifier';
24
+ export { default as isArrayIndex } from '#lib/is-array-index';
25
+ export { default as isBareSpecifier } from '#lib/is-bare-specifier';
26
+ export { default as isDirectory } from '#lib/is-directory';
27
+ export { default as isFile } from '#lib/is-file';
28
+ export { default as isImportsSubpath } from '#lib/is-imports-subpath';
29
+ export { default as isRelativeSpecifier } from '#lib/is-relative-specifier';
30
+ export { default as lookupPackageScope } from '#lib/lookup-package-scope';
31
+ export { default as patternKeyCompare } from '#lib/pattern-key-compare';
32
+ export { default as patternMatch } from '#lib/pattern-match';
33
+ export { default as readPackageJson } from '#lib/read-package-json';
34
+ export { default as resolveAlias } from '#lib/resolve-alias';
35
+ export { default as resolveModule } from '#lib/resolve-module';
36
+ export * from '#lib/resolver';
37
+ export * as resolver from '#lib/resolver';
38
+ export { default as root } from '#lib/root';
39
+ export { default as toRelativeSpecifier } from '#lib/to-relative-specifier';
40
+ export { default as toUrl } from '#lib/to-url';
@@ -0,0 +1,53 @@
1
+ import { default as default2 } from "#lib/can-parse-url";
2
+ import { default as default3 } from "#lib/cwd";
3
+ import { default as default4 } from "#lib/default-conditions";
4
+ import { default as default5 } from "#lib/default-extensions";
5
+ import { default as default6 } from "#lib/default-main-fields";
6
+ import { default as default7 } from "#lib/extension-format-map";
7
+ import { default as default8 } from "#lib/formats";
8
+ import { default as default9 } from "#lib/get-source";
9
+ import { default as default10 } from "#lib/is-absolute-specifier";
10
+ import { default as default11 } from "#lib/is-array-index";
11
+ import { default as default12 } from "#lib/is-bare-specifier";
12
+ import { default as default13 } from "#lib/is-directory";
13
+ import { default as default14 } from "#lib/is-file";
14
+ import { default as default15 } from "#lib/is-imports-subpath";
15
+ import { default as default16 } from "#lib/is-relative-specifier";
16
+ import { default as default17 } from "#lib/lookup-package-scope";
17
+ import { default as default18 } from "#lib/pattern-key-compare";
18
+ import { default as default19 } from "#lib/pattern-match";
19
+ import { default as default20 } from "#lib/read-package-json";
20
+ import { default as default21 } from "#lib/resolve-alias";
21
+ import { default as default22 } from "#lib/resolve-module";
22
+ export * from "#lib/resolver";
23
+ import * as resolver from "#lib/resolver";
24
+ import { default as default23 } from "#lib/root";
25
+ import { default as default24 } from "#lib/to-relative-specifier";
26
+ import { default as default25 } from "#lib/to-url";
27
+ export {
28
+ default2 as canParseUrl,
29
+ default3 as cwd,
30
+ default4 as defaultConditions,
31
+ default5 as defaultExtensions,
32
+ default6 as defaultMainFields,
33
+ default7 as extensionFormatMap,
34
+ default8 as formats,
35
+ default9 as getSource,
36
+ default10 as isAbsoluteSpecifier,
37
+ default11 as isArrayIndex,
38
+ default12 as isBareSpecifier,
39
+ default13 as isDirectory,
40
+ default14 as isFile,
41
+ default15 as isImportsSubpath,
42
+ default16 as isRelativeSpecifier,
43
+ default17 as lookupPackageScope,
44
+ default18 as patternKeyCompare,
45
+ default19 as patternMatch,
46
+ default20 as readPackageJson,
47
+ default21 as resolveAlias,
48
+ default22 as resolveModule,
49
+ resolver,
50
+ default23 as root,
51
+ default24 as toRelativeSpecifier,
52
+ default25 as toUrl
53
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @file isAbsoluteSpecifier
3
+ * @module mlly/lib/isAbsoluteSpecifier
4
+ */
5
+ import type { ModuleId } from '@flex-development/mlly';
6
+ /**
7
+ * Check if `specifier` is an *absolute specifier*.
8
+ *
9
+ * ::: warning
10
+ * Only checks specifier syntax. Does **not** guarantee the specifier references
11
+ * a file that exists.
12
+ * :::
13
+ *
14
+ * @see {@linkcode ModuleId}
15
+ * @see https://nodejs.org/api/esm.html#terminology
16
+ *
17
+ * @param {ModuleId} specifier
18
+ * Specifier to check
19
+ * @return {boolean}
20
+ * `true` if `specifier` is absolute specifier, `false` otherwise
21
+ */
22
+ declare function isAbsoluteSpecifier(specifier: ModuleId): boolean;
23
+ export default isAbsoluteSpecifier;
@@ -0,0 +1,9 @@
1
+ import canParseUrl from "#lib/can-parse-url";
2
+ import pathe from "@flex-development/pathe";
3
+ function isAbsoluteSpecifier(specifier) {
4
+ return typeof specifier === "string" ? specifier.startsWith("file:") ? canParseUrl(specifier) : pathe.isAbsolute(specifier) : specifier.protocol === "file:" && canParseUrl(specifier);
5
+ }
6
+ var is_absolute_specifier_default = isAbsoluteSpecifier;
7
+ export {
8
+ is_absolute_specifier_default as default
9
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @file isArrayIndex
3
+ * @module mlly/lib/isArrayIndex
4
+ */
5
+ import type { Numeric } from '@flex-development/mlly';
6
+ /**
7
+ * Check if `value` is a valid array index.
8
+ *
9
+ * @see {@linkcode Numeric}
10
+ *
11
+ * @param {unknown} value
12
+ * Key to check
13
+ * @return {value is Numeric}
14
+ * `true` if `value` is valid array index, `false` otherwise
15
+ */
16
+ declare function isArrayIndex(value: unknown): value is Numeric;
17
+ export default isArrayIndex;