@effect-app/infra 4.0.0-beta.25 → 4.0.0-beta.251

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 (467) hide show
  1. package/CHANGELOG.md +1900 -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/ContextProvider.d.ts +34 -0
  7. package/dist/ContextProvider.d.ts.map +1 -0
  8. package/dist/ContextProvider.js +40 -0
  9. package/dist/Emailer/Sendgrid.d.ts +111 -147
  10. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  11. package/dist/Emailer/Sendgrid.js +24 -19
  12. package/dist/Emailer/fake.d.ts +2 -2
  13. package/dist/Emailer/fake.d.ts.map +1 -1
  14. package/dist/Emailer/fake.js +4 -4
  15. package/dist/MainFiberSet.d.ts +12 -9
  16. package/dist/MainFiberSet.d.ts.map +1 -1
  17. package/dist/MainFiberSet.js +10 -6
  18. package/dist/QueueMaker/SQLQueue.d.ts +8 -9
  19. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  20. package/dist/QueueMaker/SQLQueue.js +138 -120
  21. package/dist/QueueMaker/errors.d.ts +5 -3
  22. package/dist/QueueMaker/errors.d.ts.map +1 -1
  23. package/dist/QueueMaker/errors.js +4 -2
  24. package/dist/QueueMaker/memQueue.d.ts +10 -6
  25. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  26. package/dist/QueueMaker/memQueue.js +84 -68
  27. package/dist/QueueMaker/sbqueue.d.ts +9 -5
  28. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  29. package/dist/QueueMaker/sbqueue.js +60 -58
  30. package/dist/RequestFiberSet.d.ts +10 -7
  31. package/dist/RequestFiberSet.d.ts.map +1 -1
  32. package/dist/RequestFiberSet.js +13 -8
  33. package/dist/SQL/Model.d.ts +468 -0
  34. package/dist/SQL/Model.d.ts.map +1 -0
  35. package/dist/SQL/Model.js +469 -0
  36. package/dist/SQL.d.ts +2 -0
  37. package/dist/SQL.d.ts.map +1 -0
  38. package/dist/{adapters/SQL.js → SQL.js} +1 -1
  39. package/dist/ServiceBus.d.ts +61 -0
  40. package/dist/ServiceBus.d.ts.map +1 -0
  41. package/dist/ServiceBus.js +108 -0
  42. package/dist/Store/Cosmos/query.d.ts +15 -4
  43. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  44. package/dist/Store/Cosmos/query.js +179 -41
  45. package/dist/Store/Cosmos.d.ts +3 -3
  46. package/dist/Store/Cosmos.d.ts.map +1 -1
  47. package/dist/Store/Cosmos.js +344 -246
  48. package/dist/Store/Disk.d.ts +5 -5
  49. package/dist/Store/Disk.d.ts.map +1 -1
  50. package/dist/Store/Disk.js +78 -38
  51. package/dist/Store/Memory.d.ts +7 -10
  52. package/dist/Store/Memory.d.ts.map +1 -1
  53. package/dist/Store/Memory.js +326 -66
  54. package/dist/Store/SQL/Pg.d.ts +4 -0
  55. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  56. package/dist/Store/SQL/Pg.js +232 -0
  57. package/dist/Store/SQL/query.d.ts +49 -0
  58. package/dist/Store/SQL/query.d.ts.map +1 -0
  59. package/dist/Store/SQL/query.js +527 -0
  60. package/dist/Store/SQL.d.ts +21 -0
  61. package/dist/Store/SQL.d.ts.map +1 -0
  62. package/dist/Store/SQL.js +449 -0
  63. package/dist/Store/codeFilter.d.ts +5 -5
  64. package/dist/Store/codeFilter.d.ts.map +1 -1
  65. package/dist/Store/codeFilter.js +6 -3
  66. package/dist/Store/index.d.ts +7 -5
  67. package/dist/Store/index.d.ts.map +1 -1
  68. package/dist/Store/index.js +18 -5
  69. package/dist/Store/utils.d.ts +4 -3
  70. package/dist/Store/utils.d.ts.map +1 -1
  71. package/dist/Store/utils.js +5 -5
  72. package/dist/arbs.d.ts +2 -2
  73. package/dist/arbs.d.ts.map +1 -1
  74. package/dist/arbs.js +5 -3
  75. package/dist/codec.d.ts +5 -0
  76. package/dist/codec.d.ts.map +1 -0
  77. package/dist/codec.js +5 -0
  78. package/dist/cosmos-client.d.ts +16 -0
  79. package/dist/cosmos-client.d.ts.map +1 -0
  80. package/dist/cosmos-client.js +11 -0
  81. package/dist/errorReporter.d.ts +7 -5
  82. package/dist/errorReporter.d.ts.map +1 -1
  83. package/dist/errorReporter.js +23 -27
  84. package/dist/errors.d.ts +1 -1
  85. package/dist/fileUtil.d.ts +2 -2
  86. package/dist/fileUtil.d.ts.map +1 -1
  87. package/dist/fileUtil.js +2 -2
  88. package/dist/index.d.ts +3 -2
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +3 -2
  91. package/dist/internal/RequestContextMiddleware.d.ts +5 -0
  92. package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
  93. package/dist/internal/RequestContextMiddleware.js +45 -0
  94. package/dist/internal/auth.d.ts +53 -0
  95. package/dist/internal/auth.d.ts.map +1 -0
  96. package/dist/internal/auth.js +180 -0
  97. package/dist/internal/events.d.ts +11 -0
  98. package/dist/internal/events.d.ts.map +1 -0
  99. package/dist/internal/events.js +49 -0
  100. package/dist/internal/health.d.ts +3 -0
  101. package/dist/internal/health.d.ts.map +1 -0
  102. package/dist/internal/health.js +5 -0
  103. package/dist/layerUtils.d.ts +32 -0
  104. package/dist/layerUtils.d.ts.map +1 -0
  105. package/dist/layerUtils.js +17 -0
  106. package/dist/logger/jsonLogger.d.ts +2 -2
  107. package/dist/logger/jsonLogger.d.ts.map +1 -1
  108. package/dist/logger/jsonLogger.js +5 -3
  109. package/dist/logger/logFmtLogger.d.ts +2 -2
  110. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  111. package/dist/logger/logFmtLogger.js +3 -3
  112. package/dist/logger/shared.d.ts +3 -3
  113. package/dist/logger/shared.d.ts.map +1 -1
  114. package/dist/logger/shared.js +5 -5
  115. package/dist/logger.d.ts +1 -1
  116. package/dist/logger.d.ts.map +1 -1
  117. package/dist/memQueue.d.ts +15 -0
  118. package/dist/memQueue.d.ts.map +1 -0
  119. package/dist/memQueue.js +21 -0
  120. package/dist/middlewares.d.ts +10 -0
  121. package/dist/middlewares.d.ts.map +1 -0
  122. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  123. package/dist/mongo-client.d.ts +11 -0
  124. package/dist/mongo-client.d.ts.map +1 -0
  125. package/dist/mongo-client.js +15 -0
  126. package/dist/otel.d.ts +75 -0
  127. package/dist/otel.d.ts.map +1 -0
  128. package/dist/otel.js +65 -0
  129. package/dist/rateLimit.d.ts +12 -4
  130. package/dist/rateLimit.d.ts.map +1 -1
  131. package/dist/rateLimit.js +7 -12
  132. package/dist/redis-client.d.ts +42 -0
  133. package/dist/redis-client.d.ts.map +1 -0
  134. package/dist/redis-client.js +98 -0
  135. package/dist/reportError.d.ts +4 -0
  136. package/dist/reportError.d.ts.map +1 -0
  137. package/dist/reportError.js +28 -0
  138. package/dist/routing/middleware/RouterMiddleware.d.ts +16 -0
  139. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  140. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  141. package/dist/routing/middleware/middleware.d.ts +48 -0
  142. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  143. package/dist/routing/middleware/middleware.js +128 -0
  144. package/dist/routing/middleware.d.ts +3 -0
  145. package/dist/routing/middleware.d.ts.map +1 -0
  146. package/dist/{api/routing → routing}/middleware.js +1 -2
  147. package/dist/routing/schema/jwt.d.ts +4 -0
  148. package/dist/routing/schema/jwt.d.ts.map +1 -0
  149. package/dist/routing/schema/jwt.js +13 -0
  150. package/dist/routing/tsort.d.ts +8 -0
  151. package/dist/routing/tsort.d.ts.map +1 -0
  152. package/dist/routing/tsort.js +51 -0
  153. package/dist/routing/utils.d.ts +19 -0
  154. package/dist/routing/utils.d.ts.map +1 -0
  155. package/dist/routing/utils.js +45 -0
  156. package/dist/routing.d.ts +184 -0
  157. package/dist/routing.d.ts.map +1 -0
  158. package/dist/routing.js +236 -0
  159. package/dist/test.d.ts +3 -3
  160. package/dist/test.d.ts.map +1 -1
  161. package/dist/test.js +2 -2
  162. package/dist/util.d.ts +3 -0
  163. package/dist/util.d.ts.map +1 -0
  164. package/dist/util.js +14 -0
  165. package/dist/vitest.d.ts +1 -1
  166. package/examples/query.ts +47 -39
  167. package/package.json +119 -234
  168. package/src/CUPS.ts +52 -13
  169. package/src/{api/ContextProvider.ts → ContextProvider.ts} +19 -16
  170. package/src/Emailer/Sendgrid.ts +82 -59
  171. package/src/Emailer/fake.ts +3 -3
  172. package/src/MainFiberSet.ts +12 -10
  173. package/src/QueueMaker/SQLQueue.ts +153 -156
  174. package/src/QueueMaker/errors.ts +3 -1
  175. package/src/QueueMaker/memQueue.ts +113 -107
  176. package/src/QueueMaker/sbqueue.ts +78 -90
  177. package/src/RequestFiberSet.ts +13 -8
  178. package/src/{adapters/SQL → SQL}/Model.ts +42 -41
  179. package/src/ServiceBus.ts +219 -0
  180. package/src/Store/Cosmos/query.ts +216 -52
  181. package/src/Store/Cosmos.ts +493 -353
  182. package/src/Store/Disk.ts +109 -69
  183. package/src/Store/Memory.ts +365 -96
  184. package/src/Store/SQL/Pg.ts +363 -0
  185. package/src/Store/SQL/query.ts +603 -0
  186. package/src/Store/SQL.ts +735 -0
  187. package/src/Store/codeFilter.ts +8 -5
  188. package/src/Store/index.ts +21 -6
  189. package/src/Store/utils.ts +26 -24
  190. package/src/arbs.ts +5 -3
  191. package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +5 -3
  192. package/src/errorReporter.ts +66 -76
  193. package/src/fileUtil.ts +1 -1
  194. package/src/index.ts +2 -1
  195. package/src/{api/internal → internal}/RequestContextMiddleware.ts +23 -6
  196. package/src/internal/auth.ts +272 -0
  197. package/src/{api/internal → internal}/events.ts +22 -13
  198. package/src/{api/layerUtils.ts → layerUtils.ts} +14 -10
  199. package/src/logger/jsonLogger.ts +4 -2
  200. package/src/logger/logFmtLogger.ts +2 -2
  201. package/src/logger/shared.ts +5 -4
  202. package/src/{adapters/memQueue.ts → memQueue.ts} +5 -4
  203. package/src/{adapters/mongo-client.ts → mongo-client.ts} +4 -2
  204. package/src/otel.ts +152 -0
  205. package/src/rateLimit.ts +34 -23
  206. package/src/{adapters/redis-client.ts → redis-client.ts} +7 -3
  207. package/src/{api/reportError.ts → reportError.ts} +3 -2
  208. package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +5 -4
  209. package/src/{api/routing → routing}/middleware/middleware.ts +62 -17
  210. package/src/routing/middleware.ts +4 -0
  211. package/src/{api/routing → routing}/schema/jwt.ts +2 -1
  212. package/src/{api/routing → routing}/utils.ts +2 -1
  213. package/src/routing.ts +768 -0
  214. package/src/test.ts +2 -2
  215. package/test/auth.test.ts +101 -0
  216. package/test/contextProvider.test.ts +15 -12
  217. package/test/controller.test.ts +28 -32
  218. package/test/cosmos-query.test.ts +159 -0
  219. package/test/dist/auth.test.d.ts.map +1 -0
  220. package/test/dist/contextProvider.test.d.ts.map +1 -1
  221. package/test/dist/controller.test.d.ts.map +1 -1
  222. package/test/dist/cosmos-query.test.d.ts.map +1 -0
  223. package/test/dist/date-query.test.d.ts.map +1 -0
  224. package/test/dist/fixtures.d.ts +30 -12
  225. package/test/dist/fixtures.d.ts.map +1 -1
  226. package/test/dist/fixtures.js +17 -10
  227. package/test/dist/query.test.d.ts.map +1 -1
  228. package/test/dist/rawQuery.test.d.ts.map +1 -1
  229. package/test/dist/repository-ext.test.d.ts.map +1 -0
  230. package/test/dist/requires.test.d.ts.map +1 -1
  231. package/test/dist/router-generator.test.d.ts.map +1 -0
  232. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  233. package/test/dist/rpc-context-map-streaming.test.d.ts.map +1 -0
  234. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  235. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  236. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  237. package/test/dist/sql-store.test.d.ts.map +1 -0
  238. package/test/fixtures.ts +16 -9
  239. package/test/layerUtils.test.ts +2 -2
  240. package/test/query.test.ts +903 -40
  241. package/test/rawQuery.test.ts +340 -22
  242. package/test/repository-ext.test.ts +62 -0
  243. package/test/requires.test.ts +10 -5
  244. package/test/router-generator.test.ts +187 -0
  245. package/test/routing-interruptibility.test.ts +66 -0
  246. package/test/rpc-context-map-streaming.test.ts +262 -0
  247. package/test/rpc-e2e-invalidation.test.ts +256 -0
  248. package/test/rpc-multi-middleware.test.ts +85 -10
  249. package/test/rpc-stream-fullstack.test.ts +304 -0
  250. package/test/sql-store.test.ts +1711 -0
  251. package/test/validateSample.test.ts +19 -14
  252. package/tsconfig.examples.json +1 -1
  253. package/tsconfig.json +2 -1
  254. package/tsconfig.json.bak +2 -2
  255. package/tsconfig.src.json +35 -35
  256. package/tsconfig.test.json +2 -2
  257. package/dist/Emailer/service.d.ts +0 -55
  258. package/dist/Emailer/service.d.ts.map +0 -1
  259. package/dist/Emailer/service.js +0 -6
  260. package/dist/Emailer.d.ts +0 -2
  261. package/dist/Emailer.d.ts.map +0 -1
  262. package/dist/Emailer.js +0 -2
  263. package/dist/Model/Repository/ext.d.ts +0 -41
  264. package/dist/Model/Repository/ext.d.ts.map +0 -1
  265. package/dist/Model/Repository/ext.js +0 -65
  266. package/dist/Model/Repository/internal/internal.d.ts +0 -59
  267. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  268. package/dist/Model/Repository/internal/internal.js +0 -316
  269. package/dist/Model/Repository/legacy.d.ts +0 -19
  270. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  271. package/dist/Model/Repository/legacy.js +0 -2
  272. package/dist/Model/Repository/makeRepo.d.ts +0 -49
  273. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  274. package/dist/Model/Repository/makeRepo.js +0 -24
  275. package/dist/Model/Repository/service.d.ts +0 -89
  276. package/dist/Model/Repository/service.d.ts.map +0 -1
  277. package/dist/Model/Repository/service.js +0 -2
  278. package/dist/Model/Repository/validation.d.ts +0 -42
  279. package/dist/Model/Repository/validation.d.ts.map +0 -1
  280. package/dist/Model/Repository/validation.js +0 -32
  281. package/dist/Model/Repository.d.ts +0 -6
  282. package/dist/Model/Repository.d.ts.map +0 -1
  283. package/dist/Model/Repository.js +0 -6
  284. package/dist/Model/dsl.d.ts +0 -32
  285. package/dist/Model/dsl.d.ts.map +0 -1
  286. package/dist/Model/dsl.js +0 -44
  287. package/dist/Model/filter/filterApi.d.ts +0 -30
  288. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  289. package/dist/Model/filter/filterApi.js +0 -2
  290. package/dist/Model/filter/types/errors.d.ts +0 -29
  291. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  292. package/dist/Model/filter/types/errors.js +0 -2
  293. package/dist/Model/filter/types/fields.d.ts +0 -15
  294. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  295. package/dist/Model/filter/types/fields.js +0 -2
  296. package/dist/Model/filter/types/path/common.d.ts +0 -316
  297. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  298. package/dist/Model/filter/types/path/common.js +0 -2
  299. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  300. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  301. package/dist/Model/filter/types/path/eager.js +0 -31
  302. package/dist/Model/filter/types/path/index.d.ts +0 -4
  303. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  304. package/dist/Model/filter/types/path/index.js +0 -3
  305. package/dist/Model/filter/types/utils.d.ts +0 -79
  306. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  307. package/dist/Model/filter/types/utils.js +0 -2
  308. package/dist/Model/filter/types/validator.d.ts +0 -30
  309. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  310. package/dist/Model/filter/types/validator.js +0 -2
  311. package/dist/Model/filter/types.d.ts +0 -5
  312. package/dist/Model/filter/types.d.ts.map +0 -1
  313. package/dist/Model/filter/types.js +0 -7
  314. package/dist/Model/query/dsl.d.ts +0 -248
  315. package/dist/Model/query/dsl.d.ts.map +0 -1
  316. package/dist/Model/query/dsl.js +0 -104
  317. package/dist/Model/query/new-kid-interpreter.d.ts +0 -28
  318. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  319. package/dist/Model/query/new-kid-interpreter.js +0 -165
  320. package/dist/Model/query.d.ts +0 -15
  321. package/dist/Model/query.d.ts.map +0 -1
  322. package/dist/Model/query.js +0 -3
  323. package/dist/Model.d.ts +0 -4
  324. package/dist/Model.d.ts.map +0 -1
  325. package/dist/Model.js +0 -4
  326. package/dist/Operations.d.ts +0 -55
  327. package/dist/Operations.d.ts.map +0 -1
  328. package/dist/Operations.js +0 -102
  329. package/dist/OperationsRepo.d.ts +0 -41
  330. package/dist/OperationsRepo.d.ts.map +0 -1
  331. package/dist/OperationsRepo.js +0 -14
  332. package/dist/QueueMaker/service.d.ts +0 -11
  333. package/dist/QueueMaker/service.d.ts.map +0 -1
  334. package/dist/QueueMaker/service.js +0 -4
  335. package/dist/RequestContext.d.ts +0 -63
  336. package/dist/RequestContext.d.ts.map +0 -1
  337. package/dist/RequestContext.js +0 -49
  338. package/dist/Store/ContextMapContainer.d.ts +0 -14
  339. package/dist/Store/ContextMapContainer.d.ts.map +0 -1
  340. package/dist/Store/ContextMapContainer.js +0 -16
  341. package/dist/Store/service.d.ts +0 -108
  342. package/dist/Store/service.d.ts.map +0 -1
  343. package/dist/Store/service.js +0 -71
  344. package/dist/Store.d.ts +0 -2
  345. package/dist/Store.d.ts.map +0 -1
  346. package/dist/Store.js +0 -2
  347. package/dist/adapters/SQL/Model.d.ts +0 -479
  348. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  349. package/dist/adapters/SQL/Model.js +0 -478
  350. package/dist/adapters/SQL.d.ts +0 -2
  351. package/dist/adapters/SQL.d.ts.map +0 -1
  352. package/dist/adapters/ServiceBus.d.ts +0 -58
  353. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  354. package/dist/adapters/ServiceBus.js +0 -99
  355. package/dist/adapters/cosmos-client.d.ts +0 -14
  356. package/dist/adapters/cosmos-client.d.ts.map +0 -1
  357. package/dist/adapters/cosmos-client.js +0 -9
  358. package/dist/adapters/index.d.ts +0 -2
  359. package/dist/adapters/index.d.ts.map +0 -1
  360. package/dist/adapters/index.js +0 -2
  361. package/dist/adapters/logger.d.ts +0 -9
  362. package/dist/adapters/logger.d.ts.map +0 -1
  363. package/dist/adapters/logger.js +0 -3
  364. package/dist/adapters/memQueue.d.ts +0 -13
  365. package/dist/adapters/memQueue.d.ts.map +0 -1
  366. package/dist/adapters/memQueue.js +0 -20
  367. package/dist/adapters/mongo-client.d.ts +0 -10
  368. package/dist/adapters/mongo-client.d.ts.map +0 -1
  369. package/dist/adapters/mongo-client.js +0 -13
  370. package/dist/adapters/redis-client.d.ts +0 -39
  371. package/dist/adapters/redis-client.d.ts.map +0 -1
  372. package/dist/adapters/redis-client.js +0 -94
  373. package/dist/api/ContextProvider.d.ts +0 -31
  374. package/dist/api/ContextProvider.d.ts.map +0 -1
  375. package/dist/api/ContextProvider.js +0 -38
  376. package/dist/api/codec.d.ts +0 -5
  377. package/dist/api/codec.d.ts.map +0 -1
  378. package/dist/api/codec.js +0 -5
  379. package/dist/api/internal/RequestContextMiddleware.d.ts +0 -5
  380. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  381. package/dist/api/internal/RequestContextMiddleware.js +0 -35
  382. package/dist/api/internal/auth.d.ts +0 -15
  383. package/dist/api/internal/auth.d.ts.map +0 -1
  384. package/dist/api/internal/auth.js +0 -47
  385. package/dist/api/internal/events.d.ts +0 -9
  386. package/dist/api/internal/events.d.ts.map +0 -1
  387. package/dist/api/internal/events.js +0 -42
  388. package/dist/api/internal/health.d.ts +0 -3
  389. package/dist/api/internal/health.d.ts.map +0 -1
  390. package/dist/api/internal/health.js +0 -5
  391. package/dist/api/layerUtils.d.ts +0 -24
  392. package/dist/api/layerUtils.d.ts.map +0 -1
  393. package/dist/api/layerUtils.js +0 -16
  394. package/dist/api/middlewares.d.ts +0 -10
  395. package/dist/api/middlewares.d.ts.map +0 -1
  396. package/dist/api/reportError.d.ts +0 -4
  397. package/dist/api/reportError.d.ts.map +0 -1
  398. package/dist/api/reportError.js +0 -27
  399. package/dist/api/routing/middleware/RouterMiddleware.d.ts +0 -15
  400. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  401. package/dist/api/routing/middleware/middleware.d.ts +0 -9
  402. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  403. package/dist/api/routing/middleware/middleware.js +0 -92
  404. package/dist/api/routing/middleware.d.ts +0 -4
  405. package/dist/api/routing/middleware.d.ts.map +0 -1
  406. package/dist/api/routing/schema/jwt.d.ts +0 -4
  407. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  408. package/dist/api/routing/schema/jwt.js +0 -12
  409. package/dist/api/routing/tsort.d.ts +0 -8
  410. package/dist/api/routing/tsort.d.ts.map +0 -1
  411. package/dist/api/routing/tsort.js +0 -51
  412. package/dist/api/routing/utils.d.ts +0 -19
  413. package/dist/api/routing/utils.d.ts.map +0 -1
  414. package/dist/api/routing/utils.js +0 -44
  415. package/dist/api/routing.d.ts +0 -138
  416. package/dist/api/routing.d.ts.map +0 -1
  417. package/dist/api/routing.js +0 -166
  418. package/dist/api/setupRequest.d.ts +0 -12
  419. package/dist/api/setupRequest.d.ts.map +0 -1
  420. package/dist/api/setupRequest.js +0 -44
  421. package/dist/api/util.d.ts +0 -3
  422. package/dist/api/util.d.ts.map +0 -1
  423. package/dist/api/util.js +0 -14
  424. package/eslint.config.mjs +0 -24
  425. package/src/Emailer/service.ts +0 -52
  426. package/src/Emailer.ts +0 -1
  427. package/src/Model/Repository/ext.ts +0 -283
  428. package/src/Model/Repository/internal/internal.ts +0 -577
  429. package/src/Model/Repository/legacy.ts +0 -27
  430. package/src/Model/Repository/makeRepo.ts +0 -139
  431. package/src/Model/Repository/service.ts +0 -627
  432. package/src/Model/Repository/validation.ts +0 -31
  433. package/src/Model/Repository.ts +0 -5
  434. package/src/Model/dsl.ts +0 -128
  435. package/src/Model/filter/filterApi.ts +0 -60
  436. package/src/Model/filter/types/errors.ts +0 -47
  437. package/src/Model/filter/types/fields.ts +0 -50
  438. package/src/Model/filter/types/path/common.ts +0 -404
  439. package/src/Model/filter/types/path/eager.ts +0 -298
  440. package/src/Model/filter/types/path/index.ts +0 -4
  441. package/src/Model/filter/types/utils.ts +0 -128
  442. package/src/Model/filter/types/validator.ts +0 -46
  443. package/src/Model/filter/types.ts +0 -6
  444. package/src/Model/query/dsl.ts +0 -2110
  445. package/src/Model/query/new-kid-interpreter.ts +0 -210
  446. package/src/Model/query.ts +0 -13
  447. package/src/Model.ts +0 -3
  448. package/src/Operations.ts +0 -235
  449. package/src/OperationsRepo.ts +0 -16
  450. package/src/QueueMaker/service.ts +0 -17
  451. package/src/RequestContext.ts +0 -63
  452. package/src/Store/ContextMapContainer.ts +0 -20
  453. package/src/Store/service.ts +0 -184
  454. package/src/Store.ts +0 -1
  455. package/src/adapters/ServiceBus.ts +0 -209
  456. package/src/adapters/index.ts +0 -0
  457. package/src/adapters/logger.ts +0 -3
  458. package/src/api/internal/auth.ts +0 -68
  459. package/src/api/routing/middleware.ts +0 -6
  460. package/src/api/routing.ts +0 -598
  461. package/src/api/setupRequest.ts +0 -84
  462. /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
  463. /package/src/{api/codec.ts → codec.ts} +0 -0
  464. /package/src/{api/internal → internal}/health.ts +0 -0
  465. /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
  466. /package/src/{api/routing → routing}/tsort.ts +0 -0
  467. /package/src/{api/util.ts → util.ts} +0 -0
