@bleedingdev/modern-js-plugin-bff 3.8.2-ultramodern.9 → 3.8.3-ultramodern.2

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 (348) hide show
  1. package/dist/cjs/cli/generator.js +45 -53
  2. package/dist/cjs/cli/serverGlobalVars.js +1 -1
  3. package/dist/cjs/cli.js +1 -0
  4. package/dist/cjs/loader.js +7 -18
  5. package/dist/cjs/runtime/data-platform/index.js +32 -94
  6. package/dist/cjs/runtime/effect/edge-dispatcher.js +5 -91
  7. package/dist/cjs/runtime/effect/edge.js +11 -45
  8. package/dist/cjs/runtime/effect/index.js +173 -55
  9. package/dist/cjs/runtime/effect-client/index.js +32 -166
  10. package/dist/cjs/runtime/effect-client/runtime.js +32 -70
  11. package/dist/cjs/runtime/hono/adapter.js +13 -54
  12. package/dist/cjs/server.js +2 -2
  13. package/dist/cjs/utils/client-generator/generate.js +11 -8
  14. package/dist/cjs/utils/client-generator/index.js +0 -3
  15. package/dist/cjs/utils/client-generator/type-facade.js +16 -10
  16. package/dist/cjs/utils/crossProjectApiPlugin.js +5 -1
  17. package/dist/cjs/utils/pluginGenerator.js +4 -4
  18. package/dist/cjs/utils/runtimeGenerator.js +4 -16
  19. package/dist/esm/cli/generator.mjs +45 -53
  20. package/dist/esm/cli/serverGlobalVars.mjs +1 -1
  21. package/dist/esm/cli.mjs +1 -0
  22. package/dist/esm/loader.mjs +5 -16
  23. package/dist/esm/runtime/data-platform/index.mjs +1 -7
  24. package/dist/esm/runtime/effect/edge-dispatcher.mjs +1 -38
  25. package/dist/esm/runtime/effect/edge.mjs +2 -2
  26. package/dist/esm/runtime/effect/index.mjs +16 -8
  27. package/dist/esm/runtime/effect-client/index.mjs +1 -98
  28. package/dist/esm/runtime/effect-client/runtime.mjs +1 -62
  29. package/dist/esm/runtime/hono/adapter.mjs +13 -54
  30. package/dist/esm/server.mjs +2 -2
  31. package/dist/esm/utils/client-generator/generate.mjs +11 -8
  32. package/dist/esm/utils/client-generator/index.mjs +1 -1
  33. package/dist/esm/utils/client-generator/type-facade.mjs +9 -6
  34. package/dist/esm/utils/crossProjectApiPlugin.mjs +3 -2
  35. package/dist/esm/utils/pluginGenerator.mjs +5 -5
  36. package/dist/esm/utils/runtimeGenerator.mjs +4 -16
  37. package/dist/esm-node/cli/generator.mjs +45 -53
  38. package/dist/esm-node/cli/serverGlobalVars.mjs +1 -1
  39. package/dist/esm-node/cli.mjs +1 -0
  40. package/dist/esm-node/loader.mjs +5 -16
  41. package/dist/esm-node/runtime/data-platform/index.mjs +1 -7
  42. package/dist/esm-node/runtime/effect/edge-dispatcher.mjs +1 -38
  43. package/dist/esm-node/runtime/effect/edge.mjs +2 -2
  44. package/dist/esm-node/runtime/effect/index.mjs +16 -8
  45. package/dist/esm-node/runtime/effect-client/index.mjs +1 -98
  46. package/dist/esm-node/runtime/effect-client/runtime.mjs +1 -62
  47. package/dist/esm-node/runtime/hono/adapter.mjs +13 -54
  48. package/dist/esm-node/server.mjs +2 -2
  49. package/dist/esm-node/utils/client-generator/generate.mjs +11 -8
  50. package/dist/esm-node/utils/client-generator/index.mjs +1 -1
  51. package/dist/esm-node/utils/client-generator/type-facade.mjs +9 -6
  52. package/dist/esm-node/utils/crossProjectApiPlugin.mjs +3 -2
  53. package/dist/esm-node/utils/pluginGenerator.mjs +5 -5
  54. package/dist/esm-node/utils/runtimeGenerator.mjs +4 -16
  55. package/dist/types/loader.d.ts +1 -0
  56. package/dist/types/runtime/data-platform/index.d.ts +1 -8
  57. package/dist/types/runtime/effect/edge-dispatcher.d.ts +1 -26
  58. package/dist/types/runtime/effect/edge.d.ts +2 -2
  59. package/dist/types/runtime/effect/index.d.ts +15 -7
  60. package/dist/types/runtime/effect-client/index.d.ts +1 -58
  61. package/dist/types/runtime/effect-client/runtime.d.ts +1 -5
  62. package/dist/types/runtime/hono/adapter.d.ts +1 -11
  63. package/dist/types/utils/client-generator/generate.d.ts +2 -1
  64. package/dist/types/utils/client-generator/index.d.ts +1 -1
  65. package/dist/types/utils/client-generator/type-facade.d.ts +2 -12
  66. package/dist/types/utils/crossProjectApiPlugin.d.ts +1 -0
  67. package/dist/types/utils/pluginGenerator.d.ts +2 -1
  68. package/package.json +34 -33
  69. package/dist/cjs/runtime/data-platform/batch/queue.js +0 -284
  70. package/dist/cjs/runtime/data-platform/batch/request.js +0 -98
  71. package/dist/cjs/runtime/data-platform/batch/response.js +0 -64
  72. package/dist/cjs/runtime/data-platform/batch/telemetry.js +0 -67
  73. package/dist/cjs/runtime/data-platform/batch/url.js +0 -69
  74. package/dist/cjs/runtime/data-platform/batch-transport.js +0 -59
  75. package/dist/cjs/runtime/data-platform/codec.js +0 -155
  76. package/dist/cjs/runtime/data-platform/invalidation.js +0 -61
  77. package/dist/cjs/runtime/data-platform/trace.js +0 -73
  78. package/dist/cjs/runtime/data-platform/types.js +0 -48
  79. package/dist/cjs/runtime/data-platform/validation.js +0 -178
  80. package/dist/cjs/runtime/effect/adapter/constants.js +0 -44
  81. package/dist/cjs/runtime/effect/adapter/cross-project-policy.js +0 -66
  82. package/dist/cjs/runtime/effect/adapter/entry.js +0 -100
  83. package/dist/cjs/runtime/effect/adapter/error-response.js +0 -81
  84. package/dist/cjs/runtime/effect/adapter/handler.js +0 -53
  85. package/dist/cjs/runtime/effect/adapter.js +0 -155
  86. package/dist/cjs/runtime/effect/backend-federation/entry.js +0 -99
  87. package/dist/cjs/runtime/effect/backend-federation/identity.js +0 -82
  88. package/dist/cjs/runtime/effect/backend-federation/load.js +0 -75
  89. package/dist/cjs/runtime/effect/backend-federation/plugin.js +0 -63
  90. package/dist/cjs/runtime/effect/backend-federation/remotes.js +0 -51
  91. package/dist/cjs/runtime/effect/backend-federation/runtime.js +0 -128
  92. package/dist/cjs/runtime/effect/backend-federation/types.js +0 -18
  93. package/dist/cjs/runtime/effect/backend-federation/utils.js +0 -48
  94. package/dist/cjs/runtime/effect/backend-federation-manifest/errors.js +0 -83
  95. package/dist/cjs/runtime/effect/backend-federation-manifest/index.js +0 -55
  96. package/dist/cjs/runtime/effect/backend-federation-manifest/load.js +0 -94
  97. package/dist/cjs/runtime/effect/backend-federation-manifest/metadata.js +0 -101
  98. package/dist/cjs/runtime/effect/backend-federation-manifest/reference.js +0 -120
  99. package/dist/cjs/runtime/effect/backend-federation-manifest/remote.js +0 -68
  100. package/dist/cjs/runtime/effect/backend-federation-manifest/types.js +0 -18
  101. package/dist/cjs/runtime/effect/backend-federation-manifest/validation.js +0 -109
  102. package/dist/cjs/runtime/effect/backend-federation-manifest.js +0 -62
  103. package/dist/cjs/runtime/effect/backend-federation.js +0 -65
  104. package/dist/cjs/runtime/effect/context.js +0 -60
  105. package/dist/cjs/runtime/effect/dispatch.js +0 -101
  106. package/dist/cjs/runtime/effect/edge-context.js +0 -81
  107. package/dist/cjs/runtime/effect/endpoint-contracts.js +0 -121
  108. package/dist/cjs/runtime/effect/entry-shape.js +0 -84
  109. package/dist/cjs/runtime/effect/handler/batch-handler.js +0 -161
  110. package/dist/cjs/runtime/effect/handler/batch.js +0 -159
  111. package/dist/cjs/runtime/effect/handler/definition.js +0 -102
  112. package/dist/cjs/runtime/effect/handler/envelope.js +0 -104
  113. package/dist/cjs/runtime/effect/handler/http.js +0 -107
  114. package/dist/cjs/runtime/effect/handler/openapi.js +0 -57
  115. package/dist/cjs/runtime/effect/handler/routing.js +0 -100
  116. package/dist/cjs/runtime/effect/handler/rpc.js +0 -63
  117. package/dist/cjs/runtime/effect/handler/types.js +0 -43
  118. package/dist/cjs/runtime/effect/handler.js +0 -189
  119. package/dist/cjs/runtime/effect/module.js +0 -113
  120. package/dist/cjs/runtime/effect/operation-context.js +0 -103
  121. package/dist/cjs/runtime/effect/rpcSerialization.js +0 -54
  122. package/dist/cjs/runtime/effect-client/batch.js +0 -73
  123. package/dist/cjs/runtime/effect-client/envelope.js +0 -145
  124. package/dist/cjs/runtime/effect-client/guards.js +0 -44
  125. package/dist/cjs/runtime/effect-client/request-context.js +0 -64
  126. package/dist/cjs/runtime/effect-client/request.js +0 -66
  127. package/dist/cjs/runtime/effect-client/types.js +0 -18
  128. package/dist/cjs/runtime/safe-failure.js +0 -84
  129. package/dist/cjs/utils/crossProjectServerPolicy.js +0 -98
  130. package/dist/cjs/utils/effect-client-generator/generator.js +0 -69
  131. package/dist/cjs/utils/effect-client-generator/index.js +0 -51
  132. package/dist/cjs/utils/effect-client-generator/paths.js +0 -62
  133. package/dist/cjs/utils/effect-client-generator/rendering.js +0 -220
  134. package/dist/cjs/utils/effect-client-generator/runtime.js +0 -68
  135. package/dist/cjs/utils/effect-client-generator/types.js +0 -18
  136. package/dist/cjs/utils/effectClientGenerator.js +0 -49
  137. package/dist/cjs/utils/effectSourceLoader.js +0 -312
  138. package/dist/cjs/utils/headers.js +0 -46
  139. package/dist/esm/runtime/data-platform/batch/queue.mjs +0 -246
  140. package/dist/esm/runtime/data-platform/batch/request.mjs +0 -45
  141. package/dist/esm/runtime/data-platform/batch/response.mjs +0 -23
  142. package/dist/esm/runtime/data-platform/batch/telemetry.mjs +0 -23
  143. package/dist/esm/runtime/data-platform/batch/url.mjs +0 -25
  144. package/dist/esm/runtime/data-platform/batch-transport.mjs +0 -12
  145. package/dist/esm/runtime/data-platform/codec.mjs +0 -90
  146. package/dist/esm/runtime/data-platform/invalidation.mjs +0 -20
  147. package/dist/esm/runtime/data-platform/trace.mjs +0 -29
  148. package/dist/esm/runtime/data-platform/types.mjs +0 -4
  149. package/dist/esm/runtime/data-platform/validation.mjs +0 -128
  150. package/dist/esm/runtime/effect/adapter/constants.mjs +0 -6
  151. package/dist/esm/runtime/effect/adapter/cross-project-policy.mjs +0 -28
  152. package/dist/esm/runtime/effect/adapter/entry.mjs +0 -52
  153. package/dist/esm/runtime/effect/adapter/error-response.mjs +0 -43
  154. package/dist/esm/runtime/effect/adapter/handler.mjs +0 -15
  155. package/dist/esm/runtime/effect/adapter.mjs +0 -107
  156. package/dist/esm/runtime/effect/backend-federation/entry.mjs +0 -61
  157. package/dist/esm/runtime/effect/backend-federation/identity.mjs +0 -41
  158. package/dist/esm/runtime/effect/backend-federation/load.mjs +0 -37
  159. package/dist/esm/runtime/effect/backend-federation/plugin.mjs +0 -25
  160. package/dist/esm/runtime/effect/backend-federation/remotes.mjs +0 -13
  161. package/dist/esm/runtime/effect/backend-federation/runtime.mjs +0 -90
  162. package/dist/esm/runtime/effect/backend-federation/types.mjs +0 -0
  163. package/dist/esm/runtime/effect/backend-federation/utils.mjs +0 -7
  164. package/dist/esm/runtime/effect/backend-federation-manifest/errors.mjs +0 -32
  165. package/dist/esm/runtime/effect/backend-federation-manifest/index.mjs +0 -4
  166. package/dist/esm/runtime/effect/backend-federation-manifest/load.mjs +0 -56
  167. package/dist/esm/runtime/effect/backend-federation-manifest/metadata.mjs +0 -42
  168. package/dist/esm/runtime/effect/backend-federation-manifest/reference.mjs +0 -76
  169. package/dist/esm/runtime/effect/backend-federation-manifest/remote.mjs +0 -30
  170. package/dist/esm/runtime/effect/backend-federation-manifest/types.mjs +0 -0
  171. package/dist/esm/runtime/effect/backend-federation-manifest/validation.mjs +0 -65
  172. package/dist/esm/runtime/effect/backend-federation-manifest.mjs +0 -1
  173. package/dist/esm/runtime/effect/backend-federation.mjs +0 -5
  174. package/dist/esm/runtime/effect/context.mjs +0 -13
  175. package/dist/esm/runtime/effect/dispatch.mjs +0 -63
  176. package/dist/esm/runtime/effect/edge-context.mjs +0 -34
  177. package/dist/esm/runtime/effect/endpoint-contracts.mjs +0 -68
  178. package/dist/esm/runtime/effect/entry-shape.mjs +0 -36
  179. package/dist/esm/runtime/effect/handler/batch-handler.mjs +0 -123
  180. package/dist/esm/runtime/effect/handler/batch.mjs +0 -97
  181. package/dist/esm/runtime/effect/handler/definition.mjs +0 -61
  182. package/dist/esm/runtime/effect/handler/envelope.mjs +0 -63
  183. package/dist/esm/runtime/effect/handler/http.mjs +0 -69
  184. package/dist/esm/runtime/effect/handler/openapi.mjs +0 -19
  185. package/dist/esm/runtime/effect/handler/routing.mjs +0 -50
  186. package/dist/esm/runtime/effect/handler/rpc.mjs +0 -22
  187. package/dist/esm/runtime/effect/handler/types.mjs +0 -5
  188. package/dist/esm/runtime/effect/handler.mjs +0 -14
  189. package/dist/esm/runtime/effect/module.mjs +0 -75
  190. package/dist/esm/runtime/effect/operation-context.mjs +0 -65
  191. package/dist/esm/runtime/effect/rpcSerialization.mjs +0 -16
  192. package/dist/esm/runtime/effect-client/batch.mjs +0 -35
  193. package/dist/esm/runtime/effect-client/envelope.mjs +0 -104
  194. package/dist/esm/runtime/effect-client/guards.mjs +0 -3
  195. package/dist/esm/runtime/effect-client/request-context.mjs +0 -23
  196. package/dist/esm/runtime/effect-client/request.mjs +0 -28
  197. package/dist/esm/runtime/effect-client/types.mjs +0 -0
  198. package/dist/esm/runtime/safe-failure.mjs +0 -46
  199. package/dist/esm/utils/crossProjectServerPolicy.mjs +0 -44
  200. package/dist/esm/utils/effect-client-generator/generator.mjs +0 -28
  201. package/dist/esm/utils/effect-client-generator/index.mjs +0 -3
  202. package/dist/esm/utils/effect-client-generator/paths.mjs +0 -24
  203. package/dist/esm/utils/effect-client-generator/rendering.mjs +0 -179
  204. package/dist/esm/utils/effect-client-generator/runtime.mjs +0 -27
  205. package/dist/esm/utils/effect-client-generator/types.mjs +0 -0
  206. package/dist/esm/utils/effectClientGenerator.mjs +0 -1
  207. package/dist/esm/utils/effectSourceLoader.mjs +0 -256
  208. package/dist/esm/utils/headers.mjs +0 -8
  209. package/dist/esm-node/runtime/data-platform/batch/queue.mjs +0 -247
  210. package/dist/esm-node/runtime/data-platform/batch/request.mjs +0 -46
  211. package/dist/esm-node/runtime/data-platform/batch/response.mjs +0 -24
  212. package/dist/esm-node/runtime/data-platform/batch/telemetry.mjs +0 -24
  213. package/dist/esm-node/runtime/data-platform/batch/url.mjs +0 -26
  214. package/dist/esm-node/runtime/data-platform/batch-transport.mjs +0 -13
  215. package/dist/esm-node/runtime/data-platform/codec.mjs +0 -91
  216. package/dist/esm-node/runtime/data-platform/invalidation.mjs +0 -21
  217. package/dist/esm-node/runtime/data-platform/trace.mjs +0 -30
  218. package/dist/esm-node/runtime/data-platform/types.mjs +0 -5
  219. package/dist/esm-node/runtime/data-platform/validation.mjs +0 -129
  220. package/dist/esm-node/runtime/effect/adapter/constants.mjs +0 -7
  221. package/dist/esm-node/runtime/effect/adapter/cross-project-policy.mjs +0 -29
  222. package/dist/esm-node/runtime/effect/adapter/entry.mjs +0 -53
  223. package/dist/esm-node/runtime/effect/adapter/error-response.mjs +0 -44
  224. package/dist/esm-node/runtime/effect/adapter/handler.mjs +0 -16
  225. package/dist/esm-node/runtime/effect/adapter.mjs +0 -108
  226. package/dist/esm-node/runtime/effect/backend-federation/entry.mjs +0 -62
  227. package/dist/esm-node/runtime/effect/backend-federation/identity.mjs +0 -42
  228. package/dist/esm-node/runtime/effect/backend-federation/load.mjs +0 -38
  229. package/dist/esm-node/runtime/effect/backend-federation/plugin.mjs +0 -26
  230. package/dist/esm-node/runtime/effect/backend-federation/remotes.mjs +0 -14
  231. package/dist/esm-node/runtime/effect/backend-federation/runtime.mjs +0 -91
  232. package/dist/esm-node/runtime/effect/backend-federation/types.mjs +0 -1
  233. package/dist/esm-node/runtime/effect/backend-federation/utils.mjs +0 -8
  234. package/dist/esm-node/runtime/effect/backend-federation-manifest/errors.mjs +0 -33
  235. package/dist/esm-node/runtime/effect/backend-federation-manifest/index.mjs +0 -5
  236. package/dist/esm-node/runtime/effect/backend-federation-manifest/load.mjs +0 -57
  237. package/dist/esm-node/runtime/effect/backend-federation-manifest/metadata.mjs +0 -43
  238. package/dist/esm-node/runtime/effect/backend-federation-manifest/reference.mjs +0 -77
  239. package/dist/esm-node/runtime/effect/backend-federation-manifest/remote.mjs +0 -31
  240. package/dist/esm-node/runtime/effect/backend-federation-manifest/types.mjs +0 -1
  241. package/dist/esm-node/runtime/effect/backend-federation-manifest/validation.mjs +0 -66
  242. package/dist/esm-node/runtime/effect/backend-federation-manifest.mjs +0 -2
  243. package/dist/esm-node/runtime/effect/backend-federation.mjs +0 -6
  244. package/dist/esm-node/runtime/effect/context.mjs +0 -14
  245. package/dist/esm-node/runtime/effect/dispatch.mjs +0 -64
  246. package/dist/esm-node/runtime/effect/edge-context.mjs +0 -35
  247. package/dist/esm-node/runtime/effect/endpoint-contracts.mjs +0 -69
  248. package/dist/esm-node/runtime/effect/entry-shape.mjs +0 -37
  249. package/dist/esm-node/runtime/effect/handler/batch-handler.mjs +0 -124
  250. package/dist/esm-node/runtime/effect/handler/batch.mjs +0 -98
  251. package/dist/esm-node/runtime/effect/handler/definition.mjs +0 -62
  252. package/dist/esm-node/runtime/effect/handler/envelope.mjs +0 -64
  253. package/dist/esm-node/runtime/effect/handler/http.mjs +0 -70
  254. package/dist/esm-node/runtime/effect/handler/openapi.mjs +0 -20
  255. package/dist/esm-node/runtime/effect/handler/routing.mjs +0 -51
  256. package/dist/esm-node/runtime/effect/handler/rpc.mjs +0 -23
  257. package/dist/esm-node/runtime/effect/handler/types.mjs +0 -6
  258. package/dist/esm-node/runtime/effect/handler.mjs +0 -15
  259. package/dist/esm-node/runtime/effect/module.mjs +0 -76
  260. package/dist/esm-node/runtime/effect/operation-context.mjs +0 -66
  261. package/dist/esm-node/runtime/effect/rpcSerialization.mjs +0 -17
  262. package/dist/esm-node/runtime/effect-client/batch.mjs +0 -36
  263. package/dist/esm-node/runtime/effect-client/envelope.mjs +0 -105
  264. package/dist/esm-node/runtime/effect-client/guards.mjs +0 -4
  265. package/dist/esm-node/runtime/effect-client/request-context.mjs +0 -24
  266. package/dist/esm-node/runtime/effect-client/request.mjs +0 -29
  267. package/dist/esm-node/runtime/effect-client/types.mjs +0 -1
  268. package/dist/esm-node/runtime/safe-failure.mjs +0 -47
  269. package/dist/esm-node/utils/crossProjectServerPolicy.mjs +0 -46
  270. package/dist/esm-node/utils/effect-client-generator/generator.mjs +0 -29
  271. package/dist/esm-node/utils/effect-client-generator/index.mjs +0 -4
  272. package/dist/esm-node/utils/effect-client-generator/paths.mjs +0 -25
  273. package/dist/esm-node/utils/effect-client-generator/rendering.mjs +0 -180
  274. package/dist/esm-node/utils/effect-client-generator/runtime.mjs +0 -29
  275. package/dist/esm-node/utils/effect-client-generator/types.mjs +0 -1
  276. package/dist/esm-node/utils/effectClientGenerator.mjs +0 -2
  277. package/dist/esm-node/utils/effectSourceLoader.mjs +0 -257
  278. package/dist/esm-node/utils/headers.mjs +0 -9
  279. package/dist/types/runtime/data-platform/batch/queue.d.ts +0 -8
  280. package/dist/types/runtime/data-platform/batch/request.d.ts +0 -13
  281. package/dist/types/runtime/data-platform/batch/response.d.ts +0 -3
  282. package/dist/types/runtime/data-platform/batch/telemetry.d.ts +0 -4
  283. package/dist/types/runtime/data-platform/batch/url.d.ts +0 -4
  284. package/dist/types/runtime/data-platform/batch-transport.d.ts +0 -3
  285. package/dist/types/runtime/data-platform/codec.d.ts +0 -17
  286. package/dist/types/runtime/data-platform/invalidation.d.ts +0 -8
  287. package/dist/types/runtime/data-platform/trace.d.ts +0 -4
  288. package/dist/types/runtime/data-platform/types.d.ts +0 -146
  289. package/dist/types/runtime/data-platform/validation.d.ts +0 -29
  290. package/dist/types/runtime/effect/adapter/constants.d.ts +0 -1
  291. package/dist/types/runtime/effect/adapter/cross-project-policy.d.ts +0 -4
  292. package/dist/types/runtime/effect/adapter/entry.d.ts +0 -2
  293. package/dist/types/runtime/effect/adapter/error-response.d.ts +0 -2
  294. package/dist/types/runtime/effect/adapter/handler.d.ts +0 -7
  295. package/dist/types/runtime/effect/adapter.d.ts +0 -22
  296. package/dist/types/runtime/effect/backend-federation/entry.d.ts +0 -2
  297. package/dist/types/runtime/effect/backend-federation/identity.d.ts +0 -30
  298. package/dist/types/runtime/effect/backend-federation/load.d.ts +0 -13
  299. package/dist/types/runtime/effect/backend-federation/plugin.d.ts +0 -3
  300. package/dist/types/runtime/effect/backend-federation/remotes.d.ts +0 -2
  301. package/dist/types/runtime/effect/backend-federation/runtime.d.ts +0 -3
  302. package/dist/types/runtime/effect/backend-federation/types.d.ts +0 -73
  303. package/dist/types/runtime/effect/backend-federation/utils.d.ts +0 -2
  304. package/dist/types/runtime/effect/backend-federation-manifest/errors.d.ts +0 -11
  305. package/dist/types/runtime/effect/backend-federation-manifest/index.d.ts +0 -6
  306. package/dist/types/runtime/effect/backend-federation-manifest/load.d.ts +0 -3
  307. package/dist/types/runtime/effect/backend-federation-manifest/metadata.d.ts +0 -18
  308. package/dist/types/runtime/effect/backend-federation-manifest/reference.d.ts +0 -4
  309. package/dist/types/runtime/effect/backend-federation-manifest/remote.d.ts +0 -3
  310. package/dist/types/runtime/effect/backend-federation-manifest/types.d.ts +0 -51
  311. package/dist/types/runtime/effect/backend-federation-manifest/validation.d.ts +0 -5
  312. package/dist/types/runtime/effect/backend-federation-manifest.d.ts +0 -1
  313. package/dist/types/runtime/effect/backend-federation.d.ts +0 -7
  314. package/dist/types/runtime/effect/context.d.ts +0 -5
  315. package/dist/types/runtime/effect/dispatch.d.ts +0 -13
  316. package/dist/types/runtime/effect/edge-context.d.ts +0 -5
  317. package/dist/types/runtime/effect/endpoint-contracts.d.ts +0 -66
  318. package/dist/types/runtime/effect/entry-shape.d.ts +0 -31
  319. package/dist/types/runtime/effect/handler/batch-handler.d.ts +0 -11
  320. package/dist/types/runtime/effect/handler/batch.d.ts +0 -13
  321. package/dist/types/runtime/effect/handler/definition.d.ts +0 -7
  322. package/dist/types/runtime/effect/handler/envelope.d.ts +0 -13
  323. package/dist/types/runtime/effect/handler/http.d.ts +0 -15
  324. package/dist/types/runtime/effect/handler/openapi.d.ts +0 -4
  325. package/dist/types/runtime/effect/handler/routing.d.ts +0 -5
  326. package/dist/types/runtime/effect/handler/rpc.d.ts +0 -7
  327. package/dist/types/runtime/effect/handler/types.d.ts +0 -153
  328. package/dist/types/runtime/effect/handler.d.ts +0 -14
  329. package/dist/types/runtime/effect/module.d.ts +0 -36
  330. package/dist/types/runtime/effect/operation-context.d.ts +0 -10
  331. package/dist/types/runtime/effect/rpcSerialization.d.ts +0 -3
  332. package/dist/types/runtime/effect-client/batch.d.ts +0 -2
  333. package/dist/types/runtime/effect-client/envelope.d.ts +0 -15
  334. package/dist/types/runtime/effect-client/guards.d.ts +0 -2
  335. package/dist/types/runtime/effect-client/request-context.d.ts +0 -3
  336. package/dist/types/runtime/effect-client/request.d.ts +0 -1
  337. package/dist/types/runtime/effect-client/types.d.ts +0 -68
  338. package/dist/types/runtime/safe-failure.d.ts +0 -1
  339. package/dist/types/utils/crossProjectServerPolicy.d.ts +0 -36
  340. package/dist/types/utils/effect-client-generator/generator.d.ts +0 -10
  341. package/dist/types/utils/effect-client-generator/index.d.ts +0 -4
  342. package/dist/types/utils/effect-client-generator/paths.d.ts +0 -5
  343. package/dist/types/utils/effect-client-generator/rendering.d.ts +0 -4
  344. package/dist/types/utils/effect-client-generator/runtime.d.ts +0 -12
  345. package/dist/types/utils/effect-client-generator/types.d.ts +0 -27
  346. package/dist/types/utils/effectClientGenerator.d.ts +0 -2
  347. package/dist/types/utils/effectSourceLoader.d.ts +0 -25
  348. package/dist/types/utils/headers.d.ts +0 -1
