@effect-app/infra 0.198.2 → 0.199.0

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 (360) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/_cjs/RequestContext.cjs +14 -9
  3. package/_cjs/RequestContext.cjs.map +1 -1
  4. package/_cjs/_ext/Array.cjs +3 -7
  5. package/_cjs/_ext/Array.cjs.map +1 -1
  6. package/_cjs/api/reportError.cjs +3 -6
  7. package/_cjs/api/reportError.cjs.map +1 -1
  8. package/_cjs/api/routing/base.cjs +27 -61
  9. package/_cjs/api/routing/base.cjs.map +1 -1
  10. package/_cjs/api/routing/defaultErrorHandler.cjs +14 -21
  11. package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -1
  12. package/_cjs/api/routing/makeRequestHandler.cjs +44 -51
  13. package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
  14. package/_cjs/api/routing/match.cjs +6 -13
  15. package/_cjs/api/routing/match.cjs.map +1 -1
  16. package/_cjs/api/{express → routing}/schema/jwt.cjs +3 -4
  17. package/_cjs/api/routing/schema/jwt.cjs.map +1 -0
  18. package/_cjs/api/routing/schema/routing.cjs +136 -0
  19. package/_cjs/api/routing/schema/routing.cjs.map +1 -0
  20. package/_cjs/api/setupRequest.cjs +16 -22
  21. package/_cjs/api/setupRequest.cjs.map +1 -1
  22. package/_cjs/errorReporter.cjs +16 -17
  23. package/_cjs/errorReporter.cjs.map +1 -1
  24. package/_cjs/errors.cjs +2 -4
  25. package/_cjs/errors.cjs.map +1 -1
  26. package/_cjs/filter/types/path/index.cjs +0 -2
  27. package/_cjs/filter/types/path/index.cjs.map +1 -1
  28. package/_cjs/filter.cjs +35 -0
  29. package/_cjs/filter.cjs.map +1 -1
  30. package/_cjs/logger/jsonLogger.cjs +9 -15
  31. package/_cjs/logger/jsonLogger.cjs.map +1 -1
  32. package/_cjs/logger/logFmtLogger.cjs +7 -11
  33. package/_cjs/logger/logFmtLogger.cjs.map +1 -1
  34. package/_cjs/logger/shared.cjs +6 -8
  35. package/_cjs/logger/shared.cjs.map +1 -1
  36. package/_cjs/rateLimit.cjs +9 -12
  37. package/_cjs/rateLimit.cjs.map +1 -1
  38. package/_cjs/services/Emailer/Sendgrid.cjs +9 -16
  39. package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
  40. package/_cjs/services/Emailer/fake.cjs +5 -8
  41. package/_cjs/services/Emailer/fake.cjs.map +1 -1
  42. package/_cjs/services/Emailer/service.cjs +2 -4
  43. package/_cjs/services/Emailer/service.cjs.map +1 -1
  44. package/_cjs/services/Operations/live.cjs +29 -42
  45. package/_cjs/services/Operations/live.cjs.map +1 -1
  46. package/_cjs/services/Operations/service.cjs +15 -15
  47. package/_cjs/services/Operations/service.cjs.map +1 -1
  48. package/_cjs/services/QueueMaker/errors.cjs +8 -12
  49. package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
  50. package/_cjs/services/QueueMaker/memQueue.cjs +27 -33
  51. package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
  52. package/_cjs/services/QueueMaker/sbqueue.cjs +31 -40
  53. package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
  54. package/_cjs/services/QueueMaker/service.cjs +7 -9
  55. package/_cjs/services/QueueMaker/service.cjs.map +1 -1
  56. package/_cjs/services/Repository/dsl.cjs +11 -14
  57. package/_cjs/services/Repository/dsl.cjs.map +1 -1
  58. package/_cjs/services/Repository/ext.cjs +62 -71
  59. package/_cjs/services/Repository/ext.cjs.map +1 -1
  60. package/_cjs/services/RepositoryBase.cjs +171 -169
  61. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  62. package/_cjs/services/RequestContextContainer.cjs +17 -23
  63. package/_cjs/services/RequestContextContainer.cjs.map +1 -1
  64. package/_cjs/services/Store/ContextMapContainer.cjs +10 -16
  65. package/_cjs/services/Store/ContextMapContainer.cjs.map +1 -1
  66. package/_cjs/services/Store/Cosmos/query.cjs +5 -9
  67. package/_cjs/services/Store/Cosmos/query.cjs.map +1 -1
  68. package/_cjs/services/Store/Cosmos.cjs +58 -68
  69. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  70. package/_cjs/services/Store/Disk.cjs +34 -36
  71. package/_cjs/services/Store/Disk.cjs.map +1 -1
  72. package/_cjs/services/Store/Memory.cjs +55 -65
  73. package/_cjs/services/Store/Memory.cjs.map +1 -1
  74. package/_cjs/services/Store/codeFilter.cjs +2 -4
  75. package/_cjs/services/Store/codeFilter.cjs.map +1 -1
  76. package/_cjs/services/Store/codeFilter.test.cjs +13 -12
  77. package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
  78. package/_cjs/services/Store/filterApi/query.cjs +2 -4
  79. package/_cjs/services/Store/filterApi/query.cjs.map +1 -1
  80. package/_cjs/services/Store/index.cjs +6 -9
  81. package/_cjs/services/Store/index.cjs.map +1 -1
  82. package/_cjs/services/Store/service.cjs +5 -7
  83. package/_cjs/services/Store/service.cjs.map +1 -1
  84. package/_cjs/services/Store/utils.cjs +16 -20
  85. package/_cjs/services/Store/utils.cjs.map +1 -1
  86. package/_cjs/services/query.cjs +4 -1
  87. package/_cjs/services/query.cjs.map +1 -1
  88. package/_cjs/test.arbs.cjs +3 -4
  89. package/_cjs/test.arbs.cjs.map +1 -1
  90. package/dist/RequestContext.d.ts +20 -20
  91. package/dist/RequestContext.d.ts.map +1 -1
  92. package/dist/RequestContext.js +15 -8
  93. package/dist/_ext/Array.d.ts +2 -3
  94. package/dist/_ext/Array.d.ts.map +1 -1
  95. package/dist/_ext/Array.js +5 -5
  96. package/dist/api/reportError.d.ts +5 -5
  97. package/dist/api/reportError.d.ts.map +1 -1
  98. package/dist/api/reportError.js +6 -6
  99. package/dist/api/routing/base.d.ts +11 -15
  100. package/dist/api/routing/base.d.ts.map +1 -1
  101. package/dist/api/routing/base.js +48 -67
  102. package/dist/api/routing/defaultErrorHandler.d.ts +4 -6
  103. package/dist/api/routing/defaultErrorHandler.d.ts.map +1 -1
  104. package/dist/api/routing/defaultErrorHandler.js +26 -28
  105. package/dist/api/routing/makeRequestHandler.d.ts +6 -7
  106. package/dist/api/routing/makeRequestHandler.d.ts.map +1 -1
  107. package/dist/api/routing/makeRequestHandler.js +69 -59
  108. package/dist/api/routing/match.d.ts +7 -8
  109. package/dist/api/routing/match.d.ts.map +1 -1
  110. package/dist/api/routing/match.js +7 -11
  111. package/dist/api/routing/schema/jwt.d.ts +4 -0
  112. package/dist/api/routing/schema/jwt.d.ts.map +1 -0
  113. package/dist/api/routing/schema/jwt.js +11 -0
  114. package/dist/api/{express → routing}/schema/routing.d.ts +2 -2
  115. package/dist/api/routing/schema/routing.d.ts.map +1 -0
  116. package/dist/api/routing/schema/routing.js +123 -0
  117. package/dist/api/routing.js +3 -1
  118. package/dist/api/setupRequest.d.ts +3 -5
  119. package/dist/api/setupRequest.d.ts.map +1 -1
  120. package/dist/api/setupRequest.js +20 -24
  121. package/dist/errorReporter.d.ts +4 -4
  122. package/dist/errorReporter.d.ts.map +1 -1
  123. package/dist/errorReporter.js +20 -17
  124. package/dist/errors.d.ts +1 -1
  125. package/dist/errors.d.ts.map +1 -1
  126. package/dist/errors.js +3 -3
  127. package/dist/filter/types/path/index.d.ts +2 -2
  128. package/dist/filter/types/path/index.d.ts.map +1 -1
  129. package/dist/filter/types/path/index.js +2 -3
  130. package/dist/filter/types.js +2 -1
  131. package/dist/filter.d.ts.map +1 -1
  132. package/dist/filter.js +36 -1
  133. package/dist/logger/jsonLogger.d.ts +2 -1
  134. package/dist/logger/jsonLogger.d.ts.map +1 -1
  135. package/dist/logger/jsonLogger.js +9 -13
  136. package/dist/logger/logFmtLogger.d.ts +2 -1
  137. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  138. package/dist/logger/logFmtLogger.js +9 -11
  139. package/dist/logger/shared.d.ts +2 -1
  140. package/dist/logger/shared.d.ts.map +1 -1
  141. package/dist/logger/shared.js +7 -9
  142. package/dist/rateLimit.d.ts +7 -10
  143. package/dist/rateLimit.d.ts.map +1 -1
  144. package/dist/rateLimit.js +17 -16
  145. package/dist/services/Emailer/Sendgrid.d.ts +1 -2
  146. package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
  147. package/dist/services/Emailer/Sendgrid.js +16 -20
  148. package/dist/services/Emailer/fake.d.ts +2 -2
  149. package/dist/services/Emailer/fake.d.ts.map +1 -1
  150. package/dist/services/Emailer/fake.js +10 -8
  151. package/dist/services/Emailer/service.d.ts +7 -10
  152. package/dist/services/Emailer/service.d.ts.map +1 -1
  153. package/dist/services/Emailer/service.js +3 -3
  154. package/dist/services/Operations/live.d.ts +2 -3
  155. package/dist/services/Operations/live.d.ts.map +1 -1
  156. package/dist/services/Operations/live.js +44 -51
  157. package/dist/services/Operations/service.d.ts +14 -19
  158. package/dist/services/Operations/service.d.ts.map +1 -1
  159. package/dist/services/Operations/service.js +23 -28
  160. package/dist/services/QueueMaker/errors.d.ts +5 -7
  161. package/dist/services/QueueMaker/errors.d.ts.map +1 -1
  162. package/dist/services/QueueMaker/errors.js +11 -11
  163. package/dist/services/QueueMaker/memQueue.d.ts +6 -9
  164. package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
  165. package/dist/services/QueueMaker/memQueue.js +37 -39
  166. package/dist/services/QueueMaker/sbqueue.d.ts +6 -9
  167. package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
  168. package/dist/services/QueueMaker/sbqueue.js +41 -39
  169. package/dist/services/QueueMaker/service.d.ts +2 -4
  170. package/dist/services/QueueMaker/service.d.ts.map +1 -1
  171. package/dist/services/QueueMaker/service.js +8 -8
  172. package/dist/services/Repository/dsl.d.ts +8 -10
  173. package/dist/services/Repository/dsl.d.ts.map +1 -1
  174. package/dist/services/Repository/dsl.js +12 -13
  175. package/dist/services/Repository/ext.d.ts +34 -62
  176. package/dist/services/Repository/ext.d.ts.map +1 -1
  177. package/dist/services/Repository/ext.js +59 -70
  178. package/dist/services/RepositoryBase.d.ts +41 -47
  179. package/dist/services/RepositoryBase.d.ts.map +1 -1
  180. package/dist/services/RepositoryBase.js +182 -194
  181. package/dist/services/RequestContextContainer.d.ts +13 -21
  182. package/dist/services/RequestContextContainer.d.ts.map +1 -1
  183. package/dist/services/RequestContextContainer.js +21 -25
  184. package/dist/services/Store/ContextMapContainer.d.ts +11 -18
  185. package/dist/services/Store/ContextMapContainer.d.ts.map +1 -1
  186. package/dist/services/Store/ContextMapContainer.js +17 -18
  187. package/dist/services/Store/Cosmos/query.d.ts +3 -2
  188. package/dist/services/Store/Cosmos/query.d.ts.map +1 -1
  189. package/dist/services/Store/Cosmos/query.js +10 -11
  190. package/dist/services/Store/Cosmos.d.ts +2 -3
  191. package/dist/services/Store/Cosmos.d.ts.map +1 -1
  192. package/dist/services/Store/Cosmos.js +107 -90
  193. package/dist/services/Store/Disk.d.ts +4 -4
  194. package/dist/services/Store/Disk.d.ts.map +1 -1
  195. package/dist/services/Store/Disk.js +54 -50
  196. package/dist/services/Store/Memory.d.ts +6 -8
  197. package/dist/services/Store/Memory.d.ts.map +1 -1
  198. package/dist/services/Store/Memory.js +93 -89
  199. package/dist/services/Store/codeFilter.d.ts.map +1 -1
  200. package/dist/services/Store/codeFilter.js +3 -3
  201. package/dist/services/Store/codeFilter.test.d.ts.map +1 -1
  202. package/dist/services/Store/filterApi/query.d.ts +1 -1
  203. package/dist/services/Store/filterApi/query.d.ts.map +1 -1
  204. package/dist/services/Store/filterApi/query.js +3 -3
  205. package/dist/services/Store/index.d.ts +1 -2
  206. package/dist/services/Store/index.d.ts.map +1 -1
  207. package/dist/services/Store/index.js +7 -8
  208. package/dist/services/Store/service.d.ts +20 -23
  209. package/dist/services/Store/service.d.ts.map +1 -1
  210. package/dist/services/Store/service.js +6 -6
  211. package/dist/services/Store/utils.d.ts +3 -3
  212. package/dist/services/Store/utils.d.ts.map +1 -1
  213. package/dist/services/Store/utils.js +26 -28
  214. package/dist/services/query.d.ts +6 -6
  215. package/dist/services/query.d.ts.map +1 -1
  216. package/dist/services/query.js +5 -3
  217. package/dist/test.arbs.d.ts +0 -2
  218. package/dist/test.arbs.d.ts.map +1 -1
  219. package/dist/test.arbs.js +3 -4
  220. package/package.json +28 -168
  221. package/src/RequestContext.ts +1 -0
  222. package/src/_ext/Array.ts +5 -2
  223. package/src/api/reportError.ts +14 -10
  224. package/src/api/routing/base.ts +77 -110
  225. package/src/api/routing/defaultErrorHandler.ts +64 -54
  226. package/src/api/routing/makeRequestHandler.ts +165 -135
  227. package/src/api/routing/match.ts +14 -8
  228. package/src/api/{express → routing}/schema/jwt.ts +6 -5
  229. package/src/api/{express → routing}/schema/routing.ts +2 -1
  230. package/src/api/setupRequest.ts +30 -24
  231. package/src/errorReporter.ts +12 -11
  232. package/src/errors.ts +1 -0
  233. package/src/filter/types/path/index.ts +2 -2
  234. package/src/logger/jsonLogger.ts +6 -5
  235. package/src/logger/logFmtLogger.ts +4 -5
  236. package/src/logger/shared.ts +4 -3
  237. package/src/rateLimit.ts +37 -34
  238. package/src/services/Emailer/Sendgrid.ts +12 -10
  239. package/src/services/Emailer/fake.ts +7 -4
  240. package/src/services/Emailer/service.ts +4 -1
  241. package/src/services/Operations/live.ts +66 -59
  242. package/src/services/Operations/service.ts +41 -34
  243. package/src/services/QueueMaker/errors.ts +15 -11
  244. package/src/services/QueueMaker/memQueue.ts +59 -40
  245. package/src/services/QueueMaker/sbqueue.ts +54 -33
  246. package/src/services/QueueMaker/service.ts +7 -6
  247. package/src/services/Repository/dsl.ts +12 -8
  248. package/src/services/Repository/ext.ts +52 -44
  249. package/src/services/RepositoryBase.ts +278 -240
  250. package/src/services/RequestContextContainer.ts +30 -18
  251. package/src/services/Store/ContextMapContainer.ts +26 -13
  252. package/src/services/Store/Cosmos/query.ts +17 -11
  253. package/src/services/Store/Cosmos.ts +209 -168
  254. package/src/services/Store/Disk.ts +69 -53
  255. package/src/services/Store/Memory.ts +138 -97
  256. package/src/services/Store/{Redis.ts → Redis.ts.bak} +7 -5
  257. package/src/services/Store/codeFilter.test.ts +61 -36
  258. package/src/services/Store/codeFilter.ts +1 -0
  259. package/src/services/Store/filterApi/query.ts +1 -0
  260. package/src/services/Store/index.ts +7 -6
  261. package/src/services/Store/service.ts +4 -1
  262. package/src/services/Store/utils.ts +25 -23
  263. package/src/services/query.ts +3 -2
  264. package/src/services/simpledb/{cosmosdb.ts → cosmosdb.ts.bak} +1 -0
  265. package/src/services/simpledb/{diskdb.ts → diskdb.ts.bak} +2 -1
  266. package/src/services/simpledb/{memdb.ts → memdb.ts.bak} +3 -2
  267. package/src/services/simpledb/{mongodb.ts → mongodb.ts.bak} +1 -0
  268. package/src/services/simpledb/{redisdb.ts → redisdb.ts.bak} +17 -14
  269. package/src/services/simpledb/{shared.ts → shared.ts.bak} +2 -1
  270. package/src/services/simpledb/{simpledb.ts → simpledb.ts.bak} +6 -2
  271. package/tsconfig.json +4 -21
  272. package/tsconfig.json.bak +0 -4
  273. package/_cjs/_global.cjs +0 -6
  274. package/_cjs/_global.cjs.map +0 -1
  275. package/_cjs/_global.ext.cjs +0 -5
  276. package/_cjs/_global.ext.cjs.map +0 -1
  277. package/_cjs/_global.schema.cjs +0 -5
  278. package/_cjs/_global.schema.cjs.map +0 -1
  279. package/_cjs/api/defaultErrorHandler.cjs +0 -37
  280. package/_cjs/api/defaultErrorHandler.cjs.map +0 -1
  281. package/_cjs/api/express/schema/jwt.cjs.map +0 -1
  282. package/_cjs/api/express/schema/routing.cjs +0 -23
  283. package/_cjs/api/express/schema/routing.cjs.map +0 -1
  284. package/_cjs/api/http.cjs +0 -42
  285. package/_cjs/api/http.cjs.map +0 -1
  286. package/_cjs/services/Store/Redis.cjs +0 -73
  287. package/_cjs/services/Store/Redis.cjs.map +0 -1
  288. package/_cjs/services/simpledb/cosmosdb.cjs +0 -109
  289. package/_cjs/services/simpledb/cosmosdb.cjs.map +0 -1
  290. package/_cjs/services/simpledb/diskdb.cjs +0 -125
  291. package/_cjs/services/simpledb/diskdb.cjs.map +0 -1
  292. package/_cjs/services/simpledb/index.cjs +0 -38
  293. package/_cjs/services/simpledb/index.cjs.map +0 -1
  294. package/_cjs/services/simpledb/memdb.cjs +0 -72
  295. package/_cjs/services/simpledb/memdb.cjs.map +0 -1
  296. package/_cjs/services/simpledb/mongodb.cjs +0 -99
  297. package/_cjs/services/simpledb/mongodb.cjs.map +0 -1
  298. package/_cjs/services/simpledb/redisdb.cjs +0 -135
  299. package/_cjs/services/simpledb/redisdb.cjs.map +0 -1
  300. package/_cjs/services/simpledb/shared.cjs +0 -79
  301. package/_cjs/services/simpledb/shared.cjs.map +0 -1
  302. package/_cjs/services/simpledb/simpledb.cjs +0 -85
  303. package/_cjs/services/simpledb/simpledb.cjs.map +0 -1
  304. package/dist/_global.d.ts +0 -10
  305. package/dist/_global.d.ts.map +0 -1
  306. package/dist/_global.ext.d.ts +0 -34
  307. package/dist/_global.ext.d.ts.map +0 -1
  308. package/dist/_global.ext.js +0 -6
  309. package/dist/_global.js +0 -12
  310. package/dist/_global.schema.d.ts +0 -6
  311. package/dist/_global.schema.d.ts.map +0 -1
  312. package/dist/_global.schema.js +0 -9
  313. package/dist/api/defaultErrorHandler.d.ts +0 -6
  314. package/dist/api/defaultErrorHandler.d.ts.map +0 -1
  315. package/dist/api/defaultErrorHandler.js +0 -34
  316. package/dist/api/express/schema/jwt.d.ts +0 -6
  317. package/dist/api/express/schema/jwt.d.ts.map +0 -1
  318. package/dist/api/express/schema/jwt.js +0 -11
  319. package/dist/api/express/schema/routing.d.ts.map +0 -1
  320. package/dist/api/express/schema/routing.js +0 -10
  321. package/dist/api/http.d.ts +0 -16
  322. package/dist/api/http.d.ts.map +0 -1
  323. package/dist/api/http.js +0 -12
  324. package/dist/services/Store/Redis.d.ts +0 -6
  325. package/dist/services/Store/Redis.d.ts.map +0 -1
  326. package/dist/services/Store/Redis.js +0 -76
  327. package/dist/services/simpledb/cosmosdb.d.ts +0 -14
  328. package/dist/services/simpledb/cosmosdb.d.ts.map +0 -1
  329. package/dist/services/simpledb/cosmosdb.js +0 -103
  330. package/dist/services/simpledb/diskdb.d.ts +0 -12
  331. package/dist/services/simpledb/diskdb.d.ts.map +0 -1
  332. package/dist/services/simpledb/diskdb.js +0 -109
  333. package/dist/services/simpledb/index.d.ts +0 -7
  334. package/dist/services/simpledb/index.d.ts.map +0 -1
  335. package/dist/services/simpledb/index.js +0 -7
  336. package/dist/services/simpledb/memdb.d.ts +0 -11
  337. package/dist/services/simpledb/memdb.d.ts.map +0 -1
  338. package/dist/services/simpledb/memdb.js +0 -58
  339. package/dist/services/simpledb/mongodb.d.ts +0 -13
  340. package/dist/services/simpledb/mongodb.d.ts.map +0 -1
  341. package/dist/services/simpledb/mongodb.js +0 -68
  342. package/dist/services/simpledb/redisdb.d.ts +0 -35
  343. package/dist/services/simpledb/redisdb.d.ts.map +0 -1
  344. package/dist/services/simpledb/redisdb.js +0 -126
  345. package/dist/services/simpledb/shared.d.ts +0 -87
  346. package/dist/services/simpledb/shared.d.ts.map +0 -1
  347. package/dist/services/simpledb/shared.js +0 -52
  348. package/dist/services/simpledb/simpledb.d.ts +0 -23
  349. package/dist/services/simpledb/simpledb.d.ts.map +0 -1
  350. package/dist/services/simpledb/simpledb.js +0 -69
  351. package/src/_global.ext.ts +0 -36
  352. package/src/_global.schema.ts +0 -10
  353. package/src/_global.ts +0 -14
  354. package/src/api/defaultErrorHandler.ts +0 -59
  355. package/src/api/express/makeJsonSchema.test.ts.bak +0 -76
  356. package/src/api/express/makeJsonSchema.ts.bak +0 -166
  357. package/src/api/express/makeOpenApiSpecs.ts.bak +0 -62
  358. package/src/api/http.ts +0 -26
  359. package/tsplus.config.json +0 -9
  360. /package/src/services/simpledb/{index.ts → index.ts.bak} +0 -0
