@bleedingdev/modern-js-plugin-bff 3.5.0-ultramodern.1 → 3.5.0-ultramodern.100

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/compress.js +52 -0
  2. package/dist/cjs/cli/generator.js +184 -0
  3. package/dist/cjs/cli/prefix.js +50 -0
  4. package/dist/cjs/cli/serverGlobalVars.js +127 -0
  5. package/dist/cjs/cli/watch.js +51 -0
  6. package/dist/cjs/cli.js +11 -130
  7. package/dist/cjs/loader.js +19 -2
  8. package/dist/cjs/runtime/data-platform/batch/queue.js +284 -0
  9. package/dist/cjs/runtime/data-platform/batch/request.js +98 -0
  10. package/dist/cjs/runtime/data-platform/batch/response.js +64 -0
  11. package/dist/cjs/runtime/data-platform/batch/telemetry.js +67 -0
  12. package/dist/cjs/runtime/data-platform/batch/url.js +69 -0
  13. package/dist/cjs/runtime/data-platform/batch-transport.js +59 -0
  14. package/dist/cjs/runtime/data-platform/codec.js +155 -0
  15. package/dist/cjs/runtime/data-platform/index.js +30 -633
  16. package/dist/cjs/runtime/data-platform/invalidation.js +61 -0
  17. package/dist/cjs/runtime/data-platform/trace.js +73 -0
  18. package/dist/cjs/runtime/data-platform/types.js +48 -0
  19. package/dist/cjs/runtime/data-platform/validation.js +178 -0
  20. package/dist/cjs/runtime/effect/adapter/constants.js +44 -0
  21. package/dist/cjs/runtime/effect/adapter/cross-project-policy.js +61 -0
  22. package/dist/cjs/runtime/effect/adapter/entry.js +92 -0
  23. package/dist/cjs/runtime/effect/adapter/error-response.js +79 -0
  24. package/dist/cjs/runtime/effect/adapter/handler.js +53 -0
  25. package/dist/cjs/runtime/effect/adapter.js +26 -146
  26. package/dist/cjs/runtime/effect/backend-federation/entry.js +99 -0
  27. package/dist/cjs/runtime/effect/backend-federation/identity.js +82 -0
  28. package/dist/cjs/runtime/effect/backend-federation/load.js +66 -0
  29. package/dist/cjs/runtime/effect/backend-federation/plugin.js +53 -0
  30. package/dist/cjs/runtime/effect/backend-federation/remotes.js +50 -0
  31. package/dist/cjs/runtime/effect/backend-federation/runtime.js +64 -0
  32. package/dist/cjs/runtime/effect/backend-federation/types.js +18 -0
  33. package/dist/cjs/runtime/effect/backend-federation/utils.js +48 -0
  34. package/dist/cjs/runtime/effect/backend-federation-manifest/errors.js +83 -0
  35. package/dist/cjs/runtime/effect/backend-federation-manifest/index.js +55 -0
  36. package/dist/cjs/runtime/effect/backend-federation-manifest/load.js +94 -0
  37. package/dist/cjs/runtime/effect/backend-federation-manifest/metadata.js +101 -0
  38. package/dist/cjs/runtime/effect/backend-federation-manifest/reference.js +120 -0
  39. package/dist/cjs/runtime/effect/backend-federation-manifest/remote.js +68 -0
  40. package/dist/cjs/runtime/effect/backend-federation-manifest/types.js +18 -0
  41. package/dist/cjs/runtime/effect/backend-federation-manifest/validation.js +109 -0
  42. package/dist/cjs/runtime/effect/backend-federation-manifest.js +62 -0
  43. package/dist/cjs/runtime/effect/backend-federation.js +65 -0
  44. package/dist/cjs/runtime/effect/dispatch.js +101 -0
  45. package/dist/cjs/runtime/effect/edge.js +64 -71
  46. package/dist/cjs/runtime/effect/endpoint-contracts.js +13 -22
  47. package/dist/cjs/runtime/effect/entry-shape.js +84 -0
  48. package/dist/cjs/runtime/effect/handler/batch-handler.js +161 -0
  49. package/dist/cjs/runtime/effect/handler/batch.js +195 -0
  50. package/dist/cjs/runtime/effect/handler/definition.js +101 -0
  51. package/dist/cjs/runtime/effect/handler/envelope.js +104 -0
  52. package/dist/cjs/runtime/effect/handler/http.js +96 -0
  53. package/dist/cjs/runtime/effect/handler/openapi.js +57 -0
  54. package/dist/cjs/runtime/effect/handler/routing.js +100 -0
  55. package/dist/cjs/runtime/effect/handler/rpc.js +63 -0
  56. package/dist/cjs/runtime/effect/handler/types.js +43 -0
  57. package/dist/cjs/runtime/effect/handler.js +37 -529
  58. package/dist/cjs/runtime/effect/index.js +91 -15
  59. package/dist/cjs/runtime/effect/module.js +23 -80
  60. package/dist/cjs/runtime/effect/rpcSerialization.js +54 -0
  61. package/dist/cjs/runtime/effect-client/batch.js +73 -0
  62. package/dist/cjs/runtime/effect-client/envelope.js +145 -0
  63. package/dist/cjs/runtime/effect-client/guards.js +44 -0
  64. package/dist/cjs/runtime/effect-client/index.js +6 -16
  65. package/dist/cjs/runtime/effect-client/request-context.js +64 -0
  66. package/dist/cjs/runtime/effect-client/request.js +66 -0
  67. package/dist/cjs/runtime/effect-client/runtime.js +12 -178
  68. package/dist/cjs/runtime/effect-client/types.js +18 -0
  69. package/dist/cjs/runtime/hono/adapter.js +32 -79
  70. package/dist/cjs/runtime/safe-failure.js +2 -1
  71. package/dist/cjs/server.js +19 -30
  72. package/dist/cjs/utils/client-generator/files.js +152 -0
  73. package/dist/cjs/utils/client-generator/generate.js +138 -0
  74. package/dist/cjs/utils/client-generator/index.js +83 -0
  75. package/dist/cjs/utils/client-generator/package-json.js +132 -0
  76. package/dist/cjs/utils/client-generator/write-package.js +125 -0
  77. package/dist/cjs/utils/clientGenerator.js +26 -303
  78. package/dist/cjs/utils/effect-client-generator/generator.js +68 -0
  79. package/dist/cjs/utils/effect-client-generator/index.js +51 -0
  80. package/dist/cjs/utils/effect-client-generator/paths.js +73 -0
  81. package/dist/cjs/utils/effect-client-generator/rendering.js +231 -0
  82. package/dist/cjs/utils/effect-client-generator/runtime.js +85 -0
  83. package/dist/cjs/utils/effect-client-generator/types.js +18 -0
  84. package/dist/cjs/utils/effectClientGenerator.js +5 -262
  85. package/dist/cjs/utils/effectSourceLoader.js +252 -0
  86. package/dist/esm/cli/compress.mjs +14 -0
  87. package/dist/esm/cli/generator.mjs +133 -0
  88. package/dist/esm/cli/prefix.mjs +9 -0
  89. package/dist/esm/cli/serverGlobalVars.mjs +76 -0
  90. package/dist/esm/cli/watch.mjs +13 -0
  91. package/dist/esm/cli.mjs +7 -121
  92. package/dist/esm/loader.mjs +19 -2
  93. package/dist/esm/runtime/data-platform/batch/queue.mjs +246 -0
  94. package/dist/esm/runtime/data-platform/batch/request.mjs +45 -0
  95. package/dist/esm/runtime/data-platform/batch/response.mjs +23 -0
  96. package/dist/esm/runtime/data-platform/batch/telemetry.mjs +23 -0
  97. package/dist/esm/runtime/data-platform/batch/url.mjs +25 -0
  98. package/dist/esm/runtime/data-platform/batch-transport.mjs +12 -0
  99. package/dist/esm/runtime/data-platform/codec.mjs +90 -0
  100. package/dist/esm/runtime/data-platform/index.mjs +6 -610
  101. package/dist/esm/runtime/data-platform/invalidation.mjs +20 -0
  102. package/dist/esm/runtime/data-platform/trace.mjs +29 -0
  103. package/dist/esm/runtime/data-platform/types.mjs +4 -0
  104. package/dist/esm/runtime/data-platform/validation.mjs +128 -0
  105. package/dist/esm/runtime/effect/adapter/constants.mjs +6 -0
  106. package/dist/esm/runtime/effect/adapter/cross-project-policy.mjs +23 -0
  107. package/dist/esm/runtime/effect/adapter/entry.mjs +44 -0
  108. package/dist/esm/runtime/effect/adapter/error-response.mjs +41 -0
  109. package/dist/esm/runtime/effect/adapter/handler.mjs +15 -0
  110. package/dist/esm/runtime/effect/adapter.mjs +27 -147
  111. package/dist/esm/runtime/effect/backend-federation/entry.mjs +61 -0
  112. package/dist/esm/runtime/effect/backend-federation/identity.mjs +41 -0
  113. package/dist/esm/runtime/effect/backend-federation/load.mjs +28 -0
  114. package/dist/esm/runtime/effect/backend-federation/plugin.mjs +15 -0
  115. package/dist/esm/runtime/effect/backend-federation/remotes.mjs +12 -0
  116. package/dist/esm/runtime/effect/backend-federation/runtime.mjs +26 -0
  117. package/dist/esm/runtime/effect/backend-federation/types.mjs +0 -0
  118. package/dist/esm/runtime/effect/backend-federation/utils.mjs +7 -0
  119. package/dist/esm/runtime/effect/backend-federation-manifest/errors.mjs +32 -0
  120. package/dist/esm/runtime/effect/backend-federation-manifest/index.mjs +4 -0
  121. package/dist/esm/runtime/effect/backend-federation-manifest/load.mjs +56 -0
  122. package/dist/esm/runtime/effect/backend-federation-manifest/metadata.mjs +42 -0
  123. package/dist/esm/runtime/effect/backend-federation-manifest/reference.mjs +76 -0
  124. package/dist/esm/runtime/effect/backend-federation-manifest/remote.mjs +30 -0
  125. package/dist/esm/runtime/effect/backend-federation-manifest/types.mjs +0 -0
  126. package/dist/esm/runtime/effect/backend-federation-manifest/validation.mjs +65 -0
  127. package/dist/esm/runtime/effect/backend-federation-manifest.mjs +1 -0
  128. package/dist/esm/runtime/effect/backend-federation.mjs +5 -0
  129. package/dist/esm/runtime/effect/dispatch.mjs +63 -0
  130. package/dist/esm/runtime/effect/edge.mjs +17 -63
  131. package/dist/esm/runtime/effect/endpoint-contracts.mjs +14 -14
  132. package/dist/esm/runtime/effect/entry-shape.mjs +36 -0
  133. package/dist/esm/runtime/effect/handler/batch-handler.mjs +123 -0
  134. package/dist/esm/runtime/effect/handler/batch.mjs +124 -0
  135. package/dist/esm/runtime/effect/handler/definition.mjs +60 -0
  136. package/dist/esm/runtime/effect/handler/envelope.mjs +63 -0
  137. package/dist/esm/runtime/effect/handler/http.mjs +58 -0
  138. package/dist/esm/runtime/effect/handler/openapi.mjs +19 -0
  139. package/dist/esm/runtime/effect/handler/routing.mjs +50 -0
  140. package/dist/esm/runtime/effect/handler/rpc.mjs +22 -0
  141. package/dist/esm/runtime/effect/handler/types.mjs +5 -0
  142. package/dist/esm/runtime/effect/handler.mjs +11 -506
  143. package/dist/esm/runtime/effect/index.mjs +5 -2
  144. package/dist/esm/runtime/effect/module.mjs +25 -82
  145. package/dist/esm/runtime/effect/rpcSerialization.mjs +16 -0
  146. package/dist/esm/runtime/effect-client/batch.mjs +35 -0
  147. package/dist/esm/runtime/effect-client/envelope.mjs +104 -0
  148. package/dist/esm/runtime/effect-client/guards.mjs +3 -0
  149. package/dist/esm/runtime/effect-client/index.mjs +27 -37
  150. package/dist/esm/runtime/effect-client/request-context.mjs +23 -0
  151. package/dist/esm/runtime/effect-client/request.mjs +28 -0
  152. package/dist/esm/runtime/effect-client/runtime.mjs +12 -178
  153. package/dist/esm/runtime/effect-client/types.mjs +0 -0
  154. package/dist/esm/runtime/hono/adapter.mjs +33 -80
  155. package/dist/esm/runtime/safe-failure.mjs +2 -1
  156. package/dist/esm/server.mjs +18 -29
  157. package/dist/esm/utils/client-generator/files.mjs +68 -0
  158. package/dist/esm/utils/client-generator/generate.mjs +88 -0
  159. package/dist/esm/utils/client-generator/index.mjs +4 -0
  160. package/dist/esm/utils/client-generator/package-json.mjs +78 -0
  161. package/dist/esm/utils/client-generator/write-package.mjs +74 -0
  162. package/dist/esm/utils/clientGenerator.mjs +2 -293
  163. package/dist/esm/utils/effect-client-generator/generator.mjs +27 -0
  164. package/dist/esm/utils/effect-client-generator/index.mjs +3 -0
  165. package/dist/esm/utils/effect-client-generator/paths.mjs +25 -0
  166. package/dist/esm/utils/effect-client-generator/rendering.mjs +180 -0
  167. package/dist/esm/utils/effect-client-generator/runtime.mjs +34 -0
  168. package/dist/esm/utils/effect-client-generator/types.mjs +0 -0
  169. package/dist/esm/utils/effectClientGenerator.mjs +1 -249
  170. package/dist/esm/utils/effectSourceLoader.mjs +199 -0
  171. package/dist/esm-node/cli/compress.mjs +15 -0
  172. package/dist/esm-node/cli/generator.mjs +134 -0
  173. package/dist/esm-node/cli/prefix.mjs +10 -0
  174. package/dist/esm-node/cli/serverGlobalVars.mjs +77 -0
  175. package/dist/esm-node/cli/watch.mjs +14 -0
  176. package/dist/esm-node/cli.mjs +9 -123
  177. package/dist/esm-node/loader.mjs +19 -2
  178. package/dist/esm-node/runtime/data-platform/batch/queue.mjs +247 -0
  179. package/dist/esm-node/runtime/data-platform/batch/request.mjs +46 -0
  180. package/dist/esm-node/runtime/data-platform/batch/response.mjs +24 -0
  181. package/dist/esm-node/runtime/data-platform/batch/telemetry.mjs +24 -0
  182. package/dist/esm-node/runtime/data-platform/batch/url.mjs +26 -0
  183. package/dist/esm-node/runtime/data-platform/batch-transport.mjs +13 -0
  184. package/dist/esm-node/runtime/data-platform/codec.mjs +91 -0
  185. package/dist/esm-node/runtime/data-platform/index.mjs +6 -610
  186. package/dist/esm-node/runtime/data-platform/invalidation.mjs +21 -0
  187. package/dist/esm-node/runtime/data-platform/trace.mjs +30 -0
  188. package/dist/esm-node/runtime/data-platform/types.mjs +5 -0
  189. package/dist/esm-node/runtime/data-platform/validation.mjs +129 -0
  190. package/dist/esm-node/runtime/effect/adapter/constants.mjs +7 -0
  191. package/dist/esm-node/runtime/effect/adapter/cross-project-policy.mjs +24 -0
  192. package/dist/esm-node/runtime/effect/adapter/entry.mjs +45 -0
  193. package/dist/esm-node/runtime/effect/adapter/error-response.mjs +42 -0
  194. package/dist/esm-node/runtime/effect/adapter/handler.mjs +16 -0
  195. package/dist/esm-node/runtime/effect/adapter.mjs +28 -149
  196. package/dist/esm-node/runtime/effect/backend-federation/entry.mjs +62 -0
  197. package/dist/esm-node/runtime/effect/backend-federation/identity.mjs +42 -0
  198. package/dist/esm-node/runtime/effect/backend-federation/load.mjs +29 -0
  199. package/dist/esm-node/runtime/effect/backend-federation/plugin.mjs +16 -0
  200. package/dist/esm-node/runtime/effect/backend-federation/remotes.mjs +13 -0
  201. package/dist/esm-node/runtime/effect/backend-federation/runtime.mjs +27 -0
  202. package/dist/esm-node/runtime/effect/backend-federation/types.mjs +1 -0
  203. package/dist/esm-node/runtime/effect/backend-federation/utils.mjs +8 -0
  204. package/dist/esm-node/runtime/effect/backend-federation-manifest/errors.mjs +33 -0
  205. package/dist/esm-node/runtime/effect/backend-federation-manifest/index.mjs +5 -0
  206. package/dist/esm-node/runtime/effect/backend-federation-manifest/load.mjs +57 -0
  207. package/dist/esm-node/runtime/effect/backend-federation-manifest/metadata.mjs +43 -0
  208. package/dist/esm-node/runtime/effect/backend-federation-manifest/reference.mjs +77 -0
  209. package/dist/esm-node/runtime/effect/backend-federation-manifest/remote.mjs +31 -0
  210. package/dist/esm-node/runtime/effect/backend-federation-manifest/types.mjs +1 -0
  211. package/dist/esm-node/runtime/effect/backend-federation-manifest/validation.mjs +66 -0
  212. package/dist/esm-node/runtime/effect/backend-federation-manifest.mjs +2 -0
  213. package/dist/esm-node/runtime/effect/backend-federation.mjs +6 -0
  214. package/dist/esm-node/runtime/effect/dispatch.mjs +64 -0
  215. package/dist/esm-node/runtime/effect/edge.mjs +17 -63
  216. package/dist/esm-node/runtime/effect/endpoint-contracts.mjs +14 -14
  217. package/dist/esm-node/runtime/effect/entry-shape.mjs +37 -0
  218. package/dist/esm-node/runtime/effect/handler/batch-handler.mjs +124 -0
  219. package/dist/esm-node/runtime/effect/handler/batch.mjs +125 -0
  220. package/dist/esm-node/runtime/effect/handler/definition.mjs +61 -0
  221. package/dist/esm-node/runtime/effect/handler/envelope.mjs +64 -0
  222. package/dist/esm-node/runtime/effect/handler/http.mjs +59 -0
  223. package/dist/esm-node/runtime/effect/handler/openapi.mjs +20 -0
  224. package/dist/esm-node/runtime/effect/handler/routing.mjs +51 -0
  225. package/dist/esm-node/runtime/effect/handler/rpc.mjs +23 -0
  226. package/dist/esm-node/runtime/effect/handler/types.mjs +6 -0
  227. package/dist/esm-node/runtime/effect/handler.mjs +11 -506
  228. package/dist/esm-node/runtime/effect/index.mjs +5 -2
  229. package/dist/esm-node/runtime/effect/module.mjs +25 -82
  230. package/dist/esm-node/runtime/effect/rpcSerialization.mjs +17 -0
  231. package/dist/esm-node/runtime/effect-client/batch.mjs +36 -0
  232. package/dist/esm-node/runtime/effect-client/envelope.mjs +105 -0
  233. package/dist/esm-node/runtime/effect-client/guards.mjs +4 -0
  234. package/dist/esm-node/runtime/effect-client/index.mjs +27 -37
  235. package/dist/esm-node/runtime/effect-client/request-context.mjs +24 -0
  236. package/dist/esm-node/runtime/effect-client/request.mjs +29 -0
  237. package/dist/esm-node/runtime/effect-client/runtime.mjs +12 -178
  238. package/dist/esm-node/runtime/effect-client/types.mjs +1 -0
  239. package/dist/esm-node/runtime/hono/adapter.mjs +33 -80
  240. package/dist/esm-node/runtime/safe-failure.mjs +2 -1
  241. package/dist/esm-node/server.mjs +18 -29
  242. package/dist/esm-node/utils/client-generator/files.mjs +69 -0
  243. package/dist/esm-node/utils/client-generator/generate.mjs +89 -0
  244. package/dist/esm-node/utils/client-generator/index.mjs +5 -0
  245. package/dist/esm-node/utils/client-generator/package-json.mjs +79 -0
  246. package/dist/esm-node/utils/client-generator/write-package.mjs +75 -0
  247. package/dist/esm-node/utils/clientGenerator.mjs +2 -293
  248. package/dist/esm-node/utils/effect-client-generator/generator.mjs +28 -0
  249. package/dist/esm-node/utils/effect-client-generator/index.mjs +4 -0
  250. package/dist/esm-node/utils/effect-client-generator/paths.mjs +26 -0
  251. package/dist/esm-node/utils/effect-client-generator/rendering.mjs +181 -0
  252. package/dist/esm-node/utils/effect-client-generator/runtime.mjs +36 -0
  253. package/dist/esm-node/utils/effect-client-generator/types.mjs +1 -0
  254. package/dist/esm-node/utils/effectClientGenerator.mjs +2 -251
  255. package/dist/esm-node/utils/effectSourceLoader.mjs +200 -0
  256. package/dist/esm-node/utils/pluginGenerator.mjs +2 -2
  257. package/dist/types/cli/compress.d.ts +2 -0
  258. package/dist/types/cli/generator.d.ts +7 -0
  259. package/dist/types/cli/prefix.d.ts +2 -0
  260. package/dist/types/cli/serverGlobalVars.d.ts +4 -0
  261. package/dist/types/cli/watch.d.ts +1 -0
  262. package/dist/types/cli.d.ts +0 -1
  263. package/dist/types/runtime/data-platform/batch/queue.d.ts +8 -0
  264. package/dist/types/runtime/data-platform/batch/request.d.ts +13 -0
  265. package/dist/types/runtime/data-platform/batch/response.d.ts +3 -0
  266. package/dist/types/runtime/data-platform/batch/telemetry.d.ts +4 -0
  267. package/dist/types/runtime/data-platform/batch/url.d.ts +4 -0
  268. package/dist/types/runtime/data-platform/batch-transport.d.ts +3 -0
  269. package/dist/types/runtime/data-platform/codec.d.ts +17 -0
  270. package/dist/types/runtime/data-platform/index.d.ts +7 -191
  271. package/dist/types/runtime/data-platform/invalidation.d.ts +8 -0
  272. package/dist/types/runtime/data-platform/trace.d.ts +4 -0
  273. package/dist/types/runtime/data-platform/types.d.ts +146 -0
  274. package/dist/types/runtime/data-platform/validation.d.ts +29 -0
  275. package/dist/types/runtime/effect/adapter/constants.d.ts +1 -0
  276. package/dist/types/runtime/effect/adapter/cross-project-policy.d.ts +4 -0
  277. package/dist/types/runtime/effect/adapter/entry.d.ts +2 -0
  278. package/dist/types/runtime/effect/adapter/error-response.d.ts +2 -0
  279. package/dist/types/runtime/effect/adapter/handler.d.ts +7 -0
  280. package/dist/types/runtime/effect/adapter.d.ts +4 -13
  281. package/dist/types/runtime/effect/backend-federation/entry.d.ts +2 -0
  282. package/dist/types/runtime/effect/backend-federation/identity.d.ts +30 -0
  283. package/dist/types/runtime/effect/backend-federation/load.d.ts +13 -0
  284. package/dist/types/runtime/effect/backend-federation/plugin.d.ts +3 -0
  285. package/dist/types/runtime/effect/backend-federation/remotes.d.ts +2 -0
  286. package/dist/types/runtime/effect/backend-federation/runtime.d.ts +3 -0
  287. package/dist/types/runtime/effect/backend-federation/types.d.ts +73 -0
  288. package/dist/types/runtime/effect/backend-federation/utils.d.ts +2 -0
  289. package/dist/types/runtime/effect/backend-federation-manifest/errors.d.ts +11 -0
  290. package/dist/types/runtime/effect/backend-federation-manifest/index.d.ts +6 -0
  291. package/dist/types/runtime/effect/backend-federation-manifest/load.d.ts +3 -0
  292. package/dist/types/runtime/effect/backend-federation-manifest/metadata.d.ts +18 -0
  293. package/dist/types/runtime/effect/backend-federation-manifest/reference.d.ts +4 -0
  294. package/dist/types/runtime/effect/backend-federation-manifest/remote.d.ts +3 -0
  295. package/dist/types/runtime/effect/backend-federation-manifest/types.d.ts +51 -0
  296. package/dist/types/runtime/effect/backend-federation-manifest/validation.d.ts +5 -0
  297. package/dist/types/runtime/effect/backend-federation-manifest.d.ts +1 -0
  298. package/dist/types/runtime/effect/backend-federation.d.ts +7 -0
  299. package/dist/types/runtime/effect/dispatch.d.ts +13 -0
  300. package/dist/types/runtime/effect/edge.d.ts +8 -8
  301. package/dist/types/runtime/effect/endpoint-contracts.d.ts +11 -7
  302. package/dist/types/runtime/effect/entry-shape.d.ts +31 -0
  303. package/dist/types/runtime/effect/handler/batch-handler.d.ts +11 -0
  304. package/dist/types/runtime/effect/handler/batch.d.ts +17 -0
  305. package/dist/types/runtime/effect/handler/definition.d.ts +17 -0
  306. package/dist/types/runtime/effect/handler/envelope.d.ts +13 -0
  307. package/dist/types/runtime/effect/handler/http.d.ts +14 -0
  308. package/dist/types/runtime/effect/handler/openapi.d.ts +4 -0
  309. package/dist/types/runtime/effect/handler/routing.d.ts +5 -0
  310. package/dist/types/runtime/effect/handler/rpc.d.ts +7 -0
  311. package/dist/types/runtime/effect/handler/types.d.ts +148 -0
  312. package/dist/types/runtime/effect/handler.d.ts +4 -190
  313. package/dist/types/runtime/effect/index.d.ts +3 -0
  314. package/dist/types/runtime/effect/module.d.ts +3 -2
  315. package/dist/types/runtime/effect/rpcSerialization.d.ts +3 -0
  316. package/dist/types/runtime/effect-client/batch.d.ts +2 -0
  317. package/dist/types/runtime/effect-client/envelope.d.ts +15 -0
  318. package/dist/types/runtime/effect-client/guards.d.ts +2 -0
  319. package/dist/types/runtime/effect-client/index.d.ts +1 -1
  320. package/dist/types/runtime/effect-client/request-context.d.ts +3 -0
  321. package/dist/types/runtime/effect-client/request.d.ts +1 -0
  322. package/dist/types/runtime/effect-client/runtime.d.ts +2 -68
  323. package/dist/types/runtime/effect-client/types.d.ts +68 -0
  324. package/dist/types/runtime/hono/adapter.d.ts +14 -8
  325. package/dist/types/utils/client-generator/files.d.ts +28 -0
  326. package/dist/types/utils/client-generator/generate.d.ts +26 -0
  327. package/dist/types/utils/client-generator/index.d.ts +7 -0
  328. package/dist/types/utils/client-generator/package-json.d.ts +16 -0
  329. package/dist/types/utils/client-generator/write-package.d.ts +6 -0
  330. package/dist/types/utils/clientGenerator.d.ts +2 -37
  331. package/dist/types/utils/crossProjectServerPolicy.d.ts +3 -2
  332. package/dist/types/utils/effect-client-generator/generator.d.ts +10 -0
  333. package/dist/types/utils/effect-client-generator/index.d.ts +4 -0
  334. package/dist/types/utils/effect-client-generator/paths.d.ts +5 -0
  335. package/dist/types/utils/effect-client-generator/rendering.d.ts +4 -0
  336. package/dist/types/utils/effect-client-generator/runtime.d.ts +12 -0
  337. package/dist/types/utils/effect-client-generator/types.d.ts +27 -0
  338. package/dist/types/utils/effectClientGenerator.d.ts +2 -41
  339. package/dist/types/utils/effectSourceLoader.d.ts +15 -0
  340. package/package.json +57 -33
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ applyRequestContext: ()=>applyRequestContext,
32
+ createEffectRequestContext: ()=>createEffectRequestContext
33
+ });
34
+ const external_guards_js_namespaceObject = require("./guards.js");
35
+ const createEffectRequestContext = (createRequestContextHeaders, requestContext)=>{
36
+ if (!(0, external_guards_js_namespaceObject.isRecord)(requestContext)) return {};
37
+ const headers = createRequestContextHeaders ? createRequestContextHeaders(requestContext) : {};
38
+ return {
39
+ ...requestContext,
40
+ headers
41
+ };
42
+ };
43
+ const applyRequestContext = (normalizedRequest, request, createRequestContext)=>{
44
+ if (!(0, external_guards_js_namespaceObject.isRecord)(request) || !(0, external_guards_js_namespaceObject.isRecord)(request.requestContext)) return normalizedRequest;
45
+ const requestContext = createRequestContext(request.requestContext);
46
+ const requestHeaders = (0, external_guards_js_namespaceObject.isRecord)(requestContext.headers) ? requestContext.headers : {};
47
+ if (0 === Object.keys(requestHeaders).length) return normalizedRequest;
48
+ return {
49
+ ...normalizedRequest,
50
+ headers: {
51
+ ...(0, external_guards_js_namespaceObject.isRecord)(normalizedRequest.headers) ? normalizedRequest.headers : {},
52
+ ...requestHeaders
53
+ }
54
+ };
55
+ };
56
+ exports.applyRequestContext = __webpack_exports__.applyRequestContext;
57
+ exports.createEffectRequestContext = __webpack_exports__.createEffectRequestContext;
58
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
59
+ "applyRequestContext",
60
+ "createEffectRequestContext"
61
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
62
+ Object.defineProperty(exports, '__esModule', {
63
+ value: true
64
+ });
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ normalizeRequest: ()=>normalizeRequest
32
+ });
33
+ const external_guards_js_namespaceObject = require("./guards.js");
34
+ const METHODS_WITHOUT_BODY = new Set([
35
+ 'GET',
36
+ 'DELETE',
37
+ 'HEAD',
38
+ 'OPTIONS'
39
+ ]);
40
+ const normalizeRequest = (method, request)=>{
41
+ if (!(0, external_guards_js_namespaceObject.isRecord)(request)) return {};
42
+ const payload = {
43
+ ...request
44
+ };
45
+ if ((0, external_guards_js_namespaceObject.isRecord)(request.path) && !(0, external_guards_js_namespaceObject.isRecord)(payload.params)) payload.params = request.path;
46
+ if ((0, external_guards_js_namespaceObject.isRecord)(request.urlParams) && !(0, external_guards_js_namespaceObject.isRecord)(payload.query)) payload.query = request.urlParams;
47
+ if ((0, external_guards_js_namespaceObject.isRecord)(request.headers) && !(0, external_guards_js_namespaceObject.isRecord)(payload.headers)) payload.headers = request.headers;
48
+ if ('payload' in request && void 0 !== request.payload) if ("u" > typeof FormData && request.payload instanceof FormData && !('formData' in payload)) payload.formData = request.payload;
49
+ else if (METHODS_WITHOUT_BODY.has(method)) {
50
+ if ((0, external_guards_js_namespaceObject.isRecord)(request.payload)) payload.query = (0, external_guards_js_namespaceObject.isRecord)(payload.query) ? {
51
+ ...payload.query,
52
+ ...request.payload
53
+ } : request.payload;
54
+ else if (!('body' in payload)) payload.body = request.payload;
55
+ } else if (!(0, external_guards_js_namespaceObject.isRecord)(request.payload) || 'data' in payload) {
56
+ if (!('body' in payload)) payload.body = request.payload;
57
+ } else payload.data = request.payload;
58
+ return payload;
59
+ };
60
+ exports.normalizeRequest = __webpack_exports__.normalizeRequest;
61
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
62
+ "normalizeRequest"
63
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
64
+ Object.defineProperty(exports, '__esModule', {
65
+ value: true
66
+ });
@@ -30,189 +30,17 @@ __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
31
  createGeneratedEffectClient: ()=>createGeneratedEffectClient
