@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.
- package/CHANGELOG.md +203 -0
- package/README.md +1 -0
- package/dist/enums/assert-type.mjs +1 -7
- package/dist/enums/format.mjs +1 -10
- package/dist/enums/index.mjs +0 -1
- package/dist/enums/kind-specifier-syntax.mjs +1 -7
- package/dist/enums/kind-specifier.mjs +1 -8
- package/dist/enums/kind-statement-syntax.mjs +1 -15
- package/dist/enums/kind-statement.mjs +1 -8
- package/dist/index.mjs.map +5 -2
- package/dist/interfaces/import-dynamic.d.mts +1 -3
- package/dist/interfaces/import-static.d.mts +1 -3
- package/dist/interfaces/index.mjs +0 -1
- package/dist/interfaces/options-find-subpath.d.mts +4 -3
- package/dist/interfaces/options-get-format.d.mts +7 -7
- package/dist/interfaces/options-get-source.d.mts +5 -4
- package/dist/interfaces/options-parse-module-id.d.mts +4 -3
- package/dist/interfaces/options-parse-subpath.d.mts +4 -3
- package/dist/interfaces/options-resolve-alias.d.mts +5 -5
- package/dist/interfaces/options-resolve-module.d.mts +6 -6
- package/dist/internal/dequote.d.mts +14 -0
- package/dist/internal/dequote.mjs +6 -0
- package/dist/internal/format-type-map.d.mts +2 -0
- package/dist/internal/format-type-map.mjs +0 -1
- package/dist/internal/get-specifier-kind.d.mts +2 -0
- package/dist/internal/get-specifier-kind.mjs +3 -7
- package/dist/internal/get-subpaths.d.mts +5 -2
- package/dist/internal/get-subpaths.mjs +2 -5
- package/dist/internal/regex-encoded-sep.d.mts +2 -0
- package/dist/internal/regex-encoded-sep.mjs +0 -1
- package/dist/internal/regex-internal-specifier.d.mts +2 -0
- package/dist/internal/regex-internal-specifier.mjs +0 -1
- package/dist/internal/regex-invalid-segment.d.mts +2 -0
- package/dist/internal/regex-invalid-segment.mjs +4 -7
- package/dist/internal/regex-package-name.d.mts +2 -0
- package/dist/internal/regex-package-name.mjs +0 -1
- package/dist/internal/regex-package-path.d.mts +2 -0
- package/dist/internal/regex-package-path.mjs +0 -1
- package/dist/internal/resolver.d.mts +5 -3
- package/dist/internal/resolver.mjs +115 -130
- package/dist/internal/validate-array-set.d.mts +7 -5
- package/dist/internal/validate-array-set.mjs +5 -5
- package/dist/internal/validate-boolean.d.mts +4 -2
- package/dist/internal/validate-boolean.mjs +3 -3
- package/dist/internal/validate-map.d.mts +10 -7
- package/dist/internal/validate-map.mjs +5 -5
- package/dist/internal/validate-object.d.mts +9 -9
- package/dist/internal/validate-object.mjs +3 -3
- package/dist/internal/validate-set.d.mts +7 -5
- package/dist/internal/validate-set.mjs +5 -5
- package/dist/internal/validate-string.d.mts +5 -2
- package/dist/internal/validate-string.mjs +3 -3
- package/dist/internal/validate-url-string.d.mts +4 -2
- package/dist/internal/validate-url-string.mjs +3 -3
- package/dist/types/fn-change-ext.d.mts +7 -4
- package/dist/types/index.mjs +0 -1
- package/dist/utils/compare-subpaths.mjs +5 -10
- package/dist/utils/compare-subpaths.mjs.map +6 -3
- package/dist/utils/conditions.mjs.map +5 -2
- package/dist/utils/detect-syntax.mjs +1 -2
- package/dist/utils/detect-syntax.mjs.map +6 -3
- package/dist/utils/extension-format-map.mjs.map +5 -2
- package/dist/utils/extract-statements.mjs +6 -7
- package/dist/utils/extract-statements.mjs.map +6 -3
- package/dist/utils/fill-modules.mjs +43 -46
- package/dist/utils/fill-modules.mjs.map +9 -4
- package/dist/utils/find-dynamic-imports.mjs +23 -26
- package/dist/utils/find-dynamic-imports.mjs.map +9 -4
- package/dist/utils/find-exports.mjs +15 -20
- package/dist/utils/find-exports.mjs.map +9 -4
- package/dist/utils/find-requires.mjs +5 -5
- package/dist/utils/find-requires.mjs.map +9 -4
- package/dist/utils/find-static-imports.mjs +17 -21
- package/dist/utils/find-static-imports.mjs.map +9 -4
- package/dist/utils/find-subpath.d.mts +3 -3
- package/dist/utils/find-subpath.mjs +52 -74
- package/dist/utils/find-subpath.mjs.map +10 -4
- package/dist/utils/get-format.mjs +18 -33
- package/dist/utils/get-format.mjs.map +9 -4
- package/dist/utils/get-source.d.mts +3 -2
- package/dist/utils/get-source.mjs +10 -19
- package/dist/utils/get-source.mjs.map +6 -3
- package/dist/utils/has-cjs-syntax.mjs.map +5 -2
- package/dist/utils/has-esm-syntax.mjs.map +5 -2
- package/dist/utils/index.d.mts +2 -0
- package/dist/utils/index.mjs +46 -42
- package/dist/utils/index.mjs.map +9 -4
- package/dist/utils/is-absolute-specifier.mjs +5 -6
- package/dist/utils/is-absolute-specifier.mjs.map +6 -3
- package/dist/utils/is-bare-specifier.mjs +2 -4
- package/dist/utils/is-bare-specifier.mjs.map +6 -3
- package/dist/utils/is-directory.mjs +14 -0
- package/dist/utils/is-directory.mjs.map +9 -0
- package/dist/utils/is-exports-sugar.d.mts +3 -2
- package/dist/utils/is-exports-sugar.mjs +16 -13
- package/dist/utils/is-exports-sugar.mjs.map +6 -3
- package/dist/utils/is-file.mjs +14 -0
- package/dist/utils/is-file.mjs.map +9 -0
- package/dist/utils/is-relative-specifier.d.mts +0 -1
- package/dist/utils/is-relative-specifier.mjs +2 -4
- package/dist/utils/is-relative-specifier.mjs.map +6 -3
- package/dist/utils/lookup-package-scope.d.mts +1 -1
- package/dist/utils/lookup-package-scope.mjs +4 -8
- package/dist/utils/lookup-package-scope.mjs.map +6 -3
- package/dist/utils/parse-data-url.mjs +4 -4
- package/dist/utils/parse-data-url.mjs.map +6 -3
- package/dist/utils/parse-module-id.mjs +22 -24
- package/dist/utils/parse-module-id.mjs.map +10 -4
- package/dist/utils/parse-subpath.d.mts +3 -2
- package/dist/utils/parse-subpath.mjs +40 -55
- package/dist/utils/parse-subpath.mjs.map +9 -4
- package/dist/utils/pattern-character.mjs.map +5 -2
- package/dist/utils/read-package-json.mjs +12 -9
- package/dist/utils/read-package-json.mjs.map +6 -3
- package/dist/utils/resolve-alias.mjs +28 -34
- package/dist/utils/resolve-alias.mjs.map +10 -4
- package/dist/utils/resolve-aliases.mjs +15 -17
- package/dist/utils/resolve-aliases.mjs.map +6 -3
- package/dist/utils/resolve-extensions.mjs.map +5 -2
- package/dist/utils/resolve-module.mjs +10 -26
- package/dist/utils/resolve-module.mjs.map +6 -3
- package/dist/utils/resolve-modules.mjs +12 -15
- package/dist/utils/resolve-modules.mjs.map +6 -3
- package/dist/utils/to-absolute-specifier.mjs.map +5 -2
- package/dist/utils/to-bare-specifier.mjs +18 -34
- package/dist/utils/to-bare-specifier.mjs.map +6 -3
- package/dist/utils/to-data-url.mjs +1 -5
- package/dist/utils/to-data-url.mjs.map +6 -3
- package/dist/utils/to-node-url.mjs +1 -4
- package/dist/utils/to-node-url.mjs.map +6 -3
- package/dist/utils/to-relative-specifier.mjs +2 -16
- package/dist/utils/to-relative-specifier.mjs.map +6 -3
- package/dist/utils/to-url.mjs +1 -5
- package/dist/utils/to-url.mjs.map +6 -3
- package/dist/utils/validate-assertions.d.mts +2 -2
- package/dist/utils/validate-assertions.mjs +14 -21
- package/dist/utils/validate-assertions.mjs.map +9 -4
- package/dist/utils/validate-exports.d.mts +3 -2
- package/dist/utils/validate-exports.mjs +25 -24
- package/dist/utils/validate-exports.mjs.map +6 -3
- package/package.json +89 -81
- package/src/interfaces/import-dynamic.ts +1 -3
- package/src/interfaces/import-static.ts +1 -5
- package/src/interfaces/options-find-subpath.ts +4 -3
- package/src/interfaces/options-get-format.ts +7 -7
- package/src/interfaces/options-get-source.ts +5 -4
- package/src/interfaces/options-parse-module-id.ts +4 -3
- package/src/interfaces/options-parse-subpath.ts +4 -3
- package/src/interfaces/options-resolve-alias.ts +5 -5
- package/src/interfaces/options-resolve-module.ts +6 -6
- package/src/internal/dequote.ts +18 -0
- package/src/internal/format-type-map.ts +2 -0
- package/src/internal/get-specifier-kind.ts +7 -4
- package/src/internal/get-subpaths.ts +7 -5
- package/src/internal/regex-encoded-sep.ts +2 -0
- package/src/internal/regex-internal-specifier.ts +2 -0
- package/src/internal/regex-invalid-segment.ts +2 -0
- package/src/internal/regex-package-name.ts +2 -0
- package/src/internal/regex-package-path.ts +2 -0
- package/src/internal/resolver.ts +71 -49
- package/src/internal/validate-array-set.ts +10 -7
- package/src/internal/validate-boolean.ts +6 -3
- package/src/internal/validate-map.ts +12 -9
- package/src/internal/validate-object.ts +10 -10
- package/src/internal/validate-set.ts +9 -9
- package/src/internal/validate-string.ts +7 -3
- package/src/internal/validate-url-string.ts +6 -3
- package/src/types/fn-change-ext.ts +7 -7
- package/src/utils/extract-statements.ts +11 -7
- package/src/utils/fill-modules.ts +70 -62
- package/src/utils/find-dynamic-imports.ts +6 -6
- package/src/utils/find-exports.ts +19 -29
- package/src/utils/find-requires.ts +6 -6
- package/src/utils/find-static-imports.ts +11 -14
- package/src/utils/find-subpath.ts +140 -139
- package/src/utils/get-format.ts +27 -21
- package/src/utils/get-source.ts +5 -5
- package/src/utils/index.ts +2 -0
- package/src/utils/is-bare-specifier.ts +2 -1
- package/src/{internal → utils}/is-directory.ts +1 -1
- package/src/utils/is-exports-sugar.ts +16 -9
- package/src/{internal → utils}/is-file.ts +1 -1
- package/src/utils/is-relative-specifier.ts +5 -6
- package/src/utils/lookup-package-scope.ts +2 -2
- package/src/utils/parse-data-url.ts +3 -3
- package/src/utils/parse-module-id.ts +16 -8
- package/src/utils/parse-subpath.ts +32 -19
- package/src/utils/read-package-json.ts +13 -6
- package/src/utils/resolve-alias.ts +19 -15
- package/src/utils/resolve-aliases.ts +25 -25
- package/src/utils/resolve-module.ts +4 -5
- package/src/utils/resolve-modules.ts +19 -21
- package/src/utils/to-bare-specifier.ts +22 -10
- package/src/utils/to-relative-specifier.ts +2 -1
- package/src/utils/validate-assertions.ts +12 -7
- package/src/utils/validate-exports.ts +25 -18
- package/dist/enums/assert-type.mjs.map +0 -6
- package/dist/enums/format.mjs.map +0 -6
- package/dist/enums/index.mjs.map +0 -6
- package/dist/enums/kind-specifier-syntax.mjs.map +0 -6
- package/dist/enums/kind-specifier.mjs.map +0 -6
- package/dist/enums/kind-statement-syntax.mjs.map +0 -6
- package/dist/enums/kind-statement.mjs.map +0 -6
- package/dist/interfaces/index.mjs.map +0 -6
- package/dist/internal/escape-reg-exp.d.mts +0 -16
- package/dist/internal/escape-reg-exp.mjs +0 -10
- package/dist/internal/escape-reg-exp.mjs.map +0 -6
- package/dist/internal/format-type-map.mjs.map +0 -6
- package/dist/internal/get-specifier-kind.mjs.map +0 -6
- package/dist/internal/get-subpaths.mjs.map +0 -6
- package/dist/internal/is-array-index.d.mts +0 -15
- package/dist/internal/is-array-index.mjs +0 -9
- package/dist/internal/is-array-index.mjs.map +0 -6
- package/dist/internal/is-directory.mjs +0 -16
- package/dist/internal/is-directory.mjs.map +0 -6
- package/dist/internal/is-file.mjs +0 -16
- package/dist/internal/is-file.mjs.map +0 -6
- package/dist/internal/is-function.d.mts +0 -12
- package/dist/internal/is-function.mjs +0 -8
- package/dist/internal/is-function.mjs.map +0 -6
- package/dist/internal/regex-encoded-sep.mjs.map +0 -6
- package/dist/internal/regex-internal-specifier.mjs.map +0 -6
- package/dist/internal/regex-invalid-segment.mjs.map +0 -6
- package/dist/internal/regex-package-name.mjs.map +0 -6
- package/dist/internal/regex-package-path.mjs.map +0 -6
- package/dist/internal/resolver.mjs.map +0 -6
- package/dist/internal/validate-array-set.mjs.map +0 -6
- package/dist/internal/validate-boolean.mjs.map +0 -6
- package/dist/internal/validate-map.mjs.map +0 -6
- package/dist/internal/validate-object.mjs.map +0 -6
- package/dist/internal/validate-set.mjs.map +0 -6
- package/dist/internal/validate-string.mjs.map +0 -6
- package/dist/internal/validate-url-string.mjs.map +0 -6
- package/dist/types/index.mjs.map +0 -6
- package/src/internal/escape-reg-exp.ts +0 -24
- package/src/internal/is-array-index.ts +0 -28
- package/src/internal/is-function.ts +0 -16
- /package/dist/{internal → utils}/is-directory.d.mts +0 -0
- /package/dist/{internal → utils}/is-file.d.mts +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import getSubpaths from "../internal/get-subpaths.mjs";
|
|
2
|
-
import isArrayIndex from "../internal/is-array-index.mjs";
|
|
3
2
|
import invalidSegmentRegex from "../internal/regex-invalid-segment.mjs";
|
|
4
3
|
import PACKAGE_NAME_REGEX from "../internal/regex-package-name.mjs";
|
|
5
4
|
import validateArraySet from "../internal/validate-array-set.mjs";
|
|
@@ -14,7 +13,18 @@ import {
|
|
|
14
13
|
ErrorCode
|
|
15
14
|
} from "@flex-development/errnode";
|
|
16
15
|
import pathe from "@flex-development/pathe";
|
|
17
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
CompareResult,
|
|
18
|
+
DOT,
|
|
19
|
+
cast,
|
|
20
|
+
get,
|
|
21
|
+
isArray,
|
|
22
|
+
isArrayIndex,
|
|
23
|
+
isNIL,
|
|
24
|
+
isNull,
|
|
25
|
+
isObjectCurly,
|
|
26
|
+
isString
|
|
27
|
+
} from "@flex-development/tutils";
|
|
18
28
|
import { URL, fileURLToPath, pathToFileURL } from "node:url";
|
|
19
29
|
import compareSubpaths from "./compare-subpaths.mjs";
|
|
20
30
|
import CONDITIONS from "./conditions.mjs";
|
|
@@ -29,22 +39,13 @@ const parseSubpath = (specifier, context, options) => {
|
|
|
29
39
|
internal = specifier.startsWith("#"),
|
|
30
40
|
parent
|
|
31
41
|
} = options;
|
|
32
|
-
validateString(specifier, "specifier");
|
|
33
|
-
validateString(condition, "options.condition");
|
|
34
|
-
validateArraySet(conditions, "options.conditions");
|
|
35
|
-
validateURLString(dir, "options.dir");
|
|
36
|
-
validateBoolean(internal, "options.internal");
|
|
37
|
-
validateURLString(parent, "options.parent");
|
|
42
|
+
validateString(specifier, "specifier"), validateString(condition, "options.condition"), validateArraySet(conditions, "options.conditions"), validateURLString(dir, "options.dir"), validateBoolean(internal, "options.internal"), validateURLString(parent, "options.parent");
|
|
38
43
|
const id = parseModuleId(specifier, {
|
|
39
44
|
internal,
|
|
40
45
|
parent,
|
|
41
46
|
pkgname: !internal
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
const pkg = new URL("package.json", pathToFileURL(pkgdir));
|
|
45
|
-
const keys = getSubpaths(context, id.internal, pkg, parent);
|
|
46
|
-
let key = null;
|
|
47
|
-
let base = "";
|
|
47
|
+
}), pkgdir = fileURLToPath(dir).replace(/\/$/, "") + pathe.sep, pkg = new URL("package.json", pathToFileURL(pkgdir)), keys = getSubpaths(context, id.internal, pkg, parent);
|
|
48
|
+
let key = null, base = "";
|
|
48
49
|
for (const pkgsubpath of keys) {
|
|
49
50
|
const pattern = pkgsubpath.indexOf(PATTERN_CHARACTER);
|
|
50
51
|
if (pattern === -1 && pkgsubpath === id.path) {
|
|
@@ -53,31 +54,26 @@ const parseSubpath = (specifier, context, options) => {
|
|
|
53
54
|
}
|
|
54
55
|
if (pattern !== -1 && id.path.startsWith(pkgsubpath.slice(0, pattern))) {
|
|
55
56
|
const trailer = pkgsubpath.slice(pattern + 1);
|
|
56
|
-
|
|
57
|
-
key = pkgsubpath;
|
|
58
|
-
base = id.path.slice(pattern, id.path.length - trailer.length);
|
|
59
|
-
}
|
|
57
|
+
id.path.length >= pkgsubpath.length && id.path.endsWith(trailer) && compareSubpaths(key ?? "", pkgsubpath) === CompareResult.GREATER_THAN && pkgsubpath.lastIndexOf(PATTERN_CHARACTER) === pattern && (key = pkgsubpath, base = id.path.slice(pattern, id.path.length - trailer.length));
|
|
60
58
|
}
|
|
61
59
|
}
|
|
62
|
-
if (key
|
|
60
|
+
if (isNull(key)) {
|
|
63
61
|
let { parent: parent2 } = options;
|
|
64
|
-
parent2 = fileURLToPath(parent2);
|
|
65
|
-
throw internal ? new ERR_PACKAGE_IMPORT_NOT_DEFINED(id.path, parent2, pkgdir) : new ERR_PACKAGE_PATH_NOT_EXPORTED(pkgdir, id.path, parent2);
|
|
62
|
+
throw parent2 = fileURLToPath(parent2), internal ? new ERR_PACKAGE_IMPORT_NOT_DEFINED(id.path, parent2, pkgdir) : new ERR_PACKAGE_PATH_NOT_EXPORTED(pkgdir, id.path, parent2);
|
|
66
63
|
}
|
|
67
64
|
const findPackageTarget = (data) => {
|
|
68
65
|
let target = null;
|
|
69
|
-
switch (
|
|
66
|
+
switch (!0) {
|
|
70
67
|
case isNIL(data):
|
|
71
68
|
target = null;
|
|
72
69
|
break;
|
|
73
|
-
case
|
|
70
|
+
case isArray(data):
|
|
74
71
|
let error;
|
|
75
|
-
for (const item of data) {
|
|
72
|
+
for (const item of cast(data)) {
|
|
76
73
|
try {
|
|
77
74
|
target = findPackageTarget(item);
|
|
78
75
|
} catch (e) {
|
|
79
|
-
error = e
|
|
80
|
-
if (error.code !== ErrorCode.ERR_INVALID_PACKAGE_TARGET)
|
|
76
|
+
if (error = cast(e), error.code !== ErrorCode.ERR_INVALID_PACKAGE_TARGET)
|
|
81
77
|
throw error;
|
|
82
78
|
continue;
|
|
83
79
|
}
|
|
@@ -89,40 +85,32 @@ const parseSubpath = (specifier, context, options) => {
|
|
|
89
85
|
if (error)
|
|
90
86
|
throw error;
|
|
91
87
|
break;
|
|
92
|
-
case
|
|
93
|
-
data = data;
|
|
88
|
+
case isObjectCurly(data):
|
|
89
|
+
data = cast(data);
|
|
94
90
|
for (const property of Object.getOwnPropertyNames(data)) {
|
|
95
|
-
if (isArrayIndex(property))
|
|
91
|
+
if (isArrayIndex(property))
|
|
96
92
|
throw new ERR_INVALID_PACKAGE_CONFIG(
|
|
97
93
|
fileURLToPath(pkg),
|
|
98
94
|
fileURLToPath(parent),
|
|
99
95
|
'"exports" cannot contain numeric property keys'
|
|
100
96
|
);
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
target = findPackageTarget(data[property]);
|
|
104
|
-
if (target)
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
97
|
+
if ((property === condition || new Set(conditions).has(property)) && (target = findPackageTarget(data[property]), target))
|
|
98
|
+
break;
|
|
107
99
|
}
|
|
108
100
|
break;
|
|
109
|
-
case
|
|
110
|
-
target = data
|
|
111
|
-
switch (true) {
|
|
101
|
+
case isString(data):
|
|
102
|
+
switch (target = cast(data), !0) {
|
|
112
103
|
case (internal && PACKAGE_NAME_REGEX.test(target)):
|
|
113
104
|
break;
|
|
114
|
-
case target.startsWith(
|
|
115
|
-
if (invalidSegmentRegex().test(target.slice(2)))
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
105
|
+
case target.startsWith(DOT + pathe.sep):
|
|
106
|
+
if (invalidSegmentRegex().test(target.slice(2)) && invalidSegmentRegex("deprecated").test(target.slice(2)))
|
|
107
|
+
throw new ERR_INVALID_PACKAGE_TARGET(
|
|
108
|
+
fileURLToPath(dir),
|
|
109
|
+
key,
|
|
110
|
+
target,
|
|
111
|
+
internal,
|
|
112
|
+
fileURLToPath(parent)
|
|
113
|
+
);
|
|
126
114
|
break;
|
|
127
115
|
default:
|
|
128
116
|
throw new ERR_INVALID_PACKAGE_TARGET(
|
|
@@ -145,16 +133,13 @@ const parseSubpath = (specifier, context, options) => {
|
|
|
145
133
|
}
|
|
146
134
|
return target;
|
|
147
135
|
};
|
|
148
|
-
|
|
149
|
-
context = { ".": context };
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
136
|
+
return !internal && isExportsSugar(context, pkg, parent) && (context = cast({ [DOT]: context })), {
|
|
152
137
|
base,
|
|
153
138
|
internal,
|
|
154
139
|
key,
|
|
155
140
|
raw: id.path,
|
|
156
141
|
specifier: id.raw,
|
|
157
|
-
target: findPackageTarget(context
|
|
142
|
+
target: findPackageTarget(get(context, key))
|
|
158
143
|
};
|
|
159
144
|
};
|
|
160
145
|
var parse_subpath_default = parseSubpath;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/parse-subpath.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"names": [
|
|
9
|
+
"parent"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/pattern-character.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
4
7
|
"mappings": "AAUA,MAAM,oBAA4B;AAElC,IAAO,4BAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import isFile from "../internal/is-file.mjs";
|
|
2
1
|
import validateString from "../internal/validate-string.mjs";
|
|
3
2
|
import validateURLString from "../internal/validate-url-string.mjs";
|
|
4
3
|
import {
|
|
@@ -6,18 +5,18 @@ import {
|
|
|
6
5
|
} from "@flex-development/errnode";
|
|
7
6
|
import pathe from "@flex-development/pathe";
|
|
8
7
|
import {
|
|
8
|
+
DOT,
|
|
9
|
+
cast,
|
|
9
10
|
isEmptyString,
|
|
10
11
|
isNIL,
|
|
11
12
|
isUndefined
|
|
12
13
|
} from "@flex-development/tutils";
|
|
13
14
|
import fs from "node:fs";
|
|
14
15
|
import { fileURLToPath } from "node:url";
|
|
16
|
+
import isFile from "./is-file.mjs";
|
|
15
17
|
import toURL from "./to-url.mjs";
|
|
16
|
-
const readPackageJson = (dir =
|
|
17
|
-
validateURLString(dir, "dir");
|
|
18
|
-
!isUndefined(specifier) && validateString(specifier, "specifier");
|
|
19
|
-
!isUndefined(parent) && validateURLString(parent, "parent");
|
|
20
|
-
dir = fileURLToPath(toURL(dir));
|
|
18
|
+
const readPackageJson = (dir = DOT, specifier, parent) => {
|
|
19
|
+
validateURLString(dir, "dir"), !isUndefined(specifier) && validateString(specifier, "specifier"), !isUndefined(parent) && validateURLString(parent, "parent"), dir = fileURLToPath(toURL(dir));
|
|
21
20
|
const path = pathe.toNamespacedPath(pathe.join(dir, "package.json"));
|
|
22
21
|
if (!isFile(path))
|
|
23
22
|
return null;
|
|
@@ -26,15 +25,19 @@ const readPackageJson = (dir = ".", specifier, parent) => {
|
|
|
26
25
|
pkg = JSON.parse(fs.readFileSync(path, "utf8"));
|
|
27
26
|
} catch (e) {
|
|
28
27
|
let base;
|
|
29
|
-
switch (
|
|
28
|
+
switch (!0) {
|
|
30
29
|
case (specifier && !isNIL(parent) && !isEmptyString(parent)):
|
|
31
30
|
base = `'${specifier}' from ${fileURLToPath(toURL(parent))}`;
|
|
32
31
|
break;
|
|
33
|
-
case
|
|
32
|
+
case specifier?.startsWith("file:"):
|
|
34
33
|
base = fileURLToPath(specifier);
|
|
35
34
|
break;
|
|
36
35
|
}
|
|
37
|
-
throw new ERR_INVALID_PACKAGE_CONFIG(
|
|
36
|
+
throw new ERR_INVALID_PACKAGE_CONFIG(
|
|
37
|
+
path,
|
|
38
|
+
base,
|
|
39
|
+
cast(e).message
|
|
40
|
+
);
|
|
38
41
|
}
|
|
39
42
|
return pkg;
|
|
40
43
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/read-package-json.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,OAEK;AACP,OAAO,WAAW;AAElB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AACP,OAAO,QAAQ;AACf,SAAS,qBAAqB;AAC9B,OAAO,YAAY;AACnB,OAAO,WAAW;AAmBlB,MAAM,kBAAkB,CACtB,MAAgB,KAChB,WACA,WAC0B;AAE1B,oBAAkB,KAAK,KAAK,GAG5B,CAAC,YAAY,SAAS,KAAK,eAAe,WAAW,WAAW,GAGhE,CAAC,YAAY,MAAM,KAAK,kBAAkB,QAAQ,QAAQ,GAG1D,MAAM,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,GAAY;AAQnB,QAAI;AAGJ,YAAQ,IAAM;AAAA,MACZ,MAAK,aAAa,CAAC,MAAM,MAAM,KAAK,CAAC,cAAc,MAAM;AACvD,eAAO,IAAI,SAAS,UAAU,cAAc,MAAM,MAAO,CAAC,CAAC;AAC3D;AAAA,MACF,KAAK,WAAW,WAAW,OAAO;AAChC,eAAO,cAAc,SAAU;AAC/B;AAAA,IACJ;AAEA,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,MACA,KAAkB,CAAC,EAAE;AAAA,IACvB;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,4BAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
import regexp from "../internal/escape-reg-exp.mjs";
|
|
2
1
|
import validateArraySet from "../internal/validate-array-set.mjs";
|
|
3
2
|
import validateBoolean from "../internal/validate-boolean.mjs";
|
|
4
3
|
import validateObject from "../internal/validate-object.mjs";
|
|
5
4
|
import validateString from "../internal/validate-string.mjs";
|
|
6
5
|
import validateURLString from "../internal/validate-url-string.mjs";
|
|
7
6
|
import pathe from "@flex-development/pathe";
|
|
8
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
CompareResult,
|
|
9
|
+
DOT,
|
|
10
|
+
flat,
|
|
11
|
+
get,
|
|
12
|
+
includes,
|
|
13
|
+
isNIL,
|
|
14
|
+
isNull,
|
|
15
|
+
keys,
|
|
16
|
+
regexp,
|
|
17
|
+
sort
|
|
18
|
+
} from "@flex-development/tutils";
|
|
9
19
|
import { URL, pathToFileURL } from "node:url";
|
|
10
20
|
import compareSubpaths from "./compare-subpaths.mjs";
|
|
11
21
|
import CONDITIONS from "./conditions.mjs";
|
|
@@ -18,33 +28,23 @@ import toRelativeSpecifier from "./to-relative-specifier.mjs";
|
|
|
18
28
|
import toURL from "./to-url.mjs";
|
|
19
29
|
const resolveAlias = async (specifier, options = {}) => {
|
|
20
30
|
const {
|
|
21
|
-
absolute =
|
|
31
|
+
absolute = !0,
|
|
22
32
|
aliases = {},
|
|
23
33
|
condition = "default",
|
|
24
34
|
conditions = CONDITIONS,
|
|
25
|
-
cwd = pathToFileURL(
|
|
35
|
+
cwd = pathToFileURL(DOT),
|
|
26
36
|
ext,
|
|
27
37
|
extensions = RESOLVE_EXTENSIONS,
|
|
28
38
|
parent = import.meta.url,
|
|
29
|
-
preserveSymlinks =
|
|
39
|
+
preserveSymlinks = !1
|
|
30
40
|
} = options;
|
|
31
|
-
validateString(specifier, "specifier");
|
|
32
|
-
validateBoolean(absolute, "options.absolute");
|
|
33
|
-
validateObject(aliases, "options.aliases");
|
|
34
|
-
validateString(condition, "options.condition");
|
|
35
|
-
validateArraySet(conditions, "options.conditions");
|
|
36
|
-
validateURLString(cwd, "options.cwd");
|
|
37
|
-
validateArraySet(extensions, "options.extensions");
|
|
38
|
-
validateURLString(parent, "options.parent");
|
|
39
|
-
validateBoolean(preserveSymlinks, "options.preserveSymlinks");
|
|
41
|
+
validateString(specifier, "specifier"), validateBoolean(absolute, "options.absolute"), validateObject(aliases, "options.aliases"), validateString(condition, "options.condition"), validateArraySet(conditions, "options.conditions"), validateURLString(cwd, "options.cwd"), validateArraySet(extensions, "options.extensions"), validateURLString(parent, "options.parent"), validateBoolean(preserveSymlinks, "options.preserveSymlinks");
|
|
40
42
|
const id = parseModuleId(specifier, {
|
|
41
43
|
parent: toURL(parent),
|
|
42
|
-
pkgname:
|
|
44
|
+
pkgname: !1
|
|
43
45
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
let trail = "";
|
|
47
|
-
for (const key of keys) {
|
|
46
|
+
let alias = null, trail = "";
|
|
47
|
+
for (const key of sort(keys(aliases), compareSubpaths)) {
|
|
48
48
|
const pattern = key.indexOf(PATTERN_CHARACTER);
|
|
49
49
|
if (pattern === -1 && key === id.raw) {
|
|
50
50
|
alias = key;
|
|
@@ -52,35 +52,30 @@ const resolveAlias = async (specifier, options = {}) => {
|
|
|
52
52
|
}
|
|
53
53
|
if (pattern !== -1 && id.raw.startsWith(key.slice(0, pattern))) {
|
|
54
54
|
const trailer = key.slice(pattern + 1);
|
|
55
|
-
|
|
56
|
-
alias = key;
|
|
57
|
-
trail = id.raw.slice(pattern, id.raw.length - trailer.length);
|
|
58
|
-
}
|
|
55
|
+
id.raw.length >= key.length && id.raw.endsWith(trailer) && compareSubpaths(alias ?? "", key) === CompareResult.GREATER_THAN && key.lastIndexOf(PATTERN_CHARACTER) === pattern && (alias = key, trail = id.raw.slice(pattern, id.raw.length - trailer.length));
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
|
-
if (alias
|
|
58
|
+
if (isNull(alias) || isNIL(aliases[alias]))
|
|
62
59
|
return specifier;
|
|
63
60
|
const base = toURL(cwd).href.replace(/\/$/, "") + pathe.sep;
|
|
64
61
|
let url = null;
|
|
65
|
-
for (let segment of [aliases[
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
);
|
|
71
|
-
}
|
|
62
|
+
for (let segment of flat([get(aliases, alias, [])])) {
|
|
63
|
+
includes(segment, PATTERN_CHARACTER) && (segment = segment.replace(
|
|
64
|
+
new RegExp(`${regexp(PATTERN_CHARACTER)}$`),
|
|
65
|
+
trail
|
|
66
|
+
));
|
|
72
67
|
let tries = new Set(
|
|
73
68
|
[
|
|
74
69
|
"",
|
|
75
70
|
...[...extensions].map((ext2) => pathe.formatExt(ext2)),
|
|
76
71
|
...[...extensions].map((ext2) => "/index" + pathe.formatExt(ext2))
|
|
77
|
-
].map((suffix) => segment + suffix).filter((segment2) => segment2.length
|
|
72
|
+
].map((suffix) => segment + suffix).filter((segment2) => !!segment2.length).map((segment2) => new URL(segment2, base).pathname)
|
|
78
73
|
);
|
|
79
74
|
if (segment.startsWith("node_modules")) {
|
|
80
75
|
const [trypath = ""] = [...tries];
|
|
81
76
|
tries = /* @__PURE__ */ new Set([trypath.replace(/.*\/node_modules\//, ""), ...tries]);
|
|
82
77
|
}
|
|
83
|
-
for (const trypath of tries)
|
|
78
|
+
for (const trypath of tries)
|
|
84
79
|
try {
|
|
85
80
|
url = await resolveModule(trypath, {
|
|
86
81
|
condition,
|
|
@@ -94,7 +89,6 @@ const resolveAlias = async (specifier, options = {}) => {
|
|
|
94
89
|
} catch {
|
|
95
90
|
continue;
|
|
96
91
|
}
|
|
97
|
-
}
|
|
98
92
|
if (url)
|
|
99
93
|
break;
|
|
100
94
|
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/resolve-alias.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"names": [
|
|
9
|
+
"ext",
|
|
10
|
+
"segment"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import { SpecifierSyntaxKind } from "../enums/index.mjs";
|
|
2
|
-
import regexp from "
|
|
2
|
+
import { regexp } from "@flex-development/tutils";
|
|
3
3
|
import extractStatements from "./extract-statements.mjs";
|
|
4
4
|
import resolveAlias from "./resolve-alias.mjs";
|
|
5
5
|
const resolveAliases = async (code, options = {}) => {
|
|
6
|
-
for (const statement of extractStatements(code))
|
|
7
|
-
if (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
);
|
|
21
|
-
}
|
|
6
|
+
for (const statement of extractStatements(code))
|
|
7
|
+
if (statement.specifier && statement.specifier_syntax !== SpecifierSyntaxKind.DYNAMIC) {
|
|
8
|
+
const specifier = await resolveAlias(
|
|
9
|
+
statement.specifier,
|
|
10
|
+
options
|
|
11
|
+
);
|
|
12
|
+
specifier !== statement.specifier && (code = code.replace(
|
|
13
|
+
statement.code,
|
|
14
|
+
statement.code.replace(
|
|
15
|
+
new RegExp(`(?<=["'])${regexp(statement.specifier)}(?=["'])`),
|
|
16
|
+
specifier
|
|
17
|
+
)
|
|
18
|
+
));
|
|
19
|
+
}
|
|
22
20
|
return code;
|
|
23
21
|
};
|
|
24
22
|
var resolve_aliases_default = resolveAliases;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/resolve-aliases.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA,SAAS,2BAA2B;AAEpC,SAAS,cAAc;AACvB,OAAO,uBAAuB;AAC9B,OAAO,kBAAkB;AAczB,MAAM,iBAAiB,OACrB,MACA,UAA+B,CAAC,MACZ;AACpB,aAAW,aAAa,kBAAkB,IAAI;AAC5C,QAAI,UAAU,aACR,UAAU,qBAAqB,oBAAoB,SAAS;AAM9D,YAAM,YAAoB,MAAM;AAAA,QAC9B,UAAU;AAAA,QACV;AAAA,MACF;AAGA,MAAI,cAAc,UAAU,cAC1B,OAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,UAAU,KAAK;AAAA,UACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,CAAC,UAAU;AAAA,UAC5D;AAAA,QACF;AAAA,MACF;AAAA,IAEJ;AAIJ,SAAO;AACT;AAEA,IAAO,0BAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/resolve-extensions.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
4
7
|
"mappings": "AAcA,MAAM,qBAA+B,oBAAI,IAAI;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAO,6BAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import isFunction from "../internal/is-function.mjs";
|
|
2
1
|
import Resolver from "../internal/resolver.mjs";
|
|
3
2
|
import validateArraySet from "../internal/validate-array-set.mjs";
|
|
4
3
|
import validateBoolean from "../internal/validate-boolean.mjs";
|
|
@@ -7,7 +6,8 @@ import validateURLString from "../internal/validate-url-string.mjs";
|
|
|
7
6
|
import { ErrorCode } from "@flex-development/errnode";
|
|
8
7
|
import { isBuiltin } from "@flex-development/is-builtin";
|
|
9
8
|
import pathe from "@flex-development/pathe";
|
|
10
|
-
import {
|
|
9
|
+
import { cast, isFunction } from "@flex-development/tutils";
|
|
10
|
+
import { URL, fileURLToPath } from "node:url";
|
|
11
11
|
import CONDITIONS from "./conditions.mjs";
|
|
12
12
|
import RESOLVE_EXTENSIONS from "./resolve-extensions.mjs";
|
|
13
13
|
const resolveModule = async (specifier, options = {}) => {
|
|
@@ -16,33 +16,22 @@ const resolveModule = async (specifier, options = {}) => {
|
|
|
16
16
|
conditions = CONDITIONS,
|
|
17
17
|
extensions = RESOLVE_EXTENSIONS,
|
|
18
18
|
parent = import.meta.url,
|
|
19
|
-
preserveSymlinks =
|
|
19
|
+
preserveSymlinks = !1
|
|
20
20
|
} = options;
|
|
21
|
-
validateString(specifier, "specifier");
|
|
22
|
-
|
|
23
|
-
validateArraySet(conditions, "options.conditions");
|
|
24
|
-
validateArraySet(extensions, "options.extensions");
|
|
25
|
-
validateURLString(parent, "options.parent");
|
|
26
|
-
validateBoolean(preserveSymlinks, "options.preserveSymlinks");
|
|
27
|
-
const resolver = new Resolver();
|
|
28
|
-
const onetry = isBuiltin(specifier) || /^\S+:/.test(specifier) && !specifier.startsWith("file:");
|
|
29
|
-
const tries = onetry ? [] : [...extensions].flatMap((ext) => [
|
|
21
|
+
validateString(specifier, "specifier"), validateString(condition, "options.condition"), validateArraySet(conditions, "options.conditions"), validateArraySet(extensions, "options.extensions"), validateURLString(parent, "options.parent"), validateBoolean(preserveSymlinks, "options.preserveSymlinks");
|
|
22
|
+
const resolver = new Resolver(), onetry = isBuiltin(specifier) || /^\S+:/.test(specifier) && !specifier.startsWith("file:"), tries = onetry ? [] : [...extensions].flatMap((ext) => [
|
|
30
23
|
specifier + (ext = pathe.formatExt(ext)),
|
|
31
24
|
specifier.startsWith("#") ? specifier + "/index" : "",
|
|
32
25
|
specifier + "/index" + ext
|
|
33
|
-
]).filter((id) => id.length
|
|
34
|
-
|
|
35
|
-
specifier.startsWith("@types") ? tries.unshift(specifier + "/index.d.ts") : tries.unshift("@types/" + specifier + "/index.d.ts");
|
|
36
|
-
}
|
|
37
|
-
tries.unshift(specifier);
|
|
26
|
+
]).filter((id) => !!id.length);
|
|
27
|
+
onetry || (specifier.startsWith("@types") ? tries.unshift(specifier + "/index.d.ts") : tries.unshift("@types/" + specifier + "/index.d.ts")), tries.unshift(specifier);
|
|
38
28
|
const ignore = /* @__PURE__ */ new Set([
|
|
39
29
|
ErrorCode.ERR_INVALID_MODULE_SPECIFIER,
|
|
40
30
|
ErrorCode.ERR_MODULE_NOT_FOUND,
|
|
41
31
|
ErrorCode.ERR_PACKAGE_PATH_NOT_EXPORTED,
|
|
42
32
|
ErrorCode.ERR_UNSUPPORTED_DIR_IMPORT
|
|
43
33
|
]);
|
|
44
|
-
let error;
|
|
45
|
-
let url = null;
|
|
34
|
+
let error, url = null;
|
|
46
35
|
for (const id of tries) {
|
|
47
36
|
try {
|
|
48
37
|
url = resolver.resolveModule(
|
|
@@ -53,10 +42,7 @@ const resolveModule = async (specifier, options = {}) => {
|
|
|
53
42
|
preserveSymlinks
|
|
54
43
|
);
|
|
55
44
|
} catch (e) {
|
|
56
|
-
url = null
|
|
57
|
-
if (id === specifier)
|
|
58
|
-
error = e;
|
|
59
|
-
if (!ignore.has(e.code))
|
|
45
|
+
if (url = null, id === specifier && (error = cast(e)), !ignore.has(cast(e).code))
|
|
60
46
|
throw e;
|
|
61
47
|
}
|
|
62
48
|
if (url)
|
|
@@ -66,9 +52,7 @@ const resolveModule = async (specifier, options = {}) => {
|
|
|
66
52
|
throw error;
|
|
67
53
|
if (url.protocol === "file:") {
|
|
68
54
|
let { ext } = options;
|
|
69
|
-
ext = isFunction(ext) ? await ext(specifier, url) : ext;
|
|
70
|
-
url.href = pathe.changeExt(url.href, ext).replace(/\/index$/, "");
|
|
71
|
-
url.pathname = fileURLToPath(url.href);
|
|
55
|
+
ext = isFunction(ext) ? await ext(specifier, url) : ext, url.href = pathe.changeExt(url.href, ext).replace(/\/index$/, ""), url.pathname = fileURLToPath(url.href);
|
|
72
56
|
}
|
|
73
57
|
return url;
|
|
74
58
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/resolve-module.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAMA,OAAO,cAAc;AACrB,OAAO,sBAAsB;AAC7B,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAC9B,SAAS,iBAAiC;AAC1C,SAAS,iBAAiB;AAC1B,OAAO,WAAW;AAClB,SAAS,MAAM,kBAAiC;AAChD,SAAS,KAAK,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,GAGrC,eAAe,WAAW,mBAAmB,GAC7C,iBAAiB,YAAY,oBAAoB,GACjD,iBAAiB,YAAY,oBAAoB,GACjD,kBAAkB,QAAQ,gBAAgB,GAC1C,gBAAgB,kBAAkB,0BAA0B;AAO5D,QAAM,WAAqB,IAAI,SAAS,GAOlC,SACJ,UAAU,SAAS,KAClB,QAAQ,KAAK,SAAS,KAAK,CAAC,UAAU,WAAW,OAAO,GAOrD,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,CAAC,CAAC,GAAG,MAAM;AAG/B,EAAK,WACH,UAAU,WAAW,QAAQ,IACzB,MAAM,QAAQ,YAAY,aAAa,IACvC,MAAM,QAAQ,YAAY,YAAY,aAAa,IAIzD,MAAM,QAAQ,SAAS;AAUvB,QAAM,SAAyB,oBAAI,IAAe;AAAA,IAChD,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAOD,MAAI,OAOA,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,GAAY;AAGnB,UAFA,MAAM,MACF,OAAO,cAAW,QAAQ,KAAK,CAAC,IAChC,CAAC,OAAO,IAAI,KAAgB,CAAC,EAAE,IAAI;AAAG,cAAM;AAAA,IAClD;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,KAGpD,IAAI,OAAO,MAAM,UAAU,IAAI,MAAM,GAAG,EAAE,QAAQ,YAAY,EAAE,GAChE,IAAI,WAAW,cAAc,IAAI,IAAI;AAAA,EACvC;AAEA,SAAO;AACT;AAEA,IAAO,yBAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
import { SpecifierSyntaxKind } from "../enums/index.mjs";
|
|
2
|
-
import regexp from "
|
|
2
|
+
import { regexp } from "@flex-development/tutils";
|
|
3
3
|
import extractStatements from "./extract-statements.mjs";
|
|
4
4
|
import resolveModule from "./resolve-module.mjs";
|
|
5
5
|
const resolveModules = async (code, options = {}) => {
|
|
6
|
-
for (const statement of extractStatements(code))
|
|
7
|
-
if (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
)
|
|
18
|
-
);
|
|
19
|
-
}
|
|
6
|
+
for (const statement of extractStatements(code))
|
|
7
|
+
if (statement.specifier && statement.specifier_syntax !== SpecifierSyntaxKind.DYNAMIC) {
|
|
8
|
+
const url = await resolveModule(statement.specifier, options);
|
|
9
|
+
code = code.replace(
|
|
10
|
+
statement.code,
|
|
11
|
+
statement.code.replace(
|
|
12
|
+
new RegExp(`(?<=["'])${regexp(statement.specifier)}(?=["'])`),
|
|
13
|
+
url.href
|
|
14
|
+
)
|
|
15
|
+
);
|
|
16
|
+
}
|
|
20
17
|
return code;
|
|
21
18
|
};
|
|
22
19
|
var resolve_modules_default = resolveModules;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/resolve-modules.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA,SAAS,2BAA2B;AAEpC,SAAS,cAAc;AAEvB,OAAO,uBAAuB;AAC9B,OAAO,mBAAmB;AAoB1B,MAAM,iBAAiB,OACrB,MACA,UAAgC,CAAC,MACb;AACpB,aAAW,aAAa,kBAAkB,IAAI;AAC5C,QAAI,UAAU,aACR,UAAU,qBAAqB,oBAAoB,SAAS;AAM9D,YAAM,MAAW,MAAM,cAAc,UAAU,WAAW,OAAO;AAGjE,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,UAAU,KAAK;AAAA,UACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,CAAC,UAAU;AAAA,UAC5D,IAAI;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAIJ,SAAO;AACT;AAEA,IAAO,0BAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|