@effect-app/infra 4.0.0-beta.26 → 4.0.0-beta.260

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 (503) hide show
  1. package/CHANGELOG.md +1966 -0
  2. package/_check.sh +1 -1
  3. package/dist/CUPS.d.ts +30 -11
  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 +487 -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 +111 -147
  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 +2 -2
  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 -9
  22. package/dist/MainFiberSet.d.ts.map +1 -1
  23. package/dist/MainFiberSet.js +10 -6
  24. package/dist/QueueMaker/SQLQueue.d.ts +8 -9
  25. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  26. package/dist/QueueMaker/SQLQueue.js +138 -120
  27. package/dist/QueueMaker/errors.d.ts +5 -3
  28. package/dist/QueueMaker/errors.d.ts.map +1 -1
  29. package/dist/QueueMaker/errors.js +4 -2
  30. package/dist/QueueMaker/memQueue.d.ts +10 -6
  31. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  32. package/dist/QueueMaker/memQueue.js +84 -68
  33. package/dist/QueueMaker/sbqueue.d.ts +9 -5
  34. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  35. package/dist/QueueMaker/sbqueue.js +60 -58
  36. package/dist/RequestFiberSet.d.ts +10 -7
  37. package/dist/RequestFiberSet.d.ts.map +1 -1
  38. package/dist/RequestFiberSet.js +13 -8
  39. package/dist/SQL/Model.d.ts +468 -0
  40. package/dist/SQL/Model.d.ts.map +1 -0
  41. package/dist/SQL/Model.js +469 -0
  42. package/dist/SQL.d.ts +2 -0
  43. package/dist/SQL.d.ts.map +1 -0
  44. package/dist/{adapters/SQL.js → SQL.js} +1 -1
  45. package/dist/ServiceBus.d.ts +61 -0
  46. package/dist/ServiceBus.d.ts.map +1 -0
  47. package/dist/ServiceBus.js +108 -0
  48. package/dist/Store/Cosmos/query.d.ts +15 -4
  49. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  50. package/dist/Store/Cosmos/query.js +179 -41
  51. package/dist/Store/Cosmos.d.ts +3 -3
  52. package/dist/Store/Cosmos.d.ts.map +1 -1
  53. package/dist/Store/Cosmos.js +344 -246
  54. package/dist/Store/Disk.d.ts +5 -5
  55. package/dist/Store/Disk.d.ts.map +1 -1
  56. package/dist/Store/Disk.js +78 -38
  57. package/dist/Store/Memory.d.ts +7 -10
  58. package/dist/Store/Memory.d.ts.map +1 -1
  59. package/dist/Store/Memory.js +326 -66
  60. package/dist/Store/SQL/Pg.d.ts +4 -0
  61. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  62. package/dist/Store/SQL/Pg.js +232 -0
  63. package/dist/Store/SQL/query.d.ts +49 -0
  64. package/dist/Store/SQL/query.d.ts.map +1 -0
  65. package/dist/Store/SQL/query.js +527 -0
  66. package/dist/Store/SQL.d.ts +21 -0
  67. package/dist/Store/SQL.d.ts.map +1 -0
  68. package/dist/Store/SQL.js +449 -0
  69. package/dist/Store/codeFilter.d.ts +5 -5
  70. package/dist/Store/codeFilter.d.ts.map +1 -1
  71. package/dist/Store/codeFilter.js +6 -3
  72. package/dist/Store/index.d.ts +7 -5
  73. package/dist/Store/index.d.ts.map +1 -1
  74. package/dist/Store/index.js +18 -5
  75. package/dist/Store/utils.d.ts +4 -3
  76. package/dist/Store/utils.d.ts.map +1 -1
  77. package/dist/Store/utils.js +5 -5
  78. package/dist/WorkflowEngineCosmos.d.ts +29 -0
  79. package/dist/WorkflowEngineCosmos.d.ts.map +1 -0
  80. package/dist/WorkflowEngineCosmos.js +521 -0
  81. package/dist/WorkflowEngineSqlite.d.ts +24 -0
  82. package/dist/WorkflowEngineSqlite.d.ts.map +1 -0
  83. package/dist/WorkflowEngineSqlite.js +550 -0
  84. package/dist/arbs.d.ts +2 -2
  85. package/dist/arbs.d.ts.map +1 -1
  86. package/dist/arbs.js +5 -3
  87. package/dist/codec.d.ts +5 -0
  88. package/dist/codec.d.ts.map +1 -0
  89. package/dist/codec.js +5 -0
  90. package/dist/cosmos-client.d.ts +16 -0
  91. package/dist/cosmos-client.d.ts.map +1 -0
  92. package/dist/cosmos-client.js +11 -0
  93. package/dist/errorReporter.d.ts +7 -5
  94. package/dist/errorReporter.d.ts.map +1 -1
  95. package/dist/errorReporter.js +23 -27
  96. package/dist/errors.d.ts +1 -1
  97. package/dist/fileUtil.d.ts +2 -2
  98. package/dist/fileUtil.d.ts.map +1 -1
  99. package/dist/fileUtil.js +2 -2
  100. package/dist/index.d.ts +3 -2
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +3 -2
  103. package/dist/internal/RequestContextMiddleware.d.ts +5 -0
  104. package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
  105. package/dist/internal/RequestContextMiddleware.js +45 -0
  106. package/dist/internal/auth.d.ts +53 -0
  107. package/dist/internal/auth.d.ts.map +1 -0
  108. package/dist/internal/auth.js +180 -0
  109. package/dist/internal/events.d.ts +11 -0
  110. package/dist/internal/events.d.ts.map +1 -0
  111. package/dist/internal/events.js +49 -0
  112. package/dist/internal/health.d.ts +3 -0
  113. package/dist/internal/health.d.ts.map +1 -0
  114. package/dist/internal/health.js +5 -0
  115. package/dist/layerUtils.d.ts +32 -0
  116. package/dist/layerUtils.d.ts.map +1 -0
  117. package/dist/layerUtils.js +17 -0
  118. package/dist/logger/jsonLogger.d.ts +2 -2
  119. package/dist/logger/jsonLogger.d.ts.map +1 -1
  120. package/dist/logger/jsonLogger.js +5 -3
  121. package/dist/logger/logFmtLogger.d.ts +2 -2
  122. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  123. package/dist/logger/logFmtLogger.js +3 -3
  124. package/dist/logger/shared.d.ts +3 -3
  125. package/dist/logger/shared.d.ts.map +1 -1
  126. package/dist/logger/shared.js +5 -5
  127. package/dist/logger.d.ts +1 -1
  128. package/dist/logger.d.ts.map +1 -1
  129. package/dist/memQueue.d.ts +15 -0
  130. package/dist/memQueue.d.ts.map +1 -0
  131. package/dist/memQueue.js +21 -0
  132. package/dist/middlewares.d.ts +10 -0
  133. package/dist/middlewares.d.ts.map +1 -0
  134. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  135. package/dist/mongo-client.d.ts +11 -0
  136. package/dist/mongo-client.d.ts.map +1 -0
  137. package/dist/mongo-client.js +15 -0
  138. package/dist/otel.d.ts +75 -0
  139. package/dist/otel.d.ts.map +1 -0
  140. package/dist/otel.js +65 -0
  141. package/dist/rateLimit.d.ts +12 -4
  142. package/dist/rateLimit.d.ts.map +1 -1
  143. package/dist/rateLimit.js +7 -12
  144. package/dist/redis-client.d.ts +42 -0
  145. package/dist/redis-client.d.ts.map +1 -0
  146. package/dist/redis-client.js +98 -0
  147. package/dist/reportError.d.ts +4 -0
  148. package/dist/reportError.d.ts.map +1 -0
  149. package/dist/reportError.js +28 -0
  150. package/dist/routing/middleware/RouterMiddleware.d.ts +16 -0
  151. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  152. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  153. package/dist/routing/middleware/middleware.d.ts +48 -0
  154. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  155. package/dist/routing/middleware/middleware.js +128 -0
  156. package/dist/routing/middleware.d.ts +3 -0
  157. package/dist/routing/middleware.d.ts.map +1 -0
  158. package/dist/{api/routing → routing}/middleware.js +1 -2
  159. package/dist/routing/schema/jwt.d.ts +4 -0
  160. package/dist/routing/schema/jwt.d.ts.map +1 -0
  161. package/dist/routing/schema/jwt.js +13 -0
  162. package/dist/routing/tsort.d.ts +8 -0
  163. package/dist/routing/tsort.d.ts.map +1 -0
  164. package/dist/routing/tsort.js +51 -0
  165. package/dist/routing/utils.d.ts +19 -0
  166. package/dist/routing/utils.d.ts.map +1 -0
  167. package/dist/routing/utils.js +45 -0
  168. package/dist/routing.d.ts +184 -0
  169. package/dist/routing.d.ts.map +1 -0
  170. package/dist/routing.js +236 -0
  171. package/dist/test.d.ts +3 -3
  172. package/dist/test.d.ts.map +1 -1
  173. package/dist/test.js +2 -2
  174. package/dist/util.d.ts +3 -0
  175. package/dist/util.d.ts.map +1 -0
  176. package/dist/util.js +14 -0
  177. package/dist/vitest.d.ts +1 -1
  178. package/docs/cluster-storage.md +26 -0
  179. package/docs/workflow-engine.md +262 -0
  180. package/examples/query.ts +47 -39
  181. package/package.json +31 -345
  182. package/run.sh +1 -0
  183. package/src/CUPS.ts +52 -13
  184. package/src/ClusterCosmos.ts +954 -0
  185. package/src/ClusterServiceBus.ts +242 -0
  186. package/src/{api/ContextProvider.ts → ContextProvider.ts} +19 -16
  187. package/src/Emailer/Sendgrid.ts +82 -59
  188. package/src/Emailer/fake.ts +3 -3
  189. package/src/MainFiberSet.ts +12 -10
  190. package/src/QueueMaker/SQLQueue.ts +153 -156
  191. package/src/QueueMaker/errors.ts +3 -1
  192. package/src/QueueMaker/memQueue.ts +113 -107
  193. package/src/QueueMaker/sbqueue.ts +78 -90
  194. package/src/RequestFiberSet.ts +13 -8
  195. package/src/{adapters/SQL → SQL}/Model.ts +42 -41
  196. package/src/ServiceBus.ts +219 -0
  197. package/src/Store/Cosmos/query.ts +216 -52
  198. package/src/Store/Cosmos.ts +493 -353
  199. package/src/Store/Disk.ts +109 -69
  200. package/src/Store/Memory.ts +365 -96
  201. package/src/Store/SQL/Pg.ts +363 -0
  202. package/src/Store/SQL/query.ts +603 -0
  203. package/src/Store/SQL.ts +735 -0
  204. package/src/Store/codeFilter.ts +8 -5
  205. package/src/Store/index.ts +21 -6
  206. package/src/Store/utils.ts +26 -24
  207. package/src/WorkflowEngineCosmos.ts +719 -0
  208. package/src/WorkflowEngineSqlite.ts +813 -0
  209. package/src/arbs.ts +5 -3
  210. package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +5 -3
  211. package/src/errorReporter.ts +66 -76
  212. package/src/fileUtil.ts +1 -1
  213. package/src/index.ts +2 -1
  214. package/src/{api/internal → internal}/RequestContextMiddleware.ts +23 -6
  215. package/src/internal/auth.ts +272 -0
  216. package/src/{api/internal → internal}/events.ts +22 -13
  217. package/src/{api/layerUtils.ts → layerUtils.ts} +14 -10
  218. package/src/logger/jsonLogger.ts +4 -2
  219. package/src/logger/logFmtLogger.ts +2 -2
  220. package/src/logger/shared.ts +5 -4
  221. package/src/{adapters/memQueue.ts → memQueue.ts} +5 -4
  222. package/src/{adapters/mongo-client.ts → mongo-client.ts} +4 -2
  223. package/src/otel.ts +152 -0
  224. package/src/rateLimit.ts +34 -23
  225. package/src/{adapters/redis-client.ts → redis-client.ts} +7 -3
  226. package/src/{api/reportError.ts → reportError.ts} +3 -2
  227. package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +5 -4
  228. package/src/{api/routing → routing}/middleware/middleware.ts +62 -17
  229. package/src/routing/middleware.ts +4 -0
  230. package/src/{api/routing → routing}/schema/jwt.ts +2 -1
  231. package/src/{api/routing → routing}/utils.ts +2 -1
  232. package/src/routing.ts +768 -0
  233. package/src/test.ts +2 -2
  234. package/test/auth.test.ts +101 -0
  235. package/test/cluster-cosmos.test.ts +503 -0
  236. package/test/cluster-servicebus.test.ts +180 -0
  237. package/test/contextProvider.test.ts +15 -12
  238. package/test/controller.test.ts +28 -32
  239. package/test/cosmos-query.test.ts +159 -0
  240. package/test/dist/_check-agg-infer.test-d.d.ts +2 -0
  241. package/test/dist/_check-agg-infer.test-d.d.ts.map +1 -0
  242. package/test/dist/_check-agg-infer.test-d.js +19 -0
  243. package/test/dist/_check-proj-infer.test-d.d.ts +2 -0
  244. package/test/dist/_check-proj-infer.test-d.d.ts.map +1 -0
  245. package/test/dist/_check-proj-infer.test-d.js +16 -0
  246. package/test/dist/_check-tighten.test-d.d.ts +2 -0
  247. package/test/dist/_check-tighten.test-d.d.ts.map +1 -0
  248. package/test/dist/_check-tighten.test-d.js +21 -0
  249. package/test/dist/auth.test.d.ts.map +1 -0
  250. package/test/dist/cluster-cosmos.test.d.ts.map +1 -0
  251. package/test/dist/cluster-servicebus.test.d.ts.map +1 -0
  252. package/test/dist/contextProvider.test.d.ts.map +1 -1
  253. package/test/dist/controller.test.d.ts.map +1 -1
  254. package/test/dist/cosmos-query.test.d.ts.map +1 -0
  255. package/test/dist/date-query.test.d.ts.map +1 -0
  256. package/test/dist/fixtures.d.ts +30 -12
  257. package/test/dist/fixtures.d.ts.map +1 -1
  258. package/test/dist/fixtures.js +17 -10
  259. package/test/dist/query.test.d.ts.map +1 -1
  260. package/test/dist/rawQuery.test.d.ts.map +1 -1
  261. package/test/dist/repository-ext.test.d.ts.map +1 -0
  262. package/test/dist/requires.test.d.ts.map +1 -1
  263. package/test/dist/router-generator.test.d.ts.map +1 -0
  264. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  265. package/test/dist/rpc-context-map-streaming.test.d.ts.map +1 -0
  266. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  267. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  268. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  269. package/test/dist/sql-store.test.d.ts.map +1 -0
  270. package/test/dist/workflow-engine-cosmos.test.d.ts.map +1 -0
  271. package/test/dist/workflow-engine-sqlite.test.d.ts.map +1 -0
  272. package/test/fixtures.ts +16 -9
  273. package/test/layerUtils.test.ts +2 -2
  274. package/test/query.test.ts +905 -40
  275. package/test/rawQuery.test.ts +340 -22
  276. package/test/repository-ext.test.ts +62 -0
  277. package/test/requires.test.ts +10 -5
  278. package/test/router-generator.test.ts +187 -0
  279. package/test/routing-interruptibility.test.ts +66 -0
  280. package/test/rpc-context-map-streaming.test.ts +262 -0
  281. package/test/rpc-e2e-invalidation.test.ts +256 -0
  282. package/test/rpc-multi-middleware.test.ts +85 -10
  283. package/test/rpc-stream-fullstack.test.ts +304 -0
  284. package/test/sql-store.test.ts +1711 -0
  285. package/test/validateSample.test.ts +26 -14
  286. package/test/workflow-engine-cosmos.test.ts +354 -0
  287. package/test/workflow-engine-sqlite.test.ts +299 -0
  288. package/tsconfig.examples.json +1 -1
  289. package/tsconfig.json +2 -1
  290. package/tsconfig.json.bak +2 -2
  291. package/tsconfig.src.json +35 -35
  292. package/tsconfig.test.json +2 -2
  293. package/dist/Emailer/service.d.ts +0 -55
  294. package/dist/Emailer/service.d.ts.map +0 -1
  295. package/dist/Emailer/service.js +0 -6
  296. package/dist/Emailer.d.ts +0 -2
  297. package/dist/Emailer.d.ts.map +0 -1
  298. package/dist/Emailer.js +0 -2
  299. package/dist/Model/Repository/ext.d.ts +0 -41
  300. package/dist/Model/Repository/ext.d.ts.map +0 -1
  301. package/dist/Model/Repository/ext.js +0 -65
  302. package/dist/Model/Repository/internal/internal.d.ts +0 -59
  303. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  304. package/dist/Model/Repository/internal/internal.js +0 -316
  305. package/dist/Model/Repository/legacy.d.ts +0 -19
  306. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  307. package/dist/Model/Repository/legacy.js +0 -2
  308. package/dist/Model/Repository/makeRepo.d.ts +0 -49
  309. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  310. package/dist/Model/Repository/makeRepo.js +0 -24
  311. package/dist/Model/Repository/service.d.ts +0 -89
  312. package/dist/Model/Repository/service.d.ts.map +0 -1
  313. package/dist/Model/Repository/service.js +0 -2
  314. package/dist/Model/Repository/validation.d.ts +0 -42
  315. package/dist/Model/Repository/validation.d.ts.map +0 -1
  316. package/dist/Model/Repository/validation.js +0 -32
  317. package/dist/Model/Repository.d.ts +0 -6
  318. package/dist/Model/Repository.d.ts.map +0 -1
  319. package/dist/Model/Repository.js +0 -6
  320. package/dist/Model/dsl.d.ts +0 -32
  321. package/dist/Model/dsl.d.ts.map +0 -1
  322. package/dist/Model/dsl.js +0 -44
  323. package/dist/Model/filter/filterApi.d.ts +0 -30
  324. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  325. package/dist/Model/filter/filterApi.js +0 -2
  326. package/dist/Model/filter/types/errors.d.ts +0 -29
  327. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  328. package/dist/Model/filter/types/errors.js +0 -2
  329. package/dist/Model/filter/types/fields.d.ts +0 -15
  330. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  331. package/dist/Model/filter/types/fields.js +0 -2
  332. package/dist/Model/filter/types/path/common.d.ts +0 -316
  333. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  334. package/dist/Model/filter/types/path/common.js +0 -2
  335. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  336. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  337. package/dist/Model/filter/types/path/eager.js +0 -31
  338. package/dist/Model/filter/types/path/index.d.ts +0 -4
  339. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  340. package/dist/Model/filter/types/path/index.js +0 -3
  341. package/dist/Model/filter/types/utils.d.ts +0 -79
  342. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  343. package/dist/Model/filter/types/utils.js +0 -2
  344. package/dist/Model/filter/types/validator.d.ts +0 -30
  345. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  346. package/dist/Model/filter/types/validator.js +0 -2
  347. package/dist/Model/filter/types.d.ts +0 -5
  348. package/dist/Model/filter/types.d.ts.map +0 -1
  349. package/dist/Model/filter/types.js +0 -7
  350. package/dist/Model/query/dsl.d.ts +0 -248
  351. package/dist/Model/query/dsl.d.ts.map +0 -1
  352. package/dist/Model/query/dsl.js +0 -104
  353. package/dist/Model/query/new-kid-interpreter.d.ts +0 -28
  354. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  355. package/dist/Model/query/new-kid-interpreter.js +0 -165
  356. package/dist/Model/query.d.ts +0 -15
  357. package/dist/Model/query.d.ts.map +0 -1
  358. package/dist/Model/query.js +0 -3
  359. package/dist/Model.d.ts +0 -4
  360. package/dist/Model.d.ts.map +0 -1
  361. package/dist/Model.js +0 -4
  362. package/dist/Operations.d.ts +0 -55
  363. package/dist/Operations.d.ts.map +0 -1
  364. package/dist/Operations.js +0 -102
  365. package/dist/OperationsRepo.d.ts +0 -41
  366. package/dist/OperationsRepo.d.ts.map +0 -1
  367. package/dist/OperationsRepo.js +0 -14
  368. package/dist/QueueMaker/service.d.ts +0 -11
  369. package/dist/QueueMaker/service.d.ts.map +0 -1
  370. package/dist/QueueMaker/service.js +0 -4
  371. package/dist/RequestContext.d.ts +0 -63
  372. package/dist/RequestContext.d.ts.map +0 -1
  373. package/dist/RequestContext.js +0 -49
  374. package/dist/Store/ContextMapContainer.d.ts +0 -14
  375. package/dist/Store/ContextMapContainer.d.ts.map +0 -1
  376. package/dist/Store/ContextMapContainer.js +0 -16
  377. package/dist/Store/service.d.ts +0 -108
  378. package/dist/Store/service.d.ts.map +0 -1
  379. package/dist/Store/service.js +0 -71
  380. package/dist/Store.d.ts +0 -2
  381. package/dist/Store.d.ts.map +0 -1
  382. package/dist/Store.js +0 -2
  383. package/dist/adapters/SQL/Model.d.ts +0 -479
  384. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  385. package/dist/adapters/SQL/Model.js +0 -478
  386. package/dist/adapters/SQL.d.ts +0 -2
  387. package/dist/adapters/SQL.d.ts.map +0 -1
  388. package/dist/adapters/ServiceBus.d.ts +0 -58
  389. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  390. package/dist/adapters/ServiceBus.js +0 -99
  391. package/dist/adapters/cosmos-client.d.ts +0 -14
  392. package/dist/adapters/cosmos-client.d.ts.map +0 -1
  393. package/dist/adapters/cosmos-client.js +0 -9
  394. package/dist/adapters/index.d.ts +0 -2
  395. package/dist/adapters/index.d.ts.map +0 -1
  396. package/dist/adapters/index.js +0 -2
  397. package/dist/adapters/logger.d.ts +0 -9
  398. package/dist/adapters/logger.d.ts.map +0 -1
  399. package/dist/adapters/logger.js +0 -3
  400. package/dist/adapters/memQueue.d.ts +0 -13
  401. package/dist/adapters/memQueue.d.ts.map +0 -1
  402. package/dist/adapters/memQueue.js +0 -20
  403. package/dist/adapters/mongo-client.d.ts +0 -10
  404. package/dist/adapters/mongo-client.d.ts.map +0 -1
  405. package/dist/adapters/mongo-client.js +0 -13
  406. package/dist/adapters/redis-client.d.ts +0 -39
  407. package/dist/adapters/redis-client.d.ts.map +0 -1
  408. package/dist/adapters/redis-client.js +0 -94
  409. package/dist/api/ContextProvider.d.ts +0 -31
  410. package/dist/api/ContextProvider.d.ts.map +0 -1
  411. package/dist/api/ContextProvider.js +0 -38
  412. package/dist/api/codec.d.ts +0 -5
  413. package/dist/api/codec.d.ts.map +0 -1
  414. package/dist/api/codec.js +0 -5
  415. package/dist/api/internal/RequestContextMiddleware.d.ts +0 -5
  416. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  417. package/dist/api/internal/RequestContextMiddleware.js +0 -35
  418. package/dist/api/internal/auth.d.ts +0 -15
  419. package/dist/api/internal/auth.d.ts.map +0 -1
  420. package/dist/api/internal/auth.js +0 -47
  421. package/dist/api/internal/events.d.ts +0 -9
  422. package/dist/api/internal/events.d.ts.map +0 -1
  423. package/dist/api/internal/events.js +0 -42
  424. package/dist/api/internal/health.d.ts +0 -3
  425. package/dist/api/internal/health.d.ts.map +0 -1
  426. package/dist/api/internal/health.js +0 -5
  427. package/dist/api/layerUtils.d.ts +0 -24
  428. package/dist/api/layerUtils.d.ts.map +0 -1
  429. package/dist/api/layerUtils.js +0 -16
  430. package/dist/api/middlewares.d.ts +0 -10
  431. package/dist/api/middlewares.d.ts.map +0 -1
  432. package/dist/api/reportError.d.ts +0 -4
  433. package/dist/api/reportError.d.ts.map +0 -1
  434. package/dist/api/reportError.js +0 -27
  435. package/dist/api/routing/middleware/RouterMiddleware.d.ts +0 -15
  436. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  437. package/dist/api/routing/middleware/middleware.d.ts +0 -9
  438. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  439. package/dist/api/routing/middleware/middleware.js +0 -92
  440. package/dist/api/routing/middleware.d.ts +0 -4
  441. package/dist/api/routing/middleware.d.ts.map +0 -1
  442. package/dist/api/routing/schema/jwt.d.ts +0 -4
  443. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  444. package/dist/api/routing/schema/jwt.js +0 -12
  445. package/dist/api/routing/tsort.d.ts +0 -8
  446. package/dist/api/routing/tsort.d.ts.map +0 -1
  447. package/dist/api/routing/tsort.js +0 -51
  448. package/dist/api/routing/utils.d.ts +0 -19
  449. package/dist/api/routing/utils.d.ts.map +0 -1
  450. package/dist/api/routing/utils.js +0 -44
  451. package/dist/api/routing.d.ts +0 -138
  452. package/dist/api/routing.d.ts.map +0 -1
  453. package/dist/api/routing.js +0 -166
  454. package/dist/api/setupRequest.d.ts +0 -12
  455. package/dist/api/setupRequest.d.ts.map +0 -1
  456. package/dist/api/setupRequest.js +0 -44
  457. package/dist/api/util.d.ts +0 -3
  458. package/dist/api/util.d.ts.map +0 -1
  459. package/dist/api/util.js +0 -14
  460. package/eslint.config.mjs +0 -24
  461. package/src/Emailer/service.ts +0 -52
  462. package/src/Emailer.ts +0 -1
  463. package/src/Model/Repository/ext.ts +0 -283
  464. package/src/Model/Repository/internal/internal.ts +0 -577
  465. package/src/Model/Repository/legacy.ts +0 -27
  466. package/src/Model/Repository/makeRepo.ts +0 -139
  467. package/src/Model/Repository/service.ts +0 -627
  468. package/src/Model/Repository/validation.ts +0 -31
  469. package/src/Model/Repository.ts +0 -5
  470. package/src/Model/dsl.ts +0 -128
  471. package/src/Model/filter/filterApi.ts +0 -60
  472. package/src/Model/filter/types/errors.ts +0 -47
  473. package/src/Model/filter/types/fields.ts +0 -50
  474. package/src/Model/filter/types/path/common.ts +0 -404
  475. package/src/Model/filter/types/path/eager.ts +0 -298
  476. package/src/Model/filter/types/path/index.ts +0 -4
  477. package/src/Model/filter/types/utils.ts +0 -128
  478. package/src/Model/filter/types/validator.ts +0 -46
  479. package/src/Model/filter/types.ts +0 -6
  480. package/src/Model/query/dsl.ts +0 -2110
  481. package/src/Model/query/new-kid-interpreter.ts +0 -210
  482. package/src/Model/query.ts +0 -13
  483. package/src/Model.ts +0 -3
  484. package/src/Operations.ts +0 -235
  485. package/src/OperationsRepo.ts +0 -16
  486. package/src/QueueMaker/service.ts +0 -17
  487. package/src/RequestContext.ts +0 -63
  488. package/src/Store/ContextMapContainer.ts +0 -20
  489. package/src/Store/service.ts +0 -184
  490. package/src/Store.ts +0 -1
  491. package/src/adapters/ServiceBus.ts +0 -209
  492. package/src/adapters/index.ts +0 -0
  493. package/src/adapters/logger.ts +0 -3
  494. package/src/api/internal/auth.ts +0 -68
  495. package/src/api/routing/middleware.ts +0 -6
  496. package/src/api/routing.ts +0 -598
  497. package/src/api/setupRequest.ts +0 -84
  498. /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
  499. /package/src/{api/codec.ts → codec.ts} +0 -0
  500. /package/src/{api/internal → internal}/health.ts +0 -0
  501. /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
  502. /package/src/{api/routing → routing}/tsort.ts +0 -0
  503. /package/src/{api/util.ts → util.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AAEtC,wBAAgB,SAAS,CACvB,IAAI,EACJ,EAAE,SAAS;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,EACrB,EAAE,EACF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,mHAExB"}
package/dist/codec.js ADDED
@@ -0,0 +1,5 @@
1
+ import * as S from "effect-app/Schema";
2
+ export function makeCodec(self) {
3
+ return [S.decodeSync(self), S.encodeSync(self)];
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29kZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUV0QyxNQUFNLFVBQVUsU0FBUyxDQUl2QixJQUF1QjtJQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFVLENBQUE7QUFDMUQsQ0FBQyJ9
@@ -0,0 +1,16 @@
1
+ import { CosmosClient as ComosClient_ } from "@azure/cosmos";
2
+ import * as Context from "effect-app/Context";
3
+ import * as Effect from "effect-app/Effect";
4
+ import * as Layer from "effect-app/Layer";
5
+ export declare const makeCosmosClient: (url: string, dbName: string) => Effect.Effect<{
6
+ db: import("@azure/cosmos").Database;
7
+ }, never, never>;
8
+ declare const CosmosClient_base: Context.ServiceClass<CosmosClient, "@services/CosmosClient", {
9
+ readonly db: ReturnType<InstanceType<typeof ComosClient_>["database"]>;
10
+ }>;
11
+ export declare class CosmosClient extends CosmosClient_base {
12
+ }
13
+ export declare const db: Effect.Effect<import("@azure/cosmos").Database, never, CosmosClient>;
14
+ export declare const CosmosClientLayer: (cosmosUrl: string, dbName: string) => Layer.Layer<CosmosClient, never, never>;
15
+ export {};
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zLWNsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nvc21vcy1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksSUFBSSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFJekMsZUFBTyxNQUFNLGdCQUFnQixRQUFTLE1BQU0sVUFBVSxNQUFNOztnQkFDTSxDQUFBOztpQkFHbkQsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDOztBQUR4RSxxQkFBYSxZQUFhLFNBQVEsaUJBRUo7Q0FBRztBQUVqQyxlQUFPLE1BQU0sRUFBRSxzRUFBNkMsQ0FBQTtBQUU1RCxlQUFPLE1BQU0saUJBQWlCLGNBQWUsTUFBTSxVQUFVLE1BQU0sNENBQ0YsQ0FBQSJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos-client.d.ts","sourceRoot":"","sources":["../src/cosmos-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,eAAO,MAAM,gBAAgB,QAAS,MAAM,UAAU,MAAM;;gBACM,CAAA;;iBAGnD,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;;AADxE,qBAAa,YAAa,SAAQ,iBAEJ;CAAG;AAEjC,eAAO,MAAM,EAAE,sEAA6C,CAAA;AAE5D,eAAO,MAAM,iBAAiB,cAAe,MAAM,UAAU,MAAM,4CACF,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { CosmosClient as ComosClient_ } from "@azure/cosmos";
2
+ import * as Context from "effect-app/Context";
3
+ import * as Effect from "effect-app/Effect";
4
+ import * as Layer from "effect-app/Layer";
5
+ const withClient = (url) => Effect.sync(() => new ComosClient_(url));
6
+ export const makeCosmosClient = (url, dbName) => Effect.map(withClient(url), (x) => ({ db: x.database(dbName) }));
7
+ export class CosmosClient extends Context.Service()("@services/CosmosClient") {
8
+ }
9
+ export const db = CosmosClient.pipe(Effect.map((_) => _.db));
10
+ export const CosmosClientLayer = (cosmosUrl, dbName) => Layer.effect(CosmosClient, makeCosmosClient(cosmosUrl, dbName));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3Ntb3MtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLElBQUksWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVELE9BQU8sS0FBSyxPQUFPLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBRXpDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFFNUUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FDOUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVsRSxNQUFNLE9BQU8sWUFBYSxTQUFRLE9BQU8sQ0FBQyxPQUFPLEVBRTdDLENBQUMsd0JBQXdCLENBQUM7Q0FBRztBQUVqQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUU1RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FDckUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUEifQ==
@@ -1,6 +1,8 @@
1
- import { Cause, Effect, type LogLevel } from "effect-app";
1
+ import * as Effect from "effect-app/Effect";
2
+ import * as Cause from "effect/Cause";
3
+ import type * as LogLevel from "effect/LogLevel";
2
4
  import { CauseException } from "./errors.js";
3
- export declare function reportError(name: string): (cause: Cause.Cause<unknown>, extras?: Record<string, unknown>, level?: LogLevel.Severity) => Effect.Effect<CauseException<unknown> | undefined, never, never>;
4
- export declare function logError<E>(name: string): (cause: Cause.Cause<E>, extras?: Record<string, unknown>) => Effect.Effect<void, never, never>;
5
- export declare function reportMessage(message: string, extras?: Record<string, unknown>): Effect.Effect<void, never, never>;
6
- //# sourceMappingURL=errorReporter.d.ts.map
5
+ export declare function reportError(name: string): (cause: Cause.Cause<unknown>, extras?: Record<string, unknown> | undefined, level?: LogLevel.Severity | undefined) => Effect.Effect<CauseException<unknown> | undefined, never, never>;
6
+ export declare function logError<E>(name: string): (cause: Cause.Cause<E>, extras?: Record<string, unknown> | undefined) => Effect.Effect<void, never, never>;
7
+ export declare const reportMessage: (message: string, extras?: Record<string, unknown> | undefined) => Effect.Effect<void, never, never>;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9yUmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUczQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBMEIsTUFBTSxhQUFhLENBQUE7QUFXcEUsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSwwTEFtQ3ZDO0FBb0JELHdCQUFnQixRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLDhHQWlCdkM7QUFFRCxlQUFPLE1BQU0sYUFBYSxzR0FReEIsQ0FBQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGzD,OAAO,EAAE,cAAc,EAA0B,MAAM,aAAa,CAAA;AAWpE,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,IAGV,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAC3B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAO,QAAQ,CAAC,QAAkB,sEAmCrC;AAkBD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,IAEJ,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,uCAoBhE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qCAU9E"}
1
+ {"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAG3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,cAAc,EAA0B,MAAM,aAAa,CAAA;AAWpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,0LAmCvC;AAoBD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,8GAiBvC;AAED,eAAO,MAAM,aAAa,sGAQxB,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import * as Sentry from "@sentry/node";
2
- import { Cause, Effect } from "effect-app";
2
+ import * as Effect from "effect-app/Effect";
3
+ import { getRC } from "effect-app/setupRequest";
3
4
  import { dropUndefined, LogLevelToSentry } from "effect-app/utils";
4
- import { getRC } from "./api/setupRequest.js";
5
+ import * as Cause from "effect/Cause";
5
6
  import { CauseException, tryToJson, tryToReport } from "./errors.js";
6
7
  import { InfraLogger } from "./logger.js";
7
8
  const tryCauseException = (cause, name) => {
@@ -13,8 +14,7 @@ const tryCauseException = (cause, name) => {
13
14
  }
14
15
  };
15
16
  export function reportError(name) {
16
- return (cause, extras, level = "Error") => Effect
17
- .gen(function* () {
17
+ return Effect.fnUntraced(function* (cause, extras, level = "Error") {
18
18
  if (Cause.hasInterruptsOnly(cause)) {
19
19
  yield* InfraLogger.logDebug("Interrupted").pipe(Effect.annotateLogs("extras", JSON.stringify(extras ?? {})));
20
20
  return;
@@ -28,11 +28,9 @@ export function reportError(name) {
28
28
  error: tryToReport(error),
29
29
  cause: tryToJson(cause),
30
30
  __error_name__: name
31
- })))
32
- .pipe(Effect.catchCause((cause) => InfraLogger.logWarning("Failed to log error", cause)), Effect.catchCause(() => InfraLogger.logFatal("Failed to log error cause")));
31
+ })), Effect.catchCause((cause) => InfraLogger.logWarning("Failed to log error", cause)), Effect.catchCause(() => InfraLogger.logFatal("Failed to log error cause")));
33
32
  return error;
34
- })
35
- .pipe(Effect.tapCause((cause) => InfraLogger.logError("Failed to report error", cause).pipe(Effect.tapCause(() => InfraLogger.logFatal("Failed to log error cause")))));
33
+ }, (effect) => Effect.tapCause(effect, (cause) => InfraLogger.logError("Failed to report error", cause).pipe(Effect.tapCause(() => InfraLogger.logFatal("Failed to log error cause")))));
36
34
  }
