@flex-development/mlly 1.0.0-alpha.14 → 1.0.0-alpha.16

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 (239) hide show
  1. package/CHANGELOG.md +203 -0
  2. package/README.md +1 -0
  3. package/dist/enums/assert-type.mjs +1 -7
  4. package/dist/enums/format.mjs +1 -10
  5. package/dist/enums/index.mjs +0 -1
  6. package/dist/enums/kind-specifier-syntax.mjs +1 -7
  7. package/dist/enums/kind-specifier.mjs +1 -8
  8. package/dist/enums/kind-statement-syntax.mjs +1 -15
  9. package/dist/enums/kind-statement.mjs +1 -8
  10. package/dist/index.mjs.map +5 -2
  11. package/dist/interfaces/import-dynamic.d.mts +1 -3
  12. package/dist/interfaces/import-static.d.mts +1 -3
  13. package/dist/interfaces/index.mjs +0 -1
  14. package/dist/interfaces/options-find-subpath.d.mts +4 -3
  15. package/dist/interfaces/options-get-format.d.mts +7 -7
  16. package/dist/interfaces/options-get-source.d.mts +5 -4
  17. package/dist/interfaces/options-parse-module-id.d.mts +4 -3
  18. package/dist/interfaces/options-parse-subpath.d.mts +4 -3
  19. package/dist/interfaces/options-resolve-alias.d.mts +5 -5
  20. package/dist/interfaces/options-resolve-module.d.mts +6 -6
  21. package/dist/internal/dequote.d.mts +14 -0
  22. package/dist/internal/dequote.mjs +6 -0
  23. package/dist/internal/format-type-map.d.mts +2 -0
  24. package/dist/internal/format-type-map.mjs +0 -1
  25. package/dist/internal/get-specifier-kind.d.mts +2 -0
  26. package/dist/internal/get-specifier-kind.mjs +3 -7
  27. package/dist/internal/get-subpaths.d.mts +5 -2
  28. package/dist/internal/get-subpaths.mjs +2 -5
  29. package/dist/internal/regex-encoded-sep.d.mts +2 -0
  30. package/dist/internal/regex-encoded-sep.mjs +0 -1
  31. package/dist/internal/regex-internal-specifier.d.mts +2 -0
  32. package/dist/internal/regex-internal-specifier.mjs +0 -1
  33. package/dist/internal/regex-invalid-segment.d.mts +2 -0
  34. package/dist/internal/regex-invalid-segment.mjs +4 -7
  35. package/dist/internal/regex-package-name.d.mts +2 -0
  36. package/dist/internal/regex-package-name.mjs +0 -1
  37. package/dist/internal/regex-package-path.d.mts +2 -0
  38. package/dist/internal/regex-package-path.mjs +0 -1
  39. package/dist/internal/resolver.d.mts +5 -3
  40. package/dist/internal/resolver.mjs +115 -130
  41. package/dist/internal/validate-array-set.d.mts +7 -5
  42. package/dist/internal/validate-array-set.mjs +5 -5
  43. package/dist/internal/validate-boolean.d.mts +4 -2
  44. package/dist/internal/validate-boolean.mjs +3 -3
  45. package/dist/internal/validate-map.d.mts +10 -7
  46. package/dist/internal/validate-map.mjs +5 -5
  47. package/dist/internal/validate-object.d.mts +9 -9
  48. package/dist/internal/validate-object.mjs +3 -3
  49. package/dist/internal/validate-set.d.mts +7 -5
  50. package/dist/internal/validate-set.mjs +5 -5
  51. package/dist/internal/validate-string.d.mts +5 -2
  52. package/dist/internal/validate-string.mjs +3 -3
  53. package/dist/internal/validate-url-string.d.mts +4 -2
  54. package/dist/internal/validate-url-string.mjs +3 -3
  55. package/dist/types/fn-change-ext.d.mts +7 -4
  56. package/dist/types/index.mjs +0 -1
  57. package/dist/utils/compare-subpaths.mjs +5 -10
  58. package/dist/utils/compare-subpaths.mjs.map +6 -3
  59. package/dist/utils/conditions.mjs.map +5 -2
  60. package/dist/utils/detect-syntax.mjs +1 -2
  61. package/dist/utils/detect-syntax.mjs.map +6 -3
  62. package/dist/utils/extension-format-map.mjs.map +5 -2
  63. package/dist/utils/extract-statements.mjs +6 -7
  64. package/dist/utils/extract-statements.mjs.map +6 -3
  65. package/dist/utils/fill-modules.mjs +43 -46
  66. package/dist/utils/fill-modules.mjs.map +9 -4
  67. package/dist/utils/find-dynamic-imports.mjs +23 -26
  68. package/dist/utils/find-dynamic-imports.mjs.map +9 -4
  69. package/dist/utils/find-exports.mjs +15 -20
  70. package/dist/utils/find-exports.mjs.map +9 -4
  71. package/dist/utils/find-requires.mjs +5 -5
  72. package/dist/utils/find-requires.mjs.map +9 -4
  73. package/dist/utils/find-static-imports.mjs +17 -21
  74. package/dist/utils/find-static-imports.mjs.map +9 -4
  75. package/dist/utils/find-subpath.d.mts +3 -3
  76. package/dist/utils/find-subpath.mjs +52 -74
  77. package/dist/utils/find-subpath.mjs.map +10 -4
  78. package/dist/utils/get-format.mjs +18 -33
  79. package/dist/utils/get-format.mjs.map +9 -4
  80. package/dist/utils/get-source.d.mts +3 -2
  81. package/dist/utils/get-source.mjs +10 -19
  82. package/dist/utils/get-source.mjs.map +6 -3
  83. package/dist/utils/has-cjs-syntax.mjs.map +5 -2
  84. package/dist/utils/has-esm-syntax.mjs.map +5 -2
  85. package/dist/utils/index.d.mts +2 -0
  86. package/dist/utils/index.mjs +46 -42
  87. package/dist/utils/index.mjs.map +9 -4
  88. package/dist/utils/is-absolute-specifier.mjs +5 -6
  89. package/dist/utils/is-absolute-specifier.mjs.map +6 -3
  90. package/dist/utils/is-bare-specifier.mjs +2 -4
  91. package/dist/utils/is-bare-specifier.mjs.map +6 -3
  92. package/dist/utils/is-directory.mjs +14 -0
  93. package/dist/utils/is-directory.mjs.map +9 -0
  94. package/dist/utils/is-exports-sugar.d.mts +3 -2
  95. package/dist/utils/is-exports-sugar.mjs +16 -13
  96. package/dist/utils/is-exports-sugar.mjs.map +6 -3
  97. package/dist/utils/is-file.mjs +14 -0
  98. package/dist/utils/is-file.mjs.map +9 -0
  99. package/dist/utils/is-relative-specifier.d.mts +0 -1
  100. package/dist/utils/is-relative-specifier.mjs +2 -4
  101. package/dist/utils/is-relative-specifier.mjs.map +6 -3
  102. package/dist/utils/lookup-package-scope.d.mts +1 -1
  103. package/dist/utils/lookup-package-scope.mjs +4 -8
  104. package/dist/utils/lookup-package-scope.mjs.map +6 -3
  105. package/dist/utils/parse-data-url.mjs +4 -4
  106. package/dist/utils/parse-data-url.mjs.map +6 -3
  107. package/dist/utils/parse-module-id.mjs +22 -24
  108. package/dist/utils/parse-module-id.mjs.map +10 -4
  109. package/dist/utils/parse-subpath.d.mts +3 -2
  110. package/dist/utils/parse-subpath.mjs +40 -55
  111. package/dist/utils/parse-subpath.mjs.map +9 -4
  112. package/dist/utils/pattern-character.mjs.map +5 -2
  113. package/dist/utils/read-package-json.mjs +12 -9
  114. package/dist/utils/read-package-json.mjs.map +6 -3
  115. package/dist/utils/resolve-alias.mjs +28 -34
  116. package/dist/utils/resolve-alias.mjs.map +10 -4
  117. package/dist/utils/resolve-aliases.mjs +15 -17
  118. package/dist/utils/resolve-aliases.mjs.map +6 -3
  119. package/dist/utils/resolve-extensions.mjs.map +5 -2
  120. package/dist/utils/resolve-module.mjs +10 -26
  121. package/dist/utils/resolve-module.mjs.map +6 -3
  122. package/dist/utils/resolve-modules.mjs +12 -15
  123. package/dist/utils/resolve-modules.mjs.map +6 -3
  124. package/dist/utils/to-absolute-specifier.mjs.map +5 -2
  125. package/dist/utils/to-bare-specifier.mjs +18 -34
  126. package/dist/utils/to-bare-specifier.mjs.map +6 -3
  127. package/dist/utils/to-data-url.mjs +1 -5
  128. package/dist/utils/to-data-url.mjs.map +6 -3
  129. package/dist/utils/to-node-url.mjs +1 -4
  130. package/dist/utils/to-node-url.mjs.map +6 -3
  131. package/dist/utils/to-relative-specifier.mjs +2 -16
  132. package/dist/utils/to-relative-specifier.mjs.map +6 -3
  133. package/dist/utils/to-url.mjs +1 -5
  134. package/dist/utils/to-url.mjs.map +6 -3
  135. package/dist/utils/validate-assertions.d.mts +2 -2
  136. package/dist/utils/validate-assertions.mjs +14 -21
  137. package/dist/utils/validate-assertions.mjs.map +9 -4
  138. package/dist/utils/validate-exports.d.mts +3 -2
  139. package/dist/utils/validate-exports.mjs +25 -24
  140. package/dist/utils/validate-exports.mjs.map +6 -3
  141. package/package.json +89 -81
  142. package/src/interfaces/import-dynamic.ts +1 -3
  143. package/src/interfaces/import-static.ts +1 -5
  144. package/src/interfaces/options-find-subpath.ts +4 -3
  145. package/src/interfaces/options-get-format.ts +7 -7
  146. package/src/interfaces/options-get-source.ts +5 -4
  147. package/src/interfaces/options-parse-module-id.ts +4 -3
  148. package/src/interfaces/options-parse-subpath.ts +4 -3
  149. package/src/interfaces/options-resolve-alias.ts +5 -5
  150. package/src/interfaces/options-resolve-module.ts +6 -6
  151. package/src/internal/dequote.ts +18 -0
  152. package/src/internal/format-type-map.ts +2 -0
  153. package/src/internal/get-specifier-kind.ts +7 -4
  154. package/src/internal/get-subpaths.ts +7 -5
  155. package/src/internal/regex-encoded-sep.ts +2 -0
  156. package/src/internal/regex-internal-specifier.ts +2 -0
  157. package/src/internal/regex-invalid-segment.ts +2 -0
  158. package/src/internal/regex-package-name.ts +2 -0
  159. package/src/internal/regex-package-path.ts +2 -0
  160. package/src/internal/resolver.ts +71 -49
  161. package/src/internal/validate-array-set.ts +10 -7
  162. package/src/internal/validate-boolean.ts +6 -3
  163. package/src/internal/validate-map.ts +12 -9
  164. package/src/internal/validate-object.ts +10 -10
  165. package/src/internal/validate-set.ts +9 -9
  166. package/src/internal/validate-string.ts +7 -3
  167. package/src/internal/validate-url-string.ts +6 -3
  168. package/src/types/fn-change-ext.ts +7 -7
  169. package/src/utils/extract-statements.ts +11 -7
  170. package/src/utils/fill-modules.ts +70 -62
  171. package/src/utils/find-dynamic-imports.ts +6 -6
  172. package/src/utils/find-exports.ts +19 -29
  173. package/src/utils/find-requires.ts +6 -6
  174. package/src/utils/find-static-imports.ts +11 -14
  175. package/src/utils/find-subpath.ts +140 -139
  176. package/src/utils/get-format.ts +27 -21
  177. package/src/utils/get-source.ts +5 -5
  178. package/src/utils/index.ts +2 -0
  179. package/src/utils/is-bare-specifier.ts +2 -1
  180. package/src/{internal → utils}/is-directory.ts +1 -1
  181. package/src/utils/is-exports-sugar.ts +16 -9
  182. package/src/{internal → utils}/is-file.ts +1 -1
  183. package/src/utils/is-relative-specifier.ts +5 -6
  184. package/src/utils/lookup-package-scope.ts +2 -2
  185. package/src/utils/parse-data-url.ts +3 -3
  186. package/src/utils/parse-module-id.ts +16 -8
  187. package/src/utils/parse-subpath.ts +32 -19
  188. package/src/utils/read-package-json.ts +13 -6
  189. package/src/utils/resolve-alias.ts +19 -15
  190. package/src/utils/resolve-aliases.ts +25 -25
  191. package/src/utils/resolve-module.ts +4 -5
  192. package/src/utils/resolve-modules.ts +19 -21
  193. package/src/utils/to-bare-specifier.ts +22 -10
  194. package/src/utils/to-relative-specifier.ts +2 -1
  195. package/src/utils/validate-assertions.ts +12 -7
  196. package/src/utils/validate-exports.ts +25 -18
  197. package/dist/enums/assert-type.mjs.map +0 -6
  198. package/dist/enums/format.mjs.map +0 -6
  199. package/dist/enums/index.mjs.map +0 -6
  200. package/dist/enums/kind-specifier-syntax.mjs.map +0 -6
  201. package/dist/enums/kind-specifier.mjs.map +0 -6
  202. package/dist/enums/kind-statement-syntax.mjs.map +0 -6
  203. package/dist/enums/kind-statement.mjs.map +0 -6
  204. package/dist/interfaces/index.mjs.map +0 -6
  205. package/dist/internal/escape-reg-exp.d.mts +0 -16
  206. package/dist/internal/escape-reg-exp.mjs +0 -10
  207. package/dist/internal/escape-reg-exp.mjs.map +0 -6
  208. package/dist/internal/format-type-map.mjs.map +0 -6
  209. package/dist/internal/get-specifier-kind.mjs.map +0 -6
  210. package/dist/internal/get-subpaths.mjs.map +0 -6
  211. package/dist/internal/is-array-index.d.mts +0 -15
  212. package/dist/internal/is-array-index.mjs +0 -9
  213. package/dist/internal/is-array-index.mjs.map +0 -6
  214. package/dist/internal/is-directory.mjs +0 -16
  215. package/dist/internal/is-directory.mjs.map +0 -6
  216. package/dist/internal/is-file.mjs +0 -16
  217. package/dist/internal/is-file.mjs.map +0 -6
  218. package/dist/internal/is-function.d.mts +0 -12
  219. package/dist/internal/is-function.mjs +0 -8
  220. package/dist/internal/is-function.mjs.map +0 -6
  221. package/dist/internal/regex-encoded-sep.mjs.map +0 -6
  222. package/dist/internal/regex-internal-specifier.mjs.map +0 -6
  223. package/dist/internal/regex-invalid-segment.mjs.map +0 -6
  224. package/dist/internal/regex-package-name.mjs.map +0 -6
  225. package/dist/internal/regex-package-path.mjs.map +0 -6
  226. package/dist/internal/resolver.mjs.map +0 -6
  227. package/dist/internal/validate-array-set.mjs.map +0 -6
  228. package/dist/internal/validate-boolean.mjs.map +0 -6
  229. package/dist/internal/validate-map.mjs.map +0 -6
  230. package/dist/internal/validate-object.mjs.map +0 -6
  231. package/dist/internal/validate-set.mjs.map +0 -6
  232. package/dist/internal/validate-string.mjs.map +0 -6
  233. package/dist/internal/validate-url-string.mjs.map +0 -6
  234. package/dist/types/index.mjs.map +0 -6
  235. package/src/internal/escape-reg-exp.ts +0 -24
  236. package/src/internal/is-array-index.ts +0 -28
  237. package/src/internal/is-function.ts +0 -16
  238. /package/dist/{internal → utils}/is-directory.d.mts +0 -0
  239. /package/dist/{internal → utils}/is-file.d.mts +0 -0
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/to-absolute-specifier.ts"],
3
+ "sources": [
4
+ "src/utils/to-absolute-specifier.ts"
5
+ ],
6
+ "sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
4
7
  "mappings": "AAMA,SAAS,qBAAqB;AAC9B,OAAO,WAAW;AAiBlB,MAAM,sBAAsB,CAC1B,WACA,MAAgB,cAAc,IAAI,MACvB,MAAM,WAAW,GAAG,EAAE;AAEnC,IAAO,gCAAQ;",