package/_check.sh CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/bin/bash
2
2
  cd /home/patroza/pj/effect-app/libs
3
- ./node_modules/.bin/tsc -p packages/infra/tsconfig.src.json --noEmit 2>&1 | grep -E "(internal\.ts|Operations\.ts|SQLQueue\.ts|memQueue\.ts|sbqueue\.ts)" | head -100
3
+ ./node_modules/.bin/tsc -p packages/infra/tsconfig.src.json --noEmit 2>&1 | grep -E "(internal\.ts|SQLQueue\.ts|memQueue\.ts|sbqueue\.ts)" | head -100
package/dist/CUPS.d.ts CHANGED
@@ -1,38 +1,57 @@
1
1
  import { type FileOptions } from "@effect-app/infra/fileUtil";
2
- import { Config, Effect, Layer, Option, S, ServiceMap } from "effect-app";
3
- export declare const PrinterId: S.WithDefaults<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">> & S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">;
2
+ import * as Config from "effect-app/Config";
3
+ import * as Context from "effect-app/Context";
4
+ import * as Effect from "effect-app/Effect";
5
+ import * as Layer from "effect-app/Layer";
6
+ import * as Option from "effect-app/Option";
7
+ import * as S from "effect-app/Schema";
8
+ export declare const PrinterId: S.WithDefaults<import("effect-app/Schema/brand").BrandedSchema<import("effect/Schema").NonEmptyString, S.NonEmptyString255>> & import("effect-app/Schema/brand").BrandedSchema<import("effect/Schema").NonEmptyString, S.NonEmptyString255>;
4
9
  export type PrinterId = S.NonEmptyString255;
