@bleedingdev/modern-js-plugin-bff 3.5.0-ultramodern.6 → 3.5.0-ultramodern.75

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 (332) hide show
  1. package/dist/cjs/cli/compress.js +52 -0
  2. package/dist/cjs/cli/generator.js +152 -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 +7 -21
  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/safe-failure.js +2 -1
  70. package/dist/cjs/utils/client-generator/files.js +152 -0
  71. package/dist/cjs/utils/client-generator/generate.js +138 -0
  72. package/dist/cjs/utils/client-generator/index.js +83 -0
  73. package/dist/cjs/utils/client-generator/package-json.js +132 -0
  74. package/dist/cjs/utils/client-generator/write-package.js +125 -0
  75. package/dist/cjs/utils/clientGenerator.js +26 -303
  76. package/dist/cjs/utils/effect-client-generator/generator.js +68 -0
  77. package/dist/cjs/utils/effect-client-generator/index.js +51 -0
  78. package/dist/cjs/utils/effect-client-generator/paths.js +73 -0
  79. package/dist/cjs/utils/effect-client-generator/rendering.js +231 -0
  80. package/dist/cjs/utils/effect-client-generator/runtime.js +85 -0
  81. package/dist/cjs/utils/effect-client-generator/types.js +18 -0
  82. package/dist/cjs/utils/effectClientGenerator.js +5 -262
  83. package/dist/cjs/utils/effectSourceLoader.js +173 -0
  84. package/dist/esm/cli/compress.mjs +14 -0
  85. package/dist/esm/cli/generator.mjs +101 -0
  86. package/dist/esm/cli/prefix.mjs +9 -0
  87. package/dist/esm/cli/serverGlobalVars.mjs +76 -0
  88. package/dist/esm/cli/watch.mjs +13 -0
  89. package/dist/esm/cli.mjs +7 -121
  90. package/dist/esm/loader.mjs +19 -2
  91. package/dist/esm/runtime/data-platform/batch/queue.mjs +246 -0
  92. package/dist/esm/runtime/data-platform/batch/request.mjs +45 -0
  93. package/dist/esm/runtime/data-platform/batch/response.mjs +23 -0
  94. package/dist/esm/runtime/data-platform/batch/telemetry.mjs +23 -0
  95. package/dist/esm/runtime/data-platform/batch/url.mjs +25 -0
  96. package/dist/esm/runtime/data-platform/batch-transport.mjs +12 -0
  97. package/dist/esm/runtime/data-platform/codec.mjs +90 -0
  98. package/dist/esm/runtime/data-platform/index.mjs +6 -610
  99. package/dist/esm/runtime/data-platform/invalidation.mjs +20 -0
  100. package/dist/esm/runtime/data-platform/trace.mjs +29 -0
  101. package/dist/esm/runtime/data-platform/types.mjs +4 -0
  102. package/dist/esm/runtime/data-platform/validation.mjs +128 -0
  103. package/dist/esm/runtime/effect/adapter/constants.mjs +6 -0
  104. package/dist/esm/runtime/effect/adapter/cross-project-policy.mjs +23 -0
  105. package/dist/esm/runtime/effect/adapter/entry.mjs +44 -0
  106. package/dist/esm/runtime/effect/adapter/error-response.mjs +41 -0
  107. package/dist/esm/runtime/effect/adapter/handler.mjs +15 -0
  108. package/dist/esm/runtime/effect/adapter.mjs +27 -147
  109. package/dist/esm/runtime/effect/backend-federation/entry.mjs +61 -0
  110. package/dist/esm/runtime/effect/backend-federation/identity.mjs +41 -0
  111. package/dist/esm/runtime/effect/backend-federation/load.mjs +28 -0
  112. package/dist/esm/runtime/effect/backend-federation/plugin.mjs +15 -0
  113. package/dist/esm/runtime/effect/backend-federation/remotes.mjs +12 -0
  114. package/dist/esm/runtime/effect/backend-federation/runtime.mjs +26 -0
  115. package/dist/esm/runtime/effect/backend-federation/types.mjs +0 -0
  116. package/dist/esm/runtime/effect/backend-federation/utils.mjs +7 -0
  117. package/dist/esm/runtime/effect/backend-federation-manifest/errors.mjs +32 -0
  118. package/dist/esm/runtime/effect/backend-federation-manifest/index.mjs +4 -0
  119. package/dist/esm/runtime/effect/backend-federation-manifest/load.mjs +56 -0
  120. package/dist/esm/runtime/effect/backend-federation-manifest/metadata.mjs +42 -0
  121. package/dist/esm/runtime/effect/backend-federation-manifest/reference.mjs +76 -0
  122. package/dist/esm/runtime/effect/backend-federation-manifest/remote.mjs +30 -0
  123. package/dist/esm/runtime/effect/backend-federation-manifest/types.mjs +0 -0
  124. package/dist/esm/runtime/effect/backend-federation-manifest/validation.mjs +65 -0
  125. package/dist/esm/runtime/effect/backend-federation-manifest.mjs +1 -0
  126. package/dist/esm/runtime/effect/backend-federation.mjs +5 -0
  127. package/dist/esm/runtime/effect/dispatch.mjs +63 -0
  128. package/dist/esm/runtime/effect/edge.mjs +17 -63
  129. package/dist/esm/runtime/effect/endpoint-contracts.mjs +8 -13
  130. package/dist/esm/runtime/effect/entry-shape.mjs +36 -0
  131. package/dist/esm/runtime/effect/handler/batch-handler.mjs +123 -0
  132. package/dist/esm/runtime/effect/handler/batch.mjs +124 -0
  133. package/dist/esm/runtime/effect/handler/definition.mjs +60 -0
  134. package/dist/esm/runtime/effect/handler/envelope.mjs +63 -0
  135. package/dist/esm/runtime/effect/handler/http.mjs +58 -0
  136. package/dist/esm/runtime/effect/handler/openapi.mjs +19 -0
  137. package/dist/esm/runtime/effect/handler/routing.mjs +50 -0
  138. package/dist/esm/runtime/effect/handler/rpc.mjs +22 -0
  139. package/dist/esm/runtime/effect/handler/types.mjs +5 -0
  140. package/dist/esm/runtime/effect/handler.mjs +11 -506
  141. package/dist/esm/runtime/effect/index.mjs +5 -2
  142. package/dist/esm/runtime/effect/module.mjs +25 -82
  143. package/dist/esm/runtime/effect/rpcSerialization.mjs +16 -0
  144. package/dist/esm/runtime/effect-client/batch.mjs +35 -0
  145. package/dist/esm/runtime/effect-client/envelope.mjs +104 -0
  146. package/dist/esm/runtime/effect-client/guards.mjs +3 -0
  147. package/dist/esm/runtime/effect-client/index.mjs +27 -37
  148. package/dist/esm/runtime/effect-client/request-context.mjs +23 -0
  149. package/dist/esm/runtime/effect-client/request.mjs +28 -0
  150. package/dist/esm/runtime/effect-client/runtime.mjs +12 -178
  151. package/dist/esm/runtime/effect-client/types.mjs +0 -0
  152. package/dist/esm/runtime/safe-failure.mjs +2 -1
  153. package/dist/esm/utils/client-generator/files.mjs +68 -0
  154. package/dist/esm/utils/client-generator/generate.mjs +88 -0
  155. package/dist/esm/utils/client-generator/index.mjs +4 -0
  156. package/dist/esm/utils/client-generator/package-json.mjs +78 -0
  157. package/dist/esm/utils/client-generator/write-package.mjs +74 -0
  158. package/dist/esm/utils/clientGenerator.mjs +2 -293
  159. package/dist/esm/utils/effect-client-generator/generator.mjs +27 -0
  160. package/dist/esm/utils/effect-client-generator/index.mjs +3 -0
  161. package/dist/esm/utils/effect-client-generator/paths.mjs +25 -0
  162. package/dist/esm/utils/effect-client-generator/rendering.mjs +180 -0
  163. package/dist/esm/utils/effect-client-generator/runtime.mjs +34 -0
  164. package/dist/esm/utils/effect-client-generator/types.mjs +0 -0
  165. package/dist/esm/utils/effectClientGenerator.mjs +1 -249
  166. package/dist/esm/utils/effectSourceLoader.mjs +123 -0
  167. package/dist/esm-node/cli/compress.mjs +15 -0
  168. package/dist/esm-node/cli/generator.mjs +102 -0
  169. package/dist/esm-node/cli/prefix.mjs +10 -0
  170. package/dist/esm-node/cli/serverGlobalVars.mjs +77 -0
  171. package/dist/esm-node/cli/watch.mjs +14 -0
  172. package/dist/esm-node/cli.mjs +7 -121
  173. package/dist/esm-node/loader.mjs +19 -2
  174. package/dist/esm-node/runtime/data-platform/batch/queue.mjs +247 -0
  175. package/dist/esm-node/runtime/data-platform/batch/request.mjs +46 -0
  176. package/dist/esm-node/runtime/data-platform/batch/response.mjs +24 -0
  177. package/dist/esm-node/runtime/data-platform/batch/telemetry.mjs +24 -0
  178. package/dist/esm-node/runtime/data-platform/batch/url.mjs +26 -0
  179. package/dist/esm-node/runtime/data-platform/batch-transport.mjs +13 -0
  180. package/dist/esm-node/runtime/data-platform/codec.mjs +91 -0
  181. package/dist/esm-node/runtime/data-platform/index.mjs +6 -610
  182. package/dist/esm-node/runtime/data-platform/invalidation.mjs +21 -0
  183. package/dist/esm-node/runtime/data-platform/trace.mjs +30 -0
  184. package/dist/esm-node/runtime/data-platform/types.mjs +5 -0
  185. package/dist/esm-node/runtime/data-platform/validation.mjs +129 -0
  186. package/dist/esm-node/runtime/effect/adapter/constants.mjs +7 -0
  187. package/dist/esm-node/runtime/effect/adapter/cross-project-policy.mjs +24 -0
  188. package/dist/esm-node/runtime/effect/adapter/entry.mjs +45 -0
  189. package/dist/esm-node/runtime/effect/adapter/error-response.mjs +42 -0
  190. package/dist/esm-node/runtime/effect/adapter/handler.mjs +16 -0
  191. package/dist/esm-node/runtime/effect/adapter.mjs +28 -149
  192. package/dist/esm-node/runtime/effect/backend-federation/entry.mjs +62 -0
  193. package/dist/esm-node/runtime/effect/backend-federation/identity.mjs +42 -0
  194. package/dist/esm-node/runtime/effect/backend-federation/load.mjs +29 -0
  195. package/dist/esm-node/runtime/effect/backend-federation/plugin.mjs +16 -0
  196. package/dist/esm-node/runtime/effect/backend-federation/remotes.mjs +13 -0
  197. package/dist/esm-node/runtime/effect/backend-federation/runtime.mjs +27 -0
  198. package/dist/esm-node/runtime/effect/backend-federation/types.mjs +1 -0
  199. package/dist/esm-node/runtime/effect/backend-federation/utils.mjs +8 -0
  200. package/dist/esm-node/runtime/effect/backend-federation-manifest/errors.mjs +33 -0
  201. package/dist/esm-node/runtime/effect/backend-federation-manifest/index.mjs +5 -0
  202. package/dist/esm-node/runtime/effect/backend-federation-manifest/load.mjs +57 -0
  203. package/dist/esm-node/runtime/effect/backend-federation-manifest/metadata.mjs +43 -0
  204. package/dist/esm-node/runtime/effect/backend-federation-manifest/reference.mjs +77 -0
  205. package/dist/esm-node/runtime/effect/backend-federation-manifest/remote.mjs +31 -0
  206. package/dist/esm-node/runtime/effect/backend-federation-manifest/types.mjs +1 -0
  207. package/dist/esm-node/runtime/effect/backend-federation-manifest/validation.mjs +66 -0
  208. package/dist/esm-node/runtime/effect/backend-federation-manifest.mjs +2 -0
  209. package/dist/esm-node/runtime/effect/backend-federation.mjs +6 -0
  210. package/dist/esm-node/runtime/effect/dispatch.mjs +64 -0
  211. package/dist/esm-node/runtime/effect/edge.mjs +17 -63
  212. package/dist/esm-node/runtime/effect/endpoint-contracts.mjs +8 -13
  213. package/dist/esm-node/runtime/effect/entry-shape.mjs +37 -0
  214. package/dist/esm-node/runtime/effect/handler/batch-handler.mjs +124 -0
  215. package/dist/esm-node/runtime/effect/handler/batch.mjs +125 -0
  216. package/dist/esm-node/runtime/effect/handler/definition.mjs +61 -0
  217. package/dist/esm-node/runtime/effect/handler/envelope.mjs +64 -0
  218. package/dist/esm-node/runtime/effect/handler/http.mjs +59 -0
  219. package/dist/esm-node/runtime/effect/handler/openapi.mjs +20 -0
  220. package/dist/esm-node/runtime/effect/handler/routing.mjs +51 -0
  221. package/dist/esm-node/runtime/effect/handler/rpc.mjs +23 -0
  222. package/dist/esm-node/runtime/effect/handler/types.mjs +6 -0
  223. package/dist/esm-node/runtime/effect/handler.mjs +11 -506
  224. package/dist/esm-node/runtime/effect/index.mjs +5 -2
  225. package/dist/esm-node/runtime/effect/module.mjs +25 -82
  226. package/dist/esm-node/runtime/effect/rpcSerialization.mjs +17 -0
  227. package/dist/esm-node/runtime/effect-client/batch.mjs +36 -0
  228. package/dist/esm-node/runtime/effect-client/envelope.mjs +105 -0
  229. package/dist/esm-node/runtime/effect-client/guards.mjs +4 -0
  230. package/dist/esm-node/runtime/effect-client/index.mjs +27 -37
  231. package/dist/esm-node/runtime/effect-client/request-context.mjs +24 -0
  232. package/dist/esm-node/runtime/effect-client/request.mjs +29 -0
  233. package/dist/esm-node/runtime/effect-client/runtime.mjs +12 -178
  234. package/dist/esm-node/runtime/effect-client/types.mjs +1 -0
  235. package/dist/esm-node/runtime/safe-failure.mjs +2 -1
  236. package/dist/esm-node/utils/client-generator/files.mjs +69 -0
  237. package/dist/esm-node/utils/client-generator/generate.mjs +89 -0
  238. package/dist/esm-node/utils/client-generator/index.mjs +5 -0
  239. package/dist/esm-node/utils/client-generator/package-json.mjs +79 -0
  240. package/dist/esm-node/utils/client-generator/write-package.mjs +75 -0
  241. package/dist/esm-node/utils/clientGenerator.mjs +2 -293
  242. package/dist/esm-node/utils/effect-client-generator/generator.mjs +28 -0
  243. package/dist/esm-node/utils/effect-client-generator/index.mjs +4 -0
  244. package/dist/esm-node/utils/effect-client-generator/paths.mjs +26 -0
  245. package/dist/esm-node/utils/effect-client-generator/rendering.mjs +181 -0
  246. package/dist/esm-node/utils/effect-client-generator/runtime.mjs +36 -0
  247. package/dist/esm-node/utils/effect-client-generator/types.mjs +1 -0
  248. package/dist/esm-node/utils/effectClientGenerator.mjs +2 -251
  249. package/dist/esm-node/utils/effectSourceLoader.mjs +124 -0
  250. package/dist/types/cli/compress.d.ts +2 -0
  251. package/dist/types/cli/generator.d.ts +7 -0
  252. package/dist/types/cli/prefix.d.ts +2 -0
  253. package/dist/types/cli/serverGlobalVars.d.ts +4 -0
  254. package/dist/types/cli/watch.d.ts +1 -0
  255. package/dist/types/cli.d.ts +0 -1
  256. package/dist/types/runtime/data-platform/batch/queue.d.ts +8 -0
  257. package/dist/types/runtime/data-platform/batch/request.d.ts +13 -0
  258. package/dist/types/runtime/data-platform/batch/response.d.ts +3 -0
  259. package/dist/types/runtime/data-platform/batch/telemetry.d.ts +4 -0
  260. package/dist/types/runtime/data-platform/batch/url.d.ts +4 -0
  261. package/dist/types/runtime/data-platform/batch-transport.d.ts +3 -0
  262. package/dist/types/runtime/data-platform/codec.d.ts +17 -0
  263. package/dist/types/runtime/data-platform/index.d.ts +7 -191
  264. package/dist/types/runtime/data-platform/invalidation.d.ts +8 -0
  265. package/dist/types/runtime/data-platform/trace.d.ts +4 -0
  266. package/dist/types/runtime/data-platform/types.d.ts +146 -0
  267. package/dist/types/runtime/data-platform/validation.d.ts +29 -0
  268. package/dist/types/runtime/effect/adapter/constants.d.ts +1 -0
  269. package/dist/types/runtime/effect/adapter/cross-project-policy.d.ts +4 -0
  270. package/dist/types/runtime/effect/adapter/entry.d.ts +2 -0
  271. package/dist/types/runtime/effect/adapter/error-response.d.ts +2 -0
  272. package/dist/types/runtime/effect/adapter/handler.d.ts +7 -0
  273. package/dist/types/runtime/effect/adapter.d.ts +4 -13
  274. package/dist/types/runtime/effect/backend-federation/entry.d.ts +2 -0
  275. package/dist/types/runtime/effect/backend-federation/identity.d.ts +30 -0
  276. package/dist/types/runtime/effect/backend-federation/load.d.ts +13 -0
  277. package/dist/types/runtime/effect/backend-federation/plugin.d.ts +3 -0
  278. package/dist/types/runtime/effect/backend-federation/remotes.d.ts +2 -0
  279. package/dist/types/runtime/effect/backend-federation/runtime.d.ts +3 -0
  280. package/dist/types/runtime/effect/backend-federation/types.d.ts +73 -0
  281. package/dist/types/runtime/effect/backend-federation/utils.d.ts +2 -0
  282. package/dist/types/runtime/effect/backend-federation-manifest/errors.d.ts +11 -0
  283. package/dist/types/runtime/effect/backend-federation-manifest/index.d.ts +6 -0
  284. package/dist/types/runtime/effect/backend-federation-manifest/load.d.ts +3 -0
  285. package/dist/types/runtime/effect/backend-federation-manifest/metadata.d.ts +18 -0
  286. package/dist/types/runtime/effect/backend-federation-manifest/reference.d.ts +4 -0
  287. package/dist/types/runtime/effect/backend-federation-manifest/remote.d.ts +3 -0
  288. package/dist/types/runtime/effect/backend-federation-manifest/types.d.ts +51 -0
  289. package/dist/types/runtime/effect/backend-federation-manifest/validation.d.ts +5 -0
  290. package/dist/types/runtime/effect/backend-federation-manifest.d.ts +1 -0
  291. package/dist/types/runtime/effect/backend-federation.d.ts +7 -0
  292. package/dist/types/runtime/effect/dispatch.d.ts +13 -0
  293. package/dist/types/runtime/effect/edge.d.ts +8 -8
  294. package/dist/types/runtime/effect/endpoint-contracts.d.ts +5 -7
  295. package/dist/types/runtime/effect/entry-shape.d.ts +31 -0
  296. package/dist/types/runtime/effect/handler/batch-handler.d.ts +11 -0
  297. package/dist/types/runtime/effect/handler/batch.d.ts +17 -0
  298. package/dist/types/runtime/effect/handler/definition.d.ts +17 -0
  299. package/dist/types/runtime/effect/handler/envelope.d.ts +13 -0
  300. package/dist/types/runtime/effect/handler/http.d.ts +14 -0
  301. package/dist/types/runtime/effect/handler/openapi.d.ts +4 -0
  302. package/dist/types/runtime/effect/handler/routing.d.ts +5 -0
  303. package/dist/types/runtime/effect/handler/rpc.d.ts +7 -0
  304. package/dist/types/runtime/effect/handler/types.d.ts +148 -0
  305. package/dist/types/runtime/effect/handler.d.ts +4 -190
  306. package/dist/types/runtime/effect/index.d.ts +3 -0
  307. package/dist/types/runtime/effect/module.d.ts +3 -2
  308. package/dist/types/runtime/effect/rpcSerialization.d.ts +3 -0
  309. package/dist/types/runtime/effect-client/batch.d.ts +2 -0
  310. package/dist/types/runtime/effect-client/envelope.d.ts +15 -0
  311. package/dist/types/runtime/effect-client/guards.d.ts +2 -0
  312. package/dist/types/runtime/effect-client/index.d.ts +1 -1
  313. package/dist/types/runtime/effect-client/request-context.d.ts +3 -0
  314. package/dist/types/runtime/effect-client/request.d.ts +1 -0
  315. package/dist/types/runtime/effect-client/runtime.d.ts +2 -68
  316. package/dist/types/runtime/effect-client/types.d.ts +68 -0
  317. package/dist/types/utils/client-generator/files.d.ts +28 -0
  318. package/dist/types/utils/client-generator/generate.d.ts +26 -0
  319. package/dist/types/utils/client-generator/index.d.ts +7 -0
  320. package/dist/types/utils/client-generator/package-json.d.ts +16 -0
  321. package/dist/types/utils/client-generator/write-package.d.ts +6 -0
  322. package/dist/types/utils/clientGenerator.d.ts +2 -37
  323. package/dist/types/utils/crossProjectServerPolicy.d.ts +3 -2
  324. package/dist/types/utils/effect-client-generator/generator.d.ts +10 -0
  325. package/dist/types/utils/effect-client-generator/index.d.ts +4 -0
  326. package/dist/types/utils/effect-client-generator/paths.d.ts +5 -0
  327. package/dist/types/utils/effect-client-generator/rendering.d.ts +4 -0
  328. package/dist/types/utils/effect-client-generator/runtime.d.ts +12 -0
  329. package/dist/types/utils/effect-client-generator/types.d.ts +27 -0
  330. package/dist/types/utils/effectClientGenerator.d.ts +2 -41
  331. package/dist/types/utils/effectSourceLoader.d.ts +10 -0
  332. package/package.json +45 -33