5
8
  "names": []
6
- }
9
+ }
@@ -1,4 +1,3 @@
1
- import regexp from "../internal/escape-reg-exp.mjs";
2
1
  import validateSet from "../internal/validate-set.mjs";
3
2
  import validateURLString from "../internal/validate-url-string.mjs";
4
3
  import {
@@ -8,7 +7,12 @@ import {
8
7
  } from "@flex-development/errnode";
9
8
  import { isBuiltin } from "@flex-development/is-builtin";
10
9
  import pathe from "@flex-development/pathe";
11
- import { isNIL } from "@flex-development/tutils";
10
+ import {
11
+ DOT,
12
+ cast,
13
+ isNIL,
14
+ regexp
15
+ } from "@flex-development/tutils";
12
16
  import { URL, fileURLToPath, pathToFileURL } from "node:url";
13
17
  import CONDITIONS from "./conditions.mjs";
14
18
  import findSubpath from "./find-subpath.mjs";
@@ -22,60 +26,40 @@ import toAbsoluteSpecifier from "./to-absolute-specifier.mjs";
22
26
  import toNodeURL from "./to-node-url.mjs";
23
27
  import toURL from "./to-url.mjs";
24
28
  const toBareSpecifier = (specifier, parent, conditions = CONDITIONS) => {
25
- validateURLString(specifier, "specifier");
26
- validateURLString(parent, "parent");
27
- validateSet(conditions, "conditions");
28
- if (specifier instanceof URL)
29
- specifier = specifier.href;
30
- if (isBuiltin(specifier))
29
+ if (validateURLString(specifier, "specifier"), validateURLString(parent, "parent"), validateSet(conditions, "conditions"), specifier instanceof URL && (specifier = specifier.href), isBuiltin(specifier))
31
30
  return toNodeURL(specifier);
32
- if (specifier.startsWith("file:"))
33
- specifier = fileURLToPath(specifier);
34
- if (isRelativeSpecifier(specifier)) {
35
- specifier = fileURLToPath(toAbsoluteSpecifier(specifier));
36
- }
31
+ specifier.startsWith("file:") && (specifier = fileURLToPath(specifier)), isRelativeSpecifier(specifier) && (specifier = fileURLToPath(toAbsoluteSpecifier(specifier)));
37
32
  const url = toURL(
38
33
  isAbsoluteSpecifier(specifier) || specifier.startsWith("node_modules") ? specifier : `node_modules/${specifier}`
39
- );
40
- const scope = lookupPackageScope(url, pathToFileURL(".")) ?? lookupPackageScope(specifier, pathToFileURL("."));
41
- if (!scope) {
34
+ ), scope = lookupPackageScope(url, pathToFileURL(DOT)) ?? lookupPackageScope(specifier, pathToFileURL(DOT));
35
+ if (!scope)
42
36
  throw new ERR_OPERATION_FAILED(`Package scope for '${specifier}' not found`);
43
- }
44
37
  const { exports, main, name = "", types } = scope.pkgjson;
45
38
  specifier = url.pathname.includes(name) ? name + url.pathname.replace(new RegExp(`.*?${regexp(name)}`), "") : name + specifier.replace(fileURLToPath(scope.dir.replace(/\/$/, "")), "");
46
39
  const id = parseModuleId(specifier, {
47
- internal: false,
40
+ internal: !1,
48
41
  parent,
49
- pkgname: true
42
+ pkgname: !0
50
43
  });
51
- if (isNIL(exports)) {
52
- return [main, types].some((ep) => ep === id.path || ep === id.path.slice(2)) ? id.pkg : specifier;
53
- }
44
+ if (isNIL(exports))
45
+ return [main, types].some((ep) => ep === id.path || ep === id.path.slice(2)) && (specifier = id.pkg), specifier = specifier.replace(/^@types\//, ""), specifier;
54
46
  try {
55
47
  parseSubpath(specifier, exports, { dir: scope.dir, parent });
56
48
  } catch (e) {
57
- if (e.code === ErrorCode.ERR_PACKAGE_PATH_NOT_EXPORTED) {
58
- const target = specifier.replace(name, ".");
49
+ if (cast(e).code === ErrorCode.ERR_PACKAGE_PATH_NOT_EXPORTED) {
50
+ const target = specifier.replace(name, DOT);
59
51
  let subpath = findSubpath(target, exports, {
60
52
  conditions,
61
53
  dir: scope.dir,
62
54
  parent
63
55
  });
64
- if (subpath === null) {
56
+ if (subpath === null)
65
57
  throw new ERR_PACKAGE_PATH_NOT_EXPORTED(
66
58
  fileURLToPath(scope.dir),
67
59
  id.path,
68
60
  fileURLToPath(parent)
69
61
  );
70
- }
71
- if (subpath.includes(PATTERN_CHARACTER)) {
72
- subpath = subpath.slice(0, subpath.indexOf(PATTERN_CHARACTER)).slice(1);
73
- subpath = "." + target.slice(target.indexOf(subpath));
74
- }
75
- if (pathe.extname(target) === pathe.extname(subpath)) {
76
- subpath = pathe.changeExt(subpath, "");
77
- }
78
- return name + subpath.slice(1);
62
+ return subpath.includes(PATTERN_CHARACTER) && (subpath = subpath.slice(0, subpath.indexOf(PATTERN_CHARACTER)).slice(1), subpath = DOT + target.slice(target.indexOf(subpath))), pathe.extname(target) === pathe.extname(subpath) && (subpath = pathe.changeExt(subpath, "")), name + subpath.slice(1);
79
63
  }
80
64
  throw e;
81
65
  }
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/to-bare-specifier.ts"],
4
- "mappings": "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",
3
+ "sources": [
4
+ "src/utils/to-bare-specifier.ts"
5
+ ],
6
+ "sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
7
+ "mappings": "AAMA,OAAO,iBAAiB;AACxB,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,iBAAiB;AAC1B,OAAO,WAAW;AAClB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,KAAK,eAAe,qBAAqB;AAClD,OAAO,gBAAgB;AACvB,OAAO,iBAAiB;AACxB,OAAO,yBAAyB;AAChC,OAAO,yBAAyB;AAChC,OAAO,wBAAwB;AAC/B,OAAO,mBAAmB;AAC1B,OAAO,kBAAkB;AACzB,OAAO,uBAAuB;AAC9B,OAAO,yBAAyB;AAChC,OAAO,eAAe;AACtB,OAAO,WAAW;AAqClB,MAAM,kBAAkB,CACtB,WACA,QACA,aAA0B,eACf;AASX,MARA,kBAAkB,WAAW,WAAW,GACxC,kBAAkB,QAAQ,QAAQ,GAClC,YAAY,YAAY,YAAY,GAGhC,qBAAqB,QAAK,YAAY,UAAU,OAGhD,UAAU,SAAS;AAAG,WAAO,UAAU,SAAS;AAGpD,EAAI,UAAU,WAAW,OAAO,MAAG,YAAY,cAAc,SAAS,IAGlE,oBAAoB,SAAS,MAC/B,YAAY,cAAc,oBAAoB,SAAS,CAAC;AAQ1D,QAAM,MAAW;AAAA,IACf,oBAAoB,SAAS,KAAK,UAAU,WAAW,cAAc,IACjE,YACA,gBAAgB,SAAS;AAAA,EAC/B,GAOM,QACJ,mBAAmB,KAAK,cAAc,GAAG,CAAC,KAC1C,mBAAmB,WAAW,cAAc,GAAG,CAAC;AAGlD,MAAI,CAAC;AACH,UAAM,IAAI,qBAAqB,sBAAsB,SAAS,aAAa;AAI7E,QAAM,EAAE,SAAS,MAAM,OAAO,IAAI,MAAM,IAAI,MAAM;AAGlD,cAAY,IAAI,SAAS,SAAS,IAAI,IAClC,OAAO,IAAI,SAAS,QAAQ,IAAI,OAAO,MAAM,OAAO,IAAI,CAAC,EAAE,GAAG,EAAE,IAChE,OAAO,UAAU,QAAQ,cAAc,MAAM,IAAI,QAAQ,OAAO,EAAE,CAAC,GAAG,EAAE;AAS5E,QAAM,KAAqB,cAAc,WAAW;AAAA,IAClD,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AAGD,MAAI,MAAM,OAAO;AAEf,WAAI,CAAC,MAAM,KAAK,EAAE,KAAK,QAAM,OAAO,GAAG,QAAQ,OAAO,GAAG,KAAK,MAAM,CAAC,CAAC,MACpE,YAAY,GAAG,MAKjB,YAAY,UAAU,QAAQ,aAAa,EAAE,GAEtC;AAIT,MAAI;AACF,iBAAa,WAAW,SAAS,EAAE,KAAK,MAAM,KAAK,OAAO,CAAC;AAAA,EAC7D,SAAS,GAAY;AAEnB,QAAI,KAAgB,CAAC,EAAE,SAAS,UAAU,+BAA+B;AAMvE,YAAM,SAAiB,UAAU,QAAQ,MAAM,GAAG;AAQlD,UAAI,UAA4B,YAAY,QAAQ,SAAS;AAAA,QAC3D;AAAA,QACA,KAAK,MAAM;AAAA,QACX;AAAA,MACF,CAAC;AAGD,UAAI,YAAY;AACd,cAAM,IAAI;AAAA,UACR,cAAc,MAAM,GAAG;AAAA,UACvB,GAAG;AAAA,UACH,cAAc,MAAM;AAAA,QACtB;AAIF,aAAI,QAAQ,SAAS,iBAAiB,MACpC,UAAU,QAAQ,MAAM,GAAG,QAAQ,QAAQ,iBAAiB,CAAC,EAAE,MAAM,CAAC,GACtE,UAAU,MAAM,OAAO,MAAM,OAAO,QAAQ,OAAO,CAAC,IAKlD,MAAM,QAAQ,MAAM,MAAM,MAAM,QAAQ,OAAO,MACjD,UAAU,MAAM,UAAU,SAAS,EAAE,IAGhC,OAAO,QAAQ,MAAM,CAAC;AAAA,IAC/B;AAEA,UAAM;AAAA,EACR;AAEA,SAAO;AACT;AAEA,IAAO,4BAAQ;",
5
8
  "names": []
6
- }
9
+ }
@@ -1,9 +1,5 @@
1
1
  import validateString from "../internal/validate-string.mjs";
2
- const toDataURL = (code, mime = "text/javascript") => {
3
- validateString(code, "code");
4
- validateString(mime, "mime");
5
- return `data:${mime};base64,${Buffer.from(code).toString("base64")}`;
6
- };
2
+ const toDataURL = (code, mime = "text/javascript") => (validateString(code, "code"), validateString(mime, "mime"), `data:${mime};base64,${Buffer.from(code).toString("base64")}`);
7
3
  var to_data_url_default = toDataURL;
8
4
  export {
9
5
  to_data_url_default as default
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/to-data-url.ts"],
4
- "mappings": "AAKA,OAAO,oBAAoB;AA2B3B,MAAM,YAAY,CAChB,MACA,OAAiB,sBACN;AACX,iBAAe,MAAM,MAAM;AAC3B,iBAAe,MAAM,MAAM;AAC3B,SAAO,QAAQ,eAAe,OAAO,KAAK,IAAI,EAAE,SAAS,QAAQ;AACnE;AAEA,IAAO,sBAAQ;",
3
+ "sources": [
4
+ "src/utils/to-data-url.ts"
5
+ ],
6
+ "sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
7
+ "mappings": "AAKA,OAAO,oBAAoB;AA2B3B,MAAM,YAAY,CAChB,MACA,OAAiB,uBAEjB,eAAe,MAAM,MAAM,GAC3B,eAAe,MAAM,MAAM,GACpB,QAAQ,IAAI,WAAW,OAAO,KAAK,IAAI,EAAE,SAAS,QAAQ,CAAC;AAGpE,IAAO,sBAAQ;",
5
8
  "names": []
6
- }
9
+ }
@@ -1,8 +1,5 @@
1
1
  import validateString from "../internal/validate-string.mjs";
