@bleedingdev/modern-js-plugin-bff 3.5.0-ultramodern.10 → 3.5.0-ultramodern.101

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 (339) hide show
  1. package/dist/cjs/cli/compress.js +52 -0
  2. package/dist/cjs/cli/generator.js +184 -0
  3. package/dist/cjs/cli/prefix.js +50 -0
  4. package/dist/cjs/cli/serverGlobalVars.js +127 -0
  5. package/dist/cjs/cli/watch.js +51 -0
  6. package/dist/cjs/cli.js +11 -130
  7. package/dist/cjs/loader.js +19 -2
  8. package/dist/cjs/runtime/data-platform/batch/queue.js +284 -0
  9. package/dist/cjs/runtime/data-platform/batch/request.js +98 -0
  10. package/dist/cjs/runtime/data-platform/batch/response.js +64 -0
  11. package/dist/cjs/runtime/data-platform/batch/telemetry.js +67 -0
  12. package/dist/cjs/runtime/data-platform/batch/url.js +69 -0
  13. package/dist/cjs/runtime/data-platform/batch-transport.js +59 -0
  14. package/dist/cjs/runtime/data-platform/codec.js +155 -0
  15. package/dist/cjs/runtime/data-platform/index.js +30 -633
  16. package/dist/cjs/runtime/data-platform/invalidation.js +61 -0
  17. package/dist/cjs/runtime/data-platform/trace.js +73 -0
  18. package/dist/cjs/runtime/data-platform/types.js +48 -0
  19. package/dist/cjs/runtime/data-platform/validation.js +178 -0
  20. package/dist/cjs/runtime/effect/adapter/constants.js +44 -0
  21. package/dist/cjs/runtime/effect/adapter/cross-project-policy.js +61 -0
  22. package/dist/cjs/runtime/effect/adapter/entry.js +92 -0
  23. package/dist/cjs/runtime/effect/adapter/error-response.js +79 -0
  24. package/dist/cjs/runtime/effect/adapter/handler.js +53 -0
  25. package/dist/cjs/runtime/effect/adapter.js +26 -146
  26. package/dist/cjs/runtime/effect/backend-federation/entry.js +99 -0
  27. package/dist/cjs/runtime/effect/backend-federation/identity.js +82 -0
  28. package/dist/cjs/runtime/effect/backend-federation/load.js +66 -0
  29. package/dist/cjs/runtime/effect/backend-federation/plugin.js +53 -0
  30. package/dist/cjs/runtime/effect/backend-federation/remotes.js +50 -0
  31. package/dist/cjs/runtime/effect/backend-federation/runtime.js +64 -0
  32. package/dist/cjs/runtime/effect/backend-federation/types.js +18 -0
  33. package/dist/cjs/runtime/effect/backend-federation/utils.js +48 -0
  34. package/dist/cjs/runtime/effect/backend-federation-manifest/errors.js +83 -0
  35. package/dist/cjs/runtime/effect/backend-federation-manifest/index.js +55 -0
  36. package/dist/cjs/runtime/effect/backend-federation-manifest/load.js +94 -0
  37. package/dist/cjs/runtime/effect/backend-federation-manifest/metadata.js +101 -0
  38. package/dist/cjs/runtime/effect/backend-federation-manifest/reference.js +120 -0
  39. package/dist/cjs/runtime/effect/backend-federation-manifest/remote.js +68 -0
  40. package/dist/cjs/runtime/effect/backend-federation-manifest/types.js +18 -0
  41. package/dist/cjs/runtime/effect/backend-federation-manifest/validation.js +109 -0
  42. package/dist/cjs/runtime/effect/backend-federation-manifest.js +62 -0
  43. package/dist/cjs/runtime/effect/backend-federation.js +65 -0
  44. package/dist/cjs/runtime/effect/dispatch.js +101 -0
  45. package/dist/cjs/runtime/effect/edge.js +64 -71
  46. package/dist/cjs/runtime/effect/endpoint-contracts.js +13 -22
  47. package/dist/cjs/runtime/effect/entry-shape.js +84 -0
  48. package/dist/cjs/runtime/effect/handler/batch-handler.js +161 -0
  49. package/dist/cjs/runtime/effect/handler/batch.js +195 -0
  50. package/dist/cjs/runtime/effect/handler/definition.js +101 -0
  51. package/dist/cjs/runtime/effect/handler/envelope.js +104 -0
  52. package/dist/cjs/runtime/effect/handler/http.js +96 -0
  53. package/dist/cjs/runtime/effect/handler/openapi.js +57 -0
  54. package/dist/cjs/runtime/effect/handler/routing.js +100 -0
  55. package/dist/cjs/runtime/effect/handler/rpc.js +63 -0
  56. package/dist/cjs/runtime/effect/handler/types.js +43 -0
  57. package/dist/cjs/runtime/effect/handler.js +37 -529
  58. package/dist/cjs/runtime/effect/index.js +91 -15
  59. package/dist/cjs/runtime/effect/module.js +23 -80
  60. package/dist/cjs/runtime/effect/rpcSerialization.js +54 -0
  61. package/dist/cjs/runtime/effect-client/batch.js +73 -0
  62. package/dist/cjs/runtime/effect-client/envelope.js +145 -0
  63. package/dist/cjs/runtime/effect-client/guards.js +44 -0
  64. package/dist/cjs/runtime/effect-client/index.js +6 -16
  65. package/dist/cjs/runtime/effect-client/request-context.js +64 -0
  66. package/dist/cjs/runtime/effect-client/request.js +66 -0
  67. package/dist/cjs/runtime/effect-client/runtime.js +12 -178
  68. package/dist/cjs/runtime/effect-client/types.js +18 -0
  69. package/dist/cjs/runtime/hono/adapter.js +32 -79
  70. package/dist/cjs/runtime/safe-failure.js +2 -1
  71. package/dist/cjs/server.js +19 -30
  72. package/dist/cjs/utils/client-generator/files.js +152 -0
  73. package/dist/cjs/utils/client-generator/generate.js +138 -0
  74. package/dist/cjs/utils/client-generator/index.js +83 -0
  75. package/dist/cjs/utils/client-generator/package-json.js +132 -0
  76. package/dist/cjs/utils/client-generator/write-package.js +125 -0
  77. package/dist/cjs/utils/clientGenerator.js +26 -303
  78. package/dist/cjs/utils/effect-client-generator/generator.js +68 -0
  79. package/dist/cjs/utils/effect-client-generator/index.js +51 -0
  80. package/dist/cjs/utils/effect-client-generator/paths.js +73 -0
  81. package/dist/cjs/utils/effect-client-generator/rendering.js +231 -0
  82. package/dist/cjs/utils/effect-client-generator/runtime.js +85 -0
  83. package/dist/cjs/utils/effect-client-generator/types.js +18 -0
  84. package/dist/cjs/utils/effectClientGenerator.js +5 -262
  85. package/dist/cjs/utils/effectSourceLoader.js +252 -0
  86. package/dist/esm/cli/compress.mjs +14 -0
  87. package/dist/esm/cli/generator.mjs +133 -0
  88. package/dist/esm/cli/prefix.mjs +9 -0
  89. package/dist/esm/cli/serverGlobalVars.mjs +76 -0
  90. package/dist/esm/cli/watch.mjs +13 -0
  91. package/dist/esm/cli.mjs +7 -121
  92. package/dist/esm/loader.mjs +19 -2
  93. package/dist/esm/runtime/data-platform/batch/queue.mjs +246 -0
  94. package/dist/esm/runtime/data-platform/batch/request.mjs +45 -0
  95. package/dist/esm/runtime/data-platform/batch/response.mjs +23 -0
  96. package/dist/esm/runtime/data-platform/batch/telemetry.mjs +23 -0
  97. package/dist/esm/runtime/data-platform/batch/url.mjs +25 -0
  98. package/dist/esm/runtime/data-platform/batch-transport.mjs +12 -0
  99. package/dist/esm/runtime/data-platform/codec.mjs +90 -0
  100. package/dist/esm/runtime/data-platform/index.mjs +6 -610
  101. package/dist/esm/runtime/data-platform/invalidation.mjs +20 -0
  102. package/dist/esm/runtime/data-platform/trace.mjs +29 -0
  103. package/dist/esm/runtime/data-platform/types.mjs +4 -0
  104. package/dist/esm/runtime/data-platform/validation.mjs +128 -0
  105. package/dist/esm/runtime/effect/adapter/constants.mjs +6 -0
  106. package/dist/esm/runtime/effect/adapter/cross-project-policy.mjs +23 -0
  107. package/dist/esm/runtime/effect/adapter/entry.mjs +44 -0
  108. package/dist/esm/runtime/effect/adapter/error-response.mjs +41 -0
  109. package/dist/esm/runtime/effect/adapter/handler.mjs +15 -0
  110. package/dist/esm/runtime/effect/adapter.mjs +27 -147
  111. package/dist/esm/runtime/effect/backend-federation/entry.mjs +61 -0
  112. package/dist/esm/runtime/effect/backend-federation/identity.mjs +41 -0
  113. package/dist/esm/runtime/effect/backend-federation/load.mjs +28 -0
  114. package/dist/esm/runtime/effect/backend-federation/plugin.mjs +15 -0
  115. package/dist/esm/runtime/effect/backend-federation/remotes.mjs +12 -0
  116. package/dist/esm/runtime/effect/backend-federation/runtime.mjs +26 -0
  117. package/dist/esm/runtime/effect/backend-federation/types.mjs +0 -0
  118. package/dist/esm/runtime/effect/backend-federation/utils.mjs +7 -0
  119. package/dist/esm/runtime/effect/backend-federation-manifest/errors.mjs +32 -0
  120. package/dist/esm/runtime/effect/backend-federation-manifest/index.mjs +4 -0
  121. package/dist/esm/runtime/effect/backend-federation-manifest/load.mjs +56 -0
  122. package/dist/esm/runtime/effect/backend-federation-manifest/metadata.mjs +42 -0
  123. package/dist/esm/runtime/effect/backend-federation-manifest/reference.mjs +76 -0
  124. package/dist/esm/runtime/effect/backend-federation-manifest/remote.mjs +30 -0
  125. package/dist/esm/runtime/effect/backend-federation-manifest/types.mjs +0 -0
  126. package/dist/esm/runtime/effect/backend-federation-manifest/validation.mjs +65 -0
  127. package/dist/esm/runtime/effect/backend-federation-manifest.mjs +1 -0
  128. package/dist/esm/runtime/effect/backend-federation.mjs +5 -0
  129. package/dist/esm/runtime/effect/dispatch.mjs +63 -0
  130. package/dist/esm/runtime/effect/edge.mjs +17 -63
  131. package/dist/esm/runtime/effect/endpoint-contracts.mjs +14 -14
  132. package/dist/esm/runtime/effect/entry-shape.mjs +36 -0
  133. package/dist/esm/runtime/effect/handler/batch-handler.mjs +123 -0
  134. package/dist/esm/runtime/effect/handler/batch.mjs +124 -0
  135. package/dist/esm/runtime/effect/handler/definition.mjs +60 -0
  136. package/dist/esm/runtime/effect/handler/envelope.mjs +63 -0
  137. package/dist/esm/runtime/effect/handler/http.mjs +58 -0
  138. package/dist/esm/runtime/effect/handler/openapi.mjs +19 -0
  139. package/dist/esm/runtime/effect/handler/routing.mjs +50 -0
  140. package/dist/esm/runtime/effect/handler/rpc.mjs +22 -0
  141. package/dist/esm/runtime/effect/handler/types.mjs +5 -0
  142. package/dist/esm/runtime/effect/handler.mjs +11 -506
  143. package/dist/esm/runtime/effect/index.mjs +5 -2
  144. package/dist/esm/runtime/effect/module.mjs +25 -82
  145. package/dist/esm/runtime/effect/rpcSerialization.mjs +16 -0
  146. package/dist/esm/runtime/effect-client/batch.mjs +35 -0
  147. package/dist/esm/runtime/effect-client/envelope.mjs +104 -0
  148. package/dist/esm/runtime/effect-client/guards.mjs +3 -0
  149. package/dist/esm/runtime/effect-client/index.mjs +27 -37
  150. package/dist/esm/runtime/effect-client/request-context.mjs +23 -0
  151. package/dist/esm/runtime/effect-client/request.mjs +28 -0
  152. package/dist/esm/runtime/effect-client/runtime.mjs +12 -178
  153. package/dist/esm/runtime/effect-client/types.mjs +0 -0
  154. package/dist/esm/runtime/hono/adapter.mjs +33 -80
  155. package/dist/esm/runtime/safe-failure.mjs +2 -1
  156. package/dist/esm/server.mjs +18 -29
  157. package/dist/esm/utils/client-generator/files.mjs +68 -0
  158. package/dist/esm/utils/client-generator/generate.mjs +88 -0
  159. package/dist/esm/utils/client-generator/index.mjs +4 -0
  160. package/dist/esm/utils/client-generator/package-json.mjs +78 -0
  161. package/dist/esm/utils/client-generator/write-package.mjs +74 -0
  162. package/dist/esm/utils/clientGenerator.mjs +2 -293
  163. package/dist/esm/utils/effect-client-generator/generator.mjs +27 -0
  164. package/dist/esm/utils/effect-client-generator/index.mjs +3 -0
  165. package/dist/esm/utils/effect-client-generator/paths.mjs +25 -0
  166. package/dist/esm/utils/effect-client-generator/rendering.mjs +180 -0
  167. package/dist/esm/utils/effect-client-generator/runtime.mjs +34 -0
  168. package/dist/esm/utils/effect-client-generator/types.mjs +0 -0
  169. package/dist/esm/utils/effectClientGenerator.mjs +1 -249
  170. package/dist/esm/utils/effectSourceLoader.mjs +199 -0
  171. package/dist/esm-node/cli/compress.mjs +15 -0
  172. package/dist/esm-node/cli/generator.mjs +134 -0
  173. package/dist/esm-node/cli/prefix.mjs +10 -0
  174. package/dist/esm-node/cli/serverGlobalVars.mjs +77 -0
  175. package/dist/esm-node/cli/watch.mjs +14 -0
  176. package/dist/esm-node/cli.mjs +7 -121
  177. package/dist/esm-node/loader.mjs +19 -2
  178. package/dist/esm-node/runtime/data-platform/batch/queue.mjs +247 -0
  179. package/dist/esm-node/runtime/data-platform/batch/request.mjs +46 -0
  180. package/dist/esm-node/runtime/data-platform/batch/response.mjs +24 -0
  181. package/dist/esm-node/runtime/data-platform/batch/telemetry.mjs +24 -0
  182. package/dist/esm-node/runtime/data-platform/batch/url.mjs +26 -0
  183. package/dist/esm-node/runtime/data-platform/batch-transport.mjs +13 -0
  184. package/dist/esm-node/runtime/data-platform/codec.mjs +91 -0
  185. package/dist/esm-node/runtime/data-platform/index.mjs +6 -610
  186. package/dist/esm-node/runtime/data-platform/invalidation.mjs +21 -0
  187. package/dist/esm-node/runtime/data-platform/trace.mjs +30 -0
  188. package/dist/esm-node/runtime/data-platform/types.mjs +5 -0
  189. package/dist/esm-node/runtime/data-platform/validation.mjs +129 -0
  190. package/dist/esm-node/runtime/effect/adapter/constants.mjs +7 -0
  191. package/dist/esm-node/runtime/effect/adapter/cross-project-policy.mjs +24 -0
  192. package/dist/esm-node/runtime/effect/adapter/entry.mjs +45 -0
  193. package/dist/esm-node/runtime/effect/adapter/error-response.mjs +42 -0
  194. package/dist/esm-node/runtime/effect/adapter/handler.mjs +16 -0
  195. package/dist/esm-node/runtime/effect/adapter.mjs +28 -149
  196. package/dist/esm-node/runtime/effect/backend-federation/entry.mjs +62 -0
  197. package/dist/esm-node/runtime/effect/backend-federation/identity.mjs +42 -0
  198. package/dist/esm-node/runtime/effect/backend-federation/load.mjs +29 -0
  199. package/dist/esm-node/runtime/effect/backend-federation/plugin.mjs +16 -0
  200. package/dist/esm-node/runtime/effect/backend-federation/remotes.mjs +13 -0
  201. package/dist/esm-node/runtime/effect/backend-federation/runtime.mjs +27 -0
  202. package/dist/esm-node/runtime/effect/backend-federation/types.mjs +1 -0
  203. package/dist/esm-node/runtime/effect/backend-federation/utils.mjs +8 -0
  204. package/dist/esm-node/runtime/effect/backend-federation-manifest/errors.mjs +33 -0
  205. package/dist/esm-node/runtime/effect/backend-federation-manifest/index.mjs +5 -0
  206. package/dist/esm-node/runtime/effect/backend-federation-manifest/load.mjs +57 -0
  207. package/dist/esm-node/runtime/effect/backend-federation-manifest/metadata.mjs +43 -0
  208. package/dist/esm-node/runtime/effect/backend-federation-manifest/reference.mjs +77 -0
  209. package/dist/esm-node/runtime/effect/backend-federation-manifest/remote.mjs +31 -0
  210. package/dist/esm-node/runtime/effect/backend-federation-manifest/types.mjs +1 -0
  211. package/dist/esm-node/runtime/effect/backend-federation-manifest/validation.mjs +66 -0
  212. package/dist/esm-node/runtime/effect/backend-federation-manifest.mjs +2 -0
  213. package/dist/esm-node/runtime/effect/backend-federation.mjs +6 -0
  214. package/dist/esm-node/runtime/effect/dispatch.mjs +64 -0
  215. package/dist/esm-node/runtime/effect/edge.mjs +17 -63
  216. package/dist/esm-node/runtime/effect/endpoint-contracts.mjs +14 -14
  217. package/dist/esm-node/runtime/effect/entry-shape.mjs +37 -0
  218. package/dist/esm-node/runtime/effect/handler/batch-handler.mjs +124 -0
  219. package/dist/esm-node/runtime/effect/handler/batch.mjs +125 -0
  220. package/dist/esm-node/runtime/effect/handler/definition.mjs +61 -0
  221. package/dist/esm-node/runtime/effect/handler/envelope.mjs +64 -0
  222. package/dist/esm-node/runtime/effect/handler/http.mjs +59 -0
  223. package/dist/esm-node/runtime/effect/handler/openapi.mjs +20 -0
  224. package/dist/esm-node/runtime/effect/handler/routing.mjs +51 -0
  225. package/dist/esm-node/runtime/effect/handler/rpc.mjs +23 -0
  226. package/dist/esm-node/runtime/effect/handler/types.mjs +6 -0
  227. package/dist/esm-node/runtime/effect/handler.mjs +11 -506
  228. package/dist/esm-node/runtime/effect/index.mjs +5 -2
  229. package/dist/esm-node/runtime/effect/module.mjs +25 -82
  230. package/dist/esm-node/runtime/effect/rpcSerialization.mjs +17 -0
  231. package/dist/esm-node/runtime/effect-client/batch.mjs +36 -0
  232. package/dist/esm-node/runtime/effect-client/envelope.mjs +105 -0
  233. package/dist/esm-node/runtime/effect-client/guards.mjs +4 -0
  234. package/dist/esm-node/runtime/effect-client/index.mjs +27 -37
  235. package/dist/esm-node/runtime/effect-client/request-context.mjs +24 -0
  236. package/dist/esm-node/runtime/effect-client/request.mjs +29 -0
  237. package/dist/esm-node/runtime/effect-client/runtime.mjs +12 -178
  238. package/dist/esm-node/runtime/effect-client/types.mjs +1 -0
  239. package/dist/esm-node/runtime/hono/adapter.mjs +33 -80
  240. package/dist/esm-node/runtime/safe-failure.mjs +2 -1
  241. package/dist/esm-node/server.mjs +18 -29
  242. package/dist/esm-node/utils/client-generator/files.mjs +69 -0
  243. package/dist/esm-node/utils/client-generator/generate.mjs +89 -0
  244. package/dist/esm-node/utils/client-generator/index.mjs +5 -0
  245. package/dist/esm-node/utils/client-generator/package-json.mjs +79 -0
  246. package/dist/esm-node/utils/client-generator/write-package.mjs +75 -0
  247. package/dist/esm-node/utils/clientGenerator.mjs +2 -293
  248. package/dist/esm-node/utils/effect-client-generator/generator.mjs +28 -0
  249. package/dist/esm-node/utils/effect-client-generator/index.mjs +4 -0
  250. package/dist/esm-node/utils/effect-client-generator/paths.mjs +26 -0
  251. package/dist/esm-node/utils/effect-client-generator/rendering.mjs +181 -0
  252. package/dist/esm-node/utils/effect-client-generator/runtime.mjs +36 -0
  253. package/dist/esm-node/utils/effect-client-generator/types.mjs +1 -0
  254. package/dist/esm-node/utils/effectClientGenerator.mjs +2 -251
  255. package/dist/esm-node/utils/effectSourceLoader.mjs +200 -0
  256. package/dist/types/cli/compress.d.ts +2 -0
  257. package/dist/types/cli/generator.d.ts +7 -0
  258. package/dist/types/cli/prefix.d.ts +2 -0
  259. package/dist/types/cli/serverGlobalVars.d.ts +4 -0
  260. package/dist/types/cli/watch.d.ts +1 -0
  261. package/dist/types/cli.d.ts +0 -1
  262. package/dist/types/runtime/data-platform/batch/queue.d.ts +8 -0
  263. package/dist/types/runtime/data-platform/batch/request.d.ts +13 -0
  264. package/dist/types/runtime/data-platform/batch/response.d.ts +3 -0
  265. package/dist/types/runtime/data-platform/batch/telemetry.d.ts +4 -0
  266. package/dist/types/runtime/data-platform/batch/url.d.ts +4 -0
  267. package/dist/types/runtime/data-platform/batch-transport.d.ts +3 -0
  268. package/dist/types/runtime/data-platform/codec.d.ts +17 -0
  269. package/dist/types/runtime/data-platform/index.d.ts +7 -191
  270. package/dist/types/runtime/data-platform/invalidation.d.ts +8 -0
  271. package/dist/types/runtime/data-platform/trace.d.ts +4 -0
  272. package/dist/types/runtime/data-platform/types.d.ts +146 -0
  273. package/dist/types/runtime/data-platform/validation.d.ts +29 -0
  274. package/dist/types/runtime/effect/adapter/constants.d.ts +1 -0
  275. package/dist/types/runtime/effect/adapter/cross-project-policy.d.ts +4 -0
  276. package/dist/types/runtime/effect/adapter/entry.d.ts +2 -0
  277. package/dist/types/runtime/effect/adapter/error-response.d.ts +2 -0
  278. package/dist/types/runtime/effect/adapter/handler.d.ts +7 -0
  279. package/dist/types/runtime/effect/adapter.d.ts +4 -13
  280. package/dist/types/runtime/effect/backend-federation/entry.d.ts +2 -0
  281. package/dist/types/runtime/effect/backend-federation/identity.d.ts +30 -0
  282. package/dist/types/runtime/effect/backend-federation/load.d.ts +13 -0
  283. package/dist/types/runtime/effect/backend-federation/plugin.d.ts +3 -0
  284. package/dist/types/runtime/effect/backend-federation/remotes.d.ts +2 -0
  285. package/dist/types/runtime/effect/backend-federation/runtime.d.ts +3 -0
  286. package/dist/types/runtime/effect/backend-federation/types.d.ts +73 -0
  287. package/dist/types/runtime/effect/backend-federation/utils.d.ts +2 -0
  288. package/dist/types/runtime/effect/backend-federation-manifest/errors.d.ts +11 -0
  289. package/dist/types/runtime/effect/backend-federation-manifest/index.d.ts +6 -0
  290. package/dist/types/runtime/effect/backend-federation-manifest/load.d.ts +3 -0
  291. package/dist/types/runtime/effect/backend-federation-manifest/metadata.d.ts +18 -0
  292. package/dist/types/runtime/effect/backend-federation-manifest/reference.d.ts +4 -0
  293. package/dist/types/runtime/effect/backend-federation-manifest/remote.d.ts +3 -0
  294. package/dist/types/runtime/effect/backend-federation-manifest/types.d.ts +51 -0
  295. package/dist/types/runtime/effect/backend-federation-manifest/validation.d.ts +5 -0
  296. package/dist/types/runtime/effect/backend-federation-manifest.d.ts +1 -0
  297. package/dist/types/runtime/effect/backend-federation.d.ts +7 -0
  298. package/dist/types/runtime/effect/dispatch.d.ts +13 -0
  299. package/dist/types/runtime/effect/edge.d.ts +8 -8
  300. package/dist/types/runtime/effect/endpoint-contracts.d.ts +11 -7
  301. package/dist/types/runtime/effect/entry-shape.d.ts +31 -0
  302. package/dist/types/runtime/effect/handler/batch-handler.d.ts +11 -0
  303. package/dist/types/runtime/effect/handler/batch.d.ts +17 -0
  304. package/dist/types/runtime/effect/handler/definition.d.ts +17 -0
  305. package/dist/types/runtime/effect/handler/envelope.d.ts +13 -0
  306. package/dist/types/runtime/effect/handler/http.d.ts +14 -0
  307. package/dist/types/runtime/effect/handler/openapi.d.ts +4 -0
  308. package/dist/types/runtime/effect/handler/routing.d.ts +5 -0
  309. package/dist/types/runtime/effect/handler/rpc.d.ts +7 -0
  310. package/dist/types/runtime/effect/handler/types.d.ts +148 -0
  311. package/dist/types/runtime/effect/handler.d.ts +4 -190
  312. package/dist/types/runtime/effect/index.d.ts +3 -0
  313. package/dist/types/runtime/effect/module.d.ts +3 -2
  314. package/dist/types/runtime/effect/rpcSerialization.d.ts +3 -0
  315. package/dist/types/runtime/effect-client/batch.d.ts +2 -0
  316. package/dist/types/runtime/effect-client/envelope.d.ts +15 -0
  317. package/dist/types/runtime/effect-client/guards.d.ts +2 -0
  318. package/dist/types/runtime/effect-client/index.d.ts +1 -1
  319. package/dist/types/runtime/effect-client/request-context.d.ts +3 -0
  320. package/dist/types/runtime/effect-client/request.d.ts +1 -0
  321. package/dist/types/runtime/effect-client/runtime.d.ts +2 -68
  322. package/dist/types/runtime/effect-client/types.d.ts +68 -0
  323. package/dist/types/runtime/hono/adapter.d.ts +14 -8
  324. package/dist/types/utils/client-generator/files.d.ts +28 -0
  325. package/dist/types/utils/client-generator/generate.d.ts +26 -0
  326. package/dist/types/utils/client-generator/index.d.ts +7 -0
  327. package/dist/types/utils/client-generator/package-json.d.ts +16 -0
  328. package/dist/types/utils/client-generator/write-package.d.ts +6 -0
  329. package/dist/types/utils/clientGenerator.d.ts +2 -37
  330. package/dist/types/utils/crossProjectServerPolicy.d.ts +3 -2
  331. package/dist/types/utils/effect-client-generator/generator.d.ts +10 -0
  332. package/dist/types/utils/effect-client-generator/index.d.ts +4 -0
  333. package/dist/types/utils/effect-client-generator/paths.d.ts +5 -0
  334. package/dist/types/utils/effect-client-generator/rendering.d.ts +4 -0
  335. package/dist/types/utils/effect-client-generator/runtime.d.ts +12 -0
  336. package/dist/types/utils/effect-client-generator/types.d.ts +27 -0
  337. package/dist/types/utils/effectClientGenerator.d.ts +2 -41
  338. package/dist/types/utils/effectSourceLoader.d.ts +15 -0
  339. package/package.json +57 -33