10
+ declare const CUPSError_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]; }>) => import("effect/Cause").YieldableError & {
11
+ readonly _tag: "CUPSError";
12
+ } & Readonly<A>;
13
+ export declare class CUPSError extends CUPSError_base<{
14
+ readonly command: string;
15
+ readonly message: string;
16
+ readonly code: number | string | undefined;
17
+ readonly signal: NodeJS.Signals | null | undefined;
18
+ readonly killed: boolean | undefined;
19
+ readonly stdout: string | undefined;
20
+ readonly stderr: string | undefined;
21
+ readonly cause: unknown;
22
+ }> {
23
+ }
5
24
  export declare const prepareTempDir: Effect.Effect<void, never, never>;
6
- export declare const makePrintJobTempFile: (data: string | import("node:stream") | NodeJS.ArrayBufferView<ArrayBufferLike> | Iterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>> | AsyncIterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>>, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").UnknownError, import("effect/Scope").Scope>;
25
+ export declare const makePrintJobTempFile: (data: string | AsyncIterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>> | Iterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>> | import("node:stream") | NodeJS.ArrayBufferView<ArrayBufferLike>, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").UnknownError, import("effect/Scope").Scope>;
7
26
  export declare const makePrintJobTempFileArrayBuffer: (buffer: ArrayBuffer, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").UnknownError, import("effect/Scope").Scope>;
8
27
  export declare const CUPSConfig: Config.Config<{
9
28
  server: Option.Option<import("node:url").URL>;
10
29
  }>;
11
- declare const CUPS_base: ServiceMap.ServiceClass<CUPS, "effect-app/CUPS", {
30
+ declare const CUPS_base: Context.ServiceClass<CUPS, "effect-app/CUPS", {
12
31
  print: (buffer: ArrayBuffer, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
13
32
  stdout: string;
14
33
  stderr: string;
15
- }, import("effect/Cause").UnknownError, never>;
34
+ }, CUPSError | import("effect/Cause").UnknownError, never>;
16
35
  printFile: (filePath: string, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
17
36
  stdout: string;
18
37
  stderr: string;
19
- }, import("effect/Cause").UnknownError, never>;
20
- getAvailablePrinters: Effect.Effect<(string & S.B.Brand<"NonEmptyString"> & S.B.Brand<"NonEmptyString64k"> & S.B.Brand<"NonEmptyString2k"> & S.B.Brand<"NonEmptyString255">)[], import("effect/Cause").UnknownError, never>;
38
+ }, CUPSError, never>;
39
+ getAvailablePrinters: Effect.Effect<S.NonEmptyString255[], CUPSError, never>;
21
40
  }> & {
22
41
  readonly make: Effect.Effect<{
23
42
  print: (buffer: ArrayBuffer, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
24
43
  stdout: string;
25
44
  stderr: string;
26
- }, import("effect/Cause").UnknownError, never>;
45
+ }, CUPSError | import("effect/Cause").UnknownError, never>;
27
46
  printFile: (filePath: string, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
28
47
  stdout: string;
29
48
  stderr: string;
30
- }, import("effect/Cause").UnknownError, never>;
31
- getAvailablePrinters: Effect.Effect<(string & S.B.Brand<"NonEmptyString"> & S.B.Brand<"NonEmptyString64k"> & S.B.Brand<"NonEmptyString2k"> & S.B.Brand<"NonEmptyString255">)[], import("effect/Cause").UnknownError, never>;
49
+ }, CUPSError, never>;
50
+ getAvailablePrinters: Effect.Effect<S.NonEmptyString255[], CUPSError, never>;
32
51
  }, Config.ConfigError, never>;
33
52
  };