32
32
  });
33
- const index_js_namespaceObject = require("../data-platform/index.js");
34
- const METHODS_WITHOUT_BODY = new Set([
35
- 'GET',
36
- 'DELETE',
37
- 'HEAD',
38
- 'OPTIONS'
39
- ]);
40
- const DATA_REQUEST_MODES = new Set([
41
- 'cache-first',
42
- 'stale-while-revalidate',
43
- 'network-only'
44
- ]);
45
- const DATA_MUTATION_MODES = new Set([
46
- 'optimistic',
47
- 'pessimistic',
48
- 'fire-and-forget'
49
- ]);
50
- const isRecord = (value)=>'object' == typeof value && null !== value;
51
- const stringOrUndefined = (value)=>'string' == typeof value && value.length > 0 ? value : void 0;
52
- const isDataRequestMode = (value)=>'string' == typeof value && DATA_REQUEST_MODES.has(value);
53
- const isDataMutationMode = (value)=>'string' == typeof value && DATA_MUTATION_MODES.has(value);
54
- const normalizeOrigin = (value)=>{
55
- if ('string' != typeof value || 0 === value.length) return;
56
- try {
57
- return new URL(value).origin;
58
- } catch {
59
- return;
60
- }
61
- };
62
- const resolveRuntimeFetch = ()=>'function' == typeof fetch ? fetch.bind(globalThis) : void 0;
63
- const resolveOrigin = (defaultOrigin)=>{
64
- if ("u" > typeof window && window.location && 'string' == typeof window.location.origin && window.location.origin) return window.location.origin;
65
- const globalLocation = globalThis?.location;
66
- if (globalLocation && 'string' == typeof globalLocation.origin && globalLocation.origin) return globalLocation.origin;
67
- return defaultOrigin;
68
- };
69
- const normalizeRequest = (method, request)=>{
70
- if (!isRecord(request)) return {};
71
- const payload = {
72
- ...request
73
- };
74
- if (isRecord(request.path) && !isRecord(payload.params)) payload.params = request.path;
75
- if (isRecord(request.urlParams) && !isRecord(payload.query)) payload.query = request.urlParams;
76
- if (isRecord(request.headers) && !isRecord(payload.headers)) payload.headers = request.headers;
77
- if ('payload' in request && void 0 !== request.payload) if ("u" > typeof FormData && request.payload instanceof FormData && !('formData' in payload)) payload.formData = request.payload;
78
- else if (METHODS_WITHOUT_BODY.has(method)) {
79
- if (isRecord(request.payload)) payload.query = isRecord(payload.query) ? {
80
- ...payload.query,
81
- ...request.payload
82
- } : request.payload;
83
- else if (!('body' in payload)) payload.body = request.payload;
84
- } else if (!isRecord(request.payload) || 'data' in payload) {
85
- if (!('body' in payload)) payload.body = request.payload;
86
- } else payload.data = request.payload;
87
- return payload;
88
- };
89
- const resolveTargetOrigin = (dataPlatform, defaultOrigin)=>{
90
- const explicitTargetOrigin = stringOrUndefined(dataPlatform.targetOrigin) || stringOrUndefined(dataPlatform.endpointOrigin);
91
- if (explicitTargetOrigin) return explicitTargetOrigin;
92
- return defaultOrigin;
93
- };
94
- const shouldAttachEnvelopeHeader = (dataPlatform, defaultOrigin)=>{
95
- if (true === dataPlatform.allowCrossOriginEnvelope) return true;
96
- const currentOrigin = normalizeOrigin(resolveOrigin(defaultOrigin));
97
- const targetOrigin = normalizeOrigin(resolveTargetOrigin(dataPlatform, defaultOrigin));
98
- if (!currentOrigin || !targetOrigin) return true;
99
- return currentOrigin === targetOrigin;
100
- };
101
- const toEnvelopeInput = (normalizedRequest)=>{
102
- const payload = {};
103
- if (isRecord(normalizedRequest.params)) payload.path = normalizedRequest.params;
104
- if (isRecord(normalizedRequest.query)) payload.query = normalizedRequest.query;
105
- if ('data' in normalizedRequest && void 0 !== normalizedRequest.data) payload.data = normalizedRequest.data;
106
- if ('body' in normalizedRequest && void 0 !== normalizedRequest.body) payload.body = normalizedRequest.body;
107
- if ("u" > typeof FormData && normalizedRequest.formData instanceof FormData) payload.formData = Array.from(normalizedRequest.formData.entries()).map(([key, value])=>[
108
- key,
109
- String(value)
110
- ]);
111
- if ("u" > typeof URLSearchParams && normalizedRequest.formUrlencoded instanceof URLSearchParams) payload.formUrlencoded = normalizedRequest.formUrlencoded.toString();
112
- return payload;
113
- };
33
+ const external_batch_js_namespaceObject = require("./batch.js");
34
+ const external_envelope_js_namespaceObject = require("./envelope.js");
35
+ const external_request_context_js_namespaceObject = require("./request-context.js");
114
36
  const createGeneratedEffectClient = (manifest, config, requestRuntime)=>{
115
37
  const createRequest = requestRuntime.createRequest;
116
38
  const configureRequest = 'function' == typeof requestRuntime.configure ? requestRuntime.configure : void 0;
117
39
  const createRequestContextHeaders = 'function' == typeof requestRuntime.createRequestContextHeaders ? requestRuntime.createRequestContextHeaders : void 0;
118
- const defaultOrigin = config.defaultOrigin;
119
40
  const httpMethodDecider = config.httpMethodDecider || 'functionName';
120
41
  const port = config.useEnvPort && "u" > typeof process && process.env && process.env.PORT ? process.env.PORT : config.port;
121
- if (config.requestId && configureRequest) {
122
- const configurePayload = {
123
- requestId: config.requestId,
124
- requireEnvelope: true,
125
- identityBinding: {
126
- enabled: true,
127
- strict: true
128
- },
129
- operationContract: {
130
- enabled: true,
131
- strict: true,
132
- requireSchemaHash: true,
133
- requireOperationVersion: true
134
- },
135
- setDomain: ()=>resolveOrigin(defaultOrigin)
136
- };
137
- const runtimeFetch = resolveRuntimeFetch();
138
- if (false !== config.batch.enabled && runtimeFetch) configurePayload.request = (0, index_js_namespaceObject.createDataBatchTransport)({
139
- fetch: runtimeFetch,
140
- endpoint: config.batch.endpoint,
141
- flushIntervalMs: config.batch.flushIntervalMs,
142
- maxBatchSize: config.batch.maxBatchSize,
143
- maxBatchBytes: config.batch.maxBatchBytes,
144
- requestTimeoutMs: config.batch.requestTimeoutMs,
145
- allowedMethods: config.batch.allowedMethods
146
- });
147
- configureRequest(configurePayload);
148
- }
149
- const createEffectRequestContext = (requestContext)=>{
150
- if (!isRecord(requestContext)) return {};
151
- const headers = createRequestContextHeaders ? createRequestContextHeaders(requestContext) : {};
152
- return {
153
- ...requestContext,
154
- headers
155
- };
156
- };
157
- const applyRequestContext = (normalizedRequest, request)=>{
158
- if (!isRecord(request) || !isRecord(request.requestContext)) return normalizedRequest;
159
- const requestContext = createEffectRequestContext(request.requestContext);
160
- const requestHeaders = isRecord(requestContext.headers) ? requestContext.headers : {};
161
- if (0 === Object.keys(requestHeaders).length) return normalizedRequest;
162
- return {
163
- ...normalizedRequest,
164
- headers: {
165
- ...requestHeaders,
166
- ...isRecord(normalizedRequest.headers) ? normalizedRequest.headers : {}
167
- }
168
- };
169
- };
170
- const prepareEffectRequest = (endpoint, operation, request)=>{
171
- const normalizedRequest = applyRequestContext(normalizeRequest(endpoint.method, request), request);
172
- const dataPlatform = isRecord(request) && isRecord(request.dataPlatform) ? request.dataPlatform : {};
173
- const strictEnvelope = true === dataPlatform.requireEnvelope || true === dataPlatform.strict;
174
- if (!strictEnvelope && !shouldAttachEnvelopeHeader(dataPlatform, defaultOrigin)) return normalizedRequest;
175
- try {
176
- const namespace = stringOrUndefined(dataPlatform.appNamespace) || config.appNamespace;
177
- const origin = stringOrUndefined(dataPlatform.origin) || resolveOrigin(defaultOrigin);
178
- const envelope = (0, index_js_namespaceObject.createRequestEnvelope)({
179
- operation: {
180
- ...operation,
181
- appNamespace: namespace
182
- },
183
- scope: {
184
- appNamespace: namespace,
185
- origin,
186
- tenantId: stringOrUndefined(dataPlatform.tenantId),
187
- userId: stringOrUndefined(dataPlatform.userId),
188
- sessionId: stringOrUndefined(dataPlatform.sessionId)
189
- },
190
- requestInput: {
191
- method: endpoint.method,
192
- routePath: endpoint.routePath,
193
- payload: toEnvelopeInput(normalizedRequest)
194
- },
195
- requestMode: isDataRequestMode(dataPlatform.requestMode) ? dataPlatform.requestMode : void 0,
196
- mutationMode: isDataMutationMode(dataPlatform.mutationMode) ? dataPlatform.mutationMode : void 0,
197
- selectionPlan: isRecord(dataPlatform.selectionPlan) ? dataPlatform.selectionPlan : void 0,
198
- traceContext: isRecord(dataPlatform.traceContext) ? dataPlatform.traceContext : void 0,
199
- requireTraceContext: true === dataPlatform.requireTraceContext
200
- });
201
- const headerName = stringOrUndefined(dataPlatform.envelopeHeader) || index_js_namespaceObject.DEFAULT_DATA_ENVELOPE_HEADER;
202
- const headers = isRecord(normalizedRequest.headers) ? {
203
- ...normalizedRequest.headers
204
- } : {};
205
- if (false === dataPlatform.batch) headers[index_js_namespaceObject.DEFAULT_DATA_BATCH_HEADER] = 'off';
206
- headers[headerName] = (0, index_js_namespaceObject.encodeRequestEnvelopeHeader)(envelope);
207
- return {
208
- ...normalizedRequest,
209
- headers
210
- };
211
- } catch (error) {
212
- if (strictEnvelope) throw error;
213
- return normalizedRequest;
214
- }
215
- };
42
+ (0, external_batch_js_namespaceObject.configureGeneratedEffectClientRuntime)(config, configureRequest);
43
+ const createEffectRequestContext = (requestContext)=>(0, external_request_context_js_namespaceObject.createEffectRequestContext)(createRequestContextHeaders, requestContext);
216
44
  const client = {};
217
45
  const operationManifest = {};
218
46
  for (const endpoint of manifest.endpoints){
@@ -245,7 +73,13 @@ const createGeneratedEffectClient = (manifest, config, requestRuntime)=>{
245
73
  requestId: config.requestId
246
74
  } : {}
247
75
  });