@@ -1,191 +1,7 @@
1
- export type DataRequestMode = 'cache-first' | 'stale-while-revalidate' | 'network-only';
2
- export type DataMutationMode = 'optimistic' | 'pessimistic' | 'fire-and-forget';
3
- export type SelectionPlan = {
4
- [field: string]: true | SelectionPlan;
5
- };
6
- export interface OperationDescriptor {
7
- appNamespace: string;
8
- apiId: string;
9
- group: string;
10
- endpoint: string;
11
- schemaHash?: string;
12
- version?: number;
13
- }
14
- export interface CacheScope {
15
- appNamespace: string;
16
- origin: string;
17
- tenantId?: string;
18
- userId?: string;
19
- sessionId?: string;
20
- }
21
- export interface TraceContext {
22
- traceId: string;
23
- spanId: string;
24
- sampled: boolean;
25
- parentSpanId?: string;
26
- }
27
- export interface RequestEnvelope<Input = unknown> {
28
- protocolVersion: 1;
29
- operationId: string;
30
- appNamespace: string;
31
- origin: string;
32
- requestMode: DataRequestMode;
33
- mutationMode?: DataMutationMode;
34
- scopeKey: string;
35
- input: Input;
36
- inputHash: string;
37
- selectionPlan?: SelectionPlan;
38
- selectionHash?: string;
39
- traceparent?: string;
40
- timestamp: number;
41
- }
42
- export interface HydrationEnvelope<Payload = unknown> {
43
- protocolVersion: 1;
44
- runtimeVersion: string;
45
- appNamespace: string;
46
- origin: string;
47
- createdAt: number;
48
- payload: Payload;
49
- checksum: string;
50
- }
51
- export interface InvalidationEvent {
52
- sourceNamespace: string;
53
- sourceOperationId: string;
54
- scopeKey: string;
55
- targetNamespaces?: string[];
56
- targetOperationIds?: string[];
57
- }
58
- export interface InvalidationSubscriber {
59
- namespace: string;
60
- operationIds?: string[];
61
- scopeKey?: string;
62
- acceptCrossNamespace?: boolean;
63
- }
64
- export interface DataBatchRequestItem {
65
- id: string;
66
- path: string;
67
- method: string;
68
- headers?: Record<string, string>;
69
- body?: string;
70
- }
71
- export interface DataBatchRequestPayload {
72
- protocolVersion: 1;
73
- batchId: string;
74
- sentAt: number;
75
- items: DataBatchRequestItem[];
76
- }
77
- export interface DataBatchResponseItem {
78
- id: string;
79
- status: number;
80
- headers?: Record<string, string>;
81
- body?: string;
82
- }
83
- export interface DataBatchResponsePayload {
84
- protocolVersion: 1;
85
- batchId: string;
86
- receivedAt: number;
87
- items: DataBatchResponseItem[];
88
- }
89
- export interface DataBatchTransportEvent {
90
- type: 'enqueue' | 'flush' | 'fallback' | 'disable';
91
- endpoint: string;
92
- batchId?: string;
93
- size?: number;
94
- reason?: string;
95
- }
96
- export type DataBatchTransportTelemetryAttributes = Record<string, string | number | boolean>;
97
- export interface DataBatchTransportOptions {
98
- endpoint?: string;
99
- fetch?: (input: DataTransportRequestInfo, init?: RequestInit) => Promise<Response>;
100
- flushIntervalMs?: number;
101
- maxBatchSize?: number;
102
- maxBatchBytes?: number;
103
- requestTimeoutMs?: number;
104
- allowedMethods?: string[];
105
- onEvent?: (event: DataBatchTransportEvent) => void;
106
- }
107
- export declare const DATA_BATCH_TRANSPORT_OTEL_EVENT = "modernjs.data.batch";
108
- export declare function createDataBatchTransportTelemetryAttributes(event: DataBatchTransportEvent): DataBatchTransportTelemetryAttributes;
109
- export declare function emitDataBatchTransportEvent(onEvent: ((event: DataBatchTransportEvent) => void) | undefined, event: DataBatchTransportEvent): void;
110
- export interface SelectionPlanValidationOptions {
111
- maxDepth?: number;
112
- maxFields?: number;
113
- allowedLeafPaths?: ReadonlyArray<string>;
114
- }
115
- export interface SelectionPlanValidationResult {
116
- ok: boolean;
117
- errors: string[];
118
- stats: {
119
- maxDepth: number;
120
- fieldCount: number;
121
- };
122
- }
123
- export interface RequestEnvelopeValidationOptions {
124
- expectedProtocolVersion?: number;
125
- expectedNamespace?: string;
126
- expectedOrigin?: string;
127
- requireTraceContext?: boolean;
128
- }
129
- export interface HydrationEnvelopeValidationOptions {
130
- expectedProtocolVersion?: number;
131
- expectedNamespace?: string;
132
- expectedOrigin?: string;
133
- expectedRuntimeVersion?: string;
134
- }
135
- export declare const DEFAULT_DATA_ENVELOPE_HEADER = "x-modernjs-data-envelope";
136
- export declare const DEFAULT_DATA_BATCH_ENDPOINT = "/_data/batch";
137
- export declare const DEFAULT_DATA_BATCH_HEADER = "x-modernjs-data-batch";
138
- type DataTransportRequestInfo = string | URL | Request;
139
- export declare function stableStringify(value: unknown): string;
140
- export declare function encodeRequestEnvelopeHeader(envelope: RequestEnvelope): string;
141
- export declare function decodeRequestEnvelopeHeader(value: string): RequestEnvelope | null;
142
- export declare function normalizeOrigin(origin: string): string;
143
- export declare function createOperationId(input: OperationDescriptor): string;
144
- export declare function buildScopeKey(scope: CacheScope): string;
145
- export declare function buildQueryKey(input: {
146
- operationId: string;
147
- scopeKey: string;
148
- requestMode?: DataRequestMode;
149
- requestInput?: unknown;
150
- selectionPlan?: SelectionPlan;
151
- }): string;
152
- export declare function parseTraceparentHeader(header: string): TraceContext | null;
153
- export declare function formatTraceparentHeader(trace: TraceContext): string;
154
- export declare function deriveChildTraceContext(parent: TraceContext, childSpanId: string): TraceContext;
155
- export declare function validateSelectionPlan(plan: SelectionPlan, options?: SelectionPlanValidationOptions): SelectionPlanValidationResult;
156
- export declare function createRequestEnvelope<Input>(input: {
157
- operation: OperationDescriptor;
158
- scope: CacheScope;
159
- requestInput: Input;
160
- selectionPlan?: SelectionPlan;
161
- requestMode?: DataRequestMode;
162
- mutationMode?: DataMutationMode;
163
- traceContext?: TraceContext;
164
- requireTraceContext?: boolean;
165
- timestamp?: number;
166
- protocolVersion?: 1;
167
- }): RequestEnvelope<Input>;
168
- export declare function validateRequestEnvelope(envelope: RequestEnvelope, options?: RequestEnvelopeValidationOptions): {
169
- ok: boolean;
170
- errors: string[];
171
- };
172
- export declare function createHydrationEnvelope<Payload>(input: {
173
- runtimeVersion: string;
174
- scope: Pick<CacheScope, 'appNamespace' | 'origin'>;
175
- payload: Payload;
176
- createdAt?: number;
177
- protocolVersion?: 1;
178
- }): HydrationEnvelope<Payload>;
179
- export declare function validateHydrationEnvelope(envelope: HydrationEnvelope, options?: HydrationEnvelopeValidationOptions): {
180
- ok: boolean;
181
- errors: string[];
182
- };
183
- export declare function createInvalidationEvent(input: {
184
- sourceOperation: OperationDescriptor;
185
- sourceScope: CacheScope;
186
- targetNamespaces?: string[];
187
- targetOperations?: OperationDescriptor[];
188
- }): InvalidationEvent;
189
- export declare function shouldApplyInvalidation(event: InvalidationEvent, subscriber: InvalidationSubscriber): boolean;
190
- export declare function createDataBatchTransport(options?: DataBatchTransportOptions): (input: DataTransportRequestInfo, init?: RequestInit) => Promise<any>;
191
- export {};
1
+ export { createDataBatchTransport, createDataBatchTransportTelemetryAttributes, DATA_BATCH_TRANSPORT_OTEL_EVENT, emitDataBatchTransportEvent, } from './batch-transport';
2
+ export { buildQueryKey, buildScopeKey, createOperationId, decodeRequestEnvelopeHeader, encodeRequestEnvelopeHeader, normalizeOrigin, stableStringify, } from './codec';
3
+ export { createInvalidationEvent, shouldApplyInvalidation, } from './invalidation';
4
+ export { deriveChildTraceContext, formatTraceparentHeader, parseTraceparentHeader, } from './trace';
5
+ export type { CacheScope, DataBatchRequestItem, DataBatchRequestPayload, DataBatchResponseItem, DataBatchResponsePayload, DataBatchTransportEvent, DataBatchTransportOptions, DataBatchTransportTelemetryAttributes, DataMutationMode, DataRequestMode, HydrationEnvelope, HydrationEnvelopeValidationOptions, InvalidationEvent, InvalidationSubscriber, OperationDescriptor, RequestEnvelope, RequestEnvelopeValidationOptions, SelectionPlan, SelectionPlanValidationOptions, SelectionPlanValidationResult, TraceContext, } from './types';
6
+ export { DEFAULT_DATA_BATCH_ENDPOINT, DEFAULT_DATA_BATCH_HEADER, DEFAULT_DATA_ENVELOPE_HEADER, } from './types';
7
+ export { createHydrationEnvelope, createRequestEnvelope, validateHydrationEnvelope, validateRequestEnvelope, validateSelectionPlan, } from './validation';
@@ -0,0 +1,8 @@
1
+ import type { CacheScope, InvalidationEvent, InvalidationSubscriber, OperationDescriptor } from './types';
2
+ export declare function createInvalidationEvent(input: {
3
+ sourceOperation: OperationDescriptor;
4
+ sourceScope: CacheScope;
5
+ targetNamespaces?: string[];
6
+ targetOperations?: OperationDescriptor[];
7
+ }): InvalidationEvent;
8
+ export declare function shouldApplyInvalidation(event: InvalidationEvent, subscriber: InvalidationSubscriber): boolean;
@@ -0,0 +1,4 @@
1
+ import type { TraceContext } from './types';
2
+ export declare function parseTraceparentHeader(header: string): TraceContext | null;
3
+ export declare function formatTraceparentHeader(trace: TraceContext): string;
4
+ export declare function deriveChildTraceContext(parent: TraceContext, childSpanId: string): TraceContext;
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Data-platform envelope (`x-modernjs-data-envelope`): the TRANSPORT/CACHE
3
+ * contract of the effect lane — protocol versioning, cache scope keys,
4
+ * selection plans, batching and hydration checksums.
5
+ *
6
+ * Boundary note (one envelope system per concern): cross-project
7
+ * AUTHORIZATION is the bff-core policy's job (`x-modernjs-bff-envelope` +
8
+ * operation contracts, evaluated server-side in both the hono and effect
9
+ * lanes). Nothing in this module is a trust boundary; treat every value
10
+ * here as client-asserted cache metadata.
11
+ */
12
+ export type DataRequestMode = 'cache-first' | 'stale-while-revalidate' | 'network-only';
13
+ export type DataMutationMode = 'optimistic' | 'pessimistic' | 'fire-and-forget';
14
+ export type SelectionPlan = {
15
+ [field: string]: true | SelectionPlan;
16
+ };
17
+ export interface OperationDescriptor {
18
+ appNamespace: string;
19
+ apiId: string;
20
+ group: string;
21
+ endpoint: string;
22
+ schemaHash?: string;
23
+ version?: number;
24
+ }
25
+ export interface CacheScope {
26
+ appNamespace: string;
27
+ origin: string;
28
+ tenantId?: string;
29
+ userId?: string;
30
+ sessionId?: string;
31
+ }
32
+ export interface TraceContext {
33
+ traceId: string;
34
+ spanId: string;
35
+ sampled: boolean;
36
+ parentSpanId?: string;
37
+ }
38
+ export interface RequestEnvelope<Input = unknown> {
39
+ protocolVersion: 1;
40
+ operationId: string;
41
+ appNamespace: string;
42
+ origin: string;
43
+ requestMode: DataRequestMode;
44
+ mutationMode?: DataMutationMode;
45
+ scopeKey: string;
46
+ input: Input;
47
+ inputHash: string;
48
+ selectionPlan?: SelectionPlan;
49
+ selectionHash?: string;
50
+ traceparent?: string;
51
+ timestamp: number;
52
+ }
53
+ export interface HydrationEnvelope<Payload = unknown> {
54
+ protocolVersion: 1;
55
+ runtimeVersion: string;
56
+ appNamespace: string;
57
+ origin: string;
58
+ createdAt: number;
59
+ payload: Payload;
60
+ checksum: string;
61
+ }
62
+ export interface InvalidationEvent {
63
+ sourceNamespace: string;
64
+ sourceOperationId: string;
65
+ scopeKey: string;
66
+ targetNamespaces?: string[];
67
+ targetOperationIds?: string[];
68
+ }
69
+ export interface InvalidationSubscriber {
70
+ namespace: string;
71
+ operationIds?: string[];
72
+ scopeKey?: string;
73
+ acceptCrossNamespace?: boolean;
74
+ }
75
+ export interface DataBatchRequestItem {
76
+ id: string;
77
+ path: string;
78
+ method: string;
79
+ headers?: Record<string, string>;
80
+ body?: string;
81
+ }
82
+ export interface DataBatchRequestPayload {
83
+ protocolVersion: 1;
84
+ batchId: string;
85
+ sentAt: number;
86
+ items: DataBatchRequestItem[];
87
+ }
88
+ export interface DataBatchResponseItem {
89
+ id: string;
90
+ status: number;
91
+ headers?: Record<string, string>;
92
+ body?: string;
93
+ }
94
+ export interface DataBatchResponsePayload {
95
+ protocolVersion: 1;
96
+ batchId: string;
97
+ receivedAt: number;
98
+ items: DataBatchResponseItem[];
99
+ }
100
+ export interface DataBatchTransportEvent {
101
+ type: 'enqueue' | 'flush' | 'fallback' | 'disable';
102
+ endpoint: string;
103
+ batchId?: string;
104
+ size?: number;
105
+ reason?: string;
106
+ }
107
+ export type DataBatchTransportTelemetryAttributes = Record<string, string | number | boolean>;
108
+ export interface DataBatchTransportOptions {
109
+ endpoint?: string;
110
+ fetch?: (input: DataTransportRequestInfo, init?: RequestInit) => Promise<Response>;
111
+ flushIntervalMs?: number;
112
+ maxBatchSize?: number;
113
+ maxBatchBytes?: number;
114
+ requestTimeoutMs?: number;
115
+ allowedMethods?: string[];
116
+ onEvent?: (event: DataBatchTransportEvent) => void;
117
+ }
118
+ export interface SelectionPlanValidationOptions {
119
+ maxDepth?: number;
120
+ maxFields?: number;
121
+ allowedLeafPaths?: ReadonlyArray<string>;
122
+ }
123
+ export interface SelectionPlanValidationResult {
124
+ ok: boolean;
125
+ errors: string[];
126
+ stats: {
127
+ maxDepth: number;
128
+ fieldCount: number;
129
+ };
130
+ }
131
+ export interface RequestEnvelopeValidationOptions {
132
+ expectedProtocolVersion?: number;
133
+ expectedNamespace?: string;
134
+ expectedOrigin?: string;
135
+ requireTraceContext?: boolean;
136
+ }
137
+ export interface HydrationEnvelopeValidationOptions {
138
+ expectedProtocolVersion?: number;
139
+ expectedNamespace?: string;
140
+ expectedOrigin?: string;
141
+ expectedRuntimeVersion?: string;
142
+ }
143
+ export declare const DEFAULT_DATA_ENVELOPE_HEADER = "x-modernjs-data-envelope";
144
+ export declare const DEFAULT_DATA_BATCH_ENDPOINT = "/_data/batch";
145
+ export declare const DEFAULT_DATA_BATCH_HEADER = "x-modernjs-data-batch";
146
+ export type DataTransportRequestInfo = string | URL | Request;
@@ -0,0 +1,29 @@
1
+ import type { CacheScope, DataMutationMode, DataRequestMode, HydrationEnvelope, HydrationEnvelopeValidationOptions, OperationDescriptor, RequestEnvelope, RequestEnvelopeValidationOptions, SelectionPlan, SelectionPlanValidationOptions, SelectionPlanValidationResult, TraceContext } from './types';
2
+ export declare function validateSelectionPlan(plan: SelectionPlan, options?: SelectionPlanValidationOptions): SelectionPlanValidationResult;
3
+ export declare function createRequestEnvelope<Input>(input: {
4
+ operation: OperationDescriptor;
5
+ scope: CacheScope;
6
+ requestInput: Input;
7
+ selectionPlan?: SelectionPlan;
8
+ requestMode?: DataRequestMode;
9
+ mutationMode?: DataMutationMode;
10
+ traceContext?: TraceContext;
11
+ requireTraceContext?: boolean;
12
+ timestamp?: number;
13
+ protocolVersion?: 1;
14
+ }): RequestEnvelope<Input>;
15
+ export declare function validateRequestEnvelope(envelope: RequestEnvelope, options?: RequestEnvelopeValidationOptions): {
16
+ ok: boolean;
17
+ errors: string[];
18
+ };
19
+ export declare function createHydrationEnvelope<Payload>(input: {
20
+ runtimeVersion: string;
21
+ scope: Pick<CacheScope, 'appNamespace' | 'origin'>;
22
+ payload: Payload;
23
+ createdAt?: number;
24
+ protocolVersion?: 1;
25
+ }): HydrationEnvelope<Payload>;
26
+ export declare function validateHydrationEnvelope(envelope: HydrationEnvelope, options?: HydrationEnvelopeValidationOptions): {
27
+ ok: boolean;
28
+ errors: string[];
29
+ };
@@ -0,0 +1 @@
1
+ export declare const before: string[];
@@ -0,0 +1,4 @@
1
+ import type { ServerPluginAPI } from '@modern-js/server-core';
2
+ import { type ResolvedCrossProjectPolicy } from '../../../utils/crossProjectServerPolicy';
3
+ import type { EffectApiModule } from '../module';
4
+ export declare function resolveEffectAdapterCrossProjectPolicy(api: ServerPluginAPI, prefix: string, mod: EffectApiModule | null): Promise<ResolvedCrossProjectPolicy>;
@@ -0,0 +1,2 @@
1
+ import type { ServerPluginAPI } from '@modern-js/server-core';
2
+ export declare function resolveEffectAdapterEntryFile(api: ServerPluginAPI): string | undefined;
@@ -0,0 +1,2 @@
1
+ import type { Context, ServerPluginAPI } from '@modern-js/server-core';
2
+ export declare function createEffectAdapterRuntimeErrorResponse(api: ServerPluginAPI, error: unknown, c: Context): Promise<Response>;
@@ -0,0 +1,7 @@
1
+ import type { ServerPluginAPI } from '@modern-js/server-core';
2
+ import { type ResolvedCrossProjectPolicy } from '../../../utils/crossProjectServerPolicy';
3
+ import { type EffectApiModule } from '../module';
4
+ export declare function loadEffectAdapterHandlerFromModule(api: ServerPluginAPI, mod: EffectApiModule, crossProjectPolicy: ResolvedCrossProjectPolicy | undefined): Promise<{
5
+ handler: import("../module").EffectBffRequestHandler;
6
+ dispose?: () => Promise<void>;
7
+ } | null>;
@@ -1,14 +1,14 @@
1
1
  import type { ServerMiddleware, ServerPluginAPI } from '@modern-js/server-core';
