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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/dist/cjs/cli/generator.js +45 -53
  2. package/dist/cjs/cli/serverGlobalVars.js +1 -1
  3. package/dist/cjs/cli.js +1 -0
  4. package/dist/cjs/loader.js +7 -18
  5. package/dist/cjs/runtime/data-platform/index.js +32 -94
  6. package/dist/cjs/runtime/effect/edge-dispatcher.js +5 -91
  7. package/dist/cjs/runtime/effect/edge.js +11 -45
  8. package/dist/cjs/runtime/effect/index.js +173 -55
  9. package/dist/cjs/runtime/effect-client/index.js +32 -166
  10. package/dist/cjs/runtime/effect-client/runtime.js +32 -70
  11. package/dist/cjs/runtime/hono/adapter.js +13 -54
  12. package/dist/cjs/server.js +2 -2
  13. package/dist/cjs/utils/client-generator/generate.js +11 -8
  14. package/dist/cjs/utils/client-generator/index.js +0 -3
  15. package/dist/cjs/utils/client-generator/type-facade.js +16 -10
  16. package/dist/cjs/utils/crossProjectApiPlugin.js +5 -1
  17. package/dist/cjs/utils/pluginGenerator.js +4 -4
  18. package/dist/cjs/utils/runtimeGenerator.js +4 -16
  19. package/dist/esm/cli/generator.mjs +45 -53
  20. package/dist/esm/cli/serverGlobalVars.mjs +1 -1
  21. package/dist/esm/cli.mjs +1 -0
  22. package/dist/esm/loader.mjs +5 -16
  23. package/dist/esm/runtime/data-platform/index.mjs +1 -7
  24. package/dist/esm/runtime/effect/edge-dispatcher.mjs +1 -38
  25. package/dist/esm/runtime/effect/edge.mjs +2 -2
  26. package/dist/esm/runtime/effect/index.mjs +16 -8
  27. package/dist/esm/runtime/effect-client/index.mjs +1 -98
  28. package/dist/esm/runtime/effect-client/runtime.mjs +1 -62
  29. package/dist/esm/runtime/hono/adapter.mjs +13 -54
  30. package/dist/esm/server.mjs +2 -2
  31. package/dist/esm/utils/client-generator/generate.mjs +11 -8
  32. package/dist/esm/utils/client-generator/index.mjs +1 -1
  33. package/dist/esm/utils/client-generator/type-facade.mjs +9 -6
  34. package/dist/esm/utils/crossProjectApiPlugin.mjs +3 -2
  35. package/dist/esm/utils/pluginGenerator.mjs +5 -5
  36. package/dist/esm/utils/runtimeGenerator.mjs +4 -16
  37. package/dist/esm-node/cli/generator.mjs +45 -53
  38. package/dist/esm-node/cli/serverGlobalVars.mjs +1 -1
  39. package/dist/esm-node/cli.mjs +1 -0
  40. package/dist/esm-node/loader.mjs +5 -16
  41. package/dist/esm-node/runtime/data-platform/index.mjs +1 -7
  42. package/dist/esm-node/runtime/effect/edge-dispatcher.mjs +1 -38
  43. package/dist/esm-node/runtime/effect/edge.mjs +2 -2
  44. package/dist/esm-node/runtime/effect/index.mjs +16 -8
  45. package/dist/esm-node/runtime/effect-client/index.mjs +1 -98
  46. package/dist/esm-node/runtime/effect-client/runtime.mjs +1 -62
  47. package/dist/esm-node/runtime/hono/adapter.mjs +13 -54
  48. package/dist/esm-node/server.mjs +2 -2
  49. package/dist/esm-node/utils/client-generator/generate.mjs +11 -8
  50. package/dist/esm-node/utils/client-generator/index.mjs +1 -1
  51. package/dist/esm-node/utils/client-generator/type-facade.mjs +9 -6
  52. package/dist/esm-node/utils/crossProjectApiPlugin.mjs +3 -2
  53. package/dist/esm-node/utils/pluginGenerator.mjs +5 -5
  54. package/dist/esm-node/utils/runtimeGenerator.mjs +4 -16
  55. package/dist/types/loader.d.ts +1 -0
  56. package/dist/types/runtime/data-platform/index.d.ts +1 -8
  57. package/dist/types/runtime/effect/edge-dispatcher.d.ts +1 -26
  58. package/dist/types/runtime/effect/edge.d.ts +2 -2
  59. package/dist/types/runtime/effect/index.d.ts +15 -7
  60. package/dist/types/runtime/effect-client/index.d.ts +1 -58
  61. package/dist/types/runtime/effect-client/runtime.d.ts +1 -5
  62. package/dist/types/runtime/hono/adapter.d.ts +1 -11
  63. package/dist/types/utils/client-generator/generate.d.ts +2 -1
  64. package/dist/types/utils/client-generator/index.d.ts +1 -1
  65. package/dist/types/utils/client-generator/type-facade.d.ts +2 -12
  66. package/dist/types/utils/crossProjectApiPlugin.d.ts +1 -0
  67. package/dist/types/utils/pluginGenerator.d.ts +2 -1
  68. package/package.json +34 -33
  69. package/dist/cjs/runtime/data-platform/batch/queue.js +0 -284
  70. package/dist/cjs/runtime/data-platform/batch/request.js +0 -98
  71. package/dist/cjs/runtime/data-platform/batch/response.js +0 -64
  72. package/dist/cjs/runtime/data-platform/batch/telemetry.js +0 -67
  73. package/dist/cjs/runtime/data-platform/batch/url.js +0 -69
  74. package/dist/cjs/runtime/data-platform/batch-transport.js +0 -59
  75. package/dist/cjs/runtime/data-platform/codec.js +0 -155
  76. package/dist/cjs/runtime/data-platform/invalidation.js +0 -61
  77. package/dist/cjs/runtime/data-platform/trace.js +0 -73
  78. package/dist/cjs/runtime/data-platform/types.js +0 -48
  79. package/dist/cjs/runtime/data-platform/validation.js +0 -178
  80. package/dist/cjs/runtime/effect/adapter/constants.js +0 -44
  81. package/dist/cjs/runtime/effect/adapter/cross-project-policy.js +0 -66
  82. package/dist/cjs/runtime/effect/adapter/entry.js +0 -100
  83. package/dist/cjs/runtime/effect/adapter/error-response.js +0 -81
  84. package/dist/cjs/runtime/effect/adapter/handler.js +0 -53
  85. package/dist/cjs/runtime/effect/adapter.js +0 -155
  86. package/dist/cjs/runtime/effect/backend-federation/entry.js +0 -99
  87. package/dist/cjs/runtime/effect/backend-federation/identity.js +0 -82
  88. package/dist/cjs/runtime/effect/backend-federation/load.js +0 -75
  89. package/dist/cjs/runtime/effect/backend-federation/plugin.js +0 -63
  90. package/dist/cjs/runtime/effect/backend-federation/remotes.js +0 -51
  91. package/dist/cjs/runtime/effect/backend-federation/runtime.js +0 -128
  92. package/dist/cjs/runtime/effect/backend-federation/types.js +0 -18
  93. package/dist/cjs/runtime/effect/backend-federation/utils.js +0 -48
  94. package/dist/cjs/runtime/effect/backend-federation-manifest/errors.js +0 -83
  95. package/dist/cjs/runtime/effect/backend-federation-manifest/index.js +0 -55
  96. package/dist/cjs/runtime/effect/backend-federation-manifest/load.js +0 -94
  97. package/dist/cjs/runtime/effect/backend-federation-manifest/metadata.js +0 -101
  98. package/dist/cjs/runtime/effect/backend-federation-manifest/reference.js +0 -120
  99. package/dist/cjs/runtime/effect/backend-federation-manifest/remote.js +0 -68
  100. package/dist/cjs/runtime/effect/backend-federation-manifest/types.js +0 -18
  101. package/dist/cjs/runtime/effect/backend-federation-manifest/validation.js +0 -109
  102. package/dist/cjs/runtime/effect/backend-federation-manifest.js +0 -62
  103. package/dist/cjs/runtime/effect/backend-federation.js +0 -65
  104. package/dist/cjs/runtime/effect/context.js +0 -60
  105. package/dist/cjs/runtime/effect/dispatch.js +0 -101
  106. package/dist/cjs/runtime/effect/edge-context.js +0 -81
  107. package/dist/cjs/runtime/effect/endpoint-contracts.js +0 -121
  108. package/dist/cjs/runtime/effect/entry-shape.js +0 -84
  109. package/dist/cjs/runtime/effect/handler/batch-handler.js +0 -161
  110. package/dist/cjs/runtime/effect/handler/batch.js +0 -159
  111. package/dist/cjs/runtime/effect/handler/definition.js +0 -102
  112. package/dist/cjs/runtime/effect/handler/envelope.js +0 -104
  113. package/dist/cjs/runtime/effect/handler/http.js +0 -107
  114. package/dist/cjs/runtime/effect/handler/openapi.js +0 -57
  115. package/dist/cjs/runtime/effect/handler/routing.js +0 -100
  116. package/dist/cjs/runtime/effect/handler/rpc.js +0 -63
  117. package/dist/cjs/runtime/effect/handler/types.js +0 -43
  118. package/dist/cjs/runtime/effect/handler.js +0 -189
  119. package/dist/cjs/runtime/effect/module.js +0 -113
  120. package/dist/cjs/runtime/effect/operation-context.js +0 -103
  121. package/dist/cjs/runtime/effect/rpcSerialization.js +0 -54
  122. package/dist/cjs/runtime/effect-client/batch.js +0 -73
  123. package/dist/cjs/runtime/effect-client/envelope.js +0 -145
  124. package/dist/cjs/runtime/effect-client/guards.js +0 -44
  125. package/dist/cjs/runtime/effect-client/request-context.js +0 -64
  126. package/dist/cjs/runtime/effect-client/request.js +0 -66
  127. package/dist/cjs/runtime/effect-client/types.js +0 -18
  128. package/dist/cjs/runtime/safe-failure.js +0 -84
  129. package/dist/cjs/utils/crossProjectServerPolicy.js +0 -98
  130. package/dist/cjs/utils/effect-client-generator/generator.js +0 -69
  131. package/dist/cjs/utils/effect-client-generator/index.js +0 -51
  132. package/dist/cjs/utils/effect-client-generator/paths.js +0 -62
  133. package/dist/cjs/utils/effect-client-generator/rendering.js +0 -220
  134. package/dist/cjs/utils/effect-client-generator/runtime.js +0 -68
  135. package/dist/cjs/utils/effect-client-generator/types.js +0 -18
  136. package/dist/cjs/utils/effectClientGenerator.js +0 -49
  137. package/dist/cjs/utils/effectSourceLoader.js +0 -312
  138. package/dist/cjs/utils/headers.js +0 -46
  139. package/dist/esm/runtime/data-platform/batch/queue.mjs +0 -246
  140. package/dist/esm/runtime/data-platform/batch/request.mjs +0 -45
  141. package/dist/esm/runtime/data-platform/batch/response.mjs +0 -23
  142. package/dist/esm/runtime/data-platform/batch/telemetry.mjs +0 -23
  143. package/dist/esm/runtime/data-platform/batch/url.mjs +0 -25
  144. package/dist/esm/runtime/data-platform/batch-transport.mjs +0 -12
  145. package/dist/esm/runtime/data-platform/codec.mjs +0 -90
  146. package/dist/esm/runtime/data-platform/invalidation.mjs +0 -20
  147. package/dist/esm/runtime/data-platform/trace.mjs +0 -29
  148. package/dist/esm/runtime/data-platform/types.mjs +0 -4
  149. package/dist/esm/runtime/data-platform/validation.mjs +0 -128
  150. package/dist/esm/runtime/effect/adapter/constants.mjs +0 -6
  151. package/dist/esm/runtime/effect/adapter/cross-project-policy.mjs +0 -28
  152. package/dist/esm/runtime/effect/adapter/entry.mjs +0 -52
  153. package/dist/esm/runtime/effect/adapter/error-response.mjs +0 -43
  154. package/dist/esm/runtime/effect/adapter/handler.mjs +0 -15
  155. package/dist/esm/runtime/effect/adapter.mjs +0 -107
  156. package/dist/esm/runtime/effect/backend-federation/entry.mjs +0 -61
  157. package/dist/esm/runtime/effect/backend-federation/identity.mjs +0 -41
  158. package/dist/esm/runtime/effect/backend-federation/load.mjs +0 -37
  159. package/dist/esm/runtime/effect/backend-federation/plugin.mjs +0 -25
  160. package/dist/esm/runtime/effect/backend-federation/remotes.mjs +0 -13
  161. package/dist/esm/runtime/effect/backend-federation/runtime.mjs +0 -90
  162. package/dist/esm/runtime/effect/backend-federation/types.mjs +0 -0
  163. package/dist/esm/runtime/effect/backend-federation/utils.mjs +0 -7
  164. package/dist/esm/runtime/effect/backend-federation-manifest/errors.mjs +0 -32
  165. package/dist/esm/runtime/effect/backend-federation-manifest/index.mjs +0 -4
  166. package/dist/esm/runtime/effect/backend-federation-manifest/load.mjs +0 -56
  167. package/dist/esm/runtime/effect/backend-federation-manifest/metadata.mjs +0 -42
  168. package/dist/esm/runtime/effect/backend-federation-manifest/reference.mjs +0 -76
  169. package/dist/esm/runtime/effect/backend-federation-manifest/remote.mjs +0 -30
  170. package/dist/esm/runtime/effect/backend-federation-manifest/types.mjs +0 -0
  171. package/dist/esm/runtime/effect/backend-federation-manifest/validation.mjs +0 -65
  172. package/dist/esm/runtime/effect/backend-federation-manifest.mjs +0 -1
  173. package/dist/esm/runtime/effect/backend-federation.mjs +0 -5
  174. package/dist/esm/runtime/effect/context.mjs +0 -13
  175. package/dist/esm/runtime/effect/dispatch.mjs +0 -63
  176. package/dist/esm/runtime/effect/edge-context.mjs +0 -34
  177. package/dist/esm/runtime/effect/endpoint-contracts.mjs +0 -68
  178. package/dist/esm/runtime/effect/entry-shape.mjs +0 -36
  179. package/dist/esm/runtime/effect/handler/batch-handler.mjs +0 -123
  180. package/dist/esm/runtime/effect/handler/batch.mjs +0 -97
  181. package/dist/esm/runtime/effect/handler/definition.mjs +0 -61
  182. package/dist/esm/runtime/effect/handler/envelope.mjs +0 -63
  183. package/dist/esm/runtime/effect/handler/http.mjs +0 -69
  184. package/dist/esm/runtime/effect/handler/openapi.mjs +0 -19
  185. package/dist/esm/runtime/effect/handler/routing.mjs +0 -50
  186. package/dist/esm/runtime/effect/handler/rpc.mjs +0 -22
  187. package/dist/esm/runtime/effect/handler/types.mjs +0 -5
  188. package/dist/esm/runtime/effect/handler.mjs +0 -14
  189. package/dist/esm/runtime/effect/module.mjs +0 -75
  190. package/dist/esm/runtime/effect/operation-context.mjs +0 -65
  191. package/dist/esm/runtime/effect/rpcSerialization.mjs +0 -16
  192. package/dist/esm/runtime/effect-client/batch.mjs +0 -35
  193. package/dist/esm/runtime/effect-client/envelope.mjs +0 -104
  194. package/dist/esm/runtime/effect-client/guards.mjs +0 -3
  195. package/dist/esm/runtime/effect-client/request-context.mjs +0 -23
  196. package/dist/esm/runtime/effect-client/request.mjs +0 -28
  197. package/dist/esm/runtime/effect-client/types.mjs +0 -0
  198. package/dist/esm/runtime/safe-failure.mjs +0 -46
  199. package/dist/esm/utils/crossProjectServerPolicy.mjs +0 -44
  200. package/dist/esm/utils/effect-client-generator/generator.mjs +0 -28
  201. package/dist/esm/utils/effect-client-generator/index.mjs +0 -3
  202. package/dist/esm/utils/effect-client-generator/paths.mjs +0 -24
  203. package/dist/esm/utils/effect-client-generator/rendering.mjs +0 -179
  204. package/dist/esm/utils/effect-client-generator/runtime.mjs +0 -27
  205. package/dist/esm/utils/effect-client-generator/types.mjs +0 -0
  206. package/dist/esm/utils/effectClientGenerator.mjs +0 -1
  207. package/dist/esm/utils/effectSourceLoader.mjs +0 -256
  208. package/dist/esm/utils/headers.mjs +0 -8
  209. package/dist/esm-node/runtime/data-platform/batch/queue.mjs +0 -247
  210. package/dist/esm-node/runtime/data-platform/batch/request.mjs +0 -46
  211. package/dist/esm-node/runtime/data-platform/batch/response.mjs +0 -24
  212. package/dist/esm-node/runtime/data-platform/batch/telemetry.mjs +0 -24
  213. package/dist/esm-node/runtime/data-platform/batch/url.mjs +0 -26
  214. package/dist/esm-node/runtime/data-platform/batch-transport.mjs +0 -13
  215. package/dist/esm-node/runtime/data-platform/codec.mjs +0 -91
  216. package/dist/esm-node/runtime/data-platform/invalidation.mjs +0 -21
  217. package/dist/esm-node/runtime/data-platform/trace.mjs +0 -30
  218. package/dist/esm-node/runtime/data-platform/types.mjs +0 -5
  219. package/dist/esm-node/runtime/data-platform/validation.mjs +0 -129
  220. package/dist/esm-node/runtime/effect/adapter/constants.mjs +0 -7
  221. package/dist/esm-node/runtime/effect/adapter/cross-project-policy.mjs +0 -29
  222. package/dist/esm-node/runtime/effect/adapter/entry.mjs +0 -53
  223. package/dist/esm-node/runtime/effect/adapter/error-response.mjs +0 -44
  224. package/dist/esm-node/runtime/effect/adapter/handler.mjs +0 -16
  225. package/dist/esm-node/runtime/effect/adapter.mjs +0 -108
  226. package/dist/esm-node/runtime/effect/backend-federation/entry.mjs +0 -62
  227. package/dist/esm-node/runtime/effect/backend-federation/identity.mjs +0 -42
  228. package/dist/esm-node/runtime/effect/backend-federation/load.mjs +0 -38
  229. package/dist/esm-node/runtime/effect/backend-federation/plugin.mjs +0 -26
  230. package/dist/esm-node/runtime/effect/backend-federation/remotes.mjs +0 -14
  231. package/dist/esm-node/runtime/effect/backend-federation/runtime.mjs +0 -91
  232. package/dist/esm-node/runtime/effect/backend-federation/types.mjs +0 -1
  233. package/dist/esm-node/runtime/effect/backend-federation/utils.mjs +0 -8
  234. package/dist/esm-node/runtime/effect/backend-federation-manifest/errors.mjs +0 -33
  235. package/dist/esm-node/runtime/effect/backend-federation-manifest/index.mjs +0 -5
  236. package/dist/esm-node/runtime/effect/backend-federation-manifest/load.mjs +0 -57
  237. package/dist/esm-node/runtime/effect/backend-federation-manifest/metadata.mjs +0 -43
  238. package/dist/esm-node/runtime/effect/backend-federation-manifest/reference.mjs +0 -77
  239. package/dist/esm-node/runtime/effect/backend-federation-manifest/remote.mjs +0 -31
  240. package/dist/esm-node/runtime/effect/backend-federation-manifest/types.mjs +0 -1
  241. package/dist/esm-node/runtime/effect/backend-federation-manifest/validation.mjs +0 -66
  242. package/dist/esm-node/runtime/effect/backend-federation-manifest.mjs +0 -2
  243. package/dist/esm-node/runtime/effect/backend-federation.mjs +0 -6
  244. package/dist/esm-node/runtime/effect/context.mjs +0 -14
  245. package/dist/esm-node/runtime/effect/dispatch.mjs +0 -64
  246. package/dist/esm-node/runtime/effect/edge-context.mjs +0 -35
  247. package/dist/esm-node/runtime/effect/endpoint-contracts.mjs +0 -69
  248. package/dist/esm-node/runtime/effect/entry-shape.mjs +0 -37
  249. package/dist/esm-node/runtime/effect/handler/batch-handler.mjs +0 -124
  250. package/dist/esm-node/runtime/effect/handler/batch.mjs +0 -98
  251. package/dist/esm-node/runtime/effect/handler/definition.mjs +0 -62
  252. package/dist/esm-node/runtime/effect/handler/envelope.mjs +0 -64
  253. package/dist/esm-node/runtime/effect/handler/http.mjs +0 -70
  254. package/dist/esm-node/runtime/effect/handler/openapi.mjs +0 -20
  255. package/dist/esm-node/runtime/effect/handler/routing.mjs +0 -51
  256. package/dist/esm-node/runtime/effect/handler/rpc.mjs +0 -23
  257. package/dist/esm-node/runtime/effect/handler/types.mjs +0 -6
  258. package/dist/esm-node/runtime/effect/handler.mjs +0 -15
  259. package/dist/esm-node/runtime/effect/module.mjs +0 -76
  260. package/dist/esm-node/runtime/effect/operation-context.mjs +0 -66
  261. package/dist/esm-node/runtime/effect/rpcSerialization.mjs +0 -17
  262. package/dist/esm-node/runtime/effect-client/batch.mjs +0 -36
  263. package/dist/esm-node/runtime/effect-client/envelope.mjs +0 -105
  264. package/dist/esm-node/runtime/effect-client/guards.mjs +0 -4
  265. package/dist/esm-node/runtime/effect-client/request-context.mjs +0 -24
  266. package/dist/esm-node/runtime/effect-client/request.mjs +0 -29
  267. package/dist/esm-node/runtime/effect-client/types.mjs +0 -1
  268. package/dist/esm-node/runtime/safe-failure.mjs +0 -47
  269. package/dist/esm-node/utils/crossProjectServerPolicy.mjs +0 -46
  270. package/dist/esm-node/utils/effect-client-generator/generator.mjs +0 -29
  271. package/dist/esm-node/utils/effect-client-generator/index.mjs +0 -4
  272. package/dist/esm-node/utils/effect-client-generator/paths.mjs +0 -25
  273. package/dist/esm-node/utils/effect-client-generator/rendering.mjs +0 -180
  274. package/dist/esm-node/utils/effect-client-generator/runtime.mjs +0 -29
  275. package/dist/esm-node/utils/effect-client-generator/types.mjs +0 -1
  276. package/dist/esm-node/utils/effectClientGenerator.mjs +0 -2
  277. package/dist/esm-node/utils/effectSourceLoader.mjs +0 -257
  278. package/dist/esm-node/utils/headers.mjs +0 -9
  279. package/dist/types/runtime/data-platform/batch/queue.d.ts +0 -8
  280. package/dist/types/runtime/data-platform/batch/request.d.ts +0 -13
  281. package/dist/types/runtime/data-platform/batch/response.d.ts +0 -3
  282. package/dist/types/runtime/data-platform/batch/telemetry.d.ts +0 -4
  283. package/dist/types/runtime/data-platform/batch/url.d.ts +0 -4
  284. package/dist/types/runtime/data-platform/batch-transport.d.ts +0 -3
  285. package/dist/types/runtime/data-platform/codec.d.ts +0 -17
  286. package/dist/types/runtime/data-platform/invalidation.d.ts +0 -8
  287. package/dist/types/runtime/data-platform/trace.d.ts +0 -4
  288. package/dist/types/runtime/data-platform/types.d.ts +0 -146
  289. package/dist/types/runtime/data-platform/validation.d.ts +0 -29
  290. package/dist/types/runtime/effect/adapter/constants.d.ts +0 -1
  291. package/dist/types/runtime/effect/adapter/cross-project-policy.d.ts +0 -4
  292. package/dist/types/runtime/effect/adapter/entry.d.ts +0 -2
  293. package/dist/types/runtime/effect/adapter/error-response.d.ts +0 -2
  294. package/dist/types/runtime/effect/adapter/handler.d.ts +0 -7
  295. package/dist/types/runtime/effect/adapter.d.ts +0 -22
  296. package/dist/types/runtime/effect/backend-federation/entry.d.ts +0 -2
  297. package/dist/types/runtime/effect/backend-federation/identity.d.ts +0 -30
  298. package/dist/types/runtime/effect/backend-federation/load.d.ts +0 -13
  299. package/dist/types/runtime/effect/backend-federation/plugin.d.ts +0 -3
  300. package/dist/types/runtime/effect/backend-federation/remotes.d.ts +0 -2
  301. package/dist/types/runtime/effect/backend-federation/runtime.d.ts +0 -3
  302. package/dist/types/runtime/effect/backend-federation/types.d.ts +0 -73
  303. package/dist/types/runtime/effect/backend-federation/utils.d.ts +0 -2
  304. package/dist/types/runtime/effect/backend-federation-manifest/errors.d.ts +0 -11
  305. package/dist/types/runtime/effect/backend-federation-manifest/index.d.ts +0 -6
  306. package/dist/types/runtime/effect/backend-federation-manifest/load.d.ts +0 -3
  307. package/dist/types/runtime/effect/backend-federation-manifest/metadata.d.ts +0 -18
  308. package/dist/types/runtime/effect/backend-federation-manifest/reference.d.ts +0 -4
  309. package/dist/types/runtime/effect/backend-federation-manifest/remote.d.ts +0 -3
  310. package/dist/types/runtime/effect/backend-federation-manifest/types.d.ts +0 -51
  311. package/dist/types/runtime/effect/backend-federation-manifest/validation.d.ts +0 -5
  312. package/dist/types/runtime/effect/backend-federation-manifest.d.ts +0 -1
  313. package/dist/types/runtime/effect/backend-federation.d.ts +0 -7
  314. package/dist/types/runtime/effect/context.d.ts +0 -5
  315. package/dist/types/runtime/effect/dispatch.d.ts +0 -13
  316. package/dist/types/runtime/effect/edge-context.d.ts +0 -5
  317. package/dist/types/runtime/effect/endpoint-contracts.d.ts +0 -66
  318. package/dist/types/runtime/effect/entry-shape.d.ts +0 -31
  319. package/dist/types/runtime/effect/handler/batch-handler.d.ts +0 -11
  320. package/dist/types/runtime/effect/handler/batch.d.ts +0 -13
  321. package/dist/types/runtime/effect/handler/definition.d.ts +0 -7
  322. package/dist/types/runtime/effect/handler/envelope.d.ts +0 -13
  323. package/dist/types/runtime/effect/handler/http.d.ts +0 -15
  324. package/dist/types/runtime/effect/handler/openapi.d.ts +0 -4
  325. package/dist/types/runtime/effect/handler/routing.d.ts +0 -5
  326. package/dist/types/runtime/effect/handler/rpc.d.ts +0 -7
  327. package/dist/types/runtime/effect/handler/types.d.ts +0 -153
  328. package/dist/types/runtime/effect/handler.d.ts +0 -14
  329. package/dist/types/runtime/effect/module.d.ts +0 -36
  330. package/dist/types/runtime/effect/operation-context.d.ts +0 -10
  331. package/dist/types/runtime/effect/rpcSerialization.d.ts +0 -3
  332. package/dist/types/runtime/effect-client/batch.d.ts +0 -2
  333. package/dist/types/runtime/effect-client/envelope.d.ts +0 -15
  334. package/dist/types/runtime/effect-client/guards.d.ts +0 -2
  335. package/dist/types/runtime/effect-client/request-context.d.ts +0 -3
  336. package/dist/types/runtime/effect-client/request.d.ts +0 -1
  337. package/dist/types/runtime/effect-client/types.d.ts +0 -68
  338. package/dist/types/runtime/safe-failure.d.ts +0 -1
  339. package/dist/types/utils/crossProjectServerPolicy.d.ts +0 -36
  340. package/dist/types/utils/effect-client-generator/generator.d.ts +0 -10
  341. package/dist/types/utils/effect-client-generator/index.d.ts +0 -4
  342. package/dist/types/utils/effect-client-generator/paths.d.ts +0 -5
  343. package/dist/types/utils/effect-client-generator/rendering.d.ts +0 -4
  344. package/dist/types/utils/effect-client-generator/runtime.d.ts +0 -12
  345. package/dist/types/utils/effect-client-generator/types.d.ts +0 -27
  346. package/dist/types/utils/effectClientGenerator.d.ts +0 -2
  347. package/dist/types/utils/effectSourceLoader.d.ts +0 -25
  348. package/dist/types/utils/headers.d.ts +0 -1
