@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
|
@@ -6,27 +6,23 @@ import {
|
|
|
6
6
|
import getSpecifierKind from "../internal/get-specifier-kind.mjs";
|
|
7
7
|
import validateString from "../internal/validate-string.mjs";
|
|
8
8
|
import { STATIC_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
|
-
type: !!type
|
|
27
|
-
};
|
|
28
|
-
});
|
|
29
|
-
};
|
|
9
|
+
import { split, trim } from "@flex-development/tutils";
|
|
10
|
+
const findStaticImports = (code = "") => (validateString(code, "code"), [...code.matchAll(STATIC_IMPORT_REGEX)].map((match) => {
|
|
11
|
+
const { 0: code2 = "", index: start = 0, groups = {} } = match, { assertion = "", imports = "", specifier = "", type = "" } = groups, syntax = imports === "" ? StatementSyntaxKind.SIDE_EFFECT : imports.startsWith("* as") ? StatementSyntaxKind.NAMESPACE : imports.startsWith("{") ? StatementSyntaxKind.NAMED : /^\w+$/.test(imports) ? StatementSyntaxKind.DEFAULT : /^\w+,\s*{/.test(imports) ? StatementSyntaxKind.DEFAULT_WITH_NAMED : StatementSyntaxKind.DEFAULT_WITH_NAMESPACE;
|
|
12
|
+
return {
|
|
13
|
+
assertion,
|
|
14
|
+
code: code2,
|
|
15
|
+
end: start + code2.length,
|
|
16
|
+
imports: syntax === StatementSyntaxKind.SIDE_EFFECT ? [] : syntax === StatementSyntaxKind.NAMED ? split(imports.replace(/^{|}$/g, ""), ",").map(trim).filter((i) => !!i.length) : syntax === StatementSyntaxKind.DEFAULT_WITH_NAMED ? split(imports, ",").map((i) => trim(i).replace(/^{|}$/g, "")).map(trim).filter((i) => !!i.length) : syntax === StatementSyntaxKind.DEFAULT_WITH_NAMESPACE ? split(imports, ",").map(trim).filter((i) => !!i.length) : [imports],
|
|
17
|
+
kind: StatementKind.IMPORT,
|
|
18
|
+
specifier,
|
|
19
|
+
specifier_kind: getSpecifierKind(specifier),
|
|
20
|
+
specifier_syntax: SpecifierSyntaxKind.STATIC,
|
|
21
|
+
start,
|
|
22
|
+
syntax,
|
|
23
|
+
type: !!type
|
|
24
|
+
};
|
|
25
|
+
}));
|
|
30
26
|
var find_static_imports_default = findStaticImports;
|
|
31
27
|
export {
|
|
32
28
|
find_static_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-static-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,sBAAsB;AAC7B,OAAO,oBAAoB;AAE3B,SAAS,2BAA2B;AACpC,SAAS,OAAO,YAAY;AAa5B,MAAM,oBAAoB,CAAC,OAAe,QACxC,eAAe,MAAM,MAAM,GAEpB,CAAC,GAAG,KAAK,SAAS,mBAAmB,CAAC,EAAE,IAAI,WAAS;AAC1D,QAAM,EAAE,GAAGA,QAAO,IAAI,OAAO,QAAQ,GAAG,SAAS,CAAC,EAAE,IAAI,OAClD,EAAE,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,OAAO,GAAG,IAAI,QAO9D,SACJ,YAAY,KACR,oBAAoB,cACpB,QAAQ,WAAW,MAAM,IACzB,oBAAoB,YACpB,QAAQ,WAAW,GAAG,IACtB,oBAAoB,QACpB,QAAQ,KAAK,OAAO,IACpB,oBAAoB,UACpB,YAAY,KAAK,OAAO,IACxB,oBAAoB,qBACpB,oBAAoB;AAE1B,SAAO;AAAA,IACL;AAAA,IACA,MAAAA;AAAA,IACA,KAAK,QAAQA,MAAK;AAAA,IAClB,SACE,WAAW,oBAAoB,cAC3B,CAAC,IACD,WAAW,oBAAoB,QAC/B,MAAM,QAAQ,QAAQ,UAAU,EAAE,GAAG,GAAG,EACrC,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM,IACzB,WAAW,oBAAoB,qBAC/B,MAAM,SAAS,GAAG,EACf,IAAI,OAAK,KAAK,CAAC,EAAE,QAAQ,UAAU,EAAE,CAAC,EACtC,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM,IACzB,WAAW,oBAAoB,yBAC/B,MAAM,SAAS,GAAG,EACf,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM,IACzB,CAAC,OAAO;AAAA,IACd,MAAM,cAAc;AAAA,IACpB;AAAA,IACA,gBAAgB,iBAAiB,SAAS;AAAA,IAC1C,kBAAkB,oBAAoB;AAAA,IACtC;AAAA,IACA;AAAA,IACA,MAAM,CAAC,CAAC;AAAA,EACV;AACF,CAAC;AAGH,IAAO,8BAAQ;",
|
|
8
|
+
"names": [
|
|
9
|
+
"code"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { FindSubpathOptions } from '../interfaces/index.mjs';
|
|
6
6
|
import type { Exports, Imports } from '@flex-development/pkg-types';
|
|
7
|
-
import { type Nullable } from '@flex-development/tutils';
|
|
7
|
+
import { type Nilable, type Nullable } from '@flex-development/tutils';
|
|
8
8
|
/**
|
|
9
9
|
* Finds the subpath defined in `context`, a `package.json` [`exports`][1] or
|
|
10
10
|
* [`imports`][2] field, that maps to the given package `target`.
|
|
@@ -22,10 +22,10 @@ import { type Nullable } from '@flex-development/tutils';
|
|
|
22
22
|
* @see https://nodejs.org/api/packages.html#subpath-imports
|
|
23
23
|
*
|
|
24
24
|
* @param {string} target - Package target to find in `context`
|
|
25
|
-
* @param {Exports | Imports
|
|
25
|
+
* @param {Nilable<Exports | Imports>} context - Package context
|
|
26
26
|
* @param {FindSubpathOptions} options - Search options
|
|
27
27
|
* @return {Nullable<string>} Subpath defined in `context` or `null`
|
|
28
28
|
* @throws {NodeError<Error | TypeError>}
|
|
29
29
|
*/
|
|
30
|
-
declare const findSubpath: (target: string, context: Exports | Imports
|
|
30
|
+
declare const findSubpath: (target: string, context: Nilable<Exports | Imports>, options: FindSubpathOptions) => Nullable<string>;
|
|
31
31
|
export default findSubpath;
|
|
@@ -4,7 +4,15 @@ import validateSet from "../internal/validate-set.mjs";
|
|
|
4
4
|
import validateString from "../internal/validate-string.mjs";
|
|
5
5
|
import validateURLString from "../internal/validate-url-string.mjs";
|
|
6
6
|
import pathe from "@flex-development/pathe";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
DOT,
|
|
9
|
+
cast,
|
|
10
|
+
isArray,
|
|
11
|
+
isNIL,
|
|
12
|
+
isObjectCurly,
|
|
13
|
+
isString,
|
|
14
|
+
sort
|
|
15
|
+
} from "@flex-development/tutils";
|
|
8
16
|
import { URL } from "node:url";
|
|
9
17
|
import compareSubpaths from "./compare-subpaths.mjs";
|
|
10
18
|
import CONDITIONS from "./conditions.mjs";
|
|
@@ -16,86 +24,56 @@ const findSubpath = (target, context, options) => {
|
|
|
16
24
|
condition = "default",
|
|
17
25
|
conditions = CONDITIONS,
|
|
18
26
|
dir,
|
|
19
|
-
internal =
|
|
27
|
+
internal = !1,
|
|
20
28
|
parent
|
|
21
29
|
} = options;
|
|
22
30
|
if (isNIL(context))
|
|
23
31
|
return null;
|
|
24
|
-
validateString(target, "target")
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
validateString(condition, "options.condition");
|
|
31
|
-
validateSet(conditions, "options.conditions");
|
|
32
|
-
validateURLString(dir, "options.dir");
|
|
33
|
-
validateBoolean(internal, "options.internal");
|
|
34
|
-
validateURLString(parent, "options.parent");
|
|
35
|
-
const find = (target2, context2, key = ".") => {
|
|
32
|
+
if (validateString(target, "target"), isString(context) && (target === context || target === pathe.changeExt(context, "")))
|
|
33
|
+
return DOT;
|
|
34
|
+
validateString(condition, "options.condition"), validateSet(conditions, "options.conditions"), validateURLString(dir, "options.dir"), validateBoolean(internal, "options.internal"), validateURLString(parent, "options.parent");
|
|
35
|
+
const find = (target2, context2, key = DOT) => {
|
|
36
36
|
let subpath = null;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
break;
|
|
73
|
-
case typeof tar === "string":
|
|
74
|
-
tar = tar;
|
|
75
|
-
const tar_ne = pathe.changeExt(tar, "");
|
|
76
|
-
const tar_ni = tar_ne.replace(/\/index$/, "");
|
|
77
|
-
const pattern = tar.indexOf(PATTERN_CHARACTER);
|
|
78
|
-
switch (true) {
|
|
79
|
-
case target2 === tar:
|
|
80
|
-
case target2 === tar_ne:
|
|
81
|
-
case (target2 === tar_ni && tar_ne.endsWith("/index")):
|
|
82
|
-
case (pattern === -1 && (target2 === tar || target2 === tar_ne)):
|
|
83
|
-
subpath = pkgsubpath;
|
|
84
|
-
break;
|
|
85
|
-
case (pattern !== -1 && target2.startsWith(tar.slice(0, pattern))):
|
|
86
|
-
const match = target2.length >= tar.length && tar.lastIndexOf(PATTERN_CHARACTER) === pattern && (target2.endsWith(tar.slice(pattern + 1)) || target2.endsWith(tar_ne.slice(pattern + 1)));
|
|
87
|
-
if (match)
|
|
88
|
-
subpath = pkgsubpath;
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
if (subpath)
|
|
37
|
+
if (isArray(context2) || isObjectCurly(context2) || isString(context2)) {
|
|
38
|
+
const pkgdir = toURL(dir).href.replace(/\/$/, "") + pathe.sep, pkg = new URL("package.json", pkgdir);
|
|
39
|
+
!internal && isExportsSugar(context2, pkg, parent) && (context2 = cast({ [key]: context2 })), context2 = cast(context2);
|
|
40
|
+
const subpaths = sort(
|
|
41
|
+
getSubpaths(context2, internal, pkg, parent),
|
|
42
|
+
(s1, s2) => compareSubpaths(s1, s2) * -1
|
|
43
|
+
);
|
|
44
|
+
for (const pkgsubpath of subpaths) {
|
|
45
|
+
let tar = context2[pkgsubpath];
|
|
46
|
+
switch (!0) {
|
|
47
|
+
case isArray(tar):
|
|
48
|
+
for (const item of cast(tar))
|
|
49
|
+
if (subpath = find(target2, item, pkgsubpath), subpath)
|
|
50
|
+
break;
|
|
51
|
+
break;
|
|
52
|
+
case isObjectCurly(tar):
|
|
53
|
+
tar = cast(tar);
|
|
54
|
+
for (const property of Object.getOwnPropertyNames(tar))
|
|
55
|
+
if ((property === condition || conditions.has(property)) && (subpath = find(target2, tar[property], pkgsubpath), subpath))
|
|
56
|
+
break;
|
|
57
|
+
break;
|
|
58
|
+
case isString(tar):
|
|
59
|
+
tar = cast(tar);
|
|
60
|
+
const tar_ne = pathe.changeExt(tar, ""), tar_ni = tar_ne.replace(/\/index$/, ""), pattern = tar.indexOf(PATTERN_CHARACTER);
|
|
61
|
+
switch (!0) {
|
|
62
|
+
case target2 === tar:
|
|
63
|
+
case target2 === tar_ne:
|
|
64
|
+
case (target2 === tar_ni && tar_ne.endsWith("/index")):
|
|
65
|
+
case (pattern === -1 && (target2 === tar || target2 === tar_ne)):
|
|
66
|
+
subpath = pkgsubpath;
|
|
67
|
+
break;
|
|
68
|
+
case (pattern !== -1 && target2.startsWith(tar.slice(0, pattern))):
|
|
69
|
+
target2.length >= tar.length && tar.lastIndexOf(PATTERN_CHARACTER) === pattern && (target2.endsWith(tar.slice(pattern + 1)) || target2.endsWith(tar_ne.slice(pattern + 1))) && (subpath = pkgsubpath);
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
94
72
|
break;
|
|
95
73
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
74
|
+
if (subpath)
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
99
77
|
}
|
|
100
78
|
return subpath;
|
|
101
79
|
};
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/find-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
|
+
"target",
|
|
10
|
+
"context"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -6,8 +6,9 @@ import {
|
|
|
6
6
|
ERR_UNKNOWN_FILE_EXTENSION
|
|
7
7
|
} from "@flex-development/errnode";
|
|
8
8
|
import { isBuiltin } from "@flex-development/is-builtin";
|
|
9
|
-
import pathe from "@flex-development/pathe";
|
|
9
|
+
import pathe, {} from "@flex-development/pathe";
|
|
10
10
|
import {
|
|
11
|
+
isEmptyString,
|
|
11
12
|
isUndefined
|
|
12
13
|
} from "@flex-development/tutils";
|
|
13
14
|
import EXTENSION_FORMAT_MAP from "./extension-format-map.mjs";
|
|
@@ -16,28 +17,19 @@ import parseDataURL from "./parse-data-url.mjs";
|
|
|
16
17
|
import toURL from "./to-url.mjs";
|
|
17
18
|
const getFormat = async (id, options = {}) => {
|
|
18
19
|
const {
|
|
19
|
-
experimental_json_modules: json_modules =
|
|
20
|
-
experimental_network_imports: network_imports =
|
|
21
|
-
experimental_wasm_modules: wasm_modules =
|
|
20
|
+
experimental_json_modules: json_modules = !0,
|
|
21
|
+
experimental_network_imports: network_imports = !1,
|
|
22
|
+
experimental_wasm_modules: wasm_modules = !1,
|
|
22
23
|
extension_format_map = EXTENSION_FORMAT_MAP,
|
|
23
|
-
ignore_errors =
|
|
24
|
+
ignore_errors = !1,
|
|
24
25
|
req = {}
|
|
25
26
|
} = options;
|
|
26
|
-
validateBoolean(json_modules, "options.experimental_json_modules");
|
|
27
|
-
|
|
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);
|
|
33
|
-
const mimeToFormat = (value, content_type = false) => {
|
|
27
|
+
validateBoolean(json_modules, "options.experimental_json_modules"), validateBoolean(network_imports, "options.experimental_network_imports"), validateBoolean(wasm_modules, "options.experimental_wasm_modules"), validateBoolean(ignore_errors, "options.ignore_errors"), validateMap(extension_format_map, "options.extension_format_map"), !isUndefined(req) && validateObject(req, "options.req");
|
|
28
|
+
const url = toURL(id), mimeToFormat = (value, content_type = !1) => {
|
|
34
29
|
let format2 = null;
|
|
35
30
|
if (!value)
|
|
36
31
|
return format2;
|
|
37
|
-
|
|
38
|
-
value = value.replace(/;.*/, ",");
|
|
39
|
-
if (!value.startsWith("data:"))
|
|
40
|
-
value = `data:${value}`;
|
|
32
|
+
content_type && (value = value.replace(/;.*/, ",")), value.startsWith("data:") || (value = `data:${value}`);
|
|
41
33
|
try {
|
|
42
34
|
switch (parseDataURL(value).mime) {
|
|
43
35
|
case "application/javascript":
|
|
@@ -65,15 +57,13 @@ const getFormat = async (id, options = {}) => {
|
|
|
65
57
|
format = mimeToFormat(url.href);
|
|
66
58
|
break;
|
|
67
59
|
case "file:":
|
|
68
|
-
const ext = pathe.extname(url.pathname);
|
|
69
|
-
|
|
70
|
-
switch (true) {
|
|
60
|
+
const ext = pathe.extname(url.pathname), scope = lookupPackageScope(url);
|
|
61
|
+
switch (!0) {
|
|
71
62
|
case (scope && ext === ".js"):
|
|
72
63
|
format = scope.pkgjson.type === Format.MODULE ? Format.MODULE : Format.COMMONJS;
|
|
73
64
|
break;
|
|
74
65
|
case extension_format_map.has(ext):
|
|
75
|
-
format = extension_format_map.get(ext)
|
|
76
|
-
switch (true) {
|
|
66
|
+
switch (format = extension_format_map.get(ext), !0) {
|
|
77
67
|
case (format === Format.JSON && !json_modules):
|
|
78
68
|
case (format === Format.WASM && !wasm_modules):
|
|
79
69
|
format = ignore_errors ? void 0 : null;
|
|
@@ -87,10 +77,8 @@ const getFormat = async (id, options = {}) => {
|
|
|
87
77
|
break;
|
|
88
78
|
default:
|
|
89
79
|
let suggestion;
|
|
90
|
-
if (scope && scope.pkgjson.type === Format.MODULE && ext
|
|
91
|
-
const { pkg } = scope;
|
|
92
|
-
const basename = pathe.basename(url.pathname);
|
|
93
|
-
const relative = pathe.relative(pkg, url.pathname).slice(1);
|
|
80
|
+
if (scope && scope.pkgjson.type === Format.MODULE && isEmptyString(ext)) {
|
|
81
|
+
const { pkg } = scope, basename = pathe.basename(url.pathname), relative = pathe.relative(pkg, url.pathname).slice(1);
|
|
94
82
|
suggestion = `Loading extensionless files is not supported inside of "type":"module" package.json contexts. The package.json file ${pkg} caused this "type":"module" context. Try changing ${url.pathname} to have a file extension. Note the "bin" field of package.json can point to a file with an extension, for example {"type":"module","bin":{"${basename}":"${relative}.js"}}`;
|
|
95
83
|
}
|
|
96
84
|
throw new ERR_UNKNOWN_FILE_EXTENSION(ext, url.pathname, suggestion);
|
|
@@ -99,16 +87,13 @@ const getFormat = async (id, options = {}) => {
|
|
|
99
87
|
case "http:":
|
|
100
88
|
case "https:":
|
|
101
89
|
if (network_imports) {
|
|
102
|
-
const { default: fetch } = await import("node-fetch");
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
} else {
|
|
90
|
+
const { default: fetch } = await import("node-fetch"), { headers } = await fetch(url.href, req);
|
|
91
|
+
format = mimeToFormat(headers.get("content-type"), !0);
|
|
92
|
+
} else
|
|
106
93
|
format = ignore_errors ? void 0 : null;
|
|
107
|
-
}
|
|
108
94
|
break;
|
|
109
95
|
case "node:":
|
|
110
|
-
|
|
111
|
-
format = Format.BUILTIN;
|
|
96
|
+
isBuiltin(url) && (format = Format.BUILTIN);
|
|
112
97
|
break;
|
|
113
98
|
default:
|
|
114
99
|
break;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/get-format.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
|
+
"format"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { GetSourceOptions } from '../interfaces/index.mjs';
|
|
6
6
|
import type { ModuleId } from '../types/index.mjs';
|
|
7
|
+
import { type Optional } from '@flex-development/tutils';
|
|
7
8
|
/**
|
|
8
9
|
* Retrieves source code for the given module `id`.
|
|
9
10
|
*
|
|
@@ -22,8 +23,8 @@ import type { ModuleId } from '../types/index.mjs';
|
|
|
22
23
|
*
|
|
23
24
|
* @param {ModuleId} id - Module id to evaluate
|
|
24
25
|
* @param {GetSourceOptions?} [options={}] - Source code retrieval options
|
|
25
|
-
* @return {Promise<Uint8Array | string
|
|
26
|
+
* @return {Promise<Optional<Uint8Array | string>>} Source code for `id`
|
|
26
27
|
* @throws {NodeError} If unsupported URL scheme is encountered
|
|
27
28
|
*/
|
|
28
|
-
declare const getSource: (id: ModuleId, options?: GetSourceOptions) => Promise<Uint8Array | string
|
|
29
|
+
declare const getSource: (id: ModuleId, options?: GetSourceOptions) => Promise<Optional<Uint8Array | string>>;
|
|
29
30
|
export default getSource;
|
|
@@ -13,24 +13,18 @@ import parseDataURL from "./parse-data-url.mjs";
|
|
|
13
13
|
import toURL from "./to-url.mjs";
|
|
14
14
|
const getSource = async (id, options = {}) => {
|
|
15
15
|
const {
|
|
16
|
-
experimental_network_imports: network_imports =
|
|
16
|
+
experimental_network_imports: network_imports = !1,
|
|
17
17
|
format,
|
|
18
|
-
ignore_errors =
|
|
18
|
+
ignore_errors = !1,
|
|
19
19
|
req = {}
|
|
20
20
|
} = options;
|
|
21
|
-
validateBoolean(network_imports, "options.experimental_network_imports")
|
|
22
|
-
|
|
23
|
-
validateBoolean(ignore_errors, "options.ignore_errors");
|
|
24
|
-
!isUndefined(req) && validateObject(req, "options.req");
|
|
25
|
-
if (format === Format.BUILTIN)
|
|
26
|
-
return void 0;
|
|
21
|
+
if (validateBoolean(network_imports, "options.experimental_network_imports"), !isUndefined(format) && validateString(format, "options.format"), validateBoolean(ignore_errors, "options.ignore_errors"), !isUndefined(req) && validateObject(req, "options.req"), format === Format.BUILTIN)
|
|
22
|
+
return;
|
|
27
23
|
const url = toURL(id);
|
|
28
|
-
let err =
|
|
29
|
-
let source = "";
|
|
24
|
+
let err = !1, source = "";
|
|
30
25
|
switch (url.protocol) {
|
|
31
26
|
case "data:":
|
|
32
|
-
const { base64, data } = parseDataURL(url);
|
|
33
|
-
const encoding = base64 ? "base64" : "utf8";
|
|
27
|
+
const { base64, data } = parseDataURL(url), encoding = base64 ? "base64" : "utf8";
|
|
34
28
|
source = Buffer.from(decodeURIComponent(data), encoding).toString();
|
|
35
29
|
break;
|
|
36
30
|
case "file:":
|
|
@@ -41,21 +35,18 @@ const getSource = async (id, options = {}) => {
|
|
|
41
35
|
if (network_imports) {
|
|
42
36
|
const { default: fetch } = await import("node-fetch");
|
|
43
37
|
source = await (await fetch(url.href, req)).text();
|
|
44
|
-
} else
|
|
45
|
-
err =
|
|
46
|
-
}
|
|
38
|
+
} else
|
|
39
|
+
err = !0;
|
|
47
40
|
break;
|
|
48
41
|
case "node:":
|
|
49
42
|
source = void 0;
|
|
50
43
|
break;
|
|
51
44
|
default:
|
|
52
|
-
err =
|
|
45
|
+
err = !0;
|
|
53
46
|
}
|
|
54
47
|
if (!ignore_errors && err) {
|
|
55
48
|
const schemes = ["data", "file"];
|
|
56
|
-
|
|
57
|
-
schemes.push("http", "https");
|
|
58
|
-
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(
|
|
49
|
+
throw network_imports && schemes.push("http", "https"), new ERR_UNSUPPORTED_ESM_URL_SCHEME(
|
|
59
50
|
url,
|
|
60
51
|
schemes,
|
|
61
52
|
os.platform() === "win32"
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/get-source.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
7
|
+
"mappings": "AAKA,SAAS,cAAc;AAEvB,OAAO,qBAAqB;AAC5B,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAE3B;AAAA,EACE;AAAA,OAEK;AACP,SAAS,mBAAkC;AAC3C,OAAO,QAAQ;AACf,OAAO,QAAQ;AAEf,OAAO,UAAU;AACjB,OAAO,kBAAkB;AACzB,OAAO,WAAW;AAuBlB,MAAM,YAAY,OAChB,IACA,UAA4B,CAAC,MACc;AAC3C,QAAM;AAAA,IACJ,8BAA8B,kBAAkB;AAAA,IAChD;AAAA,IACA,gBAAgB;AAAA,IAChB,MAAM,CAAC;AAAA,EACT,IAAI;AAQJ,MANA,gBAAgB,iBAAiB,sCAAsC,GACvE,CAAC,YAAY,MAAM,KAAK,eAAe,QAAQ,gBAAgB,GAC/D,gBAAgB,eAAe,uBAAuB,GACtD,CAAC,YAAY,GAAG,KAAK,eAAe,KAAK,aAAa,GAGlD,WAAW,OAAO;AAAS;AAO/B,QAAM,MAAW,MAAM,EAAE;AASzB,MAAI,MAAe,IAOf,SAAwC;AAG5C,UAAQ,IAAI,UAAU;AAAA,IACpB,KAAK;AACH,YAAM,EAAE,QAAQ,KAAK,IAAI,aAAa,GAAG,GAQnC,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;AACE,cAAM;AAGR;AAAA,IACF,KAAK;AACH,eAAS;AACT;AAAA,IACF;AACE,YAAM;AAAA,EACV;AAGA,MAAI,CAAC,iBAAiB,KAAK;AAMzB,UAAM,UAAoB,CAAC,QAAQ,MAAM;AAGzC,UAAI,mBAAiB,QAAQ,KAAK,QAAQ,OAAO,GAE3C,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
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/has-cjs-syntax.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
4
7
|
"mappings": "AAKA,OAAO,oBAAoB;AAsB3B,MAAM,eAAe,CAAC,SAA0B;AAC9C,iBAAe,MAAM,MAAM;AAS3B,QAAM,mBACJ;AAEF,SAAO,CAAC,CAAC,KAAK,MAAM,gBAAgB;AACtC;AAEA,IAAO,yBAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
3
|
+
"sources": [
|
|
4
|
+
"src/utils/has-esm-syntax.ts"
|
|
5
|
+
],
|
|
6
|
+
"sourceRoot": "https:/github.com/flex-development/mlly/blob/1.0.0-alpha.16",
|
|
4
7
|
"mappings": "AAKA,OAAO,oBAAoB;AAkB3B,MAAM,eAAe,CAAC,SAA0B;AAC9C,iBAAe,MAAM,MAAM;AAS3B,QAAM,mBACJ;AAEF,SAAO,CAAC,CAAC,KAAK,MAAM,gBAAgB;AACtC;AAEA,IAAO,yBAAQ;",
|
|
5
8
|
"names": []
|
|
6
|
-
}
|
|
9
|
+
}
|
package/dist/utils/index.d.mts
CHANGED
|
@@ -19,7 +19,9 @@ export { default as hasCJSSyntax } from './has-cjs-syntax.mjs';
|
|
|
19
19
|
export { default as hasESMSyntax } from './has-esm-syntax.mjs';
|
|
20
20
|
export { default as isAbsoluteSpecifier } from './is-absolute-specifier.mjs';
|
|
21
21
|
export { default as isBareSpecifier } from './is-bare-specifier.mjs';
|
|
22
|
+
export { default as isDirectory } from './is-directory.mjs';
|
|
22
23
|
export { default as isExportsSugar } from './is-exports-sugar.mjs';
|
|
24
|
+
export { default as isFile } from './is-file.mjs';
|
|
23
25
|
export { default as isRelativeSpecifier } from './is-relative-specifier.mjs';
|
|
24
26
|
export { default as lookupPackageScope } from './lookup-package-scope.mjs';
|
|
25
27
|
export { default as parseDataURL } from './parse-data-url.mjs';
|
package/dist/utils/index.mjs
CHANGED
|
@@ -15,32 +15,34 @@ import { default as default15 } from "./has-cjs-syntax.mjs";
|
|
|
15
15
|
import { default as default16 } from "./has-esm-syntax.mjs";
|
|
16
16
|
import { default as default17 } from "./is-absolute-specifier.mjs";
|
|
17
17
|
import { default as default18 } from "./is-bare-specifier.mjs";
|
|
18
|
-
import { default as default19 } from "./is-
|
|
19
|
-
import { default as default20 } from "./is-
|
|
20
|
-
import { default as default21 } from "./
|
|
21
|
-
import { default as default22 } from "./
|
|
22
|
-
import { default as default23 } from "./
|
|
23
|
-
import { default as default24 } from "./parse-
|
|
24
|
-
import { default as default25 } from "./
|
|
25
|
-
import { default as default26 } from "./
|
|
26
|
-
import { default as default27 } from "./
|
|
27
|
-
import { default as default28 } from "./
|
|
28
|
-
import { default as default29 } from "./resolve-
|
|
29
|
-
import { default as default30 } from "./resolve-
|
|
30
|
-
import { default as default31 } from "./resolve-
|
|
31
|
-
import { default as default32 } from "./
|
|
32
|
-
import { default as default33 } from "./
|
|
33
|
-
import { default as default34 } from "./to-
|
|
34
|
-
import { default as default35 } from "./to-
|
|
35
|
-
import { default as default36 } from "./to-
|
|
36
|
-
import { default as default37 } from "./to-url.mjs";
|
|
37
|
-
import { default as default38 } from "./
|
|
38
|
-
import { default as default39 } from "./
|
|
18
|
+
import { default as default19 } from "./is-directory.mjs";
|
|
19
|
+
import { default as default20 } from "./is-exports-sugar.mjs";
|
|
20
|
+
import { default as default21 } from "./is-file.mjs";
|
|
21
|
+
import { default as default22 } from "./is-relative-specifier.mjs";
|
|
22
|
+
import { default as default23 } from "./lookup-package-scope.mjs";
|
|
23
|
+
import { default as default24 } from "./parse-data-url.mjs";
|
|
24
|
+
import { default as default25 } from "./parse-module-id.mjs";
|
|
25
|
+
import { default as default26 } from "./parse-subpath.mjs";
|
|
26
|
+
import { default as default27 } from "./pattern-character.mjs";
|
|
27
|
+
import { default as default28 } from "./read-package-json.mjs";
|
|
28
|
+
import { default as default29 } from "./resolve-alias.mjs";
|
|
29
|
+
import { default as default30 } from "./resolve-aliases.mjs";
|
|
30
|
+
import { default as default31 } from "./resolve-extensions.mjs";
|
|
31
|
+
import { default as default32 } from "./resolve-module.mjs";
|
|
32
|
+
import { default as default33 } from "./resolve-modules.mjs";
|
|
33
|
+
import { default as default34 } from "./to-absolute-specifier.mjs";
|
|
34
|
+
import { default as default35 } from "./to-bare-specifier.mjs";
|
|
35
|
+
import { default as default36 } from "./to-data-url.mjs";
|
|
36
|
+
import { default as default37 } from "./to-node-url.mjs";
|
|
37
|
+
import { default as default38 } from "./to-relative-specifier.mjs";
|
|
38
|
+
import { default as default39 } from "./to-url.mjs";
|
|
39
|
+
import { default as default40 } from "./validate-assertions.mjs";
|
|
40
|
+
import { default as default41 } from "./validate-exports.mjs";
|
|
39
41
|
export {
|
|
40
42
|
default3 as CONDITIONS,
|
|
41
43
|
default5 as EXTENSION_FORMAT_MAP,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
default27 as PATTERN_CHARACTER,
|
|
45
|
+
default31 as RESOLVE_EXTENSIONS,
|
|
44
46
|
default2 as compareSubpaths,
|
|
45
47
|
default4 as detectSyntax,
|
|
46
48
|
default6 as extractStatements,
|
|
@@ -56,24 +58,26 @@ export {
|
|
|
56
58
|
default16 as hasESMSyntax,
|
|
57
59
|
default17 as isAbsoluteSpecifier,
|
|
58
60
|
default18 as isBareSpecifier,
|
|
59
|
-
default19 as
|
|
60
|
-
default20 as
|
|
61
|
-
default21 as
|
|
62
|
-
default22 as
|
|
63
|
-
default23 as
|
|
64
|
-
default24 as
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
default28 as
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
default32 as
|
|
71
|
-
default33 as
|
|
72
|
-
default34 as
|
|
73
|
-
default35 as
|
|
74
|
-
default36 as
|
|
75
|
-
default37 as
|
|
76
|
-
default38 as
|
|
77
|
-
default39 as
|
|
61
|
+
default19 as isDirectory,
|
|
62
|
+
default20 as isExportsSugar,
|
|
63
|
+
default21 as isFile,
|
|
64
|
+
default22 as isRelativeSpecifier,
|
|
65
|
+
default23 as lookupPackageScope,
|
|
66
|
+
default24 as parseDataURL,
|
|
67
|
+
default25 as parseModuleId,
|
|
68
|
+
default26 as parseSubpath,
|
|
69
|
+
default28 as readPackageJson,
|
|
70
|
+
default29 as resolveAlias,
|
|
71
|
+
default30 as resolveAliases,
|
|
72
|
+
default32 as resolveModule,
|
|
73
|
+
default33 as resolveModules,
|
|
74
|
+
default34 as toAbsoluteSpecifier,
|
|
75
|
+
default35 as toBareSpecifier,
|
|
76
|
+
default36 as toDataURL,
|
|
77
|
+
default37 as toNodeURL,
|
|
78
|
+
default38 as toRelativeSpecifier,
|
|
79
|
+
default39 as toURL,
|
|
80
|
+
default40 as validateAssertions,
|
|
81
|
+
default41 as validateExports
|
|
78
82
|
};
|
|
79
83
|
//# sourceMappingURL=index.mjs.map
|