@effect-app/infra 2.32.2 → 2.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/package.json +174 -632
  3. package/_cjs/CUPS.cjs +0 -120
  4. package/_cjs/CUPS.cjs.map +0 -1
  5. package/_cjs/Emailer/Sendgrid.cjs +0 -109
  6. package/_cjs/Emailer/Sendgrid.cjs.map +0 -1
  7. package/_cjs/Emailer/fake.cjs +0 -17
  8. package/_cjs/Emailer/fake.cjs.map +0 -1
  9. package/_cjs/Emailer/service.cjs +0 -12
  10. package/_cjs/Emailer/service.cjs.map +0 -1
  11. package/_cjs/Emailer.cjs +0 -17
  12. package/_cjs/Emailer.cjs.map +0 -1
  13. package/_cjs/MainFiberSet.cjs +0 -61
  14. package/_cjs/MainFiberSet.cjs.map +0 -1
  15. package/_cjs/Model/Repository/ext.cjs +0 -68
  16. package/_cjs/Model/Repository/ext.cjs.map +0 -1
  17. package/_cjs/Model/Repository/internal/internal.cjs +0 -245
  18. package/_cjs/Model/Repository/internal/internal.cjs.map +0 -1
  19. package/_cjs/Model/Repository/legacy.cjs +0 -6
  20. package/_cjs/Model/Repository/legacy.cjs.map +0 -1
  21. package/_cjs/Model/Repository/makeRepo.cjs +0 -34
  22. package/_cjs/Model/Repository/makeRepo.cjs.map +0 -1
  23. package/_cjs/Model/Repository/service.cjs +0 -6
  24. package/_cjs/Model/Repository/service.cjs.map +0 -1
  25. package/_cjs/Model/Repository.cjs +0 -52
  26. package/_cjs/Model/Repository.cjs.map +0 -1
  27. package/_cjs/Model/dsl.cjs +0 -54
  28. package/_cjs/Model/dsl.cjs.map +0 -1
  29. package/_cjs/Model/filter/filterApi.cjs +0 -6
  30. package/_cjs/Model/filter/filterApi.cjs.map +0 -1
  31. package/_cjs/Model/filter/types/errors.cjs +0 -6
  32. package/_cjs/Model/filter/types/errors.cjs.map +0 -1
  33. package/_cjs/Model/filter/types/fields.cjs +0 -6
  34. package/_cjs/Model/filter/types/fields.cjs.map +0 -1
  35. package/_cjs/Model/filter/types/path/common.cjs +0 -6
  36. package/_cjs/Model/filter/types/path/common.cjs.map +0 -1
  37. package/_cjs/Model/filter/types/path/eager.cjs +0 -37
  38. package/_cjs/Model/filter/types/path/eager.cjs.map +0 -1
  39. package/_cjs/Model/filter/types/path/index.cjs +0 -6
  40. package/_cjs/Model/filter/types/path/index.cjs.map +0 -1
  41. package/_cjs/Model/filter/types/utils.cjs +0 -6
  42. package/_cjs/Model/filter/types/utils.cjs.map +0 -1
  43. package/_cjs/Model/filter/types/validator.cjs +0 -6
  44. package/_cjs/Model/filter/types/validator.cjs.map +0 -1
  45. package/_cjs/Model/filter/types.cjs +0 -50
  46. package/_cjs/Model/filter/types.cjs.map +0 -1
  47. package/_cjs/Model/query/dsl.cjs +0 -133
  48. package/_cjs/Model/query/dsl.cjs.map +0 -1
  49. package/_cjs/Model/query/new-kid-interpreter.cjs +0 -162
  50. package/_cjs/Model/query/new-kid-interpreter.cjs.map +0 -1
  51. package/_cjs/Model/query.cjs +0 -28
  52. package/_cjs/Model/query.cjs.map +0 -1
  53. package/_cjs/Model.cjs +0 -34
  54. package/_cjs/Model.cjs.map +0 -1
  55. package/_cjs/Operations.cjs +0 -105
  56. package/_cjs/Operations.cjs.map +0 -1
  57. package/_cjs/OperationsRepo.cjs +0 -21
  58. package/_cjs/OperationsRepo.cjs.map +0 -1
  59. package/_cjs/QueueMaker/SQLQueue.cjs +0 -149
  60. package/_cjs/QueueMaker/SQLQueue.cjs.map +0 -1
  61. package/_cjs/QueueMaker/errors.cjs +0 -29
  62. package/_cjs/QueueMaker/errors.cjs.map +0 -1
  63. package/_cjs/QueueMaker/memQueue.cjs +0 -90
  64. package/_cjs/QueueMaker/memQueue.cjs.map +0 -1
  65. package/_cjs/QueueMaker/sbqueue.cjs +0 -107
  66. package/_cjs/QueueMaker/sbqueue.cjs.map +0 -1
  67. package/_cjs/QueueMaker/service.cjs +0 -10
  68. package/_cjs/QueueMaker/service.cjs.map +0 -1
  69. package/_cjs/RequestContext.cjs +0 -54
  70. package/_cjs/RequestContext.cjs.map +0 -1
  71. package/_cjs/RequestFiberSet.cjs +0 -85
  72. package/_cjs/RequestFiberSet.cjs.map +0 -1
  73. package/_cjs/Store/ContextMapContainer.cjs +0 -19
  74. package/_cjs/Store/ContextMapContainer.cjs.map +0 -1
  75. package/_cjs/Store/Cosmos/query.cjs +0 -170
  76. package/_cjs/Store/Cosmos/query.cjs.map +0 -1
  77. package/_cjs/Store/Cosmos.cjs +0 -302
  78. package/_cjs/Store/Cosmos.cjs.map +0 -1
  79. package/_cjs/Store/Disk.cjs +0 -118
  80. package/_cjs/Store/Disk.cjs.map +0 -1
  81. package/_cjs/Store/Memory.cjs +0 -174
  82. package/_cjs/Store/Memory.cjs.map +0 -1
  83. package/_cjs/Store/codeFilter.cjs +0 -128
  84. package/_cjs/Store/codeFilter.cjs.map +0 -1
  85. package/_cjs/Store/index.cjs +0 -46
  86. package/_cjs/Store/index.cjs.map +0 -1
  87. package/_cjs/Store/service.cjs +0 -73
  88. package/_cjs/Store/service.cjs.map +0 -1
  89. package/_cjs/Store/utils.cjs +0 -70
  90. package/_cjs/Store/utils.cjs.map +0 -1
  91. package/_cjs/Store.cjs +0 -17
  92. package/_cjs/Store.cjs.map +0 -1
  93. package/_cjs/adapters/SQL/Model.cjs +0 -501
  94. package/_cjs/adapters/SQL/Model.cjs.map +0 -1
  95. package/_cjs/adapters/SQL.cjs +0 -11
  96. package/_cjs/adapters/SQL.cjs.map +0 -1
  97. package/_cjs/adapters/ServiceBus.cjs +0 -76
  98. package/_cjs/adapters/ServiceBus.cjs.map +0 -1
  99. package/_cjs/adapters/cosmos-client.cjs +0 -18
  100. package/_cjs/adapters/cosmos-client.cjs.map +0 -1
  101. package/_cjs/adapters/index.cjs +0 -6
  102. package/_cjs/adapters/index.cjs.map +0 -1
  103. package/_cjs/adapters/logger.cjs +0 -9
  104. package/_cjs/adapters/logger.cjs.map +0 -1
  105. package/_cjs/adapters/memQueue.cjs +0 -27
  106. package/_cjs/adapters/memQueue.cjs.map +0 -1
  107. package/_cjs/adapters/mongo-client.cjs +0 -20
  108. package/_cjs/adapters/mongo-client.cjs.map +0 -1
  109. package/_cjs/adapters/redis-client.cjs +0 -83
  110. package/_cjs/adapters/redis-client.cjs.map +0 -1
  111. package/_cjs/api/codec.cjs +0 -13
  112. package/_cjs/api/codec.cjs.map +0 -1
  113. package/_cjs/api/internal/RequestContextMiddleware.cjs +0 -41
  114. package/_cjs/api/internal/RequestContextMiddleware.cjs.map +0 -1
  115. package/_cjs/api/internal/auth.cjs +0 -58
  116. package/_cjs/api/internal/auth.cjs.map +0 -1
  117. package/_cjs/api/internal/events.cjs +0 -34
  118. package/_cjs/api/internal/events.cjs.map +0 -1
  119. package/_cjs/api/internal/health.cjs +0 -13
  120. package/_cjs/api/internal/health.cjs.map +0 -1
  121. package/_cjs/api/internal/middlewares.cjs +0 -197
  122. package/_cjs/api/internal/middlewares.cjs.map +0 -1
  123. package/_cjs/api/middlewares.cjs +0 -115
  124. package/_cjs/api/middlewares.cjs.map +0 -1
  125. package/_cjs/api/reportError.cjs +0 -29
  126. package/_cjs/api/reportError.cjs.map +0 -1
  127. package/_cjs/api/routing/DynamicMiddleware.cjs +0 -19
  128. package/_cjs/api/routing/DynamicMiddleware.cjs.map +0 -1
  129. package/_cjs/api/routing/schema/jwt.cjs +0 -21
  130. package/_cjs/api/routing/schema/jwt.cjs.map +0 -1
  131. package/_cjs/api/routing/utils.cjs +0 -53
  132. package/_cjs/api/routing/utils.cjs.map +0 -1
  133. package/_cjs/api/routing.cjs +0 -228
  134. package/_cjs/api/routing.cjs.map +0 -1
  135. package/_cjs/api/routing.legacy.cjs +0 -191
  136. package/_cjs/api/routing.legacy.cjs.map +0 -1
  137. package/_cjs/api/routing.legacy2.cjs +0 -210
  138. package/_cjs/api/routing.legacy2.cjs.map +0 -1
  139. package/_cjs/api/routing.legacy3.cjs +0 -214
  140. package/_cjs/api/routing.legacy3.cjs.map +0 -1
  141. package/_cjs/api/setupRequest.cjs +0 -58
  142. package/_cjs/api/setupRequest.cjs.map +0 -1
  143. package/_cjs/api/util.cjs +0 -17
  144. package/_cjs/api/util.cjs.map +0 -1
  145. package/_cjs/arbs.cjs +0 -25
  146. package/_cjs/arbs.cjs.map +0 -1
  147. package/_cjs/errorReporter.cjs +0 -74
  148. package/_cjs/errorReporter.cjs.map +0 -1
  149. package/_cjs/errors.cjs +0 -17
  150. package/_cjs/errors.cjs.map +0 -1
  151. package/_cjs/fileUtil.cjs +0 -48
  152. package/_cjs/fileUtil.cjs.map +0 -1
  153. package/_cjs/index.cjs +0 -11
  154. package/_cjs/index.cjs.map +0 -1
  155. package/_cjs/logger/jsonLogger.cjs +0 -43
  156. package/_cjs/logger/jsonLogger.cjs.map +0 -1
  157. package/_cjs/logger/logFmtLogger.cjs +0 -25
  158. package/_cjs/logger/logFmtLogger.cjs.map +0 -1
  159. package/_cjs/logger/shared.cjs +0 -30
  160. package/_cjs/logger/shared.cjs.map +0 -1
  161. package/_cjs/logger.cjs +0 -9
  162. package/_cjs/logger.cjs.map +0 -1
  163. package/_cjs/rateLimit.cjs +0 -76
  164. package/_cjs/rateLimit.cjs.map +0 -1
  165. package/_cjs/test.cjs +0 -77
  166. package/_cjs/test.cjs.map +0 -1
  167. package/_cjs/vitest.cjs +0 -28
  168. package/_cjs/vitest.cjs.map +0 -1