@@ -1,65 +0,0 @@
1
- import { BFF_LOCALE_HEADER, BFF_OPERATION_CONTEXT_DETAIL_HEADER, BFF_OPERATION_CONTEXT_HEADER, BFF_TRACEPARENT_HEADER, parseTraceparent } from "@modern-js/create-request";
2
- const readHeader = (headers, header)=>{
3
- const value = headers.get(header);
4
- return value && value.length > 0 ? value : void 0;
5
- };
6
- const copyStringField = (target, details, key)=>{
7
- const value = details[key];
8
- if ('string' == typeof value && value.length > 0) target[key] = value;
9
- };
10
- const readOperationContextDetails = (request)=>{
11
- const rawDetails = readHeader(request.headers, BFF_OPERATION_CONTEXT_DETAIL_HEADER);
12
- if (!rawDetails) return {};
13
- try {
14
- const parsed = JSON.parse(rawDetails);
15
- if (!parsed || 'object' != typeof parsed || Array.isArray(parsed)) return {};
16
- const details = parsed;
17
- const safeDetails = {};
18
- copyStringField(safeDetails, details, 'requestId');
19
- copyStringField(safeDetails, details, 'operationId');
20
- copyStringField(safeDetails, details, 'schemaHash');
21
- copyStringField(safeDetails, details, 'traceparent');
22
- copyStringField(safeDetails, details, 'traceId');
23
- copyStringField(safeDetails, details, 'spanId');
24
- if ('number' == typeof details.operationVersion) safeDetails.operationVersion = details.operationVersion;
25
- return safeDetails;
26
- } catch {
27
- return {};
28
- }
29
- };
30
- const createEffectOperationContext = ({ request, path, method })=>{
31
- const details = readOperationContextDetails(request);
32
- const servicePath = new URL(request.url).pathname;
33
- const traceparent = readHeader(request.headers, BFF_TRACEPARENT_HEADER) || details.traceparent;
34
- const parsedTraceparent = details.traceId && details.spanId ? {
35
- traceId: details.traceId,
36
- spanId: details.spanId
37
- } : parseTraceparent(traceparent);
38
- const locale = readHeader(request.headers, BFF_LOCALE_HEADER);
39
- const headerOperationId = readHeader(request.headers, BFF_OPERATION_CONTEXT_HEADER);
40
- return {
41
- ...details,
42
- ...headerOperationId || details.operationId ? {
43
- operationId: headerOperationId || details.operationId
44
- } : {},
45
- routePath: servicePath,
46
- method: (method || request.method || 'GET').toUpperCase(),
47
- source: 'effect-adapter',
48
- ...path && path !== servicePath ? {
49
- attributes: {
50
- mountedPath: path
51
- }
52
- } : {},
53
- ...locale ? {
54
- locale
55
- } : {},
56
- ...traceparent ? {
57
- traceparent
58
- } : {},
59
- ...parsedTraceparent ? {
60
- traceId: parsedTraceparent.traceId,
61
- spanId: parsedTraceparent.spanId
62
- } : {}
63
- };
64
- };
65
- export { createEffectOperationContext };
@@ -1,16 +0,0 @@
1
- import { RpcSerialization } from "effect/unstable/rpc";
2
- function getRpcSerializationLayer(serialization) {
3
- switch(serialization){
4
- case 'ndjson':
5
- return RpcSerialization.layerNdjson;
6
- case 'jsonRpc':
7
- return RpcSerialization.layerJsonRpc();
8
- case 'ndJsonRpc':
9
- return RpcSerialization.layerNdJsonRpc();
10
- case 'msgPack':
11
- return RpcSerialization.layerMsgPack;
12
- default:
13
- return RpcSerialization.layerJsonRpc();
14
- }
15
- }
16
- export { getRpcSerializationLayer };
@@ -1,35 +0,0 @@
1
- import { createDataBatchTransport } from "../data-platform/index.mjs";
2
- import { resolveOrigin } from "./envelope.mjs";
3
- const resolveRuntimeFetch = ()=>'function' == typeof fetch ? fetch.bind(globalThis) : void 0;
4
- const configureGeneratedEffectClientRuntime = (config, configureRequest)=>{
5
- const defaultOrigin = config.defaultOrigin;
6
- if (config.requestId && configureRequest) {
7
- const configurePayload = {
8
- requestId: config.requestId,
9
- requireEnvelope: true,
10
- identityBinding: {
11
- enabled: true,
12
- strict: true
13
- },
14
- operationContract: {
15
- enabled: true,
16
- strict: true,
17
- requireSchemaHash: true,
18
- requireOperationVersion: true
19
- },
20
- setDomain: ()=>resolveOrigin(defaultOrigin)
21
- };
22
- const runtimeFetch = resolveRuntimeFetch();
23
- if (false !== config.batch.enabled && runtimeFetch) configurePayload.request = createDataBatchTransport({
24
- fetch: runtimeFetch,
25
- endpoint: config.batch.endpoint,
26
- flushIntervalMs: config.batch.flushIntervalMs,
27
- maxBatchSize: config.batch.maxBatchSize,
28
- maxBatchBytes: config.batch.maxBatchBytes,
29
- requestTimeoutMs: config.batch.requestTimeoutMs,
30
- allowedMethods: config.batch.allowedMethods
31
- });
32
- configureRequest(configurePayload);
33
- }
34
- };
35
- export { configureGeneratedEffectClientRuntime };
@@ -1,104 +0,0 @@
1
- import { DEFAULT_DATA_BATCH_HEADER, DEFAULT_DATA_ENVELOPE_HEADER, createRequestEnvelope, encodeRequestEnvelopeHeader } from "../data-platform/index.mjs";
2
- import { isRecord, stringOrUndefined } from "./guards.mjs";
3
- import { normalizeRequest } from "./request.mjs";
4
- import { applyRequestContext } from "./request-context.mjs";
5
- const DATA_REQUEST_MODES = new Set([
6
- 'cache-first',
7
- 'stale-while-revalidate',
8
- 'network-only'
9
- ]);
10
- const DATA_MUTATION_MODES = new Set([
11
- 'optimistic',
12
- 'pessimistic',
13
- 'fire-and-forget'
14
- ]);
15
- const isDataRequestMode = (value)=>'string' == typeof value && DATA_REQUEST_MODES.has(value);
16
- const isDataMutationMode = (value)=>'string' == typeof value && DATA_MUTATION_MODES.has(value);
17
- const normalizeOrigin = (value)=>{
18
- if ('string' != typeof value || 0 === value.length) return;
19
- try {
20
- return new URL(value).origin;
21
- } catch {
22
- return;
23
- }
24
- };
25
- const resolveOrigin = (defaultOrigin)=>{
26
- if ("u" > typeof window && window.location && 'string' == typeof window.location.origin && window.location.origin) return window.location.origin;
27
- const globalLocation = globalThis?.location;
28
- if (globalLocation && 'string' == typeof globalLocation.origin && globalLocation.origin) return globalLocation.origin;
29
- return defaultOrigin;
30
- };
31
- const resolveTargetOrigin = (dataPlatform, defaultOrigin)=>{
32
- const explicitTargetOrigin = stringOrUndefined(dataPlatform.targetOrigin) || stringOrUndefined(dataPlatform.endpointOrigin);
33
- if (explicitTargetOrigin) return explicitTargetOrigin;
34
- return defaultOrigin;
35
- };
36
- const shouldAttachEnvelopeHeader = (dataPlatform, defaultOrigin)=>{
37
- if (true === dataPlatform.allowCrossOriginEnvelope) return true;
38
- const currentOrigin = normalizeOrigin(resolveOrigin(defaultOrigin));
39
- const targetOrigin = normalizeOrigin(resolveTargetOrigin(dataPlatform, defaultOrigin));
40
- if (!currentOrigin || !targetOrigin) return true;
41
- return currentOrigin === targetOrigin;
42
- };
43
- const toEnvelopeInput = (normalizedRequest)=>{
44
- const payload = {};
45
- if (isRecord(normalizedRequest.params)) payload.path = normalizedRequest.params;
46
- if (isRecord(normalizedRequest.query)) payload.query = normalizedRequest.query;
47
- if ('data' in normalizedRequest && void 0 !== normalizedRequest.data) payload.data = normalizedRequest.data;
48
- if ('body' in normalizedRequest && void 0 !== normalizedRequest.body) payload.body = normalizedRequest.body;
49
- if ("u" > typeof FormData && normalizedRequest.formData instanceof FormData) payload.formData = Array.from(normalizedRequest.formData.entries()).map(([key, value])=>[
50
- key,
51
- String(value)
52
- ]);
53
- if ("u" > typeof URLSearchParams && normalizedRequest.formUrlencoded instanceof URLSearchParams) payload.formUrlencoded = normalizedRequest.formUrlencoded.toString();
54
- return payload;
55
- };
56
- const prepareEffectRequest = (options)=>{
57
- const { endpoint, operation, request, config, createEffectRequestContext } = options;
58
- const defaultOrigin = config.defaultOrigin;
59
- const normalizedRequest = applyRequestContext(normalizeRequest(endpoint.method, request), request, createEffectRequestContext);
60
- const dataPlatform = isRecord(request) && isRecord(request.dataPlatform) ? request.dataPlatform : {};
61
- const strictEnvelope = true === dataPlatform.requireEnvelope || true === dataPlatform.strict;
62
- if (!strictEnvelope && !shouldAttachEnvelopeHeader(dataPlatform, defaultOrigin)) return normalizedRequest;
63
- try {
64
- const namespace = stringOrUndefined(dataPlatform.appNamespace) || config.appNamespace;
65
- const origin = stringOrUndefined(dataPlatform.origin) || resolveOrigin(defaultOrigin);
66
- const envelope = createRequestEnvelope({
67
- operation: {
68
- ...operation,
69
- appNamespace: namespace
70
- },
71
- scope: {
72
- appNamespace: namespace,
73
- origin,
74
- tenantId: stringOrUndefined(dataPlatform.tenantId),
75
- userId: stringOrUndefined(dataPlatform.userId),
76
- sessionId: stringOrUndefined(dataPlatform.sessionId)
77
- },
78
- requestInput: {
79
- method: endpoint.method,
80
- routePath: endpoint.routePath,
81
- payload: toEnvelopeInput(normalizedRequest)
82
- },
83
- requestMode: isDataRequestMode(dataPlatform.requestMode) ? dataPlatform.requestMode : void 0,
84
- mutationMode: isDataMutationMode(dataPlatform.mutationMode) ? dataPlatform.mutationMode : void 0,
85
- selectionPlan: isRecord(dataPlatform.selectionPlan) ? dataPlatform.selectionPlan : void 0,
86
- traceContext: isRecord(dataPlatform.traceContext) ? dataPlatform.traceContext : void 0,
87
- requireTraceContext: true === dataPlatform.requireTraceContext
88
- });
89
- const headerName = stringOrUndefined(dataPlatform.envelopeHeader) || DEFAULT_DATA_ENVELOPE_HEADER;
90
- const headers = isRecord(normalizedRequest.headers) ? {
91
- ...normalizedRequest.headers
92
- } : {};
93
- if (false === dataPlatform.batch) headers[DEFAULT_DATA_BATCH_HEADER] = 'off';
94
- headers[headerName] = encodeRequestEnvelopeHeader(envelope);
95
- return {
96
- ...normalizedRequest,
97
- headers
98
- };
99
- } catch (error) {
100
- if (strictEnvelope) throw error;
101
- return normalizedRequest;
102
- }
103
- };
104
- export { prepareEffectRequest, resolveOrigin };
@@ -1,3 +0,0 @@
1
- const isRecord = (value)=>'object' == typeof value && null !== value;
2
- const stringOrUndefined = (value)=>'string' == typeof value && value.length > 0 ? value : void 0;
3
- export { isRecord, stringOrUndefined };
@@ -1,23 +0,0 @@
1
- import { isRecord } from "./guards.mjs";
2
- const createEffectRequestContext = (createRequestContextHeaders, requestContext)=>{
3
- if (!isRecord(requestContext)) return {};
4
- const headers = createRequestContextHeaders ? createRequestContextHeaders(requestContext) : {};
5
- return {
6
- ...requestContext,
7
- headers
8
- };
9
- };
10
- const applyRequestContext = (normalizedRequest, request, createRequestContext)=>{
11
- if (!isRecord(request) || !isRecord(request.requestContext)) return normalizedRequest;
12
- const requestContext = createRequestContext(request.requestContext);
13
- const requestHeaders = isRecord(requestContext.headers) ? requestContext.headers : {};
14
- if (0 === Object.keys(requestHeaders).length) return normalizedRequest;
15
- return {
16
- ...normalizedRequest,
17
- headers: {
18
- ...isRecord(normalizedRequest.headers) ? normalizedRequest.headers : {},
19
- ...requestHeaders
20
- }
21
- };
22
- };
23
- export { applyRequestContext, createEffectRequestContext };
@@ -1,28 +0,0 @@
1
- import { isRecord } from "./guards.mjs";
2
- const METHODS_WITHOUT_BODY = new Set([
3
- 'GET',
4
- 'DELETE',
5
- 'HEAD',
6
- 'OPTIONS'
7
- ]);
8
- const normalizeRequest = (method, request)=>{
9
- if (!isRecord(request)) return {};
10
- const payload = {
11
- ...request
12
- };
13
- if (isRecord(request.path) && !isRecord(payload.params)) payload.params = request.path;
14
- if (isRecord(request.urlParams) && !isRecord(payload.query)) payload.query = request.urlParams;
15
- if (isRecord(request.headers) && !isRecord(payload.headers)) payload.headers = request.headers;
16
- if ('payload' in request && void 0 !== request.payload) if ("u" > typeof FormData && request.payload instanceof FormData && !('formData' in payload)) payload.formData = request.payload;
17
- else if (METHODS_WITHOUT_BODY.has(method)) {
18
- if (isRecord(request.payload)) payload.query = isRecord(payload.query) ? {
19
- ...payload.query,
20
- ...request.payload
21
- } : request.payload;
22
- else if (!('body' in payload)) payload.body = request.payload;
23
- } else if (!isRecord(request.payload) || 'data' in payload) {
24
- if (!('body' in payload)) payload.body = request.payload;
25
- } else payload.data = request.payload;
26
- return payload;
27
- };
28
- export { normalizeRequest };
File without changes
@@ -1,46 +0,0 @@
1
- const SAFE_FAILURE_MESSAGES = {
2
- 500: 'Internal Server Error',
3
- 503: 'Service Unavailable'
4
- };
5
- const SAFE_FAILURE_CODES = {
6
- 500: 'INTERNAL_SERVER_ERROR',
7
- 503: 'SERVICE_UNAVAILABLE'
8
- };
9
- const INVALID_HTTP_HEADER_VALUE = /[\0-\x08\x0a-\x1f\x7f]/u;
10
- const readErrorProperty = (error, key)=>{
11
- if ('object' != typeof error || null === error || !(key in error)) return;
12
- return error[key];
13
- };
14
- const normalizeFailureStatus = (value)=>{
15
- if ('number' != typeof value || !Number.isInteger(value)) return;
16
- return value >= 400 && value <= 599 ? value : void 0;
17
- };
18
- const normalizeRetryAfter = (value)=>{
19
- if ('number' == typeof value && Number.isFinite(value) && value >= 0) return String(Math.ceil(value));
20
- if ('string' == typeof value) {
21
- const trimmed = value.trim();
22
- return trimmed.length > 0 && !INVALID_HTTP_HEADER_VALUE.test(trimmed) ? trimmed : void 0;
23
- }
24
- if (value instanceof Date) return value.toUTCString();
25
- };
26
- const createSafeFailureResponse = (error)=>{
27
- const status = normalizeFailureStatus(readErrorProperty(error, 'status')) ?? normalizeFailureStatus(readErrorProperty(error, 'statusCode')) ?? 500;
28
- const retryAfter = 503 === status ? normalizeRetryAfter(readErrorProperty(error, 'retryAfter')) ?? normalizeRetryAfter(readErrorProperty(error, 'retryAfterSeconds')) ?? normalizeRetryAfter('number' == typeof readErrorProperty(error, 'retryAfterMs') ? readErrorProperty(error, 'retryAfterMs') / 1000 : void 0) : void 0;
29
- const body = {
30
- success: false,
31
- error: {
32
- code: SAFE_FAILURE_CODES[status] ?? 'REQUEST_FAILED',
33
- message: SAFE_FAILURE_MESSAGES[status] ?? 'Request failed',
34
- status
35
- }
36
- };
37
- const headers = {
38
- 'content-type': 'application/json; charset=utf-8'
39
- };
40
- if (void 0 !== retryAfter) headers['Retry-After'] = retryAfter;
41
- return new Response(JSON.stringify(body), {
42
- status,
43
- headers
44
- });
45
- };
46
- export { createSafeFailureResponse };
@@ -1,44 +0,0 @@
1
- import { checkCrossProjectPolicy, deriveOperationVersion, resolveCrossProjectPolicy } from "@modern-js/bff-core";
2
- import path from "path";
3
- import { toHeaderRecord } from "./headers.mjs";
4
- const readNearestPackageVersion = (startDir)=>{
5
- if (!startDir) return;
6
- let current = path.resolve(startDir);
7
- for(let depth = 0; depth < 10; depth += 1){
8
- try {
9
- const packageJson = require(path.join(current, 'package.json'));
10
- if ('string' == typeof packageJson.version) return packageJson.version;
11
- } catch {}
12
- const parent = path.dirname(current);
13
- if (parent === current) break;
14
- current = parent;
15
- }
16
- };
17
- const resolveAdapterCrossProjectPolicy = (api, handlers)=>{
18
- const bff = api.getServerConfig()?.bff;
19
- const { apiDirectory, appDirectory } = api.getServerContext();
20
- return resolveCrossProjectPolicy({
21
- crossProjectPolicy: bff?.crossProjectPolicy,
22
- handlers,
23
- requestId: bff?.requestId,
24
- isCrossProjectServer: bff?.isCrossProjectServer,
25
- operationVersion: deriveOperationVersion(readNearestPackageVersion(apiDirectory) ?? readNearestPackageVersion(appDirectory))
26
- });
27
- };
28
- const DENIAL_HEADERS = {
29
- 'content-type': 'application/json; charset=utf-8'
30
- };
31
- const checkCrossProjectPolicyResponse = (headers, policy)=>{
32
- if (!policy?.enabled) return null;
33
- const denial = checkCrossProjectPolicy(headers, policy);
34
- if (!denial) return null;
35
- return new Response(JSON.stringify(denial.body), {
36
- status: denial.status,
37
- headers: DENIAL_HEADERS
38
- });
39
- };
40
- const checkCrossProjectPolicyForRequest = (request, policy)=>{
41
- if (!policy?.enabled) return null;
42
- return checkCrossProjectPolicyResponse(toHeaderRecord(request.headers), policy);
43
- };
44
- export { checkCrossProjectPolicyForRequest, checkCrossProjectPolicyResponse, resolveAdapterCrossProjectPolicy };
@@ -1,28 +0,0 @@
1
- import { logger } from "@modern-js/utils";
2
- import { collectEffectEndpoints } from "../../runtime/effect/endpoint-contracts.mjs";
3
- import { renderEffectClientCode, renderEffectClientDeclaration } from "./rendering.mjs";
4
- import { getHttpApiRuntime, loadEffectApi } from "./runtime.mjs";
5
- function generateEffectClient(options) {
6
- return loadEffectApi({
7
- appDir: options.appDir,
8
- resourcePath: options.resourcePath,
9
- onDependency: options.onDependency
10
- }).then((api)=>{
11
- if (null === api) {
12
- logger.warn(`[BFF][Effect] Failed to generate client for ${options.resourcePath}: unable to resolve exported HttpApi.`);
13
- return null;
14
- }
15
- return getHttpApiRuntime().then((httpApiRuntime)=>{
16
- const endpoints = collectEffectEndpoints(httpApiRuntime.reflect, api, options.prefix);
17
- return {
18
- code: renderEffectClientCode(endpoints, options),
19
- declaration: renderEffectClientDeclaration(endpoints),
20
- endpoints
21
- };
22
- });
23
- });
24
- }
25
- function generateEffectClientCode(options) {
26
- return generateEffectClient(options).then((artifacts)=>null === artifacts ? null : artifacts.code);
27
- }
28
- export { generateEffectClient, generateEffectClientCode };
@@ -1,3 +0,0 @@
1
- export { generateEffectClient, generateEffectClientCode } from "./generator.mjs";
2
- export { resolveEffectEntryFile } from "./paths.mjs";
3
- export { renderEffectClientDeclaration } from "./rendering.mjs";
@@ -1,24 +0,0 @@
1
- import { findExists, fs, upath } from "@modern-js/utils";
2
- const JS_OR_TS_EXTS = [
3
- '.js',
4
- '.jsx',
5
- '.ts',
6
- '.tsx',
7
- '.mjs',
8
- '.mts',
9
- '.cjs',
10
- '.cts'
11
- ];
12
- function resolveEffectEntryFile(options) {
13
- const { appDir, apiDir, effectEntry } = options;
14
- const resolveEntry = (entryWithoutExt)=>{
15
- if ('' !== upath.extname(entryWithoutExt)) return fs.existsSync(entryWithoutExt) ? entryWithoutExt : void 0;
16
- return findExists(JS_OR_TS_EXTS.map((ext)=>`${entryWithoutExt}${ext}`));
17
- };
18
- if (void 0 !== effectEntry && '' !== effectEntry) {
19
- const entryWithoutExt = upath.isAbsolute(effectEntry) ? effectEntry : upath.resolve(appDir, effectEntry);
20
- return resolveEntry(entryWithoutExt);
21
- }
22
- return resolveEntry(upath.resolve(apiDir, 'index'));
23
- }
24
- export { resolveEffectEntryFile };
@@ -1,179 +0,0 @@
1
- import { deriveOperationVersion } from "@modern-js/bff-core";
2
- import { fs, upath } from "@modern-js/utils";
3
- import { createEffectEndpointContractHash, ensureLeadingSlash, normalizeEffectPrefix } from "../../runtime/effect/endpoint-contracts.mjs";
4
- const DEFAULT_REQUEST_CREATOR = '@modern-js/plugin-bff/client';
5
- const EFFECT_CLIENT_RUNTIME_IMPORT = '@modern-js/plugin-bff/effect-client-runtime';
6
- function isAbsoluteUrl(value) {
7
- try {
8
- new URL(value);
9
- return true;
10
- } catch {
11
- return false;
12
- }
13
- }
14
- function resolveBatchEndpoint(prefix, endpoint) {
15
- const value = void 0 === endpoint || '' === endpoint ? '/_data/batch' : endpoint;
16
- if (isAbsoluteUrl(value)) return value;
17
- const normalizedPrefix = normalizeEffectPrefix(prefix);
18
- const normalizedEndpoint = ensureLeadingSlash(value);
19
- if ('' === normalizedPrefix) return normalizedEndpoint;
20
- if (normalizedEndpoint === normalizedPrefix || normalizedEndpoint.startsWith(`${normalizedPrefix}/`)) return normalizedEndpoint;
21
- return `${normalizedPrefix}${'/' === normalizedEndpoint ? '' : normalizedEndpoint}`;
22
- }
23
- function getPackageInfo(appDir) {
24
- try {
25
- const packageJsonPath = upath.resolve(appDir, './package.json');
26
- const packageJson = fs.readJSONSync(packageJsonPath);
27
- return {
28
- name: packageJson.name,
29
- version: packageJson.version
30
- };
31
- } catch {
32
- return {};
33
- }
34
- }
35
- function renderEffectClientCode(endpoints, options) {
36
- const requestCreator = options.requestCreator || DEFAULT_REQUEST_CREATOR;
37
- const httpMethodDecider = options.httpMethodDecider || 'functionName';
38
- const packageInfo = getPackageInfo(options.appDir);
39
- const packageName = packageInfo.name;
40
- const dataPlatformAppNamespace = void 0 === packageName || '' === packageName ? 'unknown-app' : packageName;
41
- const requestId = 'bundle' === options.target ? void 0 !== packageName && '' !== packageName ? packageName : void 0 : void 0;
42
- const normalizedRequestId = void 0 === requestId || '' === requestId ? 'default' : requestId;
43
- const operationVersion = deriveOperationVersion(packageInfo.version);
44
- const batchConfig = options.dataPlatformBatch;
45
- const batchEndpoint = resolveBatchEndpoint(options.prefix, batchConfig?.endpoint);
46
- const manifest = {
47
- endpoints: endpoints.map((endpoint)=>({
48
- apiId: endpoint.apiId,
49
- group: endpoint.groupName,
50
- endpoint: endpoint.endpointName,
51
- method: endpoint.method,
52
- routePath: endpoint.routePath,
53
- schemaHash: createEffectEndpointContractHash(endpoint, normalizedRequestId),
54
- operationVersion
55
- }))
56
- };
57
- const config = {
58
- appNamespace: dataPlatformAppNamespace,
59
- ...void 0 !== requestId && '' !== requestId ? {
60
- requestId
61
- } : {},
62
- port: options.port,
63
- useEnvPort: 'server' === options.target,
64
- defaultOrigin: `http://localhost:${String(options.port)}`,
65
- httpMethodDecider,
66
- batch: {
67
- enabled: batchConfig?.enabled ?? true,
68
- endpoint: batchEndpoint,
69
- flushIntervalMs: batchConfig?.flushIntervalMs ?? 8,
70
- maxBatchSize: batchConfig?.maxBatchSize ?? 16,
71
- maxBatchBytes: batchConfig?.maxBatchBytes ?? 65536,
72
- requestTimeoutMs: batchConfig?.requestTimeoutMs ?? 10000,
73
- allowedMethods: batchConfig?.allowedMethods !== void 0 && batchConfig.allowedMethods.length > 0 ? batchConfig.allowedMethods : [
74
- 'GET'
75
- ]
76
- }
77
- };
78
- return `import * as __requestRuntime from ${JSON.stringify(requestCreator)};
79
- import { createGeneratedEffectClient } from ${JSON.stringify(EFFECT_CLIENT_RUNTIME_IMPORT)};
80
-
81
- const __manifest = ${JSON.stringify(manifest, null, 2)};
82
-
83
- const __config = ${JSON.stringify(config, null, 2)};
84
-
85
- const __generated = createGeneratedEffectClient(__manifest, __config, __requestRuntime);
86
-
87
- const client = __generated.client;
88
- const operationManifest = __generated.operationManifest;
89
- const createEffectRequestContext = __generated.createEffectRequestContext;
90
- const apiModule = {
91
- client,
92
- operationManifest,
93
- createEffectRequestContext,
94
- };
95
-
96
- export { client, createEffectRequestContext, operationManifest };
97
- export default apiModule;
98
- `;
99
- }
100
- function renderClientShape(endpoints, valueType) {
101
- if (0 === endpoints.length) return `Record<string, Record<string, ${valueType}>>`;
102
- const groups = new Map();
103
- for (const endpoint of endpoints){
104
- const group = groups.get(endpoint.groupName) || [];
105
- group.push(endpoint.endpointName);
106
- groups.set(endpoint.groupName, group);
107
- }
108
- const groupEntries = [
109
- ...groups.entries()
110
- ].map(([groupName, names])=>{
111
- const endpointEntries = names.map((name)=>` ${JSON.stringify(name)}: ${valueType};`).join('\n');
112
- return ` ${JSON.stringify(groupName)}: {\n${endpointEntries}\n };`;
113
- });
114
- return `{\n${groupEntries.join('\n')}\n}`;
115
- }
116
- function renderEffectClientDeclaration(endpoints = []) {
117
- return `export type EffectClientOperation = (
118
- request?: unknown,
119
- ) => Promise<unknown>;
120
- export type EffectClientGroup = Record<string, EffectClientOperation>;
121
- export type EffectClient = Record<string, EffectClientGroup>;
122
- export type EffectOperationDescriptor = {
123
- appNamespace: string;
124
- apiId: string;
125
- group: string;
126
- endpoint: string;
127
- operationId: string;
128
- routePath: string;
129
- method: string;
130
- operationVersion: number;
131
- schemaHash: string;
132
- version: number;
133
- };
134
- export type EffectOperationManifest = Record<
135
- string,
136
- Record<string, EffectOperationDescriptor>
137
- >;
138
- export type EffectOperationContext = {
139
- requestId?: string;
140
- operationId?: string;
141
- routePath?: string;
142
- method?: string;
143
- schemaHash?: string;
144
- operationVersion?: number;
145
- locale?: string;
146
- traceparent?: string;
147
- traceId?: string;
148
- spanId?: string;
149
- source?: string;
150
- scope?: Record<string, unknown>;
151
- sessionClaims?: Record<string, unknown>;
152
- attributes?: Record<string, unknown>;
153
- };
154
- export type EffectRequestContext = {
155
- headers?: Record<string, string>;
156
- locale?: string;
157
- operationContext?: EffectOperationContext;
158
- traceparent?: string;
159
- traceId?: string;
160
- spanId?: string;
161
- };
162
- export type GeneratedEffectClient = ${renderClientShape(endpoints, 'EffectClientOperation')};
163
- export type GeneratedEffectOperationManifest = ${renderClientShape(endpoints, "EffectOperationDescriptor")};
164
-
165
- export declare const client: GeneratedEffectClient;
166
- export declare const createEffectRequestContext: (
167
- requestContext: Record<string, unknown>,
168
- ) => EffectRequestContext;
169
- export declare const operationManifest: GeneratedEffectOperationManifest;
170
- declare const apiModule: {
171
- client: GeneratedEffectClient;
172
- createEffectRequestContext: typeof createEffectRequestContext;
173
- operationManifest: GeneratedEffectOperationManifest;
174
- };
175
-
176
- export default apiModule;
177
- `;
178
- }
179
- export { renderEffectClientCode, renderEffectClientDeclaration };
@@ -1,27 +0,0 @@
1
- import { compatibleRequire, upath } from "@modern-js/utils";
2
- import { extractHttpApiFromModule } from "../../runtime/effect/endpoint-contracts.mjs";
3
- import { loadEffectSourceModule } from "../effectSourceLoader.mjs";
4
- let httpApiRuntimePromise;
5
- function isRecord(value) {
6
- return 'object' == typeof value && null !== value;
7
- }
8
- function isHttpApiRuntime(value) {
9
- return isRecord(value) && 'function' == typeof value.isHttpApi && 'function' == typeof value.reflect;
10
- }
11
- function getHttpApiRuntime() {
12
- if (void 0 === httpApiRuntimePromise) httpApiRuntimePromise = compatibleRequire('effect/unstable/httpapi', false).catch((error)=>{
13
- const message = error instanceof Error ? error.message : String(error);
14
- if (!message.includes("Cannot find module 'effect/unstable/httpapi'")) throw error;
15
- const effectPackageJson = require.resolve('effect/package.json');
16
- const effectHttpApiRuntimePath = upath.join(upath.dirname(effectPackageJson), 'dist', 'unstable', 'httpapi', 'index.js');
17
- return compatibleRequire(effectHttpApiRuntimePath, false);
18
- }).then((mod)=>{
19
- if (isRecord(mod) && isHttpApiRuntime(mod.HttpApi)) return mod.HttpApi;
20
- throw new Error('[BFF][Effect] Unable to resolve HttpApi runtime from effect/unstable/httpapi.');
21
- });
22
- return httpApiRuntimePromise;
23
- }
24
- function loadEffectApi(options) {
25
- return getHttpApiRuntime().then((httpApiRuntime)=>loadEffectSourceModule(options).then((mod)=>extractHttpApiFromModule(mod, httpApiRuntime.isHttpApi)));
26
- }
27
- export { getHttpApiRuntime, loadEffectApi };
File without changes
@@ -1 +0,0 @@
1
- export { generateEffectClient, generateEffectClientCode, renderEffectClientDeclaration, resolveEffectEntryFile } from "./effect-client-generator/index.mjs";