@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
@@ -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);
@@ -79,7 +79,7 @@ async function clientGenerator(draftOptions) {
79
79
  return result;
80
80
  };
81
81
  const writeClientTypeFacade = async (source, clientCode)=>{
82
- if (!await utils_namespaceObject.fs.pathExists(external_path_default().resolve(source.relativeTargetDistDir))) throw new external_type_facade_js_namespaceObject.MissingClientDeclarationError(source.resourcePath, source.relativeTargetDistDir);
82
+ if (!await utils_namespaceObject.fs.pathExists(external_path_default().resolve(source.relativeTargetDistDir))) throw (0, external_type_facade_js_namespaceObject.createMissingClientDeclarationError)(source.resourcePath, source.relativeTargetDistDir);
83
83
  const clientTypesFile = source.targetDir.replace(/\.js$/, '.d.ts');
84
84
  await (0, external_files_js_namespaceObject.writeTargetFile)(external_path_default().resolve(clientTypesFile), (0, external_type_facade_js_namespaceObject.buildClientTypeFacade)(clientTypesFile, source.relativeTargetDistDir, external_type_facade_js_namespaceObject.DEFAULT_EXPORT_RE.test(clientCode), true));
85
85
  };
@@ -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,32 +107,34 @@ 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
  }
127
129
  }
128
130
  utils_namespaceObject.logger.info("Client bundle generate succeed");
129
131
  } catch (error) {
130
- if (error instanceof external_type_facade_js_namespaceObject.MissingClientDeclarationError) throw error;
132
+ if ((0, external_type_facade_js_namespaceObject.isMissingClientDeclarationError)(error)) throw error;
131
133
  utils_namespaceObject.logger.error(`Client bundle generate failed: ${error}`);
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;
@@ -37,7 +37,6 @@ var __webpack_require__ = {};
37
37
  var __webpack_exports__ = {};
38
38
  __webpack_require__.r(__webpack_exports__);
39
39
  __webpack_require__.d(__webpack_exports__, {
40
- MissingClientDeclarationError: ()=>external_type_facade_js_namespaceObject.MissingClientDeclarationError,
41
40
  buildClientTypeFacade: ()=>external_type_facade_js_namespaceObject.buildClientTypeFacade,
42
41
  clientGenerator: ()=>external_generate_js_namespaceObject.clientGenerator,
43
42
  createFileDetails: ()=>external_files_js_namespaceObject.createFileDetails,
@@ -56,7 +55,6 @@ var external_generate_js_default = /*#__PURE__*/ __webpack_require__.n(external_
56
55
  const external_package_json_js_namespaceObject = require("./package-json.js");
57
56
  const external_type_facade_js_namespaceObject = require("./type-facade.js");
58
57
  const external_write_package_js_namespaceObject = require("./write-package.js");
59
- exports.MissingClientDeclarationError = __webpack_exports__.MissingClientDeclarationError;
60
58
  exports.buildClientTypeFacade = __webpack_exports__.buildClientTypeFacade;
61
59
  exports.clientGenerator = __webpack_exports__.clientGenerator;
62
60
  exports.createFileDetails = __webpack_exports__.createFileDetails;
@@ -69,7 +67,6 @@ exports.setPackage = __webpack_exports__.setPackage;
69
67
  exports.writeClientModuleBoundary = __webpack_exports__.writeClientModuleBoundary;
70
68
  exports.writeTargetFile = __webpack_exports__.writeTargetFile;
71
69
  for(var __rspack_i in __webpack_exports__)if (-1 === [
72
- "MissingClientDeclarationError",
73
70
  "buildClientTypeFacade",
74
71
  "clientGenerator",
75
72
  "createFileDetails",
@@ -38,19 +38,23 @@ var __webpack_exports__ = {};
38
38
  __webpack_require__.r(__webpack_exports__);
39
39
  __webpack_require__.d(__webpack_exports__, {
40
40
  DEFAULT_EXPORT_RE: ()=>DEFAULT_EXPORT_RE,
41
- MissingClientDeclarationError: ()=>MissingClientDeclarationError,
42
- buildClientTypeFacade: ()=>buildClientTypeFacade
41
+ buildClientTypeFacade: ()=>buildClientTypeFacade,
42
+ createMissingClientDeclarationError: ()=>createMissingClientDeclarationError,
43
+ isMissingClientDeclarationError: ()=>isMissingClientDeclarationError
43
44
  });
44
45
  const external_path_namespaceObject = require("path");
45
46
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
46
47
  const external_files_js_namespaceObject = require("./files.js");
47
48
  const DEFAULT_EXPORT_RE = /(^|[\s;])export\s+default\b/;
48
- class MissingClientDeclarationError extends Error {
49
- constructor(resourcePath, expectedDeclaration){
50
- super(`[plugin-bff] No declaration was emitted for "${resourcePath}", so the published client type for it cannot be generated (expected "${expectedDeclaration}"). Enable "declaration": true in the server tsconfig used by this app.`);
51
- this.name = 'MissingClientDeclarationError';
52
- }
49
+ const missingClientDeclarationCause = Symbol('MissingClientDeclarationError');
50
+ function createMissingClientDeclarationError(resourcePath, expectedDeclaration) {
51
+ const error = new Error(`[plugin-bff] No declaration was emitted for "${resourcePath}", so the published client type for it cannot be generated (expected "${expectedDeclaration}"). Enable "declaration": true in the server tsconfig used by this app.`, {
52
+ cause: missingClientDeclarationCause
53
+ });
54
+ error.name = 'MissingClientDeclarationError';
55
+ return error;
53
56
  }
57
+ const isMissingClientDeclarationError = (error)=>error instanceof Error && error.cause === missingClientDeclarationCause;
54
58
  function buildClientTypeFacade(clientTypesFile, originTypesFile, hasDefaultExport, esm = false) {
55
59
  const originNoExt = originTypesFile.replace(/\.d\.ts$/, '');
56
60
  let specifier = (0, external_files_js_namespaceObject.toPosixPath)(external_path_default().relative(external_path_default().dirname(clientTypesFile), originNoExt));
@@ -62,12 +66,14 @@ function buildClientTypeFacade(clientTypesFile, originTypesFile, hasDefaultExpor
62
66
  return `${lines.join('\n')}\n`;
63
67
  }
64
68
  exports.DEFAULT_EXPORT_RE = __webpack_exports__.DEFAULT_EXPORT_RE;
65
- exports.MissingClientDeclarationError = __webpack_exports__.MissingClientDeclarationError;
66
69
  exports.buildClientTypeFacade = __webpack_exports__.buildClientTypeFacade;
70
+ exports.createMissingClientDeclarationError = __webpack_exports__.createMissingClientDeclarationError;
71
+ exports.isMissingClientDeclarationError = __webpack_exports__.isMissingClientDeclarationError;
67
72
  for(var __rspack_i in __webpack_exports__)if (-1 === [
68
73
  "DEFAULT_EXPORT_RE",
69
- "MissingClientDeclarationError",
70
- "buildClientTypeFacade"
74
+ "buildClientTypeFacade",
75
+ "createMissingClientDeclarationError",
76
+ "isMissingClientDeclarationError"
71
77
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
72
78
  Object.defineProperty(exports, '__esModule', {
73
79
  value: true
@@ -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";