2
- const toNodeURL = (specifier) => {
3
- validateString(specifier, "specifier");
4
- return specifier.startsWith("node:") ? specifier : `node:${specifier}`;
5
- };
2
+ const toNodeURL = (specifier) => (validateString(specifier, "specifier"), specifier.startsWith("node:") ? specifier : `node:${specifier}`);
6
3
  var to_node_url_default = toNodeURL;
7
4
  export {
8
5
  to_node_url_default as default
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/to-node-url.ts"],
4
- "mappings": "AAKA,OAAO,oBAAoB;AAgB3B,MAAM,YAAY,CAAC,cAA8B;AAC/C,iBAAe,WAAW,WAAW;AACrC,SAAO,UAAU,WAAW,OAAO,IAAI,YAAY,QAAQ;AAC7D;AAEA,IAAO,sBAAQ;",
3
+ "sources": [
4
+ "src/utils/to-node-url.ts"
5
+ ],
6
+ "sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
7
+ "mappings": "AAKA,OAAO,oBAAoB;AAgB3B,MAAM,YAAY,CAAC,eACjB,eAAe,WAAW,WAAW,GAC9B,UAAU,WAAW,OAAO,IAAI,YAAY,QAAQ,SAAS;AAGtE,IAAO,sBAAQ;",
5
8
  "names": []
6
- }
9
+ }
@@ -1,22 +1,8 @@
1
1
  import validateURLString from "../internal/validate-url-string.mjs";