37
35
  function reportSentry(error, extras, level = "error") {
38
36
  return getRC.pipe(Effect.map((context) => {
@@ -42,14 +40,15 @@ function reportSentry(error, extras, level = "error") {
42
40
  scope.setContext("context", { ...context });
43
41
  if (extras)
44
42
  scope.setContext("extras", extras);
45
- scope.setContext("error", { data: tryToReport(error) });
46
- scope.setContext("cause", { data: tryToJson(error.originalCause) });
43
+ const squashed = Cause.squash(error.originalCause);
44
+ scope.setContext("mainError", tryToJson(squashed));
45
+ scope.setContext("error", tryToReport(error));
46
+ scope.setContext("cause", tryToJson(error.originalCause));
47
47
  Sentry.captureException(error, scope);
48
48
  }));
49
49
  }
50
50
  export function logError(name) {
51
- return (cause, extras) => Effect
52
- .gen(function* () {
51
+ return Effect.fnUntraced(function* (cause, extras) {
53
52
  if (Cause.hasInterruptsOnly(cause)) {
54
53
  yield* InfraLogger.logDebug("Interrupted").pipe(Effect.annotateLogs(dropUndefined({ extras })));
55
54
  return;
@@ -61,19 +60,16 @@ export function logError(name) {
61
60
  cause: tryToJson(cause),
62
61
  __error_name__: name
63
62
  })));
64
- })
65
- .pipe(Effect.tapCause(() => InfraLogger.logFatal("Failed to log error cause")));
63
+ }, (effect) => Effect.tapCause(effect, () => InfraLogger.logFatal("Failed to log error cause")));
66
64
  }
