@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
@@ -1,149 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.QueueId = void 0;
7
- exports.makeSQLQueue = makeSQLQueue;
8
- var _setupRequest = require("@effect-app/infra/api/setupRequest");
9
- var _errors = require("@effect-app/infra/QueueMaker/errors");
10
- var _service = require("@effect-app/infra/QueueMaker/service");
11
- var _sql = require("@effect/sql");
12
- var _dateFns = require("date-fns");
13
- var _effectApp = require("effect-app");
14
- var _utils = require("effect-app/utils");
15
- var _SQL = require("../adapters/SQL.cjs");
16
- var _logger = require("../logger.cjs");
17
- const QueueId = exports.QueueId = _effectApp.S.Number.pipe(_effectApp.S.brand("QueueId"));
18
- // TODO: let the model track and Auto Generate versionColumn on every update instead
19
- function makeSQLQueue(queueName, queueDrainName, schema, drainSchema) {
20
- return _effectApp.Effect.gen(function* () {
21
- const base = {
22
- id: _SQL.SQLModel.Generated(QueueId),
23
- meta: _SQL.SQLModel.JsonFromString(_service.QueueMeta),
24
- name: _effectApp.S.NonEmptyString255,
25
- createdAt: _SQL.SQLModel.DateTimeInsert,
26
- updatedAt: _SQL.SQLModel.DateTimeUpdate,
27
- // TODO: at+owner
28
- processingAt: _SQL.SQLModel.FieldOption(_effectApp.S.Date),
29
- finishedAt: _SQL.SQLModel.FieldOption(_effectApp.S.Date),
30
- etag: _effectApp.S.String // TODO: use a SQLModel thing that auto updates it?
31
- // TODO: record locking.. / optimistic locking
32
- // rowVersion: SQLModel.DateTimeFromNumberWithNow
33
- };
34
- class Queue extends _SQL.SQLModel.Class("Queue")({
35
- body: _SQL.SQLModel.JsonFromString(schema),
36
- ...base
37
- }) {}
38
- class Drain extends _SQL.SQLModel.Class("Drain")({
39
- body: _SQL.SQLModel.JsonFromString(drainSchema),
40
- ...base
41
- }) {}
42
- const sql = yield* _sql.SqlClient.SqlClient;
43
- const queueRepo = yield* _SQL.SQLModel.makeRepository(Queue, {
44
- tableName: "queue",
45
- spanPrefix: "QueueRepo",
46
- idColumn: "id",
47
- versionColumn: "etag"
48
- });
49
- const drainRepo = yield* _SQL.SQLModel.makeRepository(Drain, {
50
- tableName: "queue",
51
- spanPrefix: "DrainRepo",
52
- idColumn: "id",
53
- versionColumn: "etag"
54
- });
55
- const decodeDrain = _effectApp.S.decode(Drain);
56
- const drain = _effectApp.Effect.sync(() => (0, _dateFns.subMinutes)(new Date(), 15)).pipe(_effectApp.Effect.andThen(limit => sql`SELECT *
57
- FROM queue
58
- WHERE name = ${queueDrainName} AND finishedAt IS NULL AND (processingAt IS NULL OR processingAt < ${limit.getTime()})
59
- LIMIT 1`));
60
- const q = {
61
- offer: (body, meta) => _effectApp.Effect.gen(function* () {
62
- yield* queueRepo.insertVoid(Queue.insert.make({
63
- body,
64
- meta,
65
- name: queueName,
66
- processingAt: _effectApp.Option.none(),
67
- finishedAt: _effectApp.Option.none(),
68
- etag: crypto.randomUUID()
69
- }));
70
- }),
71
- take: _effectApp.Effect.gen(function* () {
72
- while (true) {
73
- const [first] = yield* drain.pipe(_effectApp.Effect.withTracerEnabled(false)); // disable sql tracer otherwise we spam it..
74
- if (first) {
75
- const dec = yield* decodeDrain(first);
76
- const {
77
- createdAt,
78
- updatedAt,
79
- ...rest
80
- } = dec;
81
- return yield* drainRepo.update(Drain.update.make({
82
- ...rest,
83
- processingAt: _effectApp.Option.some(new Date())
84
- }) // auto in lib , etag: crypto.randomUUID()
85
- );
86
- }
87
- if (first) return first;
88
- yield* _effectApp.Effect.sleep(250);
89
- }
90
- }),
91
- finish: ({
92
- createdAt,
93
- updatedAt,
94
- ...q
95
- }) => drainRepo.updateVoid(Drain.update.make({
96
- ...q,
97
- finishedAt: _effectApp.Option.some(new Date())
98
- })) // auto in lib , etag: crypto.randomUUID()
99
- };
100
- return {
101
- publish: (...messages) => _effectApp.Effect.gen(function* () {
102
- const requestContext = yield* _setupRequest.getRequestContext;
103
- return yield* _effectApp.Effect.forEach(messages, m => q.offer(m, requestContext), {
104
- discard: true
105
- });
106
- }).pipe(_effectApp.Effect.withSpan("queue.publish: " + queueName, {
107
- captureStackTrace: false,
108
- kind: "producer",
109
- attributes: {
110
- "message_tags": messages.map(_ => _._tag)
111
- }
112
- })),
113
- drain: (handleEvent, sessionId) => _effectApp.Effect.gen(function* () {
114
- const silenceAndReportError = (0, _errors.reportNonInterruptedFailure)({
115
- name: "MemQueue.drain." + queueDrainName
116
- });
117
- const processMessage = msg => _effectApp.Effect.succeed(msg).pipe(_effectApp.Effect.flatMap(({
118
- body,
119
- meta
120
- }) => {
121
- let effect = _logger.InfraLogger.logInfo(`[${queueDrainName}] Processing incoming message`).pipe(_effectApp.Effect.annotateLogs({
122
- body: (0, _utils.pretty)(body),
123
- meta: (0, _utils.pretty)(meta)
124
- }), _effectApp.Effect.zipRight(handleEvent(body)), silenceAndReportError, _ => (0, _setupRequest.setupRequestContext)(_, meta), _effectApp.Effect.withSpan(`queue.drain: ${queueDrainName}.${body._tag}`, {
125
- captureStackTrace: false,
126
- kind: "consumer",
127
- attributes: {
128
- "queue.name": queueDrainName,
129
- "queue.sessionId": sessionId,
130
- "queue.input": body
131
- }
132
- }));
133
- if (meta.span) {
134
- effect = _effectApp.Effect.withParentSpan(effect, _effectApp.Tracer.externalSpan(meta.span));
135
- }
136
- return effect;
137
- }));
138
- return yield* q.take.pipe(_effectApp.Effect.flatMap(x => processMessage(x).pipe(_effectApp.Effect.uninterruptible, _effectApp.Effect.fork, _effectApp.Effect.flatMap(_effectApp.Fiber.join), _effectApp.Effect.tap(q.finish(x)))), silenceAndReportError, _effectApp.Effect.withSpan(`queue.drain: ${queueDrainName}`, {
139
- attributes: {
140
- "queue.type": "sql",
141
- "queue.name": queueDrainName,
142
- "queue.sessionId": sessionId
143
- }
144
- }), _effectApp.Effect.forever);
145
- })
146
- };
147
- });
148
- }
149
- //# sourceMappingURL=SQLQueue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SQLQueue.cjs","names":["_setupRequest","require","_errors","_service","_sql","_dateFns","_effectApp","_utils","_SQL","_logger","QueueId","exports","S","Number","pipe","brand","makeSQLQueue","queueName","queueDrainName","schema","drainSchema","Effect","gen","base","id","SQLModel","Generated","meta","JsonFromString","QueueMeta","name","NonEmptyString255","createdAt","DateTimeInsert","updatedAt","DateTimeUpdate","processingAt","FieldOption","Date","finishedAt","etag","String","Queue","Class","body","Drain","sql","SqlClient","queueRepo","makeRepository","tableName","spanPrefix","idColumn","versionColumn","drainRepo","decodeDrain","decode","drain","sync","subMinutes","andThen","limit","getTime","q","offer","insertVoid","insert","make","Option","none","crypto","randomUUID","take","first","withTracerEnabled","dec","rest","update","some","sleep","finish","updateVoid","publish","messages","requestContext","getRequestContext","forEach","m","discard","withSpan","captureStackTrace","kind","attributes","map","_","_tag","handleEvent","sessionId","silenceAndReportError","reportNonInterruptedFailure","processMessage","msg","succeed","flatMap","effect","InfraLogger","logInfo","annotateLogs","pretty","zipRight","setupRequestContext","span","withParentSpan","Tracer","externalSpan","x","uninterruptible","fork","Fiber","join","tap","forever"],"sources":["../../src/QueueMaker/SQLQueue.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.reportNonInterruptedFailure = reportNonInterruptedFailure;
7
- exports.reportNonInterruptedFailureCause = reportNonInterruptedFailureCause;
8
- exports.reportQueueError = void 0;
9
- var _errorReporter = require("@effect-app/infra/errorReporter");
10
- var _effectApp = require("effect-app");
11
- const reportQueueError_ = (0, _errorReporter.reportError)("Queue");
12
- const reportQueueError = (cause, extras) => reportQueueError_(cause, extras);
13
- exports.reportQueueError = reportQueueError;
14
- function reportNonInterruptedFailure(context) {
15
- const report = reportNonInterruptedFailureCause(context);
16
- return inp => inp.pipe(_effectApp.Effect.onExit(_effectApp.Exit.match({
17
- onFailure: report,
18
- onSuccess: () => _effectApp.Effect.void
19
- })), _effectApp.Effect.exit);
20
- }
21
- function reportNonInterruptedFailureCause(context) {
22
- return cause => {
23
- if (_effectApp.Cause.isInterruptedOnly(cause)) {
24
- return _effectApp.Effect.failCause(cause);
25
- }
26
- return reportQueueError(cause, context);
27
- };
28
- }
29
- //# sourceMappingURL=errors.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.cjs","names":["_errorReporter","require","_effectApp","reportQueueError_","reportError","reportQueueError","cause","extras","exports","reportNonInterruptedFailure","context","report","reportNonInterruptedFailureCause","inp","pipe","Effect","onExit","Exit","match","onFailure","onSuccess","void","exit","Cause","isInterruptedOnly","failCause"],"sources":["../../src/QueueMaker/errors.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,MAAME,iBAAiB,GAAG,IAAAC,0BAAW,EAAC,OAAO,CAAC;AAEvC,MAAMC,gBAAgB,GAAGA,CAAIC,KAAe,EAAEC,MAAgC,KACnFJ,iBAAiB,CAACG,KAAK,EAAEC,MAAM,CAAC;AAAAC,OAAA,CAAAH,gBAAA,GAAAA,gBAAA;AAE5B,SAAUI,2BAA2BA,CAACC,OAAiC;EAC3E,MAAMC,MAAM,GAAGC,gCAAgC,CAACF,OAAO,CAAC;EACxD,OAAiBG,GAAoB,IACnCA,GAAG,CAACC,IAAI,CACNC,iBAAM,CAACC,MAAM,CACXC,eAAI,CAACC,KAAK,CAAC;IACTC,SAAS,EAAER,MAAM;IACjBS,SAAS,EAAEA,CAAA,KAAML,iBAAM,CAACM;GACzB,CAAC,CACH,EACDN,iBAAM,CAACO,IAAI,CACZ;AACL;AAEM,SAAUV,gCAAgCA,CAACF,OAAiC;EAChF,OAAWJ,KAAe,IAAkB;IAC1C,IAAIiB,gBAAK,CAACC,iBAAiB,CAAClB,KAAK,CAAC,EAAE;MAClC,OAAOS,iBAAM,CAACU,SAAS,CAACnB,KAAqB,CAAC;IAChD;IACA,OAAOD,gBAAgB,CAACC,KAAK,EAAEI,OAAO,CAAC;EACzC,CAAC;AACH","ignoreList":[]}
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeMemQueue = makeMemQueue;
7
- var _effect = require("effect");
8
- var _effectApp = require("effect-app");
9
- var _utils = require("effect-app/utils");
10
- var _memQueue = require("../adapters/memQueue.cjs");
11
- var _setupRequest = require("../api/setupRequest.cjs");
12
- var _logger = require("../logger.cjs");
13
- var _errors = require("./errors.cjs");
14
- var _service = require("./service.cjs");
15
- function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
16
- return _effectApp.Effect.gen(function* () {
17
- const mem = yield* _memQueue.MemQueue;
18
- const q = yield* mem.getOrCreateQueue(queueName);
19
- const qDrain = yield* mem.getOrCreateQueue(queueDrainName);
20
- const wireSchema = _effectApp.S.Struct({
21
- body: schema,
22
- meta: _service.QueueMeta
23
- });
24
- const drainW = _effectApp.S.Struct({
25
- body: drainSchema,
26
- meta: _service.QueueMeta
27
- });
28
- const parseDrain = (0, _effectApp.flow)(_effectApp.S.decodeUnknown(drainW), _effectApp.Effect.orDie);
29
- return {
30
- publish: (...messages) => _effectApp.Effect.gen(function* () {
31
- const requestContext = yield* _setupRequest.getRequestContext;
32
- return yield* _effectApp.Effect.forEach(messages, m =>
33
- // we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
34
- _effectApp.S.encode(wireSchema)({
35
- body: m,
36
- meta: requestContext
37
- }).pipe(_effectApp.Effect.orDie, _effectApp.Effect.andThen(JSON.stringify),
38
- // .tap((msg) => info("Publishing Mem Message: " + utils.inspect(msg)))
39
- _effectApp.Effect.flatMap(_ => q.offer(_))), {
40
- discard: true
41
- });
42
- }).pipe(_effectApp.Effect.withSpan("queue.publish: " + queueName, {
43
- captureStackTrace: false,
44
- kind: "producer",
45
- attributes: {
46
- "message_tags": messages.map(_ => _._tag)
47
- }
48
- })),
49
- drain: (handleEvent, sessionId) => _effectApp.Effect.gen(function* () {
50
- const silenceAndReportError = (0, _errors.reportNonInterruptedFailure)({
51
- name: "MemQueue.drain." + queueDrainName
52
- });
53
- const processMessage = msg =>
54
- // we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
55
- _effectApp.Effect.sync(() => JSON.parse(msg)).pipe(_effectApp.Effect.flatMap(parseDrain), _effectApp.Effect.orDie, _effectApp.Effect.flatMap(({
56
- body,
57
- meta
58
- }) => {
59
- let effect = _logger.InfraLogger.logInfo(`[${queueDrainName}] Processing incoming message`).pipe(_effectApp.Effect.annotateLogs({
60
- body: (0, _utils.pretty)(body),
61
- meta: (0, _utils.pretty)(meta)
62
- }), _effectApp.Effect.zipRight(handleEvent(body)), silenceAndReportError, _ => (0, _setupRequest.setupRequestContext)(_, meta), _effectApp.Effect.withSpan(`queue.drain: ${queueDrainName}.${body._tag}`, {
63
- captureStackTrace: false,
64
- kind: "consumer",
65
- attributes: {
66
- "queue.name": queueDrainName,
67
- "queue.sessionId": sessionId,
68
- "queue.input": body
69
- }
70
- }));
71
- if (meta.span) {
72
- effect = _effectApp.Effect.withParentSpan(effect, _effect.Tracer.externalSpan(meta.span));
73
- }
74
- return effect;
75
- }));
76
- return yield* qDrain.take.pipe(_effectApp.Effect.flatMap(x => processMessage(x).pipe(_effectApp.Effect.uninterruptible, _effectApp.Effect.fork, _effectApp.Effect.flatMap(_effectApp.Fiber.join))),
77
- // TODO: normally a failed item would be returned to the queue and retried up to X times.
78
- // .flatMap(_ => _._tag === "Failure" && !isInterrupted ? qDrain.offer(x) : Effect.unit) // TODO: retry count tracking and max retries.
79
- silenceAndReportError, _effectApp.Effect.withSpan(`queue.drain: ${queueDrainName}`, {
80
- attributes: {
81
- "queue.type": "mem",
82
- "queue.name": queueDrainName,
83
- "queue.sessionId": sessionId
84
- }
85
- }), _effectApp.Effect.forever);
86
- })
87
- };
88
- });
89
- }
90
- //# sourceMappingURL=memQueue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memQueue.cjs","names":["_effect","require","_effectApp","_utils","_memQueue","_setupRequest","_logger","_errors","_service","makeMemQueue","queueName","queueDrainName","schema","drainSchema","Effect","gen","mem","MemQueue","q","getOrCreateQueue","qDrain","wireSchema","S","Struct","body","meta","QueueMeta","drainW","parseDrain","flow","decodeUnknown","orDie","publish","messages","requestContext","getRequestContext","forEach","m","encode","pipe","andThen","JSON","stringify","flatMap","_","offer","discard","withSpan","captureStackTrace","kind","attributes","map","_tag","drain","handleEvent","sessionId","silenceAndReportError","reportNonInterruptedFailure","name","processMessage","msg","sync","parse","effect","InfraLogger","logInfo","annotateLogs","pretty","zipRight","setupRequestContext","span","withParentSpan","Tracer","externalSpan","take","x","uninterruptible","fork","Fiber","join","forever"],"sources":["../../src/QueueMaker/memQueue.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,107 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeServiceBusLayers = makeServiceBusLayers;
7
- exports.makeServiceBusQueue = makeServiceBusQueue;
8
- var _effect = require("effect");
9
- var _effectApp = require("effect-app");
10
- var _utils = require("effect-app/utils");
11
- var _ServiceBus = require("../adapters/ServiceBus.cjs");
12
- var _setupRequest = require("../api/setupRequest.cjs");
13
- var _logger = require("../logger.cjs");
14
- var _errors = require("./errors.cjs");
15
- var _service = require("./service.cjs");
16
- function makeServiceBusQueue(queueName, queueDrainName, schema, drainSchema) {
17
- const wireSchema = _effectApp.S.Struct({
18
- body: schema,
19
- meta: _service.QueueMeta
20
- });
21
- const drainW = _effectApp.S.Struct({
22
- body: drainSchema,
23
- meta: _service.QueueMeta
24
- });
25
- const parseDrain = (0, _effectApp.flow)(_effectApp.S.decodeUnknown(drainW), _effectApp.Effect.orDie);
26
- return _effectApp.Effect.gen(function* () {
27
- const s = yield* _ServiceBus.Sender;
28
- const receiver = yield* _ServiceBus.ServiceBusReceiverFactory;
29
- const silenceAndReportError = (0, _errors.reportNonInterruptedFailure)({
30
- name: "ServiceBusQueue.drain." + queueDrainName
31
- });
32
- const reportError = (0, _errors.reportNonInterruptedFailureCause)({
33
- name: "ServiceBusQueue.drain." + queueDrainName
34
- });
35
- // TODO: or do async?
36
- // This will make sure that the host receives the error (MainFiberSet.join), who will then interrupt everything and commence a shutdown and restart of app
37
- // const deferred = yield* Deferred.make<never, ServiceBusError | Error>()
38
- return {
39
- drain: (handleEvent, sessionId) => _effectApp.Effect.gen(function* () {
40
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
- function processMessage(messageBody) {
42
- return _effectApp.Effect.sync(() => JSON.parse(messageBody)).pipe(_effectApp.Effect.flatMap(x => parseDrain(x)), _effectApp.Effect.orDie, _effectApp.Effect.flatMap(({
43
- body,
44
- meta
45
- }) => {
46
- let effect = _logger.InfraLogger.logInfo(`[${queueDrainName}] Processing incoming message`).pipe(_effectApp.Effect.annotateLogs({
47
- body: (0, _utils.pretty)(body),
48
- meta: (0, _utils.pretty)(meta)
49
- }), _effectApp.Effect.zipRight(handleEvent(body)), _effectApp.Effect.orDie)
50
- // we silenceAndReportError here, so that the error is reported, and moves into the Exit.
51
- .pipe(silenceAndReportError, _ => (0, _setupRequest.setupRequestContext)(_, meta), _effectApp.Effect.withSpan(`queue.drain: ${queueDrainName}${sessionId ? `#${sessionId}` : ""}.${body._tag}`, {
52
- captureStackTrace: false,
53
- kind: "consumer",
54
- attributes: {
55
- "queue.name": queueDrainName,
56
- "queue.sessionId": sessionId,
57
- "queue.input": body
58
- }
59
- }));
60
- if (meta.span) {
61
- effect = _effectApp.Effect.withParentSpan(effect, _effect.Tracer.externalSpan(meta.span));
62
- }
63
- return effect;
64
- }), _effectApp.Effect
65
- // we reportError here, so that we report the error only, and keep flowing
66
- .tapErrorCause(reportError));
67
- }
68
- return yield* (0, _ServiceBus.subscribe)({
69
- processMessage: x => processMessage(x.body).pipe(_effectApp.Effect.uninterruptible),
70
- processError: err => (0, _errors.reportQueueError)(_effectApp.Cause.fail(err.error))
71
- // Deferred.completeWith(
72
- // deferred,
73
- // reportFatalQueueError(Cause.fail(err.error))
74
- // .pipe(Effect.andThen(Effect.fail(err.error)))
75
- // )
76
- }, sessionId).pipe(_effectApp.Effect.provideService(_ServiceBus.ServiceBusReceiverFactory, receiver));
77
- })
78
- // .pipe(Effect.andThen(Deferred.await(deferred).pipe(Effect.orDie))),
79
- .pipe(_effectApp.Effect.andThen(_effectApp.Effect.never)),
80
- publish: (...messages) => _effectApp.Effect.gen(function* () {
81
- const requestContext = yield* _setupRequest.getRequestContext;
82
- return yield* _effectApp.Effect.promise(abortSignal => s.sendMessages(messages.map(m => ({
83
- body: JSON.stringify(_effectApp.S.encodeSync(wireSchema)({
84
- body: m,
85
- meta: requestContext
86
- })),
87
- messageId: m.id,
88
- /* correllationid: requestId */
89
- contentType: "application/json",
90
- sessionId: "sessionId" in m ? m.sessionId : undefined
91
- })), {
92
- abortSignal
93
- }));
94
- }).pipe(_effectApp.Effect.withSpan("queue.publish: " + queueName, {
95
- captureStackTrace: false,
96
- kind: "producer",
97
- attributes: {
98
- "message_tags": messages.map(_ => _._tag)
99
- }
100
- }))
101
- };
102
- });
103
- }
104
- function makeServiceBusLayers(url, queueName, queueDrainName) {
105
- return _effectApp.Layer.merge(_ServiceBus.ServiceBusReceiverFactory.Live(queueDrainName), (0, _ServiceBus.LiveSender)(queueName)).pipe(_effectApp.Layer.provide((0, _ServiceBus.LiveServiceBusClient)(url)));
106
- }
107
- //# sourceMappingURL=sbqueue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sbqueue.cjs","names":["_effect","require","_effectApp","_utils","_ServiceBus","_setupRequest","_logger","_errors","_service","makeServiceBusQueue","queueName","queueDrainName","schema","drainSchema","wireSchema","S","Struct","body","meta","QueueMeta","drainW","parseDrain","flow","decodeUnknown","Effect","orDie","gen","s","Sender","receiver","ServiceBusReceiverFactory","silenceAndReportError","reportNonInterruptedFailure","name","reportError","reportNonInterruptedFailureCause","drain","handleEvent","sessionId","processMessage","messageBody","sync","JSON","parse","pipe","flatMap","x","effect","InfraLogger","logInfo","annotateLogs","pretty","zipRight","_","setupRequestContext","withSpan","_tag","captureStackTrace","kind","attributes","span","withParentSpan","Tracer","externalSpan","tapErrorCause","subscribe","uninterruptible","processError","err","reportQueueError","Cause","fail","error","provideService","andThen","never","publish","messages","requestContext","getRequestContext","promise","abortSignal","sendMessages","map","m","stringify","encodeSync","messageId","id","contentType","undefined","makeServiceBusLayers","url","Layer","merge","Live","LiveSender","provide","LiveServiceBusClient"],"sources":["../../src/QueueMaker/sbqueue.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.QueueMeta = exports.QueueMaker = void 0;
7
- var _RequestContext = require("../RequestContext.cjs");
8
- const QueueMaker = exports.QueueMaker = {};
9
- const QueueMeta = exports.QueueMeta = _RequestContext.RequestContext;
10
- //# sourceMappingURL=service.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.cjs","names":["_RequestContext","require","QueueMaker","exports","QueueMeta","RequestContext"],"sources":["../../src/QueueMaker/service.ts"],"sourcesContent":[null],"mappings":";;;;;;AACA,IAAAA,eAAA,GAAAC,OAAA;AAaO,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAkB,EAAE;AAEpC,MAAME,SAAS,GAAAD,OAAA,CAAAC,SAAA,GAAGC,8BAAc","ignoreList":[]}
@@ -1,54 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.spanAttributes = exports.RequestContext = exports.LocaleRef = exports.Locale = void 0;
7
- var _effectApp = require("effect-app");
8
- var _ids = require("effect-app/ids");
9
- var _Schema = require("effect-app/Schema");
10
- const Locale = exports.Locale = _effectApp.S.Literal("en", "de");
11
- const LocaleRef = exports.LocaleRef = _effectApp.FiberRef.unsafeMake("en");
12
- class RequestContext extends _effectApp.S.ExtendedClass()({
13
- span: _effectApp.S.Struct({
14
- traceId: _effectApp.S.String,
15
- spanId: _effectApp.S.String,
16
- sampled: _effectApp.S.Boolean
17
- }),
18
- name: _Schema.NonEmptyString255,
19
- locale: Locale,
20
- sourceId: _effectApp.S.optional(_Schema.NonEmptyString255),
21
- // TODO?
22
- namespace: _Schema.NonEmptyString255,
23
- /** @deprecated */
24
- userProfile: _effectApp.S.optional(_effectApp.S.Struct({
25
- sub: _ids.UserProfileId
26
- })) //
27
- }) {
28
- // static Tag = Context.Tag<RequestContext>()
29
- static toMonitoring(self) {
30
- return {
31
- operationName: self.name,
32
- locale: self.locale
33
- };
34
- }
35
- }
36
- exports.RequestContext = RequestContext;
37
- const spanAttributes = ctx => ({
38
- "request.name": ctx.name,
39
- "request.locale": ctx.locale,
40
- "request.namespace": ctx.namespace,
41
- ...(ctx.sourceId ? {
42
- "request.source.id": ctx.sourceId
43
- } : {}),
44
- ...(ctx.userProfile?.sub ? {
45
- "request.user.sub": ctx.userProfile.sub,
46
- "request.user.roles": "roles" in ctx.userProfile ? ctx.userProfile.roles : undefined
47
- } : {})
48
- });
49
- /* eslint-enable */
50
- //
51
- // codegen:end
52
- //
53
- exports.spanAttributes = spanAttributes;
54
- //# sourceMappingURL=RequestContext.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RequestContext.cjs","names":["_effectApp","require","_ids","_Schema","Locale","exports","S","Literal","LocaleRef","FiberRef","unsafeMake","RequestContext","ExtendedClass","span","Struct","traceId","String","spanId","sampled","Boolean","name","NonEmptyString255","locale","sourceId","optional","namespace","userProfile","sub","UserProfileId","toMonitoring","self","operationName","spanAttributes","ctx","roles","undefined"],"sources":["../src/RequestContext.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEO,MAAMG,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAGE,YAAC,CAACC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAGpC,MAAMC,SAAS,GAAAH,OAAA,CAAAG,SAAA,GAAGC,mBAAQ,CAACC,UAAU,CAAS,IAAI,CAAC;AAEpD,MAAOC,cAAe,SAAQL,YAAC,CAACM,aAAa,EAGhD,CAAC;EACFC,IAAI,EAAEP,YAAC,CAACQ,MAAM,CAAC;IACbC,OAAO,EAAET,YAAC,CAACU,MAAM;IACjBC,MAAM,EAAEX,YAAC,CAACU,MAAM;IAChBE,OAAO,EAAEZ,YAAC,CAACa;GACZ,CAAC;EACFC,IAAI,EAAEC,yBAAiB;EACvBC,MAAM,EAAElB,MAAM;EACdmB,QAAQ,EAAEjB,YAAC,CAACkB,QAAQ,CAACH,yBAAiB,CAAC;EAAE;EACzCI,SAAS,EAAEJ,yBAAiB;EAC5B;EACAK,WAAW,EAAEpB,YAAC,CAACkB,QAAQ,CAAClB,YAAC,CAACQ,MAAM,CAAC;IAAEa,GAAG,EAAEC;EAAa,CAAE,CAAC,CAAC,CAAC;CAC3D,CAAC;EACA;EAEA,OAAOC,YAAYA,CAAaC,IAAoB;IAClD,OAAO;MACLC,aAAa,EAAED,IAAI,CAACV,IAAI;MACxBE,MAAM,EAAEQ,IAAI,CAACR;KACd;EACH;;AACDjB,OAAA,CAAAM,cAAA,GAAAA,cAAA;AAEM,MAAMqB,cAAc,GAAIC,GAA2E,KAAM;EAC9G,cAAc,EAAEA,GAAG,CAACb,IAAI;EACxB,gBAAgB,EAAEa,GAAG,CAACX,MAAM;EAC5B,mBAAmB,EAAEW,GAAG,CAACR,SAAS;EAClC,IAAGQ,GAAG,CAACV,QAAQ,GAAG;IAAE,mBAAmB,EAAEU,GAAG,CAACV;EAAQ,CAAE,GAAG,EAAE;EAC5D,IAAIU,GAAG,CAACP,WAAW,EAAEC,GAAG,GACpB;IACA,kBAAkB,EAAEM,GAAG,CACpBP,WAAW,CACXC,GAAG;IACN,oBAAoB,EAAE,OAAO,IAAIM,GAAG,CAC/BP,WAAW,GACZO,GAAG,CAACP,WAAW,CAACQ,KAAK,GACrBC;GACL,GACC,EAAE;CACP,CAAC;AAQF;AACA;AACA;AACA;AAAA9B,OAAA,CAAA2B,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -1,85 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.setRootParentSpan = exports.RequestFiberSet = void 0;
7
- var _effectApp = require("effect-app");
8
- var _reportError = require("./api/reportError.cjs");
9
- var _logger = require("./logger.cjs");
10
- const getRootParentSpan = _effectApp.Effect.gen(function* () {
11
- let span = yield* _effectApp.Effect.currentSpan.pipe(_effectApp.Effect.catchTag("NoSuchElementException", () => _effectApp.Effect.succeed(null)));
12
- if (!span) return span;
13
- while (span._tag === "Span" && _effectApp.Option.isSome(span.parent)) {
14
- span = span.parent.value;
15
- }
16
- return span;
17
- });
18
- const setRootParentSpan = self => getRootParentSpan.pipe(_effectApp.Effect.andThen(span => span ? _effectApp.Effect.withParentSpan(self, span) : self));
19
- exports.setRootParentSpan = setRootParentSpan;
20
- const make = _effectApp.Effect.gen(function* () {
21
- const set = yield* _effectApp.FiberSet.make();
22
- const add = (...fibers) => _effectApp.Effect.sync(() => fibers.forEach(_ => _effectApp.FiberSet.unsafeAdd(set, _)));
23
- const addAll = fibers => _effectApp.Effect.sync(() => fibers.forEach(_ => _effectApp.FiberSet.unsafeAdd(set, _)));
24
- const join = _effectApp.FiberSet.size(set).pipe(_effectApp.Effect.andThen(count => _logger.InfraLogger.logInfo(`Joining ${count} current fibers on the RequestFiberSet`)), _effectApp.Effect.andThen(_effectApp.FiberSet.join(set)));
25
- const run = _effectApp.FiberSet.run(set);
26
- const register = self => self.pipe(_effectApp.Effect.fork, _effectApp.Effect.tap(add), _effectApp.Effect.andThen(_effectApp.Fiber.join));
27
- // const waitUntilEmpty = Effect.gen(function*() {
28
- // const currentSize = yield* FiberSet.size(set)
29
- // if (currentSize === 0) {
30
- // return
31
- // }
32
- // yield* Effect.logInfo("Waiting RequestFiberSet to be empty: " + currentSize)
33
- // while ((yield* FiberSet.size(set)) > 0) yield* Effect.sleep("250 millis")
34
- // yield* Effect.logDebug("RequestFiberSet is empty")
35
- // })
36
- // TODO: loop and interrupt all fibers in the set continuously?
37
- const interrupt = _effectApp.Fiber.interruptAll(set);
38
- /**
39
- * Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
40
- * new fiber isn't attached to the parent, when the fiber executing the
41
- * returned effect terminates, the forked fiber will continue running.
42
- * The fiber will be interrupted when the RequestFiberSet scope is closed.
43
- *
44
- * The parent span is set to the root span of the current fiber.
45
- * Reports errors.
46
- */
47
- function forkDaemonReport(self) {
48
- return self.pipe(_reportError.reportRequestError, setRootParentSpan, _effectApp.Effect.uninterruptible, run);
49
- }
50
- /**
51
- * Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
52
- * new fiber isn't attached to the parent, when the fiber executing the
53
- * returned effect terminates, the forked fiber will continue running.
54
- * The fiber will be interrupted when the RequestFiberSet scope is closed.
55
- *
56
- * The parent span is set to the root span of the current fiber.
57
- * Reports unexpected errors.
58
- */
59
- function forkDaemonReportUnexpected(self) {
60
- return self.pipe(_reportError.reportUnknownRequestError, setRootParentSpan, _effectApp.Effect.uninterruptible, run);
61
- }
62
- return {
63
- interrupt,
64
- join,
65
- run,
66
- add,
67
- addAll,
68
- register,
69
- forkDaemonReport,
70
- forkDaemonReportUnexpected
71
- };
72
- });
73
- /**
74
- * Whenever you fork a fiber for a Request, and you want to prevent dependent services to close prematurely on interruption,
75
- * like the ServiceBus Sender, you should register these fibers in this FiberSet.
76
- */
77
- class RequestFiberSet extends _effectApp.Context.TagMakeId("RequestFiberSet", make)() {
78
- static Live = this.toLayerScoped();
79
- static register = self => this.use(_ => _.register(self));
80
- static run = self => this.use(_ => _.run(self));
81
- static forkDaemonReport = self => this.use(_ => _.forkDaemonReport(self));
82
- static forkDaemonReportUnexpected = self => this.use(_ => _.forkDaemonReportUnexpected(self));
83
- }
84
- exports.RequestFiberSet = RequestFiberSet;
85
- //# sourceMappingURL=RequestFiberSet.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RequestFiberSet.cjs","names":["_effectApp","require","_reportError","_logger","getRootParentSpan","Effect","gen","span","currentSpan","pipe","catchTag","succeed","_tag","Option","isSome","parent","value","setRootParentSpan","self","andThen","withParentSpan","exports","make","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","join","size","count","InfraLogger","logInfo","run","register","fork","tap","Fiber","interrupt","interruptAll","forkDaemonReport","reportRequestError","uninterruptible","forkDaemonReportUnexpected","reportUnknownRequestError","RequestFiberSet","Context","TagMakeId","Live","toLayerScoped","use"],"sources":["../src/RequestFiberSet.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.startContextMap = exports.getContextMap = exports.ContextMapNotStartedError = void 0;
7
- var _effectApp = require("effect-app");
8
- var _service = require("./service.cjs");
9
- // TODO: we have to create a new contextmap on every request.
10
- // we want to share one map during startup
11
- // but we want to make sure we don't re-use the startup map after startup
12
- // we can call another start after startup. but it would be even better if we could Die on accessing rootmap
13
- // we could also make the ContextMap optional, and when missing, issue a warning instead?
14
- const ContextMapContainer = _effectApp.FiberRef.unsafeMake("root");
15
- class ContextMapNotStartedError extends _effectApp.Data.TaggedError("ContextMapNotStartedError") {}
16
- exports.ContextMapNotStartedError = ContextMapNotStartedError;
17
- const getContextMap = exports.getContextMap = _effectApp.FiberRef.get(ContextMapContainer).pipe(_effectApp.Effect.filterOrFail(_ => _ !== "root", () => new ContextMapNotStartedError()));
18
- const startContextMap = exports.startContextMap = _effectApp.Effect.flatMap(_service.ContextMap.make, _ => _effectApp.FiberRef.set(ContextMapContainer, _));
19
- //# sourceMappingURL=ContextMapContainer.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContextMapContainer.cjs","names":["_effectApp","require","_service","ContextMapContainer","FiberRef","unsafeMake","ContextMapNotStartedError","Data","TaggedError","exports","getContextMap","get","pipe","Effect","filterOrFail","_","startContextMap","flatMap","ContextMap","make","set"],"sources":["../../src/Store/ContextMapContainer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AAEA,MAAME,mBAAmB,GAAGC,mBAAQ,CAACC,UAAU,CAAsB,MAAM,CAAC;AAEtE,MAAOC,yBAA0B,SAAQC,eAAI,CAACC,WAAW,CAAC,2BAA2B,CAAC;AAAGC,OAAA,CAAAH,yBAAA,GAAAA,yBAAA;AAExF,MAAMI,aAAa,GAAAD,OAAA,CAAAC,aAAA,GAAGN,mBAAQ,CAACO,GAAG,CAACR,mBAAmB,CAAC,CAACS,IAAI,CACjEC,iBAAM,CAACC,YAAY,CAAEC,CAAC,IAAKA,CAAC,KAAK,MAAM,EAAE,MAAM,IAAIT,yBAAyB,EAAE,CAAC,CAChF;AAEM,MAAMU,eAAe,GAAAP,OAAA,CAAAO,eAAA,GAAGH,iBAAM,CAACI,OAAO,CAACC,mBAAU,CAACC,IAAI,EAAGJ,CAAC,IAAKX,mBAAQ,CAACgB,GAAG,CAACjB,mBAAmB,EAAEY,CAAC,CAAC,CAAC","ignoreList":[]}