2
2
  import pathe from "@flex-development/pathe";
3
+ import { DOT } from "@flex-development/tutils";
3
4
  import { URL, fileURLToPath } from "node:url";
4
- const toRelativeSpecifier = (specifier, parent) => {
5
- validateURLString(specifier, "specifier");
6
- validateURLString(parent, "parent");
7
- if (parent instanceof URL)
8
- parent = parent.href;
9
- if (specifier instanceof URL)
10
- specifier = specifier.href;
11
- if (parent.startsWith("file:"))
12
- parent = fileURLToPath(parent);
13
- if (specifier.startsWith("file:"))
14
- specifier = fileURLToPath(specifier);
15
- specifier = pathe.relative(pathe.resolve(parent), pathe.resolve(specifier)).replace(/^\.\.\/?/, "").replace(/^(\w)/, "./$1");
16
- if (!specifier)
17
- specifier = ".";
18
- return specifier;
19
- };
5
+ const toRelativeSpecifier = (specifier, parent) => (validateURLString(specifier, "specifier"), validateURLString(parent, "parent"), parent instanceof URL && (parent = parent.href), specifier instanceof URL && (specifier = specifier.href), parent.startsWith("file:") && (parent = fileURLToPath(parent)), specifier.startsWith("file:") && (specifier = fileURLToPath(specifier)), specifier = pathe.relative(pathe.resolve(parent), pathe.resolve(specifier)).replace(/^\.\.\/?/, "").replace(/^(\w)/, "./$1"), specifier || (specifier = DOT), specifier);
20
6
  var to_relative_specifier_default = toRelativeSpecifier;
