@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file hasESMSyntax
|
|
3
|
-
* @module mlly/
|
|
3
|
+
* @module mlly/utils/hasESMSyntax
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Detects if `code` contains ESM syntax. Ignores matches in comments.
|
|
@@ -11,8 +11,11 @@
|
|
|
11
11
|
* - `import` (default, dynamic, named, star)
|
|
12
12
|
* - `import.meta.(env|resolve|url)`
|
|
13
13
|
*
|
|
14
|
-
* @
|
|
14
|
+
* @see https://regex101.com/r/xfreyy
|
|
15
|
+
*
|
|
16
|
+
* @param {string} code - Code to evaluate
|
|
15
17
|
* @return {boolean} `true` if `code` contains esm syntax, `false` otherwise
|
|
18
|
+
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
16
19
|
*/
|
|
17
20
|
declare const hasESMSyntax: (code: string) => boolean;
|
|
18
21
|
export default hasESMSyntax;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import validateString from "../internal/validate-string.mjs";
|
|
2
|
+
const hasESMSyntax = (code) => {
|
|
3
|
+
validateString(code, "code");
|
|
4
|
+
const ESM_SYNTAX_REGEX = /(?<!(?:\/\/|\*).*)((?:export|import)[\s\w*,{}]*(?=\sfrom)|export\b\s*(?:[*{]|async function|(?:abstract\s)?class|const|default|enum|function|interface|let|type|var)|await import|import\.meta\.(?:env(?:\.\w+)?|resolve|url))/gm;
|
|
5
|
+
return !!code.match(ESM_SYNTAX_REGEX);
|
|
6
|
+
};
|
|
7
|
+
var has_esm_syntax_default = hasESMSyntax;
|
|
8
|
+
export {
|
|
9
|
+
has_esm_syntax_default as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=has-esm-syntax.mjs.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Utilities
|
|
3
|
+
* @module mlly/utils
|
|
4
|
+
*/
|
|
5
|
+
export { default as compareSubpaths } from './compare-subpaths.mjs';
|
|
6
|
+
export { default as CONDITIONS } from './conditions.mjs';
|
|
7
|
+
export { default as detectSyntax } from './detect-syntax.mjs';
|
|
8
|
+
export { default as EXTENSION_FORMAT_MAP } from './extension-format-map.mjs';
|
|
9
|
+
export { default as extractStatements } from './extract-statements.mjs';
|
|
10
|
+
export { default as fillModules } from './fill-modules.mjs';
|
|
11
|
+
export { default as findDynamicImports } from './find-dynamic-imports.mjs';
|
|
12
|
+
export { default as findExports } from './find-exports.mjs';
|
|
13
|
+
export { default as findRequires } from './find-requires.mjs';
|
|
14
|
+
export { default as findStaticImports } from './find-static-imports.mjs';
|
|
15
|
+
export { default as findSubpath } from './find-subpath.mjs';
|
|
16
|
+
export { default as getFormat } from './get-format.mjs';
|
|
17
|
+
export { default as getSource } from './get-source.mjs';
|
|
18
|
+
export { default as hasCJSSyntax } from './has-cjs-syntax.mjs';
|
|
19
|
+
export { default as hasESMSyntax } from './has-esm-syntax.mjs';
|
|
20
|
+
export { default as isAbsoluteSpecifier } from './is-absolute-specifier.mjs';
|
|
21
|
+
export { default as isBareSpecifier } from './is-bare-specifier.mjs';
|
|
22
|
+
export { default as isExportsSugar } from './is-exports-sugar.mjs';
|
|
23
|
+
export { default as isRelativeSpecifier } from './is-relative-specifier.mjs';
|
|
24
|
+
export { default as lookupPackageScope } from './lookup-package-scope.mjs';
|
|
25
|
+
export { default as parseDataURL } from './parse-data-url.mjs';
|
|
26
|
+
export { default as parseModuleId } from './parse-module-id.mjs';
|
|
27
|
+
export { default as parseSubpath } from './parse-subpath.mjs';
|
|
28
|
+
export { default as PATTERN_CHARACTER } from './pattern-character.mjs';
|
|
29
|
+
export { default as readPackageJson } from './read-package-json.mjs';
|
|
30
|
+
export { default as resolveAlias } from './resolve-alias.mjs';
|
|
31
|
+
export { default as resolveAliases } from './resolve-aliases.mjs';
|
|
32
|
+
export { default as RESOLVE_EXTENSIONS } from './resolve-extensions.mjs';
|
|
33
|
+
export { default as resolveModule } from './resolve-module.mjs';
|
|
34
|
+
export { default as resolveModules } from './resolve-modules.mjs';
|
|
35
|
+
export { default as toAbsoluteSpecifier } from './to-absolute-specifier.mjs';
|
|
36
|
+
export { default as toBareSpecifier } from './to-bare-specifier.mjs';
|
|
37
|
+
export { default as toDataURL } from './to-data-url.mjs';
|
|
38
|
+
export { default as toNodeURL } from './to-node-url.mjs';
|
|
39
|
+
export { default as toRelativeSpecifier } from './to-relative-specifier.mjs';
|
|
40
|
+
export { default as toURL } from './to-url.mjs';
|
|
41
|
+
export { default as validateAssertions } from './validate-assertions.mjs';
|
|
42
|
+
export { default as validateExports } from './validate-exports.mjs';
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { default as default2 } from "./compare-subpaths.mjs";
|
|
2
|
+
import { default as default3 } from "./conditions.mjs";
|
|
3
|
+
import { default as default4 } from "./detect-syntax.mjs";
|
|
4
|
+
import { default as default5 } from "./extension-format-map.mjs";
|
|
5
|
+
import { default as default6 } from "./extract-statements.mjs";
|
|
6
|
+
import { default as default7 } from "./fill-modules.mjs";
|
|
7
|
+
import { default as default8 } from "./find-dynamic-imports.mjs";
|
|
8
|
+
import { default as default9 } from "./find-exports.mjs";
|
|
9
|
+
import { default as default10 } from "./find-requires.mjs";
|
|
10
|
+
import { default as default11 } from "./find-static-imports.mjs";
|
|
11
|
+
import { default as default12 } from "./find-subpath.mjs";
|
|
12
|
+
import { default as default13 } from "./get-format.mjs";
|
|
13
|
+
import { default as default14 } from "./get-source.mjs";
|
|
14
|
+
import { default as default15 } from "./has-cjs-syntax.mjs";
|
|
15
|
+
import { default as default16 } from "./has-esm-syntax.mjs";
|
|
16
|
+
import { default as default17 } from "./is-absolute-specifier.mjs";
|
|
17
|
+
import { default as default18 } from "./is-bare-specifier.mjs";
|
|
18
|
+
import { default as default19 } from "./is-exports-sugar.mjs";
|
|
19
|
+
import { default as default20 } from "./is-relative-specifier.mjs";
|
|
20
|
+
import { default as default21 } from "./lookup-package-scope.mjs";
|
|
21
|
+
import { default as default22 } from "./parse-data-url.mjs";
|
|
22
|
+
import { default as default23 } from "./parse-module-id.mjs";
|
|
23
|
+
import { default as default24 } from "./parse-subpath.mjs";
|
|
24
|
+
import { default as default25 } from "./pattern-character.mjs";
|
|
25
|
+
import { default as default26 } from "./read-package-json.mjs";
|
|
26
|
+
import { default as default27 } from "./resolve-alias.mjs";
|
|
27
|
+
import { default as default28 } from "./resolve-aliases.mjs";
|
|
28
|
+
import { default as default29 } from "./resolve-extensions.mjs";
|
|
29
|
+
import { default as default30 } from "./resolve-module.mjs";
|
|
30
|
+
import { default as default31 } from "./resolve-modules.mjs";
|
|
31
|
+
import { default as default32 } from "./to-absolute-specifier.mjs";
|
|
32
|
+
import { default as default33 } from "./to-bare-specifier.mjs";
|
|
33
|
+
import { default as default34 } from "./to-data-url.mjs";
|
|
34
|
+
import { default as default35 } from "./to-node-url.mjs";
|
|
35
|
+
import { default as default36 } from "./to-relative-specifier.mjs";
|
|
36
|
+
import { default as default37 } from "./to-url.mjs";
|
|
37
|
+
import { default as default38 } from "./validate-assertions.mjs";
|
|
38
|
+
import { default as default39 } from "./validate-exports.mjs";
|
|
39
|
+
export {
|
|
40
|
+
default3 as CONDITIONS,
|
|
41
|
+
default5 as EXTENSION_FORMAT_MAP,
|
|
42
|
+
default25 as PATTERN_CHARACTER,
|
|
43
|
+
default29 as RESOLVE_EXTENSIONS,
|
|
44
|
+
default2 as compareSubpaths,
|
|
45
|
+
default4 as detectSyntax,
|
|
46
|
+
default6 as extractStatements,
|
|
47
|
+
default7 as fillModules,
|
|
48
|
+
default8 as findDynamicImports,
|
|
49
|
+
default9 as findExports,
|
|
50
|
+
default10 as findRequires,
|
|
51
|
+
default11 as findStaticImports,
|
|
52
|
+
default12 as findSubpath,
|
|
53
|
+
default13 as getFormat,
|
|
54
|
+
default14 as getSource,
|
|
55
|
+
default15 as hasCJSSyntax,
|
|
56
|
+
default16 as hasESMSyntax,
|
|
57
|
+
default17 as isAbsoluteSpecifier,
|
|
58
|
+
default18 as isBareSpecifier,
|
|
59
|
+
default19 as isExportsSugar,
|
|
60
|
+
default20 as isRelativeSpecifier,
|
|
61
|
+
default21 as lookupPackageScope,
|
|
62
|
+
default22 as parseDataURL,
|
|
63
|
+
default23 as parseModuleId,
|
|
64
|
+
default24 as parseSubpath,
|
|
65
|
+
default26 as readPackageJson,
|
|
66
|
+
default27 as resolveAlias,
|
|
67
|
+
default28 as resolveAliases,
|
|
68
|
+
default30 as resolveModule,
|
|
69
|
+
default31 as resolveModules,
|
|
70
|
+
default32 as toAbsoluteSpecifier,
|
|
71
|
+
default33 as toBareSpecifier,
|
|
72
|
+
default34 as toDataURL,
|
|
73
|
+
default35 as toNodeURL,
|
|
74
|
+
default36 as toRelativeSpecifier,
|
|
75
|
+
default37 as toURL,
|
|
76
|
+
default38 as validateAssertions,
|
|
77
|
+
default39 as validateExports
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/index.ts"],
|
|
4
|
+
"mappings": "AAKA,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAA+B;AACxC,SAAoB,WAAXA,gBAAuC;AAChD,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAA8B;AACvC,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA8B;AACvC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAoC;AAC7C,SAAoB,WAAXA,iBAA8B;AACvC,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAqC;AAC9C,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAgC;AACzC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAoC;AAC7C,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAAqC;AAC9C,SAAoB,WAAXA,iBAAgC;AACzC,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAwB;AACjC,SAAoB,WAAXA,iBAAqC;AAC9C,SAAoB,WAAXA,iBAAkC;",
|
|
5
|
+
"names": ["default"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file isAbsoluteSpecifier
|
|
3
|
+
* @module mlly/utils/isAbsoluteSpecifier
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Checks if the given `specifier` is an absolute specifier.
|
|
7
|
+
*
|
|
8
|
+
* ::: warning
|
|
9
|
+
* Only checks specifier syntax. Does **not** guarantee the specifier references
|
|
10
|
+
* a file that exists.
|
|
11
|
+
* :::
|
|
12
|
+
*
|
|
13
|
+
* @see https://nodejs.org/api/esm.html#terminology
|
|
14
|
+
*
|
|
15
|
+
* @param {string} specifier - Specifier to evaluate
|
|
16
|
+
* @return {boolean} `true` if `specifier` is absolute specifier
|
|
17
|
+
*/
|
|
18
|
+
declare const isAbsoluteSpecifier: (specifier: string) => boolean;
|
|
19
|
+
export default isAbsoluteSpecifier;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import pathe from "@flex-development/pathe";
|
|
2
|
+
import { URL } from "node:url";
|
|
3
|
+
const isAbsoluteSpecifier = (specifier) => {
|
|
4
|
+
let absolute = false;
|
|
5
|
+
switch (true) {
|
|
6
|
+
case pathe.isAbsolute(specifier):
|
|
7
|
+
absolute = true;
|
|
8
|
+
break;
|
|
9
|
+
case specifier.startsWith("file:"):
|
|
10
|
+
try {
|
|
11
|
+
new URL(specifier);
|
|
12
|
+
absolute = true;
|
|
13
|
+
} catch {
|
|
14
|
+
}
|
|
15
|
+
break;
|
|
16
|
+
default:
|
|
17
|
+
absolute = false;
|
|
18
|
+
}
|
|
19
|
+
return absolute;
|
|
20
|
+
};
|
|
21
|
+
var is_absolute_specifier_default = isAbsoluteSpecifier;
|
|
22
|
+
export {
|
|
23
|
+
is_absolute_specifier_default as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=is-absolute-specifier.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/is-absolute-specifier.ts"],
|
|
4
|
+
"mappings": "AAKA,OAAO,WAAW;AAClB,SAAS,WAAW;AAepB,MAAM,sBAAsB,CAAC,cAA+B;AAM1D,MAAI,WAAoB;AAGxB,UAAQ,MAAM;AAAA,IACZ,KAAK,MAAM,WAAW,SAAS;AAC7B,iBAAW;AACX;AAAA,IACF,KAAK,UAAU,WAAW,OAAO;AAC/B,UAAI;AACF,YAAI,IAAI,SAAS;AACjB,mBAAW;AAAA,MACb,QAAuB;AAAA,MAAO;AAC9B;AAAA,IACF;AACE,iBAAW;AAAA,EACf;AAEA,SAAO;AACT;AAEA,IAAO,gCAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file isBareSpecifier
|
|
3
|
+
* @module mlly/utils/isBareSpecifier
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Checks if the given `specifier` is a bare specifier.
|
|
7
|
+
*
|
|
8
|
+
* ::: warning
|
|
9
|
+
* Only checks specifier syntax. Does **not** guarantee the specifier references
|
|
10
|
+
* a file that exists.
|
|
11
|
+
* :::
|
|
12
|
+
*
|
|
13
|
+
* @see https://nodejs.org/api/esm.html#terminology
|
|
14
|
+
*
|
|
15
|
+
* @param {string} specifier - Specifier to evaluate
|
|
16
|
+
* @return {boolean} `true` if `specifier` is bare specifier
|
|
17
|
+
*/
|
|
18
|
+
declare const isBareSpecifier: (specifier: string) => boolean;
|
|
19
|
+
export default isBareSpecifier;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import isAbsoluteSpecifier from "./is-absolute-specifier.mjs";
|
|
2
|
+
import isRelativeSpecifier from "./is-relative-specifier.mjs";
|
|
3
|
+
const isBareSpecifier = (specifier) => {
|
|
4
|
+
return specifier.trim().length > 0 && !isAbsoluteSpecifier(specifier) && !isRelativeSpecifier(specifier);
|
|
5
|
+
};
|
|
6
|
+
var is_bare_specifier_default = isBareSpecifier;
|
|
7
|
+
export {
|
|
8
|
+
is_bare_specifier_default as default
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=is-bare-specifier.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/is-bare-specifier.ts"],
|
|
4
|
+
"mappings": "AAKA,OAAO,yBAAyB;AAChC,OAAO,yBAAyB;AAehC,MAAM,kBAAkB,CAAC,cAA+B;AACtD,SACE,UAAU,KAAK,EAAE,SAAS,KAC1B,CAAC,oBAAoB,SAAS,KAC9B,CAAC,oBAAoB,SAAS;AAElC;AAEA,IAAO,4BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file isExportsSugar
|
|
3
|
+
* @module mlly/utils/isExportsSugar
|
|
4
|
+
*/
|
|
5
|
+
import type { ModuleId } from '../types/index.mjs';
|
|
6
|
+
import type { Exports } from '@flex-development/pkg-types';
|
|
7
|
+
/**
|
|
8
|
+
* Checks if the given package [`exports`][1] value is using [exports sugar][2].
|
|
9
|
+
*
|
|
10
|
+
* [1]: https://nodejs.org/api/packages.html#exports
|
|
11
|
+
* [2]: https://nodejs.org/api/packages.html#exports-sugar
|
|
12
|
+
*
|
|
13
|
+
* @see {@linkcode Exports}
|
|
14
|
+
* @see {@linkcode ModuleId}
|
|
15
|
+
*
|
|
16
|
+
* @param {Exports | undefined} exports - Package `exports`
|
|
17
|
+
* @param {ModuleId} pkg - URL of relevant `package.json` file
|
|
18
|
+
* @param {ModuleId} parent - URL of module to resolve from
|
|
19
|
+
* @return {boolean} `true` if `exports` is using exports sugar
|
|
20
|
+
* @throws {NodeError<Error | TypeError>} If either `pkg` or `parent` is not an
|
|
21
|
+
* instance of {@linkcode URL} or a string, or if `exports` configuration or
|
|
22
|
+
* schema is invalid
|
|
23
|
+
*/
|
|
24
|
+
declare const isExportsSugar: (exports: Exports | undefined, pkg: ModuleId, parent: ModuleId) => boolean;
|
|
25
|
+
export default isExportsSugar;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isNIL } from "@flex-development/tutils";
|
|
2
|
+
import validateExports from "./validate-exports.mjs";
|
|
3
|
+
const isExportsSugar = (exports, pkg, parent) => {
|
|
4
|
+
var _a;
|
|
5
|
+
let sugar = false;
|
|
6
|
+
switch (true) {
|
|
7
|
+
case Array.isArray(exports):
|
|
8
|
+
case typeof exports === "string":
|
|
9
|
+
sugar = true;
|
|
10
|
+
break;
|
|
11
|
+
case isNIL(exports):
|
|
12
|
+
case typeof exports !== "object":
|
|
13
|
+
sugar = false;
|
|
14
|
+
break;
|
|
15
|
+
default:
|
|
16
|
+
exports = exports;
|
|
17
|
+
validateExports(exports, pkg, parent);
|
|
18
|
+
sugar = !((_a = Object.getOwnPropertyNames(exports)[0]) == null ? void 0 : _a.startsWith("."));
|
|
19
|
+
}
|
|
20
|
+
return sugar;
|
|
21
|
+
};
|
|
22
|
+
var is_exports_sugar_default = isExportsSugar;
|
|
23
|
+
export {
|
|
24
|
+
is_exports_sugar_default as default
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=is-exports-sugar.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/is-exports-sugar.ts"],
|
|
4
|
+
"mappings": "AAQA,SAAS,aAAa;AACtB,OAAO,qBAAqB;AAmB5B,MAAM,iBAAiB,CACrB,SACA,KACA,WACY;AAhCd;AAwCE,MAAI,QAAiB;AAGrB,UAAQ,MAAM;AAAA,IACZ,KAAK,MAAM,QAAQ,OAAO;AAAA,IAC1B,KAAK,OAAO,YAAY;AACtB,cAAQ;AACR;AAAA,IACF,KAAK,MAAM,OAAO;AAAA,IAClB,KAAK,OAAO,YAAY;AACtB,cAAQ;AACR;AAAA,IACF;AACE,gBAAU;AAWV,sBAAgB,SAAS,KAAK,MAAM;AAGpC,cAAQ,GAAC,YAAO,oBAAoB,OAAO,EAAE,CAAC,MAArC,mBAAwC,WAAW;AAAA,EAChE;AAEA,SAAO;AACT;AAEA,IAAO,2BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file isRelativeSpecifier
|
|
3
|
+
* @module mlly/utils/isRelativeSpecifier
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Checks if the given `specifier` is a relative specifier.
|
|
7
|
+
*
|
|
8
|
+
* ::: warning
|
|
9
|
+
* Only checks specifier syntax. Does **not** guarantee the specifier references
|
|
10
|
+
* a file that exists.
|
|
11
|
+
* :::
|
|
12
|
+
*
|
|
13
|
+
* @see https://nodejs.org/api/esm.html#terminology
|
|
14
|
+
*
|
|
15
|
+
* @param {string} specifier - Specifier to evaluate
|
|
16
|
+
* @return {boolean} `true` if `specifier` is relative specifier
|
|
17
|
+
* @throws {NodeError<TypeError>} If `specifier` is not a string
|
|
18
|
+
*/
|
|
19
|
+
declare const isRelativeSpecifier: (specifier: string) => boolean;
|
|
20
|
+
export default isRelativeSpecifier;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import validateString from "../internal/validate-string.mjs";
|
|
2
|
+
import pathe from "@flex-development/pathe";
|
|
3
|
+
const isRelativeSpecifier = (specifier) => {
|
|
4
|
+
validateString(specifier, "specifier");
|
|
5
|
+
return specifier.startsWith(".") ? specifier.length === 1 || specifier[1] === pathe.sep ? true : specifier[1] === "." && (specifier.length === 2 || specifier[2] === pathe.sep) : false;
|
|
6
|
+
};
|
|
7
|
+
var is_relative_specifier_default = isRelativeSpecifier;
|
|
8
|
+
export {
|
|
9
|
+
is_relative_specifier_default as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=is-relative-specifier.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/is-relative-specifier.ts"],
|
|
4
|
+
"mappings": "AAKA,OAAO,oBAAoB;AAE3B,OAAO,WAAW;AAgBlB,MAAM,sBAAsB,CAAC,cAA+B;AAC1D,iBAAe,WAAW,WAAW;AACrC,SAAO,UAAU,WAAW,GAAG,IAC3B,UAAU,WAAW,KAAK,UAAU,CAAC,MAAM,MAAM,MAC/C,OACA,UAAU,CAAC,MAAM,QAChB,UAAU,WAAW,KAAK,UAAU,CAAC,MAAM,MAAM,OACpD;AACN;AAEA,IAAO,gCAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file lookupPackageScope
|
|
3
|
+
* @module mlly/utils/lookupPackageScope
|
|
4
|
+
*/
|
|
5
|
+
import type { PackageScope } from '../interfaces/index.mjs';
|
|
6
|
+
import type { ModuleId } from '../types/index.mjs';
|
|
7
|
+
import type { Nullable } from '@flex-development/tutils';
|
|
8
|
+
/**
|
|
9
|
+
* Finds a `package.json` file for the given module `id`. Ends the search at the
|
|
10
|
+
* given end point **after** checking for a `package.json` file.
|
|
11
|
+
*
|
|
12
|
+
* Returns `null` if a `package.json` file is not found.
|
|
13
|
+
*
|
|
14
|
+
* @see {@linkcode ModuleId}
|
|
15
|
+
* @see {@linkcode PackageScope}
|
|
16
|
+
*
|
|
17
|
+
* @param {ModuleId} id - Id of module to get package scope for
|
|
18
|
+
* @param {ModuleId?} [stopdir=pathe.sep] - Directory to end search
|
|
19
|
+
* @param {string?} [specifier] - Module specifier passed by user
|
|
20
|
+
* @param {ModuleId?} [parent] - Id of module to resolve from
|
|
21
|
+
* @return {?PackageScope} Package scope result or `null`
|
|
22
|
+
* @throws {NodeError<TypeError>} If either `id` or `stopdir` is not an instance
|
|
23
|
+
* of {@linkcode URL} or a string
|
|
24
|
+
*/
|
|
25
|
+
declare const lookupPackageScope: (id: ModuleId, stopdir?: ModuleId, specifier?: string, parent?: ModuleId) => Nullable<PackageScope>;
|
|
26
|
+
export default lookupPackageScope;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import validateURLString from "../internal/validate-url-string.mjs";
|
|
2
|
+
import pathe from "@flex-development/pathe";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
import readPackageJson from "./read-package-json.mjs";
|
|
5
|
+
import toURL from "./to-url.mjs";
|
|
6
|
+
const lookupPackageScope = (id, stopdir = pathe.sep, specifier, parent) => {
|
|
7
|
+
validateURLString(id, "id");
|
|
8
|
+
validateURLString(stopdir, "stopdir");
|
|
9
|
+
stopdir = toURL(stopdir).pathname;
|
|
10
|
+
let dir = toURL(id).pathname;
|
|
11
|
+
let scope = null;
|
|
12
|
+
while (dir && !dir.endsWith("node_modules")) {
|
|
13
|
+
if (pathe.relative(stopdir, dir).startsWith("../"))
|
|
14
|
+
break;
|
|
15
|
+
const pkgjson = readPackageJson(
|
|
16
|
+
dir,
|
|
17
|
+
specifier,
|
|
18
|
+
parent
|
|
19
|
+
);
|
|
20
|
+
if (pkgjson) {
|
|
21
|
+
scope = {
|
|
22
|
+
dir: pathToFileURL(dir = pathe.resolve(process.cwd(), dir)).href,
|
|
23
|
+
pkg: pathToFileURL(pathe.join(dir, "package.json")).href,
|
|
24
|
+
pkgjson
|
|
25
|
+
};
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
if (dir === stopdir.replace(/\/$/, ""))
|
|
29
|
+
break;
|
|
30
|
+
dir = pathe.dirname(dir);
|
|
31
|
+
}
|
|
32
|
+
return scope;
|
|
33
|
+
};
|
|
34
|
+
var lookup_package_scope_default = lookupPackageScope;
|
|
35
|
+
export {
|
|
36
|
+
lookup_package_scope_default as default
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=lookup-package-scope.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/lookup-package-scope.ts"],
|
|
4
|
+
"mappings": "AAMA,OAAO,uBAAuB;AAG9B,OAAO,WAAW;AAGlB,SAAS,qBAAqB;AAC9B,OAAO,qBAAqB;AAC5B,OAAO,WAAW;AAmBlB,MAAM,qBAAqB,CACzB,IACA,UAAoB,MAAM,KAC1B,WACA,WAC2B;AAC3B,oBAAkB,IAAI,IAAI;AAC1B,oBAAkB,SAAS,SAAS;AAGpC,YAAU,MAAM,OAAO,EAAE;AAOzB,MAAI,MAAc,MAAM,EAAE,EAAE;AAO5B,MAAI,QAAgC;AAGpC,SAAO,OAAO,CAAC,IAAI,SAAS,cAAc,GAAG;AAE3C,QAAI,MAAM,SAAS,SAAS,GAAG,EAAE,WAAW,KAAK;AAAG;AAOpD,UAAM,UAAiC;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,QAAI,SAAS;AACX,cAAQ;AAAA,QACN,KAAK,cAAe,MAAM,MAAM,QAAQ,QAAQ,IAAI,GAAG,GAAG,CAAE,EAAE;AAAA,QAC9D,KAAK,cAAc,MAAM,KAAK,KAAK,cAAc,CAAC,EAAE;AAAA,QACpD;AAAA,MACF;AAEA;AAAA,IACF;AAGA,QAAI,QAAQ,QAAQ,QAAQ,OAAO,EAAE;AAAG;AAGxC,UAAM,MAAM,QAAQ,GAAG;AAAA,EACzB;AAEA,SAAO;AACT;AAEA,IAAO,+BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file parseDataURL
|
|
3
|
+
* @module mlly/utils/parseDataURL
|
|
4
|
+
*/
|
|
5
|
+
import type { ParsedDataUrl } from '../interfaces/index.mjs';
|
|
6
|
+
import type { URL } from 'node:url';
|
|
7
|
+
/**
|
|
8
|
+
* Parses a [`data:` URL][1].
|
|
9
|
+
*
|
|
10
|
+
* If valid, returns an object representing the given `url`.
|
|
11
|
+
*
|
|
12
|
+
* **Note**: A [MIME type][2] string is required.
|
|
13
|
+
*
|
|
14
|
+
* [1]: https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URLs
|
|
15
|
+
* [2]: https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/MIME_types
|
|
16
|
+
*
|
|
17
|
+
* @see https://nodejs.org/api/esm.html#data-imports
|
|
18
|
+
*
|
|
19
|
+
* @param {URL | string} url - URL to evaluate
|
|
20
|
+
* @return {ParsedDataUrl} Object representing `url`
|
|
21
|
+
* @throws {ErrInvalidUrl | NodeError<TypeError>} If `url` is not a string or
|
|
22
|
+
* instance of {@linkcode URL}, or if `url` not a valid `data:` URL
|
|
23
|
+
*/
|
|
24
|
+
declare const parseDataURL: (url: URL | string) => ParsedDataUrl;
|
|
25
|
+
export default parseDataURL;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ERR_INVALID_URL
|
|
3
|
+
} from "@flex-development/errnode";
|
|
4
|
+
import toURL from "./to-url.mjs";
|
|
5
|
+
const parseDataURL = (url) => {
|
|
6
|
+
url = toURL(url);
|
|
7
|
+
const regex = /^(?<protocol>data:)(?<mime>[^/]+\/[^,;]+)[^,]*?(?:;(?<base64>base64))?,(?<data>[\S\s]*?)$/;
|
|
8
|
+
const match = regex.exec(url.href);
|
|
9
|
+
if (!match)
|
|
10
|
+
throw new ERR_INVALID_URL(url.href);
|
|
11
|
+
const [, , mime = "", base64, data = ""] = match;
|
|
12
|
+
return {
|
|
13
|
+
base64: !!base64,
|
|
14
|
+
data: data.trim(),
|
|
15
|
+
href: url.href,
|
|
16
|
+
mime,
|
|
17
|
+
pathname: url.pathname,
|
|
18
|
+
protocol: url.protocol
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
var parse_data_url_default = parseDataURL;
|
|
22
|
+
export {
|
|
23
|
+
parse_data_url_default as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=parse-data-url.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/parse-data-url.ts"],
|
|
4
|
+
"mappings": "AAMA;AAAA,EACE;AAAA,OAGK;AAGP,OAAO,WAAW;AAmBlB,MAAM,eAAe,CAAC,QAAqC;AAEzD,QAAM,MAAM,GAAG;AAUf,QAAM,QACJ;AAOF,QAAM,QAAmC,MAAM,KAAK,IAAI,IAAI;AAG5D,MAAI,CAAC;AAAO,UAAM,IAAI,gBAAgB,IAAI,IAAI;AAG9C,QAAM,CAAC,EAAE,EAAE,OAAO,IAAI,QAAQ,OAAO,EAAE,IAAI;AAE3C,SAAO;AAAA,IACL,QAAQ,CAAC,CAAC;AAAA,IACV,MAAM,KAAK,KAAK;AAAA,IAChB,MAAM,IAAI;AAAA,IACV;AAAA,IACA,UAAU,IAAI;AAAA,IACd,UAAU,IAAI;AAAA,EAChB;AACF;AAEA,IAAO,yBAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file parseModuleId
|
|
3
|
+
* @module mlly/lib/parseModuleId
|
|
4
|
+
*/
|
|
5
|
+
import type { ParseModuleIdOptions, ParsedModuleId } from '../interfaces/index.mjs';
|
|
6
|
+
import type { ModuleId } from '../types/index.mjs';
|
|
7
|
+
/**
|
|
8
|
+
* Creates an object representation the given module `id`.
|
|
9
|
+
*
|
|
10
|
+
* @see {@linkcode ModuleId}
|
|
11
|
+
* @see {@linkcode ParseModuleIdOptions}
|
|
12
|
+
* @see {@linkcode ParsedModuleId}
|
|
13
|
+
*
|
|
14
|
+
* @param {ModuleId} id - Module id to parse
|
|
15
|
+
* @param {ParseModuleIdOptions?} [options={}] - Parsing options
|
|
16
|
+
* @return {ParsedModuleId} Object representing `id`
|
|
17
|
+
* @throws {NodeError<TypeError>} If `id` is not an instance of {@linkcode URL}
|
|
18
|
+
* or a string, if `id` includes encoded path separators, or if `id` is invalid
|
|
19
|
+
* according to `options.internal` or `options.pkgname`
|
|
20
|
+
*/
|
|
21
|
+
declare const parseModuleId: (id: ModuleId, options?: ParseModuleIdOptions) => ParsedModuleId;
|
|
22
|
+
export default parseModuleId;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import ENCODED_SEP_REGEX from "../internal/regex-encoded-sep.mjs";
|
|
2
|
+
import INTERNAL_SPECIFIER_REGEX from "../internal/regex-internal-specifier.mjs";
|
|
3
|
+
import PACKAGE_PATH_REGEX from "../internal/regex-package-path.mjs";
|
|
4
|
+
import validateURLString from "../internal/validate-url-string.mjs";
|
|
5
|
+
import {
|
|
6
|
+
ERR_INVALID_MODULE_SPECIFIER
|
|
7
|
+
} from "@flex-development/errnode";
|
|
8
|
+
import { isBuiltin } from "@flex-development/is-builtin";
|
|
9
|
+
import pathe from "@flex-development/pathe";
|
|
10
|
+
import { URL, fileURLToPath } from "node:url";
|
|
11
|
+
import isBareSpecifier from "./is-bare-specifier.mjs";
|
|
12
|
+
import isRelativeSpecifier from "./is-relative-specifier.mjs";
|
|
13
|
+
import toNodeURL from "./to-node-url.mjs";
|
|
14
|
+
const parseModuleId = (id, options = {}) => {
|
|
15
|
+
const {
|
|
16
|
+
internal = id instanceof URL ? false : id.startsWith("#"),
|
|
17
|
+
pkgname = false
|
|
18
|
+
} = options;
|
|
19
|
+
validateURLString(id, "id");
|
|
20
|
+
id = id instanceof URL ? id.href : id.trim();
|
|
21
|
+
let error;
|
|
22
|
+
let parsed = {
|
|
23
|
+
internal: false,
|
|
24
|
+
path: id,
|
|
25
|
+
pkg: "",
|
|
26
|
+
protocol: "",
|
|
27
|
+
raw: id,
|
|
28
|
+
scope: "",
|
|
29
|
+
version: "",
|
|
30
|
+
version_prefix: ""
|
|
31
|
+
};
|
|
32
|
+
switch (true) {
|
|
33
|
+
case ENCODED_SEP_REGEX.test(id):
|
|
34
|
+
error = `must not include encoded '${pathe.sep}' or '\\' characters`;
|
|
35
|
+
break;
|
|
36
|
+
case isBuiltin(id):
|
|
37
|
+
const { href, protocol, pathname } = new URL(toNodeURL(id));
|
|
38
|
+
parsed = {
|
|
39
|
+
internal: false,
|
|
40
|
+
path: pathname.replace(/^\S+?(?=\/|$)/, ""),
|
|
41
|
+
pkg: href.replace(/\/.*$/, ""),
|
|
42
|
+
protocol: id.startsWith("node:") ? protocol : "",
|
|
43
|
+
raw: id,
|
|
44
|
+
scope: "",
|
|
45
|
+
version: "",
|
|
46
|
+
version_prefix: ""
|
|
47
|
+
};
|
|
48
|
+
break;
|
|
49
|
+
case INTERNAL_SPECIFIER_REGEX.test(id):
|
|
50
|
+
const [, root = ""] = INTERNAL_SPECIFIER_REGEX.exec(id);
|
|
51
|
+
parsed = {
|
|
52
|
+
internal: true,
|
|
53
|
+
path: id,
|
|
54
|
+
pkg: root,
|
|
55
|
+
protocol: "",
|
|
56
|
+
raw: id,
|
|
57
|
+
scope: "",
|
|
58
|
+
version: "",
|
|
59
|
+
version_prefix: ""
|
|
60
|
+
};
|
|
61
|
+
break;
|
|
62
|
+
case PACKAGE_PATH_REGEX.test(id):
|
|
63
|
+
const [
|
|
64
|
+
,
|
|
65
|
+
pkg = "",
|
|
66
|
+
scope = "",
|
|
67
|
+
version_prefix = "",
|
|
68
|
+
version = "",
|
|
69
|
+
subpath = ""
|
|
70
|
+
] = PACKAGE_PATH_REGEX.exec(id);
|
|
71
|
+
parsed = {
|
|
72
|
+
internal: false,
|
|
73
|
+
path: "." + subpath,
|
|
74
|
+
pkg,
|
|
75
|
+
protocol: "",
|
|
76
|
+
raw: id,
|
|
77
|
+
scope,
|
|
78
|
+
version,
|
|
79
|
+
version_prefix
|
|
80
|
+
};
|
|
81
|
+
break;
|
|
82
|
+
case /^[\w-]{2,}:/.test(id):
|
|
83
|
+
try {
|
|
84
|
+
const { host, protocol: protocol2, pathname: pathname2 } = new URL(id);
|
|
85
|
+
parsed = {
|
|
86
|
+
internal: false,
|
|
87
|
+
path: host + pathname2,
|
|
88
|
+
pkg: "",
|
|
89
|
+
protocol: protocol2,
|
|
90
|
+
raw: id,
|
|
91
|
+
scope: "",
|
|
92
|
+
version: "",
|
|
93
|
+
version_prefix: ""
|
|
94
|
+
};
|
|
95
|
+
} catch {
|
|
96
|
+
error = "is not a valid URL";
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
case isBareSpecifier(id):
|
|
100
|
+
case isRelativeSpecifier(id):
|
|
101
|
+
case pathe.isAbsolute(id):
|
|
102
|
+
break;
|
|
103
|
+
default:
|
|
104
|
+
error = "";
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
error = ENCODED_SEP_REGEX.test(id) ? error : internal && !INTERNAL_SPECIFIER_REGEX.test(id) ? "is not a valid internal imports specifier name" : pkgname && !PACKAGE_PATH_REGEX.test(id) ? "does not start with a valid package name" : error;
|
|
108
|
+
if (error !== void 0) {
|
|
109
|
+
let { parent } = options;
|
|
110
|
+
if (parent !== void 0) {
|
|
111
|
+
validateURLString(parent, "options.parent");
|
|
112
|
+
parent = fileURLToPath(parent);
|
|
113
|
+
}
|
|
114
|
+
throw new ERR_INVALID_MODULE_SPECIFIER(id, error, parent);
|
|
115
|
+
}
|
|
116
|
+
return parsed;
|
|
117
|
+
};
|
|
118
|
+
var parse_module_id_default = parseModuleId;
|
|
119
|
+
export {
|
|
120
|
+
parse_module_id_default as default
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=parse-module-id.mjs.map
|