@@ -1,4 +1,5 @@
1
1
  import type { StoreWhereFilter, Where } from "@effect-app/infra/services/Store"
2
+ import { ReadonlyArray } from "effect-app"
2
3
  import { Filters, makeFilters } from "../../filter.js"
3
4
  import { codeFilter } from "./utils.js"
4
5
 
@@ -44,98 +45,122 @@ type Something = {
44
45
 
45
46
  test("works", () => {
46
47
  expect(
47
- somethings
48
- .filterMap(codeFilter(
48
+ ReadonlyArray.filterMap(
49
+ somethings,
50
+ codeFilter(
49
51
  somethingsWhere((_) => _("b", (_) => "b2"))
50
- ))
52
+ )
53
+ )
51
54
  )
52
55
  .toEqual([somethings[1]])
53
56
 
54
57
  expect(
55
- somethings
56
- .filterMap(codeFilter(
58
+ ReadonlyArray.filterMap(
59
+ somethings,
60
+ codeFilter(
57
61
  somethingsWhere((_) => _("b", Filters.contains("b")))
58
- ))
62
+ )
63
+ )
59
64
  )
60
65
  .toEqual([somethings[0], somethings[1]])
61
66
 
62
67
  expect(
63
- somethings
64
- .filterMap(codeFilter(
68
+ ReadonlyArray.filterMap(
69
+ somethings,
70
+ codeFilter(
65
71
  somethingsWhere((_) => _("b", Filters.contains("2")))
66
- ))
72
+ )
73
+ )
67
74
  )
68
75
  .toEqual([somethings[1]])
69
76
 
70
77
  expect(
71
- somethings
72
- .filterMap(codeFilter(
78
+ ReadonlyArray.filterMap(
79
+ somethings,
80
+ codeFilter(
73
81
  somethingsWhere((_) => _("b", Filters.endsWith("b")))
74
- ))
82
+ )
83
+ )
75
84
  )
76
85
  .toEqual([somethings[0]])
77
86
 
78
87
  expect(
79
- somethings
80
- .filterMap(codeFilter(
88
+ ReadonlyArray.filterMap(
89
+ somethings,
90
+ codeFilter(
81
91
  somethingsWhere((_) => _("b", Filters.endsWith("2")))
82
- ))
92
+ )
93
+ )
83
94
  )
84
95
  .toEqual([somethings[1]])
85
96
 
86
97
  expect(
87
- somethings
88
- .filterMap(codeFilter(
98
+ ReadonlyArray.filterMap(
99
+ somethings,
100
+ codeFilter(
89
101
  somethingsWhere((_) => _("b", Filters.startsWith("b")))
90
- ))
102
+ )
103
+ )
91
104
  )
92
105
  .toEqual([somethings[0], somethings[1]])
93
106
 
94
107
  expect(
95
- somethings
96
- .filterMap(codeFilter(
108
+ ReadonlyArray.filterMap(
109
+ somethings,
110
+ codeFilter(
97
111
  somethingsWhere((_) => _("b", Filters.startsWith("2")))
98
- ))
112
+ )
113
+ )
99
114
  )
100
115
  .toEqual([])
101
116
 
102
117
  expect(
103
- somethings
104
- .filterMap(codeFilter(
118
+ ReadonlyArray.filterMap(
119
+ somethings,
120
+ codeFilter(
105
121
  somethingsWhere((_) => _("b", (_) => "b"))
106
- ))
122
+ )
123
+ )
107
124
  )
108
125
  .toEqual([somethings[0]])
109
126
 
110
127
  expect(
111
- somethings
112
- .filterMap(codeFilter(
128
+ ReadonlyArray.filterMap(
129
+ somethings,
130
+ codeFilter(
113
131
  somethingsWhere((_) => _("c", Filters.includes("c")))
114
- ))
132
+ )
133
+ )
115
134
  )
116
135
  .toEqual([somethings[0]])
117
136
 
118
137
  expect(
119
- somethings
120
- .filterMap(codeFilter(
138
+ ReadonlyArray.filterMap(
139
+ somethings,
140
+ codeFilter(
121
141
  somethingsWhere((_) => _("d.-1.a", (_) => "a5"))
122
- ))
142
+ )
143
+ )
123
144
  )
124
145
  .toEqual([somethings[1]])
125
146
 
126
147
  expect(
127
- somethings
128
- .filterMap(codeFilter(
148
+ ReadonlyArray.filterMap(
149
+ somethings,
150
+ codeFilter(
129
151
  somethingsWhere((_) => _("d.-1.a", (_) => "a"))
130
- ))
152
+ )
153
+ )
131
154
  )
132
155
  .toEqual([somethings[0]])
133
156
 
134
157
  expect(
135
- somethings
136
- .filterMap(codeFilter(
158
+ ReadonlyArray.filterMap(
159
+ somethings,
160
+ codeFilter(
137
161
  somethingsWhere((_) => _("d.-1.a", Filters.isnt("a")))
138
- ))
162
+ )
163
+ )
139
164
  )
140
165
  .toEqual([somethings[1]])
141
166
  })
@@ -1,3 +1,4 @@
1
+ import { ReadonlyArray } from "effect-app"
1
2
  import { assertUnreachable, get } from "effect-app/utils"
2
3
  import type { FilterR, FilterResult } from "./filterApi/query.js"
3
4
  import { compare, greaterThan, greaterThanExclusive, lowerThan, lowerThanExclusive } from "./utils.js"
@@ -1,3 +1,4 @@
1
+ import { ReadonlyArray } from "effect-app"
1
2
  import type { FieldValues } from "../../../filter/types.js"
2
3
  import type { FieldPath, FieldPathValue } from "../../../filter/types/path/eager.js"
3
4
  import type { Filter, Ops } from "./proxy.js"
@@ -1,15 +1,16 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Secret } from "effect-app"
2
3
  import { CosmosStoreLayer } from "./Cosmos.js"