21
7
  export {
22
8
  to_relative_specifier_default as default
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/to-relative-specifier.ts"],
4
- "mappings": "AAKA,OAAO,uBAAuB;AAG9B,OAAO,WAAW;AAClB,SAAS,KAAK,qBAAqB;AAmBnC,MAAM,sBAAsB,CAAC,WAAqB,WAA6B;AAC7E,oBAAkB,WAAW,WAAW;AACxC,oBAAkB,QAAQ,QAAQ;AAGlC,MAAI,kBAAkB;AAAK,aAAS,OAAO;AAC3C,MAAI,qBAAqB;AAAK,gBAAY,UAAU;AAGpD,MAAI,OAAO,WAAW,OAAO;AAAG,aAAS,cAAc,MAAM;AAC7D,MAAI,UAAU,WAAW,OAAO;AAAG,gBAAY,cAAc,SAAS;AAGtE,cAAY,MACT,SAAS,MAAM,QAAQ,MAAM,GAAG,MAAM,QAAQ,SAAS,CAAC,EACxD,QAAQ,YAAY,EAAE,EACtB,QAAQ,SAAS,MAAM;AAI1B,MAAI,CAAC;AAAW,gBAAY;AAE5B,SAAO;AACT;AAEA,IAAO,gCAAQ;",
3
+ "sources": [
4
+ "src/utils/to-relative-specifier.ts"
5
+ ],
6
+ "sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
7
+ "mappings": "AAKA,OAAO,uBAAuB;AAG9B,OAAO,WAAW;AAClB,SAAS,WAAW;AACpB,SAAS,KAAK,qBAAqB;AAmBnC,MAAM,sBAAsB,CAAC,WAAqB,YAChD,kBAAkB,WAAW,WAAW,GACxC,kBAAkB,QAAQ,QAAQ,GAG9B,kBAAkB,QAAK,SAAS,OAAO,OACvC,qBAAqB,QAAK,YAAY,UAAU,OAGhD,OAAO,WAAW,OAAO,MAAG,SAAS,cAAc,MAAM,IACzD,UAAU,WAAW,OAAO,MAAG,YAAY,cAAc,SAAS,IAGtE,YAAY,MACT,SAAS,MAAM,QAAQ,MAAM,GAAG,MAAM,QAAQ,SAAS,CAAC,EACxD,QAAQ,YAAY,EAAE,EACtB,QAAQ,SAAS,MAAM,GAIrB,cAAW,YAAY,MAErB;AAGT,IAAO,gCAAQ;",
5
8
  "names": []
6
- }
9
+ }
@@ -1,10 +1,6 @@
1
1
  import validateURLString from "../internal/validate-url-string.mjs";
