@bleedingdev/modern-js-plugin-bff 3.8.3-ultramodern.1 → 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 (340) 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 +9 -6
  14. package/dist/cjs/utils/crossProjectApiPlugin.js +5 -1
  15. package/dist/cjs/utils/pluginGenerator.js +4 -4
  16. package/dist/cjs/utils/runtimeGenerator.js +4 -16
  17. package/dist/esm/cli/generator.mjs +45 -53
  18. package/dist/esm/cli/serverGlobalVars.mjs +1 -1
  19. package/dist/esm/cli.mjs +1 -0
  20. package/dist/esm/loader.mjs +5 -16
  21. package/dist/esm/runtime/data-platform/index.mjs +1 -7
  22. package/dist/esm/runtime/effect/edge-dispatcher.mjs +1 -38
  23. package/dist/esm/runtime/effect/edge.mjs +2 -2
  24. package/dist/esm/runtime/effect/index.mjs +16 -8
  25. package/dist/esm/runtime/effect-client/index.mjs +1 -98
  26. package/dist/esm/runtime/effect-client/runtime.mjs +1 -62
  27. package/dist/esm/runtime/hono/adapter.mjs +13 -54
  28. package/dist/esm/server.mjs +2 -2
  29. package/dist/esm/utils/client-generator/generate.mjs +8 -5
  30. package/dist/esm/utils/crossProjectApiPlugin.mjs +3 -2
  31. package/dist/esm/utils/pluginGenerator.mjs +5 -5
  32. package/dist/esm/utils/runtimeGenerator.mjs +4 -16
  33. package/dist/esm-node/cli/generator.mjs +45 -53
  34. package/dist/esm-node/cli/serverGlobalVars.mjs +1 -1
  35. package/dist/esm-node/cli.mjs +1 -0
  36. package/dist/esm-node/loader.mjs +5 -16
  37. package/dist/esm-node/runtime/data-platform/index.mjs +1 -7
  38. package/dist/esm-node/runtime/effect/edge-dispatcher.mjs +1 -38
  39. package/dist/esm-node/runtime/effect/edge.mjs +2 -2
  40. package/dist/esm-node/runtime/effect/index.mjs +16 -8
  41. package/dist/esm-node/runtime/effect-client/index.mjs +1 -98
  42. package/dist/esm-node/runtime/effect-client/runtime.mjs +1 -62
  43. package/dist/esm-node/runtime/hono/adapter.mjs +13 -54
  44. package/dist/esm-node/server.mjs +2 -2
  45. package/dist/esm-node/utils/client-generator/generate.mjs +8 -5
  46. package/dist/esm-node/utils/crossProjectApiPlugin.mjs +3 -2
  47. package/dist/esm-node/utils/pluginGenerator.mjs +5 -5
  48. package/dist/esm-node/utils/runtimeGenerator.mjs +4 -16
  49. package/dist/types/loader.d.ts +1 -0
  50. package/dist/types/runtime/data-platform/index.d.ts +1 -8
  51. package/dist/types/runtime/effect/edge-dispatcher.d.ts +1 -26
  52. package/dist/types/runtime/effect/edge.d.ts +2 -2
  53. package/dist/types/runtime/effect/index.d.ts +15 -7
  54. package/dist/types/runtime/effect-client/index.d.ts +1 -58
  55. package/dist/types/runtime/effect-client/runtime.d.ts +1 -5
  56. package/dist/types/runtime/hono/adapter.d.ts +1 -11
  57. package/dist/types/utils/client-generator/generate.d.ts +2 -1
  58. package/dist/types/utils/crossProjectApiPlugin.d.ts +1 -0
  59. package/dist/types/utils/pluginGenerator.d.ts +2 -1
  60. package/package.json +29 -28
  61. package/dist/cjs/runtime/data-platform/batch/queue.js +0 -284
  62. package/dist/cjs/runtime/data-platform/batch/request.js +0 -98
  63. package/dist/cjs/runtime/data-platform/batch/response.js +0 -64
  64. package/dist/cjs/runtime/data-platform/batch/telemetry.js +0 -67
  65. package/dist/cjs/runtime/data-platform/batch/url.js +0 -69
  66. package/dist/cjs/runtime/data-platform/batch-transport.js +0 -59
  67. package/dist/cjs/runtime/data-platform/codec.js +0 -155
  68. package/dist/cjs/runtime/data-platform/invalidation.js +0 -61
  69. package/dist/cjs/runtime/data-platform/trace.js +0 -73
  70. package/dist/cjs/runtime/data-platform/types.js +0 -48
  71. package/dist/cjs/runtime/data-platform/validation.js +0 -178
  72. package/dist/cjs/runtime/effect/adapter/constants.js +0 -44
  73. package/dist/cjs/runtime/effect/adapter/cross-project-policy.js +0 -66
  74. package/dist/cjs/runtime/effect/adapter/entry.js +0 -100
  75. package/dist/cjs/runtime/effect/adapter/error-response.js +0 -81
  76. package/dist/cjs/runtime/effect/adapter/handler.js +0 -53
  77. package/dist/cjs/runtime/effect/adapter.js +0 -155
  78. package/dist/cjs/runtime/effect/backend-federation/entry.js +0 -99
  79. package/dist/cjs/runtime/effect/backend-federation/identity.js +0 -82
  80. package/dist/cjs/runtime/effect/backend-federation/load.js +0 -75
  81. package/dist/cjs/runtime/effect/backend-federation/plugin.js +0 -63
  82. package/dist/cjs/runtime/effect/backend-federation/remotes.js +0 -51
  83. package/dist/cjs/runtime/effect/backend-federation/runtime.js +0 -128
  84. package/dist/cjs/runtime/effect/backend-federation/types.js +0 -18
  85. package/dist/cjs/runtime/effect/backend-federation/utils.js +0 -48
  86. package/dist/cjs/runtime/effect/backend-federation-manifest/errors.js +0 -83
  87. package/dist/cjs/runtime/effect/backend-federation-manifest/index.js +0 -55
  88. package/dist/cjs/runtime/effect/backend-federation-manifest/load.js +0 -94
  89. package/dist/cjs/runtime/effect/backend-federation-manifest/metadata.js +0 -101
  90. package/dist/cjs/runtime/effect/backend-federation-manifest/reference.js +0 -120
  91. package/dist/cjs/runtime/effect/backend-federation-manifest/remote.js +0 -68
  92. package/dist/cjs/runtime/effect/backend-federation-manifest/types.js +0 -18
  93. package/dist/cjs/runtime/effect/backend-federation-manifest/validation.js +0 -109
  94. package/dist/cjs/runtime/effect/backend-federation-manifest.js +0 -62
  95. package/dist/cjs/runtime/effect/backend-federation.js +0 -65
  96. package/dist/cjs/runtime/effect/context.js +0 -60
  97. package/dist/cjs/runtime/effect/dispatch.js +0 -101
  98. package/dist/cjs/runtime/effect/edge-context.js +0 -81
  99. package/dist/cjs/runtime/effect/endpoint-contracts.js +0 -121
  100. package/dist/cjs/runtime/effect/entry-shape.js +0 -84
  101. package/dist/cjs/runtime/effect/handler/batch-handler.js +0 -161
  102. package/dist/cjs/runtime/effect/handler/batch.js +0 -159
  103. package/dist/cjs/runtime/effect/handler/definition.js +0 -102
  104. package/dist/cjs/runtime/effect/handler/envelope.js +0 -104
  105. package/dist/cjs/runtime/effect/handler/http.js +0 -107
  106. package/dist/cjs/runtime/effect/handler/openapi.js +0 -57
  107. package/dist/cjs/runtime/effect/handler/routing.js +0 -100
  108. package/dist/cjs/runtime/effect/handler/rpc.js +0 -63
  109. package/dist/cjs/runtime/effect/handler/types.js +0 -43
  110. package/dist/cjs/runtime/effect/handler.js +0 -189
  111. package/dist/cjs/runtime/effect/module.js +0 -113
  112. package/dist/cjs/runtime/effect/operation-context.js +0 -103
  113. package/dist/cjs/runtime/effect/rpcSerialization.js +0 -54
  114. package/dist/cjs/runtime/effect-client/batch.js +0 -73
  115. package/dist/cjs/runtime/effect-client/envelope.js +0 -145
  116. package/dist/cjs/runtime/effect-client/guards.js +0 -44
  117. package/dist/cjs/runtime/effect-client/request-context.js +0 -64
  118. package/dist/cjs/runtime/effect-client/request.js +0 -66
  119. package/dist/cjs/runtime/effect-client/types.js +0 -18
  120. package/dist/cjs/runtime/safe-failure.js +0 -84
  121. package/dist/cjs/utils/crossProjectServerPolicy.js +0 -98
  122. package/dist/cjs/utils/effect-client-generator/generator.js +0 -69
  123. package/dist/cjs/utils/effect-client-generator/index.js +0 -51
  124. package/dist/cjs/utils/effect-client-generator/paths.js +0 -62
  125. package/dist/cjs/utils/effect-client-generator/rendering.js +0 -220
  126. package/dist/cjs/utils/effect-client-generator/runtime.js +0 -68
  127. package/dist/cjs/utils/effect-client-generator/types.js +0 -18
  128. package/dist/cjs/utils/effectClientGenerator.js +0 -49
  129. package/dist/cjs/utils/effectSourceLoader.js +0 -312
  130. package/dist/cjs/utils/headers.js +0 -46
  131. package/dist/esm/runtime/data-platform/batch/queue.mjs +0 -246
  132. package/dist/esm/runtime/data-platform/batch/request.mjs +0 -45
  133. package/dist/esm/runtime/data-platform/batch/response.mjs +0 -23
  134. package/dist/esm/runtime/data-platform/batch/telemetry.mjs +0 -23
  135. package/dist/esm/runtime/data-platform/batch/url.mjs +0 -25
  136. package/dist/esm/runtime/data-platform/batch-transport.mjs +0 -12
  137. package/dist/esm/runtime/data-platform/codec.mjs +0 -90
  138. package/dist/esm/runtime/data-platform/invalidation.mjs +0 -20
  139. package/dist/esm/runtime/data-platform/trace.mjs +0 -29
  140. package/dist/esm/runtime/data-platform/types.mjs +0 -4
  141. package/dist/esm/runtime/data-platform/validation.mjs +0 -128
  142. package/dist/esm/runtime/effect/adapter/constants.mjs +0 -6
  143. package/dist/esm/runtime/effect/adapter/cross-project-policy.mjs +0 -28
  144. package/dist/esm/runtime/effect/adapter/entry.mjs +0 -52
  145. package/dist/esm/runtime/effect/adapter/error-response.mjs +0 -43
  146. package/dist/esm/runtime/effect/adapter/handler.mjs +0 -15
  147. package/dist/esm/runtime/effect/adapter.mjs +0 -107
  148. package/dist/esm/runtime/effect/backend-federation/entry.mjs +0 -61
  149. package/dist/esm/runtime/effect/backend-federation/identity.mjs +0 -41
  150. package/dist/esm/runtime/effect/backend-federation/load.mjs +0 -37
  151. package/dist/esm/runtime/effect/backend-federation/plugin.mjs +0 -25
  152. package/dist/esm/runtime/effect/backend-federation/remotes.mjs +0 -13
  153. package/dist/esm/runtime/effect/backend-federation/runtime.mjs +0 -90
  154. package/dist/esm/runtime/effect/backend-federation/types.mjs +0 -0
  155. package/dist/esm/runtime/effect/backend-federation/utils.mjs +0 -7
  156. package/dist/esm/runtime/effect/backend-federation-manifest/errors.mjs +0 -32
  157. package/dist/esm/runtime/effect/backend-federation-manifest/index.mjs +0 -4
  158. package/dist/esm/runtime/effect/backend-federation-manifest/load.mjs +0 -56
  159. package/dist/esm/runtime/effect/backend-federation-manifest/metadata.mjs +0 -42
  160. package/dist/esm/runtime/effect/backend-federation-manifest/reference.mjs +0 -76
  161. package/dist/esm/runtime/effect/backend-federation-manifest/remote.mjs +0 -30
  162. package/dist/esm/runtime/effect/backend-federation-manifest/types.mjs +0 -0
  163. package/dist/esm/runtime/effect/backend-federation-manifest/validation.mjs +0 -65
  164. package/dist/esm/runtime/effect/backend-federation-manifest.mjs +0 -1
  165. package/dist/esm/runtime/effect/backend-federation.mjs +0 -5
  166. package/dist/esm/runtime/effect/context.mjs +0 -13
  167. package/dist/esm/runtime/effect/dispatch.mjs +0 -63
  168. package/dist/esm/runtime/effect/edge-context.mjs +0 -34
  169. package/dist/esm/runtime/effect/endpoint-contracts.mjs +0 -68
  170. package/dist/esm/runtime/effect/entry-shape.mjs +0 -36
  171. package/dist/esm/runtime/effect/handler/batch-handler.mjs +0 -123
  172. package/dist/esm/runtime/effect/handler/batch.mjs +0 -97
  173. package/dist/esm/runtime/effect/handler/definition.mjs +0 -61
  174. package/dist/esm/runtime/effect/handler/envelope.mjs +0 -63
  175. package/dist/esm/runtime/effect/handler/http.mjs +0 -69
  176. package/dist/esm/runtime/effect/handler/openapi.mjs +0 -19
  177. package/dist/esm/runtime/effect/handler/routing.mjs +0 -50
  178. package/dist/esm/runtime/effect/handler/rpc.mjs +0 -22
  179. package/dist/esm/runtime/effect/handler/types.mjs +0 -5
  180. package/dist/esm/runtime/effect/handler.mjs +0 -14
  181. package/dist/esm/runtime/effect/module.mjs +0 -75
  182. package/dist/esm/runtime/effect/operation-context.mjs +0 -65
  183. package/dist/esm/runtime/effect/rpcSerialization.mjs +0 -16
  184. package/dist/esm/runtime/effect-client/batch.mjs +0 -35
  185. package/dist/esm/runtime/effect-client/envelope.mjs +0 -104
  186. package/dist/esm/runtime/effect-client/guards.mjs +0 -3
  187. package/dist/esm/runtime/effect-client/request-context.mjs +0 -23
  188. package/dist/esm/runtime/effect-client/request.mjs +0 -28
  189. package/dist/esm/runtime/effect-client/types.mjs +0 -0
  190. package/dist/esm/runtime/safe-failure.mjs +0 -46
  191. package/dist/esm/utils/crossProjectServerPolicy.mjs +0 -44
  192. package/dist/esm/utils/effect-client-generator/generator.mjs +0 -28
  193. package/dist/esm/utils/effect-client-generator/index.mjs +0 -3
  194. package/dist/esm/utils/effect-client-generator/paths.mjs +0 -24
  195. package/dist/esm/utils/effect-client-generator/rendering.mjs +0 -179
  196. package/dist/esm/utils/effect-client-generator/runtime.mjs +0 -27
  197. package/dist/esm/utils/effect-client-generator/types.mjs +0 -0
  198. package/dist/esm/utils/effectClientGenerator.mjs +0 -1
  199. package/dist/esm/utils/effectSourceLoader.mjs +0 -256
  200. package/dist/esm/utils/headers.mjs +0 -8
  201. package/dist/esm-node/runtime/data-platform/batch/queue.mjs +0 -247
  202. package/dist/esm-node/runtime/data-platform/batch/request.mjs +0 -46
  203. package/dist/esm-node/runtime/data-platform/batch/response.mjs +0 -24
  204. package/dist/esm-node/runtime/data-platform/batch/telemetry.mjs +0 -24
  205. package/dist/esm-node/runtime/data-platform/batch/url.mjs +0 -26
  206. package/dist/esm-node/runtime/data-platform/batch-transport.mjs +0 -13
  207. package/dist/esm-node/runtime/data-platform/codec.mjs +0 -91
  208. package/dist/esm-node/runtime/data-platform/invalidation.mjs +0 -21
  209. package/dist/esm-node/runtime/data-platform/trace.mjs +0 -30
  210. package/dist/esm-node/runtime/data-platform/types.mjs +0 -5
  211. package/dist/esm-node/runtime/data-platform/validation.mjs +0 -129
  212. package/dist/esm-node/runtime/effect/adapter/constants.mjs +0 -7
  213. package/dist/esm-node/runtime/effect/adapter/cross-project-policy.mjs +0 -29
  214. package/dist/esm-node/runtime/effect/adapter/entry.mjs +0 -53
  215. package/dist/esm-node/runtime/effect/adapter/error-response.mjs +0 -44
  216. package/dist/esm-node/runtime/effect/adapter/handler.mjs +0 -16
  217. package/dist/esm-node/runtime/effect/adapter.mjs +0 -108
  218. package/dist/esm-node/runtime/effect/backend-federation/entry.mjs +0 -62
  219. package/dist/esm-node/runtime/effect/backend-federation/identity.mjs +0 -42
  220. package/dist/esm-node/runtime/effect/backend-federation/load.mjs +0 -38
  221. package/dist/esm-node/runtime/effect/backend-federation/plugin.mjs +0 -26
  222. package/dist/esm-node/runtime/effect/backend-federation/remotes.mjs +0 -14
  223. package/dist/esm-node/runtime/effect/backend-federation/runtime.mjs +0 -91
  224. package/dist/esm-node/runtime/effect/backend-federation/types.mjs +0 -1
  225. package/dist/esm-node/runtime/effect/backend-federation/utils.mjs +0 -8
  226. package/dist/esm-node/runtime/effect/backend-federation-manifest/errors.mjs +0 -33
  227. package/dist/esm-node/runtime/effect/backend-federation-manifest/index.mjs +0 -5
  228. package/dist/esm-node/runtime/effect/backend-federation-manifest/load.mjs +0 -57
  229. package/dist/esm-node/runtime/effect/backend-federation-manifest/metadata.mjs +0 -43
  230. package/dist/esm-node/runtime/effect/backend-federation-manifest/reference.mjs +0 -77
  231. package/dist/esm-node/runtime/effect/backend-federation-manifest/remote.mjs +0 -31
  232. package/dist/esm-node/runtime/effect/backend-federation-manifest/types.mjs +0 -1
  233. package/dist/esm-node/runtime/effect/backend-federation-manifest/validation.mjs +0 -66
  234. package/dist/esm-node/runtime/effect/backend-federation-manifest.mjs +0 -2
  235. package/dist/esm-node/runtime/effect/backend-federation.mjs +0 -6
  236. package/dist/esm-node/runtime/effect/context.mjs +0 -14
  237. package/dist/esm-node/runtime/effect/dispatch.mjs +0 -64
  238. package/dist/esm-node/runtime/effect/edge-context.mjs +0 -35
  239. package/dist/esm-node/runtime/effect/endpoint-contracts.mjs +0 -69
  240. package/dist/esm-node/runtime/effect/entry-shape.mjs +0 -37
  241. package/dist/esm-node/runtime/effect/handler/batch-handler.mjs +0 -124
  242. package/dist/esm-node/runtime/effect/handler/batch.mjs +0 -98
  243. package/dist/esm-node/runtime/effect/handler/definition.mjs +0 -62
  244. package/dist/esm-node/runtime/effect/handler/envelope.mjs +0 -64
  245. package/dist/esm-node/runtime/effect/handler/http.mjs +0 -70
  246. package/dist/esm-node/runtime/effect/handler/openapi.mjs +0 -20
  247. package/dist/esm-node/runtime/effect/handler/routing.mjs +0 -51
  248. package/dist/esm-node/runtime/effect/handler/rpc.mjs +0 -23
  249. package/dist/esm-node/runtime/effect/handler/types.mjs +0 -6
  250. package/dist/esm-node/runtime/effect/handler.mjs +0 -15
  251. package/dist/esm-node/runtime/effect/module.mjs +0 -76
  252. package/dist/esm-node/runtime/effect/operation-context.mjs +0 -66
  253. package/dist/esm-node/runtime/effect/rpcSerialization.mjs +0 -17
  254. package/dist/esm-node/runtime/effect-client/batch.mjs +0 -36
  255. package/dist/esm-node/runtime/effect-client/envelope.mjs +0 -105
  256. package/dist/esm-node/runtime/effect-client/guards.mjs +0 -4
  257. package/dist/esm-node/runtime/effect-client/request-context.mjs +0 -24
  258. package/dist/esm-node/runtime/effect-client/request.mjs +0 -29
  259. package/dist/esm-node/runtime/effect-client/types.mjs +0 -1
  260. package/dist/esm-node/runtime/safe-failure.mjs +0 -47
  261. package/dist/esm-node/utils/crossProjectServerPolicy.mjs +0 -46
  262. package/dist/esm-node/utils/effect-client-generator/generator.mjs +0 -29
  263. package/dist/esm-node/utils/effect-client-generator/index.mjs +0 -4
  264. package/dist/esm-node/utils/effect-client-generator/paths.mjs +0 -25
  265. package/dist/esm-node/utils/effect-client-generator/rendering.mjs +0 -180
  266. package/dist/esm-node/utils/effect-client-generator/runtime.mjs +0 -29
  267. package/dist/esm-node/utils/effect-client-generator/types.mjs +0 -1
  268. package/dist/esm-node/utils/effectClientGenerator.mjs +0 -2
  269. package/dist/esm-node/utils/effectSourceLoader.mjs +0 -257
  270. package/dist/esm-node/utils/headers.mjs +0 -9
  271. package/dist/types/runtime/data-platform/batch/queue.d.ts +0 -8
  272. package/dist/types/runtime/data-platform/batch/request.d.ts +0 -13
  273. package/dist/types/runtime/data-platform/batch/response.d.ts +0 -3
  274. package/dist/types/runtime/data-platform/batch/telemetry.d.ts +0 -4
  275. package/dist/types/runtime/data-platform/batch/url.d.ts +0 -4
  276. package/dist/types/runtime/data-platform/batch-transport.d.ts +0 -3
  277. package/dist/types/runtime/data-platform/codec.d.ts +0 -17
  278. package/dist/types/runtime/data-platform/invalidation.d.ts +0 -8
  279. package/dist/types/runtime/data-platform/trace.d.ts +0 -4
  280. package/dist/types/runtime/data-platform/types.d.ts +0 -146
  281. package/dist/types/runtime/data-platform/validation.d.ts +0 -29
  282. package/dist/types/runtime/effect/adapter/constants.d.ts +0 -1
  283. package/dist/types/runtime/effect/adapter/cross-project-policy.d.ts +0 -4
  284. package/dist/types/runtime/effect/adapter/entry.d.ts +0 -2
  285. package/dist/types/runtime/effect/adapter/error-response.d.ts +0 -2
  286. package/dist/types/runtime/effect/adapter/handler.d.ts +0 -7
  287. package/dist/types/runtime/effect/adapter.d.ts +0 -22
  288. package/dist/types/runtime/effect/backend-federation/entry.d.ts +0 -2
  289. package/dist/types/runtime/effect/backend-federation/identity.d.ts +0 -30
  290. package/dist/types/runtime/effect/backend-federation/load.d.ts +0 -13
  291. package/dist/types/runtime/effect/backend-federation/plugin.d.ts +0 -3
  292. package/dist/types/runtime/effect/backend-federation/remotes.d.ts +0 -2
  293. package/dist/types/runtime/effect/backend-federation/runtime.d.ts +0 -3
  294. package/dist/types/runtime/effect/backend-federation/types.d.ts +0 -73
  295. package/dist/types/runtime/effect/backend-federation/utils.d.ts +0 -2
  296. package/dist/types/runtime/effect/backend-federation-manifest/errors.d.ts +0 -11
  297. package/dist/types/runtime/effect/backend-federation-manifest/index.d.ts +0 -6
  298. package/dist/types/runtime/effect/backend-federation-manifest/load.d.ts +0 -3
  299. package/dist/types/runtime/effect/backend-federation-manifest/metadata.d.ts +0 -18
  300. package/dist/types/runtime/effect/backend-federation-manifest/reference.d.ts +0 -4
  301. package/dist/types/runtime/effect/backend-federation-manifest/remote.d.ts +0 -3
  302. package/dist/types/runtime/effect/backend-federation-manifest/types.d.ts +0 -51
  303. package/dist/types/runtime/effect/backend-federation-manifest/validation.d.ts +0 -5
  304. package/dist/types/runtime/effect/backend-federation-manifest.d.ts +0 -1
  305. package/dist/types/runtime/effect/backend-federation.d.ts +0 -7
  306. package/dist/types/runtime/effect/context.d.ts +0 -5
  307. package/dist/types/runtime/effect/dispatch.d.ts +0 -13
  308. package/dist/types/runtime/effect/edge-context.d.ts +0 -5
  309. package/dist/types/runtime/effect/endpoint-contracts.d.ts +0 -66
  310. package/dist/types/runtime/effect/entry-shape.d.ts +0 -31
  311. package/dist/types/runtime/effect/handler/batch-handler.d.ts +0 -11
  312. package/dist/types/runtime/effect/handler/batch.d.ts +0 -13
  313. package/dist/types/runtime/effect/handler/definition.d.ts +0 -7
  314. package/dist/types/runtime/effect/handler/envelope.d.ts +0 -13
  315. package/dist/types/runtime/effect/handler/http.d.ts +0 -15
  316. package/dist/types/runtime/effect/handler/openapi.d.ts +0 -4
  317. package/dist/types/runtime/effect/handler/routing.d.ts +0 -5
  318. package/dist/types/runtime/effect/handler/rpc.d.ts +0 -7
  319. package/dist/types/runtime/effect/handler/types.d.ts +0 -153
  320. package/dist/types/runtime/effect/handler.d.ts +0 -14
  321. package/dist/types/runtime/effect/module.d.ts +0 -36
  322. package/dist/types/runtime/effect/operation-context.d.ts +0 -10
  323. package/dist/types/runtime/effect/rpcSerialization.d.ts +0 -3
  324. package/dist/types/runtime/effect-client/batch.d.ts +0 -2
  325. package/dist/types/runtime/effect-client/envelope.d.ts +0 -15
  326. package/dist/types/runtime/effect-client/guards.d.ts +0 -2
  327. package/dist/types/runtime/effect-client/request-context.d.ts +0 -3
  328. package/dist/types/runtime/effect-client/request.d.ts +0 -1
  329. package/dist/types/runtime/effect-client/types.d.ts +0 -68
  330. package/dist/types/runtime/safe-failure.d.ts +0 -1
  331. package/dist/types/utils/crossProjectServerPolicy.d.ts +0 -36
  332. package/dist/types/utils/effect-client-generator/generator.d.ts +0 -10
  333. package/dist/types/utils/effect-client-generator/index.d.ts +0 -4
  334. package/dist/types/utils/effect-client-generator/paths.d.ts +0 -5
  335. package/dist/types/utils/effect-client-generator/rendering.d.ts +0 -4
  336. package/dist/types/utils/effect-client-generator/runtime.d.ts +0 -12
  337. package/dist/types/utils/effect-client-generator/types.d.ts +0 -27
  338. package/dist/types/utils/effectClientGenerator.d.ts +0 -2
  339. package/dist/types/utils/effectSourceLoader.d.ts +0 -25
  340. package/dist/types/utils/headers.d.ts +0 -1
