@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,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Internal - validateURLString
|
|
3
|
+
* @module mlly/internal/validateURLString
|
|
4
|
+
*/
|
|
5
|
+
/// <reference types="node" />
|
|
6
|
+
import { URL } from 'node:url';
|
|
7
|
+
/**
|
|
8
|
+
* Checks if given `value` is an instance of {@linkcode URL} or a string.
|
|
9
|
+
*
|
|
10
|
+
* Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is of neither type.
|
|
11
|
+
*
|
|
12
|
+
* [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
|
|
13
|
+
*
|
|
14
|
+
* @see {@linkcode ERR_INVALID_ARG_TYPE}
|
|
15
|
+
*
|
|
16
|
+
* @param {unknown} value - Value supplied by user
|
|
17
|
+
* @param {string} name - Name of invalid argument or property
|
|
18
|
+
* @return {value is URL | string} `true` if `value` is `URL` instance or string
|
|
19
|
+
* @throws {NodeError<TypeError>} If `value` is not `URL` instance or string
|
|
20
|
+
*/
|
|
21
|
+
declare const validateURLString: (value: unknown, name: string) => value is string | URL;
|
|
22
|
+
export default validateURLString;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
|
|
2
|
+
import { URL } from "node:url";
|
|
3
|
+
const validateURLString = (value, name) => {
|
|
4
|
+
if (value instanceof URL || typeof value === "string")
|
|
5
|
+
return true;
|
|
6
|
+
throw new ERR_INVALID_ARG_TYPE(name, ["URL", "string"], value);
|
|
7
|
+
};
|
|
8
|
+
var validate_url_string_default = validateURLString;
|
|
9
|
+
export {
|
|
10
|
+
validate_url_string_default as default
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=validate-url-string.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/internal/validate-url-string.ts"],
|
|
4
|
+
"mappings": "AAKA,SAAS,4BAA4C;AACrD,SAAS,WAAW;AAgBpB,MAAM,oBAAoB,CACxB,OACA,SAC0B;AAC1B,MAAI,iBAAiB,OAAO,OAAO,UAAU;AAAU,WAAO;AAC9D,QAAM,IAAI,qBAAqB,MAAM,CAAC,OAAO,QAAQ,GAAG,KAAK;AAC/D;AAEA,IAAO,8BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Export declaration kinds.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
type Declaration = 'class' | 'const enum' | 'const' | 'enum' | 'function' | 'function*' | 'interface' | 'let' | 'namespace' | 'type' | 'var';
|
|
9
9
|
export type { Declaration as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Type Definitions - ChangeExtFn
|
|
3
|
+
* @module mlly/types/ChangeExtFn
|
|
4
|
+
*/
|
|
5
|
+
/// <reference types="node" />
|
|
6
|
+
import type { Nilable } from '@flex-development/tutils';
|
|
7
|
+
import type { URL } from 'node:url';
|
|
8
|
+
/**
|
|
9
|
+
* Function that returns a new file extension for the given module `specifier`.
|
|
10
|
+
*
|
|
11
|
+
* Returning an empty string (`''`) will remove the original file extension;
|
|
12
|
+
* returning `null` or `undefined` will skip extension replacement.
|
|
13
|
+
*
|
|
14
|
+
* ::: info
|
|
15
|
+
* The new file extension need not begin with a dot character (`'.'`).
|
|
16
|
+
* :::
|
|
17
|
+
*
|
|
18
|
+
* @see {@linkcode URL}
|
|
19
|
+
* @see https://github.com/flex-development/pathe/tree/1.0.3#changeextpath-string-ext-nullablestring-string
|
|
20
|
+
*
|
|
21
|
+
* @template Ext - File extension type(s)
|
|
22
|
+
*
|
|
23
|
+
* @param {string} specifier - Original module specifier
|
|
24
|
+
* @param {URL} url - Resolved module URL
|
|
25
|
+
* @return {Ext | PromiseLike<Ext>} New file extension, `null`, or `undefined`
|
|
26
|
+
*/
|
|
27
|
+
type ChangeExtFn<Ext extends Nilable<string> = Nilable<string>> = (specifier: string, url: URL) => Ext | PromiseLike<Ext>;
|
|
28
|
+
export type { ChangeExtFn as default };
|
package/dist/types/index.d.mts
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
* @module mlly/types
|
|
4
4
|
*/
|
|
5
5
|
export type { default as Declaration } from './declaration.mjs';
|
|
6
|
-
export type { default as
|
|
7
|
-
export type { default as
|
|
8
|
-
export type { default as
|
|
9
|
-
export type { default as
|
|
6
|
+
export type { default as ChangeExtFn } from './fn-change-ext.mjs';
|
|
7
|
+
export type { default as MimeType } from './mime-type.mjs';
|
|
8
|
+
export type { default as ModuleId } from './module-id.mjs';
|
|
9
|
+
export type { default as ModuleSpecifierType } from './module-specifier-type.mjs';
|
|
10
|
+
export type { default as Protocol } from './protocol.mjs';
|
|
11
|
+
export type { default as SyntaxKindExport } from './syntax-kind-export.mjs';
|
|
12
|
+
export type { default as SyntaxKindImport } from './syntax-kind-import.mjs';
|
|
13
|
+
export type { default as SyntaxKindRequire } from './syntax-kind-require.mjs';
|
package/dist/types/index.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file Type Definitions -
|
|
3
|
-
* @module mlly/types/
|
|
2
|
+
* @file Type Definitions - MimeType
|
|
3
|
+
* @module mlly/types/MimeType
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Supported MIME types.
|
|
6
|
+
* Supported [MIME types][1].
|
|
7
|
+
*
|
|
8
|
+
* [1]: https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/MIME_types
|
|
7
9
|
*
|
|
8
10
|
* @see https://nodejs.org/api/esm.html#esm_data_imports
|
|
9
11
|
*/
|
|
10
|
-
|
|
11
|
-
export type {
|
|
12
|
+
type MimeType = 'application/json' | 'application/typescript' | 'application/wasm' | 'text/javascript';
|
|
13
|
+
export type { MimeType as default };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Type Definitions - ModuleId
|
|
3
|
+
* @module mlly/types/ModuleId
|
|
4
|
+
*/
|
|
5
|
+
/// <reference types="node" />
|
|
6
|
+
import type { URL } from 'node:url';
|
|
7
|
+
/**
|
|
8
|
+
* ECMAScript (ES) module identifier.
|
|
9
|
+
*
|
|
10
|
+
* @see {@linkcode URL}
|
|
11
|
+
*/
|
|
12
|
+
type ModuleId = URL | string;
|
|
13
|
+
export type { ModuleId as default };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Type Definitions - ModuleSpecifierType
|
|
3
|
+
* @module mlly/types/ModuleSpecifierType
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Module specifier types.
|
|
7
|
+
*
|
|
8
|
+
* @see https://nodejs.org/api/esm.html#terminology
|
|
9
|
+
*/
|
|
10
|
+
type ModuleSpecifierType = 'absolute' | 'bare' | 'relative';
|
|
11
|
+
export type { ModuleSpecifierType as default };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Type Definitions - Protocol
|
|
3
|
+
* @module mlly/types/Protocol
|
|
4
|
+
*/
|
|
5
|
+
import type { LiteralUnion } from '@flex-development/tutils';
|
|
6
|
+
/**
|
|
7
|
+
* URL protocols.
|
|
8
|
+
*
|
|
9
|
+
* @see https://nodejs.org/api/url.html#urlprotocol
|
|
10
|
+
* @see https://iana.org/assignments/uri-schemes/uri-schemes.xhtml
|
|
11
|
+
* @see https://url.spec.whatwg.org/#special-scheme
|
|
12
|
+
*/
|
|
13
|
+
type Protocol = LiteralUnion<`${'blob' | 'content' | 'cvs' | 'data' | 'dns' | 'file' | 'fish' | 'ftp' | 'git' | 'http' | 'https' | 'mvn' | 'redis' | 'sftp' | 'ssh' | 'svn' | 'urn' | 'view-source' | 'ws' | 'wss'}:`, `${string}:`>;
|
|
14
|
+
export type { Protocol as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Type Definitions - SyntaxKindExport
|
|
3
|
+
* @module mlly/types/SyntaxKindExport
|
|
4
|
+
*/
|
|
5
|
+
import type { StatementSyntaxKind } from '../enums/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* `export` statement syntax kinds.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode StatementSyntaxKind}
|
|
10
|
+
*/
|
|
11
|
+
type SyntaxKindExport = StatementSyntaxKind.DECLARATION | StatementSyntaxKind.DEFAULT | StatementSyntaxKind.LIST | StatementSyntaxKind.NAMED | StatementSyntaxKind.NAMESPACE;
|
|
12
|
+
export type { SyntaxKindExport as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Type Definitions - SyntaxKindImport
|
|
3
|
+
* @module mlly/types/SyntaxKindImport
|
|
4
|
+
*/
|
|
5
|
+
import type { StatementSyntaxKind } from '../enums/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* `import` statement syntax kinds.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode StatementSyntaxKind}
|
|
10
|
+
*/
|
|
11
|
+
type SyntaxKindImport = StatementSyntaxKind.DEFAULT | StatementSyntaxKind.DEFAULT_WITH_NAMED | StatementSyntaxKind.DEFAULT_WITH_NAMESPACE | StatementSyntaxKind.DYNAMIC | StatementSyntaxKind.NAMED | StatementSyntaxKind.NAMESPACE | StatementSyntaxKind.SIDE_EFFECT;
|
|
12
|
+
export type { SyntaxKindImport as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Type Definitions - SyntaxKindRequire
|
|
3
|
+
* @module mlly/types/SyntaxKindRequire
|
|
4
|
+
*/
|
|
5
|
+
import type { StatementSyntaxKind } from '../enums/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* `require` statement syntax kinds.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode StatementSyntaxKind}
|
|
10
|
+
*/
|
|
11
|
+
type SyntaxKindRequire = StatementSyntaxKind.REQUIRE;
|
|
12
|
+
export type { SyntaxKindRequire as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file compareSubpaths
|
|
3
|
+
* @module mlly/utils/compareSubpaths
|
|
4
|
+
*/
|
|
5
|
+
import { CompareResult } from '@flex-development/tutils';
|
|
6
|
+
/**
|
|
7
|
+
* Returns a number indicating if a subpath pattern is equal to, greater than,
|
|
8
|
+
* or less than another subpath pattern.
|
|
9
|
+
*
|
|
10
|
+
* - `-1`: `subpath2` is less than `subpath1`
|
|
11
|
+
* - `0`: `subpath2` is equal to `subpath1`
|
|
12
|
+
* - `1`: `subpath2` is greater than `subpath1`
|
|
13
|
+
*
|
|
14
|
+
* Implements the `PATTERN_KEY_COMPARE` algorithm.
|
|
15
|
+
*
|
|
16
|
+
* @see https://nodejs.org/api/esm.html#resolution-algorithm
|
|
17
|
+
*
|
|
18
|
+
* @param {string} subpath1 - Subpath to be compared
|
|
19
|
+
* @param {string} subpath2 - Subpath to compare `subpath1` to
|
|
20
|
+
* @return {CompareResult} Comparsion result
|
|
21
|
+
* @throws {NodeError<Error | TypeError>} If either either subpath contains more
|
|
22
|
+
* than pattern character (`'*'`) or is not a string
|
|
23
|
+
*/
|
|
24
|
+
declare const compareSubpaths: (subpath1: string, subpath2: string) => CompareResult;
|
|
25
|
+
export default compareSubpaths;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import validateString from "../internal/validate-string.mjs";
|
|
2
|
+
import { CompareResult } from "@flex-development/tutils";
|
|
3
|
+
import assert from "node:assert";
|
|
4
|
+
import PATTERN_CHARACTER from "./pattern-character.mjs";
|
|
5
|
+
const compareSubpaths = (subpath1, subpath2) => {
|
|
6
|
+
validateString(subpath1, "subpath1");
|
|
7
|
+
validateString(subpath2, "subpath2");
|
|
8
|
+
let pattern1 = -1;
|
|
9
|
+
let pattern2 = -1;
|
|
10
|
+
for (const [index, subpath] of [subpath1, subpath2].entries()) {
|
|
11
|
+
const message = `'${subpath}' is expected to contain a single '*'`;
|
|
12
|
+
const pattern_index = subpath.indexOf(PATTERN_CHARACTER);
|
|
13
|
+
assert(pattern_index === subpath.lastIndexOf(PATTERN_CHARACTER), message);
|
|
14
|
+
index === 0 ? pattern1 = pattern_index : pattern2 = pattern_index;
|
|
15
|
+
}
|
|
16
|
+
const length1 = pattern1 === -1 ? subpath1.length : pattern1 + 1;
|
|
17
|
+
const length2 = pattern2 === -1 ? subpath2.length : pattern2 + 1;
|
|
18
|
+
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
|
+
};
|
|
20
|
+
var compare_subpaths_default = compareSubpaths;
|
|
21
|
+
export {
|
|
22
|
+
compare_subpaths_default as default
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=compare-subpaths.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/compare-subpaths.ts"],
|
|
4
|
+
"mappings": "AAKA,OAAO,oBAAoB;AAE3B,SAAS,qBAAqB;AAC9B,OAAO,YAAY;AACnB,OAAO,uBAAuB;AAoB9B,MAAM,kBAAkB,CAAC,UAAkB,aAAoC;AAC7E,iBAAe,UAAU,UAAU;AACnC,iBAAe,UAAU,UAAU;AAOnC,MAAI,WAAmB;AAOvB,MAAI,WAAmB;AAGvB,aAAW,CAAC,OAAO,OAAO,KAAK,CAAC,UAAU,QAAQ,EAAE,QAAQ,GAAG;AAM7D,UAAM,UAAkB,IAAI;AAO5B,UAAM,gBAAwB,QAAQ,QAAQ,iBAAiB;AAG/D,WAAO,kBAAkB,QAAQ,YAAY,iBAAiB,GAAG,OAAO;AAGxE,cAAU,IAAK,WAAW,gBAAkB,WAAW;AAAA,EACzD;AAOA,QAAM,UAAkB,aAAa,KAAK,SAAS,SAAS,WAAW;AAOvE,QAAM,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
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file CONDITIONS
|
|
3
|
+
* @module mlly/utils/CONDITIONS
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Default export conditions.
|
|
7
|
+
*
|
|
8
|
+
* @see https://nodejs.org/api/packages.html#conditional-exports
|
|
9
|
+
*
|
|
10
|
+
* @const {Set<string>} CONDITIONS
|
|
11
|
+
*/
|
|
12
|
+
declare const CONDITIONS: Set<string>;
|
|
13
|
+
export default CONDITIONS;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file detectSyntax
|
|
3
|
-
* @module mlly/
|
|
3
|
+
* @module mlly/utils/detectSyntax
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Detects if `code` contains CommonJS syntax, ESM syntax, or a mixture of both.
|
|
7
7
|
*
|
|
8
8
|
* Ignores matches in comments.
|
|
9
9
|
*
|
|
10
|
-
* @see {@
|
|
11
|
-
* @see {@
|
|
10
|
+
* @see {@linkcode hasCJSSyntax}
|
|
11
|
+
* @see {@linkcode hasESMSyntax}
|
|
12
12
|
*
|
|
13
|
-
* @param {string} code - Code to
|
|
13
|
+
* @param {string} code - Code to evaluate
|
|
14
14
|
* @return {{ cjs: boolean; esm: boolean; mixed: boolean }} Detection result
|
|
15
15
|
*/
|
|
16
16
|
declare const detectSyntax: (code: string) => {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/detect-syntax.ts"],
|
|
4
|
+
"mappings": "AAKA,OAAO,kBAAkB;AACzB,OAAO,kBAAkB;AAazB,MAAM,eAAe,CACnB,SACmD;AAMnD,QAAM,MAAe,aAAa,IAAI;AAOtC,QAAM,MAAe,aAAa,IAAI;AAEtC,SAAO,EAAE,KAAK,KAAK,OAAO,OAAO,IAAI;AACvC;AAEA,IAAO,wBAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file EXTENSION_FORMAT_MAP
|
|
3
|
+
* @module mlly/utils/EXTENSION_FORMAT_MAP
|
|
4
|
+
*/
|
|
5
|
+
import { Format } from '../enums/index.mjs';
|
|
6
|
+
import type { Ext } from '@flex-development/pathe';
|
|
7
|
+
/**
|
|
8
|
+
* Default file extension to module formats map.
|
|
9
|
+
*
|
|
10
|
+
* @see {@linkcode Ext}
|
|
11
|
+
* @see {@linkcode Format}
|
|
12
|
+
*
|
|
13
|
+
* @const {Map<Ext, Format>} EXTENSION_FORMAT_MAP
|
|
14
|
+
*/
|
|
15
|
+
declare const EXTENSION_FORMAT_MAP: Map<Ext, Format>;
|
|
16
|
+
export default EXTENSION_FORMAT_MAP;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Format } from "../enums/index.mjs";
|
|
2
|
+
const EXTENSION_FORMAT_MAP = /* @__PURE__ */ new Map([
|
|
3
|
+
[".cjs", Format.COMMONJS],
|
|
4
|
+
[".cts", Format.COMMONJS],
|
|
5
|
+
[".d.cts", Format.COMMONJS],
|
|
6
|
+
[".d.mts", Format.MODULE],
|
|
7
|
+
[".d.ts", Format.MODULE],
|
|
8
|
+
[".js", Format.MODULE],
|
|
9
|
+
[".json", Format.JSON],
|
|
10
|
+
[".jsx", Format.MODULE],
|
|
11
|
+
[".mjs", Format.MODULE],
|
|
12
|
+
[".mts", Format.MODULE],
|
|
13
|
+
[".node", Format.COMMONJS],
|
|
14
|
+
[".ts", Format.MODULE],
|
|
15
|
+
[".tsx", Format.MODULE],
|
|
16
|
+
[".wasm", Format.WASM]
|
|
17
|
+
]);
|
|
18
|
+
var extension_format_map_default = EXTENSION_FORMAT_MAP;
|
|
19
|
+
export {
|
|
20
|
+
extension_format_map_default as default
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=extension-format-map.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/extension-format-map.ts"],
|
|
4
|
+
"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
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file extractStatements
|
|
3
|
+
* @module mlly/utils/extractStatements
|
|
4
|
+
*/
|
|
5
|
+
import type { Statement } from '../interfaces/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* Finds all `export`, `import`, and/or `require` statements in `code`.
|
|
8
|
+
*
|
|
9
|
+
* Ignores matches in comments.
|
|
10
|
+
*
|
|
11
|
+
* @see {@linkcode findDynamicImports}
|
|
12
|
+
* @see {@linkcode findExports}
|
|
13
|
+
* @see {@linkcode findRequires}
|
|
14
|
+
* @see {@linkcode findStaticImports}
|
|
15
|
+
*
|
|
16
|
+
* @param {string} [code=''] - Code to evaluate
|
|
17
|
+
* @return {Statement[]} Extracted statements
|
|
18
|
+
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
19
|
+
*/
|
|
20
|
+
declare const extractStatements: (code?: string) => Statement[];
|
|
21
|
+
export default extractStatements;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import validateString from "../internal/validate-string.mjs";
|
|
1
2
|
import findDynamicImports from "./find-dynamic-imports.mjs";
|
|
2
3
|
import findExports from "./find-exports.mjs";
|
|
3
4
|
import findRequires from "./find-requires.mjs";
|
|
4
5
|
import findStaticImports from "./find-static-imports.mjs";
|
|
5
6
|
const extractStatements = (code = "") => {
|
|
6
|
-
|
|
7
|
+
validateString(code, "code");
|
|
8
|
+
if (code.trim().length < "export".length)
|
|
7
9
|
return [];
|
|
8
10
|
return [
|
|
9
11
|
...findDynamicImports(code),
|
|
@@ -16,3 +18,4 @@ var extract_statements_default = extractStatements;
|
|
|
16
18
|
export {
|
|
17
19
|
extract_statements_default as default
|
|
18
20
|
};
|
|
21
|
+
//# sourceMappingURL=extract-statements.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/extract-statements.ts"],
|
|
4
|
+
"mappings": "AAMA,OAAO,oBAAoB;AAE3B,OAAO,wBAAwB;AAC/B,OAAO,iBAAiB;AACxB,OAAO,kBAAkB;AACzB,OAAO,uBAAuB;AAgB9B,MAAM,oBAAoB,CAAC,OAAe,OAAoB;AAC5D,iBAAe,MAAM,MAAM;AAG3B,MAAI,KAAK,KAAK,EAAE,SAAS,SAAS;AAAQ,WAAO,CAAC;AAElD,SAAO;AAAA,IACL,GAAG,mBAAmB,IAAI;AAAA,IAC1B,GAAG,YAAY,IAAI;AAAA,IACnB,GAAG,aAAa,IAAI;AAAA,IACpB,GAAG,kBAAkB,IAAI;AAAA,EAC3B;AACF;AAEA,IAAO,6BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file fillModules
|
|
3
|
+
* @module mlly/utils/fillModules
|
|
4
|
+
*/
|
|
5
|
+
import type { FillModuleOptions } from '../interfaces/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* Ensures all absolute and relative module specifiers in the given piece of
|
|
8
|
+
* source `code` are fully specified.
|
|
9
|
+
*
|
|
10
|
+
* Ignores specifiers that already have file extensions.
|
|
11
|
+
*
|
|
12
|
+
* @see {@linkcode FillModuleOptions}
|
|
13
|
+
* @see https://nodejs.org/api/esm.html#mandatory-file-extensions
|
|
14
|
+
* @see https://nodejs.org/api/esm.html#terminology
|
|
15
|
+
*
|
|
16
|
+
* @async
|
|
17
|
+
*
|
|
18
|
+
* @param {string} code - Code to evaluate
|
|
19
|
+
* @param {FillModuleOptions} options - Module fill options
|
|
20
|
+
* @return {Promise<string>} `code` with fully specified module specifiers
|
|
21
|
+
*/
|
|
22
|
+
declare const fillModules: (code: string, options: FillModuleOptions) => Promise<string>;
|
|
23
|
+
export default fillModules;
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
import { ERR_UNKNOWN_FILE_EXTENSION } from "@flex-development/errnode";
|
|
5
|
+
import pathe from "@flex-development/pathe";
|
|
6
|
+
import CONDITIONS from "./conditions.mjs";
|
|
7
|
+
import extractStatements from "./extract-statements.mjs";
|
|
8
|
+
import isAbsoluteSpecifier from "./is-absolute-specifier.mjs";
|
|
9
|
+
import isBareSpecifier from "./is-bare-specifier.mjs";
|
|
10
|
+
import resolveModule from "./resolve-module.mjs";
|
|
11
|
+
import toBareSpecifier from "./to-bare-specifier.mjs";
|
|
12
|
+
import toRelativeSpecifier from "./to-relative-specifier.mjs";
|
|
13
|
+
const fillModules = async (code, options) => {
|
|
14
|
+
const { conditions = CONDITIONS, ext, parent = import.meta.url } = options;
|
|
15
|
+
for (const statement of extractStatements(code)) {
|
|
16
|
+
if (!statement.specifier)
|
|
17
|
+
continue;
|
|
18
|
+
if (statement.specifier_syntax === SpecifierSyntaxKind.DYNAMIC)
|
|
19
|
+
continue;
|
|
20
|
+
const url = await resolveModule(statement.specifier, {
|
|
21
|
+
...options,
|
|
22
|
+
/**
|
|
23
|
+
* Returns a replacement file extension for the given module `specifier`
|
|
24
|
+
* **if it is non-bare and does not already have an extension**.
|
|
25
|
+
*
|
|
26
|
+
* Throws [`ERR_UNKNOWN_FILE_EXTENSION`][1] if the replacement extension
|
|
27
|
+
* is `null`, `undefined`, an empty string, or a dot character (`'.'`).
|
|
28
|
+
*
|
|
29
|
+
* [1]: https://nodejs.org/api/errors.html#err_unknown_file_extension
|
|
30
|
+
*
|
|
31
|
+
* @async
|
|
32
|
+
*
|
|
33
|
+
* @param {string} specifier - Module specifier
|
|
34
|
+
* @param {URL} url - Resolved module URL
|
|
35
|
+
* @return {Promise<string | undefined>} New file extension or `undefined`
|
|
36
|
+
*/
|
|
37
|
+
async ext(specifier, url2) {
|
|
38
|
+
if (isBareSpecifier(specifier))
|
|
39
|
+
return void 0;
|
|
40
|
+
if (pathe.extname(specifier) === pathe.extname(url2.href))
|
|
41
|
+
return void 0;
|
|
42
|
+
const rext = isFunction(ext) ? await ext(specifier, url2) : ext;
|
|
43
|
+
if (!(rext && rext.trim().length > (rext.startsWith(".") ? 1 : 0))) {
|
|
44
|
+
throw new ERR_UNKNOWN_FILE_EXTENSION(rext, specifier);
|
|
45
|
+
}
|
|
46
|
+
return rext;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
code = code.replace(
|
|
50
|
+
statement.code,
|
|
51
|
+
statement.code.replace(
|
|
52
|
+
new RegExp(`(?<=["'])${regexp(statement.specifier)}(?=["'])`),
|
|
53
|
+
// convert module url back to absolute, bare, or relative specifier
|
|
54
|
+
statement.specifier.startsWith("#") ? statement.specifier : isAbsoluteSpecifier(statement.specifier) ? url.href : isBareSpecifier(statement.specifier) ? toBareSpecifier(url, parent, new Set(conditions)) : toRelativeSpecifier(url, parent)
|
|
55
|
+
)
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
return code;
|
|
59
|
+
};
|
|
60
|
+
var fill_modules_default = fillModules;
|
|
61
|
+
export {
|
|
62
|
+
fill_modules_default as default
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=fill-modules.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/fill-modules.ts"],
|
|
4
|
+
"mappings": "AAKA,SAAS,2BAA2B;AAEpC,OAAO,YAAY;AACnB,OAAO,gBAAgB;AACvB,SAAS,kCAAkC;AAC3C,OAAO,WAAW;AAElB,OAAO,gBAAgB;AACvB,OAAO,uBAAuB;AAC9B,OAAO,yBAAyB;AAChC,OAAO,qBAAqB;AAC5B,OAAO,mBAAmB;AAC1B,OAAO,qBAAqB;AAC5B,OAAO,yBAAyB;AAkBhC,MAAM,cAAc,OAClB,MACA,YACoB;AACpB,QAAM,EAAE,aAAa,YAAY,KAAK,SAAS,YAAY,IAAI,IAAI;AAGnE,aAAW,aAAa,kBAAkB,IAAI,GAAG;AAE/C,QAAI,CAAC,UAAU;AAAW;AAG1B,QAAI,UAAU,qBAAqB,oBAAoB;AAAS;AAOhE,UAAM,MAAW,MAAM,cAAc,UAAU,WAAW;AAAA,MACxD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAgBH,MAAM,IAAI,WAAmBA,MAAuC;AAElE,YAAI,gBAAgB,SAAS;AAAG,iBAAO;AAGvC,YAAI,MAAM,QAAQ,SAAS,MAAM,MAAM,QAAQA,KAAI,IAAI;AAAG,iBAAO;AAOjE,cAAM,OAAe,WAAW,GAAG,IAAI,MAAM,IAAI,WAAWA,IAAG,IAAI;AAGnE,YAAI,EAAE,QAAQ,KAAK,KAAK,EAAE,UAAU,KAAK,WAAW,GAAG,IAAI,IAAI,KAAK;AAClE,gBAAM,IAAI,2BAA2B,MAAM,SAAS;AAAA,QACtD;AAEA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAGD,WAAO,KAAK;AAAA,MACV,UAAU;AAAA,MACV,UAAU,KAAK;AAAA,QACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,WAAW;AAAA;AAAA,QAE5D,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,MACrC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,uBAAQ;",
|
|
5
|
+
"names": ["url"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file findDynamicImports
|
|
3
|
+
* @module mlly/utils/findDynamicImports
|
|
4
|
+
*/
|
|
5
|
+
import type { DynamicImport } from '../interfaces/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* Finds all dynamic import statements in `code`. Ignores matches in comments.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode DynamicImport}
|
|
10
|
+
* @see https://regex101.com/r/PTPAvU
|
|
11
|
+
* @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/import
|
|
12
|
+
*
|
|
13
|
+
* @param {string} [code=''] - Code to evaluate
|
|
14
|
+
* @return {DynamicImport[]} Dynamic import statement objects
|
|
15
|
+
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
16
|
+
*/
|
|
17
|
+
declare const findDynamicImports: (code?: string) => DynamicImport[];
|
|
18
|
+
export default findDynamicImports;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SpecifierSyntaxKind,
|
|
3
|
+
StatementKind,
|
|
4
|
+
StatementSyntaxKind
|
|
5
|
+
} from "../enums/index.mjs";
|
|
6
|
+
import getSpecifierKind from "../internal/get-specifier-kind.mjs";
|
|
7
|
+
import validateString from "../internal/validate-string.mjs";
|
|
8
|
+
import { DYNAMIC_IMPORT_REGEX } from "@flex-development/import-regex";
|
|
9
|
+
const findDynamicImports = (code = "") => {
|
|
10
|
+
validateString(code, "code");
|
|
11
|
+
return [...code.matchAll(DYNAMIC_IMPORT_REGEX)].map((match) => {
|
|
12
|
+
const { 0: code2 = "", index: start = 0, groups = {} } = match;
|
|
13
|
+
const {
|
|
14
|
+
expression = "",
|
|
15
|
+
imports = "",
|
|
16
|
+
options = "",
|
|
17
|
+
specifier = ""
|
|
18
|
+
} = groups;
|
|
19
|
+
const specifier_syntax = /^["']/.test(specifier) ? SpecifierSyntaxKind.STATIC : SpecifierSyntaxKind.DYNAMIC;
|
|
20
|
+
return {
|
|
21
|
+
code: code2,
|
|
22
|
+
end: start + code2.length,
|
|
23
|
+
expression,
|
|
24
|
+
imports: imports === "" ? [] : imports.replace(/^{|}$/g, "").split(",").map((e) => e.trim()).filter((e) => e.length > 0),
|
|
25
|
+
kind: StatementKind.IMPORT,
|
|
26
|
+
options,
|
|
27
|
+
specifier: specifier.replace(/^["']|["']$/g, ""),
|
|
28
|
+
specifier_kind: specifier_syntax === SpecifierSyntaxKind.DYNAMIC ? null : getSpecifierKind(specifier),
|
|
29
|
+
specifier_syntax,
|
|
30
|
+
start,
|
|
31
|
+
syntax: StatementSyntaxKind.DYNAMIC
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var find_dynamic_imports_default = findDynamicImports;
|
|
36
|
+
export {
|
|
37
|
+
find_dynamic_imports_default as default
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=find-dynamic-imports.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/find-dynamic-imports.ts"],
|
|
4
|
+
"mappings": "AAKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,OAAO,sBAAsB;AAC7B,OAAO,oBAAoB;AAE3B,SAAS,4BAA4B;AAarC,MAAM,qBAAqB,CAAC,OAAe,OAAwB;AACjE,iBAAe,MAAM,MAAM;AAE3B,SAAO,CAAC,GAAG,KAAK,SAAS,oBAAoB,CAAC,EAAE,IAAI,WAAS;AAC3D,UAAM,EAAE,GAAGA,QAAO,IAAI,OAAO,QAAQ,GAAG,SAAS,CAAC,EAAE,IAAI;AACxD,UAAM;AAAA,MACJ,aAAa;AAAA,MACb,UAAU;AAAA,MACV,UAAU;AAAA,MACV,YAAY;AAAA,IACd,IAAI;AAOJ,UAAM,mBAAwC,QAAQ,KAAK,SAAS,IAChE,oBAAoB,SACpB,oBAAoB;AAExB,WAAO;AAAA,MACL,MAAAA;AAAA,MACA,KAAK,QAAQA,MAAK;AAAA,MAClB;AAAA,MACA,SACE,YAAY,KACR,CAAC,IACD,QACG,QAAQ,UAAU,EAAE,EACpB,MAAM,GAAG,EACT,IAAI,OAAK,EAAE,KAAK,CAAC,EACjB,OAAO,OAAK,EAAE,SAAS,CAAC;AAAA,MACjC,MAAM,cAAc;AAAA,MACpB;AAAA,MACA,WAAW,UAAU,QAAQ,gBAAgB,EAAE;AAAA,MAC/C,gBACE,qBAAqB,oBAAoB,UACrC,OACA,iBAAiB,SAAS;AAAA,MAChC;AAAA,MACA;AAAA,MACA,QAAQ,oBAAoB;AAAA,IAC9B;AAAA,EACF,CAAC;AACH;AAEA,IAAO,+BAAQ;",
|
|
5
|
+
"names": ["code"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file findExports
|
|
3
|
+
* @module mlly/utils/findExports
|
|
4
|
+
*/
|
|
5
|
+
import type { ExportStatement } from '../interfaces/index.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* Finds all export statements in `code`. Ignores matches in comments.
|
|
8
|
+
*
|
|
9
|
+
* @see {@linkcode ExportStatement}
|
|
10
|
+
* @see https://regex101.com/r/JtvRUt
|
|
11
|
+
* @see https://regex101.com/r/8HpMrA
|
|
12
|
+
* @see https://regex101.com/r/G7GhEt
|
|
13
|
+
* @see https://regex101.com/r/KQEDdZ
|
|
14
|
+
* @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/export
|
|
15
|
+
*
|
|
16
|
+
* @param {string} [code=''] - Code to evaluate
|
|
17
|
+
* @return {ExportStatement[]} Export statement objects
|
|
18
|
+
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
19
|
+
*/
|
|
20
|
+
declare const findExports: (code?: string) => ExportStatement[];
|
|
21
|
+
export default findExports;
|