every-plugin 2.5.11 → 2.7.1
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/dist/build/shared-deps.cjs +14 -3
- package/dist/build/shared-deps.cjs.map +1 -1
- package/dist/build/shared-deps.d.cts +14 -0
- package/dist/build/shared-deps.d.cts.map +1 -1
- package/dist/build/shared-deps.d.mts +14 -0
- package/dist/build/shared-deps.d.mts.map +1 -1
- package/dist/build/shared-deps.mjs +14 -3
- package/dist/build/shared-deps.mjs.map +1 -1
- package/dist/package.cjs +23 -0
- package/dist/package.cjs.map +1 -0
- package/dist/package.mjs +17 -0
- package/dist/package.mjs.map +1 -0
- package/dist/runtime/mf-config.cjs +28 -7
- package/dist/runtime/mf-config.cjs.map +1 -1
- package/dist/runtime/mf-config.d.cts +25 -38
- package/dist/runtime/mf-config.d.cts.map +1 -1
- package/dist/runtime/mf-config.d.mts +25 -38
- package/dist/runtime/mf-config.d.mts.map +1 -1
- package/dist/runtime/mf-config.mjs +28 -7
- package/dist/runtime/mf-config.mjs.map +1 -1
- package/dist/runtime/services/module-federation.service.cjs +2 -0
- package/dist/runtime/services/module-federation.service.cjs.map +1 -1
- package/dist/runtime/services/module-federation.service.d.cts.map +1 -1
- package/dist/runtime/services/module-federation.service.d.mts.map +1 -1
- package/dist/runtime/services/module-federation.service.mjs +2 -0
- package/dist/runtime/services/module-federation.service.mjs.map +1 -1
- package/package.json +11 -16
- package/src/build/shared-deps.ts +17 -2
- package/src/runtime/mf-config.ts +49 -14
- package/src/runtime/services/module-federation.service.ts +3 -0
- package/dist/orpc-client.cjs +0 -17
- package/dist/orpc-client.d.cts +0 -2
- package/dist/orpc-client.d.mts +0 -2
- package/dist/orpc-client.mjs +0 -5
- package/src/orpc-client.ts +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
let node_module = require("node:module");
|
|
4
3
|
let node_fs = require("node:fs");
|
|
4
|
+
let node_module = require("node:module");
|
|
5
5
|
let node_path = require("node:path");
|
|
6
6
|
let node_url = require("node:url");
|
|
7
7
|
|
|
@@ -18,7 +18,8 @@ const DEFAULT_SHARE_CONFIG = {
|
|
|
18
18
|
requiredVersion: false,
|
|
19
19
|
singleton: true,
|
|
20
20
|
strictVersion: false,
|
|
21
|
-
eager: false
|
|
21
|
+
eager: false,
|
|
22
|
+
shareScope: "default"
|
|
22
23
|
};
|
|
23
24
|
function extractExactVersion(input) {
|
|
24
25
|
const match = input.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
|
|
@@ -26,7 +27,13 @@ function extractExactVersion(input) {
|
|
|
26
27
|
}
|
|
27
28
|
function getInstalledPackageVersion(packageName, fallbackVersion) {
|
|
28
29
|
try {
|
|
29
|
-
|
|
30
|
+
let currentDir = (0, node_path.dirname)(require$1.resolve(packageName));
|
|
31
|
+
for (let i = 0; i < 5; i += 1) {
|
|
32
|
+
const packageJsonPath = (0, node_path.join)(currentDir, "package.json");
|
|
33
|
+
if ((0, node_fs.existsSync)(packageJsonPath)) return JSON.parse((0, node_fs.readFileSync)(packageJsonPath, "utf-8")).version;
|
|
34
|
+
currentDir = (0, node_path.dirname)(currentDir);
|
|
35
|
+
}
|
|
36
|
+
throw new Error(`Could not resolve installed version for ${packageName}`);
|
|
30
37
|
} catch {
|
|
31
38
|
return extractExactVersion(fallbackVersion);
|
|
32
39
|
}
|
|
@@ -48,6 +55,10 @@ const pluginSharedDependencies = {
|
|
|
48
55
|
version: getInstalledPackageVersion("@orpc/contract", pkg.peerDependencies["@orpc/contract"]),
|
|
49
56
|
...DEFAULT_SHARE_CONFIG
|
|
50
57
|
},
|
|
58
|
+
"@orpc/client": {
|
|
59
|
+
version: getInstalledPackageVersion("@orpc/client", pkg.peerDependencies["@orpc/client"]),
|
|
60
|
+
...DEFAULT_SHARE_CONFIG
|
|
61
|
+
},
|
|
51
62
|
"@orpc/server": {
|
|
52
63
|
version: getInstalledPackageVersion("@orpc/server", pkg.peerDependencies["@orpc/server"]),
|
|
53
64
|
...DEFAULT_SHARE_CONFIG
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-deps.cjs","names":["__dirname","require"],"sources":["../../src/build/shared-deps.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst require = createRequire(import.meta.url);\n\nlet pkg: typeof import(\"../../package.json\");\n\ntry {\n pkg = JSON.parse(readFileSync(join(__dirname, \"../../package.json\"), \"utf-8\"));\n} catch {\n pkg = require(\"every-plugin/package.json\");\n}\n\nexport interface SharedDependencyConfig {\n version: string;\n requiredVersion: string | false;\n singleton: boolean;\n strictVersion: boolean;\n eager: boolean;\n}\n\nexport type SharedDependencies = Record<string, SharedDependencyConfig>;\n\nconst DEFAULT_SHARE_CONFIG: Omit<SharedDependencyConfig, \"version\"> = {\n requiredVersion: false,\n singleton: true,\n strictVersion: false,\n eager: false,\n};\n\nfunction extractExactVersion(input: string): string {\n const match = input.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : input.replace(/^[\\^~>=<\\s]+/, \"\");\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackVersion: string): string {\n try {\n
|
|
1
|
+
{"version":3,"file":"shared-deps.cjs","names":["__dirname","require"],"sources":["../../src/build/shared-deps.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst require = createRequire(import.meta.url);\n\nlet pkg: typeof import(\"../../package.json\");\n\ntry {\n pkg = JSON.parse(readFileSync(join(__dirname, \"../../package.json\"), \"utf-8\"));\n} catch {\n pkg = require(\"every-plugin/package.json\");\n}\n\nexport interface SharedDependencyConfig {\n version: string;\n requiredVersion: string | false;\n singleton: boolean;\n strictVersion: boolean;\n eager: boolean;\n shareScope: string;\n}\n\nexport type SharedDependencies = Record<string, SharedDependencyConfig>;\n\nconst DEFAULT_SHARE_CONFIG: Omit<SharedDependencyConfig, \"version\"> = {\n requiredVersion: false,\n singleton: true,\n strictVersion: false,\n eager: false,\n shareScope: \"default\",\n};\n\nfunction extractExactVersion(input: string): string {\n const match = input.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : input.replace(/^[\\^~>=<\\s]+/, \"\");\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackVersion: string): string {\n try {\n let currentDir = dirname(require.resolve(packageName));\n for (let i = 0; i < 5; i += 1) {\n const packageJsonPath = join(currentDir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n return (JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as { version: string }).version;\n }\n currentDir = dirname(currentDir);\n }\n\n throw new Error(`Could not resolve installed version for ${packageName}`);\n } catch {\n return extractExactVersion(fallbackVersion);\n }\n}\n\nexport const pluginSharedDependencies = {\n \"every-plugin\": { version: pkg.version, ...DEFAULT_SHARE_CONFIG },\n effect: {\n version: getInstalledPackageVersion(\"effect\", pkg.peerDependencies.effect),\n ...DEFAULT_SHARE_CONFIG,\n },\n zod: {\n version: getInstalledPackageVersion(\"zod\", pkg.peerDependencies.zod),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/contract\": {\n version: getInstalledPackageVersion(\"@orpc/contract\", pkg.peerDependencies[\"@orpc/contract\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/client\": {\n version: getInstalledPackageVersion(\"@orpc/client\", pkg.peerDependencies[\"@orpc/client\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/server\": {\n version: getInstalledPackageVersion(\"@orpc/server\", pkg.peerDependencies[\"@orpc/server\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n} satisfies SharedDependencies;\n\nexport type PluginSharedDependencyName = keyof typeof pluginSharedDependencies;\n\nexport function getPluginSharedDependencies(): SharedDependencies {\n return pluginSharedDependencies;\n}\n\nexport function getPluginSharedDependenciesVersionRange(): Record<string, string> {\n return Object.fromEntries(\n Object.entries(getPluginSharedDependencies()).map(([name, config]) => [\n name,\n getMajorMinorVersion(config.version),\n ]),\n );\n}\n\nexport function getMajorMinorVersion(version: string): string {\n const clean = version.replace(/^[\\^~>=<]+/, \"\");\n const match = clean.match(/^(\\d+)\\.(\\d+)/);\n if (!match) return \"^0.0.0\";\n return `^${match[1]}.${match[2]}.0`;\n}\n"],"mappings":";;;;;;;;AAKA,MAAMA,+GAAkD,CAAC;AACzD,MAAMC,yFAAwC;AAE9C,IAAI;AAEJ,IAAI;AACF,OAAM,KAAK,oDAAwBD,aAAW,qBAAqB,EAAE,QAAQ,CAAC;QACxE;AACN,OAAMC,UAAQ,4BAA4B;;AAc5C,MAAM,uBAAgE;CACpE,iBAAiB;CACjB,WAAW;CACX,eAAe;CACf,OAAO;CACP,YAAY;CACb;AAED,SAAS,oBAAoB,OAAuB;CAClD,MAAM,QAAQ,MAAM,MAAM,oCAAoC;AAC9D,QAAO,QAAQ,MAAM,KAAK,MAAM,QAAQ,gBAAgB,GAAG;;AAG7D,SAAS,2BAA2B,aAAqB,iBAAiC;AACxF,KAAI;EACF,IAAI,oCAAqBA,UAAQ,QAAQ,YAAY,CAAC;AACtD,OAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;GAC7B,MAAM,sCAAuB,YAAY,eAAe;AACxD,+BAAe,gBAAgB,CAC7B,QAAQ,KAAK,gCAAmB,iBAAiB,QAAQ,CAAC,CAAyB;AAErF,uCAAqB,WAAW;;AAGlC,QAAM,IAAI,MAAM,2CAA2C,cAAc;SACnE;AACN,SAAO,oBAAoB,gBAAgB;;;AAI/C,MAAa,2BAA2B;CACtC,gBAAgB;EAAE,SAAS,IAAI;EAAS,GAAG;EAAsB;CACjE,QAAQ;EACN,SAAS,2BAA2B,UAAU,IAAI,iBAAiB,OAAO;EAC1E,GAAG;EACJ;CACD,KAAK;EACH,SAAS,2BAA2B,OAAO,IAAI,iBAAiB,IAAI;EACpE,GAAG;EACJ;CACD,kBAAkB;EAChB,SAAS,2BAA2B,kBAAkB,IAAI,iBAAiB,kBAAkB;EAC7F,GAAG;EACJ;CACD,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,IAAI,iBAAiB,gBAAgB;EACzF,GAAG;EACJ;CACD,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,IAAI,iBAAiB,gBAAgB;EACzF,GAAG;EACJ;CACF;AAID,SAAgB,8BAAkD;AAChE,QAAO;;AAGT,SAAgB,0CAAkE;AAChF,QAAO,OAAO,YACZ,OAAO,QAAQ,6BAA6B,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,CACpE,MACA,qBAAqB,OAAO,QAAQ,CACrC,CAAC,CACH;;AAGH,SAAgB,qBAAqB,SAAyB;CAE5D,MAAM,QADQ,QAAQ,QAAQ,cAAc,GACzB,CAAC,MAAM,gBAAgB;AAC1C,KAAI,CAAC,MAAO,QAAO;AACnB,QAAO,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG"}
|
|
@@ -5,6 +5,7 @@ interface SharedDependencyConfig {
|
|
|
5
5
|
singleton: boolean;
|
|
6
6
|
strictVersion: boolean;
|
|
7
7
|
eager: boolean;
|
|
8
|
+
shareScope: string;
|
|
8
9
|
}
|
|
9
10
|
type SharedDependencies = Record<string, SharedDependencyConfig>;
|
|
10
11
|
declare const pluginSharedDependencies: {
|
|
@@ -13,6 +14,7 @@ declare const pluginSharedDependencies: {
|
|
|
13
14
|
singleton: boolean;
|
|
14
15
|
strictVersion: boolean;
|
|
15
16
|
eager: boolean;
|
|
17
|
+
shareScope: string;
|
|
16
18
|
version: string;
|
|
17
19
|
};
|
|
18
20
|
effect: {
|
|
@@ -20,6 +22,7 @@ declare const pluginSharedDependencies: {
|
|
|
20
22
|
singleton: boolean;
|
|
21
23
|
strictVersion: boolean;
|
|
22
24
|
eager: boolean;
|
|
25
|
+
shareScope: string;
|
|
23
26
|
version: string;
|
|
24
27
|
};
|
|
25
28
|
zod: {
|
|
@@ -27,6 +30,7 @@ declare const pluginSharedDependencies: {
|
|
|
27
30
|
singleton: boolean;
|
|
28
31
|
strictVersion: boolean;
|
|
29
32
|
eager: boolean;
|
|
33
|
+
shareScope: string;
|
|
30
34
|
version: string;
|
|
31
35
|
};
|
|
32
36
|
"@orpc/contract": {
|
|
@@ -34,6 +38,15 @@ declare const pluginSharedDependencies: {
|
|
|
34
38
|
singleton: boolean;
|
|
35
39
|
strictVersion: boolean;
|
|
36
40
|
eager: boolean;
|
|
41
|
+
shareScope: string;
|
|
42
|
+
version: string;
|
|
43
|
+
};
|
|
44
|
+
"@orpc/client": {
|
|
45
|
+
requiredVersion: string | false;
|
|
46
|
+
singleton: boolean;
|
|
47
|
+
strictVersion: boolean;
|
|
48
|
+
eager: boolean;
|
|
49
|
+
shareScope: string;
|
|
37
50
|
version: string;
|
|
38
51
|
};
|
|
39
52
|
"@orpc/server": {
|
|
@@ -41,6 +54,7 @@ declare const pluginSharedDependencies: {
|
|
|
41
54
|
singleton: boolean;
|
|
42
55
|
strictVersion: boolean;
|
|
43
56
|
eager: boolean;
|
|
57
|
+
shareScope: string;
|
|
44
58
|
version: string;
|
|
45
59
|
};
|
|
46
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-deps.d.cts","names":[],"sources":["../../src/build/shared-deps.ts"],"mappings":";UAgBiB,sBAAA;EACf,OAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,KAAA;AAAA;AAAA,KAGU,kBAAA,GAAqB,MAAA,SAAe,sBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"shared-deps.d.cts","names":[],"sources":["../../src/build/shared-deps.ts"],"mappings":";UAgBiB,sBAAA;EACf,OAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,KAAA;EACA,UAAA;AAAA;AAAA,KAGU,kBAAA,GAAqB,MAAA,SAAe,sBAAA;AAAA,cAgCnC,wBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwBD,0BAAA,gBAA0C,wBAAA;AAAA,iBAEtC,2BAAA,CAAA,GAA+B,kBAAA;AAAA,iBAI/B,uCAAA,CAAA,GAA2C,MAAA;AAAA,iBAS3C,oBAAA,CAAqB,OAAA"}
|
|
@@ -5,6 +5,7 @@ interface SharedDependencyConfig {
|
|
|
5
5
|
singleton: boolean;
|
|
6
6
|
strictVersion: boolean;
|
|
7
7
|
eager: boolean;
|
|
8
|
+
shareScope: string;
|
|
8
9
|
}
|
|
9
10
|
type SharedDependencies = Record<string, SharedDependencyConfig>;
|
|
10
11
|
declare const pluginSharedDependencies: {
|
|
@@ -13,6 +14,7 @@ declare const pluginSharedDependencies: {
|
|
|
13
14
|
singleton: boolean;
|
|
14
15
|
strictVersion: boolean;
|
|
15
16
|
eager: boolean;
|
|
17
|
+
shareScope: string;
|
|
16
18
|
version: string;
|
|
17
19
|
};
|
|
18
20
|
effect: {
|
|
@@ -20,6 +22,7 @@ declare const pluginSharedDependencies: {
|
|
|
20
22
|
singleton: boolean;
|
|
21
23
|
strictVersion: boolean;
|
|
22
24
|
eager: boolean;
|
|
25
|
+
shareScope: string;
|
|
23
26
|
version: string;
|
|
24
27
|
};
|
|
25
28
|
zod: {
|
|
@@ -27,6 +30,7 @@ declare const pluginSharedDependencies: {
|
|
|
27
30
|
singleton: boolean;
|
|
28
31
|
strictVersion: boolean;
|
|
29
32
|
eager: boolean;
|
|
33
|
+
shareScope: string;
|
|
30
34
|
version: string;
|
|
31
35
|
};
|
|
32
36
|
"@orpc/contract": {
|
|
@@ -34,6 +38,15 @@ declare const pluginSharedDependencies: {
|
|
|
34
38
|
singleton: boolean;
|
|
35
39
|
strictVersion: boolean;
|
|
36
40
|
eager: boolean;
|
|
41
|
+
shareScope: string;
|
|
42
|
+
version: string;
|
|
43
|
+
};
|
|
44
|
+
"@orpc/client": {
|
|
45
|
+
requiredVersion: string | false;
|
|
46
|
+
singleton: boolean;
|
|
47
|
+
strictVersion: boolean;
|
|
48
|
+
eager: boolean;
|
|
49
|
+
shareScope: string;
|
|
37
50
|
version: string;
|
|
38
51
|
};
|
|
39
52
|
"@orpc/server": {
|
|
@@ -41,6 +54,7 @@ declare const pluginSharedDependencies: {
|
|
|
41
54
|
singleton: boolean;
|
|
42
55
|
strictVersion: boolean;
|
|
43
56
|
eager: boolean;
|
|
57
|
+
shareScope: string;
|
|
44
58
|
version: string;
|
|
45
59
|
};
|
|
46
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-deps.d.mts","names":[],"sources":["../../src/build/shared-deps.ts"],"mappings":";UAgBiB,sBAAA;EACf,OAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,KAAA;AAAA;AAAA,KAGU,kBAAA,GAAqB,MAAA,SAAe,sBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"shared-deps.d.mts","names":[],"sources":["../../src/build/shared-deps.ts"],"mappings":";UAgBiB,sBAAA;EACf,OAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,KAAA;EACA,UAAA;AAAA;AAAA,KAGU,kBAAA,GAAqB,MAAA,SAAe,sBAAA;AAAA,cAgCnC,wBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwBD,0BAAA,gBAA0C,wBAAA;AAAA,iBAEtC,2BAAA,CAAA,GAA+B,kBAAA;AAAA,iBAI/B,uCAAA,CAAA,GAA2C,MAAA;AAAA,iBAS3C,oBAAA,CAAqB,OAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
|
-
import { readFileSync } from "node:fs";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
|
|
@@ -16,7 +16,8 @@ const DEFAULT_SHARE_CONFIG = {
|
|
|
16
16
|
requiredVersion: false,
|
|
17
17
|
singleton: true,
|
|
18
18
|
strictVersion: false,
|
|
19
|
-
eager: false
|
|
19
|
+
eager: false,
|
|
20
|
+
shareScope: "default"
|
|
20
21
|
};
|
|
21
22
|
function extractExactVersion(input) {
|
|
22
23
|
const match = input.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
|
|
@@ -24,7 +25,13 @@ function extractExactVersion(input) {
|
|
|
24
25
|
}
|
|
25
26
|
function getInstalledPackageVersion(packageName, fallbackVersion) {
|
|
26
27
|
try {
|
|
27
|
-
|
|
28
|
+
let currentDir = dirname(require.resolve(packageName));
|
|
29
|
+
for (let i = 0; i < 5; i += 1) {
|
|
30
|
+
const packageJsonPath = join(currentDir, "package.json");
|
|
31
|
+
if (existsSync(packageJsonPath)) return JSON.parse(readFileSync(packageJsonPath, "utf-8")).version;
|
|
32
|
+
currentDir = dirname(currentDir);
|
|
33
|
+
}
|
|
34
|
+
throw new Error(`Could not resolve installed version for ${packageName}`);
|
|
28
35
|
} catch {
|
|
29
36
|
return extractExactVersion(fallbackVersion);
|
|
30
37
|
}
|
|
@@ -46,6 +53,10 @@ const pluginSharedDependencies = {
|
|
|
46
53
|
version: getInstalledPackageVersion("@orpc/contract", pkg.peerDependencies["@orpc/contract"]),
|
|
47
54
|
...DEFAULT_SHARE_CONFIG
|
|
48
55
|
},
|
|
56
|
+
"@orpc/client": {
|
|
57
|
+
version: getInstalledPackageVersion("@orpc/client", pkg.peerDependencies["@orpc/client"]),
|
|
58
|
+
...DEFAULT_SHARE_CONFIG
|
|
59
|
+
},
|
|
49
60
|
"@orpc/server": {
|
|
50
61
|
version: getInstalledPackageVersion("@orpc/server", pkg.peerDependencies["@orpc/server"]),
|
|
51
62
|
...DEFAULT_SHARE_CONFIG
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-deps.mjs","names":[],"sources":["../../src/build/shared-deps.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst require = createRequire(import.meta.url);\n\nlet pkg: typeof import(\"../../package.json\");\n\ntry {\n pkg = JSON.parse(readFileSync(join(__dirname, \"../../package.json\"), \"utf-8\"));\n} catch {\n pkg = require(\"every-plugin/package.json\");\n}\n\nexport interface SharedDependencyConfig {\n version: string;\n requiredVersion: string | false;\n singleton: boolean;\n strictVersion: boolean;\n eager: boolean;\n}\n\nexport type SharedDependencies = Record<string, SharedDependencyConfig>;\n\nconst DEFAULT_SHARE_CONFIG: Omit<SharedDependencyConfig, \"version\"> = {\n requiredVersion: false,\n singleton: true,\n strictVersion: false,\n eager: false,\n};\n\nfunction extractExactVersion(input: string): string {\n const match = input.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : input.replace(/^[\\^~>=<\\s]+/, \"\");\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackVersion: string): string {\n try {\n
|
|
1
|
+
{"version":3,"file":"shared-deps.mjs","names":[],"sources":["../../src/build/shared-deps.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst require = createRequire(import.meta.url);\n\nlet pkg: typeof import(\"../../package.json\");\n\ntry {\n pkg = JSON.parse(readFileSync(join(__dirname, \"../../package.json\"), \"utf-8\"));\n} catch {\n pkg = require(\"every-plugin/package.json\");\n}\n\nexport interface SharedDependencyConfig {\n version: string;\n requiredVersion: string | false;\n singleton: boolean;\n strictVersion: boolean;\n eager: boolean;\n shareScope: string;\n}\n\nexport type SharedDependencies = Record<string, SharedDependencyConfig>;\n\nconst DEFAULT_SHARE_CONFIG: Omit<SharedDependencyConfig, \"version\"> = {\n requiredVersion: false,\n singleton: true,\n strictVersion: false,\n eager: false,\n shareScope: \"default\",\n};\n\nfunction extractExactVersion(input: string): string {\n const match = input.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : input.replace(/^[\\^~>=<\\s]+/, \"\");\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackVersion: string): string {\n try {\n let currentDir = dirname(require.resolve(packageName));\n for (let i = 0; i < 5; i += 1) {\n const packageJsonPath = join(currentDir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n return (JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as { version: string }).version;\n }\n currentDir = dirname(currentDir);\n }\n\n throw new Error(`Could not resolve installed version for ${packageName}`);\n } catch {\n return extractExactVersion(fallbackVersion);\n }\n}\n\nexport const pluginSharedDependencies = {\n \"every-plugin\": { version: pkg.version, ...DEFAULT_SHARE_CONFIG },\n effect: {\n version: getInstalledPackageVersion(\"effect\", pkg.peerDependencies.effect),\n ...DEFAULT_SHARE_CONFIG,\n },\n zod: {\n version: getInstalledPackageVersion(\"zod\", pkg.peerDependencies.zod),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/contract\": {\n version: getInstalledPackageVersion(\"@orpc/contract\", pkg.peerDependencies[\"@orpc/contract\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/client\": {\n version: getInstalledPackageVersion(\"@orpc/client\", pkg.peerDependencies[\"@orpc/client\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/server\": {\n version: getInstalledPackageVersion(\"@orpc/server\", pkg.peerDependencies[\"@orpc/server\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n} satisfies SharedDependencies;\n\nexport type PluginSharedDependencyName = keyof typeof pluginSharedDependencies;\n\nexport function getPluginSharedDependencies(): SharedDependencies {\n return pluginSharedDependencies;\n}\n\nexport function getPluginSharedDependenciesVersionRange(): Record<string, string> {\n return Object.fromEntries(\n Object.entries(getPluginSharedDependencies()).map(([name, config]) => [\n name,\n getMajorMinorVersion(config.version),\n ]),\n );\n}\n\nexport function getMajorMinorVersion(version: string): string {\n const clean = version.replace(/^[\\^~>=<]+/, \"\");\n const match = clean.match(/^(\\d+)\\.(\\d+)/);\n if (!match) return \"^0.0.0\";\n return `^${match[1]}.${match[2]}.0`;\n}\n"],"mappings":";;;;;;AAKA,MAAM,YAAY,QAAQ,cAAc,OAAO,KAAK,IAAI,CAAC;AACzD,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAE9C,IAAI;AAEJ,IAAI;AACF,OAAM,KAAK,MAAM,aAAa,KAAK,WAAW,qBAAqB,EAAE,QAAQ,CAAC;QACxE;AACN,OAAM,QAAQ,4BAA4B;;AAc5C,MAAM,uBAAgE;CACpE,iBAAiB;CACjB,WAAW;CACX,eAAe;CACf,OAAO;CACP,YAAY;CACb;AAED,SAAS,oBAAoB,OAAuB;CAClD,MAAM,QAAQ,MAAM,MAAM,oCAAoC;AAC9D,QAAO,QAAQ,MAAM,KAAK,MAAM,QAAQ,gBAAgB,GAAG;;AAG7D,SAAS,2BAA2B,aAAqB,iBAAiC;AACxF,KAAI;EACF,IAAI,aAAa,QAAQ,QAAQ,QAAQ,YAAY,CAAC;AACtD,OAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;GAC7B,MAAM,kBAAkB,KAAK,YAAY,eAAe;AACxD,OAAI,WAAW,gBAAgB,CAC7B,QAAQ,KAAK,MAAM,aAAa,iBAAiB,QAAQ,CAAC,CAAyB;AAErF,gBAAa,QAAQ,WAAW;;AAGlC,QAAM,IAAI,MAAM,2CAA2C,cAAc;SACnE;AACN,SAAO,oBAAoB,gBAAgB;;;AAI/C,MAAa,2BAA2B;CACtC,gBAAgB;EAAE,SAAS,IAAI;EAAS,GAAG;EAAsB;CACjE,QAAQ;EACN,SAAS,2BAA2B,UAAU,IAAI,iBAAiB,OAAO;EAC1E,GAAG;EACJ;CACD,KAAK;EACH,SAAS,2BAA2B,OAAO,IAAI,iBAAiB,IAAI;EACpE,GAAG;EACJ;CACD,kBAAkB;EAChB,SAAS,2BAA2B,kBAAkB,IAAI,iBAAiB,kBAAkB;EAC7F,GAAG;EACJ;CACD,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,IAAI,iBAAiB,gBAAgB;EACzF,GAAG;EACJ;CACD,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,IAAI,iBAAiB,gBAAgB;EACzF,GAAG;EACJ;CACF;AAID,SAAgB,8BAAkD;AAChE,QAAO;;AAGT,SAAgB,0CAAkE;AAChF,QAAO,OAAO,YACZ,OAAO,QAAQ,6BAA6B,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,CACpE,MACA,qBAAqB,OAAO,QAAQ,CACrC,CAAC,CACH;;AAGH,SAAgB,qBAAqB,SAAyB;CAE5D,MAAM,QADQ,QAAQ,QAAQ,cAAc,GACzB,CAAC,MAAM,gBAAgB;AAC1C,KAAI,CAAC,MAAO,QAAO;AACnB,QAAO,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG"}
|
package/dist/package.cjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
//#region package.json
|
|
3
|
+
var peerDependencies = {
|
|
4
|
+
"@rspack/core": "catalog:",
|
|
5
|
+
"typescript": "^5.9.3",
|
|
6
|
+
"effect": "catalog:",
|
|
7
|
+
"zod": "catalog:",
|
|
8
|
+
"@orpc/contract": "catalog:",
|
|
9
|
+
"@orpc/server": "catalog:",
|
|
10
|
+
"@orpc/client": "catalog:",
|
|
11
|
+
"@orpc/openapi": "catalog:",
|
|
12
|
+
"@orpc/zod": "catalog:",
|
|
13
|
+
"@orpc/tanstack-query": "catalog:"
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
Object.defineProperty(exports, 'peerDependencies', {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () {
|
|
20
|
+
return peerDependencies;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=package.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.cjs","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
|
package/dist/package.mjs
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region package.json
|
|
2
|
+
var peerDependencies = {
|
|
3
|
+
"@rspack/core": "catalog:",
|
|
4
|
+
"typescript": "^5.9.3",
|
|
5
|
+
"effect": "catalog:",
|
|
6
|
+
"zod": "catalog:",
|
|
7
|
+
"@orpc/contract": "catalog:",
|
|
8
|
+
"@orpc/server": "catalog:",
|
|
9
|
+
"@orpc/client": "catalog:",
|
|
10
|
+
"@orpc/openapi": "catalog:",
|
|
11
|
+
"@orpc/zod": "catalog:",
|
|
12
|
+
"@orpc/tanstack-query": "catalog:"
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { peerDependencies };
|
|
17
|
+
//# sourceMappingURL=package.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.mjs","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
3
|
+
const require_package = require('../package.cjs');
|
|
4
|
+
let node_fs = require("node:fs");
|
|
3
5
|
let node_module = require("node:module");
|
|
6
|
+
let node_path = require("node:path");
|
|
4
7
|
|
|
5
8
|
//#region src/runtime/mf-config.ts
|
|
6
9
|
const require$1 = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
|
|
7
10
|
function getInstalledPackageVersion(packageName, fallbackRange) {
|
|
8
11
|
try {
|
|
9
|
-
|
|
12
|
+
let currentDir = (0, node_path.dirname)(require$1.resolve(packageName));
|
|
13
|
+
for (let i = 0; i < 5; i += 1) {
|
|
14
|
+
const packageJsonPath = (0, node_path.join)(currentDir, "package.json");
|
|
15
|
+
if ((0, node_fs.existsSync)(packageJsonPath)) return JSON.parse((0, node_fs.readFileSync)(packageJsonPath, "utf-8")).version;
|
|
16
|
+
currentDir = (0, node_path.dirname)(currentDir);
|
|
17
|
+
}
|
|
18
|
+
throw new Error(`Could not resolve installed version for ${packageName}`);
|
|
10
19
|
} catch {
|
|
11
20
|
const match = fallbackRange.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
|
|
12
21
|
return match ? match[0] : fallbackRange.replace(/^[\^~>=<\s]+/, "");
|
|
13
22
|
}
|
|
14
23
|
}
|
|
15
|
-
const PLUGIN_VERSION = "2.
|
|
24
|
+
const PLUGIN_VERSION = "2.7.1";
|
|
16
25
|
const SHARE_CONFIG = {
|
|
17
26
|
singleton: true,
|
|
18
27
|
requiredVersion: false,
|
|
@@ -22,22 +31,32 @@ const SHARE_CONFIG = {
|
|
|
22
31
|
const MF_CORE_SHARED_DEPS = {
|
|
23
32
|
"every-plugin": {
|
|
24
33
|
version: PLUGIN_VERSION,
|
|
34
|
+
shareScope: "default",
|
|
25
35
|
shareConfig: SHARE_CONFIG
|
|
26
36
|
},
|
|
27
37
|
effect: {
|
|
28
|
-
version: getInstalledPackageVersion("effect",
|
|
38
|
+
version: getInstalledPackageVersion("effect", require_package.peerDependencies.effect),
|
|
39
|
+
shareScope: "default",
|
|
29
40
|
shareConfig: SHARE_CONFIG
|
|
30
41
|
},
|
|
31
42
|
zod: {
|
|
32
|
-
version: getInstalledPackageVersion("zod",
|
|
43
|
+
version: getInstalledPackageVersion("zod", require_package.peerDependencies.zod),
|
|
44
|
+
shareScope: "default",
|
|
33
45
|
shareConfig: SHARE_CONFIG
|
|
34
46
|
},
|
|
35
47
|
"@orpc/contract": {
|
|
36
|
-
version: getInstalledPackageVersion("@orpc/contract",
|
|
48
|
+
version: getInstalledPackageVersion("@orpc/contract", require_package.peerDependencies["@orpc/contract"]),
|
|
49
|
+
shareScope: "default",
|
|
50
|
+
shareConfig: SHARE_CONFIG
|
|
51
|
+
},
|
|
52
|
+
"@orpc/client": {
|
|
53
|
+
version: getInstalledPackageVersion("@orpc/client", require_package.peerDependencies["@orpc/client"]),
|
|
54
|
+
shareScope: "default",
|
|
37
55
|
shareConfig: SHARE_CONFIG
|
|
38
56
|
},
|
|
39
57
|
"@orpc/server": {
|
|
40
|
-
version: getInstalledPackageVersion("@orpc/server",
|
|
58
|
+
version: getInstalledPackageVersion("@orpc/server", require_package.peerDependencies["@orpc/server"]),
|
|
59
|
+
shareScope: "default",
|
|
41
60
|
shareConfig: SHARE_CONFIG
|
|
42
61
|
}
|
|
43
62
|
};
|
|
@@ -45,12 +64,14 @@ function buildMergedSharedDeps(appShared) {
|
|
|
45
64
|
const merged = {};
|
|
46
65
|
for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) merged[name] = {
|
|
47
66
|
version: config.version,
|
|
67
|
+
shareScope: config.shareScope,
|
|
48
68
|
shareConfig: config.shareConfig
|
|
49
69
|
};
|
|
50
70
|
if (appShared) for (const [name, config] of Object.entries(appShared)) merged[name] = {
|
|
51
71
|
version: config.version,
|
|
72
|
+
shareScope: config.shareScope ?? "default",
|
|
52
73
|
shareConfig: {
|
|
53
|
-
singleton: config.singleton ??
|
|
74
|
+
singleton: config.singleton ?? false,
|
|
54
75
|
requiredVersion: config.requiredVersion ?? false,
|
|
55
76
|
strictVersion: config.strictVersion ?? false,
|
|
56
77
|
eager: config.eager ?? false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mf-config.cjs","names":["require"],"sources":["../../src/runtime/mf-config.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\n\nconst require = createRequire(import.meta.url);\ndeclare const __EVERY_PLUGIN_VERSION__: string | undefined;\n\nfunction readPackageVersion(): string {\n try {\n return (require(\"../../package.json\") as { version: string }).version;\n } catch {\n return \"0.0.0\";\n }\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackRange: string): string {\n try {\n
|
|
1
|
+
{"version":3,"file":"mf-config.cjs","names":["require"],"sources":["../../src/runtime/mf-config.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport pkg from \"../../package.json\";\n\nconst require = createRequire(import.meta.url);\ndeclare const __EVERY_PLUGIN_VERSION__: string | undefined;\n\nfunction readPackageVersion(): string {\n try {\n return (require(\"../../package.json\") as { version: string }).version;\n } catch {\n return \"0.0.0\";\n }\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackRange: string): string {\n try {\n let currentDir = dirname(require.resolve(packageName));\n for (let i = 0; i < 5; i += 1) {\n const packageJsonPath = join(currentDir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n return (JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as { version: string }).version;\n }\n currentDir = dirname(currentDir);\n }\n\n throw new Error(`Could not resolve installed version for ${packageName}`);\n } catch {\n const match = fallbackRange.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : fallbackRange.replace(/^[\\^~>=<\\s]+/, \"\");\n }\n}\n\nexport const PLUGIN_VERSION =\n typeof __EVERY_PLUGIN_VERSION__ === \"string\" ? __EVERY_PLUGIN_VERSION__ : readPackageVersion();\n\nexport interface SharedConfig {\n singleton: boolean;\n requiredVersion: string | false;\n strictVersion: boolean;\n eager: boolean;\n}\n\nexport const SHARE_CONFIG: SharedConfig = {\n singleton: true,\n requiredVersion: false,\n strictVersion: false,\n eager: false,\n};\n\nexport const MF_CORE_SHARED_DEPS = {\n \"every-plugin\": {\n version: PLUGIN_VERSION,\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n effect: {\n version: getInstalledPackageVersion(\"effect\", pkg.peerDependencies.effect),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n zod: {\n version: getInstalledPackageVersion(\"zod\", pkg.peerDependencies.zod),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/contract\": {\n version: getInstalledPackageVersion(\"@orpc/contract\", pkg.peerDependencies[\"@orpc/contract\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/client\": {\n version: getInstalledPackageVersion(\"@orpc/client\", pkg.peerDependencies[\"@orpc/client\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/server\": {\n version: getInstalledPackageVersion(\"@orpc/server\", pkg.peerDependencies[\"@orpc/server\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n} as const;\n\nexport type CoreSharedDepName = keyof typeof MF_CORE_SHARED_DEPS;\n\nexport interface AppSharedDepConfig {\n version: string;\n requiredVersion?: string | false;\n singleton?: boolean;\n strictVersion?: boolean;\n eager?: boolean;\n shareScope?: string;\n}\n\nexport type AppSharedDeps = Record<string, AppSharedDepConfig>;\n\nexport function buildMergedSharedDeps(\n appShared?: AppSharedDeps,\n): Record<string, { version: string; shareScope: string; shareConfig: SharedConfig }> {\n const merged: Record<string, { version: string; shareScope: string; shareConfig: SharedConfig }> =\n {};\n\n for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) {\n merged[name] = {\n version: config.version,\n shareScope: config.shareScope,\n shareConfig: config.shareConfig,\n };\n }\n\n if (appShared) {\n for (const [name, config] of Object.entries(appShared)) {\n merged[name] = {\n version: config.version,\n shareScope: config.shareScope ?? \"default\",\n shareConfig: {\n singleton: config.singleton ?? false,\n requiredVersion: config.requiredVersion ?? false,\n strictVersion: config.strictVersion ?? false,\n eager: config.eager ?? false,\n },\n };\n }\n }\n\n return merged;\n}\n"],"mappings":";;;;;;;;AAKA,MAAMA,yFAAwC;AAW9C,SAAS,2BAA2B,aAAqB,eAA+B;AACtF,KAAI;EACF,IAAI,oCAAqBA,UAAQ,QAAQ,YAAY,CAAC;AACtD,OAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;GAC7B,MAAM,sCAAuB,YAAY,eAAe;AACxD,+BAAe,gBAAgB,CAC7B,QAAQ,KAAK,gCAAmB,iBAAiB,QAAQ,CAAC,CAAyB;AAErF,uCAAqB,WAAW;;AAGlC,QAAM,IAAI,MAAM,2CAA2C,cAAc;SACnE;EACN,MAAM,QAAQ,cAAc,MAAM,oCAAoC;AACtE,SAAO,QAAQ,MAAM,KAAK,cAAc,QAAQ,gBAAgB,GAAG;;;AAIvE,MAAa;AAUb,MAAa,eAA6B;CACxC,WAAW;CACX,iBAAiB;CACjB,eAAe;CACf,OAAO;CACR;AAED,MAAa,sBAAsB;CACjC,gBAAgB;EACd,SAAS;EACT,YAAY;EACZ,aAAa;EACd;CACD,QAAQ;EACN,SAAS,2BAA2B,2CAA+B,OAAO;EAC1E,YAAY;EACZ,aAAa;EACd;CACD,KAAK;EACH,SAAS,2BAA2B,wCAA4B,IAAI;EACpE,YAAY;EACZ,aAAa;EACd;CACD,kBAAkB;EAChB,SAAS,2BAA2B,mDAAuC,kBAAkB;EAC7F,YAAY;EACZ,aAAa;EACd;CACD,gBAAgB;EACd,SAAS,2BAA2B,iDAAqC,gBAAgB;EACzF,YAAY;EACZ,aAAa;EACd;CACD,gBAAgB;EACd,SAAS,2BAA2B,iDAAqC,gBAAgB;EACzF,YAAY;EACZ,aAAa;EACd;CACF;AAeD,SAAgB,sBACd,WACoF;CACpF,MAAM,SACJ,EAAE;AAEJ,MAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,oBAAoB,CAC9D,QAAO,QAAQ;EACb,SAAS,OAAO;EAChB,YAAY,OAAO;EACnB,aAAa,OAAO;EACrB;AAGH,KAAI,UACF,MAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,UAAU,CACpD,QAAO,QAAQ;EACb,SAAS,OAAO;EAChB,YAAY,OAAO,cAAc;EACjC,aAAa;GACX,WAAW,OAAO,aAAa;GAC/B,iBAAiB,OAAO,mBAAmB;GAC3C,eAAe,OAAO,iBAAiB;GACvC,OAAO,OAAO,SAAS;GACxB;EACF;AAIL,QAAO"}
|
|
@@ -1,56 +1,42 @@
|
|
|
1
1
|
//#region src/runtime/mf-config.d.ts
|
|
2
2
|
declare const PLUGIN_VERSION: string;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
3
|
+
interface SharedConfig {
|
|
4
|
+
singleton: boolean;
|
|
5
|
+
requiredVersion: string | false;
|
|
6
|
+
strictVersion: boolean;
|
|
7
|
+
eager: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const SHARE_CONFIG: SharedConfig;
|
|
9
10
|
declare const MF_CORE_SHARED_DEPS: {
|
|
10
11
|
readonly "every-plugin": {
|
|
11
12
|
readonly version: string;
|
|
12
|
-
readonly
|
|
13
|
-
|
|
14
|
-
readonly requiredVersion: false;
|
|
15
|
-
readonly strictVersion: false;
|
|
16
|
-
readonly eager: false;
|
|
17
|
-
};
|
|
13
|
+
readonly shareScope: "default";
|
|
14
|
+
readonly shareConfig: SharedConfig;
|
|
18
15
|
};
|
|
19
16
|
readonly effect: {
|
|
20
17
|
readonly version: string;
|
|
21
|
-
readonly
|
|
22
|
-
|
|
23
|
-
readonly requiredVersion: false;
|
|
24
|
-
readonly strictVersion: false;
|
|
25
|
-
readonly eager: false;
|
|
26
|
-
};
|
|
18
|
+
readonly shareScope: "default";
|
|
19
|
+
readonly shareConfig: SharedConfig;
|
|
27
20
|
};
|
|
28
21
|
readonly zod: {
|
|
29
22
|
readonly version: string;
|
|
30
|
-
readonly
|
|
31
|
-
|
|
32
|
-
readonly requiredVersion: false;
|
|
33
|
-
readonly strictVersion: false;
|
|
34
|
-
readonly eager: false;
|
|
35
|
-
};
|
|
23
|
+
readonly shareScope: "default";
|
|
24
|
+
readonly shareConfig: SharedConfig;
|
|
36
25
|
};
|
|
37
26
|
readonly "@orpc/contract": {
|
|
38
27
|
readonly version: string;
|
|
39
|
-
readonly
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
28
|
+
readonly shareScope: "default";
|
|
29
|
+
readonly shareConfig: SharedConfig;
|
|
30
|
+
};
|
|
31
|
+
readonly "@orpc/client": {
|
|
32
|
+
readonly version: string;
|
|
33
|
+
readonly shareScope: "default";
|
|
34
|
+
readonly shareConfig: SharedConfig;
|
|
45
35
|
};
|
|
46
36
|
readonly "@orpc/server": {
|
|
47
37
|
readonly version: string;
|
|
48
|
-
readonly
|
|
49
|
-
|
|
50
|
-
readonly requiredVersion: false;
|
|
51
|
-
readonly strictVersion: false;
|
|
52
|
-
readonly eager: false;
|
|
53
|
-
};
|
|
38
|
+
readonly shareScope: "default";
|
|
39
|
+
readonly shareConfig: SharedConfig;
|
|
54
40
|
};
|
|
55
41
|
};
|
|
56
42
|
type CoreSharedDepName = keyof typeof MF_CORE_SHARED_DEPS;
|
|
@@ -65,8 +51,9 @@ interface AppSharedDepConfig {
|
|
|
65
51
|
type AppSharedDeps = Record<string, AppSharedDepConfig>;
|
|
66
52
|
declare function buildMergedSharedDeps(appShared?: AppSharedDeps): Record<string, {
|
|
67
53
|
version: string;
|
|
68
|
-
|
|
54
|
+
shareScope: string;
|
|
55
|
+
shareConfig: SharedConfig;
|
|
69
56
|
}>;
|
|
70
57
|
//#endregion
|
|
71
|
-
export { AppSharedDepConfig, AppSharedDeps, CoreSharedDepName, MF_CORE_SHARED_DEPS, PLUGIN_VERSION, SHARE_CONFIG, buildMergedSharedDeps };
|
|
58
|
+
export { AppSharedDepConfig, AppSharedDeps, CoreSharedDepName, MF_CORE_SHARED_DEPS, PLUGIN_VERSION, SHARE_CONFIG, SharedConfig, buildMergedSharedDeps };
|
|
72
59
|
//# sourceMappingURL=mf-config.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mf-config.d.cts","names":[],"sources":["../../src/runtime/mf-config.ts"],"mappings":";
|
|
1
|
+
{"version":3,"file":"mf-config.d.cts","names":[],"sources":["../../src/runtime/mf-config.ts"],"mappings":";cAkCa,cAAA;AAAA,UAGI,YAAA;EACf,SAAA;EACA,eAAA;EACA,aAAA;EACA,KAAA;AAAA;AAAA,cAGW,YAAA,EAAc,YAAA;AAAA,cAOd,mBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCD,iBAAA,gBAAiC,mBAAA;AAAA,UAE5B,kBAAA;EACf,OAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,KAAA;EACA,UAAA;AAAA;AAAA,KAGU,aAAA,GAAgB,MAAA,SAAe,kBAAA;AAAA,iBAE3B,qBAAA,CACd,SAAA,GAAY,aAAA,GACX,MAAA;EAAiB,OAAA;EAAiB,UAAA;EAAoB,WAAA,EAAa,YAAA;AAAA"}
|
|
@@ -1,56 +1,42 @@
|
|
|
1
1
|
//#region src/runtime/mf-config.d.ts
|
|
2
2
|
declare const PLUGIN_VERSION: string;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
3
|
+
interface SharedConfig {
|
|
4
|
+
singleton: boolean;
|
|
5
|
+
requiredVersion: string | false;
|
|
6
|
+
strictVersion: boolean;
|
|
7
|
+
eager: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const SHARE_CONFIG: SharedConfig;
|
|
9
10
|
declare const MF_CORE_SHARED_DEPS: {
|
|
10
11
|
readonly "every-plugin": {
|
|
11
12
|
readonly version: string;
|
|
12
|
-
readonly
|
|
13
|
-
|
|
14
|
-
readonly requiredVersion: false;
|
|
15
|
-
readonly strictVersion: false;
|
|
16
|
-
readonly eager: false;
|
|
17
|
-
};
|
|
13
|
+
readonly shareScope: "default";
|
|
14
|
+
readonly shareConfig: SharedConfig;
|
|
18
15
|
};
|
|
19
16
|
readonly effect: {
|
|
20
17
|
readonly version: string;
|
|
21
|
-
readonly
|
|
22
|
-
|
|
23
|
-
readonly requiredVersion: false;
|
|
24
|
-
readonly strictVersion: false;
|
|
25
|
-
readonly eager: false;
|
|
26
|
-
};
|
|
18
|
+
readonly shareScope: "default";
|
|
19
|
+
readonly shareConfig: SharedConfig;
|
|
27
20
|
};
|
|
28
21
|
readonly zod: {
|
|
29
22
|
readonly version: string;
|
|
30
|
-
readonly
|
|
31
|
-
|
|
32
|
-
readonly requiredVersion: false;
|
|
33
|
-
readonly strictVersion: false;
|
|
34
|
-
readonly eager: false;
|
|
35
|
-
};
|
|
23
|
+
readonly shareScope: "default";
|
|
24
|
+
readonly shareConfig: SharedConfig;
|
|
36
25
|
};
|
|
37
26
|
readonly "@orpc/contract": {
|
|
38
27
|
readonly version: string;
|
|
39
|
-
readonly
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
28
|
+
readonly shareScope: "default";
|
|
29
|
+
readonly shareConfig: SharedConfig;
|
|
30
|
+
};
|
|
31
|
+
readonly "@orpc/client": {
|
|
32
|
+
readonly version: string;
|
|
33
|
+
readonly shareScope: "default";
|
|
34
|
+
readonly shareConfig: SharedConfig;
|
|
45
35
|
};
|
|
46
36
|
readonly "@orpc/server": {
|
|
47
37
|
readonly version: string;
|
|
48
|
-
readonly
|
|
49
|
-
|
|
50
|
-
readonly requiredVersion: false;
|
|
51
|
-
readonly strictVersion: false;
|
|
52
|
-
readonly eager: false;
|
|
53
|
-
};
|
|
38
|
+
readonly shareScope: "default";
|
|
39
|
+
readonly shareConfig: SharedConfig;
|
|
54
40
|
};
|
|
55
41
|
};
|
|
56
42
|
type CoreSharedDepName = keyof typeof MF_CORE_SHARED_DEPS;
|
|
@@ -65,8 +51,9 @@ interface AppSharedDepConfig {
|
|
|
65
51
|
type AppSharedDeps = Record<string, AppSharedDepConfig>;
|
|
66
52
|
declare function buildMergedSharedDeps(appShared?: AppSharedDeps): Record<string, {
|
|
67
53
|
version: string;
|
|
68
|
-
|
|
54
|
+
shareScope: string;
|
|
55
|
+
shareConfig: SharedConfig;
|
|
69
56
|
}>;
|
|
70
57
|
//#endregion
|
|
71
|
-
export { AppSharedDepConfig, AppSharedDeps, CoreSharedDepName, MF_CORE_SHARED_DEPS, PLUGIN_VERSION, SHARE_CONFIG, buildMergedSharedDeps };
|
|
58
|
+
export { AppSharedDepConfig, AppSharedDeps, CoreSharedDepName, MF_CORE_SHARED_DEPS, PLUGIN_VERSION, SHARE_CONFIG, SharedConfig, buildMergedSharedDeps };
|
|
72
59
|
//# sourceMappingURL=mf-config.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mf-config.d.mts","names":[],"sources":["../../src/runtime/mf-config.ts"],"mappings":";
|
|
1
|
+
{"version":3,"file":"mf-config.d.mts","names":[],"sources":["../../src/runtime/mf-config.ts"],"mappings":";cAkCa,cAAA;AAAA,UAGI,YAAA;EACf,SAAA;EACA,eAAA;EACA,aAAA;EACA,KAAA;AAAA;AAAA,cAGW,YAAA,EAAc,YAAA;AAAA,cAOd,mBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCD,iBAAA,gBAAiC,mBAAA;AAAA,UAE5B,kBAAA;EACf,OAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,KAAA;EACA,UAAA;AAAA;AAAA,KAGU,aAAA,GAAgB,MAAA,SAAe,kBAAA;AAAA,iBAE3B,qBAAA,CACd,SAAA,GAAY,aAAA,GACX,MAAA;EAAiB,OAAA;EAAiB,UAAA;EAAoB,WAAA,EAAa,YAAA;AAAA"}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
+
import { peerDependencies } from "../package.mjs";
|
|
1
2
|
import { createRequire } from "node:module";
|
|
3
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
2
5
|
|
|
3
6
|
//#region src/runtime/mf-config.ts
|
|
4
7
|
const require = createRequire(import.meta.url);
|
|
5
8
|
function getInstalledPackageVersion(packageName, fallbackRange) {
|
|
6
9
|
try {
|
|
7
|
-
|
|
10
|
+
let currentDir = dirname(require.resolve(packageName));
|
|
11
|
+
for (let i = 0; i < 5; i += 1) {
|
|
12
|
+
const packageJsonPath = join(currentDir, "package.json");
|
|
13
|
+
if (existsSync(packageJsonPath)) return JSON.parse(readFileSync(packageJsonPath, "utf-8")).version;
|
|
14
|
+
currentDir = dirname(currentDir);
|
|
15
|
+
}
|
|
16
|
+
throw new Error(`Could not resolve installed version for ${packageName}`);
|
|
8
17
|
} catch {
|
|
9
18
|
const match = fallbackRange.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
|
|
10
19
|
return match ? match[0] : fallbackRange.replace(/^[\^~>=<\s]+/, "");
|
|
11
20
|
}
|
|
12
21
|
}
|
|
13
|
-
const PLUGIN_VERSION = "2.
|
|
22
|
+
const PLUGIN_VERSION = "2.7.1";
|
|
14
23
|
const SHARE_CONFIG = {
|
|
15
24
|
singleton: true,
|
|
16
25
|
requiredVersion: false,
|
|
@@ -20,22 +29,32 @@ const SHARE_CONFIG = {
|
|
|
20
29
|
const MF_CORE_SHARED_DEPS = {
|
|
21
30
|
"every-plugin": {
|
|
22
31
|
version: PLUGIN_VERSION,
|
|
32
|
+
shareScope: "default",
|
|
23
33
|
shareConfig: SHARE_CONFIG
|
|
24
34
|
},
|
|
25
35
|
effect: {
|
|
26
|
-
version: getInstalledPackageVersion("effect",
|
|
36
|
+
version: getInstalledPackageVersion("effect", peerDependencies.effect),
|
|
37
|
+
shareScope: "default",
|
|
27
38
|
shareConfig: SHARE_CONFIG
|
|
28
39
|
},
|
|
29
40
|
zod: {
|
|
30
|
-
version: getInstalledPackageVersion("zod",
|
|
41
|
+
version: getInstalledPackageVersion("zod", peerDependencies.zod),
|
|
42
|
+
shareScope: "default",
|
|
31
43
|
shareConfig: SHARE_CONFIG
|
|
32
44
|
},
|
|
33
45
|
"@orpc/contract": {
|
|
34
|
-
version: getInstalledPackageVersion("@orpc/contract", "
|
|
46
|
+
version: getInstalledPackageVersion("@orpc/contract", peerDependencies["@orpc/contract"]),
|
|
47
|
+
shareScope: "default",
|
|
48
|
+
shareConfig: SHARE_CONFIG
|
|
49
|
+
},
|
|
50
|
+
"@orpc/client": {
|
|
51
|
+
version: getInstalledPackageVersion("@orpc/client", peerDependencies["@orpc/client"]),
|
|
52
|
+
shareScope: "default",
|
|
35
53
|
shareConfig: SHARE_CONFIG
|
|
36
54
|
},
|
|
37
55
|
"@orpc/server": {
|
|
38
|
-
version: getInstalledPackageVersion("@orpc/server", "
|
|
56
|
+
version: getInstalledPackageVersion("@orpc/server", peerDependencies["@orpc/server"]),
|
|
57
|
+
shareScope: "default",
|
|
39
58
|
shareConfig: SHARE_CONFIG
|
|
40
59
|
}
|
|
41
60
|
};
|
|
@@ -43,12 +62,14 @@ function buildMergedSharedDeps(appShared) {
|
|
|
43
62
|
const merged = {};
|
|
44
63
|
for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) merged[name] = {
|
|
45
64
|
version: config.version,
|
|
65
|
+
shareScope: config.shareScope,
|
|
46
66
|
shareConfig: config.shareConfig
|
|
47
67
|
};
|
|
48
68
|
if (appShared) for (const [name, config] of Object.entries(appShared)) merged[name] = {
|
|
49
69
|
version: config.version,
|
|
70
|
+
shareScope: config.shareScope ?? "default",
|
|
50
71
|
shareConfig: {
|
|
51
|
-
singleton: config.singleton ??
|
|
72
|
+
singleton: config.singleton ?? false,
|
|
52
73
|
requiredVersion: config.requiredVersion ?? false,
|
|
53
74
|
strictVersion: config.strictVersion ?? false,
|
|
54
75
|
eager: config.eager ?? false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mf-config.mjs","names":[],"sources":["../../src/runtime/mf-config.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\n\nconst require = createRequire(import.meta.url);\ndeclare const __EVERY_PLUGIN_VERSION__: string | undefined;\n\nfunction readPackageVersion(): string {\n try {\n return (require(\"../../package.json\") as { version: string }).version;\n } catch {\n return \"0.0.0\";\n }\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackRange: string): string {\n try {\n
|
|
1
|
+
{"version":3,"file":"mf-config.mjs","names":[],"sources":["../../src/runtime/mf-config.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport pkg from \"../../package.json\";\n\nconst require = createRequire(import.meta.url);\ndeclare const __EVERY_PLUGIN_VERSION__: string | undefined;\n\nfunction readPackageVersion(): string {\n try {\n return (require(\"../../package.json\") as { version: string }).version;\n } catch {\n return \"0.0.0\";\n }\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackRange: string): string {\n try {\n let currentDir = dirname(require.resolve(packageName));\n for (let i = 0; i < 5; i += 1) {\n const packageJsonPath = join(currentDir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n return (JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as { version: string }).version;\n }\n currentDir = dirname(currentDir);\n }\n\n throw new Error(`Could not resolve installed version for ${packageName}`);\n } catch {\n const match = fallbackRange.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : fallbackRange.replace(/^[\\^~>=<\\s]+/, \"\");\n }\n}\n\nexport const PLUGIN_VERSION =\n typeof __EVERY_PLUGIN_VERSION__ === \"string\" ? __EVERY_PLUGIN_VERSION__ : readPackageVersion();\n\nexport interface SharedConfig {\n singleton: boolean;\n requiredVersion: string | false;\n strictVersion: boolean;\n eager: boolean;\n}\n\nexport const SHARE_CONFIG: SharedConfig = {\n singleton: true,\n requiredVersion: false,\n strictVersion: false,\n eager: false,\n};\n\nexport const MF_CORE_SHARED_DEPS = {\n \"every-plugin\": {\n version: PLUGIN_VERSION,\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n effect: {\n version: getInstalledPackageVersion(\"effect\", pkg.peerDependencies.effect),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n zod: {\n version: getInstalledPackageVersion(\"zod\", pkg.peerDependencies.zod),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/contract\": {\n version: getInstalledPackageVersion(\"@orpc/contract\", pkg.peerDependencies[\"@orpc/contract\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/client\": {\n version: getInstalledPackageVersion(\"@orpc/client\", pkg.peerDependencies[\"@orpc/client\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/server\": {\n version: getInstalledPackageVersion(\"@orpc/server\", pkg.peerDependencies[\"@orpc/server\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n} as const;\n\nexport type CoreSharedDepName = keyof typeof MF_CORE_SHARED_DEPS;\n\nexport interface AppSharedDepConfig {\n version: string;\n requiredVersion?: string | false;\n singleton?: boolean;\n strictVersion?: boolean;\n eager?: boolean;\n shareScope?: string;\n}\n\nexport type AppSharedDeps = Record<string, AppSharedDepConfig>;\n\nexport function buildMergedSharedDeps(\n appShared?: AppSharedDeps,\n): Record<string, { version: string; shareScope: string; shareConfig: SharedConfig }> {\n const merged: Record<string, { version: string; shareScope: string; shareConfig: SharedConfig }> =\n {};\n\n for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) {\n merged[name] = {\n version: config.version,\n shareScope: config.shareScope,\n shareConfig: config.shareConfig,\n };\n }\n\n if (appShared) {\n for (const [name, config] of Object.entries(appShared)) {\n merged[name] = {\n version: config.version,\n shareScope: config.shareScope ?? \"default\",\n shareConfig: {\n singleton: config.singleton ?? false,\n requiredVersion: config.requiredVersion ?? false,\n strictVersion: config.strictVersion ?? false,\n eager: config.eager ?? false,\n },\n };\n }\n }\n\n return merged;\n}\n"],"mappings":";;;;;;AAKA,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAW9C,SAAS,2BAA2B,aAAqB,eAA+B;AACtF,KAAI;EACF,IAAI,aAAa,QAAQ,QAAQ,QAAQ,YAAY,CAAC;AACtD,OAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;GAC7B,MAAM,kBAAkB,KAAK,YAAY,eAAe;AACxD,OAAI,WAAW,gBAAgB,CAC7B,QAAQ,KAAK,MAAM,aAAa,iBAAiB,QAAQ,CAAC,CAAyB;AAErF,gBAAa,QAAQ,WAAW;;AAGlC,QAAM,IAAI,MAAM,2CAA2C,cAAc;SACnE;EACN,MAAM,QAAQ,cAAc,MAAM,oCAAoC;AACtE,SAAO,QAAQ,MAAM,KAAK,cAAc,QAAQ,gBAAgB,GAAG;;;AAIvE,MAAa;AAUb,MAAa,eAA6B;CACxC,WAAW;CACX,iBAAiB;CACjB,eAAe;CACf,OAAO;CACR;AAED,MAAa,sBAAsB;CACjC,gBAAgB;EACd,SAAS;EACT,YAAY;EACZ,aAAa;EACd;CACD,QAAQ;EACN,SAAS,2BAA2B,2BAA+B,OAAO;EAC1E,YAAY;EACZ,aAAa;EACd;CACD,KAAK;EACH,SAAS,2BAA2B,wBAA4B,IAAI;EACpE,YAAY;EACZ,aAAa;EACd;CACD,kBAAkB;EAChB,SAAS,2BAA2B,mCAAuC,kBAAkB;EAC7F,YAAY;EACZ,aAAa;EACd;CACD,gBAAgB;EACd,SAAS,2BAA2B,iCAAqC,gBAAgB;EACzF,YAAY;EACZ,aAAa;EACd;CACD,gBAAgB;EACd,SAAS,2BAA2B,iCAAqC,gBAAgB;EACzF,YAAY;EACZ,aAAa;EACd;CACF;AAeD,SAAgB,sBACd,WACoF;CACpF,MAAM,SACJ,EAAE;AAEJ,MAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,oBAAoB,CAC9D,QAAO,QAAQ;EACb,SAAS,OAAO;EAChB,YAAY,OAAO;EACnB,aAAa,OAAO;EACrB;AAGH,KAAI,UACF,MAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,UAAU,CACpD,QAAO,QAAQ;EACb,SAAS,OAAO;EAChB,YAAY,OAAO,cAAc;EACjC,aAAa;GACX,WAAW,OAAO,aAAa;GAC/B,iBAAiB,OAAO,mBAAmB;GAC3C,eAAe,OAAO,iBAAiB;GACvC,OAAO,OAAO,SAAS;GACxB;EACF;AAIL,QAAO"}
|
|
@@ -12,6 +12,7 @@ const coreModuleLoaders = {
|
|
|
12
12
|
effect: () => import("effect"),
|
|
13
13
|
zod: () => import("zod"),
|
|
14
14
|
"@orpc/contract": () => import("@orpc/contract"),
|
|
15
|
+
"@orpc/client": () => import("@orpc/client"),
|
|
15
16
|
"@orpc/server": () => import("@orpc/server")
|
|
16
17
|
};
|
|
17
18
|
function buildSharedConfig() {
|
|
@@ -20,6 +21,7 @@ function buildSharedConfig() {
|
|
|
20
21
|
if (!load) throw new Error(`Missing core shared module loader for ${name}`);
|
|
21
22
|
return [name, {
|
|
22
23
|
version: config.version,
|
|
24
|
+
shareScope: config.shareScope,
|
|
23
25
|
get: () => load().then((mod) => () => mod),
|
|
24
26
|
shareConfig: config.shareConfig
|
|
25
27
|
}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-federation.service.cjs","names":["MF_CORE_SHARED_DEPS","Effect","getNormalizedRemoteName","ModuleFederationError"],"sources":["../../../src/runtime/services/module-federation.service.ts"],"sourcesContent":["import { createInstance, getInstance } from \"@module-federation/enhanced/runtime\";\nimport { setGlobalFederationInstance } from \"@module-federation/runtime-core\";\nimport { Effect } from \"effect\";\nimport type { AnyPlugin } from \"../../types\";\nimport { ModuleFederationError } from \"../errors\";\nimport { type CoreSharedDepName, MF_CORE_SHARED_DEPS } from \"../mf-config\";\nimport { getNormalizedRemoteName } from \"./normalize\";\n\ntype RemoteModule = (new () => AnyPlugin) | { default: new () => AnyPlugin };\n\nconst coreModuleLoaders: Record<CoreSharedDepName, () => Promise<unknown>> = {\n \"every-plugin\": () => import(\"every-plugin\"),\n effect: () => import(\"effect\"),\n zod: () => import(\"zod\"),\n \"@orpc/contract\": () => import(\"@orpc/contract\"),\n \"@orpc/server\": () => import(\"@orpc/server\"),\n};\n\nfunction buildSharedConfig(): Record<\n string,\n {\n version: string;\n get: () => Promise<() => unknown>;\n shareConfig: (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName][\"shareConfig\"];\n }\n> {\n return Object.fromEntries(\n (\n Object.entries(MF_CORE_SHARED_DEPS) as [\n CoreSharedDepName,\n (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName],\n ][]\n ).map(([name, config]) => {\n const load = coreModuleLoaders[name];\n\n if (!load) {\n throw new Error(`Missing core shared module loader for ${name}`);\n }\n\n return [\n name,\n {\n version: config.version,\n get: () => load().then((mod) => () => mod),\n shareConfig: config.shareConfig,\n },\n ];\n }),\n );\n}\n\nconst createModuleFederationInstance = Effect.cached(\n Effect.sync(() => {\n try {\n const shared = buildSharedConfig();\n let instance = getInstance();\n\n if (!instance) {\n instance = createInstance({\n name: \"host\",\n remotes: [],\n shared,\n });\n\n setGlobalFederationInstance(instance);\n } else {\n instance.registerShared(shared);\n }\n\n return instance;\n } catch (error) {\n throw new Error(`Failed to initialize Module Federation: ${error}`);\n }\n }),\n);\n\nexport class ModuleFederationService extends Effect.Service<ModuleFederationService>()(\n \"ModuleFederationService\",\n {\n effect: Effect.gen(function* () {\n const mf = yield* Effect.flatten(createModuleFederationInstance);\n\n return {\n registerRemote: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n console.log(`[MF] Registering ${pluginId}`);\n\n const remoteName = getNormalizedRemoteName(pluginId);\n const type = url.endsWith(\"/mf-manifest.json\")\n ? (\"manifest\" as const)\n : url.endsWith(\"/remoteEntry.js\")\n ? (\"script\" as const)\n : undefined;\n\n yield* Effect.try({\n try: () =>\n mf.registerRemotes([\n {\n name: remoteName,\n entry: url,\n ...(type ? { type } : {}),\n },\n ]),\n catch: (error): ModuleFederationError =>\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: error instanceof Error ? error : new Error(String(error)),\n }),\n });\n\n console.log(`[MF] ✅ Registered ${pluginId}`);\n }),\n\n loadRemoteConstructor: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n const remoteName = getNormalizedRemoteName(pluginId);\n console.log(`[MF] Loading remote ${remoteName}`);\n const modulePath = `${remoteName}/plugin`;\n\n return yield* Effect.tryPromise({\n try: async () => {\n const container = await mf.loadRemote<RemoteModule>(modulePath);\n if (!container) {\n throw new Error(`No container returned for ${modulePath}`);\n }\n\n // Support multiple export patterns: direct function, default export, named exports\n let Constructor: any;\n\n if (typeof container === \"function\") {\n // Direct function export\n Constructor = container;\n } else if (container.default) {\n // Default export\n Constructor = container.default;\n } else {\n // Named export fallback - prioritize exports with 'binding' property (plugin classes)\n Constructor = Object.values(container).find(\n (exp) => typeof exp === \"function\" && (exp as any).binding !== undefined,\n );\n\n // Fallback to any function export if no binding found\n if (!Constructor) {\n Constructor = Object.values(container).find(\n (exp) => typeof exp === \"function\" && exp.prototype?.constructor === exp,\n );\n }\n }\n\n if (!Constructor || typeof Constructor !== \"function\") {\n const containerInfo =\n typeof container === \"object\"\n ? `Available exports: ${Object.keys(container).join(\", \")}`\n : `Container type: ${typeof container}`;\n\n throw new Error(\n `No valid plugin constructor found for '${pluginId}'.\\n` +\n `Supported patterns:\\n` +\n ` - export const YourPlugin = createPlugin({...})\\n` +\n ` - export default createPlugin({...})\\n` +\n `${containerInfo}`,\n );\n }\n\n // Validate it looks like a plugin constructor (has binding property)\n if (!(Constructor as any).binding) {\n const containerInfo =\n typeof container === \"object\"\n ? `Found exports: ${Object.keys(container).join(\", \")}`\n : `Container type: ${typeof container}`;\n\n throw new Error(\n `Invalid plugin constructor for '${pluginId}'. ` +\n `The exported value must be created with createPlugin(). ` +\n `Found a function but it's missing the required 'binding' property.\\n` +\n `${containerInfo}`,\n );\n }\n\n console.log(`[MF] ✅ Loaded constructor for ${pluginId}`);\n return Constructor;\n },\n catch: (error): ModuleFederationError =>\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: error instanceof Error ? error : new Error(String(error)),\n }),\n });\n }),\n };\n }),\n },\n) {}\n"],"mappings":";;;;;;;;;AAUA,MAAM,oBAAuE;CAC3E,2DAAsB;CACtB,cAAc,OAAO;CACrB,WAAW,OAAO;CAClB,wBAAwB,OAAO;CAC/B,sBAAsB,OAAO;CAC9B;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"module-federation.service.cjs","names":["MF_CORE_SHARED_DEPS","Effect","getNormalizedRemoteName","ModuleFederationError"],"sources":["../../../src/runtime/services/module-federation.service.ts"],"sourcesContent":["import { createInstance, getInstance } from \"@module-federation/enhanced/runtime\";\nimport { setGlobalFederationInstance } from \"@module-federation/runtime-core\";\nimport { Effect } from \"effect\";\nimport type { AnyPlugin } from \"../../types\";\nimport { ModuleFederationError } from \"../errors\";\nimport { type CoreSharedDepName, MF_CORE_SHARED_DEPS } from \"../mf-config\";\nimport { getNormalizedRemoteName } from \"./normalize\";\n\ntype RemoteModule = (new () => AnyPlugin) | { default: new () => AnyPlugin };\n\nconst coreModuleLoaders: Record<CoreSharedDepName, () => Promise<unknown>> = {\n \"every-plugin\": () => import(\"every-plugin\"),\n effect: () => import(\"effect\"),\n zod: () => import(\"zod\"),\n \"@orpc/contract\": () => import(\"@orpc/contract\"),\n \"@orpc/client\": () => import(\"@orpc/client\"),\n \"@orpc/server\": () => import(\"@orpc/server\"),\n};\n\nfunction buildSharedConfig(): Record<\n string,\n {\n version: string;\n shareScope: string;\n get: () => Promise<() => unknown>;\n shareConfig: (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName][\"shareConfig\"];\n }\n> {\n return Object.fromEntries(\n (\n Object.entries(MF_CORE_SHARED_DEPS) as [\n CoreSharedDepName,\n (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName],\n ][]\n ).map(([name, config]) => {\n const load = coreModuleLoaders[name];\n\n if (!load) {\n throw new Error(`Missing core shared module loader for ${name}`);\n }\n\n return [\n name,\n {\n version: config.version,\n shareScope: config.shareScope,\n get: () => load().then((mod) => () => mod),\n shareConfig: config.shareConfig,\n },\n ];\n }),\n );\n}\n\nconst createModuleFederationInstance = Effect.cached(\n Effect.sync(() => {\n try {\n const shared = buildSharedConfig();\n let instance = getInstance();\n\n if (!instance) {\n instance = createInstance({\n name: \"host\",\n remotes: [],\n shared,\n });\n\n setGlobalFederationInstance(instance);\n } else {\n instance.registerShared(shared);\n }\n\n return instance;\n } catch (error) {\n throw new Error(`Failed to initialize Module Federation: ${error}`);\n }\n }),\n);\n\nexport class ModuleFederationService extends Effect.Service<ModuleFederationService>()(\n \"ModuleFederationService\",\n {\n effect: Effect.gen(function* () {\n const mf = yield* Effect.flatten(createModuleFederationInstance);\n\n return {\n registerRemote: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n console.log(`[MF] Registering ${pluginId}`);\n\n const remoteName = getNormalizedRemoteName(pluginId);\n const type = url.endsWith(\"/mf-manifest.json\")\n ? (\"manifest\" as const)\n : url.endsWith(\"/remoteEntry.js\")\n ? (\"script\" as const)\n : undefined;\n\n yield* Effect.try({\n try: () =>\n mf.registerRemotes([\n {\n name: remoteName,\n entry: url,\n ...(type ? { type } : {}),\n },\n ]),\n catch: (error): ModuleFederationError =>\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: error instanceof Error ? error : new Error(String(error)),\n }),\n });\n\n console.log(`[MF] ✅ Registered ${pluginId}`);\n }),\n\n loadRemoteConstructor: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n const remoteName = getNormalizedRemoteName(pluginId);\n console.log(`[MF] Loading remote ${remoteName}`);\n const modulePath = `${remoteName}/plugin`;\n\n return yield* Effect.tryPromise({\n try: async () => {\n const container = await mf.loadRemote<RemoteModule>(modulePath);\n if (!container) {\n throw new Error(`No container returned for ${modulePath}`);\n }\n\n // Support multiple export patterns: direct function, default export, named exports\n let Constructor: any;\n\n if (typeof container === \"function\") {\n // Direct function export\n Constructor = container;\n } else if (container.default) {\n // Default export\n Constructor = container.default;\n } else {\n // Named export fallback - prioritize exports with 'binding' property (plugin classes)\n Constructor = Object.values(container).find(\n (exp) => typeof exp === \"function\" && (exp as any).binding !== undefined,\n );\n\n // Fallback to any function export if no binding found\n if (!Constructor) {\n Constructor = Object.values(container).find(\n (exp) => typeof exp === \"function\" && exp.prototype?.constructor === exp,\n );\n }\n }\n\n if (!Constructor || typeof Constructor !== \"function\") {\n const containerInfo =\n typeof container === \"object\"\n ? `Available exports: ${Object.keys(container).join(\", \")}`\n : `Container type: ${typeof container}`;\n\n throw new Error(\n `No valid plugin constructor found for '${pluginId}'.\\n` +\n `Supported patterns:\\n` +\n ` - export const YourPlugin = createPlugin({...})\\n` +\n ` - export default createPlugin({...})\\n` +\n `${containerInfo}`,\n );\n }\n\n // Validate it looks like a plugin constructor (has binding property)\n if (!(Constructor as any).binding) {\n const containerInfo =\n typeof container === \"object\"\n ? `Found exports: ${Object.keys(container).join(\", \")}`\n : `Container type: ${typeof container}`;\n\n throw new Error(\n `Invalid plugin constructor for '${pluginId}'. ` +\n `The exported value must be created with createPlugin(). ` +\n `Found a function but it's missing the required 'binding' property.\\n` +\n `${containerInfo}`,\n );\n }\n\n console.log(`[MF] ✅ Loaded constructor for ${pluginId}`);\n return Constructor;\n },\n catch: (error): ModuleFederationError =>\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: error instanceof Error ? error : new Error(String(error)),\n }),\n });\n }),\n };\n }),\n },\n) {}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-federation.service.d.cts","names":[],"sources":["../../../src/runtime/services/module-federation.service.ts"],"mappings":";;;;cAIkD,4BAAA;;
|
|
1
|
+
{"version":3,"file":"module-federation.service.d.cts","names":[],"sources":["../../../src/runtime/services/module-federation.service.ts"],"mappings":";;;;cAIkD,4BAAA;;uCAkFT,GAAA,aAAa,MAAA,CAAA,MAAA,OAAA,qBAAA;8CA+BN,GAAA,aAAa,MAAA,CAAA,MAAA,MAAA,qBAAA;EAAA;AAAA;AAAA,cAtChD,uBAAA,SAAgC,4BAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-federation.service.d.mts","names":[],"sources":["../../../src/runtime/services/module-federation.service.ts"],"mappings":";;;;cAIkD,4BAAA;;
|
|
1
|
+
{"version":3,"file":"module-federation.service.d.mts","names":[],"sources":["../../../src/runtime/services/module-federation.service.ts"],"mappings":";;;;cAIkD,4BAAA;;uCAkFT,GAAA,aAAa,MAAA,CAAA,MAAA,OAAA,qBAAA;8CA+BN,GAAA,aAAa,MAAA,CAAA,MAAA,MAAA,qBAAA;EAAA;AAAA;AAAA,cAtChD,uBAAA,SAAgC,4BAAA"}
|
|
@@ -11,6 +11,7 @@ const coreModuleLoaders = {
|
|
|
11
11
|
effect: () => import("effect"),
|
|
12
12
|
zod: () => import("zod"),
|
|
13
13
|
"@orpc/contract": () => import("@orpc/contract"),
|
|
14
|
+
"@orpc/client": () => import("@orpc/client"),
|
|
14
15
|
"@orpc/server": () => import("@orpc/server")
|
|
15
16
|
};
|
|
16
17
|
function buildSharedConfig() {
|
|
@@ -19,6 +20,7 @@ function buildSharedConfig() {
|
|
|
19
20
|
if (!load) throw new Error(`Missing core shared module loader for ${name}`);
|
|
20
21
|
return [name, {
|
|
21
22
|
version: config.version,
|
|
23
|
+
shareScope: config.shareScope,
|
|
22
24
|
get: () => load().then((mod) => () => mod),
|
|
23
25
|
shareConfig: config.shareConfig
|
|
24
26
|
}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-federation.service.mjs","names":[],"sources":["../../../src/runtime/services/module-federation.service.ts"],"sourcesContent":["import { createInstance, getInstance } from \"@module-federation/enhanced/runtime\";\nimport { setGlobalFederationInstance } from \"@module-federation/runtime-core\";\nimport { Effect } from \"effect\";\nimport type { AnyPlugin } from \"../../types\";\nimport { ModuleFederationError } from \"../errors\";\nimport { type CoreSharedDepName, MF_CORE_SHARED_DEPS } from \"../mf-config\";\nimport { getNormalizedRemoteName } from \"./normalize\";\n\ntype RemoteModule = (new () => AnyPlugin) | { default: new () => AnyPlugin };\n\nconst coreModuleLoaders: Record<CoreSharedDepName, () => Promise<unknown>> = {\n \"every-plugin\": () => import(\"every-plugin\"),\n effect: () => import(\"effect\"),\n zod: () => import(\"zod\"),\n \"@orpc/contract\": () => import(\"@orpc/contract\"),\n \"@orpc/server\": () => import(\"@orpc/server\"),\n};\n\nfunction buildSharedConfig(): Record<\n string,\n {\n version: string;\n get: () => Promise<() => unknown>;\n shareConfig: (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName][\"shareConfig\"];\n }\n> {\n return Object.fromEntries(\n (\n Object.entries(MF_CORE_SHARED_DEPS) as [\n CoreSharedDepName,\n (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName],\n ][]\n ).map(([name, config]) => {\n const load = coreModuleLoaders[name];\n\n if (!load) {\n throw new Error(`Missing core shared module loader for ${name}`);\n }\n\n return [\n name,\n {\n version: config.version,\n get: () => load().then((mod) => () => mod),\n shareConfig: config.shareConfig,\n },\n ];\n }),\n );\n}\n\nconst createModuleFederationInstance = Effect.cached(\n Effect.sync(() => {\n try {\n const shared = buildSharedConfig();\n let instance = getInstance();\n\n if (!instance) {\n instance = createInstance({\n name: \"host\",\n remotes: [],\n shared,\n });\n\n setGlobalFederationInstance(instance);\n } else {\n instance.registerShared(shared);\n }\n\n return instance;\n } catch (error) {\n throw new Error(`Failed to initialize Module Federation: ${error}`);\n }\n }),\n);\n\nexport class ModuleFederationService extends Effect.Service<ModuleFederationService>()(\n \"ModuleFederationService\",\n {\n effect: Effect.gen(function* () {\n const mf = yield* Effect.flatten(createModuleFederationInstance);\n\n return {\n registerRemote: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n console.log(`[MF] Registering ${pluginId}`);\n\n const remoteName = getNormalizedRemoteName(pluginId);\n const type = url.endsWith(\"/mf-manifest.json\")\n ? (\"manifest\" as const)\n : url.endsWith(\"/remoteEntry.js\")\n ? (\"script\" as const)\n : undefined;\n\n yield* Effect.try({\n try: () =>\n mf.registerRemotes([\n {\n name: remoteName,\n entry: url,\n ...(type ? { type } : {}),\n },\n ]),\n catch: (error): ModuleFederationError =>\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: error instanceof Error ? error : new Error(String(error)),\n }),\n });\n\n console.log(`[MF] ✅ Registered ${pluginId}`);\n }),\n\n loadRemoteConstructor: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n const remoteName = getNormalizedRemoteName(pluginId);\n console.log(`[MF] Loading remote ${remoteName}`);\n const modulePath = `${remoteName}/plugin`;\n\n return yield* Effect.tryPromise({\n try: async () => {\n const container = await mf.loadRemote<RemoteModule>(modulePath);\n if (!container) {\n throw new Error(`No container returned for ${modulePath}`);\n }\n\n // Support multiple export patterns: direct function, default export, named exports\n let Constructor: any;\n\n if (typeof container === \"function\") {\n // Direct function export\n Constructor = container;\n } else if (container.default) {\n // Default export\n Constructor = container.default;\n } else {\n // Named export fallback - prioritize exports with 'binding' property (plugin classes)\n Constructor = Object.values(container).find(\n (exp) => typeof exp === \"function\" && (exp as any).binding !== undefined,\n );\n\n // Fallback to any function export if no binding found\n if (!Constructor) {\n Constructor = Object.values(container).find(\n (exp) => typeof exp === \"function\" && exp.prototype?.constructor === exp,\n );\n }\n }\n\n if (!Constructor || typeof Constructor !== \"function\") {\n const containerInfo =\n typeof container === \"object\"\n ? `Available exports: ${Object.keys(container).join(\", \")}`\n : `Container type: ${typeof container}`;\n\n throw new Error(\n `No valid plugin constructor found for '${pluginId}'.\\n` +\n `Supported patterns:\\n` +\n ` - export const YourPlugin = createPlugin({...})\\n` +\n ` - export default createPlugin({...})\\n` +\n `${containerInfo}`,\n );\n }\n\n // Validate it looks like a plugin constructor (has binding property)\n if (!(Constructor as any).binding) {\n const containerInfo =\n typeof container === \"object\"\n ? `Found exports: ${Object.keys(container).join(\", \")}`\n : `Container type: ${typeof container}`;\n\n throw new Error(\n `Invalid plugin constructor for '${pluginId}'. ` +\n `The exported value must be created with createPlugin(). ` +\n `Found a function but it's missing the required 'binding' property.\\n` +\n `${containerInfo}`,\n );\n }\n\n console.log(`[MF] ✅ Loaded constructor for ${pluginId}`);\n return Constructor;\n },\n catch: (error): ModuleFederationError =>\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: error instanceof Error ? error : new Error(String(error)),\n }),\n });\n }),\n };\n }),\n },\n) {}\n"],"mappings":";;;;;;;;AAUA,MAAM,oBAAuE;CAC3E,sBAAsB,OAAO;CAC7B,cAAc,OAAO;CACrB,WAAW,OAAO;CAClB,wBAAwB,OAAO;CAC/B,sBAAsB,OAAO;CAC9B;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"module-federation.service.mjs","names":[],"sources":["../../../src/runtime/services/module-federation.service.ts"],"sourcesContent":["import { createInstance, getInstance } from \"@module-federation/enhanced/runtime\";\nimport { setGlobalFederationInstance } from \"@module-federation/runtime-core\";\nimport { Effect } from \"effect\";\nimport type { AnyPlugin } from \"../../types\";\nimport { ModuleFederationError } from \"../errors\";\nimport { type CoreSharedDepName, MF_CORE_SHARED_DEPS } from \"../mf-config\";\nimport { getNormalizedRemoteName } from \"./normalize\";\n\ntype RemoteModule = (new () => AnyPlugin) | { default: new () => AnyPlugin };\n\nconst coreModuleLoaders: Record<CoreSharedDepName, () => Promise<unknown>> = {\n \"every-plugin\": () => import(\"every-plugin\"),\n effect: () => import(\"effect\"),\n zod: () => import(\"zod\"),\n \"@orpc/contract\": () => import(\"@orpc/contract\"),\n \"@orpc/client\": () => import(\"@orpc/client\"),\n \"@orpc/server\": () => import(\"@orpc/server\"),\n};\n\nfunction buildSharedConfig(): Record<\n string,\n {\n version: string;\n shareScope: string;\n get: () => Promise<() => unknown>;\n shareConfig: (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName][\"shareConfig\"];\n }\n> {\n return Object.fromEntries(\n (\n Object.entries(MF_CORE_SHARED_DEPS) as [\n CoreSharedDepName,\n (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName],\n ][]\n ).map(([name, config]) => {\n const load = coreModuleLoaders[name];\n\n if (!load) {\n throw new Error(`Missing core shared module loader for ${name}`);\n }\n\n return [\n name,\n {\n version: config.version,\n shareScope: config.shareScope,\n get: () => load().then((mod) => () => mod),\n shareConfig: config.shareConfig,\n },\n ];\n }),\n );\n}\n\nconst createModuleFederationInstance = Effect.cached(\n Effect.sync(() => {\n try {\n const shared = buildSharedConfig();\n let instance = getInstance();\n\n if (!instance) {\n instance = createInstance({\n name: \"host\",\n remotes: [],\n shared,\n });\n\n setGlobalFederationInstance(instance);\n } else {\n instance.registerShared(shared);\n }\n\n return instance;\n } catch (error) {\n throw new Error(`Failed to initialize Module Federation: ${error}`);\n }\n }),\n);\n\nexport class ModuleFederationService extends Effect.Service<ModuleFederationService>()(\n \"ModuleFederationService\",\n {\n effect: Effect.gen(function* () {\n const mf = yield* Effect.flatten(createModuleFederationInstance);\n\n return {\n registerRemote: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n console.log(`[MF] Registering ${pluginId}`);\n\n const remoteName = getNormalizedRemoteName(pluginId);\n const type = url.endsWith(\"/mf-manifest.json\")\n ? (\"manifest\" as const)\n : url.endsWith(\"/remoteEntry.js\")\n ? (\"script\" as const)\n : undefined;\n\n yield* Effect.try({\n try: () =>\n mf.registerRemotes([\n {\n name: remoteName,\n entry: url,\n ...(type ? { type } : {}),\n },\n ]),\n catch: (error): ModuleFederationError =>\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: error instanceof Error ? error : new Error(String(error)),\n }),\n });\n\n console.log(`[MF] ✅ Registered ${pluginId}`);\n }),\n\n loadRemoteConstructor: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n const remoteName = getNormalizedRemoteName(pluginId);\n console.log(`[MF] Loading remote ${remoteName}`);\n const modulePath = `${remoteName}/plugin`;\n\n return yield* Effect.tryPromise({\n try: async () => {\n const container = await mf.loadRemote<RemoteModule>(modulePath);\n if (!container) {\n throw new Error(`No container returned for ${modulePath}`);\n }\n\n // Support multiple export patterns: direct function, default export, named exports\n let Constructor: any;\n\n if (typeof container === \"function\") {\n // Direct function export\n Constructor = container;\n } else if (container.default) {\n // Default export\n Constructor = container.default;\n } else {\n // Named export fallback - prioritize exports with 'binding' property (plugin classes)\n Constructor = Object.values(container).find(\n (exp) => typeof exp === \"function\" && (exp as any).binding !== undefined,\n );\n\n // Fallback to any function export if no binding found\n if (!Constructor) {\n Constructor = Object.values(container).find(\n (exp) => typeof exp === \"function\" && exp.prototype?.constructor === exp,\n );\n }\n }\n\n if (!Constructor || typeof Constructor !== \"function\") {\n const containerInfo =\n typeof container === \"object\"\n ? `Available exports: ${Object.keys(container).join(\", \")}`\n : `Container type: ${typeof container}`;\n\n throw new Error(\n `No valid plugin constructor found for '${pluginId}'.\\n` +\n `Supported patterns:\\n` +\n ` - export const YourPlugin = createPlugin({...})\\n` +\n ` - export default createPlugin({...})\\n` +\n `${containerInfo}`,\n );\n }\n\n // Validate it looks like a plugin constructor (has binding property)\n if (!(Constructor as any).binding) {\n const containerInfo =\n typeof container === \"object\"\n ? `Found exports: ${Object.keys(container).join(\", \")}`\n : `Container type: ${typeof container}`;\n\n throw new Error(\n `Invalid plugin constructor for '${pluginId}'. ` +\n `The exported value must be created with createPlugin(). ` +\n `Found a function but it's missing the required 'binding' property.\\n` +\n `${containerInfo}`,\n );\n }\n\n console.log(`[MF] ✅ Loaded constructor for ${pluginId}`);\n return Constructor;\n },\n catch: (error): ModuleFederationError =>\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: error instanceof Error ? error : new Error(String(error)),\n }),\n });\n }),\n };\n }),\n },\n) {}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "every-plugin",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -49,11 +49,6 @@
|
|
|
49
49
|
"import": "./dist/orpc.mjs",
|
|
50
50
|
"require": "./dist/orpc.cjs"
|
|
51
51
|
},
|
|
52
|
-
"./orpc/client": {
|
|
53
|
-
"types": "./dist/orpc-client.d.mts",
|
|
54
|
-
"import": "./dist/orpc-client.mjs",
|
|
55
|
-
"require": "./dist/orpc-client.cjs"
|
|
56
|
-
},
|
|
57
52
|
"./orpc/openapi": {
|
|
58
53
|
"types": "./dist/orpc-openapi.d.mts",
|
|
59
54
|
"import": "./dist/orpc-openapi.mjs",
|
|
@@ -98,14 +93,14 @@
|
|
|
98
93
|
"peerDependencies": {
|
|
99
94
|
"@rspack/core": "1.7.11",
|
|
100
95
|
"typescript": "^5.9.3",
|
|
101
|
-
"effect": "
|
|
102
|
-
"zod": "
|
|
103
|
-
"@orpc/contract": "
|
|
104
|
-
"@orpc/server": "
|
|
105
|
-
"@orpc/client": "
|
|
106
|
-
"@orpc/openapi": "
|
|
107
|
-
"@orpc/zod": "
|
|
108
|
-
"@orpc/
|
|
96
|
+
"effect": "3.21.2",
|
|
97
|
+
"zod": "4.3.6",
|
|
98
|
+
"@orpc/contract": "1.14.3",
|
|
99
|
+
"@orpc/server": "1.14.3",
|
|
100
|
+
"@orpc/client": "1.14.3",
|
|
101
|
+
"@orpc/openapi": "1.14.3",
|
|
102
|
+
"@orpc/zod": "1.14.3",
|
|
103
|
+
"@orpc/tanstack-query": "1.14.3"
|
|
109
104
|
},
|
|
110
105
|
"devDependencies": {
|
|
111
106
|
"@effect/language-service": "^0.85.1",
|
|
@@ -121,7 +116,7 @@
|
|
|
121
116
|
"sirv": "^3.0.2",
|
|
122
117
|
"tsdown": "^0.21.7",
|
|
123
118
|
"vite-tsconfig-paths": "^6.0.5",
|
|
124
|
-
"vitest": "^4.
|
|
119
|
+
"vitest": "^4.1.8"
|
|
125
120
|
},
|
|
126
121
|
"dependencies": {
|
|
127
122
|
"@module-federation/enhanced": "^2.4.0",
|
|
@@ -130,7 +125,7 @@
|
|
|
130
125
|
"@orpc/contract": "^1.13.4",
|
|
131
126
|
"@orpc/experimental-publisher": "^1.13.4",
|
|
132
127
|
"@orpc/server": "^1.13.4",
|
|
133
|
-
"@orpc/tanstack-query": "
|
|
128
|
+
"@orpc/tanstack-query": "1.14.3"
|
|
134
129
|
},
|
|
135
130
|
"keywords": [
|
|
136
131
|
"plugin",
|
package/src/build/shared-deps.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
@@ -20,6 +20,7 @@ export interface SharedDependencyConfig {
|
|
|
20
20
|
singleton: boolean;
|
|
21
21
|
strictVersion: boolean;
|
|
22
22
|
eager: boolean;
|
|
23
|
+
shareScope: string;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export type SharedDependencies = Record<string, SharedDependencyConfig>;
|
|
@@ -29,6 +30,7 @@ const DEFAULT_SHARE_CONFIG: Omit<SharedDependencyConfig, "version"> = {
|
|
|
29
30
|
singleton: true,
|
|
30
31
|
strictVersion: false,
|
|
31
32
|
eager: false,
|
|
33
|
+
shareScope: "default",
|
|
32
34
|
};
|
|
33
35
|
|
|
34
36
|
function extractExactVersion(input: string): string {
|
|
@@ -38,7 +40,16 @@ function extractExactVersion(input: string): string {
|
|
|
38
40
|
|
|
39
41
|
function getInstalledPackageVersion(packageName: string, fallbackVersion: string): string {
|
|
40
42
|
try {
|
|
41
|
-
|
|
43
|
+
let currentDir = dirname(require.resolve(packageName));
|
|
44
|
+
for (let i = 0; i < 5; i += 1) {
|
|
45
|
+
const packageJsonPath = join(currentDir, "package.json");
|
|
46
|
+
if (existsSync(packageJsonPath)) {
|
|
47
|
+
return (JSON.parse(readFileSync(packageJsonPath, "utf-8")) as { version: string }).version;
|
|
48
|
+
}
|
|
49
|
+
currentDir = dirname(currentDir);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
throw new Error(`Could not resolve installed version for ${packageName}`);
|
|
42
53
|
} catch {
|
|
43
54
|
return extractExactVersion(fallbackVersion);
|
|
44
55
|
}
|
|
@@ -58,6 +69,10 @@ export const pluginSharedDependencies = {
|
|
|
58
69
|
version: getInstalledPackageVersion("@orpc/contract", pkg.peerDependencies["@orpc/contract"]),
|
|
59
70
|
...DEFAULT_SHARE_CONFIG,
|
|
60
71
|
},
|
|
72
|
+
"@orpc/client": {
|
|
73
|
+
version: getInstalledPackageVersion("@orpc/client", pkg.peerDependencies["@orpc/client"]),
|
|
74
|
+
...DEFAULT_SHARE_CONFIG,
|
|
75
|
+
},
|
|
61
76
|
"@orpc/server": {
|
|
62
77
|
version: getInstalledPackageVersion("@orpc/server", pkg.peerDependencies["@orpc/server"]),
|
|
63
78
|
...DEFAULT_SHARE_CONFIG,
|
package/src/runtime/mf-config.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
1
2
|
import { createRequire } from "node:module";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import pkg from "../../package.json";
|
|
2
5
|
|
|
3
6
|
const require = createRequire(import.meta.url);
|
|
4
7
|
declare const __EVERY_PLUGIN_VERSION__: string | undefined;
|
|
@@ -13,7 +16,16 @@ function readPackageVersion(): string {
|
|
|
13
16
|
|
|
14
17
|
function getInstalledPackageVersion(packageName: string, fallbackRange: string): string {
|
|
15
18
|
try {
|
|
16
|
-
|
|
19
|
+
let currentDir = dirname(require.resolve(packageName));
|
|
20
|
+
for (let i = 0; i < 5; i += 1) {
|
|
21
|
+
const packageJsonPath = join(currentDir, "package.json");
|
|
22
|
+
if (existsSync(packageJsonPath)) {
|
|
23
|
+
return (JSON.parse(readFileSync(packageJsonPath, "utf-8")) as { version: string }).version;
|
|
24
|
+
}
|
|
25
|
+
currentDir = dirname(currentDir);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
throw new Error(`Could not resolve installed version for ${packageName}`);
|
|
17
29
|
} catch {
|
|
18
30
|
const match = fallbackRange.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
|
|
19
31
|
return match ? match[0] : fallbackRange.replace(/^[\^~>=<\s]+/, "");
|
|
@@ -23,32 +35,49 @@ function getInstalledPackageVersion(packageName: string, fallbackRange: string):
|
|
|
23
35
|
export const PLUGIN_VERSION =
|
|
24
36
|
typeof __EVERY_PLUGIN_VERSION__ === "string" ? __EVERY_PLUGIN_VERSION__ : readPackageVersion();
|
|
25
37
|
|
|
26
|
-
export
|
|
38
|
+
export interface SharedConfig {
|
|
39
|
+
singleton: boolean;
|
|
40
|
+
requiredVersion: string | false;
|
|
41
|
+
strictVersion: boolean;
|
|
42
|
+
eager: boolean;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const SHARE_CONFIG: SharedConfig = {
|
|
27
46
|
singleton: true,
|
|
28
47
|
requiredVersion: false,
|
|
29
48
|
strictVersion: false,
|
|
30
49
|
eager: false,
|
|
31
|
-
}
|
|
50
|
+
};
|
|
32
51
|
|
|
33
52
|
export const MF_CORE_SHARED_DEPS = {
|
|
34
53
|
"every-plugin": {
|
|
35
54
|
version: PLUGIN_VERSION,
|
|
55
|
+
shareScope: "default",
|
|
36
56
|
shareConfig: SHARE_CONFIG,
|
|
37
57
|
},
|
|
38
58
|
effect: {
|
|
39
|
-
version: getInstalledPackageVersion("effect",
|
|
59
|
+
version: getInstalledPackageVersion("effect", pkg.peerDependencies.effect),
|
|
60
|
+
shareScope: "default",
|
|
40
61
|
shareConfig: SHARE_CONFIG,
|
|
41
62
|
},
|
|
42
63
|
zod: {
|
|
43
|
-
version: getInstalledPackageVersion("zod",
|
|
64
|
+
version: getInstalledPackageVersion("zod", pkg.peerDependencies.zod),
|
|
65
|
+
shareScope: "default",
|
|
44
66
|
shareConfig: SHARE_CONFIG,
|
|
45
67
|
},
|
|
46
68
|
"@orpc/contract": {
|
|
47
|
-
version: getInstalledPackageVersion("@orpc/contract",
|
|
69
|
+
version: getInstalledPackageVersion("@orpc/contract", pkg.peerDependencies["@orpc/contract"]),
|
|
70
|
+
shareScope: "default",
|
|
71
|
+
shareConfig: SHARE_CONFIG,
|
|
72
|
+
},
|
|
73
|
+
"@orpc/client": {
|
|
74
|
+
version: getInstalledPackageVersion("@orpc/client", pkg.peerDependencies["@orpc/client"]),
|
|
75
|
+
shareScope: "default",
|
|
48
76
|
shareConfig: SHARE_CONFIG,
|
|
49
77
|
},
|
|
50
78
|
"@orpc/server": {
|
|
51
|
-
version: getInstalledPackageVersion("@orpc/server",
|
|
79
|
+
version: getInstalledPackageVersion("@orpc/server", pkg.peerDependencies["@orpc/server"]),
|
|
80
|
+
shareScope: "default",
|
|
52
81
|
shareConfig: SHARE_CONFIG,
|
|
53
82
|
},
|
|
54
83
|
} as const;
|
|
@@ -68,22 +97,28 @@ export type AppSharedDeps = Record<string, AppSharedDepConfig>;
|
|
|
68
97
|
|
|
69
98
|
export function buildMergedSharedDeps(
|
|
70
99
|
appShared?: AppSharedDeps,
|
|
71
|
-
): Record<string, { version: string; shareConfig:
|
|
72
|
-
const merged: Record<string, { version: string; shareConfig:
|
|
100
|
+
): Record<string, { version: string; shareScope: string; shareConfig: SharedConfig }> {
|
|
101
|
+
const merged: Record<string, { version: string; shareScope: string; shareConfig: SharedConfig }> =
|
|
102
|
+
{};
|
|
73
103
|
|
|
74
104
|
for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) {
|
|
75
|
-
merged[name] = {
|
|
105
|
+
merged[name] = {
|
|
106
|
+
version: config.version,
|
|
107
|
+
shareScope: config.shareScope,
|
|
108
|
+
shareConfig: config.shareConfig,
|
|
109
|
+
};
|
|
76
110
|
}
|
|
77
111
|
|
|
78
112
|
if (appShared) {
|
|
79
113
|
for (const [name, config] of Object.entries(appShared)) {
|
|
80
114
|
merged[name] = {
|
|
81
115
|
version: config.version,
|
|
116
|
+
shareScope: config.shareScope ?? "default",
|
|
82
117
|
shareConfig: {
|
|
83
|
-
singleton:
|
|
84
|
-
requiredVersion:
|
|
85
|
-
strictVersion:
|
|
86
|
-
eager:
|
|
118
|
+
singleton: config.singleton ?? false,
|
|
119
|
+
requiredVersion: config.requiredVersion ?? false,
|
|
120
|
+
strictVersion: config.strictVersion ?? false,
|
|
121
|
+
eager: config.eager ?? false,
|
|
87
122
|
},
|
|
88
123
|
};
|
|
89
124
|
}
|
|
@@ -13,6 +13,7 @@ const coreModuleLoaders: Record<CoreSharedDepName, () => Promise<unknown>> = {
|
|
|
13
13
|
effect: () => import("effect"),
|
|
14
14
|
zod: () => import("zod"),
|
|
15
15
|
"@orpc/contract": () => import("@orpc/contract"),
|
|
16
|
+
"@orpc/client": () => import("@orpc/client"),
|
|
16
17
|
"@orpc/server": () => import("@orpc/server"),
|
|
17
18
|
};
|
|
18
19
|
|
|
@@ -20,6 +21,7 @@ function buildSharedConfig(): Record<
|
|
|
20
21
|
string,
|
|
21
22
|
{
|
|
22
23
|
version: string;
|
|
24
|
+
shareScope: string;
|
|
23
25
|
get: () => Promise<() => unknown>;
|
|
24
26
|
shareConfig: (typeof MF_CORE_SHARED_DEPS)[CoreSharedDepName]["shareConfig"];
|
|
25
27
|
}
|
|
@@ -41,6 +43,7 @@ function buildSharedConfig(): Record<
|
|
|
41
43
|
name,
|
|
42
44
|
{
|
|
43
45
|
version: config.version,
|
|
46
|
+
shareScope: config.shareScope,
|
|
44
47
|
get: () => load().then((mod) => () => mod),
|
|
45
48
|
shareConfig: config.shareConfig,
|
|
46
49
|
},
|
package/dist/orpc-client.cjs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _orpc_client = require("@orpc/client");
|
|
4
|
-
Object.keys(_orpc_client).forEach(function (k) {
|
|
5
|
-
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function () { return _orpc_client[k]; }
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
var _orpc_react_query = require("@orpc/react-query");
|
|
12
|
-
Object.keys(_orpc_react_query).forEach(function (k) {
|
|
13
|
-
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function () { return _orpc_react_query[k]; }
|
|
16
|
-
});
|
|
17
|
-
});
|
package/dist/orpc-client.d.cts
DELETED
package/dist/orpc-client.d.mts
DELETED
package/dist/orpc-client.mjs
DELETED
package/src/orpc-client.ts
DELETED