67
- export function reportMessage(message, extras) {
68
- return Effect.gen(function* () {
69
- const context = yield* getRC;
70
- const scope = new Sentry.Scope();
71
- if (context)
72
- scope.setContext("context", { ...context });
73
- if (extras)
74
- scope.setContext("extras", extras);
75
- Sentry.captureMessage(message, scope);
76
- console.warn(message, extras);
77
- });
78
- }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFpQixNQUFNLFlBQVksQ0FBQTtBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXpDLE1BQU0saUJBQWlCLEdBQUcsQ0FBSSxLQUFxQixFQUFFLElBQVksRUFBcUIsRUFBRTtJQUN0RixJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxRixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FDekIsSUFBWTtJQUVaLE9BQU8sQ0FDTCxLQUEyQixFQUMzQixNQUFnQyxFQUNoQyxRQUEyQixPQUFPLEVBQ2xDLEVBQUUsQ0FDRixNQUFNO1NBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNaLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENB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
65
+ export const reportMessage = Effect.fnUntraced(function* (message, extras) {
66
+ const context = yield* getRC;
67
+ const scope = new Sentry.Scope();
68
+ if (context)
69
+ scope.setContext("context", { ...context });
70
+ if (extras)
71
+ scope.setContext("extras", extras);
72
+ Sentry.captureMessage(message, scope);
73
+ console.warn(message, extras);
74
+ });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNsRSxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV6QyxNQUFNLGlCQUFpQixHQUFHLENBQUksS0FBcUIsRUFBRSxJQUFZLEVBQXFCLEVBQUU7SUFDdEYsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDMUYsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQ3RCLFFBQVEsQ0FBQyxFQUNQLEtBQTJCLEVBQzNCLE1BQWdDLEVBQ2hDLEtBQUssR0FBc0IsT0FBTztRQUVsQyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25DLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFR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
package/dist/errors.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from "effect-app/client/errors";
2
- //# sourceMappingURL=errors.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUEifQ==
@@ -1,4 +1,4 @@
1
- import { Effect } from "effect-app";
1
+ import * as Effect from "effect-app/Effect";
2
2
  import type { Abortable } from "events";