package/_cjs/CUPS.cjs DELETED
@@ -1,120 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.prepareTempDir = exports.makePrintJobTempFileArrayBuffer = exports.makePrintJobTempFile = exports.PrinterId = exports.CUPSConfig = exports.CUPS = void 0;
7
- var _fileUtil = require("@effect-app/infra/fileUtil");
8
- var _child_process = _interopRequireDefault(require("child_process"));
9
- var _effectApp = require("effect-app");
10
- var _utils = require("effect-app/utils");
11
- var _fs = _interopRequireDefault(require("fs"));
12
- var _os = _interopRequireDefault(require("os"));
13
- var _path = _interopRequireDefault(require("path"));
14
- var _util = _interopRequireDefault(require("util"));
15
- var _logger = require("./logger.cjs");
16
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- const PrinterId = exports.PrinterId = _effectApp.S.NonEmptyString255;
18
- const exec_ = _util.default.promisify(_child_process.default.exec);
19
- const exec = command => _effectApp.Effect.andThen(_logger.InfraLogger.logDebug(`Executing: ${command}`), _effectApp.Effect.tap(_effectApp.Effect.tryPromise(() => exec_(command)), r => _logger.InfraLogger.logDebug(`Executed`).pipe(_effectApp.Effect.annotateLogs("result", (0, _utils.pretty)(r)))));
20
- function printFile(printer, options) {
21
- return filePath => printFile_(filePath, printer, options);
22
- }
23
- function printFile_(filePath, printer, options) {
24
- return exec(["lp", ...buildPrintArgs(filePath, printer, options)].join(" "));
25
- }
26
- function* buildPrintArgs(filePath, printer, options) {
27
- if (printer) {
28
- if (printer.url) {
29
- yield `-h ${printer.url.host}`;
30
- if (printer.url.username) {
31
- yield `-U ${printer.url.username}`;
32
- }
33
- }
34
- yield `-d "${printer.id}"`;
35
- for (const o of options) {
36
- yield `-o ${o}`;
37
- }
38
- }
39
- yield `"${filePath}"`;
40
- }
41
- const prepareTempDir = exports.prepareTempDir = _effectApp.Effect.sync(() => {
42
- // TODO
43
- try {
44
- _fs.default.mkdirSync(_path.default.join(_os.default.tmpdir(), "effect-ts-app"));
45
- } catch (err) {
46
- if (`${err}`.includes("EEXIST")) {
47
- return;
48
- }
49
- throw err;
50
- }
51
- });
52
- const makeTempFile = (0, _fileUtil.tempFile)("effect-ts-app");
53
- const makePrintJobTempFile = exports.makePrintJobTempFile = makeTempFile("print-job");
54
- const makePrintJobTempFileArrayBuffer = (buffer, options) => makePrintJobTempFile(Buffer.from(buffer), options);
55
- exports.makePrintJobTempFileArrayBuffer = makePrintJobTempFileArrayBuffer;
56
- function printBuffer(printer, options) {
57
- return buffer => makePrintJobTempFileArrayBuffer(buffer).pipe(_effectApp.Effect.flatMap(printFile(printer, options)), _effectApp.Effect.scoped);
58
- }
59
- function getAvailablePrinters(host) {
60
- return _effectApp.Effect.gen(function* () {
61
- const {
62
- stdout
63
- } = yield* exec(["lpstat", ...buildListArgs({
64
- host
65
- }), "-s"].join(" "));
66
- return [...stdout.matchAll(/device for (\w+):/g)].map(_ => _[1]).filter(_effectApp.Predicate.isNotNullable).map(_ => _effectApp.S.NonEmptyString255(_));
67
- });
68
- }
69
- function* buildListArgs(config) {
70
- if (config?.host) {
71
- yield `-h ${config.host}`;
72
- }
73
- }
74
- const CUPSConfig = exports.CUPSConfig = _effectApp.Config.all({
75
- server: _effectApp.Config.string("server").pipe(_effectApp.Config.map(s => new URL(s)), _effectApp.Config.option, _effectApp.Config.nested("cups"))
76
- });
77
- class CUPS extends _effectApp.Effect.Service()("effect-app/CUPS", {
78
- effect: _effectApp.Effect.gen(function* () {
79
- const config = yield* CUPSConfig;
80
- function print(buffer, printerId, ...options) {
81
- const _print = printBuffer({
82
- id: printerId,
83
- url: config.server.value
84
- }, options);
85
- return _print(buffer);
86
- }
87
- return {
88
- print,
89
- printFile: (filePath, printerId, ...options) => printFile({
90
- id: printerId,
91
- url: config.server.value
92
- }, options)(filePath),
93
- getAvailablePrinters: getAvailablePrinters(config.server.value?.host)
94
- };
95
- })
96
- }) {
97
- static Fake = _effectApp.Layer.effect(this, _effectApp.Effect.sync(() => {
98
- return this.make({
99
- print: (buffer, printerId, ...options) => _logger.InfraLogger.logInfo("Printing to fake printer").pipe(_effectApp.Effect.zipRight(_effectApp.Effect.sync(() => ({
100
- stdout: "fake",
101
- stderr: ""
102
- }))), _effectApp.Effect.annotateLogs({
103
- printerId,
104
- "options": (0, _utils.pretty)(options),
105
- "bufferSize": buffer.byteLength.toString()
106
- })),
107
- printFile: (filePath, printerId, ...options) => _logger.InfraLogger.logInfo("Printing to fake printer").pipe(_effectApp.Effect.zipRight(_effectApp.Effect.sync(() => ({
108
- stdout: "fake",
109
- stderr: ""
110
- }))), _effectApp.Effect.annotateLogs({
111
- printerId,
112
- filePath,
113
- "options": (0, _utils.pretty)(options)
114
- })),
115
- getAvailablePrinters: _effectApp.Effect.sync(() => [])
116
- });
117
- }));
118
- }
119
- exports.CUPS = CUPS;
120
- //# sourceMappingURL=CUPS.cjs.map
package/_cjs/CUPS.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"CUPS.cjs","names":["_fileUtil","require","_child_process","_interopRequireDefault","_effectApp","_utils","_fs","_os","_path","_util","_logger","e","__esModule","default","PrinterId","exports","S","NonEmptyString255","exec_","util","promisify","cp","exec","command","Effect","andThen","InfraLogger","logDebug","tap","tryPromise","r","pipe","annotateLogs","pretty","printFile","printer","options","filePath","printFile_","buildPrintArgs","join","url","host","username","id","o","prepareTempDir","sync","fs","mkdirSync","path","os","tmpdir","err","includes","makeTempFile","tempFile","makePrintJobTempFile","makePrintJobTempFileArrayBuffer","buffer","Buffer","from","printBuffer","flatMap","scoped","getAvailablePrinters","gen","stdout","buildListArgs","matchAll","map","_","filter","Predicate","isNotNullable","config","CUPSConfig","Config","all","server","string","s","URL","option","nested","CUPS","Service","effect","print","printerId","_print","value","Fake","Layer","make","logInfo","zipRight","stderr","byteLength","toString"],"sources":["../src/CUPS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,109 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Sendgrid = Sendgrid;
7
- exports.isTestAddress = isTestAddress;
8
- exports.renderMessage = renderMessage;
9
- var _mail = _interopRequireDefault(require("@sendgrid/mail"));
10
- var _effectApp = require("effect-app");
11
- var _utils = require("effect-app/utils");
12
- var _util = require("util");
13
- var _logger = require("../logger.cjs");
14
- var _service = require("./service.cjs");
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- const makeSendgrid = ({
17
- apiKey,
18
- defaultFrom,
19
- defaultReplyTo,
20
- realMail,
21
- subjectPrefix
22
- }) => _effectApp.Effect.sync(() => {
23
- _mail.default.setApiKey(_effectApp.Redacted.value(apiKey));
24
- return _service.Emailer.of({
25
- sendMail(msg_) {
26
- return _effectApp.Effect.gen(function* () {
27
- const msg = (0, _utils.dropUndefinedT)({
28
- ...msg_,
29
- from: msg_.from ?? defaultFrom,
30
- replyTo: msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
31
- });
32
- const render = renderMessage(!realMail);
33
- const renderedMsg_ = render(msg);
34
- const renderedMsg = {
35
- ...renderedMsg_,
36
- subject: `${subjectPrefix}${renderedMsg_.subject}`,
37
- ...("content" in renderedMsg_ ? {
38
- content: [...renderedMsg_.content]
39
- } : {})
40
- };
41
- yield* _logger.InfraLogger.logDebug("Sending email").pipe(_effectApp.Effect.annotateLogs("msg", (0, _util.inspect)(renderedMsg, false, 5)));
42
- const ret = yield* _effectApp.Effect.async(cb => void _mail.default.send(renderedMsg,
43
- // sue me
44
- msg.isMultiple ?? true, (err, result) => err ? cb(_effectApp.Effect.fail(err)) : cb(_effectApp.Effect.sync(() => result)))).pipe(_effectApp.Effect.mapError(raw => new _service.SendMailError({
45
- raw
46
- })));
47
- // const event = {
48
- // name: "EmailSent",
49
- // properties: {
50
- // templateId: msg.templateId
51
- // }
52
- // }
53
- // yield* InfraLogger.logDebug("Tracking email event").annotateLogs("event", event.$$.pretty)
54
- // const { trackEvent } = yield* AiContextService
55
- // trackEvent(event)
56
- return ret;
57
- });
58
- }
59
- });
60
- });
61
- function Sendgrid(config) {
62
- return _service.Emailer.toLayer(makeSendgrid(config));
63
- }
64
- /**
65
- * @hidden
66
- */
67
- function renderMessage(forceFake) {
68
- let i = 0;
69
- const makeId = () => i++;
70
- return forceFake ? msg => (0, _utils.dropUndefinedT)({
71
- ...msg,
72
- to: msg.to && renderFake(msg.to, makeId),
73
- cc: msg.cc && renderFake(msg.cc, makeId),
74
- bcc: msg.bcc && renderFake(msg.bcc, makeId)
75
- }) : msg => (0, _utils.dropUndefinedT)({
76
- ...msg,
77
- to: msg.to && renderFakeIfTest(msg.to, makeId),
78
- cc: msg.cc && renderFakeIfTest(msg.cc, makeId),
79
- bcc: msg.bcc && renderFakeIfTest(msg.bcc, makeId)
80
- });
81
- }
82
- /**
83
- * @hidden
84
- */
85
- function isTestAddress(to) {
86
- return typeof to === "string" && to.toLowerCase().endsWith(".test") || typeof to === "object" && "email" in to && to.email.toLowerCase().endsWith(".test");
87
- }
88
- function renderFake(addr, makeId) {
89
- return {
90
- name: renderMailData(addr),
91
- email: `test+${makeId()}@nomizz.com`
92
- };
93
- }
94
- const eq = _effectApp.Equivalence.mapInput(_effectApp.Equivalence.string, to => typeof to === "string" ? to.toLowerCase() : to.email.toLowerCase());
95
- // TODO: should just not add any already added email address
96
- // https://stackoverflow.com/a/53603076/11595834
97
- function renderFakeIfTest(addr, makeId) {
98
- return _effectApp.Array.isArray(addr) ? _effectApp.Array.dedupeWith(addr.map(x => isTestAddress(x) ? renderFake(x, makeId) : x), eq) : isTestAddress(addr) ? renderFake(addr, makeId) : addr;
99
- }
100
- function renderMailData(md) {
101
- if (_effectApp.Array.isArray(md)) {
102
- return md.map(renderMailData).join(", ");
103
- }
104
- if (typeof md === "string") {
105
- return md;
106
- }
107
- return md.email;
108
- }
109
- //# sourceMappingURL=Sendgrid.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Sendgrid.cjs","names":["_mail","_interopRequireDefault","require","_effectApp","_utils","_util","_logger","_service","e","__esModule","default","makeSendgrid","apiKey","defaultFrom","defaultReplyTo","realMail","subjectPrefix","Effect","sync","sgMail","setApiKey","Redacted","value","Emailer","of","sendMail","msg_","gen","msg","dropUndefinedT","from","replyTo","undefined","render","renderMessage","renderedMsg_","renderedMsg","subject","content","InfraLogger","logDebug","pipe","annotateLogs","inspect","ret","async","cb","send","isMultiple","err","result","fail","mapError","raw","SendMailError","Sendgrid","config","toLayer","forceFake","i","makeId","to","renderFake","cc","bcc","renderFakeIfTest","isTestAddress","toLowerCase","endsWith","email","addr","name","renderMailData","eq","Equivalence","mapInput","string","Array","isArray","dedupeWith","map","x","md","join"],"sources":["../../src/Emailer/Sendgrid.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAEA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAAqD,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGrD,MAAMG,YAAY,GAAGA,CAAC;EAAEC,MAAM;EAAEC,WAAW;EAAEC,cAAc;EAAEC,QAAQ;EAAEC;AAAa,CAAkB,KACpGC,iBAAM,CAACC,IAAI,CAAC,MAAK;EACfC,aAAM,CAACC,SAAS,CAACC,mBAAQ,CAACC,KAAK,CAACV,MAAM,CAAC,CAAC;EAExC,OAAOW,gBAAO,CAACC,EAAE,CAAC;IAChBC,QAAQA,CAACC,IAA0B;MACjC,OAAOT,iBAAM,CAACU,GAAG,CAAC,aAAS;QACzB,MAAMC,GAAG,GAAa,IAAAC,qBAAc,EAAC;UACnC,GAAGH,IAAI;UACPI,IAAI,EAAEJ,IAAI,CAACI,IAAI,IAAIjB,WAAW;UAC9BkB,OAAO,EAAEL,IAAI,CAACK,OAAO,KAAKL,IAAI,CAACI,IAAI,GAAGE,SAAS,GAAGlB,cAAc;SACjE,CAAC;QACF,MAAMmB,MAAM,GAAGC,aAAa,CAAC,CAACnB,QAAQ,CAAC;QAEvC,MAAMoB,YAAY,GAAGF,MAAM,CAACL,GAAG,CAAC;QAChC,MAAMQ,WAAW,GAAG;UAClB,GAAGD,YAAoD;UACvDE,OAAO,EAAE,GAAGrB,aAAa,GAAGmB,YAAY,CAACE,OAAO,EAAE;UAClD,IAAG,SAAS,IAAIF,YAAY,GACxB;YAAEG,OAAO,EAAE,CAAC,GAAGH,YAAY,CAACG,OAAO;UAAoC,CAAE,GACzE,EAAE;SACP;QACD,OAAOC,mBAAW,CAACC,QAAQ,CAAC,eAAe,CAAC,CAACC,IAAI,CAACxB,iBAAM,CAACyB,YAAY,CAAC,KAAK,EAAE,IAAAC,aAAO,EAACP,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAE7G,MAAMQ,GAAG,GAAG,OAAO3B,iBAAM,CACtB4B,KAAK,CAIHC,EAAE,IACD,KAAK3B,aAAM,CAAC4B,IAAI,CACdX,WAAkB;QAAE;QACpBR,GAAG,CAACoB,UAAU,IAAI,IAAI,EACtB,CAACC,GAAG,EAAEC,MAAM,KACVD,GAAG,GACCH,EAAE,CAAC7B,iBAAM,CAACkC,IAAI,CAACF,GAAG,CAAC,CAAC,GACpBH,EAAE,CAAC7B,iBAAM,CAACC,IAAI,CAAC,MAAMgC,MAAM,CAAC,CAAC,CACpC,CACJ,CACAT,IAAI,CAACxB,iBAAM,CAACmC,QAAQ,CAAEC,GAAG,IAAK,IAAIC,sBAAa,CAAC;UAAED;QAAG,CAAE,CAAC,CAAC,CAAC;QAE7D;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,OAAOT,GAAG;MACZ,CAAC,CAAC;IACJ;GACD,CAAC;AACJ,CAAC,CAAC;AAEE,SAAUW,QAAQA,CAACC,MAAsB;EAC7C,OAAOjC,gBAAO,CAACkC,OAAO,CAAC9C,YAAY,CAAC6C,MAAM,CAAC,CAAC;AAC9C;AAEA;;;AAGM,SAAUtB,aAAaA,CAACwB,SAAkB;EAC9C,IAAIC,CAAC,GAAG,CAAC;EACT,MAAMC,MAAM,GAAGA,CAAA,KAAMD,CAAC,EAAE;EACxB,OAAOD,SAAS,GACX9B,GAAa,IACd,IAAAC,qBAAc,EAAC;IACb,GAAGD,GAAG;IACNiC,EAAE,EAAEjC,GAAG,CAACiC,EAAE,IAAIC,UAAU,CAAClC,GAAG,CAACiC,EAAE,EAAED,MAAM,CAAC;IACxCG,EAAE,EAAEnC,GAAG,CAACmC,EAAE,IAAID,UAAU,CAAClC,GAAG,CAACmC,EAAE,EAAEH,MAAM,CAAC;IACxCI,GAAG,EAAEpC,GAAG,CAACoC,GAAG,IAAIF,UAAU,CAAClC,GAAG,CAACoC,GAAG,EAAEJ,MAAM;GAC3C,CAAC,GACDhC,GAAa,IACd,IAAAC,qBAAc,EAAC;IACb,GAAGD,GAAG;IACNiC,EAAE,EAAEjC,GAAG,CAACiC,EAAE,IAAII,gBAAgB,CAACrC,GAAG,CAACiC,EAAE,EAAED,MAAM,CAAC;IAC9CG,EAAE,EAAEnC,GAAG,CAACmC,EAAE,IAAIE,gBAAgB,CAACrC,GAAG,CAACmC,EAAE,EAAEH,MAAM,CAAC;IAC9CI,GAAG,EAAEpC,GAAG,CAACoC,GAAG,IAAIC,gBAAgB,CAACrC,GAAG,CAACoC,GAAG,EAAEJ,MAAM;GACjD,CAAC;AACR;AAEA;;;AAGM,SAAUM,aAAaA,CAACL,EAAa;EACzC,OACG,OAAOA,EAAE,KAAK,QAAQ,IAAIA,EAAE,CAACM,WAAW,EAAE,CAACC,QAAQ,CAAC,OAAO,CAAC,IACzD,OAAOP,EAAE,KAAK,QAAQ,IACrB,OAAO,IAAIA,EAAE,IACbA,EAAE,CAACQ,KAAK,CAACF,WAAW,EAAE,CAACC,QAAQ,CAAC,OAAO,CAAE;AAElD;AAEA,SAASN,UAAUA,CAACQ,IAAsC,EAAEV,MAAoB;EAC9E,OAAO;IACLW,IAAI,EAAEC,cAAc,CAACF,IAAI,CAAC;IAC1BD,KAAK,EAAE,QAAQT,MAAM,EAAE;GACxB;AACH;AACA,MAAMa,EAAE,GAAGC,sBAAW,CAACC,QAAQ,CAC7BD,sBAAW,CAACE,MAAM,EACjBf,EAA6C,IAAK,OAAOA,EAAE,KAAK,QAAQ,GAAGA,EAAE,CAACM,WAAW,EAAE,GAAGN,EAAE,CAACQ,KAAK,CAACF,WAAW,EAAE,CACtH;AAED;AACA;AACA,SAASF,gBAAgBA,CAACK,IAAsC,EAAEV,MAAoB;EACpF,OAAOiB,gBAAK,CAACC,OAAO,CAACR,IAAI,CAAC,GACtBO,gBAAK,CAACE,UAAU,CAChBT,IAAI,CACDU,GAAG,CAAEC,CAAC,IAAMf,aAAa,CAACe,CAAC,CAAC,GAAGnB,UAAU,CAACmB,CAAC,EAAErB,MAAM,CAAC,GAAGqB,CAAE,CAAC,EAC7DR,EAAE,CACH,GACCP,aAAa,CAACI,IAAI,CAAC,GACnBR,UAAU,CAACQ,IAAI,EAAEV,MAAM,CAAC,GACxBU,IAAI;AACV;AAEA,SAASE,cAAcA,CAACU,EAAoC;EAC1D,IAAIL,gBAAK,CAACC,OAAO,CAACI,EAAE,CAAC,EAAE;IACrB,OAAOA,EAAE,CAACF,GAAG,CAACR,cAAc,CAAC,CAACW,IAAI,CAAC,IAAI,CAAC;EAC1C;EACA,IAAI,OAAOD,EAAE,KAAK,QAAQ,EAAE;IAC1B,OAAOA,EAAE;EACX;EACA,OAAOA,EAAE,CAACb,KAAK;AACjB","ignoreList":[]}
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FakeSendgrid = void 0;
7
- var _effectApp = require("effect-app");
8
- var _utils = require("effect-app/utils");
9
- var _logger = require("../logger.cjs");
10
- var _service = require("./service.cjs");
11
- const makeFake = _logger.InfraLogger.logInfo("FAKE Emailer Service enabled").pipe(_effectApp.Effect.map(() => _service.Emailer.of({
12
- sendMail(msg) {
13
- return _logger.InfraLogger.logDebug(`Fake send mail`).pipe(_effectApp.Effect.annotateLogs("msg", (0, _utils.pretty)(msg)));
14
- }
15
- })));
16
- const FakeSendgrid = exports.FakeSendgrid = _service.Emailer.toLayer(makeFake);
17
- //# sourceMappingURL=fake.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fake.cjs","names":["_effectApp","require","_utils","_logger","_service","makeFake","InfraLogger","logInfo","pipe","Effect","map","Emailer","of","sendMail","msg","logDebug","annotateLogs","pretty","FakeSendgrid","exports","toLayer"],"sources":["../../src/Emailer/fake.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,MAAMI,QAAQ,GAAGC,mBAAW,CACzBC,OAAO,CAAC,8BAA8B,CAAC,CACvCC,IAAI,CAACC,iBAAM,CAACC,GAAG,CAAC,MACfC,gBAAO,CAACC,EAAE,CAAC;EACTC,QAAQA,CAACC,GAAG;IACV,OAAOR,mBAAW,CACfS,QAAQ,CAAC,gBAAgB,CAAC,CAC1BP,IAAI,CAACC,iBAAM,CAACO,YAAY,CAAC,KAAK,EAAE,IAAAC,aAAM,EAACH,GAAG,CAAC,CAAC,CAAC;EAClD;CACD,CAAC,CACH,CAAC;AAEG,MAAMI,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGP,gBAAO,CAACS,OAAO,CAACf,QAAQ,CAAC","ignoreList":[]}
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SendMailError = exports.Emailer = void 0;
7
- var _effectApp = require("effect-app");
8
- class SendMailError extends _effectApp.Data.TaggedError("SendMailError") {}
9
- exports.SendMailError = SendMailError;
10
- class Emailer extends _effectApp.Context.TagId("effect-app/Emailer")() {}
11
- exports.Emailer = Emailer;
12
- //# sourceMappingURL=service.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.cjs","names":["_effectApp","require","SendMailError","Data","TaggedError","exports","Emailer","Context","TagId"],"sources":["../../src/Emailer/service.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAGM,MAAOC,aAAc,SAAQC,eAAI,CAACC,WAAW,CAAC,eAAe,CAEjE;AAAGC,OAAA,CAAAH,aAAA,GAAAA,aAAA;AAEC,MAAOI,OAAQ,SAAQC,kBAAO,CAACC,KAAK,CAAC,oBAAoB,CAAC,EAE5D;AAAGH,OAAA,CAAAC,OAAA,GAAAA,OAAA","ignoreList":[]}
package/_cjs/Emailer.cjs DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _service = require("./Emailer/service.cjs");
7
- Object.keys(_service).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _service[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _service[key];
14
- }
15
- });
16
- });
17
- //# sourceMappingURL=Emailer.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Emailer.cjs","names":["_service","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../src/Emailer.ts"],"sourcesContent":[null],"mappings":";;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,QAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,QAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,QAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MainFiberSet = void 0;
7
- var _effectApp = require("effect-app");
8
- var _logger = require("./logger.cjs");
9
- var _errors = require("./QueueMaker/errors.cjs");
10
- var _RequestFiberSet = require("./RequestFiberSet.cjs");
11
- const make = _effectApp.Effect.gen(function* () {
12
- const set = yield* _effectApp.FiberSet.make();
13
- const add = (...fibers) => _effectApp.Effect.sync(() => fibers.forEach(_ => _effectApp.FiberSet.unsafeAdd(set, _)));
14
- const addAll = fibers => _effectApp.Effect.sync(() => fibers.forEach(_ => _effectApp.FiberSet.unsafeAdd(set, _)));
15
- const join = _effectApp.FiberSet.size(set).pipe(_effectApp.Effect.andThen(count => _logger.InfraLogger.logDebug(`Joining ${count} current fibers on the MainFiberSet`)), _effectApp.Effect.andThen(_effectApp.FiberSet.join(set)));
16
- const run = _effectApp.FiberSet.run(set);
17
- // const waitUntilEmpty = Effect.gen(function*() {
18
- // const currentSize = yield* FiberSet.size(set)
19
- // if (currentSize === 0) {
20
- // return
21
- // }
22
- // yield* InfraLogger.logInfo("Waiting MainFiberSet to be empty: " + currentSize)
23
- // while ((yield* FiberSet.size(set)) > 0) yield* Effect.sleep("250 millis")
24
- // yield* InfraLogger.logDebug("MainFiberSet is empty")
25
- // })
26
- // TODO: loop and interrupt all fibers in the set continuously?
27
- const interrupt = _effectApp.Fiber.interruptAll(set);
28
- /**
29
- * Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
30
- * new fiber isn't attached to the parent, when the fiber executing the
31
- * returned effect terminates, the forked fiber will continue running.
32
- * The fiber will be interrupted when the MainFiberSet scope is closed.
33
- *
34
- * The parent span is set to the root span of the current fiber.
35
- * Reports and then swallows errors.
36
- */
37
- function forkDaemonReport(self) {
38
- return self.pipe(_effectApp.Effect.asVoid, _effectApp.Effect.catchAllCause((0, _errors.reportNonInterruptedFailureCause)({})), _RequestFiberSet.setRootParentSpan, _effectApp.Effect.uninterruptible, run);
39
- }
40
- return {
41
- interrupt,
42
- join,
43
- forkDaemonReport,
44
- run,
45
- add,
46
- addAll
47
- };
48
- });
49
- /**
50
- * Whenever you fork long running (e.g worker) fibers via e.g `Effect.forkScoped` or `Effect.forkDaemon`
51
- * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
52
- * This way any errors will blow up the main program instead of fibers dying unknowingly.
53
- */
54
- class MainFiberSet extends _effectApp.Context.TagMakeId("MainFiberSet", make)() {
55
- static Live = this.toLayerScoped();
56
- static JoinLive = this.pipe(_effectApp.Effect.andThen(_ => _.join), _effectApp.Layer.effectDiscard, _effectApp.Layer.provide(this.Live));
57
- static run = self => this.use(_ => _.run(self));
58
- static forkDaemonReport = self => this.use(_ => _.forkDaemonReport(self));
59
- }
60
- exports.MainFiberSet = MainFiberSet;
61
- //# sourceMappingURL=MainFiberSet.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MainFiberSet.cjs","names":["_effectApp","require","_logger","_errors","_RequestFiberSet","make","Effect","gen","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","join","size","pipe","andThen","count","InfraLogger","logDebug","run","interrupt","Fiber","interruptAll","forkDaemonReport","self","asVoid","catchAllCause","reportNonInterruptedFailureCause","setRootParentSpan","uninterruptible","MainFiberSet","Context","TagMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","use"],"sources":["../src/MainFiberSet.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAEA,MAAMI,IAAI,GAAGC,iBAAM,CAACC,GAAG,CAAC,aAAS;EAC/B,MAAMC,GAAG,GAAG,OAAOC,mBAAQ,CAACJ,IAAI,EAAkB;EAClD,MAAMK,GAAG,GAAGA,CAAC,GAAGC,MAA0C,KACxDL,iBAAM,CAACM,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,mBAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAME,MAAM,GAAIL,MAAmD,IACjEL,iBAAM,CAACM,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,mBAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAMG,IAAI,GAAGR,mBAAQ,CAACS,IAAI,CAACV,GAAG,CAAC,CAACW,IAAI,CAClCb,iBAAM,CAACc,OAAO,CAAEC,KAAK,IAAKC,mBAAW,CAACC,QAAQ,CAAC,WAAWF,KAAK,qCAAqC,CAAC,CAAC,EACtGf,iBAAM,CAACc,OAAO,CAACX,mBAAQ,CAACQ,IAAI,CAACT,GAAG,CAAC,CAAC,CACnC;EACD,MAAMgB,GAAG,GAAGf,mBAAQ,CAACe,GAAG,CAAChB,GAAG,CAAC;EAE7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA,MAAMiB,SAAS,GAAGC,gBAAK,CAACC,YAAY,CAACnB,GAAG,CAAC;EAEzC;;;;;;;;;EASA,SAASoB,gBAAgBA,CAAUC,IAAqB;IACtD,OAAOA,IAAI,CAACV,IAAI,CACdb,iBAAM,CAACwB,MAAM,EACbxB,iBAAM,CAACyB,aAAa,CAAC,IAAAC,wCAAgC,EAAC,EAAE,CAAC,CAAC,EAC1DC,kCAAiB,EACjB3B,iBAAM,CAAC4B,eAAe,EACtBV,GAAG,CACJ;EACH;EACA,OAAO;IACLC,SAAS;IACTR,IAAI;IACJW,gBAAgB;IAChBJ,GAAG;IACHd,GAAG;IACHM;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOmB,YAAa,SAAQC,kBAAO,CAACC,SAAS,CAAC,cAAc,EAAEhC,IAAI,CAAC,EAAgB;EACvF,OAAgBiC,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACrB,IAAI,CAACb,iBAAM,CAACc,OAAO,CAAEN,CAAC,IAAKA,CAAC,CAACG,IAAI,CAAC,EAAEwB,gBAAK,CAACC,aAAa,EAAED,gBAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAClH,OAAgBd,GAAG,GAAUK,IAAyB,IAAK,IAAI,CAACe,GAAG,CAAE9B,CAAC,IAAKA,CAAC,CAACU,GAAG,CAACK,IAAI,CAAC,CAAC;EACvF,OAAgBD,gBAAgB,GAAaC,IAAqB,IAAK,IAAI,CAACe,GAAG,CAAE9B,CAAC,IAAKA,CAAC,CAACc,gBAAgB,CAACC,IAAI,CAAC,CAAC","ignoreList":[]}
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.extendRepo = void 0;
7
- var _effectApp = require("effect-app");
8
- var _client = require("effect-app/client");
9
- var _Pure = require("effect-app/Pure");
10
- var _dsl = require("../dsl.cjs");
11
- var Q = _interopRequireWildcard(require("../query.cjs"));
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- const extendRepo = repo => {
15
- const get = id => _effectApp.Effect.flatMap(repo.find(id), _ => _effectApp.Effect.mapError(_, () => new _client.NotFoundError({
16
- type: repo.itemType,
17
- id
18
- })));
19
- function saveManyWithPure_(items, pure) {
20
- return saveAllWithEffectInt((0, _Pure.runTerm)(pure, [...items]));
21
- }
22
- function saveWithPure_(item, pure) {
23
- return saveAllWithEffectInt((0, _Pure.runTerm)(pure, item).pipe(_effectApp.Effect.map(([item, events, a]) => [[item], events, a])));
24
- }
25
- function saveAllWithEffectInt(gen) {
26
- return _effectApp.Effect.flatMap(gen, ([items, events, a]) => repo.saveAndPublish(items, events).pipe(_effectApp.Effect.map(() => a)));
27
- }
28
- function saveManyWithPureBatched_(items, pure, batchSize = 100) {
29
- return _effectApp.Effect.forEach(_effectApp.Array.chunk_(items, batchSize), batch => saveAllWithEffectInt((0, _Pure.runTerm)(pure, batch)));
30
- }
31
- const queryAndSavePure = (q, pure, batch) => repo.query(q).pipe(_effectApp.Effect.andThen(_ => _effectApp.Array.isArray(_) ? batch === undefined ? saveManyWithPure_(_, pure) : saveManyWithPureBatched_(_, pure, batch === "batched" ? 100 : batch) : saveWithPure_(_, pure)));
32
- const saveManyWithPure = (items, pure, batch) => batch ? _effectApp.Effect.forEach(_effectApp.Array.chunk_(items, batch === "batched" ? 100 : batch), batch => saveAllWithEffectInt((0, _Pure.runTerm)(pure, batch))) : saveAllWithEffectInt((0, _Pure.runTerm)(pure, [...items]));
33
- const byIdAndSaveWithPure = (id, pure) => get(id).pipe(_effectApp.Effect.flatMap(item => saveWithPure_(item, pure)));
34
- const _request = _effectApp.Request.tagged(`Get${repo.itemType}`);
35
- const requestResolver = _effectApp.RequestResolver.makeBatched(requests => repo.query(Q.where(repo.idKey, "in", requests.map(_ => _.id)))
36
- // TODO
37
- .pipe(_effectApp.Effect.andThen(items => _effectApp.Effect.forEach(requests, r => _effectApp.Request.complete(r, _effectApp.Array.findFirst(items, _ => _[repo.idKey] === r.id).pipe(_effectApp.Option.match({
38
- onNone: () => _effectApp.Exit.fail(new _client.NotFoundError({
39
- type: repo.itemType,
40
- id: r.id
41
- })),
42
- onSome: _effectApp.Exit.succeed
43
- }))), {
44
- discard: true
45
- })), _effectApp.Effect.catchAllCause(cause => _effectApp.Effect.forEach(requests, _effectApp.Request.complete(_effectApp.Exit.failCause(cause)), {
46
- discard: true
47
- })))).pipe(_effectApp.RequestResolver.batchN(20));
48
- const exts = {
49
- request: id => _effectApp.Effect.request(_request({
50
- id
51
- }), requestResolver),
52
- get,
53
- log: evt => _dsl.AnyPureDSL.log(evt),
54
- removeById: id => _effectApp.Effect.andThen(get(id), _ => repo.removeAndPublish([_])),
55
- save: (...items) => repo.saveAndPublish(items),
56
- saveWithEvents: events => (...items) => repo.saveAndPublish(items, events),
57
- queryAndSavePure,
58
- saveManyWithPure,
59
- byIdAndSaveWithPure,
60
- saveWithPure: (item, pure) => saveAllWithEffectInt((0, _Pure.runTerm)(pure, item).pipe(_effectApp.Effect.map(([item, events, a]) => [[item], events, a])))
61
- };
62
- return {
63
- ...repo,
64
- ...exts
65
- };
66
- };
67
- exports.extendRepo = extendRepo;
68
- //# sourceMappingURL=ext.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ext.cjs","names":["_effectApp","require","_client","_Pure","_dsl","Q","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","extendRepo","repo","id","Effect","flatMap","find","_","mapError","NotFoundError","type","itemType","saveManyWithPure_","items","pure","saveAllWithEffectInt","runTerm","saveWithPure_","item","pipe","map","events","gen","saveAndPublish","saveManyWithPureBatched_","batchSize","forEach","Array","chunk_","batch","queryAndSavePure","q","query","andThen","isArray","undefined","saveManyWithPure","byIdAndSaveWithPure","_request","Request","tagged","requestResolver","RequestResolver","makeBatched","requests","where","idKey","complete","findFirst","Option","match","onNone","Exit","fail","onSome","succeed","discard","catchAllCause","cause","failCause","batchN","exts","request","log","evt","AnyPureDSL","removeById","removeAndPublish","save","saveWithEvents","saveWithPure","exports"],"sources":["../../../src/Model/Repository/ext.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}