34
53
  export declare class CUPS extends CUPS_base {
35
54
  static readonly Fake: Layer.Layer<CUPS, never, never>;
36
55
  }
37
56
  export {};
38
- //# sourceMappingURL=CUPS.d.ts.map
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1VQUy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NVUFMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFZLE1BQU0sNEJBQTRCLENBQUE7QUFFdkUsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFVdEMsZUFBTyxNQUFNLFNBQVMsNk9BQXNCLENBQUE7QUFDNUMsTUFBTSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUE7Ozs7QUFXM0MscUJBQWEsU0FBVSxTQUFRLGVBQThCO0lBQzNELFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFBO0lBQ3hCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFBO0lBQ3hCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUE7SUFDMUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUE7SUFDbEQsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsU0FBUyxDQUFBO0lBQ3BDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQTtJQUNuQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUE7SUFDbkMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUE7Q0FDeEIsQ0FBQztDQUFHO0FBcURMLGVBQU8sTUFBTSxjQUFjLG1DQVV6QixDQUFBO0FBR0YsZUFBTyxNQUFNLG9CQUFvQixvVUFBNEIsQ0FBQTtBQUM3RCxlQUFPLE1BQU0sK0JBQStCLFdBQVksV0FBVyxZQUFZLFdBQVcsNkZBQ3RDLENBQUE7QUF5QnBELGVBQU8sTUFBTSxVQUFVOztFQVFyQixDQUFBOztvQkFNeUIsV0FBVyxhQUFhLFNBQVMsY0FBYyxNQUFNLEVBQUU7Ozs7MEJBU3RELE1BQU0sYUFBYSxTQUFTLGNBQWMsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFiOUUscUJBQWEsSUFBSyxTQUFRLFNBcUJ4QjtJQUNBLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxrQ0ErQm5CO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"CUPS.d.ts","sourceRoot":"","sources":["../src/CUPS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAa,CAAC,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAQpF,eAAO,MAAM,SAAS,6NAAsB,CAAA;AAC5C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,iBAAiB,CAAA;AAuC3C,eAAO,MAAM,cAAc,mCAUzB,CAAA;AAGF,eAAO,MAAM,oBAAoB,oUAA4B,CAAA;AAC7D,eAAO,MAAM,+BAA+B,GAAI,QAAQ,WAAW,EAAE,UAAU,WAAW,6FACtC,CAAA;AA2BpD,eAAO,MAAM,UAAU;;EAQrB,CAAA;;oBAMyB,WAAW,aAAa,SAAS,cAAc,MAAM,EAAE;;;;0BAStD,MAAM,aAAa,SAAS,cAAc,MAAM,EAAE;;;;;;;wBATnD,WAAW,aAAa,SAAS,cAAc,MAAM,EAAE;;;;8BAStD,MAAM,aAAa,SAAS,cAAc,MAAM,EAAE;;;;;;;AAb9E,qBAAa,IAAK,SAAQ,SAqBxB;IACA,MAAM,CAAC,QAAQ,CAAC,IAAI,kCA+BnB;CACF"}
1
+ {"version":3,"file":"CUPS.d.ts","sourceRoot":"","sources":["../src/CUPS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AAEvE,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AAUtC,eAAO,MAAM,SAAS,6OAAsB,CAAA;AAC5C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,iBAAiB,CAAA;;;;AAW3C,qBAAa,SAAU,SAAQ,eAA8B;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;CAAG;AAqDL,eAAO,MAAM,cAAc,mCAUzB,CAAA;AAGF,eAAO,MAAM,oBAAoB,oUAA4B,CAAA;AAC7D,eAAO,MAAM,+BAA+B,WAAY,WAAW,YAAY,WAAW,6FACtC,CAAA;AAyBpD,eAAO,MAAM,UAAU;;EAQrB,CAAA;;oBAMyB,WAAW,aAAa,SAAS,cAAc,MAAM,EAAE;;;;0BAStD,MAAM,aAAa,SAAS,cAAc,MAAM,EAAE;;;;;;;;;;;;;;;;;;AAb9E,qBAAa,IAAK,SAAQ,SAqBxB;IACA,MAAM,CAAC,QAAQ,CAAC,IAAI,kCA+BnB;CACF"}
package/dist/CUPS.js CHANGED
@@ -1,16 +1,39 @@
1
1
  import { tempFile } from "@effect-app/infra/fileUtil";
2
2
  import cp from "child_process";
3
- import { Config, Effect, Layer, Option, Predicate, S, ServiceMap } from "effect-app";
3
+ import * as Config from "effect-app/Config";
4
+ import * as Context from "effect-app/Context";
5
+ import * as Effect from "effect-app/Effect";
6
+ import * as Layer from "effect-app/Layer";
7
+ import * as Option from "effect-app/Option";
8
+ import * as S from "effect-app/Schema";
4
9
  import { pretty } from "effect-app/utils";
10
+ import * as Data from "effect/Data";
11
+ import * as Predicate from "effect/Predicate";
5
12
  import fs from "fs";
6
13
  import os from "os";
7
14
  import path from "path";
8
15
  import util from "util";
9
16
  import { InfraLogger } from "./logger.js";
10
17
  export const PrinterId = S.NonEmptyString255;
18
+ export class CUPSError extends Data.TaggedError("CUPSError") {
19
+ }
11
20
  const exec_ = util.promisify(cp.exec);
12
- const exec = (command) => Effect.andThen(InfraLogger.logDebug(`Executing: ${command}`), Effect.tap(Effect
13
- .tryPromise(() => exec_(command)), (r) => (InfraLogger.logDebug(`Executed`).pipe(Effect.annotateLogs("result", pretty(r))))));
21
+ const exec = (command) => Effect.andThen(InfraLogger.logDebug(`Executing: ${command}`), Effect.tap(Effect.tryPromise({
22
+ try: () => exec_(command),
23
+ catch: (cause) => {
24
+ const e = cause;
25
+ return new CUPSError({
26
+ command,
27
+ message: e?.message ?? String(cause),
28
+ code: e?.code,
29
+ signal: e?.signal,
30
+ killed: e?.killed,
31
+ stdout: e?.stdout,
32
+ stderr: e?.stderr,
33
+ cause
34
+ });
35
+ }
36
+ }), (r) => (InfraLogger.logDebug(`Executed`).pipe(Effect.annotateLogs("result", pretty(r))))));
14
37
  function printFile(printer, options) {
15
38
  return (filePath) => printFile_(filePath, printer, options);
16
39
  }
@@ -51,15 +74,13 @@ function printBuffer(printer, options) {
51
74
  return (buffer) => makePrintJobTempFileArrayBuffer(buffer)
52
75
  .pipe(Effect.flatMap(printFile(printer, options)), Effect.scoped);
53
76
  }
54
- function getAvailablePrinters(host) {
55
- return Effect.gen(function* () {
56
- const { stdout } = yield* exec(["lpstat", ...buildListArgs({ host }), "-s"].join(" "));
57
- return [...stdout.matchAll(/device for (\w+):/g)]
58
- .map((_) => _[1])
59
- .filter(Predicate.isNotNullish)
60
- .map((_) => S.NonEmptyString255(_));
61
- });
62
- }
77
+ const getAvailablePrinters = Effect.fnUntraced(function* (host) {
78
+ const { stdout } = yield* exec(["lpstat", ...buildListArgs({ host }), "-s"].join(" "));
79
+ return [...stdout.matchAll(/device for (\w+):/g)]
80
+ .map((_) => _[1])
81
+ .filter(Predicate.isNotNullish)
82
+ .map((_) => S.NonEmptyString255(_));
83
+ });
63
84
  function* buildListArgs(config) {
64
85
  if (config?.host) {
65
86
  yield `-h ${config.host}`;
@@ -70,7 +91,7 @@ export const CUPSConfig = Config.all({
70
91
  .string("server")
71
92
  .pipe(Config.map((s) => new URL(s)), Config.option, Config.nested("cups"))
72
93
  });
73
- export class CUPS extends ServiceMap.Service()("effect-app/CUPS", {
94
+ export class CUPS extends Context.Service()("effect-app/CUPS", {
74
95
  make: Effect.gen(function* () {
75
96
  const config = yield* CUPSConfig;
76
97
  const serverUrl = Option.getOrUndefined(config.server);
@@ -111,4 +132,4 @@ export class CUPS extends ServiceMap.Service()("effect-app/CUPS", {
111
132
  getAvailablePrinters: Effect.sync(() => [])
112
133
  })));
113
134
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1VQUy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DVVBTLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQ3ZCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUE7QUFHNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUMvQixNQUFNLENBQUMsT0FBTyxDQUNaLFdBQVcsQ0FBQyxRQUFRLENBQUMsY0FBYyxPQUFPLEVBQUUsQ0FBQyxFQUM3QyxNQUFNLENBQUMsR0FBRyxDQUNSLE1BQU07S0FDSCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ25DLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxF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
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1VQUy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DVVBTLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlCLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQ3ZCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUE7QUFZNUMsTUFBTSxPQUFPLFNBQVUsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FTekQ7Q0FBRztBQUVMLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ3JDLE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBZSxFQUFFLEVB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
@@ -0,0 +1,34 @@
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 * as Layer from "effect-app/Layer";
5
+ import type * as Scope from "effect/Scope";
6
+ import { type HttpRouter } from "effect-app/http";
7
+ import { type EffectGenUtils } from "effect-app/utils/gen";
8
+ import { type ContextTagWithDefault, type GetContext, type LayerUtils } from "./layerUtils.js";
9
+ export interface ContextProviderId {
10
+ _tag: "ContextProvider";
11
+ }
12
+ /**
13
+ * TDeps is an array of services with Default implementation
14
+ * each service is an effect which builds some context for each request
15
+ */
16
+ type TDepsArr<TDeps extends ReadonlyArray<any>> = {
17
+ [K in keyof TDeps]: TDeps[K] extends ContextTagWithDefault.Base<Effect.Effect<Context.Context<infer _1>, never, infer _R>> ? [_R] extends [HttpRouter.Provided] ? TDeps[K] : `HttpLayerRouter.Provided is the only requirement ${TDeps[K]["Service"]["_tag"]}'s returned effect can have` : TDeps[K] extends (ContextTagWithDefault.Base<(() => Generator<infer _YW, infer _1, infer _2>)>) ? [_YW] extends [never] ? TDeps[K] : [_YW] extends [Effect.Effect<any, never, infer _R>] ? [_R] extends [HttpRouter.Provided] ? TDeps[K] : `HttpLayerRouter.Provided is the only requirement ${TDeps[K]["Service"]["_tag"]}'s returned effect can have` : "WTF are you yielding man?" : `You cannot throw errors from providers`;
18
+ };
19
+ export declare const mergeContextProviders: <TDeps extends ReadonlyArray<any>>(...deps: TDepsArr<TDeps>) => {
20
+ dependencies: { [K in keyof TDeps]: TDeps[K]["Default"]; };
21
+ effect: Effect.Effect<Effect.Effect<Context.Context<GetContext<EffectGenUtils.Success<Context.Service.Shape<TDeps[number]>>>>, never, EffectGenUtils.Context<Context.Service.Shape<TDeps[number]>>>, LayerUtils.GetLayersError<{ [K in keyof TDeps]: TDeps[K]["Default"]; }>, LayerUtils.GetLayersSuccess<{ [K in keyof TDeps]: TDeps[K]["Default"]; }>>;
22
+ };
23
+ export declare const ContextProvider: <ContextProviderA, MakeContextProviderE, MakeContextProviderR, ContextProviderR extends Scope.Scope, Dependencies extends NonEmptyReadonlyArray<Layer.Any>>(input: {
24
+ effect: Effect.Effect<Effect.Effect<ContextProviderA, never, ContextProviderR> | (() => Generator<Effect.Effect<any, never, ContextProviderR>, ContextProviderA>), MakeContextProviderE, MakeContextProviderR | Scope.Scope>;
25
+ dependencies?: Dependencies;
26
+ }) => Context.Service<ContextProviderId, Effect.Effect<ContextProviderA, never, ContextProviderR>> & {
27
+ Default: Layer.Layer<ContextProviderId, MakeContextProviderE | LayerUtils.GetLayersError<Dependencies>, Exclude<MakeContextProviderR, LayerUtils.GetLayersSuccess<Dependencies>> | LayerUtils.GetLayersContext<Dependencies>>;
28
+ };
29
+ export declare const MergedContextProvider: <TDeps extends ReadonlyArray<any>>(...deps: TDepsArr<TDeps>) => ContextTagWithDefault<ContextProviderId, Effect.Effect<Context.Context<GetContext<EffectGenUtils.Success<Context.Service.Shape<TDeps[number]>>>>, never, EffectGenUtils.Context<Context.Service.Shape<TDeps[number]>>>, LayerUtils.GetLayersError<{ [K in keyof TDeps]: TDeps[K]["Default"]; }>, Exclude<Context.Service.Identifier<TDeps[number]>, LayerUtils.GetLayersSuccess<{ [K in keyof TDeps]: TDeps[K]["Default"]; }>> | LayerUtils.GetLayersContext<{ [K in keyof TDeps]: TDeps[K]["Default"]; }>>;
30
+ export declare const EmptyContextProvider: Context.Service<ContextProviderId, Effect.Effect<Context.Context<never>, never, never>> & {
31
+ Default: Layer.Layer<ContextProviderId, never, never>;
32
+ };
33
+ export {};
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dFByb3ZpZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQ29udGV4dFByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDN0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFFekMsT0FBTyxLQUFLLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxLQUFLLFVBQVUsRUFBRSxLQUFLLFVBQVUsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQTtBQUU3RyxNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLElBQUksRUFBRSxpQkFBaUIsQ0FBQTtDQUN4QjtBQUVEOzs7R0FHRztBQUNILEtBQUssUUFBUSxDQUFDLEtBQUssU0FBUyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUk7S0FLL0MsQ0FBQyxJQUFJLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FJNUIscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQ2pGLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUM3QyxvREFBb0QsS0FBSyxDQUFDLENBQUMs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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../src/ContextProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import * as Context from "effect-app/Context";
2
+ import * as Effect from "effect-app/Effect";
3
+ import * as Layer from "effect-app/Layer";
4
+ import { pipe } from "effect/Function";
5
+ import { mergeContexts } from "./layerUtils.js";
6
+ // Note: the type here must be aligned with MergedContextProvider
7
+ export const mergeContextProviders = (
8
+ // long life to reverse mapped types
9
+ ...deps) => ({
10
+ dependencies: deps.map((_) => _.Default),
11
+ effect: Effect.gen(function* () {
12
+ // uses the tags to request the context providers
13
+ const makers = yield* Effect.all(deps);
14
+ return Effect
15
+ .gen(function* () {
16
+ const services = makers.map((handle, i) => ({
17
+ maker: deps[i],
18
+ handle: handle[Symbol.toStringTag] === "GeneratorFunction" ? Effect.fnUntraced(handle)() : handle
19
+ }));
20
+ // services are effects which return some Context.Context<...>
21
+ const context = yield* mergeContexts(services);
22
+ return context;
23
+ });
24
+ })
25
+ });
26
+ // Effect Rpc Middleware: for single tag providing, we could use Provides, for providing Context or Layer (bad boy) we could use Wrap..
27
+ export const ContextProvider = (input) => {
28
+ const ctx = Context.Service("ContextProvider");
29
+ const e = input.effect.pipe(Effect.map((eg) => eg[Symbol.toStringTag] === "GeneratorFunction" ? Effect.fnUntraced(eg)() : eg));
30
+ const l = Layer.effect(ctx, e);
31
+ return Object.assign(ctx, {
32
+ Default: l.pipe(input.dependencies ? Layer.provide([...input.dependencies]) : (_) => _)
33
+ });
34
+ };
35
+ // Note: the type here must be aligned with mergeContextProviders
36
+ export const MergedContextProvider = (
37
+ // long life to reverse mapped types
38
+ ...deps) => pipe(deps, (_) => mergeContextProviders(..._), (_) => ContextProvider(_));
39
+ export const EmptyContextProvider = ContextProvider({ effect: Effect.succeed(Effect.succeed(Context.empty())) });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NvbnRleHRQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFLdEMsT0FBTyxFQUFnRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQTBDN0csaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0FBR25DLG9DQUFvQztBQUNwQyxHQUFHLElBQXFCLEVBY3hCLEVBQUUsQ0FBQyxDQUFDO0lBQ0osWUFBWSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQVMsQ0FBQyxPQUFPLENBQVE7SUFDeEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzFCLGlEQUFpRDtRQUNqRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQWEsQ0FBQyxDQUFBO1FBQy9DLE9BQU8sTUFBTTthQUNWLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDWixNQUFNLFFBQVEsR0FBSSxNQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ3BEO2dCQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNkLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU07YUFDbEcsQ0FDRixDQUFDLENBQUE7WUFDRiw4REFBOEQ7WUFDOUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQWUsQ0FBQyxDQUFBO1lBQ3JELE9BQU8sT0FBTyxDQUFBO1FBQ2hCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFRO0NBQ1YsQ0FBQyxDQUFBO0FBRUYsdUlBQXVJO0FBQ3ZJLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQU83QixLQVdDLEVBQ0QsRUFBRTtJQUNGLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBSXpCLGlCQUFpQixDQUNsQixDQUFBO0lBQ0QsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFFLEVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ2xILENBQUE7SUFDRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFRLENBQUMsQ0FBQTtJQUNyQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ3hCLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQWdDLENBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FPbEg7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFFRCxpRUFBaUU7QUFDakUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7QUFHbkMsb0NBQW9DO0FBQ3BDLEdBQUcsSUFBcUIsRUFDeEIsRUFBRSxDQUNGLElBQUksQ0FDRixJQUFxRCxFQUNyRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDbEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFRLENBQUMsQ0FpQmpDLENBQUE7QUFFSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBIn0=
@@ -1,171 +1,135 @@
1
- import type { EmailData } from "@sendgrid/helpers/classes/email-address.js";
2
- import type { MailContent } from "@sendgrid/helpers/classes/mail.js";
3
- import { Array } from "effect-app";
4
- import { Emailer, type EmailMsg, type SendgridConfig } from "./service.js";
1
+ import * as Array from "effect-app/Array";
2
+ import { type EmailData, Emailer, type EmailMsg } from "effect-app/Emailer";
3
+ import * as Redacted from "effect/Redacted";
4
+ export interface SendgridConfig {
5
+ defaultReplyTo?: EmailData;
6
+ subjectPrefix: string;
7
+ realMail: boolean;
8
+ defaultFrom: EmailData;
9
+ apiKey: Redacted.Redacted;
10
+ /**
11
+ * Email address used for fake/test recipients. Use `{i}` as a placeholder for
12
+ * an auto-incrementing index to ensure uniqueness.
13
+ *
14
+ * @example "test+{i}@example.com"
15
+ */
16
+ fakeMailAddress: string;
17
+ }
5
18
  export declare function Sendgrid(config: SendgridConfig): import("effect/Layer").Layer<Emailer, never, never>;
6
19
  /**
7
20
  * @hidden
8
21
  */
9
- export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
10
- to: EmailData | EmailData[];
11
- cc: EmailData | EmailData[];
12
- bcc: EmailData | EmailData[];
22
+ export declare function renderMessage(forceFake: boolean, fakeMailAddress: string): (msg: EmailMsg) => {
23
+ from: EmailData;
13
24
  replyTo?: EmailData;
14
- sendAt?: number;
15
25
  subject?: string;
16
- text: string;
17
- html?: string;
18
- templateId?: string;
19
- personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[];
20
- attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[];
21
- ipPoolName?: string;
22
- batchId?: string;
23
- sections?: {
24
- [key: string]: string;
25
- };
26
- headers?: {
27
- [key: string]: string;
28
- };
29
- categories?: string[];
30
- category?: string;
31
- customArgs?: {
32
- [key: string]: any;
33
- };
34
- asm?: import("@sendgrid/helpers/classes/mail.js").ASMOptions;
35
- mailSettings?: import("@sendgrid/helpers/classes/mail.js").MailSettings;
36
- trackingSettings?: import("@sendgrid/helpers/classes/mail.js").TrackingSettings;
37
- substitutions?: {
38
- [key: string]: string;
39
- };
40
- substitutionWrappers?: string[];
41
26
  isMultiple?: boolean;
42
- dynamicTemplateData?: {
43
- [key: string]: any;
44
- };
45
- hideWarnings?: boolean;
46
- replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
47
- from: import("./service.js").EmailData;
27
+ text: string;
28
+ to: ({
29
+ name: string;
30
+ email: string;
31
+ } | EmailData)[] | {
32
+ name: string;
33
+ email: string;
34
+ } | EmailData;
35
+ cc: ({
36
+ name: string;
37
+ email: string;
38
+ } | EmailData)[] | {
39
+ name: string;
40
+ email: string;
41
+ } | EmailData;
42
+ bcc: ({
43
+ name: string;
44
+ email: string;
45
+ } | EmailData)[] | {
46
+ name: string;
47
+ email: string;
48
+ } | EmailData;
48
49
  } | {
49
- to: EmailData | EmailData[];
50
- cc: EmailData | EmailData[];
51
- bcc: EmailData | EmailData[];
50
+ from: EmailData;
52
51
  replyTo?: EmailData;
53
- sendAt?: number;
54
52
  subject?: string;
55
- text?: string;
56
- html: string;
57
- templateId?: string;
58
- personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[];
59
- attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[];
60
- ipPoolName?: string;
61
- batchId?: string;
62
- sections?: {
63
- [key: string]: string;
64
- };
65
- headers?: {
66
- [key: string]: string;
67
- };
68
- categories?: string[];
69
- category?: string;
70
- customArgs?: {
71
- [key: string]: any;
72
- };
73
- asm?: import("@sendgrid/helpers/classes/mail.js").ASMOptions;
74
- mailSettings?: import("@sendgrid/helpers/classes/mail.js").MailSettings;
75
- trackingSettings?: import("@sendgrid/helpers/classes/mail.js").TrackingSettings;
76
- substitutions?: {
77
- [key: string]: string;
78
- };
79
- substitutionWrappers?: string[];
80
53
  isMultiple?: boolean;
81
- dynamicTemplateData?: {
82
- [key: string]: any;
83
- };
84
- hideWarnings?: boolean;
85
- replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
86
- from: import("./service.js").EmailData;
54
+ html: string;
55
+ to: ({
56
+ name: string;
57
+ email: string;
58
+ } | EmailData)[] | {
59
+ name: string;
60
+ email: string;
61
+ } | EmailData;
62
+ cc: ({
63
+ name: string;
64
+ email: string;
65
+ } | EmailData)[] | {
66
+ name: string;
67
+ email: string;
68
+ } | EmailData;
69
+ bcc: ({
70
+ name: string;
71
+ email: string;
72
+ } | EmailData)[] | {
73
+ name: string;
74
+ email: string;
75
+ } | EmailData;
87
76
  } | {
88
- to: EmailData | EmailData[];
89
- cc: EmailData | EmailData[];
90
- bcc: EmailData | EmailData[];
77
+ from: EmailData;
91
78
  replyTo?: EmailData;
92
- sendAt?: number;
93
79
  subject?: string;
94
- text?: string;
95
- html?: string;
96
- templateId: string;
97
- personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[];
98
- attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[];
99
- ipPoolName?: string;
100
- batchId?: string;
101
- sections?: {
102
- [key: string]: string;
103
- };
104
- headers?: {
105
- [key: string]: string;
106
- };
107
- categories?: string[];
108
- category?: string;
109
- customArgs?: {
110
- [key: string]: any;
111
- };
112
- asm?: import("@sendgrid/helpers/classes/mail.js").ASMOptions;
113
- mailSettings?: import("@sendgrid/helpers/classes/mail.js").MailSettings;
114
- trackingSettings?: import("@sendgrid/helpers/classes/mail.js").TrackingSettings;
115
- substitutions?: {
116
- [key: string]: string;
117
- };
118
- substitutionWrappers?: string[];
119
80
  isMultiple?: boolean;
120
- dynamicTemplateData?: {
121
- [key: string]: any;
122
- };
123
- hideWarnings?: boolean;
124
- replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
125
- from: import("./service.js").EmailData;
81
+ templateId: string;
82
+ to: ({
83
+ name: string;
84
+ email: string;
85
+ } | EmailData)[] | {
86
+ name: string;
87
+ email: string;
88
+ } | EmailData;
89
+ cc: ({
90
+ name: string;
91
+ email: string;
92
+ } | EmailData)[] | {
93
+ name: string;
94
+ email: string;
95
+ } | EmailData;
96
+ bcc: ({
97
+ name: string;
98
+ email: string;
99
+ } | EmailData)[] | {
100
+ name: string;
101
+ email: string;
102
+ } | EmailData;
126
103
  } | {
127
- to: EmailData | EmailData[];
128
- cc: EmailData | EmailData[];
129
- bcc: EmailData | EmailData[];
104
+ from: EmailData;
130
105
  replyTo?: EmailData;
131
- sendAt?: number;
132
106
  subject?: string;
133
- text?: string;
134
- html?: string;
135
- templateId?: string;
136
- personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[];
137
- attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[];
138
- ipPoolName?: string;
139
- batchId?: string;
140
- sections?: {
141
- [key: string]: string;
142
- };
143
- headers?: {
144
- [key: string]: string;
145
- };
146
- categories?: string[];
147
- category?: string;
148
- customArgs?: {
149
- [key: string]: any;
150
- };
151
- asm?: import("@sendgrid/helpers/classes/mail.js").ASMOptions;
152
- mailSettings?: import("@sendgrid/helpers/classes/mail.js").MailSettings;
153
- trackingSettings?: import("@sendgrid/helpers/classes/mail.js").TrackingSettings;
154
- substitutions?: {
155
- [key: string]: string;
156
- };
157
- substitutionWrappers?: string[];
158
107
  isMultiple?: boolean;
159
- dynamicTemplateData?: {
160
- [key: string]: any;
161
- };
162
- hideWarnings?: boolean;
163
- replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
164
- from: import("./service.js").EmailData;
165
- content: Array.NonEmptyReadonlyArray<MailContent>;
108
+ content: Array.NonEmptyReadonlyArray<import("effect-app/Emailer").EmailContentPart>;
109
+ to: ({
110
+ name: string;
111
+ email: string;
112
+ } | EmailData)[] | {
113
+ name: string;
114
+ email: string;
115
+ } | EmailData;
116
+ cc: ({
117
+ name: string;
118
+ email: string;
119
+ } | EmailData)[] | {
120
+ name: string;
121
+ email: string;
122
+ } | EmailData;
123
+ bcc: ({
124
+ name: string;
125
+ email: string;
126
+ } | EmailData)[] | {
127
+ name: string;
128
+ email: string;
129
+ } | EmailData;
166
130
  };
167
131
  /**
168
132
  * @hidden
169
133
  */
170
134
  export declare function isTestAddress(to: EmailData): boolean;
171
- //# sourceMappingURL=Sendgrid.d.ts.map
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbWFpbGVyL1NlbmRncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFFekMsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBNEMsTUFBTSxvQkFBb0IsQ0FBQTtBQUdySCxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBSTNDLE1BQU0sV0FBVyxjQUFjO0lBQzdCLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQTtJQUMxQixhQUFhLEVBQUUsTUFBTSxDQUFBO0lBQ3JCLFFBQVEsRUFBRSxPQUFPLENBQUE7SUFDakIsV0FBVyxFQUFFLFNBQVMsQ0FBQTtJQUN0QixNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQTtJQUN6Qjs7Ozs7T0FLRztJQUNILGVBQWUsRUFBRSxNQUFNLENBQUE7Q0FDeEI7QUE2REQsd0JBQWdCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsY0FBYyx1REFFOUM7QUFFRDs7R0FFRztBQUNILHdCQUFnQixhQUFhLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQVk3RCxRQUFROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFPbkI7QUFFRDs7R0FFRztBQUNILHdCQUFnQixhQUFhLENBQUMsRUFBRSxFQUFFLFNBQVMsV0FPMUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../src/Emailer/Sendgrid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAiC,MAAM,YAAY,CAAA;AAIjE,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAA6B,KAAK,cAAc,EAAiB,MAAM,cAAc,CAAA;AAwDpH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,uDAE9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,SAWpC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,WAO1C"}
1
+ {"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../src/Emailer/Sendgrid.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,OAAO,EAAE,KAAK,QAAQ,EAA4C,MAAM,oBAAoB,CAAA;AAGrH,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAI3C,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,SAAS,CAAA;IACtB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACzB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB;AA6DD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,uDAE9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAY7D,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,WAO1C"}