@@ -0,0 +1,52 @@
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
+ createCompressConfig: ()=>createCompressConfig
32
+ });
33
+ const external_prefix_js_namespaceObject = require("./prefix.js");
34
+ const createCompressConfig = (devServer, prefix)=>{
35
+ if (!devServer || 'object' != typeof devServer || Array.isArray(devServer)) return;
36
+ const { compress } = devServer;
37
+ if (void 0 === compress || true === compress) {
38
+ const prefixes = (0, external_prefix_js_namespaceObject.normalizePrefixList)(prefix);
39
+ return {
40
+ filter: (req)=>!prefixes.some((item)=>req.url?.includes(item))
41
+ };
42
+ }
43
+ if (false === compress) return false;
44
+ return compress;
45
+ };
46
+ exports.createCompressConfig = __webpack_exports__.createCompressConfig;
47
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
48
+ "createCompressConfig"
49
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
50
+ Object.defineProperty(exports, '__esModule', {
51
+ value: true
52
+ });
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ createBffGenerator: ()=>createBffGenerator
41
+ });
42
+ const bff_core_namespaceObject = require("@modern-js/bff-core");
43
+ const server_utils_namespaceObject = require("@modern-js/server-utils");
44
+ const utils_namespaceObject = require("@modern-js/utils");
45
+ const external_path_namespaceObject = require("path");
46
+ var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
47
+ const clientGenerator_js_namespaceObject = require("../utils/clientGenerator.js");
48
+ var clientGenerator_js_default = /*#__PURE__*/ __webpack_require__.n(clientGenerator_js_namespaceObject);
49
+ const pluginGenerator_js_namespaceObject = require("../utils/pluginGenerator.js");
50
+ var pluginGenerator_js_default = /*#__PURE__*/ __webpack_require__.n(pluginGenerator_js_namespaceObject);
51
+ const runtimeGenerator_js_namespaceObject = require("../utils/runtimeGenerator.js");
52
+ var runtimeGenerator_js_default = /*#__PURE__*/ __webpack_require__.n(runtimeGenerator_js_namespaceObject);
53
+ const external_prefix_js_namespaceObject = require("./prefix.js");
54
+ const external_serverGlobalVars_js_namespaceObject = require("./serverGlobalVars.js");
55
+ const RUNTIME_CREATE_REQUEST = '@modern-js/plugin-bff/client';
56
+ const createBffGenerator = (api)=>{
57
+ const compileApi = async ()=>{
58
+ const { appDirectory, distDirectory, apiDirectory, sharedDirectory, moduleType } = api.getAppContext();
59
+ const modernConfig = api.getNormalizedConfig();
60
+ const distDir = external_path_default().resolve(distDirectory);
61
+ const apiDir = apiDirectory || external_path_default().resolve(appDirectory, utils_namespaceObject.API_DIR);
62
+ const sharedDir = sharedDirectory || external_path_default().resolve(appDirectory, utils_namespaceObject.SHARED_DIR);
63
+ const tsconfigPath = (0, utils_namespaceObject.resolveServerTsconfig)(appDirectory, modernConfig?.server?.tsconfigPath);
64
+ const sourceDirs = [];
65
+ if (await utils_namespaceObject.fs.pathExists(apiDir)) sourceDirs.push(apiDir);
66
+ if (await utils_namespaceObject.fs.pathExists(sharedDir)) sourceDirs.push(sharedDir);
67
+ const { alias, globalVars } = modernConfig.source;
68
+ const { alias: resolveAlias } = modernConfig.resolve;
69
+ if (sourceDirs.length > 0) {
70
+ const combinedAlias = [].concat(alias ?? []).concat(resolveAlias ?? []);
71
+ const serializedGlobalVars = (0, external_serverGlobalVars_js_namespaceObject.serializeServerGlobalVars)(globalVars);
72
+ await (0, server_utils_namespaceObject.compile)(appDirectory, {
73
+ alias: combinedAlias
74
+ }, {
75
+ sourceDirs,
76
+ distDir,
77
+ tsconfigPath,
78
+ moduleType,
79
+ throwErrorInsteadOfExit: true
80
+ });
81
+ await (0, external_serverGlobalVars_js_namespaceObject.transformServerGlobalVars)(sourceDirs.map((sourceDir)=>external_path_default().resolve(distDir, external_path_default().relative(appDirectory, sourceDir))), serializedGlobalVars);
82
+ }
83
+ };
84
+ const generate = async ()=>{
85
+ const { appDirectory, apiDirectory, lambdaDirectory, port, bffRuntimeFramework } = api.getAppContext();
86
+ const modernConfig = api.getNormalizedConfig();
87
+ const relativeDistPath = modernConfig?.output?.distPath?.root || 'dist';
88
+ const { bff } = modernConfig || {};
89
+ const prefix = (0, external_prefix_js_namespaceObject.getPrimaryPrefix)(bff?.prefix);
90
+ const httpMethodDecider = bff?.httpMethodDecider;
91
+ const apiRouter = new bff_core_namespaceObject.ApiRouter({
92
+ apiDir: apiDirectory,
93
+ appDir: appDirectory,
94
+ lambdaDir: lambdaDirectory,
95
+ prefix,
96
+ httpMethodDecider,
97
+ isBuild: true
98
+ });
99
+ const lambdaDir = apiRouter.getLambdaDir();
100
+ const existLambda = apiRouter.isExistLambda();
101
+ const runtime = bff?.runtimeCreateRequest || RUNTIME_CREATE_REQUEST;
102
+ const relativeApiPath = external_path_default().relative(appDirectory, apiDirectory);
103
+ const relativeLambdaPath = external_path_default().relative(appDirectory, lambdaDir);
104
+ await pluginGenerator_js_default()({
105
+ prefix,
106
+ appDirectory,
107
+ relativeDistPath,
108
+ relativeApiPath,
109
+ relativeLambdaPath,
110
+ runtimeFramework: 'hono' === bffRuntimeFramework ? 'hono' : 'effect'
111
+ });
112
+ await clientGenerator_js_default()({
113
+ prefix,
114
+ appDir: appDirectory,
115
+ apiDir: apiDirectory,
116
+ lambdaDir,
117
+ existLambda,
118
+ port,
119
+ requestCreator: bff?.requestCreator,
120
+ httpMethodDecider,
121
+ relativeDistPath,
122
+ relativeApiPath,
123
+ bffRuntimeFramework,
124
+ effectEntry: bff?.effect?.entry,
125
+ effectDataPlatformBatch: bff?.effect?.dataPlatform?.batch
126
+ });
127
+ await runtimeGenerator_js_default()({
128
+ runtime,
129
+ appDirectory,
130
+ relativeDistPath
131
+ });
132
+ };
133
+ const handleCrossProjectInvocation = async (isBuild = false)=>{
134
+ const { bff } = api.getNormalizedConfig();
135
+ if (bff?.crossProject) {
136
+ if (!isBuild) await compileApi();
137
+ await generate();
138
+ }
139
+ };
140
+ return {
141
+ compileApi,
142
+ generate,
143
+ handleCrossProjectInvocation
144
+ };
145
+ };
146
+ exports.createBffGenerator = __webpack_exports__.createBffGenerator;
147
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
148
+ "createBffGenerator"
149
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
150
+ Object.defineProperty(exports, '__esModule', {
151
+ value: true
152
+ });
@@ -0,0 +1,50 @@
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
+ getPrimaryPrefix: ()=>getPrimaryPrefix,
32
+ normalizePrefixList: ()=>normalizePrefixList
33
+ });
34
+ const utils_namespaceObject = require("@modern-js/utils");
35
+ const normalizePrefixList = (prefix)=>{
36
+ if (Array.isArray(prefix)) return prefix.filter(Boolean);
37
+ return [
38
+ prefix || utils_namespaceObject.DEFAULT_API_PREFIX
39
+ ];
40
+ };
41
+ const getPrimaryPrefix = (prefix)=>normalizePrefixList(prefix)[0] || utils_namespaceObject.DEFAULT_API_PREFIX;
42
+ exports.getPrimaryPrefix = __webpack_exports__.getPrimaryPrefix;
43
+ exports.normalizePrefixList = __webpack_exports__.normalizePrefixList;
44
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
45
+ "getPrimaryPrefix",
46
+ "normalizePrefixList"
47
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
48
+ Object.defineProperty(exports, '__esModule', {
49
+ value: true
50
+ });
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ serializeServerGlobalVars: ()=>serializeServerGlobalVars,
41
+ transformServerGlobalVars: ()=>transformServerGlobalVars
42
+ });
43
+ const utils_namespaceObject = require("@modern-js/utils");
44
+ const core_namespaceObject = require("@swc/core");
45
+ const external_path_namespaceObject = require("path");
46
+ var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
47
+ const RELEASE_IDENTITY_GLOBAL_NAMES = [
48
+ 'ULTRAMODERN_BUILD_MARKER',
49
+ 'ULTRAMODERN_SOURCE_REVISION',
50
+ 'ULTRAMODERN_RELEASE_VERSION'
51
+ ];
52
+ const collectJavaScriptFiles = async (directory)=>{
53
+ const entries = await utils_namespaceObject.fs.readdir(directory, {
54
+ withFileTypes: true
55
+ });
56
+ const nested = await Promise.all(entries.map(async (entry)=>{
57
+ const absolutePath = external_path_default().join(directory, entry.name);
58
+ if (entry.isDirectory()) return collectJavaScriptFiles(absolutePath);
59
+ return /\.(?:c|m)?js$/u.test(entry.name) ? [
60
+ absolutePath
61
+ ] : [];
62
+ }));
63
+ return nested.flat();
64
+ };
65
+ const serializeServerGlobalVars = (options)=>{
66
+ const globalVars = (0, utils_namespaceObject.applyOptionsChain)({}, options, {
67
+ env: 'server',
68
+ target: 'node'
69
+ });
70
+ return Object.fromEntries(Object.entries(globalVars).map(([key, value])=>{
71
+ let serialized;
72
+ try {
73
+ serialized = JSON.stringify(value);
74
+ } catch (error) {
75
+ throw new Error(`source.globalVars["${key}"] cannot be serialized exactly for BFF compilation.`, {
76
+ cause: error
77
+ });
78
+ }
79
+ if (void 0 === serialized) throw new Error(`source.globalVars["${key}"] cannot be serialized exactly for BFF compilation.`);
80
+ return [
81
+ key,
82
+ serialized
83
+ ];
84
+ }));
85
+ };
86
+ const transformServerGlobalVars = async (outputDirectories, globalVars)=>{
87
+ if (0 === Object.keys(globalVars).length) return;
88
+ const existingDirectories = (await Promise.all(outputDirectories.map(async (directory)=>await utils_namespaceObject.fs.pathExists(directory) ? directory : void 0))).filter((directory)=>Boolean(directory));
89
+ const files = (await Promise.all(existingDirectories.map(collectJavaScriptFiles))).flat();
90
+ const releaseIdentityBanner = RELEASE_IDENTITY_GLOBAL_NAMES.every((name)=>Object.hasOwn(globalVars, name)) ? `${RELEASE_IDENTITY_GLOBAL_NAMES.map((name)=>`void ${globalVars[name]};`).join('')}\n` : '';
91
+ await Promise.all(files.map(async (filename)=>{
92
+ const source = await utils_namespaceObject.fs.readFile(filename, 'utf8');
93
+ const sourceMapFilename = `${filename}.map`;
94
+ const sourceMapExists = await utils_namespaceObject.fs.pathExists(sourceMapFilename);
95
+ const inputSourceMap = sourceMapExists ? await utils_namespaceObject.fs.readFile(sourceMapFilename, 'utf8') : void 0;
96
+ const result = await (0, core_namespaceObject.transform)(`${releaseIdentityBanner}${source}`, {
97
+ filename,
98
+ inputSourceMap,
99
+ sourceMaps: sourceMapExists,
100
+ jsc: {
101
+ parser: {
102
+ syntax: "ecmascript"
103
+ },
104
+ preserveAllComments: true,
105
+ target: 'es2022',
106
+ transform: {
107
+ optimizer: {
108
+ globals: {
109
+ vars: globalVars
110
+ }
111
+ }
112
+ }
113
+ }
114
+ });
115
+ await utils_namespaceObject.fs.writeFile(filename, result.code);
116
+ if (sourceMapExists && result.map) await utils_namespaceObject.fs.writeFile(sourceMapFilename, result.map);
117
+ }));
118
+ };
119
+ exports.serializeServerGlobalVars = __webpack_exports__.serializeServerGlobalVars;
120
+ exports.transformServerGlobalVars = __webpack_exports__.transformServerGlobalVars;
121
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
122
+ "serializeServerGlobalVars",
123
+ "transformServerGlobalVars"
124
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
125
+ Object.defineProperty(exports, '__esModule', {
126
+ value: true
127
+ });
@@ -0,0 +1,51 @@
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
+ const WATCHABLE_EXTENSIONS = [
31
+ '.ts',
32
+ '.tsx',
33
+ '.js',
34
+ '.jsx',
35
+ '.mts',
36
+ '.cts',
37
+ '.mjs',
38
+ '.cjs',
39
+ '.json'
40
+ ];
41
+ const isWatchableBffFile = (filename)=>WATCHABLE_EXTENSIONS.some((ext)=>filename.endsWith(ext));
42
+ __webpack_require__.d(__webpack_exports__, {}, {
43
+ isWatchableBffFile: isWatchableBffFile
44
+ });
45
+ exports.isWatchableBffFile = __webpack_exports__.isWatchableBffFile;
46
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
47
+ "isWatchableBffFile"
48
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
49
+ Object.defineProperty(exports, '__esModule', {
50
+ value: true
51
+ });
package/dist/cjs/cli.js CHANGED
@@ -37,40 +37,16 @@ var __webpack_require__ = {};
37
37
  var __webpack_exports__ = {};