248
- const call = (request = {})=>sender(prepareEffectRequest(endpoint, operation, request));
76
+ const call = (request = {})=>sender((0, external_envelope_js_namespaceObject.prepareEffectRequest)({
77
+ endpoint,
78
+ operation,
79
+ request,
80
+ config,
81
+ createEffectRequestContext
82
+ }));
249
83
  client[endpoint.group] ??= {};
250
84
  client[endpoint.group][endpoint.endpoint] = call;
251
85
  operationManifest[endpoint.group] ??= {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -39,7 +39,6 @@ __webpack_require__.r(__webpack_exports__);
39
39
  __webpack_require__.d(__webpack_exports__, {
40
40
  HonoAdapter: ()=>HonoAdapter
41
41
  });
42
- const server_core_namespaceObject = require("@modern-js/server-core");
43
42
  const utils_namespaceObject = require("@modern-js/utils");
44
43
  const createHonoRoutes_js_namespaceObject = require("../../utils/createHonoRoutes.js");
45
44
  var createHonoRoutes_js_default = /*#__PURE__*/ __webpack_require__.n(createHonoRoutes_js_namespaceObject);
@@ -50,17 +49,9 @@ const before = [
50
49
  'custom-server-middleware',
51
50
  'render'
52
51
  ];
53
- const kParentHonoVars = Symbol.for('modernjs.hono.parentVars');
54
52
  class HonoAdapter {
55
- wrapInArray(handler) {
56
- if (Array.isArray(handler)) return handler;
57
- return [
58
- handler
59
- ];
60
- }
61
53
  constructor(api){
62
54
  this.apiMiddleware = [];
63
- this.apiServer = null;
64
55
  this.isHono = true;
65
56
  this.prefix = '/api';
66
57
  this.setHandlers = async ()=>{
@@ -71,7 +62,7 @@ class HonoAdapter {
71
62
  name: 'hono-bff-api',
72
63
  path,
73
64
  method,
74
- handler,
65
+ handler: this.withErrorBoundary(handler),
75
66
  order: 'post',
76
67
  before
77
68
  }));
@@ -92,85 +83,47 @@ class HonoAdapter {
92
83
  });
93
84
  }