3
3
  import type { Mode, ObjectEncodingOptions, OpenMode } from "fs";
4
4
  import fs from "fs/promises";
@@ -30,4 +30,4 @@ export declare function readTextFile(fileName: string): Effect.Effect<string, im
30
30
  */
31
31
  export declare function withFileLock<A, E, R>(filePath: string, action: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>;
32
32
  export {};
33
- //# sourceMappingURL=fileUtil.d.ts.map
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVV0aWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUN2QyxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUk1QixPQUFPLEtBQUssUUFBUSxNQUFNLFFBQVEsQ0FBQTtBQUVsQyx3QkFBZ0IsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLDhFQUV4QztBQUVELHdCQUFnQixvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxrSEFFcEQ7QUFFRCx3QkFBZ0IsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLG1HQUV4QztBQUVELHdCQUFnQixRQUFRLENBQ3RCLE1BQU0sRUFBRSxNQUFNLFlBRUUsTUFBTSxZQUFZLElBQUksWUFBWSxXQUFXLDhGQUM5RDtBQUVELEtBQUssSUFBSSxHQUNMLE1BQU0sR0FDTixNQUFNLENBQUMsZUFBZSxHQUN0QixRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FDekMsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQzlDLFFBQVEsQ0FBQyxNQUFNLENBQUE7QUFFbkIsTUFBTSxNQUFNLFdBQVcsR0FDbkIsQ0FBQyxxQkFBcUIsR0FBRztJQUN6QixJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsU0FBUyxDQUFBO0lBQ3ZCLElBQUksQ0FBQyxFQUFFLFFBQVEsR0FBRyxTQUFTLENBQUE7Q0FDNUIsR0FBRyxTQUFTLENBQUMsR0FDWixjQUFjLEdBQ2QsSUFBSSxDQUFBO0FBQ1Isd0JBQWdCLFNBQVMsQ0FDdkIsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsTUFBTSxFQUNkLElBQUksRUFBRSxJQUFJLEVBQ1YsT0FBTyxDQUFDLEVBQUUsV0FBVyw0RkFnQnRCO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0scUNBUzlEO0FBRUQsd0JBQWdCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSx3Q0FHMUM7QUFFRCx3QkFBZ0IsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLHFFQUU1QztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDbEMsUUFBUSxFQUFFLE1BQU0sRUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQThCeEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"fileUtil.d.ts","sourceRoot":"","sources":["../src/fileUtil.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC/D,OAAO,EAAE,MAAM,aAAa,CAAA;AAI5B,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAA;AAElC,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,8EAExC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,kHAEpD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,mGAExC;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,IAEN,QAAQ,MAAM,MAAM,MAAM,IAAI,EAAE,UAAU,WAAW,8FAC9D;AAED,KAAK,IAAI,GACL,MAAM,GACN,MAAM,CAAC,eAAe,GACtB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GACzC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GAC9C,QAAQ,CAAC,MAAM,CAAA;AAEnB,MAAM,MAAM,WAAW,GACnB,CAAC,qBAAqB,GAAG;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;IACvB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAC5B,GAAG,SAAS,CAAC,GACZ,cAAc,GACd,IAAI,CAAA;AACR,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,WAAW,4FAgBtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qCAS9D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,wCAG1C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,qEAE5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA8BxB"}
1
+ {"version":3,"file":"fileUtil.d.ts","sourceRoot":"","sources":["../src/fileUtil.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC/D,OAAO,EAAE,MAAM,aAAa,CAAA;AAI5B,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAA;AAElC,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,8EAExC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,kHAEpD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,mGAExC;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,YAEE,MAAM,YAAY,IAAI,YAAY,WAAW,8FAC9D;AAED,KAAK,IAAI,GACL,MAAM,GACN,MAAM,CAAC,eAAe,GACtB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GACzC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GAC9C,QAAQ,CAAC,MAAM,CAAA;AAEnB,MAAM,MAAM,WAAW,GACnB,CAAC,qBAAqB,GAAG;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;IACvB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAC5B,GAAG,SAAS,CAAC,GACZ,cAAc,GACd,IAAI,CAAA;AACR,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,WAAW,4FAgBtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qCAS9D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,wCAG1C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,qEAE5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA8BxB"}
package/dist/fileUtil.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import crypto from "crypto";
2
- import { Effect } from "effect-app";
2
+ import * as Effect from "effect-app/Effect";
3
3
  import fs from "fs/promises";
4
4
  import os from "os";
5
5
  import path from "path";
@@ -73,4 +73,4 @@ export function withFileLock(filePath, action) {
73
73
  })
74
74
  .pipe(Effect.scoped);
75
75
  }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZmlsZVV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFBO0FBQzNCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFHbkMsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFDdkIsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFHdEMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxRQUFnQjtJQUN2QyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsUUFBZ0I7SUFDbkQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtBQUMxRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxRQUFnQjtJQUN2QyxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNsSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsTUFBYztJQUVkLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENB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
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZmlsZVV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFBO0FBQzNCLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFHM0MsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFDdkIsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFHdEMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxRQUFnQjtJQUN2QyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsUUFBZ0I7SUFDbkQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtBQUMxRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxRQUFnQjtJQUN2QyxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNsSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsTUFBYztJQUVkLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMs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
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export * as Model from "./Model.js";
2
- //# sourceMappingURL=index.d.ts.map
1
+ export * from "./logger.js";
2
+ export * from "./Store/index.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGtCQUFrQixDQUFBIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export * as Model from "./Model.js";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUEifQ==
1
+ export * from "./logger.js";
2
+ export * from "./Store/index.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxrQkFBa0IsQ0FBQSJ9
@@ -0,0 +1,5 @@
1
+ import * as Effect from "effect-app/Effect";
2
+ import { HttpServerRequest, HttpServerResponse } from "effect-app/http";
3
+ import { Locale } from "effect-app/RequestContext";
4
+ export declare const RequestContextMiddleware: (defaultLocale?: Locale) => <E, R>(app: Effect.Effect<HttpServerResponse.HttpServerResponse, E, R | HttpServerRequest.HttpServerRequest>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | import("effect/Scope").Scope | Exclude<R, never>>;
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRNaWRkbGV3YXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvUmVxdWVzdENvbnRleHRNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRXZGLE9BQU8sRUFBRSxNQUFNLEVBQTZDLE1BQU0sMkJBQTJCLENBQUE7QUFLN0YsZUFBTyxNQUFNLHdCQUF3QixtQkFBbUIsTUFBTSxxUUFrRDNELENBQUEifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestContextMiddleware.d.ts","sourceRoot":"","sources":["../../src/internal/RequestContextMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAkB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEvF,OAAO,EAAE,MAAM,EAA6C,MAAM,2BAA2B,CAAA;AAK7F,eAAO,MAAM,wBAAwB,mBAAmB,MAAM,qQAkD3D,CAAA"}
@@ -0,0 +1,45 @@
1
+ import * as Effect from "effect-app/Effect";
2
+ import { HttpMiddleware, HttpServerRequest, HttpServerResponse } from "effect-app/http";
3
+ import * as Layer from "effect-app/Layer";
4
+ import { Locale, LocaleRef, RequestContext, spanAttributes } from "effect-app/RequestContext";
5
+ import { NonEmptyString255 } from "effect-app/Schema";
6
+ import { provideOnRequestScope } from "effect-app/setupRequest";
7
+ import { ContextMapContainer, storeId } from "effect-app/Store";
8
+ export const RequestContextMiddleware = (defaultLocale = "en") => HttpMiddleware.make((app) => Effect.gen(function* () {
9
+ const req = yield* HttpServerRequest.HttpServerRequest;
10
+ const currentSpan = yield* Effect.currentSpan.pipe(Effect.orDie);
11
+ const supported = Locale.literals;
12
+ const desiredLocale = req.headers["x-locale"];
13
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
14
+ const locale = desiredLocale && supported.includes(desiredLocale)
15
+ ? desiredLocale
16
+ : defaultLocale;
17
+ const ns = req.headers["x-store-id"];
18
+ const namespace = NonEmptyString255((ns && (Array.isArray(ns) ? ns[0] : ns)) || "primary");
19
+ const deviceId = req.headers["x-fe-device-id"];
20
+ const requestContext = RequestContext.make({
21
+ span: {
22
+ traceId: currentSpan.traceId,
23
+ spanId: currentSpan.spanId,
24
+ sampled: currentSpan.sampled
25
+ },
26
+ name: NonEmptyString255(`HTTP ${req.method} ${req.originalUrl.split("?")[0]}`), // set more detailed elsewhere
27
+ locale,
28
+ namespace,
29
+ sourceId: deviceId ? NonEmptyString255(deviceId) : undefined
30
+ });
31
+ yield* Effect.annotateCurrentSpan(spanAttributes(requestContext));
32
+ const layer = Layer.mergeAll(ContextMapContainer.layer, Layer.succeed(LocaleRef, requestContext.locale), Layer.succeed(storeId, requestContext.namespace));
33
+ // Bind layer to the request scope so ContextMap's finalizer (clear()) runs only
34
+ // after the response body is fully drained — not when `app` returns its
35
+ // HttpServerResponse value. Streaming RPC responses keep producing chunks (and
36
+ // using ContextMap-cached etags) after `app` returns; a sub-scope from
37
+ // `Effect.provide(layer)` would close too early and wipe etags mid-stream,
38
+ // causing spurious OptimisticConcurrencyException on later writes.
39
+ const res = yield* app.pipe(Effect.withLogSpan(requestContext.name), provideOnRequestScope(layer));
40
+ // TODO: how to set also on errors?
41
+ return HttpServerResponse.setHeaders(res, {
42
+ "Content-Language": requestContext.locale
43
+ });
44
+ }));
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL1JlcXVlc3RDb250ZXh0TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN2RixPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFL0QsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxhQUFhLEdBQVcsSUFBSSxFQUFFLEVBQUUsQ0FDdkUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2xCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFBO0lBRXRELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQ2pDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDN0MscUdBQXFHO0lBQ3JHLE1BQU0sTUFBTSxHQUFHLGFBQWEsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQW9CLENBQUM7UUFDdEUsQ0FBQyxDQUFFLGFBQTBDO1FBQzdDLENBQUMsQ0FBQyxhQUFhLENBQUE7SUFFakIsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNwQyxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQTtJQUMxRixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFFOUMsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztRQUN6QyxJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87WUFDNUIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNO1lBQzFCLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztTQUM3QjtRQUNELElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLDhCQUE4QjtRQUM5RyxNQUFNO1FBQ04sU0FBUztRQUNULFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzdELENBQUMsQ0FBQTtJQUNGLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtJQUNqRSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUMxQixtQkFBbUIsQ0FBQyxLQUFLLEVBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFDL0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUNqRCxDQUFBO0lBQ0QsZ0ZBQWdGO0lBQ2hGLHdFQUF3RTtJQUN4RSwrRUFBK0U7SUFDL0UsdUVBQXVFO0lBQ3ZFLDJFQUEyRTtJQUMzRSxtRUFBbUU7SUFDbkUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDekIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQ3ZDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUM3QixDQUFBO0lBRUQsbUNBQW1DO0lBQ25DLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUN4QyxrQkFBa0IsRUFBRSxjQUFjLENBQUMsTUFBTTtLQUMxQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FDSCxDQUFBIn0=
@@ -0,0 +1,53 @@
1
+ import * as Effect from "effect-app/Effect";
2
+ import { HttpHeaders, HttpServerRequest, HttpServerResponse } from "effect-app/http";
3
+ export declare class UnauthorizedError extends Error {
4
+ readonly status: number;
5
+ readonly statusCode: number;
6
+ headers: {
7
+ "WWW-Authenticate": string;
8
+ };
9
+ constructor(message?: string);
10
+ }
11
+ export declare class InvalidRequestError extends UnauthorizedError {
12
+ readonly code: string;
13
+ readonly status = 400;
14
+ readonly statusCode = 400;
15
+ constructor(message?: string, useErrorCode?: boolean);
16
+ }
17
+ export declare class InvalidTokenError extends UnauthorizedError {
18
+ readonly code = "invalid_token";
19
+ constructor(message?: string);
20
+ }
21
+ export declare class InsufficientScopeError extends UnauthorizedError {
22
+ readonly code = "insufficient_scope";
23
+ readonly status = 403;
24
+ readonly statusCode = 403;
25
+ constructor(scopes?: ReadonlyArray<string>, message?: string);
26
+ }
27
+ export interface JwtVerifierOptions {
28
+ readonly audience?: string | Array<string> | ReadonlyArray<string>;
29
+ readonly clockTolerance?: number;
30
+ readonly issuer?: string;
31
+ readonly issuerBaseURL?: string;
32
+ readonly jwksUri?: string;
33
+ readonly maxTokenAge?: number;
34
+ readonly secret?: string;
35
+ readonly strict?: boolean;
36
+ readonly tokenSigningAlg?: string;
37
+ }
38
+ export interface AuthOptions extends JwtVerifierOptions {
39
+ readonly authRequired?: boolean;
40
+ }
41
+ type Config = AuthOptions;
42
+ type JwtError = InsufficientScopeError | InvalidRequestError | InvalidTokenError | UnauthorizedError;
43
+ export declare const checkJWTI: (config: Config) => (headers: HttpHeaders.Headers) => Effect.Effect<void, UnauthorizedError, never>;
44
+ export declare const checkJwt: (config: Config) => <E, R>(app: Effect.Effect<HttpServerResponse.HttpServerResponse, E, R | HttpServerRequest.HttpServerRequest>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E | import("effect/unstable/http/HttpBody").HttpBodyError, R | HttpServerRequest.HttpServerRequest>;
45
+ declare const JWTError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Readonly<A> & {
46
+ readonly _tag: "JWTError";
47
+ } & import("effect/Pipeable").Pipeable;
48
+ export declare class JWTError extends JWTError_base<{
49
+ error: JwtError;
50
+ }> {
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2F1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFrQixpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBV3BHLHFCQUFhLGlCQUFrQixTQUFRLEtBQUs7SUFDMUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQU07SUFDN0IsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQU07SUFDakMsT0FBTztRQUFLLGtCQUFrQjtNQUEwQjtJQUV4RCxZQUFZLE9BQU8sU0FBaUIsRUFHbkM7Q0FDRjtBQUVELHFCQUFhLG1CQUFvQixTQUFRLGlCQUFpQjtJQUN4RCxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQTtJQUNyQixTQUFrQixNQUFNLE9BQU07SUFDOUIsU0FBa0IsVUFBVSxPQUFNO0lBRWxDLFlBQVksT0FBTyxTQUFvQixFQUFFLFlBQVksVUFBTyxFQU0zRDtDQUNGO0FBRUQscUJBQWEsaUJBQWtCLFNBQVEsaUJBQWlCO0lBQ3RELFFBQVEsQ0FBQyxJQUFJLG1CQUFrQjtJQUUvQixZQUFZLE9BQU8sU0FBa0IsRUFHcEM7Q0FDRjtBQUVELHFCQUFhLHNCQUF1QixTQUFRLGlCQUFpQjtJQUMzRCxRQUFRLENBQUMsSUFBSSx3QkFBdUI7SUFDcEMsU0FBa0IsTUFBTSxPQUFNO0lBQzlCLFNBQWtCLFVBQVUsT0FBTTtJQUVsQyxZQUFZLE1BQU0sQ0FBQyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLFNBQXVCLEVBR3pFO0NBQ0Y7QUFFRCxNQUFNLFdBQVcsa0JBQWtCO0lBQ2pDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsRSxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFBO0lBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUE7SUFDeEIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUMvQixRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFBO0lBQ3pCLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUE7SUFDN0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUN4QixRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFBO0lBQ3pCLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUE7Q0FDbEM7QUFFRCxNQUFNLFdBQVcsV0FBWSxTQUFRLGtCQUFrQjtJQUNyRCxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxDQUFBO0NBQ2hDO0FBRUQsS0FBSyxNQUFNLEdBQUcsV0FBVyxDQUFBO0FBRXpCLEtBQUssUUFBUSxHQUFHLHNCQUFzQixHQUFHLG1CQUFtQixHQUFHLGlCQUFpQixHQUFHLGlCQUFpQixDQUFBO0FBNkpwRyxlQUFPLE1BQU0sU0FBUyxXQUFZLE1BQU0sb0ZBWXZDLENBQUE7QUFFRCxlQUFPLE1BQU0sUUFBUSxXQUFZLE1BQU0sOFFBcUJ0QyxDQUFBOzs7O0FBRUQscUJBQWEsUUFBUyxTQUFRLGNBQTZCO0lBQ3pELEtBQUssRUFBRSxRQUFRLENBQUE7Q0FDaEIsQ0FBQztDQUFHIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/internal/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAkB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAWpG,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAM;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAM;IACjC,OAAO;QAAK,kBAAkB;MAA0B;IAExD,YAAY,OAAO,SAAiB,EAGnC;CACF;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,SAAkB,MAAM,OAAM;IAC9B,SAAkB,UAAU,OAAM;IAElC,YAAY,OAAO,SAAoB,EAAE,YAAY,UAAO,EAM3D;CACF;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,QAAQ,CAAC,IAAI,mBAAkB;IAE/B,YAAY,OAAO,SAAkB,EAGpC;CACF;AAED,qBAAa,sBAAuB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,IAAI,wBAAuB;IACpC,SAAkB,MAAM,OAAM;IAC9B,SAAkB,UAAU,OAAM;IAElC,YAAY,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,SAAuB,EAGzE;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAChC;AAED,KAAK,MAAM,GAAG,WAAW,CAAA;AAEzB,KAAK,QAAQ,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AA6JpG,eAAO,MAAM,SAAS,WAAY,MAAM,oFAYvC,CAAA;AAED,eAAO,MAAM,QAAQ,WAAY,MAAM,8QAqBtC,CAAA;;;;AAED,qBAAa,QAAS,SAAQ,cAA6B;IACzD,KAAK,EAAE,QAAQ,CAAA;CAChB,CAAC;CAAG"}
@@ -0,0 +1,180 @@
1
+ import * as Effect from "effect-app/Effect";
2
+ import { HttpHeaders, HttpMiddleware, HttpServerRequest, HttpServerResponse } from "effect-app/http";
3
+ import * as Option from "effect-app/Option";
4
+ import * as Data from "effect/Data";
5
+ import { createRemoteJWKSet, jwtVerify } from "jose";
6
+ const getHeaders = (error, description, scopes) => ({
7
+ "WWW-Authenticate": `Bearer realm="api", error="${error}", error_description="${description.replace(/"/g, "'")}"${scopes ? `, scope="${scopes.join(" ")}"` : ""}`
8
+ });
9
+ export class UnauthorizedError extends Error {
10
+ status = 401;
11
+ statusCode = 401;
12
+ headers = { "WWW-Authenticate": "Bearer realm=\"api\"" };
13
+ constructor(message = "Unauthorized") {
14
+ super(message);
15
+ this.name = this.constructor.name;
16
+ }
17
+ }
18
+ export class InvalidRequestError extends UnauthorizedError {
19
+ code;
20
+ status = 400;
21
+ statusCode = 400;
22
+ constructor(message = "Invalid Request", useErrorCode = true) {
23
+ super(message);
24
+ this.code = useErrorCode ? "invalid_request" : "";
25
+ if (useErrorCode) {
26
+ this.headers = getHeaders(this.code, this.message);
27
+ }
28
+ }
29
+ }
30
+ export class InvalidTokenError extends UnauthorizedError {
31
+ code = "invalid_token";
32
+ constructor(message = "Invalid Token") {
33
+ super(message);
34
+ this.headers = getHeaders(this.code, this.message);
35
+ }
36
+ }
37
+ export class InsufficientScopeError extends UnauthorizedError {
38
+ code = "insufficient_scope";
39
+ status = 403;
40
+ statusCode = 403;
41
+ constructor(scopes, message = "Insufficient Scope") {
42
+ super(message);
43
+ this.headers = getHeaders(this.code, this.message, scopes);
44
+ }
45
+ }
46
+ const isRecord = (value) => typeof value === "object" && value !== null;
47
+ const getErrorMessage = (error) => error instanceof Error ? error.message : String(error);
48
+ const normalizeAudience = (audience) => Array.isArray(audience) ? Array.from(audience) : audience;
49
+ const buildDiscoveryUrl = (issuerBaseURL) => {
50
+ const url = new URL(issuerBaseURL);
51
+ if (!url.pathname.includes("/.well-known/")) {
52
+ url.pathname = url.pathname.endsWith("/")
53
+ ? `${url.pathname}.well-known/openid-configuration`
54
+ : `${url.pathname}/.well-known/openid-configuration`;
55
+ }
56
+ url.search = "";
57
+ url.hash = "";
58
+ return url;
59
+ };
60
+ const fetchDiscoveryDocumentPromise = async (issuerBaseURL) => {
61
+ const response = await fetch(buildDiscoveryUrl(issuerBaseURL));
62
+ if (!response.ok) {
63
+ throw new Error(`Failed to fetch authorization server metadata: ${response.status}`);
64
+ }
65
+ const json = await response.json();
66
+ if (!isRecord(json) || typeof json["issuer"] !== "string" || typeof json["jwks_uri"] !== "string") {
67
+ throw new Error("Invalid authorization server metadata");
68
+ }
69
+ return { issuer: json["issuer"], jwksUri: json["jwks_uri"] };
70
+ };
71
+ const getAuthorizationToken = (headers, authRequired) => {
72
+ const authorization = HttpHeaders.get(headers, "authorization");
73
+ if (Option.isNone(authorization)) {
74
+ return authRequired ? Effect.fail(new UnauthorizedError()) : Effect.succeed(Option.none());
75
+ }
76
+ const [scheme, token] = authorization.value.split(" ");
77
+ if (!scheme || !token || scheme.toLowerCase() !== "bearer") {
78
+ return Effect.fail(new InvalidRequestError("", false));
79
+ }
80
+ return Effect.succeed(Option.some(token));
81
+ };
82
+ const makeResolveConfig = (config) => {
83
+ let cached;
84
+ return Effect.tryPromise({
85
+ try: () => {
86
+ if (!cached) {
87
+ cached = (async () => {
88
+ const discovery = config.issuerBaseURL
89
+ ? await fetchDiscoveryDocumentPromise(config.issuerBaseURL)
90
+ : undefined;
91
+ const issuer = config.issuer ?? discovery?.issuer;
92
+ const jwksUri = config.jwksUri ?? discovery?.jwksUri;
93
+ const secret = config.secret;
94
+ const base = {
95
+ audience: normalizeAudience(config.audience),
96
+ clockTolerance: config.clockTolerance ?? 5,
97
+ issuer,
98
+ maxTokenAge: config.maxTokenAge,
99
+ strict: config.strict ?? false,
100
+ tokenSigningAlg: config.tokenSigningAlg
101
+ };
102
+ if (!issuer && !secret) {
103
+ throw new InvalidRequestError("JWT config requires 'issuer', 'issuerBaseURL', or 'secret'");
104
+ }
105
+ if (!secret) {
106
+ if (!jwksUri) {
107
+ throw new InvalidRequestError("JWT config requires 'jwksUri', 'issuerBaseURL', or 'secret'");
108
+ }
109
+ return {
110
+ ...base,
111
+ key: createRemoteJWKSet(new URL(jwksUri)),
112
+ keyType: "jwks"
113
+ };
114
+ }
115
+ return {
116
+ ...base,
117
+ key: new TextEncoder().encode(secret),
118
+ keyType: "secret"
119
+ };
120
+ })();
121
+ }
122
+ return cached;
123
+ },
124
+ catch: (error) => error instanceof InvalidRequestError || error instanceof InvalidTokenError
125
+ ? error
126
+ : new InvalidTokenError(getErrorMessage(error))
127
+ });
128
+ };
129
+ const verifyToken = (resolveConfig) => (token) => resolveConfig.pipe(Effect.flatMap((config) => {
130
+ const options = {
131
+ clockTolerance: config.clockTolerance,
132
+ ...(config.tokenSigningAlg ? { algorithms: [config.tokenSigningAlg] } : {}),
133
+ ...(config.audience !== undefined ? { audience: config.audience } : {}),
134
+ ...(config.issuer !== undefined ? { issuer: config.issuer } : {}),
135
+ ...(config.maxTokenAge !== undefined ? { maxTokenAge: config.maxTokenAge } : {})
136
+ };
137
+ const verified = config.keyType === "jwks"
138
+ ? Effect.tryPromise({
139
+ try: () => jwtVerify(token, config.key, options).then(({ protectedHeader }) => ({ protectedHeader })),
140
+ catch: (error) => new InvalidTokenError(getErrorMessage(error))
141
+ })
142
+ : Effect.tryPromise({
143
+ try: () => jwtVerify(token, config.key, options).then(({ protectedHeader }) => ({ protectedHeader })),
144
+ catch: (error) => new InvalidTokenError(getErrorMessage(error))
145
+ });
146
+ return verified.pipe(Effect.flatMap(({ protectedHeader }) => {
147
+ const typ = protectedHeader.typ?.toLowerCase().replace(/^application\//, "");
148
+ return config.strict && typ !== "at+jwt"
149
+ ? Effect.fail(new InvalidTokenError("Unexpected 'typ' value"))
150
+ : Effect.void;
151
+ }));
152
+ }));
153
+ export const checkJWTI = (config) => {
154
+ const resolveConfig = makeResolveConfig(config);
155
+ const verify = verifyToken(resolveConfig);
156
+ return Effect.fnUntraced(function* (headers) {
157
+ const token = yield* getAuthorizationToken(headers, config.authRequired !== false);
158
+ if (Option.isNone(token)) {
159
+ return;
160
+ }
161
+ yield* verify(token.value);
162
+ });
163
+ };
164
+ export const checkJwt = (config) => {
165
+ const check = checkJWTI(config);
166
+ return HttpMiddleware.make((app) => Effect.gen(function* () {
167
+ const req = yield* HttpServerRequest.HttpServerRequest;
168
+ const response = yield* check(req.headers).pipe(Effect.catch((error) => HttpServerResponse.json({ message: error.message }, {
169
+ status: error.status,
170
+ headers: HttpHeaders.fromInput(error.headers)
171
+ })));
172
+ if (response) {
173
+ return response;
174
+ }
175
+ return yield* app;
176
+ }));
177
+ };
178
+ export class JWTError extends Data.TaggedClass("JWTError") {
179
+ }
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNwRyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxJQUFJLE1BQU0sYUFBYSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFcEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsRUFBRSxNQUE4QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLGtCQUFrQixFQUFFLDhCQUE4QixLQUFLLHlCQUF5QixXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFDNUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDN0MsRUFBRTtDQUNILENBQUMsQ0FBQTtBQUVGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxLQUFLO0lBQ2pDLE1BQU0sR0FBVyxHQUFHLENBQUE7SUFDcEIsVUFBVSxHQUFXLEdBQUcsQ0FBQTtJQUNqQyxPQUFPLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxDQUFBO0lBRXhELFlBQVksT0FBTyxHQUFHLGNBQWM7UUFDbEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQTtJQUNuQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsaUJB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
@@ -0,0 +1,11 @@
1
+ import * as Effect from "effect-app/Effect";
2
+ import { HttpServerResponse } from "effect-app/http";
3
+ import * as S from "effect-app/Schema";
4
+ import * as Stream from "effect/Stream";
5
+ export declare const makeSSE: <A extends {
6
+ id: any;
7
+ }, SI, SRD, SRE>(schema: S.Codec<A, SI, SRD, SRE>) => <E, R>(events: Stream.Stream<{
8
+ evt: A;
9
+ namespace: string;
10
+ }, E, R>) => Effect.Effect<HttpServerResponse.HttpServerResponse, never, import("effect/Scope").Scope | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never> | Exclude<Exclude<SRD, import("effect/Tracer").ParentSpan>, never> | Exclude<Exclude<SRE, import("effect/Tracer").ParentSpan>, never>>;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDakUsT0FBTyxLQUFLLENBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQU10QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQVN2QyxlQUFPLE1BQU0sT0FBTyxHQUFJLENBQUMsU0FBUztJQUFFLEVBQUUsRUFBRSxHQUFHLENBQUE7Q0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxVQUNqRCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUVqQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxxU0F3RG9DLENBQUEifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/internal/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAe,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AAMtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AASvC,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,GAAG,CAAA;CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,UACjD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,MAEjC,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,CAAC,qSAwDoC,CAAA"}