every-plugin 2.10.1 → 3.0.0-rc.10

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 (480) 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 +59 -0
  25. package/dist/build/rspack/chunk-completeness-plugin.cjs.map +1 -0
  26. package/dist/build/rspack/chunk-completeness-plugin.mjs +59 -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 +122 -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 +114 -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/client.cjs +69 -0
  133. package/dist/client.cjs.map +1 -0
  134. package/dist/client.d.cts +15 -0
  135. package/dist/client.d.cts.map +1 -0
  136. package/dist/client.d.mts +15 -0
  137. package/dist/client.d.mts.map +1 -0
  138. package/dist/client.mjs +68 -0
  139. package/dist/client.mjs.map +1 -0
  140. package/dist/dev/host.cjs +149 -0
  141. package/dist/dev/host.cjs.map +1 -0
  142. package/dist/dev/host.d.cts +32 -0
  143. package/dist/dev/host.d.cts.map +1 -0
  144. package/dist/dev/host.d.mts +32 -0
  145. package/dist/dev/host.d.mts.map +1 -0
  146. package/dist/dev/host.mjs +148 -0
  147. package/dist/dev/host.mjs.map +1 -0
  148. package/dist/dev/serve.cjs +295 -0
  149. package/dist/dev/serve.cjs.map +1 -0
  150. package/dist/dev/serve.d.cts +23 -0
  151. package/dist/dev/serve.d.cts.map +1 -0
  152. package/dist/dev/serve.d.mts +23 -0
  153. package/dist/dev/serve.d.mts.map +1 -0
  154. package/dist/dev/serve.mjs +289 -0
  155. package/dist/dev/serve.mjs.map +1 -0
  156. package/dist/dev/watch-kill.cjs +39 -0
  157. package/dist/dev/watch-kill.cjs.map +1 -0
  158. package/dist/dev/watch-kill.mjs +38 -0
  159. package/dist/dev/watch-kill.mjs.map +1 -0
  160. package/dist/effect-helpers.cjs +23 -0
  161. package/dist/effect-helpers.cjs.map +1 -0
  162. package/dist/effect-helpers.d.cts +20 -0
  163. package/dist/effect-helpers.d.cts.map +1 -0
  164. package/dist/effect-helpers.d.mts +20 -0
  165. package/dist/effect-helpers.d.mts.map +1 -0
  166. package/dist/effect-helpers.mjs +22 -0
  167. package/dist/effect-helpers.mjs.map +1 -0
  168. package/dist/errors.cjs +50 -69
  169. package/dist/errors.cjs.map +1 -1
  170. package/dist/errors.d.cts +13 -96
  171. package/dist/errors.d.cts.map +1 -1
  172. package/dist/errors.d.mts +13 -96
  173. package/dist/errors.d.mts.map +1 -1
  174. package/dist/errors.mjs +16 -34
  175. package/dist/errors.mjs.map +1 -1
  176. package/dist/identity.cjs +19 -0
  177. package/dist/identity.cjs.map +1 -0
  178. package/dist/identity.d.cts +33 -0
  179. package/dist/identity.d.cts.map +1 -0
  180. package/dist/identity.d.mts +33 -0
  181. package/dist/identity.d.mts.map +1 -0
  182. package/dist/identity.mjs +16 -0
  183. package/dist/identity.mjs.map +1 -0
  184. package/dist/index.cjs +11 -5
  185. package/dist/index.d.cts +9 -6
  186. package/dist/index.d.mts +9 -6
  187. package/dist/index.mjs +7 -4
  188. package/dist/plugin.cjs +13 -26
  189. package/dist/plugin.cjs.map +1 -1
  190. package/dist/plugin.d.cts +64 -25
  191. package/dist/plugin.d.cts.map +1 -1
  192. package/dist/plugin.d.mts +64 -25
  193. package/dist/plugin.d.mts.map +1 -1
  194. package/dist/plugin.mjs +16 -29
  195. package/dist/plugin.mjs.map +1 -1
  196. package/dist/remote-entry.cjs +102 -0
  197. package/dist/remote-entry.cjs.map +1 -0
  198. package/dist/remote-entry.d.cts +52 -0
  199. package/dist/remote-entry.d.cts.map +1 -0
  200. package/dist/remote-entry.d.mts +52 -0
  201. package/dist/remote-entry.d.mts.map +1 -0
  202. package/dist/remote-entry.mjs +98 -0
  203. package/dist/remote-entry.mjs.map +1 -0
  204. package/dist/runtime/errors.cjs +159 -33
  205. package/dist/runtime/errors.cjs.map +1 -1
  206. package/dist/runtime/errors.d.cts +64 -7
  207. package/dist/runtime/errors.d.cts.map +1 -1
  208. package/dist/runtime/errors.d.mts +64 -7
  209. package/dist/runtime/errors.d.mts.map +1 -1
  210. package/dist/runtime/errors.mjs +154 -30
  211. package/dist/runtime/errors.mjs.map +1 -1
  212. package/dist/runtime/index.cjs +95 -23
  213. package/dist/runtime/index.cjs.map +1 -1
  214. package/dist/runtime/index.d.cts +16 -0
  215. package/dist/runtime/index.d.cts.map +1 -1
  216. package/dist/runtime/index.d.mts +16 -0
  217. package/dist/runtime/index.d.mts.map +1 -1
  218. package/dist/runtime/index.mjs +98 -26
  219. package/dist/runtime/index.mjs.map +1 -1
  220. package/dist/runtime/mf-config.cjs +3 -78
  221. package/dist/runtime/mf-config.cjs.map +1 -1
  222. package/dist/runtime/mf-config.d.cts +3 -49
  223. package/dist/runtime/mf-config.d.cts.map +1 -1
  224. package/dist/runtime/mf-config.d.mts +3 -49
  225. package/dist/runtime/mf-config.d.mts.map +1 -1
  226. package/dist/runtime/mf-config.mjs +5 -78
  227. package/dist/runtime/mf-config.mjs.map +1 -1
  228. package/dist/runtime/services/module-federation.service.cjs +57 -12
  229. package/dist/runtime/services/module-federation.service.cjs.map +1 -1
  230. package/dist/runtime/services/module-federation.service.d.cts +4 -13
  231. package/dist/runtime/services/module-federation.service.d.mts +4 -13
  232. package/dist/runtime/services/module-federation.service.mjs +57 -14
  233. package/dist/runtime/services/module-federation.service.mjs.map +1 -1
  234. package/dist/runtime/services/normalize.cjs +2 -22
  235. package/dist/runtime/services/normalize.d.cts +2 -21
  236. package/dist/runtime/services/normalize.d.mts +2 -21
  237. package/dist/runtime/services/normalize.mjs +2 -21
  238. package/dist/runtime/services/plugin-lifecycle.service.cjs +9 -11
  239. package/dist/runtime/services/plugin-lifecycle.service.cjs.map +1 -1
  240. package/dist/runtime/services/plugin-lifecycle.service.d.cts +3 -16
  241. package/dist/runtime/services/plugin-lifecycle.service.d.mts +3 -16
  242. package/dist/runtime/services/plugin-lifecycle.service.mjs +10 -13
  243. package/dist/runtime/services/plugin-lifecycle.service.mjs.map +1 -1
  244. package/dist/runtime/services/plugin-loader.service.cjs +59 -30
  245. package/dist/runtime/services/plugin-loader.service.cjs.map +1 -1
  246. package/dist/runtime/services/plugin-loader.service.d.cts +6 -53
  247. package/dist/runtime/services/plugin-loader.service.d.mts +6 -53
  248. package/dist/runtime/services/plugin-loader.service.mjs +58 -31
  249. package/dist/runtime/services/plugin-loader.service.mjs.map +1 -1
  250. package/dist/runtime/services/plugin.service.cjs +10 -12
  251. package/dist/runtime/services/plugin.service.cjs.map +1 -1
  252. package/dist/runtime/services/plugin.service.d.cts +14 -36
  253. package/dist/runtime/services/plugin.service.d.cts.map +1 -1
  254. package/dist/runtime/services/plugin.service.d.mts +14 -36
  255. package/dist/runtime/services/plugin.service.d.mts.map +1 -1
  256. package/dist/runtime/services/plugin.service.mjs +14 -18
  257. package/dist/runtime/services/plugin.service.mjs.map +1 -1
  258. package/dist/runtime/services/secrets.service.cjs +12 -12
  259. package/dist/runtime/services/secrets.service.cjs.map +1 -1
  260. package/dist/runtime/services/secrets.service.d.cts +3 -15
  261. package/dist/runtime/services/secrets.service.d.mts +3 -15
  262. package/dist/runtime/services/secrets.service.mjs +12 -13
  263. package/dist/runtime/services/secrets.service.mjs.map +1 -1
  264. package/dist/runtime/services/shared-identity.cjs +40 -0
  265. package/dist/runtime/services/shared-identity.cjs.map +1 -0
  266. package/dist/runtime/services/shared-identity.mjs +38 -0
  267. package/dist/runtime/services/shared-identity.mjs.map +1 -0
  268. package/dist/runtime/validation.cjs +2 -2
  269. package/dist/runtime/validation.cjs.map +1 -1
  270. package/dist/runtime/validation.mjs +2 -2
  271. package/dist/runtime/validation.mjs.map +1 -1
  272. package/dist/shared-deps-spec.cjs +384 -0
  273. package/dist/shared-deps-spec.cjs.map +1 -0
  274. package/dist/shared-deps-spec.d.cts +182 -0
  275. package/dist/shared-deps-spec.d.cts.map +1 -0
  276. package/dist/shared-deps-spec.d.mts +182 -0
  277. package/dist/shared-deps-spec.d.mts.map +1 -0
  278. package/dist/shared-deps-spec.mjs +368 -0
  279. package/dist/shared-deps-spec.mjs.map +1 -0
  280. package/dist/types.d.cts +47 -41
  281. package/dist/types.d.cts.map +1 -1
  282. package/dist/types.d.mts +47 -41
  283. package/dist/types.d.mts.map +1 -1
  284. package/dist/ui/manifest/construct.cjs +319 -0
  285. package/dist/ui/manifest/construct.cjs.map +1 -0
  286. package/dist/ui/manifest/construct.d.cts +48 -0
  287. package/dist/ui/manifest/construct.d.cts.map +1 -0
  288. package/dist/ui/manifest/construct.d.mts +48 -0
  289. package/dist/ui/manifest/construct.d.mts.map +1 -0
  290. package/dist/ui/manifest/construct.mjs +319 -0
  291. package/dist/ui/manifest/construct.mjs.map +1 -0
  292. package/dist/ui/manifest/contract.cjs +34 -0
  293. package/dist/ui/manifest/contract.cjs.map +1 -0
  294. package/dist/ui/manifest/contract.d.cts +26 -0
  295. package/dist/ui/manifest/contract.d.cts.map +1 -0
  296. package/dist/ui/manifest/contract.d.mts +26 -0
  297. package/dist/ui/manifest/contract.d.mts.map +1 -0
  298. package/dist/ui/manifest/contract.mjs +26 -0
  299. package/dist/ui/manifest/contract.mjs.map +1 -0
  300. package/dist/ui/manifest/descriptor.cjs +64 -0
  301. package/dist/ui/manifest/descriptor.cjs.map +1 -0
  302. package/dist/ui/manifest/descriptor.d.cts +60 -0
  303. package/dist/ui/manifest/descriptor.d.cts.map +1 -0
  304. package/dist/ui/manifest/descriptor.d.mts +60 -0
  305. package/dist/ui/manifest/descriptor.d.mts.map +1 -0
  306. package/dist/ui/manifest/descriptor.mjs +61 -0
  307. package/dist/ui/manifest/descriptor.mjs.map +1 -0
  308. package/dist/ui/manifest/generator.cjs +128 -0
  309. package/dist/ui/manifest/generator.cjs.map +1 -0
  310. package/dist/ui/manifest/generator.d.cts +41 -0
  311. package/dist/ui/manifest/generator.d.cts.map +1 -0
  312. package/dist/ui/manifest/generator.d.mts +41 -0
  313. package/dist/ui/manifest/generator.d.mts.map +1 -0
  314. package/dist/ui/manifest/generator.mjs +125 -0
  315. package/dist/ui/manifest/generator.mjs.map +1 -0
  316. package/dist/ui/manifest/index.cjs +35 -0
  317. package/dist/ui/manifest/index.d.cts +9 -0
  318. package/dist/ui/manifest/index.d.mts +9 -0
  319. package/dist/ui/manifest/index.mjs +9 -0
  320. package/dist/ui/manifest/manifest-schema.cjs +97 -0
  321. package/dist/ui/manifest/manifest-schema.cjs.map +1 -0
  322. package/dist/ui/manifest/manifest-schema.d.cts +132 -0
  323. package/dist/ui/manifest/manifest-schema.d.cts.map +1 -0
  324. package/dist/ui/manifest/manifest-schema.d.mts +132 -0
  325. package/dist/ui/manifest/manifest-schema.d.mts.map +1 -0
  326. package/dist/ui/manifest/manifest-schema.mjs +90 -0
  327. package/dist/ui/manifest/manifest-schema.mjs.map +1 -0
  328. package/dist/ui/manifest/mount-registry.cjs +52 -0
  329. package/dist/ui/manifest/mount-registry.cjs.map +1 -0
  330. package/dist/ui/manifest/mount-registry.d.cts +61 -0
  331. package/dist/ui/manifest/mount-registry.d.cts.map +1 -0
  332. package/dist/ui/manifest/mount-registry.d.mts +61 -0
  333. package/dist/ui/manifest/mount-registry.d.mts.map +1 -0
  334. package/dist/ui/manifest/mount-registry.mjs +48 -0
  335. package/dist/ui/manifest/mount-registry.mjs.map +1 -0
  336. package/dist/ui/manifest/nav.cjs +13 -0
  337. package/dist/ui/manifest/nav.cjs.map +1 -0
  338. package/dist/ui/manifest/nav.d.cts +34 -0
  339. package/dist/ui/manifest/nav.d.cts.map +1 -0
  340. package/dist/ui/manifest/nav.d.mts +34 -0
  341. package/dist/ui/manifest/nav.d.mts.map +1 -0
  342. package/dist/ui/manifest/nav.mjs +13 -0
  343. package/dist/ui/manifest/nav.mjs.map +1 -0
  344. package/dist/ui/manifest/route-config.cjs +33 -0
  345. package/dist/ui/manifest/route-config.cjs.map +1 -0
  346. package/dist/ui/manifest/route-config.d.cts +40 -0
  347. package/dist/ui/manifest/route-config.d.cts.map +1 -0
  348. package/dist/ui/manifest/route-config.d.mts +40 -0
  349. package/dist/ui/manifest/route-config.d.mts.map +1 -0
  350. package/dist/ui/manifest/route-config.mjs +33 -0
  351. package/dist/ui/manifest/route-config.mjs.map +1 -0
  352. package/dist/version-manifest.cjs +77 -0
  353. package/dist/version-manifest.cjs.map +1 -0
  354. package/dist/version-manifest.d.cts +62 -0
  355. package/dist/version-manifest.d.cts.map +1 -0
  356. package/dist/version-manifest.d.mts +62 -0
  357. package/dist/version-manifest.d.mts.map +1 -0
  358. package/dist/version-manifest.mjs +75 -0
  359. package/dist/version-manifest.mjs.map +1 -0
  360. package/package.json +182 -68
  361. package/skills/plugin-client/SKILL.md +34 -9
  362. package/skills/plugin-development/SKILL.md +79 -47
  363. package/skills/plugin-testing/SKILL.md +42 -12
  364. package/src/build/artifact-names.ts +117 -0
  365. package/src/build/contract-types.ts +101 -0
  366. package/src/build/rspack/build-report-plugin.ts +34 -0
  367. package/src/build/rspack/chunk-completeness-plugin.ts +66 -0
  368. package/src/build/rspack/compose.ts +87 -0
  369. package/src/build/rspack/fix-mf-data-uri-plugin.ts +23 -12
  370. package/src/build/rspack/generated-config.ts +35 -0
  371. package/src/build/rspack/index.ts +10 -5
  372. package/src/build/rspack/module-federation.ts +1 -1
  373. package/src/build/rspack/plugin.ts +103 -105
  374. package/src/build/rspack/utils.ts +8 -2
  375. package/src/build/ui/factory.ts +96 -0
  376. package/src/build/ui/generated-config.ts +137 -0
  377. package/src/build/ui/hash-artifacts-plugin.ts +79 -0
  378. package/src/build/ui/index.ts +98 -0
  379. package/src/build/ui/manifest-plugin.ts +54 -0
  380. package/src/build/ui/rsbuild-config.ts +256 -0
  381. package/src/build/ui/stubs.ts +103 -0
  382. package/src/cli.ts +100 -0
  383. package/src/client.ts +111 -0
  384. package/src/dev/host.ts +235 -0
  385. package/src/dev/serve.ts +359 -0
  386. package/src/dev/watch-kill.ts +58 -0
  387. package/src/effect-helpers.ts +25 -0
  388. package/src/errors.ts +17 -18
  389. package/src/identity.ts +36 -0
  390. package/src/index.ts +13 -0
  391. package/src/plugin.ts +94 -91
  392. package/src/remote-entry.ts +170 -0
  393. package/src/runtime/errors.ts +229 -26
  394. package/src/runtime/index.ts +132 -43
  395. package/src/runtime/mf-config.ts +12 -107
  396. package/src/runtime/services/module-federation.service.ts +218 -117
  397. package/src/runtime/services/normalize.ts +1 -18
  398. package/src/runtime/services/plugin-lifecycle.service.ts +66 -75
  399. package/src/runtime/services/plugin-loader.service.ts +280 -209
  400. package/src/runtime/services/plugin.service.ts +61 -43
  401. package/src/runtime/services/secrets.service.ts +20 -15
  402. package/src/runtime/services/shared-identity.ts +68 -0
  403. package/src/runtime/validation.ts +5 -7
  404. package/src/shared-deps-spec.ts +478 -0
  405. package/src/types.ts +62 -50
  406. package/src/ui/manifest/construct.ts +456 -0
  407. package/src/ui/manifest/contract.ts +33 -0
  408. package/src/ui/manifest/descriptor.ts +96 -0
  409. package/src/ui/manifest/generator.ts +238 -0
  410. package/src/ui/manifest/index.ts +55 -0
  411. package/src/ui/manifest/manifest-schema.ts +107 -0
  412. package/src/ui/manifest/mount-registry.ts +50 -0
  413. package/src/ui/manifest/nav.ts +43 -0
  414. package/src/ui/manifest/route-config.ts +82 -0
  415. package/src/version-manifest.ts +106 -0
  416. package/dist/build/rspack/dev-server-middleware.cjs +0 -248
  417. package/dist/build/rspack/dev-server-middleware.cjs.map +0 -1
  418. package/dist/build/rspack/dev-server-middleware.mjs +0 -247
  419. package/dist/build/rspack/dev-server-middleware.mjs.map +0 -1
  420. package/dist/build/shared-deps.cjs +0 -83
  421. package/dist/build/shared-deps.cjs.map +0 -1
  422. package/dist/build/shared-deps.d.cts +0 -67
  423. package/dist/build/shared-deps.d.cts.map +0 -1
  424. package/dist/build/shared-deps.d.mts +0 -67
  425. package/dist/build/shared-deps.d.mts.map +0 -1
  426. package/dist/build/shared-deps.mjs +0 -79
  427. package/dist/build/shared-deps.mjs.map +0 -1
  428. package/dist/effect.cjs +0 -9
  429. package/dist/effect.d.cts +0 -1
  430. package/dist/effect.d.mts +0 -1
  431. package/dist/effect.mjs +0 -3
  432. package/dist/orpc-openapi.cjs +0 -17
  433. package/dist/orpc-openapi.d.cts +0 -2
  434. package/dist/orpc-openapi.d.mts +0 -2
  435. package/dist/orpc-openapi.mjs +0 -5
  436. package/dist/orpc.cjs +0 -46
  437. package/dist/orpc.d.cts +0 -7
  438. package/dist/orpc.d.mts +0 -7
  439. package/dist/orpc.mjs +0 -11
  440. package/dist/package.cjs +0 -23
  441. package/dist/package.cjs.map +0 -1
  442. package/dist/package.mjs +0 -17
  443. package/dist/package.mjs.map +0 -1
  444. package/dist/runtime/services/module-federation.service.d.cts.map +0 -1
  445. package/dist/runtime/services/module-federation.service.d.mts.map +0 -1
  446. package/dist/runtime/services/normalize.cjs.map +0 -1
  447. package/dist/runtime/services/normalize.d.cts.map +0 -1
  448. package/dist/runtime/services/normalize.d.mts.map +0 -1
  449. package/dist/runtime/services/normalize.mjs.map +0 -1
  450. package/dist/runtime/services/plugin-lifecycle.service.d.cts.map +0 -1
  451. package/dist/runtime/services/plugin-lifecycle.service.d.mts.map +0 -1
  452. package/dist/runtime/services/plugin-loader.service.d.cts.map +0 -1
  453. package/dist/runtime/services/plugin-loader.service.d.mts.map +0 -1
  454. package/dist/runtime/services/secrets.service.d.cts.map +0 -1
  455. package/dist/runtime/services/secrets.service.d.mts.map +0 -1
  456. package/dist/testing/index.cjs +0 -57
  457. package/dist/testing/index.cjs.map +0 -1
  458. package/dist/testing/index.d.cts +0 -54
  459. package/dist/testing/index.d.cts.map +0 -1
  460. package/dist/testing/index.d.mts +0 -54
  461. package/dist/testing/index.d.mts.map +0 -1
  462. package/dist/testing/index.mjs +0 -55
  463. package/dist/testing/index.mjs.map +0 -1
  464. package/dist/zod-core.cjs +0 -9
  465. package/dist/zod-core.d.cts +0 -1
  466. package/dist/zod-core.d.mts +0 -1
  467. package/dist/zod-core.mjs +0 -3
  468. package/dist/zod.cjs +0 -11
  469. package/dist/zod.d.cts +0 -2
  470. package/dist/zod.d.mts +0 -2
  471. package/dist/zod.mjs +0 -3
  472. package/src/build/rspack/dev-server-middleware.ts +0 -324
  473. package/src/build/shared-deps.ts +0 -102
  474. package/src/effect.ts +0 -1
  475. package/src/orpc-openapi.ts +0 -2
  476. package/src/orpc.ts +0 -9
  477. package/src/testing/index.ts +0 -87
  478. package/src/testing/mocks/module-federation.service.ts +0 -41
  479. package/src/zod-core.ts +0 -1
  480. package/src/zod.ts +0 -3