@@ -3,33 +3,11 @@ import { ApiRouter, buildOperationContractMap, deriveOperationVersion } from "@m
3
3
  import { compile } from "@modern-js/server-utils";
4
4
  import { API_DIR, SHARED_DIR, fs, resolveServerTsconfig, upath } from "@modern-js/utils";
5
5
  import clientGenerator from "../utils/clientGenerator.mjs";
6
- import { bundleEffectEntryForNode } from "../utils/effectSourceLoader.mjs";
7
6
  import pluginGenerator from "../utils/pluginGenerator.mjs";
8
7
  import runtimeGenerator from "../utils/runtimeGenerator.mjs";
9
8
  import { getPrimaryPrefix } from "./prefix.mjs";
10
9
  import { serializeServerGlobalVars, transformServerGlobalVars } from "./serverGlobalVars.mjs";
11
10
  const RUNTIME_CREATE_REQUEST = '@modern-js/plugin-bff/client';
12
- const effectEntryExtensions = [
13
- '.js',
14
- '.jsx',
15
- '.ts',
16
- '.tsx',
17
- '.mjs',
18
- '.mts',
19
- '.cjs',
20
- '.cts'
21
- ];
22
- function resolveEffectSourceEntry(appDirectory, apiDirectory, configuredEntry) {
23
- const entry = void 0 !== configuredEntry && configuredEntry.length > 0 ? upath.isAbsolute(configuredEntry) ? configuredEntry : upath.resolve(appDirectory, configuredEntry) : upath.resolve(apiDirectory, 'index');
24
- return upath.extname(entry).length > 0 ? entry : effectEntryExtensions.map((extension)=>`${entry}${extension}`).find((candidate)=>fs.existsSync(candidate));
25
- }
26
- function resolveBuiltEffectEntry(appDirectory, distDirectory, sourceEntry) {
27
- if (void 0 === sourceEntry || 0 === sourceEntry.length) return;
28
- const relativeEntry = upath.relative(appDirectory, sourceEntry);
29
- if ('..' === relativeEntry || relativeEntry.startsWith(`..${upath.sep}`)) throw new Error(`Effect BFF entry must be inside the application directory: ${sourceEntry}`);
30
- const builtEntry = upath.resolve(distDirectory, relativeEntry).replace(/\.(?:[cm]?ts|tsx|jsx)$/u, '.js');
31
- return fs.existsSync(builtEntry) ? builtEntry : void 0;
32
- }
33
11
  const createBffGenerator = (api)=>{
34
12
  const compileApi = ()=>Promise.resolve().then(()=>{
35
13
  const { appDirectory, distDirectory, apiDirectory, bffRuntimeFramework, sharedDirectory, moduleType } = api.getAppContext();
@@ -57,20 +35,20 @@ const createBffGenerator = (api)=>{
57
35
  tsconfigPath,
58
36
  moduleType,
59
37
  throwErrorInsteadOfExit: true
60
- }).then(()=>transformServerGlobalVars(sourceDirs.map((sourceDir)=>upath.resolve(distDir, upath.relative(appDirectory, sourceDir))), serializedGlobalVars)).then(()=>{
38
+ }).then(()=>transformServerGlobalVars(sourceDirs.map((sourceDir)=>upath.resolve(distDir, upath.relative(appDirectory, sourceDir))), serializedGlobalVars)).then(async ()=>{
61
39
  if ('effect' !== bffRuntimeFramework) return;
62
- const sourceEntry = resolveEffectSourceEntry(appDirectory, apiDir, modernConfig.bff?.effect?.entry);
63
- const builtEntry = resolveBuiltEffectEntry(appDirectory, distDir, sourceEntry);
64
- if (void 0 === builtEntry || 0 === builtEntry.length) throw new Error(`Effect BFF entry was not emitted into ${distDir}: ${sourceEntry ?? upath.resolve(apiDir, 'index')}`);
65
- return bundleEffectEntryForNode({
40
+ const { bundleBuiltEffectEntryForNode } = await import("@modern-js/plugin-bff-extensions/client-generator");
41
+ return bundleBuiltEffectEntryForNode({
66
42
  appDir: appDirectory,
67
- entryPath: builtEntry,
43
+ apiDir,
44
+ distDir,
45
+ effectEntry: modernConfig.bff?.effect?.entry,
68
46
  format: 'module' === moduleType ? 'esm' : 'cjs'
69
47
  });
70
48
  });
71
49
  });
72
50
  });