2
2
  import { URL, pathToFileURL } from "node:url";
3
- const toURL = (id, base = pathToFileURL("./")) => {
4
- validateURLString(id, "id");
5
- validateURLString(base, "base");
6
- return id instanceof URL ? id : new URL(id, base);
7
- };
3
+ const toURL = (id, base = pathToFileURL("./")) => (validateURLString(id, "id"), validateURLString(base, "base"), id instanceof URL ? id : new URL(id, base));
8
4
  var to_url_default = toURL;
9
5
  export {
10
6
  to_url_default as default
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/to-url.ts"],
4
- "mappings": "AAKA,OAAO,uBAAuB;AAG9B,SAAS,KAAK,qBAAqB;AAenC,MAAM,QAAQ,CAAC,IAAc,OAAiB,cAAc,IAAI,MAAW;AACzE,oBAAkB,IAAI,IAAI;AAC1B,oBAAkB,MAAM,MAAM;AAC9B,SAAO,cAAc,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI;AAClD;AAEA,IAAO,iBAAQ;",
3
+ "sources": [
4
+ "src/utils/to-url.ts"
5
+ ],
6
+ "sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
7
+ "mappings": "AAKA,OAAO,uBAAuB;AAG9B,SAAS,KAAK,qBAAqB;AAenC,MAAM,QAAQ,CAAC,IAAc,OAAiB,cAAc,IAAI,OAC9D,kBAAkB,IAAI,IAAI,GAC1B,kBAAkB,MAAM,MAAM,GACvB,cAAc,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI;AAGlD,IAAO,iBAAQ;",
5
8
  "names": []
6
- }
9
+ }
@@ -2,10 +2,10 @@
2
2
  * @file validateAssertions
3
3
  * @module mlly/utils/validateAssertions
4
4
  */
5
- import type { Format } from '../enums/index.mjs';
5
+ import { type Format } from '../enums/index.mjs';
6
6
  import type { ImportAssertions } from '../interfaces/index.mjs';
7
7
  import type { ModuleId } from '../types/index.mjs';
