@module-federation/runtime-core 2.0.1 → 2.2.0

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 (209) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +19 -0
  2. package/dist/_virtual/_rolldown/runtime.js +18 -0
  3. package/dist/constant.cjs +9 -0
  4. package/dist/constant.cjs.map +1 -0
  5. package/dist/constant.js +7 -0
  6. package/dist/constant.js.map +1 -0
  7. package/dist/core.cjs +153 -0
  8. package/dist/core.cjs.map +1 -0
  9. package/dist/core.d.ts +129 -0
  10. package/dist/core.js +153 -0
  11. package/dist/core.js.map +1 -0
  12. package/dist/global.cjs +160 -0
  13. package/dist/global.cjs.map +1 -0
  14. package/dist/global.d.ts +45 -0
  15. package/dist/global.js +142 -0
  16. package/dist/global.js.map +1 -0
  17. package/dist/helpers.cjs +44 -0
  18. package/dist/helpers.cjs.map +1 -0
  19. package/dist/helpers.d.ts +30 -0
  20. package/dist/helpers.js +44 -0
  21. package/dist/helpers.js.map +1 -0
  22. package/dist/index.cjs +60 -0
  23. package/dist/index.cjs.map +1 -0
  24. package/dist/index.d.ts +29 -1
  25. package/dist/index.js +20 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/module/index.cjs +129 -0
  28. package/dist/module/index.cjs.map +1 -0
  29. package/dist/module/index.d.ts +31 -0
  30. package/dist/module/index.js +129 -0
  31. package/dist/module/index.js.map +1 -0
  32. package/dist/plugins/generate-preload-assets.cjs +182 -0
  33. package/dist/plugins/generate-preload-assets.cjs.map +1 -0
  34. package/dist/plugins/generate-preload-assets.js +182 -0
  35. package/dist/plugins/generate-preload-assets.js.map +1 -0
  36. package/dist/plugins/snapshot/SnapshotHandler.cjs +190 -0
  37. package/dist/plugins/snapshot/SnapshotHandler.cjs.map +1 -0
  38. package/dist/plugins/snapshot/SnapshotHandler.d.ts +66 -0
  39. package/dist/plugins/snapshot/SnapshotHandler.js +189 -0
  40. package/dist/plugins/snapshot/SnapshotHandler.js.map +1 -0
  41. package/dist/plugins/snapshot/index.cjs +63 -0
  42. package/dist/plugins/snapshot/index.cjs.map +1 -0
  43. package/dist/plugins/snapshot/index.js +62 -0
  44. package/dist/plugins/snapshot/index.js.map +1 -0
  45. package/dist/remote/index.cjs +304 -0
  46. package/dist/remote/index.cjs.map +1 -0
  47. package/dist/remote/index.d.ts +119 -0
  48. package/dist/remote/index.js +304 -0
  49. package/dist/remote/index.js.map +1 -0
  50. package/dist/shared/index.cjs +303 -0
  51. package/dist/shared/index.cjs.map +1 -0
  52. package/dist/shared/index.d.ts +82 -0
  53. package/dist/shared/index.js +303 -0
  54. package/dist/shared/index.js.map +1 -0
  55. package/dist/type/config.d.ts +130 -0
  56. package/dist/type/index.cjs +13 -0
  57. package/dist/type/index.cjs.map +1 -0
  58. package/dist/type/index.d.ts +11 -0
  59. package/dist/type/index.js +8 -0
  60. package/dist/type/index.js.map +1 -0
  61. package/dist/type/plugin.d.ts +27 -0
  62. package/dist/type/preload.d.ts +31 -0
  63. package/dist/types.cjs +0 -0
  64. package/dist/types.d.ts +4 -1
  65. package/dist/types.js +1 -0
  66. package/dist/utils/context.cjs +45 -0
  67. package/dist/utils/context.cjs.map +1 -0
  68. package/dist/utils/context.d.ts +1 -0
  69. package/dist/utils/context.js +44 -0
  70. package/dist/utils/context.js.map +1 -0
  71. package/dist/utils/env.cjs +10 -0
  72. package/dist/utils/env.cjs.map +1 -0
  73. package/dist/utils/env.d.ts +1 -0
  74. package/dist/utils/env.js +10 -0
  75. package/dist/utils/env.js.map +1 -0
  76. package/dist/utils/hooks/asyncHook.cjs +23 -0
  77. package/dist/utils/hooks/asyncHook.cjs.map +1 -0
  78. package/dist/utils/hooks/asyncHook.d.ts +10 -0
  79. package/dist/utils/hooks/asyncHook.js +23 -0
  80. package/dist/utils/hooks/asyncHook.js.map +1 -0
  81. package/dist/utils/hooks/asyncWaterfallHooks.cjs +42 -0
  82. package/dist/utils/hooks/asyncWaterfallHooks.cjs.map +1 -0
  83. package/dist/utils/hooks/asyncWaterfallHooks.d.ts +12 -0
  84. package/dist/utils/hooks/asyncWaterfallHooks.js +42 -0
  85. package/dist/utils/hooks/asyncWaterfallHooks.js.map +1 -0
  86. package/dist/utils/hooks/index.cjs +5 -0
  87. package/dist/utils/hooks/index.d.ts +5 -0
  88. package/dist/utils/hooks/index.js +7 -0
  89. package/dist/utils/hooks/pluginSystem.cjs +37 -0
  90. package/dist/utils/hooks/pluginSystem.cjs.map +1 -0
  91. package/dist/utils/hooks/pluginSystem.d.ts +19 -0
  92. package/dist/utils/hooks/pluginSystem.js +37 -0
  93. package/dist/utils/hooks/pluginSystem.js.map +1 -0
  94. package/dist/utils/hooks/syncHook.cjs +36 -0
  95. package/dist/utils/hooks/syncHook.cjs.map +1 -0
  96. package/dist/utils/hooks/syncHook.d.ts +16 -0
  97. package/dist/utils/hooks/syncHook.js +35 -0
  98. package/dist/utils/hooks/syncHook.js.map +1 -0
  99. package/dist/utils/hooks/syncWaterfallHook.cjs +39 -0
  100. package/dist/utils/hooks/syncWaterfallHook.cjs.map +1 -0
  101. package/dist/utils/hooks/syncWaterfallHook.d.ts +11 -0
  102. package/dist/utils/hooks/syncWaterfallHook.js +38 -0
  103. package/dist/utils/hooks/syncWaterfallHook.js.map +1 -0
  104. package/dist/utils/index.cjs +8 -0
  105. package/dist/utils/index.d.ts +4 -0
  106. package/dist/utils/index.js +9 -0
  107. package/dist/utils/load.cjs +179 -0
  108. package/dist/utils/load.cjs.map +1 -0
  109. package/dist/utils/load.d.ts +14 -0
  110. package/dist/utils/load.js +177 -0
  111. package/dist/utils/load.js.map +1 -0
  112. package/dist/utils/logger.cjs +34 -0
  113. package/dist/utils/logger.cjs.map +1 -0
  114. package/dist/utils/logger.d.ts +10 -0
  115. package/dist/utils/logger.js +31 -0
  116. package/dist/utils/logger.js.map +1 -0
  117. package/dist/utils/manifest.cjs +51 -0
  118. package/dist/utils/manifest.cjs.map +1 -0
  119. package/dist/utils/manifest.d.ts +10 -0
  120. package/dist/utils/manifest.js +49 -0
  121. package/dist/utils/manifest.js.map +1 -0
  122. package/dist/utils/plugin.cjs +27 -0
  123. package/dist/utils/plugin.cjs.map +1 -0
  124. package/dist/utils/plugin.d.ts +1 -0
  125. package/dist/utils/plugin.js +27 -0
  126. package/dist/utils/plugin.js.map +1 -0
  127. package/dist/utils/preload.cjs +146 -0
  128. package/dist/utils/preload.cjs.map +1 -0
  129. package/dist/utils/preload.d.ts +8 -0
  130. package/dist/utils/preload.js +143 -0
  131. package/dist/utils/preload.js.map +1 -0
  132. package/dist/utils/semver/compare.cjs +48 -0
  133. package/dist/utils/semver/compare.cjs.map +1 -0
  134. package/dist/utils/semver/compare.js +47 -0
  135. package/dist/utils/semver/compare.js.map +1 -0
  136. package/dist/utils/semver/constants.cjs +41 -0
  137. package/dist/utils/semver/constants.cjs.map +1 -0
  138. package/dist/utils/semver/constants.js +31 -0
  139. package/dist/utils/semver/constants.js.map +1 -0
  140. package/dist/utils/semver/index.cjs +68 -0
  141. package/dist/utils/semver/index.cjs.map +1 -0
  142. package/dist/utils/semver/index.d.ts +5 -0
  143. package/dist/utils/semver/index.js +68 -0
  144. package/dist/utils/semver/index.js.map +1 -0
  145. package/dist/utils/semver/parser.cjs +104 -0
  146. package/dist/utils/semver/parser.cjs.map +1 -0
  147. package/dist/utils/semver/parser.js +96 -0
  148. package/dist/utils/semver/parser.js.map +1 -0
  149. package/dist/utils/semver/utils.cjs +28 -0
  150. package/dist/utils/semver/utils.cjs.map +1 -0
  151. package/dist/utils/semver/utils.js +24 -0
  152. package/dist/utils/semver/utils.js.map +1 -0
  153. package/dist/utils/share.cjs +284 -0
  154. package/dist/utils/share.cjs.map +1 -0
  155. package/dist/utils/share.d.ts +23 -0
  156. package/dist/utils/share.js +278 -0
  157. package/dist/utils/share.js.map +1 -0
  158. package/dist/utils/tool.cjs +82 -0
  159. package/dist/utils/tool.cjs.map +1 -0
  160. package/dist/utils/tool.d.ts +8 -0
  161. package/dist/utils/tool.js +71 -0
  162. package/dist/utils/tool.js.map +1 -0
  163. package/package.json +16 -9
  164. package/dist/index.cjs.cjs +0 -3442
  165. package/dist/index.cjs.cjs.map +0 -1
  166. package/dist/index.cjs.d.ts +0 -1
  167. package/dist/index.esm.js +0 -3418
  168. package/dist/index.esm.js.map +0 -1
  169. package/dist/src/constant.d.ts +0 -2
  170. package/dist/src/core.d.ts +0 -119
  171. package/dist/src/global.d.ts +0 -42
  172. package/dist/src/helpers.d.ts +0 -38
  173. package/dist/src/index.d.ts +0 -14
  174. package/dist/src/module/index.d.ts +0 -25
  175. package/dist/src/plugins/generate-preload-assets.d.ts +0 -8
  176. package/dist/src/plugins/snapshot/SnapshotHandler.d.ts +0 -60
  177. package/dist/src/plugins/snapshot/index.d.ts +0 -5
  178. package/dist/src/remote/index.d.ts +0 -109
  179. package/dist/src/shared/index.d.ts +0 -75
  180. package/dist/src/type/config.d.ts +0 -128
  181. package/dist/src/type/index.d.ts +0 -3
  182. package/dist/src/type/plugin.d.ts +0 -35
  183. package/dist/src/type/preload.d.ts +0 -26
  184. package/dist/src/types.d.ts +0 -1
  185. package/dist/src/utils/env.d.ts +0 -3
  186. package/dist/src/utils/hooks/asyncHook.d.ts +0 -6
  187. package/dist/src/utils/hooks/asyncWaterfallHooks.d.ts +0 -10
  188. package/dist/src/utils/hooks/index.d.ts +0 -6
  189. package/dist/src/utils/hooks/pluginSystem.d.ts +0 -16
  190. package/dist/src/utils/hooks/syncHook.d.ts +0 -12
  191. package/dist/src/utils/hooks/syncWaterfallHook.d.ts +0 -9
  192. package/dist/src/utils/index.d.ts +0 -6
  193. package/dist/src/utils/load.d.ts +0 -11
  194. package/dist/src/utils/logger.d.ts +0 -6
  195. package/dist/src/utils/manifest.d.ts +0 -7
  196. package/dist/src/utils/plugin.d.ts +0 -3
  197. package/dist/src/utils/preload.d.ts +0 -6
  198. package/dist/src/utils/semver/compare.d.ts +0 -9
  199. package/dist/src/utils/semver/constants.d.ts +0 -10
  200. package/dist/src/utils/semver/index.d.ts +0 -2
  201. package/dist/src/utils/semver/parser.d.ts +0 -9
  202. package/dist/src/utils/semver/utils.d.ts +0 -11
  203. package/dist/src/utils/share.d.ts +0 -45
  204. package/dist/src/utils/tool.d.ts +0 -18
  205. package/dist/types.cjs.cjs +0 -3
  206. package/dist/types.cjs.cjs.map +0 -1
  207. package/dist/types.cjs.d.ts +0 -1
  208. package/dist/types.esm.js +0 -2
  209. package/dist/types.esm.js.map +0 -1