94
85
  };
95
- this.registerApiRoutes = async ()=>{
96
- if (!this.isHono) return;
97
- this.apiServer = new server_core_namespaceObject.Hono();
98
- this.apiServer.use('*', server_core_namespaceObject.run);
99
- this.apiServer.use('*', async (c, next)=>{
100
- const nodeReq = c.env?.node?.req;
101
- const parentVars = nodeReq?.[kParentHonoVars];
102
- if (parentVars && 'object' == typeof parentVars) {
103
- delete nodeReq[kParentHonoVars];
104
- for (const [key, value] of Object.entries(parentVars))if (void 0 === c.get(key)) c.set(key, value);
105
- }
106
- await next();
107
- });
108
- this.apiMiddleware.forEach(({ path = '*', method = 'all', handler })=>{
109
- const handlers = this.wrapInArray(handler);
110
- if (0 === handlers.length) return;
111
- const firstHandler = handlers[0];
112
- const restHandlers = handlers.slice(1);
113
- const m = method;
114
- const server = this.apiServer;
115
- if (!server) return;
116
- const register = server[m];
117
- register.call(server, path, firstHandler, ...restHandlers);
118
- });
119
- this.apiServer.onError(async (err, c)=>{
120
- try {
121
- const serverConfig = this.api.getServerConfig();
122
- const onErrorHandler = serverConfig?.onError;
123
- if (onErrorHandler) {
124
- const result = await onErrorHandler(err, c);
125
- if (result instanceof Response) return result;
126
- } else utils_namespaceObject.logger.error(err);
127
- } catch (configError) {
128
- utils_namespaceObject.logger.error(`Error in serverConfig.onError handler: ${configError}`);
129
- }
130
- return (0, external_safe_failure_js_namespaceObject.createSafeFailureResponse)(err);
131
- });
132
- };
133
- this.registerMiddleware = async (options)=>{
134
- const { prefix } = options;
86
+ this.registerMiddleware = async (options = {})=>{
135
87
  const { bffRuntimeFramework } = this.api.getServerContext();
136
88
  if ('hono' !== bffRuntimeFramework) {
137
89
  this.isHono = false;
138
90
  return;
139
91
  }
92
+ const { prefix } = options;
140
93
  this.prefix = prefix || this.prefix;
141
94
  const { middlewares: globalMiddlewares } = this.api.getServerContext();
142
95
  await this.setHandlers();
143
- if ((0, utils_namespaceObject.isProd)()) globalMiddlewares.push(...this.apiMiddleware);
144
- else {
145
- await this.registerApiRoutes();
146
- const dynamicApiMiddleware = {
147
- name: 'dynamic-bff-handler',
148
- path: `${prefix}/*`,
149
- method: 'all',
150
- order: 'post',
151
- before,
152
- handler: async (c, next)=>{
153
- if (this.apiServer) {
154
- const nodeReq = c.env?.node?.req;
155
- if (nodeReq) {
156
- const parentVars = c?.var;
157
- nodeReq[kParentHonoVars] = parentVars && 'object' == typeof parentVars ? {
158
- ...parentVars
159
- } : parentVars;
160
- }
161
- const response = await this.apiServer.fetch(c.req.raw, c.env);
162
- if (404 !== response.status) return new Response(response.body, response);
163
- }
164
- await next();
165
- }
166
- };
167
- globalMiddlewares.push(dynamicApiMiddleware);
96
+ globalMiddlewares.push(...this.apiMiddleware);
97
+ };
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}`);
168
107
  }
108
+ return (0, external_safe_failure_js_namespaceObject.createSafeFailureResponse)(error);
169
109
  };
170
- this.onApiHandlersUpdated = async ()=>{
171
- if (!this.isHono) return;
172
- await this.setHandlers();
173
- await this.registerApiRoutes();
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;
174
127
  };
175
128
  this.api = api;
176
129
  }
@@ -35,6 +35,7 @@ const SAFE_FAILURE_CODES = {
35
35
  500: 'INTERNAL_SERVER_ERROR',
36
36
  503: 'SERVICE_UNAVAILABLE'
37
37
  };
38
+ const INVALID_HTTP_HEADER_VALUE = /[\0-\x08\x0a-\x1f\x7f]/u;
38
39
  const readErrorProperty = (error, key)=>{
39
40
  if ('object' != typeof error || null === error || !(key in error)) return;
40
41
  return error[key];
@@ -47,7 +48,7 @@ const normalizeRetryAfter = (value)=>{
47
48
  if ('number' == typeof value && Number.isFinite(value) && value >= 0) return String(Math.ceil(value));
48
49
  if ('string' == typeof value) {
49
50
  const trimmed = value.trim();
50
- return trimmed.length > 0 ? trimmed : void 0;
51
+ return trimmed.length > 0 && !INVALID_HTTP_HEADER_VALUE.test(trimmed) ? trimmed : void 0;
51
52
  }
52
53
  if (value instanceof Date) return value.toUTCString();
53
54
  };
@@ -43,15 +43,17 @@ const bff_core_namespaceObject = require("@modern-js/bff-core");
43
43
  const utils_namespaceObject = require("@modern-js/utils");
44
44
  const external_path_namespaceObject = require("path");
45
45
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
46
- const adapter_js_namespaceObject = require("./runtime/effect/adapter.js");
47
- const hono_adapter_js_namespaceObject = require("./runtime/hono/adapter.js");
48
- const RUNTIME_ADAPTER_FACTORIES = {
49
- hono: [
50
- (api)=>new hono_adapter_js_namespaceObject.HonoAdapter(api)
51
- ],
52
- effect: [
53
- (api)=>new adapter_js_namespaceObject.EffectAdapter(api)
54
- ]
46
+ const adapter_js_namespaceObject = require("./runtime/hono/adapter.js");
47
+ const RUNTIME_ADAPTER_LOADERS = {
48
+ hono: async (api)=>[
49
+ new adapter_js_namespaceObject.HonoAdapter(api)
50
+ ],
51
+ effect: async (api)=>{
52
+ const { EffectAdapter } = await import("./runtime/effect/adapter.js");
53
+ return [
54
+ new EffectAdapter(api)
55
+ ];
56
+ }
55
57
  };
56
58
  const normalizePrefixList = (prefix)=>{
57
59
  if (Array.isArray(prefix)) return prefix.filter(Boolean);
@@ -64,9 +66,6 @@ function resolveRuntimeFramework(runtimeFramework) {
64
66
  return 'hono' === runtimeFramework ? 'hono' : 'effect';
65
67
  }
66
68
  class Storage {
67
- reset() {
68
- this.middlewares = [];
69
- }
70
69
  constructor(){
71
70
  this.middlewares = [];
72
71
  }
@@ -78,7 +77,6 @@ const server = ()=>({
78
77
  let apiRouter = null;
79
78
  const appContext = api.getServerContext();
80
79
  const runtimeFramework = resolveRuntimeFramework(appContext.bffRuntimeFramework);
81
- const runtimeAdapters = RUNTIME_ADAPTER_FACTORIES[runtimeFramework].map((createAdapter)=>createAdapter(api));
82
80
  api.onPrepare(async ()=>{
83
81
  const appContext = api.getServerContext();
84
82
  const { render } = appContext;
@@ -124,29 +122,20 @@ const server = ()=>({
124
122
  ]
125
123
  });
126
124
  }
125
+ const runtimeAdapters = await RUNTIME_ADAPTER_LOADERS[runtimeFramework](api);
127
126
  await Promise.all(runtimeAdapters.map((adapter)=>adapter.registerMiddleware({
128
127
  prefix,
129
128
  enableHandleWeb
130
129
  })));
131
130
  });
132
131
  api.onReset(async ({ event })=>{
133
- storage.reset();
134
- const appContext = api.getServerContext();
135
- const { middlewares } = storage;
136
- api.updateServerContext({
137
- ...appContext,
138
- apiMiddlewares: middlewares
139
- });
140
- if ('file-change' === event.type) {
141
- if ('hono' === runtimeFramework && apiRouter) {
142
- const apiHandlerInfos = await apiRouter.getApiHandlers();
143
- const appContext = api.getServerContext();
144
- api.updateServerContext({
145
- ...appContext,
146
- apiHandlerInfos
147
- });
148
- }
149
- await Promise.all(runtimeAdapters.map((adapter)=>adapter.onApiHandlersUpdated?.()));
132
+ if ('file-change' === event.type && apiRouter) {
133
+ const appContext = api.getServerContext();
134
+ const apiHandlerInfos = await apiRouter.getApiHandlers();
135
+ api.updateServerContext({
136
+ ...appContext,
137
+ apiHandlerInfos
138
+ });
150
139
  }
151
140
  });
152
141
  const prepareApiServer = async (input, next)=>{