8
- import type { LiteralUnion } from '@flex-development/tutils';
8
+ import { type LiteralUnion } from '@flex-development/tutils';
9
9
  /**
10
10
  * Test a module's `import` assertions.
11
11
  *
@@ -8,44 +8,37 @@ import {
8
8
  ERR_IMPORT_ASSERTION_TYPE_MISSING,
9
9
  ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED
10
10
  } from "@flex-development/errnode";
11
+ import {
12
+ cast,
13
+ hasOwn,
14
+ includes
15
+ } from "@flex-development/tutils";
11
16
  import { URL } from "node:url";
12
17
  const validateAssertions = (url, format, assertions = {}) => {
13
- validateURLString(url, "url");
14
- validateString(format, "format");
15
- validateObject(assertions, "assertions");
16
- if (url instanceof URL)
17
- url = url.href;
18
- const has_type = Object.hasOwnProperty.call(assertions, "type");
19
- const type = FORMAT_TYPE_MAP.get(format);
20
- let err = false;
18
+ validateURLString(url, "url"), validateString(format, "format"), validateObject(assertions, "assertions"), url instanceof URL && (url = url.href);
19
+ const has_type = hasOwn(assertions, "type"), type = FORMAT_TYPE_MAP.get(cast(format));
20
+ let err = !1;
21
21
  switch (type) {
22
22
  case void 0:
23
23
  break;
24
24
  case AssertType.IMPLICIT:
25
- if (has_type)
26
- err = true;
25
+ has_type && (err = !0);
27
26
  break;
28
27
  case assertions.type:
29
28
  break;
30
29
  default:
31
- err = true;
30
+ err = !0;
32
31
  }
33
32
  if (err) {
34
33
  if (!has_type)
35
34
  throw new ERR_IMPORT_ASSERTION_TYPE_MISSING(url, type);
36
35
  validateString(assertions.type, "assertions.type");
37
36
  const supported = [];
38
- for (const [, type2] of FORMAT_TYPE_MAP) {
39
- if (type2 === AssertType.IMPLICIT)
40
- continue;
41
- supported.push(type2);
42
- }
43
- if (!supported.includes(assertions.type)) {
44
- throw new ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED(assertions.type);
45
- }
46
- throw new ERR_IMPORT_ASSERTION_TYPE_FAILED(url, assertions.type);
37
+ for (const [, type2] of FORMAT_TYPE_MAP)
38
+ type2 !== AssertType.IMPLICIT && supported.push(type2);
39
+ throw includes(supported, assertions.type) ? new ERR_IMPORT_ASSERTION_TYPE_FAILED(url, assertions.type) : new ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED(assertions.type);
47
40
  }
48
- return true;
41
+ return !0;
49
42
  };
50
43
  var validate_assertions_default = validateAssertions;
51
44
  export {
@@ -1,6 +1,11 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/validate-assertions.ts"],
4
- "mappings": "AAMA,SAAS,kBAAkB;AAE3B,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,WAAW;AAepB,MAAM,qBAAqB,CACzB,KACA,QACA,aAA+B,CAAC,MACvB;AACT,oBAAkB,KAAK,KAAK;AAC5B,iBAAe,QAAQ,QAAQ;AAC/B,iBAAe,YAAY,YAAY;AAGvC,MAAI,eAAe;AAAK,UAAM,IAAI;AAOlC,QAAM,WAAoB,OAAO,eAAe,KAAK,YAAY,MAAM;AAOvE,QAAM,OAA+B,gBAAgB,IAAI,MAAgB;AAOzE,MAAI,MAAe;AAGnB,UAAQ,MAAM;AAAA,IACZ,KAAK;AAGH;AAAA,IACF,KAAK,WAAW;AAGd,UAAI;AAAU,cAAM;AACpB;AAAA,IACF,KAAK,WAAW;AAEd;AAAA,IACF;AAEE,YAAM;AAAA,EACV;AAGA,MAAI,KAAK;AAEP,QAAI,CAAC;AAAU,YAAM,IAAI,kCAAkC,KAAK,IAAK;AAGrE,mBAAe,WAAW,MAAM,iBAAiB;AAOjD,UAAM,YAA0B,CAAC;AAGjC,eAAW,CAAC,EAAEA,KAAI,KAAK,iBAAiB;AACtC,UAAIA,UAAS,WAAW;AAAU;AAClC,gBAAU,KAAKA,KAAI;AAAA,IACrB;AAGA,QAAI,CAAC,UAAU,SAAS,WAAW,IAAkB,GAAG;AACtD,YAAM,IAAI,sCAAsC,WAAW,IAAK;AAAA,IAClE;AAGA,UAAM,IAAI,iCAAiC,KAAK,WAAW,IAAK;AAAA,EAClE;AAEA,SAAO;AACT;AAEA,IAAO,8BAAQ;",
5
- "names": ["type"]
6
- }
3
+ "sources": [
4
+ "src/utils/validate-assertions.ts"
5
+ ],
6
+ "sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
7
+ "mappings": "AAKA,SAAS,kBAA+B;AAExC,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AACP,SAAS,WAAW;AAepB,MAAM,qBAAqB,CACzB,KACA,QACA,aAA+B,CAAC,MACvB;AACT,oBAAkB,KAAK,KAAK,GAC5B,eAAe,QAAQ,QAAQ,GAC/B,eAAe,YAAY,YAAY,GAGnC,eAAe,QAAK,MAAM,IAAI;AAOlC,QAAM,WAAoB,OAAO,YAAY,MAAM,GAO7C,OAA6B,gBAAgB,IAAI,KAAK,MAAM,CAAC;AAOnE,MAAI,MAAe;AAGnB,UAAQ,MAAM;AAAA,IACZ,KAAK;AAGH;AAAA,IACF,KAAK,WAAW;AAGd,MAAI,aAAU,MAAM;AACpB;AAAA,IACF,KAAK,WAAW;AAEd;AAAA,IACF;AAEE,YAAM;AAAA,EACV;AAGA,MAAI,KAAK;AAEP,QAAI,CAAC;AAAU,YAAM,IAAI,kCAAkC,KAAK,IAAK;AAGrE,mBAAe,WAAW,MAAM,iBAAiB;AAOjD,UAAM,YAA0B,CAAC;AAGjC,eAAW,CAAC,EAAEA,KAAI,KAAK;AACrB,MAAIA,UAAS,WAAW,YACxB,UAAU,KAAKA,KAAI;AAIrB,UAAK,SAAS,WAAW,WAAW,IAAI,IAKlC,IAAI,iCAAiC,KAAK,WAAW,IAAK,IAJxD,IAAI,sCAAsC,WAAW,IAAK;AAAA,EAKpE;AAEA,SAAO;AACT;AAEA,IAAO,8BAAQ;",
8
+ "names": [
9
+ "type"
10
+ ]
11
+ }
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import type { ModuleId } from '../types/index.mjs';
6
6
  import type { Exports } from '@flex-development/pkg-types';
7
+ import { type Optional } from '@flex-development/tutils';
7
8
  /**
8
9
  * Validates the given package [`exports`][1] configuration and schema.
9
10
  *
@@ -12,7 +13,7 @@ import type { Exports } from '@flex-development/pkg-types';
12
13
  * @see {@linkcode Exports}
13
14
  * @see {@linkcode ModuleId}
14
15
  *
15
- * @param {Exports | undefined} exports - Package `exports`
16
+ * @param {Optional<Exports>} exports - Package `exports`
16
17
  * @param {ModuleId} pkg - URL of relevant `package.json` file
17
18
  * @param {ModuleId} parent - URL of module to resolve from
18
19
  * @return {true} `true` if `exports` configuration and schema are valid
@@ -20,5 +21,5 @@ import type { Exports } from '@flex-development/pkg-types';
20
21
  * string or an instance of {@linkcode URL}, or if `exports` configuration or
21
22
  * schema is invalid
22
23
  */
23
- declare const validateExports: (exports: Exports | undefined, pkg: ModuleId, parent: ModuleId) => true;
24
+ declare const validateExports: (exports: Optional<Exports>, pkg: ModuleId, parent: ModuleId) => true;
24
25
  export default validateExports;
@@ -1,20 +1,24 @@
1
- import isArrayIndex from "../internal/is-array-index.mjs";
2
1
  import validateURLString from "../internal/validate-url-string.mjs";
3
2
  import {
4
3
  ERR_INVALID_PACKAGE_CONFIG
5
4
  } from "@flex-development/errnode";
6
- import { isNIL } from "@flex-development/tutils";
5
+ import {
6
+ DOT,
7
+ at,
8
+ cast,
9
+ isArray,
10
+ isArrayIndex,
11
+ isNIL,
12
+ isObjectCurly,
13
+ isString
14
+ } from "@flex-development/tutils";
7
15
  import { URL, fileURLToPath } from "node:url";
