@flex-development/mlly 1.0.0-alpha.18 → 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 +810 -709
- package/README.md +173 -12
- package/dist/index.d.mts +3 -4
- package/dist/index.mjs +1 -3
- 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/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/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 -79
- 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,22 +0,0 @@
|
|
|
1
|
-
import { Format } from "../enums/index.mjs";
|
|
2
|
-
const EXTENSION_FORMAT_MAP = /* @__PURE__ */ new Map([
|
|
3
|
-
[".cjs", Format.COMMONJS],
|
|
4
|
-
[".cts", Format.COMMONJS],
|
|
5
|
-
[".d.cts", Format.COMMONJS],
|
|
6
|
-
[".d.mts", Format.MODULE],
|
|
7
|
-
[".d.ts", Format.MODULE],
|
|
8
|
-
[".js", Format.MODULE],
|
|
9
|
-
[".json", Format.JSON],
|
|
10
|
-
[".jsx", Format.MODULE],
|
|
11
|
-
[".mjs", Format.MODULE],
|
|
12
|
-
[".mts", Format.MODULE],
|
|
13
|
-
[".node", Format.COMMONJS],
|
|
14
|
-
[".ts", Format.MODULE],
|
|
15
|
-
[".tsx", Format.MODULE],
|
|
16
|
-
[".wasm", Format.WASM]
|
|
17
|
-
]);
|
|
18
|
-
var extension_format_map_default = EXTENSION_FORMAT_MAP;
|
|
19
|
-
export {
|
|
20
|
-
extension_format_map_default as default
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=extension-format-map.mjs.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/extension-format-map.ts"],
|
|
4
|
-
"sourceRoot": "file://",
|
|
5
|
-
"sourcesContent": ["/**\n * @file EXTENSION_FORMAT_MAP\n * @module mlly/utils/EXTENSION_FORMAT_MAP\n */\n\nimport { Format } from '#src/enums'\nimport type { Ext } from '@flex-development/pathe'\n\n/**\n * Default file extension to module formats map.\n *\n * @see {@linkcode Ext}\n * @see {@linkcode Format}\n *\n * @const {Map<Ext, Format>} EXTENSION_FORMAT_MAP\n */\nconst EXTENSION_FORMAT_MAP: Map<Ext, Format> = new Map<Ext, Format>([\n ['.cjs', Format.COMMONJS],\n ['.cts', Format.COMMONJS],\n ['.d.cts', Format.COMMONJS],\n ['.d.mts', Format.MODULE],\n ['.d.ts', Format.MODULE],\n ['.js', Format.MODULE],\n ['.json', Format.JSON],\n ['.jsx', Format.MODULE],\n ['.mjs', Format.MODULE],\n ['.mts', Format.MODULE],\n ['.node', Format.COMMONJS],\n ['.ts', Format.MODULE],\n ['.tsx', Format.MODULE],\n ['.wasm', Format.WASM]\n])\n\nexport default EXTENSION_FORMAT_MAP\n"],
|
|
6
|
-
"mappings": "AAKA,SAAS,cAAc;AAWvB,MAAM,uBAAyC,oBAAI,IAAiB;AAAA,EAClE,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACxB,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACxB,CAAC,UAAU,OAAO,QAAQ;AAAA,EAC1B,CAAC,UAAU,OAAO,MAAM;AAAA,EACxB,CAAC,SAAS,OAAO,MAAM;AAAA,EACvB,CAAC,OAAO,OAAO,MAAM;AAAA,EACrB,CAAC,SAAS,OAAO,IAAI;AAAA,EACrB,CAAC,QAAQ,OAAO,MAAM;AAAA,EACtB,CAAC,QAAQ,OAAO,MAAM;AAAA,EACtB,CAAC,QAAQ,OAAO,MAAM;AAAA,EACtB,CAAC,SAAS,OAAO,QAAQ;AAAA,EACzB,CAAC,OAAO,OAAO,MAAM;AAAA,EACrB,CAAC,QAAQ,OAAO,MAAM;AAAA,EACtB,CAAC,SAAS,OAAO,IAAI;AACvB,CAAC;AAED,IAAO,+BAAQ;",
|
|
7
|
-
"names": []
|
|
8
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file extractStatements
|
|
3
|
-
* @module mlly/utils/extractStatements
|
|
4
|
-
*/
|
|
5
|
-
import type { Statement } from '../interfaces/index.mjs';
|
|
6
|
-
/**
|
|
7
|
-
* Finds all `export`, `import`, and/or `require` statements in `code`.
|
|
8
|
-
*
|
|
9
|
-
* Ignores matches in comments.
|
|
10
|
-
*
|
|
11
|
-
* @see {@linkcode findDynamicImports}
|
|
12
|
-
* @see {@linkcode findExports}
|
|
13
|
-
* @see {@linkcode findRequires}
|
|
14
|
-
* @see {@linkcode findStaticImports}
|
|
15
|
-
*
|
|
16
|
-
* @param {string} [code=''] - Code to evaluate
|
|
17
|
-
* @return {Statement[]} Extracted statements
|
|
18
|
-
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
19
|
-
*/
|
|
20
|
-
declare const extractStatements: (code?: string) => Statement[];
|
|
21
|
-
export default extractStatements;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import validateString from "../internal/validate-string.mjs";
|
|
2
|
-
import { sort, trim } from "@flex-development/tutils";
|
|
3
|
-
import findDynamicImports from "./find-dynamic-imports.mjs";
|
|
4
|
-
import findExports from "./find-exports.mjs";
|
|
5
|
-
import findRequires from "./find-requires.mjs";
|
|
6
|
-
import findStaticImports from "./find-static-imports.mjs";
|
|
7
|
-
const extractStatements = (code = "") => (validateString(code, "code"), trim(code).length < 6 ? [] : sort(
|
|
8
|
-
[
|
|
9
|
-
...findDynamicImports(code),
|
|
10
|
-
...findExports(code),
|
|
11
|
-
...findRequires(code),
|
|
12
|
-
...findStaticImports(code)
|
|
13
|
-
],
|
|
14
|
-
(s1, s2) => s1.start - s2.start
|
|
15
|
-
));
|
|
16
|
-
var extract_statements_default = extractStatements;
|
|
17
|
-
export {
|
|
18
|
-
extract_statements_default as default
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=extract-statements.mjs.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/extract-statements.ts"],
|
|
4
|
-
"sourceRoot": "file://",
|
|
5
|
-
"sourcesContent": ["/**\n * @file extractStatements\n * @module mlly/utils/extractStatements\n */\n\nimport type { Statement } from '#src/interfaces'\nimport validateString from '#src/internal/validate-string'\nimport type { NodeError } from '@flex-development/errnode'\nimport { sort, trim } from '@flex-development/tutils'\nimport findDynamicImports from './find-dynamic-imports'\nimport findExports from './find-exports'\nimport findRequires from './find-requires'\nimport findStaticImports from './find-static-imports'\n\n/**\n * Finds all `export`, `import`, and/or `require` statements in `code`.\n *\n * Ignores matches in comments.\n *\n * @see {@linkcode findDynamicImports}\n * @see {@linkcode findExports}\n * @see {@linkcode findRequires}\n * @see {@linkcode findStaticImports}\n *\n * @param {string} [code=''] - Code to evaluate\n * @return {Statement[]} Extracted statements\n * @throws {NodeError<TypeError>} If `code` is not a string\n */\nconst extractStatements = (code: string = ''): Statement[] => {\n validateString(code, 'code')\n\n // code shorter than first shortest keyword => no possible matches\n if (trim(code).length < 'export'.length) return []\n\n return sort(\n [\n ...findDynamicImports(code),\n ...findExports(code),\n ...findRequires(code),\n ...findStaticImports(code)\n ],\n (s1: Statement, s2: Statement): number => s1.start - s2.start\n )\n}\n\nexport default extractStatements\n"],
|
|
6
|
-
"mappings": "AAMA,OAAO,oBAAoB;AAE3B,SAAS,MAAM,YAAY;AAC3B,OAAO,wBAAwB;AAC/B,OAAO,iBAAiB;AACxB,OAAO,kBAAkB;AACzB,OAAO,uBAAuB;AAgB9B,MAAM,oBAAoB,CAAC,OAAe,QACxC,eAAe,MAAM,MAAM,GAGvB,KAAK,IAAI,EAAE,SAAS,IAAwB,CAAC,IAE1C;AAAA,EACL;AAAA,IACE,GAAG,mBAAmB,IAAI;AAAA,IAC1B,GAAG,YAAY,IAAI;AAAA,IACnB,GAAG,aAAa,IAAI;AAAA,IACpB,GAAG,kBAAkB,IAAI;AAAA,EAC3B;AAAA,EACA,CAAC,IAAe,OAA0B,GAAG,QAAQ,GAAG;AAC1D;AAGF,IAAO,6BAAQ;",
|
|
7
|
-
"names": []
|
|
8
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file fillModules
|
|
3
|
-
* @module mlly/utils/fillModules
|
|
4
|
-
*/
|
|
5
|
-
import type { FillModuleOptions } from '../interfaces/index.mjs';
|
|
6
|
-
/**
|
|
7
|
-
* Ensures all absolute and relative module specifiers in the given piece of
|
|
8
|
-
* source `code` are fully specified.
|
|
9
|
-
*
|
|
10
|
-
* Ignores specifiers that already have file extensions.
|
|
11
|
-
*
|
|
12
|
-
* @see {@linkcode FillModuleOptions}
|
|
13
|
-
* @see https://nodejs.org/api/esm.html#mandatory-file-extensions
|
|
14
|
-
* @see https://nodejs.org/api/esm.html#terminology
|
|
15
|
-
*
|
|
16
|
-
* @async
|
|
17
|
-
*
|
|
18
|
-
* @param {string} code - Code to evaluate
|
|
19
|
-
* @param {FillModuleOptions} options - Module fill options
|
|
20
|
-
* @return {Promise<string>} `code` with fully specified module specifiers
|
|
21
|
-
* @throws {NodeError<TypeError>}
|
|
22
|
-
*/
|
|
23
|
-
declare const fillModules: (code: string, options: FillModuleOptions) => Promise<string>;
|
|
24
|
-
export default fillModules;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { SpecifierSyntaxKind } from "../enums/index.mjs";
|
|
2
|
-
import validateArraySet from "../internal/validate-array-set.mjs";
|
|
3
|
-
import validateURLString from "../internal/validate-url-string.mjs";
|
|
4
|
-
import {
|
|
5
|
-
ERR_UNKNOWN_FILE_EXTENSION
|
|
6
|
-
} from "@flex-development/errnode";
|
|
7
|
-
import pathe from "@flex-development/pathe";
|
|
8
|
-
import {
|
|
9
|
-
DOT,
|
|
10
|
-
isFunction,
|
|
11
|
-
regexp,
|
|
12
|
-
trim
|
|
13
|
-
} from "@flex-development/tutils";
|
|
14
|
-
import CONDITIONS from "./conditions.mjs";
|
|
15
|
-
import extractStatements from "./extract-statements.mjs";
|
|
16
|
-
import isAbsoluteSpecifier from "./is-absolute-specifier.mjs";
|
|
17
|
-
import isBareSpecifier from "./is-bare-specifier.mjs";
|
|
18
|
-
import resolveModule from "./resolve-module.mjs";
|
|
19
|
-
import toBareSpecifier from "./to-bare-specifier.mjs";
|
|
20
|
-
import toRelativeSpecifier from "./to-relative-specifier.mjs";
|
|
21
|
-
const fillModules = async (code, options) => {
|
|
22
|
-
const { conditions = CONDITIONS, ext, parent = import.meta.url } = options;
|
|
23
|
-
validateArraySet(conditions, "options.conditions"), validateURLString(parent, "options.parent");
|
|
24
|
-
for (const statement of extractStatements(code))
|
|
25
|
-
if (statement.specifier && statement.specifier_syntax !== SpecifierSyntaxKind.DYNAMIC) {
|
|
26
|
-
const url = await resolveModule(statement.specifier, {
|
|
27
|
-
...options,
|
|
28
|
-
/**
|
|
29
|
-
* Returns a replacement file extension for the given `specifier` if
|
|
30
|
-
* it is non-bare and does not already have an extension.
|
|
31
|
-
*
|
|
32
|
-
* Throws [`ERR_UNKNOWN_FILE_EXTENSION`][1] if the new extension is
|
|
33
|
-
* `null`, `undefined`, an empty string, or a dot character (`'.'`).
|
|
34
|
-
*
|
|
35
|
-
* [1]: https://nodejs.org/api/errors.html#err_unknown_file_extension
|
|
36
|
-
*
|
|
37
|
-
* @async
|
|
38
|
-
*
|
|
39
|
-
* @param {string} specifier - Module specifier
|
|
40
|
-
* @param {URL} url - Resolved module URL
|
|
41
|
-
* @return {Promise<Optional<string>>} New file extension
|
|
42
|
-
*/
|
|
43
|
-
async ext(specifier, url2) {
|
|
44
|
-
if (isBareSpecifier(specifier) || pathe.extname(specifier) === pathe.extname(url2.href))
|
|
45
|
-
return;
|
|
46
|
-
const rext = isFunction(ext) ? await ext(specifier, url2) : ext;
|
|
47
|
-
if (!(rext && trim(rext).length > (rext.startsWith(DOT) ? 1 : 0)))
|
|
48
|
-
throw new ERR_UNKNOWN_FILE_EXTENSION(rext, specifier);
|
|
49
|
-
return rext;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
code = code.replace(
|
|
53
|
-
statement.code,
|
|
54
|
-
statement.code.replace(
|
|
55
|
-
new RegExp(`(?<=["'])${regexp(statement.specifier)}(?=["'])`),
|
|
56
|
-
// convert module url back to absolute, bare, or relative specifier
|
|
57
|
-
statement.specifier.startsWith("#") ? statement.specifier : isAbsoluteSpecifier(statement.specifier) ? url.href : isBareSpecifier(statement.specifier) ? toBareSpecifier(url, parent, new Set(conditions)) : toRelativeSpecifier(url, parent)
|
|
58
|
-
)
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
return code;
|
|
62
|
-
};
|
|
63
|
-
var fill_modules_default = fillModules;
|
|
64
|
-
export {
|
|
65
|
-
fill_modules_default as default
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=fill-modules.mjs.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/fill-modules.ts"],
|
|
4
|
-
"sourceRoot": "file://",
|
|
5
|
-
"sourcesContent": ["/**\n * @file fillModules\n * @module mlly/utils/fillModules\n */\n\nimport { SpecifierSyntaxKind } from '#src/enums'\nimport type { FillModuleOptions } from '#src/interfaces'\nimport validateArraySet from '#src/internal/validate-array-set'\nimport validateURLString from '#src/internal/validate-url-string'\nimport {\n ERR_UNKNOWN_FILE_EXTENSION,\n type NodeError\n} from '@flex-development/errnode'\nimport pathe from '@flex-development/pathe'\nimport {\n DOT,\n isFunction,\n regexp,\n trim,\n type Optional\n} from '@flex-development/tutils'\nimport type { URL } from 'node:url'\nimport CONDITIONS from './conditions'\nimport extractStatements from './extract-statements'\nimport isAbsoluteSpecifier from './is-absolute-specifier'\nimport isBareSpecifier from './is-bare-specifier'\nimport resolveModule from './resolve-module'\nimport toBareSpecifier from './to-bare-specifier'\nimport toRelativeSpecifier from './to-relative-specifier'\n\n/**\n * Ensures all absolute and relative module specifiers in the given piece of\n * source `code` are fully specified.\n *\n * Ignores specifiers that already have file extensions.\n *\n * @see {@linkcode FillModuleOptions}\n * @see https://nodejs.org/api/esm.html#mandatory-file-extensions\n * @see https://nodejs.org/api/esm.html#terminology\n *\n * @async\n *\n * @param {string} code - Code to evaluate\n * @param {FillModuleOptions} options - Module fill options\n * @return {Promise<string>} `code` with fully specified module specifiers\n * @throws {NodeError<TypeError>}\n */\nconst fillModules = async (\n code: string,\n options: FillModuleOptions\n): Promise<string> => {\n const { conditions = CONDITIONS, ext, parent = import.meta.url } = options\n\n // validate options\n validateArraySet(conditions, 'options.conditions')\n validateURLString(parent, 'options.parent')\n\n // ensure specifiers have file extensions\n for (const statement of extractStatements(code)) {\n if (statement.specifier) {\n if (statement.specifier_syntax !== SpecifierSyntaxKind.DYNAMIC) {\n /**\n * Resolved module URL.\n *\n * @const {URL} url\n */\n const url: URL = await resolveModule(statement.specifier, {\n ...options,\n /**\n * Returns a replacement file extension for the given `specifier` if\n * it is non-bare and does not already have an extension.\n *\n * Throws [`ERR_UNKNOWN_FILE_EXTENSION`][1] if the new extension is\n * `null`, `undefined`, an empty string, or a dot character (`'.'`).\n *\n * [1]: https://nodejs.org/api/errors.html#err_unknown_file_extension\n *\n * @async\n *\n * @param {string} specifier - Module specifier\n * @param {URL} url - Resolved module URL\n * @return {Promise<Optional<string>>} New file extension\n */\n async ext(specifier: string, url: URL): Promise<Optional<string>> {\n // skip replacement for bare specifiers\n if (isBareSpecifier(specifier)) return void 0\n\n // skip replacement for specifiers that are already fully specified\n if (pathe.extname(specifier) === pathe.extname(url.href)) {\n return void 0\n }\n\n /**\n * Replacement file extension.\n *\n * @var {string} rext\n */\n const rext: string = isFunction(ext)\n ? await ext(specifier, url)\n : ext\n\n // ensure replacement extension is non-empty and non-dot ('.')\n if (!(rext && trim(rext).length > (rext.startsWith(DOT) ? 1 : 0))) {\n throw new ERR_UNKNOWN_FILE_EXTENSION(rext, specifier)\n }\n\n return rext\n }\n })\n\n // replace original module specifier\n code = code.replace(\n statement.code,\n statement.code.replace(\n new RegExp(`(?<=[\"'])${regexp(statement.specifier)}(?=[\"'])`),\n // convert module url back to absolute, bare, or relative specifier\n statement.specifier.startsWith('#')\n ? statement.specifier\n : isAbsoluteSpecifier(statement.specifier)\n ? url.href\n : isBareSpecifier(statement.specifier)\n ? toBareSpecifier(url, parent, new Set(conditions))\n : toRelativeSpecifier(url, parent)\n )\n )\n }\n }\n }\n\n return code\n}\n\nexport default fillModules\n"],
|
|
6
|
-
"mappings": "AAKA,SAAS,2BAA2B;AAEpC,OAAO,sBAAsB;AAC7B,OAAO,uBAAuB;AAC9B;AAAA,EACE;AAAA,OAEK;AACP,OAAO,WAAW;AAClB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,OAAO,gBAAgB;AACvB,OAAO,uBAAuB;AAC9B,OAAO,yBAAyB;AAChC,OAAO,qBAAqB;AAC5B,OAAO,mBAAmB;AAC1B,OAAO,qBAAqB;AAC5B,OAAO,yBAAyB;AAmBhC,MAAM,cAAc,OAClB,MACA,YACoB;AACpB,QAAM,EAAE,aAAa,YAAY,KAAK,SAAS,YAAY,IAAI,IAAI;AAGnE,mBAAiB,YAAY,oBAAoB,GACjD,kBAAkB,QAAQ,gBAAgB;AAG1C,aAAW,aAAa,kBAAkB,IAAI;AAC5C,QAAI,UAAU,aACR,UAAU,qBAAqB,oBAAoB,SAAS;AAM9D,YAAM,MAAW,MAAM,cAAc,UAAU,WAAW;AAAA,QACxD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAgBH,MAAM,IAAI,WAAmBA,MAAqC;AAKhE,cAHI,gBAAgB,SAAS,KAGzB,MAAM,QAAQ,SAAS,MAAM,MAAM,QAAQA,KAAI,IAAI;AACrD;AAQF,gBAAM,OAAe,WAAW,GAAG,IAC/B,MAAM,IAAI,WAAWA,IAAG,IACxB;AAGJ,cAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,UAAU,KAAK,WAAW,GAAG,IAAI,IAAI;AAC5D,kBAAM,IAAI,2BAA2B,MAAM,SAAS;AAGtD,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AAGD,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,UAAU,KAAK;AAAA,UACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,CAAC,UAAU;AAAA;AAAA,UAE5D,UAAU,UAAU,WAAW,GAAG,IAC9B,UAAU,YACV,oBAAoB,UAAU,SAAS,IACvC,IAAI,OACJ,gBAAgB,UAAU,SAAS,IACnC,gBAAgB,KAAK,QAAQ,IAAI,IAAI,UAAU,CAAC,IAChD,oBAAoB,KAAK,MAAM;AAAA,QACrC;AAAA,MACF;AAAA,IACF;AAIJ,SAAO;AACT;AAEA,IAAO,uBAAQ;",
|
|
7
|
-
"names": ["url"]
|
|
8
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file findDynamicImports
|
|
3
|
-
* @module mlly/utils/findDynamicImports
|
|
4
|
-
*/
|
|
5
|
-
import type { DynamicImport } from '../interfaces/index.mjs';
|
|
6
|
-
/**
|
|
7
|
-
* Finds all dynamic import statements in `code`. Ignores matches in comments.
|
|
8
|
-
*
|
|
9
|
-
* @see {@linkcode DynamicImport}
|
|
10
|
-
* @see https://regex101.com/r/PTPAvU
|
|
11
|
-
* @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/import
|
|
12
|
-
*
|
|
13
|
-
* @param {string} [code=''] - Code to evaluate
|
|
14
|
-
* @return {DynamicImport[]} Dynamic import statement objects
|
|
15
|
-
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
16
|
-
*/
|
|
17
|
-
declare const findDynamicImports: (code?: string) => DynamicImport[];
|
|
18
|
-
export default findDynamicImports;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SpecifierSyntaxKind,
|
|
3
|
-
StatementKind,
|
|
4
|
-
StatementSyntaxKind
|
|
5
|
-
} from "../enums/index.mjs";
|
|
6
|
-
import dequote from "../internal/dequote.mjs";
|
|
7
|
-
import getSpecifierKind from "../internal/get-specifier-kind.mjs";
|
|
8
|
-
import validateString from "../internal/validate-string.mjs";
|
|
9
|
-
import { DYNAMIC_IMPORT_REGEX } from "@flex-development/import-regex";
|
|
10
|
-
import { split, trim } from "@flex-development/tutils";
|
|
11
|
-
const findDynamicImports = (code = "") => (validateString(code, "code"), [...code.matchAll(DYNAMIC_IMPORT_REGEX)].map((match) => {
|
|
12
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match, {
|
|
13
|
-
expression = "",
|
|
14
|
-
imports = "",
|
|
15
|
-
options = "",
|
|
16
|
-
specifier = ""
|
|
17
|
-
} = groups, specifier_syntax = /^["']/.test(specifier) ? SpecifierSyntaxKind.STATIC : SpecifierSyntaxKind.DYNAMIC;
|
|
18
|
-
return {
|
|
19
|
-
code: code2,
|
|
20
|
-
end: start + code2.length,
|
|
21
|
-
expression,
|
|
22
|
-
imports: imports === "" ? [] : split(imports.replace(/^{|}$/g, ""), ",").map(trim).filter((e) => !!e.length),
|
|
23
|
-
kind: StatementKind.IMPORT,
|
|
24
|
-
options,
|
|
25
|
-
specifier: dequote(specifier),
|
|
26
|
-
specifier_kind: specifier_syntax === SpecifierSyntaxKind.DYNAMIC ? null : getSpecifierKind(specifier),
|
|
27
|
-
specifier_syntax,
|
|
28
|
-
start,
|
|
29
|
-
syntax: StatementSyntaxKind.DYNAMIC
|
|
30
|
-
};
|
|
31
|
-
}));
|
|
32
|
-
var find_dynamic_imports_default = findDynamicImports;
|
|
33
|
-
export {
|
|
34
|
-
find_dynamic_imports_default as default
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=find-dynamic-imports.mjs.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/find-dynamic-imports.ts"],
|
|
4
|
-
"sourceRoot": "file://",
|
|
5
|
-
"sourcesContent": ["/**\n * @file findDynamicImports\n * @module mlly/utils/findDynamicImports\n */\n\nimport {\n SpecifierSyntaxKind,\n StatementKind,\n StatementSyntaxKind\n} from '#src/enums'\nimport type { DynamicImport } from '#src/interfaces'\nimport dequote from '#src/internal/dequote'\nimport getSpecifierKind from '#src/internal/get-specifier-kind'\nimport validateString from '#src/internal/validate-string'\nimport type { NodeError } from '@flex-development/errnode'\nimport { DYNAMIC_IMPORT_REGEX } from '@flex-development/import-regex'\nimport { split, trim } from '@flex-development/tutils'\n\n/**\n * Finds all dynamic import statements in `code`. Ignores matches in comments.\n *\n * @see {@linkcode DynamicImport}\n * @see https://regex101.com/r/PTPAvU\n * @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/import\n *\n * @param {string} [code=''] - Code to evaluate\n * @return {DynamicImport[]} Dynamic import statement objects\n * @throws {NodeError<TypeError>} If `code` is not a string\n */\nconst findDynamicImports = (code: string = ''): DynamicImport[] => {\n validateString(code, 'code')\n\n return [...code.matchAll(DYNAMIC_IMPORT_REGEX)].map(match => {\n const { 0: code = '', index: start = 0, groups = {} } = match\n const {\n expression = '',\n imports = '',\n options = '',\n specifier = ''\n } = groups\n\n /**\n * Module specifier syntax.\n *\n * @const {SpecifierSyntaxKind} specifier_syntax\n */\n const specifier_syntax: SpecifierSyntaxKind = /^[\"']/.test(specifier)\n ? SpecifierSyntaxKind.STATIC\n : SpecifierSyntaxKind.DYNAMIC\n\n return {\n code,\n end: start + code.length,\n expression,\n imports:\n imports === ''\n ? []\n : split(imports.replace(/^{|}$/g, ''), ',')\n .map(trim)\n .filter(e => !!e.length),\n kind: StatementKind.IMPORT,\n options,\n specifier: dequote(specifier),\n specifier_kind:\n specifier_syntax === SpecifierSyntaxKind.DYNAMIC\n ? null\n : getSpecifierKind(specifier),\n specifier_syntax,\n start,\n syntax: StatementSyntaxKind.DYNAMIC\n }\n })\n}\n\nexport default findDynamicImports\n"],
|
|
6
|
-
"mappings": "AAKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,OAAO,aAAa;AACpB,OAAO,sBAAsB;AAC7B,OAAO,oBAAoB;AAE3B,SAAS,4BAA4B;AACrC,SAAS,OAAO,YAAY;AAa5B,MAAM,qBAAqB,CAAC,OAAe,QACzC,eAAe,MAAM,MAAM,GAEpB,CAAC,GAAG,KAAK,SAAS,oBAAoB,CAAC,EAAE,IAAI,WAAS;AAC3D,QAAM,EAAE,GAAGA,QAAO,IAAI,OAAO,QAAQ,GAAG,SAAS,CAAC,EAAE,IAAI,OAClD;AAAA,IACJ,aAAa;AAAA,IACb,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,EACd,IAAI,QAOE,mBAAwC,QAAQ,KAAK,SAAS,IAChE,oBAAoB,SACpB,oBAAoB;AAExB,SAAO;AAAA,IACL,MAAAA;AAAA,IACA,KAAK,QAAQA,MAAK;AAAA,IAClB;AAAA,IACA,SACE,YAAY,KACR,CAAC,IACD,MAAM,QAAQ,QAAQ,UAAU,EAAE,GAAG,GAAG,EACrC,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM;AAAA,IAC/B,MAAM,cAAc;AAAA,IACpB;AAAA,IACA,WAAW,QAAQ,SAAS;AAAA,IAC5B,gBACE,qBAAqB,oBAAoB,UACrC,OACA,iBAAiB,SAAS;AAAA,IAChC;AAAA,IACA;AAAA,IACA,QAAQ,oBAAoB;AAAA,EAC9B;AACF,CAAC;AAGH,IAAO,+BAAQ;",
|
|
7
|
-
"names": ["code"]
|
|
8
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file findExports
|
|
3
|
-
* @module mlly/utils/findExports
|
|
4
|
-
*/
|
|
5
|
-
import type { ExportStatement } from '../interfaces/index.mjs';
|
|
6
|
-
/**
|
|
7
|
-
* Finds all export statements in `code`. Ignores matches in comments.
|
|
8
|
-
*
|
|
9
|
-
* @see {@linkcode ExportStatement}
|
|
10
|
-
* @see https://regex101.com/r/JtvRUt
|
|
11
|
-
* @see https://regex101.com/r/8HpMrA
|
|
12
|
-
* @see https://regex101.com/r/G7GhEt
|
|
13
|
-
* @see https://regex101.com/r/KQEDdZ
|
|
14
|
-
* @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/export
|
|
15
|
-
*
|
|
16
|
-
* @param {string} [code=''] - Code to evaluate
|
|
17
|
-
* @return {ExportStatement[]} Export statement objects
|
|
18
|
-
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
19
|
-
*/
|
|
20
|
-
declare const findExports: (code?: string) => ExportStatement[];
|
|
21
|
-
export default findExports;
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SpecifierSyntaxKind,
|
|
3
|
-
StatementKind,
|
|
4
|
-
StatementSyntaxKind
|
|
5
|
-
} from "../enums/index.mjs";
|
|
6
|
-
import getSpecifierKind from "../internal/get-specifier-kind.mjs";
|
|
7
|
-
import validateString from "../internal/validate-string.mjs";
|
|
8
|
-
import {
|
|
9
|
-
EXPORT_AGGREGATE_REGEX,
|
|
10
|
-
EXPORT_DECLARATION_REGEX,
|
|
11
|
-
EXPORT_DEFAULT_REGEX,
|
|
12
|
-
EXPORT_LIST_REGEX
|
|
13
|
-
} from "@flex-development/export-regex";
|
|
14
|
-
import { cast, sort, split, trim } from "@flex-development/tutils";
|
|
15
|
-
const findExports = (code = "") => {
|
|
16
|
-
validateString(code, "code");
|
|
17
|
-
const statements = [];
|
|
18
|
-
for (const match of code.matchAll(EXPORT_AGGREGATE_REGEX)) {
|
|
19
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match, { exports = "", specifier = "", type = "" } = groups;
|
|
20
|
-
statements.push({
|
|
21
|
-
code: code2,
|
|
22
|
-
declaration: null,
|
|
23
|
-
end: start + code2.length,
|
|
24
|
-
exports: exports.startsWith("*") ? [exports] : split(exports.replace(/^{|}$/g, ""), ",").map(trim).filter((e) => !!e.length),
|
|
25
|
-
kind: StatementKind.EXPORT,
|
|
26
|
-
modifiers: [],
|
|
27
|
-
specifier,
|
|
28
|
-
specifier_kind: getSpecifierKind(specifier),
|
|
29
|
-
specifier_syntax: SpecifierSyntaxKind.STATIC,
|
|
30
|
-
start,
|
|
31
|
-
syntax: exports.startsWith("{") ? StatementSyntaxKind.NAMED : StatementSyntaxKind.NAMESPACE,
|
|
32
|
-
type: !!type
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
for (const match of code.matchAll(EXPORT_DECLARATION_REGEX)) {
|
|
36
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match, { declaration = "", exports = "", modifiers = "" } = groups;
|
|
37
|
-
statements.push({
|
|
38
|
-
code: code2,
|
|
39
|
-
declaration: cast(declaration),
|
|
40
|
-
end: start + code2.length,
|
|
41
|
-
exports: /^\w+$/.test(exports) ? [exports] : split(exports.replace(/^[[{]|[\]}]$/g, ""), ",").map((e) => trim(e).replace(/\s*=\s*.*$/, "")).filter((e) => !!e.length),
|
|
42
|
-
kind: StatementKind.EXPORT,
|
|
43
|
-
modifiers: modifiers === "" ? [] : split(modifiers, " ").map(trim).filter((e) => !!e.length),
|
|
44
|
-
specifier: null,
|
|
45
|
-
specifier_kind: null,
|
|
46
|
-
specifier_syntax: null,
|
|
47
|
-
start,
|
|
48
|
-
syntax: StatementSyntaxKind.DECLARATION,
|
|
49
|
-
type: !1
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
for (const match of code.matchAll(EXPORT_DEFAULT_REGEX)) {
|
|
53
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match, { exports = "", kind: declaration = "", modifiers = "" } = groups;
|
|
54
|
-
statements.push({
|
|
55
|
-
code: code2,
|
|
56
|
-
declaration: declaration ? cast(declaration) : null,
|
|
57
|
-
end: start + code2.length,
|
|
58
|
-
exports: exports === "" ? [] : [exports],
|
|
59
|
-
kind: StatementKind.EXPORT,
|
|
60
|
-
modifiers: modifiers === "" ? [] : split(modifiers, " ").map(trim).filter((e) => !!e.length),
|
|
61
|
-
specifier: null,
|
|
62
|
-
specifier_kind: null,
|
|
63
|
-
specifier_syntax: null,
|
|
64
|
-
start,
|
|
65
|
-
syntax: StatementSyntaxKind.DEFAULT,
|
|
66
|
-
type: !1
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
for (const match of code.matchAll(EXPORT_LIST_REGEX)) {
|
|
70
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match, { exports = "", type = "" } = groups;
|
|
71
|
-
statements.push({
|
|
72
|
-
code: code2,
|
|
73
|
-
declaration: null,
|
|
74
|
-
end: start + code2.length,
|
|
75
|
-
exports: split(exports.replace(/^{|}$/g, ""), ",").map(trim).filter((e) => !!e.length),
|
|
76
|
-
kind: StatementKind.EXPORT,
|
|
77
|
-
modifiers: [],
|
|
78
|
-
specifier: null,
|
|
79
|
-
specifier_kind: null,
|
|
80
|
-
specifier_syntax: null,
|
|
81
|
-
start,
|
|
82
|
-
syntax: StatementSyntaxKind.LIST,
|
|
83
|
-
type: !!type
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
return sort(statements, (s1, s2) => s1.start - s2.start);
|
|
87
|
-
};
|
|
88
|
-
var find_exports_default = findExports;
|
|
89
|
-
export {
|
|
90
|
-
find_exports_default as default
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=find-exports.mjs.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/find-exports.ts"],
|
|
4
|
-
"sourceRoot": "file://",
|
|
5
|
-
"sourcesContent": ["/**\n * @file findExports\n * @module mlly/utils/findExports\n */\n\nimport {\n SpecifierSyntaxKind,\n StatementKind,\n StatementSyntaxKind\n} from '#src/enums'\nimport type { ExportStatement } from '#src/interfaces'\nimport getSpecifierKind from '#src/internal/get-specifier-kind'\nimport validateString from '#src/internal/validate-string'\nimport type { NodeError } from '@flex-development/errnode'\nimport {\n EXPORT_AGGREGATE_REGEX,\n EXPORT_DECLARATION_REGEX,\n EXPORT_DEFAULT_REGEX,\n EXPORT_LIST_REGEX\n} from '@flex-development/export-regex'\nimport { cast, sort, split, trim } from '@flex-development/tutils'\n\n/**\n * Finds all export statements in `code`. Ignores matches in comments.\n *\n * @see {@linkcode ExportStatement}\n * @see https://regex101.com/r/JtvRUt\n * @see https://regex101.com/r/8HpMrA\n * @see https://regex101.com/r/G7GhEt\n * @see https://regex101.com/r/KQEDdZ\n * @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/export\n *\n * @param {string} [code=''] - Code to evaluate\n * @return {ExportStatement[]} Export statement objects\n * @throws {NodeError<TypeError>} If `code` is not a string\n */\nconst findExports = (code: string = ''): ExportStatement[] => {\n validateString(code, 'code')\n\n /**\n * `export` statement objects.\n *\n * @const {ExportStatement[]} statements\n */\n const statements: ExportStatement[] = []\n\n // get aggregate export statements\n for (const match of code.matchAll(EXPORT_AGGREGATE_REGEX)) {\n const { 0: code = '', index: start = 0, groups = {} } = match\n const { exports = '', specifier = '', type = '' } = groups\n\n statements.push({\n code,\n declaration: null,\n end: start + code.length,\n exports: exports.startsWith('*')\n ? [exports]\n : split(exports.replace(/^{|}$/g, ''), ',')\n .map(trim)\n .filter(e => !!e.length),\n kind: StatementKind.EXPORT,\n modifiers: [],\n specifier,\n specifier_kind: getSpecifierKind(specifier),\n specifier_syntax: SpecifierSyntaxKind.STATIC,\n start,\n syntax: exports.startsWith('{')\n ? StatementSyntaxKind.NAMED\n : StatementSyntaxKind.NAMESPACE,\n type: !!type\n })\n }\n\n // get declaration export statements\n for (const match of code.matchAll(EXPORT_DECLARATION_REGEX)) {\n const { 0: code = '', index: start = 0, groups = {} } = match\n const { declaration = '', exports = '', modifiers = '' } = groups\n\n statements.push({\n code,\n declaration: cast(declaration),\n end: start + code.length,\n exports: /^\\w+$/.test(exports)\n ? [exports]\n : split(exports.replace(/^[[{]|[\\]}]$/g, ''), ',')\n .map(e => trim(e).replace(/\\s*=\\s*.*$/, ''))\n .filter(e => !!e.length),\n kind: StatementKind.EXPORT,\n modifiers:\n modifiers === ''\n ? []\n : split(modifiers, ' ')\n .map(trim)\n .filter(e => !!e.length),\n specifier: null,\n specifier_kind: null,\n specifier_syntax: null,\n start,\n syntax: StatementSyntaxKind.DECLARATION,\n type: false\n })\n }\n\n // get export default statements\n for (const match of code.matchAll(EXPORT_DEFAULT_REGEX)) {\n const { 0: code = '', index: start = 0, groups = {} } = match\n const { exports = '', kind: declaration = '', modifiers = '' } = groups\n\n statements.push({\n code,\n declaration: declaration ? cast(declaration) : null,\n end: start + code.length,\n exports: exports === '' ? [] : [exports],\n kind: StatementKind.EXPORT,\n modifiers:\n modifiers === ''\n ? []\n : split(modifiers, ' ')\n .map(trim)\n .filter(e => !!e.length),\n specifier: null,\n specifier_kind: null,\n specifier_syntax: null,\n start,\n syntax: StatementSyntaxKind.DEFAULT,\n type: false\n })\n }\n\n // get list export statements\n for (const match of code.matchAll(EXPORT_LIST_REGEX)) {\n const { 0: code = '', index: start = 0, groups = {} } = match\n const { exports = '', type = '' } = groups\n\n statements.push({\n code,\n declaration: null,\n end: start + code.length,\n exports: split(exports.replace(/^{|}$/g, ''), ',')\n .map(trim)\n .filter(e => !!e.length),\n kind: StatementKind.EXPORT,\n modifiers: [],\n specifier: null,\n specifier_kind: null,\n specifier_syntax: null,\n start,\n syntax: StatementSyntaxKind.LIST,\n type: !!type\n })\n }\n\n return sort(statements, (s1, s2): number => s1.start - s2.start)\n}\n\nexport default findExports\n"],
|
|
6
|
-
"mappings": "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",
|
|
7
|
-
"names": ["code"]
|
|
8
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file findRequires
|
|
3
|
-
* @module mlly/utils/findRequires
|
|
4
|
-
*/
|
|
5
|
-
import type { RequireStatement } from '../interfaces/index.mjs';
|
|
6
|
-
/**
|
|
7
|
-
* Finds all `require` statements in `code`. Ignores matches in comments.
|
|
8
|
-
*
|
|
9
|
-
* @see {@linkcode RequireStatement}
|
|
10
|
-
* @see https://regex101.com/r/uCqSYB
|
|
11
|
-
* @see https://nodejs.org/api/modules.html#requireid
|
|
12
|
-
*
|
|
13
|
-
* @param {string} [code=''] - Code to evaluate
|
|
14
|
-
* @return {RequireStatement[]} Require statement objects
|
|
15
|
-
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
16
|
-
*/
|
|
17
|
-
declare const findRequires: (code?: string) => RequireStatement[];
|
|
18
|
-
export default findRequires;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SpecifierSyntaxKind,
|
|
3
|
-
StatementKind,
|
|
4
|
-
StatementSyntaxKind
|
|
5
|
-
} from "../enums/index.mjs";
|
|
6
|
-
import dequote from "../internal/dequote.mjs";
|
|
7
|
-
import getSpecifierKind from "../internal/get-specifier-kind.mjs";
|
|
8
|
-
import validateString from "../internal/validate-string.mjs";
|
|
9
|
-
import { split, trim } from "@flex-development/tutils";
|
|
10
|
-
const findRequires = (code = "") => {
|
|
11
|
-
validateString(code, "code");
|
|
12
|
-
const REQUIRE_REGEX = /(?<=^|[\s,:;([])\b(?:(?:const\s*|let\s*|var\s*)?(?:(?<=(?:const\s*|let\s*|var\s*))(?<imports>(?:[$_\p{ID_Start}][$\u200C\u200D\p{ID_Continue}]*)|(?:[\w\t\n\r "$'*,./:{}-]+?)))?\s*=?\s*(?<kind>require)\((?<specifier>["']?[\S\t\n\r]+?["']?)\))(?<!(?:\/\/|\*).*)/gu;
|
|
13
|
-
return [...code.matchAll(REQUIRE_REGEX)].map((match) => {
|
|
14
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match, { imports = "", specifier = "" } = groups, specifier_syntax = /^["']/.test(specifier) ? SpecifierSyntaxKind.STATIC : SpecifierSyntaxKind.DYNAMIC;
|
|
15
|
-
return {
|
|
16
|
-
code: code2,
|
|
17
|
-
end: start + code2.length,
|
|
18
|
-
imports: imports === "" ? [] : split(imports.replace(/^{|}$/g, ""), ",").map(trim).filter((e) => !!e.length),
|
|
19
|
-
kind: StatementKind.REQUIRE,
|
|
20
|
-
specifier: dequote(specifier),
|
|
21
|
-
specifier_kind: specifier_syntax === SpecifierSyntaxKind.DYNAMIC ? null : getSpecifierKind(specifier),
|
|
22
|
-
specifier_syntax,
|
|
23
|
-
start,
|
|
24
|
-
syntax: StatementSyntaxKind.REQUIRE
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
var find_requires_default = findRequires;
|
|
29
|
-
export {
|
|
30
|
-
find_requires_default as default
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=find-requires.mjs.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/find-requires.ts"],
|
|
4
|
-
"sourceRoot": "file://",
|
|
5
|
-
"sourcesContent": ["/**\n * @file findRequires\n * @module mlly/utils/findRequires\n */\n\nimport {\n SpecifierSyntaxKind,\n StatementKind,\n StatementSyntaxKind\n} from '#src/enums'\nimport type { RequireStatement } from '#src/interfaces'\nimport dequote from '#src/internal/dequote'\nimport getSpecifierKind from '#src/internal/get-specifier-kind'\nimport validateString from '#src/internal/validate-string'\nimport type { NodeError } from '@flex-development/errnode'\nimport { split, trim } from '@flex-development/tutils'\n\n/**\n * Finds all `require` statements in `code`. Ignores matches in comments.\n *\n * @see {@linkcode RequireStatement}\n * @see https://regex101.com/r/uCqSYB\n * @see https://nodejs.org/api/modules.html#requireid\n *\n * @param {string} [code=''] - Code to evaluate\n * @return {RequireStatement[]} Require statement objects\n * @throws {NodeError<TypeError>} If `code` is not a string\n */\nconst findRequires = (code: string = ''): RequireStatement[] => {\n validateString(code, 'code')\n\n /**\n * `require` statement regex.\n *\n * @const {RegExp} REQUIRE_REGEX\n */\n const REQUIRE_REGEX: RegExp =\n /(?<=^|[\\s,:;([])\\b(?:(?:const\\s*|let\\s*|var\\s*)?(?:(?<=(?:const\\s*|let\\s*|var\\s*))(?<imports>(?:[$_\\p{ID_Start}][$\\u200C\\u200D\\p{ID_Continue}]*)|(?:[\\w\\t\\n\\r \"$'*,./:{}-]+?)))?\\s*=?\\s*(?<kind>require)\\((?<specifier>[\"']?[\\S\\t\\n\\r]+?[\"']?)\\))(?<!(?:\\/\\/|\\*).*)/gu\n\n return [...code.matchAll(REQUIRE_REGEX)].map(match => {\n const { 0: code = '', index: start = 0, groups = {} } = match\n const { imports = '', specifier = '' } = groups\n\n /**\n * Module specifier syntax.\n *\n * @const {SpecifierSyntaxKind} specifier_syntax\n */\n const specifier_syntax: SpecifierSyntaxKind = /^[\"']/.test(specifier)\n ? SpecifierSyntaxKind.STATIC\n : SpecifierSyntaxKind.DYNAMIC\n\n return {\n code,\n end: start + code.length,\n imports:\n imports === ''\n ? []\n : split(imports.replace(/^{|}$/g, ''), ',')\n .map(trim)\n .filter(e => !!e.length),\n kind: StatementKind.REQUIRE,\n specifier: dequote(specifier),\n specifier_kind:\n specifier_syntax === SpecifierSyntaxKind.DYNAMIC\n ? null\n : getSpecifierKind(specifier),\n specifier_syntax,\n start,\n syntax: StatementSyntaxKind.REQUIRE\n }\n })\n}\n\nexport default findRequires\n"],
|
|
6
|
-
"mappings": "AAKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,OAAO,aAAa;AACpB,OAAO,sBAAsB;AAC7B,OAAO,oBAAoB;AAE3B,SAAS,OAAO,YAAY;AAa5B,MAAM,eAAe,CAAC,OAAe,OAA2B;AAC9D,iBAAe,MAAM,MAAM;AAO3B,QAAM,gBACJ;AAEF,SAAO,CAAC,GAAG,KAAK,SAAS,aAAa,CAAC,EAAE,IAAI,WAAS;AACpD,UAAM,EAAE,GAAGA,QAAO,IAAI,OAAO,QAAQ,GAAG,SAAS,CAAC,EAAE,IAAI,OAClD,EAAE,UAAU,IAAI,YAAY,GAAG,IAAI,QAOnC,mBAAwC,QAAQ,KAAK,SAAS,IAChE,oBAAoB,SACpB,oBAAoB;AAExB,WAAO;AAAA,MACL,MAAAA;AAAA,MACA,KAAK,QAAQA,MAAK;AAAA,MAClB,SACE,YAAY,KACR,CAAC,IACD,MAAM,QAAQ,QAAQ,UAAU,EAAE,GAAG,GAAG,EACrC,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM;AAAA,MAC/B,MAAM,cAAc;AAAA,MACpB,WAAW,QAAQ,SAAS;AAAA,MAC5B,gBACE,qBAAqB,oBAAoB,UACrC,OACA,iBAAiB,SAAS;AAAA,MAChC;AAAA,MACA;AAAA,MACA,QAAQ,oBAAoB;AAAA,IAC9B;AAAA,EACF,CAAC;AACH;AAEA,IAAO,wBAAQ;",
|
|
7
|
-
"names": ["code"]
|
|
8
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file findStaticImports
|
|
3
|
-
* @module mlly/utils/findStaticImports
|
|
4
|
-
*/
|
|
5
|
-
import type { StaticImport } from '../interfaces/index.mjs';
|
|
6
|
-
/**
|
|
7
|
-
* Finds all static import statements in `code`. Ignores matches in comments.
|
|
8
|
-
*
|
|
9
|
-
* @see {@linkcode StaticImport}
|
|
10
|
-
* @see https://regex101.com/r/wlYQUN
|
|
11
|
-
* @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/import
|
|
12
|
-
*
|
|
13
|
-
* @param {string} [code=''] - Code to evaluate
|
|
14
|
-
* @return {StaticImport[]} Static import statement objects
|
|
15
|
-
* @throws {NodeError<TypeError>} If `code` is not a string
|
|
16
|
-
*/
|
|
17
|
-
declare const findStaticImports: (code?: string) => StaticImport[];
|
|
18
|
-
export default findStaticImports;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SpecifierSyntaxKind,
|
|
3
|
-
StatementKind,
|
|
4
|
-
StatementSyntaxKind
|
|
5
|
-
} from "../enums/index.mjs";
|
|
6
|
-
import getSpecifierKind from "../internal/get-specifier-kind.mjs";
|
|
7
|
-
import validateString from "../internal/validate-string.mjs";
|
|
8
|
-
import { STATIC_IMPORT_REGEX } from "@flex-development/import-regex";
|
|
9
|
-
import { split, trim } from "@flex-development/tutils";
|
|
10
|
-
const findStaticImports = (code = "") => (validateString(code, "code"), [...code.matchAll(STATIC_IMPORT_REGEX)].map((match) => {
|
|
11
|
-
const { 0: code2 = "", index: start = 0, groups = {} } = match, { assertion = "", imports = "", specifier = "", type = "" } = groups, syntax = imports === "" ? StatementSyntaxKind.SIDE_EFFECT : imports.startsWith("* as") ? StatementSyntaxKind.NAMESPACE : imports.startsWith("{") ? StatementSyntaxKind.NAMED : /^\w+$/.test(imports) ? StatementSyntaxKind.DEFAULT : /^\w+,\s*{/.test(imports) ? StatementSyntaxKind.DEFAULT_WITH_NAMED : StatementSyntaxKind.DEFAULT_WITH_NAMESPACE;
|
|
12
|
-
return {
|
|
13
|
-
assertion,
|
|
14
|
-
code: code2,
|
|
15
|
-
end: start + code2.length,
|
|
16
|
-
imports: syntax === StatementSyntaxKind.SIDE_EFFECT ? [] : syntax === StatementSyntaxKind.NAMED ? split(imports.replace(/^{|}$/g, ""), ",").map(trim).filter((i) => !!i.length) : syntax === StatementSyntaxKind.DEFAULT_WITH_NAMED ? split(imports, ",").map((i) => trim(i).replace(/^{|}$/g, "")).map(trim).filter((i) => !!i.length) : syntax === StatementSyntaxKind.DEFAULT_WITH_NAMESPACE ? split(imports, ",").map(trim).filter((i) => !!i.length) : [imports],
|
|
17
|
-
kind: StatementKind.IMPORT,
|
|
18
|
-
specifier,
|
|
19
|
-
specifier_kind: getSpecifierKind(specifier),
|
|
20
|
-
specifier_syntax: SpecifierSyntaxKind.STATIC,
|
|
21
|
-
start,
|
|
22
|
-
syntax,
|
|
23
|
-
type: !!type
|
|
24
|
-
};
|
|
25
|
-
}));
|
|
26
|
-
var find_static_imports_default = findStaticImports;
|
|
27
|
-
export {
|
|
28
|
-
find_static_imports_default as default
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=find-static-imports.mjs.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/find-static-imports.ts"],
|
|
4
|
-
"sourceRoot": "file://",
|
|
5
|
-
"sourcesContent": ["/**\n * @file findStaticImports\n * @module mlly/utils/findStaticImports\n */\n\nimport {\n SpecifierSyntaxKind,\n StatementKind,\n StatementSyntaxKind\n} from '#src/enums'\nimport type { StaticImport } from '#src/interfaces'\nimport getSpecifierKind from '#src/internal/get-specifier-kind'\nimport validateString from '#src/internal/validate-string'\nimport type { NodeError } from '@flex-development/errnode'\nimport { STATIC_IMPORT_REGEX } from '@flex-development/import-regex'\nimport { split, trim } from '@flex-development/tutils'\n\n/**\n * Finds all static import statements in `code`. Ignores matches in comments.\n *\n * @see {@linkcode StaticImport}\n * @see https://regex101.com/r/wlYQUN\n * @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/import\n *\n * @param {string} [code=''] - Code to evaluate\n * @return {StaticImport[]} Static import statement objects\n * @throws {NodeError<TypeError>} If `code` is not a string\n */\nconst findStaticImports = (code: string = ''): StaticImport[] => {\n validateString(code, 'code')\n\n return [...code.matchAll(STATIC_IMPORT_REGEX)].map(match => {\n const { 0: code = '', index: start = 0, groups = {} } = match\n const { assertion = '', imports = '', specifier = '', type = '' } = groups\n\n /**\n * Statement syntax kind.\n *\n * @const {StaticImport['syntax']} syntax\n */\n const syntax: StaticImport['syntax'] =\n imports === ''\n ? StatementSyntaxKind.SIDE_EFFECT\n : imports.startsWith('* as')\n ? StatementSyntaxKind.NAMESPACE\n : imports.startsWith('{')\n ? StatementSyntaxKind.NAMED\n : /^\\w+$/.test(imports)\n ? StatementSyntaxKind.DEFAULT\n : /^\\w+,\\s*{/.test(imports)\n ? StatementSyntaxKind.DEFAULT_WITH_NAMED\n : StatementSyntaxKind.DEFAULT_WITH_NAMESPACE\n\n return {\n assertion,\n code,\n end: start + code.length,\n imports:\n syntax === StatementSyntaxKind.SIDE_EFFECT\n ? []\n : syntax === StatementSyntaxKind.NAMED\n ? split(imports.replace(/^{|}$/g, ''), ',')\n .map(trim)\n .filter(i => !!i.length)\n : syntax === StatementSyntaxKind.DEFAULT_WITH_NAMED\n ? split(imports, ',')\n .map(i => trim(i).replace(/^{|}$/g, ''))\n .map(trim)\n .filter(i => !!i.length)\n : syntax === StatementSyntaxKind.DEFAULT_WITH_NAMESPACE\n ? split(imports, ',')\n .map(trim)\n .filter(i => !!i.length)\n : [imports],\n kind: StatementKind.IMPORT,\n specifier,\n specifier_kind: getSpecifierKind(specifier),\n specifier_syntax: SpecifierSyntaxKind.STATIC,\n start,\n syntax,\n type: !!type\n }\n })\n}\n\nexport default findStaticImports\n"],
|
|
6
|
-
"mappings": "AAKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,OAAO,sBAAsB;AAC7B,OAAO,oBAAoB;AAE3B,SAAS,2BAA2B;AACpC,SAAS,OAAO,YAAY;AAa5B,MAAM,oBAAoB,CAAC,OAAe,QACxC,eAAe,MAAM,MAAM,GAEpB,CAAC,GAAG,KAAK,SAAS,mBAAmB,CAAC,EAAE,IAAI,WAAS;AAC1D,QAAM,EAAE,GAAGA,QAAO,IAAI,OAAO,QAAQ,GAAG,SAAS,CAAC,EAAE,IAAI,OAClD,EAAE,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,OAAO,GAAG,IAAI,QAO9D,SACJ,YAAY,KACR,oBAAoB,cACpB,QAAQ,WAAW,MAAM,IACzB,oBAAoB,YACpB,QAAQ,WAAW,GAAG,IACtB,oBAAoB,QACpB,QAAQ,KAAK,OAAO,IACpB,oBAAoB,UACpB,YAAY,KAAK,OAAO,IACxB,oBAAoB,qBACpB,oBAAoB;AAE1B,SAAO;AAAA,IACL;AAAA,IACA,MAAAA;AAAA,IACA,KAAK,QAAQA,MAAK;AAAA,IAClB,SACE,WAAW,oBAAoB,cAC3B,CAAC,IACD,WAAW,oBAAoB,QAC/B,MAAM,QAAQ,QAAQ,UAAU,EAAE,GAAG,GAAG,EACrC,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM,IACzB,WAAW,oBAAoB,qBAC/B,MAAM,SAAS,GAAG,EACf,IAAI,OAAK,KAAK,CAAC,EAAE,QAAQ,UAAU,EAAE,CAAC,EACtC,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM,IACzB,WAAW,oBAAoB,yBAC/B,MAAM,SAAS,GAAG,EACf,IAAI,IAAI,EACR,OAAO,OAAK,CAAC,CAAC,EAAE,MAAM,IACzB,CAAC,OAAO;AAAA,IACd,MAAM,cAAc;AAAA,IACpB;AAAA,IACA,gBAAgB,iBAAiB,SAAS;AAAA,IAC1C,kBAAkB,oBAAoB;AAAA,IACtC;AAAA,IACA;AAAA,IACA,MAAM,CAAC,CAAC;AAAA,EACV;AACF,CAAC;AAGH,IAAO,8BAAQ;",
|
|
7
|
-
"names": ["code"]
|
|
8
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file findSubpath
|
|
3
|
-
* @module mlly/utils/findSubpath
|
|
4
|
-
*/
|
|
5
|
-
import type { FindSubpathOptions } from '../interfaces/index.mjs';
|
|
6
|
-
import type { Exports, Imports } from '@flex-development/pkg-types';
|
|
7
|
-
import { type Nilable, type Nullable } from '@flex-development/tutils';
|
|
8
|
-
/**
|
|
9
|
-
* Finds the subpath defined in `context`, a `package.json` [`exports`][1] or
|
|
10
|
-
* [`imports`][2] field, that maps to the given package `target`.
|
|
11
|
-
*
|
|
12
|
-
* Supports extensionless targets and targets without explicit `'/index'` usage.
|
|
13
|
-
* Returns `null` if a subpath is not found.
|
|
14
|
-
*
|
|
15
|
-
* [1]: https://nodejs.org/api/packages.html#exports
|
|
16
|
-
* [2]: https://nodejs.org/api/packages.html#imports
|
|
17
|
-
*
|
|
18
|
-
* @see {@linkcode Exports}
|
|
19
|
-
* @see {@linkcode FindSubpathOptions}
|
|
20
|
-
* @see {@linkcode Imports}
|
|
21
|
-
* @see https://nodejs.org/api/packages.html#subpath-exports
|
|
22
|
-
* @see https://nodejs.org/api/packages.html#subpath-imports
|
|
23
|
-
*
|
|
24
|
-
* @param {string} target - Package target to find in `context`
|
|
25
|
-
* @param {Nilable<Exports | Imports>} context - Package context
|
|
26
|
-
* @param {FindSubpathOptions} options - Search options
|
|
27
|
-
* @return {Nullable<string>} Subpath defined in `context` or `null`
|
|
28
|
-
* @throws {NodeError<Error | TypeError>}
|
|
29
|
-
*/
|
|
30
|
-
declare const findSubpath: (target: string, context: Nilable<Exports | Imports>, options: FindSubpathOptions) => Nullable<string>;
|
|
31
|
-
export default findSubpath;
|