every-plugin 2.10.1 → 3.0.0-rc.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 (462) hide show
  1. package/bin/every-plugin-serve.mjs +12 -0
  2. package/bin/every-plugin.mjs +59 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +1 -2
  4. package/dist/build/artifact-names.cjs +119 -0
  5. package/dist/build/artifact-names.cjs.map +1 -0
  6. package/dist/build/artifact-names.d.cts +68 -0
  7. package/dist/build/artifact-names.d.cts.map +1 -0
  8. package/dist/build/artifact-names.d.mts +68 -0
  9. package/dist/build/artifact-names.d.mts.map +1 -0
  10. package/dist/build/artifact-names.mjs +102 -0
  11. package/dist/build/artifact-names.mjs.map +1 -0
  12. package/dist/build/contract-types.cjs +89 -0
  13. package/dist/build/contract-types.cjs.map +1 -0
  14. package/dist/build/contract-types.mjs +81 -0
  15. package/dist/build/contract-types.mjs.map +1 -0
  16. package/dist/build/rspack/build-report-plugin.cjs +37 -0
  17. package/dist/build/rspack/build-report-plugin.cjs.map +1 -0
  18. package/dist/build/rspack/build-report-plugin.d.cts +18 -0
  19. package/dist/build/rspack/build-report-plugin.d.cts.map +1 -0
  20. package/dist/build/rspack/build-report-plugin.d.mts +18 -0
  21. package/dist/build/rspack/build-report-plugin.d.mts.map +1 -0
  22. package/dist/build/rspack/build-report-plugin.mjs +37 -0
  23. package/dist/build/rspack/build-report-plugin.mjs.map +1 -0
  24. package/dist/build/rspack/chunk-completeness-plugin.cjs +47 -0
  25. package/dist/build/rspack/chunk-completeness-plugin.cjs.map +1 -0
  26. package/dist/build/rspack/chunk-completeness-plugin.mjs +47 -0
  27. package/dist/build/rspack/chunk-completeness-plugin.mjs.map +1 -0
  28. package/dist/build/rspack/compose.cjs +69 -0
  29. package/dist/build/rspack/compose.cjs.map +1 -0
  30. package/dist/build/rspack/compose.d.cts +20 -0
  31. package/dist/build/rspack/compose.d.cts.map +1 -0
  32. package/dist/build/rspack/compose.d.mts +20 -0
  33. package/dist/build/rspack/compose.d.mts.map +1 -0
  34. package/dist/build/rspack/compose.mjs +65 -0
  35. package/dist/build/rspack/compose.mjs.map +1 -0
  36. package/dist/build/rspack/fix-mf-data-uri-plugin.cjs +11 -11
  37. package/dist/build/rspack/fix-mf-data-uri-plugin.cjs.map +1 -1
  38. package/dist/build/rspack/fix-mf-data-uri-plugin.d.cts +2 -0
  39. package/dist/build/rspack/fix-mf-data-uri-plugin.d.cts.map +1 -1
  40. package/dist/build/rspack/fix-mf-data-uri-plugin.d.mts +2 -0
  41. package/dist/build/rspack/fix-mf-data-uri-plugin.d.mts.map +1 -1
  42. package/dist/build/rspack/fix-mf-data-uri-plugin.mjs +11 -10
  43. package/dist/build/rspack/fix-mf-data-uri-plugin.mjs.map +1 -1
  44. package/dist/build/rspack/generated-config.cjs +35 -0
  45. package/dist/build/rspack/generated-config.cjs.map +1 -0
  46. package/dist/build/rspack/generated-config.mjs +32 -0
  47. package/dist/build/rspack/generated-config.mjs.map +1 -0
  48. package/dist/build/rspack/index.cjs +8 -5
  49. package/dist/build/rspack/index.d.cts +5 -3
  50. package/dist/build/rspack/index.d.mts +5 -3
  51. package/dist/build/rspack/index.mjs +5 -3
  52. package/dist/build/rspack/module-federation.cjs +2 -2
  53. package/dist/build/rspack/module-federation.cjs.map +1 -1
  54. package/dist/build/rspack/module-federation.mjs +1 -1
  55. package/dist/build/rspack/module-federation.mjs.map +1 -1
  56. package/dist/build/rspack/plugin.cjs +44 -69
  57. package/dist/build/rspack/plugin.cjs.map +1 -1
  58. package/dist/build/rspack/plugin.d.cts +4 -13
  59. package/dist/build/rspack/plugin.d.cts.map +1 -1
  60. package/dist/build/rspack/plugin.d.mts +4 -13
  61. package/dist/build/rspack/plugin.d.mts.map +1 -1
  62. package/dist/build/rspack/plugin.mjs +44 -69
  63. package/dist/build/rspack/plugin.mjs.map +1 -1
  64. package/dist/build/rspack/utils.cjs +7 -5
  65. package/dist/build/rspack/utils.cjs.map +1 -1
  66. package/dist/build/rspack/utils.mjs +7 -6
  67. package/dist/build/rspack/utils.mjs.map +1 -1
  68. package/dist/build/ui/factory.cjs +88 -0
  69. package/dist/build/ui/factory.cjs.map +1 -0
  70. package/dist/build/ui/factory.d.cts +11 -0
  71. package/dist/build/ui/factory.d.cts.map +1 -0
  72. package/dist/build/ui/factory.d.mts +11 -0
  73. package/dist/build/ui/factory.d.mts.map +1 -0
  74. package/dist/build/ui/factory.mjs +80 -0
  75. package/dist/build/ui/factory.mjs.map +1 -0
  76. package/dist/build/ui/generated-config.cjs +118 -0
  77. package/dist/build/ui/generated-config.cjs.map +1 -0
  78. package/dist/build/ui/generated-config.d.cts +33 -0
  79. package/dist/build/ui/generated-config.d.cts.map +1 -0
  80. package/dist/build/ui/generated-config.d.mts +33 -0
  81. package/dist/build/ui/generated-config.d.mts.map +1 -0
  82. package/dist/build/ui/generated-config.mjs +111 -0
  83. package/dist/build/ui/generated-config.mjs.map +1 -0
  84. package/dist/build/ui/hash-artifacts-plugin.cjs +61 -0
  85. package/dist/build/ui/hash-artifacts-plugin.cjs.map +1 -0
  86. package/dist/build/ui/hash-artifacts-plugin.d.cts +20 -0
  87. package/dist/build/ui/hash-artifacts-plugin.d.cts.map +1 -0
  88. package/dist/build/ui/hash-artifacts-plugin.d.mts +20 -0
  89. package/dist/build/ui/hash-artifacts-plugin.d.mts.map +1 -0
  90. package/dist/build/ui/hash-artifacts-plugin.mjs +58 -0
  91. package/dist/build/ui/hash-artifacts-plugin.mjs.map +1 -0
  92. package/dist/build/ui/index.cjs +90 -0
  93. package/dist/build/ui/index.cjs.map +1 -0
  94. package/dist/build/ui/index.d.cts +29 -0
  95. package/dist/build/ui/index.d.cts.map +1 -0
  96. package/dist/build/ui/index.d.mts +29 -0
  97. package/dist/build/ui/index.d.mts.map +1 -0
  98. package/dist/build/ui/index.mjs +68 -0
  99. package/dist/build/ui/index.mjs.map +1 -0
  100. package/dist/build/ui/manifest-plugin.cjs +37 -0
  101. package/dist/build/ui/manifest-plugin.cjs.map +1 -0
  102. package/dist/build/ui/manifest-plugin.d.cts +19 -0
  103. package/dist/build/ui/manifest-plugin.d.cts.map +1 -0
  104. package/dist/build/ui/manifest-plugin.d.mts +19 -0
  105. package/dist/build/ui/manifest-plugin.d.mts.map +1 -0
  106. package/dist/build/ui/manifest-plugin.mjs +37 -0
  107. package/dist/build/ui/manifest-plugin.mjs.map +1 -0
  108. package/dist/build/ui/rsbuild-config.cjs +203 -0
  109. package/dist/build/ui/rsbuild-config.cjs.map +1 -0
  110. package/dist/build/ui/rsbuild-config.d.cts +45 -0
  111. package/dist/build/ui/rsbuild-config.d.cts.map +1 -0
  112. package/dist/build/ui/rsbuild-config.d.mts +45 -0
  113. package/dist/build/ui/rsbuild-config.d.mts.map +1 -0
  114. package/dist/build/ui/rsbuild-config.mjs +200 -0
  115. package/dist/build/ui/rsbuild-config.mjs.map +1 -0
  116. package/dist/build/ui/stubs.cjs +107 -0
  117. package/dist/build/ui/stubs.cjs.map +1 -0
  118. package/dist/build/ui/stubs.d.cts +25 -0
  119. package/dist/build/ui/stubs.d.cts.map +1 -0
  120. package/dist/build/ui/stubs.d.mts +25 -0
  121. package/dist/build/ui/stubs.d.mts.map +1 -0
  122. package/dist/build/ui/stubs.mjs +106 -0
  123. package/dist/build/ui/stubs.mjs.map +1 -0
  124. package/dist/cli.cjs +83 -0
  125. package/dist/cli.cjs.map +1 -0
  126. package/dist/cli.d.cts +6 -0
  127. package/dist/cli.d.cts.map +1 -0
  128. package/dist/cli.d.mts +6 -0
  129. package/dist/cli.d.mts.map +1 -0
  130. package/dist/cli.mjs +82 -0
  131. package/dist/cli.mjs.map +1 -0
  132. package/dist/dev/serve.cjs +390 -0
  133. package/dist/dev/serve.cjs.map +1 -0
  134. package/dist/dev/serve.d.cts +23 -0
  135. package/dist/dev/serve.d.cts.map +1 -0
  136. package/dist/dev/serve.d.mts +23 -0
  137. package/dist/dev/serve.d.mts.map +1 -0
  138. package/dist/dev/serve.mjs +384 -0
  139. package/dist/dev/serve.mjs.map +1 -0
  140. package/dist/dev/watch-kill.cjs +39 -0
  141. package/dist/dev/watch-kill.cjs.map +1 -0
  142. package/dist/dev/watch-kill.mjs +38 -0
  143. package/dist/dev/watch-kill.mjs.map +1 -0
  144. package/dist/effect-helpers.cjs +23 -0
  145. package/dist/effect-helpers.cjs.map +1 -0
  146. package/dist/effect-helpers.d.cts +20 -0
  147. package/dist/effect-helpers.d.cts.map +1 -0
  148. package/dist/effect-helpers.d.mts +20 -0
  149. package/dist/effect-helpers.d.mts.map +1 -0
  150. package/dist/effect-helpers.mjs +22 -0
  151. package/dist/effect-helpers.mjs.map +1 -0
  152. package/dist/errors.cjs +49 -69
  153. package/dist/errors.cjs.map +1 -1
  154. package/dist/errors.d.cts +13 -96
  155. package/dist/errors.d.cts.map +1 -1
  156. package/dist/errors.d.mts +13 -96
  157. package/dist/errors.d.mts.map +1 -1
  158. package/dist/errors.mjs +16 -34
  159. package/dist/errors.mjs.map +1 -1
  160. package/dist/identity.cjs +19 -0
  161. package/dist/identity.cjs.map +1 -0
  162. package/dist/identity.d.cts +33 -0
  163. package/dist/identity.d.cts.map +1 -0
  164. package/dist/identity.d.mts +33 -0
  165. package/dist/identity.d.mts.map +1 -0
  166. package/dist/identity.mjs +16 -0
  167. package/dist/identity.mjs.map +1 -0
  168. package/dist/index.cjs +8 -5
  169. package/dist/index.d.cts +8 -6
  170. package/dist/index.d.mts +8 -6
  171. package/dist/index.mjs +6 -4
  172. package/dist/plugin.cjs +12 -26
  173. package/dist/plugin.cjs.map +1 -1
  174. package/dist/plugin.d.cts +44 -25
  175. package/dist/plugin.d.cts.map +1 -1
  176. package/dist/plugin.d.mts +45 -26
  177. package/dist/plugin.d.mts.map +1 -1
  178. package/dist/plugin.mjs +15 -29
  179. package/dist/plugin.mjs.map +1 -1
  180. package/dist/remote-entry.cjs +103 -0
  181. package/dist/remote-entry.cjs.map +1 -0
  182. package/dist/remote-entry.d.cts +53 -0
  183. package/dist/remote-entry.d.cts.map +1 -0
  184. package/dist/remote-entry.d.mts +53 -0
  185. package/dist/remote-entry.d.mts.map +1 -0
  186. package/dist/remote-entry.mjs +98 -0
  187. package/dist/remote-entry.mjs.map +1 -0
  188. package/dist/runtime/errors.cjs +140 -34
  189. package/dist/runtime/errors.cjs.map +1 -1
  190. package/dist/runtime/errors.d.cts +42 -7
  191. package/dist/runtime/errors.d.cts.map +1 -1
  192. package/dist/runtime/errors.d.mts +42 -7
  193. package/dist/runtime/errors.d.mts.map +1 -1
  194. package/dist/runtime/errors.mjs +136 -31
  195. package/dist/runtime/errors.mjs.map +1 -1
  196. package/dist/runtime/index.cjs +95 -23
  197. package/dist/runtime/index.cjs.map +1 -1
  198. package/dist/runtime/index.d.cts +16 -0
  199. package/dist/runtime/index.d.cts.map +1 -1
  200. package/dist/runtime/index.d.mts +16 -0
  201. package/dist/runtime/index.d.mts.map +1 -1
  202. package/dist/runtime/index.mjs +98 -26
  203. package/dist/runtime/index.mjs.map +1 -1
  204. package/dist/runtime/mf-config.cjs +3 -78
  205. package/dist/runtime/mf-config.cjs.map +1 -1
  206. package/dist/runtime/mf-config.d.cts +3 -49
  207. package/dist/runtime/mf-config.d.cts.map +1 -1
  208. package/dist/runtime/mf-config.d.mts +3 -49
  209. package/dist/runtime/mf-config.d.mts.map +1 -1
  210. package/dist/runtime/mf-config.mjs +5 -78
  211. package/dist/runtime/mf-config.mjs.map +1 -1
  212. package/dist/runtime/services/module-federation.service.cjs +63 -12
  213. package/dist/runtime/services/module-federation.service.cjs.map +1 -1
  214. package/dist/runtime/services/module-federation.service.d.cts +4 -13
  215. package/dist/runtime/services/module-federation.service.d.mts +4 -13
  216. package/dist/runtime/services/module-federation.service.mjs +63 -14
  217. package/dist/runtime/services/module-federation.service.mjs.map +1 -1
  218. package/dist/runtime/services/normalize.cjs +2 -22
  219. package/dist/runtime/services/normalize.d.cts +2 -21
  220. package/dist/runtime/services/normalize.d.mts +2 -21
  221. package/dist/runtime/services/normalize.mjs +2 -21
  222. package/dist/runtime/services/plugin-lifecycle.service.cjs +9 -11
  223. package/dist/runtime/services/plugin-lifecycle.service.cjs.map +1 -1
  224. package/dist/runtime/services/plugin-lifecycle.service.d.cts +3 -16
  225. package/dist/runtime/services/plugin-lifecycle.service.d.mts +3 -16
  226. package/dist/runtime/services/plugin-lifecycle.service.mjs +10 -13
  227. package/dist/runtime/services/plugin-lifecycle.service.mjs.map +1 -1
  228. package/dist/runtime/services/plugin-loader.service.cjs +30 -29
  229. package/dist/runtime/services/plugin-loader.service.cjs.map +1 -1
  230. package/dist/runtime/services/plugin-loader.service.d.cts +6 -53
  231. package/dist/runtime/services/plugin-loader.service.d.mts +6 -53
  232. package/dist/runtime/services/plugin-loader.service.mjs +29 -30
  233. package/dist/runtime/services/plugin-loader.service.mjs.map +1 -1
  234. package/dist/runtime/services/plugin.service.cjs +10 -12
  235. package/dist/runtime/services/plugin.service.cjs.map +1 -1
  236. package/dist/runtime/services/plugin.service.d.cts +14 -36
  237. package/dist/runtime/services/plugin.service.d.cts.map +1 -1
  238. package/dist/runtime/services/plugin.service.d.mts +14 -36
  239. package/dist/runtime/services/plugin.service.d.mts.map +1 -1
  240. package/dist/runtime/services/plugin.service.mjs +14 -18
  241. package/dist/runtime/services/plugin.service.mjs.map +1 -1
  242. package/dist/runtime/services/secrets.service.cjs +12 -12
  243. package/dist/runtime/services/secrets.service.cjs.map +1 -1
  244. package/dist/runtime/services/secrets.service.d.cts +3 -15
  245. package/dist/runtime/services/secrets.service.d.mts +3 -15
  246. package/dist/runtime/services/secrets.service.mjs +12 -13
  247. package/dist/runtime/services/secrets.service.mjs.map +1 -1
  248. package/dist/runtime/services/shared-identity.cjs +40 -0
  249. package/dist/runtime/services/shared-identity.cjs.map +1 -0
  250. package/dist/runtime/services/shared-identity.mjs +38 -0
  251. package/dist/runtime/services/shared-identity.mjs.map +1 -0
  252. package/dist/runtime/validation.cjs +2 -2
  253. package/dist/runtime/validation.cjs.map +1 -1
  254. package/dist/runtime/validation.mjs +2 -2
  255. package/dist/runtime/validation.mjs.map +1 -1
  256. package/dist/shared-deps-spec.cjs +384 -0
  257. package/dist/shared-deps-spec.cjs.map +1 -0
  258. package/dist/shared-deps-spec.d.cts +182 -0
  259. package/dist/shared-deps-spec.d.cts.map +1 -0
  260. package/dist/shared-deps-spec.d.mts +182 -0
  261. package/dist/shared-deps-spec.d.mts.map +1 -0
  262. package/dist/shared-deps-spec.mjs +368 -0
  263. package/dist/shared-deps-spec.mjs.map +1 -0
  264. package/dist/types.d.cts +22 -41
  265. package/dist/types.d.cts.map +1 -1
  266. package/dist/types.d.mts +22 -41
  267. package/dist/types.d.mts.map +1 -1
  268. package/dist/ui/manifest/construct.cjs +268 -0
  269. package/dist/ui/manifest/construct.cjs.map +1 -0
  270. package/dist/ui/manifest/construct.d.cts +48 -0
  271. package/dist/ui/manifest/construct.d.cts.map +1 -0
  272. package/dist/ui/manifest/construct.d.mts +48 -0
  273. package/dist/ui/manifest/construct.d.mts.map +1 -0
  274. package/dist/ui/manifest/construct.mjs +268 -0
  275. package/dist/ui/manifest/construct.mjs.map +1 -0
  276. package/dist/ui/manifest/contract.cjs +34 -0
  277. package/dist/ui/manifest/contract.cjs.map +1 -0
  278. package/dist/ui/manifest/contract.d.cts +26 -0
  279. package/dist/ui/manifest/contract.d.cts.map +1 -0
  280. package/dist/ui/manifest/contract.d.mts +26 -0
  281. package/dist/ui/manifest/contract.d.mts.map +1 -0
  282. package/dist/ui/manifest/contract.mjs +26 -0
  283. package/dist/ui/manifest/contract.mjs.map +1 -0
  284. package/dist/ui/manifest/descriptor.cjs +64 -0
  285. package/dist/ui/manifest/descriptor.cjs.map +1 -0
  286. package/dist/ui/manifest/descriptor.d.cts +60 -0
  287. package/dist/ui/manifest/descriptor.d.cts.map +1 -0
  288. package/dist/ui/manifest/descriptor.d.mts +60 -0
  289. package/dist/ui/manifest/descriptor.d.mts.map +1 -0
  290. package/dist/ui/manifest/descriptor.mjs +61 -0
  291. package/dist/ui/manifest/descriptor.mjs.map +1 -0
  292. package/dist/ui/manifest/generator.cjs +128 -0
  293. package/dist/ui/manifest/generator.cjs.map +1 -0
  294. package/dist/ui/manifest/generator.d.cts +41 -0
  295. package/dist/ui/manifest/generator.d.cts.map +1 -0
  296. package/dist/ui/manifest/generator.d.mts +41 -0
  297. package/dist/ui/manifest/generator.d.mts.map +1 -0
  298. package/dist/ui/manifest/generator.mjs +125 -0
  299. package/dist/ui/manifest/generator.mjs.map +1 -0
  300. package/dist/ui/manifest/index.cjs +35 -0
  301. package/dist/ui/manifest/index.d.cts +9 -0
  302. package/dist/ui/manifest/index.d.mts +9 -0
  303. package/dist/ui/manifest/index.mjs +9 -0
  304. package/dist/ui/manifest/manifest-schema.cjs +97 -0
  305. package/dist/ui/manifest/manifest-schema.cjs.map +1 -0
  306. package/dist/ui/manifest/manifest-schema.d.cts +132 -0
  307. package/dist/ui/manifest/manifest-schema.d.cts.map +1 -0
  308. package/dist/ui/manifest/manifest-schema.d.mts +132 -0
  309. package/dist/ui/manifest/manifest-schema.d.mts.map +1 -0
  310. package/dist/ui/manifest/manifest-schema.mjs +90 -0
  311. package/dist/ui/manifest/manifest-schema.mjs.map +1 -0
  312. package/dist/ui/manifest/mount-registry.cjs +52 -0
  313. package/dist/ui/manifest/mount-registry.cjs.map +1 -0
  314. package/dist/ui/manifest/mount-registry.d.cts +61 -0
  315. package/dist/ui/manifest/mount-registry.d.cts.map +1 -0
  316. package/dist/ui/manifest/mount-registry.d.mts +61 -0
  317. package/dist/ui/manifest/mount-registry.d.mts.map +1 -0
  318. package/dist/ui/manifest/mount-registry.mjs +48 -0
  319. package/dist/ui/manifest/mount-registry.mjs.map +1 -0
  320. package/dist/ui/manifest/nav.cjs +13 -0
  321. package/dist/ui/manifest/nav.cjs.map +1 -0
  322. package/dist/ui/manifest/nav.d.cts +34 -0
  323. package/dist/ui/manifest/nav.d.cts.map +1 -0
  324. package/dist/ui/manifest/nav.d.mts +34 -0
  325. package/dist/ui/manifest/nav.d.mts.map +1 -0
  326. package/dist/ui/manifest/nav.mjs +13 -0
  327. package/dist/ui/manifest/nav.mjs.map +1 -0
  328. package/dist/ui/manifest/route-config.cjs +33 -0
  329. package/dist/ui/manifest/route-config.cjs.map +1 -0
  330. package/dist/ui/manifest/route-config.d.cts +40 -0
  331. package/dist/ui/manifest/route-config.d.cts.map +1 -0
  332. package/dist/ui/manifest/route-config.d.mts +40 -0
  333. package/dist/ui/manifest/route-config.d.mts.map +1 -0
  334. package/dist/ui/manifest/route-config.mjs +33 -0
  335. package/dist/ui/manifest/route-config.mjs.map +1 -0
  336. package/dist/version-manifest.cjs +65 -0
  337. package/dist/version-manifest.cjs.map +1 -0
  338. package/dist/version-manifest.d.cts +52 -0
  339. package/dist/version-manifest.d.cts.map +1 -0
  340. package/dist/version-manifest.d.mts +52 -0
  341. package/dist/version-manifest.d.mts.map +1 -0
  342. package/dist/version-manifest.mjs +63 -0
  343. package/dist/version-manifest.mjs.map +1 -0
  344. package/package.json +165 -68
  345. package/skills/plugin-client/SKILL.md +24 -5
  346. package/skills/plugin-development/SKILL.md +79 -47
  347. package/skills/plugin-testing/SKILL.md +41 -12
  348. package/src/build/artifact-names.ts +117 -0
  349. package/src/build/contract-types.ts +101 -0
  350. package/src/build/rspack/build-report-plugin.ts +34 -0
  351. package/src/build/rspack/chunk-completeness-plugin.ts +57 -0
  352. package/src/build/rspack/compose.ts +87 -0
  353. package/src/build/rspack/fix-mf-data-uri-plugin.ts +23 -12
  354. package/src/build/rspack/generated-config.ts +35 -0
  355. package/src/build/rspack/index.ts +10 -5
  356. package/src/build/rspack/module-federation.ts +1 -1
  357. package/src/build/rspack/plugin.ts +103 -105
  358. package/src/build/rspack/utils.ts +8 -2
  359. package/src/build/ui/factory.ts +96 -0
  360. package/src/build/ui/generated-config.ts +133 -0
  361. package/src/build/ui/hash-artifacts-plugin.ts +79 -0
  362. package/src/build/ui/index.ts +98 -0
  363. package/src/build/ui/manifest-plugin.ts +54 -0
  364. package/src/build/ui/rsbuild-config.ts +256 -0
  365. package/src/build/ui/stubs.ts +103 -0
  366. package/src/cli.ts +100 -0
  367. package/src/dev/serve.ts +477 -0
  368. package/src/dev/watch-kill.ts +58 -0
  369. package/src/effect-helpers.ts +25 -0
  370. package/src/errors.ts +16 -18
  371. package/src/identity.ts +36 -0
  372. package/src/index.ts +4 -0
  373. package/src/plugin.ts +70 -92
  374. package/src/remote-entry.ts +171 -0
  375. package/src/runtime/errors.ts +186 -27
  376. package/src/runtime/index.ts +132 -43
  377. package/src/runtime/mf-config.ts +12 -107
  378. package/src/runtime/services/module-federation.service.ts +221 -117
  379. package/src/runtime/services/normalize.ts +1 -18
  380. package/src/runtime/services/plugin-lifecycle.service.ts +66 -75
  381. package/src/runtime/services/plugin-loader.service.ts +239 -212
  382. package/src/runtime/services/plugin.service.ts +61 -43
  383. package/src/runtime/services/secrets.service.ts +20 -15
  384. package/src/runtime/services/shared-identity.ts +68 -0
  385. package/src/runtime/validation.ts +5 -7
  386. package/src/shared-deps-spec.ts +478 -0
  387. package/src/types.ts +22 -48
  388. package/src/ui/manifest/construct.ts +403 -0
  389. package/src/ui/manifest/contract.ts +33 -0
  390. package/src/ui/manifest/descriptor.ts +96 -0
  391. package/src/ui/manifest/generator.ts +238 -0
  392. package/src/ui/manifest/index.ts +55 -0
  393. package/src/ui/manifest/manifest-schema.ts +107 -0
  394. package/src/ui/manifest/mount-registry.ts +50 -0
  395. package/src/ui/manifest/nav.ts +43 -0
  396. package/src/ui/manifest/route-config.ts +82 -0
  397. package/src/version-manifest.ts +88 -0
  398. package/dist/build/rspack/dev-server-middleware.cjs +0 -248
  399. package/dist/build/rspack/dev-server-middleware.cjs.map +0 -1
  400. package/dist/build/rspack/dev-server-middleware.mjs +0 -247
  401. package/dist/build/rspack/dev-server-middleware.mjs.map +0 -1
  402. package/dist/build/shared-deps.cjs +0 -83
  403. package/dist/build/shared-deps.cjs.map +0 -1
  404. package/dist/build/shared-deps.d.cts +0 -67
  405. package/dist/build/shared-deps.d.cts.map +0 -1
  406. package/dist/build/shared-deps.d.mts +0 -67
  407. package/dist/build/shared-deps.d.mts.map +0 -1
  408. package/dist/build/shared-deps.mjs +0 -79
  409. package/dist/build/shared-deps.mjs.map +0 -1
  410. package/dist/effect.cjs +0 -9
  411. package/dist/effect.d.cts +0 -1
  412. package/dist/effect.d.mts +0 -1
  413. package/dist/effect.mjs +0 -3
  414. package/dist/orpc-openapi.cjs +0 -17
  415. package/dist/orpc-openapi.d.cts +0 -2
  416. package/dist/orpc-openapi.d.mts +0 -2
  417. package/dist/orpc-openapi.mjs +0 -5
  418. package/dist/orpc.cjs +0 -46
  419. package/dist/orpc.d.cts +0 -7
  420. package/dist/orpc.d.mts +0 -7
  421. package/dist/orpc.mjs +0 -11
  422. package/dist/package.cjs +0 -23
  423. package/dist/package.cjs.map +0 -1
  424. package/dist/package.mjs +0 -17
  425. package/dist/package.mjs.map +0 -1
  426. package/dist/runtime/services/module-federation.service.d.cts.map +0 -1
  427. package/dist/runtime/services/module-federation.service.d.mts.map +0 -1
  428. package/dist/runtime/services/normalize.cjs.map +0 -1
  429. package/dist/runtime/services/normalize.d.cts.map +0 -1
  430. package/dist/runtime/services/normalize.d.mts.map +0 -1
  431. package/dist/runtime/services/normalize.mjs.map +0 -1
  432. package/dist/runtime/services/plugin-lifecycle.service.d.cts.map +0 -1
  433. package/dist/runtime/services/plugin-lifecycle.service.d.mts.map +0 -1
  434. package/dist/runtime/services/plugin-loader.service.d.cts.map +0 -1
  435. package/dist/runtime/services/plugin-loader.service.d.mts.map +0 -1
  436. package/dist/runtime/services/secrets.service.d.cts.map +0 -1
  437. package/dist/runtime/services/secrets.service.d.mts.map +0 -1
  438. package/dist/testing/index.cjs +0 -57
  439. package/dist/testing/index.cjs.map +0 -1
  440. package/dist/testing/index.d.cts +0 -54
  441. package/dist/testing/index.d.cts.map +0 -1
  442. package/dist/testing/index.d.mts +0 -54
  443. package/dist/testing/index.d.mts.map +0 -1
  444. package/dist/testing/index.mjs +0 -55
  445. package/dist/testing/index.mjs.map +0 -1
  446. package/dist/zod-core.cjs +0 -9
  447. package/dist/zod-core.d.cts +0 -1
  448. package/dist/zod-core.d.mts +0 -1
  449. package/dist/zod-core.mjs +0 -3
  450. package/dist/zod.cjs +0 -11
  451. package/dist/zod.d.cts +0 -2
  452. package/dist/zod.d.mts +0 -2
  453. package/dist/zod.mjs +0 -3
  454. package/src/build/rspack/dev-server-middleware.ts +0 -324
  455. package/src/build/shared-deps.ts +0 -102
  456. package/src/effect.ts +0 -1
  457. package/src/orpc-openapi.ts +0 -2
  458. package/src/orpc.ts +0 -9
  459. package/src/testing/index.ts +0 -87
  460. package/src/testing/mocks/module-federation.service.ts +0 -41
  461. package/src/zod-core.ts +0 -1
  462. package/src/zod.ts +0 -3
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/testing/index.ts"],"mappings":";;;;;KAIY,YAAY,eAAe;;;;;;;;;;;KAY3B,qBAAqB,UAAU,gBACxC,WAAW,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;iBA8CJ,yBAAyB,aAAa,WACpD;EACE,UAAU;IAAiB;IAAmB;IAAkB;;EAChE,UAAU;EACV;GAEF,WAAW,OAAI,cAAA,yBAAA,aAAA,MAAA;;;;cAcJ,gCAAuB"}
@@ -1,55 +0,0 @@
1
- import { createPluginRuntime } from "../runtime/index.mjs";
2
-
3
- //#region src/testing/index.ts
4
- /**
5
- * Converts old pluginMap format to new registry format
6
- */
7
- function convertPluginMapToRegistry(oldRegistry, pluginMap) {
8
- const registry = {};
9
- for (const [pluginId, ctor] of Object.entries(pluginMap)) {
10
- const oldEntry = oldRegistry[pluginId];
11
- registry[pluginId] = {
12
- module: ctor,
13
- remote: oldEntry?.remoteUrl,
14
- version: oldEntry?.version,
15
- description: oldEntry?.description
16
- };
17
- }
18
- return registry;
19
- }
20
- /**
21
- * Creates a plugin runtime for locally available plugins (non-remote).
22
- * Automatically infers type bindings from the plugin map, eliminating
23
- * the need for manual RegistryBindings definitions.
24
- *
25
- * @deprecated Use `createPluginRuntime` with module entries directly instead.
26
- * @example
27
- * ```ts
28
- * // Old API (deprecated)
29
- * const runtime = createLocalPluginRuntime(
30
- * { registry: { "my-plugin": { remoteUrl: "..." } }, secrets },
31
- * { "my-plugin": MyPlugin }
32
- * );
33
- *
34
- * // New API (recommended)
35
- * const runtime = createPluginRuntime({
36
- * registry: { "my-plugin": { module: MyPlugin } },
37
- * secrets
38
- * });
39
- * ```
40
- */
41
- function createLocalPluginRuntime(config, pluginMap) {
42
- return createPluginRuntime({
43
- registry: convertPluginMapToRegistry(config.registry, pluginMap),
44
- secrets: config.secrets,
45
- options: config.options
46
- });
47
- }
48
- /**
49
- * @deprecated Use `createLocalPluginRuntime` or `createPluginRuntime` instead.
50
- */
51
- const createTestPluginRuntime = createLocalPluginRuntime;
52
-
53
- //#endregion
54
- export { createLocalPluginRuntime, createTestPluginRuntime };
55
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/testing/index.ts"],"sourcesContent":["import type { LoadedPluginWithBinding } from \"../plugin\";\nimport { createPluginRuntime } from \"../runtime\";\nimport type { AnyPluginConstructor, PluginRegistryEntry, PluginRuntimeConfig } from \"../types\";\n\nexport type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;\n\n/**\n * Simplified type inference for local plugin maps.\n * Just use the constructor types directly.\n *\n * @example\n * ```ts\n * const pluginMap = { \"my-plugin\": MyPlugin } as const;\n * type MyBindings = InferBindingsFromMap<typeof pluginMap>;\n * ```\n */\nexport type InferBindingsFromMap<T extends PluginMap> = {\n [K in keyof T]: T[K];\n};\n\n/**\n * Converts old pluginMap format to new registry format\n */\nfunction convertPluginMapToRegistry<T extends PluginMap>(\n oldRegistry: Record<string, { remoteUrl: string; version?: string; description?: string }>,\n pluginMap: T,\n): Record<keyof T, PluginRegistryEntry> {\n const registry: Record<string, PluginRegistryEntry> = {};\n\n for (const [pluginId, ctor] of Object.entries(pluginMap)) {\n const oldEntry = oldRegistry[pluginId];\n registry[pluginId] = {\n module: ctor as AnyPluginConstructor,\n remote: oldEntry?.remoteUrl,\n version: oldEntry?.version,\n description: oldEntry?.description,\n };\n }\n\n return registry as Record<keyof T, PluginRegistryEntry>;\n}\n\n/**\n * Creates a plugin runtime for locally available plugins (non-remote).\n * Automatically infers type bindings from the plugin map, eliminating\n * the need for manual RegistryBindings definitions.\n *\n * @deprecated Use `createPluginRuntime` with module entries directly instead.\n * @example\n * ```ts\n * // Old API (deprecated)\n * const runtime = createLocalPluginRuntime(\n * { registry: { \"my-plugin\": { remoteUrl: \"...\" } }, secrets },\n * { \"my-plugin\": MyPlugin }\n * );\n *\n * // New API (recommended)\n * const runtime = createPluginRuntime({\n * registry: { \"my-plugin\": { module: MyPlugin } },\n * secrets\n * });\n * ```\n */\nexport function createLocalPluginRuntime<TMap extends PluginMap>(\n config: {\n registry: Record<string, { remoteUrl: string; version?: string; description?: string }>;\n secrets?: Record<string, string>;\n options?: any;\n },\n pluginMap: TMap,\n) {\n const newRegistry = convertPluginMapToRegistry(config.registry, pluginMap);\n\n return createPluginRuntime({\n registry: newRegistry,\n secrets: config.secrets,\n options: config.options,\n });\n}\n\n/**\n * @deprecated Use `createLocalPluginRuntime` or `createPluginRuntime` instead.\n */\nexport const createTestPluginRuntime = createLocalPluginRuntime;\n\nexport type { EveryPlugin, PluginRegistry, RegisteredPlugins } from \"../types\";\nexport type { PluginRuntimeConfig };\n"],"mappings":";;;;;;AAuBA,SAAS,2BACP,aACA,WACsC;CACtC,MAAM,WAAgD,CAAC;CAEvD,KAAK,MAAM,CAAC,UAAU,SAAS,OAAO,QAAQ,SAAS,GAAG;EACxD,MAAM,WAAW,YAAY;EAC7B,SAAS,YAAY;GACnB,QAAQ;GACR,QAAQ,UAAU;GAClB,SAAS,UAAU;GACnB,aAAa,UAAU;EACzB;CACF;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAAgB,yBACd,QAKA,WACA;CAGA,OAAO,oBAAoB;EACzB,UAHkB,2BAA2B,OAAO,UAAU,SAG1C;EACpB,SAAS,OAAO;EAChB,SAAS,OAAO;CAClB,CAAC;AACH;;;;AAKA,MAAa,0BAA0B"}
package/dist/zod-core.cjs DELETED
@@ -1,9 +0,0 @@
1
-
2
-
3
- var zod_v4_core = require("zod/v4/core");
4
- Object.keys(zod_v4_core).forEach(function (k) {
5
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
6
- enumerable: true,
7
- get: function () { return zod_v4_core[k]; }
8
- });
9
- });
@@ -1 +0,0 @@
1
- export * from "zod/v4/core";
@@ -1 +0,0 @@
1
- export * from "zod/v4/core";
package/dist/zod-core.mjs DELETED
@@ -1,3 +0,0 @@
1
- export * from "zod/v4/core"
2
-
3
- export { };
package/dist/zod.cjs DELETED
@@ -1,11 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
- let zod = require("zod");
4
- zod = require_runtime.__toESM(zod, 1);
5
-
6
- Object.defineProperty(exports, 'z', {
7
- enumerable: true,
8
- get: function () {
9
- return zod;
10
- }
11
- });
package/dist/zod.d.cts DELETED
@@ -1,2 +0,0 @@
1
- import * as z from "zod";
2
- export { z };
package/dist/zod.d.mts DELETED
@@ -1,2 +0,0 @@
1
- import * as z from "zod";
2
- export { z };
package/dist/zod.mjs DELETED
@@ -1,3 +0,0 @@
1
- import * as z from "zod";
2
-
3
- export { z };
@@ -1,324 +0,0 @@
1
- import type { PluginInfo } from "./utils";
2
-
3
- const corsHeaders = {
4
- "Access-Control-Allow-Origin": "*",
5
- "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
6
- "Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization",
7
- };
8
-
9
- const applyCorsHeaders = (res: any) => {
10
- Object.entries(corsHeaders).forEach(([key, value]) => {
11
- res.setHeader(key, value);
12
- });
13
- };
14
-
15
- const normalizePrefix = (prefix?: string): string => {
16
- if (!prefix) return "";
17
- const cleaned = prefix.replace(/^\/+|\/+$/g, "");
18
- return cleaned ? `/${cleaned}` : "";
19
- };
20
-
21
- const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
22
-
23
- const readRuntimeConfigFromEnv = (): any => {
24
- const raw = process.env.BOS_RUNTIME_CONFIG;
25
- if (!raw) return null;
26
- try {
27
- return JSON.parse(raw);
28
- } catch {
29
- return null;
30
- }
31
- };
32
-
33
- const collectSiblingRemotes = (runtimeConfig: any, pluginId: string) => {
34
- const siblings: Record<string, { remote: string }> = {};
35
-
36
- const isApi = pluginId === "api" || runtimeConfig?.api?.name === pluginId;
37
-
38
- const ownKey = runtimeConfig?.plugins?.[pluginId] ? pluginId : null;
39
- let dependsOn: string[] = [];
40
- if (ownKey) {
41
- dependsOn = runtimeConfig.plugins[ownKey].dependsOn ?? [];
42
- } else if (isApi) {
43
- dependsOn = runtimeConfig?.api?.dependsOn ?? [];
44
- }
45
-
46
- for (const depId of dependsOn) {
47
- const dep = runtimeConfig?.plugins?.[depId];
48
- if (!dep || dep.source !== "local" || !dep.url) continue;
49
- if (depId === pluginId) continue;
50
- const base = dep.url.replace(/\/$/, "");
51
- siblings[depId] = { remote: `${base}/remoteEntry.js` };
52
- }
53
-
54
- return { siblings, dependsOn };
55
- };
56
-
57
- const loadPluginWithRetry = async (
58
- runtime: any,
59
- pluginId: string,
60
- timeoutMs = 90000,
61
- ): Promise<any> => {
62
- const deadline = Date.now() + timeoutMs;
63
- let lastError: unknown;
64
- while (Date.now() < deadline) {
65
- try {
66
- return await runtime.usePlugin(pluginId, { variables: {}, secrets: {} } as any);
67
- } catch (error) {
68
- lastError = error;
69
- await sleep(500);
70
- }
71
- }
72
- throw lastError;
73
- };
74
-
75
- export function setupPluginMiddleware(
76
- devServer: any,
77
- pluginInfo: PluginInfo,
78
- devConfig: any,
79
- port: number,
80
- ) {
81
- const rpcPrefix = normalizePrefix(devConfig?.prefix);
82
- const handlers: { rpc: any; api: any } = { rpc: null, api: null };
83
- let cleanup: (() => Promise<void>) | null = null;
84
-
85
- const performCleanup = async () => {
86
- if (cleanup) {
87
- await cleanup();
88
- cleanup = null;
89
- }
90
- };
91
-
92
- (async () => {
93
- await performCleanup();
94
-
95
- try {
96
- const { createPluginRuntime } = await import("every-plugin");
97
- const { RPCHandler } = await import("@orpc/server/fetch");
98
- const { OpenAPIHandler } = await import("@orpc/openapi/fetch");
99
- const { OpenAPIReferencePlugin } = await import("@orpc/openapi/plugins");
100
- const { ZodToJsonSchemaConverter } = await import("@orpc/zod/zod4");
101
- const { onError } = await import("every-plugin/orpc");
102
- const { formatORPCError } = await import("every-plugin/errors");
103
-
104
- const pluginId = devConfig?.pluginId || pluginInfo.normalizedName;
105
-
106
- const runtimeConfig = readRuntimeConfigFromEnv();
107
- const { siblings, dependsOn } = collectSiblingRemotes(runtimeConfig, pluginId);
108
-
109
- if (dependsOn.length > 0) {
110
- console.log(`│ 🔗 Loading sibling plugin(s) for ${pluginId}: ${dependsOn.join(", ")}`);
111
- }
112
-
113
- const registry: Record<string, { remote: string }> = {
114
- [pluginId]: {
115
- remote: `http://localhost:${port}/remoteEntry.js`,
116
- },
117
- ...siblings,
118
- };
119
-
120
- const runtime = createPluginRuntime({
121
- registry,
122
- });
123
-
124
- const defaultConfig = { variables: {}, secrets: {} };
125
-
126
- const pluginsMap: Record<string, unknown> = {};
127
- for (const depId of Object.keys(siblings)) {
128
- const dep = await loadPluginWithRetry(runtime, depId);
129
- pluginsMap[depId] = dep.createClient;
130
- console.log(`│ ✅ Loaded dependency plugin: ${depId}`);
131
- }
132
-
133
- const loaded: any = await runtime.usePlugin<typeof pluginId>(
134
- pluginId,
135
- (devConfig?.config ?? defaultConfig) as any,
136
- Object.keys(pluginsMap).length > 0 ? pluginsMap : undefined,
137
- );
138
-
139
- cleanup = async () => {
140
- handlers.rpc = null;
141
- handlers.api = null;
142
- if (devServer.app.locals.handlers) {
143
- devServer.app.locals.handlers = null;
144
- }
145
- if (runtime) await runtime.shutdown();
146
- };
147
-
148
- handlers.rpc = new RPCHandler(loaded.router, {
149
- interceptors: [
150
- onError((error: any) => {
151
- const formatted = formatORPCError(error);
152
- if (formatted) console.error(formatted);
153
- }),
154
- ],
155
- });
156
-
157
- handlers.api = new OpenAPIHandler(loaded.router, {
158
- plugins: [
159
- new OpenAPIReferencePlugin({
160
- schemaConverters: [new ZodToJsonSchemaConverter()],
161
- }),
162
- ],
163
- interceptors: [
164
- onError((error: any) => {
165
- const formatted = formatORPCError(error);
166
- if (formatted) console.error(formatted);
167
- }),
168
- ],
169
- });
170
-
171
- console.log(`╭─────────────────────────────────────────────`);
172
- console.log(`│ ✅ Plugin dev server ready: `);
173
- console.log(`├─────────────────────────────────────────────`);
174
- console.log(`│ 📡 RPC: http://localhost:${port}/api/rpc${rpcPrefix}`);
175
- console.log(`│ 📖 Docs: http://localhost:${port}/api`);
176
- console.log(`│ 💚 Health: http://localhost:${port}/`);
177
- console.log(`╰─────────────────────────────────────────────`);
178
-
179
- devServer.app.locals.handlers = handlers;
180
-
181
- if (devServer.server) {
182
- devServer.server.once("close", async () => {
183
- await performCleanup();
184
- });
185
- }
186
- } catch (error) {
187
- console.error("❌ Failed to load plugin:", error);
188
- await performCleanup();
189
- }
190
- })().catch((err) => {
191
- console.error("❌ Plugin dev server fatal error:", err);
192
- });
193
-
194
- process.once("SIGINT", async () => {
195
- const timeout = setTimeout(() => process.exit(0), 3000);
196
- await performCleanup();
197
- clearTimeout(timeout);
198
- });
199
- process.once("SIGTERM", async () => {
200
- const timeout = setTimeout(() => process.exit(0), 3000);
201
- await performCleanup();
202
- clearTimeout(timeout);
203
- });
204
-
205
- devServer.app.options("*", (_req: any, res: any) => {
206
- applyCorsHeaders(res);
207
- res.status(200).end();
208
- });
209
-
210
- devServer.app.get("/", (_req: any, res: any) => {
211
- applyCorsHeaders(res);
212
- res.json({
213
- ok: true,
214
- plugin: pluginInfo.normalizedName,
215
- version: pluginInfo.version,
216
- status: devServer.app.locals.handlers?.rpc ? "ready" : "loading",
217
- endpoints: {
218
- health: "/",
219
- docs: "/api",
220
- rpc: `/api/rpc${rpcPrefix}`,
221
- },
222
- });
223
- });
224
-
225
- devServer.app.get("/health", (_req: any, res: any) => {
226
- applyCorsHeaders(res);
227
- res.status(200).send("OK");
228
- });
229
-
230
- const buildDevContext = (_req: any, webRequest: Request) => {
231
- const rawClone =
232
- webRequest.method === "GET" || webRequest.method === "HEAD" ? null : webRequest.clone();
233
- let cachedRawBody: string | null = null;
234
- return {
235
- reqHeaders: webRequest.headers,
236
- getRawBody: async (): Promise<string> => {
237
- if (cachedRawBody !== null) return cachedRawBody;
238
- if (!rawClone) {
239
- cachedRawBody = "";
240
- return cachedRawBody;
241
- }
242
- cachedRawBody = await rawClone.text();
243
- return cachedRawBody;
244
- },
245
- };
246
- };
247
-
248
- const handleApiRequest = async (req: any, res: any) => {
249
- applyCorsHeaders(res);
250
- const apiHandler = devServer.app.locals.handlers?.api;
251
- if (!apiHandler) {
252
- return res.status(503).json({ error: "Plugin still loading..." });
253
- }
254
-
255
- try {
256
- const url = `http://${req.headers.host}${req.url}`;
257
- const webRequest = new Request(url, {
258
- method: req.method,
259
- headers: req.headers,
260
- body: req.method !== "GET" && req.method !== "HEAD" ? req : undefined,
261
- duplex: req.method !== "GET" && req.method !== "HEAD" ? "half" : undefined,
262
- } as RequestInit);
263
-
264
- const result = await apiHandler.handle(webRequest, {
265
- prefix: "/api",
266
- context: buildDevContext(req, webRequest),
267
- });
268
-
269
- if (result.response) {
270
- res.status(result.response.status);
271
- result.response.headers.forEach((value: string, key: string) => {
272
- res.setHeader(key, value);
273
- });
274
- const text = await result.response.text();
275
- res.send(text);
276
- } else {
277
- res.status(404).send("Not Found");
278
- }
279
- } catch (error) {
280
- console.error("OpenAPI error:", error);
281
- res.status(500).json({ error: (error as Error).message });
282
- }
283
- };
284
-
285
- devServer.app.all(`/api/rpc${rpcPrefix}/*`, async (req: any, res: any) => {
286
- applyCorsHeaders(res);
287
- const rpcHandler = devServer.app.locals.handlers?.rpc;
288
- if (!rpcHandler) {
289
- return res.status(503).json({ error: "Plugin still loading..." });
290
- }
291
-
292
- try {
293
- const url = `http://${req.headers.host}${req.url}`;
294
- const webRequest = new Request(url, {
295
- method: req.method,
296
- headers: req.headers,
297
- body: req.method !== "GET" && req.method !== "HEAD" ? req : undefined,
298
- duplex: req.method !== "GET" && req.method !== "HEAD" ? "half" : undefined,
299
- } as RequestInit);
300
-
301
- const result = await rpcHandler.handle(webRequest, {
302
- prefix: `/api/rpc${rpcPrefix}`,
303
- context: buildDevContext(req, webRequest),
304
- });
305
-
306
- if (result.response) {
307
- res.status(result.response.status);
308
- result.response.headers.forEach((value: string, key: string) => {
309
- res.setHeader(key, value);
310
- });
311
- const text = await result.response.text();
312
- res.send(text);
313
- } else {
314
- res.status(404).send("Not Found");
315
- }
316
- } catch (error) {
317
- console.error("RPC error:", error);
318
- res.status(500).json({ error: (error as Error).message });
319
- }
320
- });
321
-
322
- devServer.app.all("/api", handleApiRequest);
323
- devServer.app.all("/api/*", handleApiRequest);
324
- }
@@ -1,102 +0,0 @@
1
- import { existsSync, readFileSync } from "node:fs";
2
- import { createRequire } from "node:module";
3
- import { dirname, join } from "node:path";
4
- import { fileURLToPath } from "node:url";
5
-
6
- const __dirname = dirname(fileURLToPath(import.meta.url));
7
- const require = createRequire(import.meta.url);
8
-
9
- let pkg: typeof import("../../package.json");
10
-
11
- try {
12
- pkg = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf-8"));
13
- } catch {
14
- pkg = require("every-plugin/package.json");
15
- }
16
-
17
- export interface SharedDependencyConfig {
18
- version: string;
19
- requiredVersion: string | false;
20
- singleton: boolean;
21
- strictVersion: boolean;
22
- eager: boolean;
23
- shareScope: string;
24
- }
25
-
26
- export type SharedDependencies = Record<string, SharedDependencyConfig>;
27
-
28
- const DEFAULT_SHARE_CONFIG: Omit<SharedDependencyConfig, "version"> = {
29
- requiredVersion: false,
30
- singleton: true,
31
- strictVersion: false,
32
- eager: false,
33
- shareScope: "default",
34
- };
35
-
36
- function extractExactVersion(input: string): string {
37
- const match = input.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
38
- return match ? match[0] : input.replace(/^[\^~>=<\s]+/, "");
39
- }
40
-
41
- function getInstalledPackageVersion(packageName: string, fallbackVersion: string): string {
42
- try {
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}`);
53
- } catch {
54
- return extractExactVersion(fallbackVersion);
55
- }
56
- }
57
-
58
- export const pluginSharedDependencies = {
59
- "every-plugin": { version: pkg.version, ...DEFAULT_SHARE_CONFIG },
60
- effect: {
61
- version: getInstalledPackageVersion("effect", pkg.peerDependencies.effect),
62
- ...DEFAULT_SHARE_CONFIG,
63
- },
64
- zod: {
65
- version: getInstalledPackageVersion("zod", pkg.peerDependencies.zod),
66
- ...DEFAULT_SHARE_CONFIG,
67
- },
68
- "@orpc/contract": {
69
- version: getInstalledPackageVersion("@orpc/contract", pkg.peerDependencies["@orpc/contract"]),
70
- ...DEFAULT_SHARE_CONFIG,
71
- },
72
- "@orpc/client": {
73
- version: getInstalledPackageVersion("@orpc/client", pkg.peerDependencies["@orpc/client"]),
74
- ...DEFAULT_SHARE_CONFIG,
75
- },
76
- "@orpc/server": {
77
- version: getInstalledPackageVersion("@orpc/server", pkg.peerDependencies["@orpc/server"]),
78
- ...DEFAULT_SHARE_CONFIG,
79
- },
80
- } satisfies SharedDependencies;
81
-
82
- export type PluginSharedDependencyName = keyof typeof pluginSharedDependencies;
83
-
84
- export function getPluginSharedDependencies(): SharedDependencies {
85
- return pluginSharedDependencies;
86
- }
87
-
88
- export function getPluginSharedDependenciesVersionRange(): Record<string, string> {
89
- return Object.fromEntries(
90
- Object.entries(getPluginSharedDependencies()).map(([name, config]) => [
91
- name,
92
- getMajorMinorVersion(config.version),
93
- ]),
94
- );
95
- }
96
-
97
- export function getMajorMinorVersion(version: string): string {
98
- const clean = version.replace(/^[\^~>=<]+/, "");
99
- const match = clean.match(/^(\d+)\.(\d+)/);
100
- if (!match) return "^0.0.0";
101
- return `^${match[1]}.${match[2]}.0`;
102
- }
package/src/effect.ts DELETED
@@ -1 +0,0 @@
1
- export * from "effect";
@@ -1,2 +0,0 @@
1
- export * from "@orpc/openapi";
2
- export * from "@orpc/zod";
package/src/orpc.ts DELETED
@@ -1,9 +0,0 @@
1
- export * from "@orpc/contract";
2
- export * from "@orpc/experimental-publisher";
3
- export type { IORedisPublisherOptions } from "@orpc/experimental-publisher/ioredis";
4
- export { IORedisPublisher } from "@orpc/experimental-publisher/ioredis";
5
- export type { MemoryPublisherOptions } from "@orpc/experimental-publisher/memory";
6
- export { MemoryPublisher } from "@orpc/experimental-publisher/memory";
7
- export type { UpstashRedisPublisherOptions } from "@orpc/experimental-publisher/upstash-redis";
8
- export { UpstashRedisPublisher } from "@orpc/experimental-publisher/upstash-redis";
9
- export * from "@orpc/server";
@@ -1,87 +0,0 @@
1
- import type { LoadedPluginWithBinding } from "../plugin";
2
- import { createPluginRuntime } from "../runtime";
3
- import type { AnyPluginConstructor, PluginRegistryEntry, PluginRuntimeConfig } from "../types";
4
-
5
- export type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
6
-
7
- /**
8
- * Simplified type inference for local plugin maps.
9
- * Just use the constructor types directly.
10
- *
11
- * @example
12
- * ```ts
13
- * const pluginMap = { "my-plugin": MyPlugin } as const;
14
- * type MyBindings = InferBindingsFromMap<typeof pluginMap>;
15
- * ```
16
- */
17
- export type InferBindingsFromMap<T extends PluginMap> = {
18
- [K in keyof T]: T[K];
19
- };
20
-
21
- /**
22
- * Converts old pluginMap format to new registry format
23
- */
24
- function convertPluginMapToRegistry<T extends PluginMap>(
25
- oldRegistry: Record<string, { remoteUrl: string; version?: string; description?: string }>,
26
- pluginMap: T,
27
- ): Record<keyof T, PluginRegistryEntry> {
28
- const registry: Record<string, PluginRegistryEntry> = {};
29
-
30
- for (const [pluginId, ctor] of Object.entries(pluginMap)) {
31
- const oldEntry = oldRegistry[pluginId];
32
- registry[pluginId] = {
33
- module: ctor as AnyPluginConstructor,
34
- remote: oldEntry?.remoteUrl,
35
- version: oldEntry?.version,
36
- description: oldEntry?.description,
37
- };
38
- }
39
-
40
- return registry as Record<keyof T, PluginRegistryEntry>;
41
- }
42
-
43
- /**
44
- * Creates a plugin runtime for locally available plugins (non-remote).
45
- * Automatically infers type bindings from the plugin map, eliminating
46
- * the need for manual RegistryBindings definitions.
47
- *
48
- * @deprecated Use `createPluginRuntime` with module entries directly instead.
49
- * @example
50
- * ```ts
51
- * // Old API (deprecated)
52
- * const runtime = createLocalPluginRuntime(
53
- * { registry: { "my-plugin": { remoteUrl: "..." } }, secrets },
54
- * { "my-plugin": MyPlugin }
55
- * );
56
- *
57
- * // New API (recommended)
58
- * const runtime = createPluginRuntime({
59
- * registry: { "my-plugin": { module: MyPlugin } },
60
- * secrets
61
- * });
62
- * ```
63
- */
64
- export function createLocalPluginRuntime<TMap extends PluginMap>(
65
- config: {
66
- registry: Record<string, { remoteUrl: string; version?: string; description?: string }>;
67
- secrets?: Record<string, string>;
68
- options?: any;
69
- },
70
- pluginMap: TMap,
71
- ) {
72
- const newRegistry = convertPluginMapToRegistry(config.registry, pluginMap);
73
-
74
- return createPluginRuntime({
75
- registry: newRegistry,
76
- secrets: config.secrets,
77
- options: config.options,
78
- });
79
- }
80
-
81
- /**
82
- * @deprecated Use `createLocalPluginRuntime` or `createPluginRuntime` instead.
83
- */
84
- export const createTestPluginRuntime = createLocalPluginRuntime;
85
-
86
- export type { EveryPlugin, PluginRegistry, RegisteredPlugins } from "../types";
87
- export type { PluginRuntimeConfig };