@@ -0,0 +1,31 @@
1
+ //#region src/utils/semver/constants.ts
2
+ const buildIdentifier = "[0-9A-Za-z-]+";
3
+ const build = `(?:\\+(${buildIdentifier}(?:\\.${buildIdentifier})*))`;
4
+ const numericIdentifier = "0|[1-9]\\d*";
5
+ const numericIdentifierLoose = "[0-9]+";
6
+ const nonNumericIdentifier = "\\d*[a-zA-Z-][a-zA-Z0-9-]*";
7
+ const preReleaseIdentifierLoose = `(?:${numericIdentifierLoose}|${nonNumericIdentifier})`;
8
+ const preReleaseLoose = `(?:-?(${preReleaseIdentifierLoose}(?:\\.${preReleaseIdentifierLoose})*))`;
9
+ const preReleaseIdentifier = `(?:${numericIdentifier}|${nonNumericIdentifier})`;
10
+ const preRelease = `(?:-(${preReleaseIdentifier}(?:\\.${preReleaseIdentifier})*))`;
11
+ const xRangeIdentifier = `${numericIdentifier}|x|X|\\*`;
12
+ const xRangePlain = `[v=\\s]*(${xRangeIdentifier})(?:\\.(${xRangeIdentifier})(?:\\.(${xRangeIdentifier})(?:${preRelease})?${build}?)?)?`;
13
+ const hyphenRange = `^\\s*(${xRangePlain})\\s+-\\s+(${xRangePlain})\\s*$`;
14
+ const loosePlain = `[v=\\s]*${`(${numericIdentifierLoose})\\.(${numericIdentifierLoose})\\.(${numericIdentifierLoose})`}${preReleaseLoose}?${build}?`;
15
+ const gtlt = "((?:<|>)?=?)";
16
+ const comparatorTrim = `(\\s*)${gtlt}\\s*(${loosePlain}|${xRangePlain})`;
17
+ const loneTilde = "(?:~>?)";
18
+ const tildeTrim = `(\\s*)${loneTilde}\\s+`;
19
+ const loneCaret = "(?:\\^)";
20
+ const caretTrim = `(\\s*)${loneCaret}\\s+`;
21
+ const star = "(<|>)?=?\\s*\\*";
22
+ const caret = `^${loneCaret}${xRangePlain}$`;
23
+ const fullPlain = `v?${`(${numericIdentifier})\\.(${numericIdentifier})\\.(${numericIdentifier})`}${preRelease}?${build}?`;
24
+ const tilde = `^${loneTilde}${xRangePlain}$`;
25
+ const xRange = `^${gtlt}\\s*${xRangePlain}$`;
26
+ const comparator = `^${gtlt}\\s*(${fullPlain})$|^$`;
27
+ const gte0 = "^\\s*>=\\s*0.0.0\\s*$";
28
+
29
+ //#endregion
30
+ export { caret, caretTrim, comparator, comparatorTrim, gte0, hyphenRange, star, tilde, tildeTrim, xRange };
31
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../../src/utils/semver/constants.ts"],"sourcesContent":["// fork from https://github.com/originjs/vite-plugin-federation/blob/v1.1.12/packages/lib/src/utils/semver/index.ts\n// those constants are based on https://www.rubydoc.info/gems/semantic_range/3.0.0/SemanticRange#BUILDIDENTIFIER-constant\n// Copyright (c)\n// vite-plugin-federation is licensed under Mulan PSL v2.\n// You can use this software according to the terms and conditions of the Mulan PSL v2.\n// You may obtain a copy of Mulan PSL v2 at:\n// http://license.coscl.org.cn/MulanPSL2\n// THIS SOFTWARE IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.\n// See the Mulan PSL v2 for more details.\n\nconst buildIdentifier = '[0-9A-Za-z-]+';\nconst build = `(?:\\\\+(${buildIdentifier}(?:\\\\.${buildIdentifier})*))`;\nconst numericIdentifier = '0|[1-9]\\\\d*';\nconst numericIdentifierLoose = '[0-9]+';\nconst nonNumericIdentifier = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*';\nconst preReleaseIdentifierLoose = `(?:${numericIdentifierLoose}|${nonNumericIdentifier})`;\nconst preReleaseLoose = `(?:-?(${preReleaseIdentifierLoose}(?:\\\\.${preReleaseIdentifierLoose})*))`;\nconst preReleaseIdentifier = `(?:${numericIdentifier}|${nonNumericIdentifier})`;\nconst preRelease = `(?:-(${preReleaseIdentifier}(?:\\\\.${preReleaseIdentifier})*))`;\nconst xRangeIdentifier = `${numericIdentifier}|x|X|\\\\*`;\nconst xRangePlain = `[v=\\\\s]*(${xRangeIdentifier})(?:\\\\.(${xRangeIdentifier})(?:\\\\.(${xRangeIdentifier})(?:${preRelease})?${build}?)?)?`;\nexport const hyphenRange = `^\\\\s*(${xRangePlain})\\\\s+-\\\\s+(${xRangePlain})\\\\s*$`;\nconst mainVersionLoose = `(${numericIdentifierLoose})\\\\.(${numericIdentifierLoose})\\\\.(${numericIdentifierLoose})`;\nconst loosePlain = `[v=\\\\s]*${mainVersionLoose}${preReleaseLoose}?${build}?`;\nconst gtlt = '((?:<|>)?=?)';\nexport const comparatorTrim = `(\\\\s*)${gtlt}\\\\s*(${loosePlain}|${xRangePlain})`;\nconst loneTilde = '(?:~>?)';\nexport const tildeTrim = `(\\\\s*)${loneTilde}\\\\s+`;\nconst loneCaret = '(?:\\\\^)';\nexport const caretTrim = `(\\\\s*)${loneCaret}\\\\s+`;\nexport const star = '(<|>)?=?\\\\s*\\\\*';\nexport const caret = `^${loneCaret}${xRangePlain}$`;\nconst mainVersion = `(${numericIdentifier})\\\\.(${numericIdentifier})\\\\.(${numericIdentifier})`;\nconst fullPlain = `v?${mainVersion}${preRelease}?${build}?`;\nexport const tilde = `^${loneTilde}${xRangePlain}$`;\nexport const xRange = `^${gtlt}\\\\s*${xRangePlain}$`;\nexport const comparator = `^${gtlt}\\\\s*(${fullPlain})$|^$`;\n// copy from semver package\nexport const gte0 = '^\\\\s*>=\\\\s*0.0.0\\\\s*$';\n"],"mappings":";AAUA,MAAM,kBAAkB;AACxB,MAAM,QAAQ,UAAU,gBAAgB,QAAQ,gBAAgB;AAChE,MAAM,oBAAoB;AAC1B,MAAM,yBAAyB;AAC/B,MAAM,uBAAuB;AAC7B,MAAM,4BAA4B,MAAM,uBAAuB,GAAG,qBAAqB;AACvF,MAAM,kBAAkB,SAAS,0BAA0B,QAAQ,0BAA0B;AAC7F,MAAM,uBAAuB,MAAM,kBAAkB,GAAG,qBAAqB;AAC7E,MAAM,aAAa,QAAQ,qBAAqB,QAAQ,qBAAqB;AAC7E,MAAM,mBAAmB,GAAG,kBAAkB;AAC9C,MAAM,cAAc,YAAY,iBAAiB,UAAU,iBAAiB,UAAU,iBAAiB,MAAM,WAAW,IAAI,MAAM;AAClI,MAAa,cAAc,SAAS,YAAY,aAAa,YAAY;AAEzE,MAAM,aAAa,WADM,IAAI,uBAAuB,OAAO,uBAAuB,OAAO,uBAAuB,KAC/D,gBAAgB,GAAG,MAAM;AAC1E,MAAM,OAAO;AACb,MAAa,iBAAiB,SAAS,KAAK,OAAO,WAAW,GAAG,YAAY;AAC7E,MAAM,YAAY;AAClB,MAAa,YAAY,SAAS,UAAU;AAC5C,MAAM,YAAY;AAClB,MAAa,YAAY,SAAS,UAAU;AAC5C,MAAa,OAAO;AACpB,MAAa,QAAQ,IAAI,YAAY,YAAY;AAEjD,MAAM,YAAY,KADE,IAAI,kBAAkB,OAAO,kBAAkB,OAAO,kBAAkB,KACvD,WAAW,GAAG,MAAM;AACzD,MAAa,QAAQ,IAAI,YAAY,YAAY;AACjD,MAAa,SAAS,IAAI,KAAK,MAAM,YAAY;AACjD,MAAa,aAAa,IAAI,KAAK,OAAO,UAAU;AAEpD,MAAa,OAAO"}
@@ -0,0 +1,68 @@
1
+ const require_utils = require('./utils.cjs');
2
+ const require_parser = require('./parser.cjs');
3
+ const require_compare = require('./compare.cjs');
4
+
5
+ //#region src/utils/semver/index.ts
6
+ function parseComparatorString(range) {
7
+ return require_utils.pipe(require_parser.parseCarets, require_parser.parseTildes, require_parser.parseXRanges, require_parser.parseStar)(range);
8
+ }
9
+ function parseRange(range) {
10
+ return require_utils.pipe(require_parser.parseHyphen, require_parser.parseComparatorTrim, require_parser.parseTildeTrim, require_parser.parseCaretTrim)(range.trim()).split(/\s+/).join(" ");
11
+ }
12
+ function satisfy(version, range) {
13
+ if (!version) return false;
14
+ const extractedVersion = require_utils.extractComparator(version);
15
+ if (!extractedVersion) return false;
16
+ const [, versionOperator, , versionMajor, versionMinor, versionPatch, versionPreRelease] = extractedVersion;
17
+ const versionAtom = {
18
+ operator: versionOperator,
19
+ version: require_utils.combineVersion(versionMajor, versionMinor, versionPatch, versionPreRelease),
20
+ major: versionMajor,
21
+ minor: versionMinor,
22
+ patch: versionPatch,
23
+ preRelease: versionPreRelease?.split(".")
24
+ };
25
+ const orRanges = range.split("||");
26
+ for (const orRange of orRanges) {
27
+ const trimmedOrRange = orRange.trim();
28
+ if (!trimmedOrRange) return true;
29
+ if (trimmedOrRange === "*" || trimmedOrRange === "x") return true;
30
+ try {
31
+ const parsedSubRange = parseRange(trimmedOrRange);
32
+ if (!parsedSubRange.trim()) return true;
33
+ const parsedComparatorString = parsedSubRange.split(" ").map((rangeVersion) => parseComparatorString(rangeVersion)).join(" ");
34
+ if (!parsedComparatorString.trim()) return true;
35
+ const comparators = parsedComparatorString.split(/\s+/).map((comparator) => require_parser.parseGTE0(comparator)).filter(Boolean);
36
+ if (comparators.length === 0) continue;
37
+ let subRangeSatisfied = true;
38
+ for (const comparator of comparators) {
39
+ const extractedComparator = require_utils.extractComparator(comparator);
40
+ if (!extractedComparator) {
41
+ subRangeSatisfied = false;
42
+ break;
43
+ }
44
+ const [, rangeOperator, , rangeMajor, rangeMinor, rangePatch, rangePreRelease] = extractedComparator;
45
+ if (!require_compare.compare({
46
+ operator: rangeOperator,
47
+ version: require_utils.combineVersion(rangeMajor, rangeMinor, rangePatch, rangePreRelease),
48
+ major: rangeMajor,
49
+ minor: rangeMinor,
50
+ patch: rangePatch,
51
+ preRelease: rangePreRelease?.split(".")
52
+ }, versionAtom)) {
53
+ subRangeSatisfied = false;
54
+ break;
55
+ }
56
+ }
57
+ if (subRangeSatisfied) return true;
58
+ } catch (e) {
59
+ console.error(`[semver] Error processing range part "${trimmedOrRange}":`, e);
60
+ continue;
61
+ }
62
+ }
63
+ return false;
64
+ }
65
+
66
+ //#endregion
67
+ exports.satisfy = satisfy;
68
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["pipe","parseCarets","parseTildes","parseXRanges","parseStar","parseHyphen","parseComparatorTrim","parseTildeTrim","parseCaretTrim","extractComparator","combineVersion","parseGTE0","compare"],"sources":["../../../src/utils/semver/index.ts"],"sourcesContent":["// fork from https://github.com/originjs/vite-plugin-federation/blob/v1.1.12/packages/lib/src/utils/semver/index.ts\n// Copyright (c)\n// vite-plugin-federation is licensed under Mulan PSL v2.\n// You can use this software according to the terms and conditions of the Mulan PSL v2.\n// You may obtain a copy of Mulan PSL v2 at:\n// http://license.coscl.org.cn/MulanPSL2\n// THIS SOFTWARE IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.\n// See the Mulan PSL v2 for more details.\n\nimport { combineVersion, extractComparator, pipe } from './utils';\nimport {\n parseHyphen,\n parseComparatorTrim,\n parseTildeTrim,\n parseCaretTrim,\n parseCarets,\n parseTildes,\n parseXRanges,\n parseStar,\n parseGTE0,\n} from './parser';\nimport { compare } from './compare';\nimport type { CompareAtom } from './compare';\n\nfunction parseComparatorString(range: string): string {\n return pipe(\n // handle caret\n // ^ --> * (any, kinda silly)\n // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n // ^1.2.3 --> >=1.2.3 <2.0.0-0\n // ^1.2.0 --> >=1.2.0 <2.0.0-0\n parseCarets,\n // handle tilde\n // ~, ~> --> * (any, kinda silly)\n // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n parseTildes,\n parseXRanges,\n parseStar,\n )(range);\n}\n\nfunction parseRange(range: string) {\n return pipe(\n // handle hyphenRange\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n parseHyphen,\n // handle trim comparator\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n parseComparatorTrim,\n // handle trim tilde\n // `~ 1.2.3` => `~1.2.3`\n parseTildeTrim,\n // handle trim caret\n // `^ 1.2.3` => `^1.2.3`\n parseCaretTrim,\n )(range.trim())\n .split(/\\s+/)\n .join(' ');\n}\n\nexport function satisfy(version: string, range: string): boolean {\n if (!version) {\n return false;\n }\n\n // Extract version details once\n const extractedVersion = extractComparator(version);\n if (!extractedVersion) {\n // If the version string is invalid, it can't satisfy any range\n return false;\n }\n const [\n ,\n versionOperator,\n ,\n versionMajor,\n versionMinor,\n versionPatch,\n versionPreRelease,\n ] = extractedVersion;\n const versionAtom: CompareAtom = {\n operator: versionOperator,\n version: combineVersion(\n versionMajor,\n versionMinor,\n versionPatch,\n versionPreRelease,\n ), // exclude build atom\n major: versionMajor,\n minor: versionMinor,\n patch: versionPatch,\n preRelease: versionPreRelease?.split('.'),\n };\n\n // Split the range by || to handle OR conditions\n const orRanges = range.split('||');\n\n for (const orRange of orRanges) {\n const trimmedOrRange = orRange.trim();\n if (!trimmedOrRange) {\n // An empty range string signifies wildcard *, satisfy any valid version\n // (We already checked if the version itself is valid)\n return true;\n }\n\n // Handle simple wildcards explicitly before complex parsing\n if (trimmedOrRange === '*' || trimmedOrRange === 'x') {\n return true;\n }\n\n try {\n // Apply existing parsing logic to the current OR sub-range\n const parsedSubRange = parseRange(trimmedOrRange); // Handles hyphens, trims etc.\n\n // Check if the result of initial parsing is empty, which can happen\n // for some wildcard cases handled by parseRange/parseComparatorString.\n // E.g. `parseStar` used in `parseComparatorString` returns ''.\n if (!parsedSubRange.trim()) {\n // If parsing results in empty string, treat as wildcard match\n return true;\n }\n\n const parsedComparatorString = parsedSubRange\n .split(' ')\n .map((rangeVersion) => parseComparatorString(rangeVersion)) // Expands ^, ~\n .join(' ');\n\n // Check again if the comparator string became empty after specific parsing like ^ or ~\n if (!parsedComparatorString.trim()) {\n return true;\n }\n\n // Split the sub-range by space for implicit AND conditions\n const comparators = parsedComparatorString\n .split(/\\s+/)\n .map((comparator) => parseGTE0(comparator))\n // Filter out empty strings that might result from multiple spaces\n .filter(Boolean);\n\n // If a sub-range becomes empty after parsing (e.g., invalid characters),\n // it cannot be satisfied. This check might be redundant now but kept for safety.\n if (comparators.length === 0) {\n continue;\n }\n\n let subRangeSatisfied = true;\n for (const comparator of comparators) {\n const extractedComparator = extractComparator(comparator);\n\n // If any part of the AND sub-range is invalid, the sub-range is not satisfied\n if (!extractedComparator) {\n subRangeSatisfied = false;\n break;\n }\n\n const [\n ,\n rangeOperator,\n ,\n rangeMajor,\n rangeMinor,\n rangePatch,\n rangePreRelease,\n ] = extractedComparator;\n const rangeAtom: CompareAtom = {\n operator: rangeOperator,\n version: combineVersion(\n rangeMajor,\n rangeMinor,\n rangePatch,\n rangePreRelease,\n ),\n major: rangeMajor,\n minor: rangeMinor,\n patch: rangePatch,\n preRelease: rangePreRelease?.split('.'),\n };\n\n // Check if the version satisfies this specific comparator in the AND chain\n if (!compare(rangeAtom, versionAtom)) {\n subRangeSatisfied = false; // This part of the AND condition failed\n break; // No need to check further comparators in this sub-range\n }\n }\n\n // If all AND conditions within this OR sub-range were met, the overall range is satisfied\n if (subRangeSatisfied) {\n return true;\n }\n } catch (e) {\n // Log error and treat this sub-range as unsatisfied\n console.error(\n `[semver] Error processing range part \"${trimmedOrRange}\":`,\n e,\n );\n continue;\n }\n }\n\n // If none of the OR sub-ranges were satisfied\n return false;\n}\n\nexport function isLegallyVersion(version: string): boolean {\n const semverRegex =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$/;\n return semverRegex.test(version);\n}\n"],"mappings":";;;;;AAwBA,SAAS,sBAAsB,OAAuB;AACpD,QAAOA,mBAQLC,4BAQAC,4BACAC,6BACAC,yBACD,CAAC,MAAM;;AAGV,SAAS,WAAW,OAAe;AACjC,QAAOJ,mBAGLK,4BAGAC,oCAGAC,+BAGAC,8BACD,CAAC,MAAM,MAAM,CAAC,CACZ,MAAM,MAAM,CACZ,KAAK,IAAI;;AAGd,SAAgB,QAAQ,SAAiB,OAAwB;AAC/D,KAAI,CAAC,QACH,QAAO;CAIT,MAAM,mBAAmBC,gCAAkB,QAAQ;AACnD,KAAI,CAAC,iBAEH,QAAO;CAET,MAAM,GAEJ,mBAEA,cACA,cACA,cACA,qBACE;CACJ,MAAM,cAA2B;EAC/B,UAAU;EACV,SAASC,6BACP,cACA,cACA,cACA,kBACD;EACD,OAAO;EACP,OAAO;EACP,OAAO;EACP,YAAY,mBAAmB,MAAM,IAAI;EAC1C;CAGD,MAAM,WAAW,MAAM,MAAM,KAAK;AAElC,MAAK,MAAM,WAAW,UAAU;EAC9B,MAAM,iBAAiB,QAAQ,MAAM;AACrC,MAAI,CAAC,eAGH,QAAO;AAIT,MAAI,mBAAmB,OAAO,mBAAmB,IAC/C,QAAO;AAGT,MAAI;GAEF,MAAM,iBAAiB,WAAW,eAAe;AAKjD,OAAI,CAAC,eAAe,MAAM,CAExB,QAAO;GAGT,MAAM,yBAAyB,eAC5B,MAAM,IAAI,CACV,KAAK,iBAAiB,sBAAsB,aAAa,CAAC,CAC1D,KAAK,IAAI;AAGZ,OAAI,CAAC,uBAAuB,MAAM,CAChC,QAAO;GAIT,MAAM,cAAc,uBACjB,MAAM,MAAM,CACZ,KAAK,eAAeC,yBAAU,WAAW,CAAC,CAE1C,OAAO,QAAQ;AAIlB,OAAI,YAAY,WAAW,EACzB;GAGF,IAAI,oBAAoB;AACxB,QAAK,MAAM,cAAc,aAAa;IACpC,MAAM,sBAAsBF,gCAAkB,WAAW;AAGzD,QAAI,CAAC,qBAAqB;AACxB,yBAAoB;AACpB;;IAGF,MAAM,GAEJ,iBAEA,YACA,YACA,YACA,mBACE;AAgBJ,QAAI,CAACG,wBAf0B;KAC7B,UAAU;KACV,SAASF,6BACP,YACA,YACA,YACA,gBACD;KACD,OAAO;KACP,OAAO;KACP,OAAO;KACP,YAAY,iBAAiB,MAAM,IAAI;KACxC,EAGuB,YAAY,EAAE;AACpC,yBAAoB;AACpB;;;AAKJ,OAAI,kBACF,QAAO;WAEF,GAAG;AAEV,WAAQ,MACN,yCAAyC,eAAe,KACxD,EACD;AACD;;;AAKJ,QAAO"}
@@ -0,0 +1,5 @@
1
+ //#region src/utils/semver/index.d.ts
2
+ declare function satisfy(version: string, range: string): boolean;
3
+ //#endregion
4
+ export { satisfy };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,68 @@
1
+ import { combineVersion, extractComparator, pipe } from "./utils.js";
2
+ import { parseCaretTrim, parseCarets, parseComparatorTrim, parseGTE0, parseHyphen, parseStar, parseTildeTrim, parseTildes, parseXRanges } from "./parser.js";
3
+ import { compare } from "./compare.js";
4
+
5
+ //#region src/utils/semver/index.ts
6
+ function parseComparatorString(range) {
7
+ return pipe(parseCarets, parseTildes, parseXRanges, parseStar)(range);
8
+ }
9
+ function parseRange(range) {
10
+ return pipe(parseHyphen, parseComparatorTrim, parseTildeTrim, parseCaretTrim)(range.trim()).split(/\s+/).join(" ");
11
+ }
12
+ function satisfy(version, range) {
13
+ if (!version) return false;
14
+ const extractedVersion = extractComparator(version);
15
+ if (!extractedVersion) return false;
16
+ const [, versionOperator, , versionMajor, versionMinor, versionPatch, versionPreRelease] = extractedVersion;
17
+ const versionAtom = {
18
+ operator: versionOperator,
19
+ version: combineVersion(versionMajor, versionMinor, versionPatch, versionPreRelease),
20
+ major: versionMajor,
21
+ minor: versionMinor,
22
+ patch: versionPatch,
23
+ preRelease: versionPreRelease?.split(".")
24
+ };
25
+ const orRanges = range.split("||");
26
+ for (const orRange of orRanges) {
27
+ const trimmedOrRange = orRange.trim();
28
+ if (!trimmedOrRange) return true;
29
+ if (trimmedOrRange === "*" || trimmedOrRange === "x") return true;
30
+ try {
31
+ const parsedSubRange = parseRange(trimmedOrRange);
32
+ if (!parsedSubRange.trim()) return true;
33
+ const parsedComparatorString = parsedSubRange.split(" ").map((rangeVersion) => parseComparatorString(rangeVersion)).join(" ");
34
+ if (!parsedComparatorString.trim()) return true;
35
+ const comparators = parsedComparatorString.split(/\s+/).map((comparator) => parseGTE0(comparator)).filter(Boolean);
36
+ if (comparators.length === 0) continue;
37
+ let subRangeSatisfied = true;
38
+ for (const comparator of comparators) {
39
+ const extractedComparator = extractComparator(comparator);
40
+ if (!extractedComparator) {
41
+ subRangeSatisfied = false;
42
+ break;
43
+ }
44
+ const [, rangeOperator, , rangeMajor, rangeMinor, rangePatch, rangePreRelease] = extractedComparator;
45
+ if (!compare({
46
+ operator: rangeOperator,
47
+ version: combineVersion(rangeMajor, rangeMinor, rangePatch, rangePreRelease),
48
+ major: rangeMajor,
49
+ minor: rangeMinor,
50
+ patch: rangePatch,
51
+ preRelease: rangePreRelease?.split(".")
52
+ }, versionAtom)) {
53
+ subRangeSatisfied = false;
54
+ break;
55
+ }
56
+ }
57
+ if (subRangeSatisfied) return true;
58
+ } catch (e) {
59
+ console.error(`[semver] Error processing range part "${trimmedOrRange}":`, e);
60
+ continue;
61
+ }
62
+ }
63
+ return false;
64
+ }
65
+
66
+ //#endregion
67
+ export { satisfy };
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/semver/index.ts"],"sourcesContent":["// fork from https://github.com/originjs/vite-plugin-federation/blob/v1.1.12/packages/lib/src/utils/semver/index.ts\n// Copyright (c)\n// vite-plugin-federation is licensed under Mulan PSL v2.\n// You can use this software according to the terms and conditions of the Mulan PSL v2.\n// You may obtain a copy of Mulan PSL v2 at:\n// http://license.coscl.org.cn/MulanPSL2\n// THIS SOFTWARE IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.\n// See the Mulan PSL v2 for more details.\n\nimport { combineVersion, extractComparator, pipe } from './utils';\nimport {\n parseHyphen,\n parseComparatorTrim,\n parseTildeTrim,\n parseCaretTrim,\n parseCarets,\n parseTildes,\n parseXRanges,\n parseStar,\n parseGTE0,\n} from './parser';\nimport { compare } from './compare';\nimport type { CompareAtom } from './compare';\n\nfunction parseComparatorString(range: string): string {\n return pipe(\n // handle caret\n // ^ --> * (any, kinda silly)\n // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n // ^1.2.3 --> >=1.2.3 <2.0.0-0\n // ^1.2.0 --> >=1.2.0 <2.0.0-0\n parseCarets,\n // handle tilde\n // ~, ~> --> * (any, kinda silly)\n // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n parseTildes,\n parseXRanges,\n parseStar,\n )(range);\n}\n\nfunction parseRange(range: string) {\n return pipe(\n // handle hyphenRange\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n parseHyphen,\n // handle trim comparator\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n parseComparatorTrim,\n // handle trim tilde\n // `~ 1.2.3` => `~1.2.3`\n parseTildeTrim,\n // handle trim caret\n // `^ 1.2.3` => `^1.2.3`\n parseCaretTrim,\n )(range.trim())\n .split(/\\s+/)\n .join(' ');\n}\n\nexport function satisfy(version: string, range: string): boolean {\n if (!version) {\n return false;\n }\n\n // Extract version details once\n const extractedVersion = extractComparator(version);\n if (!extractedVersion) {\n // If the version string is invalid, it can't satisfy any range\n return false;\n }\n const [\n ,\n versionOperator,\n ,\n versionMajor,\n versionMinor,\n versionPatch,\n versionPreRelease,\n ] = extractedVersion;\n const versionAtom: CompareAtom = {\n operator: versionOperator,\n version: combineVersion(\n versionMajor,\n versionMinor,\n versionPatch,\n versionPreRelease,\n ), // exclude build atom\n major: versionMajor,\n minor: versionMinor,\n patch: versionPatch,\n preRelease: versionPreRelease?.split('.'),\n };\n\n // Split the range by || to handle OR conditions\n const orRanges = range.split('||');\n\n for (const orRange of orRanges) {\n const trimmedOrRange = orRange.trim();\n if (!trimmedOrRange) {\n // An empty range string signifies wildcard *, satisfy any valid version\n // (We already checked if the version itself is valid)\n return true;\n }\n\n // Handle simple wildcards explicitly before complex parsing\n if (trimmedOrRange === '*' || trimmedOrRange === 'x') {\n return true;\n }\n\n try {\n // Apply existing parsing logic to the current OR sub-range\n const parsedSubRange = parseRange(trimmedOrRange); // Handles hyphens, trims etc.\n\n // Check if the result of initial parsing is empty, which can happen\n // for some wildcard cases handled by parseRange/parseComparatorString.\n // E.g. `parseStar` used in `parseComparatorString` returns ''.\n if (!parsedSubRange.trim()) {\n // If parsing results in empty string, treat as wildcard match\n return true;\n }\n\n const parsedComparatorString = parsedSubRange\n .split(' ')\n .map((rangeVersion) => parseComparatorString(rangeVersion)) // Expands ^, ~\n .join(' ');\n\n // Check again if the comparator string became empty after specific parsing like ^ or ~\n if (!parsedComparatorString.trim()) {\n return true;\n }\n\n // Split the sub-range by space for implicit AND conditions\n const comparators = parsedComparatorString\n .split(/\\s+/)\n .map((comparator) => parseGTE0(comparator))\n // Filter out empty strings that might result from multiple spaces\n .filter(Boolean);\n\n // If a sub-range becomes empty after parsing (e.g., invalid characters),\n // it cannot be satisfied. This check might be redundant now but kept for safety.\n if (comparators.length === 0) {\n continue;\n }\n\n let subRangeSatisfied = true;\n for (const comparator of comparators) {\n const extractedComparator = extractComparator(comparator);\n\n // If any part of the AND sub-range is invalid, the sub-range is not satisfied\n if (!extractedComparator) {\n subRangeSatisfied = false;\n break;\n }\n\n const [\n ,\n rangeOperator,\n ,\n rangeMajor,\n rangeMinor,\n rangePatch,\n rangePreRelease,\n ] = extractedComparator;\n const rangeAtom: CompareAtom = {\n operator: rangeOperator,\n version: combineVersion(\n rangeMajor,\n rangeMinor,\n rangePatch,\n rangePreRelease,\n ),\n major: rangeMajor,\n minor: rangeMinor,\n patch: rangePatch,\n preRelease: rangePreRelease?.split('.'),\n };\n\n // Check if the version satisfies this specific comparator in the AND chain\n if (!compare(rangeAtom, versionAtom)) {\n subRangeSatisfied = false; // This part of the AND condition failed\n break; // No need to check further comparators in this sub-range\n }\n }\n\n // If all AND conditions within this OR sub-range were met, the overall range is satisfied\n if (subRangeSatisfied) {\n return true;\n }\n } catch (e) {\n // Log error and treat this sub-range as unsatisfied\n console.error(\n `[semver] Error processing range part \"${trimmedOrRange}\":`,\n e,\n );\n continue;\n }\n }\n\n // If none of the OR sub-ranges were satisfied\n return false;\n}\n\nexport function isLegallyVersion(version: string): boolean {\n const semverRegex =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$/;\n return semverRegex.test(version);\n}\n"],"mappings":";;;;;AAwBA,SAAS,sBAAsB,OAAuB;AACpD,QAAO,KAQL,aAQA,aACA,cACA,UACD,CAAC,MAAM;;AAGV,SAAS,WAAW,OAAe;AACjC,QAAO,KAGL,aAGA,qBAGA,gBAGA,eACD,CAAC,MAAM,MAAM,CAAC,CACZ,MAAM,MAAM,CACZ,KAAK,IAAI;;AAGd,SAAgB,QAAQ,SAAiB,OAAwB;AAC/D,KAAI,CAAC,QACH,QAAO;CAIT,MAAM,mBAAmB,kBAAkB,QAAQ;AACnD,KAAI,CAAC,iBAEH,QAAO;CAET,MAAM,GAEJ,mBAEA,cACA,cACA,cACA,qBACE;CACJ,MAAM,cAA2B;EAC/B,UAAU;EACV,SAAS,eACP,cACA,cACA,cACA,kBACD;EACD,OAAO;EACP,OAAO;EACP,OAAO;EACP,YAAY,mBAAmB,MAAM,IAAI;EAC1C;CAGD,MAAM,WAAW,MAAM,MAAM,KAAK;AAElC,MAAK,MAAM,WAAW,UAAU;EAC9B,MAAM,iBAAiB,QAAQ,MAAM;AACrC,MAAI,CAAC,eAGH,QAAO;AAIT,MAAI,mBAAmB,OAAO,mBAAmB,IAC/C,QAAO;AAGT,MAAI;GAEF,MAAM,iBAAiB,WAAW,eAAe;AAKjD,OAAI,CAAC,eAAe,MAAM,CAExB,QAAO;GAGT,MAAM,yBAAyB,eAC5B,MAAM,IAAI,CACV,KAAK,iBAAiB,sBAAsB,aAAa,CAAC,CAC1D,KAAK,IAAI;AAGZ,OAAI,CAAC,uBAAuB,MAAM,CAChC,QAAO;GAIT,MAAM,cAAc,uBACjB,MAAM,MAAM,CACZ,KAAK,eAAe,UAAU,WAAW,CAAC,CAE1C,OAAO,QAAQ;AAIlB,OAAI,YAAY,WAAW,EACzB;GAGF,IAAI,oBAAoB;AACxB,QAAK,MAAM,cAAc,aAAa;IACpC,MAAM,sBAAsB,kBAAkB,WAAW;AAGzD,QAAI,CAAC,qBAAqB;AACxB,yBAAoB;AACpB;;IAGF,MAAM,GAEJ,iBAEA,YACA,YACA,YACA,mBACE;AAgBJ,QAAI,CAAC,QAf0B;KAC7B,UAAU;KACV,SAAS,eACP,YACA,YACA,YACA,gBACD;KACD,OAAO;KACP,OAAO;KACP,OAAO;KACP,YAAY,iBAAiB,MAAM,IAAI;KACxC,EAGuB,YAAY,EAAE;AACpC,yBAAoB;AACpB;;;AAKJ,OAAI,kBACF,QAAO;WAEF,GAAG;AAEV,WAAQ,MACN,yCAAyC,eAAe,KACxD,EACD;AACD;;;AAKJ,QAAO"}
@@ -0,0 +1,104 @@
1
+ const require_constants = require('./constants.cjs');
2
+ const require_utils = require('./utils.cjs');
3
+
4
+ //#region src/utils/semver/parser.ts
5
+ function parseHyphen(range) {
6
+ return range.replace(require_utils.parseRegex(require_constants.hyphenRange), (_range, from, fromMajor, fromMinor, fromPatch, _fromPreRelease, _fromBuild, to, toMajor, toMinor, toPatch, toPreRelease) => {
7
+ if (require_utils.isXVersion(fromMajor)) from = "";
8
+ else if (require_utils.isXVersion(fromMinor)) from = `>=${fromMajor}.0.0`;
9
+ else if (require_utils.isXVersion(fromPatch)) from = `>=${fromMajor}.${fromMinor}.0`;
10
+ else from = `>=${from}`;
11
+ if (require_utils.isXVersion(toMajor)) to = "";
12
+ else if (require_utils.isXVersion(toMinor)) to = `<${Number(toMajor) + 1}.0.0-0`;
13
+ else if (require_utils.isXVersion(toPatch)) to = `<${toMajor}.${Number(toMinor) + 1}.0-0`;
14
+ else if (toPreRelease) to = `<=${toMajor}.${toMinor}.${toPatch}-${toPreRelease}`;
15
+ else to = `<=${to}`;
16
+ return `${from} ${to}`.trim();
17
+ });
18
+ }
19
+ function parseComparatorTrim(range) {
20
+ return range.replace(require_utils.parseRegex(require_constants.comparatorTrim), "$1$2$3");
21
+ }
22
+ function parseTildeTrim(range) {
23
+ return range.replace(require_utils.parseRegex(require_constants.tildeTrim), "$1~");
24
+ }
25
+ function parseCaretTrim(range) {
26
+ return range.replace(require_utils.parseRegex(require_constants.caretTrim), "$1^");
27
+ }
28
+ function parseCarets(range) {
29
+ return range.trim().split(/\s+/).map((rangeVersion) => rangeVersion.replace(require_utils.parseRegex(require_constants.caret), (_, major, minor, patch, preRelease) => {
30
+ if (require_utils.isXVersion(major)) return "";
31
+ else if (require_utils.isXVersion(minor)) return `>=${major}.0.0 <${Number(major) + 1}.0.0-0`;
32
+ else if (require_utils.isXVersion(patch)) if (major === "0") return `>=${major}.${minor}.0 <${major}.${Number(minor) + 1}.0-0`;
33
+ else return `>=${major}.${minor}.0 <${Number(major) + 1}.0.0-0`;
34
+ else if (preRelease) if (major === "0") if (minor === "0") return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${minor}.${Number(patch) + 1}-0`;
35
+ else return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${Number(minor) + 1}.0-0`;
36
+ else return `>=${major}.${minor}.${patch}-${preRelease} <${Number(major) + 1}.0.0-0`;
37
+ else {
38
+ if (major === "0") if (minor === "0") return `>=${major}.${minor}.${patch} <${major}.${minor}.${Number(patch) + 1}-0`;
39
+ else return `>=${major}.${minor}.${patch} <${major}.${Number(minor) + 1}.0-0`;
40
+ return `>=${major}.${minor}.${patch} <${Number(major) + 1}.0.0-0`;
41
+ }
42
+ })).join(" ");
43
+ }
44
+ function parseTildes(range) {
45
+ return range.trim().split(/\s+/).map((rangeVersion) => rangeVersion.replace(require_utils.parseRegex(require_constants.tilde), (_, major, minor, patch, preRelease) => {
46
+ if (require_utils.isXVersion(major)) return "";
47
+ else if (require_utils.isXVersion(minor)) return `>=${major}.0.0 <${Number(major) + 1}.0.0-0`;
48
+ else if (require_utils.isXVersion(patch)) return `>=${major}.${minor}.0 <${major}.${Number(minor) + 1}.0-0`;
49
+ else if (preRelease) return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${Number(minor) + 1}.0-0`;
50
+ return `>=${major}.${minor}.${patch} <${major}.${Number(minor) + 1}.0-0`;
51
+ })).join(" ");
52
+ }
53
+ function parseXRanges(range) {
54
+ return range.split(/\s+/).map((rangeVersion) => rangeVersion.trim().replace(require_utils.parseRegex(require_constants.xRange), (ret, gtlt, major, minor, patch, preRelease) => {
55
+ const isXMajor = require_utils.isXVersion(major);
56
+ const isXMinor = isXMajor || require_utils.isXVersion(minor);
57
+ const isXPatch = isXMinor || require_utils.isXVersion(patch);
58
+ if (gtlt === "=" && isXPatch) gtlt = "";
59
+ preRelease = "";
60
+ if (isXMajor) if (gtlt === ">" || gtlt === "<") return "<0.0.0-0";
61
+ else return "*";
62
+ else if (gtlt && isXPatch) {
63
+ if (isXMinor) minor = 0;
64
+ patch = 0;
65
+ if (gtlt === ">") {
66
+ gtlt = ">=";
67
+ if (isXMinor) {
68
+ major = Number(major) + 1;
69
+ minor = 0;
70
+ patch = 0;
71
+ } else {
72
+ minor = Number(minor) + 1;
73
+ patch = 0;
74
+ }
75
+ } else if (gtlt === "<=") {
76
+ gtlt = "<";
77
+ if (isXMinor) major = Number(major) + 1;
78
+ else minor = Number(minor) + 1;
79
+ }
80
+ if (gtlt === "<") preRelease = "-0";
81
+ return `${gtlt + major}.${minor}.${patch}${preRelease}`;
82
+ } else if (isXMinor) return `>=${major}.0.0${preRelease} <${Number(major) + 1}.0.0-0`;
83
+ else if (isXPatch) return `>=${major}.${minor}.0${preRelease} <${major}.${Number(minor) + 1}.0-0`;
84
+ return ret;
85
+ })).join(" ");
86
+ }
87
+ function parseStar(range) {
88
+ return range.trim().replace(require_utils.parseRegex(require_constants.star), "");
89
+ }
90
+ function parseGTE0(comparatorString) {
91
+ return comparatorString.trim().replace(require_utils.parseRegex(require_constants.gte0), "");
92
+ }
93
+
94
+ //#endregion
95
+ exports.parseCaretTrim = parseCaretTrim;
96
+ exports.parseCarets = parseCarets;
97
+ exports.parseComparatorTrim = parseComparatorTrim;
98
+ exports.parseGTE0 = parseGTE0;
99
+ exports.parseHyphen = parseHyphen;
100
+ exports.parseStar = parseStar;
101
+ exports.parseTildeTrim = parseTildeTrim;
102
+ exports.parseTildes = parseTildes;
103
+ exports.parseXRanges = parseXRanges;
104
+ //# sourceMappingURL=parser.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.cjs","names":["parseRegex","hyphenRange","isXVersion","comparatorTrim","tildeTrim","caretTrim","caret","tilde","xRange","star","gte0"],"sources":["../../../src/utils/semver/parser.ts"],"sourcesContent":["// fork from https://github.com/originjs/vite-plugin-federation/blob/v1.1.12/packages/lib/src/utils/semver/index.ts\n// Copyright (c)\n// vite-plugin-federation is licensed under Mulan PSL v2.\n// You can use this software according to the terms and conditions of the Mulan PSL v2.\n// You may obtain a copy of Mulan PSL v2 at:\n// http://license.coscl.org.cn/MulanPSL2\n// THIS SOFTWARE IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.\n// See the Mulan PSL v2 for more details.\n\nimport { isXVersion, parseRegex } from './utils';\nimport {\n caret,\n caretTrim,\n comparatorTrim,\n gte0,\n hyphenRange,\n star,\n tilde,\n tildeTrim,\n xRange,\n} from './constants';\n\nexport function parseHyphen(range: string): string {\n return range.replace(\n parseRegex(hyphenRange),\n (\n _range,\n from,\n fromMajor,\n fromMinor,\n fromPatch,\n _fromPreRelease,\n _fromBuild,\n to,\n toMajor,\n toMinor,\n toPatch,\n toPreRelease,\n ) => {\n if (isXVersion(fromMajor)) {\n from = '';\n } else if (isXVersion(fromMinor)) {\n from = `>=${fromMajor}.0.0`;\n } else if (isXVersion(fromPatch)) {\n from = `>=${fromMajor}.${fromMinor}.0`;\n } else {\n from = `>=${from}`;\n }\n\n if (isXVersion(toMajor)) {\n to = '';\n } else if (isXVersion(toMinor)) {\n to = `<${Number(toMajor) + 1}.0.0-0`;\n } else if (isXVersion(toPatch)) {\n to = `<${toMajor}.${Number(toMinor) + 1}.0-0`;\n } else if (toPreRelease) {\n to = `<=${toMajor}.${toMinor}.${toPatch}-${toPreRelease}`;\n } else {\n to = `<=${to}`;\n }\n\n return `${from} ${to}`.trim();\n },\n );\n}\n\nexport function parseComparatorTrim(range: string): string {\n return range.replace(parseRegex(comparatorTrim), '$1$2$3');\n}\n\nexport function parseTildeTrim(range: string): string {\n return range.replace(parseRegex(tildeTrim), '$1~');\n}\n\nexport function parseCaretTrim(range: string): string {\n return range.replace(parseRegex(caretTrim), '$1^');\n}\n\nexport function parseCarets(range: string): string {\n return range\n .trim()\n .split(/\\s+/)\n .map((rangeVersion) =>\n rangeVersion.replace(\n parseRegex(caret),\n (_, major, minor, patch, preRelease) => {\n if (isXVersion(major)) {\n return '';\n } else if (isXVersion(minor)) {\n return `>=${major}.0.0 <${Number(major) + 1}.0.0-0`;\n } else if (isXVersion(patch)) {\n if (major === '0') {\n return `>=${major}.${minor}.0 <${major}.${Number(minor) + 1}.0-0`;\n } else {\n return `>=${major}.${minor}.0 <${Number(major) + 1}.0.0-0`;\n }\n } else if (preRelease) {\n if (major === '0') {\n if (minor === '0') {\n return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${minor}.${\n Number(patch) + 1\n }-0`;\n } else {\n return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${\n Number(minor) + 1\n }.0-0`;\n }\n } else {\n return `>=${major}.${minor}.${patch}-${preRelease} <${\n Number(major) + 1\n }.0.0-0`;\n }\n } else {\n if (major === '0') {\n if (minor === '0') {\n return `>=${major}.${minor}.${patch} <${major}.${minor}.${\n Number(patch) + 1\n }-0`;\n } else {\n return `>=${major}.${minor}.${patch} <${major}.${\n Number(minor) + 1\n }.0-0`;\n }\n }\n\n return `>=${major}.${minor}.${patch} <${Number(major) + 1}.0.0-0`;\n }\n },\n ),\n )\n .join(' ');\n}\n\nexport function parseTildes(range: string): string {\n return range\n .trim()\n .split(/\\s+/)\n .map((rangeVersion) =>\n rangeVersion.replace(\n parseRegex(tilde),\n (_, major, minor, patch, preRelease) => {\n if (isXVersion(major)) {\n return '';\n } else if (isXVersion(minor)) {\n return `>=${major}.0.0 <${Number(major) + 1}.0.0-0`;\n } else if (isXVersion(patch)) {\n return `>=${major}.${minor}.0 <${major}.${Number(minor) + 1}.0-0`;\n } else if (preRelease) {\n return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${\n Number(minor) + 1\n }.0-0`;\n }\n\n return `>=${major}.${minor}.${patch} <${major}.${\n Number(minor) + 1\n }.0-0`;\n },\n ),\n )\n .join(' ');\n}\n\nexport function parseXRanges(range: string): string {\n return range\n .split(/\\s+/)\n .map((rangeVersion) =>\n rangeVersion\n .trim()\n .replace(\n parseRegex(xRange),\n (ret, gtlt, major, minor, patch, preRelease) => {\n const isXMajor = isXVersion(major);\n const isXMinor = isXMajor || isXVersion(minor);\n const isXPatch = isXMinor || isXVersion(patch);\n\n if (gtlt === '=' && isXPatch) {\n gtlt = '';\n }\n\n preRelease = '';\n\n if (isXMajor) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n return '<0.0.0-0';\n } else {\n // nothing is forbidden\n return '*';\n }\n } else if (gtlt && isXPatch) {\n // replace X with 0\n if (isXMinor) {\n minor = 0;\n }\n\n patch = 0;\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>=';\n\n if (isXMinor) {\n major = Number(major) + 1;\n minor = 0;\n patch = 0;\n } else {\n minor = Number(minor) + 1;\n patch = 0;\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should pass\n // Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<';\n\n if (isXMinor) {\n major = Number(major) + 1;\n } else {\n minor = Number(minor) + 1;\n }\n }\n\n if (gtlt === '<') {\n preRelease = '-0';\n }\n\n return `${gtlt + major}.${minor}.${patch}${preRelease}`;\n } else if (isXMinor) {\n return `>=${major}.0.0${preRelease} <${Number(major) + 1}.0.0-0`;\n } else if (isXPatch) {\n return `>=${major}.${minor}.0${preRelease} <${major}.${\n Number(minor) + 1\n }.0-0`;\n }\n\n return ret;\n },\n ),\n )\n .join(' ');\n}\n\nexport function parseStar(range: string): string {\n return range.trim().replace(parseRegex(star), '');\n}\n\nexport function parseGTE0(comparatorString: string): string {\n return comparatorString.trim().replace(parseRegex(gte0), '');\n}\n"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { caret, caretTrim, comparatorTrim, gte0, hyphenRange, star, tilde, tildeTrim, xRange } from "./constants.js";
2
+ import { isXVersion, parseRegex } from "./utils.js";
3
+
4
+ //#region src/utils/semver/parser.ts
5
+ function parseHyphen(range) {
6
+ return range.replace(parseRegex(hyphenRange), (_range, from, fromMajor, fromMinor, fromPatch, _fromPreRelease, _fromBuild, to, toMajor, toMinor, toPatch, toPreRelease) => {
7
+ if (isXVersion(fromMajor)) from = "";
8
+ else if (isXVersion(fromMinor)) from = `>=${fromMajor}.0.0`;
9
+ else if (isXVersion(fromPatch)) from = `>=${fromMajor}.${fromMinor}.0`;
10
+ else from = `>=${from}`;
11
+ if (isXVersion(toMajor)) to = "";
12
+ else if (isXVersion(toMinor)) to = `<${Number(toMajor) + 1}.0.0-0`;
13
+ else if (isXVersion(toPatch)) to = `<${toMajor}.${Number(toMinor) + 1}.0-0`;
14
+ else if (toPreRelease) to = `<=${toMajor}.${toMinor}.${toPatch}-${toPreRelease}`;
15
+ else to = `<=${to}`;
16
+ return `${from} ${to}`.trim();
17
+ });
18
+ }
19
+ function parseComparatorTrim(range) {
20
+ return range.replace(parseRegex(comparatorTrim), "$1$2$3");
21
+ }
22
+ function parseTildeTrim(range) {
23
+ return range.replace(parseRegex(tildeTrim), "$1~");
24
+ }
25
+ function parseCaretTrim(range) {
26
+ return range.replace(parseRegex(caretTrim), "$1^");
27
+ }
28
+ function parseCarets(range) {
29
+ return range.trim().split(/\s+/).map((rangeVersion) => rangeVersion.replace(parseRegex(caret), (_, major, minor, patch, preRelease) => {
30
+ if (isXVersion(major)) return "";
31
+ else if (isXVersion(minor)) return `>=${major}.0.0 <${Number(major) + 1}.0.0-0`;
32
+ else if (isXVersion(patch)) if (major === "0") return `>=${major}.${minor}.0 <${major}.${Number(minor) + 1}.0-0`;
33
+ else return `>=${major}.${minor}.0 <${Number(major) + 1}.0.0-0`;
34
+ else if (preRelease) if (major === "0") if (minor === "0") return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${minor}.${Number(patch) + 1}-0`;
35
+ else return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${Number(minor) + 1}.0-0`;
36
+ else return `>=${major}.${minor}.${patch}-${preRelease} <${Number(major) + 1}.0.0-0`;
37
+ else {
38
+ if (major === "0") if (minor === "0") return `>=${major}.${minor}.${patch} <${major}.${minor}.${Number(patch) + 1}-0`;
39
+ else return `>=${major}.${minor}.${patch} <${major}.${Number(minor) + 1}.0-0`;
40
+ return `>=${major}.${minor}.${patch} <${Number(major) + 1}.0.0-0`;
41
+ }
42
+ })).join(" ");
43
+ }
44
+ function parseTildes(range) {
45
+ return range.trim().split(/\s+/).map((rangeVersion) => rangeVersion.replace(parseRegex(tilde), (_, major, minor, patch, preRelease) => {
46
+ if (isXVersion(major)) return "";
47
+ else if (isXVersion(minor)) return `>=${major}.0.0 <${Number(major) + 1}.0.0-0`;
48
+ else if (isXVersion(patch)) return `>=${major}.${minor}.0 <${major}.${Number(minor) + 1}.0-0`;
49
+ else if (preRelease) return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${Number(minor) + 1}.0-0`;
50
+ return `>=${major}.${minor}.${patch} <${major}.${Number(minor) + 1}.0-0`;
51
+ })).join(" ");
52
+ }
53
+ function parseXRanges(range) {
54
+ return range.split(/\s+/).map((rangeVersion) => rangeVersion.trim().replace(parseRegex(xRange), (ret, gtlt, major, minor, patch, preRelease) => {
55
+ const isXMajor = isXVersion(major);
56
+ const isXMinor = isXMajor || isXVersion(minor);
57
+ const isXPatch = isXMinor || isXVersion(patch);
58
+ if (gtlt === "=" && isXPatch) gtlt = "";
59
+ preRelease = "";
60
+ if (isXMajor) if (gtlt === ">" || gtlt === "<") return "<0.0.0-0";
61
+ else return "*";
62
+ else if (gtlt && isXPatch) {
63
+ if (isXMinor) minor = 0;
64
+ patch = 0;
65
+ if (gtlt === ">") {
66
+ gtlt = ">=";
67
+ if (isXMinor) {
68
+ major = Number(major) + 1;
69
+ minor = 0;
70
+ patch = 0;
71
+ } else {
72
+ minor = Number(minor) + 1;
73
+ patch = 0;
74
+ }
75
+ } else if (gtlt === "<=") {
76
+ gtlt = "<";
77
+ if (isXMinor) major = Number(major) + 1;
78
+ else minor = Number(minor) + 1;
79
+ }
80
+ if (gtlt === "<") preRelease = "-0";
81
+ return `${gtlt + major}.${minor}.${patch}${preRelease}`;
82
+ } else if (isXMinor) return `>=${major}.0.0${preRelease} <${Number(major) + 1}.0.0-0`;
83
+ else if (isXPatch) return `>=${major}.${minor}.0${preRelease} <${major}.${Number(minor) + 1}.0-0`;
84
+ return ret;
85
+ })).join(" ");
86
+ }
87
+ function parseStar(range) {
88
+ return range.trim().replace(parseRegex(star), "");
89
+ }
90
+ function parseGTE0(comparatorString) {
91
+ return comparatorString.trim().replace(parseRegex(gte0), "");
92
+ }
93
+
94
+ //#endregion
95
+ export { parseCaretTrim, parseCarets, parseComparatorTrim, parseGTE0, parseHyphen, parseStar, parseTildeTrim, parseTildes, parseXRanges };
96
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","names":[],"sources":["../../../src/utils/semver/parser.ts"],"sourcesContent":["// fork from https://github.com/originjs/vite-plugin-federation/blob/v1.1.12/packages/lib/src/utils/semver/index.ts\n// Copyright (c)\n// vite-plugin-federation is licensed under Mulan PSL v2.\n// You can use this software according to the terms and conditions of the Mulan PSL v2.\n// You may obtain a copy of Mulan PSL v2 at:\n// http://license.coscl.org.cn/MulanPSL2\n// THIS SOFTWARE IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.\n// See the Mulan PSL v2 for more details.\n\nimport { isXVersion, parseRegex } from './utils';\nimport {\n caret,\n caretTrim,\n comparatorTrim,\n gte0,\n hyphenRange,\n star,\n tilde,\n tildeTrim,\n xRange,\n} from './constants';\n\nexport function parseHyphen(range: string): string {\n return range.replace(\n parseRegex(hyphenRange),\n (\n _range,\n from,\n fromMajor,\n fromMinor,\n fromPatch,\n _fromPreRelease,\n _fromBuild,\n to,\n toMajor,\n toMinor,\n toPatch,\n toPreRelease,\n ) => {\n if (isXVersion(fromMajor)) {\n from = '';\n } else if (isXVersion(fromMinor)) {\n from = `>=${fromMajor}.0.0`;\n } else if (isXVersion(fromPatch)) {\n from = `>=${fromMajor}.${fromMinor}.0`;\n } else {\n from = `>=${from}`;\n }\n\n if (isXVersion(toMajor)) {\n to = '';\n } else if (isXVersion(toMinor)) {\n to = `<${Number(toMajor) + 1}.0.0-0`;\n } else if (isXVersion(toPatch)) {\n to = `<${toMajor}.${Number(toMinor) + 1}.0-0`;\n } else if (toPreRelease) {\n to = `<=${toMajor}.${toMinor}.${toPatch}-${toPreRelease}`;\n } else {\n to = `<=${to}`;\n }\n\n return `${from} ${to}`.trim();\n },\n );\n}\n\nexport function parseComparatorTrim(range: string): string {\n return range.replace(parseRegex(comparatorTrim), '$1$2$3');\n}\n\nexport function parseTildeTrim(range: string): string {\n return range.replace(parseRegex(tildeTrim), '$1~');\n}\n\nexport function parseCaretTrim(range: string): string {\n return range.replace(parseRegex(caretTrim), '$1^');\n}\n\nexport function parseCarets(range: string): string {\n return range\n .trim()\n .split(/\\s+/)\n .map((rangeVersion) =>\n rangeVersion.replace(\n parseRegex(caret),\n (_, major, minor, patch, preRelease) => {\n if (isXVersion(major)) {\n return '';\n } else if (isXVersion(minor)) {\n return `>=${major}.0.0 <${Number(major) + 1}.0.0-0`;\n } else if (isXVersion(patch)) {\n if (major === '0') {\n return `>=${major}.${minor}.0 <${major}.${Number(minor) + 1}.0-0`;\n } else {\n return `>=${major}.${minor}.0 <${Number(major) + 1}.0.0-0`;\n }\n } else if (preRelease) {\n if (major === '0') {\n if (minor === '0') {\n return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${minor}.${\n Number(patch) + 1\n }-0`;\n } else {\n return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${\n Number(minor) + 1\n }.0-0`;\n }\n } else {\n return `>=${major}.${minor}.${patch}-${preRelease} <${\n Number(major) + 1\n }.0.0-0`;\n }\n } else {\n if (major === '0') {\n if (minor === '0') {\n return `>=${major}.${minor}.${patch} <${major}.${minor}.${\n Number(patch) + 1\n }-0`;\n } else {\n return `>=${major}.${minor}.${patch} <${major}.${\n Number(minor) + 1\n }.0-0`;\n }\n }\n\n return `>=${major}.${minor}.${patch} <${Number(major) + 1}.0.0-0`;\n }\n },\n ),\n )\n .join(' ');\n}\n\nexport function parseTildes(range: string): string {\n return range\n .trim()\n .split(/\\s+/)\n .map((rangeVersion) =>\n rangeVersion.replace(\n parseRegex(tilde),\n (_, major, minor, patch, preRelease) => {\n if (isXVersion(major)) {\n return '';\n } else if (isXVersion(minor)) {\n return `>=${major}.0.0 <${Number(major) + 1}.0.0-0`;\n } else if (isXVersion(patch)) {\n return `>=${major}.${minor}.0 <${major}.${Number(minor) + 1}.0-0`;\n } else if (preRelease) {\n return `>=${major}.${minor}.${patch}-${preRelease} <${major}.${\n Number(minor) + 1\n }.0-0`;\n }\n\n return `>=${major}.${minor}.${patch} <${major}.${\n Number(minor) + 1\n }.0-0`;\n },\n ),\n )\n .join(' ');\n}\n\nexport function parseXRanges(range: string): string {\n return range\n .split(/\\s+/)\n .map((rangeVersion) =>\n rangeVersion\n .trim()\n .replace(\n parseRegex(xRange),\n (ret, gtlt, major, minor, patch, preRelease) => {\n const isXMajor = isXVersion(major);\n const isXMinor = isXMajor || isXVersion(minor);\n const isXPatch = isXMinor || isXVersion(patch);\n\n if (gtlt === '=' && isXPatch) {\n gtlt = '';\n }\n\n preRelease = '';\n\n if (isXMajor) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n return '<0.0.0-0';\n } else {\n // nothing is forbidden\n return '*';\n }\n } else if (gtlt && isXPatch) {\n // replace X with 0\n if (isXMinor) {\n minor = 0;\n }\n\n patch = 0;\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>=';\n\n if (isXMinor) {\n major = Number(major) + 1;\n minor = 0;\n patch = 0;\n } else {\n minor = Number(minor) + 1;\n patch = 0;\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should pass\n // Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<';\n\n if (isXMinor) {\n major = Number(major) + 1;\n } else {\n minor = Number(minor) + 1;\n }\n }\n\n if (gtlt === '<') {\n preRelease = '-0';\n }\n\n return `${gtlt + major}.${minor}.${patch}${preRelease}`;\n } else if (isXMinor) {\n return `>=${major}.0.0${preRelease} <${Number(major) + 1}.0.0-0`;\n } else if (isXPatch) {\n return `>=${major}.${minor}.0${preRelease} <${major}.${\n Number(minor) + 1\n }.0-0`;\n }\n\n return ret;\n },\n ),\n )\n .join(' ');\n}\n\nexport function parseStar(range: string): string {\n return range.trim().replace(parseRegex(star), '');\n}\n\nexport function parseGTE0(comparatorString: string): string {\n return comparatorString.trim().replace(parseRegex(gte0), '');\n}\n"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ const require_constants = require('./constants.cjs');
2
+
3
+ //#region src/utils/semver/utils.ts
4
+ function parseRegex(source) {
5
+ return new RegExp(source);
6
+ }
7
+ function isXVersion(version) {
8
+ return !version || version.toLowerCase() === "x" || version === "*";
9
+ }
10
+ function pipe(...fns) {
11
+ return (x) => fns.reduce((v, f) => f(v), x);
12
+ }
13
+ function extractComparator(comparatorString) {
14
+ return comparatorString.match(parseRegex(require_constants.comparator));
15
+ }
16
+ function combineVersion(major, minor, patch, preRelease) {
17
+ const mainVersion = `${major}.${minor}.${patch}`;
18
+ if (preRelease) return `${mainVersion}-${preRelease}`;
19
+ return mainVersion;
20
+ }
21
+
22
+ //#endregion
23
+ exports.combineVersion = combineVersion;
24
+ exports.extractComparator = extractComparator;
25
+ exports.isXVersion = isXVersion;
26
+ exports.parseRegex = parseRegex;
27
+ exports.pipe = pipe;
28
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","names":["comparator"],"sources":["../../../src/utils/semver/utils.ts"],"sourcesContent":["// fork from https://github.com/originjs/vite-plugin-federation/blob/v1.1.12/packages/lib/src/utils/semver/index.ts\n// Copyright (c)\n// vite-plugin-federation is licensed under Mulan PSL v2.\n// You can use this software according to the terms and conditions of the Mulan PSL v2.\n// You may obtain a copy of Mulan PSL v2 at:\n// http://license.coscl.org.cn/MulanPSL2\n// THIS SOFTWARE IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.\n// See the Mulan PSL v2 for more details.\n\nimport { comparator } from './constants';\n\nexport function parseRegex(source: string): RegExp {\n return new RegExp(source);\n}\n\nexport function isXVersion(version: string): boolean {\n return !version || version.toLowerCase() === 'x' || version === '*';\n}\n\nexport function pipe<TArgs extends any[], R1, R2, R3, R4, R5, R6, R7>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n f4: (a: R3) => R4,\n f5: (a: R4) => R5,\n f6: (a: R5) => R6,\n f7: (a: R6) => R7,\n): (...args: TArgs) => R7;\nexport function pipe<TArgs extends any[], R1, R2, R3, R4, R5, R6>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n f4: (a: R3) => R4,\n f5: (a: R4) => R5,\n f6: (a: R5) => R6,\n): (...args: TArgs) => R6;\nexport function pipe<TArgs extends any[], R1, R2, R3, R4, R5>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n f4: (a: R3) => R4,\n f5: (a: R4) => R5,\n): (...args: TArgs) => R5;\nexport function pipe<TArgs extends any[], R1, R2, R3, R4>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n f4: (a: R3) => R4,\n): (...args: TArgs) => R4;\nexport function pipe<TArgs extends any[], R1, R2, R3>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n): (...args: TArgs) => R3;\nexport function pipe<TArgs extends any[], R1, R2>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n): (...args: TArgs) => R2;\nexport function pipe<TArgs extends any[], R1>(\n f1: (...args: TArgs) => R1,\n): (...args: TArgs) => R1;\nexport function pipe(...fns: ((params: any) => any)[]) {\n return (x: unknown): any => fns.reduce((v, f) => f(v), x);\n}\n\nexport function extractComparator(\n comparatorString: string,\n): RegExpMatchArray | null {\n return comparatorString.match(parseRegex(comparator));\n}\n\nexport function combineVersion(\n major: string,\n minor: string,\n patch: string,\n preRelease: string,\n): string {\n const mainVersion = `${major}.${minor}.${patch}`;\n\n if (preRelease) {\n return `${mainVersion}-${preRelease}`;\n }\n\n return mainVersion;\n}\n"],"mappings":";;;AAWA,SAAgB,WAAW,QAAwB;AACjD,QAAO,IAAI,OAAO,OAAO;;AAG3B,SAAgB,WAAW,SAA0B;AACnD,QAAO,CAAC,WAAW,QAAQ,aAAa,KAAK,OAAO,YAAY;;AA6ClE,SAAgB,KAAK,GAAG,KAA+B;AACrD,SAAQ,MAAoB,IAAI,QAAQ,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE;;AAG3D,SAAgB,kBACd,kBACyB;AACzB,QAAO,iBAAiB,MAAM,WAAWA,6BAAW,CAAC;;AAGvD,SAAgB,eACd,OACA,OACA,OACA,YACQ;CACR,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG;AAEzC,KAAI,WACF,QAAO,GAAG,YAAY,GAAG;AAG3B,QAAO"}
@@ -0,0 +1,24 @@
1
+ import { comparator } from "./constants.js";
2
+
3
+ //#region src/utils/semver/utils.ts
4
+ function parseRegex(source) {
5
+ return new RegExp(source);
6
+ }
7
+ function isXVersion(version) {
8
+ return !version || version.toLowerCase() === "x" || version === "*";
9
+ }
10
+ function pipe(...fns) {
11
+ return (x) => fns.reduce((v, f) => f(v), x);
12
+ }
13
+ function extractComparator(comparatorString) {
14
+ return comparatorString.match(parseRegex(comparator));
15
+ }
16
+ function combineVersion(major, minor, patch, preRelease) {
17
+ const mainVersion = `${major}.${minor}.${patch}`;
18
+ if (preRelease) return `${mainVersion}-${preRelease}`;
19
+ return mainVersion;
20
+ }
21
+
22
+ //#endregion
23
+ export { combineVersion, extractComparator, isXVersion, parseRegex, pipe };
24
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../src/utils/semver/utils.ts"],"sourcesContent":["// fork from https://github.com/originjs/vite-plugin-federation/blob/v1.1.12/packages/lib/src/utils/semver/index.ts\n// Copyright (c)\n// vite-plugin-federation is licensed under Mulan PSL v2.\n// You can use this software according to the terms and conditions of the Mulan PSL v2.\n// You may obtain a copy of Mulan PSL v2 at:\n// http://license.coscl.org.cn/MulanPSL2\n// THIS SOFTWARE IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.\n// See the Mulan PSL v2 for more details.\n\nimport { comparator } from './constants';\n\nexport function parseRegex(source: string): RegExp {\n return new RegExp(source);\n}\n\nexport function isXVersion(version: string): boolean {\n return !version || version.toLowerCase() === 'x' || version === '*';\n}\n\nexport function pipe<TArgs extends any[], R1, R2, R3, R4, R5, R6, R7>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n f4: (a: R3) => R4,\n f5: (a: R4) => R5,\n f6: (a: R5) => R6,\n f7: (a: R6) => R7,\n): (...args: TArgs) => R7;\nexport function pipe<TArgs extends any[], R1, R2, R3, R4, R5, R6>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n f4: (a: R3) => R4,\n f5: (a: R4) => R5,\n f6: (a: R5) => R6,\n): (...args: TArgs) => R6;\nexport function pipe<TArgs extends any[], R1, R2, R3, R4, R5>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n f4: (a: R3) => R4,\n f5: (a: R4) => R5,\n): (...args: TArgs) => R5;\nexport function pipe<TArgs extends any[], R1, R2, R3, R4>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n f4: (a: R3) => R4,\n): (...args: TArgs) => R4;\nexport function pipe<TArgs extends any[], R1, R2, R3>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n f3: (a: R2) => R3,\n): (...args: TArgs) => R3;\nexport function pipe<TArgs extends any[], R1, R2>(\n f1: (...args: TArgs) => R1,\n f2: (a: R1) => R2,\n): (...args: TArgs) => R2;\nexport function pipe<TArgs extends any[], R1>(\n f1: (...args: TArgs) => R1,\n): (...args: TArgs) => R1;\nexport function pipe(...fns: ((params: any) => any)[]) {\n return (x: unknown): any => fns.reduce((v, f) => f(v), x);\n}\n\nexport function extractComparator(\n comparatorString: string,\n): RegExpMatchArray | null {\n return comparatorString.match(parseRegex(comparator));\n}\n\nexport function combineVersion(\n major: string,\n minor: string,\n patch: string,\n preRelease: string,\n): string {\n const mainVersion = `${major}.${minor}.${patch}`;\n\n if (preRelease) {\n return `${mainVersion}-${preRelease}`;\n }\n\n return mainVersion;\n}\n"],"mappings":";;;AAWA,SAAgB,WAAW,QAAwB;AACjD,QAAO,IAAI,OAAO,OAAO;;AAG3B,SAAgB,WAAW,SAA0B;AACnD,QAAO,CAAC,WAAW,QAAQ,aAAa,KAAK,OAAO,YAAY;;AA6ClE,SAAgB,KAAK,GAAG,KAA+B;AACrD,SAAQ,MAAoB,IAAI,QAAQ,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE;;AAG3D,SAAgB,kBACd,kBACyB;AACzB,QAAO,iBAAiB,MAAM,WAAW,WAAW,CAAC;;AAGvD,SAAgB,eACd,OACA,OACA,OACA,YACQ;CACR,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG;AAEzC,KAAI,WACF,QAAO,GAAG,YAAY,GAAG;AAG3B,QAAO"}