@module-federation/runtime-core 0.0.0-chore-bump-node-22-20260710161714
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +13 -0
- package/dist/LICENSE +21 -0
- package/dist/_virtual/_rolldown/runtime.cjs +19 -0
- package/dist/_virtual/_rolldown/runtime.js +18 -0
- package/dist/constant.cjs +9 -0
- package/dist/constant.cjs.map +1 -0
- package/dist/constant.js +7 -0
- package/dist/constant.js.map +1 -0
- package/dist/core.cjs +161 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +197 -0
- package/dist/core.js +161 -0
- package/dist/core.js.map +1 -0
- package/dist/global.cjs +160 -0
- package/dist/global.cjs.map +1 -0
- package/dist/global.d.ts +45 -0
- package/dist/global.js +142 -0
- package/dist/global.js.map +1 -0
- package/dist/helpers.cjs +44 -0
- package/dist/helpers.cjs.map +1 -0
- package/dist/helpers.d.ts +30 -0
- package/dist/helpers.js +44 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.cjs +60 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/module/index.cjs +266 -0
- package/dist/module/index.cjs.map +1 -0
- package/dist/module/index.d.ts +32 -0
- package/dist/module/index.js +266 -0
- package/dist/module/index.js.map +1 -0
- package/dist/plugins/generate-preload-assets.cjs +182 -0
- package/dist/plugins/generate-preload-assets.cjs.map +1 -0
- package/dist/plugins/generate-preload-assets.js +182 -0
- package/dist/plugins/generate-preload-assets.js.map +1 -0
- package/dist/plugins/snapshot/SnapshotHandler.cjs +215 -0
- package/dist/plugins/snapshot/SnapshotHandler.cjs.map +1 -0
- package/dist/plugins/snapshot/SnapshotHandler.d.ts +69 -0
- package/dist/plugins/snapshot/SnapshotHandler.js +214 -0
- package/dist/plugins/snapshot/SnapshotHandler.js.map +1 -0
- package/dist/plugins/snapshot/index.cjs +67 -0
- package/dist/plugins/snapshot/index.cjs.map +1 -0
- package/dist/plugins/snapshot/index.js +66 -0
- package/dist/plugins/snapshot/index.js.map +1 -0
- package/dist/remote/index.cjs +445 -0
- package/dist/remote/index.cjs.map +1 -0
- package/dist/remote/index.d.ts +145 -0
- package/dist/remote/index.js +445 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/shared/index.cjs +418 -0
- package/dist/shared/index.cjs.map +1 -0
- package/dist/shared/index.d.ts +104 -0
- package/dist/shared/index.js +418 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/type/config.d.ts +130 -0
- package/dist/type/index.cjs +13 -0
- package/dist/type/index.cjs.map +1 -0
- package/dist/type/index.d.ts +11 -0
- package/dist/type/index.js +8 -0
- package/dist/type/index.js.map +1 -0
- package/dist/type/plugin.d.ts +27 -0
- package/dist/type/preload.d.ts +54 -0
- package/dist/types.cjs +0 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.js +1 -0
- package/dist/utils/context.cjs +45 -0
- package/dist/utils/context.cjs.map +1 -0
- package/dist/utils/context.d.ts +1 -0
- package/dist/utils/context.js +44 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/env.cjs +10 -0
- package/dist/utils/env.cjs.map +1 -0
- package/dist/utils/env.d.ts +1 -0
- package/dist/utils/env.js +10 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/hooks/asyncHook.cjs +26 -0
- package/dist/utils/hooks/asyncHook.cjs.map +1 -0
- package/dist/utils/hooks/asyncHook.d.ts +10 -0
- package/dist/utils/hooks/asyncHook.js +26 -0
- package/dist/utils/hooks/asyncHook.js.map +1 -0
- package/dist/utils/hooks/asyncWaterfallHooks.cjs +44 -0
- package/dist/utils/hooks/asyncWaterfallHooks.cjs.map +1 -0
- package/dist/utils/hooks/asyncWaterfallHooks.d.ts +12 -0
- package/dist/utils/hooks/asyncWaterfallHooks.js +44 -0
- package/dist/utils/hooks/asyncWaterfallHooks.js.map +1 -0
- package/dist/utils/hooks/index.cjs +5 -0
- package/dist/utils/hooks/index.d.ts +5 -0
- package/dist/utils/hooks/index.js +7 -0
- package/dist/utils/hooks/pluginSystem.cjs +37 -0
- package/dist/utils/hooks/pluginSystem.cjs.map +1 -0
- package/dist/utils/hooks/pluginSystem.d.ts +19 -0
- package/dist/utils/hooks/pluginSystem.js +37 -0
- package/dist/utils/hooks/pluginSystem.js.map +1 -0
- package/dist/utils/hooks/syncHook.cjs +37 -0
- package/dist/utils/hooks/syncHook.cjs.map +1 -0
- package/dist/utils/hooks/syncHook.d.ts +16 -0
- package/dist/utils/hooks/syncHook.js +36 -0
- package/dist/utils/hooks/syncHook.js.map +1 -0
- package/dist/utils/hooks/syncWaterfallHook.cjs +40 -0
- package/dist/utils/hooks/syncWaterfallHook.cjs.map +1 -0
- package/dist/utils/hooks/syncWaterfallHook.d.ts +11 -0
- package/dist/utils/hooks/syncWaterfallHook.js +39 -0
- package/dist/utils/hooks/syncWaterfallHook.js.map +1 -0
- package/dist/utils/index.cjs +8 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/load.cjs +214 -0
- package/dist/utils/load.cjs.map +1 -0
- package/dist/utils/load.d.ts +16 -0
- package/dist/utils/load.js +212 -0
- package/dist/utils/load.js.map +1 -0
- package/dist/utils/logger.cjs +34 -0
- package/dist/utils/logger.cjs.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.js +31 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/manifest.cjs +56 -0
- package/dist/utils/manifest.cjs.map +1 -0
- package/dist/utils/manifest.d.ts +10 -0
- package/dist/utils/manifest.js +53 -0
- package/dist/utils/manifest.js.map +1 -0
- package/dist/utils/plugin.cjs +27 -0
- package/dist/utils/plugin.cjs.map +1 -0
- package/dist/utils/plugin.d.ts +1 -0
- package/dist/utils/plugin.js +27 -0
- package/dist/utils/plugin.js.map +1 -0
- package/dist/utils/preload.cjs +212 -0
- package/dist/utils/preload.cjs.map +1 -0
- package/dist/utils/preload.d.ts +8 -0
- package/dist/utils/preload.js +209 -0
- package/dist/utils/preload.js.map +1 -0
- package/dist/utils/semver/compare.cjs +48 -0
- package/dist/utils/semver/compare.cjs.map +1 -0
- package/dist/utils/semver/compare.js +47 -0
- package/dist/utils/semver/compare.js.map +1 -0
- package/dist/utils/semver/constants.cjs +41 -0
- package/dist/utils/semver/constants.cjs.map +1 -0
- package/dist/utils/semver/constants.js +31 -0
- package/dist/utils/semver/constants.js.map +1 -0
- package/dist/utils/semver/index.cjs +68 -0
- package/dist/utils/semver/index.cjs.map +1 -0
- package/dist/utils/semver/index.d.ts +5 -0
- package/dist/utils/semver/index.js +68 -0
- package/dist/utils/semver/index.js.map +1 -0
- package/dist/utils/semver/parser.cjs +104 -0
- package/dist/utils/semver/parser.cjs.map +1 -0
- package/dist/utils/semver/parser.js +96 -0
- package/dist/utils/semver/parser.js.map +1 -0
- package/dist/utils/semver/utils.cjs +28 -0
- package/dist/utils/semver/utils.cjs.map +1 -0
- package/dist/utils/semver/utils.js +24 -0
- package/dist/utils/semver/utils.js.map +1 -0
- package/dist/utils/share.cjs +284 -0
- package/dist/utils/share.cjs.map +1 -0
- package/dist/utils/share.d.ts +23 -0
- package/dist/utils/share.js +278 -0
- package/dist/utils/share.js.map +1 -0
- package/dist/utils/tool.cjs +82 -0
- package/dist/utils/tool.cjs.map +1 -0
- package/dist/utils/tool.d.ts +8 -0
- package/dist/utils/tool.js +71 -0
- package/dist/utils/tool.js.map +1 -0
- package/package.json +65 -0
|
@@ -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"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
const require_logger = require('./logger.cjs');
|
|
2
|
+
const require_tool = require('./tool.cjs');
|
|
3
|
+
const require_global = require('../global.cjs');
|
|
4
|
+
const require_constant = require('../constant.cjs');
|
|
5
|
+
const require_index = require('./semver/index.cjs');
|
|
6
|
+
let _module_federation_sdk = require("@module-federation/sdk");
|
|
7
|
+
|
|
8
|
+
//#region src/utils/share.ts
|
|
9
|
+
function formatShare(shareArgs, from, name, shareStrategy) {
|
|
10
|
+
let get;
|
|
11
|
+
if ("get" in shareArgs) get = shareArgs.get;
|
|
12
|
+
else if ("lib" in shareArgs) get = () => Promise.resolve(shareArgs.lib);
|
|
13
|
+
else get = () => Promise.resolve(() => {
|
|
14
|
+
require_logger.error(`Cannot get shared "${name}" from "${from}": neither "get" nor "lib" is provided in the share config.`);
|
|
15
|
+
});
|
|
16
|
+
if (shareArgs.shareConfig?.eager && shareArgs.treeShaking?.mode) require_logger.error(`Invalid shared config for "${name}" from "${from}": cannot use both "eager: true" and "treeShaking.mode" simultaneously. Choose one strategy.`);
|
|
17
|
+
return {
|
|
18
|
+
deps: [],
|
|
19
|
+
useIn: [],
|
|
20
|
+
from,
|
|
21
|
+
loading: null,
|
|
22
|
+
...shareArgs,
|
|
23
|
+
shareConfig: {
|
|
24
|
+
requiredVersion: `^${shareArgs.version}`,
|
|
25
|
+
singleton: false,
|
|
26
|
+
eager: false,
|
|
27
|
+
strictVersion: false,
|
|
28
|
+
...shareArgs.shareConfig
|
|
29
|
+
},
|
|
30
|
+
get,
|
|
31
|
+
loaded: shareArgs?.loaded || "lib" in shareArgs ? true : void 0,
|
|
32
|
+
version: shareArgs.version ?? "0",
|
|
33
|
+
scope: Array.isArray(shareArgs.scope) ? shareArgs.scope : [shareArgs.scope ?? "default"],
|
|
34
|
+
strategy: (shareArgs.strategy ?? shareStrategy) || "version-first",
|
|
35
|
+
treeShaking: shareArgs.treeShaking ? {
|
|
36
|
+
...shareArgs.treeShaking,
|
|
37
|
+
mode: shareArgs.treeShaking.mode ?? "server-calc",
|
|
38
|
+
status: shareArgs.treeShaking.status ?? _module_federation_sdk.TreeShakingStatus.UNKNOWN,
|
|
39
|
+
useIn: []
|
|
40
|
+
} : void 0
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function formatShareConfigs(prevOptions, newOptions) {
|
|
44
|
+
const shareArgs = newOptions.shared || {};
|
|
45
|
+
const from = newOptions.name;
|
|
46
|
+
const newShareInfos = Object.keys(shareArgs).reduce((res, pkgName) => {
|
|
47
|
+
const arrayShareArgs = require_tool.arrayOptions(shareArgs[pkgName]);
|
|
48
|
+
res[pkgName] = res[pkgName] || [];
|
|
49
|
+
arrayShareArgs.forEach((shareConfig) => {
|
|
50
|
+
res[pkgName].push(formatShare(shareConfig, from, pkgName, newOptions.shareStrategy));
|
|
51
|
+
});
|
|
52
|
+
return res;
|
|
53
|
+
}, {});
|
|
54
|
+
const allShareInfos = { ...prevOptions.shared };
|
|
55
|
+
Object.keys(newShareInfos).forEach((shareKey) => {
|
|
56
|
+
if (!allShareInfos[shareKey]) allShareInfos[shareKey] = newShareInfos[shareKey];
|
|
57
|
+
else newShareInfos[shareKey].forEach((newUserSharedOptions) => {
|
|
58
|
+
if (!allShareInfos[shareKey].find((sharedVal) => sharedVal.version === newUserSharedOptions.version)) allShareInfos[shareKey].push(newUserSharedOptions);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
allShareInfos,
|
|
63
|
+
newShareInfos
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function shouldUseTreeShaking(treeShaking, usedExports) {
|
|
67
|
+
if (!treeShaking) return false;
|
|
68
|
+
const { status, mode } = treeShaking;
|
|
69
|
+
if (status === _module_federation_sdk.TreeShakingStatus.NO_USE) return false;
|
|
70
|
+
if (status === _module_federation_sdk.TreeShakingStatus.CALCULATED) return true;
|
|
71
|
+
if (mode === "runtime-infer") {
|
|
72
|
+
if (!usedExports) return true;
|
|
73
|
+
return isMatchUsedExports(treeShaking, usedExports);
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* compare version a and b, return true if a is less than b
|
|
79
|
+
*/
|
|
80
|
+
function versionLt(a, b) {
|
|
81
|
+
const transformInvalidVersion = (version) => {
|
|
82
|
+
if (!Number.isNaN(Number(version))) {
|
|
83
|
+
const splitArr = version.split(".");
|
|
84
|
+
let validVersion = version;
|
|
85
|
+
for (let i = 0; i < 3 - splitArr.length; i++) validVersion += ".0";
|
|
86
|
+
return validVersion;
|
|
87
|
+
}
|
|
88
|
+
return version;
|
|
89
|
+
};
|
|
90
|
+
if (require_index.satisfy(transformInvalidVersion(a), `<=${transformInvalidVersion(b)}`)) return true;
|
|
91
|
+
else return false;
|
|
92
|
+
}
|
|
93
|
+
const findVersion = (shareVersionMap, cb) => {
|
|
94
|
+
const callback = cb || function(prev, cur) {
|
|
95
|
+
return versionLt(prev, cur);
|
|
96
|
+
};
|
|
97
|
+
return Object.keys(shareVersionMap).reduce((prev, cur) => {
|
|
98
|
+
if (!prev) return cur;
|
|
99
|
+
if (callback(prev, cur)) return cur;
|
|
100
|
+
if (prev === "0") return cur;
|
|
101
|
+
return prev;
|
|
102
|
+
}, 0);
|
|
103
|
+
};
|
|
104
|
+
const isLoaded = (shared) => {
|
|
105
|
+
return Boolean(shared.loaded) || typeof shared.lib === "function";
|
|
106
|
+
};
|
|
107
|
+
const isLoading = (shared) => {
|
|
108
|
+
return Boolean(shared.loading);
|
|
109
|
+
};
|
|
110
|
+
const isMatchUsedExports = (treeShaking, usedExports) => {
|
|
111
|
+
if (!treeShaking || !usedExports) return false;
|
|
112
|
+
const { usedExports: treeShakingUsedExports } = treeShaking;
|
|
113
|
+
if (!treeShakingUsedExports) return false;
|
|
114
|
+
if (usedExports.every((e) => treeShakingUsedExports.includes(e))) return true;
|
|
115
|
+
return false;
|
|
116
|
+
};
|
|
117
|
+
function findSingletonVersionOrderByVersion(shareScopeMap, scope, pkgName, treeShaking) {
|
|
118
|
+
const versions = shareScopeMap[scope][pkgName];
|
|
119
|
+
let version = "";
|
|
120
|
+
let useTreesShaking = shouldUseTreeShaking(treeShaking);
|
|
121
|
+
const callback = function(prev, cur) {
|
|
122
|
+
if (useTreesShaking) {
|
|
123
|
+
if (!versions[prev].treeShaking) return true;
|
|
124
|
+
if (!versions[cur].treeShaking) return false;
|
|
125
|
+
return !isLoaded(versions[prev].treeShaking) && versionLt(prev, cur);
|
|
126
|
+
}
|
|
127
|
+
return !isLoaded(versions[prev]) && versionLt(prev, cur);
|
|
128
|
+
};
|
|
129
|
+
if (useTreesShaking) {
|
|
130
|
+
version = findVersion(shareScopeMap[scope][pkgName], callback);
|
|
131
|
+
if (version) return {
|
|
132
|
+
version,
|
|
133
|
+
useTreesShaking
|
|
134
|
+
};
|
|
135
|
+
useTreesShaking = false;
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
version: findVersion(shareScopeMap[scope][pkgName], callback),
|
|
139
|
+
useTreesShaking
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
const isLoadingOrLoaded = (shared) => {
|
|
143
|
+
return isLoaded(shared) || isLoading(shared);
|
|
144
|
+
};
|
|
145
|
+
function findSingletonVersionOrderByLoaded(shareScopeMap, scope, pkgName, treeShaking) {
|
|
146
|
+
const versions = shareScopeMap[scope][pkgName];
|
|
147
|
+
let version = "";
|
|
148
|
+
let useTreesShaking = shouldUseTreeShaking(treeShaking);
|
|
149
|
+
const callback = function(prev, cur) {
|
|
150
|
+
if (useTreesShaking) {
|
|
151
|
+
if (!versions[prev].treeShaking) return true;
|
|
152
|
+
if (!versions[cur].treeShaking) return false;
|
|
153
|
+
if (isLoadingOrLoaded(versions[cur].treeShaking)) if (isLoadingOrLoaded(versions[prev].treeShaking)) return Boolean(versionLt(prev, cur));
|
|
154
|
+
else return true;
|
|
155
|
+
if (isLoadingOrLoaded(versions[prev].treeShaking)) return false;
|
|
156
|
+
}
|
|
157
|
+
if (isLoadingOrLoaded(versions[cur])) if (isLoadingOrLoaded(versions[prev])) return Boolean(versionLt(prev, cur));
|
|
158
|
+
else return true;
|
|
159
|
+
if (isLoadingOrLoaded(versions[prev])) return false;
|
|
160
|
+
return versionLt(prev, cur);
|
|
161
|
+
};
|
|
162
|
+
if (useTreesShaking) {
|
|
163
|
+
version = findVersion(shareScopeMap[scope][pkgName], callback);
|
|
164
|
+
if (version) return {
|
|
165
|
+
version,
|
|
166
|
+
useTreesShaking
|
|
167
|
+
};
|
|
168
|
+
useTreesShaking = false;
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
version: findVersion(shareScopeMap[scope][pkgName], callback),
|
|
172
|
+
useTreesShaking
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function getFindShareFunction(strategy) {
|
|
176
|
+
if (strategy === "loaded-first") return findSingletonVersionOrderByLoaded;
|
|
177
|
+
return findSingletonVersionOrderByVersion;
|
|
178
|
+
}
|
|
179
|
+
function getRegisteredShare(localShareScopeMap, pkgName, shareInfo, resolveShare) {
|
|
180
|
+
if (!localShareScopeMap) return;
|
|
181
|
+
const { shareConfig, scope = require_constant.DEFAULT_SCOPE, strategy, treeShaking } = shareInfo;
|
|
182
|
+
const scopes = Array.isArray(scope) ? scope : [scope];
|
|
183
|
+
for (const sc of scopes) if (shareConfig && localShareScopeMap[sc] && localShareScopeMap[sc][pkgName]) {
|
|
184
|
+
const { requiredVersion } = shareConfig;
|
|
185
|
+
const { version: maxOrSingletonVersion, useTreesShaking } = getFindShareFunction(strategy)(localShareScopeMap, sc, pkgName, treeShaking);
|
|
186
|
+
const defaultResolver = () => {
|
|
187
|
+
const shared = localShareScopeMap[sc][pkgName][maxOrSingletonVersion];
|
|
188
|
+
if (shareConfig.singleton) {
|
|
189
|
+
if (typeof requiredVersion === "string" && !require_index.satisfy(maxOrSingletonVersion, requiredVersion)) {
|
|
190
|
+
const msg = `Version ${maxOrSingletonVersion} from ${maxOrSingletonVersion && shared.from} of shared singleton module ${pkgName} does not satisfy the requirement of ${shareInfo.from} which needs ${requiredVersion})`;
|
|
191
|
+
if (shareConfig.strictVersion) require_logger.error(msg);
|
|
192
|
+
else require_logger.warn(msg);
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
shared,
|
|
196
|
+
useTreesShaking
|
|
197
|
+
};
|
|
198
|
+
} else {
|
|
199
|
+
if (requiredVersion === false || requiredVersion === "*") return {
|
|
200
|
+
shared,
|
|
201
|
+
useTreesShaking
|
|
202
|
+
};
|
|
203
|
+
if (require_index.satisfy(maxOrSingletonVersion, requiredVersion)) return {
|
|
204
|
+
shared,
|
|
205
|
+
useTreesShaking
|
|
206
|
+
};
|
|
207
|
+
const _usedTreeShaking = shouldUseTreeShaking(treeShaking);
|
|
208
|
+
if (_usedTreeShaking) for (const [versionKey, versionValue] of Object.entries(localShareScopeMap[sc][pkgName])) {
|
|
209
|
+
if (!shouldUseTreeShaking(versionValue.treeShaking, treeShaking?.usedExports)) continue;
|
|
210
|
+
if (require_index.satisfy(versionKey, requiredVersion)) return {
|
|
211
|
+
shared: versionValue,
|
|
212
|
+
useTreesShaking: _usedTreeShaking
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
for (const [versionKey, versionValue] of Object.entries(localShareScopeMap[sc][pkgName])) if (require_index.satisfy(versionKey, requiredVersion)) return {
|
|
216
|
+
shared: versionValue,
|
|
217
|
+
useTreesShaking: false
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
const params = {
|
|
222
|
+
shareScopeMap: localShareScopeMap,
|
|
223
|
+
scope: sc,
|
|
224
|
+
pkgName,
|
|
225
|
+
version: maxOrSingletonVersion,
|
|
226
|
+
GlobalFederation: require_global.Global.__FEDERATION__,
|
|
227
|
+
shareInfo,
|
|
228
|
+
resolver: defaultResolver
|
|
229
|
+
};
|
|
230
|
+
return (resolveShare.emit(params) || params).resolver();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
function getGlobalShareScope() {
|
|
234
|
+
return require_global.Global.__FEDERATION__.__SHARE__;
|
|
235
|
+
}
|
|
236
|
+
function getTargetSharedOptions(options) {
|
|
237
|
+
const { pkgName, extraOptions, shareInfos } = options;
|
|
238
|
+
const defaultResolver = (sharedOptions) => {
|
|
239
|
+
if (!sharedOptions) return;
|
|
240
|
+
const shareVersionMap = {};
|
|
241
|
+
sharedOptions.forEach((shared) => {
|
|
242
|
+
shareVersionMap[shared.version] = shared;
|
|
243
|
+
});
|
|
244
|
+
const callback = function(prev, cur) {
|
|
245
|
+
return !isLoaded(shareVersionMap[prev]) && versionLt(prev, cur);
|
|
246
|
+
};
|
|
247
|
+
return shareVersionMap[findVersion(shareVersionMap, callback)];
|
|
248
|
+
};
|
|
249
|
+
const resolver = extraOptions?.resolver ?? defaultResolver;
|
|
250
|
+
const isPlainObject = (val) => {
|
|
251
|
+
return val !== null && typeof val === "object" && !Array.isArray(val);
|
|
252
|
+
};
|
|
253
|
+
const merge = (...sources) => {
|
|
254
|
+
const out = {};
|
|
255
|
+
for (const src of sources) {
|
|
256
|
+
if (!src) continue;
|
|
257
|
+
for (const [key, value] of Object.entries(src)) {
|
|
258
|
+
const prev = out[key];
|
|
259
|
+
if (isPlainObject(prev) && isPlainObject(value)) out[key] = merge(prev, value);
|
|
260
|
+
else if (value !== void 0) out[key] = value;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return out;
|
|
264
|
+
};
|
|
265
|
+
return merge(resolver(shareInfos[pkgName]), extraOptions?.customShareInfo);
|
|
266
|
+
}
|
|
267
|
+
const addUseIn = (shared, from) => {
|
|
268
|
+
if (!shared.useIn) shared.useIn = [];
|
|
269
|
+
require_tool.addUniqueItem(shared.useIn, from);
|
|
270
|
+
};
|
|
271
|
+
function directShare(shared, useTreesShaking) {
|
|
272
|
+
if (useTreesShaking && shared.treeShaking) return shared.treeShaking;
|
|
273
|
+
return shared;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
//#endregion
|
|
277
|
+
exports.addUseIn = addUseIn;
|
|
278
|
+
exports.directShare = directShare;
|
|
279
|
+
exports.formatShareConfigs = formatShareConfigs;
|
|
280
|
+
exports.getGlobalShareScope = getGlobalShareScope;
|
|
281
|
+
exports.getRegisteredShare = getRegisteredShare;
|
|
282
|
+
exports.getTargetSharedOptions = getTargetSharedOptions;
|
|
283
|
+
exports.shouldUseTreeShaking = shouldUseTreeShaking;
|
|
284
|
+
//# sourceMappingURL=share.cjs.map
|