8
16
  const validateExports = (exports, pkg, parent) => {
9
- validateURLString(pkg, "pkg");
10
- validateURLString(parent, "parent");
11
- switch (true) {
12
- case Array.isArray(exports):
13
- for (const item of exports) {
14
- switch (true) {
15
- case Array.isArray(item):
16
- case isNIL(item):
17
- case (typeof item !== "object" && typeof item !== "string"):
17
+ switch (validateURLString(pkg, "pkg"), validateURLString(parent, "parent"), !0) {
18
+ case isArray(exports):
19
+ for (const item of cast(exports))
20
+ switch (!0) {
21
+ case (!isObjectCurly(item) && !isString(item)):
18
22
  throw new ERR_INVALID_PACKAGE_CONFIG(
19
23
  fileURLToPath(pkg),
20
24
  fileURLToPath(parent),
@@ -22,48 +26,45 @@ const validateExports = (exports, pkg, parent) => {
22
26
  );
23
27
  default:
24
28
  validateExports(
25
- item,
29
+ cast(item),
26
30
  pkg,
27
31
  parent
28
32
  );
29
33
  break;
30
34
  }
31
- }
32
35
  break;
33
36
  case isNIL(exports):
34
- case typeof exports === "string":
37
+ case isString(exports):
35
38
  break;
36
- case typeof exports !== "object":
39
+ case !isObjectCurly(exports):
37
40
  throw new ERR_INVALID_PACKAGE_CONFIG(
38
41
  fileURLToPath(pkg),
39
42
  fileURLToPath(parent),
40
43
  '"exports" must be null, undefined, a string, an object of package subpath keys or condition name keys, or an array containing objects of package subpath keys, objects of condition name keys, or strings'
41
44
  );
42
45
  default:
43
- exports = exports;
46
+ exports = cast(exports);
44
47
  const keys = Object.getOwnPropertyNames(exports);
45
48
  for (const [index, key] of keys.entries()) {
46
- if (isArrayIndex(key)) {
49
+ if (isArrayIndex(key))
47
50
  throw new ERR_INVALID_PACKAGE_CONFIG(
48
- fileURLToPath(new URL(".", pkg)),
51
+ fileURLToPath(new URL(DOT, pkg)),
49
52
  fileURLToPath(parent),
50
53
  '"exports" cannot contain numeric property keys'
51
54
  );
52
- }
53
- if (index > 0) {
54
- const prev = keys[index - 1];
55
- if (!key.startsWith(".") && prev.startsWith(".") || key.startsWith(".") && !prev.startsWith(".")) {
55
+ if (index) {
56
+ const prev = at(keys, index - 1);
57
+ if (!key.startsWith(DOT) && prev.startsWith(DOT) || key.startsWith(DOT) && !prev.startsWith(DOT))
56
58
  throw new ERR_INVALID_PACKAGE_CONFIG(
57
59
  fileURLToPath(pkg),
58
60
  fileURLToPath(parent),
59
61
  `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`
60
62
  );
61
- }
62
63
  }
63
64
  }
64
65
  break;
65
66
  }
66
- return true;
67
+ return !0;
67
68
  };
68
69
  var validate_exports_default = validateExports;
69
70
  export {
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/validate-exports.ts"],
4
- "mappings": "AAKA,OAAO,kBAAkB;AACzB,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,OAEK;AAEP,SAAS,aAAa;AACtB,SAAS,KAAK,qBAAqB;AAkBnC,MAAM,kBAAkB,CACtB,SACA,KACA,WACS;AACT,oBAAkB,KAAK,KAAK;AAC5B,oBAAkB,QAAQ,QAAQ;AAElC,UAAQ,MAAM;AAAA,IACZ,KAAK,MAAM,QAAQ,OAAO;AACxB,iBAAW,QAAQ,SAAsB;AACvC,gBAAQ,MAAM;AAAA,UACZ,KAAK,MAAM,QAAQ,IAAI;AAAA,UACvB,KAAK,MAAM,IAAI;AAAA,UACf,MAAK,OAAO,SAAS,YAAY,OAAO,SAAS;AAC/C,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,UACF;AACE;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,YACF;AACA;AAAA,QACJ;AAAA,MACF;AAEA;AAAA,IACF,KAAK,MAAM,OAAO;AAAA,IAClB,KAAK,OAAO,YAAY;AACtB;AAAA,IACF,KAAK,OAAO,YAAY;AACtB,YAAM,IAAI;AAAA,QACR,cAAc,GAAG;AAAA,QACjB,cAAc,MAAM;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AACE,gBAAU;AAOV,YAAM,OAAiB,OAAO,oBAAoB,OAAO;AAGzD,iBAAW,CAAC,OAAO,GAAG,KAAK,KAAK,QAAQ,GAAG;AAEzC,YAAI,aAAa,GAAG,GAAG;AACrB,gBAAM,IAAI;AAAA,YACR,cAAc,IAAI,IAAI,KAAK,GAAG,CAAC;AAAA,YAC/B,cAAc,MAAM;AAAA,YACpB;AAAA,UACF;AAAA,QACF;AAIA,YAAI,QAAQ,GAAG;AAMb,gBAAM,OAAe,KAAK,QAAQ,CAAC;AAGnC,cACG,CAAC,IAAI,WAAW,GAAG,KAAK,KAAK,WAAW,GAAG,KAC3C,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,GAAG,GAC5C;AACA,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA;AAAA,EACJ;AAEA,SAAO;AACT;AAEA,IAAO,2BAAQ;",
3
+ "sources": [
4
+ "src/utils/validate-exports.ts"
5
+ ],
6
+ "sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
7
+ "mappings": "AAKA,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,OAEK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,KAAK,qBAAqB;AAkBnC,MAAM,kBAAkB,CACtB,SACA,KACA,WACS;AAIT,UAHA,kBAAkB,KAAK,KAAK,GAC5B,kBAAkB,QAAQ,QAAQ,GAE1B,IAAM;AAAA,IACZ,KAAK,QAAQ,OAAO;AAClB,iBAAW,QAAQ,KAAgB,OAAO;AACxC,gBAAQ,IAAM;AAAA,UACZ,MAAK,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,IAAI;AACzC,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,UACF;AACE;AAAA,cACE,KAAuC,IAAI;AAAA,cAC3C;AAAA,cACA;AAAA,YACF;AACA;AAAA,QACJ;AAGF;AAAA,IACF,KAAK,MAAM,OAAO;AAAA,IAClB,KAAK,SAAS,OAAO;AACnB;AAAA,IACF,KAAK,CAAC,cAAc,OAAO;AACzB,YAAM,IAAI;AAAA,QACR,cAAc,GAAG;AAAA,QACjB,cAAc,MAAM;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AACE,gBAAU,KAA8B,OAAO;AAO/C,YAAM,OAAiB,OAAO,oBAAoB,OAAO;AAGzD,iBAAW,CAAC,OAAO,GAAG,KAAK,KAAK,QAAQ,GAAG;AAEzC,YAAI,aAAa,GAAG;AAClB,gBAAM,IAAI;AAAA,YACR,cAAc,IAAI,IAAI,KAAK,GAAG,CAAC;AAAA,YAC/B,cAAc,MAAM;AAAA,YACpB;AAAA,UACF;AAKF,YAAI,OAAO;AAMT,gBAAM,OAAe,GAAG,MAAM,QAAQ,CAAC;AAGvC,cACG,CAAC,IAAI,WAAW,GAAG,KAAK,KAAK,WAAW,GAAG,KAC3C,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,GAAG;AAE5C,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,QAEJ;AAAA,MACF;AAEA;AAAA,EACJ;AAEA,SAAO;AACT;AAEA,IAAO,2BAAQ;",
5
8
  "names": []
6
- }
9
+ }