@flex-development/mlly 1.0.0-alpha.17 → 1.0.0-alpha.19
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 +829 -681
- package/README.md +173 -12
- package/dist/index.d.mts +3 -4
- package/dist/index.mjs +1 -5
- package/dist/interfaces/aliases.d.mts +11 -0
- package/dist/interfaces/context-get-source.d.mts +52 -0
- package/dist/interfaces/file-system.d.mts +57 -0
- package/dist/interfaces/index.d.mts +11 -21
- package/dist/interfaces/main-field-map.d.mts +13 -0
- package/dist/interfaces/module-format-map.d.mts +17 -0
- package/dist/interfaces/options-get-source.d.mts +22 -29
- package/dist/interfaces/options-resolve-alias.d.mts +14 -26
- package/dist/interfaces/options-resolve-module.d.mts +38 -27
- package/dist/interfaces/protocol-map.d.mts +35 -0
- package/dist/interfaces/stats.d.mts +28 -0
- package/dist/internal/chars.mjs +11 -0
- package/dist/internal/check-invalid-segments.mjs +19 -0
- package/dist/internal/fs.browser.mjs +36 -0
- package/dist/internal/fs.d.mts +7 -0
- package/dist/internal/invalid-package-target.mjs +18 -0
- package/dist/internal/invalid-subpath.mjs +16 -0
- package/dist/internal/process.browser.mjs +7 -0
- package/dist/internal/process.d.mts +4 -0
- package/dist/lib/can-parse-url.d.mts +21 -0
- package/dist/lib/can-parse-url.mjs +12 -0
- package/dist/lib/cwd.d.mts +12 -0
- package/dist/lib/cwd.mjs +8 -0
- package/dist/lib/default-conditions.d.mts +15 -0
- package/dist/lib/default-conditions.mjs +5 -0
- package/dist/lib/default-extensions.d.mts +14 -0
- package/dist/lib/default-extensions.mjs +21 -0
- package/dist/lib/default-main-fields.d.mts +14 -0
- package/dist/lib/default-main-fields.mjs +5 -0
- package/dist/lib/extension-format-map.d.mts +16 -0
- package/dist/lib/extension-format-map.mjs +21 -0
- package/dist/lib/formats.d.mts +21 -0
- package/dist/lib/formats.mjs +14 -0
- package/dist/lib/get-source.d.mts +26 -0
- package/dist/lib/get-source.mjs +70 -0
- package/dist/lib/index.d.mts +40 -0
- package/dist/lib/index.mjs +53 -0
- package/dist/lib/is-absolute-specifier.d.mts +23 -0
- package/dist/lib/is-absolute-specifier.mjs +9 -0
- package/dist/lib/is-array-index.d.mts +17 -0
- package/dist/lib/is-array-index.mjs +11 -0
- package/dist/lib/is-bare-specifier.d.mts +23 -0
- package/dist/lib/is-bare-specifier.mjs +11 -0
- package/dist/lib/is-directory.d.mts +22 -0
- package/dist/lib/is-directory.mjs +13 -0
- package/dist/lib/is-file.d.mts +22 -0
- package/dist/lib/is-file.mjs +13 -0
- package/dist/lib/is-imports-subpath.d.mts +19 -0
- package/dist/lib/is-imports-subpath.mjs +8 -0
- package/dist/lib/is-relative-specifier.d.mts +21 -0
- package/dist/lib/is-relative-specifier.mjs +16 -0
- package/dist/lib/lookup-package-scope.d.mts +26 -0
- package/dist/lib/lookup-package-scope.mjs +16 -0
- package/dist/lib/pattern-key-compare.d.mts +31 -0
- package/dist/lib/pattern-key-compare.mjs +18 -0
- package/dist/lib/pattern-match.d.mts +19 -0
- package/dist/lib/pattern-match.mjs +36 -0
- package/dist/lib/read-package-json.d.mts +35 -0
- package/dist/lib/read-package-json.mjs +29 -0
- package/dist/lib/resolve-alias.d.mts +19 -0
- package/dist/lib/resolve-alias.mjs +50 -0
- package/dist/lib/resolve-module.d.mts +37 -0
- package/dist/lib/resolve-module.mjs +75 -0
- package/dist/lib/resolver.d.mts +280 -0
- package/dist/lib/resolver.mjs +462 -0
- package/dist/lib/root.d.mts +11 -0
- package/dist/lib/root.mjs +6 -0
- package/dist/lib/to-relative-specifier.d.mts +25 -0
- package/dist/lib/to-relative-specifier.mjs +26 -0
- package/dist/lib/to-url.d.mts +24 -0
- package/dist/lib/to-url.mjs +10 -0
- package/dist/types/awaitable.d.mts +14 -0
- package/dist/types/change-ext-fn.d.mts +29 -0
- package/dist/types/get-source-handler.d.mts +21 -0
- package/dist/types/get-source-handlers.d.mts +14 -0
- package/dist/types/index.d.mts +12 -10
- package/dist/types/main-field.d.mts +13 -0
- package/dist/types/module-format.d.mts +13 -0
- package/dist/types/module-id.d.mts +2 -4
- package/dist/types/numeric.d.mts +9 -0
- package/dist/types/pattern-key-compare-result.d.mts +9 -0
- package/dist/types/pattern-match.d.mts +10 -0
- package/dist/types/protocol.d.mts +6 -7
- package/package.json +227 -155
- package/dist/enums/assert-type.d.mts +0 -21
- package/dist/enums/assert-type.mjs +0 -4
- package/dist/enums/format.d.mts +0 -17
- package/dist/enums/format.mjs +0 -4
- package/dist/enums/index.d.mts +0 -10
- package/dist/enums/index.mjs +0 -14
- package/dist/enums/kind-specifier-syntax.d.mts +0 -14
- package/dist/enums/kind-specifier-syntax.mjs +0 -4
- package/dist/enums/kind-specifier.d.mts +0 -17
- package/dist/enums/kind-specifier.mjs +0 -4
- package/dist/enums/kind-statement-syntax.d.mts +0 -22
- package/dist/enums/kind-statement-syntax.mjs +0 -4
- package/dist/enums/kind-statement.d.mts +0 -15
- package/dist/enums/kind-statement.mjs +0 -4
- package/dist/index.mjs.map +0 -8
- package/dist/interfaces/import-assertions.d.mts +0 -20
- package/dist/interfaces/import-dynamic.d.mts +0 -41
- package/dist/interfaces/import-static.d.mts +0 -35
- package/dist/interfaces/index.mjs +0 -0
- package/dist/interfaces/options-fill-module.d.mts +0 -23
- package/dist/interfaces/options-find-subpath.d.mts +0 -50
- package/dist/interfaces/options-get-format.d.mts +0 -73
- package/dist/interfaces/options-parse-module-id.d.mts +0 -34
- package/dist/interfaces/options-parse-subpath.d.mts +0 -50
- package/dist/interfaces/options-resolve.d.mts +0 -15
- package/dist/interfaces/package-scope.d.mts +0 -25
- package/dist/interfaces/parsed-data-url.d.mts +0 -56
- package/dist/interfaces/parsed-module-id.d.mts +0 -80
- package/dist/interfaces/parsed-subpath.d.mts +0 -44
- package/dist/interfaces/statement-export.d.mts +0 -44
- package/dist/interfaces/statement-import.d.mts +0 -38
- package/dist/interfaces/statement-require.d.mts +0 -38
- package/dist/interfaces/statement.d.mts +0 -49
- package/dist/internal/dequote.d.mts +0 -14
- package/dist/internal/dequote.mjs +0 -7
- package/dist/internal/dequote.mjs.map +0 -8
- package/dist/internal/format-type-map.d.mts +0 -19
- package/dist/internal/format-type-map.mjs +0 -13
- package/dist/internal/format-type-map.mjs.map +0 -8
- package/dist/internal/get-specifier-kind.d.mts +0 -19
- package/dist/internal/get-specifier-kind.mjs +0 -11
- package/dist/internal/get-specifier-kind.mjs.map +0 -8
- package/dist/internal/get-subpaths.d.mts +0 -28
- package/dist/internal/get-subpaths.mjs +0 -8
- package/dist/internal/get-subpaths.mjs.map +0 -8
- package/dist/internal/regex-encoded-sep.d.mts +0 -15
- package/dist/internal/regex-encoded-sep.mjs +0 -6
- package/dist/internal/regex-encoded-sep.mjs.map +0 -8
- package/dist/internal/regex-internal-specifier.d.mts +0 -16
- package/dist/internal/regex-internal-specifier.mjs +0 -6
- package/dist/internal/regex-internal-specifier.mjs.map +0 -8
- package/dist/internal/regex-invalid-segment.d.mts +0 -16
- package/dist/internal/regex-invalid-segment.mjs +0 -9
- package/dist/internal/regex-invalid-segment.mjs.map +0 -8
- package/dist/internal/regex-package-name.d.mts +0 -15
- package/dist/internal/regex-package-name.mjs +0 -6
- package/dist/internal/regex-package-name.mjs.map +0 -8
- package/dist/internal/regex-package-path.d.mts +0 -17
- package/dist/internal/regex-package-path.mjs +0 -6
- package/dist/internal/regex-package-path.mjs.map +0 -8
- package/dist/internal/resolver.d.mts +0 -132
- package/dist/internal/resolver.mjs +0 -483
- package/dist/internal/resolver.mjs.map +0 -8
- package/dist/internal/validate-array-set.d.mts +0 -24
- package/dist/internal/validate-array-set.mjs +0 -12
- package/dist/internal/validate-array-set.mjs.map +0 -8
- package/dist/internal/validate-boolean.d.mts +0 -22
- package/dist/internal/validate-boolean.mjs +0 -12
- package/dist/internal/validate-boolean.mjs.map +0 -8
- package/dist/internal/validate-map.d.mts +0 -26
- package/dist/internal/validate-map.mjs +0 -12
- package/dist/internal/validate-map.mjs.map +0 -8
- package/dist/internal/validate-object.d.mts +0 -23
- package/dist/internal/validate-object.mjs +0 -12
- package/dist/internal/validate-object.mjs.map +0 -8
- package/dist/internal/validate-set.d.mts +0 -24
- package/dist/internal/validate-set.mjs +0 -12
- package/dist/internal/validate-set.mjs.map +0 -8
- package/dist/internal/validate-string.d.mts +0 -23
- package/dist/internal/validate-string.mjs +0 -12
- package/dist/internal/validate-string.mjs.map +0 -8
- package/dist/internal/validate-url-string.d.mts +0 -24
- package/dist/internal/validate-url-string.mjs +0 -13
- package/dist/internal/validate-url-string.mjs.map +0 -8
- package/dist/types/declaration.d.mts +0 -9
- package/dist/types/fn-change-ext.d.mts +0 -31
- package/dist/types/index.mjs +0 -0
- package/dist/types/mime-type.d.mts +0 -13
- package/dist/types/module-specifier-type.d.mts +0 -11
- package/dist/types/syntax-kind-export.d.mts +0 -12
- package/dist/types/syntax-kind-import.d.mts +0 -12
- package/dist/types/syntax-kind-require.d.mts +0 -12
- package/dist/utils/compare-subpaths.d.mts +0 -25
- package/dist/utils/compare-subpaths.mjs +0 -19
- package/dist/utils/compare-subpaths.mjs.map +0 -8
- package/dist/utils/conditions.d.mts +0 -13
- package/dist/utils/conditions.mjs +0 -6
- package/dist/utils/conditions.mjs.map +0 -8
- package/dist/utils/detect-syntax.d.mts +0 -21
- package/dist/utils/detect-syntax.mjs +0 -11
- package/dist/utils/detect-syntax.mjs.map +0 -8
- package/dist/utils/extension-format-map.d.mts +0 -16
- package/dist/utils/extension-format-map.mjs +0 -22
- package/dist/utils/extension-format-map.mjs.map +0 -8
- package/dist/utils/extract-statements.d.mts +0 -21
- package/dist/utils/extract-statements.mjs +0 -20
- package/dist/utils/extract-statements.mjs.map +0 -8
- package/dist/utils/fill-modules.d.mts +0 -24
- package/dist/utils/fill-modules.mjs +0 -67
- package/dist/utils/fill-modules.mjs.map +0 -8
- package/dist/utils/find-dynamic-imports.d.mts +0 -18
- package/dist/utils/find-dynamic-imports.mjs +0 -36
- package/dist/utils/find-dynamic-imports.mjs.map +0 -8
- package/dist/utils/find-exports.d.mts +0 -21
- package/dist/utils/find-exports.mjs +0 -92
- package/dist/utils/find-exports.mjs.map +0 -8
- package/dist/utils/find-requires.d.mts +0 -18
- package/dist/utils/find-requires.mjs +0 -32
- package/dist/utils/find-requires.mjs.map +0 -8
- package/dist/utils/find-static-imports.d.mts +0 -18
- package/dist/utils/find-static-imports.mjs +0 -30
- package/dist/utils/find-static-imports.mjs.map +0 -8
- package/dist/utils/find-subpath.d.mts +0 -31
- package/dist/utils/find-subpath.mjs +0 -86
- package/dist/utils/find-subpath.mjs.map +0 -8
- package/dist/utils/get-format.d.mts +0 -31
- package/dist/utils/get-format.mjs +0 -107
- package/dist/utils/get-format.mjs.map +0 -8
- package/dist/utils/get-source.d.mts +0 -30
- package/dist/utils/get-source.mjs +0 -61
- package/dist/utils/get-source.mjs.map +0 -8
- package/dist/utils/has-cjs-syntax.d.mts +0 -25
- package/dist/utils/has-cjs-syntax.mjs +0 -11
- package/dist/utils/has-cjs-syntax.mjs.map +0 -8
- package/dist/utils/has-esm-syntax.d.mts +0 -21
- package/dist/utils/has-esm-syntax.mjs +0 -11
- package/dist/utils/has-esm-syntax.mjs.map +0 -8
- package/dist/utils/index.d.mts +0 -44
- package/dist/utils/index.mjs +0 -83
- package/dist/utils/index.mjs.map +0 -8
- package/dist/utils/is-absolute-specifier.d.mts +0 -20
- package/dist/utils/is-absolute-specifier.mjs +0 -26
- package/dist/utils/is-absolute-specifier.mjs.map +0 -8
- package/dist/utils/is-bare-specifier.d.mts +0 -20
- package/dist/utils/is-bare-specifier.mjs +0 -10
- package/dist/utils/is-bare-specifier.mjs.map +0 -8
- package/dist/utils/is-directory.d.mts +0 -13
- package/dist/utils/is-directory.mjs +0 -14
- package/dist/utils/is-directory.mjs.map +0 -8
- package/dist/utils/is-exports-sugar.d.mts +0 -26
- package/dist/utils/is-exports-sugar.mjs +0 -29
- package/dist/utils/is-exports-sugar.mjs.map +0 -8
- package/dist/utils/is-file.d.mts +0 -13
- package/dist/utils/is-file.mjs +0 -14
- package/dist/utils/is-file.mjs.map +0 -8
- package/dist/utils/is-relative-specifier.d.mts +0 -19
- package/dist/utils/is-relative-specifier.mjs +0 -9
- package/dist/utils/is-relative-specifier.mjs.map +0 -8
- package/dist/utils/lookup-package-scope.d.mts +0 -26
- package/dist/utils/lookup-package-scope.mjs +0 -34
- package/dist/utils/lookup-package-scope.mjs.map +0 -8
- package/dist/utils/parse-data-url.d.mts +0 -25
- package/dist/utils/parse-data-url.mjs +0 -25
- package/dist/utils/parse-data-url.mjs.map +0 -8
- package/dist/utils/parse-module-id.d.mts +0 -20
- package/dist/utils/parse-module-id.mjs +0 -123
- package/dist/utils/parse-module-id.mjs.map +0 -8
- package/dist/utils/parse-subpath.d.mts +0 -35
- package/dist/utils/parse-subpath.mjs +0 -149
- package/dist/utils/parse-subpath.mjs.map +0 -8
- package/dist/utils/pattern-character.d.mts +0 -11
- package/dist/utils/pattern-character.mjs +0 -6
- package/dist/utils/pattern-character.mjs.map +0 -8
- package/dist/utils/read-package-json.d.mts +0 -26
- package/dist/utils/read-package-json.mjs +0 -48
- package/dist/utils/read-package-json.mjs.map +0 -8
- package/dist/utils/resolve-alias.d.mts +0 -20
- package/dist/utils/resolve-alias.mjs +0 -101
- package/dist/utils/resolve-alias.mjs.map +0 -8
- package/dist/utils/resolve-aliases.d.mts +0 -19
- package/dist/utils/resolve-aliases.mjs +0 -26
- package/dist/utils/resolve-aliases.mjs.map +0 -8
- package/dist/utils/resolve-extensions.d.mts +0 -14
- package/dist/utils/resolve-extensions.mjs +0 -22
- package/dist/utils/resolve-extensions.mjs.map +0 -8
- package/dist/utils/resolve-module.d.mts +0 -39
- package/dist/utils/resolve-module.mjs +0 -63
- package/dist/utils/resolve-module.mjs.map +0 -8
- package/dist/utils/resolve-modules.d.mts +0 -25
- package/dist/utils/resolve-modules.mjs +0 -23
- package/dist/utils/resolve-modules.mjs.map +0 -8
- package/dist/utils/to-absolute-specifier.d.mts +0 -22
- package/dist/utils/to-absolute-specifier.mjs +0 -8
- package/dist/utils/to-absolute-specifier.mjs.map +0 -8
- package/dist/utils/to-bare-specifier.d.mts +0 -42
- package/dist/utils/to-bare-specifier.mjs +0 -72
- package/dist/utils/to-bare-specifier.mjs.map +0 -8
- package/dist/utils/to-data-url.d.mts +0 -30
- package/dist/utils/to-data-url.mjs +0 -7
- package/dist/utils/to-data-url.mjs.map +0 -8
- package/dist/utils/to-node-url.d.mts +0 -19
- package/dist/utils/to-node-url.mjs +0 -7
- package/dist/utils/to-node-url.mjs.map +0 -8
- package/dist/utils/to-relative-specifier.d.mts +0 -24
- package/dist/utils/to-relative-specifier.mjs +0 -10
- package/dist/utils/to-relative-specifier.mjs.map +0 -8
- package/dist/utils/to-url.d.mts +0 -21
- package/dist/utils/to-url.mjs +0 -8
- package/dist/utils/to-url.mjs.map +0 -8
- package/dist/utils/validate-assertions.d.mts +0 -23
- package/dist/utils/validate-assertions.mjs +0 -47
- package/dist/utils/validate-assertions.mjs.map +0 -8
- package/dist/utils/validate-exports.d.mts +0 -25
- package/dist/utils/validate-exports.mjs +0 -73
- package/dist/utils/validate-exports.mjs.map +0 -8
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file validateExports
|
|
3
|
-
* @module mlly/utils/validateExports
|
|
4
|
-
*/
|
|
5
|
-
import type { ModuleId } from '../types/index.mjs';
|
|
6
|
-
import type { Exports } from '@flex-development/pkg-types';
|
|
7
|
-
import { type Optional } from '@flex-development/tutils';
|
|
8
|
-
/**
|
|
9
|
-
* Validates the given package [`exports`][1] configuration and schema.
|
|
10
|
-
*
|
|
11
|
-
* [1]: https://nodejs.org/api/packages.html#exports
|
|
12
|
-
*
|
|
13
|
-
* @see {@linkcode Exports}
|
|
14
|
-
* @see {@linkcode ModuleId}
|
|
15
|
-
*
|
|
16
|
-
* @param {Optional<Exports>} 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 {true} `true` if `exports` configuration and schema are valid
|
|
20
|
-
* @throws {NodeError<Error | TypeError>} If either `pkg` or `parent` is not a
|
|
21
|
-
* string or an instance of {@linkcode URL}, or if `exports` configuration or
|
|
22
|
-
* schema is invalid
|
|
23
|
-
*/
|
|
24
|
-
declare const validateExports: (exports: Optional<Exports>, pkg: ModuleId, parent: ModuleId) => true;
|
|
25
|
-
export default validateExports;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import validateURLString from "../internal/validate-url-string.mjs";
|
|
2
|
-
import {
|
|
3
|
-
ERR_INVALID_PACKAGE_CONFIG
|
|
4
|
-
} from "@flex-development/errnode";
|
|
5
|
-
import {
|
|
6
|
-
DOT,
|
|
7
|
-
at,
|
|
8
|
-
cast,
|
|
9
|
-
isArray,
|
|
10
|
-
isArrayIndex,
|
|
11
|
-
isNIL,
|
|
12
|
-
isObjectCurly,
|
|
13
|
-
isString
|
|
14
|
-
} from "@flex-development/tutils";
|
|
15
|
-
import { URL, fileURLToPath } from "node:url";
|
|
16
|
-
const validateExports = (exports, pkg, parent) => {
|
|
17
|
-
switch (validateURLString(pkg, "pkg"), validateURLString(parent, "parent"), !0) {
|
|
18
|
-
case isArray(exports):
|
|
19
|
-
for (const item of cast(exports))
|
|
20
|
-
switch (!0) {
|
|
21
|
-
case (!isObjectCurly(item) && !isString(item)):
|
|
22
|
-
throw new ERR_INVALID_PACKAGE_CONFIG(
|
|
23
|
-
fileURLToPath(pkg),
|
|
24
|
-
fileURLToPath(parent),
|
|
25
|
-
'The "exports" array must contain either objects of package subpath keys, objects of condition name keys, or strings'
|
|
26
|
-
);
|
|
27
|
-
default:
|
|
28
|
-
validateExports(
|
|
29
|
-
cast(item),
|
|
30
|
-
pkg,
|
|
31
|
-
parent
|
|
32
|
-
);
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
break;
|
|
36
|
-
case isNIL(exports):
|
|
37
|
-
case isString(exports):
|
|
38
|
-
break;
|
|
39
|
-
case !isObjectCurly(exports):
|
|
40
|
-
throw new ERR_INVALID_PACKAGE_CONFIG(
|
|
41
|
-
fileURLToPath(pkg),
|
|
42
|
-
fileURLToPath(parent),
|
|
43
|
-
'"exports" must be null, undefined, a string, an object of package subpath keys or condition name keys, or an array containing objects of package subpath keys, objects of condition name keys, or strings'
|
|
44
|
-
);
|
|
45
|
-
default:
|
|
46
|
-
exports = cast(exports);
|
|
47
|
-
const keys = Object.getOwnPropertyNames(exports);
|
|
48
|
-
for (const [index, key] of keys.entries()) {
|
|
49
|
-
if (isArrayIndex(key))
|
|
50
|
-
throw new ERR_INVALID_PACKAGE_CONFIG(
|
|
51
|
-
fileURLToPath(new URL(DOT, pkg)),
|
|
52
|
-
fileURLToPath(parent),
|
|
53
|
-
'"exports" cannot contain numeric property keys'
|
|
54
|
-
);
|
|
55
|
-
if (index) {
|
|
56
|
-
const prev = at(keys, index - 1);
|
|
57
|
-
if (!key.startsWith(DOT) && prev.startsWith(DOT) || key.startsWith(DOT) && !prev.startsWith(DOT))
|
|
58
|
-
throw new ERR_INVALID_PACKAGE_CONFIG(
|
|
59
|
-
fileURLToPath(pkg),
|
|
60
|
-
fileURLToPath(parent),
|
|
61
|
-
`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
return !0;
|
|
68
|
-
};
|
|
69
|
-
var validate_exports_default = validateExports;
|
|
70
|
-
export {
|
|
71
|
-
validate_exports_default as default
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=validate-exports.mjs.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/validate-exports.ts"],
|
|
4
|
-
"sourceRoot": "file://",
|
|
5
|
-
"sourcesContent": ["/**\n * @file validateExports\n * @module mlly/utils/validateExports\n */\n\nimport validateURLString from '#src/internal/validate-url-string'\nimport type { ModuleId } from '#src/types'\nimport {\n ERR_INVALID_PACKAGE_CONFIG,\n type NodeError\n} from '@flex-development/errnode'\nimport type { Exports } from '@flex-development/pkg-types'\nimport {\n DOT,\n at,\n cast,\n isArray,\n isArrayIndex,\n isNIL,\n isObjectCurly,\n isString,\n type Optional\n} from '@flex-development/tutils'\nimport { URL, fileURLToPath } from 'node:url'\n\n/**\n * Validates the given package [`exports`][1] configuration and schema.\n *\n * [1]: https://nodejs.org/api/packages.html#exports\n *\n * @see {@linkcode Exports}\n * @see {@linkcode ModuleId}\n *\n * @param {Optional<Exports>} exports - Package `exports`\n * @param {ModuleId} pkg - URL of relevant `package.json` file\n * @param {ModuleId} parent - URL of module to resolve from\n * @return {true} `true` if `exports` configuration and schema are valid\n * @throws {NodeError<Error | TypeError>} If either `pkg` or `parent` is not a\n * string or an instance of {@linkcode URL}, or if `exports` configuration or\n * schema is invalid\n */\nconst validateExports = (\n exports: Optional<Exports>,\n pkg: ModuleId,\n parent: ModuleId\n): true => {\n validateURLString(pkg, 'pkg')\n validateURLString(parent, 'parent')\n\n switch (true) {\n case isArray(exports):\n for (const item of cast<unknown[]>(exports)) {\n switch (true) {\n case !isObjectCurly(item) && !isString(item):\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(pkg),\n fileURLToPath(parent),\n 'The \"exports\" array must contain either objects of package subpath keys, objects of condition name keys, or strings'\n )\n default:\n validateExports(\n cast<Record<string, Exports> | string>(item),\n pkg,\n parent\n )\n break\n }\n }\n\n break\n case isNIL(exports):\n case isString(exports):\n break\n case !isObjectCurly(exports):\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(pkg),\n fileURLToPath(parent),\n '\"exports\" must be null, undefined, a string, an object of package subpath keys or condition name keys, or an array containing objects of package subpath keys, objects of condition name keys, or strings'\n )\n default:\n exports = cast<Record<string, Exports>>(exports)\n\n /**\n * Keys defined in {@linkcode exports}.\n *\n * @const {string[]} keys\n */\n const keys: string[] = Object.getOwnPropertyNames(exports)\n\n // validate keys\n for (const [index, key] of keys.entries()) {\n // ensure key is not an array index\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(new URL(DOT, pkg)),\n fileURLToPath(parent),\n '\"exports\" cannot contain numeric property keys'\n )\n }\n\n // if more than one key in keys, ensure all keys are either syntactical\n // export conditions or subpath exports\n if (index) {\n /**\n * Key before {@linkcode key} in {@linkcode keys}.\n *\n * @const {string} prev\n */\n const prev: string = at(keys, index - 1)\n\n // ensure keys are syntactical export conditions or subpath exports\n if (\n (!key.startsWith(DOT) && prev.startsWith(DOT)) ||\n (key.startsWith(DOT) && !prev.startsWith(DOT))\n ) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(pkg),\n fileURLToPath(parent),\n '\"exports\" cannot contain some keys starting with \\'.\\' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.'\n )\n }\n }\n }\n\n break\n }\n\n return true\n}\n\nexport default validateExports\n"],
|
|
6
|
-
"mappings": "AAKA,OAAO,uBAAuB;AAE9B;AAAA,EACE;AAAA,OAEK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,KAAK,qBAAqB;AAkBnC,MAAM,kBAAkB,CACtB,SACA,KACA,WACS;AAIT,UAHA,kBAAkB,KAAK,KAAK,GAC5B,kBAAkB,QAAQ,QAAQ,GAE1B,IAAM;AAAA,IACZ,KAAK,QAAQ,OAAO;AAClB,iBAAW,QAAQ,KAAgB,OAAO;AACxC,gBAAQ,IAAM;AAAA,UACZ,MAAK,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,IAAI;AACzC,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,UACF;AACE;AAAA,cACE,KAAuC,IAAI;AAAA,cAC3C;AAAA,cACA;AAAA,YACF;AACA;AAAA,QACJ;AAGF;AAAA,IACF,KAAK,MAAM,OAAO;AAAA,IAClB,KAAK,SAAS,OAAO;AACnB;AAAA,IACF,KAAK,CAAC,cAAc,OAAO;AACzB,YAAM,IAAI;AAAA,QACR,cAAc,GAAG;AAAA,QACjB,cAAc,MAAM;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AACE,gBAAU,KAA8B,OAAO;AAO/C,YAAM,OAAiB,OAAO,oBAAoB,OAAO;AAGzD,iBAAW,CAAC,OAAO,GAAG,KAAK,KAAK,QAAQ,GAAG;AAEzC,YAAI,aAAa,GAAG;AAClB,gBAAM,IAAI;AAAA,YACR,cAAc,IAAI,IAAI,KAAK,GAAG,CAAC;AAAA,YAC/B,cAAc,MAAM;AAAA,YACpB;AAAA,UACF;AAKF,YAAI,OAAO;AAMT,gBAAM,OAAe,GAAG,MAAM,QAAQ,CAAC;AAGvC,cACG,CAAC,IAAI,WAAW,GAAG,KAAK,KAAK,WAAW,GAAG,KAC3C,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,GAAG;AAE5C,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,QAEJ;AAAA,MACF;AAEA;AAAA,EACJ;AAEA,SAAO;AACT;AAEA,IAAO,2BAAQ;",
|
|
7
|
-
"names": []
|
|
8
|
-
}
|