@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,500 @@
|
|
|
1
|
+
import CONDITIONS from "../utils/conditions.mjs";
|
|
2
|
+
import isExportsSugar from "../utils/is-exports-sugar.mjs";
|
|
3
|
+
import isRelativeSpecifier from "../utils/is-relative-specifier.mjs";
|
|
4
|
+
import lookupPackageScope from "../utils/lookup-package-scope.mjs";
|
|
5
|
+
import parseModuleId from "../utils/parse-module-id.mjs";
|
|
6
|
+
import parseSubpath from "../utils/parse-subpath.mjs";
|
|
7
|
+
import PATTERN_CHARACTER from "../utils/pattern-character.mjs";
|
|
8
|
+
import readPackageJson from "../utils/read-package-json.mjs";
|
|
9
|
+
import toNodeURL from "../utils/to-node-url.mjs";
|
|
10
|
+
import toURL from "../utils/to-url.mjs";
|
|
11
|
+
import {
|
|
12
|
+
ERR_INVALID_MODULE_SPECIFIER,
|
|
13
|
+
ERR_INVALID_PACKAGE_CONFIG,
|
|
14
|
+
ERR_INVALID_PACKAGE_TARGET,
|
|
15
|
+
ERR_MODULE_NOT_FOUND,
|
|
16
|
+
ERR_PACKAGE_IMPORT_NOT_DEFINED,
|
|
17
|
+
ERR_PACKAGE_PATH_NOT_EXPORTED,
|
|
18
|
+
ERR_UNSUPPORTED_DIR_IMPORT,
|
|
19
|
+
ErrorCode
|
|
20
|
+
} from "@flex-development/errnode";
|
|
21
|
+
import { isBuiltin } from "@flex-development/is-builtin";
|
|
22
|
+
import pathe from "@flex-development/pathe";
|
|
23
|
+
import { isNIL } from "@flex-development/tutils";
|
|
24
|
+
import fs from "node:fs";
|
|
25
|
+
import { URL, fileURLToPath, pathToFileURL } from "node:url";
|
|
26
|
+
import regexp from "./escape-reg-exp.mjs";
|
|
27
|
+
import isArrayIndex from "./is-array-index.mjs";
|
|
28
|
+
import isDirectory from "./is-directory.mjs";
|
|
29
|
+
import isFile from "./is-file.mjs";
|
|
30
|
+
import PACKAGE_NAME_REGEX from "./regex-package-name.mjs";
|
|
31
|
+
import PACKAGE_PATH_REGEX from "./regex-package-path.mjs";
|
|
32
|
+
class Resolver {
|
|
33
|
+
/**
|
|
34
|
+
* Resolves `specifier` according to the [ESM Resolver algorithm][1].
|
|
35
|
+
*
|
|
36
|
+
* [1]: https://nodejs.org/api/esm.html#esm_resolver_algorithm
|
|
37
|
+
*
|
|
38
|
+
* @public
|
|
39
|
+
*
|
|
40
|
+
* @param {string} specifier - Module specifier to resolve
|
|
41
|
+
* @param {ModuleId} parent - URL of module to resolve from
|
|
42
|
+
* @param {string?} [condition='default'] - Export condition to apply
|
|
43
|
+
* @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
|
|
44
|
+
* @param {boolean?} [preserveSymlinks=false] - Skip resolving symlinks
|
|
45
|
+
* @return {URL} Resolved module URL
|
|
46
|
+
* @throws {NodeError}
|
|
47
|
+
*/
|
|
48
|
+
resolveModule(specifier, parent, condition = "default", conditions = CONDITIONS, preserveSymlinks = false) {
|
|
49
|
+
parent = toURL(parent);
|
|
50
|
+
const remote = /^https?:$/.test(parent.protocol);
|
|
51
|
+
let error = new ERR_MODULE_NOT_FOUND(
|
|
52
|
+
specifier,
|
|
53
|
+
remote ? parent.href : fileURLToPath(parent),
|
|
54
|
+
PACKAGE_PATH_REGEX.test(specifier) ? "package" : "module"
|
|
55
|
+
);
|
|
56
|
+
let url = null;
|
|
57
|
+
try {
|
|
58
|
+
switch (true) {
|
|
59
|
+
case isRelativeSpecifier(specifier):
|
|
60
|
+
case pathe.isAbsolute(specifier):
|
|
61
|
+
url = new URL(specifier, parent);
|
|
62
|
+
break;
|
|
63
|
+
case (!remote && specifier.startsWith("#")):
|
|
64
|
+
url = this.resolvePackageImport(
|
|
65
|
+
specifier,
|
|
66
|
+
parent,
|
|
67
|
+
condition,
|
|
68
|
+
conditions
|
|
69
|
+
);
|
|
70
|
+
break;
|
|
71
|
+
default:
|
|
72
|
+
try {
|
|
73
|
+
url = new URL(specifier);
|
|
74
|
+
} catch {
|
|
75
|
+
if (!remote) {
|
|
76
|
+
url = this.resolvePackage(
|
|
77
|
+
specifier,
|
|
78
|
+
parent,
|
|
79
|
+
condition,
|
|
80
|
+
conditions
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
if (url && url.protocol === "file:") {
|
|
87
|
+
const path = fileURLToPath(url);
|
|
88
|
+
if (!isFile(path)) {
|
|
89
|
+
throw isDirectory(path) ? new ERR_UNSUPPORTED_DIR_IMPORT(path, fileURLToPath(parent)) : new ERR_MODULE_NOT_FOUND(path, fileURLToPath(parent), "module");
|
|
90
|
+
}
|
|
91
|
+
if (!preserveSymlinks) {
|
|
92
|
+
const { hash, search } = url;
|
|
93
|
+
url = pathToFileURL(fs.realpathSync(path));
|
|
94
|
+
url.hash = hash;
|
|
95
|
+
url.search = search;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
} catch (e) {
|
|
99
|
+
error = e;
|
|
100
|
+
url = null;
|
|
101
|
+
}
|
|
102
|
+
if (!url)
|
|
103
|
+
throw error;
|
|
104
|
+
return url;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Resolves a package path using a combination of the following algorithms:
|
|
108
|
+
*
|
|
109
|
+
* - `PACKAGE_RESOLVE`
|
|
110
|
+
* - `PACKAGE_SELF_RESOLVE`
|
|
111
|
+
*
|
|
112
|
+
* @see https://nodejs.org/api/esm.html#resolver-algorithm-specification
|
|
113
|
+
*
|
|
114
|
+
* @public
|
|
115
|
+
*
|
|
116
|
+
* @param {string} specifier - Module specifier to resolve
|
|
117
|
+
* @param {ModuleId} parent - URL of module to resolve from
|
|
118
|
+
* @param {string?} [condition='default'] - Export condition to apply
|
|
119
|
+
* @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
|
|
120
|
+
* @return {URL} Resolved package path URL
|
|
121
|
+
* @throws {NodeError}
|
|
122
|
+
*/
|
|
123
|
+
resolvePackage(specifier, parent, condition = "default", conditions = CONDITIONS) {
|
|
124
|
+
const id = parseModuleId(specifier, {
|
|
125
|
+
parent,
|
|
126
|
+
pkgname: !isBuiltin(specifier)
|
|
127
|
+
});
|
|
128
|
+
if (isBuiltin(id.raw))
|
|
129
|
+
return new URL(toNodeURL(id.raw));
|
|
130
|
+
const stopdir = pathToFileURL("." + pathe.sep);
|
|
131
|
+
let scope = lookupPackageScope(
|
|
132
|
+
parent,
|
|
133
|
+
stopdir,
|
|
134
|
+
specifier,
|
|
135
|
+
parent
|
|
136
|
+
);
|
|
137
|
+
if ((scope == null ? void 0 : scope.pkgjson.name) === id.pkg && !isNIL(scope.pkgjson.exports)) {
|
|
138
|
+
return this.resolvePackageExport(
|
|
139
|
+
id.raw,
|
|
140
|
+
scope.pkg,
|
|
141
|
+
parent,
|
|
142
|
+
condition,
|
|
143
|
+
conditions
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
let url = null;
|
|
147
|
+
if (scope) {
|
|
148
|
+
let { dir: pkgdir } = scope;
|
|
149
|
+
while (pkgdir !== ".") {
|
|
150
|
+
scope = lookupPackageScope(
|
|
151
|
+
new URL(`node_modules/${id.raw}`, pkgdir + pathe.sep),
|
|
152
|
+
stopdir,
|
|
153
|
+
specifier,
|
|
154
|
+
parent
|
|
155
|
+
);
|
|
156
|
+
if (scope)
|
|
157
|
+
break;
|
|
158
|
+
pkgdir = pathe.dirname(pkgdir);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
switch (true) {
|
|
162
|
+
case (scope && !isNIL(scope.pkgjson.exports)):
|
|
163
|
+
url = this.resolvePackageExport(
|
|
164
|
+
specifier,
|
|
165
|
+
scope.pkg,
|
|
166
|
+
parent,
|
|
167
|
+
condition,
|
|
168
|
+
conditions
|
|
169
|
+
);
|
|
170
|
+
break;
|
|
171
|
+
case (scope && id.path === "."):
|
|
172
|
+
url = this.resolvePackageMain(scope.pkg, scope.pkgjson, parent);
|
|
173
|
+
break;
|
|
174
|
+
case !!scope:
|
|
175
|
+
url = new URL(id.path, scope.pkg);
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
if (!url)
|
|
179
|
+
throw new ERR_MODULE_NOT_FOUND(id.pkg, fileURLToPath(parent));
|
|
180
|
+
return url;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Resolves a subpath export according to the `PACKAGE_EXPORTS_RESOLVE`
|
|
184
|
+
* algorithm.
|
|
185
|
+
*
|
|
186
|
+
* @see https://nodejs.org/api/esm.html#resolver-algorithm-specification
|
|
187
|
+
* @see https://nodejs.org/api/packages.html#subpath-exports
|
|
188
|
+
*
|
|
189
|
+
* @public
|
|
190
|
+
*
|
|
191
|
+
* @param {string} specifier - Module specifier containing subpath
|
|
192
|
+
* @param {ModuleId} pkg - URL of relevant `package.json` file
|
|
193
|
+
* @param {ModuleId} parent - URL of module to resolve from
|
|
194
|
+
* @param {string?} [condition='default'] - Export condition to apply
|
|
195
|
+
* @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
|
|
196
|
+
* @return {URL} Resolved package export URL
|
|
197
|
+
* @throws {NodeError<Error | TypeError>}
|
|
198
|
+
*/
|
|
199
|
+
resolvePackageExport(specifier, pkg, parent, condition = "default", conditions = CONDITIONS) {
|
|
200
|
+
const dir = new URL(".", pkg);
|
|
201
|
+
const pkgjson = readPackageJson(
|
|
202
|
+
dir,
|
|
203
|
+
specifier,
|
|
204
|
+
parent
|
|
205
|
+
);
|
|
206
|
+
let exports = pkgjson == null ? void 0 : pkgjson.exports;
|
|
207
|
+
const subpath = parseSubpath(specifier, exports, {
|
|
208
|
+
dir,
|
|
209
|
+
parent
|
|
210
|
+
});
|
|
211
|
+
if (!subpath.internal && isExportsSugar(exports, pkg, parent)) {
|
|
212
|
+
exports = { ".": exports };
|
|
213
|
+
}
|
|
214
|
+
const url = this.resolvePackageTarget(
|
|
215
|
+
dir,
|
|
216
|
+
exports == null ? void 0 : exports[subpath.key],
|
|
217
|
+
subpath.base,
|
|
218
|
+
subpath.key,
|
|
219
|
+
parent,
|
|
220
|
+
subpath.internal,
|
|
221
|
+
condition,
|
|
222
|
+
conditions
|
|
223
|
+
);
|
|
224
|
+
if (!url) {
|
|
225
|
+
throw new ERR_PACKAGE_PATH_NOT_EXPORTED(
|
|
226
|
+
fileURLToPath(dir),
|
|
227
|
+
subpath.raw,
|
|
228
|
+
fileURLToPath(parent)
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
return url;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Resolves a subpath import according to the `PACKAGE_IMPORTS_RESOLVE`
|
|
235
|
+
* algorithm.
|
|
236
|
+
*
|
|
237
|
+
* @see https://nodejs.org/api/esm.html#resolver-algorithm-specification
|
|
238
|
+
* @see https://nodejs.org/api/packages.html#subpath-imports
|
|
239
|
+
*
|
|
240
|
+
* @public
|
|
241
|
+
*
|
|
242
|
+
* @param {string} specifier - Module specifier containing subpath
|
|
243
|
+
* @param {ModuleId} parent - URL of module to resolve from
|
|
244
|
+
* @param {string?} [condition='default'] - Export condition to apply
|
|
245
|
+
* @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
|
|
246
|
+
* @return {URL} Resolved package import URL
|
|
247
|
+
* @throws {NodeError<Error | TypeError>}
|
|
248
|
+
*/
|
|
249
|
+
resolvePackageImport(specifier, parent, condition = "default", conditions = CONDITIONS) {
|
|
250
|
+
const id = parseModuleId(specifier, {
|
|
251
|
+
internal: true,
|
|
252
|
+
parent
|
|
253
|
+
});
|
|
254
|
+
const scope = lookupPackageScope(
|
|
255
|
+
parent,
|
|
256
|
+
pathToFileURL("."),
|
|
257
|
+
specifier,
|
|
258
|
+
parent
|
|
259
|
+
);
|
|
260
|
+
let url = null;
|
|
261
|
+
if (scope) {
|
|
262
|
+
const imports = scope.pkgjson.imports;
|
|
263
|
+
const subpath = parseSubpath(id.raw, imports, {
|
|
264
|
+
dir: scope.dir,
|
|
265
|
+
internal: true,
|
|
266
|
+
parent
|
|
267
|
+
});
|
|
268
|
+
url = this.resolvePackageTarget(
|
|
269
|
+
scope.dir,
|
|
270
|
+
imports == null ? void 0 : imports[subpath.key],
|
|
271
|
+
subpath.base,
|
|
272
|
+
subpath.key,
|
|
273
|
+
parent,
|
|
274
|
+
subpath.internal,
|
|
275
|
+
condition,
|
|
276
|
+
conditions
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
if (!url) {
|
|
280
|
+
throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(
|
|
281
|
+
specifier,
|
|
282
|
+
fileURLToPath(parent),
|
|
283
|
+
/* c8 ignore next */
|
|
284
|
+
(scope == null ? void 0 : scope.dir) ? fileURLToPath(scope.dir) : void 0
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
return url;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Resolves a package entry point using the legacy CommonJS `main` resolution
|
|
291
|
+
* alogirthm:
|
|
292
|
+
*
|
|
293
|
+
* 1. let M = pkgdir `pkgjson.main`
|
|
294
|
+
* 2. TRY(M, M.js, M.json, M.node, M/index.js, M/index.json, M/index.node)
|
|
295
|
+
* 4. TRY(pkgdir/index.js, pkgdir/index.json, pkgdir/index.node)
|
|
296
|
+
* 5. ERR_MODULE_NOT_FOUND
|
|
297
|
+
*
|
|
298
|
+
* @todo emit deprecation messages
|
|
299
|
+
*
|
|
300
|
+
* @public
|
|
301
|
+
*
|
|
302
|
+
* @param {ModuleId} pkg - URL of relevant `package.json` file
|
|
303
|
+
* @param {PackageJson} pkgjson - Relevant `package.json` object
|
|
304
|
+
* @param {ModuleId} parent - URL of module to resolve from
|
|
305
|
+
* @return {URL} Package entry point URL
|
|
306
|
+
* @throws {NodeError} If package entry point is not found
|
|
307
|
+
*/
|
|
308
|
+
resolvePackageMain(pkg, pkgjson, parent) {
|
|
309
|
+
const tries = [
|
|
310
|
+
...pkgjson.main ? [
|
|
311
|
+
pkgjson.main,
|
|
312
|
+
`./${pkgjson.main}.js`,
|
|
313
|
+
`./${pkgjson.main}.json`,
|
|
314
|
+
`./${pkgjson.main}.node`,
|
|
315
|
+
`./${pkgjson.main}/index.js`,
|
|
316
|
+
`./${pkgjson.main}/index.json`,
|
|
317
|
+
`./${pkgjson.main}/index.node`
|
|
318
|
+
] : [],
|
|
319
|
+
"./index.js",
|
|
320
|
+
"./index.json",
|
|
321
|
+
"./index.node"
|
|
322
|
+
];
|
|
323
|
+
let url = null;
|
|
324
|
+
for (const input of tries) {
|
|
325
|
+
if (isFile(url = new URL(input, pkg)))
|
|
326
|
+
break;
|
|
327
|
+
url = null;
|
|
328
|
+
}
|
|
329
|
+
if (!url) {
|
|
330
|
+
throw new ERR_MODULE_NOT_FOUND(
|
|
331
|
+
fileURLToPath(new URL(".", pkg)),
|
|
332
|
+
fileURLToPath(parent)
|
|
333
|
+
);
|
|
334
|
+
}
|
|
335
|
+
return url;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Resolves a package target according to the `PACKAGE_TARGET_RESOLVE`
|
|
339
|
+
* algorithm.
|
|
340
|
+
*
|
|
341
|
+
* @see https://nodejs.org/api/esm.html#resolver-algorithm-specification
|
|
342
|
+
*
|
|
343
|
+
* @todo emit deprecation messages
|
|
344
|
+
*
|
|
345
|
+
* @public
|
|
346
|
+
*
|
|
347
|
+
* @param {ModuleId} dir - URL of directory containing relevant `package.json`
|
|
348
|
+
* @param {Exports | undefined} target - Package `exports` or `imports` target
|
|
349
|
+
* @param {string} subpath - Package subpath without entry prefix (`key`)
|
|
350
|
+
* @param {string} key - Subpath defined in relevant `package.json` file
|
|
351
|
+
* @param {ModuleId} parent - URL of module to resolve from
|
|
352
|
+
* @param {boolean?} [internal=false] - Package `imports` hint
|
|
353
|
+
* @param {string?} [condition='default'] - Export condition to apply
|
|
354
|
+
* @param {Set<string>?} [conditions=CONDITIONS] - Export conditions
|
|
355
|
+
* @return {Nullable<URL>} Resolved package target URL or `null`
|
|
356
|
+
* @throws {NodeError<Error | TypeError>}
|
|
357
|
+
*/
|
|
358
|
+
resolvePackageTarget(dir, target, subpath, key, parent, internal = false, condition = "default", conditions = CONDITIONS) {
|
|
359
|
+
let url = null;
|
|
360
|
+
switch (true) {
|
|
361
|
+
case target === null:
|
|
362
|
+
break;
|
|
363
|
+
case Array.isArray(target):
|
|
364
|
+
let error;
|
|
365
|
+
for (const item of target) {
|
|
366
|
+
try {
|
|
367
|
+
url = this.resolvePackageTarget(
|
|
368
|
+
dir,
|
|
369
|
+
item,
|
|
370
|
+
subpath,
|
|
371
|
+
key,
|
|
372
|
+
parent,
|
|
373
|
+
internal,
|
|
374
|
+
condition,
|
|
375
|
+
conditions
|
|
376
|
+
);
|
|
377
|
+
} catch (e) {
|
|
378
|
+
error = e;
|
|
379
|
+
if (error.code !== ErrorCode.ERR_INVALID_PACKAGE_TARGET)
|
|
380
|
+
throw error;
|
|
381
|
+
continue;
|
|
382
|
+
}
|
|
383
|
+
if (url)
|
|
384
|
+
break;
|
|
385
|
+
}
|
|
386
|
+
if (error && !url)
|
|
387
|
+
throw error;
|
|
388
|
+
break;
|
|
389
|
+
case typeof target === "object":
|
|
390
|
+
target = target;
|
|
391
|
+
for (const prop of Object.getOwnPropertyNames(target)) {
|
|
392
|
+
if (isArrayIndex(prop)) {
|
|
393
|
+
throw new ERR_INVALID_PACKAGE_CONFIG(
|
|
394
|
+
fileURLToPath(dir),
|
|
395
|
+
fileURLToPath(parent),
|
|
396
|
+
'"exports" cannot contain numeric property keys'
|
|
397
|
+
);
|
|
398
|
+
}
|
|
399
|
+
if (prop === condition || conditions.has(prop)) {
|
|
400
|
+
url = this.resolvePackageTarget(
|
|
401
|
+
dir,
|
|
402
|
+
target[prop],
|
|
403
|
+
subpath,
|
|
404
|
+
key,
|
|
405
|
+
parent,
|
|
406
|
+
internal,
|
|
407
|
+
condition,
|
|
408
|
+
conditions
|
|
409
|
+
);
|
|
410
|
+
if (url)
|
|
411
|
+
break;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
break;
|
|
415
|
+
case typeof target === "string":
|
|
416
|
+
target = target;
|
|
417
|
+
const pattern = key.includes(PATTERN_CHARACTER);
|
|
418
|
+
switch (true) {
|
|
419
|
+
case (subpath && !pattern && !target.endsWith(pathe.sep)):
|
|
420
|
+
throw new ERR_INVALID_PACKAGE_TARGET(
|
|
421
|
+
fileURLToPath(dir),
|
|
422
|
+
key,
|
|
423
|
+
target,
|
|
424
|
+
internal,
|
|
425
|
+
fileURLToPath(parent)
|
|
426
|
+
);
|
|
427
|
+
case (internal && PACKAGE_NAME_REGEX.test(target)):
|
|
428
|
+
url = this.resolvePackage(target, parent, condition, conditions);
|
|
429
|
+
break;
|
|
430
|
+
case target.startsWith("." + pathe.sep):
|
|
431
|
+
const invalidSegmentRegex = (type) => {
|
|
432
|
+
return new RegExp(
|
|
433
|
+
`(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))${type === "deprecated" ? "" : "?"}(\\\\|\\/|$)`,
|
|
434
|
+
"i"
|
|
435
|
+
);
|
|
436
|
+
};
|
|
437
|
+
if (invalidSegmentRegex().test(target.slice(2))) {
|
|
438
|
+
if (invalidSegmentRegex("deprecated").test(target.slice(2))) {
|
|
439
|
+
throw new ERR_INVALID_PACKAGE_TARGET(
|
|
440
|
+
fileURLToPath(dir),
|
|
441
|
+
key,
|
|
442
|
+
target,
|
|
443
|
+
internal,
|
|
444
|
+
fileURLToPath(parent)
|
|
445
|
+
);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
url = new URL(
|
|
449
|
+
target,
|
|
450
|
+
pathToFileURL(fileURLToPath(dir).replace(/\/$/, "") + pathe.sep)
|
|
451
|
+
);
|
|
452
|
+
if (subpath) {
|
|
453
|
+
if (invalidSegmentRegex().test(subpath)) {
|
|
454
|
+
if (invalidSegmentRegex("deprecated").test(subpath)) {
|
|
455
|
+
throw new ERR_INVALID_MODULE_SPECIFIER(
|
|
456
|
+
key.replace(PATTERN_CHARACTER, subpath),
|
|
457
|
+
[
|
|
458
|
+
`request is not a valid match in pattern "${key}" for`,
|
|
459
|
+
`the "${internal ? "imports" : "exports"}" resolution`,
|
|
460
|
+
`of ${fileURLToPath(dir).replace(/\/$/, "")}/package.json`
|
|
461
|
+
].join(" "),
|
|
462
|
+
fileURLToPath(parent)
|
|
463
|
+
);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
url = new URL(
|
|
467
|
+
url.href.replace(
|
|
468
|
+
new RegExp(regexp(PATTERN_CHARACTER), "g"),
|
|
469
|
+
subpath
|
|
470
|
+
)
|
|
471
|
+
);
|
|
472
|
+
}
|
|
473
|
+
break;
|
|
474
|
+
default:
|
|
475
|
+
throw new ERR_INVALID_PACKAGE_TARGET(
|
|
476
|
+
fileURLToPath(dir),
|
|
477
|
+
key,
|
|
478
|
+
target,
|
|
479
|
+
internal,
|
|
480
|
+
fileURLToPath(parent)
|
|
481
|
+
);
|
|
482
|
+
}
|
|
483
|
+
break;
|
|
484
|
+
default:
|
|
485
|
+
throw new ERR_INVALID_PACKAGE_TARGET(
|
|
486
|
+
fileURLToPath(dir),
|
|
487
|
+
key,
|
|
488
|
+
target,
|
|
489
|
+
internal,
|
|
490
|
+
fileURLToPath(parent)
|
|
491
|
+
);
|
|
492
|
+
}
|
|
493
|
+
return url;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
var resolver_default = Resolver;
|
|
497
|
+
export {
|
|
498
|
+
resolver_default as default
|
|
499
|
+
};
|
|
500
|
+
//# sourceMappingURL=resolver.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/internal/resolver.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Internal - validateBoolean
|
|
3
|
+
* @module mlly/internal/validateBoolean
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Checks if given `value` is a boolean.
|
|
7
|
+
*
|
|
8
|
+
* Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a boolean.
|
|
9
|
+
*
|
|
10
|
+
* [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
|
|
11
|
+
*
|
|
12
|
+
* @see {@linkcode ERR_INVALID_ARG_TYPE}
|
|
13
|
+
*
|
|
14
|
+
* @param {unknown} value - Value supplied by user
|
|
15
|
+
* @param {string} name - Name of invalid argument or property
|
|
16
|
+
* @return {value is boolean} `true` if `value` is a boolean
|
|
17
|
+
* @throws {NodeError<TypeError>} If `value` is not a boolean
|
|
18
|
+
*/
|
|
19
|
+
declare const validateBoolean: (value: unknown, name: string) => value is boolean;
|
|
20
|
+
export default validateBoolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
|
|
2
|
+
const validateBoolean = (value, name) => {
|
|
3
|
+
if (typeof value === "boolean")
|
|
4
|
+
return true;
|
|
5
|
+
throw new ERR_INVALID_ARG_TYPE(name, "boolean", value);
|
|
6
|
+
};
|
|
7
|
+
var validate_boolean_default = validateBoolean;
|
|
8
|
+
export {
|
|
9
|
+
validate_boolean_default as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=validate-boolean.mjs.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Internal - validateObject
|
|
3
|
+
* @module mlly/internal/validateObject
|
|
4
|
+
*/
|
|
5
|
+
import type { ObjectPlain } from '@flex-development/tutils';
|
|
6
|
+
/**
|
|
7
|
+
* Checks if given `value` is an object.
|
|
8
|
+
*
|
|
9
|
+
* **Note**: Array values are not considered objects.
|
|
10
|
+
*
|
|
11
|
+
* Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not an object.
|
|
12
|
+
*
|
|
13
|
+
* [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
|
|
14
|
+
*
|
|
15
|
+
* @see {@linkcode ERR_INVALID_ARG_TYPE}
|
|
16
|
+
*
|
|
17
|
+
* @param {unknown} value - Value supplied by user
|
|
18
|
+
* @param {string} name - Name of invalid argument or property
|
|
19
|
+
* @return {value is ObjectPlain} `true` if `value` is an object
|
|
20
|
+
* @throws {NodeError<TypeError>} If `value` is not an object
|
|
21
|
+
*/
|
|
22
|
+
declare const validateObject: (value: unknown, name: string) => value is ObjectPlain;
|
|
23
|
+
export default validateObject;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
|
|
2
|
+
const validateObject = (value, name) => {
|
|
3
|
+
if (typeof value === "object" && value && !Array.isArray(value))
|
|
4
|
+
return true;
|
|
5
|
+
throw new ERR_INVALID_ARG_TYPE(name, "object", value);
|
|
6
|
+
};
|
|
7
|
+
var validate_object_default = validateObject;
|
|
8
|
+
export {
|
|
9
|
+
validate_object_default as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=validate-object.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/internal/validate-object.ts"],
|
|
4
|
+
"mappings": "AAKA,SAAS,4BAA4C;AAmBrD,MAAM,iBAAiB,CAAC,OAAgB,SAAuC;AAC7E,MAAI,OAAO,UAAU,YAAY,SAAS,CAAC,MAAM,QAAQ,KAAK;AAAG,WAAO;AACxE,QAAM,IAAI,qBAAqB,MAAM,UAAU,KAAK;AACtD;AAEA,IAAO,0BAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Internal - validateSet
|
|
3
|
+
* @module mlly/internal/validateSet
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Checks if given `value` is an instance of {@linkcode Set}.
|
|
7
|
+
*
|
|
8
|
+
* Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a {@linkcode Set}
|
|
9
|
+
* instance.
|
|
10
|
+
*
|
|
11
|
+
* [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
|
|
12
|
+
*
|
|
13
|
+
* @see {@linkcode ERR_INVALID_ARG_TYPE}
|
|
14
|
+
*
|
|
15
|
+
* @template T - Item type(s)
|
|
16
|
+
*
|
|
17
|
+
* @param {unknown} value - Value supplied by user
|
|
18
|
+
* @param {string} name - Name of invalid argument or property
|
|
19
|
+
* @return {value is Set} `true` if `value` is instance of {@linkcode Set}
|
|
20
|
+
* @throws {NodeError<TypeError>} If `value` is an instance of {@linkcode Set}
|
|
21
|
+
*/
|
|
22
|
+
declare function validateSet<T = unknown>(value: unknown, name: string): value is Set<T>;
|
|
23
|
+
export default validateSet;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
|
|
2
|
+
function validateSet(value, name) {
|
|
3
|
+
if (value instanceof Set)
|
|
4
|
+
return true;
|
|
5
|
+
throw new ERR_INVALID_ARG_TYPE(name, ["Set"], value);
|
|
6
|
+
}
|
|
7
|
+
var validate_set_default = validateSet;
|
|
8
|
+
export {
|
|
9
|
+
validate_set_default as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=validate-set.mjs.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Internal - validateString
|
|
3
|
+
* @module mlly/internal/validateString
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Checks if given `value` is a string.
|
|
7
|
+
*
|
|
8
|
+
* Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a string.
|
|
9
|
+
*
|
|
10
|
+
* [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
|
|
11
|
+
*
|
|
12
|
+
* @see {@linkcode ERR_INVALID_ARG_TYPE}
|
|
13
|
+
*
|
|
14
|
+
* @param {unknown} value - Value supplied by user
|
|
15
|
+
* @param {string} name - Name of invalid argument or property
|
|
16
|
+
* @return {value is string} `true` if `value` is a string
|
|
17
|
+
* @throws {NodeError<TypeError>} If `value` is not a string
|
|
18
|
+
*/
|
|
19
|
+
declare const validateString: (value: unknown, name: string) => value is string;
|
|
20
|
+
export default validateString;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
|
|
2
|
+
const validateString = (value, name) => {
|
|
3
|
+
if (typeof value === "string")
|
|
4
|
+
return true;
|
|
5
|
+
throw new ERR_INVALID_ARG_TYPE(name, "string", value);
|
|
6
|
+
};
|
|
7
|
+
var validate_string_default = validateString;
|
|
8
|
+
export {
|
|
9
|
+
validate_string_default as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=validate-string.mjs.map
|