@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
|
@@ -3,13 +3,16 @@
|
|
|
3
3
|
* @module mlly/internal/validateString
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Checks if
|
|
6
|
+
* Checks if `value` is a string.
|
|
7
7
|
*
|
|
8
|
-
* Throws [`ERR_INVALID_ARG_TYPE`][1] if
|
|
8
|
+
* Throws [`ERR_INVALID_ARG_TYPE`][1] if `value` is not a string.
|
|
9
9
|
*
|
|
10
10
|
* [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
|
|
11
11
|
*
|
|
12
12
|
* @see {@linkcode ERR_INVALID_ARG_TYPE}
|
|
13
|
+
* @see {@linkcode NodeError}
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
13
16
|
*
|
|
14
17
|
* @param {unknown} value - Value supplied by user
|
|
15
18
|
* @param {string} name - Name of invalid argument or property
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
|
|
2
|
+
import { isString } from "@flex-development/tutils";
|
|
2
3
|
const validateString = (value, name) => {
|
|
3
|
-
if (
|
|
4
|
-
return
|
|
4
|
+
if (isString(value))
|
|
5
|
+
return !0;
|
|
5
6
|
throw new ERR_INVALID_ARG_TYPE(name, "string", value);
|
|
6
7
|
};
|
|
7
8
|
var validate_string_default = validateString;
|
|
8
9
|
export {
|
|
9
10
|
validate_string_default as default
|
|
10
11
|
};
|
|
11
|
-
//# sourceMappingURL=validate-string.mjs.map
|
|
@@ -5,14 +5,16 @@
|
|
|
5
5
|
/// <reference types="node" />
|
|
6
6
|
import { URL } from 'node:url';
|
|
7
7
|
/**
|
|
8
|
-
* Checks if
|
|
8
|
+
* Checks if `value` is an instance of {@linkcode URL} or a string.
|
|
9
9
|
*
|
|
10
|
-
* Throws [`ERR_INVALID_ARG_TYPE`][1] if
|
|
10
|
+
* Throws [`ERR_INVALID_ARG_TYPE`][1] if `value` is of neither type.
|
|
11
11
|
*
|
|
12
12
|
* [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
|
|
13
13
|
*
|
|
14
14
|
* @see {@linkcode ERR_INVALID_ARG_TYPE}
|
|
15
15
|
*
|
|
16
|
+
* @internal
|
|
17
|
+
*
|
|
16
18
|
* @param {unknown} value - Value supplied by user
|
|
17
19
|
* @param {string} name - Name of invalid argument or property
|
|
18
20
|
* @return {value is URL | string} `true` if `value` is `URL` instance or string
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
|
|
2
|
+
import { isString } from "@flex-development/tutils";
|
|
2
3
|
import { URL } from "node:url";
|
|
3
4
|
const validateURLString = (value, name) => {
|
|
4
|
-
if (value instanceof URL ||
|
|
5
|
-
return
|
|
5
|
+
if (value instanceof URL || isString(value))
|
|
6
|
+
return !0;
|
|
6
7
|
throw new ERR_INVALID_ARG_TYPE(name, ["URL", "string"], value);
|
|
7
8
|
};
|
|
8
9
|
var validate_url_string_default = validateURLString;
|
|
9
10
|
export {
|
|
10
11
|
validate_url_string_default as default
|
|
11
12
|
};
|
|
12
|
-
//# sourceMappingURL=validate-url-string.mjs.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @module mlly/types/ChangeExtFn
|
|
4
4
|
*/
|
|
5
5
|
/// <reference types="node" />
|
|
6
|
-
import type { Nilable } from '@flex-development/tutils';
|
|
6
|
+
import type { Fn, Nilable } from '@flex-development/tutils';
|
|
7
7
|
import type { URL } from 'node:url';
|
|
8
8
|
/**
|
|
9
9
|
* Function that returns a new file extension for the given module `specifier`.
|
|
@@ -18,11 +18,14 @@ import type { URL } from 'node:url';
|
|
|
18
18
|
* @see {@linkcode URL}
|
|
19
19
|
* @see https://github.com/flex-development/pathe/tree/1.0.3#changeextpath-string-ext-nullablestring-string
|
|
20
20
|
*
|
|
21
|
-
* @template
|
|
21
|
+
* @template X - File extension type
|
|
22
22
|
*
|
|
23
23
|
* @param {string} specifier - Original module specifier
|
|
24
24
|
* @param {URL} url - Resolved module URL
|
|
25
|
-
* @return {
|
|
25
|
+
* @return {PromiseLike<X> | X} New file extension, `null`, or `undefined`
|
|
26
26
|
*/
|
|
27
|
-
type ChangeExtFn<
|
|
27
|
+
type ChangeExtFn<X extends Nilable<string> = Nilable<string>> = Fn<[
|
|
28
|
+
specifier: string,
|
|
29
|
+
url: URL
|
|
30
|
+
], PromiseLike<X> | X>;
|
|
28
31
|
export type { ChangeExtFn as default };
|
package/dist/types/index.mjs
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -3,18 +3,13 @@ import { CompareResult } from "@flex-development/tutils";
|
|
|
3
3
|
import assert from "node:assert";
|
|
4
4
|
import PATTERN_CHARACTER from "./pattern-character.mjs";
|
|
5
5
|
const compareSubpaths = (subpath1, subpath2) => {
|
|
6
|
-
validateString(subpath1, "subpath1");
|
|
7
|
-
|
|
8
|
-
let pattern1 = -1;
|
|
9
|
-
let pattern2 = -1;
|
|
6
|
+
validateString(subpath1, "subpath1"), validateString(subpath2, "subpath2");
|
|
7
|
+
let pattern1 = -1, pattern2 = -1;
|
|
10
8
|
for (const [index, subpath] of [subpath1, subpath2].entries()) {
|
|
11
|
-
const message = `'${subpath}' is expected to contain a single '*'
|
|
12
|
-
|
|
13
|
-
assert(pattern_index === subpath.lastIndexOf(PATTERN_CHARACTER), message);
|
|
14
|
-
index === 0 ? pattern1 = pattern_index : pattern2 = pattern_index;
|
|
9
|
+
const message = `'${subpath}' is expected to contain a single '*'`, pattern_index = subpath.indexOf(PATTERN_CHARACTER);
|
|
10
|
+
assert(pattern_index === subpath.lastIndexOf(PATTERN_CHARACTER), message), index === 0 ? pattern1 = pattern_index : pattern2 = pattern_index;
|
|
15
11
|
}
|
|
16
|
-
const length1 = pattern1 === -1 ? subpath1.length : pattern1 + 1;
|
|
17
|
-
const length2 = pattern2 === -1 ? subpath2.length : pattern2 + 1;
|
|
12
|
+
const length1 = pattern1 === -1 ? subpath1.length : pattern1 + 1, length2 = pattern2 === -1 ? subpath2.length : pattern2 + 1;
|
|
18
13
|
return length1 > length2 ? CompareResult.LESS_THAN : length2 > length1 ? CompareResult.GREATER_THAN : pattern1 === -1 ? CompareResult.GREATER_THAN : pattern2 === -1 ? CompareResult.LESS_THAN : subpath1.length > subpath2.length ? CompareResult.LESS_THAN : subpath2.length > subpath1.length ? CompareResult.GREATER_THAN : CompareResult.EQUAL;
|
|
19
14
|
};
|
|
20
15
|
var compare_subpaths_default = compareSubpaths;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/compare-subpaths.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA,OAAO,oBAAoB;AAE3B,SAAS,qBAAqB;AAC9B,OAAO,YAAY;AACnB,OAAO,uBAAuB;AAoB9B,MAAM,kBAAkB,CAAC,UAAkB,aAAoC;AAC7E,iBAAe,UAAU,UAAU,GACnC,eAAe,UAAU,UAAU;AAOnC,MAAI,WAAmB,IAOnB,WAAmB;AAGvB,aAAW,CAAC,OAAO,OAAO,KAAK,CAAC,UAAU,QAAQ,EAAE,QAAQ,GAAG;AAM7D,UAAM,UAAkB,IAAI,OAAO,yCAO7B,gBAAwB,QAAQ,QAAQ,iBAAiB;AAG/D,WAAO,kBAAkB,QAAQ,YAAY,iBAAiB,GAAG,OAAO,GAGxE,UAAU,IAAK,WAAW,gBAAkB,WAAW;AAAA,EACzD;AAOA,QAAM,UAAkB,aAAa,KAAK,SAAS,SAAS,WAAW,GAOjE,UAAkB,aAAa,KAAK,SAAS,SAAS,WAAW;AAEvE,SAAO,UAAU,UACb,cAAc,YACd,UAAU,UACV,cAAc,eACd,aAAa,KACb,cAAc,eACd,aAAa,KACb,cAAc,YACd,SAAS,SAAS,SAAS,SAC3B,cAAc,YACd,SAAS,SAAS,SAAS,SAC3B,cAAc,eACd,cAAc;AACpB;AAEA,IAAO,2BAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/conditions.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
4
7
|
"mappings": "AAYA,MAAM,aAA0B,oBAAI,IAAI,CAAC,QAAQ,QAAQ,CAAC;AAE1D,IAAO,qBAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import hasCJSSyntax from "./has-cjs-syntax.mjs";
|
|
2
2
|
import hasESMSyntax from "./has-esm-syntax.mjs";
|
|
3
3
|
const detectSyntax = (code) => {
|
|
4
|
-
const cjs = hasCJSSyntax(code);
|
|
5
|
-
const esm = hasESMSyntax(code);
|
|
4
|
+
const cjs = hasCJSSyntax(code), esm = hasESMSyntax(code);
|
|
6
5
|
return { cjs, esm, mixed: cjs && esm };
|
|
7
6
|
};
|
|
8
7
|
var detect_syntax_default = detectSyntax;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/detect-syntax.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA,OAAO,kBAAkB;AACzB,OAAO,kBAAkB;AAazB,MAAM,eAAe,CACnB,SACmD;AAMnD,QAAM,MAAe,aAAa,IAAI,GAOhC,MAAe,aAAa,IAAI;AAEtC,SAAO,EAAE,KAAK,KAAK,OAAO,OAAO,IAAI;AACvC;AAEA,IAAO,wBAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/extension-format-map.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
4
7
|
"mappings": "AAKA,SAAS,cAAc;AAWvB,MAAM,uBAAyC,oBAAI,IAAiB;AAAA,EAClE,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACxB,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACxB,CAAC,UAAU,OAAO,QAAQ;AAAA,EAC1B,CAAC,UAAU,OAAO,MAAM;AAAA,EACxB,CAAC,SAAS,OAAO,MAAM;AAAA,EACvB,CAAC,OAAO,OAAO,MAAM;AAAA,EACrB,CAAC,SAAS,OAAO,IAAI;AAAA,EACrB,CAAC,QAAQ,OAAO,MAAM;AAAA,EACtB,CAAC,QAAQ,OAAO,MAAM;AAAA,EACtB,CAAC,QAAQ,OAAO,MAAM;AAAA,EACtB,CAAC,SAAS,OAAO,QAAQ;AAAA,EACzB,CAAC,OAAO,OAAO,MAAM;AAAA,EACrB,CAAC,QAAQ,OAAO,MAAM;AAAA,EACtB,CAAC,SAAS,OAAO,IAAI;AACvB,CAAC;AAED,IAAO,+BAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import validateString from "../internal/validate-string.mjs";
|
|
2
|
+
import { sort, trim } from "@flex-development/tutils";
|
|
2
3
|
import findDynamicImports from "./find-dynamic-imports.mjs";
|
|
3
4
|
import findExports from "./find-exports.mjs";
|
|
4
5
|
import findRequires from "./find-requires.mjs";
|
|
5
6
|
import findStaticImports from "./find-static-imports.mjs";
|
|
6
|
-
const extractStatements = (code = "") =>
|
|
7
|
-
|
|
8
|
-
if (code.trim().length < "export".length)
|
|
9
|
-
return [];
|
|
10
|
-
return [
|
|
7
|
+
const extractStatements = (code = "") => (validateString(code, "code"), trim(code).length < 6 ? [] : sort(
|
|
8
|
+
[
|
|
11
9
|
...findDynamicImports(code),
|
|
12
10
|
...findExports(code),
|
|
13
11
|
...findRequires(code),
|
|
14
12
|
...findStaticImports(code)
|
|
15
|
-
]
|
|
16
|
-
|
|
13
|
+
],
|
|
14
|
+
(s1, s2) => s1.start - s2.start
|
|
15
|
+
));
|
|
17
16
|
var extract_statements_default = extractStatements;
|
|
18
17
|
export {
|
|
19
18
|
extract_statements_default as default
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/extract-statements.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAMA,OAAO,oBAAoB;AAE3B,SAAS,MAAM,YAAY;AAC3B,OAAO,wBAAwB;AAC/B,OAAO,iBAAiB;AACxB,OAAO,kBAAkB;AACzB,OAAO,uBAAuB;AAgB9B,MAAM,oBAAoB,CAAC,OAAe,QACxC,eAAe,MAAM,MAAM,GAGvB,KAAK,IAAI,EAAE,SAAS,IAAwB,CAAC,IAE1C;AAAA,EACL;AAAA,IACE,GAAG,mBAAmB,IAAI;AAAA,IAC1B,GAAG,YAAY,IAAI;AAAA,IACnB,GAAG,aAAa,IAAI;AAAA,IACpB,GAAG,kBAAkB,IAAI;AAAA,EAC3B;AAAA,EACA,CAAC,IAAe,OAA0B,GAAG,QAAQ,GAAG;AAC1D;AAGF,IAAO,6BAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { SpecifierSyntaxKind } from "../enums/index.mjs";
|
|
2
|
-
import regexp from "../internal/escape-reg-exp.mjs";
|
|
3
|
-
import isFunction from "../internal/is-function.mjs";
|
|
4
2
|
import validateArraySet from "../internal/validate-array-set.mjs";
|
|
5
3
|
import validateURLString from "../internal/validate-url-string.mjs";
|
|
6
4
|
import {
|
|
7
5
|
ERR_UNKNOWN_FILE_EXTENSION
|
|
8
6
|
} from "@flex-development/errnode";
|
|
9
7
|
import pathe from "@flex-development/pathe";
|
|
8
|
+
import {
|
|
9
|
+
DOT,
|
|
10
|
+
isFunction,
|
|
11
|
+
regexp,
|
|
12
|
+
trim
|
|
13
|
+
} from "@flex-development/tutils";
|
|
10
14
|
import CONDITIONS from "./conditions.mjs";
|
|
11
15
|
import extractStatements from "./extract-statements.mjs";
|
|
12
16
|
import isAbsoluteSpecifier from "./is-absolute-specifier.mjs";
|
|
@@ -16,51 +20,44 @@ import toBareSpecifier from "./to-bare-specifier.mjs";
|
|
|
16
20
|
import toRelativeSpecifier from "./to-relative-specifier.mjs";
|
|
17
21
|
const fillModules = async (code, options) => {
|
|
18
22
|
const { conditions = CONDITIONS, ext, parent = import.meta.url } = options;
|
|
19
|
-
validateArraySet(conditions, "options.conditions");
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return
|
|
46
|
-
if (pathe.extname(specifier) === pathe.extname(url2.href))
|
|
47
|
-
return void 0;
|
|
48
|
-
const rext = isFunction(ext) ? await ext(specifier, url2) : ext;
|
|
49
|
-
if (!(rext && rext.trim().length > (rext.startsWith(".") ? 1 : 0))) {
|
|
50
|
-
throw new ERR_UNKNOWN_FILE_EXTENSION(rext, specifier);
|
|
23
|
+
validateArraySet(conditions, "options.conditions"), validateURLString(parent, "options.parent");
|
|
24
|
+
for (const statement of extractStatements(code))
|
|
25
|
+
if (statement.specifier && statement.specifier_syntax !== SpecifierSyntaxKind.DYNAMIC) {
|
|
26
|
+
const url = await resolveModule(statement.specifier, {
|
|
27
|
+
...options,
|
|
28
|
+
/**
|
|
29
|
+
* Returns a replacement file extension for the given `specifier` if
|
|
30
|
+
* it is non-bare and does not already have an extension.
|
|
31
|
+
*
|
|
32
|
+
* Throws [`ERR_UNKNOWN_FILE_EXTENSION`][1] if the new extension is
|
|
33
|
+
* `null`, `undefined`, an empty string, or a dot character (`'.'`).
|
|
34
|
+
*
|
|
35
|
+
* [1]: https://nodejs.org/api/errors.html#err_unknown_file_extension
|
|
36
|
+
*
|
|
37
|
+
* @async
|
|
38
|
+
*
|
|
39
|
+
* @param {string} specifier - Module specifier
|
|
40
|
+
* @param {URL} url - Resolved module URL
|
|
41
|
+
* @return {Promise<Optional<string>>} New file extension
|
|
42
|
+
*/
|
|
43
|
+
async ext(specifier, url2) {
|
|
44
|
+
if (isBareSpecifier(specifier) || pathe.extname(specifier) === pathe.extname(url2.href))
|
|
45
|
+
return;
|
|
46
|
+
const rext = isFunction(ext) ? await ext(specifier, url2) : ext;
|
|
47
|
+
if (!(rext && trim(rext).length > (rext.startsWith(DOT) ? 1 : 0)))
|
|
48
|
+
throw new ERR_UNKNOWN_FILE_EXTENSION(rext, specifier);
|
|
49
|
+
return rext;
|
|
51
50
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
);
|
|
63
|
-
}
|
|
51
|
+
});
|
|
52
|
+
code = code.replace(
|
|
53
|
+
statement.code,
|
|
54
|
+
statement.code.replace(
|
|
55
|
+
new RegExp(`(?<=["'])${regexp(statement.specifier)}(?=["'])`),
|
|
56
|
+
// convert module url back to absolute, bare, or relative specifier
|
|
57
|
+
statement.specifier.startsWith("#") ? statement.specifier : isAbsoluteSpecifier(statement.specifier) ? url.href : isBareSpecifier(statement.specifier) ? toBareSpecifier(url, parent, new Set(conditions)) : toRelativeSpecifier(url, parent)
|
|
58
|
+
)
|
|
59
|
+
);
|
|
60
|
+
}
|
|
64
61
|
return code;
|
|
65
62
|
};
|
|
66
63
|
var fill_modules_default = fillModules;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/fill-modules.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA,SAAS,2BAA2B;AAEpC,OAAO,sBAAsB;AAC7B,OAAO,uBAAuB;AAC9B;AAAA,EACE;AAAA,OAEK;AACP,OAAO,WAAW;AAClB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,OAAO,gBAAgB;AACvB,OAAO,uBAAuB;AAC9B,OAAO,yBAAyB;AAChC,OAAO,qBAAqB;AAC5B,OAAO,mBAAmB;AAC1B,OAAO,qBAAqB;AAC5B,OAAO,yBAAyB;AAmBhC,MAAM,cAAc,OAClB,MACA,YACoB;AACpB,QAAM,EAAE,aAAa,YAAY,KAAK,SAAS,YAAY,IAAI,IAAI;AAGnE,mBAAiB,YAAY,oBAAoB,GACjD,kBAAkB,QAAQ,gBAAgB;AAG1C,aAAW,aAAa,kBAAkB,IAAI;AAC5C,QAAI,UAAU,aACR,UAAU,qBAAqB,oBAAoB,SAAS;AAM9D,YAAM,MAAW,MAAM,cAAc,UAAU,WAAW;AAAA,QACxD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAgBH,MAAM,IAAI,WAAmBA,MAAqC;AAKhE,cAHI,gBAAgB,SAAS,KAGzB,MAAM,QAAQ,SAAS,MAAM,MAAM,QAAQA,KAAI,IAAI;AACrD;AAQF,gBAAM,OAAe,WAAW,GAAG,IAC/B,MAAM,IAAI,WAAWA,IAAG,IACxB;AAGJ,cAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,UAAU,KAAK,WAAW,GAAG,IAAI,IAAI;AAC5D,kBAAM,IAAI,2BAA2B,MAAM,SAAS;AAGtD,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AAGD,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,UAAU,KAAK;AAAA,UACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,CAAC,UAAU;AAAA;AAAA,UAE5D,UAAU,UAAU,WAAW,GAAG,IAC9B,UAAU,YACV,oBAAoB,UAAU,SAAS,IACvC,IAAI,OACJ,gBAAgB,UAAU,SAAS,IACnC,gBAAgB,KAAK,QAAQ,IAAI,IAAI,UAAU,CAAC,IAChD,oBAAoB,KAAK,MAAM;AAAA,QACrC;AAAA,MACF;AAAA,IACF;AAIJ,SAAO;AACT;AAEA,IAAO,uBAAQ;",
|
|
8
|
+
"names": [
|
|
9
|
+
"url"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -3,35 +3,32 @@ import {
|
|
|
3
3
|
StatementKind,
|
|
4
4
|
StatementSyntaxKind
|
|
5
5
|
} from "../enums/index.mjs";
|
|
6
|
+
import dequote from "../internal/dequote.mjs";
|
|
6
7
|
import getSpecifierKind from "../internal/get-specifier-kind.mjs";
|
|
7
8
|
import validateString from "../internal/validate-string.mjs";
|
|
8
9
|
import { DYNAMIC_IMPORT_REGEX } from "@flex-development/import-regex";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
syntax: StatementSyntaxKind.DYNAMIC
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
};
|
|
10
|
+
import { split, trim } from "@flex-development/tutils";
|
|
11
|
+
const findDynamicImports = (code = "") => (validateString(code, "code"), [...code.matchAll(DYNAMIC_IMPORT_REGEX)].map((match) => {
|
|
12
|
+
const { 0: code2 = "", index: start = 0, groups = {} } = match, {
|
|
13
|
+
expression = "",
|
|
14
|
+
imports = "",
|
|
15
|
+
options = "",
|
|
16
|
+
specifier = ""
|
|
17
|
+
} = groups, specifier_syntax = /^["']/.test(specifier) ? SpecifierSyntaxKind.STATIC : SpecifierSyntaxKind.DYNAMIC;
|
|
18
|
+
return {
|
|
19
|
+
code: code2,
|
|
20
|
+
end: start + code2.length,
|
|
21
|
+
expression,
|
|
22
|
+
imports: imports === "" ? [] : split(imports.replace(/^{|}$/g, ""), ",").map(trim).filter((e) => !!e.length),
|
|
23
|
+
kind: StatementKind.IMPORT,
|
|
24
|
+
options,
|
|
25
|
+
specifier: dequote(specifier),
|
|
26
|
+
specifier_kind: specifier_syntax === SpecifierSyntaxKind.DYNAMIC ? null : getSpecifierKind(specifier),
|
|
27
|
+
specifier_syntax,
|
|
28
|
+
start,
|
|
29
|
+
syntax: StatementSyntaxKind.DYNAMIC
|
|
30
|
+
};
|
|
31
|
+
}));
|
|
35
32
|
var find_dynamic_imports_default = findDynamicImports;
|
|
36
33
|
export {
|
|
37
34
|
find_dynamic_imports_default as default
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/find-dynamic-imports.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,OAAO,aAAa;AACpB,OAAO,sBAAsB;AAC7B,OAAO,oBAAoB;AAE3B,SAAS,4BAA4B;AACrC,SAAS,OAAO,YAAY;AAa5B,MAAM,qBAAqB,CAAC,OAAe,QACzC,eAAe,MAAM,MAAM,GAEpB,CAAC,GAAG,KAAK,SAAS,oBAAoB,CAAC,EAAE,IAAI,WAAS;AAC3D,QAAM,EAAE,GAAGA,QAAO,IAAI,OAAO,QAAQ,GAAG,SAAS,CAAC,EAAE,IAAI,OAClD;AAAA,IACJ,aAAa;AAAA,IACb,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,EACd,IAAI,QAOE,mBAAwC,QAAQ,KAAK,SAAS,IAChE,oBAAoB,SACpB,oBAAoB;AAExB,SAAO;AAAA,IACL,MAAAA;AAAA,IACA,KAAK,QAAQA,MAAK;AAAA,IAClB;AAAA,IACA,SACE,YAAY,KACR,CAAC,IACD,MAAM,QAAQ,QAAQ,UAAU,EAAE,GAAG,GAAG,EACrC,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM;AAAA,IAC/B,MAAM,cAAc;AAAA,IACpB;AAAA,IACA,WAAW,QAAQ,SAAS;AAAA,IAC5B,gBACE,qBAAqB,oBAAoB,UACrC,OACA,iBAAiB,SAAS;AAAA,IAChC;AAAA,IACA;AAAA,IACA,QAAQ,oBAAoB;AAAA,EAC9B;AACF,CAAC;AAGH,IAAO,+BAAQ;",
|
|
8
|
+
"names": [
|
|
9
|
+
"code"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -11,17 +11,17 @@ import {
|
|
|
11
11
|
EXPORT_DEFAULT_REGEX,
|
|
12
12
|
EXPORT_LIST_REGEX
|
|
13
13
|
} from "@flex-development/export-regex";
|
|
14
|
+
import { cast, sort, split, trim } from "@flex-development/tutils";
|
|
14
15
|
const findExports = (code = "") => {
|
|
15
16
|
validateString(code, "code");
|
|
16
17
|
const statements = [];
|
|
17
18
|
for (const match of code.matchAll(EXPORT_AGGREGATE_REGEX)) {
|
|
18
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match;
|
|
19
|
-
const { exports = "", specifier = "", type = "" } = groups;
|
|
19
|
+
const { 0: code2 = "", index: start = 0, groups = {} } = match, { exports = "", specifier = "", type = "" } = groups;
|
|
20
20
|
statements.push({
|
|
21
21
|
code: code2,
|
|
22
22
|
declaration: null,
|
|
23
23
|
end: start + code2.length,
|
|
24
|
-
exports: exports.startsWith("*") ? [exports] : exports.replace(/^{|}$/g, "")
|
|
24
|
+
exports: exports.startsWith("*") ? [exports] : split(exports.replace(/^{|}$/g, ""), ",").map(trim).filter((e) => !!e.length),
|
|
25
25
|
kind: StatementKind.EXPORT,
|
|
26
26
|
modifiers: [],
|
|
27
27
|
specifier,
|
|
@@ -33,49 +33,46 @@ const findExports = (code = "") => {
|
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
for (const match of code.matchAll(EXPORT_DECLARATION_REGEX)) {
|
|
36
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match;
|
|
37
|
-
const { declaration = "", exports = "", modifiers = "" } = groups;
|
|
36
|
+
const { 0: code2 = "", index: start = 0, groups = {} } = match, { declaration = "", exports = "", modifiers = "" } = groups;
|
|
38
37
|
statements.push({
|
|
39
38
|
code: code2,
|
|
40
|
-
declaration,
|
|
39
|
+
declaration: cast(declaration),
|
|
41
40
|
end: start + code2.length,
|
|
42
|
-
exports: /^\w+$/.test(exports) ? [exports] : exports.replace(/^[[{]|[\]}]$/g, "")
|
|
41
|
+
exports: /^\w+$/.test(exports) ? [exports] : split(exports.replace(/^[[{]|[\]}]$/g, ""), ",").map((e) => trim(e).replace(/\s*=\s*.*$/, "")).filter((e) => !!e.length),
|
|
43
42
|
kind: StatementKind.EXPORT,
|
|
44
|
-
modifiers: modifiers === "" ? [] :
|
|
43
|
+
modifiers: modifiers === "" ? [] : split(modifiers, " ").map(trim).filter((e) => !!e.length),
|
|
45
44
|
specifier: null,
|
|
46
45
|
specifier_kind: null,
|
|
47
46
|
specifier_syntax: null,
|
|
48
47
|
start,
|
|
49
48
|
syntax: StatementSyntaxKind.DECLARATION,
|
|
50
|
-
type:
|
|
49
|
+
type: !1
|
|
51
50
|
});
|
|
52
51
|
}
|
|
53
52
|
for (const match of code.matchAll(EXPORT_DEFAULT_REGEX)) {
|
|
54
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match;
|
|
55
|
-
const { exports = "", kind: declaration = "", modifiers = "" } = groups;
|
|
53
|
+
const { 0: code2 = "", index: start = 0, groups = {} } = match, { exports = "", kind: declaration = "", modifiers = "" } = groups;
|
|
56
54
|
statements.push({
|
|
57
55
|
code: code2,
|
|
58
|
-
declaration: declaration ? declaration : null,
|
|
56
|
+
declaration: declaration ? cast(declaration) : null,
|
|
59
57
|
end: start + code2.length,
|
|
60
58
|
exports: exports === "" ? [] : [exports],
|
|
61
59
|
kind: StatementKind.EXPORT,
|
|
62
|
-
modifiers: modifiers === "" ? [] :
|
|
60
|
+
modifiers: modifiers === "" ? [] : split(modifiers, " ").map(trim).filter((e) => !!e.length),
|
|
63
61
|
specifier: null,
|
|
64
62
|
specifier_kind: null,
|
|
65
63
|
specifier_syntax: null,
|
|
66
64
|
start,
|
|
67
65
|
syntax: StatementSyntaxKind.DEFAULT,
|
|
68
|
-
type:
|
|
66
|
+
type: !1
|
|
69
67
|
});
|
|
70
68
|
}
|
|
71
69
|
for (const match of code.matchAll(EXPORT_LIST_REGEX)) {
|
|
72
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match;
|
|
73
|
-
const { exports = "", type = "" } = groups;
|
|
70
|
+
const { 0: code2 = "", index: start = 0, groups = {} } = match, { exports = "", type = "" } = groups;
|
|
74
71
|
statements.push({
|
|
75
72
|
code: code2,
|
|
76
73
|
declaration: null,
|
|
77
74
|
end: start + code2.length,
|
|
78
|
-
exports: exports.replace(/^{|}$/g, "")
|
|
75
|
+
exports: split(exports.replace(/^{|}$/g, ""), ",").map(trim).filter((e) => !!e.length),
|
|
79
76
|
kind: StatementKind.EXPORT,
|
|
80
77
|
modifiers: [],
|
|
81
78
|
specifier: null,
|
|
@@ -86,9 +83,7 @@ const findExports = (code = "") => {
|
|
|
86
83
|
type: !!type
|
|
87
84
|
});
|
|
88
85
|
}
|
|
89
|
-
return
|
|
90
|
-
return s1.start - s2.start;
|
|
91
|
-
});
|
|
86
|
+
return sort(statements, (s1, s2) => s1.start - s2.start);
|
|
92
87
|
};
|
|
93
88
|
var find_exports_default = findExports;
|
|
94
89
|
export {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/find-exports.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
|
+
"code"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -3,21 +3,21 @@ import {
|
|
|
3
3
|
StatementKind,
|
|
4
4
|
StatementSyntaxKind
|
|
5
5
|
} from "../enums/index.mjs";
|
|
6
|
+
import dequote from "../internal/dequote.mjs";
|
|
6
7
|
import getSpecifierKind from "../internal/get-specifier-kind.mjs";
|
|
7
8
|
import validateString from "../internal/validate-string.mjs";
|
|
9
|
+
import { split, trim } from "@flex-development/tutils";
|
|
8
10
|
const findRequires = (code = "") => {
|
|
9
11
|
validateString(code, "code");
|
|
10
12
|
const REQUIRE_REGEX = /(?<=^|[\s,:;([])\b(?:(?:const\s*|let\s*|var\s*)?(?:(?<=(?:const\s*|let\s*|var\s*))(?<imports>(?:[$_\p{ID_Start}][$\u200C\u200D\p{ID_Continue}]*)|(?:[\w\t\n\r "$'*,./:{}-]+?)))?\s*=?\s*(?<kind>require)\((?<specifier>["']?[\S\t\n\r]+?["']?)\))(?<!(?:\/\/|\*).*)/gu;
|
|
11
13
|
return [...code.matchAll(REQUIRE_REGEX)].map((match) => {
|
|
12
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match;
|
|
13
|
-
const { imports = "", specifier = "" } = groups;
|
|
14
|
-
const specifier_syntax = /^["']/.test(specifier) ? SpecifierSyntaxKind.STATIC : SpecifierSyntaxKind.DYNAMIC;
|
|
14
|
+
const { 0: code2 = "", index: start = 0, groups = {} } = match, { imports = "", specifier = "" } = groups, specifier_syntax = /^["']/.test(specifier) ? SpecifierSyntaxKind.STATIC : SpecifierSyntaxKind.DYNAMIC;
|
|
15
15
|
return {
|
|
16
16
|
code: code2,
|
|
17
17
|
end: start + code2.length,
|
|
18
|
-
imports: imports === "" ? [] : imports.replace(/^{|}$/g, "")
|
|
18
|
+
imports: imports === "" ? [] : split(imports.replace(/^{|}$/g, ""), ",").map(trim).filter((e) => !!e.length),
|
|
19
19
|
kind: StatementKind.REQUIRE,
|
|
20
|
-
specifier: specifier
|
|
20
|
+
specifier: dequote(specifier),
|
|
21
21
|
specifier_kind: specifier_syntax === SpecifierSyntaxKind.DYNAMIC ? null : getSpecifierKind(specifier),
|
|
22
22
|
specifier_syntax,
|
|
23
23
|
start,
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/find-requires.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,OAAO,aAAa;AACpB,OAAO,sBAAsB;AAC7B,OAAO,oBAAoB;AAE3B,SAAS,OAAO,YAAY;AAa5B,MAAM,eAAe,CAAC,OAAe,OAA2B;AAC9D,iBAAe,MAAM,MAAM;AAO3B,QAAM,gBACJ;AAEF,SAAO,CAAC,GAAG,KAAK,SAAS,aAAa,CAAC,EAAE,IAAI,WAAS;AACpD,UAAM,EAAE,GAAGA,QAAO,IAAI,OAAO,QAAQ,GAAG,SAAS,CAAC,EAAE,IAAI,OAClD,EAAE,UAAU,IAAI,YAAY,GAAG,IAAI,QAOnC,mBAAwC,QAAQ,KAAK,SAAS,IAChE,oBAAoB,SACpB,oBAAoB;AAExB,WAAO;AAAA,MACL,MAAAA;AAAA,MACA,KAAK,QAAQA,MAAK;AAAA,MAClB,SACE,YAAY,KACR,CAAC,IACD,MAAM,QAAQ,QAAQ,UAAU,EAAE,GAAG,GAAG,EACrC,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM;AAAA,MAC/B,MAAM,cAAc;AAAA,MACpB,WAAW,QAAQ,SAAS;AAAA,MAC5B,gBACE,qBAAqB,oBAAoB,UACrC,OACA,iBAAiB,SAAS;AAAA,MAChC;AAAA,MACA;AAAA,MACA,QAAQ,oBAAoB;AAAA,IAC9B;AAAA,EACF,CAAC;AACH;AAEA,IAAO,wBAAQ;",
|
|
8
|
+
"names": [
|
|
9
|
+
"code"
|
|
10
|
+
]
|
|
11
|
+
}
|