@effect-app/infra 4.0.0-beta.247 → 4.0.0-beta.249

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 (378) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/ContextProvider.d.ts +34 -0
  3. package/dist/ContextProvider.d.ts.map +1 -0
  4. package/dist/ContextProvider.js +40 -0
  5. package/dist/Emailer/Sendgrid.d.ts +109 -145
  6. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  7. package/dist/Emailer/Sendgrid.js +4 -3
  8. package/dist/Emailer/fake.d.ts +2 -2
  9. package/dist/Emailer/fake.d.ts.map +1 -1
  10. package/dist/Emailer/fake.js +2 -2
  11. package/dist/QueueMaker/SQLQueue.d.ts +2 -2
  12. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  13. package/dist/QueueMaker/SQLQueue.js +4 -4
  14. package/dist/QueueMaker/memQueue.d.ts +2 -2
  15. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  16. package/dist/QueueMaker/memQueue.js +4 -4
  17. package/dist/QueueMaker/sbqueue.d.ts +2 -2
  18. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  19. package/dist/QueueMaker/sbqueue.js +4 -4
  20. package/dist/RequestFiberSet.js +2 -2
  21. package/dist/{adapters/SQL → SQL}/Model.d.ts +2 -2
  22. package/dist/SQL/Model.d.ts.map +1 -0
  23. package/dist/SQL/Model.js +469 -0
  24. package/dist/{adapters/SQL.d.ts → SQL.d.ts} +1 -1
  25. package/dist/SQL.d.ts.map +1 -0
  26. package/dist/{adapters/SQL.js → SQL.js} +1 -1
  27. package/dist/{adapters/ServiceBus.d.ts → ServiceBus.d.ts} +1 -1
  28. package/dist/ServiceBus.d.ts.map +1 -0
  29. package/dist/ServiceBus.js +108 -0
  30. package/dist/Store/ContextMapContainer.d.ts +2 -2
  31. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  32. package/dist/Store/ContextMapContainer.js +2 -2
  33. package/dist/Store/Cosmos/query.d.ts +4 -4
  34. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  35. package/dist/Store/Cosmos/query.js +1 -1
  36. package/dist/Store/Cosmos.d.ts +2 -2
  37. package/dist/Store/Cosmos.d.ts.map +1 -1
  38. package/dist/Store/Cosmos.js +3 -3
  39. package/dist/Store/Disk.d.ts +3 -3
  40. package/dist/Store/Disk.d.ts.map +1 -1
  41. package/dist/Store/Disk.js +2 -2
  42. package/dist/Store/Memory.d.ts +3 -3
  43. package/dist/Store/Memory.d.ts.map +1 -1
  44. package/dist/Store/Memory.js +2 -2
  45. package/dist/Store/SQL/Pg.d.ts +2 -2
  46. package/dist/Store/SQL/Pg.d.ts.map +1 -1
  47. package/dist/Store/SQL/Pg.js +2 -2
  48. package/dist/Store/SQL/query.d.ts +3 -3
  49. package/dist/Store/SQL/query.d.ts.map +1 -1
  50. package/dist/Store/SQL/query.js +1 -1
  51. package/dist/Store/SQL.d.ts +3 -3
  52. package/dist/Store/SQL.d.ts.map +1 -1
  53. package/dist/Store/SQL.js +2 -2
  54. package/dist/Store/codeFilter.d.ts +4 -4
  55. package/dist/Store/codeFilter.d.ts.map +1 -1
  56. package/dist/Store/codeFilter.js +1 -1
  57. package/dist/Store/index.d.ts +3 -4
  58. package/dist/Store/index.d.ts.map +1 -1
  59. package/dist/Store/index.js +2 -3
  60. package/dist/Store/utils.d.ts +2 -2
  61. package/dist/Store/utils.d.ts.map +1 -1
  62. package/dist/Store/utils.js +1 -1
  63. package/dist/{api/codec.d.ts → codec.d.ts} +1 -1
  64. package/dist/codec.d.ts.map +1 -0
  65. package/dist/codec.js +5 -0
  66. package/dist/{adapters/cosmos-client.d.ts → cosmos-client.d.ts} +1 -1
  67. package/dist/cosmos-client.d.ts.map +1 -0
  68. package/dist/cosmos-client.js +11 -0
  69. package/dist/errorReporter.d.ts +1 -1
  70. package/dist/errorReporter.d.ts.map +1 -1
  71. package/dist/errorReporter.js +2 -2
  72. package/dist/index.d.ts +3 -2
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +3 -2
  75. package/dist/{api/internal → internal}/RequestContextMiddleware.d.ts +2 -2
  76. package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
  77. package/dist/internal/RequestContextMiddleware.js +46 -0
  78. package/dist/{api/internal → internal}/auth.d.ts +1 -1
  79. package/dist/internal/auth.d.ts.map +1 -0
  80. package/dist/internal/auth.js +180 -0
  81. package/dist/{api/internal → internal}/events.d.ts +1 -1
  82. package/dist/internal/events.d.ts.map +1 -0
  83. package/dist/internal/events.js +49 -0
  84. package/dist/{api/internal → internal}/health.d.ts +1 -1
  85. package/dist/internal/health.d.ts.map +1 -0
  86. package/dist/internal/health.js +5 -0
  87. package/dist/layerUtils.d.ts +32 -0
  88. package/dist/layerUtils.d.ts.map +1 -0
  89. package/dist/layerUtils.js +17 -0
  90. package/dist/logger/jsonLogger.d.ts +1 -1
  91. package/dist/logger/jsonLogger.d.ts.map +1 -1
  92. package/dist/logger/jsonLogger.js +2 -2
  93. package/dist/logger/logFmtLogger.d.ts +1 -1
  94. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  95. package/dist/logger/logFmtLogger.js +2 -2
  96. package/dist/logger/shared.d.ts +2 -2
  97. package/dist/logger/shared.d.ts.map +1 -1
  98. package/dist/logger/shared.js +2 -2
  99. package/dist/logger.d.ts +1 -1
  100. package/dist/{adapters/memQueue.d.ts → memQueue.d.ts} +1 -1
  101. package/dist/memQueue.d.ts.map +1 -0
  102. package/dist/memQueue.js +21 -0
  103. package/dist/{api/middlewares.d.ts → middlewares.d.ts} +1 -1
  104. package/dist/middlewares.d.ts.map +1 -0
  105. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  106. package/dist/{adapters/mongo-client.d.ts → mongo-client.d.ts} +1 -1
  107. package/dist/mongo-client.d.ts.map +1 -0
  108. package/dist/mongo-client.js +15 -0
  109. package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +1 -1
  110. package/dist/redis-client.d.ts.map +1 -0
  111. package/dist/redis-client.js +98 -0
  112. package/dist/reportError.d.ts +4 -0
  113. package/dist/reportError.d.ts.map +1 -0
  114. package/dist/reportError.js +28 -0
  115. package/dist/{api/routing → routing}/middleware/RouterMiddleware.d.ts +1 -1
  116. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  117. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  118. package/dist/{api/routing → routing}/middleware/middleware.d.ts +2 -2
  119. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  120. package/dist/routing/middleware/middleware.js +128 -0
  121. package/dist/{api/routing → routing}/middleware.d.ts +1 -1
  122. package/dist/routing/middleware.d.ts.map +1 -0
  123. package/dist/{api/routing → routing}/middleware.js +1 -1
  124. package/dist/{api/routing → routing}/schema/jwt.d.ts +1 -1
  125. package/dist/routing/schema/jwt.d.ts.map +1 -0
  126. package/dist/routing/schema/jwt.js +13 -0
  127. package/dist/routing/tsort.d.ts +8 -0
  128. package/dist/routing/tsort.d.ts.map +1 -0
  129. package/dist/routing/tsort.js +51 -0
  130. package/dist/{api/routing → routing}/utils.d.ts +1 -1
  131. package/dist/routing/utils.d.ts.map +1 -0
  132. package/dist/routing/utils.js +45 -0
  133. package/dist/routing.d.ts +184 -0
  134. package/dist/routing.d.ts.map +1 -0
  135. package/dist/{api/routing.js → routing.js} +1 -1
  136. package/dist/{api/setupRequest.d.ts → setupRequest.d.ts} +2 -2
  137. package/dist/setupRequest.d.ts.map +1 -0
  138. package/dist/setupRequest.js +70 -0
  139. package/dist/{api/util.d.ts → util.d.ts} +1 -1
  140. package/dist/util.d.ts.map +1 -0
  141. package/dist/util.js +14 -0
  142. package/examples/query.ts +2 -2
  143. package/package.json +84 -200
  144. package/src/Emailer/Sendgrid.ts +20 -5
  145. package/src/Emailer/fake.ts +1 -1
  146. package/src/QueueMaker/SQLQueue.ts +3 -3
  147. package/src/QueueMaker/memQueue.ts +3 -3
  148. package/src/QueueMaker/sbqueue.ts +3 -3
  149. package/src/RequestFiberSet.ts +1 -1
  150. package/src/{adapters/SQL → SQL}/Model.ts +1 -1
  151. package/src/{adapters/ServiceBus.ts → ServiceBus.ts} +1 -1
  152. package/src/Store/ContextMapContainer.ts +1 -1
  153. package/src/Store/Cosmos/query.ts +3 -3
  154. package/src/Store/Cosmos.ts +4 -4
  155. package/src/Store/Disk.ts +2 -2
  156. package/src/Store/Memory.ts +4 -4
  157. package/src/Store/SQL/Pg.ts +3 -3
  158. package/src/Store/SQL/query.ts +2 -2
  159. package/src/Store/SQL.ts +3 -3
  160. package/src/Store/codeFilter.ts +3 -3
  161. package/src/Store/index.ts +2 -4
  162. package/src/Store/utils.ts +1 -1
  163. package/src/errorReporter.ts +1 -1
  164. package/src/index.ts +2 -1
  165. package/src/{api/internal → internal}/RequestContextMiddleware.ts +3 -3
  166. package/src/{api/internal → internal}/events.ts +2 -2
  167. package/src/{api/layerUtils.ts → layerUtils.ts} +1 -1
  168. package/src/logger/jsonLogger.ts +1 -1
  169. package/src/logger/logFmtLogger.ts +1 -1
  170. package/src/logger/shared.ts +1 -1
  171. package/src/{adapters/redis-client.ts → redis-client.ts} +1 -1
  172. package/src/{api/reportError.ts → reportError.ts} +1 -1
  173. package/src/{api/routing → routing}/middleware/middleware.ts +4 -4
  174. package/src/{api/routing.ts → routing.ts} +13 -13
  175. package/src/{api/setupRequest.ts → setupRequest.ts} +3 -3
  176. package/test/auth.test.ts +1 -1
  177. package/test/contextProvider.test.ts +1 -1
  178. package/test/controller.test.ts +3 -3
  179. package/test/cosmos-query.test.ts +1 -1
  180. package/test/dist/controller.test.d.ts.map +1 -1
  181. package/test/dist/query.test.d.ts.map +1 -1
  182. package/test/dist/rawQuery.test.d.ts.map +1 -1
  183. package/test/layerUtils.test.ts +1 -1
  184. package/test/query.test.ts +4 -4
  185. package/test/rawQuery.test.ts +4 -4
  186. package/test/repository-ext.test.ts +3 -3
  187. package/test/router-generator.test.ts +3 -3
  188. package/test/routing-interruptibility.test.ts +2 -2
  189. package/test/rpc-context-map-streaming.test.ts +3 -3
  190. package/test/rpc-e2e-invalidation.test.ts +2 -2
  191. package/test/rpc-multi-middleware.test.ts +1 -1
  192. package/test/rpc-stream-fullstack.test.ts +2 -2
  193. package/test/validateSample.test.ts +3 -3
  194. package/dist/Emailer/service.d.ts +0 -64
  195. package/dist/Emailer/service.d.ts.map +0 -1
  196. package/dist/Emailer/service.js +0 -7
  197. package/dist/Emailer.d.ts +0 -2
  198. package/dist/Emailer.d.ts.map +0 -1
  199. package/dist/Emailer.js +0 -2
  200. package/dist/Model/Repository/Registry.d.ts +0 -21
  201. package/dist/Model/Repository/Registry.d.ts.map +0 -1
  202. package/dist/Model/Repository/Registry.js +0 -18
  203. package/dist/Model/Repository/ext.d.ts +0 -60
  204. package/dist/Model/Repository/ext.d.ts.map +0 -1
  205. package/dist/Model/Repository/ext.js +0 -122
  206. package/dist/Model/Repository/internal/internal.d.ts +0 -62
  207. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  208. package/dist/Model/Repository/internal/internal.js +0 -398
  209. package/dist/Model/Repository/legacy.d.ts +0 -21
  210. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  211. package/dist/Model/Repository/legacy.js +0 -2
  212. package/dist/Model/Repository/makeRepo.d.ts +0 -53
  213. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  214. package/dist/Model/Repository/makeRepo.js +0 -27
  215. package/dist/Model/Repository/service.d.ts +0 -97
  216. package/dist/Model/Repository/service.d.ts.map +0 -1
  217. package/dist/Model/Repository/service.js +0 -2
  218. package/dist/Model/Repository/validation.d.ts +0 -71
  219. package/dist/Model/Repository/validation.d.ts.map +0 -1
  220. package/dist/Model/Repository/validation.js +0 -32
  221. package/dist/Model/Repository.d.ts +0 -7
  222. package/dist/Model/Repository.d.ts.map +0 -1
  223. package/dist/Model/Repository.js +0 -7
  224. package/dist/Model/dsl.d.ts +0 -33
  225. package/dist/Model/dsl.d.ts.map +0 -1
  226. package/dist/Model/dsl.js +0 -43
  227. package/dist/Model/filter/filterApi.d.ts +0 -30
  228. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  229. package/dist/Model/filter/filterApi.js +0 -2
  230. package/dist/Model/filter/types/errors.d.ts +0 -29
  231. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  232. package/dist/Model/filter/types/errors.js +0 -2
  233. package/dist/Model/filter/types/fields.d.ts +0 -15
  234. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  235. package/dist/Model/filter/types/fields.js +0 -2
  236. package/dist/Model/filter/types/path/common.d.ts +0 -316
  237. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  238. package/dist/Model/filter/types/path/common.js +0 -2
  239. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  240. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  241. package/dist/Model/filter/types/path/eager.js +0 -31
  242. package/dist/Model/filter/types/path/index.d.ts +0 -4
  243. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  244. package/dist/Model/filter/types/path/index.js +0 -3
  245. package/dist/Model/filter/types/utils.d.ts +0 -79
  246. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  247. package/dist/Model/filter/types/utils.js +0 -2
  248. package/dist/Model/filter/types/validator.d.ts +0 -30
  249. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  250. package/dist/Model/filter/types/validator.js +0 -2
  251. package/dist/Model/filter/types.d.ts +0 -5
  252. package/dist/Model/filter/types.d.ts.map +0 -1
  253. package/dist/Model/filter/types.js +0 -7
  254. package/dist/Model/query/dsl.d.ts +0 -446
  255. package/dist/Model/query/dsl.d.ts.map +0 -1
  256. package/dist/Model/query/dsl.js +0 -339
  257. package/dist/Model/query/new-kid-interpreter.d.ts +0 -136
  258. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  259. package/dist/Model/query/new-kid-interpreter.js +0 -336
  260. package/dist/Model/query.d.ts +0 -15
  261. package/dist/Model/query.d.ts.map +0 -1
  262. package/dist/Model/query.js +0 -3
  263. package/dist/Model.d.ts +0 -5
  264. package/dist/Model.d.ts.map +0 -1
  265. package/dist/Model.js +0 -5
  266. package/dist/QueueMaker/service.d.ts +0 -13
  267. package/dist/QueueMaker/service.d.ts.map +0 -1
  268. package/dist/QueueMaker/service.js +0 -4
  269. package/dist/RequestContext.d.ts +0 -103
  270. package/dist/RequestContext.d.ts.map +0 -1
  271. package/dist/RequestContext.js +0 -49
  272. package/dist/Store/service.d.ts +0 -138
  273. package/dist/Store/service.d.ts.map +0 -1
  274. package/dist/Store/service.js +0 -95
  275. package/dist/Store.d.ts +0 -2
  276. package/dist/Store.d.ts.map +0 -1
  277. package/dist/Store.js +0 -2
  278. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  279. package/dist/adapters/SQL/Model.js +0 -469
  280. package/dist/adapters/SQL.d.ts.map +0 -1
  281. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  282. package/dist/adapters/ServiceBus.js +0 -108
  283. package/dist/adapters/cosmos-client.d.ts.map +0 -1
  284. package/dist/adapters/cosmos-client.js +0 -11
  285. package/dist/adapters/index.d.ts +0 -8
  286. package/dist/adapters/index.d.ts.map +0 -1
  287. package/dist/adapters/index.js +0 -8
  288. package/dist/adapters/logger.d.ts +0 -9
  289. package/dist/adapters/logger.d.ts.map +0 -1
  290. package/dist/adapters/logger.js +0 -3
  291. package/dist/adapters/memQueue.d.ts.map +0 -1
  292. package/dist/adapters/memQueue.js +0 -21
  293. package/dist/adapters/mongo-client.d.ts.map +0 -1
  294. package/dist/adapters/mongo-client.js +0 -15
  295. package/dist/adapters/redis-client.d.ts.map +0 -1
  296. package/dist/adapters/redis-client.js +0 -98
  297. package/dist/api/ContextProvider.d.ts +0 -34
  298. package/dist/api/ContextProvider.d.ts.map +0 -1
  299. package/dist/api/ContextProvider.js +0 -40
  300. package/dist/api/codec.d.ts.map +0 -1
  301. package/dist/api/codec.js +0 -5
  302. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  303. package/dist/api/internal/RequestContextMiddleware.js +0 -46
  304. package/dist/api/internal/auth.d.ts.map +0 -1
  305. package/dist/api/internal/auth.js +0 -180
  306. package/dist/api/internal/events.d.ts.map +0 -1
  307. package/dist/api/internal/events.js +0 -49
  308. package/dist/api/internal/health.d.ts.map +0 -1
  309. package/dist/api/internal/health.js +0 -5
  310. package/dist/api/layerUtils.d.ts +0 -32
  311. package/dist/api/layerUtils.d.ts.map +0 -1
  312. package/dist/api/layerUtils.js +0 -17
  313. package/dist/api/middlewares.d.ts.map +0 -1
  314. package/dist/api/reportError.d.ts +0 -4
  315. package/dist/api/reportError.d.ts.map +0 -1
  316. package/dist/api/reportError.js +0 -28
  317. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  318. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  319. package/dist/api/routing/middleware/middleware.js +0 -128
  320. package/dist/api/routing/middleware.d.ts.map +0 -1
  321. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  322. package/dist/api/routing/schema/jwt.js +0 -13
  323. package/dist/api/routing/tsort.d.ts +0 -8
  324. package/dist/api/routing/tsort.d.ts.map +0 -1
  325. package/dist/api/routing/tsort.js +0 -51
  326. package/dist/api/routing/utils.d.ts.map +0 -1
  327. package/dist/api/routing/utils.js +0 -45
  328. package/dist/api/routing.d.ts +0 -184
  329. package/dist/api/routing.d.ts.map +0 -1
  330. package/dist/api/setupRequest.d.ts.map +0 -1
  331. package/dist/api/setupRequest.js +0 -70
  332. package/dist/api/util.d.ts.map +0 -1
  333. package/dist/api/util.js +0 -14
  334. package/src/Emailer/service.ts +0 -62
  335. package/src/Emailer.ts +0 -1
  336. package/src/Model/Repository/Registry.ts +0 -34
  337. package/src/Model/Repository/ext.ts +0 -375
  338. package/src/Model/Repository/internal/internal.ts +0 -692
  339. package/src/Model/Repository/legacy.ts +0 -29
  340. package/src/Model/Repository/makeRepo.ts +0 -144
  341. package/src/Model/Repository/service.ts +0 -639
  342. package/src/Model/Repository/validation.ts +0 -31
  343. package/src/Model/Repository.ts +0 -6
  344. package/src/Model/dsl.ts +0 -129
  345. package/src/Model/filter/filterApi.ts +0 -60
  346. package/src/Model/filter/types/errors.ts +0 -47
  347. package/src/Model/filter/types/fields.ts +0 -50
  348. package/src/Model/filter/types/path/common.ts +0 -404
  349. package/src/Model/filter/types/path/eager.ts +0 -297
  350. package/src/Model/filter/types/path/index.ts +0 -4
  351. package/src/Model/filter/types/utils.ts +0 -128
  352. package/src/Model/filter/types/validator.ts +0 -46
  353. package/src/Model/filter/types.ts +0 -6
  354. package/src/Model/query/dsl.ts +0 -2546
  355. package/src/Model/query/new-kid-interpreter.ts +0 -484
  356. package/src/Model/query.ts +0 -13
  357. package/src/Model.ts +0 -4
  358. package/src/QueueMaker/service.ts +0 -19
  359. package/src/RequestContext.ts +0 -62
  360. package/src/Store/service.ts +0 -233
  361. package/src/Store.ts +0 -1
  362. package/src/adapters/index.ts +0 -7
  363. package/src/adapters/logger.ts +0 -3
  364. /package/src/{api/ContextProvider.ts → ContextProvider.ts} +0 -0
  365. /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
  366. /package/src/{api/codec.ts → codec.ts} +0 -0
  367. /package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +0 -0
  368. /package/src/{api/internal → internal}/auth.ts +0 -0
  369. /package/src/{api/internal → internal}/health.ts +0 -0
  370. /package/src/{adapters/memQueue.ts → memQueue.ts} +0 -0
  371. /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
  372. /package/src/{adapters/mongo-client.ts → mongo-client.ts} +0 -0
  373. /package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +0 -0
  374. /package/src/{api/routing → routing}/middleware.ts +0 -0
  375. /package/src/{api/routing → routing}/schema/jwt.ts +0 -0
  376. /package/src/{api/routing → routing}/tsort.ts +0 -0
  377. /package/src/{api/routing → routing}/utils.ts +0 -0
  378. /package/src/{api/util.ts → util.ts} +0 -0
