effect-app 4.0.0-beta.99 → 4.0.1

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 (391) hide show
  1. package/CHANGELOG.md +2042 -0
  2. package/dist/Array.d.ts +1 -17
  3. package/dist/Array.d.ts.map +1 -1
  4. package/dist/Array.js +3 -27
  5. package/dist/Chunk.d.ts +3 -27
  6. package/dist/Chunk.d.ts.map +1 -1
  7. package/dist/Chunk.js +4 -39
  8. package/dist/Config/SecretURL.d.ts +3 -1
  9. package/dist/Config/SecretURL.d.ts.map +1 -1
  10. package/dist/Config/SecretURL.js +3 -6
  11. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  12. package/dist/Config/internal/configSecretURL.js +2 -2
  13. package/dist/Config.d.ts +0 -5
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js +7 -5
  16. package/dist/ConfigProvider.d.ts +0 -37
  17. package/dist/ConfigProvider.d.ts.map +1 -1
  18. package/dist/ConfigProvider.js +5 -41
  19. package/dist/Context.d.ts +6 -4
  20. package/dist/Context.d.ts.map +1 -1
  21. package/dist/Context.js +4 -3
  22. package/dist/DataDependencies.d.ts +136 -0
  23. package/dist/DataDependencies.d.ts.map +1 -0
  24. package/dist/DataDependencies.js +112 -0
  25. package/dist/DateTime.d.ts +33 -0
  26. package/dist/DateTime.d.ts.map +1 -0
  27. package/dist/DateTime.js +18 -0
  28. package/dist/Effect.d.ts +3 -14
  29. package/dist/Effect.d.ts.map +1 -1
  30. package/dist/Effect.js +8 -26
  31. package/dist/Emailer.d.ts +51 -0
  32. package/dist/Emailer.d.ts.map +1 -0
  33. package/dist/Emailer.js +7 -0
  34. package/dist/Function.d.ts +0 -4
  35. package/dist/Function.d.ts.map +1 -1
  36. package/dist/Function.js +1 -7
  37. package/dist/Layer.d.ts +6 -3
  38. package/dist/Layer.d.ts.map +1 -1
  39. package/dist/Layer.js +3 -2
  40. package/dist/Model/Repository/Registry.d.ts +22 -0
  41. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  42. package/dist/Model/Repository/Registry.js +18 -0
  43. package/dist/Model/Repository/dependency.d.ts +6 -0
  44. package/dist/Model/Repository/dependency.d.ts.map +1 -0
  45. package/dist/Model/Repository/dependency.js +29 -0
  46. package/dist/Model/Repository/ext.d.ts +60 -0
  47. package/dist/Model/Repository/ext.d.ts.map +1 -0
  48. package/dist/Model/Repository/ext.js +124 -0
  49. package/dist/Model/Repository/internal/internal.d.ts +68 -0
  50. package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
  51. package/dist/Model/Repository/internal/internal.js +610 -0
  52. package/dist/Model/Repository/legacy.d.ts +21 -0
  53. package/dist/Model/Repository/legacy.d.ts.map +1 -0
  54. package/dist/Model/Repository/legacy.js +2 -0
  55. package/dist/Model/Repository/makeRepo.d.ts +71 -0
  56. package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
  57. package/dist/Model/Repository/makeRepo.js +30 -0
  58. package/dist/Model/Repository/service.d.ts +121 -0
  59. package/dist/Model/Repository/service.d.ts.map +1 -0
  60. package/dist/Model/Repository/service.js +2 -0
  61. package/dist/Model/Repository/validation.d.ts +72 -0
  62. package/dist/Model/Repository/validation.d.ts.map +1 -0
  63. package/dist/Model/Repository/validation.js +39 -0
  64. package/dist/Model/Repository.d.ts +8 -0
  65. package/dist/Model/Repository.d.ts.map +1 -0
  66. package/dist/Model/Repository.js +8 -0
  67. package/dist/Model/dsl.d.ts +34 -0
  68. package/dist/Model/dsl.d.ts.map +1 -0
  69. package/dist/Model/dsl.js +45 -0
  70. package/dist/Model/filter/filterApi.d.ts +30 -0
  71. package/dist/Model/filter/filterApi.d.ts.map +1 -0
  72. package/dist/Model/filter/filterApi.js +2 -0
  73. package/dist/Model/filter/types/errors.d.ts +29 -0
  74. package/dist/Model/filter/types/errors.d.ts.map +1 -0
  75. package/dist/Model/filter/types/errors.js +2 -0
  76. package/dist/Model/filter/types/fields.d.ts +15 -0
  77. package/dist/Model/filter/types/fields.d.ts.map +1 -0
  78. package/dist/Model/filter/types/fields.js +2 -0
  79. package/dist/Model/filter/types/path/common.d.ts +316 -0
  80. package/dist/Model/filter/types/path/common.d.ts.map +1 -0
  81. package/dist/Model/filter/types/path/common.js +2 -0
  82. package/dist/Model/filter/types/path/eager.d.ts +94 -0
  83. package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
  84. package/dist/Model/filter/types/path/eager.js +36 -0
  85. package/dist/Model/filter/types/path/index.d.ts +4 -0
  86. package/dist/Model/filter/types/path/index.d.ts.map +1 -0
  87. package/dist/Model/filter/types/path/index.js +3 -0
  88. package/dist/Model/filter/types/utils.d.ts +79 -0
  89. package/dist/Model/filter/types/utils.d.ts.map +1 -0
  90. package/dist/Model/filter/types/utils.js +2 -0
  91. package/dist/Model/filter/types/validator.d.ts +30 -0
  92. package/dist/Model/filter/types/validator.d.ts.map +1 -0
  93. package/dist/Model/filter/types/validator.js +2 -0
  94. package/dist/Model/filter/types.d.ts +5 -0
  95. package/dist/Model/filter/types.d.ts.map +1 -0
  96. package/dist/Model/filter/types.js +7 -0
  97. package/dist/Model/query/dsl.d.ts +630 -0
  98. package/dist/Model/query/dsl.d.ts.map +1 -0
  99. package/dist/Model/query/dsl.js +376 -0
  100. package/dist/Model/query/new-kid-interpreter.d.ts +132 -0
  101. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
  102. package/dist/Model/query/new-kid-interpreter.js +369 -0
  103. package/dist/Model/query.d.ts +15 -0
  104. package/dist/Model/query.d.ts.map +1 -0
  105. package/dist/Model/query.js +3 -0
  106. package/dist/Model.d.ts +6 -0
  107. package/dist/Model.d.ts.map +1 -0
  108. package/dist/Model.js +6 -0
  109. package/dist/NonEmptySet.d.ts +3 -1
  110. package/dist/NonEmptySet.d.ts.map +1 -1
  111. package/dist/NonEmptySet.js +2 -2
  112. package/dist/Option.d.ts +1 -2
  113. package/dist/Option.d.ts.map +1 -1
  114. package/dist/Option.js +3 -7
  115. package/dist/Pure.d.ts +9 -7
  116. package/dist/Pure.d.ts.map +1 -1
  117. package/dist/Pure.js +20 -17
  118. package/dist/QueueMaker.d.ts +11 -0
  119. package/dist/QueueMaker.d.ts.map +1 -0
  120. package/dist/QueueMaker.js +11 -0
  121. package/dist/RequestContext.d.ts +87 -0
  122. package/dist/RequestContext.d.ts.map +1 -0
  123. package/dist/RequestContext.js +45 -0
  124. package/dist/RequestScopedDependencies.d.ts +21 -0
  125. package/dist/RequestScopedDependencies.d.ts.map +1 -0
  126. package/dist/RequestScopedDependencies.js +16 -0
  127. package/dist/Schema/Class.d.ts +163 -16
  128. package/dist/Schema/Class.d.ts.map +1 -1
  129. package/dist/Schema/Class.js +193 -21
  130. package/dist/Schema/FastCheck.d.ts.map +1 -1
  131. package/dist/Schema/SchemaParser.d.ts +5 -0
  132. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  133. package/dist/Schema/SchemaParser.js +6 -0
  134. package/dist/Schema/SpecialJsonSchema.d.ts +15 -2
  135. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -1
  136. package/dist/Schema/SpecialJsonSchema.js +70 -12
  137. package/dist/Schema/SpecialOpenApi.d.ts +1 -1
  138. package/dist/Schema/SpecialOpenApi.js +3 -3
  139. package/dist/Schema/brand.d.ts +5 -5
  140. package/dist/Schema/brand.d.ts.map +1 -1
  141. package/dist/Schema/brand.js +6 -4
  142. package/dist/Schema/email.d.ts.map +1 -1
  143. package/dist/Schema/email.js +8 -5
  144. package/dist/Schema/ext.d.ts +279 -75
  145. package/dist/Schema/ext.d.ts.map +1 -1
  146. package/dist/Schema/ext.js +330 -72
  147. package/dist/Schema/moreStrings.d.ts +82 -48
  148. package/dist/Schema/moreStrings.d.ts.map +1 -1
  149. package/dist/Schema/moreStrings.js +85 -51
  150. package/dist/Schema/numbers.d.ts +33 -21
  151. package/dist/Schema/numbers.d.ts.map +1 -1
  152. package/dist/Schema/numbers.js +64 -12
  153. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  154. package/dist/Schema/phoneNumber.js +6 -6
  155. package/dist/Schema/schema.d.ts +1 -1
  156. package/dist/Schema/schema.d.ts.map +1 -1
  157. package/dist/Schema/schema.js +2 -2
  158. package/dist/Schema/strings.d.ts +18 -4
  159. package/dist/Schema/strings.d.ts.map +1 -1
  160. package/dist/Schema/strings.js +1 -5
  161. package/dist/Schema.d.ts +224 -7
  162. package/dist/Schema.d.ts.map +1 -1
  163. package/dist/Schema.js +190 -24
  164. package/dist/SchemaAST.d.ts +2 -0
  165. package/dist/SchemaAST.d.ts.map +1 -0
  166. package/dist/SchemaAST.js +2 -0
  167. package/dist/Set.d.ts +4 -1
  168. package/dist/Set.d.ts.map +1 -1
  169. package/dist/Set.js +8 -6
  170. package/dist/Store.d.ts +215 -0
  171. package/dist/Store.d.ts.map +1 -0
  172. package/dist/Store.js +113 -0
  173. package/dist/_ext/Array.d.ts +1 -1
  174. package/dist/_ext/Array.d.ts.map +1 -1
  175. package/dist/_ext/Array.js +4 -2
  176. package/dist/_ext/ord.ext.d.ts +2 -1
  177. package/dist/_ext/ord.ext.d.ts.map +1 -1
  178. package/dist/_ext/ord.ext.js +2 -2
  179. package/dist/builtin.d.ts +2 -14
  180. package/dist/builtin.d.ts.map +1 -1
  181. package/dist/builtin.js +1 -1
  182. package/dist/client/InvalidationKeys.d.ts +30 -0
  183. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  184. package/dist/client/InvalidationKeys.js +37 -0
  185. package/dist/client/apiClientFactory.d.ts +13 -8
  186. package/dist/client/apiClientFactory.d.ts.map +1 -1
  187. package/dist/client/apiClientFactory.js +154 -34
  188. package/dist/client/clientFor.d.ts +48 -13
  189. package/dist/client/clientFor.d.ts.map +1 -1
  190. package/dist/client/clientFor.js +9 -1
  191. package/dist/client/errors.d.ts +74 -28
  192. package/dist/client/errors.d.ts.map +1 -1
  193. package/dist/client/errors.js +41 -10
  194. package/dist/client/makeClient.d.ts +487 -32
  195. package/dist/client/makeClient.d.ts.map +1 -1
  196. package/dist/client/makeClient.js +47 -21
  197. package/dist/client.d.ts +2 -0
  198. package/dist/client.d.ts.map +1 -1
  199. package/dist/client.js +3 -1
  200. package/dist/faker.d.ts.map +1 -1
  201. package/dist/http/Request.d.ts +2 -2
  202. package/dist/http/Request.d.ts.map +1 -1
  203. package/dist/http/Request.js +2 -2
  204. package/dist/http/internal/lib.d.ts +12 -12
  205. package/dist/http/internal/lib.d.ts.map +1 -1
  206. package/dist/http/internal/lib.js +13 -13
  207. package/dist/ids.d.ts +32 -14
  208. package/dist/ids.d.ts.map +1 -1
  209. package/dist/ids.js +38 -7
  210. package/dist/index.d.ts +3 -0
  211. package/dist/index.d.ts.map +1 -1
  212. package/dist/index.js +5 -1
  213. package/dist/middleware.d.ts +12 -6
  214. package/dist/middleware.d.ts.map +1 -1
  215. package/dist/middleware.js +13 -7
  216. package/dist/migration/nativeEffect.d.ts +21 -0
  217. package/dist/migration/nativeEffect.d.ts.map +1 -0
  218. package/dist/migration/nativeEffect.js +598 -0
  219. package/dist/rpc/Invalidation.d.ts +1124 -0
  220. package/dist/rpc/Invalidation.d.ts.map +1 -0
  221. package/dist/rpc/Invalidation.js +178 -0
  222. package/dist/rpc/MiddlewareMaker.d.ts +10 -7
  223. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  224. package/dist/rpc/MiddlewareMaker.js +57 -37
  225. package/dist/rpc/RpcContextMap.d.ts +2 -2
  226. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  227. package/dist/rpc/RpcMiddleware.d.ts +13 -10
  228. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  229. package/dist/rpc/RpcMiddleware.js +2 -2
  230. package/dist/rpc.d.ts +1 -1
  231. package/dist/rpc.d.ts.map +1 -1
  232. package/dist/rpc.js +2 -2
  233. package/dist/runtime.d.ts +19 -0
  234. package/dist/runtime.d.ts.map +1 -0
  235. package/dist/runtime.js +40 -0
  236. package/dist/setupRequest.d.ts +20 -0
  237. package/dist/setupRequest.d.ts.map +1 -0
  238. package/dist/setupRequest.js +72 -0
  239. package/dist/toast.d.ts +51 -0
  240. package/dist/toast.d.ts.map +1 -0
  241. package/dist/toast.js +34 -0
  242. package/dist/transform.d.ts +1 -1
  243. package/dist/transform.d.ts.map +1 -1
  244. package/dist/transform.js +4 -5
  245. package/dist/utils/effectify.d.ts +1 -1
  246. package/dist/utils/effectify.d.ts.map +1 -1
  247. package/dist/utils/effectify.js +2 -2
  248. package/dist/utils/extend.d.ts +6 -1
  249. package/dist/utils/extend.d.ts.map +1 -1
  250. package/dist/utils/extend.js +24 -6
  251. package/dist/utils/gen.d.ts +4 -4
  252. package/dist/utils/gen.d.ts.map +1 -1
  253. package/dist/utils/logLevel.d.ts +2 -2
  254. package/dist/utils/logLevel.d.ts.map +1 -1
  255. package/dist/utils/logger.d.ts +2 -1
  256. package/dist/utils/logger.d.ts.map +1 -1
  257. package/dist/utils/logger.js +2 -2
  258. package/dist/utils.d.ts +34 -45
  259. package/dist/utils.d.ts.map +1 -1
  260. package/dist/utils.js +33 -49
  261. package/dist/validation/validators.d.ts.map +1 -1
  262. package/dist/validation.d.ts.map +1 -1
  263. package/dist/withToast.d.ts +30 -0
  264. package/dist/withToast.d.ts.map +1 -0
  265. package/dist/withToast.js +64 -0
  266. package/package.json +25 -266
  267. package/src/Array.ts +7 -39
  268. package/src/Chunk.ts +6 -55
  269. package/src/Config/SecretURL.ts +6 -3
  270. package/src/Config/internal/configSecretURL.ts +2 -2
  271. package/src/Config.ts +6 -13
  272. package/src/ConfigProvider.ts +4 -47
  273. package/src/Context.ts +9 -8
  274. package/src/DataDependencies.ts +171 -0
  275. package/src/DateTime.ts +473 -0
  276. package/src/Effect.ts +10 -32
  277. package/src/Emailer.ts +51 -0
  278. package/src/Function.ts +0 -7
  279. package/src/Inputify.type.ts +1 -1
  280. package/src/Layer.ts +8 -5
  281. package/src/Model/Repository/Registry.ts +35 -0
  282. package/src/Model/Repository/dependency.ts +32 -0
  283. package/src/Model/Repository/ext.ts +374 -0
  284. package/src/Model/Repository/internal/internal.ts +987 -0
  285. package/src/Model/Repository/legacy.ts +29 -0
  286. package/src/Model/Repository/makeRepo.ts +168 -0
  287. package/src/Model/Repository/service.ts +676 -0
  288. package/src/Model/Repository/validation.ts +38 -0
  289. package/src/Model/Repository.ts +7 -0
  290. package/src/Model/dsl.ts +130 -0
  291. package/src/Model/filter/filterApi.ts +78 -0
  292. package/src/Model/filter/types/errors.ts +47 -0
  293. package/src/Model/filter/types/fields.ts +50 -0
  294. package/src/Model/filter/types/path/common.ts +404 -0
  295. package/src/Model/filter/types/path/eager.ts +329 -0
  296. package/src/Model/filter/types/path/index.ts +4 -0
  297. package/src/Model/filter/types/utils.ts +128 -0
  298. package/src/Model/filter/types/validator.ts +46 -0
  299. package/src/Model/filter/types.ts +6 -0
  300. package/src/Model/query/dsl.ts +3092 -0
  301. package/src/Model/query/new-kid-interpreter.ts +531 -0
  302. package/src/Model/query.ts +13 -0
  303. package/src/Model.ts +5 -0
  304. package/src/NonEmptySet.ts +6 -4
  305. package/src/Option.ts +3 -8
  306. package/src/Pure.ts +20 -17
  307. package/src/QueueMaker.ts +11 -0
  308. package/src/RequestContext.ts +48 -0
  309. package/src/RequestScopedDependencies.ts +45 -0
  310. package/src/Schema/Class.ts +550 -56
  311. package/src/Schema/SchemaParser.ts +12 -0
  312. package/src/Schema/SpecialJsonSchema.ts +75 -7
  313. package/src/Schema/SpecialOpenApi.ts +5 -5
  314. package/src/Schema/brand.ts +27 -12
  315. package/src/Schema/email.ts +9 -7
  316. package/src/Schema/ext.ts +405 -95
  317. package/src/Schema/moreStrings.ts +213 -88
  318. package/src/Schema/numbers.ts +107 -29
  319. package/src/Schema/phoneNumber.ts +8 -9
  320. package/src/Schema/schema.ts +1 -1
  321. package/src/Schema/strings.ts +23 -14
  322. package/src/Schema.ts +403 -46
  323. package/src/SchemaAST.ts +1 -0
  324. package/src/Set.ts +10 -5
  325. package/src/Store.ts +325 -0
  326. package/src/_ext/Array.ts +4 -2
  327. package/src/_ext/ord.ext.ts +2 -1
  328. package/src/builtin-json.d.ts +24 -0
  329. package/src/builtin.ts +16 -21
  330. package/src/client/InvalidationKeys.ts +55 -0
  331. package/src/client/apiClientFactory.ts +295 -129
  332. package/src/client/clientFor.ts +101 -33
  333. package/src/client/errors.ts +66 -20
  334. package/src/client/makeClient.ts +519 -60
  335. package/src/client.ts +6 -4
  336. package/src/http/Request.ts +4 -4
  337. package/src/http/internal/lib.ts +12 -12
  338. package/src/http.ts +1 -1
  339. package/src/ids.ts +45 -8
  340. package/src/index.ts +20 -16
  341. package/src/middleware.ts +12 -8
  342. package/src/migration/nativeEffect.ts +645 -0
  343. package/src/rpc/Invalidation.ts +278 -0
  344. package/src/rpc/MiddlewareMaker.ts +86 -79
  345. package/src/rpc/README.md +2 -2
  346. package/src/rpc/RpcContextMap.ts +4 -4
  347. package/src/rpc/RpcMiddleware.ts +18 -13
  348. package/src/rpc.ts +4 -4
  349. package/src/runtime.ts +57 -0
  350. package/src/setupRequest.ts +138 -0
  351. package/src/toast.ts +54 -0
  352. package/src/transform.ts +4 -4
  353. package/src/utils/effectify.ts +1 -1
  354. package/src/utils/extend.ts +24 -5
  355. package/src/utils/gen.ts +7 -7
  356. package/src/utils/logLevel.ts +1 -1
  357. package/src/utils/logger.ts +3 -2
  358. package/src/utils.ts +85 -175
  359. package/src/validation.ts +2 -2
  360. package/src/withToast.ts +133 -0
  361. package/test/dateTimeLocal.test.ts +55 -0
  362. package/test/dist/dateTimeLocal.test.d.ts.map +1 -0
  363. package/test/dist/nativeEffectMigration.test.d.ts.map +1 -0
  364. package/test/dist/rpc.test.d.ts.map +1 -1
  365. package/test/dist/rpcMiddlewareContext.test.d.ts.map +1 -0
  366. package/test/moreStrings.test.ts +55 -10
  367. package/test/nativeEffectMigration.test.ts +77 -0
  368. package/test/rpc.test.ts +28 -11
  369. package/test/rpcMiddlewareContext.test.ts +63 -0
  370. package/test/schema.test.ts +318 -55
  371. package/test/secretURL.test.ts +4 -1
  372. package/test/special.test.ts +663 -131
  373. package/test/utils.test.ts +5 -5
  374. package/tsconfig.base.json +6 -4
  375. package/tsconfig.json +9 -1
  376. package/tsconfig.src.json +29 -29
  377. package/tsconfig.test.json +2 -2
  378. package/dist/Operations.d.ts +0 -124
  379. package/dist/Operations.d.ts.map +0 -1
  380. package/dist/Operations.js +0 -29
  381. package/dist/_ext/date.d.ts +0 -15
  382. package/dist/_ext/date.d.ts.map +0 -1
  383. package/dist/_ext/date.js +0 -16
  384. package/dist/_ext/misc.d.ts +0 -14
  385. package/dist/_ext/misc.d.ts.map +0 -1
  386. package/dist/_ext/misc.js +0 -17
  387. package/eslint.config.mjs +0 -26
  388. package/src/Operations.ts +0 -55
  389. package/src/_ext/date.ts +0 -27
  390. package/src/_ext/misc.ts +0 -46
  391. package/tsconfig.json.bak +0 -12
@@ -1,22 +1,24 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { flow } from "effect/Function";
2
+ import { constant, flow } from "effect/Function";
3
3
  import * as Layer from "effect/Layer";
4
4
  import * as ManagedRuntime from "effect/ManagedRuntime";
5
+ import * as Option from "effect/Option";
5
6
  import * as Predicate from "effect/Predicate";
7
+ import * as Record from "effect/Record";
8
+ import { Rpc, RpcClient, RpcGroup, RpcSerialization } from "effect/rpc";
6
9
  import * as Schema from "effect/Schema";
10
+ import * as Stream from "effect/Stream";
7
11
  import * as Struct from "effect/Struct";
8
- import { Rpc, RpcClient, RpcGroup, RpcSerialization } from "effect/unstable/rpc";
9
12
  import * as Config from "../Config.js";
10
13
  import * as Context from "../Context.js";
14
+ import * as DataDependencies from "../DataDependencies.js";
11
15
  import * as Effect from "../Effect.js";
12
16
  import { HttpClient, HttpClientRequest } from "../http.js";
13
- import * as Option from "../Option.js";
14
- import { typedKeysOf, typedValuesOf } from "../utils.js";
17
+ import { Invalidation } from "../rpc.js";
18
+ import { InvalidationKeysFromServer } from "./InvalidationKeys.js";
15
19
  export const DefaultApiConfig = Config.all({
16
- url: Config.string("apiUrl").pipe(Config.withDefault("/api")),
17
- headers: Config
18
- .schema(Config.Record(Schema.String, Schema.String), "headers")
19
- .pipe(Config.option)
20
+ url: Config.String("apiUrl").pipe(Config.withDefault("/api")),
21
+ headers: Config.Record(Schema.String, Schema.String, "headers").pipe(Config.option)
20
22
  });
21
23
  class RequestName extends Context.Reference("RequestName", {
22
24
  defaultValue: () => ({ requestName: "Unspecified", moduleName: "Error" })
@@ -25,7 +27,7 @@ class RequestName extends Context.Reference("RequestName", {
25
27
  export const HttpClientLayer = (config) => Layer.effect(HttpClient.HttpClient, Effect
26
28
  .gen(function* () {
27
29
  const baseClient = yield* HttpClient.HttpClient;
28
- const client = baseClient.pipe(HttpClient.mapRequest(HttpClientRequest.prependUrl(config.url + "/rpc")), HttpClient.mapRequest(HttpClientRequest.setHeaders(config.headers.pipe(Option.getOrElse(() => ({}))))), HttpClient.mapRequestEffect((req) => Effect.map(RequestName.asEffect(), (ctx) => flow(HttpClientRequest.appendUrlParam("action", ctx.requestName), HttpClientRequest.appendUrl("/" + ctx.moduleName))(req))));
30
+ const client = baseClient.pipe(HttpClient.mapRequest(HttpClientRequest.prependUrl(config.url + "/rpc")), HttpClient.mapRequest(HttpClientRequest.setHeaders(config.headers.pipe(Option.getOrElse(() => ({}))))), HttpClient.mapRequestEffect((req) => Effect.map(RequestName, (ctx) => flow(HttpClientRequest.appendUrlParam("action", ctx.requestName), HttpClientRequest.appendUrl("/" + ctx.moduleName))(req))));
29
31
  return client;
30
32
  }));
31
33
  export const HttpClientFromConfigLayer = Layer.unwrap(Effect.gen(function* () {
@@ -35,7 +37,7 @@ export const HttpClientFromConfigLayer = Layer.unwrap(Effect.gen(function* () {
35
37
  export const RpcSerializationLayer = (config) => Layer.mergeAll(RpcSerialization.layerNdjson, HttpClientLayer(config));
36
38
  const getFiltered = (resource) => {
37
39
  // TODO: Record.filter
38
- const filtered = typedKeysOf(resource).reduce((acc, cur) => {
40
+ const filtered = Struct.keys(resource).reduce((acc, cur) => {
39
41
  if (Predicate.isObjectKeyword(resource[cur])
40
42
  && (resource[cur].success)) {
41
43
  acc[cur] = resource[cur];
@@ -45,51 +47,109 @@ const getFiltered = (resource) => {
45
47
  return filtered;
46
48
  };
47
49
  export const getMeta = (resource) => {
48
- const first = typedValuesOf(getFiltered(resource))[0];
50
+ const first = Record.values(getFiltered(resource))[0];
49
51
  if (first && "moduleName" in first)
50
- return { moduleName: first.moduleName };
52
+ return { moduleName: first.moduleName, middleware: first.middleware };
51
53
  throw new Error("No moduleName on requests!");
52
54
  };
53
- export const makeRpcGroupFromRequestsAndModuleName = (resource, moduleName) => {
55
+ export const makeRpcGroupFromRequestsAndModuleName = (resource, moduleName,
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ middleware) => {
54
58
  const filtered = getFiltered(resource);
55
- const rpcs = RpcGroup
56
- .make(...typedValuesOf(filtered).map((_) => {
57
- return Rpc.make(_._tag, { payload: _, success: _.success, error: _.error });
59
+ const baseRpcs = RpcGroup
60
+ .make(...Record.values(filtered).map((_) => {
61
+ const r = _;
62
+ const isStream = r.stream;
63
+ const isCommand = r.type === "command";
64
+ return (isCommand
65
+ ? isStream
66
+ ? Invalidation.makeStreamRpc(r._tag, {
67
+ payload: r,
68
+ success: r.success,
69
+ error: r.error,
70
+ stream: true
71
+ })
72
+ : Invalidation.makeCommandRpc(r._tag, { payload: r, success: r.success, error: r.error })
73
+ : Rpc.make(r._tag, {
74
+ payload: r,
75
+ success: isStream ? r.success : Invalidation.QueryResponseWithMetaData(r.success),
76
+ error: r.error,
77
+ stream: isStream
78
+ }));
58
79
  }))
59
80
  .prefix(`${moduleName}.`);
81
+ // Attach the middleware tag (schema-only on the client — no Live invoked)
82
+ // so its declared `error` joins the rpc failure union via
83
+ // `Rpc.exitSchema`'s `rpc.middlewares[*].error` walk. Required for stream
84
+ // rpcs whose top-level `errorSchema` is forced to `Never` by effect-rpc;
85
+ // without it, middleware-thrown errors fail client decode.
86
+ const rpcs = (middleware ? baseRpcs.middleware(middleware) : baseRpcs);
60
87
  return rpcs;
61
88
  };
62
- const makeRpcTag = (resource) => {
89
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
+ const makeRpcTag = (resource, middleware) => {
63
91
  const meta = getMeta(resource);
64
- const rpcs = makeRpcGroupFromRequestsAndModuleName(resource, meta.moduleName);
92
+ const rpcs = makeRpcGroupFromRequestsAndModuleName(resource, meta.moduleName, middleware);
65
93
  // Use Object.assign instead of class extension to avoid TS2509 with complex generic return types.
66
94
  // The first type arg is `any` because this is a dynamically created tag — its identity is the string key.
67
95
  const TheClient = Context.Opaque()(`RpcClient.${meta.moduleName}`);
68
96
  // Use Layer.effect directly (not TheClient.toLayer) so TypeScript properly excludes Scope
69
- const layer = Layer.effect(TheClient, RpcClient.make(rpcs, { spanPrefix: "RpcClient." + meta.moduleName }));
97
+ const layer = Layer.effect(TheClient, RpcClient.make(rpcs));
70
98
  return Object.assign(TheClient, { layer });
71
99
  };
72
100
  const makeApiClientFactory = Effect
73
101
  .gen(function* () {
74
102
  const ctx = yield* Effect.context();
75
- const makeClientFor = (resource, requestLevelLayers = Layer.empty, options) => Effect.gen(function* () {
76
- const TheClient = makeRpcTag(resource);
103
+ const makeClientFor = Effect.fnUntraced(function* (resource, requestLevelLayers = Layer.empty, options) {
77
104
  const meta = getMeta(resource);
105
+ const TheClient = makeRpcTag(resource, meta.middleware);
78
106
  // TODO: somehow we need a protocol per REQUEST kind of it seems ...
79
107
  // otherwise it locks up on the client, navigation remains empty...
80
108
  const clientLayer = TheClient.layer.pipe(
81
109
  // add ApiClientFactory for nested schemas
82
110
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
83
111
  Layer.provide(Layer.succeed(ApiClientFactory, makeClientForCached)), Layer.provide(RpcClient
84
- .layerProtocolHttp({
85
- url: "" // why not here set meta.moduleName as root?
86
- })
112
+ .layerProtocolHttp({ url: "" }) // why not here set meta.moduleName as root?
87
113
  .pipe(Layer.provideMerge(Layer.succeedContext(ctx)))));
88
114
  const mr = ManagedRuntime.make(clientLayer);
89
115
  const filtered = getFiltered(resource);
116
+ // Unwrap `CommandResponseWithMetaData` (success) and `CommandFailureWithMetaData`
117
+ // (handler-thrown failure): forward accumulated invalidation keys to
118
+ // `InvalidationKeysFromServer` and yield the raw payload / re-fail with the raw
119
+ // error. Middleware-thrown failures arrive raw on the Cause already (no wrap to
120
+ // strip) — the `else` branch passes them through.
121
+ const forwardDependencies = (dependencies, options) => dependencies === undefined
122
+ ? Effect.void
123
+ : Effect.gen(function* () {
124
+ const dependencyRecorder = yield* DataDependencies.getDataDependencyRecorder;
125
+ if (options?.reads) {
126
+ yield* Effect.forEach(dependencies.reads, dependencyRecorder.read, { discard: true });
127
+ }
128
+ yield* Effect.forEach(dependencies.writes, dependencyRecorder.write, { discard: true });
129
+ });
130
+ const unwrapCommand = (eff) => eff.pipe(Effect.flatMap((result) => Effect.gen(function* () {
131
+ const keys = result?.metadata?.invalidateQueries ?? [];
132
+ const invalidationKeys = yield* InvalidationKeysFromServer;
133
+ yield* Effect.forEach(keys, (key) => invalidationKeys.add(key), { discard: true });
134
+ yield* forwardDependencies(result?.metadata?.dataDependencies);
135
+ return result.payload;
136
+ })), Effect.catch((result) => result?._tag === "CommandFailureWithMetaData"
137
+ ? Effect.gen(function* () {
138
+ const keys = result.metadata?.invalidateQueries ?? [];
139
+ const invalidationKeys = yield* InvalidationKeysFromServer;
140
+ yield* Effect.forEach(keys, (key) => invalidationKeys.add(key), { discard: true });
141
+ yield* forwardDependencies(result.metadata?.dataDependencies);
142
+ return yield* Effect.fail(result.error);
143
+ })
144
+ : Effect.fail(result)));
145
+ const unwrapQuery = (eff) => eff.pipe(Effect.flatMap((result) => Effect.gen(function* () {
146
+ yield* forwardDependencies(result?.metadata?.dataDependencies, { reads: true });
147
+ return result.payload;
148
+ })));
90
149
  return {
91
150
  mr,
92
- client: typedKeysOf(filtered)
151
+ client: Struct
152
+ .keys(filtered)
93
153
  .reduce((prev, cur) => {
94
154
  const h = filtered[cur];
95
155
  const Request = h;
@@ -98,7 +158,10 @@ const makeApiClientFactory = Effect
98
158
  const requestMeta = {
99
159
  Request,
100
160
  id,
101
- options
161
+ options,
162
+ disableQueryInvalidation: h
163
+ .config
164
+ ?.disableQueryInvalidation === true
102
165
  };
103
166
  const requestNameLayer = Layer.succeed(RequestName, {
104
167
  requestName: cur,
@@ -107,18 +170,75 @@ const makeApiClientFactory = Effect
107
170
  const layers = requestLevelLayers.pipe(Layer.provideMerge(requestNameLayer));
108
171
  const fields = Struct.omit(Request.fields, ["_tag"]);
109
172
  const requestAttr = `${meta.moduleName}.${h._tag}`;
173
+ const isCommand = h.type === "command";
174
+ const isStream = h.stream;
175
+ const buildEffect = (input) => mr.contextEffect.pipe(Effect.flatMap((svcs) => {
176
+ const rpcEffect = TheClient
177
+ .use((client) => client[requestAttr](Request.make(input)))
178
+ .pipe(
179
+ // local: true → isolate to this RPC call. `layers` is pure today
180
+ // (RequestName + caller-supplied requestLevelLayers), but the
181
+ // flag prevents a stateful caller-supplied layer from leaking
182
+ // across RPC calls via the ambient fiber MemoMap.
183
+ Effect.provide(layers, { local: true }), Effect.provide(svcs));
184
+ return isCommand ? unwrapCommand(rpcEffect) : isStream ? rpcEffect : unwrapQuery(rpcEffect);
185
+ }),
186
+ // Forwarding the server's dependency metadata needs a recorder in scope. A parent
187
+ // query/command (vue) provides one; a top-level call gets a fresh per-request one.
188
+ DataDependencies.ensureDataDependencyRecorder);
189
+ const buildStream = (input) => {
190
+ const stream = Stream.unwrap(mr.contextEffect.pipe(Effect.flatMap((svcs) => TheClient
191
+ .useSync((client) => {
192
+ const rpcStream = client[requestAttr](Request.make(input));
193
+ return rpcStream.pipe(
194
+ // Collect server invalidation keys from the "done" chunk, then discard it.
195
+ Stream.tap((item) => item._tag === "done" || item._tag === "metadata"
196
+ ? Effect.gen(function* () {
197
+ const metadata = item.metadata;
198
+ const invalidationKeys = yield* InvalidationKeysFromServer;
199
+ yield* Effect.forEach(metadata.invalidateQueries, invalidationKeys.add, {
200
+ discard: true
201
+ });
202
+ const dependencyRecorder = yield* DataDependencies.getDataDependencyRecorder;
203
+ yield* Effect.forEach(metadata.dataDependencies.reads, dependencyRecorder.read, { discard: true });
204
+ yield* Effect.forEach(metadata.dataDependencies.writes, dependencyRecorder.write, { discard: true });
205
+ })
206
+ : Effect.void), Stream.filter((item) => item._tag === "value"), Stream.map((item) => item.value),
207
+ // V2: unwrap StreamFailureChunk — forward keys from failures too,
208
+ // then re-fail with the original error so callers see the unmodified
209
+ // error type.
210
+ Stream.catch((err) => err?._tag === "error" && err?.metadata
211
+ ? Stream.fromEffect(Effect.gen(function* () {
212
+ const metadata = err.metadata;
213
+ const invalidationKeys = yield* InvalidationKeysFromServer;
214
+ yield* Effect.forEach(metadata.invalidateQueries, invalidationKeys.add, {
215
+ discard: true
216
+ });
217
+ const dependencyRecorder = yield* DataDependencies.getDataDependencyRecorder;
218
+ yield* Effect.forEach(metadata.dataDependencies.writes, dependencyRecorder.write, { discard: true });
219
+ return yield* Effect.fail(err.error);
220
+ }))
221
+ : Stream.fail(err)),
222
+ // local: true — see buildEffect above.
223
+ Stream.provide(layers, { local: true }), Stream.provide(svcs));
224
+ })
225
+ .pipe(Effect.provide(svcs)))));
226
+ // Forwarding the server's dependency metadata needs a recorder in scope. A parent
227
+ // query/command (vue) provides one; a top-level stream call gets a fresh per-request one.
228
+ return Stream.unwrap(Effect.map(DataDependencies.DataDependencyRecorder, (current) => current === "root"
229
+ ? Stream.provide(stream, DataDependencies.DataDependencyRecorder.layer)
230
+ : stream));
231
+ };
110
232
  // @ts-expect-error doc
111
233
  prev[cur] = Object.keys(fields).length === 0
112
234
  ? {
113
- handler: mr.contextEffect.pipe(Effect.flatMap((svcs) => TheClient
114
- .use((client) => client[requestAttr](new Request()))
115
- .pipe(Effect.provide(layers), Effect.provide(svcs)))),
235
+ handler: isStream ? constant(buildStream({})) : constant(buildEffect({})),
116
236
  ...requestMeta
117
237
  }
118
238
  : {
119
- handler: (req) => mr.contextEffect.pipe(Effect.flatMap((svcs) => TheClient
120
- .use((client) => client[requestAttr](new Request(req)))
121
- .pipe(Effect.provide(layers), Effect.provide(svcs)))),
239
+ handler: isStream
240
+ ? (req) => buildStream(req)
241
+ : (req) => buildEffect(req),
122
242
  ...requestMeta
123
243
  };
124
244
  return prev;
@@ -134,7 +254,7 @@ const makeApiClientFactory = Effect
134
254
  cache = new Map();
135
255
  cacheL.set(requestLevelLayers, cache);
136
256
  }
137
- return (models) => Effect.gen(function* () {
257
+ return Effect.fnUntraced(function* (models) {
138
258
  const found = cache.get(models);
139
259
  if (found) {
140
260
  return found;
@@ -161,4 +281,4 @@ export class ApiClientFactory extends Context.Opaque()("ApiClientFactory") {
161
281
  return f(resource);
162
282
  });
163
283
  }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ2xpZW50RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvYXBpQ2xpZW50RmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxjQUFjLE1BQU0sdUJBQXVCLENBQUE7QUFDdkQsT0FBTyxLQUFLLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNoRixPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBUXhELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDekMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsT0FBTyxFQUFFLE1BQU07U0FDWixNQUFNLENBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQyxN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
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ2xpZW50RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvYXBpQ2xpZW50RmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRCxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssY0FBYyxNQUFNLHVCQUF1QixDQUFBO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZFLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSx3QkFBd0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFHeEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFPbEUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FB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
@@ -1,4 +1,4 @@
1
- import type * as Request from "effect/Request";
1
+ import type * as Stream from "effect/Stream";
2
2
  import type { Path } from "path-parser";
3
3
  import type * as Effect from "../Effect.js";
4
4
  import type * as S from "../Schema.js";
@@ -13,30 +13,65 @@ export type ExtractModuleName<M extends RequestsAny> = {
13
13
  } ? N : never;
14
14
  }[keyof M] extends infer R extends string ? R : string;
15
15
  export type Client<M extends RequestsAny, ModuleName extends string> = RequestHandlers<never, never, M, ModuleName>;
16
- export type ExtractResponse<T> = T extends S.Codec<any> ? S.Schema.Type<T> : T extends unknown ? void : never;
17
- export type ExtractEResponse<T> = T extends S.Codec<any> ? S.Codec.Encoded<T> : T extends unknown ? void : never;
18
- type IsEmpty<T> = keyof T extends never ? true : false;
19
- type Cruft = "_tag" | keyof Request.Request<any, any, any>;
16
+ export type ExtractResponse<T> = T extends S.Codec<any> ? T["Type"] : T extends unknown ? void : never;
17
+ export type ExtractEResponse<T> = T extends S.Codec<any> ? T["Encoded"] : T extends unknown ? void : never;
20
18
  export interface ClientForOptions {
21
19
  readonly skipQueryKey?: readonly string[];
22
20
  }
23
- export interface RequestHandler<A, E, R, Request extends Req, Id extends string> {
24
- handler: Effect.Effect<A, E, R>;
21
+ export declare const makeQueryKey: ({ id, options }: {
22
+ id: string;
23
+ options?: ClientForOptions;
24
+ }) => [string, ...string[]];
25
+ export interface RequestHandlerWithInput<I, A, E, R, Request extends Req, Id extends string> {
26
+ handler: (i: I) => Effect.Effect<A, E, R>;
25
27
  id: Id;
26
28
  options?: ClientForOptions;
27
29
  Request: Request;
30
+ queryKeyProjectionHash?: string;
31
+ disableQueryInvalidation?: boolean;
28
32
  }
29
- export interface RequestHandlerWithInput<I, A, E, R, Request extends Req, Id extends string> {
30
- handler: (i: I) => Effect.Effect<A, E, R>;
33
+ /** Type alias: a no-input handler is simply `RequestHandlerWithInput<void, …>`. */
34
+ export type RequestHandler<A, E, R, Request extends Req, Id extends string> = RequestHandlerWithInput<void, A, E, R, Request, Id>;
35
+ export interface RequestStreamHandlerWithInput<I, A, E, R, Request extends Req, Id extends string, Final = A> {
36
+ handler: (i: I) => Stream.Stream<A, E, R>;
31
37
  id: Id;
32
38
  options?: ClientForOptions;
33
39
  Request: Request;
40
+ /**
41
+ * Phantom type property (never set at runtime) that carries the `Final` type to
42
+ * `StreamMutationWithExtensions`. The tilde prefix follows the Effect convention for
43
+ * phantom/virtual properties and prevents accidental runtime access.
44
+ * Stream failures bubble through the execute effect's typed error channel `E`;
45
+ * the reactive `AsyncResult` ref also mirrors the failure for live progress UI.
46
+ */
47
+ readonly "~final"?: Final;
34
48
  }
35
- type ReqDecodingServices<M> = M extends {
36
- readonly "~decodingServices": infer DS;
37
- } ? DS : never;
49
+ /** Type alias: a no-input stream handler is simply `RequestStreamHandlerWithInput<void, …>`. */
50
+ export type RequestStreamHandler<A, E, R, Request extends Req, Id extends string, Final = A> = RequestStreamHandlerWithInput<void, A, E, R, Request, Id, Final>;
51
+ export type RequestInputFromMake<I extends {
52
+ readonly make: (...args: any[]) => any;
53
+ }> = Parameters<I["make"]> extends [
54
+ ] ? void : Parameters<I["make"]>[0];
55
+ type HasNoFields<I> = I extends {
56
+ readonly fields: infer F extends S.Struct.Fields;
57
+ } ? [Exclude<keyof F, "_tag">] extends [never] ? true : false : false;
58
+ type RequestInput<I extends {
59
+ readonly make: (...args: any[]) => any;
60
+ }> = Parameters<I["make"]>[0];
61
+ /**
62
+ * Caller-facing input type for a request. `void` when the request schema has no fields;
63
+ * otherwise `make`'s first param type.
64
+ */
65
+ export type HandlerInput<I extends {
66
+ readonly make: (...args: any[]) => any;
67
+ }> = HasNoFields<I> extends true ? void : RequestInput<I>;
68
+ /** Extracts the final-value type from a stream request. Defaults to the success type when no `final` schema is set. */
69
+ type FinalTypeOf<T extends Req> = T extends {
70
+ readonly final: infer F extends S.Top;
71
+ } ? F["Type"] : T["success"]["Type"];
72
+ type RequestHandlerFor<R, E, T extends Req, Id extends string> = T["stream"] extends true ? RequestStreamHandlerWithInput<HandlerInput<T>, T["success"]["Type"], T["error"]["Type"] | E, R | T["success"]["DecodingServices"] | T["error"]["DecodingServices"], T, Id, FinalTypeOf<T>> : RequestHandlerWithInput<HandlerInput<T>, T["success"]["Type"], T["error"]["Type"] | E, R | T["success"]["DecodingServices"] | T["error"]["DecodingServices"], T, Id>;
38
73
  export type RequestHandlers<R, E, M extends RequestsAny, ModuleName extends string> = {
39
- [K in keyof M as M[K] extends Req ? K : never]: IsEmpty<Omit<S.Schema.Type<M[K]>, Cruft>> extends true ? RequestHandler<S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["error"]> | E, R | ReqDecodingServices<M[K]>, M[K], `${ModuleName}.${K & string}`> : RequestHandlerWithInput<Omit<S.Schema.Type<M[K]>, Cruft>, S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["error"]> | E, R | ReqDecodingServices<M[K]>, M[K], `${ModuleName}.${K & string}`>;
74
+ [K in keyof M as M[K] extends Req ? K : never]: Extract<M[K], Req> extends infer T extends Req ? RequestHandlerFor<R, E, T, `${ModuleName}.${K & string}`> : never;
40
75
  };
41
76
  export {};
42
77
  //# sourceMappingURL=clientFor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientFor.d.ts","sourceRoot":"","sources":["../../src/client/clientFor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientFor.d.ts","sourceRoot":"","sources":["../../src/client/clientFor.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,12 @@ export function makePathWithQuery(path, pars) {
13
13
  export function makePathWithBody(path, pars) {
14
14
  return path.build(pars, { ignoreSearch: true, ignoreConstraints: true });
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Rm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jbGllbnRGb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBEO0FBQzFELHVEQUF1RDtBQUV2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUd2QyxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFLN0IsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixJQUFVLEVBQ1YsSUFTQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQSxDQUFDLHFIQUFxSDtJQUNySSxPQUFPLENBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO1VBQy9ELENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQ3RCLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNSLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixJQUFVLEVBQ1YsSUFTQztJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDMUUsQ0FBQyJ9
16
+ // $Project/$Configuration.Index
17
+ // -> "$Project", "$Configuration", "Index"
18
+ export const makeQueryKey = ({ id, options }) => id
19
+ .split("/")
20
+ .filter((segment) => !options || !options.skipQueryKey?.includes(segment))
21
+ .map((segment) => "$" + segment)
22
+ .join(".")
23
+ .split(".");
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Rm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jbGllbnRGb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBEO0FBQzFELHVEQUF1RDtBQUV2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUd2QyxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFLN0IsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixJQUFVLEVBQ1YsSUFTQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQSxDQUFDLHFIQUFxSDtJQUNySSxPQUFPLENBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO1VBQy9ELENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQ3RCLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNSLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixJQUFVLEVBQ1YsSUFTQztJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDMUUsQ0FBQztBQXNDRCxnQ0FBZ0M7QUFDaEMsMkNBQTJDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBOEMsRUFBRSxFQUFFLENBQzFGLEVBQUU7S0FDQyxLQUFLLENBQUMsR0FBRyxDQUFDO0tBQ1YsTUFBTSxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2pGLEdBQUcsQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQztLQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQ1QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBIn0=