@effect-app/infra 4.0.0-beta.30 → 4.0.0-beta.301

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 (474) hide show
  1. package/CHANGELOG.md +2291 -0
  2. package/_check.sh +1 -1
  3. package/dist/CUPS.d.ts +29 -10
  4. package/dist/CUPS.d.ts.map +1 -1
  5. package/dist/CUPS.js +35 -14
  6. package/dist/ClusterCosmos.d.ts +64 -0
  7. package/dist/ClusterCosmos.d.ts.map +1 -0
  8. package/dist/ClusterCosmos.js +547 -0
  9. package/dist/ClusterServiceBus.d.ts +67 -0
  10. package/dist/ClusterServiceBus.d.ts.map +1 -0
  11. package/dist/ClusterServiceBus.js +82 -0
  12. package/dist/ContextProvider.d.ts +34 -0
  13. package/dist/ContextProvider.d.ts.map +1 -0
  14. package/dist/ContextProvider.js +40 -0
  15. package/dist/Emailer/Sendgrid.d.ts +110 -146
  16. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  17. package/dist/Emailer/Sendgrid.js +24 -19
  18. package/dist/Emailer/fake.d.ts +1 -1
  19. package/dist/Emailer/fake.d.ts.map +1 -1
  20. package/dist/Emailer/fake.js +4 -4
  21. package/dist/MainFiberSet.d.ts +12 -8
  22. package/dist/MainFiberSet.d.ts.map +1 -1
  23. package/dist/MainFiberSet.js +23 -7
  24. package/dist/QueueMaker/errors.d.ts +4 -2
  25. package/dist/QueueMaker/errors.d.ts.map +1 -1
  26. package/dist/QueueMaker/errors.js +4 -2
  27. package/dist/{adapters/SQL → SQL}/Model.d.ts +31 -42
  28. package/dist/SQL/Model.d.ts.map +1 -0
  29. package/dist/SQL/Model.js +469 -0
  30. package/dist/SQL.d.ts.map +1 -0
  31. package/dist/{adapters/SQL.js → SQL.js} +1 -1
  32. package/dist/Store/Cosmos/query.d.ts +14 -3
  33. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  34. package/dist/Store/Cosmos/query.js +179 -41
  35. package/dist/Store/Cosmos.d.ts +2 -2
  36. package/dist/Store/Cosmos.d.ts.map +1 -1
  37. package/dist/Store/Cosmos.js +385 -254
  38. package/dist/Store/Disk.d.ts +4 -4
  39. package/dist/Store/Disk.d.ts.map +1 -1
  40. package/dist/Store/Disk.js +79 -39
  41. package/dist/Store/Memory.d.ts +5 -9
  42. package/dist/Store/Memory.d.ts.map +1 -1
  43. package/dist/Store/Memory.js +324 -67
  44. package/dist/Store/SQL/Pg.d.ts +4 -0
  45. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  46. package/dist/Store/SQL/Pg.js +232 -0
  47. package/dist/Store/SQL/query.d.ts +49 -0
  48. package/dist/Store/SQL/query.d.ts.map +1 -0
  49. package/dist/Store/SQL/query.js +527 -0
  50. package/dist/Store/SQL.d.ts +21 -0
  51. package/dist/Store/SQL.d.ts.map +1 -0
  52. package/dist/Store/SQL.js +456 -0
  53. package/dist/Store/codeFilter.d.ts +4 -4
  54. package/dist/Store/codeFilter.d.ts.map +1 -1
  55. package/dist/Store/codeFilter.js +6 -4
  56. package/dist/Store/index.d.ts +6 -4
  57. package/dist/Store/index.d.ts.map +1 -1
  58. package/dist/Store/index.js +18 -5
  59. package/dist/Store/utils.d.ts +5 -2
  60. package/dist/Store/utils.d.ts.map +1 -1
  61. package/dist/Store/utils.js +9 -5
  62. package/dist/WorkflowEngineCosmos.d.ts +29 -0
  63. package/dist/WorkflowEngineCosmos.d.ts.map +1 -0
  64. package/dist/WorkflowEngineCosmos.js +542 -0
  65. package/dist/WorkflowEngineSqlite.d.ts +24 -0
  66. package/dist/WorkflowEngineSqlite.d.ts.map +1 -0
  67. package/dist/WorkflowEngineSqlite.js +550 -0
  68. package/dist/arbs.d.ts +1 -1
  69. package/dist/arbs.d.ts.map +1 -1
  70. package/dist/arbs.js +5 -3
  71. package/dist/codec.d.ts.map +1 -0
  72. package/dist/codec.js +5 -0
  73. package/dist/{adapters/cosmos-client.d.ts → cosmos-client.d.ts} +4 -2
  74. package/dist/cosmos-client.d.ts.map +1 -0
  75. package/dist/cosmos-client.js +11 -0
  76. package/dist/errorReporter.d.ts +6 -4
  77. package/dist/errorReporter.d.ts.map +1 -1
  78. package/dist/errorReporter.js +23 -27
  79. package/dist/fileUtil.d.ts +1 -1
  80. package/dist/fileUtil.d.ts.map +1 -1
  81. package/dist/fileUtil.js +2 -2
  82. package/dist/index.d.ts +2 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +3 -2
  85. package/dist/internal/RequestContextMiddleware.d.ts +5 -0
  86. package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
  87. package/dist/internal/RequestContextMiddleware.js +45 -0
  88. package/dist/internal/auth.d.ts +53 -0
  89. package/dist/internal/auth.d.ts.map +1 -0
  90. package/dist/internal/auth.js +180 -0
  91. package/dist/internal/events.d.ts +11 -0
  92. package/dist/internal/events.d.ts.map +1 -0
  93. package/dist/internal/events.js +49 -0
  94. package/dist/internal/health.d.ts.map +1 -0
  95. package/dist/internal/health.js +5 -0
  96. package/dist/{api/layerUtils.d.ts → layerUtils.d.ts} +14 -6
  97. package/dist/layerUtils.d.ts.map +1 -0
  98. package/dist/layerUtils.js +17 -0
  99. package/dist/logger/jsonLogger.d.ts +1 -1
  100. package/dist/logger/jsonLogger.d.ts.map +1 -1
  101. package/dist/logger/jsonLogger.js +5 -3
  102. package/dist/logger/logFmtLogger.d.ts +1 -1
  103. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  104. package/dist/logger/logFmtLogger.js +3 -3
  105. package/dist/logger/shared.d.ts +2 -2
  106. package/dist/logger/shared.d.ts.map +1 -1
  107. package/dist/logger/shared.js +5 -5
  108. package/dist/logger.d.ts +4 -4
  109. package/dist/logger.d.ts.map +1 -1
  110. package/dist/middlewares.d.ts.map +1 -0
  111. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  112. package/dist/{adapters/mongo-client.d.ts → mongo-client.d.ts} +3 -2
  113. package/dist/mongo-client.d.ts.map +1 -0
  114. package/dist/mongo-client.js +15 -0
  115. package/dist/otel.d.ts +75 -0
  116. package/dist/otel.d.ts.map +1 -0
  117. package/dist/otel.js +65 -0
  118. package/dist/rateLimit.d.ts +11 -3
  119. package/dist/rateLimit.d.ts.map +1 -1
  120. package/dist/rateLimit.js +7 -12
  121. package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +5 -2
  122. package/dist/redis-client.d.ts.map +1 -0
  123. package/dist/redis-client.js +98 -0
  124. package/dist/{api/reportError.d.ts → reportError.d.ts} +1 -1
  125. package/dist/reportError.d.ts.map +1 -0
  126. package/dist/reportError.js +28 -0
  127. package/dist/{api/routing → routing}/middleware/RouterMiddleware.d.ts +4 -3
  128. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  129. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  130. package/dist/routing/middleware/middleware.d.ts +48 -0
  131. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  132. package/dist/routing/middleware/middleware.js +152 -0
  133. package/dist/{api/routing → routing}/middleware.d.ts +0 -1
  134. package/dist/routing/middleware.d.ts.map +1 -0
  135. package/dist/{api/routing → routing}/middleware.js +1 -2
  136. package/dist/routing/schema/jwt.d.ts.map +1 -0
  137. package/dist/routing/schema/jwt.js +13 -0
  138. package/dist/routing/tsort.d.ts.map +1 -0
  139. package/dist/routing/tsort.js +51 -0
  140. package/dist/{api/routing → routing}/utils.d.ts +3 -3
  141. package/dist/routing/utils.d.ts.map +1 -0
  142. package/dist/routing/utils.js +45 -0
  143. package/dist/routing.d.ts +182 -0
  144. package/dist/routing.d.ts.map +1 -0
  145. package/dist/routing.js +256 -0
  146. package/dist/test.d.ts +2 -2
  147. package/dist/test.d.ts.map +1 -1
  148. package/dist/test.js +2 -2
  149. package/dist/util.d.ts.map +1 -0
  150. package/dist/util.js +14 -0
  151. package/docs/cluster-storage.md +26 -0
  152. package/docs/workflow-engine.md +262 -0
  153. package/examples/query.ts +47 -39
  154. package/package.json +38 -352
  155. package/src/CUPS.ts +53 -14
  156. package/src/ClusterCosmos.ts +1118 -0
  157. package/src/ClusterServiceBus.ts +242 -0
  158. package/src/{api/ContextProvider.ts → ContextProvider.ts} +20 -17
  159. package/src/Emailer/Sendgrid.ts +83 -60
  160. package/src/Emailer/fake.ts +4 -4
  161. package/src/MainFiberSet.ts +32 -13
  162. package/src/QueueMaker/errors.ts +3 -1
  163. package/src/{adapters/SQL → SQL}/Model.ts +42 -41
  164. package/src/SQL.ts +1 -0
  165. package/src/Store/Cosmos/query.ts +218 -54
  166. package/src/Store/Cosmos.ts +529 -365
  167. package/src/Store/Disk.ts +112 -70
  168. package/src/Store/Memory.ts +365 -99
  169. package/src/Store/SQL/Pg.ts +363 -0
  170. package/src/Store/SQL/query.ts +603 -0
  171. package/src/Store/SQL.ts +746 -0
  172. package/src/Store/codeFilter.ts +8 -6
  173. package/src/Store/index.ts +25 -10
  174. package/src/Store/utils.ts +32 -25
  175. package/src/WorkflowEngineCosmos.ts +749 -0
  176. package/src/WorkflowEngineSqlite.ts +813 -0
  177. package/src/arbs.ts +5 -3
  178. package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +5 -3
  179. package/src/errorReporter.ts +68 -78
  180. package/src/fileUtil.ts +1 -1
  181. package/src/index.ts +2 -1
  182. package/src/{api/internal → internal}/RequestContextMiddleware.ts +23 -6
  183. package/src/internal/auth.ts +272 -0
  184. package/src/{api/internal → internal}/events.ts +22 -13
  185. package/src/{api/layerUtils.ts → layerUtils.ts} +14 -10
  186. package/src/logger/jsonLogger.ts +5 -3
  187. package/src/logger/logFmtLogger.ts +3 -3
  188. package/src/logger/shared.ts +5 -4
  189. package/src/middlewares.ts +10 -0
  190. package/src/{adapters/mongo-client.ts → mongo-client.ts} +4 -2
  191. package/src/otel.ts +152 -0
  192. package/src/rateLimit.ts +34 -23
  193. package/src/{adapters/redis-client.ts → redis-client.ts} +7 -3
  194. package/src/{api/reportError.ts → reportError.ts} +3 -2
  195. package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +5 -4
  196. package/src/routing/middleware/middleware.ts +196 -0
  197. package/src/routing/middleware.ts +4 -0
  198. package/src/{api/routing → routing}/schema/jwt.ts +2 -1
  199. package/src/{api/routing → routing}/utils.ts +2 -1
  200. package/src/routing.ts +823 -0
  201. package/src/test.ts +4 -4
  202. package/src/vitest.ts +1 -1
  203. package/test/auth.test.ts +101 -0
  204. package/test/cluster-cosmos.test.ts +612 -0
  205. package/test/cluster-servicebus.test.ts +180 -0
  206. package/test/cluster-sqlite.test.ts +205 -0
  207. package/test/contextProvider.test.ts +15 -12
  208. package/test/controller.test.ts +28 -32
  209. package/test/cosmos-query.test.ts +228 -0
  210. package/test/dist/auth.test.d.ts.map +1 -0
  211. package/test/dist/cluster-cosmos.test.d.ts.map +1 -0
  212. package/test/dist/cluster-servicebus.test.d.ts.map +1 -0
  213. package/test/dist/cluster-sqlite.test.d.ts.map +1 -0
  214. package/test/dist/contextProvider.test.d.ts.map +1 -1
  215. package/test/dist/controller.test.d.ts.map +1 -1
  216. package/test/dist/cosmos-query.test.d.ts.map +1 -0
  217. package/test/dist/fixtures.d.ts +29 -11
  218. package/test/dist/fixtures.d.ts.map +1 -1
  219. package/test/dist/fixtures.js +17 -10
  220. package/test/dist/query.test.d.ts.map +1 -1
  221. package/test/dist/rawQuery.test.d.ts.map +1 -1
  222. package/test/dist/repository-ext.test.d.ts.map +1 -0
  223. package/test/dist/requires.test.d.ts.map +1 -1
  224. package/test/dist/router-generator.test.d.ts.map +1 -0
  225. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  226. package/test/dist/rpc-context-map-streaming.test.d.ts.map +1 -0
  227. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  228. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  229. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  230. package/test/dist/sql-store.test.d.ts.map +1 -0
  231. package/test/dist/workflow-engine-cosmos.test.d.ts.map +1 -0
  232. package/test/dist/workflow-engine-sqlite.test.d.ts.map +1 -0
  233. package/test/fixtures.ts +16 -9
  234. package/test/layerUtils.test.ts +2 -2
  235. package/test/query.test.ts +1007 -41
  236. package/test/rawQuery.test.ts +340 -22
  237. package/test/repository-ext.test.ts +178 -0
  238. package/test/requires.test.ts +10 -5
  239. package/test/router-generator.test.ts +187 -0
  240. package/test/routing-interruptibility.test.ts +66 -0
  241. package/test/rpc-context-map-streaming.test.ts +262 -0
  242. package/test/rpc-e2e-invalidation.test.ts +418 -0
  243. package/test/rpc-multi-middleware.test.ts +85 -10
  244. package/test/rpc-stream-fullstack.test.ts +304 -0
  245. package/test/sql-store.test.ts +1711 -0
  246. package/test/validateSample.test.ts +26 -14
  247. package/test/workflow-engine-cosmos.test.ts +345 -0
  248. package/test/workflow-engine-sqlite.test.ts +297 -0
  249. package/tsconfig.examples.json +1 -1
  250. package/tsconfig.json +3 -1
  251. package/tsconfig.src.json +35 -35
  252. package/tsconfig.test.json +2 -2
  253. package/dist/Emailer/service.d.ts +0 -55
  254. package/dist/Emailer/service.d.ts.map +0 -1
  255. package/dist/Emailer/service.js +0 -6
  256. package/dist/Emailer.d.ts +0 -2
  257. package/dist/Emailer.d.ts.map +0 -1
  258. package/dist/Emailer.js +0 -2
  259. package/dist/Model/Repository/ext.d.ts +0 -41
  260. package/dist/Model/Repository/ext.d.ts.map +0 -1
  261. package/dist/Model/Repository/ext.js +0 -65
  262. package/dist/Model/Repository/internal/internal.d.ts +0 -59
  263. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  264. package/dist/Model/Repository/internal/internal.js +0 -316
  265. package/dist/Model/Repository/legacy.d.ts +0 -19
  266. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  267. package/dist/Model/Repository/legacy.js +0 -2
  268. package/dist/Model/Repository/makeRepo.d.ts +0 -49
  269. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  270. package/dist/Model/Repository/makeRepo.js +0 -24
  271. package/dist/Model/Repository/service.d.ts +0 -89
  272. package/dist/Model/Repository/service.d.ts.map +0 -1
  273. package/dist/Model/Repository/service.js +0 -2
  274. package/dist/Model/Repository/validation.d.ts +0 -42
  275. package/dist/Model/Repository/validation.d.ts.map +0 -1
  276. package/dist/Model/Repository/validation.js +0 -32
  277. package/dist/Model/Repository.d.ts +0 -6
  278. package/dist/Model/Repository.d.ts.map +0 -1
  279. package/dist/Model/Repository.js +0 -6
  280. package/dist/Model/dsl.d.ts +0 -32
  281. package/dist/Model/dsl.d.ts.map +0 -1
  282. package/dist/Model/dsl.js +0 -44
  283. package/dist/Model/filter/filterApi.d.ts +0 -30
  284. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  285. package/dist/Model/filter/filterApi.js +0 -2
  286. package/dist/Model/filter/types/errors.d.ts +0 -29
  287. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  288. package/dist/Model/filter/types/errors.js +0 -2
  289. package/dist/Model/filter/types/fields.d.ts +0 -15
  290. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  291. package/dist/Model/filter/types/fields.js +0 -2
  292. package/dist/Model/filter/types/path/common.d.ts +0 -316
  293. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  294. package/dist/Model/filter/types/path/common.js +0 -2
  295. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  296. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  297. package/dist/Model/filter/types/path/eager.js +0 -31
  298. package/dist/Model/filter/types/path/index.d.ts +0 -4
  299. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  300. package/dist/Model/filter/types/path/index.js +0 -3
  301. package/dist/Model/filter/types/utils.d.ts +0 -79
  302. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  303. package/dist/Model/filter/types/utils.js +0 -2
  304. package/dist/Model/filter/types/validator.d.ts +0 -30
  305. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  306. package/dist/Model/filter/types/validator.js +0 -2
  307. package/dist/Model/filter/types.d.ts +0 -5
  308. package/dist/Model/filter/types.d.ts.map +0 -1
  309. package/dist/Model/filter/types.js +0 -7
  310. package/dist/Model/query/dsl.d.ts +0 -248
  311. package/dist/Model/query/dsl.d.ts.map +0 -1
  312. package/dist/Model/query/dsl.js +0 -104
  313. package/dist/Model/query/new-kid-interpreter.d.ts +0 -28
  314. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  315. package/dist/Model/query/new-kid-interpreter.js +0 -165
  316. package/dist/Model/query.d.ts +0 -15
  317. package/dist/Model/query.d.ts.map +0 -1
  318. package/dist/Model/query.js +0 -3
  319. package/dist/Model.d.ts +0 -4
  320. package/dist/Model.d.ts.map +0 -1
  321. package/dist/Model.js +0 -4
  322. package/dist/Operations.d.ts +0 -55
  323. package/dist/Operations.d.ts.map +0 -1
  324. package/dist/Operations.js +0 -102
  325. package/dist/OperationsRepo.d.ts +0 -41
  326. package/dist/OperationsRepo.d.ts.map +0 -1
  327. package/dist/OperationsRepo.js +0 -14
  328. package/dist/QueueMaker/SQLQueue.d.ts +0 -16
  329. package/dist/QueueMaker/SQLQueue.d.ts.map +0 -1
  330. package/dist/QueueMaker/SQLQueue.js +0 -130
  331. package/dist/QueueMaker/memQueue.d.ts +0 -11
  332. package/dist/QueueMaker/memQueue.d.ts.map +0 -1
  333. package/dist/QueueMaker/memQueue.js +0 -76
  334. package/dist/QueueMaker/sbqueue.d.ts +0 -12
  335. package/dist/QueueMaker/sbqueue.d.ts.map +0 -1
  336. package/dist/QueueMaker/sbqueue.js +0 -91
  337. package/dist/QueueMaker/service.d.ts +0 -11
  338. package/dist/QueueMaker/service.d.ts.map +0 -1
  339. package/dist/QueueMaker/service.js +0 -4
  340. package/dist/RequestContext.d.ts +0 -63
  341. package/dist/RequestContext.d.ts.map +0 -1
  342. package/dist/RequestContext.js +0 -49
  343. package/dist/RequestFiberSet.d.ts +0 -36
  344. package/dist/RequestFiberSet.d.ts.map +0 -1
  345. package/dist/RequestFiberSet.js +0 -78
  346. package/dist/Store/ContextMapContainer.d.ts +0 -14
  347. package/dist/Store/ContextMapContainer.d.ts.map +0 -1
  348. package/dist/Store/ContextMapContainer.js +0 -16
  349. package/dist/Store/service.d.ts +0 -108
  350. package/dist/Store/service.d.ts.map +0 -1
  351. package/dist/Store/service.js +0 -71
  352. package/dist/Store.d.ts +0 -2
  353. package/dist/Store.d.ts.map +0 -1
  354. package/dist/Store.js +0 -2
  355. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  356. package/dist/adapters/SQL/Model.js +0 -478
  357. package/dist/adapters/SQL.d.ts.map +0 -1
  358. package/dist/adapters/ServiceBus.d.ts +0 -58
  359. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  360. package/dist/adapters/ServiceBus.js +0 -99
  361. package/dist/adapters/cosmos-client.d.ts.map +0 -1
  362. package/dist/adapters/cosmos-client.js +0 -9
  363. package/dist/adapters/index.d.ts +0 -2
  364. package/dist/adapters/index.d.ts.map +0 -1
  365. package/dist/adapters/index.js +0 -2
  366. package/dist/adapters/logger.d.ts +0 -9
  367. package/dist/adapters/logger.d.ts.map +0 -1
  368. package/dist/adapters/logger.js +0 -3
  369. package/dist/adapters/memQueue.d.ts +0 -13
  370. package/dist/adapters/memQueue.d.ts.map +0 -1
  371. package/dist/adapters/memQueue.js +0 -20
  372. package/dist/adapters/mongo-client.d.ts.map +0 -1
  373. package/dist/adapters/mongo-client.js +0 -13
  374. package/dist/adapters/redis-client.d.ts.map +0 -1
  375. package/dist/adapters/redis-client.js +0 -94
  376. package/dist/api/ContextProvider.d.ts +0 -31
  377. package/dist/api/ContextProvider.d.ts.map +0 -1
  378. package/dist/api/ContextProvider.js +0 -38
  379. package/dist/api/codec.d.ts.map +0 -1
  380. package/dist/api/codec.js +0 -5
  381. package/dist/api/internal/RequestContextMiddleware.d.ts +0 -5
  382. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  383. package/dist/api/internal/RequestContextMiddleware.js +0 -35
  384. package/dist/api/internal/auth.d.ts +0 -15
  385. package/dist/api/internal/auth.d.ts.map +0 -1
  386. package/dist/api/internal/auth.js +0 -47
  387. package/dist/api/internal/events.d.ts +0 -9
  388. package/dist/api/internal/events.d.ts.map +0 -1
  389. package/dist/api/internal/events.js +0 -42
  390. package/dist/api/internal/health.d.ts.map +0 -1
  391. package/dist/api/internal/health.js +0 -5
  392. package/dist/api/layerUtils.d.ts.map +0 -1
  393. package/dist/api/layerUtils.js +0 -16
  394. package/dist/api/middlewares.d.ts.map +0 -1
  395. package/dist/api/reportError.d.ts.map +0 -1
  396. package/dist/api/reportError.js +0 -27
  397. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  398. package/dist/api/routing/middleware/middleware.d.ts +0 -9
  399. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  400. package/dist/api/routing/middleware/middleware.js +0 -92
  401. package/dist/api/routing/middleware.d.ts.map +0 -1
  402. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  403. package/dist/api/routing/schema/jwt.js +0 -12
  404. package/dist/api/routing/tsort.d.ts.map +0 -1
  405. package/dist/api/routing/tsort.js +0 -51
  406. package/dist/api/routing/utils.d.ts.map +0 -1
  407. package/dist/api/routing/utils.js +0 -44
  408. package/dist/api/routing.d.ts +0 -138
  409. package/dist/api/routing.d.ts.map +0 -1
  410. package/dist/api/routing.js +0 -166
  411. package/dist/api/setupRequest.d.ts +0 -12
  412. package/dist/api/setupRequest.d.ts.map +0 -1
  413. package/dist/api/setupRequest.js +0 -44
  414. package/dist/api/util.d.ts.map +0 -1
  415. package/dist/api/util.js +0 -14
  416. package/eslint.config.mjs +0 -24
  417. package/src/Emailer/service.ts +0 -52
  418. package/src/Emailer.ts +0 -1
  419. package/src/Model/Repository/ext.ts +0 -283
  420. package/src/Model/Repository/internal/internal.ts +0 -577
  421. package/src/Model/Repository/legacy.ts +0 -27
  422. package/src/Model/Repository/makeRepo.ts +0 -139
  423. package/src/Model/Repository/service.ts +0 -627
  424. package/src/Model/Repository/validation.ts +0 -31
  425. package/src/Model/Repository.ts +0 -5
  426. package/src/Model/dsl.ts +0 -128
  427. package/src/Model/filter/filterApi.ts +0 -60
  428. package/src/Model/filter/types/errors.ts +0 -47
  429. package/src/Model/filter/types/fields.ts +0 -50
  430. package/src/Model/filter/types/path/common.ts +0 -404
  431. package/src/Model/filter/types/path/eager.ts +0 -298
  432. package/src/Model/filter/types/path/index.ts +0 -4
  433. package/src/Model/filter/types/utils.ts +0 -128
  434. package/src/Model/filter/types/validator.ts +0 -46
  435. package/src/Model/filter/types.ts +0 -6
  436. package/src/Model/query/dsl.ts +0 -2110
  437. package/src/Model/query/new-kid-interpreter.ts +0 -210
  438. package/src/Model/query.ts +0 -13
  439. package/src/Model.ts +0 -3
  440. package/src/Operations.ts +0 -235
  441. package/src/OperationsRepo.ts +0 -16
  442. package/src/QueueMaker/SQLQueue.ts +0 -189
  443. package/src/QueueMaker/memQueue.ts +0 -130
  444. package/src/QueueMaker/sbqueue.ts +0 -137
  445. package/src/QueueMaker/service.ts +0 -17
  446. package/src/RequestContext.ts +0 -63
  447. package/src/RequestFiberSet.ts +0 -105
  448. package/src/Store/ContextMapContainer.ts +0 -20
  449. package/src/Store/index.test.ts.bak +0 -112
  450. package/src/Store/service.ts +0 -184
  451. package/src/Store.ts +0 -1
  452. package/src/adapters/SQL.ts +0 -1
  453. package/src/adapters/ServiceBus.ts +0 -209
  454. package/src/adapters/index.ts +0 -0
  455. package/src/adapters/logger.ts +0 -3
  456. package/src/adapters/memQueue.ts +0 -21
  457. package/src/api/internal/auth.ts +0 -68
  458. package/src/api/middlewares.ts +0 -10
  459. package/src/api/routing/middleware/middleware.ts +0 -128
  460. package/src/api/routing/middleware.ts +0 -6
  461. package/src/api/routing.ts +0 -598
  462. package/src/api/setupRequest.ts +0 -84
  463. package/tsconfig.json.bak +0 -12
  464. /package/dist/{adapters/SQL.d.ts → SQL.d.ts} +0 -0
  465. /package/dist/{api/codec.d.ts → codec.d.ts} +0 -0
  466. /package/dist/{api/internal → internal}/health.d.ts +0 -0
  467. /package/dist/{api/middlewares.d.ts → middlewares.d.ts} +0 -0
  468. /package/dist/{api/routing → routing}/schema/jwt.d.ts +0 -0
  469. /package/dist/{api/routing → routing}/tsort.d.ts +0 -0
  470. /package/dist/{api/util.d.ts → util.d.ts} +0 -0
  471. /package/src/{api/codec.ts → codec.ts} +0 -0
  472. /package/src/{api/internal → internal}/health.ts +0 -0
  473. /package/src/{api/routing → routing}/tsort.ts +0 -0
  474. /package/src/{api/util.ts → util.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,2296 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 4.0.0-beta.301
4
+
5
+ ### Patch Changes
6
+
7
+ - effect-app@4.0.0-beta.301
8
+
9
+ ## 4.0.0-beta.300
10
+
11
+ ### Patch Changes
12
+
13
+ - effect-app@4.0.0-beta.300
14
+
15
+ ## 4.0.0-beta.299
16
+
17
+ ### Patch Changes
18
+
19
+ - effect-app@4.0.0-beta.299
20
+
21
+ ## 4.0.0-beta.298
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies [08d092c]
26
+ - effect-app@4.0.0-beta.298
27
+
28
+ ## 4.0.0-beta.297
29
+
30
+ ### Patch Changes
31
+
32
+ - Updated dependencies [30c512d]
33
+ - effect-app@4.0.0-beta.297
34
+
35
+ ## 4.0.0-beta.296
36
+
37
+ ### Patch Changes
38
+
39
+ - Updated dependencies [e0c4835]
40
+ - effect-app@4.0.0-beta.296
41
+
42
+ ## 4.0.0-beta.295
43
+
44
+ ### Patch Changes
45
+
46
+ - eb06b32: improve root union select
47
+ - Updated dependencies [eb06b32]
48
+ - effect-app@4.0.0-beta.295
49
+
50
+ ## 4.0.0-beta.294
51
+
52
+ ### Patch Changes
53
+
54
+ - Updated dependencies [a211c12]
55
+ - effect-app@4.0.0-beta.294
56
+
57
+ ## 4.0.0-beta.293
58
+
59
+ ### Patch Changes
60
+
61
+ - Updated dependencies [d1c15d3]
62
+ - effect-app@4.0.0-beta.293
63
+
64
+ ## 4.0.0-beta.292
65
+
66
+ ### Patch Changes
67
+
68
+ - effect-app@4.0.0-beta.292
69
+
70
+ ## 4.0.0-beta.291
71
+
72
+ ### Patch Changes
73
+
74
+ - 848d26d: Capture more of the rpc request payload in the `rpc.request.payload` span
75
+ attribute.
76
+
77
+ The summarizer was one level deep: top-level scalars were kept, but any nested
78
+ object collapsed to `Object[N]` and any array to `Array[N]`, hiding useful
79
+ inputs (carrier, packageType, dimensions, ids, per-item amounts, …).
80
+
81
+ It now recurses into nested objects up to `PAYLOAD_MAX_DEPTH` (4) and samples
82
+ arrays to their first `PAYLOAD_ARRAY_HEAD` (20) elements, appending a `…N more`
83
+ marker when longer — so item arrays stay diagnosable without dumping the whole
84
+ tail on high-frequency commands. Long strings are still snipped at 256 chars,
85
+ and `password`/`secret`/`token` keys are redacted at any depth (previously only
86
+ a top-level `password`).
87
+
88
+ - effect-app@4.0.0-beta.291
89
+
90
+ ## 4.0.0-beta.290
91
+
92
+ ### Patch Changes
93
+
94
+ - Updated dependencies [dc07df5]
95
+ - effect-app@4.0.0-beta.290
96
+
97
+ ## 4.0.0-beta.289
98
+
99
+ ### Patch Changes
100
+
101
+ - Updated dependencies [a1b59bc]
102
+ - effect-app@4.0.0-beta.289
103
+
104
+ ## 4.0.0-beta.288
105
+
106
+ ### Patch Changes
107
+
108
+ - Updated dependencies [aeb17bc]
109
+ - effect-app@4.0.0-beta.288
110
+
111
+ ## 4.0.0-beta.287
112
+
113
+ ### Patch Changes
114
+
115
+ - Updated dependencies [261470f]
116
+ - effect-app@4.0.0-beta.287
117
+
118
+ ## 4.0.0-beta.286
119
+
120
+ ### Patch Changes
121
+
122
+ - b6dda09: Update effect packages to `4.0.0-beta.90` (from `beta.88`): `effect`, `@effect/platform-node`, `@effect/platform-browser`, `@effect/atom-vue`, `@effect/sql-sqlite-node`, `@effect/vitest`. No source changes required — typecheck and tests pass unchanged.
123
+ - Updated dependencies [b6dda09]
124
+ - effect-app@4.0.0-beta.286
125
+
126
+ ## 4.0.0-beta.285
127
+
128
+ ### Patch Changes
129
+
130
+ - 7bd8234: Use set-backed data dependencies and provide request-scoped dependency services through a shared root-checked helper.
131
+ - Updated dependencies [7bd8234]
132
+ - effect-app@4.0.0-beta.285
133
+
134
+ ## 4.0.0-beta.284
135
+
136
+ ### Patch Changes
137
+
138
+ - dd239fa: fix atom invalidation
139
+ - effect-app@4.0.0-beta.284
140
+
141
+ ## 4.0.0-beta.283
142
+
143
+ ### Minor Changes
144
+
145
+ - 0054611: Derive query invalidation from repository read/write dependencies and propagate dependency metadata through RPC clients.
146
+
147
+ ### Patch Changes
148
+
149
+ - 0054611: Stream RPC: drain read/write data-dependencies per emitted value chunk instead of sending the
150
+ cumulative set on every metadata chunk. Each metadata chunk now carries only the delta recorded
151
+ since the last chunk, the bucket is cleared for the next segment, and the terminal "done"/"error"
152
+ chunks drain the remainder. The emit condition also broadens to include non-empty reads, so stream
153
+ queries forward their read-dependencies mid-stream too. The client already accumulates deltas into
154
+ its per-call recorder, so no FE change is required.
155
+ - Updated dependencies [0054611]
156
+ - Updated dependencies [0054611]
157
+ - effect-app@4.0.0-beta.283
158
+
159
+ ## 4.0.0-beta.282
160
+
161
+ ### Patch Changes
162
+
163
+ - b2df3fa: Align `Schema.Void` with TypeScript `void` return-value semantics (effect-smol PR #2475 / `b7d46ab`).
164
+
165
+ `S.Void` now accepts **any present value** at runtime and discards it to `undefined`, while keeping the decoded/encoded type as `void` — matching a `void` return whose result callers never observe. This is implemented as an override of the AST node in a new `effect-app/SchemaAST` module (`export * from "effect/SchemaAST"` plus a `Void` subclass whose parser mirrors the PR's `fromAnyToConst(undefined)`), so there is a single canonical `Void` used everywhere, including RPC success schemas.
166
+
167
+ - New `effect-app/SchemaAST` module; internal `SchemaAST` imports across the libs now route through it.
168
+ - Removed `ForceVoid` from `effect-app/client/makeClient` — use `S.Void` directly, which now carries this behaviour.
169
+ - `S.Void_` remains available as effect's original (`undefined`-only) Void.
170
+
171
+ - f150cf9: Remove obsolete queue machinery left unused after the move to cluster entities: the SB/SQLite/mem `QueueMaker` implementations (`QueueMaker/{SQLQueue,memQueue,sbqueue}.ts`), their `ServiceBus.ts`/`memQueue.ts` transports, and `RequestFiberSet.ts` (its `setRootParentSpan` helper is inlined into `MainFiberSet`). `effect-app/QueueMaker` keeps only `QueueMeta`; the `QueueBase` interface and empty `QueueMaker` ops object are dropped.
172
+ - e8842aa: Update effect packages to `4.0.0-beta.88` (from `beta.86`): `effect`, `@effect/platform-node`, `@effect/platform-browser`, `@effect/atom-vue`, `@effect/sql-sqlite-node`, `@effect/vitest`. Also bump `@effect-app/cli` to `2.1.0-beta.35`. No source changes required — typecheck and tests pass unchanged.
173
+ - Updated dependencies [b2df3fa]
174
+ - Updated dependencies [f150cf9]
175
+ - Updated dependencies [e8842aa]
176
+ - effect-app@4.0.0-beta.282
177
+
178
+ ## 4.0.0-beta.281
179
+
180
+ ### Patch Changes
181
+
182
+ - ffd140f: Update effect packages to `4.0.0-beta.86` (from `beta.84`): `effect`, `@effect/platform-node`, `@effect/platform-browser`, `@effect/atom-vue`, `@effect/sql-sqlite-node`, `@effect/vitest`. No source changes required — typecheck and tests pass unchanged.
183
+ - Updated dependencies [ffd140f]
184
+ - effect-app@4.0.0-beta.281
185
+
186
+ ## 4.0.0-beta.280
187
+
188
+ ### Patch Changes
189
+
190
+ - Updated dependencies [3eda52e]
191
+ - effect-app@4.0.0-beta.280
192
+
193
+ ## 4.0.0-beta.279
194
+
195
+ ### Patch Changes
196
+
197
+ - Updated dependencies [5f9cd6a]
198
+ - effect-app@4.0.0-beta.279
199
+
200
+ ## 4.0.0-beta.278
201
+
202
+ ### Patch Changes
203
+
204
+ - a354345: Move release tsconfig flattening from publish to pack lifecycle so package configs are restored before registry upload/auth can fail.
205
+ - a69da09: Publish from generated staging directories so release-only files are created outside the source package tree.
206
+ - Updated dependencies [a354345]
207
+ - Updated dependencies [a69da09]
208
+ - effect-app@4.0.0-beta.278
209
+
210
+ ## 4.0.0-beta.277
211
+
212
+ ### Patch Changes
213
+
214
+ - effect-app@4.0.0-beta.277
215
+
216
+ ## 4.0.0-beta.276
217
+
218
+ ### Patch Changes
219
+
220
+ - 32f05c8: Remove unused dependency declarations from package manifests.
221
+ - Updated dependencies [32f05c8]
222
+ - effect-app@4.0.0-beta.276
223
+
224
+ ## 4.0.0-beta.275
225
+
226
+ ### Patch Changes
227
+
228
+ - effect-app@4.0.0-beta.275
229
+
230
+ ## 4.0.0-beta.274
231
+
232
+ ### Patch Changes
233
+
234
+ - effect-app@4.0.0-beta.274
235
+
236
+ ## 4.0.0-beta.273
237
+
238
+ ### Patch Changes
239
+
240
+ - Updated dependencies [664e83d]
241
+ - Updated dependencies [e4ff9a6]
242
+ - effect-app@4.0.0-beta.273
243
+
244
+ ## 4.0.0-beta.272
245
+
246
+ ### Patch Changes
247
+
248
+ - Updated dependencies [21ac90a]
249
+ - effect-app@4.0.0-beta.272
250
+
251
+ ## 4.0.0-beta.271
252
+
253
+ ### Patch Changes
254
+
255
+ - Updated dependencies [939bebc]
256
+ - effect-app@4.0.0-beta.271
257
+
258
+ ## 4.0.0-beta.270
259
+
260
+ ### Patch Changes
261
+
262
+ - 78d076a: Update effect packages to `4.0.0-beta.84` (`effect`, `@effect/platform-node`, `@effect/platform-browser`, `@effect/atom-vue`, `@effect/sql-sqlite-node`, `@effect/vitest`).
263
+ - Updated dependencies [78d076a]
264
+ - effect-app@4.0.0-beta.270
265
+
266
+ ## 4.0.0-beta.269
267
+
268
+ ### Patch Changes
269
+
270
+ - Updated dependencies [50b022e]
271
+ - Updated dependencies [50b022e]
272
+ - effect-app@4.0.0-beta.269
273
+
274
+ ## 4.0.0-beta.268
275
+
276
+ ### Patch Changes
277
+
278
+ - 38289e0: Break the circular dependency between the memory store and code filter modules.
279
+ - acfdc9e: Point development package exports at TypeScript sources while keeping published exports on compiled dist files.
280
+ - Updated dependencies [acfdc9e]
281
+ - effect-app@4.0.0-beta.268
282
+
283
+ ## 4.0.0-beta.267
284
+
285
+ ### Minor Changes
286
+
287
+ - 23a7167: Add a typed, serializable `DatabaseError { message, transient, cause }` for store adapter failures.
288
+
289
+ Store adapters wrapped DB calls in bare `Effect.promise` / `.orDie`, so a transient infra failure (request timeout, throttle, 5xx, dropped socket) became a raw-`Error` defect — which `Effect.retry` can't retry and which breaks JSON encoding of a workflow exit cause ("Expected JSON value, got Error"). `DatabaseError` is now exposed on all `Store` and `Repository` method error channels (writes: `OptimisticConcurrencyException | DatabaseError`) and added to `SupportedErrors` so the api/client/FE treat it as a 500-class error. Each adapter wraps its db-call failures into `DatabaseError` with a `transient` flag (timeout/throttle/5xx ⇒ retryable); the `cause` serializes via `Schema.Defect`. Construction/seed/DDL paths stay `orDie`.
290
+
291
+ ### Patch Changes
292
+
293
+ - Updated dependencies [23a7167]
294
+ - effect-app@4.0.0-beta.267
295
+
296
+ ## 4.0.0-beta.266
297
+
298
+ ### Patch Changes
299
+
300
+ - Updated dependencies [bbaa67e]
301
+ - effect-app@4.0.0-beta.266
302
+
303
+ ## 4.0.0-beta.265
304
+
305
+ ### Patch Changes
306
+
307
+ - fce6ee9: Fix machine-id allocation in the Cosmos cluster `RunnerStorage`. It derived the machine id from a 31-multiplier string hash of the runner address, so two distinct runners could hash to the same value mod 1024 — and since the machine id feeds the Snowflake generator mod 1024, those runners would emit colliding Snowflake ids (corrupting request/reply identity across the cluster).
308
+
309
+ Machine ids are now allocated from a single counter document via an atomic server-side `incr`, mirroring SQL's auto-increment `machine_id` primary key: unique across distinct runners and stable per address (a re-registering runner reuses its persisted id). Verified against a live Cosmos account.
310
+
311
+ - be3300d: Fix correctness bugs in the Cosmos `WorkflowEngine`, found by running the adapter against a real Cosmos account. The Cosmos workflow engine now passes the same conformance suite as the in-memory and SQLite engines.
312
+
313
+ - **OCC conflicts were fatal.** `replaceExec` used `Effect.promise` + a `statusCode` check, but single-item Cosmos `replace` _throws_ on 409/412/404 (only `read` and batch ops surface the code), so every conflict became an unrecoverable defect and the `OptimisticConcurrencyException` catch was dead code. It now uses `Effect.tryPromise` and matches the thrown error (mirrors `ClusterCosmos`), so lease claims, completions, and interrupts lose gracefully under contention.
314
+ - **Illegal resource ids.** Activity/deferred/clock doc ids embedded workflow/deferred names containing `/`, which Cosmos rejects. Ids are now URI-encoded via `cosmosId` (mirrors `ClusterCosmos`).
315
+ - **Interrupt could be lost under Cosmos latency.** A concurrent `interrupt` racing a suspending driver's `onComplete` could have its `interrupted` flag swallowed (OCC) or downgraded, leaving the re-drive unable to collapse the suspension. `interrupt`/`interruptUnsafe` now persist the flag with OCC retry (`markInterrupted`), and `onComplete` never downgrades a persisted `interrupted: true`.
316
+ - **`execute` now drives unconditionally** (matching SQLite), letting `drive`'s own guard short-circuit a running/completed fiber and re-drive a suspended one, instead of skipping re-drive when a stale local entry existed.
317
+
318
+ - 3e855bc: Update Effect packages to `4.0.0-beta.83` (from `beta.74`): `effect`, `@effect/platform-node`, `@effect/platform-browser`, `@effect/sql-sqlite-node`, `@effect/atom-vue`, `@effect/vitest`.
319
+
320
+ Adapt the infra workflow engines to beta.83 API changes:
321
+
322
+ - `Schema.Defect` is now a constructor function — use `S.Defect()` when building the deferred-exit codec (the bare constant no longer produces a usable schema and crashed `toType`).
323
+ - `Workflow` exposes its name as `_tag` instead of `name`. `WorkflowEngineSqlite`/`WorkflowEngineCosmos` now key the registry, codec caches, and persisted `workflow_name` off `workflow._tag`, fixing crash-recovery (stale-lease re-drive previously registered under an `undefined` key and never matched).
324
+
325
+ - Updated dependencies [3e855bc]
326
+ - effect-app@4.0.0-beta.265
327
+
328
+ ## 4.0.0-beta.264
329
+
330
+ ### Patch Changes
331
+
332
+ - 1587bfc: Batch more Cosmos cluster storage updates.
333
+ - effect-app@4.0.0-beta.264
334
+
335
+ ## 4.0.0-beta.263
336
+
337
+ ### Patch Changes
338
+
339
+ - abb9c99: Batch Cosmos ack message processing updates.
340
+ - effect-app@4.0.0-beta.263
341
+
342
+ ## 4.0.0-beta.262
343
+
344
+ ### Patch Changes
345
+
346
+ - 55c6572: update packages
347
+ - Updated dependencies [55c6572]
348
+ - effect-app@4.0.0-beta.262
349
+
350
+ ## 4.0.0-beta.261
351
+
352
+ ### Patch Changes
353
+
354
+ - c31c673: Tighten Cosmos cluster OCC handling for concurrent node polling.
355
+ - effect-app@4.0.0-beta.261
356
+
357
+ ## 4.0.0-beta.260
358
+
359
+ ### Patch Changes
360
+
361
+ - bogus
362
+ - Updated dependencies
363
+ - effect-app@4.0.0-beta.260
364
+
365
+ ## 4.0.0-beta.259
366
+
367
+ ### Minor Changes
368
+
369
+ - 6884a32: Add Azure Service Bus topic notifications for persisted cluster storage polling.
370
+
371
+ ### Patch Changes
372
+
373
+ - 6821fc5: Add Cosmos DB backed storage layers for Effect Cluster message and runner state.
374
+ - b6cb25b: Fix Cosmos cluster workflow resume after durable deferred completion.
375
+ - effect-app@4.0.0-beta.259
376
+
377
+ ## 4.0.0-beta.258
378
+
379
+ ### Minor Changes
380
+
381
+ - 0520dd4: Add Cosmos DB backed `WorkflowEngine` adapter (`layerCosmos` in `WorkflowEngineCosmos.ts`). Persists workflow state in a single container partitioned by `executionId` so per-execution writes share a partition key (TransactionalBatch-eligible). Optimistic concurrency via `_etag` + `IfMatch` on Replace; first-writer-wins via create-only batch ops for activity results and durable-deferred completions; a persisted _suspended_ activity is overwritten via upsert on resume. Values crossing the storage boundary round-trip through `Schema` codecs (`S.fromJsonString(S.toCodecJson(...))`) using the workflow's own `payloadSchema` / `successSchema` / `errorSchema` for typed values, and the cluster engine's opaque `AnyOrVoid` codec for activity / deferred payloads. Includes time-bound lease + heartbeat fiber, scope-bound recovery poller for crashed-driver takeover, and cross-partition clock poller for restart-survivable durable timers.
382
+ - 0ddda6f: Add SQLite backed `WorkflowEngine` adapter (`layerSqlite` in `WorkflowEngineSqlite.ts`). Persists workflow state across `workflow_exec` / `workflow_activity` / `workflow_deferred` / `workflow_clock` tables via `SqlClient`. Uses `sql.withTransaction` for atomicity, etag-based optimistic concurrency (`UPDATE ... WHERE etag = ? RETURNING etag`), and `INSERT ... ON CONFLICT DO NOTHING RETURNING` for first-writer-wins on activity / deferred / clock writes. Values crossing the storage boundary round-trip through `Schema` codecs (`S.fromJsonString(S.toCodecJson(...))`) using the workflow's own `payloadSchema` / `successSchema` / `errorSchema` for typed values, and the cluster engine's opaque `AnyOrVoid` codec for activity / deferred payloads. Includes time-bound lease + heartbeat fiber, scope-bound recovery poller for crashed-driver takeover, and cross-partition clock poller for restart-survivable durable timers.
383
+
384
+ ### Patch Changes
385
+
386
+ - effect-app@4.0.0-beta.258
387
+
388
+ ## 4.0.0-beta.257
389
+
390
+ ### Patch Changes
391
+
392
+ - Updated dependencies [e71eb78]
393
+ - effect-app@4.0.0-beta.257
394
+
395
+ ## 4.0.0-beta.256
396
+
397
+ ### Patch Changes
398
+
399
+ - Updated dependencies [347af48]
400
+ - effect-app@4.0.0-beta.256
401
+
402
+ ## 4.0.0-beta.255
403
+
404
+ ### Patch Changes
405
+
406
+ - Updated dependencies [52a31dd]
407
+ - effect-app@4.0.0-beta.255
408
+
409
+ ## 4.0.0-beta.254
410
+
411
+ ### Patch Changes
412
+
413
+ - Updated dependencies [29a1e57]
414
+ - effect-app@4.0.0-beta.254
415
+
416
+ ## 4.0.0-beta.253
417
+
418
+ ### Patch Changes
419
+
420
+ - Updated dependencies [b90fa30]
421
+ - effect-app@4.0.0-beta.253
422
+
423
+ ## 4.0.0-beta.252
424
+
425
+ ### Patch Changes
426
+
427
+ - Updated dependencies [a788432]
428
+ - effect-app@4.0.0-beta.252
429
+
430
+ ## 4.0.0-beta.251
431
+
432
+ ### Patch Changes
433
+
434
+ - 1c858d3: fix request scope problems
435
+ - Updated dependencies [1c858d3]
436
+ - effect-app@4.0.0-beta.251
437
+
438
+ ## 4.0.0-beta.250
439
+
440
+ ### Patch Changes
441
+
442
+ - 3053760: fix: restore context map container behavior
443
+ - Updated dependencies [3053760]
444
+ - effect-app@4.0.0-beta.250
445
+
446
+ ## 4.0.0-beta.249
447
+
448
+ ### Major Changes
449
+
450
+ - ba789a2: Move core service contracts and runtime-agnostic modules into `effect-app`, keep `infra` and `vue` focused on adapters, and drop the temporary `infra` compatibility re-export paths in favor of the new canonical imports.
451
+
452
+ `@effect-app/infra` no longer re-exports moved core modules such as `./Model`, `./Emailer/service`, `./QueueMaker/service`, `./Store/service`, `./adapters/*`, or `./api/*` entrypoints.
453
+
454
+ ### Patch Changes
455
+
456
+ - Updated dependencies [ba789a2]
457
+ - effect-app@4.0.0-beta.249
458
+
459
+ ## 4.0.0-beta.248
460
+
461
+ ### Patch Changes
462
+
463
+ - 2a86a17: improve tsgo compat: avoid deferred `Schema.Type`/`Codec.Encoded`/`Codec.DecodingServices`/`Codec.EncodingServices` conditional helpers in generic positions where the type parameter is already constrained to `Schema.Top`. Index the property directly (`X["Type"]`, `X["Encoded"]`, `X["DecodingServices"]`, …) so tsgo doesn't leak `unknown` into `Effect` channels (notably `R`).
464
+
465
+ Sites: `client/clientFor.ts` (`RequestHandlerFor`, `FinalTypeOf`, `ExtractResponse`, `ExtractEResponse`), `client/makeClient.ts` (`InputFromPayload`, `OutputFromSuccess`, `InvalidationConfigForCommand`, `TaggedRequestWithMeta` overloads), `rpc/MiddlewareMaker.ts` (`Errors`), `rpc/RpcMiddleware.ts` (`Failure`, `FailureContext`), `Schema/ext.ts` (`ReadonlySetFromArray`, `ReadonlyMapFromArray`), `infra/routing.ts` (`GetSuccessShape`, handlers, route matcher), `vue/makeClient.ts` (`MutationExt.project`, `MutationWithExtensions`, `QueryProjection`), `vue/routeParams.ts` (`parseRouteParams*`).
466
+
467
+ - Updated dependencies [2a86a17]
468
+ - effect-app@4.0.0-beta.248
469
+
470
+ ## 4.0.0-beta.247
471
+
472
+ ### Patch Changes
473
+
474
+ - Updated dependencies [01bab22]
475
+ - effect-app@4.0.0-beta.247
476
+
477
+ ## 4.0.0-beta.246
478
+
479
+ ### Patch Changes
480
+
481
+ - f4b58cd: Add `cachedPerRequest` helper to `ContextMapContainer`. Runs a given Effect at most once per ContextMap (i.e. per request) and stores the result in the ContextMap under a fresh symbol, using the ContextMap's shared semaphore for safe single initialization. Use as a building block for any per-request memoized value (request resolver caches, per-request `Cache.make` instances, etc.).
482
+ - effect-app@4.0.0-beta.246
483
+
484
+ ## 4.0.0-beta.245
485
+
486
+ ### Patch Changes
487
+
488
+ - effect-app@4.0.0-beta.245
489
+
490
+ ## 4.0.0-beta.244
491
+
492
+ ### Patch Changes
493
+
494
+ - b8b9080: update packages
495
+ - Updated dependencies [b8b9080]
496
+ - effect-app@4.0.0-beta.244
497
+
498
+ ## 4.0.0-beta.243
499
+
500
+ ### Patch Changes
501
+
502
+ - 8eb6737: Wrap `CUPS` exec failures in tagged `CUPSError` instead of `UnknownException`.
503
+
504
+ Retains `command`, `message`, exit `code`, `signal`, `killed`, `stdout`,
505
+ `stderr`, and original `cause` from the underlying `child_process.exec`
506
+ rejection so callers can branch on real failure detail.
507
+
508
+ - effect-app@4.0.0-beta.243
509
+
510
+ ## 4.0.0-beta.242
511
+
512
+ ### Patch Changes
513
+
514
+ - Updated dependencies [da83c1f]
515
+ - Updated dependencies [21017d5]
516
+ - Updated dependencies [2495ace]
517
+ - effect-app@4.0.0-beta.242
518
+
519
+ ## 4.0.0-beta.241
520
+
521
+ ### Patch Changes
522
+
523
+ - Updated dependencies [b035b1c]
524
+ - effect-app@4.0.0-beta.241
525
+
526
+ ## 4.0.0-beta.240
527
+
528
+ ### Patch Changes
529
+
530
+ - c5e348f: Fix `provideOnRequestScope` leaking a single `ContextMap` across concurrent requests.
531
+
532
+ `Layer.buildWithScope(layer, requestScope)` resolves its `MemoMap` from the
533
+ ambient fiber context, which lives on the HTTP server fiber and is therefore
534
+ shared by every request that server handles. With the resulting memoization,
535
+ the first request to land on a freshly-started server built
536
+ `ContextMapContainer.layer` once; every subsequent overlapping request received
537
+ the same `ContextMap` instance — etags written by one request were observed
538
+ (or overwritten) by another, and the finalizer was anchored to the first
539
+ request's scope.
540
+
541
+ `provideOnRequestScope` now allocates a fresh `MemoMap` per call via
542
+ `Layer.makeMemoMap` and builds with `Layer.buildWithMemoMap(layer, memoMap,
543
+ requestScope)`. Each request gets its own `ContextMap`, the request-scope
544
+ binding from the earlier SSE fix is preserved, and the finalizer still only
545
+ fires once the response body has fully drained.
546
+
547
+ Adds regression coverage in `rpc-context-map-streaming.test.ts` for three
548
+ properties: mid-stream survival of ContextMap state, a fresh map on each
549
+ succeeding request, and isolation between overlapping concurrent requests.
550
+
551
+ - effect-app@4.0.0-beta.240
552
+
553
+ ## 4.0.0-beta.239
554
+
555
+ ### Patch Changes
556
+
557
+ - bb3f51d: Fix ContextMap finalizer running mid-stream on SSE responses. SSE handler now binds ContextMapContainer to the request scope via a shared `provideOnRequestScope` helper (also used by `RequestContextMiddleware`), so finalizers only run after the response body is fully drained. Adds `setupStreamingRequestContextFromCurrent` for use by streaming HTTP handlers.
558
+ - effect-app@4.0.0-beta.239
559
+
560
+ ## 4.0.0-beta.238
561
+
562
+ ### Patch Changes
563
+
564
+ - b63f10f: fix: nasty request scope bug
565
+ - effect-app@4.0.0-beta.238
566
+
567
+ ## 4.0.0-beta.237
568
+
569
+ ### Patch Changes
570
+
571
+ - 3cf0c42: Fix `ContextMap` memory leak: tie its lifecycle to the request scope.
572
+
573
+ `ContextMapContainer.layer` provides a fresh `ContextMap` per request via `Layer.effect`, but the inner `etags` and `store` maps were never released. Cached `RequestResolver` entries (and anything they closed over) stayed reachable as long as any fiber held a reference to the map, even after the request scope closed.
574
+
575
+ `ContextMap` is now built with `Effect.acquireRelease`, and `makeContextMap` exposes a `clear()` finalizer that empties both maps when the request scope closes. `Layer.effect` strips the `Scope` requirement automatically in Effect v4.
576
+
577
+ - effect-app@4.0.0-beta.237
578
+
579
+ ## 4.0.0-beta.236
580
+
581
+ ### Patch Changes
582
+
583
+ - effect-app@4.0.0-beta.236
584
+
585
+ ## 4.0.0-beta.235
586
+
587
+ ### Patch Changes
588
+
589
+ - 6cfd83d: update effect to latest beta
590
+ - Updated dependencies [ba4bdc3]
591
+ - Updated dependencies [6cfd83d]
592
+ - effect-app@4.0.0-beta.235
593
+
594
+ ## 4.0.0-beta.234
595
+
596
+ ### Patch Changes
597
+
598
+ - effect-app@4.0.0-beta.234
599
+
600
+ ## 4.0.0-beta.233
601
+
602
+ ### Patch Changes
603
+
604
+ - 57a1862: Update to effect 4.0.0-beta.67. Switch deps from `pkg.pr.new` snapshot back to npm beta tag.
605
+ - Updated dependencies [57a1862]
606
+ - effect-app@4.0.0-beta.233
607
+
608
+ ## 4.0.0-beta.232
609
+
610
+ ### Patch Changes
611
+
612
+ - 0263827: Update to effect `pkg.pr.new` snapshot at `a42ef66` (4.0.0-beta.66). Remove `Yieldable` and `asEffect()` (service tags are now `Effect` directly).
613
+ - Updated dependencies [0263827]
614
+ - Updated dependencies [0263827]
615
+ - Updated dependencies [0263827]
616
+ - effect-app@4.0.0-beta.232
617
+
618
+ ## 4.0.0-beta.231
619
+
620
+ ### Patch Changes
621
+
622
+ - 7ca66ce: Update to effect 4.0.0-beta.66. Remove `Yieldable` and `asEffect()` (service tags are now `Effect` directly).
623
+ - Updated dependencies [7ca66ce]
624
+ - effect-app@4.0.0-beta.231
625
+
626
+ ## 4.0.0-beta.230
627
+
628
+ ### Minor Changes
629
+
630
+ - 1cee480: Add aggregate query support: `Q.aggregate(schema, aggregateMap)` performs GROUP BY + aggregate functions at the database level (Memory, SQL, Cosmos).
631
+
632
+ - New `agg` DSL namespace: `agg.field(path)` (group-by), `agg.count()`, `agg.countWhen(op)`, `agg.sum(field)`, `agg.min(field)`, `agg.max(field)`
633
+ - New `aggregate(schema, aggregateMap)` query operator replaces in-memory grouping with a single DB-level query
634
+ - Memory store: pure JS group-by + aggregation
635
+ - SQL store: `GROUP BY` + `COUNT(CASE WHEN ...)` / `SUM` / `MIN` / `MAX`
636
+ - Cosmos store: `GROUP BY` + `SUM(IIF(...))` for conditional counts
637
+
638
+ ### Patch Changes
639
+
640
+ - effect-app@4.0.0-beta.230
641
+
642
+ ## 4.0.0-beta.229
643
+
644
+ ### Patch Changes
645
+
646
+ - effect-app@4.0.0-beta.229
647
+
648
+ ## 4.0.0-beta.228
649
+
650
+ ### Patch Changes
651
+
652
+ - effect-app@4.0.0-beta.228
653
+
654
+ ## 4.0.0-beta.227
655
+
656
+ ### Patch Changes
657
+
658
+ - bac9f1a: Fix Cosmos `projectComputed` parameter index shift when `relation(...).every(...)` is present. The shared filter `print` was invoked twice per `relation-every` (once eagerly for the `where` variable, again inside the `NOT EXISTS(... WHERE NOT (...))` branch), bumping the outer `@v` counter beyond the bound parameter array and producing SQL that referenced unbound placeholders — queries returned 0 rows on Cosmos while SQLite/Memory adapters were unaffected.
659
+ - effect-app@4.0.0-beta.227
660
+
661
+ ## 4.0.0-beta.226
662
+
663
+ ### Patch Changes
664
+
665
+ - f7290aa: Add `relation(...).length()` computed projection — emits `ARRAY_LENGTH` on Cosmos / `arrayLength` on SQL / native `.length` on Memory. Cheaper than `relation.count()` for unconditional array sizing (no subquery scan, just metadata read).
666
+
667
+ ```ts
668
+ projectComputed(
669
+ S.Struct({ id: S.String, packageCount: S.NonNegativeInt }),
670
+ computed({ packageCount: relation<OrderEnc>("packages").length() })
671
+ );
672
+ ```
673
+
674
+ - 8062ad3: Unify Emailer `sendMail` spans across implementations. `Fake.sendMail` and `Sendgrid.sendMail` now both emit as `Emailer.sendMail` with OTel-standard `messaging.system` attribute (`"fake"` / `"sendgrid"`).
675
+ - effect-app@4.0.0-beta.226
676
+
677
+ ## 4.0.0-beta.225
678
+
679
+ ### Patch Changes
680
+
681
+ - 39996f7: Unify `parseMany` span variants under a single span name. The four prior spans (`parseMany`, `parseMany2`, `parseManyProject`, `parseManyCollect`) now all emit as `parseMany` with `app.entity` and `app.query.mode` attributes (`"transform" | "project" | "collect"`). Reuses the same attribute key already set on the parent `Repository.query` span for consistency. `parseManyProject`/`parseManyCollect` previously lacked `app.entity` — now included.
682
+ - effect-app@4.0.0-beta.225
683
+
684
+ ## 4.0.0-beta.224
685
+
686
+ ### Patch Changes
687
+
688
+ - effect-app@4.0.0-beta.224
689
+
690
+ ## 4.0.0-beta.223
691
+
692
+ ### Patch Changes
693
+
694
+ - 2871841: RequestContextMiddleware: set request name to `HTTP <method> <path>` (strip query string) for clearer span/trace names.
695
+ - effect-app@4.0.0-beta.223
696
+
697
+ ## 4.0.0-beta.222
698
+
699
+ ### Patch Changes
700
+
701
+ - effect-app@4.0.0-beta.222
702
+
703
+ ## 4.0.0-beta.221
704
+
705
+ ### Patch Changes
706
+
707
+ - 439cbeb: Adopt module system from effect-smol: replace barrel imports with specific submodule imports (`import * as X from "effect-app/X"` / `import * as X from "effect/X"`).
708
+ - Updated dependencies [439cbeb]
709
+ - effect-app@4.0.0-beta.221
710
+
711
+ ## 4.0.0-beta.220
712
+
713
+ ### Patch Changes
714
+
715
+ - aa436d3: fix bs span
716
+ - effect-app@4.0.0-beta.220
717
+
718
+ ## 4.0.0-beta.219
719
+
720
+ ### Patch Changes
721
+
722
+ - 13c2fd9: doc span
723
+ - d738811: remove double prefix
724
+ - 724da29: replace useless span
725
+ - Updated dependencies [d738811]
726
+ - effect-app@4.0.0-beta.219
727
+
728
+ ## 4.0.0-beta.218
729
+
730
+ ### Minor Changes
731
+
732
+ - 95995d5: Add `collectFields`/`collectDistinctFields` to `relation()` DSL for collecting values from multiple fields of relation items into a single flattened array.
733
+
734
+ Example: given `T = { a: boolean, items: { x: string, y: string, z: number }[] }[]`, you can now collect all distinct `x` and `y` values into a single `string[]`:
735
+
736
+ ```ts
737
+ relation("items").collectDistinctFields(["x", "y"]);
738
+ ```
739
+
740
+ ### Patch Changes
741
+
742
+ - effect-app@4.0.0-beta.218
743
+
744
+ ## 4.0.0-beta.217
745
+
746
+ ### Patch Changes
747
+
748
+ - e3ceaba: Add computed projection expression sums with grouped and normalized variants for projectComputed relation aggregations.
749
+ - Updated dependencies [0e824ef]
750
+ - effect-app@4.0.0-beta.217
751
+
752
+ ## 4.0.0-beta.216
753
+
754
+ ### Patch Changes
755
+
756
+ - f28fce5: fix sqlite
757
+ - effect-app@4.0.0-beta.216
758
+
759
+ ## 4.0.0-beta.215
760
+
761
+ ### Patch Changes
762
+
763
+ - 24f5dd0: fix memory computation
764
+ - effect-app@4.0.0-beta.215
765
+
766
+ ## 4.0.0-beta.214
767
+
768
+ ### Minor Changes
769
+
770
+ - fb93244: Extend computed projections with additional relation operators:
771
+
772
+ - `relation(path).every(op)` — boolean, all elements match the filter (compiled as `NOT EXISTS(... WHERE NOT (filter))`).
773
+ - `relation(path).distinctCount(field, op?)` — distinct count of values at `field` within the relation.
774
+ - `relation(path).sum(field, op?)` — numeric sum over a relation field.
775
+ - `relation(path).collect(field, op?)` / `collectDistinct(field, op?)` — collect values into an array (with optional dedup).
776
+
777
+ All operators compile to native subqueries on SQL (sqlite/pg) and Cosmos, and to in-memory equivalents on the Memory store.
778
+
779
+ ### Patch Changes
780
+
781
+ - effect-app@4.0.0-beta.214
782
+
783
+ ## 4.0.0-beta.213
784
+
785
+ ### Minor Changes
786
+
787
+ - aac6308: Add computed projections for repository queries with adapter-level compilation for memory, SQL, and Cosmos stores.
788
+
789
+ ### Patch Changes
790
+
791
+ - 6613f3d: Document `Q.project` modes (`transform` / `project` / `collect`): how `select` is derived from the schema AST, the PM reverse-mapping behaviour per mode, and which decode errors surface vs `orDie`.
792
+ - effect-app@4.0.0-beta.213
793
+
794
+ ## 4.0.0-beta.212
795
+
796
+ ### Patch Changes
797
+
798
+ - Updated dependencies [8792221]
799
+ - effect-app@4.0.0-beta.212
800
+
801
+ ## 4.0.0-beta.211
802
+
803
+ ### Patch Changes
804
+
805
+ - ebbb799: Repository owns OTel span topology; store adapters annotate db._ semconv attrs on the current span instead of opening their own child spans. Eliminates 1-1 nested span chains (e.g. `Repository.query` → `Cosmos.filter`). Adds `annotateDb` helper alongside `withDbSpan` in `otel.ts`. Repo public ops (`find`, `all`, `query`, `queryRaw`, `mapped._`) get explicit `Repository.<op>` spans; internal codec steps (`encodeMany`, `parseMany`, `parseMany2`) keep bare names. `validateSample`opens per-iteration sub-spans to prevent attribute clobber. Adds WeakMap decoder cache for`parseMany2` schemas.
806
+ - e33f1eb: Drop OTel spans from ServiceBus client/sender/receiver/subscription lifecycle wrappers; keep `withLogSpan` + info logs only. Removes high-cardinality `sessionId` from log span names; promotes it to `messaging.session.id` log attribute via `Effect.annotateLogs`.
807
+ - effect-app@4.0.0-beta.211
808
+
809
+ ## 4.0.0-beta.210
810
+
811
+ ### Minor Changes
812
+
813
+ - 3a588e4: Standardize span attributes on OpenTelemetry semantic conventions.
814
+
815
+ All Store adapters (Cosmos, PostgreSQL, SQLite, Memory, Disk) and Queue adapters
816
+ (Service Bus, SQL, Memory) now emit OTel-compliant span names and attributes via
817
+ the new `@effect-app/infra/otel` helper module.
818
+
819
+ Span name convention: `<operation> <collection|destination>` (low cardinality).
820
+
821
+ Attribute key migration:
822
+
823
+ | Old | New |
824
+ | --------------------------------------------------- | --------------------------------------------------------------------------------- |
825
+ | `repository.table_name` / `repository.container_id` | `db.collection.name` |
826
+ | `repository.namespace` | `db.namespace` |
827
+ | `repository.model_name` / `itemType` | `app.entity` |
828
+ | `id` / `itemId` (entity span attr) | `app.entity.id` |
829
+ | `itemIds` | `app.entity.ids` |
830
+ | `db.cosmos.request_charge` | `azure.cosmosdb.operation.request_charge` |
831
+ | `db.cosmos.resource_count` | `db.response.returned_rows` |
832
+ | `db.cosmos.response_bytes` | `db.response.body.size` |
833
+ | `disk.file` / `disk.file_size` | `disk.file.path` / `disk.file.size` |
834
+ | `queue.name` | `messaging.destination.name` |
835
+ | `queue.sessionId` | `messaging.message.conversation_id` |
836
+ | `queue.type` | `messaging.system` |
837
+ | `queue.input` (full body) | `messaging.message.body` (+ `messaging.message.id`, `messaging.message.type`) |
838
+ | `message_tags` | `messaging.message.types` + `messaging.batch.message_count` |
839
+ | `request.name` | `code.function.name` (from `spanAttributes`) / `rpc.method` (middleware) |
840
+ | `request.locale` | `app.locale` |
841
+ | `request.namespace` | `app.tenant.id` |
842
+ | `request.source.id` | `client.id` |
843
+ | `request.user.sub` / `.roles` | `user.id` / `user.roles` |
844
+ | `requestInput` | `rpc.request.payload` |
845
+ | `connectionId` | `network.connection.id` |
846
+ | Span `Request.<module>.<method>` | Span `<module>/<method>` + `rpc.system`/`rpc.service`/`rpc.method` (kind: server) |
847
+ | `<spanPrefix>.<op>` (SQL/Model) | OTel db span via `withDbSpan`, with `dbSystem?` option |
848
+
849
+ New attributes added:
850
+
851
+ - `db.system.name` — e.g. `postgresql`, `sqlite`, `cosmosdb`, `memory`, `disk`
852
+ - `db.operation.name` — e.g. `find`, `all`, `filter`, `set`
853
+ - `db.query.text` — sanitized / parameterized SQL or Cosmos query (no bound values)
854
+ - `messaging.operation.name` — `publish`, `process`, `receive`
855
+
856
+ Breaking: dashboards/alerts keying on the previous attribute names must be
857
+ updated. Queue consumer spans no longer log raw message bodies — use
858
+ `messaging.message.id` and `messaging.message.type` instead.
859
+
860
+ ### Patch Changes
861
+
862
+ - effect-app@4.0.0-beta.210
863
+
864
+ ## 4.0.0-beta.209
865
+
866
+ ### Patch Changes
867
+
868
+ - c991be1: update packages
869
+ - Updated dependencies [c991be1]
870
+ - Updated dependencies [3bae238]
871
+ - effect-app@4.0.0-beta.209
872
+
873
+ ## 4.0.0-beta.208
874
+
875
+ ### Patch Changes
876
+
877
+ - effect-app@4.0.0-beta.208
878
+
879
+ ## 4.0.0-beta.207
880
+
881
+ ### Patch Changes
882
+
883
+ - b0db40f: Router handlers are now discriminated by `Resource[K]["stream"]`:
884
+
885
+ - Stream resources (`stream: true`) accept only `(req) => Stream<...>` handlers.
886
+ - Non-stream resources accept only `(req) => Effect<...>` (or generator yielding `Yieldable`).
887
+
888
+ Mixing — e.g. returning `Effect.fail(...)` or `Effect<Stream<...>>` from a stream handler — no longer type-checks.
889
+
890
+ The runtime `Stream.unwrap` branch that lifted `Effect`/`Effect<Stream>` returns into a `Stream` is removed; handlers for stream resources must return a `Stream` directly. Migrate `Effect.gen(...).pipe(Stream.unwrap)` patterns by returning the `Stream` directly, and convert `Effect.fail(err)` in stream handlers to `Stream.fail(err)`.
891
+
892
+ - Updated dependencies [8fffc3c]
893
+ - effect-app@4.0.0-beta.207
894
+
895
+ ## 4.0.0-beta.206
896
+
897
+ ### Patch Changes
898
+
899
+ - 54bfc59: Require middleware to flow through `makeRpcClient` and the live layer through `makeRouter`.
900
+
901
+ ### `makeRpcClient(middleware, generalErrors?)`
902
+
903
+ Signature drops the `rcs` (request-context map wrapper) parameter. `rcs` was only load-bearing on the type side for `RequestConfig` inference; that information is now derived from `middleware.requestContextMap`. `middleware` is required — the previous "rcs + optional middleware" overload is gone.
904
+
905
+ **Migration**:
906
+
907
+ ```diff
908
+ -makeRpcClient(RequestContextMap, undefined, AppMiddleware)
909
+ +makeRpcClient(AppMiddleware)
910
+ ```
911
+
912
+ For tests/clients without a real middleware, build a minimal stub (`{ requestContextMap, requestContext }`) or pass any value satisfying `ClientMiddleware<RCM>`.
913
+
914
+ ### `makeRouter(middlewareLive)`
915
+
916
+ `makeRouter()` no longer infers the live middleware layer from `meta.middleware.Default`. The Live layer is now passed explicitly to `makeRouter`, and the request classes only carry the middleware tag (schema-only). This decouples the router from any assumption that the middleware tag exposes a `Default` static.
917
+
918
+ **Migration**:
919
+
920
+ ```diff
921
+ -export const { Router, matchAll } = makeRouter()
922
+ +export const { Router, matchAll } = makeRouter(AppMiddleware.Default)
923
+ ```
924
+
925
+ - Updated dependencies [54bfc59]
926
+ - effect-app@4.0.0-beta.206
927
+
928
+ ## 4.0.0-beta.205
929
+
930
+ ### Patch Changes
931
+
932
+ - Updated dependencies [f313973]
933
+ - effect-app@4.0.0-beta.205
934
+
935
+ ## 4.0.0-beta.204
936
+
937
+ ### Patch Changes
938
+
939
+ - Updated dependencies [0a0030f]
940
+ - effect-app@4.0.0-beta.204
941
+
942
+ ## 4.0.0-beta.203
943
+
944
+ ### Patch Changes
945
+
946
+ - Updated dependencies [992d9fa]
947
+ - effect-app@4.0.0-beta.203
948
+
949
+ ## 4.0.0-beta.202
950
+
951
+ ### Patch Changes
952
+
953
+ - Updated dependencies [1186b09]
954
+ - effect-app@4.0.0-beta.202
955
+
956
+ ## 4.0.0-beta.201
957
+
958
+ ### Patch Changes
959
+
960
+ - d67d17a: Source middleware errors exclusively from the rpc middleware tag, and move command/stream invalidation wrap/unwrap entirely into the routing layer (server) and `apiClientFactory` (client). `InvalidationMiddleware` and `InvalidationMiddlewareLive` are removed.
961
+
962
+ ### Resource error schemas
963
+
964
+ Three sites that used to fold `RequestContextMap[*].error` into a request's own error schema now stop doing so:
965
+
966
+ - `makeRpcClient` / `makeRequestClass` — `failureSchema` is just `config.error` (still merged with the optional `generalErrors` parameter, which is the only remaining error mix on both type and runtime levels).
967
+ - `MiddlewareMaker.rpc()` — `error: options.error` only; the previous union with `rcm.config[*].error` is gone.
968
+ - Routing and `apiClientFactory.makeRpcGroupFromRequestsAndModuleName` — `Invalidation.makeCommandRpc` is called with `error: resource.error` (no widening with the composite middleware error union).
969
+
970
+ Middleware errors reach the client through the rpc's `middlewares[*].error` failure-union channel of `Rpc.exitSchema`, exposed by attaching the middleware tag to the rpc on both sides:
971
+
972
+ - **Server**: `makeRouter(middleware)` attaches the live composite tag (existing behavior).
973
+ - **Client**: new `middleware` option on `ClientForOptions` / `ApiClientFactory.makeFor(layer, { middleware })` attaches the same tag schema-only (no Live invoked). Threaded through `makeRpcGroupFromRequestsAndModuleName` to `RpcGroup.middleware(tag)`. Without it, stream rpcs (whose top-level `errorSchema` is forced to `Never` by effect-rpc) hit `SchemaError: Expected never | { _tag: "error", ... }` decoding middleware-thrown errors that bypass the in-stream `Stream.catch` wrap.
974
+
975
+ **Migration**: handlers that yield errors previously sourced from rcm (e.g. `yield* new UnauthorizedError()`) now require those errors to be declared explicitly on the resource — `Req.Query<T>()("...", fields, { success, error: UnauthorizedError })`. The handler error type no longer auto-includes the rcm union.
976
+
977
+ ### Invalidation wrap/unwrap
978
+
979
+ - `routing.ts` (server) provides a per-request `InvalidationSet` for commands, wraps the success value as `CommandResponseWithMetaData`, and converts handler-thrown failures into `CommandFailureWithMetaData` so accumulated invalidation keys reach the client on either path. Stream wrap (per-chunk envelope + final `done` chunk) was already in routing and is unchanged.
980
+ - `apiClientFactory.ts` (client) `unwrapCommand` strips both envelopes and forwards keys to `InvalidationKeysFromServer`.
981
+ - `InvalidationMiddleware` (the tag) and `InvalidationMiddlewareLive` (the layer) are **removed**. The middleware was the previous home of the wrap; with the wrap moved to routing/apiClientFactory, the middleware became a thin pass-through and is no longer needed. `DefaultGenericMiddlewares` and `DefaultGenericMiddlewaresLive` shrink accordingly — no migration needed for callers that used the defaults; callers that referenced `InvalidationMiddleware` / `InvalidationMiddlewareLive` directly should drop those imports.
982
+
983
+ Middleware-thrown errors are never wrapped: by definition the handler never ran, so there is nothing to invalidate. They flow raw on the Cause and the client decodes them via the middleware-tag failure-union channel described above.
984
+
985
+ - Updated dependencies [d67d17a]
986
+ - effect-app@4.0.0-beta.201
987
+
988
+ ## 4.0.0-beta.200
989
+
990
+ ### Patch Changes
991
+
992
+ - 0cff7c1: workaround middleware error issue
993
+ - Updated dependencies [8f1cf6a]
994
+ - Updated dependencies [0cff7c1]
995
+ - effect-app@4.0.0-beta.200
996
+
997
+ ## 4.0.0-beta.199
998
+
999
+ ### Patch Changes
1000
+
1001
+ - de9fb83: Annotate Cosmos read spans with response size, resource count, and request charge.
1002
+
1003
+ `Cosmos.queryRaw`, `Cosmos.all`, `Cosmos.filter`, and `Cosmos.find` now set `db.cosmos.request_charge`, `db.cosmos.response_bytes`, and (where applicable) `db.cosmos.resource_count` on the active span. Bytes are sourced from `diagnostics.clientSideRequestStatistics.totalResponsePayloadLengthInBytes` — no payload stringification.
1004
+
1005
+ - effect-app@4.0.0-beta.199
1006
+
1007
+ ## 4.0.0-beta.198
1008
+
1009
+ ### Patch Changes
1010
+
1011
+ - 32dbc54: fix stream type when no success specified
1012
+ - Updated dependencies [32dbc54]
1013
+ - effect-app@4.0.0-beta.198
1014
+
1015
+ ## 4.0.0-beta.197
1016
+
1017
+ ### Minor Changes
1018
+
1019
+ - 3dc0d2a: Add streaming as a `stream: true` config option on `Query` / `Command` instead of a separate request type.
1020
+
1021
+ `TaggedRequestFor` now exposes only `Query` and `Command` factories — the standalone `Stream` factory is removed. To produce a Stream of `success` values, pass `stream: true` in the request config. The request `type` field stays `"command" | "query"`; a new `stream: boolean` field carries the streaming flag (stripped from the stored handler config).
1022
+
1023
+ ```ts
1024
+ // Query that streams results
1025
+ Req.Query<T>()("Tag", {}, { stream: true, success: ... })
1026
+
1027
+ // Command that streams results
1028
+ Req.Command<T>()("Tag", {}, { stream: true, success: ... })
1029
+ ```
1030
+
1031
+ Vue client mapping (per-handler properties mirror the non-stream API — `.query`, `.fn`, `.mutate`):
1032
+
1033
+ - `query` + `stream: true` → exposes `.query` (read-only streaming, tracked Vue Query). Helper map key: `${name}Query`.
1034
+ - `command` + `stream: true` → exposes `.fn` and `.mutate` (mutating streaming).
1035
+ - Plain `query` / `command` unchanged.
1036
+
1037
+ Server routing dispatches via the new `stream` flag (`makeStreamRpc` for streaming commands/queries, `makeCommandRpc` / `Rpc.make` otherwise).
1038
+
1039
+ Also lifts the `Struct` / `TaggedStruct` and `Opaque` definitions in `effect-app/Schema` to use `S.Bottom` / `S.Opaque` directly, exposing `fields`, `mapFields`, and a `MakeIn` that allows `void` when all fields are optional. `TaggedRequestFor` request classes now use `Opaque(TaggedStruct(...))` instead of `TaggedClass`, and decoding/encoding services are derived from `success` / `error` rather than stored on the request.
1040
+
1041
+ **Migration**: replace `Req.Stream` with `Req.Query` or `Req.Command` and add `stream: true` to the config — `Query` for read-only streams, `Command` for mutating streams.
1042
+
1043
+ ### Patch Changes
1044
+
1045
+ - Updated dependencies [3dc0d2a]
1046
+ - effect-app@4.0.0-beta.197
1047
+
1048
+ ## 4.0.0-beta.196
1049
+
1050
+ ### Patch Changes
1051
+
1052
+ - effect-app@4.0.0-beta.196
1053
+
1054
+ ## 4.0.0-beta.195
1055
+
1056
+ ### Patch Changes
1057
+
1058
+ - 774a9b3: `MiddlewareMaker.makeMiddlewareBasic` now derives each middleware's effective error from both the static `error` field on the tag AND the `rcm` config entry referenced by `dynamic.key`, rather than relying on the static field alone.
1059
+
1060
+ Middlewares declared with `dynamic: RequestContextMap.get("foo")` (instead of an explicit static `error: ...`) end up with `tag.error = Schema.Never` at runtime — `RpcMiddleware.Tag` defaults the static error to `Never` when not provided. The composite `MiddlewareMaker.Tag(...).middleware(...)` walked `make[*].error` to build its own error union, collapsing to `Union<Never, ...> ≡ Never`.
1061
+
1062
+ `Rpc.exitSchema` walks `rpc.middlewares[*].error` when building the wire-level failure union for every rpc kind. Empty-union meant middleware-thrown errors (`NotLoggedInError`, `UnauthorizedError`, etc.) never reached the wire schema. Query/command happened to work because their wire `errorSchema = resource.error` already covered the merge from `makeRpcClient`. Stream rpcs have `errorSchema` force-set to `Schema.Never` by effect-rpc, so the resource-level merge never reached the wire — middleware errors decoded as "Expected never, got X".
1063
+
1064
+ Per middleware, the new logic pushes both the static `_.error` (if non-`Never`) and `rcm[_.dynamic.key].error` (if non-`Never`) into the composite's failure union.
1065
+
1066
+ - Updated dependencies [774a9b3]
1067
+ - effect-app@4.0.0-beta.195
1068
+
1069
+ ## 4.0.0-beta.194
1070
+
1071
+ ### Patch Changes
1072
+
1073
+ - effect-app@4.0.0-beta.194
1074
+
1075
+ ## 4.0.0-beta.193
1076
+
1077
+ ### Patch Changes
1078
+
1079
+ - 9569911: Stream resources accept `Effect.fail(...)` (and `Effect<Stream>`) from controller handlers — previously only `Stream.fail(...)` / a returned `Stream` worked. The router now lifts an Effect result to a Stream via `Stream.unwrap`, so failures from an `Effect` propagate as a failing Stream on the client, matching `Stream.fail(...)` behavior. Also removes the need for manual `.pipe(Stream.unwrap)` on generator handlers that return a `Stream`.
1080
+ - effect-app@4.0.0-beta.193
1081
+
1082
+ ## 4.0.0-beta.192
1083
+
1084
+ ### Patch Changes
1085
+
1086
+ - dba5779: namespaces
1087
+ - effect-app@4.0.0-beta.192
1088
+
1089
+ ## 4.0.0-beta.191
1090
+
1091
+ ### Patch Changes
1092
+
1093
+ - 50ce7e6: Replace typescript-eslint with oxlint-tsgolint for type-aware lint. Drop ESLint entirely from non-vue packages (cli, effect-app, infra) — they now use only `oxlint --type-aware`. Vue packages keep ESLint to run `@effect-app/no-await-effect` (no tsgolint equivalent) via `@typescript-eslint/parser` + `vue-eslint-parser`.
1094
+ - Updated dependencies [50ce7e6]
1095
+ - effect-app@4.0.0-beta.191
1096
+
1097
+ ## 4.0.0-beta.190
1098
+
1099
+ ### Patch Changes
1100
+
1101
+ - Updated dependencies [985176b]
1102
+ - effect-app@4.0.0-beta.190
1103
+
1104
+ ## 4.0.0-beta.189
1105
+
1106
+ ### Patch Changes
1107
+
1108
+ - ea32222: Update to effect 4.0.0-beta.60 and use native `Rpc.custom` constructors (`makeCommandRpc`, `makeStreamRpc`) for metadata-wrapped RPC schemas instead of manually wrapping/unwrapping schemas inline.
1109
+ - Updated dependencies [ea32222]
1110
+ - effect-app@4.0.0-beta.189
1111
+
1112
+ ## 4.0.0-beta.188
1113
+
1114
+ ### Patch Changes
1115
+
1116
+ - b2e438f: Remove Operations service and repo
1117
+ - Updated dependencies [b2e438f]
1118
+ - effect-app@4.0.0-beta.188
1119
+
1120
+ ## 4.0.0-beta.187
1121
+
1122
+ ### Patch Changes
1123
+
1124
+ - Updated dependencies [0d4e0b8]
1125
+ - effect-app@4.0.0-beta.187
1126
+
1127
+ ## 4.0.0-beta.186
1128
+
1129
+ ### Patch Changes
1130
+
1131
+ - effect-app@4.0.0-beta.186
1132
+
1133
+ ## 4.0.0-beta.185
1134
+
1135
+ ### Patch Changes
1136
+
1137
+ - effect-app@4.0.0-beta.185
1138
+
1139
+ ## 4.0.0-beta.184
1140
+
1141
+ ### Patch Changes
1142
+
1143
+ - effect-app@4.0.0-beta.184
1144
+
1145
+ ## 4.0.0-beta.183
1146
+
1147
+ ### Patch Changes
1148
+
1149
+ - effect-app@4.0.0-beta.183
1150
+
1151
+ ## 4.0.0-beta.182
1152
+
1153
+ ### Patch Changes
1154
+
1155
+ - effect-app@4.0.0-beta.182
1156
+
1157
+ ## 4.0.0-beta.181
1158
+
1159
+ ### Patch Changes
1160
+
1161
+ - Updated dependencies [583393f]
1162
+ - effect-app@4.0.0-beta.181
1163
+
1164
+ ## 4.0.0-beta.180
1165
+
1166
+ ### Minor Changes
1167
+
1168
+ - 7fa3045: V1/V2/V3: stream and command requests carry invalidation metadata
1169
+
1170
+ **V1** – stream final response includes metadata
1171
+
1172
+ - `Invalidation.StreamResponseChunk` wraps each stream item as `{ _tag: "value", value }` and appends `{ _tag: "done", metadata }` at the end carrying all accumulated invalidation keys.
1173
+
1174
+ **V2** – invalidation keys included in failures
1175
+
1176
+ - `Invalidation.CommandFailureWithMetaData` and `Invalidation.StreamFailureChunk` carry keys accumulated up to the point of failure, so clients can invalidate queries even when a command or stream errors.
1177
+ - `InvalidationMiddlewareLive` wraps command failures; `routing.ts` wraps stream failures.
1178
+ - `apiClientFactory.ts` unwraps both on the client side, forwarding keys before re-failing with the original error.
1179
+
1180
+ **V3** – mid-stream metadata chunks
1181
+
1182
+ - `Invalidation.StreamResponseChunk` now also includes `{ _tag: "metadata", metadata }` for mid-stream invalidation.
1183
+ - After each emitted value, the server drains accumulated keys and emits a "metadata" chunk if any keys were collected since the last drain (bucket reset via `InvalidationSet.drain`).
1184
+ - `apiClientFactory.ts` processes "metadata" chunks the same as "done" chunks, forwarding keys to `InvalidationKeysFromServer` immediately.
1185
+ - `makeInvalidationKeysService` accepts an optional `onAdded` callback that fires after each key addition, enabling `mutate.ts` to trigger query invalidation mid-stream without waiting for the stream to complete.
1186
+
1187
+ ### Patch Changes
1188
+
1189
+ - Updated dependencies [7fa3045]
1190
+ - effect-app@4.0.0-beta.180
1191
+
1192
+ ## 4.0.0-beta.179
1193
+
1194
+ ### Patch Changes
1195
+
1196
+ - Updated dependencies [828d264]
1197
+ - effect-app@4.0.0-beta.179
1198
+
1199
+ ## 4.0.0-beta.178
1200
+
1201
+ ### Patch Changes
1202
+
1203
+ - effect-app@4.0.0-beta.178
1204
+
1205
+ ## 4.0.0-beta.177
1206
+
1207
+ ### Minor Changes
1208
+
1209
+ - 89d8b3a: Add Effect RPC `Stream` support to the wrapper.
1210
+
1211
+ - New `Stream` request constructor on `TaggedRequestFor` parallel to `Query`/`Command`. Emits resources with `type: "stream"`.
1212
+ - Server router (`@effect-app/infra` `routing.ts`) accepts stream resources whose handlers return a `Stream.Stream<A, E, R>` (or a function from input to one). Forwards `stream: true` to `Rpc.make` so `RpcSchema.Stream` wrapping is applied. Streams bypass `applyRequestTypeInterruptibility` and the `Effect.withSpan` wrapping (the RPC server adds its own span).
1213
+ - Client (`apiClientFactory.ts`) detects stream resources, forwards `stream: true` when constructing `RpcGroup`, and exposes the per-request `handler` as a `Stream.Stream` (via `Stream.unwrap` over the `ManagedRuntime` context) instead of an `Effect`. `Invalidation.CommandResponseWithMetaData` continues to apply only to commands.
1214
+ - New `RequestStreamHandler` / `RequestStreamHandlerWithInput` shapes in `clientFor.ts`; `RequestHandlers` dispatches on `type: "stream"`.
1215
+
1216
+ ### Patch Changes
1217
+
1218
+ - Updated dependencies [89d8b3a]
1219
+ - effect-app@4.0.0-beta.177
1220
+
1221
+ ## 4.0.0-beta.176
1222
+
1223
+ ### Patch Changes
1224
+
1225
+ - pass options
1226
+ - Updated dependencies
1227
+ - effect-app@4.0.0-beta.176
1228
+
1229
+ ## 4.0.0-beta.175
1230
+
1231
+ ### Patch Changes
1232
+
1233
+ - effect-app@4.0.0-beta.175
1234
+
1235
+ ## 4.0.0-beta.174
1236
+
1237
+ ### Minor Changes
1238
+
1239
+ - 821468d: Add server-driven cache invalidation via RPC response headers.
1240
+
1241
+ - `effect-app/rpc`: new `Invalidation` module with `InvalidationKey` / `InvalidationKeys` schemas, `Invalidates` annotation (for declaring static invalidation on Rpc definitions), `InvalidationSet` reference (request-scoped accumulator), and `makeInvalidationSet` helper.
1242
+ - `effect-app/middleware`: new `InvalidationMiddleware` RPC middleware tag; included in `DefaultGenericMiddlewares`.
1243
+ - `effect-app/client`: new `InvalidationKeys` module with `InvalidationKeysFromServer` reference and `makeInvalidationKeysService` helper; `apiClientFactory` now taps HTTP responses to read the `x-invalidate` header and forward keys to `InvalidationKeysFromServer`.
1244
+ - `@effect-app/infra`: new `InvalidationMiddlewareLive` RPC middleware implementation that owns the full lifecycle — creates a request-scoped `InvalidationSet` (backed by a `Ref`), pre-populates it from the `Invalidates` annotation, provides it to the handler, and after the handler completes registers an HTTP pre-response handler (via `appendPreResponseHandlerUnsafe`) to write the accumulated keys as an `x-invalidate` response header. No separate HTTP middleware is needed.
1245
+ - `@effect-app/vue`: `invalidateQueries` / `useMutation` now reads server-provided invalidation keys from `InvalidationKeysFromServer` after each mutation and applies them alongside the client-side invalidation.
1246
+
1247
+ ### Patch Changes
1248
+
1249
+ - Updated dependencies [821468d]
1250
+ - effect-app@4.0.0-beta.174
1251
+
1252
+ ## 4.0.0-beta.173
1253
+
1254
+ ### Patch Changes
1255
+
1256
+ - effect-app@4.0.0-beta.173
1257
+
1258
+ ## 4.0.0-beta.172
1259
+
1260
+ ### Patch Changes
1261
+
1262
+ - improve sentry
1263
+ - effect-app@4.0.0-beta.172
1264
+
1265
+ ## 4.0.0-beta.171
1266
+
1267
+ ### Patch Changes
1268
+
1269
+ - Updated dependencies [d71d976]
1270
+ - effect-app@4.0.0-beta.171
1271
+
1272
+ ## 4.0.0-beta.170
1273
+
1274
+ ### Patch Changes
1275
+
1276
+ - Updated dependencies [8f09f77]
1277
+ - effect-app@4.0.0-beta.170
1278
+
1279
+ ## 4.0.0-beta.169
1280
+
1281
+ ### Patch Changes
1282
+
1283
+ - Updated dependencies [8ae8b53]
1284
+ - effect-app@4.0.0-beta.169
1285
+
1286
+ ## 4.0.0-beta.168
1287
+
1288
+ ### Patch Changes
1289
+
1290
+ - Updated dependencies [178480a]
1291
+ - effect-app@4.0.0-beta.168
1292
+
1293
+ ## 4.0.0-beta.167
1294
+
1295
+ ### Patch Changes
1296
+
1297
+ - Updated dependencies [140e192]
1298
+ - effect-app@4.0.0-beta.167
1299
+
1300
+ ## 4.0.0-beta.166
1301
+
1302
+ ### Patch Changes
1303
+
1304
+ - Updated dependencies [dbcc53b]
1305
+ - effect-app@4.0.0-beta.166
1306
+
1307
+ ## 4.0.0-beta.165
1308
+
1309
+ ### Patch Changes
1310
+
1311
+ - Updated dependencies [f88ea34]
1312
+ - effect-app@4.0.0-beta.165
1313
+
1314
+ ## 4.0.0-beta.164
1315
+
1316
+ ### Patch Changes
1317
+
1318
+ - Updated dependencies [8cb3de4]
1319
+ - effect-app@4.0.0-beta.164
1320
+
1321
+ ## 4.0.0-beta.163
1322
+
1323
+ ### Patch Changes
1324
+
1325
+ - Updated dependencies [b952f19]
1326
+ - effect-app@4.0.0-beta.163
1327
+
1328
+ ## 4.0.0-beta.162
1329
+
1330
+ ### Patch Changes
1331
+
1332
+ - Updated dependencies [b52b424]
1333
+ - effect-app@4.0.0-beta.162
1334
+
1335
+ ## 4.0.0-beta.161
1336
+
1337
+ ### Patch Changes
1338
+
1339
+ - effect-app@4.0.0-beta.161
1340
+
1341
+ ## 4.0.0-beta.160
1342
+
1343
+ ### Patch Changes
1344
+
1345
+ - 505bfa9: Add concurrent decode helper APIs and migrate decode callsites to use them.
1346
+
1347
+ - Add `withDefaultParseOptions` and keep `DefaultParseOptions` centralized.
1348
+ - Export `decodeEffectConcurrently` and `decodeUnknownEffectConcurrently` from Schema and SchemaParser modules.
1349
+ - Update repository, queue, client, form, and CLI decode paths to use concurrent decode helpers.
1350
+ - Keep schema constructors free of hardcoded parse concurrency overrides.
1351
+
1352
+ - Updated dependencies [505bfa9]
1353
+ - effect-app@4.0.0-beta.160
1354
+
1355
+ ## 4.0.0-beta.159
1356
+
1357
+ ### Patch Changes
1358
+
1359
+ - c1e73de:
1360
+ - Updated dependencies [c1e73de]
1361
+ - effect-app@4.0.0-beta.159
1362
+
1363
+ ## 4.0.0-beta.158
1364
+
1365
+ ### Patch Changes
1366
+
1367
+ - Updated dependencies [3c1f52d]
1368
+ - Updated dependencies [6ae3050]
1369
+ - effect-app@4.0.0-beta.158
1370
+
1371
+ ## 4.0.0-beta.157
1372
+
1373
+ ### Patch Changes
1374
+
1375
+ - 6fff09c: unify encoded function for when you use encodedKeys
1376
+ - Updated dependencies [6fff09c]
1377
+ - effect-app@4.0.0-beta.157
1378
+
1379
+ ## 4.0.0-beta.156
1380
+
1381
+ ### Patch Changes
1382
+
1383
+ - effect-app@4.0.0-beta.156
1384
+
1385
+ ## 4.0.0-beta.155
1386
+
1387
+ ### Patch Changes
1388
+
1389
+ - Updated dependencies [c215db8]
1390
+ - effect-app@4.0.0-beta.155
1391
+
1392
+ ## 4.0.0-beta.154
1393
+
1394
+ ### Patch Changes
1395
+
1396
+ - effect-app@4.0.0-beta.154
1397
+
1398
+ ## 4.0.0-beta.153
1399
+
1400
+ ### Patch Changes
1401
+
1402
+ - effect-app@4.0.0-beta.153
1403
+
1404
+ ## 4.0.0-beta.152
1405
+
1406
+ ### Patch Changes
1407
+
1408
+ - effect-app@4.0.0-beta.152
1409
+
1410
+ ## 4.0.0-beta.151
1411
+
1412
+ ### Patch Changes
1413
+
1414
+ - 925214b: update packages
1415
+ - effect-app@4.0.0-beta.151
1416
+
1417
+ ## 4.0.0-beta.150
1418
+
1419
+ ### Patch Changes
1420
+
1421
+ - Updated dependencies [85a8275]
1422
+ - effect-app@4.0.0-beta.150
1423
+
1424
+ ## 4.0.0-beta.149
1425
+
1426
+ ### Patch Changes
1427
+
1428
+ - Updated dependencies [f317c5e]
1429
+ - effect-app@4.0.0-beta.149
1430
+
1431
+ ## 4.0.0-beta.148
1432
+
1433
+ ### Patch Changes
1434
+
1435
+ - Updated dependencies [199e9a5]
1436
+ - effect-app@4.0.0-beta.148
1437
+
1438
+ ## 4.0.0-beta.147
1439
+
1440
+ ### Patch Changes
1441
+
1442
+ - Updated dependencies [47e3742]
1443
+ - effect-app@4.0.0-beta.147
1444
+
1445
+ ## 4.0.0-beta.146
1446
+
1447
+ ### Patch Changes
1448
+
1449
+ - Updated dependencies [a4dff57]
1450
+ - effect-app@4.0.0-beta.146
1451
+
1452
+ ## 4.0.0-beta.145
1453
+
1454
+ ### Patch Changes
1455
+
1456
+ - Updated dependencies [12abb55]
1457
+ - effect-app@4.0.0-beta.145
1458
+
1459
+ ## 4.0.0-beta.144
1460
+
1461
+ ### Patch Changes
1462
+
1463
+ - d31253f: Refactor eligible schema classes and tagged classes to Opaque schemas, and migrate constructor call sites to use `.make` for those models.
1464
+ - Updated dependencies [11422f8]
1465
+ - Updated dependencies [d31253f]
1466
+ - effect-app@4.0.0-beta.144
1467
+
1468
+ ## 4.0.0-beta.143
1469
+
1470
+ ### Patch Changes
1471
+
1472
+ - Updated dependencies [79eb019]
1473
+ - effect-app@4.0.0-beta.143
1474
+
1475
+ ## 4.0.0-beta.142
1476
+
1477
+ ### Patch Changes
1478
+
1479
+ - Updated dependencies [3436d44]
1480
+ - Updated dependencies [025de47]
1481
+ - effect-app@4.0.0-beta.142
1482
+
1483
+ ## 4.0.0-beta.141
1484
+
1485
+ ### Patch Changes
1486
+
1487
+ - Updated dependencies [7c25dbb]
1488
+ - effect-app@4.0.0-beta.141
1489
+
1490
+ ## 4.0.0-beta.140
1491
+
1492
+ ### Patch Changes
1493
+
1494
+ - 1576688: Add configurable `fakeMailAddress` to `SendgridConfig`. Supports `{i}` placeholder for unique addresses, e.g. `"test+{i}@example.com"`.
1495
+ - effect-app@4.0.0-beta.140
1496
+
1497
+ ## 4.0.0-beta.139
1498
+
1499
+ ### Patch Changes
1500
+
1501
+ - effect-app@4.0.0-beta.139
1502
+
1503
+ ## 4.0.0-beta.138
1504
+
1505
+ ### Patch Changes
1506
+
1507
+ - effect-app@4.0.0-beta.138
1508
+
1509
+ ## 4.0.0-beta.137
1510
+
1511
+ ### Patch Changes
1512
+
1513
+ - effect-app@4.0.0-beta.137
1514
+
1515
+ ## 4.0.0-beta.136
1516
+
1517
+ ### Patch Changes
1518
+
1519
+ - effect-app@4.0.0-beta.136
1520
+
1521
+ ## 4.0.0-beta.135
1522
+
1523
+ ### Patch Changes
1524
+
1525
+ - Updated dependencies [c7bbc41]
1526
+ - effect-app@4.0.0-beta.135
1527
+
1528
+ ## 4.0.0-beta.134
1529
+
1530
+ ### Patch Changes
1531
+
1532
+ - eed57c6: Fix `R` inference in `OneDSL`, `OneDSLExt.modify` and `OneDSLExt.update`. The callback's effect type was annotated as `Effect<…, E, FixEnv<R, Evt, S1, S2>>`, which deadlocked inference of `R` (TS6 fell back to `never`, tsgo to `unknown`, leaking `unknown` into yielded effects in generator handlers). Now matches the existing `AllDSLExt` pattern: bare `R` in the callback, `FixEnv<R, …>` only in the return type.
1533
+ - Updated dependencies [9d3495e]
1534
+ - Updated dependencies [f353d48]
1535
+ - effect-app@4.0.0-beta.134
1536
+
1537
+ ## 4.0.0-beta.133
1538
+
1539
+ ### Patch Changes
1540
+
1541
+ - 2f862a4: Apply `toCodecJson` in `SQLModel.JsonFromString` so SQL JSON string fields use the proper JSON-safe codec at the encode/decode boundary (aligns with queue, event, and gist call sites).
1542
+ - c3299f7: update packages
1543
+ - Updated dependencies [c3299f7]
1544
+ - effect-app@4.0.0-beta.133
1545
+
1546
+ ## 4.0.0-beta.132
1547
+
1548
+ ### Patch Changes
1549
+
1550
+ - effect-app@4.0.0-beta.132
1551
+
1552
+ ## 4.0.0-beta.131
1553
+
1554
+ ### Patch Changes
1555
+
1556
+ - 4a7d95a: Use request-type RPC annotations to drive interruptibility and retry behavior, apply command uninterruptibility through the router wrapper path, and add an in-memory E2E test covering command vs query interruption behavior.
1557
+ - effect-app@4.0.0-beta.131
1558
+
1559
+ ## 4.0.0-beta.130
1560
+
1561
+ ### Patch Changes
1562
+
1563
+ - Updated dependencies [ea1bd46]
1564
+ - effect-app@4.0.0-beta.130
1565
+
1566
+ ## 4.0.0-beta.129
1567
+
1568
+ ### Patch Changes
1569
+
1570
+ - effect-app@4.0.0-beta.129
1571
+
1572
+ ## 4.0.0-beta.128
1573
+
1574
+ ### Patch Changes
1575
+
1576
+ - Updated dependencies [57db551]
1577
+ - effect-app@4.0.0-beta.128
1578
+
1579
+ ## 4.0.0-beta.127
1580
+
1581
+ ### Patch Changes
1582
+
1583
+ - 71a0719: Merge `batchPar` into `batch`, expose `concurrency` via an optional `BatchOptions` argument, and make `batch` dual (data-first + data-last).
1584
+ - 4bc3d05: Repository `save`, `remove`, and `removeById` now accept plain `ReadonlyArray` instead of `NonEmptyReadonlyArray`. Callers no longer need to narrow or guard for non-emptiness before invoking — empty inputs short-circuit to a no-op, making it ergonomic to pass through query results directly.
1585
+ - effect-app@4.0.0-beta.127
1586
+
1587
+ ## 4.0.0-beta.126
1588
+
1589
+ ### Patch Changes
1590
+
1591
+ - Updated dependencies [458bb1b]
1592
+ - effect-app@4.0.0-beta.126
1593
+
1594
+ ## 4.0.0-beta.125
1595
+
1596
+ ### Patch Changes
1597
+
1598
+ - 7191fc1: `removeById` now takes `id | NonEmptyReadonlyArray<id>` instead of a variadic rest, and the extended repo's `removeById` accepts a `batch` option to chunk large deletes — consistent with `save` and `remove`.
1599
+ - effect-app@4.0.0-beta.125
1600
+
1601
+ ## 4.0.0-beta.124
1602
+
1603
+ ### Patch Changes
1604
+
1605
+ - c9e0c44: cleanup auth
1606
+ - 256ae85: cleanup
1607
+ - Updated dependencies [256ae85]
1608
+ - effect-app@4.0.0-beta.124
1609
+
1610
+ ## 4.0.0-beta.123
1611
+
1612
+ ### Patch Changes
1613
+
1614
+ - Updated dependencies [14aba14]
1615
+ - effect-app@4.0.0-beta.123
1616
+
1617
+ ## 4.0.0-beta.122
1618
+
1619
+ ### Patch Changes
1620
+
1621
+ - 27bf9b6: Fix `Repository.query` environment typing to exclude schema context provided through `makeRepo` options.
1622
+ - e02a258: Add optional batching overloads for repository `save` and `remove` helpers.
1623
+ - f052d38: Replace `(...) => Effect.gen` with `Effect.fnUntraced` and convert select multi-step `pipe` chains to `Effect.gen` across infra.
1624
+ - Updated dependencies [f052d38]
1625
+ - effect-app@4.0.0-beta.122
1626
+
1627
+ ## 4.0.0-beta.121
1628
+
1629
+ ### Patch Changes
1630
+
1631
+ - 1015582: Fix `Q.project` field selection with `Schema.encodeKeys` by deriving selected fields from the encoded schema shape.
1632
+ - Updated dependencies [5ac46cb]
1633
+ - effect-app@4.0.0-beta.121
1634
+
1635
+ ## 4.0.0-beta.120
1636
+
1637
+ ### Patch Changes
1638
+
1639
+ - Updated dependencies [f21190c]
1640
+ - effect-app@4.0.0-beta.120
1641
+
1642
+ ## 4.0.0-beta.119
1643
+
1644
+ ### Patch Changes
1645
+
1646
+ - db7ba34: Filter SSE events stream by storeId namespace
1647
+ - effect-app@4.0.0-beta.119
1648
+
1649
+ ## 4.0.0-beta.118
1650
+
1651
+ ### Patch Changes
1652
+
1653
+ - Update effect packages to 4.0.0-beta.52
1654
+ - Updated dependencies [bd26832]
1655
+ - Updated dependencies [08d2e70]
1656
+ - Updated dependencies
1657
+ - effect-app@4.0.0-beta.118
1658
+
1659
+ ## 4.0.0-beta.117
1660
+
1661
+ ### Patch Changes
1662
+
1663
+ - 1d85785: Wrap store seed effects with `Effect.uninterruptible` to prevent interruption during seeding
1664
+ - effect-app@4.0.0-beta.117
1665
+
1666
+ ## 4.0.0-beta.116
1667
+
1668
+ ### Patch Changes
1669
+
1670
+ - 7d5cefc: SQL and Pg stores now scope seed migration records by namespace and table name in shared databases to avoid cross-namespace seed collisions.
1671
+ - effect-app@4.0.0-beta.116
1672
+
1673
+ ## 4.0.0-beta.115
1674
+
1675
+ ### Patch Changes
1676
+
1677
+ - fe2caba: SQL and Pg stores: use separate `_migrations` table for seed tracking instead of inserting a marker row into the data table, preventing it from appearing in `all`/`filter` queries.
1678
+ - effect-app@4.0.0-beta.115
1679
+
1680
+ ## 4.0.0-beta.114
1681
+
1682
+ ### Patch Changes
1683
+
1684
+ - 1ab3cf7: SQLite per-namespace adapter: use separate `_migrations` table for seed tracking instead of inserting a marker row into the data table, preventing it from appearing in `all`/`filter` queries.
1685
+ - effect-app@4.0.0-beta.114
1686
+
1687
+ ## 4.0.0-beta.113
1688
+
1689
+ ### Minor Changes
1690
+
1691
+ - ddc5492: Add RepositoryRegistry service that tracks all repositories by modelName, with `seedNamespace` to seed all registered repos in parallel and `entries` to inspect the registry.
1692
+
1693
+ Make non-primary namespace seeding explicit: Store and Repository now expose `seedNamespace` instead of auto-seeding on access. Primary namespace is still seeded eagerly on initialization.
1694
+
1695
+ SQL stores: table creation (`CREATE TABLE IF NOT EXISTS`) is now part of `seedNamespace` instead of running eagerly at store construction, ensuring tables for non-primary namespaces are only created when explicitly seeded.
1696
+
1697
+ ### Patch Changes
1698
+
1699
+ - effect-app@4.0.0-beta.113
1700
+
1701
+ ## 4.0.0-beta.112
1702
+
1703
+ ### Patch Changes
1704
+
1705
+ - 8a4a6d2: fup
1706
+ - effect-app@4.0.0-beta.112
1707
+
1708
+ ## 4.0.0-beta.111
1709
+
1710
+ ### Patch Changes
1711
+
1712
+ - ca94edf: fix typo
1713
+ - Updated dependencies [ca94edf]
1714
+ - effect-app@4.0.0-beta.111
1715
+
1716
+ ## 4.0.0-beta.110
1717
+
1718
+ ### Minor Changes
1719
+
1720
+ - c313c07: Add per-namespace in-memory SQLite adapter via LayerMap. When `makeSqlClientLayer` option is provided to `SQLiteStoreLayer`, each namespace gets its own SQLite database instance managed by a `LayerMap`. Introduces `WithNsTransaction` service for namespace-aware SQL transactions, used by `makeSqlTransactionMiddleware`.
1721
+
1722
+ ### Patch Changes
1723
+
1724
+ - effect-app@4.0.0-beta.110
1725
+
1726
+ ## 4.0.0-beta.109
1727
+
1728
+ ### Patch Changes
1729
+
1730
+ - 82f66f1: use uninterruptiple
1731
+ - effect-app@4.0.0-beta.109
1732
+
1733
+ ## 4.0.0-beta.108
1734
+
1735
+ ### Patch Changes
1736
+
1737
+ - Updated dependencies [3e46e7b]
1738
+ - effect-app@4.0.0-beta.108
1739
+
1740
+ ## 4.0.0-beta.107
1741
+
1742
+ ### Patch Changes
1743
+
1744
+ - 902ca1b: fix
1745
+ - effect-app@4.0.0-beta.107
1746
+
1747
+ ## 4.0.0-beta.106
1748
+
1749
+ ### Patch Changes
1750
+
1751
+ - f22a026: Use `Effect.cached` in `getOrCreateStoreEffect` for proper memoization of the resolver effect.
1752
+ - effect-app@4.0.0-beta.106
1753
+
1754
+ ## 4.0.0-beta.105
1755
+
1756
+ ### Minor Changes
1757
+
1758
+ - 3d732b1: Rewrite `withRequestResolverCache` to use official `RequestResolver.withCache`, creating a cached resolver per ContextMap via `getOrCreateStoreEffect` with semaphore-guarded initialization.
1759
+
1760
+ ### Patch Changes
1761
+
1762
+ - 47e53f5: Fix `withRequestResolverCache` causing "RequestResolver did not complete request" errors by using the `preCheck` hook instead of handling cache in `runAll`. Cache hits for in-flight or completed requests are now handled before entries enter the batch, preventing uncompleted entries.
1763
+ - 5773159: Add `itemType` annotation to all repository spans
1764
+ - effect-app@4.0.0-beta.105
1765
+
1766
+ ## 4.0.0-beta.104
1767
+
1768
+ ### Patch Changes
1769
+
1770
+ - Updated dependencies [e944bca]
1771
+ - effect-app@4.0.0-beta.104
1772
+
1773
+ ## 4.0.0-beta.103
1774
+
1775
+ ### Patch Changes
1776
+
1777
+ - Updated dependencies [7119320]
1778
+ - effect-app@4.0.0-beta.103
1779
+
1780
+ ## 4.0.0-beta.102
1781
+
1782
+ ### Patch Changes
1783
+
1784
+ - 62627e9: Fix boolean handling in SQL SELECT and WHERE
1785
+ - effect-app@4.0.0-beta.102
1786
+
1787
+ ## 4.0.0-beta.101
1788
+
1789
+ ### Patch Changes
1790
+
1791
+ - effect-app@4.0.0-beta.101
1792
+
1793
+ ## 4.0.0-beta.100
1794
+
1795
+ ### Patch Changes
1796
+
1797
+ - 43611c7: enable cosmosdb large partition key hashes
1798
+ - effect-app@4.0.0-beta.100
1799
+
1800
+ ## 4.0.0-beta.99
1801
+
1802
+ ### Patch Changes
1803
+
1804
+ - 6a0e008: remove artificial Cosmos bulkSet delays
1805
+ - effect-app@4.0.0-beta.99
1806
+
1807
+ ## 4.0.0-beta.98
1808
+
1809
+ ### Patch Changes
1810
+
1811
+ - 5aed2e3: Add span to Cosmos `batchRemove` and include `namespace` attribute on all Cosmos store spans.
1812
+ - effect-app@4.0.0-beta.98
1813
+
1814
+ ## 4.0.0-beta.97
1815
+
1816
+ ### Patch Changes
1817
+
1818
+ - 3eb66e9: Fix CosmosDB store `filter` to trigger namespace seeding on first access. Previously, if `filter` was the first operation called on a namespace, seed data was never created.
1819
+ - effect-app@4.0.0-beta.97
1820
+
1821
+ ## 4.0.0-beta.96
1822
+
1823
+ ### Patch Changes
1824
+
1825
+ - Updated dependencies [5615e47]
1826
+ - effect-app@4.0.0-beta.96
1827
+
1828
+ ## 4.0.0-beta.95
1829
+
1830
+ ### Patch Changes
1831
+
1832
+ - 88838fb: Remove pick/omit customizations from Class/TaggedClass/Struct/TaggedStruct. Use `Struct.pick(X.fields, [...])` from `effect-app` instead.
1833
+ - Updated dependencies [88838fb]
1834
+ - effect-app@4.0.0-beta.95
1835
+
1836
+ ## 4.0.0-beta.94
1837
+
1838
+ ### Patch Changes
1839
+
1840
+ - effect-app@4.0.0-beta.94
1841
+
1842
+ ## 4.0.0-beta.93
1843
+
1844
+ ### Patch Changes
1845
+
1846
+ - 2d85646: fix SQL includes-any/all double-quoting values for SQLite (JSON.stringify only needed for Postgres jsonb)
1847
+ - effect-app@4.0.0-beta.93
1848
+
1849
+ ## 4.0.0-beta.92
1850
+
1851
+ ### Patch Changes
1852
+
1853
+ - b4ffee0: fix SQL whereEvery double-negation bug causing wrong query when operators like notIn are used (especially with empty arrays)
1854
+ - effect-app@4.0.0-beta.92
1855
+
1856
+ ## 4.0.0-beta.91
1857
+
1858
+ ### Patch Changes
1859
+
1860
+ - Updated dependencies [738b482]
1861
+ - effect-app@4.0.0-beta.91
1862
+
1863
+ ## 4.0.0-beta.90
1864
+
1865
+ ### Patch Changes
1866
+
1867
+ - d786b91: Fix SQL `whereSome`/`whereEvery` array relation queries using `EXISTS` with `json_each` (SQLite) / `jsonb_array_elements` (Pg).
1868
+ - effect-app@4.0.0-beta.90
1869
+
1870
+ ## 4.0.0-beta.89
1871
+
1872
+ ### Patch Changes
1873
+
1874
+ - 9a9e46c: Fix SQL select queries to read `_etag` from column instead of JSON data, preventing INSERT on update.
1875
+ - effect-app@4.0.0-beta.89
1876
+
1877
+ ## 4.0.0-beta.88
1878
+
1879
+ ### Patch Changes
1880
+
1881
+ - dfd5562: Fix SQL `IN`/`NOT IN` with null values to use `IS NULL`/`IS NOT NULL` instead of `IN (NULL, ...)`.
1882
+ - effect-app@4.0.0-beta.88
1883
+
1884
+ ## 4.0.0-beta.87
1885
+
1886
+ ### Patch Changes
1887
+
1888
+ - 5a709d1: Fix SQLite select query type coercion using `json_quote` and apply defaultValues in SQL WHERE clauses via `COALESCE`.
1889
+ - effect-app@4.0.0-beta.87
1890
+
1891
+ ## 4.0.0-beta.86
1892
+
1893
+ ### Patch Changes
1894
+
1895
+ - 70f1f27: Fix store seeding: break circular dependency where bulkSet re-entered seedNamespace, and add explicit seed markers to SQL/Pg stores using a dedicated `__seed__` namespace.
1896
+ - effect-app@4.0.0-beta.86
1897
+
1898
+ ## 4.0.0-beta.85
1899
+
1900
+ ### Patch Changes
1901
+
1902
+ - db285e9: Add per-namespace seeding to SQL (SQLite/PostgreSQL) and CosmosDB store adapters. Previously only the `primary` namespace was seeded at initialization; now each namespace is lazily seeded on first access using `Effect.cached` to guarantee at-most-once execution. Primary namespace continues to seed eagerly on initialization. CosmosDB uses namespace-specific marker documents for backward compatibility.
1903
+ - effect-app@4.0.0-beta.85
1904
+
1905
+ ## 4.0.0-beta.84
1906
+
1907
+ ### Patch Changes
1908
+
1909
+ - c80e781: Fix SQLite store namespace parameter ordering in filter queries. The `_namespace` placeholder was prepended to the WHERE clause but its value was appended to the end of the positional params array, causing it to bind to the wrong placeholder. PostgreSQL was unaffected (uses indexed `$N` placeholders).
1910
+ - effect-app@4.0.0-beta.84
1911
+
1912
+ ## 4.0.0-beta.83
1913
+
1914
+ ### Patch Changes
1915
+
1916
+ - d1fc90a: Strip `_etag` and `id` from the `data` JSON column in SQL store adapters (SQLite + PostgreSQL). These fields are already stored as dedicated columns and were redundantly duplicated inside the JSON blob. On read, `parseRow` now re-injects `id` from the row column. Backward compatible: existing rows with `_etag`/`id` in `data` continue to work as the column values take precedence.
1917
+ - effect-app@4.0.0-beta.83
1918
+
1919
+ ## 4.0.0-beta.82
1920
+
1921
+ ### Minor Changes
1922
+
1923
+ - 48f1457: Add storage namespace support to CosmosDB adapter via partition key prefixing. When `allowNamespace` is configured, the namespace from `storeId` is prepended to partition key values (e.g., `test-ns::primary`), isolating data per namespace within the same container.
1924
+ - 48f1457: Add storage namespace support to SQL adapters (SQLite and Postgres) via a `_namespace` column. When `allowNamespace` is configured, a `_namespace` column with composite primary key `(id, _namespace)` isolates data per namespace within the same table. New tables get the schema automatically; existing tables require manual migration.
1925
+ - 48f1457: Add SQL Store adapter for Effect SQL (SQLite + PostgreSQL). Table-per-repo with id/etag/data JSON columns, query DSL translation to SQL WHERE clauses, optimistic concurrency via etag.
1926
+ - 48f1457: Make `withSqlTransaction` in `setupRequest` configurable via `withTransaction` option (defaults to `false`). Add `requiresTransactionConfig` and `makeSqlTransactionMiddleware` for per-RPC transaction control as a dynamic middleware that requires `SqlClient` directly. Transactions are disabled by default; opt in with `withTransaction: true` or `requiresTransaction: true`.
1927
+
1928
+ ### Patch Changes
1929
+
1930
+ - effect-app@4.0.0-beta.82
1931
+
1932
+ ## 4.0.0-beta.81
1933
+
1934
+ ### Minor Changes
1935
+
1936
+ - fd67f0b: Add `withRequestResolverCache` to scope RequestResolver cache to the ContextMap (request-scoped). Add `getOrCreateStore` to ContextMap for generic scoped storage.
1937
+
1938
+ ### Patch Changes
1939
+
1940
+ - effect-app@4.0.0-beta.81
1941
+
1942
+ ## 4.0.0-beta.80
1943
+
1944
+ ### Patch Changes
1945
+
1946
+ - eaf0115: enforce local
1947
+ - effect-app@4.0.0-beta.80
1948
+
1949
+ ## 4.0.0-beta.79
1950
+
1951
+ ### Patch Changes
1952
+
1953
+ - d16845e: Remove `TaggedRequest` from `makeRpcClient`, now only `TaggedRequestFor` is returned. Remove all legacy `meta.moduleName` support — `id` and `moduleName` are now required on `Req` type. Remove `makeRpcGroup` (use `makeRpcGroupFromRequestsAndModuleName` instead).
1954
+ - Updated dependencies [d16845e]
1955
+ - effect-app@4.0.0-beta.79
1956
+
1957
+ ## 4.0.0-beta.78
1958
+
1959
+ ### Minor Changes
1960
+
1961
+ - 818e047: Router `matchFor` no longer requires `meta` property on resource when requests carry `moduleName` from `TaggedRequestFor`
1962
+
1963
+ ### Patch Changes
1964
+
1965
+ - effect-app@4.0.0-beta.78
1966
+
1967
+ ## 4.0.0-beta.77
1968
+
1969
+ ### Patch Changes
1970
+
1971
+ - Updated dependencies [3613e87]
1972
+ - effect-app@4.0.0-beta.77
1973
+
1974
+ ## 4.0.0-beta.76
1975
+
1976
+ ### Patch Changes
1977
+
1978
+ - fac725d: update effect to latest beta
1979
+ - Updated dependencies [a5248a9]
1980
+ - Updated dependencies [fac725d]
1981
+ - effect-app@4.0.0-beta.76
1982
+
1983
+ ## 4.0.0-beta.75
1984
+
1985
+ ### Patch Changes
1986
+
1987
+ - Updated dependencies [24f0a5a]
1988
+ - effect-app@4.0.0-beta.75
1989
+
1990
+ ## 4.0.0-beta.74
1991
+
1992
+ ### Patch Changes
1993
+
1994
+ - Updated dependencies [54ec1ef]
1995
+ - effect-app@4.0.0-beta.74
1996
+
1997
+ ## 4.0.0-beta.73
1998
+
1999
+ ### Patch Changes
2000
+
2001
+ - b53c59e: fix signature
2002
+ - effect-app@4.0.0-beta.73
2003
+
2004
+ ## 4.0.0-beta.72
2005
+
2006
+ ### Patch Changes
2007
+
2008
+ - Updated dependencies [0541f0d]
2009
+ - effect-app@4.0.0-beta.72
2010
+
2011
+ ## 4.0.0-beta.71
2012
+
2013
+ ### Patch Changes
2014
+
2015
+ - beae3a0: Remove `withDefaultConstructor` wrapper, use `S.withConstructorDefault` directly with `Effect.succeed`/`Effect.sync`.
2016
+ - Updated dependencies [beae3a0]
2017
+ - effect-app@4.0.0-beta.71
2018
+
2019
+ ## 4.0.0-beta.70
2020
+
2021
+ ### Patch Changes
2022
+
2023
+ - fdb9cb3: cleanup
2024
+ - effect-app@4.0.0-beta.70
2025
+
2026
+ ## 4.0.0-beta.69
2027
+
2028
+ ### Patch Changes
2029
+
2030
+ - dc465e3: update to latest effect beta
2031
+ - Updated dependencies [dc465e3]
2032
+ - effect-app@4.0.0-beta.69
2033
+
2034
+ ## 4.0.0-beta.68
2035
+
2036
+ ### Patch Changes
2037
+
2038
+ - Updated dependencies [e6f2341]
2039
+ - effect-app@4.0.0-beta.68
2040
+
2041
+ ## 4.0.0-beta.67
2042
+
2043
+ ### Patch Changes
2044
+
2045
+ - effect-app@4.0.0-beta.67
2046
+
2047
+ ## 4.0.0-beta.66
2048
+
2049
+ ### Patch Changes
2050
+
2051
+ - Updated dependencies [edc52e4]
2052
+ - effect-app@4.0.0-beta.66
2053
+
2054
+ ## 4.0.0-beta.65
2055
+
2056
+ ### Patch Changes
2057
+
2058
+ - Updated dependencies [31739d7]
2059
+ - Updated dependencies [1f103b2]
2060
+ - effect-app@4.0.0-beta.65
2061
+
2062
+ ## 4.0.0-beta.64
2063
+
2064
+ ### Patch Changes
2065
+
2066
+ - Updated dependencies [c1a6fdc]
2067
+ - effect-app@4.0.0-beta.64
2068
+
2069
+ ## 4.0.0-beta.63
2070
+
2071
+ ### Patch Changes
2072
+
2073
+ - 1f9d7da: fix missing toCodecJson usages
2074
+ - effect-app@4.0.0-beta.63
2075
+
2076
+ ## 4.0.0-beta.62
2077
+
2078
+ ### Patch Changes
2079
+
2080
+ - Updated dependencies [0b21a02]
2081
+ - effect-app@4.0.0-beta.62
2082
+
2083
+ ## 4.0.0-beta.61
2084
+
2085
+ ### Patch Changes
2086
+
2087
+ - effect-app@4.0.0-beta.61
2088
+
2089
+ ## 4.0.0-beta.60
2090
+
2091
+ ### Patch Changes
2092
+
2093
+ - 29c39d2: Fix repository `find` with transformed id fields in tagged union schemas
2094
+ - effect-app@4.0.0-beta.60
2095
+
2096
+ ## 4.0.0-beta.59
2097
+
2098
+ ### Patch Changes
2099
+
2100
+ - cec026d: update packages
2101
+ - Updated dependencies [cec026d]
2102
+ - effect-app@4.0.0-beta.59
2103
+
2104
+ ## 4.0.0-beta.58
2105
+
2106
+ ### Patch Changes
2107
+
2108
+ - effect-app@4.0.0-beta.58
2109
+
2110
+ ## 4.0.0-beta.57
2111
+
2112
+ ### Patch Changes
2113
+
2114
+ - fbf47b8: Fix repository `find` with transformed id fields (e.g. composite ids using `decodeTo`)
2115
+ - effect-app@4.0.0-beta.57
2116
+
2117
+ ## 4.0.0-beta.56
2118
+
2119
+ ### Patch Changes
2120
+
2121
+ - effect-app@4.0.0-beta.56
2122
+
2123
+ ## 4.0.0-beta.55
2124
+
2125
+ ### Patch Changes
2126
+
2127
+ - effect-app@4.0.0-beta.55
2128
+
2129
+ ## 4.0.0-beta.54
2130
+
2131
+ ### Patch Changes
2132
+
2133
+ - d867272: the return of `Context`
2134
+ - Updated dependencies [d867272]
2135
+ - effect-app@4.0.0-beta.54
2136
+
2137
+ ## 4.0.0-beta.53
2138
+
2139
+ ### Patch Changes
2140
+
2141
+ - Updated dependencies [ee9694e]
2142
+ - effect-app@4.0.0-beta.53
2143
+
2144
+ ## 4.0.0-beta.52
2145
+
2146
+ ### Patch Changes
2147
+
2148
+ - Updated dependencies [6252808]
2149
+ - effect-app@4.0.0-beta.52
2150
+
2151
+ ## 4.0.0-beta.51
2152
+
2153
+ ### Patch Changes
2154
+
2155
+ - effect-app@4.0.0-beta.51
2156
+
2157
+ ## 4.0.0-beta.50
2158
+
2159
+ ### Patch Changes
2160
+
2161
+ - effect-app@4.0.0-beta.50
2162
+
2163
+ ## 4.0.0-beta.49
2164
+
2165
+ ### Patch Changes
2166
+
2167
+ - Updated dependencies [e585c9c]
2168
+ - effect-app@4.0.0-beta.49
2169
+
2170
+ ## 4.0.0-beta.48
2171
+
2172
+ ### Patch Changes
2173
+
2174
+ - Updated dependencies [0c88f78]
2175
+ - effect-app@4.0.0-beta.48
2176
+
2177
+ ## 4.0.0-beta.47
2178
+
2179
+ ### Patch Changes
2180
+
2181
+ - Updated dependencies [3365758]
2182
+ - effect-app@4.0.0-beta.47
2183
+
2184
+ ## 4.0.0-beta.46
2185
+
2186
+ ### Patch Changes
2187
+
2188
+ - effect-app@4.0.0-beta.46
2189
+
2190
+ ## 4.0.0-beta.45
2191
+
2192
+ ### Patch Changes
2193
+
2194
+ - 10b55ff: update packages
2195
+ - Updated dependencies [10b55ff]
2196
+ - effect-app@4.0.0-beta.45
2197
+
2198
+ ## 4.0.0-beta.44
2199
+
2200
+ ### Patch Changes
2201
+
2202
+ - a37aa38: Update to effect beta 43
2203
+ - Updated dependencies [a37aa38]
2204
+ - effect-app@4.0.0-beta.44
2205
+
2206
+ ## 4.0.0-beta.43
2207
+
2208
+ ### Patch Changes
2209
+
2210
+ - dab6992: no need for .lock.lock
2211
+ - effect-app@4.0.0-beta.43
2212
+
2213
+ ## 4.0.0-beta.42
2214
+
2215
+ ### Patch Changes
2216
+
2217
+ - effect-app@4.0.0-beta.42
2218
+
2219
+ ## 4.0.0-beta.41
2220
+
2221
+ ### Patch Changes
2222
+
2223
+ - effect-app@4.0.0-beta.41
2224
+
2225
+ ## 4.0.0-beta.40
2226
+
2227
+ ### Patch Changes
2228
+
2229
+ - effect-app@4.0.0-beta.40
2230
+
2231
+ ## 4.0.0-beta.39
2232
+
2233
+ ### Patch Changes
2234
+
2235
+ - Updated dependencies [10e90d5]
2236
+ - effect-app@4.0.0-beta.39
2237
+
2238
+ ## 4.0.0-beta.38
2239
+
2240
+ ### Patch Changes
2241
+
2242
+ - Updated dependencies [0b3e00e]
2243
+ - effect-app@4.0.0-beta.38
2244
+
2245
+ ## 4.0.0-beta.37
2246
+
2247
+ ### Patch Changes
2248
+
2249
+ - Updated dependencies [947fe20]
2250
+ - effect-app@4.0.0-beta.37
2251
+
2252
+ ## 4.0.0-beta.36
2253
+
2254
+ ### Patch Changes
2255
+
2256
+ - effect-app@4.0.0-beta.36
2257
+
2258
+ ## 4.0.0-beta.35
2259
+
2260
+ ### Patch Changes
2261
+
2262
+ - effect-app@4.0.0-beta.35
2263
+
2264
+ ## 4.0.0-beta.34
2265
+
2266
+ ### Patch Changes
2267
+
2268
+ - 8c645d5: update to latest effect
2269
+ - Updated dependencies [8c645d5]
2270
+ - effect-app@4.0.0-beta.34
2271
+
2272
+ ## 4.0.0-beta.33
2273
+
2274
+ ### Patch Changes
2275
+
2276
+ - 4b95009: use Finite instead of Number
2277
+ - Updated dependencies [4b95009]
2278
+ - effect-app@4.0.0-beta.33
2279
+
2280
+ ## 4.0.0-beta.32
2281
+
2282
+ ### Patch Changes
2283
+
2284
+ - Updated dependencies [01d862a]
2285
+ - effect-app@4.0.0-beta.32
2286
+
2287
+ ## 4.0.0-beta.31
2288
+
2289
+ ### Patch Changes
2290
+
2291
+ - Updated dependencies [6b6d601]
2292
+ - effect-app@4.0.0-beta.31
2293
+
3
2294
  ## 4.0.0-beta.30
4
2295
 
5
2296
  ### Patch Changes