@@ -1,49 +0,0 @@
1
- import * as Effect from "effect-app/Effect";
2
- import { HttpHeaders, HttpServerResponse } from "effect-app/http";
3
- import * as S from "effect-app/Schema";
4
- import * as Duration from "effect/Duration";
5
- import { pipe } from "effect/Function";
6
- import * as Schedule from "effect/Schedule";
7
- import * as Stream from "effect/Stream";
8
- import { reportError } from "../../errorReporter.js";
9
- import { storeId } from "../../Store/Memory.js";
10
- import { setupStreamingRequestContextFromCurrent } from "../setupRequest.js";
11
- // Tell the client to retry every 10 seconds if connectivity is lost
12
- const setRetry = Stream.succeed("retry: 10000");
13
- const keepAlive = Stream.fromEffectSchedule(Effect.succeed(":keep-alive"), Schedule.fixed(Duration.seconds(15)));
14
- let connId = BigInt(0);
15
- export const makeSSE = (schema) => (events) => Effect
16
- .gen(function* () {
17
- const id = connId++;
18
- const ctx = yield* Effect.context();
19
- const res = HttpServerResponse.stream(
20
- // workaround for different scoped behaviour for streams in Bun
21
- // https://discord.com/channels/795981131316985866/1098177242598756412/1389646879675125861
22
- Effect
23
- .gen(function* () {
24
- const ns = yield* storeId;
25
- yield* Effect.annotateCurrentSpan({ "network.connection.id": id.toString() });
26
- yield* Effect.logInfo("$ start listening to events, id: " + id.toString() + ", ns: " + ns);
27
- yield* Effect.addFinalizer(() => Effect.logInfo("$ end listening to events, id: " + id.toString() + ", ns: " + ns));
28
- const enc = new TextEncoder();
29
- const encode = S.encodeEffect(S.fromJsonString(S.toCodecJson(schema)));
30
- const eventStream = Stream.mapEffect(Stream.filter(events, (_) => _.namespace === ns), (_) => encode(_.evt)
31
- .pipe(Effect.map((data) => `id: ${_.evt.id}\ndata: ${data}`)));
32
- const stream = pipe(setRetry, Stream.merge(keepAlive),
33
- // Keep this unary so pipe receives a function, not a Stream value.
34
- (self) => Stream.merge(self, eventStream, { haltStrategy: "either" }), Stream.tapCause((cause) => Effect.logError("SSE error, id: " + id.toString() + ", ns: " + ns, cause)), Stream.map((_) => enc.encode(_ + "\n\n")));
35
- return stream;
36
- })
37
- .pipe(Stream.unwrap, Stream.tapCause(reportError("Request")), Stream.provide(ctx)), {
38
- contentType: "text/event-stream",
39
- headers: HttpHeaders.fromInput({
40
- "content-type": "text/event-stream",
41
- "cache-control": "no-cache",
42
- "x-accel-buffering": "no",
43
- "connection": "keep-alive" // if (req.httpVersion !== "2.0")
44
- })
45
- });
46
- return res;
47
- })
48
- .pipe(Effect.tapCause(reportError("Request")), setupStreamingRequestContextFromCurrent("events"));
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9pbnRlcm5hbC9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDakUsT0FBTyxLQUFLLENBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDL0MsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFNUUsb0VBQW9FO0FBQ3BFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUE7QUFDL0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUVoSCxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFdEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQ3JCLE1BQWdDLEVBQ2hDLEVBQUUsQ0FDSixDQUFPLE1BQTBELEVBQUUsRUFBRSxDQUNuRSxNQUFNO0tBQ0gsR0FBRyxDQUFD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
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/api/internal/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,oMAE3C"}
@@ -1,5 +0,0 @@
1
- import { HttpMiddleware, HttpServerResponse } from "effect-app/http";
2
- export function serverHealth(version) {
3
- return HttpServerResponse.json({ version }).pipe(HttpMiddleware.withLoggerDisabled);
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9pbnRlcm5hbC9oZWFsdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRXBFLE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZTtJQUMxQyxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0FBQ3JGLENBQUMifQ==
@@ -1,32 +0,0 @@
1
- import type { NonEmptyReadonlyArray } from "effect-app/Array";
2
- import * as Context from "effect-app/Context";
3
- import * as Effect from "effect-app/Effect";
4
- import type * as Layer from "effect-app/Layer";
5
- import * as Option from "effect-app/Option";
6
- export declare namespace LayerUtils {
7
- type GetLayersSuccess<Layers extends ReadonlyArray<Layer.Any>> = Layers extends NonEmptyReadonlyArray<Layer.Any> ? {
8
- [k in keyof Layers]: Layer.Success<Layers[k]>;
9
- }[number] : Layer.Success<Layers[number]>;
10
- type GetLayersContext<Layers extends ReadonlyArray<Layer.Any>> = Layers extends NonEmptyReadonlyArray<Layer.Any> ? {
11
- [k in keyof Layers]: Layer.Services<Layers[k]>;
12
- }[number] : Layer.Services<Layers[number]>;
13
- type GetLayersError<Layers extends ReadonlyArray<Layer.Any>> = Layers extends NonEmptyReadonlyArray<Layer.Any> ? {
14
- [k in keyof Layers]: Layer.Error<Layers[k]>;
15
- }[number] : Layer.Error<Layers[number]>;
16
- }
17
- export type ContextTagWithDefault<Id, A, LayerE, LayerR> = Context.Service<Id, A> & {
18
- Default: Layer.Layer<Id, LayerE, LayerR>;
19
- };
20
- export declare namespace ContextTagWithDefault {
21
- type Base<A> = {
22
- readonly Service: A;
23
- } & {
24
- Default: Layer.Layer<any, any, any>;
25
- };
26
- }
27
- export type GetContext<T> = T extends Context.Context<infer Y> ? Y : never;
28
- export declare const mergeContexts: <T extends readonly {
29
- maker: any;
30
- handle: Effect.Effect<Context.Context<any> | Option.Option<Context.Context<any>>>;
31
- }[]>(makers: T) => Effect.Effect<Context.Context<Effect.Success<T[number]["handle"]>>, never, never>;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJVdGlscy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9sYXllclV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDN0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBTzNDLHlCQUFpQixVQUFVLENBQUMsQ0FBQztJQUMzQixLQUFZLGdCQUFnQixDQUFDLE1BQU0sU0FBUyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sU0FDNUUscUJBQXFCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHO1NBQ2hDLENBQUMsSUFBSSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM5QyxDQUFDLE1BQU0sQ0FBQyxHQUNQLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFFakMsS0FBWSxnQkFBZ0IsQ0FBQyxNQUFNLFNBQVMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLFNBQzVFLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRztTQUNoQyxDQUFDLElBQUksTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDL0MsQ0FBQyxNQUFNLENBQUMsR0FDUCxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBRWxDLEtBQVksY0FBYyxDQUFDLE1BQU0sU0FBUyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sU0FBUyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ2pIO1NBQ0MsQ0FBQyxJQUFJLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzVDLENBQUMsTUFBTSxDQUFDLEdBQ1AsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtDQUNoQztBQUVELE1BQU0sTUFBTSxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQ25ELE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUN0QjtJQUNBLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7Q0FDekMsQ0FBQTtBQUVILHlCQUFpQixxQkFBcUIsQ0FBQyxDQUFDO0lBQ3RDLEtBQVksSUFBSSxDQUFDLENBQUMsSUFBSTtRQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0tBQUUsR0FBRztRQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7S0FBRSxDQUFBO0NBQ3hGO0FBRUQsTUFBTSxNQUFNLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO0FBRTFFLGVBQU8sTUFBTSxhQUFhLEdBRXRCLENBQUMsU0FBUyxTQUFTO0lBQ2pCLEtBQUssRUFBRSxHQUFHLENBQUE7SUFDVixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7Q0FDbEYsRUFBRSxpR0FrQk4sQ0FBQSJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"layerUtils.d.ts","sourceRoot":"","sources":["../../src/api/layerUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAO3C,yBAAiB,UAAU,CAAC,CAAC;IAC3B,KAAY,gBAAgB,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,SAC5E,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;SAChC,CAAC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC9C,CAAC,MAAM,CAAC,GACP,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAEjC,KAAY,gBAAgB,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,SAC5E,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;SAChC,CAAC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC/C,CAAC,MAAM,CAAC,GACP,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAElC,KAAY,cAAc,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,SAAS,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,GACjH;SACC,CAAC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC5C,CAAC,MAAM,CAAC,GACP,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;CAChC;AAED,MAAM,MAAM,qBAAqB,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,IACnD,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,GACtB;IACA,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACzC,CAAA;AAEH,yBAAiB,qBAAqB,CAAC,CAAC;IACtC,KAAY,IAAI,CAAC,CAAC,IAAI;QAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KAAE,CAAA;CACxF;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE1E,eAAO,MAAM,aAAa,GAEtB,CAAC,SAAS,SAAS;IACjB,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CAClF,EAAE,iGAkBN,CAAA"}
@@ -1,17 +0,0 @@
1
- import * as Context from "effect-app/Context";
2
- import * as Effect from "effect-app/Effect";
3
- import * as Option from "effect-app/Option";
4
- import { InfraLogger } from "../logger.js";
5
- export const mergeContexts = Effect.fnUntraced(function* (makers) {
6
- let context = Context.empty();
7
- for (const mw of makers) {
8
- const ctx = yield* mw.handle.pipe(Effect.provide(context));
9
- const moreContext = Context.isContext(ctx) ? Option.some(ctx) : ctx;
10
- yield* InfraLogger.logDebug("Built dynamic context for middleware" + (mw.maker.key ?? mw.maker), Option.map(moreContext, (c) => c.toJSON().services));
11
- if (moreContext.value) {
12
- context = Context.merge(context, moreContext.value);
13
- }
14
- }
15
- return context;
16
- });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbGF5ZXJVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFFM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBc0MxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FDNUMsUUFBUSxDQUFDLEVBTVAsTUFBUztJQUVULElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM3QixLQUFLLE1BQU0sRUFBRSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUMxRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7UUFDbkUsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FDekIsc0NBQXNDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQ25FLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBRSxDQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQzdELENBQUE7UUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxPQUErRCxDQUFBO0FBQ3hFLENBQUMsQ0FDRixDQUFBIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/api/middlewares.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wCAAwC,CAAA"}
@@ -1,4 +0,0 @@
1
- import * as Effect from "effect-app/Effect";
2
- export declare const reportRequestError: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
3
- export declare const reportUnknownRequestError: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvcmVwb3J0RXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQTRCM0MsZUFBTyxNQUFNLGtCQUFrQixHQVJyQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLDJCQVFXLENBQUE7QUFDMUQsZUFBTyxNQUFNLHlCQUF5QixHQVQ1QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLDJCQVN3QixDQUFBIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"reportError.d.ts","sourceRoot":"","sources":["../../src/api/reportError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AA4B3C,eAAO,MAAM,kBAAkB,GARrB,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BAQW,CAAA;AAC1D,eAAO,MAAM,yBAAyB,GAT5B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BASwB,CAAA"}
@@ -1,28 +0,0 @@
1
- import * as Effect from "effect-app/Effect";
2
- import * as Cause from "effect/Cause";
3
- import { logError, reportError } from "../errorReporter.js";
4
- // const onExitReportError = (name: string, unknownOnly?: boolean) => {
5
- // const report = reportError(name)
6
- // const log = logError(name)
7
- // return <A, E, R>(self: Effect.Effect<A, E, R>) =>
8
- // Effect.onExit(self, (exit) =>
9
- // Exit.isFailure(exit)
10
- // ? unknownOnly
11
- // ? Cause.hasInterruptsOnly(exit.cause) || Cause.isDie(exit.cause)
12
- // ? report(exit.cause)
13
- // : log(exit.cause)
14
- // : report(exit.cause)
15
- // : Effect.void)
16
- // }
17
- const tapErrorCause = (name, unknownOnly) => {
18
- const report = reportError(name);
19
- const log = logError(name);
20
- return (self) => Effect.tapCause(self, (cause) => unknownOnly
21
- ? Cause.hasFails(cause)
22
- ? log(cause)
23
- : report(cause)
24
- : report(cause));
25
- };
26
- export const reportRequestError = tapErrorCause("request");
27
- export const reportUnknownRequestError = tapErrorCause("request", true);
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3JlcG9ydEVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUUzRCx1RUFBdUU7QUFDdkUscUNBQXFDO0FBQ3JDLCtCQUErQjtBQUMvQixzREFBc0Q7QUFDdEQsb0NBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3Qix3QkFBd0I7QUFDeEIsNkVBQTZFO0FBQzdFLG1DQUFtQztBQUNuQyxnQ0FBZ0M7QUFDaEMsaUNBQWlDO0FBQ2pDLHlCQUF5QjtBQUN6QixJQUFJO0FBQ0osTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsV0FBcUIsRUFBRSxFQUFFO0lBQzVELE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNoQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDMUIsT0FBTyxDQUFVLElBQTRCLEVBQUUsRUFBRSxDQUMvQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzlCLFdBQVc7UUFDVCxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDWixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFDeEIsQ0FBQyxDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQzFELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUEifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"RouterMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/RouterMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACxF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAKnE,MAAM,MAAM,gBAAgB,CAC1B,IAAI,EACJ,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,qFAAqF;AAClJ,eAAe,EAAE,iDAAiD;AAClE,eAAe,EAAE,gDAAgD;AACjE,gBAAgB,EAAE,qCAAqC;AACvD,gBAAgB,EAAE,0CAA0C;AAC5D,iBAAiB,EAAE,qCAAqC;AACxD,gBAAgB,IAEd,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,GACjF;IACA,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;IACrE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC/F,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAC9C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mCAAmC,EAAW,iBAAiB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACjJ,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAIlE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAMzD,eAAO,MAAM,WAAW,+CAMvB,CAAA;AAED,eAAO,MAAM,0BAA0B,mDAGtC,CAAA;AAKD,eAAO,MAAM,WAAW,wCAGvB,CAAA;AAED,eAAO,MAAM,uCAAuC,gEAcnD,CAAA;AAED,eAAO,MAAM,oBAAoB,0DA2DE,CAAA;AAEnC,eAAO,MAAM,qBAAqB,2DAQC,CAAA;AAEnC,eAAO,MAAM,6BAA6B,6IAKzC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,kEAAkD,CAAA;AAExF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,4BAA4B;eACrB,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,KAAK;QAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE;iGASvF,CAAA"}
@@ -1,128 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { ConfigureInterruptibilityMiddleware, DevMode, DevModeMiddleware, LoggerMiddleware, RequestCacheMiddleware } from "effect-app/middleware";
3
- import { RpcContextMap } from "effect-app/rpc";
4
- import { pretty } from "effect-app/utils";
5
- import * as Array from "effect/Array";
6
- import * as Cause from "effect/Cause";
7
- import * as Config from "effect/Config";
8
- import * as Context from "effect/Context";
9
- import * as Effect from "effect/Effect";
10
- import * as Layer from "effect/Layer";
11
- import * as Schema from "effect/Schema";
12
- import { logError, reportError } from "../../../errorReporter.js";
13
- import { InfraLogger } from "../../../logger.js";
14
- import { WithNsTransaction } from "../../../Store/SQL.js";
15
- const logRequestError = logError("Request");
16
- const reportRequestError = reportError("Request");
17
- // TODO: do we need this as middleware or just as layer?
18
- export const DevModeLive = Layer.effect(DevMode, Effect.gen(function* () {
19
- const env = yield* Config.string("env").pipe(Config.withDefault("local-dev"));
20
- return env !== "prod";
21
- }));
22
- export const RequestCacheMiddlewareLive = Layer.succeed(RequestCacheMiddleware, (effect) => effect);
23
- const isOptimisticConcurrencyException = (input) => typeof input === "object" && input !== null && "_tag" in input && input._tag === "OptimisticConcurrencyException";
24
- export const RequestType = Context.Reference("@effect-app/infra/api/routing/RequestType", { defaultValue: () => "query" });
25
- export const ConfigureInterruptibilityMiddlewareLive = Layer.effect(ConfigureInterruptibilityMiddleware, Effect.gen(function* () {
26
- return (effect, { rpc }) => {
27
- const requestType = Context.get(rpc.annotations, RequestType);
28
- const isCommand = requestType === "command";
29
- effect = isCommand
30
- ? Effect.retry(effect, { times: 1, while: isOptimisticConcurrencyException })
31
- : Effect.interruptible(effect);
32
- return effect;
33
- };
34
- }));
35
- export const LoggerMiddlewareLive = Layer
36
- .effect(LoggerMiddleware, Effect.gen(function* () {
37
- const devMode = yield* DevMode;
38
- return (effect, { headers, payload, rpc }) => Effect
39
- .annotateCurrentSpan({
40
- "rpc.method": rpc._tag,
41
- "rpc.request.payload": typeof payload === "object" && payload !== null
42
- ? Object.entries(payload).reduce((prev, [key, value]) => {
43
- prev[key] = key === "password"
44
- ? "<redacted>"
45
- : typeof value === "string" || typeof value === "number" || typeof value === "boolean"
46
- ? typeof value === "string" && value.length > 256
47
- ? (value.substring(0, 253) + "...")
48
- : value
49
- : Array.isArray(value)
50
- ? `Array[${value.length}]`
51
- : value === null || value === undefined
52
- ? `${value}`
53
- : typeof value === "object" && value
54
- ? `Object[${Object.keys(value).length}]`
55
- : typeof value;
56
- return prev;
57
- }, {})
58
- : payload
59
- })
60
- .pipe(Effect.andThen(effect),
61
- // TODO: support SchemaError if the error channel of the request allows it.. but who would want that?
62
- Effect.catch((_) => Schema.isSchemaError(_) ? Effect.die(_) : Effect.fail(_)), Effect.tapCause((cause) => Cause.hasFails(cause) ? logRequestError(cause) : Effect.void), Effect.tapCauseIf(Cause.hasDies, (cause) => Effect
63
- .all([
64
- reportRequestError(cause, {
65
- action: rpc._tag
66
- }),
67
- InfraLogger
68
- .logError("Finished request", cause)
69
- .pipe(Effect.annotateLogs({
70
- action: rpc._tag,
71
- req: pretty(payload),
72
- headers: pretty(headers)
73
- // resHeaders: pretty(
74
- // Object
75
- // .entries(headers)
76
- // .reduce((prev, [key, value]) => {
77
- // prev[key] = value && typeof value === "string" ? snipString(value) : value
78
- // return prev
79
- // }, {} as Record<string, any>)
80
- // )
81
- }))
82
- ])), devMode ? (_) => _ : Effect.catchDefect(() => Effect.die("Internal Server Error")));
83
- }))
84
- .pipe(Layer.provide(DevModeLive));
85
- export const DevModeMiddlewareLive = Layer
86
- .effect(DevModeMiddleware, Effect.gen(function* () {
87
- const devMode = yield* DevMode;
88
- return (effect) => Effect.provideService(effect, DevMode, devMode);
89
- }))
90
- .pipe(Layer.provide(DevModeLive));
91
- export const DefaultGenericMiddlewaresLive = Layer.mergeAll(RequestCacheMiddlewareLive, ConfigureInterruptibilityMiddlewareLive, LoggerMiddlewareLive, DevModeMiddlewareLive);
92
- /**
93
- * Config entry for `RequestContextMap` that controls per-RPC transaction wrapping.
94
- * Defaults to `false` (no transaction). Set `requiresTransaction: true` on a route to enable.
95
- *
96
- * @example
97
- * ```ts
98
- * class RequestContextMap extends RpcContextMap.makeMap({
99
- * requiresTransaction: requiresTransactionConfig,
100
- * // ...
101
- * }) {}
102
- * ```
103
- */
104
- export const requiresTransactionConfig = RpcContextMap.makeCustom()(Schema.Never, false);
105
- /**
106
- * Creates the middleware Effect for SQL transaction wrapping.
107
- * Requires `WithNsTransaction` service.
108
- * Reads `requiresTransaction` from the RPC config; defaults to `false`.
109
- *
110
- * @example
111
- * ```ts
112
- * const SqlTransactionMiddlewareLive = Layer.effect(
113
- * SqlTransactionMiddleware,
114
- * makeSqlTransactionMiddleware(RequestContextMap)
115
- * )
116
- * ```
117
- */
118
- export const makeSqlTransactionMiddleware = Effect.fnUntraced(function* (rcm) {
119
- const withTx = yield* WithNsTransaction;
120
- const mw = (effect, { rpc }) => {
121
- const { requiresTransaction } = rcm.getConfig(rpc);
122
- if (requiresTransaction !== true)
123
- return effect;
124
- return withTx(effect);
125
- };
126
- return mw;
127
- });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9taWRkbGV3YXJlL21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqSixPQUFPLEVBQUUsYUFBYSxFQUFzQixNQUFNLGdCQUFnQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBRXZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBRXpELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUMzQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUVqRCx3REFBd0Q7QUFDeEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ3JDLE9BQU8sRUFDUCxNQUFN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
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/api/routing/middleware.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kCAAkC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/schema/jwt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AAGtC,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7D,eAAO,MAAM,QAAQ,GAAI,GAAG,SAAS,CAAC,CAAC,GAAG,UAChC,GAAG,YACD,gBAAgB,UAYQ,CAAA"}
@@ -1,13 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- import * as S from "effect-app/Schema";
4
- import * as Effect from "effect/Effect";
5
- import * as Option from "effect/Option";
6
- import { jwtDecode } from "jwt-decode";
7
- export const parseJwt = (schema, options) => S
8
- .transformToOrFail(S.String, S.Unknown, (s, _options) => Effect.try({
9
- try: () => jwtDecode(s, options),
10
- catch: (e) => new S.SchemaIssue.InvalidValue(Option.some(s), { message: e?.message })
11
- }))
12
- .pipe(S.decodeTo(schema));
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9yb3V0aW5nL3NjaGVtYS9qd3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQXlCLE1BQU0sWUFBWSxDQUFBO0FBRTdELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUN0QixNQUFXLEVBQ1gsT0FBMEIsRUFDMUIsRUFBRSxDQUNGLENBQUM7S0FDRSxpQkFBaUIsQ0FDaEIsQ0FBQyxDQUFDLE1BQU0sRUFDUixDQUFDLENBQUMsT0FBTyxFQUNULENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ2QsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNULEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNoQyxLQUFLLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7Q0FDM0YsQ0FBQyxDQUNMO0tBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFRLENBQUMsQ0FBQSJ9
@@ -1,8 +0,0 @@
1
- export declare function tsort(edges: any): any[];
2
- export declare const createEdges: <T extends {
3
- dependsOn?: readonly any[] | undefined;
4
- }>(dep: readonly T[]) => any[];
5
- export declare const sort: <T>(dep: readonly (T & {
6
- dependsOn?: readonly any[] | undefined;
7
- })[]) => readonly T[];
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNvcnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy90c29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSx3QkFBZ0IsS0FBSyxDQUFDLEtBQUssS0FBQSxTQXFDMUI7QUFFRCxlQUFPLE1BQU0sV0FBVyxHQUFJLENBQUMsU0FBUztJQUFFLFNBQVMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFBO0NBQUUsT0FBTyxTQUFTLENBQUMsRUFBRSxVQVFsRyxDQUFBO0FBRUQsZUFBTyxNQUFNLElBQUksR0FBSSxDQUFDLE9BQU8sU0FBUyxDQUFDLENBQUMsR0FBRztJQUFFLFNBQVMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFBO0NBQUUsQ0FBQyxFQUFFLEtBQUcsU0FBUyxDQUFDLEVBSXBHLENBQUEifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsort.d.ts","sourceRoot":"","sources":["../../../src/api/routing/tsort.ts"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,CAAC,KAAK,KAAA,SAqC1B;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,SAAS,CAAC,EAAE,SAAS,GAAG,EAAE,GAAG,SAAS,CAAA;CAAE,OAAO,SAAS,CAAC,EAAE,UAQlG,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,CAAC,OAAO,SAAS,CAAC,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,SAAS,GAAG,EAAE,GAAG,SAAS,CAAA;CAAE,CAAC,EAAE,KAAG,SAAS,CAAC,EAIpG,CAAA"}
@@ -1,51 +0,0 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-nocheck
3
- export function tsort(edges) {
4
- const nodes = new Map(), sorted = [], visited = new Map();
5
- const Node = function (id) {
6
- this.id = id;
7
- this.afters = [];
8
- };
9
- edges.forEach((v) => {
10
- const from = v[0], to = v[1];
11
- if (!nodes.get(from))
12
- nodes.set(from, new Node(from));
13
- if (!nodes.get(to))
14
- nodes.set(to, new Node(to));
15
- nodes.get(from).afters.push(to);
16
- });
17
- [...nodes.keys()].forEach(function visit(idstr, ancestors) {
18
- const node = nodes.get(idstr), id = node.id;
19
- if (visited.get(idstr))
20
- return;
21
- if (!Array.isArray(ancestors))
22
- ancestors = [];
23
- ancestors.push(id);
24
- visited.set(idstr, true);
25
- node.afters.forEach(function (afterID) {
26
- if (ancestors.indexOf(afterID) >= 0) {
27
- throw new Error("closed chain : " + afterID + " is in " + id);
28
- }
29
- visit(afterID, ancestors.map(function (v) {
30
- return v;
31
- }));
32
- });
33
- sorted.unshift(id);
34
- });
35
- return sorted;
36
- }
37
- export const createEdges = (dep) => {
38
- const result = [];
39
- dep.forEach((key) => {
40
- key.dependsOn?.forEach((n) => {
41
- result.push([n, key]);
42
- });
43
- });
44
- return result;
45
- };
46
- export const sort = (dep) => {
47
- const edges = createEdges(dep);
48
- const result = tsort(edges);
49
- return result.concat(dep.filter((v) => !result.includes(v)));
50
- };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvdHNvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEO0FBQzdELGNBQWM7QUFDZCxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQUs7SUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBRXpELE1BQU0sSUFBSSxHQUFHLFVBQVMsRUFBRTtRQUN0QixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLENBQUMsQ0FBQTtJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNsQixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2pDLENBQUMsQ0FBQyxDQUNEO0lBQUEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUztRQUN4RCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO1FBRTNDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFNO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUFFLFNBQVMsR0FBRyxFQUFFLENBQUE7UUFFN0MsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFTLE9BQU87WUFDbEMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUE7WUFDL0QsQ0FBQztZQUNELEtBQUssQ0FDSCxPQUFPLEVBQ1AsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUM7Z0JBQ3RCLE9BQU8sQ0FBQyxDQUFBO1lBQ1YsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNwQixDQUFDLENBQUMsQ0FBQTtJQUVGLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUF1RCxHQUFpQixFQUFFLEVBQUU7SUFDckcsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO0lBQ2pCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNsQixHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN2QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBSSxHQUFnRSxFQUFnQixFQUFFO0lBQ3hHLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDOUQsQ0FBQyxDQUFBIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/api/routing/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AAiCtC,eAAO,MAAM,eAAe,aAAc,MAAM,UAAU,CAAC,CAAC,GAAG;mBAK5C,OAAO;;;mBAGP,SAAS;;;mBAEsC,SAAS;qBAAU,OAAO;CAE3F,CAAA;AAED,eAAO,MAAM,SAAS,WAAY,UAAU,CAAC,OAAO,eAAe,CAAC;mBANjD,SAAS;;;mBAEsC,SAAS;qBAAU,OAAO;CAIM,CAAA"}
@@ -1,45 +0,0 @@
1
- import * as S from "effect-app/Schema";
2
- import * as SchemaAST from "effect/SchemaAST";
3
- const get = ["Get", "Index", "List", "All", "Find", "Search"];
4
- const del = ["Delete", "Remove", "Destroy"];
5
- const patch = ["Patch", "Update", "Edit"];
6
- const astAssignableToString = (ast) => {
7
- // In v4, refined strings (e.g. NonEmptyString) are String nodes with checks — no Refinement wrapper.
8
- // Transformations are stored as encoding on nodes — no Transformation wrapper.
9
- // So we check the encoded form to see if the wire format is a string.
10
- const encoded = SchemaAST.toEncoded(ast);
11
- if (encoded._tag === "String")
12
- return true;
13
- if (encoded._tag === "Union" && encoded.types.every(astAssignableToString)) {
14
- return true;
15
- }
16
- return false;
17
- };
18
- const onlyStringsAst = (ast) => {
19
- if (ast._tag === "Union")
20
- return ast.types.every(onlyStringsAst);
21
- // v4: TypeLiteral is now Objects
22
- if (ast._tag !== "Objects")
23
- return false;
24
- return ast.propertySignatures.every((_) => astAssignableToString(_.type));
25
- };
26
- const onlyStrings = (schema) => {
27
- if ("fields" in schema && schema.fields)
28
- return onlyStringsAst(S.Struct(schema.fields).ast); // only one level..
29
- return onlyStringsAst(schema.ast);
30
- };
31
- export const determineMethod = (fullName, schema) => {
32
- const bits = fullName.split(".");
33
- const actionName = bits[bits.length - 1];
34
- if (get.some((_) => actionName.startsWith(_))) {
35
- return { _tag: "query", method: onlyStrings(schema) ? "GET" : "POST" };
36
- }
37
- if (del.some((_) => actionName.startsWith(_))) {
38
- return { _tag: "command", method: onlyStrings(schema) ? "DELETE" : "POST" };
39
- }
40
- if (patch.some((_) => actionName.startsWith(_)))
41
- return { _tag: "command", method: "PATCH" };
42
- return { _tag: "command", method: "POST" };
43
- };
44
- export const isCommand = (method) => method._tag === "command";
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUV0QyxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBRTdDLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUM3RCxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUE7QUFDM0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBRXpDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxHQUFZLEVBQVcsRUFBRTtJQUN0RCxxR0FBcUc7SUFDckcsK0VBQStFO0lBQy9FLHNFQUFzRTtJQUN0RSxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3hDLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDMUMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVksRUFBVyxFQUFFO0lBQy9DLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNoRSxpQ0FBaUM7SUFDakMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUN4QyxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzNFLENBQUMsQ0FBQTtBQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBNEMsRUFBVyxFQUFFO0lBQzVFLElBQUksUUFBUSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTtRQUFFLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsbUJBQW1CO0lBQy9HLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNuQyxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFnQixFQUFFLE1BQWEsRUFBRSxFQUFFO0lBQ2pFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQUE7SUFFekMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBVyxDQUFBO0lBQzFGLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFXLENBQUE7SUFDdEYsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQVcsQ0FBQTtJQUNyRyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFXLENBQUE7QUFDckQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBMEMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUEifQ==