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

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 (95) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/README.md +1 -1
  3. package/dist/interfaces/options-get-format.d.mts +3 -13
  4. package/dist/interfaces/options-get-source.d.mts +3 -13
  5. package/dist/interfaces/options-parse-subpath.d.mts +18 -0
  6. package/dist/interfaces/parsed-subpath.d.mts +5 -1
  7. package/dist/internal/regex-invalid-segment.d.mts +14 -0
  8. package/dist/internal/regex-invalid-segment.mjs +11 -0
  9. package/dist/internal/regex-invalid-segment.mjs.map +6 -0
  10. package/dist/internal/resolver.mjs +6 -9
  11. package/dist/internal/resolver.mjs.map +1 -1
  12. package/dist/internal/validate-array-set.d.mts +22 -0
  13. package/dist/internal/validate-array-set.mjs +11 -0
  14. package/dist/internal/validate-array-set.mjs.map +6 -0
  15. package/dist/internal/validate-map.d.mts +23 -0
  16. package/dist/internal/validate-map.mjs +11 -0
  17. package/dist/internal/validate-map.mjs.map +6 -0
  18. package/dist/internal/validate-set.d.mts +4 -5
  19. package/dist/internal/validate-set.mjs.map +1 -1
  20. package/dist/utils/fill-modules.d.mts +1 -0
  21. package/dist/utils/fill-modules.mjs +7 -1
  22. package/dist/utils/fill-modules.mjs.map +1 -1
  23. package/dist/utils/find-requires.mjs +1 -1
  24. package/dist/utils/find-subpath.d.mts +2 -1
  25. package/dist/utils/find-subpath.mjs +2 -0
  26. package/dist/utils/find-subpath.mjs.map +1 -1
  27. package/dist/utils/get-format.d.mts +8 -1
  28. package/dist/utils/get-format.mjs +22 -11
  29. package/dist/utils/get-format.mjs.map +1 -1
  30. package/dist/utils/get-source.d.mts +7 -0
  31. package/dist/utils/get-source.mjs +13 -6
  32. package/dist/utils/get-source.mjs.map +1 -1
  33. package/dist/utils/is-absolute-specifier.d.mts +1 -0
  34. package/dist/utils/is-absolute-specifier.mjs +2 -0
  35. package/dist/utils/is-absolute-specifier.mjs.map +1 -1
  36. package/dist/utils/is-bare-specifier.d.mts +1 -0
  37. package/dist/utils/is-bare-specifier.mjs +2 -0
  38. package/dist/utils/is-bare-specifier.mjs.map +1 -1
  39. package/dist/utils/is-exports-sugar.mjs +1 -1
  40. package/dist/utils/is-exports-sugar.mjs.map +1 -1
  41. package/dist/utils/is-relative-specifier.mjs.map +1 -1
  42. package/dist/utils/parse-module-id.d.mts +1 -3
  43. package/dist/utils/parse-module-id.mjs +3 -0
  44. package/dist/utils/parse-module-id.mjs.map +1 -1
  45. package/dist/utils/parse-subpath.d.mts +1 -2
  46. package/dist/utils/parse-subpath.mjs +115 -5
  47. package/dist/utils/parse-subpath.mjs.map +1 -1
  48. package/dist/utils/read-package-json.mjs +7 -5
  49. package/dist/utils/read-package-json.mjs.map +1 -1
  50. package/dist/utils/resolve-alias.mjs +3 -2
  51. package/dist/utils/resolve-alias.mjs.map +1 -1
  52. package/dist/utils/resolve-module.mjs +16 -1
  53. package/dist/utils/resolve-module.mjs.map +1 -1
  54. package/dist/utils/to-bare-specifier.mjs +8 -10
  55. package/dist/utils/to-bare-specifier.mjs.map +1 -1
  56. package/dist/utils/to-relative-specifier.d.mts +2 -0
  57. package/dist/utils/to-relative-specifier.mjs +3 -0
  58. package/dist/utils/to-relative-specifier.mjs.map +1 -1
  59. package/dist/utils/to-url.d.mts +2 -3
  60. package/dist/utils/to-url.mjs.map +1 -1
  61. package/dist/utils/validate-assertions.mjs +2 -0
  62. package/dist/utils/validate-assertions.mjs.map +1 -1
  63. package/dist/utils/validate-exports.d.mts +2 -2
  64. package/dist/utils/validate-exports.mjs +2 -2
  65. package/dist/utils/validate-exports.mjs.map +1 -1
  66. package/package.json +34 -41
  67. package/src/interfaces/options-get-format.ts +2 -14
  68. package/src/interfaces/options-get-source.ts +2 -14
  69. package/src/interfaces/options-parse-subpath.ts +20 -0
  70. package/src/interfaces/parsed-subpath.ts +10 -1
  71. package/src/internal/regex-invalid-segment.ts +23 -0
  72. package/src/internal/resolver.ts +7 -22
  73. package/src/internal/validate-array-set.ts +32 -0
  74. package/src/internal/validate-map.ts +33 -0
  75. package/src/internal/validate-set.ts +4 -5
  76. package/src/utils/fill-modules.ts +10 -1
  77. package/src/utils/find-requires.ts +1 -1
  78. package/src/utils/find-subpath.ts +11 -2
  79. package/src/utils/get-format.ts +33 -12
  80. package/src/utils/get-source.ts +21 -6
  81. package/src/utils/is-absolute-specifier.ts +5 -0
  82. package/src/utils/is-bare-specifier.ts +5 -0
  83. package/src/utils/is-exports-sugar.ts +1 -1
  84. package/src/utils/is-relative-specifier.ts +1 -0
  85. package/src/utils/parse-module-id.ts +6 -3
  86. package/src/utils/parse-subpath.ts +154 -9
  87. package/src/utils/read-package-json.ts +8 -3
  88. package/src/utils/resolve-alias.ts +3 -2
  89. package/src/utils/resolve-module.ts +40 -11
  90. package/src/utils/to-bare-specifier.ts +10 -12
  91. package/src/utils/to-relative-specifier.ts +7 -0
  92. package/src/utils/to-url.ts +2 -3
  93. package/src/utils/validate-assertions.ts +2 -0
  94. package/src/utils/validate-exports.ts +5 -5
  95. package/changelog.config.ts +0 -404
@@ -1,24 +1,35 @@
1
1
  import { Format } from "../enums/index.mjs";
2
+ import validateBoolean from "../internal/validate-boolean.mjs";
3
+ import validateMap from "../internal/validate-map.mjs";
4
+ import validateObject from "../internal/validate-object.mjs";
2
5
  import {
3
6
  ERR_UNKNOWN_FILE_EXTENSION
4
7
  } from "@flex-development/errnode";
5
8
  import { isBuiltin } from "@flex-development/is-builtin";
6
9
  import pathe from "@flex-development/pathe";
10
+ import {
11
+ isUndefined
12
+ } from "@flex-development/tutils";
7
13
  import EXTENSION_FORMAT_MAP from "./extension-format-map.mjs";
8
14
  import lookupPackageScope from "./lookup-package-scope.mjs";
9
15
  import parseDataURL from "./parse-data-url.mjs";
10
16
  import toURL from "./to-url.mjs";
11
17
  const getFormat = async (id, options = {}) => {
12
18
  const {
13
- base,
14
- experimental_json_modules = true,
15
- experimental_network_imports = false,
16
- experimental_wasm_modules = false,
19
+ experimental_json_modules: json_modules = true,
20
+ experimental_network_imports: network_imports = false,
21
+ experimental_wasm_modules: wasm_modules = false,
17
22
  extension_format_map = EXTENSION_FORMAT_MAP,
18
23
  ignore_errors = false,
19
- req
24
+ req = {}
20
25
  } = options;
21
- const url = toURL(id, base);
26
+ validateBoolean(json_modules, "options.experimental_json_modules");
27
+ validateBoolean(network_imports, "options.experimental_network_imports");
28
+ validateBoolean(wasm_modules, "options.experimental_wasm_modules");
29
+ validateBoolean(ignore_errors, "options.ignore_errors");
30
+ validateMap(extension_format_map, "options.extension_format_map");
31
+ !isUndefined(req) && validateObject(req, "options.req");
32
+ const url = toURL(id);
22
33
  const mimeToFormat = (value, content_type = false) => {
23
34
  let format2 = null;
24
35
  if (!value)
@@ -35,10 +46,10 @@ const getFormat = async (id, options = {}) => {
35
46
  format2 = Format.MODULE;
36
47
  break;
37
48
  case "application/json":
38
- format2 = experimental_json_modules ? Format.JSON : null;
49
+ format2 = json_modules ? Format.JSON : null;
39
50
  break;
40
51
  case "application/wasm":
41
- format2 = experimental_wasm_modules ? Format.WASM : null;
52
+ format2 = wasm_modules ? Format.WASM : null;
42
53
  break;
43
54
  default:
44
55
  break;
@@ -63,8 +74,8 @@ const getFormat = async (id, options = {}) => {
63
74
  case extension_format_map.has(ext):
64
75
  format = extension_format_map.get(ext);
65
76
  switch (true) {
66
- case (format === Format.JSON && !experimental_json_modules):
67
- case (format === Format.WASM && !experimental_wasm_modules):
77
+ case (format === Format.JSON && !json_modules):
78
+ case (format === Format.WASM && !wasm_modules):
68
79
  format = ignore_errors ? void 0 : null;
69
80
  break;
70
81
  default:
@@ -87,7 +98,7 @@ const getFormat = async (id, options = {}) => {
87
98
  break;
88
99
  case "http:":
89
100
  case "https:":
90
- if (experimental_network_imports) {
101
+ if (network_imports) {
91
102
  const { default: fetch } = await import("node-fetch");
92
103
  const { headers } = await fetch(url.href, req);
93
104
  format = mimeToFormat(headers.get("content-type"), true);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/get-format.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["format"]
6
6
  }
@@ -7,6 +7,13 @@ import type { ModuleId } from '../types/index.mjs';
7
7
  /**
8
8
  * Retrieves source code for the given module `id`.
9
9
  *
10
+ * ::: tip
11
+ * The given module `id` should be absolute (i.e. a [`file:` URL][1] or absolute
12
+ * specifier).
13
+ * :::
14
+ *
15
+ * [1]: https://nodejs.org/api/esm.html#file-urls
16
+ *
10
17
  * @see {@linkcode GetSourceOptions}
11
18
  * @see {@linkcode ModuleId}
12
19
  * @see https://nodejs.org/docs/latest-v19.x/api/esm.html#loadurl-context-nextload
@@ -1,7 +1,11 @@
1
1
  import { Format } from "../enums/index.mjs";
2
+ import validateBoolean from "../internal/validate-boolean.mjs";
3
+ import validateObject from "../internal/validate-object.mjs";
4
+ import validateString from "../internal/validate-string.mjs";
2
5
  import {
3
6
  ERR_UNSUPPORTED_ESM_URL_SCHEME
4
7
  } from "@flex-development/errnode";
8
+ import { isUndefined } from "@flex-development/tutils";
5
9
  import fs from "node:fs/promises";
6
10
  import os from "node:os";
7
11
  import util from "node:util";
@@ -9,15 +13,18 @@ import parseDataURL from "./parse-data-url.mjs";
9
13
  import toURL from "./to-url.mjs";
10
14
  const getSource = async (id, options = {}) => {
11
15
  const {
12
- base,
13
- experimental_network_imports = false,
16
+ experimental_network_imports: network_imports = false,
14
17
  format,
15
18
  ignore_errors = false,
16
- req
19
+ req = {}
17
20
  } = options;
21
+ validateBoolean(network_imports, "options.experimental_network_imports");
22
+ !isUndefined(format) && validateString(format, "options.format");
23
+ validateBoolean(ignore_errors, "options.ignore_errors");
24
+ !isUndefined(req) && validateObject(req, "options.req");
18
25
  if (format === Format.BUILTIN)
19
26
  return void 0;
20
- const url = toURL(id, base);
27
+ const url = toURL(id);
21
28
  let err = false;
22
29
  let source = "";
23
30
  switch (url.protocol) {
@@ -31,7 +38,7 @@ const getSource = async (id, options = {}) => {
31
38
  break;
32
39
  case "http:":
33
40
  case "https:":
34
- if (experimental_network_imports) {
41
+ if (network_imports) {
35
42
  const { default: fetch } = await import("node-fetch");
36
43
  source = await (await fetch(url.href, req)).text();
37
44
  } else {
@@ -46,7 +53,7 @@ const getSource = async (id, options = {}) => {
46
53
  }
47
54
  if (!ignore_errors && err) {
48
55
  const schemes = ["data", "file"];
49
- if (experimental_network_imports)
56
+ if (network_imports)
50
57
  schemes.push("http", "https");
51
58
  throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(
52
59
  url,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/get-source.ts"],
4
- "mappings": "AAKA,SAAS,cAAc;AAGvB;AAAA,EACE;AAAA,OAEK;AACP,OAAO,QAAQ;AACf,OAAO,QAAQ;AAEf,OAAO,UAAU;AACjB,OAAO,kBAAkB;AACzB,OAAO,WAAW;AAgBlB,MAAM,YAAY,OAChB,IACA,UAA4B,CAAC,MACgB;AAC7C,QAAM;AAAA,IACJ;AAAA,IACA,+BAA+B;AAAA,IAC/B;AAAA,IACA,gBAAgB;AAAA,IAChB;AAAA,EACF,IAAI;AAGJ,MAAI,WAAW,OAAO;AAAS,WAAO;AAOtC,QAAM,MAAW,MAAM,IAAI,IAAI;AAS/B,MAAI,MAAe;AAOnB,MAAI,SAA0C;AAG9C,UAAQ,IAAI,UAAU;AAAA,IACpB,KAAK;AACH,YAAM,EAAE,QAAQ,KAAK,IAAI,aAAa,GAAG;AAQzC,YAAM,WAA2B,SAAS,WAAW;AAErD,eAAS,OAAO,KAAK,mBAAmB,IAAI,GAAG,QAAQ,EAAE,SAAS;AAClE;AAAA,IACF,KAAK;AACH,eAAS,MAAM,GAAG,SAAS,KAAK,MAAM;AACtC;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,UAAI,8BAA8B;AAChC,cAAM,EAAE,SAAS,MAAM,IAAI,MAAM,OAAO,YAAY;AACpD,iBAAS,OAAO,MAAM,MAAM,IAAI,MAAM,GAAG,GAAG,KAAK;AAAA,MACnD,OAAO;AACL,cAAM;AAAA,MACR;AAEA;AAAA,IACF,KAAK;AACH,eAAS;AACT;AAAA,IACF;AACE,YAAM;AAAA,EACV;AAGA,MAAI,CAAC,iBAAiB,KAAK;AAMzB,UAAM,UAAoB,CAAC,QAAQ,MAAM;AAGzC,QAAI;AAA8B,cAAQ,KAAK,QAAQ,OAAO;AAE9D,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,MACA,GAAG,SAAS,MAAM;AAAA,IACpB;AAAA,EACF;AAEA,SAAO,WAAW,OAAO,OAAO,IAAI,KAAK,YAAY,EAAE,OAAO,MAAM,IAAI;AAC1E;AAEA,IAAO,qBAAQ;",
4
+ "mappings": "AAKA,SAAS,cAAc;AAEvB,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAE3B;AAAA,EACE;AAAA,OAEK;AACP,SAAS,mBAAmB;AAC5B,OAAO,QAAQ;AACf,OAAO,QAAQ;AAEf,OAAO,UAAU;AACjB,OAAO,kBAAkB;AACzB,OAAO,WAAW;AAuBlB,MAAM,YAAY,OAChB,IACA,UAA4B,CAAC,MACgB;AAC7C,QAAM;AAAA,IACJ,8BAA8B,kBAAkB;AAAA,IAChD;AAAA,IACA,gBAAgB;AAAA,IAChB,MAAM,CAAC;AAAA,EACT,IAAI;AAEJ,kBAAgB,iBAAiB,sCAAsC;AACvE,GAAC,YAAY,MAAM,KAAK,eAAe,QAAQ,gBAAgB;AAC/D,kBAAgB,eAAe,uBAAuB;AACtD,GAAC,YAAY,GAAG,KAAK,eAAe,KAAK,aAAa;AAGtD,MAAI,WAAW,OAAO;AAAS,WAAO;AAOtC,QAAM,MAAW,MAAM,EAAE;AASzB,MAAI,MAAe;AAOnB,MAAI,SAA0C;AAG9C,UAAQ,IAAI,UAAU;AAAA,IACpB,KAAK;AACH,YAAM,EAAE,QAAQ,KAAK,IAAI,aAAa,GAAG;AAQzC,YAAM,WAA2B,SAAS,WAAW;AAErD,eAAS,OAAO,KAAK,mBAAmB,IAAI,GAAG,QAAQ,EAAE,SAAS;AAClE;AAAA,IACF,KAAK;AACH,eAAS,MAAM,GAAG,SAAS,KAAK,MAAM;AACtC;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,UAAI,iBAAiB;AACnB,cAAM,EAAE,SAAS,MAAM,IAAI,MAAM,OAAO,YAAY;AACpD,iBAAS,OAAO,MAAM,MAAM,IAAI,MAAM,GAAG,GAAG,KAAK;AAAA,MACnD,OAAO;AACL,cAAM;AAAA,MACR;AAEA;AAAA,IACF,KAAK;AACH,eAAS;AACT;AAAA,IACF;AACE,YAAM;AAAA,EACV;AAGA,MAAI,CAAC,iBAAiB,KAAK;AAMzB,UAAM,UAAoB,CAAC,QAAQ,MAAM;AAGzC,QAAI;AAAiB,cAAQ,KAAK,QAAQ,OAAO;AAEjD,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,MACA,GAAG,SAAS,MAAM;AAAA,IACpB;AAAA,EACF;AAEA,SAAO,WAAW,OAAO,OAAO,IAAI,KAAK,YAAY,EAAE,OAAO,MAAM,IAAI;AAC1E;AAEA,IAAO,qBAAQ;",
5
5
  "names": []
6
6
  }
@@ -14,6 +14,7 @@
14
14
  *
15
15
  * @param {string} specifier - Specifier to evaluate
16
16
  * @return {boolean} `true` if `specifier` is absolute specifier
17
+ * @throws {NodeError<TypeError>} If `specifier` is not a string
17
18
  */
18
19
  declare const isAbsoluteSpecifier: (specifier: string) => boolean;
19
20
  export default isAbsoluteSpecifier;
@@ -1,6 +1,8 @@
1
+ import validateString from "../internal/validate-string.mjs";
1
2
  import pathe from "@flex-development/pathe";
2
3
  import { URL } from "node:url";
3
4
  const isAbsoluteSpecifier = (specifier) => {
5
+ validateString(specifier, "specifier");
4
6
  let absolute = false;
5
7
  switch (true) {
6
8
  case pathe.isAbsolute(specifier):
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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;",
4
+ "mappings": "AAKA,OAAO,oBAAoB;AAE3B,OAAO,WAAW;AAClB,SAAS,WAAW;AAgBpB,MAAM,sBAAsB,CAAC,cAA+B;AAC1D,iBAAe,WAAW,WAAW;AAOrC,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
5
  "names": []
6
6
  }
@@ -14,6 +14,7 @@
14
14
  *
15
15
  * @param {string} specifier - Specifier to evaluate
16
16
  * @return {boolean} `true` if `specifier` is bare specifier
17
+ * @throws {NodeError<TypeError>} If `specifier` is not a string
17
18
  */
18
19
  declare const isBareSpecifier: (specifier: string) => boolean;
19
20
  export default isBareSpecifier;
@@ -1,6 +1,8 @@
1
+ import validateString from "../internal/validate-string.mjs";
1
2
  import isAbsoluteSpecifier from "./is-absolute-specifier.mjs";
2
3
  import isRelativeSpecifier from "./is-relative-specifier.mjs";
3
4
  const isBareSpecifier = (specifier) => {
5
+ validateString(specifier, "specifier");
4
6
  return specifier.trim().length > 0 && !isAbsoluteSpecifier(specifier) && !isRelativeSpecifier(specifier);
5
7
  };
6
8
  var is_bare_specifier_default = isBareSpecifier;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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;",
4
+ "mappings": "AAKA,OAAO,oBAAoB;AAE3B,OAAO,yBAAyB;AAChC,OAAO,yBAAyB;AAgBhC,MAAM,kBAAkB,CAAC,cAA+B;AACtD,iBAAe,WAAW,WAAW;AAErC,SACE,UAAU,KAAK,EAAE,SAAS,KAC1B,CAAC,oBAAoB,SAAS,KAC9B,CAAC,oBAAoB,SAAS;AAElC;AAEA,IAAO,4BAAQ;",
5
5
  "names": []
6
6
  }
@@ -15,7 +15,7 @@ const isExportsSugar = (exports, pkg, parent) => {
15
15
  default:
16
16
  exports = exports;
17
17
  validateExports(exports, pkg, parent);
18
- sugar = !((_a = Object.getOwnPropertyNames(exports)[0]) == null ? void 0 : _a.startsWith("."));
18
+ sugar = !(((_a = Object.getOwnPropertyNames(exports)[0]) == null ? void 0 : _a.startsWith(".")) ?? true);
19
19
  }
20
20
  return sugar;
21
21
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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;",
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,IAAE,YAAO,oBAAoB,OAAO,EAAE,CAAC,MAArC,mBAAwC,WAAW,SAAQ;AAAA,EACzE;AAEA,SAAO;AACT;AAEA,IAAO,2BAAQ;",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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;",
4
+ "mappings": "AAKA,OAAO,oBAAoB;AAE3B,OAAO,WAAW;AAgBlB,MAAM,sBAAsB,CAAC,cAA+B;AAC1D,iBAAe,WAAW,WAAW;AAErC,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
5
  "names": []
6
6
  }
@@ -14,9 +14,7 @@ import type { ModuleId } from '../types/index.mjs';
14
14
  * @param {ModuleId} id - Module id to parse
15
15
  * @param {ParseModuleIdOptions?} [options={}] - Parsing options
16
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`
17
+ * @throws {NodeError<TypeError>}
20
18
  */
21
19
  declare const parseModuleId: (id: ModuleId, options?: ParseModuleIdOptions) => ParsedModuleId;
22
20
  export default parseModuleId;
@@ -1,6 +1,7 @@
1
1
  import ENCODED_SEP_REGEX from "../internal/regex-encoded-sep.mjs";
2
2
  import INTERNAL_SPECIFIER_REGEX from "../internal/regex-internal-specifier.mjs";
3
3
  import PACKAGE_PATH_REGEX from "../internal/regex-package-path.mjs";
4
+ import validateBoolean from "../internal/validate-boolean.mjs";
4
5
  import validateURLString from "../internal/validate-url-string.mjs";
5
6
  import {
6
7
  ERR_INVALID_MODULE_SPECIFIER
@@ -17,6 +18,8 @@ const parseModuleId = (id, options = {}) => {
17
18
  pkgname = false
18
19
  } = options;
19
20
  validateURLString(id, "id");
21
+ validateBoolean(internal, "options.internal");
22
+ validateBoolean(pkgname, "options.pkgname");
20
23
  id = id instanceof URL ? id.href : id.trim();
21
24
  let error;
22
25
  let parsed = {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/parse-module-id.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAMA,OAAO,uBAAuB;AAC9B,OAAO,8BAA8B;AACrC,OAAO,wBAAwB;AAC/B,OAAO,qBAAqB;AAC5B,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,OAEK;AACP,SAAS,iBAAiB;AAC1B,OAAO,WAAW;AAClB,SAAS,KAAK,qBAAqB;AACnC,OAAO,qBAAqB;AAC5B,OAAO,yBAAyB;AAChC,OAAO,eAAe;AActB,MAAM,gBAAgB,CACpB,IACA,UAAgC,CAAC,MACd;AACnB,QAAM;AAAA,IACJ,WAAW,cAAc,MAAM,QAAQ,GAAG,WAAW,GAAG;AAAA,IACxD,UAAU;AAAA,EACZ,IAAI;AAGJ,oBAAkB,IAAI,IAAI;AAG1B,kBAAgB,UAAU,kBAAkB;AAC5C,kBAAgB,SAAS,iBAAiB;AAG1C,OAAK,cAAc,MAAM,GAAG,OAAO,GAAG,KAAK;AAS3C,MAAI;AAOJ,MAAI,SAAyB;AAAA,IAC3B,UAAU;AAAA,IACV,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB;AAGA,UAAQ,MAAM;AAAA,IACZ,KAAK,kBAAkB,KAAK,EAAE;AAC5B,cAAQ,6BAA6B,MAAM;AAC3C;AAAA,IACF,KAAK,UAAU,EAAE;AACf,YAAM,EAAE,MAAM,UAAU,SAAS,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;AAE1D,eAAS;AAAA,QACP,UAAU;AAAA,QACV,MAAM,SAAS,QAAQ,iBAAiB,EAAE;AAAA,QAC1C,KAAK,KAAK,QAAQ,SAAS,EAAE;AAAA,QAC7B,UAAU,GAAG,WAAW,OAAO,IAAI,WAAW;AAAA,QAC9C,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,QACT,gBAAgB;AAAA,MAClB;AAEA;AAAA,IACF,KAAK,yBAAyB,KAAK,EAAE;AACnC,YAAM,CAAC,EAAE,OAAO,EAAE,IAAI,yBAAyB,KAAK,EAAE;AAEtD,eAAS;AAAA,QACP,UAAU;AAAA,QACV,MAAM;AAAA,QACN,KAAK;AAAA,QACL,UAAU;AAAA,QACV,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,QACT,gBAAgB;AAAA,MAClB;AAEA;AAAA,IACF,KAAK,mBAAmB,KAAK,EAAE;AAC7B,YAAM;AAAA,QACJ;AAAA,QACA,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,IAAI,mBAAmB,KAAK,EAAE;AAE9B,eAAS;AAAA,QACP,UAAU;AAAA,QACV,MAAM,MAAM;AAAA,QACZ;AAAA,QACA,UAAU;AAAA,QACV,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA;AAAA,IACF,KAAK,cAAc,KAAK,EAAE;AACxB,UAAI;AACF,cAAM,EAAE,MAAM,UAAAA,WAAU,UAAAC,UAAS,IAAI,IAAI,IAAI,EAAE;AAE/C,iBAAS;AAAA,UACP,UAAU;AAAA,UACV,MAAM,OAAOA;AAAA,UACb,KAAK;AAAA,UACL,UAAAD;AAAA,UACA,KAAK;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,UACT,gBAAgB;AAAA,QAClB;AAAA,MACF,QAAE;AACA,gBAAQ;AAAA,MACV;AAEA;AAAA,IACF,KAAK,gBAAgB,EAAY;AAAA,IACjC,KAAK,oBAAoB,EAAY;AAAA,IACrC,KAAK,MAAM,WAAW,EAAE;AACtB;AAAA,IACF;AACE,cAAQ;AACR;AAAA,EACJ;AAGA,UAAQ,kBAAkB,KAAK,EAAE,IAC7B,QACA,YAAY,CAAC,yBAAyB,KAAK,EAAE,IAC7C,mDACA,WAAW,CAAC,mBAAmB,KAAK,EAAE,IACtC,6CACA;AAGJ,MAAI,UAAU,QAAW;AACvB,QAAI,EAAE,OAAO,IAAI;AAEjB,QAAI,WAAW,QAAW;AACxB,wBAAkB,QAAQ,gBAAgB;AAC1C,eAAS,cAAc,MAAM;AAAA,IAC/B;AAEA,UAAM,IAAI,6BAA6B,IAAI,OAAO,MAAM;AAAA,EAC1D;AAEA,SAAO;AACT;AAEA,IAAO,0BAAQ;",
5
5
  "names": ["protocol", "pathname"]
6
6
  }
@@ -28,8 +28,7 @@ import type { Exports, Imports } from '@flex-development/pkg-types';
28
28
  * @param {Exports | Imports | undefined} context - Package context
29
29
  * @param {ParseSubpathOptions} options - Parsing options
30
30
  * @return {ParsedSubpath} Object representing package subpath
31
- * @throws {NodeError<Error | TypeError>} If `specifier` is not a string or the
32
- * subpath defined in `specifier` is not defined in `context`
31
+ * @throws {NodeError<Error | TypeError>}
33
32
  */
34
33
  declare const parseSubpath: (specifier: string, context: Exports | Imports | undefined, options: ParseSubpathOptions) => ParsedSubpath;
35
34
  export default parseSubpath;
@@ -1,20 +1,40 @@
1
1
  import getSubpaths from "../internal/get-subpaths.mjs";
2
+ import isArrayIndex from "../internal/is-array-index.mjs";
3
+ import invalidSegmentRegex from "../internal/regex-invalid-segment.mjs";
4
+ import PACKAGE_NAME_REGEX from "../internal/regex-package-name.mjs";
5
+ import validateArraySet from "../internal/validate-array-set.mjs";
6
+ import validateBoolean from "../internal/validate-boolean.mjs";
2
7
  import validateString from "../internal/validate-string.mjs";
3
8
  import validateURLString from "../internal/validate-url-string.mjs";
4
9
  import {
10
+ ERR_INVALID_PACKAGE_CONFIG,
11
+ ERR_INVALID_PACKAGE_TARGET,
5
12
  ERR_PACKAGE_IMPORT_NOT_DEFINED,
6
- ERR_PACKAGE_PATH_NOT_EXPORTED
13
+ ERR_PACKAGE_PATH_NOT_EXPORTED,
14
+ ErrorCode
7
15
  } from "@flex-development/errnode";
8
16
  import pathe from "@flex-development/pathe";
9
- import { CompareResult } from "@flex-development/tutils";
17
+ import { CompareResult, isNIL } from "@flex-development/tutils";
10
18
  import { URL, fileURLToPath, pathToFileURL } from "node:url";
11
19
  import compareSubpaths from "./compare-subpaths.mjs";
20
+ import CONDITIONS from "./conditions.mjs";
21
+ import isExportsSugar from "./is-exports-sugar.mjs";
12
22
  import parseModuleId from "./parse-module-id.mjs";
13
23
  import PATTERN_CHARACTER from "./pattern-character.mjs";
14
24
  const parseSubpath = (specifier, context, options) => {
15
- const { dir, internal = specifier.startsWith("#"), parent } = options;
25
+ const {
26
+ condition = "default",
27
+ conditions = CONDITIONS,
28
+ dir,
29
+ internal = specifier.startsWith("#"),
30
+ parent
31
+ } = options;
16
32
  validateString(specifier, "specifier");
33
+ validateString(condition, "options.condition");
34
+ validateArraySet(conditions, "options.conditions");
17
35
  validateURLString(dir, "options.dir");
36
+ validateBoolean(internal, "options.internal");
37
+ validateURLString(parent, "options.parent");
18
38
  const id = parseModuleId(specifier, {
19
39
  internal,
20
40
  parent,
@@ -41,11 +61,101 @@ const parseSubpath = (specifier, context, options) => {
41
61
  }
42
62
  if (key === null) {
43
63
  let { parent: parent2 } = options;
44
- validateURLString(parent2, "options.parent");
45
64
  parent2 = fileURLToPath(parent2);
46
65
  throw internal ? new ERR_PACKAGE_IMPORT_NOT_DEFINED(id.path, parent2, pkgdir) : new ERR_PACKAGE_PATH_NOT_EXPORTED(pkgdir, id.path, parent2);
47
66
  }
48
- return { base, internal, key, raw: id.path, specifier: id.raw };
67
+ const findPackageTarget = (data) => {
68
+ let target = null;
69
+ switch (true) {
70
+ case isNIL(data):
71
+ target = null;
72
+ break;
73
+ case Array.isArray(data):
74
+ let error;
75
+ for (const item of data) {
76
+ try {
77
+ target = findPackageTarget(item);
78
+ } catch (e) {
79
+ error = e;
80
+ if (error.code !== ErrorCode.ERR_INVALID_PACKAGE_TARGET)
81
+ throw error;
82
+ continue;
83
+ }
84
+ if (target) {
85
+ error = void 0;
86
+ break;
87
+ }
88
+ }
89
+ if (error)
90
+ throw error;
91
+ break;
92
+ case typeof data === "object":
93
+ data = data;
94
+ for (const property of Object.getOwnPropertyNames(data)) {
95
+ if (isArrayIndex(property)) {
96
+ throw new ERR_INVALID_PACKAGE_CONFIG(
97
+ fileURLToPath(pkg),
98
+ fileURLToPath(parent),
99
+ '"exports" cannot contain numeric property keys'
100
+ );
101
+ }
102
+ if (property === condition || new Set(conditions).has(property)) {
103
+ target = findPackageTarget(data[property]);
104
+ if (target)
105
+ break;
106
+ }
107
+ }
108
+ break;
109
+ case typeof data === "string":
110
+ target = data;
111
+ switch (true) {
112
+ case (internal && PACKAGE_NAME_REGEX.test(target)):
113
+ break;
114
+ case target.startsWith("." + pathe.sep):
115
+ if (invalidSegmentRegex().test(target.slice(2))) {
116
+ if (invalidSegmentRegex("deprecated").test(target.slice(2))) {
117
+ throw new ERR_INVALID_PACKAGE_TARGET(
118
+ fileURLToPath(dir),
119
+ key,
120
+ target,
121
+ internal,
122
+ fileURLToPath(parent)
123
+ );
124
+ }
125
+ }
126
+ break;
127
+ default:
128
+ throw new ERR_INVALID_PACKAGE_TARGET(
129
+ fileURLToPath(dir),
130
+ key,
131
+ target,
132
+ internal,
133
+ fileURLToPath(parent)
134
+ );
135
+ }
136
+ break;
137
+ default:
138
+ throw new ERR_INVALID_PACKAGE_TARGET(
139
+ fileURLToPath(dir),
140
+ key,
141
+ data,
142
+ internal,
143
+ fileURLToPath(parent)
144
+ );
145
+ }
146
+ return target;
147
+ };
148
+ if (!internal && isExportsSugar(context, pkg, parent)) {
149
+ context = { ".": context };
150
+ }
151
+ return {
152
+ base,
153
+ internal,
154
+ key,
155
+ raw: id.path,
156
+ specifier: id.raw,
157
+ target: findPackageTarget(context[key])
158
+ };
49
159
  };
50
160
  var parse_subpath_default = parseSubpath;
51
161
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/parse-subpath.ts"],
4
- "mappings": "AAUA,OAAO,iBAAiB;AACxB,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,OAAO,WAAW;AAElB,SAAS,qBAAoC;AAC7C,SAAS,KAAK,eAAe,qBAAqB;AAClD,OAAO,qBAAqB;AAC5B,OAAO,mBAAmB;AAC1B,OAAO,uBAAuB;AA6B9B,MAAM,eAAe,CACnB,WACA,SACA,YACkB;AAClB,QAAM,EAAE,KAAK,WAAW,UAAU,WAAW,GAAG,GAAG,OAAO,IAAI;AAG9D,iBAAe,WAAW,WAAW;AAGrC,oBAAkB,KAAK,aAAa;AAYpC,QAAM,KAAqB,cAAc,WAAW;AAAA,IAClD;AAAA,IACA;AAAA,IACA,SAAS,CAAC;AAAA,EACZ,CAAC;AAOD,QAAM,SAAiB,cAAc,GAAG,EAAE,QAAQ,OAAO,EAAE,IAAI,MAAM;AAOrE,QAAM,MAAW,IAAI,IAAI,gBAAgB,cAAc,MAAM,CAAC;AAO9D,QAAM,OAAiB,YAAY,SAAS,GAAG,UAAU,KAAK,MAAM;AAOpE,MAAI,MAAwB;AAO5B,MAAI,OAAe;AAGnB,aAAW,cAAc,MAAM;AAM7B,UAAM,UAAkB,WAAW,QAAQ,iBAAiB;AAG5D,QAAI,YAAY,MAAM,eAAe,GAAG,MAAM;AAC5C,YAAM;AACN;AAAA,IACF;AAGA,QAAI,YAAY,MAAM,GAAG,KAAK,WAAW,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG;AAMtE,YAAM,UAAkB,WAAW,MAAM,UAAU,CAAC;AAGpD,UACE,GAAG,KAAK,UAAU,WAAW,UAC7B,GAAG,KAAK,SAAS,OAAO,KACxB,gBAAgB,OAAO,IAAI,UAAU,MAAM,cAAc,gBACzD,WAAW,YAAY,iBAAiB,MAAM,SAC9C;AACA,cAAM;AACN,eAAO,GAAG,KAAK,MAAM,SAAS,GAAG,KAAK,SAAS,QAAQ,MAAM;AAAA,MAC/D;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,MAAM;AAChB,QAAI,EAAE,QAAAA,QAAO,IAAI;AAGjB,sBAAkBA,SAAQ,gBAAgB;AAG1C,IAAAA,UAAS,cAAcA,OAAM;AAE7B,UAAM,WACF,IAAI,+BAA+B,GAAG,MAAMA,SAAQ,MAAM,IAC1D,IAAI,8BAA8B,QAAQ,GAAG,MAAMA,OAAM;AAAA,EAC/D;AAEA,SAAO,EAAE,MAAM,UAAU,KAAK,KAAK,GAAG,MAAM,WAAW,GAAG,IAAI;AAChE;AAEA,IAAO,wBAAQ;",
4
+ "mappings": "AAUA,OAAO,iBAAiB;AACxB,OAAO,kBAAkB;AACzB,OAAO,yBAAyB;AAChC,OAAO,wBAAwB;AAC/B,OAAO,sBAAsB;AAC7B,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,OAAO,WAAW;AAElB,SAAS,eAAe,aAA4B;AACpD,SAAS,KAAK,eAAe,qBAAqB;AAClD,OAAO,qBAAqB;AAC5B,OAAO,gBAAgB;AACvB,OAAO,oBAAoB;AAC3B,OAAO,mBAAmB;AAC1B,OAAO,uBAAuB;AA4B9B,MAAM,eAAe,CACnB,WACA,SACA,YACkB;AAClB,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA,IACA,WAAW,UAAU,WAAW,GAAG;AAAA,IACnC;AAAA,EACF,IAAI;AAGJ,iBAAe,WAAW,WAAW;AAGrC,iBAAe,WAAW,mBAAmB;AAC7C,mBAAiB,YAAY,oBAAoB;AACjD,oBAAkB,KAAK,aAAa;AACpC,kBAAgB,UAAU,kBAAkB;AAC5C,oBAAkB,QAAQ,gBAAgB;AAY1C,QAAM,KAAqB,cAAc,WAAW;AAAA,IAClD;AAAA,IACA;AAAA,IACA,SAAS,CAAC;AAAA,EACZ,CAAC;AAOD,QAAM,SAAiB,cAAc,GAAG,EAAE,QAAQ,OAAO,EAAE,IAAI,MAAM;AAOrE,QAAM,MAAW,IAAI,IAAI,gBAAgB,cAAc,MAAM,CAAC;AAO9D,QAAM,OAAiB,YAAY,SAAS,GAAG,UAAU,KAAK,MAAM;AAOpE,MAAI,MAAwB;AAO5B,MAAI,OAAe;AAGnB,aAAW,cAAc,MAAM;AAM7B,UAAM,UAAkB,WAAW,QAAQ,iBAAiB;AAG5D,QAAI,YAAY,MAAM,eAAe,GAAG,MAAM;AAC5C,YAAM;AACN;AAAA,IACF;AAGA,QAAI,YAAY,MAAM,GAAG,KAAK,WAAW,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG;AAMtE,YAAM,UAAkB,WAAW,MAAM,UAAU,CAAC;AAGpD,UACE,GAAG,KAAK,UAAU,WAAW,UAC7B,GAAG,KAAK,SAAS,OAAO,KACxB,gBAAgB,OAAO,IAAI,UAAU,MAAM,cAAc,gBACzD,WAAW,YAAY,iBAAiB,MAAM,SAC9C;AACA,cAAM;AACN,eAAO,GAAG,KAAK,MAAM,SAAS,GAAG,KAAK,SAAS,QAAQ,MAAM;AAAA,MAC/D;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,MAAM;AAChB,QAAI,EAAE,QAAAA,QAAO,IAAI;AAGjB,IAAAA,UAAS,cAAcA,OAAM;AAE7B,UAAM,WACF,IAAI,+BAA+B,GAAG,MAAMA,SAAQ,MAAM,IAC1D,IAAI,8BAA8B,QAAQ,GAAG,MAAMA,OAAM;AAAA,EAC/D;AASA,QAAM,oBAAoB,CAAC,SAAgD;AAMzE,QAAI,SAA2B;AAE/B,YAAQ,MAAM;AAAA,MACZ,KAAK,MAAM,IAAI;AACb,iBAAS;AACT;AAAA,MACF,KAAK,MAAM,QAAQ,IAAI;AAMrB,YAAI;AAGJ,mBAAW,QAAQ,MAAkB;AACnC,cAAI;AACF,qBAAS,kBAAkB,IAAI;AAAA,UACjC,SAAS,GAAP;AACA,oBAAQ;AAGR,gBAAI,MAAM,SAAS,UAAU;AAA4B,oBAAM;AAE/D;AAAA,UACF;AAGA,cAAI,QAAQ;AACV,oBAAQ;AACR;AAAA,UACF;AAAA,QACF;AAGA,YAAI;AAAO,gBAAM;AAEjB;AAAA,MACF,KAAK,OAAO,SAAS;AACnB,eAAO;AAGP,mBAAW,YAAY,OAAO,oBAAoB,IAAI,GAAG;AACvD,cAAI,aAAa,QAAQ,GAAG;AAC1B,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,UACF;AAGA,cAAI,aAAa,aAAa,IAAI,IAAI,UAAU,EAAE,IAAI,QAAQ,GAAG;AAC/D,qBAAS,kBAAkB,KAAK,QAAQ,CAAC;AACzC,gBAAI;AAAQ;AAAA,UACd;AAAA,QACF;AAEA;AAAA,MACF,KAAK,OAAO,SAAS;AACnB,iBAAS;AAET,gBAAQ,MAAM;AAAA,UACZ,MAAK,YAAY,mBAAmB,KAAK,MAAM;AAC7C;AAAA,UACF,KAAK,OAAO,WAAW,MAAM,MAAM,GAAG;AAEpC,gBAAI,oBAAoB,EAAE,KAAK,OAAO,MAAM,CAAC,CAAC,GAAG;AAC/C,kBAAI,oBAAoB,YAAY,EAAE,KAAK,OAAO,MAAM,CAAC,CAAC,GAAG;AAC3D,sBAAM,IAAI;AAAA,kBACR,cAAc,GAAG;AAAA,kBACjB;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,cAAc,MAAM;AAAA,gBACtB;AAAA,cACF;AAAA,YACF;AAEA;AAAA,UACF;AACE,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,cACA,cAAc,MAAM;AAAA,YACtB;AAAA,QACJ;AAEA;AAAA,MACF;AACE,cAAM,IAAI;AAAA,UACR,cAAc,GAAG;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc,MAAM;AAAA,QACtB;AAAA,IACJ;AAEA,WAAO;AAAA,EACT;AAGA,MAAI,CAAC,YAAY,eAAe,SAAS,KAAK,MAAM,GAAG;AACrD,cAAU,EAAE,KAAK,QAAQ;AAAA,EAC3B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK,GAAG;AAAA,IACR,WAAW,GAAG;AAAA,IACd,QAAQ,kBAAmB,QAAoC,GAAG,CAAC;AAAA,EACrE;AACF;AAEA,IAAO,wBAAQ;",
5
5
  "names": ["parent"]
6
6
  }
@@ -5,16 +5,18 @@ import {
5
5
  ERR_INVALID_PACKAGE_CONFIG
6
6
  } from "@flex-development/errnode";
7
7
  import pathe from "@flex-development/pathe";
8
- import { isEmptyString, isNIL } from "@flex-development/tutils";
8
+ import {
9
+ isEmptyString,
10
+ isNIL,
11
+ isUndefined
12
+ } from "@flex-development/tutils";
9
13
  import fs from "node:fs";
10
14
  import { fileURLToPath } from "node:url";
11
15
  import toURL from "./to-url.mjs";
12
16
  const readPackageJson = (dir = ".", specifier, parent) => {
13
17
  validateURLString(dir, "dir");
14
- if (specifier !== void 0)
15
- validateString(specifier, "specifier");
16
- if (parent !== void 0)
17
- validateURLString(parent, "parent");
18
+ !isUndefined(specifier) && validateString(specifier, "specifier");
19
+ !isUndefined(parent) && validateURLString(parent, "parent");
18
20
  dir = fileURLToPath(toURL(dir));
19
21
  const path = pathe.toNamespacedPath(pathe.join(dir, "package.json"));
20
22
  if (!isFile(path))
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/read-package-json.ts"],
4
- "mappings": "AAKA,OAAO,YAAY;AACnB,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,OAEK;AACP,OAAO,WAAW;AAElB,SAAS,eAAe,aAA4B;AACpD,OAAO,QAAQ;AACf,SAAS,qBAAqB;AAC9B,OAAO,WAAW;AAmBlB,MAAM,kBAAkB,CACtB,MAAgB,KAChB,WACA,WAC0B;AAE1B,oBAAkB,KAAK,KAAK;AAG5B,MAAI,cAAc;AAAW,mBAAe,WAAW,WAAW;AAGlE,MAAI,WAAW;AAAW,sBAAkB,QAAQ,QAAQ;AAG5D,QAAM,cAAc,MAAM,GAAG,CAAC;AAO9B,QAAM,OAAe,MAAM,iBAAiB,MAAM,KAAK,KAAK,cAAc,CAAC;AAG3E,MAAI,CAAC,OAAO,IAAI;AAAG,WAAO;AAO1B,MAAI;AAGJ,MAAI;AACF,UAAM,KAAK,MAAM,GAAG,aAAa,MAAM,MAAM,CAAC;AAAA,EAChD,SAAS,GAAP;AAQA,QAAI;AAGJ,YAAQ,MAAM;AAAA,MACZ,MAAK,aAAa,CAAC,MAAM,MAAM,KAAK,CAAC,cAAc,MAAM;AACvD,eAAO,IAAI,mBAAmB,cAAc,MAAM,MAAO,CAAC;AAC1D;AAAA,MACF,MAAK,uCAAW,WAAW;AACzB,eAAO,cAAc,SAAU;AAC/B;AAAA,IACJ;AAEA,UAAM,IAAI,2BAA2B,MAAM,MAAO,EAAkB,OAAO;AAAA,EAC7E;AAEA,SAAO;AACT;AAEA,IAAO,4BAAQ;",
4
+ "mappings": "AAKA,OAAO,YAAY;AACnB,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,OAEK;AACP,OAAO,WAAW;AAElB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,OAAO,QAAQ;AACf,SAAS,qBAAqB;AAC9B,OAAO,WAAW;AAmBlB,MAAM,kBAAkB,CACtB,MAAgB,KAChB,WACA,WAC0B;AAE1B,oBAAkB,KAAK,KAAK;AAG5B,GAAC,YAAY,SAAS,KAAK,eAAe,WAAW,WAAW;AAGhE,GAAC,YAAY,MAAM,KAAK,kBAAkB,QAAQ,QAAQ;AAG1D,QAAM,cAAc,MAAM,GAAG,CAAC;AAO9B,QAAM,OAAe,MAAM,iBAAiB,MAAM,KAAK,KAAK,cAAc,CAAC;AAG3E,MAAI,CAAC,OAAO,IAAI;AAAG,WAAO;AAO1B,MAAI;AAGJ,MAAI;AACF,UAAM,KAAK,MAAM,GAAG,aAAa,MAAM,MAAM,CAAC;AAAA,EAChD,SAAS,GAAP;AAQA,QAAI;AAGJ,YAAQ,MAAM;AAAA,MACZ,MAAK,aAAa,CAAC,MAAM,MAAM,KAAK,CAAC,cAAc,MAAM;AACvD,eAAO,IAAI,mBAAmB,cAAc,MAAM,MAAO,CAAC;AAC1D;AAAA,MACF,MAAK,uCAAW,WAAW;AACzB,eAAO,cAAc,SAAU;AAC/B;AAAA,IACJ;AAEA,UAAM,IAAI,2BAA2B,MAAM,MAAO,EAAkB,OAAO;AAAA,EAC7E;AAEA,SAAO;AACT;AAEA,IAAO,4BAAQ;",
5
5
  "names": []
6
6
  }
@@ -1,7 +1,7 @@
1
1
  import regexp from "../internal/escape-reg-exp.mjs";
2
+ import validateArraySet from "../internal/validate-array-set.mjs";
2
3
  import validateBoolean from "../internal/validate-boolean.mjs";
3
4
  import validateObject from "../internal/validate-object.mjs";
4
- import validateSet from "../internal/validate-set.mjs";
5
5
  import validateString from "../internal/validate-string.mjs";
6
6
  import validateURLString from "../internal/validate-url-string.mjs";
7
7
  import pathe from "@flex-development/pathe";
@@ -32,8 +32,9 @@ const resolveAlias = async (specifier, options = {}) => {
32
32
  validateBoolean(absolute, "options.absolute");
33
33
  validateObject(aliases, "options.aliases");
34
34
  validateString(condition, "options.condition");
35
+ validateArraySet(conditions, "options.conditions");
35
36
  validateURLString(cwd, "options.cwd");
36
- validateSet(extensions, "options.extensions");
37
+ validateArraySet(extensions, "options.extensions");
37
38
  validateURLString(parent, "options.parent");
38
39
  validateBoolean(preserveSymlinks, "options.preserveSymlinks");
39
40
  const id = parseModuleId(specifier, {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/resolve-alias.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAMA,OAAO,YAAY;AACnB,OAAO,sBAAsB;AAC7B,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAE9B,OAAO,WAAW;AAClB,SAAS,eAAe,aAA4B;AACpD,SAAS,KAAK,qBAAqB;AACnC,OAAO,qBAAqB;AAC5B,OAAO,gBAAgB;AACvB,OAAO,mBAAmB;AAC1B,OAAO,uBAAuB;AAC9B,OAAO,wBAAwB;AAC/B,OAAO,mBAAmB;AAC1B,OAAO,qBAAqB;AAC5B,OAAO,yBAAyB;AAChC,OAAO,WAAW;AAelB,MAAM,eAAe,OACnB,WACA,UAA+B,CAAC,MACZ;AACpB,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,UAAU,CAAC;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,MAAM,cAAc,GAAG;AAAA,IACvB;AAAA,IACA,aAAa;AAAA,IACb,SAAS,YAAY;AAAA,IACrB,mBAAmB;AAAA,EACrB,IAAI;AAGJ,iBAAe,WAAW,WAAW;AAGrC,kBAAgB,UAAU,kBAAkB;AAC5C,iBAAe,SAAS,iBAAiB;AACzC,iBAAe,WAAW,mBAAmB;AAC7C,mBAAiB,YAAY,oBAAoB;AACjD,oBAAkB,KAAK,aAAa;AACpC,mBAAiB,YAAY,oBAAoB;AACjD,oBAAkB,QAAQ,gBAAgB;AAC1C,kBAAgB,kBAAkB,0BAA0B;AAS5D,QAAM,KAAqB,cAAc,WAAW;AAAA,IAClD,QAAQ,MAAM,MAAM;AAAA,IACpB,SAAS;AAAA,EACX,CAAC;AAOD,QAAM,OAAiB,OAAO,KAAK,OAAO,EAAE,KAAK,eAAe;AAOhE,MAAI,QAA0B;AAO9B,MAAI,QAAgB;AAGpB,aAAW,OAAO,MAAM;AAMtB,UAAM,UAAkB,IAAI,QAAQ,iBAAiB;AAGrD,QAAI,YAAY,MAAM,QAAQ,GAAG,KAAK;AACpC,cAAQ;AACR;AAAA,IACF;AAGA,QAAI,YAAY,MAAM,GAAG,IAAI,WAAW,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG;AAM9D,YAAM,UAAkB,IAAI,MAAM,UAAU,CAAC;AAG7C,UACE,GAAG,IAAI,UAAU,IAAI,UACrB,GAAG,IAAI,SAAS,OAAO,KACvB,gBAAgB,SAAS,IAAI,GAAG,MAAM,cAAc,gBACpD,IAAI,YAAY,iBAAiB,MAAM,SACvC;AACA,gBAAQ;AACR,gBAAQ,GAAG,IAAI,MAAM,SAAS,GAAG,IAAI,SAAS,QAAQ,MAAM;AAAA,MAC9D;AAAA,IACF;AAAA,EACF;AAGA,MAAI,UAAU,QAAQ,MAAM,QAAQ,KAAK,CAAC;AAAG,WAAO;AAOpD,QAAM,OAAe,MAAM,GAAG,EAAE,KAAK,QAAQ,OAAO,EAAE,IAAI,MAAM;AAOhE,MAAI,MAAqB;AAGzB,WAAS,WAAW,CAAC,QAAQ,KAAK,CAAE,EAAE,KAAK,GAAG;AAE5C,QAAI,QAAQ,SAAS,iBAAiB,GAAG;AACvC,gBAAU,QAAQ;AAAA,QAChB,IAAI,OAAO,GAAG,OAAO,iBAAiB,IAAI;AAAA,QAC1C;AAAA,MACF;AAAA,IACF;AAOA,QAAI,QAAqB,IAAI;AAAA,MAC3B;AAAA,QACE;AAAA,QACA,GAAG,CAAC,GAAG,UAAU,EAAE,IAAI,CAAAA,SAAO,MAAM,UAAUA,IAAG,CAAC;AAAA,QAClD,GAAG,CAAC,GAAG,UAAU,EAAE,IAAI,CAAAA,SAAO,WAAW,MAAM,UAAUA,IAAG,CAAC;AAAA,MAC/D,EACG,IAAI,CAAC,WAAmB,UAAU,MAAM,EACxC,OAAO,CAACC,aAAoBA,SAAQ,SAAS,CAAC,EAC9C,IAAI,CAACA,aAAoB,IAAI,IAAIA,UAAS,IAAI,EAAE,QAAQ;AAAA,IAC7D;AAGA,QAAI,QAAQ,WAAW,cAAc,GAAG;AACtC,YAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,KAAK;AAChC,cAAQ,oBAAI,IAAI,CAAC,QAAQ,QAAQ,sBAAsB,EAAE,GAAG,GAAG,KAAK,CAAC;AAAA,IACvE;AAGA,eAAW,WAAW,OAAO;AAC3B,UAAI;AACF,cAAM,MAAM,cAAc,SAAS;AAAA,UACjC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,QAAQ,MAAM,MAAM;AAAA,UACpB;AAAA,QACF,CAAC;AAGD;AAAA,MACF,QAAE;AACA;AAAA,MACF;AAAA,IACF;AAGA,QAAI;AAAK;AAAA,EACX;AAEA,SAAO,MACH,WACE,IAAI,OACJ,mBAAmB,KAAK,IAAI,IAAI,IAChC,gBAAgB,KAAK,MAAM,MAAM,GAAG,IAAI,IAAI,UAAU,CAAC,IACvD,oBAAoB,KAAK,MAAM,MAAM,CAAC,IACxC;AACN;AAEA,IAAO,wBAAQ;",
5
5
  "names": ["ext", "segment"]
6
6
  }
@@ -1,5 +1,9 @@
1
1
  import isFunction from "../internal/is-function.mjs";
2
2
  import Resolver from "../internal/resolver.mjs";
3
+ import validateArraySet from "../internal/validate-array-set.mjs";
4
+ import validateBoolean from "../internal/validate-boolean.mjs";
5
+ import validateString from "../internal/validate-string.mjs";
6
+ import validateURLString from "../internal/validate-url-string.mjs";
3
7
  import { ErrorCode } from "@flex-development/errnode";
4
8
  import { isBuiltin } from "@flex-development/is-builtin";
5
9
  import pathe from "@flex-development/pathe";
@@ -14,14 +18,25 @@ const resolveModule = async (specifier, options = {}) => {
14
18
  parent = import.meta.url,
15
19
  preserveSymlinks = false
16
20
  } = options;
21
+ validateString(specifier, "specifier");
22
+ validateString(condition, "options.condition");
23
+ validateArraySet(conditions, "options.conditions");
24
+ validateArraySet(extensions, "options.extensions");
25
+ validateURLString(parent, "options.parent");
26
+ validateBoolean(preserveSymlinks, "options.preserveSymlinks");
17
27
  const resolver = new Resolver();
18
- const tries = isBuiltin(specifier) || /^\S+:/.test(specifier) && !specifier.startsWith("file:") ? [] : [...extensions].flatMap((ext) => [
28
+ const onetry = isBuiltin(specifier) || /^\S+:/.test(specifier) && !specifier.startsWith("file:");
29
+ const tries = onetry ? [] : [...extensions].flatMap((ext) => [
19
30
  specifier + (ext = pathe.formatExt(ext)),
20
31
  specifier.startsWith("#") ? specifier + "/index" : "",
21
32
  specifier + "/index" + ext
22
33
  ]).filter((id) => id.length > 0);
34
+ if (!onetry) {
35
+ specifier.startsWith("@types") ? tries.unshift(specifier + "/index.d.ts") : tries.unshift("@types/" + specifier + "/index.d.ts");
36
+ }
23
37
  tries.unshift(specifier);
24
38
  const ignore = /* @__PURE__ */ new Set([
39
+ ErrorCode.ERR_INVALID_MODULE_SPECIFIER,
25
40
  ErrorCode.ERR_MODULE_NOT_FOUND,
26
41
  ErrorCode.ERR_PACKAGE_PATH_NOT_EXPORTED,
27
42
  ErrorCode.ERR_UNSUPPORTED_DIR_IMPORT
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/resolve-module.ts"],
4
- "mappings": "AAMA,OAAO,gBAAgB;AACvB,OAAO,cAAc;AACrB,SAAS,iBAAiC;AAC1C,SAAS,iBAAiB;AAC1B,OAAO,WAAW;AAElB,SAAc,qBAAqB;AACnC,OAAO,gBAAgB;AACvB,OAAO,wBAAwB;AAiC/B,MAAM,gBAAgB,OACpB,WACA,UAAgC,CAAC,MAChB;AACjB,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS,YAAY;AAAA,IACrB,mBAAmB;AAAA,EACrB,IAAI;AAOJ,QAAM,WAAqB,IAAI,SAAS;AAOxC,QAAM,QACJ,UAAU,SAAS,KAClB,QAAQ,KAAK,SAAS,KAAK,CAAC,UAAU,WAAW,OAAO,IACrD,CAAC,IACD,CAAC,GAAG,UAAU,EACX,QAAQ,SAAO;AAAA,IACd,aAAa,MAAM,MAAM,UAAU,GAAG;AAAA,IACtC,UAAU,WAAW,GAAG,IAAI,YAAY,WAAW;AAAA,IACnD,YAAY,WAAW;AAAA,EACzB,CAAC,EACA,OAAO,QAAM,GAAG,SAAS,CAAC;AAGnC,QAAM,QAAQ,SAAS;AAUvB,QAAM,SAAyB,oBAAI,IAAe;AAAA,IAChD,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAOD,MAAI;AAOJ,MAAI,MAAqB;AAGzB,aAAW,MAAM,OAAO;AACtB,QAAI;AACF,YAAM,SAAS;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA,IAAI,IAAI,UAAU;AAAA,QAClB;AAAA,MACF;AAAA,IACF,SAAS,GAAP;AACA,YAAM;AACN,UAAI,OAAO;AAAW,gBAAQ;AAC9B,UAAI,CAAC,OAAO,IAAK,EAAgB,IAAI;AAAG,cAAM;AAAA,IAChD;AAGA,QAAI;AAAK;AAAA,EACX;AAGA,MAAI,CAAC;AAAK,UAAM;AAGhB,MAAI,IAAI,aAAa,SAAS;AAC5B,QAAI,EAAE,IAAI,IAAI;AAGd,UAAM,WAAW,GAAG,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI;AAGpD,QAAI,OAAO,MAAM,UAAU,IAAI,MAAM,GAAG,EAAE,QAAQ,YAAY,EAAE;AAChE,QAAI,WAAW,cAAc,IAAI,IAAI;AAAA,EACvC;AAEA,SAAO;AACT;AAEA,IAAO,yBAAQ;",
4
+ "mappings": "AAMA,OAAO,gBAAgB;AACvB,OAAO,cAAc;AACrB,OAAO,sBAAsB;AAC7B,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAC9B,SAAS,iBAAiC;AAC1C,SAAS,iBAAiB;AAC1B,OAAO,WAAW;AAElB,SAAc,qBAAqB;AACnC,OAAO,gBAAgB;AACvB,OAAO,wBAAwB;AAiC/B,MAAM,gBAAgB,OACpB,WACA,UAAgC,CAAC,MAChB;AACjB,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS,YAAY;AAAA,IACrB,mBAAmB;AAAA,EACrB,IAAI;AAGJ,iBAAe,WAAW,WAAW;AAGrC,iBAAe,WAAW,mBAAmB;AAC7C,mBAAiB,YAAY,oBAAoB;AACjD,mBAAiB,YAAY,oBAAoB;AACjD,oBAAkB,QAAQ,gBAAgB;AAC1C,kBAAgB,kBAAkB,0BAA0B;AAO5D,QAAM,WAAqB,IAAI,SAAS;AAOxC,QAAM,SACJ,UAAU,SAAS,KAClB,QAAQ,KAAK,SAAS,KAAK,CAAC,UAAU,WAAW,OAAO;AAO3D,QAAM,QAAkB,SACpB,CAAC,IACD,CAAC,GAAG,UAAU,EACX,QAAQ,SAAO;AAAA,IACd,aAAa,MAAM,MAAM,UAAU,GAAG;AAAA,IACtC,UAAU,WAAW,GAAG,IAAI,YAAY,WAAW;AAAA,IACnD,YAAY,WAAW;AAAA,EACzB,CAAC,EACA,OAAO,QAAM,GAAG,SAAS,CAAC;AAGjC,MAAI,CAAC,QAAQ;AACX,cAAU,WAAW,QAAQ,IACzB,MAAM,QAAQ,YAAY,aAAa,IACvC,MAAM,QAAQ,YAAY,YAAY,aAAa;AAAA,EACzD;AAGA,QAAM,QAAQ,SAAS;AAUvB,QAAM,SAAyB,oBAAI,IAAe;AAAA,IAChD,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAOD,MAAI;AAOJ,MAAI,MAAqB;AAGzB,aAAW,MAAM,OAAO;AACtB,QAAI;AACF,YAAM,SAAS;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA,IAAI,IAAI,UAAU;AAAA,QAClB;AAAA,MACF;AAAA,IACF,SAAS,GAAP;AACA,YAAM;AACN,UAAI,OAAO;AAAW,gBAAQ;AAC9B,UAAI,CAAC,OAAO,IAAK,EAAgB,IAAI;AAAG,cAAM;AAAA,IAChD;AAGA,QAAI;AAAK;AAAA,EACX;AAGA,MAAI,CAAC;AAAK,UAAM;AAGhB,MAAI,IAAI,aAAa,SAAS;AAC5B,QAAI,EAAE,IAAI,IAAI;AAGd,UAAM,WAAW,GAAG,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI;AAGpD,QAAI,OAAO,MAAM,UAAU,IAAI,MAAM,GAAG,EAAE,QAAQ,YAAY,EAAE;AAChE,QAAI,WAAW,cAAc,IAAI,IAAI;AAAA,EACvC;AAEA,SAAO;AACT;AAEA,IAAO,yBAAQ;",
5
5
  "names": []
6
6
  }