38
38
  __webpack_require__.r(__webpack_exports__);
39
39
  __webpack_require__.d(__webpack_exports__, {
40
- bffPlugin: ()=>bffPlugin,
41
- default: ()=>cli
40
+ bffPlugin: ()=>bffPlugin
42
41
  });
43
42
  const bff_core_namespaceObject = require("@modern-js/bff-core");
44
- const server_utils_namespaceObject = require("@modern-js/server-utils");
45
43
  const utils_namespaceObject = require("@modern-js/utils");
46
44
  const external_path_namespaceObject = require("path");
47
45
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
48
- const clientGenerator_js_namespaceObject = require("./utils/clientGenerator.js");
49
- var clientGenerator_js_default = /*#__PURE__*/ __webpack_require__.n(clientGenerator_js_namespaceObject);
50
- const pluginGenerator_js_namespaceObject = require("./utils/pluginGenerator.js");
51
- var pluginGenerator_js_default = /*#__PURE__*/ __webpack_require__.n(pluginGenerator_js_namespaceObject);
52
- const runtimeGenerator_js_namespaceObject = require("./utils/runtimeGenerator.js");
53
- var runtimeGenerator_js_default = /*#__PURE__*/ __webpack_require__.n(runtimeGenerator_js_namespaceObject);
54
- const RUNTIME_CREATE_REQUEST = '@modern-js/plugin-bff/client';
55
- const WATCHABLE_EXTENSIONS = [
56
- '.ts',
57
- '.tsx',
58
- '.js',
59
- '.jsx',
60
- '.mts',
61
- '.cts',
62
- '.mjs',
63
- '.cjs',
64
- '.json'
65
- ];
66
- const isWatchableBffFile = (filename)=>WATCHABLE_EXTENSIONS.some((ext)=>filename.endsWith(ext));
67
- const normalizePrefixList = (prefix)=>{
68
- if (Array.isArray(prefix)) return prefix.filter(Boolean);
69
- return [
70
- prefix || utils_namespaceObject.DEFAULT_API_PREFIX
71
- ];
72
- };
73
- const getPrimaryPrefix = (prefix)=>normalizePrefixList(prefix)[0] || utils_namespaceObject.DEFAULT_API_PREFIX;
46
+ const compress_js_namespaceObject = require("./cli/compress.js");
47
+ const generator_js_namespaceObject = require("./cli/generator.js");
48
+ const prefix_js_namespaceObject = require("./cli/prefix.js");
49
+ const watch_js_namespaceObject = require("./cli/watch.js");
74
50
  const bffPlugin = ()=>({
75
51
  name: '@modern-js/plugin-bff',
76
52
  setup: (api)=>{
@@ -82,107 +58,15 @@ const bffPlugin = ()=>({
82
58
  bffRuntimeFramework: 'hono' === userRuntimeFramework ? 'hono' : 'effect'
83
59
  });
84
60
  }
85
- const compileApi = async ()=>{
86
- const { appDirectory, distDirectory, apiDirectory, sharedDirectory, moduleType } = api.getAppContext();
87
- const modernConfig = api.getNormalizedConfig();
88
- const distDir = external_path_default().resolve(distDirectory);
89
- const apiDir = apiDirectory || external_path_default().resolve(appDirectory, utils_namespaceObject.API_DIR);
90
- const sharedDir = sharedDirectory || external_path_default().resolve(appDirectory, utils_namespaceObject.SHARED_DIR);
91
- const tsconfigPath = (0, utils_namespaceObject.resolveServerTsconfig)(appDirectory, modernConfig?.server?.tsconfigPath);
92
- const sourceDirs = [];
93
- if (await utils_namespaceObject.fs.pathExists(apiDir)) sourceDirs.push(apiDir);
94
- if (await utils_namespaceObject.fs.pathExists(sharedDir)) sourceDirs.push(sharedDir);
95
- const { alias } = modernConfig.source;
96
- const { alias: resolveAlias } = modernConfig.resolve;
97
- if (sourceDirs.length > 0) {
98
- const combinedAlias = [].concat(alias ?? []).concat(resolveAlias ?? []);
99
- await (0, server_utils_namespaceObject.compile)(appDirectory, {
100
- alias: combinedAlias
101
- }, {
102
- sourceDirs,
103
- distDir,
104
- tsconfigPath,
105
- moduleType,
106
- throwErrorInsteadOfExit: true
107
- });
108
- }
109
- };
110
- const generator = async ()=>{
111
- const { appDirectory, apiDirectory, lambdaDirectory, port, bffRuntimeFramework } = api.getAppContext();
112
- const modernConfig = api.getNormalizedConfig();
113
- const relativeDistPath = modernConfig?.output?.distPath?.root || 'dist';
114
- const { bff } = modernConfig || {};
115
- const prefix = getPrimaryPrefix(bff?.prefix);
116
- const httpMethodDecider = bff?.httpMethodDecider;
117
- const apiRouter = new bff_core_namespaceObject.ApiRouter({
118
- apiDir: apiDirectory,
119
- appDir: appDirectory,
120
- lambdaDir: lambdaDirectory,
121
- prefix,
122
- httpMethodDecider,
123
- isBuild: true
124
- });
125
- const lambdaDir = apiRouter.getLambdaDir();
126
- const existLambda = apiRouter.isExistLambda();
127
- const runtime = bff?.runtimeCreateRequest || RUNTIME_CREATE_REQUEST;
128
- const relativeApiPath = external_path_default().relative(appDirectory, apiDirectory);
129
- const relativeLambdaPath = external_path_default().relative(appDirectory, lambdaDir);
130
- await pluginGenerator_js_default()({
131
- prefix,
132
- appDirectory,
133
- relativeDistPath,
134
- relativeApiPath,
135
- relativeLambdaPath,
136
- runtimeFramework: 'hono' === bffRuntimeFramework ? 'hono' : 'effect'
137
- });
138
- await clientGenerator_js_default()({
139
- prefix,
140
- appDir: appDirectory,
141
- apiDir: apiDirectory,
142
- lambdaDir,
143
- existLambda,
144
- port,
145
- requestCreator: bff?.requestCreator,
146
- httpMethodDecider,
147
- relativeDistPath,
148
- relativeApiPath,
149
- bffRuntimeFramework,
150
- effectEntry: bff?.effect?.entry,
151
- effectDataPlatformBatch: bff?.effect?.dataPlatform?.batch
152
- });
153
- await runtimeGenerator_js_default()({
154
- runtime,
155
- appDirectory,
156
- relativeDistPath
157
- });
158
- };
159
- const handleCrossProjectInvocation = async (isBuild = false)=>{
160
- const { bff } = api.getNormalizedConfig();
161
- if (bff?.crossProject) {
162
- if (!isBuild) await compileApi();
163
- await generator();
164
- }
165
- };
61
+ const { compileApi, handleCrossProjectInvocation } = (0, generator_js_namespaceObject.createBffGenerator)(api);
166
62
  const isHono = ()=>{
167
63
  const { bffRuntimeFramework } = api.getAppContext();
168
64
  return 'hono' === bffRuntimeFramework;
169
65
  };
170
- const createCompressConfig = (devServer, prefix)=>{
171
- if (!devServer || 'object' != typeof devServer || Array.isArray(devServer)) return;
172
- const { compress } = devServer;
173
- if (void 0 === compress || true === compress) {
174
- const prefixes = normalizePrefixList(prefix);
175
- return {
176
- filter: (req)=>!prefixes.some((item)=>req.url?.includes(item))
177
- };
178
- }
179
- if (false === compress) return false;
180
- return compress;
181
- };
182
66
  api.config(async ()=>{
183
67
  const devServer = api.getConfig()?.tools?.devServer;
184
- const prefix = api.getConfig()?.bff?.prefix || utils_namespaceObject.DEFAULT_API_PREFIX;
185
- const compress = createCompressConfig(devServer, prefix);
68
+ const prefix = api.getConfig()?.bff?.prefix;
69
+ const compress = (0, compress_js_namespaceObject.createCompressConfig)(devServer, prefix);
186
70
  return {
187
71
  tools: {
188
72
  devServer: {
@@ -192,7 +76,7 @@ const bffPlugin = ()=>({
192
76
  const { port, appDirectory, apiDirectory, lambdaDirectory, bffRuntimeFramework } = api.getAppContext();
193
77
  const modernConfig = api.getNormalizedConfig();
194
78
  const { bff } = modernConfig || {};
195
- const prefix = getPrimaryPrefix(bff?.prefix);
79
+ const prefix = (0, prefix_js_namespaceObject.getPrimaryPrefix)(bff?.prefix);
196
80
  const httpMethodDecider = bff?.httpMethodDecider;
197
81
  const apiRouter = new bff_core_namespaceObject.ApiRouter({
198
82
  apiDir: apiDirectory,
@@ -282,16 +166,13 @@ const bffPlugin = ()=>({
282
166
  const relativeSharedPath = sharedDirectory ? external_path_default().relative(appDirectory, sharedDirectory) : '';
283
167
  const isApiFile = filename.startsWith(`${relativeApiPath}/`);
284
168
  const isSharedFile = relativeSharedPath ? filename.startsWith(`${relativeSharedPath}/`) : false;
285
- if (!isPrivate && ('add' === eventType || 'change' === eventType || 'unlink' === eventType) && (isApiFile || isSharedFile) && isWatchableBffFile(filename)) await handleCrossProjectInvocation();
169
+ if (!isPrivate && ('add' === eventType || 'change' === eventType || 'unlink' === eventType) && (isApiFile || isSharedFile) && (0, watch_js_namespaceObject.isWatchableBffFile)(filename)) await handleCrossProjectInvocation();
286
170
  });
287
171
  }
288
172
  });
289
- const cli = bffPlugin;
290
173
  exports.bffPlugin = __webpack_exports__.bffPlugin;
291
- exports["default"] = __webpack_exports__["default"];
292
174
  for(var __rspack_i in __webpack_exports__)if (-1 === [
293
- "bffPlugin",
294
- "default"
175
+ "bffPlugin"
295
176
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
296
177
  Object.defineProperty(exports, '__esModule', {
297
178
  value: true
@@ -44,6 +44,8 @@ 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
46
  const effectClientGenerator_js_namespaceObject = require("./utils/effectClientGenerator.js");
47
+ const EFFECT_BFF_WORKER_RUNTIME_QUERY = 'modern-bff-runtime';
48
+ const EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY = 'modern-bff-runtime-source';
47
49
  async function transformEffectRuntimeSource(source, filename) {
48
50
  const swc = await import("@swc/core");
49
51
  const result = await swc.transform(source, {
@@ -62,22 +64,36 @@ async function transformEffectRuntimeSource(source, filename) {
62
64
  });
63
65
  return result.code;
64
66
  }
67
+ function createEffectWorkerRuntimeWrapper(resourcePath) {
68
+ const sourceRequest = `${resourcePath}?${EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY}`;
69
+ return `import * as effectBffModule from ${JSON.stringify(sourceRequest)};
70
+ import { createEffectBffEdgeDispatcher } from '@modern-js/plugin-bff/effect-edge';
71
+
72
+ export const __modern_create_effect_bff_dispatcher = options =>
73
+ createEffectBffEdgeDispatcher({
74
+ ...options,
75
+ module: effectBffModule,
76
+ });
77
+ `;
78
+ }
65
79
  async function loader(source) {
66
80
  this.cacheable();
67
81
  const { resourcePath } = this;
68
82
  delete require.cache[resourcePath];
69
83
  const callback = this.async();
70
84
  const draftOptions = this.getOptions();
85
+ const resourceQueries = new URLSearchParams(this.resourceQuery);
71
86
  const effectEntryFile = (0, effectClientGenerator_js_namespaceObject.resolveEffectEntryFile)({
72
87
  appDir: draftOptions.appDir,
73
88
  apiDir: draftOptions.apiDir,
74
89
  effectEntry: draftOptions.effectEntry
75
90
  });
76
- if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && external_path_default().resolve(effectEntryFile) === external_path_default().resolve(resourcePath) && this.resourceQuery.includes('modern-bff-runtime')) {
91
+ if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && external_path_default().resolve(effectEntryFile) === external_path_default().resolve(resourcePath) && resourceQueries.has(EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY)) {
77
92
  const code = await transformEffectRuntimeSource(source, resourcePath);
78
93
  callback(void 0, code);
79
94
  return;
80
95
  }
96
+ if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && external_path_default().resolve(effectEntryFile) === external_path_default().resolve(resourcePath) && resourceQueries.has(EFFECT_BFF_WORKER_RUNTIME_QUERY)) return void callback(void 0, createEffectWorkerRuntimeWrapper(resourcePath));
81
97
  if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && external_path_default().resolve(effectEntryFile) === external_path_default().resolve(resourcePath)) {
82
98
  const code = await (0, effectClientGenerator_js_namespaceObject.generateEffectClientCode)({
83
99
  appDir: draftOptions.appDir,
@@ -88,7 +104,8 @@ async function loader(source) {
88
104
  target: draftOptions.target,
89
105
  requestCreator: draftOptions.requestCreator,
90
106
  httpMethodDecider: draftOptions.httpMethodDecider,
91
- dataPlatformBatch: draftOptions.effectDataPlatformBatch
107
+ dataPlatformBatch: draftOptions.effectDataPlatformBatch,
108
+ onDependency: (dependency)=>this.addDependency(dependency)
92
109
  });
93
110
  if (code) return void callback(void 0, code);
94
111
  callback(void 0, `throw new Error('Failed to generate Effect client for ${resourcePath}')`);