2
- import { type ResolvedCrossProjectPolicy } from '../../utils/crossProjectServerPolicy';
2
+ import type { ResolvedCrossProjectPolicy } from '../../utils/crossProjectServerPolicy';
3
3
  interface MiddlewareOptions {
4
4
  prefix: string;
5
5
  enableHandleWeb?: boolean;
6
6
  }
7
7
  export declare class EffectAdapter {
8
- api: ServerPluginAPI;
8
+ private api;
9
9
  isEffect: boolean;
10
- effectMiddleware: ServerMiddleware | null;
11
- crossProjectPolicy: ResolvedCrossProjectPolicy | undefined;
10
+ effectMiddleware?: ServerMiddleware;
11
+ crossProjectPolicy?: ResolvedCrossProjectPolicy;
12
12
  private handler;
13
13
  private dispose;
14
14
  private prefix;
@@ -16,16 +16,7 @@ export declare class EffectAdapter {
16
16
  registerMiddleware: (options: MiddlewareOptions) => Promise<void>;
17
17
  onApiHandlersUpdated: () => Promise<void>;
18
18
  private resolveEntryFile;
19
- /**
20
- * Resolves the cross-project policy from the reflected HttpApi endpoints so
21
- * the expected operation contracts match the hashes the client generators
22
- * stamp into generated SDKs.
23
- */
24
- private refreshCrossProjectPolicy;
25
- private loadEffectHandlerFromModule;
26
19
  private reloadHandler;
27
20
  private disposeCurrentHandler;
28
- private handleRuntimeError;
29
- private ensureJsonContext;
30
21
  }
31
22
  export {};
@@ -0,0 +1,2 @@
1
+ import type { BackendFederationRemote, BackendFederationRuntimeOptions } from './types';
2
+ export declare function loadBackendFederationExpose(remote: BackendFederationRemote, expose: string, options: BackendFederationRuntimeOptions): Promise<unknown>;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Mandatory delivery-unit identity for public backend federation loads
3
+ * (MV-G23, ADR-0019 / RESOLUTION-0001 §2.3): consumers pass the record's
4
+ * `unitId` + `buildMarker` through to identity validation.
5
+ */
6
+ export type BackendFederationExpectedIdentity = {
7
+ unitId: string;
8
+ buildMarker: string;
9
+ };
10
+ export type BackendFederationIdentityIssue = {
11
+ path: string;
12
+ message: string;
13
+ };
14
+ /**
15
+ * Shared expected-identity validation for loaded backend federation modules.
16
+ * Compares the expose's `backendFederationContract.compatibility` identity
17
+ * (`unitId`, `build`) against the consumer's expected delivery-unit identity.
18
+ * Missing identity metadata is an error: with an expectation present there is
19
+ * no legacy escape hatch.
20
+ */
21
+ export declare function validateExpectedBackendFederationIdentity(loaded: unknown, expected: BackendFederationExpectedIdentity, options?: {
22
+ /**
23
+ * Tolerate exposes that declare no identity metadata (legacy modules).
24
+ * Mismatching declared values still fail. Used by the manifest adapter,
25
+ * whose manifest-side identity is already validated against `expected`;
26
+ * the raw identity-aware loader is strict.
27
+ */
28
+ allowMissingIdentityMetadata?: boolean;
29
+ }): BackendFederationIdentityIssue[];
30
+ export declare function formatBackendFederationIdentityIssues(issues: BackendFederationIdentityIssue[]): string;
@@ -0,0 +1,13 @@
1
+ import type { BackendFederatedEffectApiModule, BackendFederationIdentityLoadOptions, BackendFederationLoadOptions } from './types';
2
+ /**
3
+ * Load a federated Effect API with mandatory delivery-unit identity
4
+ * validation (MV-G23): the loaded expose's compatibility metadata must match
5
+ * `expected.unitId` + `expected.buildMarker`.
6
+ */
7
+ export declare function loadBackendFederatedEffectApi(options: BackendFederationIdentityLoadOptions): Promise<BackendFederatedEffectApiModule>;
8
+ /**
9
+ * @deprecated Pass `expected` (delivery-unit `unitId` + `buildMarker`).
10
+ * Loads without an expected identity cannot be validated against a resolved
11
+ * delivery-unit record and emit a runtime warning.
12
+ */
13
+ export declare function loadBackendFederatedEffectApi(options: BackendFederationLoadOptions): Promise<BackendFederatedEffectApiModule>;
@@ -0,0 +1,3 @@
1
+ import type { ModuleFederationRuntimePlugin } from '@module-federation/runtime';
2
+ import type { BackendFederationLoadEntryPluginOptions } from './types';
3
+ export declare function createBackendFederationLoadEntryPlugin(options: BackendFederationLoadEntryPluginOptions): ModuleFederationRuntimePlugin;
@@ -0,0 +1,2 @@
1
+ import type { BackendFederationRuntimeOptions } from './types';
2
+ export declare function collectRemotes(options: BackendFederationRuntimeOptions): import("./types").BackendFederationRemote[];
@@ -0,0 +1,3 @@
1
+ import type { ModuleFederation } from '@module-federation/runtime';
2
+ import type { BackendFederationRuntimeOptions } from './types';
3
+ export declare function createBackendFederationRuntime(options: BackendFederationRuntimeOptions): ModuleFederation;
@@ -0,0 +1,73 @@
1
+ import type { BACKEND_FEDERATION_EFFECT_EXPOSE } from '@modern-js/utils/universal';
2
+ import type { ModuleFederation, ModuleFederationRuntimePlugin } from '@module-federation/runtime';
3
+ import type { EffectApiModule } from '../module';
4
+ import type { BackendFederationExpectedIdentity } from './identity';
5
+ export type BackendFederationRemote = {
6
+ name: string;
7
+ entry: string;
8
+ type?: 'commonjs-module' | 'module' | string;
9
+ entryGlobalName?: string;
10
+ shareScope?: string | string[];
11
+ expose?: typeof BACKEND_FEDERATION_EFFECT_EXPOSE;
12
+ };
13
+ export type BackendFederationRuntimeOptions = {
14
+ hostName: string;
15
+ remote?: BackendFederationRemote;
16
+ remotes?: BackendFederationRemote[];
17
+ plugins?: ModuleFederationRuntimePlugin[];
18
+ };
19
+ export type BackendFederationEntryExports = {
20
+ get: (id: string) => (() => Promise<unknown> | unknown) | Promise<() => Promise<unknown> | unknown>;
21
+ init?: (...args: unknown[]) => void | Promise<void>;
22
+ };
23
+ export type BackendFederatedEffectApiModule = EffectApiModule & {
24
+ backendFederationContract?: {
25
+ compatibility?: {
26
+ build?: unknown;
27
+ contractVersion?: unknown;
28
+ nodeAdapterVersion?: unknown;
29
+ packageName?: unknown;
30
+ /**
31
+ * ADR-0019 delivery-unit identity root, generator-emitted alongside
32
+ * manifest's `versionBoundary.deliveryUnit`. Additive/optional.
33
+ */
34
+ unitId?: unknown;
35
+ /** ADR-0019 delivery-unit source revision. Additive/optional. */
36
+ sourceRevision?: unknown;
37
+ };
38
+ name?: unknown;
39
+ role?: unknown;
40
+ runtimeFramework?: unknown;
41
+ strictEffectApproach?: unknown;
42
+ };
43
+ contract?: unknown;
44
+ operationContexts?: unknown;
45
+ runtime?: unknown;
46
+ };
47
+ export type BackendFederationLoadEntryPluginOptions = {
48
+ resolveEntry: (remote: BackendFederationRemote) => BackendFederationEntryExports | undefined | Promise<BackendFederationEntryExports | undefined>;
49
+ };
50
+ export type BackendFederationLoadOptions = BackendFederationRuntimeOptions & {
51
+ runtime?: ModuleFederation;
52
+ remoteName?: string;
53
+ expose?: string;
54
+ };
55
+ /**
56
+ * Identity-aware public load options (MV-G23): the expected delivery-unit
57
+ * `unitId` + `buildMarker` are mandatory and validated against the loaded
58
+ * expose's compatibility metadata.
59
+ */
60
+ export type BackendFederationIdentityLoadOptions = BackendFederationLoadOptions & {
61
+ expected: BackendFederationExpectedIdentity;
62
+ /**
63
+ * Tolerate legacy exposes without identity metadata (mismatching declared
64
+ * values still fail). Prefer leaving this unset: identity-less exposes
65
+ * cannot be validated against a resolved delivery-unit record.
66
+ */
67
+ allowMissingIdentityMetadata?: boolean;
68
+ };
69
+ export type BackendFederationLoadEntryPlugin = ModuleFederationRuntimePlugin & {
70
+ loadEntry?: (args: {
71
+ remoteInfo: BackendFederationRemote;
72
+ }) => BackendFederationEntryExports | undefined | Promise<BackendFederationEntryExports | undefined>;
73
+ };
@@ -0,0 +1,2 @@
1
+ export declare function normalizeExpose(expose: string): string;
2
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
@@ -0,0 +1,11 @@
1
+ export type BackendFederationManifestAdapterErrorCode = 'manifest_unavailable' | 'manifest_invalid' | 'remote_unavailable' | 'strict_effect_required' | 'timeout' | 'version_mismatch';
2
+ export declare const BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT: 'modernjs:microvertical-server-fallback';
3
+ export declare class BackendFederationManifestAdapterError extends Error {
4
+ code: BackendFederationManifestAdapterErrorCode;
5
+ readonly failureEvent: "modernjs:microvertical-server-fallback";
6
+ details?: Record<string, unknown>;
7
+ constructor(code: BackendFederationManifestAdapterErrorCode, message: string, cause?: unknown, details?: Record<string, unknown>);
8
+ }
9
+ export declare function assertManifestAdapter(condition: unknown, code: BackendFederationManifestAdapterErrorCode, message: string): asserts condition;
10
+ export declare function assertVersionValue(actual: string | undefined, expected: string | undefined, label: string, details?: Record<string, unknown>): void;
11
+ export declare function assertConsistentValue(left: string | undefined, right: string | undefined, label: string, details?: Record<string, unknown>): void;
@@ -0,0 +1,6 @@
1
+ export type { BackendFederationManifestAdapterErrorCode } from './errors';
2
+ export { BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT, BackendFederationManifestAdapterError, } from './errors';
3
+ export { loadBackendFederatedEffectApiFromManifest } from './load';
4
+ export { loadBackendFederationManifest } from './reference';
5
+ export { resolveBackendFederationRemoteFromManifest } from './remote';
6
+ export type { BackendFederationManifest, BackendFederationManifestAdapterFallback, BackendFederationManifestAdapterOptions, BackendFederationManifestFetchResponse, BackendFederationVersionBoundaryExpectation, } from './types';
@@ -0,0 +1,3 @@
1
+ import { type BackendFederatedEffectApiModule } from '../backend-federation';
2
+ import type { BackendFederationManifestAdapterOptions } from './types';
3
+ export declare function loadBackendFederatedEffectApiFromManifest(options: BackendFederationManifestAdapterOptions): Promise<BackendFederatedEffectApiModule>;
@@ -0,0 +1,18 @@
1
+ import type { BackendFederationManifest } from './types';
2
+ export declare function stringValue(value: unknown): string | undefined;
3
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
4
+ export declare function recordField(value: Record<string, unknown> | undefined, field: string): Record<string, unknown> | undefined;
5
+ export declare function resolveRemoteEntryFromMetadata(manifest: BackendFederationManifest): string | undefined;
6
+ export declare function backendFederationMetadata(manifest: BackendFederationManifest): Record<string, unknown> | undefined;
7
+ export declare function versionBoundaryMetadata(manifest: BackendFederationManifest): Record<string, unknown> | undefined;
8
+ export declare function deliveryUnitMetadata(record: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
9
+ /**
10
+ * Resolves the delivery-unit identity root for a manifest (ADR-0019 §3):
11
+ * prefers `versionBoundary.deliveryUnit`, falls back to the top-level
12
+ * `backendFederation.deliveryUnit` record. Both are additive/optional so
13
+ * legacy manifests without delivery-unit metadata continue to validate.
14
+ */
15
+ export declare function manifestDeliveryUnit(backendFederation: Record<string, unknown> | undefined, boundary: Record<string, unknown> | undefined): {
16
+ boundary: Record<string, unknown> | undefined;
17
+ top: Record<string, unknown> | undefined;
18
+ };
@@ -0,0 +1,4 @@
1
+ import type { BackendFederationManifest, BackendFederationManifestAdapterOptions } from './types';
2
+ export declare function resolveBackendFederationManifestReference(options: Pick<BackendFederationManifestAdapterOptions, 'env' | 'manifestEnv' | 'manifestPath' | 'manifestUrl'>): string | undefined;
3
+ export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number | undefined, label: string): Promise<T>;
4
+ export declare function loadBackendFederationManifest(options: Pick<BackendFederationManifestAdapterOptions, 'allowLegacyManifest' | 'env' | 'expected' | 'fetch' | 'manifest' | 'manifestEnv' | 'manifestPath' | 'manifestUrl' | 'timeoutMs'>): Promise<BackendFederationManifest>;
@@ -0,0 +1,3 @@
1
+ import { type BackendFederationRemote } from '../backend-federation';
2
+ import type { BackendFederationManifest } from './types';
3
+ export declare function resolveBackendFederationRemoteFromManifest(manifest: BackendFederationManifest, remoteOverride?: Partial<BackendFederationRemote>): BackendFederationRemote;