3
4
  import { DiskStoreLayer } from "./Disk.js"
4
5
  import { MemoryStoreLive } from "./Memory.js"
5
- import { RedisStoreLayer } from "./Redis.js"
6
+ // import { RedisStoreLayer } from "./Redis.js"
6
7
  import type { StorageConfig } from "./service.js"
7
8
 
8
9
  /**
9
10
  * @tsplus static StoreMaker.Ops Layer
10
11
  */
11
12
  export function StoreMakerLayer(cfg: StorageConfig) {
12
- const storageUrl = cfg.url.value
13
+ const storageUrl = Secret.value(cfg.url)
13
14
  if (storageUrl.startsWith("mem://")) {
14
15
  console.log("Using in memory store")
15
16
  return MemoryStoreLive
@@ -19,10 +20,10 @@ export function StoreMakerLayer(cfg: StorageConfig) {
19
20
  console.log("Using disk store at " + dir)
20
21
  return DiskStoreLayer(cfg, dir)
21
22
  }
22
- if (storageUrl.startsWith("redis://")) {
23
- console.log("Using Redis store")
24
- return RedisStoreLayer(cfg)
25
- }
23
+ // if (storageUrl.startsWith("redis://")) {
24
+ // console.log("Using Redis store")
25
+ // return RedisStoreLayer(cfg)
26
+ // }
26
27
 
27
28
  console.log("Using Cosmos DB store")
28
29
  return CosmosStoreLayer(cfg)
@@ -1,5 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import type { UniqueKey } from "@azure/cosmos"
3
+ import { Effect } from "effect-app"
4
+ import type { NonEmptyReadonlyArray, Option, Secret } from "effect-app"
5
+ import { TagClassId, TagClassMakeId } from "effect-app/service"
3
6
  import type { OptimisticConcurrencyException } from "../../errors.js"
4
7
  import type { FieldValues } from "../../filter/types.js"
5
8
  import type { QueryBuilder } from "./filterApi/query.js"
@@ -194,7 +197,7 @@ export interface PersistenceModelType<Id> extends Record<string, any> {
194
197
  }
195
198
 
196
199
  export interface StorageConfig {
197
- url: Secret
200
+ url: Secret.Secret
198
201
  prefix: string
199
202
  dbName: string
200
203
  }
@@ -1,11 +1,9 @@
1
+ import { Effect, Option, ReadonlyArray } from "effect-app"
1
2
  import { get } from "effect-app/utils"
2
-
3
- import { OptimisticConcurrencyException } from "../../errors.js"
4
-
5
- import type { Filter, FilterJoinSelect, PersistenceModelType, SupportedValues2 } from "./service.js"
6
-
7
3
  import objectHash from "object-hash"
4
+ import { OptimisticConcurrencyException } from "../../errors.js"
8
5
  import { codeFilter3_ } from "./codeFilter.js"
6
+ import type { Filter, FilterJoinSelect, PersistenceModelType, SupportedValues2 } from "./service.js"
9
7
 
10
8
  export const makeETag = <E extends PersistenceModelType<Id>, Id extends string>(
11
9
  { _etag, ...e }: E
@@ -18,11 +16,13 @@ export const makeUpdateETag =
18
16
  Effect.gen(function*($) {
19
17
  if (e._etag) {
20
18
  yield* $(
21
- current
22
- .encaseInEffect(() => new OptimisticConcurrencyException({ type, id: e.id, current: "", found: e._etag }))
19
+ Effect.mapError(
20
+ current,
21
+ () => new OptimisticConcurrencyException({ type, id: e.id, current: "", found: e._etag })
22
+ )
23
23
  )
24
24
  }
25
- if (current.isSome() && current.value._etag !== e._etag) {
25
+ if (Option.isSome(current) && current.value._etag !== e._etag) {
26
26
  return yield* $(
27
27
  new OptimisticConcurrencyException({
28
28
  type,
@@ -167,22 +167,24 @@ export function codeFilterJoinSelect<E extends { id: string }, NE>(
167
167
  filter: FilterJoinSelect
168
168
  ) {
169
169
  return (x: E) =>
170
- filter
171
- .keys
172
- .filterMap((k) => {
173
- const value = get(x, k)
174
- // we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
175
- return value
176
- ? Option.some(
177
- (value as readonly NE[]).filterMap((v) =>
178
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
179
- compare((v as any)[filter.valueKey], filter.value)
180
- ? Option.some({ ...v, _rootId: x.id })
181
- : Option.none()
170
+ ReadonlyArray
171
+ .filterMap(
172
+ filter
173
+ .keys,
174
+ (k) => {
175
+ const value = get(x, k)
176
+ // we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
177
+ return value
178
+ ? Option.some(
179
+ ReadonlyArray.filterMap(value as readonly NE[], (v) =>
180
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
181
+ compare((v as any)[filter.valueKey], filter.value)
182
+ ? Option.some({ ...v, _rootId: x.id })
183
+ : Option.none())
182
184
  )
183
- )
184
- : Option.none()
185
- })
185
+ : Option.none()
186
+ }
187
+ )
186
188
  .flatMap((_) => _)
187
189
  }
188
190
 
@@ -1,11 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { toNonEmptyArray } from "@effect-app/core/Array"
2
3
  import type { FieldValues } from "@effect-app/infra/filter/types"
3
4
  import type { FieldPath, FieldPathValue } from "@effect-app/infra/filter/types/path/eager"
4
5
  import type { Repository } from "@effect-app/infra/services/Repository"
5
6
  import type { PersistenceModelType } from "@effect-app/infra/services/Store"
6
7
  import type { Ops } from "@effect-app/infra/services/Store/filterApi/proxy"
7
8
  import type { FilterResult, QueryBuilder } from "@effect-app/infra/services/Store/filterApi/query"
8
- import { Data, Effect, Match, pipe, S, Unify } from "effect-app"
9
+ import { Data, Effect, Match, Option, pipe, S, Unify } from "effect-app"
9
10
  import type { NoInfer } from "effect/Types"
10
11
 
11
12
  export type QAll<TFieldValues extends FieldValues, A = TFieldValues, R = never> =
@@ -441,7 +442,7 @@ export const query: {
441
442
  : repo.utils.filter({
442
443
  limit: a.limit,
443
444
  skip: a.skip,
444
- select: select.toNonEmpty.value ?? undefined,
445
+ select: Option.getOrUndefined(toNonEmptyArray(select)),
445
446
  filter: a.filter.length
446
447
  ? {
447
448
  type: "new-kid" as const,
@@ -2,6 +2,7 @@ import type { IndexingPolicy } from "@azure/cosmos"
2
2
  import { typedKeysOf } from "@effect-app/core/utils"
3
3
 
4
4
  import * as Cosmos from "@effect-app/infra-adapters/cosmos-client"
5
+ import { Data, Effect, Option } from "effect-app"
5
6
  import type { CachedRecord, DBRecord } from "./shared.js"
6
7
  import { OptimisticLockException } from "./shared.js"
7
8
  import * as simpledb from "./simpledb.js"
@@ -4,6 +4,7 @@ import * as PLF from "proper-lockfile"
4
4
 
5
5
  import { pretty } from "@effect-app/core/utils"
6
6
  import * as fu from "@effect-app/infra-adapters/fileUtil"
7
+ import { Effect, Option } from "effect-app"
7
8
  import type { CachedRecord, DBRecord, Index } from "./shared.js"
8
9
  import { ConnectionException, CouldNotAquireDbLockException, getIndexName, getRecordName } from "./shared.js"
9
10
  import * as simpledb from "./simpledb.js"
@@ -147,7 +148,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
147
148
  }
148
149
 
149
150
  function lockFile(fileName: string) {
150
- return Effect.tryPromise(() => PLF.lock(fileName).then(flow(Effect.tryPromise, (_) => _.orDie)))
151
+ return Effect.tryPromise(() => PLF.lock(fileName).then(flow(Effect.tryPromise, Effect.orDie)))
151
152
  }
152
153
 
153
154
  // TODO: ugh.
@@ -1,15 +1,16 @@
1
1
  import { flow } from "@effect-app/core/Function"
2
2
 
3
+ import { Effect, Option } from "effect-app"
4
+ import type { Equivalence } from "effect-app"
3
5
  import type { CachedRecord, DBRecord } from "./shared.js"
4
6
  import { getRecordName, makeMap, SerializedDBRecord } from "./shared.js"
5
7
  import * as simpledb from "./simpledb.js"
6
8
  import type { Version } from "./simpledb.js"
7
-
8
9
  // When we are in-process, we want to share the same Storage
9
10
  // Do not try this at home.
10
11
  const storage = makeMap<string, string>()
11
12
 
12
- const parseSDB = SerializedDBRecord.decodeUnknown
13
+ const parseSDB = S.decodeUnknown(SerializedDBRecord)
13
14
 
14
15
  export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>() {
15
16
  return <REncode, RDecode, EDecode>(
@@ -1,4 +1,5 @@
1
1
  import { MongoClient } from "@effect-app/infra-adapters/mongo-client"
2
+ import { Effect, Option } from "effect-app"
2
3
  import type { IndexDescription, InsertOneOptions } from "mongodb"
3
4
  import type { CachedRecord, DBRecord } from "./shared.js"
4
5
  import { OptimisticLockException } from "./shared.js"
@@ -2,6 +2,8 @@
2
2
 
3
3
  import { flow } from "@effect-app/core/Function"
4
4
  import { RedisClient } from "@effect-app/infra-adapters/redis-client"
5
+ import { Effect } from "effect-app"
6
+ import type { Option } from "effect-app"
5
7
  import * as S from "effect-app/schema"
6
8
  import type { Lock } from "redlock"
7
9
  import type { CachedRecord, DBRecord, Index } from "./shared.js"
@@ -26,8 +28,8 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
26
28
  }
27
29
 
28
30
  function find(id: string) {
29
- return RedisClient
30
- .flatMap((_) => _.hmgetAll(getKey(id)))
31
+ return Effect
32
+ .flatMap(RedisClient, (_) => _.hmgetAll(getKey(id)))
31
33
  .flatMapOpt((v) =>
32
34
  RedisSerializedDBRecord
33
35
  .decodeUnknown(v)
@@ -103,18 +105,21 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
103
105
  }
104
106
 
105
107
  function getIdx(index: Index) {
106
- return RedisClient.flatMap((_) => _.hget(getIdxKey(index), index.key).map((_) => _.map((i) => i as TKey)))
108
+ return Effect.flatMap(RedisClient, (_) => _.hget(getIdxKey(index), index.key).map((_) => _.map((i) => i as TKey)))
107
109
  }
108
110
 
109
111
  function setIdx(index: Index, r: A) {
110
- return RedisClient.flatMap((_) => _.hset(getIdxKey(index), index.key, r.id))
112
+ return Effect.flatMap(RedisClient, (_) => _.hset(getIdxKey(index), index.key, r.id))
111
113
  }
112
114
 
113
115
  function lockRedisIdx(index: Index) {
114
116
  const lockKey = getIdxLockKey(index)
115
117
  // acquire
116
- return RedisClient
117
- .flatMap(({ lock }) => Effect.tryPromise(() => lock.lock(lockKey, ttl) as unknown as Promise<Lock>))
118
+ return Effect
119
+ .flatMap(
120
+ RedisClient,
121
+ ({ lock }) => Effect.tryPromise(() => lock.lock(lockKey, ttl) as unknown as Promise<Lock>)
122
+ )
118
123
  .mapBoth({
119
124
  onFailure: (err) => new CouldNotAquireDbLockException(type, lockKey, err as Error),
120
125
  // release
@@ -131,12 +136,11 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
131
136
 
132
137
  function lockRedisRecord(id: string) {
133
138
  // acquire
134
- return RedisClient
135
- .flatMap(({ lock }) =>
139
+ return Effect
140
+ .flatMap(RedisClient, ({ lock }) =>
136
141
  Effect.tryPromise(
137
142
  () => lock.lock(getLockKey(id), ttl) as unknown as Promise<Lock>
138
- )
139
- )
143
+ ))
140
144
  .mapBoth({
141
145
  onFailure: (err) => new CouldNotAquireDbLockException(type, id, err as Error),
142
146
  // release
@@ -169,8 +173,8 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
169
173
  }
170
174
 
171
175
  function hmSetRec(key: string, val: RedisSerializedDBRecord) {
172
- const enc = RedisSerializedDBRecord.encodeSync(val)
173
- return RedisClient.flatMap(({ client }) =>
176
+ const enc = S.encodeSync(RedisSerializedDBRecord)(val)
177
+ return Effect.flatMap(RedisClient, ({ client }) =>
174
178
  Effect
175
179
  .async<void, ConnectionException>((res) => {
176
180
  client.hmset(
@@ -187,8 +191,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
187
191
  : res(Effect.sync(() => void 0))
188
192
  )
189
193
  })
190
- .uninterruptible
191
- )
194
+ .uninterruptible)
192
195
  }
193
196
  }
194
197
 
@@ -1,3 +1,4 @@
1
+ import { Data, Effect, Option } from "effect-app"
1
2
  import * as S from "effect-app/schema"
2
3
 
3
4
  export class CouldNotAquireDbLockException
@@ -35,7 +36,7 @@ export class SerializedDBRecord extends S.Class<SerializedDBRecord>()({
35
36
 
36
37
  // unknown -> string -> SDB?
37
38
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- export function makeSerialisedDBRecord(s: Schema<any>) {
39
+ export function makeSerialisedDBRecord(s: S.Schema<any>) {
39
40
  return S.struct({
40
41
  version: S.number,
41
42
  timestamp: S.Date,
@@ -1,3 +1,5 @@
1
+ import type { Scope } from "effect-app"
2
+ import { Context, Effect, Option, Unify } from "effect-app"
1
3
  import type { CachedRecord, DBRecord, EffectMap } from "./shared.js"
2
4
  import { makeMap, OptimisticLockException } from "./shared.js"
3
5
 
@@ -26,7 +28,7 @@ export function makeLiveRecordCache() {
26
28
  export interface RecordCache extends ReturnType<typeof makeLiveRecordCache> {}
27
29
 
28
30
  // module tag
29
- export const RecordCache = GenericTag<RecordCache>("@services/RecordCache")
31
+ export const RecordCache = Context.GenericTag<RecordCache>("@services/RecordCache")
30
32
 
31
33
  export const LiveRecordCache = Effect.sync(() => makeLiveRecordCache()).toLayer(RecordCache)
32
34
 
@@ -90,7 +92,9 @@ export function store<R, E, R2, E2, TKey extends string, EA, A extends DBRecord<
90
92
  c
91
93
  .find(record.id)
92
94
  .mapOpt((x) => x.version)
93
- .flatMap((_) => _.match({ onNone: () => save(record, Option.none()), onSome: confirmVersionAndSave(record) }))
95
+ .flatMap((_) =>
96
+ Unify.unify(_.match({ onNone: () => save(record, Option.none()), onSome: confirmVersionAndSave(record) }))
97
+ )
94
98
  .tap((r) => c.set(record.id, r))
95
99
  .map((r) => r.data)
96
100
  )
package/tsconfig.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "noUncheckedIndexedAccess": true,
12
12
  "noUnusedLocals": true,
13
13
  "noUnusedParameters": true,
14
- "importsNotUsedAsValues": "preserve",
14
+ "isolatedModules": true,
15
15
  "checkJs": true,
16
16
  "esModuleInterop": true,
17
17
  "skipLibCheck": true,
@@ -20,6 +20,7 @@
20
20
  "lib": [
21
21
  "esnext"
22
22
  ],
23
+ "baseUrl": "./",
23
24
  "target": "es2022",
24
25
  "inlineSourceMap": true,
25
26
  "incremental": true,
@@ -36,35 +37,17 @@
36
37
  "downlevelIteration": true,
37
38
  "noErrorTruncation": true,
38
39
  "ignoreDeprecations": "5.0",
39
- "tsPlusTypes": [
40
- "./node_modules/@effect-app/core/vendor/effect-data-tsplus.json",
41
- "./node_modules/@effect-app/core/vendor/effect-io-tsplus.json",
42
- "./node_modules/@effect-app/core/vendor/effect-match-tsplus.json",
43
- "./node_modules/@effect-app/core/vendor/effect-stm-tsplus.json",
44
- "./node_modules/@effect-app/core/vendor/effect-stream-tsplus.json",
45
- "./node_modules/@effect-app/core/vendor/fp-ts-optic-tsplus.json",
46
- "./node_modules/@effect-app/core/vendor/effect-schema-tsplus.json",
47
- "./node_modules/@effect-app/core/vendor/effect-platform-tsplus.json"
48
- ],
49
- "plugins": [
50
- {
51
- "name": "@effect/language-service",
52
- "diagnostics": {
53
- "1002": "none"
54
- }
55
- }
56
- ],
57
40
  "types": [
58
41
  "vitest/globals",
59
42
  "./types/modules"
60
43
  ],
61
- "tsPlusConfig": "./tsplus.config.json",
62
44
  "rootDir": "./src",
63
45
  "tsBuildInfoFile": "./dist/.tsbuildinfo",
64
- "noEmit": true
46
+ "importsNotUsedAsValues": "preserve"
65
47
  },
66
48
  "$schema": "https://json.schemastore.org/tsconfig",
67
49
  "display": "Strictest",
50
+ "_version": "2.0.0",
68
51
  "watchOptions": {
69
52
  "watchFile": "useFsEvents",
70
53
  "watchDirectory": "useFsEvents",
package/tsconfig.json.bak CHANGED
@@ -4,10 +4,6 @@
4
4
  "lib": [
5
5
  "esnext"
6
6
  ],
7
- "tsPlusConfig": "../../tsplus.config.json",
8
- // "tsPlusGlobalFiles": [
9
- // "./src/_global.ts"
10
- // ],
11
7
  "moduleResolution": "Node16",
12
8
  "outDir": "./dist",
13
9
  "rootDir": "./src",
package/_cjs/_global.cjs DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- require("effect-app/_global");
4
- require("@effect-app/infra-adapters/_global");
5
- require("./_global.ext.cjs");
6
- //# sourceMappingURL=_global.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_global.cjs","names":["require"],"sources":["../src/_global.ts"],"sourcesContent":[null],"mappings":";;AAMAA,OAAA;AAKAA,OAAA;AAEAA,OAAA"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- require("@effect-app/infra/test.arbs");
4
- require("@effect-app/infra/api/reportError");
5
- //# sourceMappingURL=_global.ext.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_global.ext.cjs","names":["require"],"sources":["../src/_global.ext.ts"],"sourcesContent":[null],"mappings":";;AAiBAA,OAAA;AAkBAA,OAAA"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- require("effect-app/schema");
4
- require("effect-app/_global.schema");
5
- //# sourceMappingURL=_global.schema.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_global.schema.cjs","names":["require"],"sources":["../src/_global.schema.ts"],"sourcesContent":[null],"mappings":";;AAOAA,OAAA;AAEAA,OAAA"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.defaultBasicErrorHandler = defaultBasicErrorHandler;
7
- exports.defaultErrorHandler = defaultErrorHandler;
8
- var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
9
- var tsplus_module_2 = _interopRequireWildcard(require("effect/Cause"));
10
- var tsplus_module_3 = _interopRequireWildcard(require("effect/Schedule"));
11
- var _errorReporter = require("../errorReporter.cjs");
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- const logRequestError = (0, _errorReporter.logError)("Request");
15
- function defaultBasicErrorHandler(_req, res, r2) {
16
- const sendError = code => body => tsplus_module_1.sync(() => res.status(code).send(body));
17
- return tsplus_module_1.catchAll(tsplus_module_1.catchTag(tsplus_module_1.tapErrorCause(r2, cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_1.unit), "ValidationError", err => sendError(400)(err.errors))
18
- // final catch all; expecting never so that unhandled known errors will show up
19
- , err => tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err).map(() => err).flatMap(tsplus_module_1.die));
20
- }
21
- const optimisticConcurrencySchedule = tsplus_module_3.once && tsplus_module_3.recurWhile(a => a._tag === "OptimisticConcurrencyException");
22
- function defaultErrorHandler(req, res, r2) {
23
- const r3 = req.method === "PATCH" ? tsplus_module_1.retry(r2, optimisticConcurrencySchedule) : r2;
24
- const sendError = code => body => tsplus_module_1.sync(() => res.status(code).send(body));
25
- return tsplus_module_1.catchAll(tsplus_module_1.catchTags(tsplus_module_1.tapErrorCause(r3, cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_1.unit), {
26
- "ValidationError": err => sendError(400)(err.errors),
27
- "NotFoundError": sendError(404),
28
- "NotLoggedInError": sendError(401),
29
- "UnauthorizedError": sendError(403),
30
- "InvalidStateError": sendError(422),
31
- // 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
32
- "OptimisticConcurrencyException": sendError(412)
33
- })
34
- // final catch all; expecting never so that unhandled known errors will show up
35
- , err => tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err).map(() => err).flatMap(tsplus_module_1.die));
36
- }
37
- //# sourceMappingURL=defaultErrorHandler.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultErrorHandler.cjs","names":["_errorReporter","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","logRequestError","logError","defaultBasicErrorHandler","_req","res","r2","sendError","code","body","tsplus_module_1","sync","status","send","catchAll","catchTag","tapErrorCause","cause","tsplus_module_2","isFailure","unit","err","errors","map","flatMap","die","optimisticConcurrencySchedule","tsplus_module_3","once","recurWhile","_tag","defaultErrorHandler","req","r3","method","retry","catchTags"],"sources":["../../src/api/defaultErrorHandler.ts"],"sourcesContent":[null],"mappings":"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"}