@@ -39,11 +39,11 @@ __webpack_require__.r(__webpack_exports__);
39
39
  __webpack_require__.d(__webpack_exports__, {
40
40
  HonoAdapter: ()=>HonoAdapter
41
41
  });
42
+ const cross_project_policy_namespaceObject = require("@modern-js/plugin-bff-extensions/cross-project-policy");
43
+ const hono_namespaceObject = require("@modern-js/plugin-bff-extensions/hono");
42
44
  const utils_namespaceObject = require("@modern-js/utils");
43
45
  const createHonoRoutes_js_namespaceObject = require("../../utils/createHonoRoutes.js");
44
46
  var createHonoRoutes_js_default = /*#__PURE__*/ __webpack_require__.n(createHonoRoutes_js_namespaceObject);
45
- const crossProjectServerPolicy_js_namespaceObject = require("../../utils/crossProjectServerPolicy.js");
46
- const external_safe_failure_js_namespaceObject = require("../safe-failure.js");
47
47
  const before = [
48
48
  'custom-server-hook',
49
49
  'custom-server-middleware',
@@ -53,78 +53,37 @@ class HonoAdapter {
53
53
  constructor(api){
54
54
  this.apiMiddleware = [];
55
55
  this.isHono = true;
56
- this.prefix = '/api';
57
56
  this.setHandlers = async ()=>{
58
57
  if (!this.isHono) return;
59
58
  const { apiHandlerInfos } = this.api.getServerContext();
60
- const honoHandlers = createHonoRoutes_js_default()(apiHandlerInfos);
59
+ const handlers = apiHandlerInfos ?? [];
60
+ const honoHandlers = createHonoRoutes_js_default()(handlers);
61
+ const policy = (0, cross_project_policy_namespaceObject.resolveAdapterCrossProjectPolicy)(this.api, handlers);
61
62
  this.apiMiddleware = honoHandlers.map(({ path, method, handler })=>({
62
63
  name: 'hono-bff-api',
63
64
  path,
64
65
  method,
65
- handler: this.withErrorBoundary(handler),
66
+ handler: (0, hono_namespaceObject.bindHonoRouteHandlers)({
67
+ handler,
68
+ policy,
69
+ routePath: path,
70
+ onError: this.api.getServerConfig()?.onError,
71
+ reportError: (error)=>utils_namespaceObject.logger.error(error)
72
+ }),
66
73
  order: 'post',
67
74
  before
68
75
  }));
69
- this.crossProjectPolicy = (0, crossProjectServerPolicy_js_namespaceObject.resolveAdapterCrossProjectPolicy)(this.api, apiHandlerInfos || []);
70
- if (this.crossProjectPolicy) {
71
- const policyMiddleware = async (c, next)=>{
72
- const denial = (0, crossProjectServerPolicy_js_namespaceObject.checkCrossProjectPolicyResponse)(c.req.header(), this.crossProjectPolicy);
73
- if (denial) return denial;
74
- await next();
75
- };
76
- this.apiMiddleware.unshift({
77
- name: 'bff-cross-project-policy',
78
- path: `${this.prefix}/*`,
79
- method: 'all',
80
- handler: policyMiddleware,
81
- order: 'post',
82
- before
83
- });
84
- }
85
76
  };
86
- this.registerMiddleware = async (options = {})=>{
77
+ this.registerMiddleware = async (_options)=>{
87
78
  const { bffRuntimeFramework } = this.api.getServerContext();
88
79
  if ('hono' !== bffRuntimeFramework) {
89
80
  this.isHono = false;
90
81
  return;
91
82
  }
92
- const { prefix } = options;
93
- this.prefix = prefix || this.prefix;
94
83
  const { middlewares: globalMiddlewares } = this.api.getServerContext();
95
84
  await this.setHandlers();
96
85
  globalMiddlewares.push(...this.apiMiddleware);
97
86
  };
98
- this.handleRouteError = async (error, c)=>{
99
- try {
100
- const onErrorHandler = this.api.getServerConfig()?.onError;
101
- if (onErrorHandler) {
102
- const result = await onErrorHandler(error, c);
103
- if (result instanceof Response) return result;
104
- } else utils_namespaceObject.logger.error(error);
105
- } catch (configError) {
106
- utils_namespaceObject.logger.error(`Error in serverConfig.onError handler: ${configError}`);
107
- }
108
- return (0, external_safe_failure_js_namespaceObject.createSafeFailureResponse)(error);
109
- };
110
- this.withErrorBoundary = (handler)=>{
111
- const handlers = Array.isArray(handler) ? handler : [
112
- handler
113
- ];
114
- const [firstHandler, ...restHandlers] = handlers;
115
- if (!firstHandler) return handler;
116
- const boundary = async (c, next)=>{
117
- try {
118
- return await firstHandler(c, next);
119
- } catch (error) {
120
- return this.handleRouteError(error, c);
121
- }
122
- };
123
- return Array.isArray(handler) ? [
124
- boundary,
125
- ...restHandlers
126
- ] : boundary;
127
- };
128
87
  this.api = api;
129
88
  }
130
89
  }
@@ -49,7 +49,7 @@ const RUNTIME_ADAPTER_LOADERS = {
49
49
  new adapter_js_namespaceObject.HonoAdapter(api)
50
50
  ],
51
51
  effect: async (api)=>{
52
- const { EffectAdapter } = await import("./runtime/effect/adapter.js");
52
+ const { EffectAdapter } = await import("@modern-js/plugin-bff-extensions/effect-adapter");
53
53
  return [
54
54
  new EffectAdapter(api)
55
55
  ];
@@ -124,7 +124,7 @@ const server = ()=>({
124
124
  }
125
125
  const runtimeAdapters = await RUNTIME_ADAPTER_LOADERS[runtimeFramework](api);
126
126
  await Promise.all(runtimeAdapters.map((adapter)=>adapter.registerMiddleware({
127
- prefix,
127
+ prefix: 'effect' === runtimeFramework ? prefixList : prefix,
128
128
  enableHandleWeb
129
129
  })));
130
130
  });
@@ -44,7 +44,6 @@ const bff_core_namespaceObject = require("@modern-js/bff-core");
44
44
  const utils_namespaceObject = require("@modern-js/utils");
45
45
  const external_path_namespaceObject = require("path");
46
46
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
47
- const external_effectClientGenerator_js_namespaceObject = require("../effectClientGenerator.js");
48
47
  const external_files_js_namespaceObject = require("./files.js");
49
48
  const external_package_json_js_namespaceObject = require("./package-json.js");
50
49
  const external_type_facade_js_namespaceObject = require("./type-facade.js");
@@ -57,6 +56,7 @@ async function clientGenerator(draftOptions) {
57
56
  const generatedSourceList = [
58
57
  ...lambdaSourceList
59
58
  ];
59
+ let generatedEffectClient = null;
60
60
  const getClitentCode = async (resourcePath, source)=>{
61
61
  const warning = `The file ${resourcePath} is not allowed to be imported in src directory, only API definition files are allowed.`;
62
62
  if (!draftOptions.existLambda) return void utils_namespaceObject.logger.warn(warning);
@@ -92,7 +92,8 @@ async function clientGenerator(draftOptions) {
92
92
  }
93
93
  }
94
94
  if ('effect' === draftOptions.bffRuntimeFramework) {
95
- const effectEntryFile = (0, external_effectClientGenerator_js_namespaceObject.resolveEffectEntryFile)({
95
+ const { generateEffectClient, resolveEffectEntryFile } = await import("@modern-js/plugin-bff-extensions/client-generator");
96
+ const effectEntryFile = resolveEffectEntryFile({
96
97
  appDir: draftOptions.appDir,
97
98
  apiDir: draftOptions.apiDir,
98
99
  effectEntry: draftOptions.effectEntry
@@ -106,21 +107,22 @@ async function clientGenerator(draftOptions) {
106
107
  source: effectSource,
107
108
  relativeDistPath: draftOptions.relativeDistPath
108
109
  });
109
- const effectClientArtifacts = await (0, external_effectClientGenerator_js_namespaceObject.generateEffectClient)({
110
+ generatedEffectClient = await generateEffectClient({
110
111
  appDir: draftOptions.appDir,
111
112
  apiDir: draftOptions.apiDir,
112
113
  resourcePath: effectEntryFile,
113
114
  prefix: Array.isArray(draftOptions.prefix) ? draftOptions.prefix[0] : draftOptions.prefix,
114
115
  port: Number(draftOptions.port),
115
116
  target: 'bundle',
117
+ requestId: draftOptions.requestId,
116
118
  requestCreator: draftOptions.requestCreator,
117
119
  httpMethodDecider: draftOptions.httpMethodDecider,
118
120
  dataPlatformBatch: draftOptions.effectDataPlatformBatch
119
121
  });
120
- if (effectClientArtifacts) {
122
+ if (generatedEffectClient) {
121
123
  const targetTypeFile = effectFileDetails.targetDir.replace(/\.js$/, '.d.ts');
122
- await (0, external_files_js_namespaceObject.writeTargetFile)(effectFileDetails.absTargetDir, effectClientArtifacts.code);
123
- await (0, external_files_js_namespaceObject.writeTargetFile)(external_path_default().resolve(targetTypeFile), effectClientArtifacts.declaration);
124
+ await (0, external_files_js_namespaceObject.writeTargetFile)(effectFileDetails.absTargetDir, generatedEffectClient.code);
125
+ await (0, external_files_js_namespaceObject.writeTargetFile)(external_path_default().resolve(targetTypeFile), generatedEffectClient.declaration);
124
126
  generatedSourceList.push(effectFileDetails);
125
127
  }
126
128
  }
@@ -132,6 +134,7 @@ async function clientGenerator(draftOptions) {
132
134
  }
133
135
  if (generatedSourceList.length > 0) await (0, external_write_package_js_namespaceObject.writeClientModuleBoundary)(draftOptions.appDir, draftOptions.relativeDistPath);
134
136
  await (0, external_write_package_js_namespaceObject.setPackage)(generatedSourceList, draftOptions.appDir, draftOptions.relativeDistPath);
137
+ return generatedEffectClient;
135
138
  }
136
139
  const generate = clientGenerator;
137
140
  exports.clientGenerator = __webpack_exports__.clientGenerator;
@@ -44,6 +44,7 @@ __webpack_require__.d(__webpack_exports__, {
44
44
  OPERATION_CONTRACTS_JSON: ()=>OPERATION_CONTRACTS_JSON,
45
45
  PACKAGE_NAME: ()=>PACKAGE_NAME,
46
46
  PREFIX: ()=>PREFIX,
47
+ REQUEST_ID: ()=>REQUEST_ID,
47
48
  RUNTIME_FRAMEWORK: ()=>RUNTIME_FRAMEWORK,
48
49
  crossProjectApiPlugin: ()=>crossProjectApiPlugin,
49
50
  default: ()=>utils_crossProjectApiPlugin
@@ -51,6 +52,7 @@ __webpack_require__.d(__webpack_exports__, {
51
52
  const external_path_namespaceObject = require("path");
52
53
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
53
54
  const PACKAGE_NAME = '{packageName}';
55
+ const REQUEST_ID = '{requestId}';
54
56
  const PREFIX = '{prefix}';
55
57
  const API_DIR = '{apiDirectory}';
56
58
  const LAMBDA_DIR = '{lambdaDirectory}';
@@ -93,7 +95,7 @@ const crossProjectApiPlugin = ()=>({
93
95
  entry: effectEntry
94
96
  };
95
97
  resolvedConfig.bff.isCrossProjectServer = true;
96
- resolvedConfig.bff.requestId = resolvedConfig.bff.requestId || config?.bff?.requestId || PACKAGE_NAME || 'default';
98
+ resolvedConfig.bff.requestId = resolvedConfig.bff.requestId || config?.bff?.requestId || REQUEST_ID || PACKAGE_NAME || 'default';
97
99
  const generatedOperationContracts = "{operationContracts}" === OPERATION_CONTRACTS_JSON ? {} : JSON.parse(OPERATION_CONTRACTS_JSON);
98
100
  resolvedConfig.bff.crossProjectPolicy = {
99
101
  ...resolvedConfig.bff.crossProjectPolicy || {},
@@ -121,6 +123,7 @@ exports.LAMBDA_DIR = __webpack_exports__.LAMBDA_DIR;
121
123
  exports.OPERATION_CONTRACTS_JSON = __webpack_exports__.OPERATION_CONTRACTS_JSON;
122
124
  exports.PACKAGE_NAME = __webpack_exports__.PACKAGE_NAME;
123
125
  exports.PREFIX = __webpack_exports__.PREFIX;
126
+ exports.REQUEST_ID = __webpack_exports__.REQUEST_ID;
124
127
  exports.RUNTIME_FRAMEWORK = __webpack_exports__.RUNTIME_FRAMEWORK;
125
128
  exports.crossProjectApiPlugin = __webpack_exports__.crossProjectApiPlugin;
126
129
  exports["default"] = __webpack_exports__["default"];
@@ -132,6 +135,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
132
135
  "OPERATION_CONTRACTS_JSON",
133
136
  "PACKAGE_NAME",
134
137
  "PREFIX",
138
+ "REQUEST_ID",
135
139
  "RUNTIME_FRAMEWORK",
136
140
  "crossProjectApiPlugin",
137
141
  "default"
@@ -43,18 +43,18 @@ const utils_namespaceObject = require("@modern-js/utils");
43
43
  const external_path_namespaceObject = require("path");
44
44
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
45
45
  const external_crossProjectApiPlugin_js_namespaceObject = require("./crossProjectApiPlugin.js");
46
- function replaceContent(source, packageName, prefix, relativeDistPath, relativeApiPath, relativeLambdaPath, runtimeFramework, relativeEffectEntry, operationContracts) {
47
- const updatedSource = source.replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.PACKAGE_NAME, 'g'), packageName).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.PREFIX, 'g'), prefix).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.DIST_DIR, 'g'), (0, utils_namespaceObject.normalizeToPosixPath)(relativeDistPath)).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.API_DIR, 'g'), (0, utils_namespaceObject.normalizeToPosixPath)(relativeApiPath)).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.LAMBDA_DIR, 'g'), (0, utils_namespaceObject.normalizeToPosixPath)(relativeLambdaPath)).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.RUNTIME_FRAMEWORK, 'g'), runtimeFramework).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.EFFECT_ENTRY, 'g'), (0, utils_namespaceObject.normalizeToPosixPath)(relativeEffectEntry)).replace(`'${external_crossProjectApiPlugin_js_namespaceObject.OPERATION_CONTRACTS_JSON}'`, ()=>JSON.stringify(JSON.stringify(operationContracts)));
46
+ function replaceContent(source, packageName, requestId, prefix, relativeDistPath, relativeApiPath, relativeLambdaPath, runtimeFramework, relativeEffectEntry, operationContracts) {
47
+ const updatedSource = source.replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.PACKAGE_NAME, 'g'), packageName).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.REQUEST_ID, 'g'), requestId).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.PREFIX, 'g'), prefix).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.DIST_DIR, 'g'), (0, utils_namespaceObject.normalizeToPosixPath)(relativeDistPath)).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.API_DIR, 'g'), (0, utils_namespaceObject.normalizeToPosixPath)(relativeApiPath)).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.LAMBDA_DIR, 'g'), (0, utils_namespaceObject.normalizeToPosixPath)(relativeLambdaPath)).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.RUNTIME_FRAMEWORK, 'g'), runtimeFramework).replace(new RegExp(external_crossProjectApiPlugin_js_namespaceObject.EFFECT_ENTRY, 'g'), (0, utils_namespaceObject.normalizeToPosixPath)(relativeEffectEntry)).replace(`'${external_crossProjectApiPlugin_js_namespaceObject.OPERATION_CONTRACTS_JSON}'`, ()=>JSON.stringify(JSON.stringify(operationContracts)));
48
48
  return updatedSource;