73
- const generate = ()=>Promise.resolve().then(()=>{
51
+ const generate = ()=>Promise.resolve().then(async ()=>{
74
52
  const { appDirectory, apiDirectory, lambdaDirectory, port, bffRuntimeFramework, packageName } = api.getAppContext();
75
53
  const modernConfig = api.getNormalizedConfig();
76
54
  const relativeDistPath = modernConfig?.output?.distPath?.root || 'dist';
@@ -88,43 +66,57 @@ const createBffGenerator = (api)=>{
88
66
  const lambdaDir = apiRouter.getLambdaDir();
89
67
  const existLambda = apiRouter.isExistLambda();
90
68
  const packageJson = fs.readJSONSync(upath.resolve(appDirectory, 'package.json'));
91
- const requestId = packageJson.name || packageName;
92
- const operationContractsPromise = existLambda ? apiRouter.getApiHandlers().then((handlers)=>buildOperationContractMap({
69
+ const requestId = bff?.requestId || packageJson.name || packageName || 'default';
70
+ const operationContractsPromise = 'effect' !== bffRuntimeFramework && existLambda ? apiRouter.getApiHandlers().then((handlers)=>buildOperationContractMap({
93
71
  handlers,
94
72
  requestId,
95
73
  operationVersion: deriveOperationVersion(packageJson.version)
96
74
  })) : Promise.resolve({});
97
- return operationContractsPromise.then((operationContracts)=>{
98
- const runtime = bff?.runtimeCreateRequest || RUNTIME_CREATE_REQUEST;
99
- const relativeApiPath = upath.relative(appDirectory, apiDirectory);
100
- const relativeLambdaPath = upath.relative(appDirectory, lambdaDir);
101
- const sourceEffectEntry = 'effect' === bffRuntimeFramework ? resolveEffectSourceEntry(appDirectory, apiDirectory, bff?.effect?.entry) : void 0;
102
- const relativeEffectEntry = void 0 !== sourceEffectEntry && sourceEffectEntry.length > 0 ? upath.relative(appDirectory, sourceEffectEntry).replace(/\.(?:[cm]?ts|tsx|jsx)$/u, '.js') : '';
75
+ const runtime = bff?.runtimeCreateRequest || RUNTIME_CREATE_REQUEST;
76
+ const relativeApiPath = upath.relative(appDirectory, apiDirectory);
77
+ const relativeLambdaPath = upath.relative(appDirectory, lambdaDir);
78
+ const { sourceEffectEntry, relativeEffectEntry } = 'effect' === bffRuntimeFramework ? (await import("@modern-js/plugin-bff-extensions/client-generator")).resolveEffectEntryPaths({
79
+ appDir: appDirectory,
80
+ apiDir: apiDirectory,
81
+ effectEntry: bff?.effect?.entry
82
+ }) : {
83
+ sourceEffectEntry: void 0,
84
+ relativeEffectEntry: ''
85
+ };
86
+ const clientGenerationPromise = clientGenerator({
87
+ prefix,
88
+ appDir: appDirectory,
89
+ apiDir: apiDirectory,
90
+ lambdaDir,
91
+ existLambda,
92
+ port,
93
+ requestId,
94
+ requestCreator: bff?.requestCreator,
95
+ httpMethodDecider,
96
+ relativeDistPath,
97
+ relativeApiPath,
98
+ apiFiles: apiRouter.getApiFiles(),
99
+ bffRuntimeFramework,
100
+ effectEntry: bff?.effect?.entry,
101
+ effectDataPlatformBatch: bff?.effect?.dataPlatform?.batch
102
+ });
103
+ return Promise.all([
104
+ operationContractsPromise,
105
+ clientGenerationPromise
106
+ ]).then(([lambdaContracts, generatedEffectClient])=>{
107
+ if ('effect' === bffRuntimeFramework && null === generatedEffectClient) throw new Error(`Effect cross-project client generation failed for ${sourceEffectEntry ?? apiDirectory}.`);
108
+ const operationContracts = 'effect' === bffRuntimeFramework ? generatedEffectClient?.operationContracts ?? {} : lambdaContracts;
103
109
  return pluginGenerator({
104
110
  prefix,
105
111
  appDirectory,
112
+ requestId,
106
113
  relativeDistPath,
107
114
  relativeApiPath,
108
115
  relativeLambdaPath,
109
116
  runtimeFramework: 'hono' === bffRuntimeFramework ? 'hono' : 'effect',
110
117
  relativeEffectEntry,
111
118
  operationContracts
112
- }).then(()=>clientGenerator({
113
- prefix,
114
- appDir: appDirectory,
115
- apiDir: apiDirectory,
116
- lambdaDir,
117
- existLambda,
118
- port,
119
- requestCreator: bff?.requestCreator,
120
- httpMethodDecider,
121
- relativeDistPath,
122
- relativeApiPath,
123
- apiFiles: apiRouter.getApiFiles(),
124
- bffRuntimeFramework,
125
- effectEntry: bff?.effect?.entry,
126
- effectDataPlatformBatch: bff?.effect?.dataPlatform?.batch
127
- })).then(()=>runtimeGenerator({
119
+ }).then(()=>runtimeGenerator({
128
120
  runtime,
129
121
  appDirectory,
130
122
  relativeDistPath
@@ -54,7 +54,7 @@ const transformServerGlobalVars = (outputDirectories, globalVars)=>Promise.resol
54
54
  syntax: "ecmascript"
55
55
  },
56
56
  preserveAllComments: true,
57
- target: 'es2022',
57
+ target: 'es2024',
58
58
  transform: {
59
59
  optimizer: {
60
60
  globals: {
@@ -62,6 +62,7 @@ const bffPlugin = ()=>({
62
62
  lambdaDir,
63
63
  existLambda,
64
64
  port,
65
+ requestId: bff?.requestId,
65
66
  target: name,
66
67
  requestCreator: bff?.requestCreator,
67
68
  httpMethodDecider,
@@ -1,9 +1,9 @@
1
1
  import __rslib_shim_module__ from "node:module";
2
2
  const require = /*#__PURE__*/ __rslib_shim_module__.createRequire(/*#__PURE__*/ (()=>import.meta.url)());
3
3
  import { generateClient } from "@modern-js/bff-core";
4
+ import { generateEffectClientCode, generateEffectWorkerRuntimeWrapper, resolveEffectEntryFile } from "@modern-js/plugin-bff-extensions/effect-source-loader";
4
5
  import { logger } from "@modern-js/utils";
5
6
  import path from "path";
6
- import { generateEffectClientCode, resolveEffectEntryFile } from "./utils/effectClientGenerator.mjs";
7
7
  const EFFECT_BFF_WORKER_RUNTIME_QUERY = 'modern-bff-runtime';
8
8
  const EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY = 'modern-bff-runtime-source';
9
9
  const createErrorModule = (message)=>`throw new Error(${JSON.stringify(message)});`;
@@ -17,7 +17,7 @@ async function transformEffectRuntimeSource(source, filename) {
17
17
  syntax: "typescript",
18
18
  tsx: filename.endsWith('.tsx') || filename.endsWith('.jsx')
19
19
  },
20
- target: 'es2022'
20
+ target: 'es2024'
21
21
  },
22
22
  module: {
23
23
  type: 'es6'
@@ -25,18 +25,6 @@ async function transformEffectRuntimeSource(source, filename) {
25
25
  });
26
26
  return result.code;
27
27
  }
28
- function createEffectWorkerRuntimeWrapper(resourcePath) {
29
- const sourceRequest = `${resourcePath}?${EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY}`;
30
- return `import * as effectBffModule from ${JSON.stringify(sourceRequest)};
31
- import { createEffectBffEdgeDispatcher } from '@modern-js/plugin-bff/effect-edge/dispatcher';
32
-
33
- export const __modern_create_effect_bff_dispatcher = options =>
34
- createEffectBffEdgeDispatcher({
35
- ...options,
36
- module: effectBffModule,
37
- });
38
- `;
39
- }
40
28
  async function loader(source) {
41
29
  this.cacheable();
42
30
  const { resourcePath } = this;
@@ -54,7 +42,7 @@ async function loader(source) {
54
42
  callback(void 0, code);
55
43
  return;
56
44
  }
57
- if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && path.resolve(effectEntryFile) === path.resolve(resourcePath) && resourceQueries.has(EFFECT_BFF_WORKER_RUNTIME_QUERY)) return void callback(void 0, createEffectWorkerRuntimeWrapper(resourcePath));
45
+ if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && path.resolve(effectEntryFile) === path.resolve(resourcePath) && resourceQueries.has(EFFECT_BFF_WORKER_RUNTIME_QUERY)) return void callback(void 0, await generateEffectWorkerRuntimeWrapper(this, draftOptions, resourcePath));
58
46
  if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && path.resolve(effectEntryFile) === path.resolve(resourcePath)) {
59
47
  const code = await generateEffectClientCode({
60
48
  appDir: draftOptions.appDir,
@@ -63,13 +51,14 @@ async function loader(source) {
63
51
  prefix: Array.isArray(draftOptions.prefix) ? draftOptions.prefix[0] : draftOptions.prefix,
64
52
  port: Number(draftOptions.port),
65
53
  target: draftOptions.target,
54
+ requestId: draftOptions.requestId,
66
55
  requestCreator: draftOptions.requestCreator,
67
56
  httpMethodDecider: draftOptions.httpMethodDecider,
68
57
  dataPlatformBatch: draftOptions.effectDataPlatformBatch,
69
58
  onDependency: (dependency)=>this.addDependency(dependency)
70
59
  });
71
60
  if (code) return void callback(void 0, code);
72
- callback(void 0, createErrorModule(`Failed to generate Effect client for ${resourcePath}`));
61
+ callback(new Error(`Failed to generate Effect client for ${resourcePath}`));
73
62
  return;
74
63
  }
75
64
  const warning = `The file ${resourcePath} is not allowed to be imported in src directory, only API definition files are allowed.`;
@@ -1,8 +1,2 @@
1
1
  import "node:module";
2
- export { measureTextBytes, normalizeMethod } from "./batch/request.mjs";
3
- export { DATA_BATCH_TRANSPORT_OTEL_EVENT, createDataBatchTransport, createDataBatchTransportTelemetryAttributes, emitDataBatchTransportEvent } from "./batch-transport.mjs";
4
- export { buildQueryKey, buildScopeKey, createOperationId, decodeRequestEnvelopeHeader, encodeRequestEnvelopeHeader, isPlainObject, normalizeOrigin, stableStringify } from "./codec.mjs";
5
- export { createInvalidationEvent, shouldApplyInvalidation } from "./invalidation.mjs";
6
- export { deriveChildTraceContext, formatTraceparentHeader, parseTraceparentHeader } from "./trace.mjs";
7
- export { DEFAULT_DATA_BATCH_ENDPOINT, DEFAULT_DATA_BATCH_HEADER, DEFAULT_DATA_ENVELOPE_HEADER } from "./types.mjs";
8
- export { createHydrationEnvelope, createRequestEnvelope, validateHydrationEnvelope, validateRequestEnvelope, validateSelectionPlan } from "./validation.mjs";
2
+ export * from "@modern-js/bff-effect/data-platform";
@@ -1,39 +1,2 @@
1
1
  import "node:module";
2
- import { dispatchEffectBffRequestWithContext } from "./dispatch.mjs";
3
- import { runWithEffectContext, useEffectContext, useOperationContext } from "./edge-context.mjs";
4
- import { resolveEffectBffModuleHandler } from "./module.mjs";
5
- export * from "./handler.mjs";
6
- async function dispatchEffectBffRequest(handler, request, options = {}) {
7
- return dispatchEffectBffRequestWithContext(handler, request, {
8
- ...options,
9
- runWithEffectContext: runWithEffectContext
10
- });
11
- }
12
- async function createEffectBffEdgeDispatcher(options) {
13
- const loaded = await resolveEffectBffModuleHandler(options.module, {
14
- openapi: options.openapi,
15
- dataPlatform: options.dataPlatform,
16
- onWarning: options.onWarning
17
- });
18
- if (!loaded) throw new Error('[BFF][Effect] Invalid Effect edge module. Export defineEffectBff(...) or a { api, layer } HttpApi module.');
19
- return {
20
- dispatch: (request, dispatchOptions = {})=>dispatchEffectBffRequest(loaded.handler, request, {
21
- ...dispatchOptions,
22
- prefix: options.prefix,
23
- onError: options.onError
24
- }),
25
- dispose: async ()=>{
26
- await loaded.dispose?.();
27
- }
28
- };
29
- }
30
- const createEffectBffTestHandler = createEffectBffEdgeHandler;
31
- async function createEffectBffEdgeHandler(options) {
32
- const dispatcher = await createEffectBffEdgeDispatcher(options);
33
- return {
34
- handler: dispatcher.dispatch,
35
- dispose: dispatcher.dispose
36
- };
37
- }
38
- export { createEffectOperationContext } from "./operation-context.mjs";
39
- export { createEffectBffEdgeDispatcher, createEffectBffEdgeHandler, createEffectBffTestHandler, dispatchEffectBffRequest, runWithEffectContext, useEffectContext, useOperationContext };
2
+ export * from "@modern-js/bff-effect/effect-edge";
@@ -1,3 +1,3 @@
1
1
  import "node:module";
2
- export * from "./edge-dispatcher.mjs";
3
- export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION, createBackendFederationLoadEntryPlugin, createBackendFederationRuntime, loadBackendFederatedEffectApi, validateExpectedBackendFederationIdentity } from "./backend-federation.mjs";
2
+ export * from "@modern-js/bff-effect/effect-edge";
3
+ export * from "@modern-js/plugin-bff-extensions/backend-federation/edge";
@@ -1,9 +1,17 @@
1
1
  import "node:module";
2
- import * as __rspack_external__effect_opentelemetry_66324c75 from "@effect/opentelemetry";
3
- export * from "./backend-federation.mjs";
4
- export * from "./handler.mjs";
5
- export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION, createBackendFederationLoadEntryPlugin, createBackendFederationRuntime, loadBackendFederatedEffectApi } from "./backend-federation.mjs";
6
- export { BackendFederationManifestAdapterError, loadBackendFederatedEffectApiFromManifest, loadBackendFederationManifest, resolveBackendFederationRemoteFromManifest } from "./backend-federation-manifest.mjs";
7
- export { createEffectOperationContext, runWithEffectContext, useEffectContext, useOperationContext } from "./context.mjs";
8
- export { createEffectBffEdgeHandler, createEffectBffTestHandler, dispatchEffectBffRequest } from "./edge.mjs";
9
- export { __rspack_external__effect_opentelemetry_66324c75 as OpenTelemetry };
2
+ import * as __rspack_external_effect_Config_76cfa59d from "effect/Config";
3
+ import * as __rspack_external_effect_Effect_41060786 from "effect/Effect";
4
+ import * as __rspack_external_effect_Schema_6065f72d from "effect/Schema";
5
+ import * as __rspack_external_effect_Option_0498e63a from "effect/Option";
6
+ import * as __rspack_external_effect_Layer_69c46453 from "effect/Layer";
7
+ export * from "effect/unstable/http";
8
+ export * from "effect/unstable/httpapi";
9
+ export * from "effect/unstable/rpc";
10
+ export { OpenTelemetry, createEffectBffEdgeHandler, createEffectBffTestHandler, createEffectOperationContext, createHttpApiHandler, defineEffectBff, defineEffectRpcBff, dispatchEffectBffRequest, runWithEffectContext, useEffectContext, useOperationContext } from "@modern-js/bff-effect/effect";
11
+ export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION, createBackendFederationLoadEntryPlugin, createBackendFederationRuntime, validateExpectedBackendFederationIdentity } from "@modern-js/plugin-bff-extensions/backend-federation";
12
+ export { loadBackendFederatedEffectApi } from "@modern-js/plugin-bff-extensions/backend-federation/node";
13
+ export { BackendFederationManifestAdapterError, loadBackendFederationManifest, resolveBackendFederationRemoteFromManifest } from "@modern-js/plugin-bff-extensions/backend-federation-manifest";
14
+ export { loadBackendFederatedEffectApiFromManifest } from "@modern-js/plugin-bff-extensions/backend-federation-manifest/node";
15
+ export { HttpTraceContext } from "effect/unstable/http";
16
+ export { HttpApiBuilder } from "effect/unstable/httpapi";
17
+ export { __rspack_external_effect_Config_76cfa59d as Config, __rspack_external_effect_Effect_41060786 as Effect, __rspack_external_effect_Layer_69c46453 as Layer, __rspack_external_effect_Option_0498e63a as Option, __rspack_external_effect_Schema_6065f72d as Schema };
@@ -1,99 +1,2 @@
1
1
  import "node:module";
2
- import { createRequestContextHeaders } from "@modern-js/create-request";
3
- import * as __rspack_external_effect_Effect_41060786 from "effect/Effect";
4
- import * as __rspack_external_effect_Layer_69c46453 from "effect/Layer";
5
- import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http";
6
- import { HttpApi, HttpApiClient, HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
7
- import { Rpc, RpcClient, RpcGroup, RpcSchema, RpcSerialization } from "effect/unstable/rpc";
8
- import { getRpcSerializationLayer } from "../effect/rpcSerialization.mjs";
9
- import * as __rspack_external_effect_Schema_6065f72d from "effect/Schema";
10
- import * as __rspack_external_effect_unstable_http_HttpClientError_4b9eaee6 from "effect/unstable/http/HttpClientError";
11
- import * as __rspack_external_effect_Data_2b3f4efb from "effect/Data";
12
- import * as __rspack_external_effect_Exit_1ca64b33 from "effect/Exit";
13
- import * as __rspack_external_effect_ManagedRuntime_bfe218e3 from "effect/ManagedRuntime";
14
- import * as __rspack_external_effect_Scope_f87b0bd6 from "effect/Scope";
15
- class EffectRpcClientError extends __rspack_external_effect_Data_2b3f4efb.TaggedError('EffectRpcClientError') {
16
- }
17
- function isRecord(value) {
18
- return 'object' == typeof value && null !== value && !Array.isArray(value);
19
- }
20
- function applySelection(value, selection) {
21
- if (true === selection || void 0 === selection) return value;
22
- if (Array.isArray(value)) return value.map((item)=>applySelection(item, selection));
23
- if (!isRecord(value) || !isRecord(selection)) return value;
24
- const masked = {};
25
- for (const key of Object.keys(selection)){
26
- const selected = selection[key];
27
- if (void 0 !== selected && key in value && (true === selected || isRecord(selected))) masked[key] = applySelection(value[key], selected);
28
- }
29
- return masked;
30
- }
31
- function view() {
32
- return (selection)=>selection;
33
- }
34
- function mask(value, selection) {
35
- return applySelection(value, selection);
36
- }
37
- function runEffectView(request, selection) {
38
- return new Promise((resolve, reject)=>{
39
- request.then((value)=>resolve(mask(value, selection)), (reason)=>reject(reason));
40
- });
41
- }
42
- function makeEffectHttpApiClient(api, options) {
43
- const requestContextHeaders = createRequestContextHeaders(options?.requestContext);
44
- const transformClient = (client)=>{
45
- const contextClient = 0 === Object.keys(requestContextHeaders).length ? client : client.pipe(HttpClient.mapRequest((request)=>{
46
- let nextRequest = request;
47
- for (const [header, value] of Object.entries(requestContextHeaders))if (void 0 === nextRequest.headers[header.toLowerCase()]) nextRequest = HttpClientRequest.setHeader(nextRequest, header, value);
48
- return nextRequest;
49
- }));
50
- return 'function' == typeof options?.transformClient ? options.transformClient(contextClient) : contextClient;
51
- };
52
- return HttpApiClient.make(api, {
53
- baseUrl: options?.baseUrl,
54
- transformClient,
55
- transformResponse: options?.transformResponse
56
- }).pipe(__rspack_external_effect_Effect_41060786.provide(FetchHttpClient.layer));
57
- }
58
- function makeEffectRpcClient(group, options) {
59
- const protocolLayer = __rspack_external_effect_Layer_69c46453.provide(RpcClient.layerProtocolHttp({
60
- url: options.url
61
- }), __rspack_external_effect_Layer_69c46453.mergeAll(getRpcSerializationLayer(options.serialization), FetchHttpClient.layer));
62
- const middlewareLayer = options.middlewareLayer ?? __rspack_external_effect_Layer_69c46453.empty;
63
- const runtimeLayer = __rspack_external_effect_Layer_69c46453.mergeAll(protocolLayer, middlewareLayer);
64
- return __rspack_external_effect_Effect_41060786.tryPromise({
65
- try: async ()=>{
66
- const runtime = __rspack_external_effect_ManagedRuntime_bfe218e3.make(runtimeLayer);
67
- const scope = await runtime.runPromise(__rspack_external_effect_Scope_f87b0bd6.make());
68
- try {
69
- const client = await runtime.runPromise(RpcClient.make(group, {
70
- flatten: options.flatten
71
- }).pipe(__rspack_external_effect_Effect_41060786.provideService(__rspack_external_effect_Scope_f87b0bd6.Scope, scope)));
72
- let disposed = false;
73
- const clientWithDispose = Object.assign(client, {
74
- dispose: async ()=>{
75
- if (!disposed) {
76
- disposed = true;
77
- await runtime.runPromise(__rspack_external_effect_Scope_f87b0bd6.close(scope, __rspack_external_effect_Exit_1ca64b33["void"]));
78
- }
79
- await runtime.dispose();
80
- }
81
- });
82
- return clientWithDispose;
83
- } catch (error) {
84
- try {
85
- await runtime.runPromise(__rspack_external_effect_Scope_f87b0bd6.close(scope, __rspack_external_effect_Exit_1ca64b33["void"]));
86
- } catch {}
87
- try {
88
- await runtime.dispose();
89
- } catch {}
90
- throw error;
91
- }
92
- },
93
- catch: (error)=>new EffectRpcClientError({
94
- cause: error
95
- })
96
- });
97
- }
98
- const runEffectRequest = __rspack_external_effect_Effect_41060786.runPromise;
99
- export { EffectRpcClientError, HttpApi, HttpApiClient, HttpApiEndpoint, HttpApiGroup, HttpApiSchema, Rpc, RpcClient, RpcGroup, RpcSchema, RpcSerialization, __rspack_external_effect_Effect_41060786 as Effect, __rspack_external_effect_Layer_69c46453 as Layer, __rspack_external_effect_Schema_6065f72d as Schema, __rspack_external_effect_unstable_http_HttpClientError_4b9eaee6 as HttpClientError, makeEffectHttpApiClient, makeEffectRpcClient, mask, runEffectRequest, runEffectView, view };
2
+ export * from "@modern-js/bff-effect/effect-client";
@@ -1,63 +1,2 @@
1
1
  import "node:module";
2
- import { configureGeneratedEffectClientRuntime } from "./batch.mjs";
3
- import { prepareEffectRequest } from "./envelope.mjs";
4
- import { createEffectRequestContext as external_request_context_mjs_createEffectRequestContext } from "./request-context.mjs";
5
- const createGeneratedEffectClient = (manifest, config, requestRuntime)=>{
6
- const createRequest = requestRuntime.createRequest;
7
- const configureRequest = 'function' == typeof requestRuntime.configure ? requestRuntime.configure : void 0;
8
- const createRequestContextHeaders = 'function' == typeof requestRuntime.createRequestContextHeaders ? requestRuntime.createRequestContextHeaders : void 0;
9
- const httpMethodDecider = config.httpMethodDecider || 'functionName';
10
- const port = config.useEnvPort && "u" > typeof process && process.env && process.env.PORT ? process.env.PORT : config.port;
11
- configureGeneratedEffectClientRuntime(config, configureRequest);
12
- const createEffectRequestContext = (requestContext)=>external_request_context_mjs_createEffectRequestContext(createRequestContextHeaders, requestContext);
13
- const client = {};
14
- const operationManifest = {};
15
- for (const endpoint of manifest.endpoints){
16
- const operationId = `${endpoint.method}:${endpoint.routePath}`;
17
- const operation = {
18
- appNamespace: config.appNamespace,
19
- apiId: endpoint.apiId,
20
- group: endpoint.group,
21
- endpoint: endpoint.endpoint,
22
- operationId,
23
- routePath: endpoint.routePath,
24
- method: endpoint.method,
25
- operationVersion: endpoint.operationVersion,
26
- schemaHash: endpoint.schemaHash,
27
- version: endpoint.operationVersion
28
- };
29
- const sender = createRequest({
30
- path: endpoint.routePath,
31
- method: endpoint.method,
32
- port,
33
- operationContext: {
34
- operationId,
35
- routePath: endpoint.routePath,
36
- method: endpoint.method,
37
- schemaHash: endpoint.schemaHash,
38
- operationVersion: endpoint.operationVersion
39
- },
40
- httpMethodDecider,
41
- ...config.requestId ? {
42
- requestId: config.requestId
43
- } : {}
44
- });
45
- const call = (request = {})=>sender(prepareEffectRequest({
46
- endpoint,
47
- operation,
48
- request,
49
- config,
50
- createEffectRequestContext
51
- }));
52
- client[endpoint.group] ??= {};
53
- client[endpoint.group][endpoint.endpoint] = call;
54
- operationManifest[endpoint.group] ??= {};
55
- operationManifest[endpoint.group][endpoint.endpoint] = operation;
56
- }
57
- return {
58
- client,
59
- operationManifest,
60
- createEffectRequestContext
61
- };
62
- };
63
- export { createGeneratedEffectClient };
2
+ export * from "@modern-js/bff-effect/effect-client-runtime";
@@ -1,8 +1,8 @@
1
1
  import "node:module";
2
+ import { resolveAdapterCrossProjectPolicy } from "@modern-js/plugin-bff-extensions/cross-project-policy";
3
+ import { bindHonoRouteHandlers } from "@modern-js/plugin-bff-extensions/hono";
2
4
  import { logger } from "@modern-js/utils";
3
5
  import createHonoRoutes from "../../utils/createHonoRoutes.mjs";
4
- import { checkCrossProjectPolicyResponse, resolveAdapterCrossProjectPolicy } from "../../utils/crossProjectServerPolicy.mjs";
5
- import { createSafeFailureResponse } from "../safe-failure.mjs";
6
6
  const before = [
7
7
  'custom-server-hook',
8
8
  'custom-server-middleware',
@@ -12,78 +12,37 @@ class HonoAdapter {
12
12
  constructor(api){
13
13
  this.apiMiddleware = [];
14
14
  this.isHono = true;
15
- this.prefix = '/api';
16
15
  this.setHandlers = async ()=>{
17
16
  if (!this.isHono) return;
18
17
  const { apiHandlerInfos } = this.api.getServerContext();
19
- const honoHandlers = createHonoRoutes(apiHandlerInfos);
18
+ const handlers = apiHandlerInfos ?? [];
19
+ const honoHandlers = createHonoRoutes(handlers);
20
+ const policy = resolveAdapterCrossProjectPolicy(this.api, handlers);
20
21
  this.apiMiddleware = honoHandlers.map(({ path, method, handler })=>({
21
22
  name: 'hono-bff-api',
22
23
  path,
23
24
  method,
24
- handler: this.withErrorBoundary(handler),
25
+ handler: bindHonoRouteHandlers({
26
+ handler,
27
+ policy,
28
+ routePath: path,
29
+ onError: this.api.getServerConfig()?.onError,
30
+ reportError: (error)=>logger.error(error)
31
+ }),
25
32
  order: 'post',
26
33
  before: before
27
34
  }));
28
- this.crossProjectPolicy = resolveAdapterCrossProjectPolicy(this.api, apiHandlerInfos || []);
29
- if (this.crossProjectPolicy) {
30
- const policyMiddleware = async (c, next)=>{
31
- const denial = checkCrossProjectPolicyResponse(c.req.header(), this.crossProjectPolicy);
32
- if (denial) return denial;
33
- await next();
34
- };
35
- this.apiMiddleware.unshift({
36
- name: 'bff-cross-project-policy',
37
- path: `${this.prefix}/*`,
38
- method: 'all',
39
- handler: policyMiddleware,
40
- order: 'post',
41
- before: before
42
- });
43
- }
44
35
  };
45
- this.registerMiddleware = async (options = {})=>{
36
+ this.registerMiddleware = async (_options)=>{
46
37
  const { bffRuntimeFramework } = this.api.getServerContext();
47
38
  if ('hono' !== bffRuntimeFramework) {
48
39
  this.isHono = false;
49
40
  return;
50
41
  }
51
- const { prefix } = options;
52
- this.prefix = prefix || this.prefix;
53
42
  const { middlewares: globalMiddlewares } = this.api.getServerContext();
54
43
  await this.setHandlers();
55
44
  globalMiddlewares.push(...this.apiMiddleware);
56
45
  };
57
- this.handleRouteError = async (error, c)=>{
58
- try {
59
- const onErrorHandler = this.api.getServerConfig()?.onError;
60
- if (onErrorHandler) {
61
- const result = await onErrorHandler(error, c);
62
- if (result instanceof Response) return result;
63
- } else logger.error(error);
64
- } catch (configError) {
65
- logger.error(`Error in serverConfig.onError handler: ${configError}`);
66
- }
67
- return createSafeFailureResponse(error);
68
- };
69
- this.withErrorBoundary = (handler)=>{
70
- const handlers = Array.isArray(handler) ? handler : [
71
- handler
72
- ];
73
- const [firstHandler, ...restHandlers] = handlers;
74
- if (!firstHandler) return handler;
75
- const boundary = async (c, next)=>{
76
- try {
77
- return await firstHandler(c, next);
78
- } catch (error) {
79
- return this.handleRouteError(error, c);
80
- }
81
- };
82
- return Array.isArray(handler) ? [
83
- boundary,
84
- ...restHandlers
85
- ] : boundary;
86
- };
87
46
  this.api = api;
88
47
  }
89
48
  }
@@ -8,7 +8,7 @@ const RUNTIME_ADAPTER_LOADERS = {
8
8
  new HonoAdapter(api)
9
9
  ],
10
10
  effect: async (api)=>{
11
- const { EffectAdapter } = await import("./runtime/effect/adapter.mjs");
11
+ const { EffectAdapter } = await import("@modern-js/plugin-bff-extensions/effect-adapter");
12
12
  return [
13
13
  new EffectAdapter(api)
14
14
  ];
@@ -83,7 +83,7 @@ const server = ()=>({
83
83
  }
84
84
  const runtimeAdapters = await RUNTIME_ADAPTER_LOADERS[runtimeFramework](api);
85
85
  await Promise.all(runtimeAdapters.map((adapter)=>adapter.registerMiddleware({
86
- prefix,
86
+ prefix: 'effect' === runtimeFramework ? prefixList : prefix,
87
87
  enableHandleWeb
88
88
  })));
89
89
  });