every-plugin 2.5.11 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/build/shared-deps.cjs +14 -3
  2. package/dist/build/shared-deps.cjs.map +1 -1
  3. package/dist/build/shared-deps.d.cts +14 -0
  4. package/dist/build/shared-deps.d.cts.map +1 -1
  5. package/dist/build/shared-deps.d.mts +14 -0
  6. package/dist/build/shared-deps.d.mts.map +1 -1
  7. package/dist/build/shared-deps.mjs +14 -3
  8. package/dist/build/shared-deps.mjs.map +1 -1
  9. package/dist/package.cjs +23 -0
  10. package/dist/package.cjs.map +1 -0
  11. package/dist/package.mjs +17 -0
  12. package/dist/package.mjs.map +1 -0
  13. package/dist/runtime/mf-config.cjs +28 -7
  14. package/dist/runtime/mf-config.cjs.map +1 -1
  15. package/dist/runtime/mf-config.d.cts +25 -38
  16. package/dist/runtime/mf-config.d.cts.map +1 -1
  17. package/dist/runtime/mf-config.d.mts +25 -38
  18. package/dist/runtime/mf-config.d.mts.map +1 -1
  19. package/dist/runtime/mf-config.mjs +28 -7
  20. package/dist/runtime/mf-config.mjs.map +1 -1
  21. package/dist/runtime/services/module-federation.service.cjs +2 -0
  22. package/dist/runtime/services/module-federation.service.cjs.map +1 -1
  23. package/dist/runtime/services/module-federation.service.d.cts.map +1 -1
  24. package/dist/runtime/services/module-federation.service.d.mts.map +1 -1
  25. package/dist/runtime/services/module-federation.service.mjs +2 -0
  26. package/dist/runtime/services/module-federation.service.mjs.map +1 -1
  27. package/package.json +11 -16
  28. package/src/build/shared-deps.ts +17 -2
  29. package/src/runtime/mf-config.ts +49 -14
  30. package/src/runtime/services/module-federation.service.ts +3 -0
  31. package/dist/orpc-client.cjs +0 -17
  32. package/dist/orpc-client.d.cts +0 -2
  33. package/dist/orpc-client.d.mts +0 -2
  34. package/dist/orpc-client.mjs +0 -5
  35. 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
