@flex-development/mlly 1.0.0-alpha.11 → 1.0.0-alpha.13

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.
Files changed (95) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/README.md +1 -1
  3. package/dist/interfaces/options-get-format.d.mts +3 -13
  4. package/dist/interfaces/options-get-source.d.mts +3 -13
  5. package/dist/interfaces/options-parse-subpath.d.mts +18 -0
  6. package/dist/interfaces/parsed-subpath.d.mts +5 -1
  7. package/dist/internal/regex-invalid-segment.d.mts +14 -0
  8. package/dist/internal/regex-invalid-segment.mjs +11 -0
  9. package/dist/internal/regex-invalid-segment.mjs.map +6 -0
  10. package/dist/internal/resolver.mjs +6 -9
  11. package/dist/internal/resolver.mjs.map +1 -1
  12. package/dist/internal/validate-array-set.d.mts +22 -0
  13. package/dist/internal/validate-array-set.mjs +11 -0
  14. package/dist/internal/validate-array-set.mjs.map +6 -0
  15. package/dist/internal/validate-map.d.mts +23 -0
  16. package/dist/internal/validate-map.mjs +11 -0
  17. package/dist/internal/validate-map.mjs.map +6 -0
  18. package/dist/internal/validate-set.d.mts +4 -5
  19. package/dist/internal/validate-set.mjs.map +1 -1
  20. package/dist/utils/fill-modules.d.mts +1 -0
  21. package/dist/utils/fill-modules.mjs +7 -1
  22. package/dist/utils/fill-modules.mjs.map +1 -1
  23. package/dist/utils/find-requires.mjs +1 -1
  24. package/dist/utils/find-subpath.d.mts +2 -1
  25. package/dist/utils/find-subpath.mjs +2 -0
  26. package/dist/utils/find-subpath.mjs.map +1 -1
  27. package/dist/utils/get-format.d.mts +8 -1
  28. package/dist/utils/get-format.mjs +22 -11
  29. package/dist/utils/get-format.mjs.map +1 -1
  30. package/dist/utils/get-source.d.mts +7 -0
  31. package/dist/utils/get-source.mjs +13 -6
  32. package/dist/utils/get-source.mjs.map +1 -1
  33. package/dist/utils/is-absolute-specifier.d.mts +1 -0
  34. package/dist/utils/is-absolute-specifier.mjs +2 -0
  35. package/dist/utils/is-absolute-specifier.mjs.map +1 -1
  36. package/dist/utils/is-bare-specifier.d.mts +1 -0
  37. package/dist/utils/is-bare-specifier.mjs +2 -0
  38. package/dist/utils/is-bare-specifier.mjs.map +1 -1
  39. package/dist/utils/is-exports-sugar.mjs +1 -1
  40. package/dist/utils/is-exports-sugar.mjs.map +1 -1
  41. package/dist/utils/is-relative-specifier.mjs.map +1 -1
  42. package/dist/utils/parse-module-id.d.mts +1 -3
  43. package/dist/utils/parse-module-id.mjs +3 -0
  44. package/dist/utils/parse-module-id.mjs.map +1 -1
  45. package/dist/utils/parse-subpath.d.mts +1 -2
  46. package/dist/utils/parse-subpath.mjs +115 -5
  47. package/dist/utils/parse-subpath.mjs.map +1 -1
  48. package/dist/utils/read-package-json.mjs +7 -5
  49. package/dist/utils/read-package-json.mjs.map +1 -1
  50. package/dist/utils/resolve-alias.mjs +3 -2
  51. package/dist/utils/resolve-alias.mjs.map +1 -1
  52. package/dist/utils/resolve-module.mjs +16 -1
  53. package/dist/utils/resolve-module.mjs.map +1 -1
  54. package/dist/utils/to-bare-specifier.mjs +8 -10
  55. package/dist/utils/to-bare-specifier.mjs.map +1 -1
  56. package/dist/utils/to-relative-specifier.d.mts +2 -0
  57. package/dist/utils/to-relative-specifier.mjs +3 -0
  58. package/dist/utils/to-relative-specifier.mjs.map +1 -1
  59. package/dist/utils/to-url.d.mts +2 -3
  60. package/dist/utils/to-url.mjs.map +1 -1
  61. package/dist/utils/validate-assertions.mjs +2 -0
  62. package/dist/utils/validate-assertions.mjs.map +1 -1
  63. package/dist/utils/validate-exports.d.mts +2 -2
  64. package/dist/utils/validate-exports.mjs +2 -2
  65. package/dist/utils/validate-exports.mjs.map +1 -1
  66. package/package.json +34 -41
  67. package/src/interfaces/options-get-format.ts +2 -14
  68. package/src/interfaces/options-get-source.ts +2 -14
  69. package/src/interfaces/options-parse-subpath.ts +20 -0
  70. package/src/interfaces/parsed-subpath.ts +10 -1
  71. package/src/internal/regex-invalid-segment.ts +23 -0
  72. package/src/internal/resolver.ts +7 -22
  73. package/src/internal/validate-array-set.ts +32 -0
  74. package/src/internal/validate-map.ts +33 -0
  75. package/src/internal/validate-set.ts +4 -5
  76. package/src/utils/fill-modules.ts +10 -1
  77. package/src/utils/find-requires.ts +1 -1
  78. package/src/utils/find-subpath.ts +11 -2
  79. package/src/utils/get-format.ts +33 -12
  80. package/src/utils/get-source.ts +21 -6
  81. package/src/utils/is-absolute-specifier.ts +5 -0
  82. package/src/utils/is-bare-specifier.ts +5 -0
  83. package/src/utils/is-exports-sugar.ts +1 -1
  84. package/src/utils/is-relative-specifier.ts +1 -0
  85. package/src/utils/parse-module-id.ts +6 -3
  86. package/src/utils/parse-subpath.ts +154 -9
  87. package/src/utils/read-package-json.ts +8 -3
  88. package/src/utils/resolve-alias.ts +3 -2
  89. package/src/utils/resolve-module.ts +40 -11
  90. package/src/utils/to-bare-specifier.ts +10 -12
  91. package/src/utils/to-relative-specifier.ts +7 -0
  92. package/src/utils/to-url.ts +2 -3
  93. package/src/utils/validate-assertions.ts +2 -0
  94. package/src/utils/validate-exports.ts +5 -5
  95. package/changelog.config.ts +0 -404
