@flex-development/mlly 1.0.0-alpha.1 → 1.0.0-alpha.11
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 +431 -3
- package/README.md +6 -4
- package/changelog.config.ts +404 -0
- package/dist/enums/assert-type.d.mts +21 -0
- package/dist/enums/assert-type.mjs +10 -0
- package/dist/enums/assert-type.mjs.map +6 -0
- package/dist/enums/format.d.mts +17 -0
- package/dist/enums/format.mjs +13 -0
- package/dist/enums/format.mjs.map +6 -0
- package/dist/enums/index.d.mts +10 -0
- package/dist/enums/index.mjs +15 -0
- package/dist/enums/index.mjs.map +6 -0
- package/dist/enums/kind-specifier-syntax.d.mts +14 -0
- package/dist/enums/kind-specifier-syntax.mjs +10 -0
- package/dist/enums/kind-specifier-syntax.mjs.map +6 -0
- package/dist/enums/kind-specifier.d.mts +17 -0
- package/dist/enums/kind-specifier.mjs +11 -0
- package/dist/enums/kind-specifier.mjs.map +6 -0
- package/dist/enums/kind-statement-syntax.d.mts +22 -0
- package/dist/enums/kind-statement-syntax.mjs +18 -0
- package/dist/enums/kind-statement-syntax.mjs.map +6 -0
- package/dist/enums/kind-statement.d.mts +15 -0
- package/dist/enums/kind-statement.mjs +11 -0
- package/dist/enums/kind-statement.mjs.map +6 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +3 -2
- package/dist/index.mjs.map +6 -0
- package/dist/interfaces/import-assertions.d.mts +20 -0
- package/dist/interfaces/import-dynamic.d.mts +26 -6
- package/dist/interfaces/import-static.d.mts +22 -4
- package/dist/interfaces/index.d.mts +12 -0
- package/dist/interfaces/index.mjs +1 -0
- package/dist/interfaces/index.mjs.map +6 -0
- package/dist/interfaces/options-fill-module.d.mts +23 -0
- package/dist/interfaces/options-find-subpath.d.mts +49 -0
- package/dist/interfaces/options-get-format.d.mts +83 -0
- package/dist/interfaces/options-get-source.d.mts +63 -0
- package/dist/interfaces/options-parse-module-id.d.mts +33 -0
- package/dist/interfaces/options-parse-subpath.d.mts +31 -0
- package/dist/interfaces/options-resolve-alias.d.mts +26 -42
- package/dist/interfaces/options-resolve-module.d.mts +64 -0
- package/dist/interfaces/options-resolve.d.mts +7 -52
- package/dist/interfaces/package-scope.d.mts +25 -0
- package/dist/interfaces/parsed-data-url.d.mts +56 -0
- package/dist/interfaces/parsed-module-id.d.mts +80 -0
- package/dist/interfaces/parsed-subpath.d.mts +40 -0
- package/dist/interfaces/statement-export.d.mts +22 -9
- package/dist/interfaces/statement-import.d.mts +15 -4
- package/dist/interfaces/statement-require.d.mts +15 -4
- package/dist/interfaces/statement.d.mts +24 -8
- package/dist/internal/escape-reg-exp.d.mts +16 -0
- package/dist/internal/escape-reg-exp.mjs +10 -0
- package/dist/internal/escape-reg-exp.mjs.map +6 -0
- package/dist/internal/format-type-map.d.mts +17 -0
- package/dist/internal/format-type-map.mjs +13 -0
- package/dist/internal/format-type-map.mjs.map +6 -0
- package/dist/internal/get-specifier-kind.d.mts +17 -0
- package/dist/internal/get-specifier-kind.mjs +14 -0
- package/dist/internal/get-specifier-kind.mjs.map +6 -0
- package/dist/internal/get-subpaths.d.mts +25 -0
- package/dist/internal/get-subpaths.mjs +10 -0
- package/dist/internal/get-subpaths.mjs.map +6 -0
- package/dist/internal/is-array-index.d.mts +15 -0
- package/dist/internal/is-array-index.mjs +9 -0
- package/dist/internal/is-array-index.mjs.map +6 -0
- package/dist/internal/is-directory.d.mts +13 -0
- package/dist/internal/is-directory.mjs +16 -0
- package/dist/internal/is-directory.mjs.map +6 -0
- package/dist/internal/is-file.d.mts +13 -0
- package/dist/internal/is-file.mjs +16 -0
- package/dist/internal/is-file.mjs.map +6 -0
- package/dist/internal/is-function.d.mts +12 -0
- package/dist/internal/is-function.mjs +8 -0
- package/dist/internal/is-function.mjs.map +6 -0
- package/dist/internal/regex-encoded-sep.d.mts +13 -0
- package/dist/internal/regex-encoded-sep.mjs +6 -0
- package/dist/internal/regex-encoded-sep.mjs.map +6 -0
- package/dist/internal/regex-internal-specifier.d.mts +14 -0
- package/dist/internal/regex-internal-specifier.mjs +6 -0
- package/dist/internal/regex-internal-specifier.mjs.map +6 -0
- package/dist/internal/regex-package-name.d.mts +13 -0
- package/dist/internal/regex-package-name.mjs +6 -0
- package/dist/internal/regex-package-name.mjs.map +6 -0
- package/dist/internal/regex-package-path.d.mts +15 -0
- package/dist/internal/regex-package-path.mjs +6 -0
- package/dist/internal/regex-package-path.mjs.map +6 -0
- package/dist/internal/resolver.d.mts +130 -0
- package/dist/internal/resolver.mjs +500 -0
- package/dist/internal/resolver.mjs.map +6 -0
- package/dist/internal/validate-boolean.d.mts +20 -0
- package/dist/internal/validate-boolean.mjs +11 -0
- package/dist/internal/validate-boolean.mjs.map +6 -0
- package/dist/internal/validate-object.d.mts +23 -0
- package/dist/internal/validate-object.mjs +11 -0
- package/dist/internal/validate-object.mjs.map +6 -0
- package/dist/internal/validate-set.d.mts +23 -0
- package/dist/internal/validate-set.mjs +11 -0
- package/dist/internal/validate-set.mjs.map +6 -0
- package/dist/internal/validate-string.d.mts +20 -0
- package/dist/internal/validate-string.mjs +11 -0
- package/dist/internal/validate-string.mjs.map +6 -0
- package/dist/internal/validate-url-string.d.mts +22 -0
- package/dist/internal/validate-url-string.mjs +12 -0
- package/dist/internal/validate-url-string.mjs.map +6 -0
- package/dist/types/declaration.d.mts +1 -1
- package/dist/types/fn-change-ext.d.mts +28 -0
- package/dist/types/index.d.mts +8 -4
- package/dist/types/index.mjs +1 -0
- package/dist/types/index.mjs.map +6 -0
- package/dist/types/mime-type.d.mts +7 -5
- package/dist/types/module-id.d.mts +13 -0
- package/dist/types/module-specifier-type.d.mts +11 -0
- package/dist/types/protocol.d.mts +14 -0
- package/dist/types/syntax-kind-export.d.mts +12 -0
- package/dist/types/syntax-kind-import.d.mts +12 -0
- package/dist/types/syntax-kind-require.d.mts +12 -0
- package/dist/utils/compare-subpaths.d.mts +25 -0
- package/dist/utils/compare-subpaths.mjs +24 -0
- package/dist/utils/compare-subpaths.mjs.map +6 -0
- package/dist/utils/conditions.d.mts +13 -0
- package/dist/utils/conditions.mjs +6 -0
- package/dist/utils/conditions.mjs.map +6 -0
- package/dist/{lib → utils}/detect-syntax.d.mts +4 -4
- package/dist/{lib → utils}/detect-syntax.mjs +1 -0
- package/dist/utils/detect-syntax.mjs.map +6 -0
- package/dist/utils/extension-format-map.d.mts +16 -0
- package/dist/utils/extension-format-map.mjs +22 -0
- package/dist/utils/extension-format-map.mjs.map +6 -0
- package/dist/utils/extract-statements.d.mts +21 -0
- package/dist/{lib → utils}/extract-statements.mjs +4 -1
- package/dist/utils/extract-statements.mjs.map +6 -0
- package/dist/utils/fill-modules.d.mts +23 -0
- package/dist/utils/fill-modules.mjs +64 -0
- package/dist/utils/fill-modules.mjs.map +6 -0
- package/dist/utils/find-dynamic-imports.d.mts +18 -0
- package/dist/utils/find-dynamic-imports.mjs +39 -0
- package/dist/utils/find-dynamic-imports.mjs.map +6 -0
- package/dist/utils/find-exports.d.mts +21 -0
- package/dist/utils/find-exports.mjs +95 -0
- package/dist/utils/find-exports.mjs.map +6 -0
- package/dist/utils/find-requires.d.mts +18 -0
- package/dist/utils/find-requires.mjs +32 -0
- package/dist/utils/find-requires.mjs.map +6 -0
- package/dist/utils/find-static-imports.d.mts +18 -0
- package/dist/utils/find-static-imports.mjs +34 -0
- package/dist/utils/find-static-imports.mjs.map +6 -0
- package/dist/utils/find-subpath.d.mts +30 -0
- package/dist/utils/find-subpath.mjs +106 -0
- package/dist/utils/find-subpath.mjs.map +6 -0
- package/dist/utils/get-format.d.mts +24 -0
- package/dist/utils/get-format.mjs +111 -0
- package/dist/utils/get-format.mjs.map +6 -0
- package/dist/utils/get-source.d.mts +22 -0
- package/dist/utils/get-source.mjs +63 -0
- package/dist/utils/get-source.mjs.map +6 -0
- package/dist/{lib → utils}/has-cjs-syntax.d.mts +5 -2
- package/dist/utils/has-cjs-syntax.mjs +11 -0
- package/dist/utils/has-cjs-syntax.mjs.map +6 -0
- package/dist/{lib → utils}/has-esm-syntax.d.mts +5 -2
- package/dist/utils/has-esm-syntax.mjs +11 -0
- package/dist/utils/has-esm-syntax.mjs.map +6 -0
- package/dist/utils/index.d.mts +42 -0
- package/dist/utils/index.mjs +79 -0
- package/dist/utils/index.mjs.map +6 -0
- package/dist/utils/is-absolute-specifier.d.mts +19 -0
- package/dist/utils/is-absolute-specifier.mjs +25 -0
- package/dist/utils/is-absolute-specifier.mjs.map +6 -0
- package/dist/utils/is-bare-specifier.d.mts +19 -0
- package/dist/utils/is-bare-specifier.mjs +10 -0
- package/dist/utils/is-bare-specifier.mjs.map +6 -0
- package/dist/utils/is-exports-sugar.d.mts +25 -0
- package/dist/utils/is-exports-sugar.mjs +26 -0
- package/dist/utils/is-exports-sugar.mjs.map +6 -0
- package/dist/utils/is-relative-specifier.d.mts +20 -0
- package/dist/utils/is-relative-specifier.mjs +11 -0
- package/dist/utils/is-relative-specifier.mjs.map +6 -0
- package/dist/utils/lookup-package-scope.d.mts +26 -0
- package/dist/utils/lookup-package-scope.mjs +38 -0
- package/dist/utils/lookup-package-scope.mjs.map +6 -0
- package/dist/utils/parse-data-url.d.mts +25 -0
- package/dist/utils/parse-data-url.mjs +25 -0
- package/dist/utils/parse-data-url.mjs.map +6 -0
- package/dist/utils/parse-module-id.d.mts +22 -0
- package/dist/utils/parse-module-id.mjs +122 -0
- package/dist/utils/parse-module-id.mjs.map +6 -0
- package/dist/utils/parse-subpath.d.mts +35 -0
- package/dist/utils/parse-subpath.mjs +54 -0
- package/dist/utils/parse-subpath.mjs.map +6 -0
- package/dist/utils/pattern-character.d.mts +11 -0
- package/dist/utils/pattern-character.mjs +6 -0
- package/dist/utils/pattern-character.mjs.map +6 -0
- package/dist/utils/read-package-json.d.mts +26 -0
- package/dist/utils/read-package-json.mjs +43 -0
- package/dist/utils/read-package-json.mjs.map +6 -0
- package/dist/utils/resolve-alias.d.mts +20 -0
- package/dist/utils/resolve-alias.mjs +106 -0
- package/dist/utils/resolve-alias.mjs.map +6 -0
- package/dist/utils/resolve-aliases.d.mts +19 -0
- package/dist/utils/resolve-aliases.mjs +28 -0
- package/dist/utils/resolve-aliases.mjs.map +6 -0
- package/dist/utils/resolve-extensions.d.mts +14 -0
- package/dist/utils/resolve-extensions.mjs +22 -0
- package/dist/utils/resolve-extensions.mjs.map +6 -0
- package/dist/utils/resolve-module.d.mts +39 -0
- package/dist/utils/resolve-module.mjs +64 -0
- package/dist/utils/resolve-module.mjs.map +6 -0
- package/dist/utils/resolve-modules.d.mts +25 -0
- package/dist/{lib → utils}/resolve-modules.mjs +7 -10
- package/dist/utils/resolve-modules.mjs.map +6 -0
- package/dist/{lib → utils}/to-absolute-specifier.d.mts +6 -6
- package/dist/utils/to-absolute-specifier.mjs +8 -0
- package/dist/utils/to-absolute-specifier.mjs.map +6 -0
- package/dist/utils/to-bare-specifier.d.mts +42 -0
- package/dist/utils/to-bare-specifier.mjs +90 -0
- package/dist/utils/to-bare-specifier.mjs.map +6 -0
- package/dist/{lib → utils}/to-data-url.d.mts +6 -5
- package/dist/{lib → utils}/to-data-url.mjs +4 -0
- package/dist/utils/to-data-url.mjs.map +6 -0
- package/dist/utils/to-node-url.d.mts +19 -0
- package/dist/utils/to-node-url.mjs +10 -0
- package/dist/utils/to-node-url.mjs.map +6 -0
- package/dist/{lib → utils}/to-relative-specifier.d.mts +6 -6
- package/dist/{lib → utils}/to-relative-specifier.mjs +7 -3
- package/dist/utils/to-relative-specifier.mjs.map +6 -0
- package/dist/utils/to-url.d.mts +22 -0
- package/dist/utils/to-url.mjs +12 -0
- package/dist/utils/to-url.mjs.map +6 -0
- package/dist/utils/validate-assertions.d.mts +23 -0
- package/dist/utils/validate-assertions.mjs +52 -0
- package/dist/utils/validate-assertions.mjs.map +6 -0
- package/dist/utils/validate-exports.d.mts +24 -0
- package/dist/utils/validate-exports.mjs +72 -0
- package/dist/utils/validate-exports.mjs.map +6 -0
- package/package.json +106 -83
- package/src/enums/assert-type.ts +23 -0
- package/src/enums/format.ts +19 -0
- package/src/enums/index.ts +11 -0
- package/src/enums/kind-specifier-syntax.ts +16 -0
- package/src/enums/kind-specifier.ts +19 -0
- package/src/enums/kind-statement-syntax.ts +24 -0
- package/src/enums/kind-statement.ts +17 -0
- package/src/index.ts +9 -0
- package/src/interfaces/import-assertions.ts +24 -0
- package/src/interfaces/import-dynamic.ts +48 -0
- package/src/interfaces/import-static.ts +50 -0
- package/src/interfaces/index.ts +25 -0
- package/src/interfaces/options-fill-module.ts +26 -0
- package/src/interfaces/options-find-subpath.ts +56 -0
- package/src/interfaces/options-get-format.ts +92 -0
- package/src/interfaces/options-get-source.ts +70 -0
- package/src/interfaces/options-parse-module-id.ts +38 -0
- package/src/interfaces/options-parse-subpath.ts +36 -0
- package/src/interfaces/options-resolve-alias.ts +59 -0
- package/src/interfaces/options-resolve-module.ts +72 -0
- package/src/interfaces/options-resolve.ts +17 -0
- package/src/interfaces/package-scope.ts +30 -0
- package/src/interfaces/parsed-data-url.ts +63 -0
- package/src/interfaces/parsed-module-id.ts +90 -0
- package/src/interfaces/parsed-subpath.ts +47 -0
- package/src/interfaces/statement-export.ts +52 -0
- package/src/interfaces/statement-import.ts +45 -0
- package/src/interfaces/statement-require.ts +45 -0
- package/src/interfaces/statement.ts +64 -0
- package/src/internal/escape-reg-exp.ts +24 -0
- package/src/internal/format-type-map.ts +26 -0
- package/src/internal/get-specifier-kind.ts +38 -0
- package/src/internal/get-subpaths.ts +41 -0
- package/src/internal/is-array-index.ts +28 -0
- package/src/internal/is-directory.ts +25 -0
- package/src/internal/is-file.ts +25 -0
- package/src/internal/is-function.ts +16 -0
- package/src/internal/regex-encoded-sep.ts +15 -0
- package/src/internal/regex-internal-specifier.ts +17 -0
- package/src/internal/regex-package-name.ts +16 -0
- package/src/internal/regex-package-path.ts +18 -0
- package/src/internal/resolver.ts +783 -0
- package/src/internal/validate-boolean.ts +27 -0
- package/src/internal/validate-object.ts +30 -0
- package/src/internal/validate-set.ts +33 -0
- package/src/internal/validate-string.ts +27 -0
- package/src/internal/validate-url-string.ts +31 -0
- package/src/types/declaration.ts +22 -0
- package/src/types/fn-change-ext.ts +33 -0
- package/src/types/index.ts +14 -0
- package/src/types/mime-type.ts +19 -0
- package/src/types/module-id.ts +15 -0
- package/src/types/module-specifier-type.ts +13 -0
- package/src/types/protocol.ts +40 -0
- package/src/types/syntax-kind-export.ts +20 -0
- package/src/types/syntax-kind-import.ts +22 -0
- package/src/types/syntax-kind-require.ts +15 -0
- package/src/utils/compare-subpaths.ts +100 -0
- package/src/utils/conditions.ts +15 -0
- package/src/utils/detect-syntax.ts +40 -0
- package/src/utils/extension-format-map.ts +34 -0
- package/src/utils/extract-statements.ts +42 -0
- package/src/utils/fill-modules.ts +116 -0
- package/src/utils/find-dynamic-imports.ts +75 -0
- package/src/utils/find-exports.ts +164 -0
- package/src/utils/find-requires.ts +75 -0
- package/src/utils/find-static-imports.ts +89 -0
- package/src/utils/find-subpath.ts +241 -0
- package/src/utils/get-format.ts +222 -0
- package/src/utils/get-source.ts +129 -0
- package/src/utils/has-cjs-syntax.ts +44 -0
- package/src/utils/has-esm-syntax.ts +40 -0
- package/src/utils/index.ts +43 -0
- package/src/utils/is-absolute-specifier.ts +48 -0
- package/src/utils/is-bare-specifier.ts +30 -0
- package/src/utils/is-exports-sugar.ts +74 -0
- package/src/utils/is-relative-specifier.ts +34 -0
- package/src/utils/lookup-package-scope.ts +97 -0
- package/src/utils/parse-data-url.ts +71 -0
- package/src/utils/parse-module-id.ts +186 -0
- package/src/utils/parse-subpath.ts +173 -0
- package/src/utils/pattern-character.ts +13 -0
- package/src/utils/read-package-json.ts +101 -0
- package/src/utils/resolve-alias.ts +219 -0
- package/src/utils/resolve-aliases.ts +58 -0
- package/src/utils/resolve-extensions.ts +33 -0
- package/src/utils/resolve-module.ts +153 -0
- package/src/utils/resolve-modules.ts +62 -0
- package/src/utils/to-absolute-specifier.ts +30 -0
- package/src/utils/to-bare-specifier.ts +201 -0
- package/src/utils/to-data-url.ts +42 -0
- package/src/utils/to-node-url.ts +27 -0
- package/src/utils/to-relative-specifier.ts +47 -0
- package/src/utils/to-url.ts +31 -0
- package/src/utils/validate-assertions.ts +119 -0
- package/src/utils/validate-exports.ts +124 -0
- package/changelog.config.cts +0 -204
- package/dist/constants.d.mts +0 -19
- package/dist/constants.mjs +0 -24
- package/dist/interfaces/import-dynamic.mjs +0 -0
- package/dist/interfaces/import-static.mjs +0 -0
- package/dist/interfaces/options-resolve-alias.mjs +0 -0
- package/dist/interfaces/options-resolve.mjs +0 -0
- package/dist/interfaces/statement-export.mjs +0 -0
- package/dist/interfaces/statement-import.mjs +0 -0
- package/dist/interfaces/statement-require.mjs +0 -0
- package/dist/interfaces/statement.mjs +0 -0
- package/dist/internal/compiler-options-json.d.mts +0 -111
- package/dist/internal/compiler-options-json.mjs +0 -0
- package/dist/internal/constants.d.mts +0 -70
- package/dist/internal/constants.mjs +0 -18
- package/dist/internal/get-compiler-options.d.mts +0 -21
- package/dist/internal/get-compiler-options.mjs +0 -14
- package/dist/internal/index.d.mts +0 -7
- package/dist/internal/index.mjs +0 -5
- package/dist/lib/extract-statements.d.mts +0 -21
- package/dist/lib/find-dynamic-imports.d.mts +0 -15
- package/dist/lib/find-dynamic-imports.mjs +0 -20
- package/dist/lib/find-exports.d.mts +0 -15
- package/dist/lib/find-exports.mjs +0 -53
- package/dist/lib/find-requires.d.mts +0 -17
- package/dist/lib/find-requires.mjs +0 -19
- package/dist/lib/find-static-imports.d.mts +0 -15
- package/dist/lib/find-static-imports.mjs +0 -20
- package/dist/lib/has-cjs-syntax.mjs +0 -6
- package/dist/lib/has-esm-syntax.mjs +0 -6
- package/dist/lib/index.d.mts +0 -20
- package/dist/lib/index.mjs +0 -34
- package/dist/lib/resolve-alias.d.mts +0 -20
- package/dist/lib/resolve-alias.mjs +0 -41
- package/dist/lib/resolve-aliases.d.mts +0 -17
- package/dist/lib/resolve-aliases.mjs +0 -34
- package/dist/lib/resolve-module.d.mts +0 -31
- package/dist/lib/resolve-module.mjs +0 -74
- package/dist/lib/resolve-modules.d.mts +0 -19
- package/dist/lib/to-absolute-specifier.mjs +0 -20
- package/dist/lib/to-bare-specifier.d.mts +0 -28
- package/dist/lib/to-bare-specifier.mjs +0 -78
- package/dist/types/declaration.mjs +0 -0
- package/dist/types/ext.d.mts +0 -9
- package/dist/types/ext.mjs +0 -0
- package/dist/types/mime-type.mjs +0 -0
- package/dist/types/specifier-type.d.mts +0 -11
- package/dist/types/specifier-type.mjs +0 -0
- package/dist/types/statement-type.d.mts +0 -9
- package/dist/types/statement-type.mjs +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/parse-module-id.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["protocol", "pathname"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file parseSubpath
|
|
3
|
+
* @module mlly/utils/parseSubpath
|
|
4
|
+
*/
|
|
5
|
+
import type { ParseSubpathOptions, ParsedSubpath } from '../interfaces/index.mjs';
|
|
6
|
+
import type { Exports, Imports } from '@flex-development/pkg-types';
|
|
7
|
+
/**
|
|
8
|
+
* Creates an object representation of a subpath export or import from the given
|
|
9
|
+
* module `specifier` after ensuring the subpath defined in `specifier` is also
|
|
10
|
+
* defined in the given package `context`, a `package.json` [`exports`][1] or
|
|
11
|
+
* [`imports`][2] field.
|
|
12
|
+
*
|
|
13
|
+
* ::: warning
|
|
14
|
+
* Does **not** guarantee `specifier` resolves to an existing module.
|
|
15
|
+
* :::
|
|
16
|
+
*
|
|
17
|
+
* [1]: https://nodejs.org/api/packages.html#exports
|
|
18
|
+
* [2]: https://nodejs.org/api/packages.html#imports
|
|
19
|
+
*
|
|
20
|
+
* @see {@linkcode Exports}
|
|
21
|
+
* @see {@linkcode Imports}
|
|
22
|
+
* @see {@linkcode ParseSubpathOptions}
|
|
23
|
+
* @see {@linkcode ParsedSubpath}
|
|
24
|
+
* @see https://nodejs.org/api/packages.html#subpath-exports
|
|
25
|
+
* @see https://nodejs.org/api/packages.html#subpath-imports
|
|
26
|
+
*
|
|
27
|
+
* @param {string} specifier - Module specifier to evaluate
|
|
28
|
+
* @param {Exports | Imports | undefined} context - Package context
|
|
29
|
+
* @param {ParseSubpathOptions} options - Parsing options
|
|
30
|
+
* @return {ParsedSubpath} Object representing package subpath
|
|
31
|
+
* @throws {NodeError<Error | TypeError>} If `specifier` is not a string or the
|
|
32
|
+
* subpath defined in `specifier` is not defined in `context`
|
|
33
|
+
*/
|
|
34
|
+
declare const parseSubpath: (specifier: string, context: Exports | Imports | undefined, options: ParseSubpathOptions) => ParsedSubpath;
|
|
35
|
+
export default parseSubpath;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import getSubpaths from "../internal/get-subpaths.mjs";
|
|
2
|
+
import validateString from "../internal/validate-string.mjs";
|
|
3
|
+
import validateURLString from "../internal/validate-url-string.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ERR_PACKAGE_IMPORT_NOT_DEFINED,
|
|
6
|
+
ERR_PACKAGE_PATH_NOT_EXPORTED
|
|
7
|
+
} from "@flex-development/errnode";
|
|
8
|
+
import pathe from "@flex-development/pathe";
|
|
9
|
+
import { CompareResult } from "@flex-development/tutils";
|
|
10
|
+
import { URL, fileURLToPath, pathToFileURL } from "node:url";
|
|
11
|
+
import compareSubpaths from "./compare-subpaths.mjs";
|
|
12
|
+
import parseModuleId from "./parse-module-id.mjs";
|
|
13
|
+
import PATTERN_CHARACTER from "./pattern-character.mjs";
|
|
14
|
+
const parseSubpath = (specifier, context, options) => {
|
|
15
|
+
const { dir, internal = specifier.startsWith("#"), parent } = options;
|
|
16
|
+
validateString(specifier, "specifier");
|
|
17
|
+
validateURLString(dir, "options.dir");
|
|
18
|
+
const id = parseModuleId(specifier, {
|
|
19
|
+
internal,
|
|
20
|
+
parent,
|
|
21
|
+
pkgname: !internal
|
|
22
|
+
});
|
|
23
|
+
const pkgdir = fileURLToPath(dir).replace(/\/$/, "") + pathe.sep;
|
|
24
|
+
const pkg = new URL("package.json", pathToFileURL(pkgdir));
|
|
25
|
+
const keys = getSubpaths(context, id.internal, pkg, parent);
|
|
26
|
+
let key = null;
|
|
27
|
+
let base = "";
|
|
28
|
+
for (const pkgsubpath of keys) {
|
|
29
|
+
const pattern = pkgsubpath.indexOf(PATTERN_CHARACTER);
|
|
30
|
+
if (pattern === -1 && pkgsubpath === id.path) {
|
|
31
|
+
key = pkgsubpath;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
if (pattern !== -1 && id.path.startsWith(pkgsubpath.slice(0, pattern))) {
|
|
35
|
+
const trailer = pkgsubpath.slice(pattern + 1);
|
|
36
|
+
if (id.path.length >= pkgsubpath.length && id.path.endsWith(trailer) && compareSubpaths(key ?? "", pkgsubpath) === CompareResult.GREATER_THAN && pkgsubpath.lastIndexOf(PATTERN_CHARACTER) === pattern) {
|
|
37
|
+
key = pkgsubpath;
|
|
38
|
+
base = id.path.slice(pattern, id.path.length - trailer.length);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (key === null) {
|
|
43
|
+
let { parent: parent2 } = options;
|
|
44
|
+
validateURLString(parent2, "options.parent");
|
|
45
|
+
parent2 = fileURLToPath(parent2);
|
|
46
|
+
throw internal ? new ERR_PACKAGE_IMPORT_NOT_DEFINED(id.path, parent2, pkgdir) : new ERR_PACKAGE_PATH_NOT_EXPORTED(pkgdir, id.path, parent2);
|
|
47
|
+
}
|
|
48
|
+
return { base, internal, key, raw: id.path, specifier: id.raw };
|
|
49
|
+
};
|
|
50
|
+
var parse_subpath_default = parseSubpath;
|
|
51
|
+
export {
|
|
52
|
+
parse_subpath_default as default
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=parse-subpath.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/parse-subpath.ts"],
|
|
4
|
+
"mappings": "AAUA,OAAO,iBAAiB;AACxB,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,OAAO,WAAW;AAElB,SAAS,qBAAoC;AAC7C,SAAS,KAAK,eAAe,qBAAqB;AAClD,OAAO,qBAAqB;AAC5B,OAAO,mBAAmB;AAC1B,OAAO,uBAAuB;AA6B9B,MAAM,eAAe,CACnB,WACA,SACA,YACkB;AAClB,QAAM,EAAE,KAAK,WAAW,UAAU,WAAW,GAAG,GAAG,OAAO,IAAI;AAG9D,iBAAe,WAAW,WAAW;AAGrC,oBAAkB,KAAK,aAAa;AAYpC,QAAM,KAAqB,cAAc,WAAW;AAAA,IAClD;AAAA,IACA;AAAA,IACA,SAAS,CAAC;AAAA,EACZ,CAAC;AAOD,QAAM,SAAiB,cAAc,GAAG,EAAE,QAAQ,OAAO,EAAE,IAAI,MAAM;AAOrE,QAAM,MAAW,IAAI,IAAI,gBAAgB,cAAc,MAAM,CAAC;AAO9D,QAAM,OAAiB,YAAY,SAAS,GAAG,UAAU,KAAK,MAAM;AAOpE,MAAI,MAAwB;AAO5B,MAAI,OAAe;AAGnB,aAAW,cAAc,MAAM;AAM7B,UAAM,UAAkB,WAAW,QAAQ,iBAAiB;AAG5D,QAAI,YAAY,MAAM,eAAe,GAAG,MAAM;AAC5C,YAAM;AACN;AAAA,IACF;AAGA,QAAI,YAAY,MAAM,GAAG,KAAK,WAAW,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG;AAMtE,YAAM,UAAkB,WAAW,MAAM,UAAU,CAAC;AAGpD,UACE,GAAG,KAAK,UAAU,WAAW,UAC7B,GAAG,KAAK,SAAS,OAAO,KACxB,gBAAgB,OAAO,IAAI,UAAU,MAAM,cAAc,gBACzD,WAAW,YAAY,iBAAiB,MAAM,SAC9C;AACA,cAAM;AACN,eAAO,GAAG,KAAK,MAAM,SAAS,GAAG,KAAK,SAAS,QAAQ,MAAM;AAAA,MAC/D;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,MAAM;AAChB,QAAI,EAAE,QAAAA,QAAO,IAAI;AAGjB,sBAAkBA,SAAQ,gBAAgB;AAG1C,IAAAA,UAAS,cAAcA,OAAM;AAE7B,UAAM,WACF,IAAI,+BAA+B,GAAG,MAAMA,SAAQ,MAAM,IAC1D,IAAI,8BAA8B,QAAQ,GAAG,MAAMA,OAAM;AAAA,EAC/D;AAEA,SAAO,EAAE,MAAM,UAAU,KAAK,KAAK,GAAG,MAAM,WAAW,GAAG,IAAI;AAChE;AAEA,IAAO,wBAAQ;",
|
|
5
|
+
"names": ["parent"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file readPackageJson
|
|
3
|
+
* @module mlly/utils/readPackageJson
|
|
4
|
+
*/
|
|
5
|
+
import type { ModuleId } from '../types/index.mjs';
|
|
6
|
+
import type { PackageJson } from '@flex-development/pkg-types';
|
|
7
|
+
import { type Nullable } from '@flex-development/tutils';
|
|
8
|
+
/**
|
|
9
|
+
* Reads a `package.json` file from the given directory.
|
|
10
|
+
*
|
|
11
|
+
* Returns `null` if a file is not found.
|
|
12
|
+
*
|
|
13
|
+
* @see {@linkcode ModuleId}
|
|
14
|
+
* @see {@linkcode PackageJson}
|
|
15
|
+
*
|
|
16
|
+
* @param {ModuleId} [dir='.'] - Id of directory containing `package.json` file
|
|
17
|
+
* @param {string?} [specifier] - Module specifier passed by user to initiate
|
|
18
|
+
* reading of `package.json` file
|
|
19
|
+
* @param {ModuleId?} [parent] - Id of module to resolve from
|
|
20
|
+
* @return {?PackageJson} `package.json` object or `null` if file is not found
|
|
21
|
+
* @throws {NodeError<Error | TypeError>} If `dir` is not a string or instance
|
|
22
|
+
* of {@linkcode URL}, if `specifier` is not a string, if `parent` is not a
|
|
23
|
+
* string, or if a `package.json` is file found and does not contain valid JSON
|
|
24
|
+
*/
|
|
25
|
+
declare const readPackageJson: (dir?: ModuleId, specifier?: string, parent?: ModuleId) => Nullable<PackageJson>;
|
|
26
|
+
export default readPackageJson;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import isFile from "../internal/is-file.mjs";
|
|
2
|
+
import validateString from "../internal/validate-string.mjs";
|
|
3
|
+
import validateURLString from "../internal/validate-url-string.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ERR_INVALID_PACKAGE_CONFIG
|
|
6
|
+
} from "@flex-development/errnode";
|
|
7
|
+
import pathe from "@flex-development/pathe";
|
|
8
|
+
import { isEmptyString, isNIL } from "@flex-development/tutils";
|
|
9
|
+
import fs from "node:fs";
|
|
10
|
+
import { fileURLToPath } from "node:url";
|
|
11
|
+
import toURL from "./to-url.mjs";
|
|
12
|
+
const readPackageJson = (dir = ".", specifier, parent) => {
|
|
13
|
+
validateURLString(dir, "dir");
|
|
14
|
+
if (specifier !== void 0)
|
|
15
|
+
validateString(specifier, "specifier");
|
|
16
|
+
if (parent !== void 0)
|
|
17
|
+
validateURLString(parent, "parent");
|
|
18
|
+
dir = fileURLToPath(toURL(dir));
|
|
19
|
+
const path = pathe.toNamespacedPath(pathe.join(dir, "package.json"));
|
|
20
|
+
if (!isFile(path))
|
|
21
|
+
return null;
|
|
22
|
+
let pkg;
|
|
23
|
+
try {
|
|
24
|
+
pkg = JSON.parse(fs.readFileSync(path, "utf8"));
|
|
25
|
+
} catch (e) {
|
|
26
|
+
let base;
|
|
27
|
+
switch (true) {
|
|
28
|
+
case (specifier && !isNIL(parent) && !isEmptyString(parent)):
|
|
29
|
+
base = `'${specifier}' from ${fileURLToPath(toURL(parent))}`;
|
|
30
|
+
break;
|
|
31
|
+
case (specifier == null ? void 0 : specifier.startsWith("file:")):
|
|
32
|
+
base = fileURLToPath(specifier);
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
throw new ERR_INVALID_PACKAGE_CONFIG(path, base, e.message);
|
|
36
|
+
}
|
|
37
|
+
return pkg;
|
|
38
|
+
};
|
|
39
|
+
var read_package_json_default = readPackageJson;
|
|
40
|
+
export {
|
|
41
|
+
read_package_json_default as default
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=read-package-json.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/read-package-json.ts"],
|
|
4
|
+
"mappings": "AAKA,OAAO,YAAY;AACnB,OAAO,oBAAoB;AAC3B,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,OAEK;AACP,OAAO,WAAW;AAElB,SAAS,eAAe,aAA4B;AACpD,OAAO,QAAQ;AACf,SAAS,qBAAqB;AAC9B,OAAO,WAAW;AAmBlB,MAAM,kBAAkB,CACtB,MAAgB,KAChB,WACA,WAC0B;AAE1B,oBAAkB,KAAK,KAAK;AAG5B,MAAI,cAAc;AAAW,mBAAe,WAAW,WAAW;AAGlE,MAAI,WAAW;AAAW,sBAAkB,QAAQ,QAAQ;AAG5D,QAAM,cAAc,MAAM,GAAG,CAAC;AAO9B,QAAM,OAAe,MAAM,iBAAiB,MAAM,KAAK,KAAK,cAAc,CAAC;AAG3E,MAAI,CAAC,OAAO,IAAI;AAAG,WAAO;AAO1B,MAAI;AAGJ,MAAI;AACF,UAAM,KAAK,MAAM,GAAG,aAAa,MAAM,MAAM,CAAC;AAAA,EAChD,SAAS,GAAP;AAQA,QAAI;AAGJ,YAAQ,MAAM;AAAA,MACZ,MAAK,aAAa,CAAC,MAAM,MAAM,KAAK,CAAC,cAAc,MAAM;AACvD,eAAO,IAAI,mBAAmB,cAAc,MAAM,MAAO,CAAC;AAC1D;AAAA,MACF,MAAK,uCAAW,WAAW;AACzB,eAAO,cAAc,SAAU;AAC/B;AAAA,IACJ;AAEA,UAAM,IAAI,2BAA2B,MAAM,MAAO,EAAkB,OAAO;AAAA,EAC7E;AAEA,SAAO;AACT;AAEA,IAAO,4BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file resolveAlias
|
|
3
|
+
* @module mlly/utils/resolveAlias
|
|
4
|
+
*/
|
|
5
|
+
import type { ResolveAliasOptions } from '../interfaces/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* Resolves a path alias in the given module `specifier`; does nothing if a path
|
|
8
|
+
* match isn't found.
|
|
9
|
+
*
|
|
10
|
+
* @see {@linkcode ResolveAliasOptions}
|
|
11
|
+
*
|
|
12
|
+
* @async
|
|
13
|
+
*
|
|
14
|
+
* @param {string} specifier - Module specifier to evaluate
|
|
15
|
+
* @param {ResolveAliasOptions} [options={}] - Resolution options
|
|
16
|
+
* @return {Promise<string>} Resolved specifier or original module specifier
|
|
17
|
+
* @throws {NodeError}
|
|
18
|
+
*/
|
|
19
|
+
declare const resolveAlias: (specifier: string, options?: ResolveAliasOptions) => Promise<string>;
|
|
20
|
+
export default resolveAlias;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import regexp from "../internal/escape-reg-exp.mjs";
|
|
2
|
+
import validateBoolean from "../internal/validate-boolean.mjs";
|
|
3
|
+
import validateObject from "../internal/validate-object.mjs";
|
|
4
|
+
import validateSet from "../internal/validate-set.mjs";
|
|
5
|
+
import validateString from "../internal/validate-string.mjs";
|
|
6
|
+
import validateURLString from "../internal/validate-url-string.mjs";
|
|
7
|
+
import pathe from "@flex-development/pathe";
|
|
8
|
+
import { CompareResult, isNIL } from "@flex-development/tutils";
|
|
9
|
+
import { URL, pathToFileURL } from "node:url";
|
|
10
|
+
import compareSubpaths from "./compare-subpaths.mjs";
|
|
11
|
+
import CONDITIONS from "./conditions.mjs";
|
|
12
|
+
import parseModuleId from "./parse-module-id.mjs";
|
|
13
|
+
import PATTERN_CHARACTER from "./pattern-character.mjs";
|
|
14
|
+
import RESOLVE_EXTENSIONS from "./resolve-extensions.mjs";
|
|
15
|
+
import resolveModule from "./resolve-module.mjs";
|
|
16
|
+
import toBareSpecifier from "./to-bare-specifier.mjs";
|
|
17
|
+
import toRelativeSpecifier from "./to-relative-specifier.mjs";
|
|
18
|
+
import toURL from "./to-url.mjs";
|
|
19
|
+
const resolveAlias = async (specifier, options = {}) => {
|
|
20
|
+
const {
|
|
21
|
+
absolute = true,
|
|
22
|
+
aliases = {},
|
|
23
|
+
condition = "default",
|
|
24
|
+
conditions = CONDITIONS,
|
|
25
|
+
cwd = pathToFileURL("."),
|
|
26
|
+
ext,
|
|
27
|
+
extensions = RESOLVE_EXTENSIONS,
|
|
28
|
+
parent = import.meta.url,
|
|
29
|
+
preserveSymlinks = false
|
|
30
|
+
} = options;
|
|
31
|
+
validateString(specifier, "specifier");
|
|
32
|
+
validateBoolean(absolute, "options.absolute");
|
|
33
|
+
validateObject(aliases, "options.aliases");
|
|
34
|
+
validateString(condition, "options.condition");
|
|
35
|
+
validateURLString(cwd, "options.cwd");
|
|
36
|
+
validateSet(extensions, "options.extensions");
|
|
37
|
+
validateURLString(parent, "options.parent");
|
|
38
|
+
validateBoolean(preserveSymlinks, "options.preserveSymlinks");
|
|
39
|
+
const id = parseModuleId(specifier, {
|
|
40
|
+
parent: toURL(parent),
|
|
41
|
+
pkgname: false
|
|
42
|
+
});
|
|
43
|
+
const keys = Object.keys(aliases).sort(compareSubpaths);
|
|
44
|
+
let alias = null;
|
|
45
|
+
let trail = "";
|
|
46
|
+
for (const key of keys) {
|
|
47
|
+
const pattern = key.indexOf(PATTERN_CHARACTER);
|
|
48
|
+
if (pattern === -1 && key === id.raw) {
|
|
49
|
+
alias = key;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
if (pattern !== -1 && id.raw.startsWith(key.slice(0, pattern))) {
|
|
53
|
+
const trailer = key.slice(pattern + 1);
|
|
54
|
+
if (id.raw.length >= key.length && id.raw.endsWith(trailer) && compareSubpaths(alias ?? "", key) === CompareResult.GREATER_THAN && key.lastIndexOf(PATTERN_CHARACTER) === pattern) {
|
|
55
|
+
alias = key;
|
|
56
|
+
trail = id.raw.slice(pattern, id.raw.length - trailer.length);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (alias === null || isNIL(aliases[alias]))
|
|
61
|
+
return specifier;
|
|
62
|
+
const base = toURL(cwd).href.replace(/\/$/, "") + pathe.sep;
|
|
63
|
+
let url = null;
|
|
64
|
+
for (let segment of [aliases[alias]].flat()) {
|
|
65
|
+
if (segment.includes(PATTERN_CHARACTER)) {
|
|
66
|
+
segment = segment.replace(
|
|
67
|
+
new RegExp(`${regexp(PATTERN_CHARACTER)}$`),
|
|
68
|
+
trail
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
let tries = new Set(
|
|
72
|
+
[
|
|
73
|
+
"",
|
|
74
|
+
...[...extensions].map((ext2) => pathe.formatExt(ext2)),
|
|
75
|
+
...[...extensions].map((ext2) => "/index" + pathe.formatExt(ext2))
|
|
76
|
+
].map((suffix) => segment + suffix).filter((segment2) => segment2.length > 0).map((segment2) => new URL(segment2, base).pathname)
|
|
77
|
+
);
|
|
78
|
+
if (segment.startsWith("node_modules")) {
|
|
79
|
+
const [trypath = ""] = [...tries];
|
|
80
|
+
tries = /* @__PURE__ */ new Set([trypath.replace(/.*\/node_modules\//, ""), ...tries]);
|
|
81
|
+
}
|
|
82
|
+
for (const trypath of tries) {
|
|
83
|
+
try {
|
|
84
|
+
url = await resolveModule(trypath, {
|
|
85
|
+
condition,
|
|
86
|
+
conditions,
|
|
87
|
+
ext,
|
|
88
|
+
extensions,
|
|
89
|
+
parent: toURL(parent),
|
|
90
|
+
preserveSymlinks
|
|
91
|
+
});
|
|
92
|
+
break;
|
|
93
|
+
} catch {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (url)
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
return url ? absolute ? url.href : /\/node_modules\//.test(url.href) ? toBareSpecifier(url, toURL(parent), new Set(conditions)) : toRelativeSpecifier(url, toURL(parent)) : specifier;
|
|
101
|
+
};
|
|
102
|
+
var resolve_alias_default = resolveAlias;
|
|
103
|
+
export {
|
|
104
|
+
resolve_alias_default as default
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=resolve-alias.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/resolve-alias.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ext", "segment"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file resolveAliases
|
|
3
|
+
* @module mlly/utils/resolveAliases
|
|
4
|
+
*/
|
|
5
|
+
import type { ResolveAliasOptions } from '../interfaces/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* Resolves path aliases in the given piece of source `code`.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode ResolveAliasOptions}
|
|
10
|
+
* @see {@linkcode resolveAlias}
|
|
11
|
+
*
|
|
12
|
+
* @async
|
|
13
|
+
*
|
|
14
|
+
* @param {string} code - Code to evaluate
|
|
15
|
+
* @param {ResolveAliasOptions} [options={}] - Resolve alias options
|
|
16
|
+
* @return {Promise<string>} `code` unmodified or with path aliases resolved
|
|
17
|
+
*/
|
|
18
|
+
declare const resolveAliases: (code: string, options?: ResolveAliasOptions) => Promise<string>;
|
|
19
|
+
export default resolveAliases;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SpecifierSyntaxKind } from "../enums/index.mjs";
|
|
2
|
+
import regexp from "../internal/escape-reg-exp.mjs";
|
|
3
|
+
import extractStatements from "./extract-statements.mjs";
|
|
4
|
+
import resolveAlias from "./resolve-alias.mjs";
|
|
5
|
+
const resolveAliases = async (code, options = {}) => {
|
|
6
|
+
for (const statement of extractStatements(code)) {
|
|
7
|
+
if (!statement.specifier)
|
|
8
|
+
continue;
|
|
9
|
+
if (statement.specifier_syntax === SpecifierSyntaxKind.DYNAMIC)
|
|
10
|
+
continue;
|
|
11
|
+
const specifier = await resolveAlias(statement.specifier, options);
|
|
12
|
+
if (specifier === statement.specifier)
|
|
13
|
+
continue;
|
|
14
|
+
code = code.replace(
|
|
15
|
+
statement.code,
|
|
16
|
+
statement.code.replace(
|
|
17
|
+
new RegExp(`(?<=["'])${regexp(statement.specifier)}(?=["'])`),
|
|
18
|
+
specifier
|
|
19
|
+
)
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
return code;
|
|
23
|
+
};
|
|
24
|
+
var resolve_aliases_default = resolveAliases;
|
|
25
|
+
export {
|
|
26
|
+
resolve_aliases_default as default
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=resolve-aliases.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/resolve-aliases.ts"],
|
|
4
|
+
"mappings": "AAKA,SAAS,2BAA2B;AAEpC,OAAO,YAAY;AACnB,OAAO,uBAAuB;AAC9B,OAAO,kBAAkB;AAczB,MAAM,iBAAiB,OACrB,MACA,UAA+B,CAAC,MACZ;AACpB,aAAW,aAAa,kBAAkB,IAAI,GAAG;AAE/C,QAAI,CAAC,UAAU;AAAW;AAG1B,QAAI,UAAU,qBAAqB,oBAAoB;AAAS;AAOhE,UAAM,YAAoB,MAAM,aAAa,UAAU,WAAW,OAAO;AAGzE,QAAI,cAAc,UAAU;AAAW;AAGvC,WAAO,KAAK;AAAA,MACV,UAAU;AAAA,MACV,UAAU,KAAK;AAAA,QACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,WAAW;AAAA,QAC5D;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,0BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file RESOLVE_EXTENSIONS
|
|
3
|
+
* @module mlly/utils/RESOLVE_EXTENSIONS
|
|
4
|
+
*/
|
|
5
|
+
import type { Ext } from '@flex-development/pathe';
|
|
6
|
+
/**
|
|
7
|
+
* Default resolvable file extensions.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode Ext}
|
|
10
|
+
*
|
|
11
|
+
* @const {Set<Ext>} RESOLVE_EXTENSIONS
|
|
12
|
+
*/
|
|
13
|
+
declare const RESOLVE_EXTENSIONS: Set<Ext>;
|
|
14
|
+
export default RESOLVE_EXTENSIONS;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const RESOLVE_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
2
|
+
".mjs",
|
|
3
|
+
".mts",
|
|
4
|
+
".cjs",
|
|
5
|
+
".cts",
|
|
6
|
+
".js",
|
|
7
|
+
".ts",
|
|
8
|
+
".jsx",
|
|
9
|
+
".tsx",
|
|
10
|
+
".css",
|
|
11
|
+
".json",
|
|
12
|
+
".node",
|
|
13
|
+
".wasm",
|
|
14
|
+
".d.mts",
|
|
15
|
+
".d.cts",
|
|
16
|
+
".d.ts"
|
|
17
|
+
]);
|
|
18
|
+
var resolve_extensions_default = RESOLVE_EXTENSIONS;
|
|
19
|
+
export {
|
|
20
|
+
resolve_extensions_default as default
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=resolve-extensions.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/resolve-extensions.ts"],
|
|
4
|
+
"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
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file resolveModule
|
|
3
|
+
* @module mlly/utils/resolveModule
|
|
4
|
+
*/
|
|
5
|
+
import type { ResolveModuleOptions } from '../interfaces/index.mjs';
|
|
6
|
+
import { URL } from 'node:url';
|
|
7
|
+
/**
|
|
8
|
+
* Resolves `specifier` according to the [ESM Resolver algorithm][1], mostly 😉.
|
|
9
|
+
*
|
|
10
|
+
* Adds support for:
|
|
11
|
+
*
|
|
12
|
+
* - Extensionless file and directory index resolution
|
|
13
|
+
* - Replacing file extensions
|
|
14
|
+
*
|
|
15
|
+
* Other differences between Node.js:
|
|
16
|
+
*
|
|
17
|
+
* - [Subpath import][2] targets (that are strings) must be relative to the
|
|
18
|
+
* current working directory (e.g. `'./src/index.ts'`, `'./src/*.ts'`) or
|
|
19
|
+
* start with a [NPM valid package name][3]. See [`nodejs/node#40579`][4] for
|
|
20
|
+
* details.
|
|
21
|
+
*
|
|
22
|
+
* [1]: https://nodejs.org/api/esm.html#esm_resolver_algorithm
|
|
23
|
+
* [2]: https://nodejs.org/api/packages.html#subpath-imports
|
|
24
|
+
* [3]: https://regex101.com/r/BHcJfc
|
|
25
|
+
* [4]: https://github.com/nodejs/node/issues/40579
|
|
26
|
+
*
|
|
27
|
+
* @see {@linkcode NodeError}
|
|
28
|
+
* @see {@linkcode ResolveModuleOptions}
|
|
29
|
+
* @see {@linkcode URL}
|
|
30
|
+
*
|
|
31
|
+
* @async
|
|
32
|
+
*
|
|
33
|
+
* @param {string} specifier - Module specifier to resolve
|
|
34
|
+
* @param {ResolveModuleOptions} [options={}] - Module resolution options
|
|
35
|
+
* @return {Promise<URL>} Resolved module URL
|
|
36
|
+
* @throws {NodeError}
|
|
37
|
+
*/
|
|
38
|
+
declare const resolveModule: (specifier: string, options?: ResolveModuleOptions) => Promise<URL>;
|
|
39
|
+
export default resolveModule;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import isFunction from "../internal/is-function.mjs";
|
|
2
|
+
import Resolver from "../internal/resolver.mjs";
|
|
3
|
+
import { ErrorCode } from "@flex-development/errnode";
|
|
4
|
+
import { isBuiltin } from "@flex-development/is-builtin";
|
|
5
|
+
import pathe from "@flex-development/pathe";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import CONDITIONS from "./conditions.mjs";
|
|
8
|
+
import RESOLVE_EXTENSIONS from "./resolve-extensions.mjs";
|
|
9
|
+
const resolveModule = async (specifier, options = {}) => {
|
|
10
|
+
const {
|
|
11
|
+
condition = "default",
|
|
12
|
+
conditions = CONDITIONS,
|
|
13
|
+
extensions = RESOLVE_EXTENSIONS,
|
|
14
|
+
parent = import.meta.url,
|
|
15
|
+
preserveSymlinks = false
|
|
16
|
+
} = options;
|
|
17
|
+
const resolver = new Resolver();
|
|
18
|
+
const tries = isBuiltin(specifier) || /^\S+:/.test(specifier) && !specifier.startsWith("file:") ? [] : [...extensions].flatMap((ext) => [
|
|
19
|
+
specifier + (ext = pathe.formatExt(ext)),
|
|
20
|
+
specifier.startsWith("#") ? specifier + "/index" : "",
|
|
21
|
+
specifier + "/index" + ext
|
|
22
|
+
]).filter((id) => id.length > 0);
|
|
23
|
+
tries.unshift(specifier);
|
|
24
|
+
const ignore = /* @__PURE__ */ new Set([
|
|
25
|
+
ErrorCode.ERR_MODULE_NOT_FOUND,
|
|
26
|
+
ErrorCode.ERR_PACKAGE_PATH_NOT_EXPORTED,
|
|
27
|
+
ErrorCode.ERR_UNSUPPORTED_DIR_IMPORT
|
|
28
|
+
]);
|
|
29
|
+
let error;
|
|
30
|
+
let url = null;
|
|
31
|
+
for (const id of tries) {
|
|
32
|
+
try {
|
|
33
|
+
url = resolver.resolveModule(
|
|
34
|
+
id,
|
|
35
|
+
parent,
|
|
36
|
+
condition,
|
|
37
|
+
new Set(conditions),
|
|
38
|
+
preserveSymlinks
|
|
39
|
+
);
|
|
40
|
+
} catch (e) {
|
|
41
|
+
url = null;
|
|
42
|
+
if (id === specifier)
|
|
43
|
+
error = e;
|
|
44
|
+
if (!ignore.has(e.code))
|
|
45
|
+
throw e;
|
|
46
|
+
}
|
|
47
|
+
if (url)
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
if (!url)
|
|
51
|
+
throw error;
|
|
52
|
+
if (url.protocol === "file:") {
|
|
53
|
+
let { ext } = options;
|
|
54
|
+
ext = isFunction(ext) ? await ext(specifier, url) : ext;
|
|
55
|
+
url.href = pathe.changeExt(url.href, ext).replace(/\/index$/, "");
|
|
56
|
+
url.pathname = fileURLToPath(url.href);
|
|
57
|
+
}
|
|
58
|
+
return url;
|
|
59
|
+
};
|
|
60
|
+
var resolve_module_default = resolveModule;
|
|
61
|
+
export {
|
|
62
|
+
resolve_module_default as default
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=resolve-module.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/resolve-module.ts"],
|
|
4
|
+
"mappings": "AAMA,OAAO,gBAAgB;AACvB,OAAO,cAAc;AACrB,SAAS,iBAAiC;AAC1C,SAAS,iBAAiB;AAC1B,OAAO,WAAW;AAElB,SAAc,qBAAqB;AACnC,OAAO,gBAAgB;AACvB,OAAO,wBAAwB;AAiC/B,MAAM,gBAAgB,OACpB,WACA,UAAgC,CAAC,MAChB;AACjB,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS,YAAY;AAAA,IACrB,mBAAmB;AAAA,EACrB,IAAI;AAOJ,QAAM,WAAqB,IAAI,SAAS;AAOxC,QAAM,QACJ,UAAU,SAAS,KAClB,QAAQ,KAAK,SAAS,KAAK,CAAC,UAAU,WAAW,OAAO,IACrD,CAAC,IACD,CAAC,GAAG,UAAU,EACX,QAAQ,SAAO;AAAA,IACd,aAAa,MAAM,MAAM,UAAU,GAAG;AAAA,IACtC,UAAU,WAAW,GAAG,IAAI,YAAY,WAAW;AAAA,IACnD,YAAY,WAAW;AAAA,EACzB,CAAC,EACA,OAAO,QAAM,GAAG,SAAS,CAAC;AAGnC,QAAM,QAAQ,SAAS;AAUvB,QAAM,SAAyB,oBAAI,IAAe;AAAA,IAChD,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAOD,MAAI;AAOJ,MAAI,MAAqB;AAGzB,aAAW,MAAM,OAAO;AACtB,QAAI;AACF,YAAM,SAAS;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA,IAAI,IAAI,UAAU;AAAA,QAClB;AAAA,MACF;AAAA,IACF,SAAS,GAAP;AACA,YAAM;AACN,UAAI,OAAO;AAAW,gBAAQ;AAC9B,UAAI,CAAC,OAAO,IAAK,EAAgB,IAAI;AAAG,cAAM;AAAA,IAChD;AAGA,QAAI;AAAK;AAAA,EACX;AAGA,MAAI,CAAC;AAAK,UAAM;AAGhB,MAAI,IAAI,aAAa,SAAS;AAC5B,QAAI,EAAE,IAAI,IAAI;AAGd,UAAM,WAAW,GAAG,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI;AAGpD,QAAI,OAAO,MAAM,UAAU,IAAI,MAAM,GAAG,EAAE,QAAQ,YAAY,EAAE;AAChE,QAAI,WAAW,cAAc,IAAI,IAAI;AAAA,EACvC;AAEA,SAAO;AACT;AAEA,IAAO,yBAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file resolveModules
|
|
3
|
+
* @module mlly/utils/resolveModules
|
|
4
|
+
*/
|
|
5
|
+
import type { ResolveModuleOptions } from '../interfaces/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* Converts all module specifiers in `code` to absolute specifiers.
|
|
8
|
+
*
|
|
9
|
+
* ::: info
|
|
10
|
+
* Useful for converting code to [`data:` URLs][1].
|
|
11
|
+
* :::
|
|
12
|
+
*
|
|
13
|
+
* [1]: https://nodejs.org/api/esm.html#data-imports
|
|
14
|
+
*
|
|
15
|
+
* @see {@linkcode ResolveModuleOptions}
|
|
16
|
+
* @see https://nodejs.org/api/esm.html#terminology
|
|
17
|
+
*
|
|
18
|
+
* @async
|
|
19
|
+
*
|
|
20
|
+
* @param {string} code - Code to evaluate
|
|
21
|
+
* @param {ResolveModuleOptions} [options={}] - Module resolution options
|
|
22
|
+
* @return {Promise<string>} `code` with module specifiers fully resolved
|
|
23
|
+
*/
|
|
24
|
+
declare const resolveModules: (code: string, options?: ResolveModuleOptions) => Promise<string>;
|
|
25
|
+
export default resolveModules;
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { SpecifierSyntaxKind } from "../enums/index.mjs";
|
|
2
|
+
import regexp from "../internal/escape-reg-exp.mjs";
|
|
2
3
|
import extractStatements from "./extract-statements.mjs";
|
|
3
4
|
import resolveModule from "./resolve-module.mjs";
|
|
4
5
|
const resolveModules = async (code, options = {}) => {
|
|
5
6
|
for (const statement of extractStatements(code)) {
|
|
6
7
|
if (!statement.specifier)
|
|
7
8
|
continue;
|
|
8
|
-
if (statement.
|
|
9
|
+
if (statement.specifier_syntax === SpecifierSyntaxKind.DYNAMIC)
|
|
9
10
|
continue;
|
|
10
|
-
const
|
|
11
|
-
return upath.isAbsolute(statement.specifier) || statement.specifier.startsWith("file:") ? "absolute" : /\/node_modules\//.test(resolved) ? "bare" : "relative";
|
|
12
|
-
};
|
|
11
|
+
const url = await resolveModule(statement.specifier, options);
|
|
13
12
|
code = code.replace(
|
|
14
13
|
statement.code,
|
|
15
14
|
statement.code.replace(
|
|
16
|
-
statement.specifier,
|
|
17
|
-
|
|
18
|
-
...options,
|
|
19
|
-
type: options.type ?? type
|
|
20
|
-
})
|
|
15
|
+
new RegExp(`(?<=["'])${regexp(statement.specifier)}(?=["'])`),
|
|
16
|
+
url.href
|
|
21
17
|
)
|
|
22
18
|
);
|
|
23
19
|
}
|
|
@@ -27,3 +23,4 @@ var resolve_modules_default = resolveModules;
|
|
|
27
23
|
export {
|
|
28
24
|
resolve_modules_default as default
|
|
29
25
|
};
|
|
26
|
+
//# sourceMappingURL=resolve-modules.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/resolve-modules.ts"],
|
|
4
|
+
"mappings": "AAKA,SAAS,2BAA2B;AAEpC,OAAO,YAAY;AAEnB,OAAO,uBAAuB;AAC9B,OAAO,mBAAmB;AAoB1B,MAAM,iBAAiB,OACrB,MACA,UAAgC,CAAC,MACb;AACpB,aAAW,aAAa,kBAAkB,IAAI,GAAG;AAE/C,QAAI,CAAC,UAAU;AAAW;AAG1B,QAAI,UAAU,qBAAqB,oBAAoB;AAAS;AAOhE,UAAM,MAAW,MAAM,cAAc,UAAU,WAAW,OAAO;AAGjE,WAAO,KAAK;AAAA,MACV,UAAU;AAAA,MACV,UAAU,KAAK;AAAA,QACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,WAAW;AAAA,QAC5D,IAAI;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,0BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|