- return require$1(`${packageName}/package.json`).version;
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 return require(`${packageName}/package.json`).version as string;\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/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;;AAa5C,MAAM,uBAAgE;CACpE,iBAAiB;CACjB,WAAW;CACX,eAAe;CACf,OAAO;CACR;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;AACF,SAAOA,UAAQ,GAAG,YAAY,eAAe,CAAC;SACxC;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;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"}
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,cAsBnC,wBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoBD,0BAAA,gBAA0C,wBAAA;AAAA,iBAEtC,2BAAA,CAAA,GAA+B,kBAAA;AAAA,iBAI/B,uCAAA,CAAA,GAA2C,MAAA;AAAA,iBAS3C,oBAAA,CAAqB,OAAA"}
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,cAsBnC,wBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoBD,0BAAA,gBAA0C,wBAAA;AAAA,iBAEtC,2BAAA,CAAA,GAA+B,kBAAA;AAAA,iBAI/B,uCAAA,CAAA,GAA2C,MAAA;AAAA,iBAS3C,oBAAA,CAAqB,OAAA"}
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
- return require(`${packageName}/package.json`).version;
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 return require(`${packageName}/package.json`).version as string;\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/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;;AAa5C,MAAM,uBAAgE;CACpE,iBAAiB;CACjB,WAAW;CACX,eAAe;CACf,OAAO;CACR;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;AACF,SAAO,QAAQ,GAAG,YAAY,eAAe,CAAC;SACxC;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;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"}
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"}
@@ -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":""}
@@ -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
- return require$1(`${packageName}/package.json`).version;
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.5.11";
24
+ const PLUGIN_VERSION = "2.7.0";
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", "^3.21.0"),
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", "^4.3.6"),
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", "^1.13.4"),
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", "^1.13.4"),
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 ?? true,
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 return require(`${packageName}/package.json`).version as string;\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 const SHARE_CONFIG = {\n singleton: true,\n requiredVersion: false,\n strictVersion: false,\n eager: false,\n} as const;\n\nexport const MF_CORE_SHARED_DEPS = {\n \"every-plugin\": {\n version: PLUGIN_VERSION,\n shareConfig: SHARE_CONFIG,\n },\n effect: {\n version: getInstalledPackageVersion(\"effect\", \"^3.21.0\"),\n shareConfig: SHARE_CONFIG,\n },\n zod: {\n version: getInstalledPackageVersion(\"zod\", \"^4.3.6\"),\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/contract\": {\n version: getInstalledPackageVersion(\"@orpc/contract\", \"^1.13.4\"),\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/server\": {\n version: getInstalledPackageVersion(\"@orpc/server\", \"^1.13.4\"),\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; shareConfig: typeof SHARE_CONFIG }> {\n const merged: Record<string, { version: string; shareConfig: typeof SHARE_CONFIG }> = {};\n\n for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) {\n merged[name] = { version: config.version, shareConfig: config.shareConfig };\n }\n\n if (appShared) {\n for (const [name, config] of Object.entries(appShared)) {\n merged[name] = {\n version: config.version,\n shareConfig: {\n singleton: (config.singleton ?? true) as true,\n requiredVersion: (config.requiredVersion ?? false) as false,\n strictVersion: (config.strictVersion ?? false) as false,\n eager: (config.eager ?? false) as false,\n },\n };\n }\n }\n\n return merged;\n}\n"],"mappings":";;;;;AAEA,MAAMA,yFAAwC;AAW9C,SAAS,2BAA2B,aAAqB,eAA+B;AACtF,KAAI;AACF,SAAOA,UAAQ,GAAG,YAAY,eAAe,CAAC;SACxC;EACN,MAAM,QAAQ,cAAc,MAAM,oCAAoC;AACtE,SAAO,QAAQ,MAAM,KAAK,cAAc,QAAQ,gBAAgB,GAAG;;;AAIvE,MAAa;AAGb,MAAa,eAAe;CAC1B,WAAW;CACX,iBAAiB;CACjB,eAAe;CACf,OAAO;CACR;AAED,MAAa,sBAAsB;CACjC,gBAAgB;EACd,SAAS;EACT,aAAa;EACd;CACD,QAAQ;EACN,SAAS,2BAA2B,UAAU,UAAU;EACxD,aAAa;EACd;CACD,KAAK;EACH,SAAS,2BAA2B,OAAO,SAAS;EACpD,aAAa;EACd;CACD,kBAAkB;EAChB,SAAS,2BAA2B,kBAAkB,UAAU;EAChE,aAAa;EACd;CACD,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,UAAU;EAC9D,aAAa;EACd;CACF;AAeD,SAAgB,sBACd,WACuE;CACvE,MAAM,SAAgF,EAAE;AAExF,MAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,oBAAoB,CAC9D,QAAO,QAAQ;EAAE,SAAS,OAAO;EAAS,aAAa,OAAO;EAAa;AAG7E,KAAI,UACF,MAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,UAAU,CACpD,QAAO,QAAQ;EACb,SAAS,OAAO;EAChB,aAAa;GACX,WAAY,OAAO,aAAa;GAChC,iBAAkB,OAAO,mBAAmB;GAC5C,eAAgB,OAAO,iBAAiB;GACxC,OAAQ,OAAO,SAAS;GACzB;EACF;AAIL,QAAO"}
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
- declare const SHARE_CONFIG: {
4
- readonly singleton: true;
5
- readonly requiredVersion: false;
6
- readonly strictVersion: false;
7
- readonly eager: false;
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 shareConfig: {
13
- readonly singleton: true;
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 shareConfig: {
22
- readonly singleton: true;
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 shareConfig: {
31
- readonly singleton: true;
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 shareConfig: {
40
- readonly singleton: true;
41
- readonly requiredVersion: false;
42
- readonly strictVersion: false;
43
- readonly eager: false;
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 shareConfig: {
49
- readonly singleton: true;
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
- shareConfig: typeof SHARE_CONFIG;
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":";cAsBa,cAAA;AAAA,cAGA,YAAA;EAAA;;;;;cAOA,mBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuBD,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,WAAA,SAAoB,YAAA;AAAA"}
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
- declare const SHARE_CONFIG: {
4
- readonly singleton: true;
5
- readonly requiredVersion: false;
6
- readonly strictVersion: false;
7
- readonly eager: false;
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 shareConfig: {
13
- readonly singleton: true;
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 shareConfig: {
22
- readonly singleton: true;
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 shareConfig: {
31
- readonly singleton: true;
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 shareConfig: {
40
- readonly singleton: true;
41
- readonly requiredVersion: false;
42
- readonly strictVersion: false;
43
- readonly eager: false;
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 shareConfig: {
49
- readonly singleton: true;
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
- shareConfig: typeof SHARE_CONFIG;
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":";cAsBa,cAAA;AAAA,cAGA,YAAA;EAAA;;;;;cAOA,mBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuBD,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,WAAA,SAAoB,YAAA;AAAA"}
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
- return require(`${packageName}/package.json`).version;
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.5.11";
22
+ const PLUGIN_VERSION = "2.7.0";
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", "^3.21.0"),
36
+ version: getInstalledPackageVersion("effect", peerDependencies.effect),
37
+ shareScope: "default",
27
38
  shareConfig: SHARE_CONFIG
28
39
  },
29
40
  zod: {
30
- version: getInstalledPackageVersion("zod", "^4.3.6"),
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", "^1.13.4"),
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", "^1.13.4"),
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 ?? true,
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 return require(`${packageName}/package.json`).version as string;\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 const SHARE_CONFIG = {\n singleton: true,\n requiredVersion: false,\n strictVersion: false,\n eager: false,\n} as const;\n\nexport const MF_CORE_SHARED_DEPS = {\n \"every-plugin\": {\n version: PLUGIN_VERSION,\n shareConfig: SHARE_CONFIG,\n },\n effect: {\n version: getInstalledPackageVersion(\"effect\", \"^3.21.0\"),\n shareConfig: SHARE_CONFIG,\n },\n zod: {\n version: getInstalledPackageVersion(\"zod\", \"^4.3.6\"),\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/contract\": {\n version: getInstalledPackageVersion(\"@orpc/contract\", \"^1.13.4\"),\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/server\": {\n version: getInstalledPackageVersion(\"@orpc/server\", \"^1.13.4\"),\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; shareConfig: typeof SHARE_CONFIG }> {\n const merged: Record<string, { version: string; shareConfig: typeof SHARE_CONFIG }> = {};\n\n for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) {\n merged[name] = { version: config.version, shareConfig: config.shareConfig };\n }\n\n if (appShared) {\n for (const [name, config] of Object.entries(appShared)) {\n merged[name] = {\n version: config.version,\n shareConfig: {\n singleton: (config.singleton ?? true) as true,\n requiredVersion: (config.requiredVersion ?? false) as false,\n strictVersion: (config.strictVersion ?? false) as false,\n eager: (config.eager ?? false) as false,\n },\n };\n }\n }\n\n return merged;\n}\n"],"mappings":";;;AAEA,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAW9C,SAAS,2BAA2B,aAAqB,eAA+B;AACtF,KAAI;AACF,SAAO,QAAQ,GAAG,YAAY,eAAe,CAAC;SACxC;EACN,MAAM,QAAQ,cAAc,MAAM,oCAAoC;AACtE,SAAO,QAAQ,MAAM,KAAK,cAAc,QAAQ,gBAAgB,GAAG;;;AAIvE,MAAa;AAGb,MAAa,eAAe;CAC1B,WAAW;CACX,iBAAiB;CACjB,eAAe;CACf,OAAO;CACR;AAED,MAAa,sBAAsB;CACjC,gBAAgB;EACd,SAAS;EACT,aAAa;EACd;CACD,QAAQ;EACN,SAAS,2BAA2B,UAAU,UAAU;EACxD,aAAa;EACd;CACD,KAAK;EACH,SAAS,2BAA2B,OAAO,SAAS;EACpD,aAAa;EACd;CACD,kBAAkB;EAChB,SAAS,2BAA2B,kBAAkB,UAAU;EAChE,aAAa;EACd;CACD,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,UAAU;EAC9D,aAAa;EACd;CACF;AAeD,SAAgB,sBACd,WACuE;CACvE,MAAM,SAAgF,EAAE;AAExF,MAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,oBAAoB,CAC9D,QAAO,QAAQ;EAAE,SAAS,OAAO;EAAS,aAAa,OAAO;EAAa;AAG7E,KAAI,UACF,MAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,UAAU,CACpD,QAAO,QAAQ;EACb,SAAS,OAAO;EAChB,aAAa;GACX,WAAY,OAAO,aAAa;GAChC,iBAAkB,OAAO,mBAAmB;GAC5C,eAAgB,OAAO,iBAAiB;GACxC,OAAQ,OAAO,SAAS;GACzB;EACF;AAIL,QAAO"}
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":"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"}
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;;uCA+ET,GAAA,aAAa,MAAA,CAAA,MAAA,OAAA,qBAAA;8CA+BN,GAAA,aAAa,MAAA,CAAA,MAAA,MAAA,qBAAA;EAAA;AAAA;AAAA,cAtChD,uBAAA,SAAgC,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;;uCA+ET,GAAA,aAAa,MAAA,CAAA,MAAA,OAAA,qBAAA;8CA+BN,GAAA,aAAa,MAAA,CAAA,MAAA,MAAA,qBAAA;EAAA;AAAA;AAAA,cAtChD,uBAAA,SAAgC,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":"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"}
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.5.11",
3
+ "version": "2.7.0",
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": "^3.21.0",
102
- "zod": "^4.3.6",
103
- "@orpc/contract": "^1.13.4",
104
- "@orpc/server": "^1.13.4",
105
- "@orpc/client": "^1.13.4",
106
- "@orpc/openapi": "^1.13.4",
107
- "@orpc/zod": "^1.13.4",
108
- "@orpc/react-query": "^1.13.4"
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.0.18"
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": "^1.13.4"
128
+ "@orpc/tanstack-query": "1.14.3"
134
129
  },
135
130
  "keywords": [
136
131
  "plugin",
@@ -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
- return require(`${packageName}/package.json`).version as string;
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,
@@ -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
- return require(`${packageName}/package.json`).version as string;
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 const SHARE_CONFIG = {
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
- } as const;
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", "^3.21.0"),
59
+ version: getInstalledPackageVersion("effect", pkg.peerDependencies.effect),
60
+ shareScope: "default",
40
61
  shareConfig: SHARE_CONFIG,
41
62
  },
42
63
  zod: {
43
- version: getInstalledPackageVersion("zod", "^4.3.6"),
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", "^1.13.4"),
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", "^1.13.4"),
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: typeof SHARE_CONFIG }> {
72
- const merged: Record<string, { version: string; shareConfig: typeof SHARE_CONFIG }> = {};
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] = { version: config.version, shareConfig: config.shareConfig };
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: (config.singleton ?? true) as true,
84
- requiredVersion: (config.requiredVersion ?? false) as false,
85
- strictVersion: (config.strictVersion ?? false) as false,
86
- eager: (config.eager ?? false) as false,
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
  },
@@ -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
- });
@@ -1,2 +0,0 @@
1
- export * from "@orpc/client";
2
- export * from "@orpc/react-query";
@@ -1,2 +0,0 @@
1
- export * from "@orpc/client";
2
- export * from "@orpc/react-query";
@@ -1,5 +0,0 @@
1
- export * from "@orpc/client"
2
-
3
- export * from "@orpc/react-query"
4
-
5
- export { };
@@ -1,2 +0,0 @@
1
- export * from "@orpc/client";
2
- export * from "@orpc/react-query";