49
49
  }
50
- async function pluginGenerator({ prefix, appDirectory, relativeDistPath, relativeApiPath, relativeLambdaPath, runtimeFramework, relativeEffectEntry, operationContracts }) {
50
+ async function pluginGenerator({ prefix, appDirectory, requestId, relativeDistPath, relativeApiPath, relativeLambdaPath, runtimeFramework, relativeEffectEntry, operationContracts }) {
51
51
  try {
52
52
  const packageContent = await utils_namespaceObject.fs.readFile(external_path_default().resolve(appDirectory, './package.json'), 'utf8');
53
53
  const packageJson = JSON.parse(packageContent);
54
54
  const pluginDir = external_path_default().resolve(appDirectory, `./${relativeDistPath}`, 'plugin');
55
55
  const pluginPath = external_path_default().join(pluginDir, 'index.js');
56
56
  const pluginTemplate = await utils_namespaceObject.fs.readFile(external_path_default().resolve(__dirname, 'crossProjectApiPlugin.js'), 'utf8');
57
- const updatedPlugin = replaceContent(pluginTemplate, packageJson.name, prefix, relativeDistPath, relativeApiPath, relativeLambdaPath, runtimeFramework, relativeEffectEntry, operationContracts);
57
+ const updatedPlugin = replaceContent(pluginTemplate, packageJson.name, requestId, prefix, relativeDistPath, relativeApiPath, relativeLambdaPath, runtimeFramework, relativeEffectEntry, operationContracts);
58
58
  await utils_namespaceObject.fs.ensureFile(pluginPath);
59
59
  await utils_namespaceObject.fs.writeFile(pluginPath, updatedPlugin);
60
60
  const typeContent = `import type { AppTools, CliPlugin } from '@modern-js/app-tools';
@@ -39,6 +39,7 @@ __webpack_require__.r(__webpack_exports__);
39
39
  __webpack_require__.d(__webpack_exports__, {
40
40
  default: ()=>utils_runtimeGenerator
41
41
  });
42
+ const cross_project_generation_namespaceObject = require("@modern-js/plugin-bff-extensions/cross-project-generation");
42
43
  const utils_namespaceObject = require("@modern-js/utils");
43
44
  const external_path_namespaceObject = require("path");
44
45
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
@@ -56,21 +57,8 @@ async function runtimeGenerator({ runtime, appDirectory, relativeDistPath, packa
56
57
  const requestId = packageName || getPackageName(appDirectory) || process.env.npm_package_name || 'default';
57
58
  const runtimeImportPath = JSON.stringify(runtime);
58
59
  const requestIdValue = JSON.stringify(requestId);
59
- const source = `const { configure: _configure } = require(${runtimeImportPath});
60
- const defaultSecureOptions = {
61
- requestId: ${requestIdValue},
62
- requireEnvelope: true,
63
- identityBinding: {
64
- enabled: true,
65
- strict: true,
66
- },
67
- operationContract: {
68
- enabled: true,
69
- strict: true,
70
- requireSchemaHash: true,
71
- requireOperationVersion: true,
72
- },
73
- };
60
+ const source = `'use strict'; const { configure: _configure } = require(${runtimeImportPath});
61
+ const defaultSecureOptions = ${(0, cross_project_generation_namespaceObject.renderProducerRuntimeDefaults)(requestIdValue)};
74
62
  const initProducerClient = (options) => {
75
63
  return _configure({
76
64
  ...defaultSecureOptions,
@@ -121,7 +109,7 @@ async function runtimeGenerator({ runtime, appDirectory, relativeDistPath, packa
121
109
  }) => string;
122
110
  requestId?: string;
123
111
  };
124
- export declare const initProducerClient: (options: ProducerClientOptions) => void;
112
+ export declare const initProducerClient: (options?: ProducerClientOptions) => ReturnType<ProducerRuntimeModule['configure']>;
125
113
  export declare const configure: typeof initProducerClient;`;
126
114
  const pluginTypePath = external_path_default().join(pluginDir, 'index.d.ts');
127
115
  await utils_namespaceObject.fs.ensureFile(pluginTypePath);
@@ -2,33 +2,11 @@ import { ApiRouter, buildOperationContractMap, deriveOperationVersion } from "@m
2
2
  import { compile } from "@modern-js/server-utils";
3
3
  import { API_DIR, SHARED_DIR, fs, resolveServerTsconfig, upath } from "@modern-js/utils";
4
4
  import clientGenerator from "../utils/clientGenerator.mjs";
5
- import { bundleEffectEntryForNode } from "../utils/effectSourceLoader.mjs";
6
5
  import pluginGenerator from "../utils/pluginGenerator.mjs";
7
6
  import runtimeGenerator from "../utils/runtimeGenerator.mjs";
8
7
  import { getPrimaryPrefix } from "./prefix.mjs";
9
8
  import { serializeServerGlobalVars, transformServerGlobalVars } from "./serverGlobalVars.mjs";
10
9
  const RUNTIME_CREATE_REQUEST = '@modern-js/plugin-bff/client';
11
- const effectEntryExtensions = [
12
- '.js',
13
- '.jsx',
14
- '.ts',
15
- '.tsx',
16
- '.mjs',
17
- '.mts',
18
- '.cjs',
19
- '.cts'
20
- ];
21
- function resolveEffectSourceEntry(appDirectory, apiDirectory, configuredEntry) {
22
- const entry = void 0 !== configuredEntry && configuredEntry.length > 0 ? upath.isAbsolute(configuredEntry) ? configuredEntry : upath.resolve(appDirectory, configuredEntry) : upath.resolve(apiDirectory, 'index');
23
- return upath.extname(entry).length > 0 ? entry : effectEntryExtensions.map((extension)=>`${entry}${extension}`).find((candidate)=>fs.existsSync(candidate));
24
- }
25
- function resolveBuiltEffectEntry(appDirectory, distDirectory, sourceEntry) {
26
- if (void 0 === sourceEntry || 0 === sourceEntry.length) return;
27
- const relativeEntry = upath.relative(appDirectory, sourceEntry);
28
- if ('..' === relativeEntry || relativeEntry.startsWith(`..${upath.sep}`)) throw new Error(`Effect BFF entry must be inside the application directory: ${sourceEntry}`);
29
- const builtEntry = upath.resolve(distDirectory, relativeEntry).replace(/\.(?:[cm]?ts|tsx|jsx)$/u, '.js');
30
- return fs.existsSync(builtEntry) ? builtEntry : void 0;
31
- }
32
10
  const createBffGenerator = (api)=>{
33
11
  const compileApi = ()=>Promise.resolve().then(()=>{
34
12
  const { appDirectory, distDirectory, apiDirectory, bffRuntimeFramework, sharedDirectory, moduleType } = api.getAppContext();
@@ -56,20 +34,20 @@ const createBffGenerator = (api)=>{
56
34
  tsconfigPath,
57
35
  moduleType,
58
36
  throwErrorInsteadOfExit: true
59
- }).then(()=>transformServerGlobalVars(sourceDirs.map((sourceDir)=>upath.resolve(distDir, upath.relative(appDirectory, sourceDir))), serializedGlobalVars)).then(()=>{
37
+ }).then(()=>transformServerGlobalVars(sourceDirs.map((sourceDir)=>upath.resolve(distDir, upath.relative(appDirectory, sourceDir))), serializedGlobalVars)).then(async ()=>{
60
38
  if ('effect' !== bffRuntimeFramework) return;
61
- const sourceEntry = resolveEffectSourceEntry(appDirectory, apiDir, modernConfig.bff?.effect?.entry);
62
- const builtEntry = resolveBuiltEffectEntry(appDirectory, distDir, sourceEntry);
63
- if (void 0 === builtEntry || 0 === builtEntry.length) throw new Error(`Effect BFF entry was not emitted into ${distDir}: ${sourceEntry ?? upath.resolve(apiDir, 'index')}`);
64
- return bundleEffectEntryForNode({
39
+ const { bundleBuiltEffectEntryForNode } = await import("@modern-js/plugin-bff-extensions/client-generator");
40
+ return bundleBuiltEffectEntryForNode({
65
41
  appDir: appDirectory,
66
- entryPath: builtEntry,
42
+ apiDir,
43
+ distDir,
44
+ effectEntry: modernConfig.bff?.effect?.entry,
67
45
  format: 'module' === moduleType ? 'esm' : 'cjs'
68
46
  });
69
47
  });
70
48
  });
71
49
  });
72
- const generate = ()=>Promise.resolve().then(()=>{
50
+ const generate = ()=>Promise.resolve().then(async ()=>{
73
51
  const { appDirectory, apiDirectory, lambdaDirectory, port, bffRuntimeFramework, packageName } = api.getAppContext();
74
52
  const modernConfig = api.getNormalizedConfig();
75
53
  const relativeDistPath = modernConfig?.output?.distPath?.root || 'dist';
@@ -87,43 +65,57 @@ const createBffGenerator = (api)=>{
87
65
  const lambdaDir = apiRouter.getLambdaDir();
88
66
  const existLambda = apiRouter.isExistLambda();
89
67
  const packageJson = fs.readJSONSync(upath.resolve(appDirectory, 'package.json'));
90
- const requestId = packageJson.name || packageName;
91
- const operationContractsPromise = existLambda ? apiRouter.getApiHandlers().then((handlers)=>buildOperationContractMap({
68
+ const requestId = bff?.requestId || packageJson.name || packageName || 'default';
69
+ const operationContractsPromise = 'effect' !== bffRuntimeFramework && existLambda ? apiRouter.getApiHandlers().then((handlers)=>buildOperationContractMap({
92
70
  handlers,
93
71
  requestId,
94
72
  operationVersion: deriveOperationVersion(packageJson.version)
95
73
  })) : Promise.resolve({});
96
- return operationContractsPromise.then((operationContracts)=>{
97
- const runtime = bff?.runtimeCreateRequest || RUNTIME_CREATE_REQUEST;
98
- const relativeApiPath = upath.relative(appDirectory, apiDirectory);
99
- const relativeLambdaPath = upath.relative(appDirectory, lambdaDir);
100
- const sourceEffectEntry = 'effect' === bffRuntimeFramework ? resolveEffectSourceEntry(appDirectory, apiDirectory, bff?.effect?.entry) : void 0;
101
- const relativeEffectEntry = void 0 !== sourceEffectEntry && sourceEffectEntry.length > 0 ? upath.relative(appDirectory, sourceEffectEntry).replace(/\.(?:[cm]?ts|tsx|jsx)$/u, '.js') : '';
74
+ const runtime = bff?.runtimeCreateRequest || RUNTIME_CREATE_REQUEST;
75
+ const relativeApiPath = upath.relative(appDirectory, apiDirectory);
76
+ const relativeLambdaPath = upath.relative(appDirectory, lambdaDir);
77
+ const { sourceEffectEntry, relativeEffectEntry } = 'effect' === bffRuntimeFramework ? (await import("@modern-js/plugin-bff-extensions/client-generator")).resolveEffectEntryPaths({
78
+ appDir: appDirectory,
79
+ apiDir: apiDirectory,
80
+ effectEntry: bff?.effect?.entry
81
+ }) : {
82
+ sourceEffectEntry: void 0,
83
+ relativeEffectEntry: ''
84
+ };
85
+ const clientGenerationPromise = clientGenerator({
86
+ prefix,
87
+ appDir: appDirectory,
88
+ apiDir: apiDirectory,
89
+ lambdaDir,
90
+ existLambda,
91
+ port,
92
+ requestId,
93
+ requestCreator: bff?.requestCreator,
94
+ httpMethodDecider,
95
+ relativeDistPath,
96
+ relativeApiPath,
97
+ apiFiles: apiRouter.getApiFiles(),
98
+ bffRuntimeFramework,
99
+ effectEntry: bff?.effect?.entry,
100
+ effectDataPlatformBatch: bff?.effect?.dataPlatform?.batch
101
+ });
102
+ return Promise.all([
103
+ operationContractsPromise,
104
+ clientGenerationPromise
105
+ ]).then(([lambdaContracts, generatedEffectClient])=>{
106
+ if ('effect' === bffRuntimeFramework && null === generatedEffectClient) throw new Error(`Effect cross-project client generation failed for ${sourceEffectEntry ?? apiDirectory}.`);
107
+ const operationContracts = 'effect' === bffRuntimeFramework ? generatedEffectClient?.operationContracts ?? {} : lambdaContracts;
102
108
  return pluginGenerator({
103
109
  prefix,
104
110
  appDirectory,
111
+ requestId,
105
112
  relativeDistPath,
106
113
  relativeApiPath,
107
114
  relativeLambdaPath,
108
115
  runtimeFramework: 'hono' === bffRuntimeFramework ? 'hono' : 'effect',
109
116
  relativeEffectEntry,
110
117
  operationContracts
111
- }).then(()=>clientGenerator({
112
- prefix,
113
- appDir: appDirectory,
114
- apiDir: apiDirectory,
115
- lambdaDir,
116
- existLambda,
117
- port,
118
- requestCreator: bff?.requestCreator,
119
- httpMethodDecider,
120
- relativeDistPath,
121
- relativeApiPath,
122
- apiFiles: apiRouter.getApiFiles(),
123
- bffRuntimeFramework,
124
- effectEntry: bff?.effect?.entry,
125
- effectDataPlatformBatch: bff?.effect?.dataPlatform?.batch
126
- })).then(()=>runtimeGenerator({
118
+ }).then(()=>runtimeGenerator({
127
119
  runtime,
128
120
  appDirectory,
129
121
  relativeDistPath
@@ -53,7 +53,7 @@ const transformServerGlobalVars = (outputDirectories, globalVars)=>Promise.resol
53
53
  syntax: "ecmascript"
54
54
  },
55
55
  preserveAllComments: true,
56
- target: 'es2022',
56
+ target: 'es2024',
57
57
  transform: {
58
58
  optimizer: {
59
59
  globals: {
package/dist/esm/cli.mjs CHANGED
@@ -58,6 +58,7 @@ const bffPlugin = ()=>({
58
58
  lambdaDir,
59
59
  existLambda,
60
60
  port,
61
+ requestId: bff?.requestId,
61
62
  target: name,
62
63
  requestCreator: bff?.requestCreator,
63
64
  httpMethodDecider,
@@ -1,7 +1,7 @@
1
1
  import { generateClient } from "@modern-js/bff-core";
2
+ import { generateEffectClientCode, generateEffectWorkerRuntimeWrapper, resolveEffectEntryFile } from "@modern-js/plugin-bff-extensions/effect-source-loader";
2
3
  import { logger } from "@modern-js/utils";
3
4
  import path from "path";
4
- import { generateEffectClientCode, resolveEffectEntryFile } from "./utils/effectClientGenerator.mjs";
5
5
  const EFFECT_BFF_WORKER_RUNTIME_QUERY = 'modern-bff-runtime';
6
6
  const EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY = 'modern-bff-runtime-source';
7
7
  const createErrorModule = (message)=>`throw new Error(${JSON.stringify(message)});`;
@@ -15,7 +15,7 @@ async function transformEffectRuntimeSource(source, filename) {
15
15
  syntax: "typescript",
16
16
  tsx: filename.endsWith('.tsx') || filename.endsWith('.jsx')
17
17
  },
18
- target: 'es2022'
18
+ target: 'es2024'
19
19
  },
20
20
  module: {
21
21
  type: 'es6'
@@ -23,18 +23,6 @@ async function transformEffectRuntimeSource(source, filename) {
23
23
  });
24
24
  return result.code;
25
25
  }
26
- function createEffectWorkerRuntimeWrapper(resourcePath) {
27
- const sourceRequest = `${resourcePath}?${EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY}`;
28
- return `import * as effectBffModule from ${JSON.stringify(sourceRequest)};
29
- import { createEffectBffEdgeDispatcher } from '@modern-js/plugin-bff/effect-edge/dispatcher';
30
-
31
- export const __modern_create_effect_bff_dispatcher = options =>
32
- createEffectBffEdgeDispatcher({
33
- ...options,
34
- module: effectBffModule,
35
- });
36
- `;
37
- }
38
26
  async function loader(source) {
39
27
  this.cacheable();
40
28
  const { resourcePath } = this;
@@ -52,7 +40,7 @@ async function loader(source) {
52
40
  callback(void 0, code);
53
41
  return;
54
42
  }
55
- 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));
43
+ 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));
56
44
  if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && path.resolve(effectEntryFile) === path.resolve(resourcePath)) {
57
45
  const code = await generateEffectClientCode({
58
46
  appDir: draftOptions.appDir,
@@ -61,13 +49,14 @@ async function loader(source) {
61
49
  prefix: Array.isArray(draftOptions.prefix) ? draftOptions.prefix[0] : draftOptions.prefix,
62
50
  port: Number(draftOptions.port),
63
51
  target: draftOptions.target,
52
+ requestId: draftOptions.requestId,
64
53
  requestCreator: draftOptions.requestCreator,
65
54
  httpMethodDecider: draftOptions.httpMethodDecider,
66
55
  dataPlatformBatch: draftOptions.effectDataPlatformBatch,
67
56
  onDependency: (dependency)=>this.addDependency(dependency)
68
57
  });
69
58
  if (code) return void callback(void 0, code);
70
- callback(void 0, createErrorModule(`Failed to generate Effect client for ${resourcePath}`));
59
+ callback(new Error(`Failed to generate Effect client for ${resourcePath}`));
71
60
  return;
72
61
  }
73
62
  const warning = `The file ${resourcePath} is not allowed to be imported in src directory, only API definition files are allowed.`;
@@ -1,7 +1 @@
1
- export { measureTextBytes, normalizeMethod } from "./batch/request.mjs";
2
- export { DATA_BATCH_TRANSPORT_OTEL_EVENT, createDataBatchTransport, createDataBatchTransportTelemetryAttributes, emitDataBatchTransportEvent } from "./batch-transport.mjs";
3
- export { buildQueryKey, buildScopeKey, createOperationId, decodeRequestEnvelopeHeader, encodeRequestEnvelopeHeader, isPlainObject, normalizeOrigin, stableStringify } from "./codec.mjs";
4
- export { createInvalidationEvent, shouldApplyInvalidation } from "./invalidation.mjs";
5
- export { deriveChildTraceContext, formatTraceparentHeader, parseTraceparentHeader } from "./trace.mjs";
6
- export { DEFAULT_DATA_BATCH_ENDPOINT, DEFAULT_DATA_BATCH_HEADER, DEFAULT_DATA_ENVELOPE_HEADER } from "./types.mjs";
7
- export { createHydrationEnvelope, createRequestEnvelope, validateHydrationEnvelope, validateRequestEnvelope, validateSelectionPlan } from "./validation.mjs";
1
+ export * from "@modern-js/bff-effect/data-platform";
@@ -1,38 +1 @@
1
- import { dispatchEffectBffRequestWithContext } from "./dispatch.mjs";
2
- import { runWithEffectContext, useEffectContext, useOperationContext } from "./edge-context.mjs";
3
- import { resolveEffectBffModuleHandler } from "./module.mjs";
4
- export * from "./handler.mjs";
5
- async function dispatchEffectBffRequest(handler, request, options = {}) {
6
- return dispatchEffectBffRequestWithContext(handler, request, {
7
- ...options,
8
- runWithEffectContext: runWithEffectContext
9
- });
10
- }
11
- async function createEffectBffEdgeDispatcher(options) {
12
- const loaded = await resolveEffectBffModuleHandler(options.module, {
13
- openapi: options.openapi,
14
- dataPlatform: options.dataPlatform,
15
- onWarning: options.onWarning
16
- });
17
- if (!loaded) throw new Error('[BFF][Effect] Invalid Effect edge module. Export defineEffectBff(...) or a { api, layer } HttpApi module.');
18
- return {
19
- dispatch: (request, dispatchOptions = {})=>dispatchEffectBffRequest(loaded.handler, request, {
20
- ...dispatchOptions,
21
- prefix: options.prefix,
22
- onError: options.onError
23
- }),
24
- dispose: async ()=>{
25
- await loaded.dispose?.();
26
- }
27
- };
28
- }
29
- const createEffectBffTestHandler = createEffectBffEdgeHandler;
30
- async function createEffectBffEdgeHandler(options) {
31
- const dispatcher = await createEffectBffEdgeDispatcher(options);
32
- return {
33
- handler: dispatcher.dispatch,
34
- dispose: dispatcher.dispose
35
- };
36
- }
37
- export { createEffectOperationContext } from "./operation-context.mjs";
38
- export { createEffectBffEdgeDispatcher, createEffectBffEdgeHandler, createEffectBffTestHandler, dispatchEffectBffRequest, runWithEffectContext, useEffectContext, useOperationContext };
1
+ export * from "@modern-js/bff-effect/effect-edge";
@@ -1,2 +1,2 @@
1
- export * from "./edge-dispatcher.mjs";
2
- 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";
1
+ export * from "@modern-js/bff-effect/effect-edge";
2
+ export * from "@modern-js/plugin-bff-extensions/backend-federation/edge";
@@ -1,8 +1,16 @@
1
- import * as __rspack_external__effect_opentelemetry_66324c75 from "@effect/opentelemetry";
2
- export * from "./backend-federation.mjs";
3
- export * from "./handler.mjs";
4
- 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";
5
- export { BackendFederationManifestAdapterError, loadBackendFederatedEffectApiFromManifest, loadBackendFederationManifest, resolveBackendFederationRemoteFromManifest } from "./backend-federation-manifest.mjs";
6
- export { createEffectOperationContext, runWithEffectContext, useEffectContext, useOperationContext } from "./context.mjs";
7
- export { createEffectBffEdgeHandler, createEffectBffTestHandler, dispatchEffectBffRequest } from "./edge.mjs";
8
- export { __rspack_external__effect_opentelemetry_66324c75 as OpenTelemetry };
1
+ import * as __rspack_external_effect_Config_76cfa59d from "effect/Config";
2
+ import * as __rspack_external_effect_Effect_41060786 from "effect/Effect";
3
+ import * as __rspack_external_effect_Schema_6065f72d from "effect/Schema";
4
+ import * as __rspack_external_effect_Option_0498e63a from "effect/Option";
5
+ import * as __rspack_external_effect_Layer_69c46453 from "effect/Layer";
6
+ export * from "effect/unstable/http";
7
+ export * from "effect/unstable/httpapi";
8
+ export * from "effect/unstable/rpc";
9
+ export { OpenTelemetry, createEffectBffEdgeHandler, createEffectBffTestHandler, createEffectOperationContext, createHttpApiHandler, defineEffectBff, defineEffectRpcBff, dispatchEffectBffRequest, runWithEffectContext, useEffectContext, useOperationContext } from "@modern-js/bff-effect/effect";
10
+ 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";
11
+ export { loadBackendFederatedEffectApi } from "@modern-js/plugin-bff-extensions/backend-federation/node";
12
+ export { BackendFederationManifestAdapterError, loadBackendFederationManifest, resolveBackendFederationRemoteFromManifest } from "@modern-js/plugin-bff-extensions/backend-federation-manifest";
13
+ export { loadBackendFederatedEffectApiFromManifest } from "@modern-js/plugin-bff-extensions/backend-federation-manifest/node";
14
+ export { HttpTraceContext } from "effect/unstable/http";
15
+ export { HttpApiBuilder } from "effect/unstable/httpapi";
16
+ 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 };