package/dist/cli.cjs ADDED
@@ -0,0 +1,83 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_contract_types = require('./build/contract-types.cjs');
3
+ const require_generated_config = require('./build/ui/generated-config.cjs');
4
+ const require_generated_config$1 = require('./build/rspack/generated-config.cjs');
5
+ let node_child_process = require("node:child_process");
6
+
7
+ //#region src/cli.ts
8
+ function run(cmd, args, env = {}) {
9
+ return new Promise((resolve, reject) => {
10
+ const child = (0, node_child_process.spawn)(cmd, args, {
11
+ stdio: "inherit",
12
+ env: {
13
+ ...process.env,
14
+ ...env
15
+ },
16
+ shell: process.platform === "win32"
17
+ });
18
+ child.on("exit", (code) => code === 0 ? resolve() : reject(/* @__PURE__ */ new Error(`${cmd} ${args.join(" ")} exited with code ${code}`)));
19
+ child.on("error", reject);
20
+ });
21
+ }
22
+ async function emitContractTypes() {
23
+ const status = await require_contract_types.generateContractTypes();
24
+ if (status === "skipped") console.log("[every-plugin] No src/contract.ts — nothing to emit.");
25
+ else console.log(`[every-plugin] Contract types ${status}.`);
26
+ }
27
+ /**
28
+ * Workspace-form core ui build surface — the /api model applied to the ui:
29
+ * the generated config (or a local rsbuild.config.ts override) drives
30
+ * rsbuild; extra args pass through (`--environment web|node`).
31
+ */
32
+ async function runCoreUi(args) {
33
+ const generatedConfig = require_generated_config.ensureGeneratedCoreUiRsbuildConfig();
34
+ const [command = "build", ...rest] = args;
35
+ await run("rsbuild", [
36
+ command,
37
+ ...generatedConfig ? ["--config", generatedConfig] : [],
38
+ ...rest
39
+ ], {});
40
+ }
41
+ async function runRspack() {
42
+ const generatedConfig = require_generated_config$1.ensureGeneratedRspackConfig();
43
+ await run("rspack", generatedConfig ? [
44
+ "build",
45
+ "--config",
46
+ generatedConfig
47
+ ] : ["build"], {});
48
+ const uiConfig = require_generated_config.ensureGeneratedUiRsbuildConfig(process.cwd());
49
+ if (uiConfig) {
50
+ console.log("[every-plugin] Building folder-form ui source…");
51
+ await run("rsbuild", [
52
+ "build",
53
+ "--config",
54
+ uiConfig
55
+ ], {});
56
+ }
57
+ }
58
+ function runCliCommand(raw, args = []) {
59
+ const command = raw.replace(/=.*/, "");
60
+ if (command === "dev") process.env.BOS_DEV_SERVER = "1";
61
+ if (require_generated_config.hasCoreUiWorkspace()) switch (command) {
62
+ case "build": return runCoreUi(["build", ...args]);
63
+ case "preview": return runCoreUi(["preview", ...args]);
64
+ case "dev": return runCoreUi(["dev", ...args]);
65
+ default: return Promise.reject(/* @__PURE__ */ new Error(`Unknown every-plugin command for a core ui workspace: ${raw}`));
66
+ }
67
+ switch (command) {
68
+ case "types": return emitContractTypes();
69
+ case "build":
70
+ case "deploy": return runRspack();
71
+ case "dev": return (async () => {
72
+ const { startPluginDevServer } = await Promise.resolve().then(() => require("./dev/serve.cjs"));
73
+ await startPluginDevServer();
74
+ return new Promise(() => {});
75
+ })();
76
+ default: return Promise.reject(/* @__PURE__ */ new Error(`Unknown every-plugin command: ${raw} (expected dev|types|build|deploy)`));
77
+ }
78
+ }
79
+
80
+ //#endregion
81
+ exports.emitContractTypes = emitContractTypes;
82
+ exports.runCliCommand = runCliCommand;
83
+ //# sourceMappingURL=cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.cjs","names":["spawn","generateContractTypes","ensureGeneratedCoreUiRsbuildConfig","ensureGeneratedRspackConfig","ensureGeneratedUiRsbuildConfig","hasCoreUiWorkspace"],"sources":["../src/cli.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { generateContractTypes } from \"./build/contract-types\";\nimport { ensureGeneratedRspackConfig } from \"./build/rspack/generated-config\";\nimport {\n ensureGeneratedCoreUiRsbuildConfig,\n ensureGeneratedUiRsbuildConfig,\n hasCoreUiWorkspace,\n} from \"./build/ui/generated-config\";\n\nfunction run(\n cmd: string,\n args: string[],\n env: Record<string, string | undefined> = {},\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(cmd, args, {\n stdio: \"inherit\",\n env: { ...process.env, ...env },\n shell: process.platform === \"win32\",\n });\n child.on(\"exit\", (code) =>\n code === 0\n ? resolve()\n : reject(new Error(`${cmd} ${args.join(\" \")} exited with code ${code}`)),\n );\n child.on(\"error\", reject);\n });\n}\n\nexport async function emitContractTypes(): Promise<void> {\n const status = await generateContractTypes();\n if (status === \"skipped\") {\n console.log(\"[every-plugin] No src/contract.ts — nothing to emit.\");\n } else {\n console.log(`[every-plugin] Contract types ${status}.`);\n }\n}\n\n/**\n * Workspace-form core ui build surface — the /api model applied to the ui:\n * the generated config (or a local rsbuild.config.ts override) drives\n * rsbuild; extra args pass through (`--environment web|node`).\n */\nasync function runCoreUi(args: string[]): Promise<void> {\n const generatedConfig = ensureGeneratedCoreUiRsbuildConfig();\n const [command = \"build\", ...rest] = args;\n const configArgs = generatedConfig ? [\"--config\", generatedConfig] : [];\n await run(\"rsbuild\", [command, ...configArgs, ...rest], {});\n}\n\nasync function runRspack(): Promise<void> {\n const generatedConfig = ensureGeneratedRspackConfig();\n\n const args = generatedConfig ? [\"build\", \"--config\", generatedConfig] : [\"build\"];\n await run(\"rspack\", args, {});\n\n const uiConfig = ensureGeneratedUiRsbuildConfig(process.cwd());\n if (uiConfig) {\n console.log(\"[every-plugin] Building folder-form ui source…\");\n await run(\"rsbuild\", [\"build\", \"--config\", uiConfig], {});\n }\n}\n\nexport function runCliCommand(raw: string, args: string[] = []): Promise<void> {\n const command = raw.replace(/=.*/, \"\");\n if (command === \"dev\") process.env.BOS_DEV_SERVER = \"1\";\n // The core ui workspace form routes build/dev/preview through rsbuild;\n // plugin workspaces keep the rspack/dev-server surface.\n if (hasCoreUiWorkspace()) {\n switch (command) {\n case \"build\":\n return runCoreUi([\"build\", ...args]);\n case \"preview\":\n return runCoreUi([\"preview\", ...args]);\n case \"dev\":\n return runCoreUi([\"dev\", ...args]);\n default:\n return Promise.reject(\n new Error(`Unknown every-plugin command for a core ui workspace: ${raw}`),\n );\n }\n }\n switch (command) {\n case \"types\":\n return emitContractTypes();\n case \"build\":\n case \"deploy\":\n return runRspack();\n case \"dev\":\n return (async () => {\n const { startPluginDevServer } = await import(\"./dev/serve\");\n await startPluginDevServer();\n return new Promise<void>(() => {});\n })();\n default:\n return Promise.reject(\n new Error(`Unknown every-plugin command: ${raw} (expected dev|types|build|deploy)`),\n );\n }\n}\n"],"mappings":";;;;;;;AASA,SAAS,IACP,KACA,MACA,MAA0C,CAAC,GAC5B;CACf,OAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,YAAQA,0BAAM,KAAK,MAAM;GAC7B,OAAO;GACP,KAAK;IAAE,GAAG,QAAQ;IAAK,GAAG;GAAI;GAC9B,OAAO,QAAQ,aAAa;EAC9B,CAAC;EACD,MAAM,GAAG,SAAS,SAChB,SAAS,IACL,QAAQ,IACR,uBAAO,IAAI,MAAM,GAAG,IAAI,GAAG,KAAK,KAAK,GAAG,EAAE,oBAAoB,MAAM,CAAC,CAC3E;EACA,MAAM,GAAG,SAAS,MAAM;CAC1B,CAAC;AACH;AAEA,eAAsB,oBAAmC;CACvD,MAAM,SAAS,MAAMC,6CAAsB;CAC3C,IAAI,WAAW,WACb,QAAQ,IAAI,sDAAsD;MAElE,QAAQ,IAAI,iCAAiC,OAAO,EAAE;AAE1D;;;;;;AAOA,eAAe,UAAU,MAA+B;CACtD,MAAM,kBAAkBC,4DAAmC;CAC3D,MAAM,CAAC,UAAU,SAAS,GAAG,QAAQ;CAErC,MAAM,IAAI,WAAW;EAAC;EAAS,GADZ,kBAAkB,CAAC,YAAY,eAAe,IAAI,CAAC;EACxB,GAAG;CAAI,GAAG,CAAC,CAAC;AAC5D;AAEA,eAAe,YAA2B;CACxC,MAAM,kBAAkBC,uDAA4B;CAGpD,MAAM,IAAI,UADG,kBAAkB;EAAC;EAAS;EAAY;CAAe,IAAI,CAAC,OAAO,GACtD,CAAC,CAAC;CAE5B,MAAM,WAAWC,wDAA+B,QAAQ,IAAI,CAAC;CAC7D,IAAI,UAAU;EACZ,QAAQ,IAAI,gDAAgD;EAC5D,MAAM,IAAI,WAAW;GAAC;GAAS;GAAY;EAAQ,GAAG,CAAC,CAAC;CAC1D;AACF;AAEA,SAAgB,cAAc,KAAa,OAAiB,CAAC,GAAkB;CAC7E,MAAM,UAAU,IAAI,QAAQ,OAAO,EAAE;CACrC,IAAI,YAAY,OAAO,QAAQ,IAAI,iBAAiB;CAGpD,IAAIC,4CAAmB,GACrB,QAAQ,SAAR;EACE,KAAK,SACH,OAAO,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;EACrC,KAAK,WACH,OAAO,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;EACvC,KAAK,OACH,OAAO,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;EACnC,SACE,OAAO,QAAQ,uBACb,IAAI,MAAM,yDAAyD,KAAK,CAC1E;CACJ;CAEF,QAAQ,SAAR;EACE,KAAK,SACH,OAAO,kBAAkB;EAC3B,KAAK;EACL,KAAK,UACH,OAAO,UAAU;EACnB,KAAK,OACH,QAAQ,YAAY;GAClB,MAAM,EAAE,yBAAyB,2CAAM;GACvC,MAAM,qBAAqB;GAC3B,OAAO,IAAI,cAAoB,CAAC,CAAC;EACnC,EAAC,CAAE;EACL,SACE,OAAO,QAAQ,uBACb,IAAI,MAAM,iCAAiC,IAAI,mCAAmC,CACpF;CACJ;AACF"}
package/dist/cli.d.cts ADDED
@@ -0,0 +1,6 @@
1
+ //#region src/cli.d.ts
2
+ declare function emitContractTypes(): Promise<void>;
3
+ declare function runCliCommand(raw: string, args?: string[]): Promise<void>;
4
+ //#endregion
5
+ export { emitContractTypes, runCliCommand };
6
+ //# sourceMappingURL=cli.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.cts","names":[],"sources":["../src/cli.ts"],"mappings":";iBA6BsB,qBAAqB;iBAkC3B,cAAc,aAAa,kBAAsB"}
package/dist/cli.d.mts ADDED
@@ -0,0 +1,6 @@
1
+ //#region src/cli.d.ts
2
+ declare function emitContractTypes(): Promise<void>;
3
+ declare function runCliCommand(raw: string, args?: string[]): Promise<void>;
4
+ //#endregion
5
+ export { emitContractTypes, runCliCommand };
6
+ //# sourceMappingURL=cli.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.mts","names":[],"sources":["../src/cli.ts"],"mappings":";iBA6BsB,qBAAqB;iBAkC3B,cAAc,aAAa,kBAAsB"}
package/dist/cli.mjs ADDED
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env node
2
+ import { generateContractTypes } from "./build/contract-types.mjs";
3
+ import { ensureGeneratedCoreUiRsbuildConfig, ensureGeneratedUiRsbuildConfig, hasCoreUiWorkspace } from "./build/ui/generated-config.mjs";
4
+ import { ensureGeneratedRspackConfig } from "./build/rspack/generated-config.mjs";
5
+ import { spawn } from "node:child_process";
6
+
7
+ //#region src/cli.ts
8
+ function run(cmd, args, env = {}) {
9
+ return new Promise((resolve, reject) => {
10
+ const child = spawn(cmd, args, {
11
+ stdio: "inherit",
12
+ env: {
13
+ ...process.env,
14
+ ...env
15
+ },
16
+ shell: process.platform === "win32"
17
+ });
18
+ child.on("exit", (code) => code === 0 ? resolve() : reject(/* @__PURE__ */ new Error(`${cmd} ${args.join(" ")} exited with code ${code}`)));
19
+ child.on("error", reject);
20
+ });
21
+ }
22
+ async function emitContractTypes() {
23
+ const status = await generateContractTypes();
24
+ if (status === "skipped") console.log("[every-plugin] No src/contract.ts — nothing to emit.");
25
+ else console.log(`[every-plugin] Contract types ${status}.`);
26
+ }
27
+ /**
28
+ * Workspace-form core ui build surface — the /api model applied to the ui:
29
+ * the generated config (or a local rsbuild.config.ts override) drives
30
+ * rsbuild; extra args pass through (`--environment web|node`).
31
+ */
32
+ async function runCoreUi(args) {
33
+ const generatedConfig = ensureGeneratedCoreUiRsbuildConfig();
34
+ const [command = "build", ...rest] = args;
35
+ await run("rsbuild", [
36
+ command,
37
+ ...generatedConfig ? ["--config", generatedConfig] : [],
38
+ ...rest
39
+ ], {});
40
+ }
41
+ async function runRspack() {
42
+ const generatedConfig = ensureGeneratedRspackConfig();
43
+ await run("rspack", generatedConfig ? [
44
+ "build",
45
+ "--config",
46
+ generatedConfig
47
+ ] : ["build"], {});
48
+ const uiConfig = ensureGeneratedUiRsbuildConfig(process.cwd());
49
+ if (uiConfig) {
50
+ console.log("[every-plugin] Building folder-form ui source…");
51
+ await run("rsbuild", [
52
+ "build",
53
+ "--config",
54
+ uiConfig
55
+ ], {});
56
+ }
57
+ }
58
+ function runCliCommand(raw, args = []) {
59
+ const command = raw.replace(/=.*/, "");
60
+ if (command === "dev") process.env.BOS_DEV_SERVER = "1";
61
+ if (hasCoreUiWorkspace()) switch (command) {
62
+ case "build": return runCoreUi(["build", ...args]);
63
+ case "preview": return runCoreUi(["preview", ...args]);
64
+ case "dev": return runCoreUi(["dev", ...args]);
65
+ default: return Promise.reject(/* @__PURE__ */ new Error(`Unknown every-plugin command for a core ui workspace: ${raw}`));
66
+ }
67
+ switch (command) {
68
+ case "types": return emitContractTypes();
69
+ case "build":
70
+ case "deploy": return runRspack();
71
+ case "dev": return (async () => {
72
+ const { startPluginDevServer } = await import("./dev/serve.mjs");
73
+ await startPluginDevServer();
74
+ return new Promise(() => {});
75
+ })();
76
+ default: return Promise.reject(/* @__PURE__ */ new Error(`Unknown every-plugin command: ${raw} (expected dev|types|build|deploy)`));
77
+ }
78
+ }
79
+
80
+ //#endregion
81
+ export { emitContractTypes, runCliCommand };
82
+ //# sourceMappingURL=cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.mjs","names":[],"sources":["../src/cli.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { generateContractTypes } from \"./build/contract-types\";\nimport { ensureGeneratedRspackConfig } from \"./build/rspack/generated-config\";\nimport {\n ensureGeneratedCoreUiRsbuildConfig,\n ensureGeneratedUiRsbuildConfig,\n hasCoreUiWorkspace,\n} from \"./build/ui/generated-config\";\n\nfunction run(\n cmd: string,\n args: string[],\n env: Record<string, string | undefined> = {},\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(cmd, args, {\n stdio: \"inherit\",\n env: { ...process.env, ...env },\n shell: process.platform === \"win32\",\n });\n child.on(\"exit\", (code) =>\n code === 0\n ? resolve()\n : reject(new Error(`${cmd} ${args.join(\" \")} exited with code ${code}`)),\n );\n child.on(\"error\", reject);\n });\n}\n\nexport async function emitContractTypes(): Promise<void> {\n const status = await generateContractTypes();\n if (status === \"skipped\") {\n console.log(\"[every-plugin] No src/contract.ts — nothing to emit.\");\n } else {\n console.log(`[every-plugin] Contract types ${status}.`);\n }\n}\n\n/**\n * Workspace-form core ui build surface — the /api model applied to the ui:\n * the generated config (or a local rsbuild.config.ts override) drives\n * rsbuild; extra args pass through (`--environment web|node`).\n */\nasync function runCoreUi(args: string[]): Promise<void> {\n const generatedConfig = ensureGeneratedCoreUiRsbuildConfig();\n const [command = \"build\", ...rest] = args;\n const configArgs = generatedConfig ? [\"--config\", generatedConfig] : [];\n await run(\"rsbuild\", [command, ...configArgs, ...rest], {});\n}\n\nasync function runRspack(): Promise<void> {\n const generatedConfig = ensureGeneratedRspackConfig();\n\n const args = generatedConfig ? [\"build\", \"--config\", generatedConfig] : [\"build\"];\n await run(\"rspack\", args, {});\n\n const uiConfig = ensureGeneratedUiRsbuildConfig(process.cwd());\n if (uiConfig) {\n console.log(\"[every-plugin] Building folder-form ui source…\");\n await run(\"rsbuild\", [\"build\", \"--config\", uiConfig], {});\n }\n}\n\nexport function runCliCommand(raw: string, args: string[] = []): Promise<void> {\n const command = raw.replace(/=.*/, \"\");\n if (command === \"dev\") process.env.BOS_DEV_SERVER = \"1\";\n // The core ui workspace form routes build/dev/preview through rsbuild;\n // plugin workspaces keep the rspack/dev-server surface.\n if (hasCoreUiWorkspace()) {\n switch (command) {\n case \"build\":\n return runCoreUi([\"build\", ...args]);\n case \"preview\":\n return runCoreUi([\"preview\", ...args]);\n case \"dev\":\n return runCoreUi([\"dev\", ...args]);\n default:\n return Promise.reject(\n new Error(`Unknown every-plugin command for a core ui workspace: ${raw}`),\n );\n }\n }\n switch (command) {\n case \"types\":\n return emitContractTypes();\n case \"build\":\n case \"deploy\":\n return runRspack();\n case \"dev\":\n return (async () => {\n const { startPluginDevServer } = await import(\"./dev/serve\");\n await startPluginDevServer();\n return new Promise<void>(() => {});\n })();\n default:\n return Promise.reject(\n new Error(`Unknown every-plugin command: ${raw} (expected dev|types|build|deploy)`),\n );\n }\n}\n"],"mappings":";;;;;;AASA,SAAS,IACP,KACA,MACA,MAA0C,CAAC,GAC5B;CACf,OAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,QAAQ,MAAM,KAAK,MAAM;GAC7B,OAAO;GACP,KAAK;IAAE,GAAG,QAAQ;IAAK,GAAG;GAAI;GAC9B,OAAO,QAAQ,aAAa;EAC9B,CAAC;EACD,MAAM,GAAG,SAAS,SAChB,SAAS,IACL,QAAQ,IACR,uBAAO,IAAI,MAAM,GAAG,IAAI,GAAG,KAAK,KAAK,GAAG,EAAE,oBAAoB,MAAM,CAAC,CAC3E;EACA,MAAM,GAAG,SAAS,MAAM;CAC1B,CAAC;AACH;AAEA,eAAsB,oBAAmC;CACvD,MAAM,SAAS,MAAM,sBAAsB;CAC3C,IAAI,WAAW,WACb,QAAQ,IAAI,sDAAsD;MAElE,QAAQ,IAAI,iCAAiC,OAAO,EAAE;AAE1D;;;;;;AAOA,eAAe,UAAU,MAA+B;CACtD,MAAM,kBAAkB,mCAAmC;CAC3D,MAAM,CAAC,UAAU,SAAS,GAAG,QAAQ;CAErC,MAAM,IAAI,WAAW;EAAC;EAAS,GADZ,kBAAkB,CAAC,YAAY,eAAe,IAAI,CAAC;EACxB,GAAG;CAAI,GAAG,CAAC,CAAC;AAC5D;AAEA,eAAe,YAA2B;CACxC,MAAM,kBAAkB,4BAA4B;CAGpD,MAAM,IAAI,UADG,kBAAkB;EAAC;EAAS;EAAY;CAAe,IAAI,CAAC,OAAO,GACtD,CAAC,CAAC;CAE5B,MAAM,WAAW,+BAA+B,QAAQ,IAAI,CAAC;CAC7D,IAAI,UAAU;EACZ,QAAQ,IAAI,gDAAgD;EAC5D,MAAM,IAAI,WAAW;GAAC;GAAS;GAAY;EAAQ,GAAG,CAAC,CAAC;CAC1D;AACF;AAEA,SAAgB,cAAc,KAAa,OAAiB,CAAC,GAAkB;CAC7E,MAAM,UAAU,IAAI,QAAQ,OAAO,EAAE;CACrC,IAAI,YAAY,OAAO,QAAQ,IAAI,iBAAiB;CAGpD,IAAI,mBAAmB,GACrB,QAAQ,SAAR;EACE,KAAK,SACH,OAAO,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;EACrC,KAAK,WACH,OAAO,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;EACvC,KAAK,OACH,OAAO,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;EACnC,SACE,OAAO,QAAQ,uBACb,IAAI,MAAM,yDAAyD,KAAK,CAC1E;CACJ;CAEF,QAAQ,SAAR;EACE,KAAK,SACH,OAAO,kBAAkB;EAC3B,KAAK;EACL,KAAK,UACH,OAAO,UAAU;EACnB,KAAK,OACH,QAAQ,YAAY;GAClB,MAAM,EAAE,yBAAyB,MAAM,OAAO;GAC9C,MAAM,qBAAqB;GAC3B,OAAO,IAAI,cAAoB,CAAC,CAAC;EACnC,EAAC,CAAE;EACL,SACE,OAAO,QAAQ,uBACb,IAAI,MAAM,iCAAiC,IAAI,mCAAmC,CACpF;CACJ;AACF"}
@@ -0,0 +1,69 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ let _orpc_client = require("@orpc/client");
3
+ let _orpc_client_fetch = require("@orpc/client/fetch");
4
+
5
+ //#region src/client.ts
6
+ const RATE_LIMIT_MAX_RETRIES = 3;
7
+ const RATE_LIMIT_RETRY_CAP_MS = 2e3;
8
+ const browserClients = /* @__PURE__ */ new Map();
9
+ async function fetchWithRateLimitRetry(fetchUrl, options) {
10
+ let response = await fetch(fetchUrl, options);
11
+ for (let attempt = 1; attempt <= RATE_LIMIT_MAX_RETRIES && response.status === 429; attempt++) {
12
+ const retryAfterSeconds = Number(response.headers.get("retry-after"));
13
+ const delay = Number.isFinite(retryAfterSeconds) && retryAfterSeconds > 0 ? Math.min(retryAfterSeconds * 1e3, RATE_LIMIT_RETRY_CAP_MS) : 100 * attempt;
14
+ await new Promise((resolve) => setTimeout(resolve, delay));
15
+ response = await fetch(fetchUrl, options);
16
+ }
17
+ return response;
18
+ }
19
+ function createRpcLink(config, headers) {
20
+ return new _orpc_client_fetch.RPCLink({
21
+ origin: config.hostUrl,
22
+ url: config.path,
23
+ interceptors: [(0, _orpc_client.onError)((error) => {
24
+ if (typeof globalThis.window === "undefined") return;
25
+ if (error && typeof error === "object" && "message" in error) {
26
+ const message = String(error.message).toLowerCase();
27
+ if (message.includes("fetch") || message.includes("network") || message.includes("failed to fetch")) import("sonner").then(({ toast }) => {
28
+ const message = config.connectionError?.() ?? {
29
+ title: "Unable to connect to API",
30
+ description: "The API is currently unavailable. Please try again later."
31
+ };
32
+ toast.error(message.title, {
33
+ id: "api-connection-error",
34
+ description: message.description
35
+ });
36
+ }).catch(() => {});
37
+ }
38
+ })],
39
+ fetch(fetchUrl, options) {
40
+ return fetchWithRateLimitRetry(fetchUrl, {
41
+ ...options,
42
+ credentials: "include",
43
+ headers: headers ? {
44
+ ...Object.fromEntries(headers),
45
+ ...options?.headers
46
+ } : options?.headers
47
+ });
48
+ }
49
+ });
50
+ }
51
+ function buildRpcClient(config, headers) {
52
+ if (!config.hostUrl) throw new Error("Missing runtime host URL");
53
+ return (0, _orpc_client.createORPCClient)(createRpcLink(config, headers));
54
+ }
55
+ function createRpcClient(config, headers) {
56
+ if (typeof globalThis.window !== "undefined" && !headers) {
57
+ const key = `${config.hostUrl}${config.path}`;
58
+ const memoized = browserClients.get(key);
59
+ if (memoized) return memoized;
60
+ const client = buildRpcClient(config, headers);
61
+ browserClients.set(key, client);
62
+ return client;
63
+ }
64
+ return buildRpcClient(config, headers);
65
+ }
66
+
67
+ //#endregion
68
+ exports.createRpcClient = createRpcClient;
69
+ //# sourceMappingURL=client.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.cjs","names":["RPCLink","onError","createORPCClient"],"sources":["../src/client.ts"],"sourcesContent":["import { createORPCClient, onError } from \"@orpc/client\";\nimport { RPCLink } from \"@orpc/client/fetch\";\nimport type { ContractRouterClient, RouterContract } from \"@orpc/contract\";\n\nexport type RpcConnectionErrorCopy = () => { title: string; description: string };\n\nexport interface RpcClientConfig {\n hostUrl: string;\n path: `/${string}`;\n connectionError?: RpcConnectionErrorCopy;\n}\n\nconst RATE_LIMIT_MAX_RETRIES = 3;\nconst RATE_LIMIT_RETRY_CAP_MS = 2_000;\nconst browserClients = new Map<string, unknown>();\ntype FetchInput = Parameters<typeof fetch>[0];\n\nasync function fetchWithRateLimitRetry(\n fetchUrl: FetchInput,\n options?: RequestInit,\n): Promise<Response> {\n let response = await fetch(fetchUrl, options);\n for (let attempt = 1; attempt <= RATE_LIMIT_MAX_RETRIES && response.status === 429; attempt++) {\n const retryAfterSeconds = Number(response.headers.get(\"retry-after\"));\n const delay =\n Number.isFinite(retryAfterSeconds) && retryAfterSeconds > 0\n ? Math.min(retryAfterSeconds * 1000, RATE_LIMIT_RETRY_CAP_MS)\n : 100 * attempt;\n await new Promise((resolve) => setTimeout(resolve, delay));\n response = await fetch(fetchUrl, options);\n }\n\n return response;\n}\n\nfunction createRpcLink(config: RpcClientConfig, headers?: Headers) {\n return new RPCLink({\n origin: config.hostUrl,\n url: config.path,\n interceptors: [\n onError((error: unknown) => {\n const browserWindow = (globalThis as { window?: unknown }).window;\n if (typeof browserWindow === \"undefined\") {\n return;\n }\n\n if (error && typeof error === \"object\" && \"message\" in error) {\n const message = String(error.message).toLowerCase();\n if (\n message.includes(\"fetch\") ||\n message.includes(\"network\") ||\n message.includes(\"failed to fetch\")\n ) {\n void import(\"sonner\")\n .then(({ toast }) => {\n const message = config.connectionError?.() ?? {\n title: \"Unable to connect to API\",\n description: \"The API is currently unavailable. Please try again later.\",\n };\n toast.error(message.title, {\n id: \"api-connection-error\",\n description: message.description,\n });\n })\n .catch(() => {});\n }\n }\n }),\n ],\n fetch(fetchUrl: FetchInput, options?: RequestInit) {\n return fetchWithRateLimitRetry(fetchUrl, {\n ...options,\n credentials: \"include\",\n headers: headers\n ? { ...Object.fromEntries(headers), ...(options?.headers as Record<string, string>) }\n : options?.headers,\n });\n },\n });\n}\n\nfunction buildRpcClient<T extends RouterContract>(\n config: RpcClientConfig,\n headers?: Headers,\n): ContractRouterClient<T> {\n if (!config.hostUrl) {\n throw new Error(\"Missing runtime host URL\");\n }\n\n return createORPCClient(createRpcLink(config, headers)) as ContractRouterClient<T>;\n}\n\nexport function createRpcClient<T extends RouterContract = RouterContract>(\n config: RpcClientConfig,\n headers?: Headers,\n): ContractRouterClient<T> {\n const browserWindow = (globalThis as { window?: unknown }).window;\n if (typeof browserWindow !== \"undefined\" && !headers) {\n const key = `${config.hostUrl}${config.path}`;\n const memoized = browserClients.get(key);\n if (memoized) {\n return memoized as ContractRouterClient<T>;\n }\n\n const client = buildRpcClient<T>(config, headers);\n browserClients.set(key, client);\n return client;\n }\n\n return buildRpcClient<T>(config, headers);\n}\n"],"mappings":";;;;;AAYA,MAAM,yBAAyB;AAC/B,MAAM,0BAA0B;AAChC,MAAM,iCAAiB,IAAI,IAAqB;AAGhD,eAAe,wBACb,UACA,SACmB;CACnB,IAAI,WAAW,MAAM,MAAM,UAAU,OAAO;CAC5C,KAAK,IAAI,UAAU,GAAG,WAAW,0BAA0B,SAAS,WAAW,KAAK,WAAW;EAC7F,MAAM,oBAAoB,OAAO,SAAS,QAAQ,IAAI,aAAa,CAAC;EACpE,MAAM,QACJ,OAAO,SAAS,iBAAiB,KAAK,oBAAoB,IACtD,KAAK,IAAI,oBAAoB,KAAM,uBAAuB,IAC1D,MAAM;EACZ,MAAM,IAAI,SAAS,YAAY,WAAW,SAAS,KAAK,CAAC;EACzD,WAAW,MAAM,MAAM,UAAU,OAAO;CAC1C;CAEA,OAAO;AACT;AAEA,SAAS,cAAc,QAAyB,SAAmB;CACjE,OAAO,IAAIA,2BAAQ;EACjB,QAAQ,OAAO;EACf,KAAK,OAAO;EACZ,cAAc,KACZC,uBAAS,UAAmB;GAE1B,IAAI,OADmB,WAAoC,WAC9B,aAC3B;GAGF,IAAI,SAAS,OAAO,UAAU,YAAY,aAAa,OAAO;IAC5D,MAAM,UAAU,OAAO,MAAM,OAAO,CAAC,CAAC,YAAY;IAClD,IACE,QAAQ,SAAS,OAAO,KACxB,QAAQ,SAAS,SAAS,KAC1B,QAAQ,SAAS,iBAAiB,GAElC,AAAK,OAAO,SAAS,CAClB,MAAM,EAAE,YAAY;KACnB,MAAM,UAAU,OAAO,kBAAkB,KAAK;MAC5C,OAAO;MACP,aAAa;KACf;KACA,MAAM,MAAM,QAAQ,OAAO;MACzB,IAAI;MACJ,aAAa,QAAQ;KACvB,CAAC;IACH,CAAC,CAAC,CACD,YAAY,CAAC,CAAC;GAErB;EACF,CAAC,CACH;EACA,MAAM,UAAsB,SAAuB;GACjD,OAAO,wBAAwB,UAAU;IACvC,GAAG;IACH,aAAa;IACb,SAAS,UACL;KAAE,GAAG,OAAO,YAAY,OAAO;KAAG,GAAI,SAAS;IAAmC,IAClF,SAAS;GACf,CAAC;EACH;CACF,CAAC;AACH;AAEA,SAAS,eACP,QACA,SACyB;CACzB,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,0BAA0B;CAG5C,WAAOC,+BAAiB,cAAc,QAAQ,OAAO,CAAC;AACxD;AAEA,SAAgB,gBACd,QACA,SACyB;CAEzB,IAAI,OADmB,WAAoC,WAC9B,eAAe,CAAC,SAAS;EACpD,MAAM,MAAM,GAAG,OAAO,UAAU,OAAO;EACvC,MAAM,WAAW,eAAe,IAAI,GAAG;EACvC,IAAI,UACF,OAAO;EAGT,MAAM,SAAS,eAAkB,QAAQ,OAAO;EAChD,eAAe,IAAI,KAAK,MAAM;EAC9B,OAAO;CACT;CAEA,OAAO,eAAkB,QAAQ,OAAO;AAC1C"}
@@ -0,0 +1,15 @@
1
+ import { ContractRouterClient, RouterContract } from "@orpc/contract";
2
+ //#region src/client.d.ts
3
+ type RpcConnectionErrorCopy = () => {
4
+ title: string;
5
+ description: string;
6
+ };
7
+ interface RpcClientConfig {
8
+ hostUrl: string;
9
+ path: `/${string}`;
10
+ connectionError?: RpcConnectionErrorCopy;
11
+ }
12
+ declare function createRpcClient<T extends RouterContract = RouterContract>(config: RpcClientConfig, headers?: Headers): ContractRouterClient<T>;
13
+ //#endregion
14
+ export { RpcClientConfig, RpcConnectionErrorCopy, createRpcClient };
15
+ //# sourceMappingURL=client.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.cts","names":[],"sources":["../src/client.ts"],"mappings":";;KAIY;EAAiC;EAAe;;UAE3C;EACf;EACA;EACA,kBAAkB;;iBAmFJ,gBAAgB,UAAU,iBAAiB,gBACzD,QAAQ,iBACR,UAAU,UACT,qBAAqB"}
@@ -0,0 +1,15 @@
1
+ import { ContractRouterClient, RouterContract } from "@orpc/contract";
2
+ //#region src/client.d.ts
3
+ type RpcConnectionErrorCopy = () => {
4
+ title: string;
5
+ description: string;
6
+ };
7
+ interface RpcClientConfig {
8
+ hostUrl: string;
9
+ path: `/${string}`;
10
+ connectionError?: RpcConnectionErrorCopy;
11
+ }
12
+ declare function createRpcClient<T extends RouterContract = RouterContract>(config: RpcClientConfig, headers?: Headers): ContractRouterClient<T>;
13
+ //#endregion
14
+ export { RpcClientConfig, RpcConnectionErrorCopy, createRpcClient };
15
+ //# sourceMappingURL=client.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.mts","names":[],"sources":["../src/client.ts"],"mappings":";;KAIY;EAAiC;EAAe;;UAE3C;EACf;EACA;EACA,kBAAkB;;iBAmFJ,gBAAgB,UAAU,iBAAiB,gBACzD,QAAQ,iBACR,UAAU,UACT,qBAAqB"}
@@ -0,0 +1,68 @@
1
+ import { createORPCClient, onError } from "@orpc/client";
2
+ import { RPCLink } from "@orpc/client/fetch";
3
+
4
+ //#region src/client.ts
5
+ const RATE_LIMIT_MAX_RETRIES = 3;
6
+ const RATE_LIMIT_RETRY_CAP_MS = 2e3;
7
+ const browserClients = /* @__PURE__ */ new Map();
8
+ async function fetchWithRateLimitRetry(fetchUrl, options) {
9
+ let response = await fetch(fetchUrl, options);
10
+ for (let attempt = 1; attempt <= RATE_LIMIT_MAX_RETRIES && response.status === 429; attempt++) {
11
+ const retryAfterSeconds = Number(response.headers.get("retry-after"));
12
+ const delay = Number.isFinite(retryAfterSeconds) && retryAfterSeconds > 0 ? Math.min(retryAfterSeconds * 1e3, RATE_LIMIT_RETRY_CAP_MS) : 100 * attempt;
13
+ await new Promise((resolve) => setTimeout(resolve, delay));
14
+ response = await fetch(fetchUrl, options);
15
+ }
16
+ return response;
17
+ }
18
+ function createRpcLink(config, headers) {
19
+ return new RPCLink({
20
+ origin: config.hostUrl,
21
+ url: config.path,
22
+ interceptors: [onError((error) => {
23
+ if (typeof globalThis.window === "undefined") return;
24
+ if (error && typeof error === "object" && "message" in error) {
25
+ const message = String(error.message).toLowerCase();
26
+ if (message.includes("fetch") || message.includes("network") || message.includes("failed to fetch")) import("sonner").then(({ toast }) => {
27
+ const message = config.connectionError?.() ?? {
28
+ title: "Unable to connect to API",
29
+ description: "The API is currently unavailable. Please try again later."
30
+ };
31
+ toast.error(message.title, {
32
+ id: "api-connection-error",
33
+ description: message.description
34
+ });
35
+ }).catch(() => {});
36
+ }
37
+ })],
38
+ fetch(fetchUrl, options) {
39
+ return fetchWithRateLimitRetry(fetchUrl, {
40
+ ...options,
41
+ credentials: "include",
42
+ headers: headers ? {
43
+ ...Object.fromEntries(headers),
44
+ ...options?.headers
45
+ } : options?.headers
46
+ });
47
+ }
48
+ });
49
+ }
50
+ function buildRpcClient(config, headers) {
51
+ if (!config.hostUrl) throw new Error("Missing runtime host URL");
52
+ return createORPCClient(createRpcLink(config, headers));
53
+ }
54
+ function createRpcClient(config, headers) {
55
+ if (typeof globalThis.window !== "undefined" && !headers) {
56
+ const key = `${config.hostUrl}${config.path}`;
57
+ const memoized = browserClients.get(key);
58
+ if (memoized) return memoized;
59
+ const client = buildRpcClient(config, headers);
60
+ browserClients.set(key, client);
61
+ return client;
62
+ }
63
+ return buildRpcClient(config, headers);
64
+ }
65
+
66
+ //#endregion
67
+ export { createRpcClient };
68
+ //# sourceMappingURL=client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import { createORPCClient, onError } from \"@orpc/client\";\nimport { RPCLink } from \"@orpc/client/fetch\";\nimport type { ContractRouterClient, RouterContract } from \"@orpc/contract\";\n\nexport type RpcConnectionErrorCopy = () => { title: string; description: string };\n\nexport interface RpcClientConfig {\n hostUrl: string;\n path: `/${string}`;\n connectionError?: RpcConnectionErrorCopy;\n}\n\nconst RATE_LIMIT_MAX_RETRIES = 3;\nconst RATE_LIMIT_RETRY_CAP_MS = 2_000;\nconst browserClients = new Map<string, unknown>();\ntype FetchInput = Parameters<typeof fetch>[0];\n\nasync function fetchWithRateLimitRetry(\n fetchUrl: FetchInput,\n options?: RequestInit,\n): Promise<Response> {\n let response = await fetch(fetchUrl, options);\n for (let attempt = 1; attempt <= RATE_LIMIT_MAX_RETRIES && response.status === 429; attempt++) {\n const retryAfterSeconds = Number(response.headers.get(\"retry-after\"));\n const delay =\n Number.isFinite(retryAfterSeconds) && retryAfterSeconds > 0\n ? Math.min(retryAfterSeconds * 1000, RATE_LIMIT_RETRY_CAP_MS)\n : 100 * attempt;\n await new Promise((resolve) => setTimeout(resolve, delay));\n response = await fetch(fetchUrl, options);\n }\n\n return response;\n}\n\nfunction createRpcLink(config: RpcClientConfig, headers?: Headers) {\n return new RPCLink({\n origin: config.hostUrl,\n url: config.path,\n interceptors: [\n onError((error: unknown) => {\n const browserWindow = (globalThis as { window?: unknown }).window;\n if (typeof browserWindow === \"undefined\") {\n return;\n }\n\n if (error && typeof error === \"object\" && \"message\" in error) {\n const message = String(error.message).toLowerCase();\n if (\n message.includes(\"fetch\") ||\n message.includes(\"network\") ||\n message.includes(\"failed to fetch\")\n ) {\n void import(\"sonner\")\n .then(({ toast }) => {\n const message = config.connectionError?.() ?? {\n title: \"Unable to connect to API\",\n description: \"The API is currently unavailable. Please try again later.\",\n };\n toast.error(message.title, {\n id: \"api-connection-error\",\n description: message.description,\n });\n })\n .catch(() => {});\n }\n }\n }),\n ],\n fetch(fetchUrl: FetchInput, options?: RequestInit) {\n return fetchWithRateLimitRetry(fetchUrl, {\n ...options,\n credentials: \"include\",\n headers: headers\n ? { ...Object.fromEntries(headers), ...(options?.headers as Record<string, string>) }\n : options?.headers,\n });\n },\n });\n}\n\nfunction buildRpcClient<T extends RouterContract>(\n config: RpcClientConfig,\n headers?: Headers,\n): ContractRouterClient<T> {\n if (!config.hostUrl) {\n throw new Error(\"Missing runtime host URL\");\n }\n\n return createORPCClient(createRpcLink(config, headers)) as ContractRouterClient<T>;\n}\n\nexport function createRpcClient<T extends RouterContract = RouterContract>(\n config: RpcClientConfig,\n headers?: Headers,\n): ContractRouterClient<T> {\n const browserWindow = (globalThis as { window?: unknown }).window;\n if (typeof browserWindow !== \"undefined\" && !headers) {\n const key = `${config.hostUrl}${config.path}`;\n const memoized = browserClients.get(key);\n if (memoized) {\n return memoized as ContractRouterClient<T>;\n }\n\n const client = buildRpcClient<T>(config, headers);\n browserClients.set(key, client);\n return client;\n }\n\n return buildRpcClient<T>(config, headers);\n}\n"],"mappings":";;;;AAYA,MAAM,yBAAyB;AAC/B,MAAM,0BAA0B;AAChC,MAAM,iCAAiB,IAAI,IAAqB;AAGhD,eAAe,wBACb,UACA,SACmB;CACnB,IAAI,WAAW,MAAM,MAAM,UAAU,OAAO;CAC5C,KAAK,IAAI,UAAU,GAAG,WAAW,0BAA0B,SAAS,WAAW,KAAK,WAAW;EAC7F,MAAM,oBAAoB,OAAO,SAAS,QAAQ,IAAI,aAAa,CAAC;EACpE,MAAM,QACJ,OAAO,SAAS,iBAAiB,KAAK,oBAAoB,IACtD,KAAK,IAAI,oBAAoB,KAAM,uBAAuB,IAC1D,MAAM;EACZ,MAAM,IAAI,SAAS,YAAY,WAAW,SAAS,KAAK,CAAC;EACzD,WAAW,MAAM,MAAM,UAAU,OAAO;CAC1C;CAEA,OAAO;AACT;AAEA,SAAS,cAAc,QAAyB,SAAmB;CACjE,OAAO,IAAI,QAAQ;EACjB,QAAQ,OAAO;EACf,KAAK,OAAO;EACZ,cAAc,CACZ,SAAS,UAAmB;GAE1B,IAAI,OADmB,WAAoC,WAC9B,aAC3B;GAGF,IAAI,SAAS,OAAO,UAAU,YAAY,aAAa,OAAO;IAC5D,MAAM,UAAU,OAAO,MAAM,OAAO,CAAC,CAAC,YAAY;IAClD,IACE,QAAQ,SAAS,OAAO,KACxB,QAAQ,SAAS,SAAS,KAC1B,QAAQ,SAAS,iBAAiB,GAElC,AAAK,OAAO,SAAS,CAClB,MAAM,EAAE,YAAY;KACnB,MAAM,UAAU,OAAO,kBAAkB,KAAK;MAC5C,OAAO;MACP,aAAa;KACf;KACA,MAAM,MAAM,QAAQ,OAAO;MACzB,IAAI;MACJ,aAAa,QAAQ;KACvB,CAAC;IACH,CAAC,CAAC,CACD,YAAY,CAAC,CAAC;GAErB;EACF,CAAC,CACH;EACA,MAAM,UAAsB,SAAuB;GACjD,OAAO,wBAAwB,UAAU;IACvC,GAAG;IACH,aAAa;IACb,SAAS,UACL;KAAE,GAAG,OAAO,YAAY,OAAO;KAAG,GAAI,SAAS;IAAmC,IAClF,SAAS;GACf,CAAC;EACH;CACF,CAAC;AACH;AAEA,SAAS,eACP,QACA,SACyB;CACzB,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,0BAA0B;CAG5C,OAAO,iBAAiB,cAAc,QAAQ,OAAO,CAAC;AACxD;AAEA,SAAgB,gBACd,QACA,SACyB;CAEzB,IAAI,OADmB,WAAoC,WAC9B,eAAe,CAAC,SAAS;EACpD,MAAM,MAAM,GAAG,OAAO,UAAU,OAAO;EACvC,MAAM,WAAW,eAAe,IAAI,GAAG;EACvC,IAAI,UACF,OAAO;EAGT,MAAM,SAAS,eAAkB,QAAQ,OAAO;EAChD,eAAe,IAAI,KAAK,MAAM;EAC9B,OAAO;CACT;CAEA,OAAO,eAAkB,QAAQ,OAAO;AAC1C"}
@@ -0,0 +1,149 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ let node_http = require("node:http");
3
+
4
+ //#region src/dev/host.ts
5
+ const corsHeaders = {
6
+ "Access-Control-Allow-Origin": "*",
7
+ "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
8
+ "Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
9
+ };
10
+ const applyCorsHeaders = (res) => {
11
+ Object.entries(corsHeaders).forEach(([key, value]) => {
12
+ res.setHeader(key, value);
13
+ });
14
+ };
15
+ const sendJson = (res, status, body) => {
16
+ res.statusCode = status;
17
+ res.setHeader("content-type", "application/json; charset=utf-8");
18
+ res.end(JSON.stringify(body));
19
+ };
20
+ const sendText = (res, status, text) => {
21
+ res.statusCode = status;
22
+ res.setHeader("content-type", "text/plain; charset=utf-8");
23
+ res.end(text);
24
+ };
25
+ const pathnameOf = (req) => ((req.url ?? "/").split("?")[0] ?? "/").replace(/\/+$/, "") || "/";
26
+ const toWebRequest = (req, port) => {
27
+ const url = `http://localhost:${port}${req.url}`;
28
+ return new Request(url, {
29
+ method: req.method,
30
+ headers: req.headers,
31
+ body: req.method !== "GET" && req.method !== "HEAD" ? req : void 0,
32
+ duplex: req.method !== "GET" && req.method !== "HEAD" ? "half" : void 0
33
+ });
34
+ };
35
+ const buildHostContext = (effectContext, webRequest, cachedRawBodyRef) => {
36
+ const rawClone = webRequest.method === "GET" || webRequest.method === "HEAD" ? null : webRequest.clone();
37
+ return {
38
+ reqHeaders: webRequest.headers,
39
+ "effect/context": effectContext,
40
+ getRawBody: async () => {
41
+ if (cachedRawBodyRef.value !== null) return cachedRawBodyRef.value;
42
+ if (!rawClone) {
43
+ cachedRawBodyRef.value = "";
44
+ return cachedRawBodyRef.value;
45
+ }
46
+ cachedRawBodyRef.value = await rawClone.text();
47
+ return cachedRawBodyRef.value;
48
+ }
49
+ };
50
+ };
51
+ const handleOrpc = async (req, res, handler, prefix, errorLabel, effectContext, port) => {
52
+ try {
53
+ const webRequest = toWebRequest(req, port);
54
+ const result = await handler.handle(webRequest, {
55
+ prefix,
56
+ context: buildHostContext(effectContext, webRequest, { value: null })
57
+ });
58
+ if (result.response) {
59
+ res.statusCode = result.response.status;
60
+ result.response.headers.forEach((value, key) => {
61
+ res.setHeader(key, value);
62
+ });
63
+ const text = await result.response.text();
64
+ if (!res.getHeader("content-length")) res.setHeader("content-length", Buffer.byteLength(text).toString());
65
+ res.end(text);
66
+ } else sendText(res, 404, "Not Found");
67
+ } catch (error) {
68
+ console.error(`${errorLabel} error:`, error);
69
+ sendJson(res, 500, { error: error.message });
70
+ }
71
+ };
72
+ async function startDirectModuleHost(options) {
73
+ const port = options.port ?? 0;
74
+ let resolvedPort = port;
75
+ const rpcPrefix = options.rpcPrefix ?? "/api/rpc";
76
+ const apiPrefix = options.apiPrefix ?? "/api";
77
+ const staticHandler = options.staticHandler ?? null;
78
+ const resolveEffectContext = typeof options.effectContext === "function" ? options.effectContext : () => options.effectContext;
79
+ const server = (0, node_http.createServer)((req, res) => {
80
+ applyCorsHeaders(res);
81
+ const pathname = pathnameOf(req);
82
+ if (req.method === "OPTIONS") {
83
+ res.statusCode = 200;
84
+ res.end();
85
+ return;
86
+ }
87
+ if (pathname === "/" && (req.method === "GET" || req.method === "HEAD")) {
88
+ sendJson(res, 200, {
89
+ ok: true,
90
+ module: options.name,
91
+ version: options.version,
92
+ status: options.handlers.rpc ? "ready" : "loading",
93
+ endpoints: {
94
+ health: "/health",
95
+ docs: apiPrefix,
96
+ rpc: rpcPrefix
97
+ }
98
+ });
99
+ return;
100
+ }
101
+ if (pathname === "/health" && (req.method === "GET" || req.method === "HEAD")) {
102
+ sendText(res, 200, "OK");
103
+ return;
104
+ }
105
+ if (pathname.startsWith(`${rpcPrefix}/`)) {
106
+ if (!options.handlers.rpc) {
107
+ sendJson(res, 503, { error: "Plugin still loading..." });
108
+ return;
109
+ }
110
+ handleOrpc(req, res, options.handlers.rpc, rpcPrefix, "RPC", resolveEffectContext(), resolvedPort).catch(() => {});
111
+ return;
112
+ }
113
+ if (pathname === apiPrefix || pathname.startsWith(`${apiPrefix}/`)) {
114
+ if (!options.handlers.api) {
115
+ sendJson(res, 503, { error: "Plugin still loading..." });
116
+ return;
117
+ }
118
+ handleOrpc(req, res, options.handlers.api, apiPrefix, "OpenAPI", resolveEffectContext(), resolvedPort).catch(() => {});
119
+ return;
120
+ }
121
+ if (staticHandler) {
122
+ staticHandler(req, res, () => {
123
+ sendText(res, 404, "Not Found");
124
+ });
125
+ return;
126
+ }
127
+ sendText(res, 404, "Not Found");
128
+ });
129
+ await new Promise((resolve, reject) => {
130
+ server.once("error", reject);
131
+ server.listen(port, () => resolve());
132
+ });
133
+ const address = server.address();
134
+ if (!address || typeof address === "string") {
135
+ await new Promise((resolve) => server.close(() => resolve()));
136
+ throw new Error("Failed to resolve host port");
137
+ }
138
+ resolvedPort = address.port;
139
+ return {
140
+ port: resolvedPort,
141
+ close: async () => {
142
+ await new Promise((resolve) => server.close(() => resolve()));
143
+ }
144
+ };
145
+ }
146
+
147
+ //#endregion
148
+ exports.startDirectModuleHost = startDirectModuleHost;
149
+ //# sourceMappingURL=host.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.cjs","names":["createServer"],"sources":["../../src/dev/host.ts"],"sourcesContent":["import type http from \"node:http\";\nimport { createServer } from \"node:http\";\n\nconst corsHeaders = {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET, POST, PUT, DELETE, PATCH, OPTIONS\",\n \"Access-Control-Allow-Headers\": \"X-Requested-With, content-type, Authorization\",\n};\n\nconst applyCorsHeaders = (res: http.ServerResponse) => {\n Object.entries(corsHeaders).forEach(([key, value]) => {\n res.setHeader(key, value);\n });\n};\n\nconst sendJson = (res: http.ServerResponse, status: number, body: unknown) => {\n res.statusCode = status;\n res.setHeader(\"content-type\", \"application/json; charset=utf-8\");\n res.end(JSON.stringify(body));\n};\n\nconst sendText = (res: http.ServerResponse, status: number, text: string) => {\n res.statusCode = status;\n res.setHeader(\"content-type\", \"text/plain; charset=utf-8\");\n res.end(text);\n};\n\nconst pathnameOf = (req: http.IncomingMessage): string =>\n ((req.url ?? \"/\").split(\"?\")[0] ?? \"/\").replace(/\\/+$/, \"\") || \"/\";\n\nconst toWebRequest = (req: http.IncomingMessage, port: number): Request => {\n const url = `http://localhost:${port}${req.url}`;\n return new Request(url, {\n method: req.method,\n headers: req.headers,\n body: req.method !== \"GET\" && req.method !== \"HEAD\" ? req : undefined,\n duplex: req.method !== \"GET\" && req.method !== \"HEAD\" ? \"half\" : undefined,\n } as RequestInit);\n};\n\nconst buildHostContext = (\n effectContext: unknown,\n webRequest: Request,\n cachedRawBodyRef: { value: string | null },\n) => {\n const rawClone =\n webRequest.method === \"GET\" || webRequest.method === \"HEAD\" ? null : webRequest.clone();\n\n return {\n reqHeaders: webRequest.headers,\n \"effect/context\": effectContext,\n getRawBody: async (): Promise<string> => {\n if (cachedRawBodyRef.value !== null) return cachedRawBodyRef.value;\n if (!rawClone) {\n cachedRawBodyRef.value = \"\";\n return cachedRawBodyRef.value;\n }\n cachedRawBodyRef.value = await rawClone.text();\n return cachedRawBodyRef.value;\n },\n };\n};\n\nexport interface DirectModuleHostHandler {\n handle(\n request: Request,\n options: { prefix: string; context: unknown },\n ): Promise<{ response?: Response }>;\n}\n\nconst handleOrpc = async (\n req: http.IncomingMessage,\n res: http.ServerResponse,\n handler: DirectModuleHostHandler,\n prefix: string,\n errorLabel: string,\n effectContext: unknown,\n port: number,\n) => {\n try {\n const webRequest = toWebRequest(req, port);\n const cachedRawBodyRef = { value: null as string | null };\n const result = await handler.handle(webRequest, {\n prefix,\n context: buildHostContext(effectContext, webRequest, cachedRawBodyRef),\n });\n\n if (result.response) {\n res.statusCode = result.response.status;\n result.response.headers.forEach((value: string, key: string) => {\n res.setHeader(key, value);\n });\n const text = await result.response.text();\n if (!res.getHeader(\"content-length\")) {\n res.setHeader(\"content-length\", Buffer.byteLength(text).toString());\n }\n res.end(text);\n } else {\n sendText(res, 404, \"Not Found\");\n }\n } catch (error) {\n console.error(`${errorLabel} error:`, error);\n sendJson(res, 500, { error: (error as Error).message });\n }\n};\n\nexport interface DirectModuleHostHandlers {\n rpc: DirectModuleHostHandler | null;\n api: DirectModuleHostHandler | null;\n}\n\nexport interface DirectModuleHostOptions {\n name: string;\n handlers: DirectModuleHostHandlers;\n effectContext: unknown;\n port?: number;\n version?: string;\n rpcPrefix?: `/${string}`;\n apiPrefix?: `/${string}`;\n staticHandler?:\n | ((req: http.IncomingMessage, res: http.ServerResponse, next: () => void) => void)\n | null;\n}\n\nexport interface DirectModuleHostHandle {\n port: number;\n close: () => Promise<void>;\n}\n\nexport async function startDirectModuleHost(\n options: DirectModuleHostOptions,\n): Promise<DirectModuleHostHandle> {\n const port = options.port ?? 0;\n let resolvedPort = port;\n const rpcPrefix = options.rpcPrefix ?? \"/api/rpc\";\n const apiPrefix = options.apiPrefix ?? \"/api\";\n const staticHandler = options.staticHandler ?? null;\n const resolveEffectContext: () => unknown =\n typeof options.effectContext === \"function\"\n ? (options.effectContext as () => unknown)\n : () => options.effectContext;\n\n const server = createServer((req, res) => {\n applyCorsHeaders(res);\n const pathname = pathnameOf(req);\n\n if (req.method === \"OPTIONS\") {\n res.statusCode = 200;\n res.end();\n return;\n }\n\n if (pathname === \"/\" && (req.method === \"GET\" || req.method === \"HEAD\")) {\n sendJson(res, 200, {\n ok: true,\n module: options.name,\n version: options.version,\n status: options.handlers.rpc ? \"ready\" : \"loading\",\n endpoints: {\n health: \"/health\",\n docs: apiPrefix,\n rpc: rpcPrefix,\n },\n });\n return;\n }\n\n if (pathname === \"/health\" && (req.method === \"GET\" || req.method === \"HEAD\")) {\n sendText(res, 200, \"OK\");\n return;\n }\n\n if (pathname.startsWith(`${rpcPrefix}/`)) {\n if (!options.handlers.rpc) {\n sendJson(res, 503, { error: \"Plugin still loading...\" });\n return;\n }\n handleOrpc(\n req,\n res,\n options.handlers.rpc,\n rpcPrefix,\n \"RPC\",\n resolveEffectContext(),\n resolvedPort,\n ).catch(() => {});\n return;\n }\n\n if (pathname === apiPrefix || pathname.startsWith(`${apiPrefix}/`)) {\n if (!options.handlers.api) {\n sendJson(res, 503, { error: \"Plugin still loading...\" });\n return;\n }\n handleOrpc(\n req,\n res,\n options.handlers.api,\n apiPrefix,\n \"OpenAPI\",\n resolveEffectContext(),\n resolvedPort,\n ).catch(() => {});\n return;\n }\n\n if (staticHandler) {\n staticHandler(req, res, () => {\n sendText(res, 404, \"Not Found\");\n });\n return;\n }\n\n sendText(res, 404, \"Not Found\");\n });\n\n await new Promise<void>((resolve, reject) => {\n server.once(\"error\", reject);\n server.listen(port, () => resolve());\n });\n\n const address = server.address();\n if (!address || typeof address === \"string\") {\n await new Promise<void>((resolve) => server.close(() => resolve()));\n throw new Error(\"Failed to resolve host port\");\n }\n resolvedPort = address.port;\n\n return {\n port: resolvedPort,\n close: async () => {\n await new Promise<void>((resolve) => server.close(() => resolve()));\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import http from "node:http";
2
+ //#region src/dev/host.d.ts
3
+ interface DirectModuleHostHandler {
4
+ handle(request: Request, options: {
5
+ prefix: string;
6
+ context: unknown;
7
+ }): Promise<{
8
+ response?: Response;
9
+ }>;
10
+ }
11
+ interface DirectModuleHostHandlers {
12
+ rpc: DirectModuleHostHandler | null;
13
+ api: DirectModuleHostHandler | null;
14
+ }
15
+ interface DirectModuleHostOptions {
16
+ name: string;
17
+ handlers: DirectModuleHostHandlers;
18
+ effectContext: unknown;
19
+ port?: number;
20
+ version?: string;
21
+ rpcPrefix?: `/${string}`;
22
+ apiPrefix?: `/${string}`;
23
+ staticHandler?: ((req: http.IncomingMessage, res: http.ServerResponse, next: () => void) => void) | null;
24
+ }
25
+ interface DirectModuleHostHandle {
26
+ port: number;
27
+ close: () => Promise<void>;
28
+ }
29
+ declare function startDirectModuleHost(options: DirectModuleHostOptions): Promise<DirectModuleHostHandle>;
30
+ //#endregion
31
+ export { DirectModuleHostHandle, DirectModuleHostHandler, DirectModuleHostHandlers, DirectModuleHostOptions, startDirectModuleHost };
32
+ //# sourceMappingURL=host.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.cts","names":[],"sources":["../../src/dev/host.ts"],"mappings":";;UA+DiB;EACf,OACE,SAAS,SACT;IAAW;IAAgB;MAC1B;IAAU,WAAW;;;UAuCT;EACf,KAAK;EACL,KAAK;;UAGU;EACf;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA,kBACM,KAAK,KAAK,iBAAiB,KAAK,KAAK,gBAAgB;;UAI5C;EACf;EACA,aAAa;;iBAGO,sBACpB,SAAS,0BACR,QAAQ"}