package/CHANGELOG.md CHANGED
@@ -1,3 +1,104 @@
1
+ ## [1.0.0-alpha.13](https://github.com/flex-development/mlly/compare/1.0.0-alpha.12...1.0.0-alpha.13) (2023-02-22)
2
+
3
+
4
+ ### :package: Build
5
+
6
+ * **deps-dev:** Bump typescript from 5.0.0-dev.20230219 to 5.0.0-dev.20230222 ([#158](https://github.com/flex-development/mlly/issues/158)) ([1ca8a5f](https://github.com/flex-development/mlly/commit/1ca8a5f6998541fe470a9b7b0372c0d39381948d))
7
+
8
+
9
+ ### :bug: Fixes
10
+
11
+ * **ts:** ensure typechecks pass without peer deps installed ([81b55ca](https://github.com/flex-development/mlly/commit/81b55caa8533ad174ec009535e5a030be21e6cc1))
12
+
13
+ ## [1.0.0-alpha.12](https://github.com/flex-development/mlly/compare/1.0.0-alpha.11...1.0.0-alpha.12) (2023-02-22)
14
+
15
+
16
+ ### ⚠ BREAKING CHANGES
17
+
18
+ * **utils:** [`getSource`] enforce absolute module id
19
+ * **utils:** [`getFormat`] enforce absolute module id
20
+
21
+ ### :package: Build
22
+
23
+ * **deps-dev:** Bump @commitlint/cli from 17.4.2 to 17.4.4 ([#147](https://github.com/flex-development/mlly/issues/147)) ([d4024c8](https://github.com/flex-development/mlly/commit/d4024c81fc54aa8fba66b1b205cf25e6aefdaf2b))
24
+ * **deps-dev:** Bump @commitlint/config-conventional from 17.4.2 to 17.4.4 ([#146](https://github.com/flex-development/mlly/issues/146)) ([967f90b](https://github.com/flex-development/mlly/commit/967f90bcb7f769e1b44425be050664d9e4843882))
25
+ * **deps-dev:** bump @faker-js/faker from 7.6.0 to 8.0.0-alpha.0 ([3201065](https://github.com/flex-development/mlly/commit/32010657fbdae9d9eb45d5766589e251871bbc33))
26
+ * **deps-dev:** bump @flex-development/mkbuild from 1.0.0-alpha.9 to 1.0.0-alpha.13 ([925f2e5](https://github.com/flex-development/mlly/commit/925f2e50901d1ce92b29273bafd387ba1e5e3ed0))
27
+ * **deps-dev:** Bump @graphql-eslint/eslint-plugin from 3.15.0 to 3.16.0 ([#144](https://github.com/flex-development/mlly/issues/144)) ([0356608](https://github.com/flex-development/mlly/commit/03566088d500e2252a16f5aa77f3c08dcd415027))
28
+ * **deps-dev:** Bump @typescript-eslint/eslint-plugin from 5.52.0 to 5.53.0 ([#155](https://github.com/flex-development/mlly/issues/155)) ([96e941c](https://github.com/flex-development/mlly/commit/96e941ca96a8cfd6b6b97b66a39bf2502780778c))
29
+ * **deps-dev:** Bump @typescript-eslint/parser from 5.52.0 to 5.53.0 ([#149](https://github.com/flex-development/mlly/issues/149)) ([55f514d](https://github.com/flex-development/mlly/commit/55f514d8a3716fe5a8d68f19e09d9148194f6e18))
30
+ * **deps-dev:** bump @vitest/coverage-c8 from 0.28.4 to 0.28.5 ([93d7e1c](https://github.com/flex-development/mlly/commit/93d7e1c141d492d0ea4ad40fa152ce7e0c38763e))
31
+ * **deps-dev:** bump @vitest/ui from 0.28.4 to 0.28.5 ([2e52ac4](https://github.com/flex-development/mlly/commit/2e52ac405fba671168aad1143dfbc36f12b1e092))
32
+ * **deps-dev:** Bump esbuild from 0.17.7 to 0.17.8 ([#135](https://github.com/flex-development/mlly/issues/135)) ([44d2d16](https://github.com/flex-development/mlly/commit/44d2d1683bfa60bb8ea3ba8e747eec9cc468e668))
33
+ * **deps-dev:** Bump esbuild from 0.17.9 to 0.17.10 ([#151](https://github.com/flex-development/mlly/issues/151)) ([ef0e31e](https://github.com/flex-development/mlly/commit/ef0e31e7b305da07649aafc3fcb62287d0a61a1a))
34
+ * **deps-dev:** Bump eslint from 8.33.0 to 8.34.0 ([#129](https://github.com/flex-development/mlly/issues/129)) ([0c84f73](https://github.com/flex-development/mlly/commit/0c84f731dd1766480d555722d85144857cdaf057))
35
+ * **deps-dev:** Bump eslint-plugin-yml from 1.4.0 to 1.5.0 ([#127](https://github.com/flex-development/mlly/issues/127)) ([58900c4](https://github.com/flex-development/mlly/commit/58900c40bbe2dba9ace8c74b48bf0f1ac1da22ae))
36
+ * **deps-dev:** Bump lint-staged from 13.1.1 to 13.1.2 ([#131](https://github.com/flex-development/mlly/issues/131)) ([97dfd0a](https://github.com/flex-development/mlly/commit/97dfd0a138084b3ea27687ba4a2f04a781a10dc9))
37
+ * **deps-dev:** bump typescript from 5.0.0-dev.20221215 to 5.0.0-dev.20230217 ([75b5d22](https://github.com/flex-development/mlly/commit/75b5d226118c4a280f3682987ac237b0843587d4))
38
+ * **deps-dev:** Bump vercel from 28.15.3 to 28.16.2 ([#142](https://github.com/flex-development/mlly/issues/142)) ([e841f53](https://github.com/flex-development/mlly/commit/e841f532d46ad7cef4f4b5becf34b477699d81a0))
39
+ * **deps-dev:** Bump vercel from 28.16.2 to 28.16.4 ([#159](https://github.com/flex-development/mlly/issues/159)) ([a8b80d9](https://github.com/flex-development/mlly/commit/a8b80d9b3802d53b71bd07e234ffe3008c522213))
40
+ * **deps-dev:** Bump vite from 4.1.2 to 4.1.4 ([#150](https://github.com/flex-development/mlly/issues/150)) ([283debd](https://github.com/flex-development/mlly/commit/283debd0c45e30bc3d80a672b550e0460c8f040d))
41
+ * **deps-dev:** bump vitest from 0.28.4 to 0.28.5 ([1aeb03c](https://github.com/flex-development/mlly/commit/1aeb03c2b28e874e2677c67f77d21769f19b1048))
42
+ * **deps-dev:** Bump vue-tsc from 1.1.4 to 1.1.7 ([#157](https://github.com/flex-development/mlly/issues/157)) ([f6e7417](https://github.com/flex-development/mlly/commit/f6e7417e02ac1cadd691279176f428c3d06c4f47))
43
+ * **deps-dev:** remove `@commitlint/types` ([8a93c2b](https://github.com/flex-development/mlly/commit/8a93c2b39e4aa402beed9ff8ccf6249d19b1ec1d))
44
+ * **deps:** bump @flex-development/errnode from 1.4.0 to 1.5.0 ([606c796](https://github.com/flex-development/mlly/commit/606c796b5b1ad4a30b6271e146c845338b74cd4f))
45
+ * **deps:** bump @flex-development/tutils from 6.0.0-alpha.9 to 6.0.0-alpha.10 ([b74a958](https://github.com/flex-development/mlly/commit/b74a95882c02b8bc1ab4ecfea3c87a321044421e))
46
+ * **yarn:** bump yarn from 4.0.0-rc.34 to 4.0.0-rc.39 ([34be9cc](https://github.com/flex-development/mlly/commit/34be9cccebc974ced5ff089442d025c43d0c1737))
47
+
48
+
49
+ ### :robot: Continuous Integration
50
+
51
+ * [[@dependabot](https://github.com/dependabot)] fix private registry updates ([f42ef3e](https://github.com/flex-development/mlly/commit/f42ef3e10bc7b2ca2d9e6301e08d3092214fa0cc))
52
+ * **deps:** Bump actions/cache from 3.2.5 to 3.2.6 ([#156](https://github.com/flex-development/mlly/issues/156)) ([6da77e9](https://github.com/flex-development/mlly/commit/6da77e9ff2150160711273d404af3bf50a3de6d5))
53
+ * **workflows:** [`ci`] use `env.GITHUB_SHA` for codecov override commit ([f1bd699](https://github.com/flex-development/mlly/commit/f1bd69969a365e41f0c199b3d57439031d683b6b))
54
+ * **workflows:** [`ci`] use `github.event.pull_request.head.sha` for codecov ([2fda03f](https://github.com/flex-development/mlly/commit/2fda03f9064f0203e93723c53e9511a156d69e7c))
55
+ * **workflows:** [`dependabot-auto`] remove `enable-auto-merge` job conditional ([437f053](https://github.com/flex-development/mlly/commit/437f0535ad8d8701ce13a0001877d157639fa57e))
56
+
57
+
58
+ ### :pencil: Documentation
59
+
60
+ * organize badges ([58b6377](https://github.com/flex-development/mlly/commit/58b6377612b9c9454c98478de8912df67fc04d86))
61
+
62
+
63
+ ### :sparkles: Features
64
+
65
+ * `ParsedSubpath#target` ([a956cb1](https://github.com/flex-development/mlly/commit/a956cb10b27f63f683a64b5028bef87170862e44))
66
+ * **internal:** `invalidSegmentRegex` ([b8dd2d0](https://github.com/flex-development/mlly/commit/b8dd2d03776959e374dc242b3d7189e20742f6fa))
67
+ * **internal:** `validateArraySet` ([045c4c6](https://github.com/flex-development/mlly/commit/045c4c614ebf8eb213f6801f24f6759de527c796))
68
+ * **internal:** `validateMap` ([82c63b4](https://github.com/flex-development/mlly/commit/82c63b467615c0e799c4bb9d4bd1d35c5ac2ca1e))
69
+ * **utils:** [`findSubpath`] support `/index`-less targets ([8f68ae8](https://github.com/flex-development/mlly/commit/8f68ae8b300bbe507eb6a401d21d9a30cf010115))
70
+
71
+
72
+ ### :bug: Fixes
73
+
74
+ * **internal:** [`Resolver#resolvePackageTarget`] `package.json` url for numeric property key error ([cde6441](https://github.com/flex-development/mlly/commit/cde64411035c40e927e778158e27f673257821e8))
75
+ * **ts:** ensure typechecks pass without peer deps installed ([779cddf](https://github.com/flex-development/mlly/commit/779cddf91f6d4e0e04ecebab0e0c6942aeaa9286))
76
+ * **utils:** [`findRequires`] array item extraction ([e719d34](https://github.com/flex-development/mlly/commit/e719d34b36cf7c68ed240eee2e0a6f55194e349a))
77
+ * **utils:** [`findRequires`] object value extraction ([cffba6b](https://github.com/flex-development/mlly/commit/cffba6b113cb85430d54a131a742c03bedb62d5b))
78
+ * **utils:** [`findRequires`] parameter extraction ([9af669b](https://github.com/flex-development/mlly/commit/9af669b02a1153381d3382d74ff79fbc8e41525d))
79
+ * **utils:** [`resolveModule`] `[@types](https://github.com/types)` resolution ([beeadeb](https://github.com/flex-development/mlly/commit/beeadebbc959bc16ef7eded8a14a450616297640))
80
+
81
+
82
+ ### :house_with_garden: Housekeeping
83
+
84
+ * move changelog config to `config` directory ([395e355](https://github.com/flex-development/mlly/commit/395e355d17c7b977020612443e93dd49b44c4b1f))
85
+ * sync updated config files ([8d8ccef](https://github.com/flex-development/mlly/commit/8d8ccefd878b68773bdbaaece9cd738e131208b5))
86
+ * update config files ([f85bf43](https://github.com/flex-development/mlly/commit/f85bf43db9eb8c26d36c77e8804d8f1c8d023736))
87
+ * **github:** merge `pre-push` workflow into `commit-msg` workflow ([e12e977](https://github.com/flex-development/mlly/commit/e12e97726152df1249b6cf3637949d573105c166))
88
+
89
+
90
+ ### :zap: Refactors
91
+
92
+ * **utils:** schema validation ([a7c2682](https://github.com/flex-development/mlly/commit/a7c26827b747027d2b82be0361a42e46c17277c1))
93
+ * **utils:** [`getFormat`] enforce absolute module id ([41e0901](https://github.com/flex-development/mlly/commit/41e09016cb3cfdff9a9afa900802969a6e52fb3a))
94
+ * **utils:** [`getSource`] enforce absolute module id ([b9180cc](https://github.com/flex-development/mlly/commit/b9180cc0ac378d0eedc1724eb7115e7bab63ed08))
95
+
96
+
97
+ ### :white_check_mark: Testing
98
+
99
+ * stablize package `exports` / `imports` tests ([187384b](https://github.com/flex-development/mlly/commit/187384b197fd91a723c9feccc9baa3c206c28008))
100
+ * **utils:** [`toBareSpecifier`] stabilize tests ([3621201](https://github.com/flex-development/mlly/commit/3621201258c3f10c407546741c347afb427d523d))
101
+
1
102
  ## [1.0.0-alpha.11](https://github.com/flex-development/mlly/compare/1.0.0-alpha.10...1.0.0-alpha.11) (2023-02-11)
2
103
 
3
104
 
package/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/@flex-development/mlly.svg)](https://npmjs.com/package/@flex-development/mlly)
4
4
  [![codecov](https://codecov.io/gh/flex-development/mlly/branch/main/graph/badge.svg?token=36NUNRH6FW)](https://codecov.io/gh/flex-development/mlly)
5
- [![license](https://img.shields.io/github/license/flex-development/mlly.svg)](LICENSE.md)
6
5
  [![module type: esm](https://img.shields.io/badge/module%20type-esm-brightgreen)](https://github.com/voxpelli/badges-cjs-esm)
6
+ [![license](https://img.shields.io/github/license/flex-development/mlly.svg)](LICENSE.md)
7
7
  [![conventional commits](https://img.shields.io/badge/-conventional%20commits-fe5196?logo=conventional-commits&logoColor=ffffff)](https://conventionalcommits.org/)
8
8
  [![typescript](https://img.shields.io/badge/-typescript-3178c6?logo=typescript&logoColor=ffffff)](https://typescriptlang.org/)
9
9
  [![vitest](https://img.shields.io/badge/-vitest-6e9f18?style=flat&logo=vitest&logoColor=ffffff)](https://vitest.dev/)
@@ -3,27 +3,16 @@
3
3
  * @module mlly/interfaces/GetFormatOptions
4
4
  */
5
5
  import type { Format } from '../enums/index.mjs';
6
- import type { ModuleId } from '../types/index.mjs';
7
6
  import type { Ext } from '@flex-development/pathe';
8
7
  import type { EmptyString } from '@flex-development/tutils';
9
- import type { RequestInit } from 'node-fetch';
10
8
  /**
11
9
  * Module format retrieval options.
12
10
  *
13
11
  * @see {@linkcode Ext}
14
12
  * @see {@linkcode Format}
15
- * @see {@linkcode ModuleId}
16
13
  * @see {@linkcode RequestInit}
17
14
  */
18
15
  interface GetFormatOptions {
19
- /**
20
- * Base URL to resolve module id against if module id is not absolute.
21
- *
22
- * @see {@linkcode ModuleId}
23
- *
24
- * @default undefined
25
- */
26
- base?: ModuleId | undefined;
27
16
  /**
28
17
  * Enable support for JSON modules.
29
18
  *
@@ -76,8 +65,9 @@ interface GetFormatOptions {
76
65
  *
77
66
  * @see {@linkcode RequestInit}
78
67
  *
79
- * @default undefined
68
+ * @default {}
80
69
  */
81
- req?: RequestInit | undefined;
70
+ // @ts-ignore peer dependency
71
+ req?: import('node-fetch').RequestInit | undefined;
82
72
  }
83
73
  export type { GetFormatOptions as default };
@@ -3,24 +3,13 @@
3
3
  * @module mlly/interfaces/GetSourceOptions
4
4
  */
5
5
  import type { Format } from '../enums/index.mjs';
6
- import type { ModuleId } from '../types/index.mjs';
7
- import type { RequestInit } from 'node-fetch';
8
6
  /**
9
7
  * Source code retrieval options.
10
8
  *
11
9
  * @see {@linkcode Format}
12
- * @see {@linkcode ModuleId}
13
10
  * @see {@linkcode RequestInit}
14
11
  */
15
12
  interface GetSourceOptions {
16
- /**
17
- * Base URL to resolve module id against if module id is not absolute.
18
- *
19
- * @see {@linkcode ModuleId}
20
- *
21
- * @default undefined
22
- */
23
- base?: ModuleId | undefined;
24
13
  /**
25
14
  * Enable support for network based modules.
26
15
  *
@@ -56,8 +45,9 @@ interface GetSourceOptions {
56
45
  *
57
46
  * @see {@linkcode RequestInit}
58
47
  *
59
- * @default undefined
48
+ * @default {}
60
49
  */
61
- req?: RequestInit | undefined;
50
+ // @ts-ignore peer dependency
51
+ req?: import('node-fetch').RequestInit | undefined;
62
52
  }
63
53
  export type { GetSourceOptions as default };
@@ -9,6 +9,24 @@ import type { ModuleId } from '../types/index.mjs';
9
9
  * @see {@linkcode ModuleId}
10
10
  */
11
11
  interface ParseSubpathOptions {
12
+ /**
13
+ * Export condition to apply.
14
+ *
15
+ * @see https://nodejs.org/api/packages.html#conditional-exports
16
+ *
17
+ * @default 'default'
18
+ */
19
+ condition?: string | undefined;
20
+ /**
21
+ * Export conditions.
22
+ *
23
+ * **Note**: Should be sorted by priority.
24
+ *
25
+ * @see https://nodejs.org/api/packages.html#conditional-exports
26
+ *
27
+ * @default CONDITIONS
28
+ */
29
+ conditions?: Set<string> | string[] | undefined;
12
30
  /**
13
31
  * URL of directory containing relevant `package.json` file.
14
32
  */
@@ -2,7 +2,7 @@
2
2
  * @file Interfaces - ParsedSubpath
3
3
  * @module mlly/interfaces/ParsedSubpath
4
4
  */
5
- import type { EmptyString, LiteralUnion } from '@flex-development/tutils';
5
+ import type { EmptyString, LiteralUnion, Nullable } from '@flex-development/tutils';
6
6
  /**
7
7
  * Object representing a package subpath.
8
8
  *
@@ -36,5 +36,9 @@ interface ParsedSubpath {
36
36
  * Module specifier passed by user.
37
37
  */
38
38
  specifier: string;
39
+ /**
40
+ * Package target as documented in `package.json` file.
41
+ */
42
+ target: Nullable<string>;
39
43
  }
40
44
  export type { ParsedSubpath as default };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @file Internal - invalidSegmentRegex
3
+ * @module mlly/internal/invalidSegmentRegex
4
+ */
5
+ /**
6
+ * Returns a regular expression matching invalid path segments.
7
+ *
8
+ * @see https://github.com/nodejs/node/blob/v19.6.1/lib/internal/modules/esm/resolve.js#L299-L300
9
+ *
10
+ * @param {'deprecated'?} type - Pattern type
11
+ * @return {RegExp} Regular expression matching invalid path segments
12
+ */
13
+ declare const invalidSegmentRegex: (type?: 'deprecated') => RegExp;
14
+ export default invalidSegmentRegex;
@@ -0,0 +1,11 @@
1
+ const invalidSegmentRegex = (type) => {
2
+ return new RegExp(
3
+ `(^|\\\\|\\/)((\\.|%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" ? "" : "?"}(\\\\|\\/|$)`,
4
+ "i"
5
+ );
6
+ };
7
+ var regex_invalid_segment_default = invalidSegmentRegex;
8
+ export {
9
+ regex_invalid_segment_default as default
10
+ };
11
+ //# sourceMappingURL=regex-invalid-segment.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internal/regex-invalid-segment.ts"],
4
+ "mappings": "AAaA,MAAM,sBAAsB,CAAC,SAAgC;AAC3D,SAAO,IAAI;AAAA,IACT,qKACE,SAAS,eAAe,KAAK;AAAA,IAE/B;AAAA,EACF;AACF;AAEA,IAAO,gCAAQ;",
5
+ "names": []
6
+ }
@@ -27,6 +27,7 @@ import regexp from "./escape-reg-exp.mjs";
27
27
  import isArrayIndex from "./is-array-index.mjs";
28
28
  import isDirectory from "./is-directory.mjs";
29
29
  import isFile from "./is-file.mjs";
30
+ import invalidSegmentRegex from "./regex-invalid-segment.mjs";
30
31
  import PACKAGE_NAME_REGEX from "./regex-package-name.mjs";
31
32
  import PACKAGE_PATH_REGEX from "./regex-package-path.mjs";
32
33
  class Resolver {
@@ -380,10 +381,12 @@ class Resolver {
380
381
  throw error;
381
382
  continue;
382
383
  }
383
- if (url)
384
+ if (url) {
385
+ error = void 0;
384
386
  break;
387
+ }
385
388
  }
386
- if (error && !url)
389
+ if (error)
387
390
  throw error;
388
391
  break;
389
392
  case typeof target === "object":
@@ -391,7 +394,7 @@ class Resolver {
391
394
  for (const prop of Object.getOwnPropertyNames(target)) {
392
395
  if (isArrayIndex(prop)) {
393
396
  throw new ERR_INVALID_PACKAGE_CONFIG(
394
- fileURLToPath(dir),
397
+ fileURLToPath(dir).replace(/\/$/, "") + "/package.json",
395
398
  fileURLToPath(parent),
396
399
  '"exports" cannot contain numeric property keys'
397
400
  );
@@ -428,12 +431,6 @@ class Resolver {
428
431
  url = this.resolvePackage(target, parent, condition, conditions);
429
432
  break;
430
433
  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
434
  if (invalidSegmentRegex().test(target.slice(2))) {
438
435
  if (invalidSegmentRegex("deprecated").test(target.slice(2))) {
439
436
  throw new ERR_INVALID_PACKAGE_TARGET(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/internal/resolver.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAWA,OAAO,gBAAgB;AACvB,OAAO,oBAAoB;AAC3B,OAAO,yBAAyB;AAChC,OAAO,wBAAwB;AAC/B,OAAO,mBAAmB;AAC1B,OAAO,kBAAkB;AACzB,OAAO,uBAAuB;AAC9B,OAAO,qBAAqB;AAC5B,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,iBAAiB;AAC1B,OAAO,WAAW;AAOlB,SAAS,aAA4B;AACrC,OAAO,QAAQ;AACf,SAAS,KAAK,eAAe,qBAAqB;AAClD,OAAO,YAAY;AACnB,OAAO,kBAAkB;AACzB,OAAO,iBAAiB;AACxB,OAAO,YAAY;AACnB,OAAO,yBAAyB;AAChC,OAAO,wBAAwB;AAC/B,OAAO,wBAAwB;AAS/B,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBN,cACL,WACA,QACA,YAAoB,WACpB,aAA0B,YAC1B,mBAA4B,OACvB;AAEL,aAAS,MAAM,MAAM;AAOrB,UAAM,SAAkB,YAAY,KAAK,OAAO,QAAQ;AAOxD,QAAI,QAAmB,IAAI;AAAA,MACzB;AAAA,MACA,SAAS,OAAO,OAAO,cAAc,MAAM;AAAA,MAC3C,mBAAmB,KAAK,SAAS,IAAI,YAAY;AAAA,IACnD;AAOA,QAAI,MAAqB;AAGzB,QAAI;AACF,cAAQ,MAAM;AAAA,QACZ,KAAK,oBAAoB,SAAS;AAAA,QAClC,KAAK,MAAM,WAAW,SAAS;AAC7B,gBAAM,IAAI,IAAI,WAAW,MAAM;AAC/B;AAAA,QACF,MAAK,CAAC,UAAU,UAAU,WAAW,GAAG;AACtC,gBAAM,KAAK;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AACA;AAAA,QACF;AACE,cAAI;AACF,kBAAM,IAAI,IAAI,SAAS;AAAA,UACzB,QAAE;AACA,gBAAI,CAAC,QAAQ;AACX,oBAAM,KAAK;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAEA;AAAA,MACJ;AAGA,UAAI,OAAO,IAAI,aAAa,SAAS;AAMnC,cAAM,OAAe,cAAc,GAAG;AAGtC,YAAI,CAAC,OAAO,IAAI,GAAG;AACjB,gBAAM,YAAY,IAAI,IAClB,IAAI,2BAA2B,MAAM,cAAc,MAAM,CAAC,IAC1D,IAAI,qBAAqB,MAAM,cAAc,MAAM,GAAG,QAAQ;AAAA,QACpE;AAGA,YAAI,CAAC,kBAAkB;AAErB,gBAAM,EAAE,MAAM,OAAO,IAAI;AAGzB,gBAAM,cAAc,GAAG,aAAa,IAAI,CAAC;AAGzC,cAAI,OAAO;AACX,cAAI,SAAS;AAAA,QACf;AAAA,MACF;AAAA,IACF,SAAS,GAAP;AACA,cAAQ;AACR,YAAM;AAAA,IACR;AAGA,QAAI,CAAC;AAAK,YAAM;AAEhB,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBO,eACL,WACA,QACA,YAAoB,WACpB,aAA0B,YACrB;AAML,UAAM,KAAqB,cAAc,WAAW;AAAA,MAClD;AAAA,MACA,SAAS,CAAC,UAAU,SAAS;AAAA,IAC/B,CAAC;AAGD,QAAI,UAAU,GAAG,GAAG;AAAG,aAAO,IAAI,IAAI,UAAU,GAAG,GAAG,CAAC;AAOvD,UAAM,UAAe,cAAc,MAAM,MAAM,GAAG;AAOlD,QAAI,QAAgC;AAAA,MAClC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,SAAI,+BAAO,QAAQ,UAAS,GAAG,OAAO,CAAC,MAAM,MAAM,QAAQ,OAAO,GAAG;AACnE,aAAO,KAAK;AAAA,QACV,GAAG;AAAA,QACH,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAOA,QAAI,MAAqB;AAGzB,QAAI,OAAO;AACT,UAAI,EAAE,KAAK,OAAO,IAAI;AAGtB,aAAO,WAAW,KAAK;AACrB,gBAAQ;AAAA,UACN,IAAI,IAAI,gBAAgB,GAAG,OAAO,SAAS,MAAM,GAAG;AAAA,UACpD;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAGA,YAAI;AAAO;AAGX,iBAAS,MAAM,QAAQ,MAAM;AAAA,MAC/B;AAAA,IACF;AAGA,YAAQ,MAAM;AAAA,MACZ,MAAK,SAAS,CAAC,MAAM,MAAM,QAAQ,OAAO;AACxC,cAAM,KAAK;AAAA,UACT;AAAA,UACA,MAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,QACF;AACA;AAAA,MACF,MAAK,SAAS,GAAG,SAAS;AACxB,cAAM,KAAK,mBAAmB,MAAO,KAAK,MAAO,SAAS,MAAM;AAChE;AAAA,MACF,KAAK,CAAC,CAAC;AACL,cAAM,IAAI,IAAI,GAAG,MAAM,MAAO,GAAG;AACjC;AAAA,IACJ;AAGA,QAAI,CAAC;AAAK,YAAM,IAAI,qBAAqB,GAAG,KAAK,cAAc,MAAM,CAAC;AAEtE,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBO,qBACL,WACA,KACA,QACA,YAAoB,WACpB,aAA0B,YACrB;AAML,UAAM,MAAW,IAAI,IAAI,KAAK,GAAG;AAOjC,UAAM,UAAiC;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAOA,QAAI,UAA+B,mCAAS;AAO5C,UAAM,UAAyB,aAAa,WAAW,SAAS;AAAA,MAC9D;AAAA,MACA;AAAA,IACF,CAAC;AAGD,QAAI,CAAC,QAAQ,YAAY,eAAe,SAAS,KAAK,MAAM,GAAG;AAC7D,gBAAU,EAAE,KAAK,QAAQ;AAAA,IAC3B;AAOA,UAAM,MAAqB,KAAK;AAAA,MAC9B;AAAA,MACC,mCAAgD,QAAQ;AAAA,MACzD,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAGA,QAAI,CAAC,KAAK;AACR,YAAM,IAAI;AAAA,QACR,cAAc,GAAG;AAAA,QACjB,QAAQ;AAAA,QACR,cAAc,MAAM;AAAA,MACtB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBO,qBACL,WACA,QACA,YAAoB,WACpB,aAA0B,YACrB;AAQL,UAAM,KAAqB,cAAc,WAAW;AAAA,MAClD,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AAOD,UAAM,QAAgC;AAAA,MACpC;AAAA,MACA,cAAc,GAAG;AAAA,MACjB;AAAA,MACA;AAAA,IACF;AAOA,QAAI,MAAqB;AAGzB,QAAI,OAAO;AAMT,YAAM,UAA+B,MAAM,QAAQ;AAOnD,YAAM,UAAyB,aAAa,GAAG,KAAK,SAAS;AAAA,QAC3D,KAAK,MAAM;AAAA,QACX,UAAU;AAAA,QACV;AAAA,MACF,CAAC;AAED,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,mCAAU,QAAQ;AAAA,QAClB,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAGA,QAAI,CAAC,KAAK;AACR,YAAM,IAAI;AAAA,QACR;AAAA,QACA,cAAc,MAAM;AAAA;AAAA,SACC,+BAAO,OAAM,cAAc,MAAM,GAAG,IAAI;AAAA,MAC/D;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBO,mBACL,KACA,SACA,QACK;AAML,UAAM,QAAkB;AAAA,MACtB,GAAI,QAAQ,OACR;AAAA,QACE,QAAQ;AAAA,QACR,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,MACf,IACA,CAAC;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAOA,QAAI,MAAqB;AAGzB,eAAW,SAAS,OAAO;AACzB,UAAI,OAAQ,MAAM,IAAI,IAAI,OAAO,GAAG,CAAE;AAAG;AACzC,YAAM;AAAA,IACR;AAGA,QAAI,CAAC,KAAK;AACR,YAAM,IAAI;AAAA,QACR,cAAc,IAAI,IAAI,KAAK,GAAG,CAAC;AAAA,QAC/B,cAAc,MAAM;AAAA,MACtB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBO,qBACL,KACA,QACA,SACA,KACA,QACA,WAAoB,OACpB,YAAoB,WACpB,aAA0B,YACX;AAMf,QAAI,MAAqB;AAGzB,YAAQ,MAAM;AAAA,MACZ,KAAK,WAAW;AACd;AAAA,MACF,KAAK,MAAM,QAAQ,MAAM;AAMvB,YAAI;AAGJ,mBAAW,QAAQ,QAAoB;AACrC,cAAI;AACF,kBAAM,KAAK;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,UACF,SAAS,GAAP;AACA,oBAAQ;AAGR,gBAAI,MAAM,SAAS,UAAU;AAA4B,oBAAM;AAE/D;AAAA,UACF;AAGA,cAAI,KAAK;AACP,oBAAQ;AACR;AAAA,UACF;AAAA,QACF;AAGA,YAAI;AAAO,gBAAM;AAEjB;AAAA,MACF,KAAK,OAAO,WAAW;AACrB,iBAAS;AAET,mBAAW,QAAQ,OAAO,oBAAoB,MAAM,GAAG;AAErD,cAAI,aAAa,IAAI,GAAG;AACtB,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG,EAAE,QAAQ,OAAO,EAAE,IAAI;AAAA,cACxC,cAAc,MAAM;AAAA,cACpB;AAAA,YACF;AAAA,UACF;AAGA,cAAI,SAAS,aAAa,WAAW,IAAI,IAAI,GAAG;AAC9C,kBAAM,KAAK;AAAA,cACT;AAAA,cACA,OAAO,IAAI;AAAA,cACX;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAGA,gBAAI;AAAK;AAAA,UACX;AAAA,QACF;AAEA;AAAA,MACF,KAAK,OAAO,WAAW;AACrB,iBAAS;AAOT,cAAM,UAAmB,IAAI,SAAS,iBAAiB;AAEvD,gBAAQ,MAAM;AAAA,UACZ,MAAK,WAAW,CAAC,WAAW,CAAC,OAAO,SAAS,MAAM,GAAG;AACpD,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,cACA,cAAc,MAAM;AAAA,YACtB;AAAA,UACF,MAAK,YAAY,mBAAmB,KAAK,MAAM;AAC7C,kBAAM,KAAK,eAAe,QAAQ,QAAQ,WAAW,UAAU;AAC/D;AAAA,UACF,KAAK,OAAO,WAAW,MAAM,MAAM,GAAG;AAEpC,gBAAI,oBAAoB,EAAE,KAAK,OAAO,MAAM,CAAC,CAAC,GAAG;AAC/C,kBAAI,oBAAoB,YAAY,EAAE,KAAK,OAAO,MAAM,CAAC,CAAC,GAAG;AAC3D,sBAAM,IAAI;AAAA,kBACR,cAAc,GAAG;AAAA,kBACjB;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,cAAc,MAAM;AAAA,gBACtB;AAAA,cACF;AAAA,YACF;AAGA,kBAAM,IAAI;AAAA,cACR;AAAA,cACA,cAAc,cAAc,GAAG,EAAE,QAAQ,OAAO,EAAE,IAAI,MAAM,GAAG;AAAA,YACjE;AAGA,gBAAI,SAAS;AACX,kBAAI,oBAAoB,EAAE,KAAK,OAAO,GAAG;AACvC,oBAAI,oBAAoB,YAAY,EAAE,KAAK,OAAO,GAAG;AACnD,wBAAM,IAAI;AAAA,oBACR,IAAI,QAAQ,mBAAmB,OAAO;AAAA,oBACtC;AAAA,sBACE,4CAA4C;AAAA,sBAC5C,QAAQ,WAAW,YAAY;AAAA,sBAC/B,MAAM,cAAc,GAAG,EAAE,QAAQ,OAAO,EAAE;AAAA,oBAC5C,EAAE,KAAK,GAAG;AAAA,oBACV,cAAc,MAAM;AAAA,kBACtB;AAAA,gBACF;AAAA,cACF;AAGA,oBAAM,IAAI;AAAA,gBACR,IAAI,KAAK;AAAA,kBACP,IAAI,OAAO,OAAO,iBAAiB,GAAG,GAAG;AAAA,kBACzC;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAEA;AAAA,UACF;AACE,kBAAM,IAAI;AAAA,cACR,cAAc,GAAG;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,cACA,cAAc,MAAM;AAAA,YACtB;AAAA,QACJ;AAEA;AAAA,MACF;AACE,cAAM,IAAI;AAAA,UACR,cAAc,GAAG;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc,MAAM;AAAA,QACtB;AAAA,IACJ;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @file Internal - validateArraySet
3
+ * @module mlly/internal/validateArraySet
4
+ */
5
+ /**
6
+ * Checks if given `value` is an array or a {@linkcode Set}.
7
+ *
8
+ * Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is of neither type.
9
+ *
10
+ * [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
11
+ *
12
+ * @see {@linkcode ERR_INVALID_ARG_TYPE}
13
+ *
14
+ * @template T - Item type(s)
15
+ *
16
+ * @param {unknown} value - Value supplied by user
17
+ * @param {string} name - Name of invalid argument or property
18
+ * @return {value is Set<T> | T[]} `true` if `value` is array or {@linkcode Set}
19
+ * @throws {NodeError<TypeError>} If `value` is not an array or {@linkcode Set}
20
+ */
21
+ declare function validateArraySet<T = unknown>(value: unknown, name: string): value is Set<T> | T[];
22
+ export default validateArraySet;
@@ -0,0 +1,11 @@
1
+ import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
2
+ function validateArraySet(value, name) {
3
+ if (Array.isArray(value) || value instanceof Set)
4
+ return true;
5
+ throw new ERR_INVALID_ARG_TYPE(name, ["Array", "Set"], value);
6
+ }
7
+ var validate_array_set_default = validateArraySet;
8
+ export {
9
+ validate_array_set_default as default
10
+ };
11
+ //# sourceMappingURL=validate-array-set.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internal/validate-array-set.ts"],
4
+ "mappings": "AAKA,SAAS,4BAA4C;AAkBrD,SAAS,iBACP,OACA,MACuB;AACvB,MAAI,MAAM,QAAQ,KAAK,KAAK,iBAAiB;AAAK,WAAO;AACzD,QAAM,IAAI,qBAAqB,MAAM,CAAC,SAAS,KAAK,GAAG,KAAK;AAC9D;AAEA,IAAO,6BAAQ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @file Internal - validateMap
3
+ * @module mlly/internal/validateMap
4
+ */
5
+ /**
6
+ * Checks if given `value` is a {@linkcode Map}.
7
+ *
8
+ * Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a {@linkcode Map}.
9
+ *
10
+ * [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
11
+ *
12
+ * @see {@linkcode ERR_INVALID_ARG_TYPE}
13
+ *
14
+ * @template K - Map key type(s)
15
+ * @template V - 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 Map<K, V>} `true` if `value` is a {@linkcode Map}
20
+ * @throws {NodeError<TypeError>} If `value` is not a {@linkcode Map}
21
+ */
22
+ declare function validateMap<K extends string = string, V = unknown>(value: unknown, name: string): value is Map<K, V>;
23
+ export default validateMap;
@@ -0,0 +1,11 @@
1
+ import { ERR_INVALID_ARG_TYPE } from "@flex-development/errnode";
2
+ function validateMap(value, name) {
3
+ if (value instanceof Map)
4
+ return true;
5
+ throw new ERR_INVALID_ARG_TYPE(name, ["Map"], value);
6
+ }
7
+ var validate_map_default = validateMap;
8
+ export {
9
+ validate_map_default as default
10
+ };
11
+ //# sourceMappingURL=validate-map.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internal/validate-map.ts"],
4
+ "mappings": "AAKA,SAAS,4BAA4C;AAmBrD,SAAS,YACP,OACA,MACoB;AACpB,MAAI,iBAAiB;AAAK,WAAO;AACjC,QAAM,IAAI,qBAAqB,MAAM,CAAC,KAAK,GAAG,KAAK;AACrD;AAEA,IAAO,uBAAQ;",
5
+ "names": []
6
+ }
@@ -3,10 +3,9 @@
3
3
  * @module mlly/internal/validateSet
4
4
  */
5
5
  /**
6
- * Checks if given `value` is an instance of {@linkcode Set}.
6
+ * Checks if given `value` is a {@linkcode Set}.
7
7
  *
8
- * Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a {@linkcode Set}
9
- * instance.
8
+ * Throws [`ERR_INVALID_ARG_TYPE`][1] if the `value` is not a {@linkcode Set}.
10
9
  *
11
10
  * [1]: https://nodejs.org/api/errors.html#err_invalid_arg_value
12
11
  *
@@ -16,8 +15,8 @@
16
15
  *
17
16
  * @param {unknown} value - Value supplied by user
18
17
  * @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}
18
+ * @return {value is Set<T>} `true` if `value` is a {@linkcode Set}
19
+ * @throws {NodeError<TypeError>} If `value` is not a {@linkcode Set}
21
20
  */
22
21
  declare function validateSet<T = unknown>(value: unknown, name: string): value is Set<T>;
23
22
  export default validateSet;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/internal/validate-set.ts"],
4
- "mappings": "AAKA,SAAS,4BAA4C;AAmBrD,SAAS,YACP,OACA,MACiB;AACjB,MAAI,iBAAiB;AAAK,WAAO;AACjC,QAAM,IAAI,qBAAqB,MAAM,CAAC,KAAK,GAAG,KAAK;AACrD;AAEA,IAAO,uBAAQ;",
4
+ "mappings": "AAKA,SAAS,4BAA4C;AAkBrD,SAAS,YACP,OACA,MACiB;AACjB,MAAI,iBAAiB;AAAK,WAAO;AACjC,QAAM,IAAI,qBAAqB,MAAM,CAAC,KAAK,GAAG,KAAK;AACrD;AAEA,IAAO,uBAAQ;",
5
5
  "names": []
6
6
  }
@@ -18,6 +18,7 @@ import type { FillModuleOptions } from '../interfaces/index.mjs';
18
18
  * @param {string} code - Code to evaluate
19
19
  * @param {FillModuleOptions} options - Module fill options
20
20
  * @return {Promise<string>} `code` with fully specified module specifiers
21
+ * @throws {NodeError<TypeError>}
21
22
  */
22
23
  declare const fillModules: (code: string, options: FillModuleOptions) => Promise<string>;
23
24
  export default fillModules;
@@ -1,7 +1,11 @@
1
1
  import { SpecifierSyntaxKind } from "../enums/index.mjs";
2
2
  import regexp from "../internal/escape-reg-exp.mjs";
3
3
  import isFunction from "../internal/is-function.mjs";
4
- import { ERR_UNKNOWN_FILE_EXTENSION } from "@flex-development/errnode";
4
+ import validateArraySet from "../internal/validate-array-set.mjs";
5
+ import validateURLString from "../internal/validate-url-string.mjs";
6
+ import {
7
+ ERR_UNKNOWN_FILE_EXTENSION
8
+ } from "@flex-development/errnode";
5
9
  import pathe from "@flex-development/pathe";
6
10
  import CONDITIONS from "./conditions.mjs";
7
11
  import extractStatements from "./extract-statements.mjs";
@@ -12,6 +16,8 @@ import toBareSpecifier from "./to-bare-specifier.mjs";
12
16
  import toRelativeSpecifier from "./to-relative-specifier.mjs";
13
17
  const fillModules = async (code, options) => {
14
18
  const { conditions = CONDITIONS, ext, parent = import.meta.url } = options;
19
+ validateArraySet(conditions, "options.conditions");
20
+ validateURLString(parent, "options.parent");
15
21
  for (const statement of extractStatements(code)) {
16
22
  if (!statement.specifier)
17
23
  continue;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/fill-modules.ts"],
4
- "mappings": "AAKA,SAAS,2BAA2B;AAEpC,OAAO,YAAY;AACnB,OAAO,gBAAgB;AACvB,SAAS,kCAAkC;AAC3C,OAAO,WAAW;AAElB,OAAO,gBAAgB;AACvB,OAAO,uBAAuB;AAC9B,OAAO,yBAAyB;AAChC,OAAO,qBAAqB;AAC5B,OAAO,mBAAmB;AAC1B,OAAO,qBAAqB;AAC5B,OAAO,yBAAyB;AAkBhC,MAAM,cAAc,OAClB,MACA,YACoB;AACpB,QAAM,EAAE,aAAa,YAAY,KAAK,SAAS,YAAY,IAAI,IAAI;AAGnE,aAAW,aAAa,kBAAkB,IAAI,GAAG;AAE/C,QAAI,CAAC,UAAU;AAAW;AAG1B,QAAI,UAAU,qBAAqB,oBAAoB;AAAS;AAOhE,UAAM,MAAW,MAAM,cAAc,UAAU,WAAW;AAAA,MACxD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAgBH,MAAM,IAAI,WAAmBA,MAAuC;AAElE,YAAI,gBAAgB,SAAS;AAAG,iBAAO;AAGvC,YAAI,MAAM,QAAQ,SAAS,MAAM,MAAM,QAAQA,KAAI,IAAI;AAAG,iBAAO;AAOjE,cAAM,OAAe,WAAW,GAAG,IAAI,MAAM,IAAI,WAAWA,IAAG,IAAI;AAGnE,YAAI,EAAE,QAAQ,KAAK,KAAK,EAAE,UAAU,KAAK,WAAW,GAAG,IAAI,IAAI,KAAK;AAClE,gBAAM,IAAI,2BAA2B,MAAM,SAAS;AAAA,QACtD;AAEA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAGD,WAAO,KAAK;AAAA,MACV,UAAU;AAAA,MACV,UAAU,KAAK;AAAA,QACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,WAAW;AAAA;AAAA,QAE5D,UAAU,UAAU,WAAW,GAAG,IAC9B,UAAU,YACV,oBAAoB,UAAU,SAAS,IACvC,IAAI,OACJ,gBAAgB,UAAU,SAAS,IACnC,gBAAgB,KAAK,QAAQ,IAAI,IAAI,UAAU,CAAC,IAChD,oBAAoB,KAAK,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,uBAAQ;",
4
+ "mappings": "AAKA,SAAS,2BAA2B;AAEpC,OAAO,YAAY;AACnB,OAAO,gBAAgB;AACvB,OAAO,sBAAsB;AAC7B,OAAO,uBAAuB;AAC9B;AAAA,EACE;AAAA,OAEK;AACP,OAAO,WAAW;AAElB,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;AAEnE,mBAAiB,YAAY,oBAAoB;AACjD,oBAAkB,QAAQ,gBAAgB;AAG1C,aAAW,aAAa,kBAAkB,IAAI,GAAG;AAE/C,QAAI,CAAC,UAAU;AAAW;AAG1B,QAAI,UAAU,qBAAqB,oBAAoB;AAAS;AAOhE,UAAM,MAAW,MAAM,cAAc,UAAU,WAAW;AAAA,MACxD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAgBH,MAAM,IAAI,WAAmBA,MAAuC;AAElE,YAAI,gBAAgB,SAAS;AAAG,iBAAO;AAGvC,YAAI,MAAM,QAAQ,SAAS,MAAM,MAAM,QAAQA,KAAI,IAAI;AAAG,iBAAO;AAOjE,cAAM,OAAe,WAAW,GAAG,IAAI,MAAM,IAAI,WAAWA,IAAG,IAAI;AAGnE,YAAI,EAAE,QAAQ,KAAK,KAAK,EAAE,UAAU,KAAK,WAAW,GAAG,IAAI,IAAI,KAAK;AAClE,gBAAM,IAAI,2BAA2B,MAAM,SAAS;AAAA,QACtD;AAEA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAGD,WAAO,KAAK;AAAA,MACV,UAAU;AAAA,MACV,UAAU,KAAK;AAAA,QACb,IAAI,OAAO,YAAY,OAAO,UAAU,SAAS,WAAW;AAAA;AAAA,QAE5D,UAAU,UAAU,WAAW,GAAG,IAC9B,UAAU,YACV,oBAAoB,UAAU,SAAS,IACvC,IAAI,OACJ,gBAAgB,UAAU,SAAS,IACnC,gBAAgB,KAAK,QAAQ,IAAI,IAAI,UAAU,CAAC,IAChD,oBAAoB,KAAK,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,uBAAQ;",
5
5
  "names": ["url"]
6
6
  }
@@ -7,7 +7,7 @@ import getSpecifierKind from "../internal/get-specifier-kind.mjs";
7
7
  import validateString from "../internal/validate-string.mjs";
8
8
  const findRequires = (code = "") => {
9
9
  validateString(code, "code");
10
- const REQUIRE_REGEX = /(?<=^|[\s;])\b(?:(?: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]+?["']?)\)(?=;?\n?))(?<!(?:\/\/|\*).*)/gu;
10
+ 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;
11
11
  return [...code.matchAll(REQUIRE_REGEX)].map((match) => {
12
12
  const { 0: code2 = "", index: start = 0, groups = {} } = match;
13
13
  const { imports = "", specifier = "" } = groups;
@@ -9,7 +9,8 @@ import { type Nullable } from '@flex-development/tutils';
9
9
  * Finds the subpath defined in `context`, a `package.json` [`exports`][1] or
10
10
  * [`imports`][2] field, that maps to the given package `target`.
11
11
  *
12
- * Supports extensionless targets. Returns `null` if a subpath is not found.
12
+ * Supports extensionless targets and targets without explicit `'/index'` usage.
13
+ * Returns `null` if a subpath is not found.
13
14
  *
14
15
  * [1]: https://nodejs.org/api/packages.html#exports
15
16
  * [2]: https://nodejs.org/api/packages.html#imports
@@ -73,10 +73,12 @@ const findSubpath = (target, context, options) => {
73
73
  case typeof tar === "string":
74
74
  tar = tar;
75
75
  const tar_ne = pathe.changeExt(tar, "");
76
+ const tar_ni = tar_ne.replace(/\/index$/, "");
76
77
  const pattern = tar.indexOf(PATTERN_CHARACTER);
77
78
  switch (true) {
78
79
  case target2 === tar:
79
80
  case target2 === tar_ne:
81
+ case (target2 === tar_ni && tar_ne.endsWith("/index")):
80
82
  case (pattern === -1 && (target2 === tar || target2 === tar_ne)):
81
83
  subpath = pkgsubpath;
82
84
  break;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/find-subpath.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["target", "context"]
6
6
  }
@@ -5,10 +5,17 @@
5
5
  import { Format } from '../enums/index.mjs';
6
6
  import type { GetFormatOptions } from '../interfaces/index.mjs';
7
7
  import type { ModuleId } from '../types/index.mjs';
8
- import type { Nilable } from '@flex-development/tutils';
8
+ import { type Nilable } from '@flex-development/tutils';
9
9
  /**
10
10
  * Retrieves a module format for the given module `id`.
11
11
  *
12
+ * ::: tip
13
+ * The given module `id` should be absolute (i.e. a [`file:` URL][1] or absolute
14
+ * specifier).
15
+ * :::
16
+ *
17
+ * [1]: https://nodejs.org/api/esm.html#file-urls
18
+ *
12
19
  * @see {@linkcode Format}
13
20
  * @see {@linkcode GetFormatOptions}
14
21
  * @see {@linkcode ModuleId}