@effect-app/infra 0.170.5 → 0.171.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 (90) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/_cjs/api/routing/base.cjs.map +1 -1
  3. package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
  4. package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
  5. package/_cjs/services/Repository/dsl.cjs +70 -0
  6. package/_cjs/services/Repository/dsl.cjs.map +1 -0
  7. package/_cjs/services/Repository/ext.cjs +202 -0
  8. package/_cjs/services/Repository/ext.cjs.map +1 -0
  9. package/_cjs/services/Repository/service.cjs +6 -0
  10. package/_cjs/services/Repository/service.cjs.map +1 -0
  11. package/_cjs/services/Repository.cjs +32 -252
  12. package/_cjs/services/Repository.cjs.map +1 -1
  13. package/_cjs/services/RepositoryBase.cjs +173 -48
  14. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  15. package/_cjs/services/RequestContextContainer.cjs +6 -7
  16. package/_cjs/services/RequestContextContainer.cjs.map +1 -1
  17. package/_cjs/services/Store/ContextMapContainer.cjs +6 -7
  18. package/_cjs/services/Store/ContextMapContainer.cjs.map +1 -1
  19. package/_cjs/services/Store/Memory.cjs.map +1 -1
  20. package/_cjs/services/Store/utils.cjs.map +1 -1
  21. package/_src/api/routing/base.ts +5 -3
  22. package/_src/api/routing/makeRequestHandler.ts +20 -12
  23. package/_src/rateLimit.ts +2 -2
  24. package/_src/services/Emailer/Sendgrid.ts +2 -2
  25. package/_src/services/QueueMaker/errors.ts +6 -3
  26. package/_src/services/QueueMaker/memQueue.ts +2 -2
  27. package/_src/services/QueueMaker/sbqueue.ts +2 -2
  28. package/_src/services/Repository/dsl.ts +137 -0
  29. package/_src/services/Repository/ext.ts +669 -0
  30. package/_src/services/Repository/service.ts +12 -0
  31. package/_src/services/Repository.ts +3 -791
  32. package/_src/services/RepositoryBase.ts +640 -13
  33. package/_src/services/RequestContextContainer.ts +14 -16
  34. package/_src/services/Store/ContextMapContainer.ts +6 -9
  35. package/_src/services/Store/Cosmos.ts +2 -2
  36. package/_src/services/Store/Disk.ts +2 -2
  37. package/_src/services/Store/Memory.ts +2 -1
  38. package/_src/services/Store/Redis.ts +2 -2
  39. package/_src/services/Store/utils.ts +4 -5
  40. package/_src/services/simpledb/cosmosdb.ts +1 -1
  41. package/_src/services/simpledb/diskdb.ts +1 -1
  42. package/_src/services/simpledb/memdb.ts +1 -1
  43. package/_src/services/simpledb/mongodb.ts +1 -1
  44. package/_src/services/simpledb/redisdb.ts +2 -2
  45. package/dist/api/routing/base.d.ts +1 -2
  46. package/dist/api/routing/base.d.ts.map +1 -1
  47. package/dist/api/routing/base.js +1 -1
  48. package/dist/api/routing/makeRequestHandler.d.ts.map +1 -1
  49. package/dist/api/routing/makeRequestHandler.js +15 -11
  50. package/dist/rateLimit.js +1 -1
  51. package/dist/services/Emailer/Sendgrid.js +1 -1
  52. package/dist/services/QueueMaker/errors.d.ts.map +1 -1
  53. package/dist/services/QueueMaker/errors.js +5 -2
  54. package/dist/services/QueueMaker/memQueue.js +1 -1
  55. package/dist/services/QueueMaker/sbqueue.js +1 -1
  56. package/dist/services/QueueMaker/service.d.ts +2 -2
  57. package/dist/services/Repository/dsl.d.ts +51 -0
  58. package/dist/services/Repository/dsl.d.ts.map +1 -0
  59. package/dist/services/Repository/dsl.js +55 -0
  60. package/dist/services/Repository/ext.d.ts +310 -0
  61. package/dist/services/Repository/ext.d.ts.map +1 -0
  62. package/dist/services/Repository/ext.js +166 -0
  63. package/dist/services/Repository/service.d.ts +10 -0
  64. package/dist/services/Repository/service.d.ts.map +1 -0
  65. package/dist/services/Repository/service.js +2 -0
  66. package/dist/services/Repository.d.ts +3 -363
  67. package/dist/services/Repository.d.ts.map +1 -1
  68. package/dist/services/Repository.js +4 -217
  69. package/dist/services/RepositoryBase.d.ts +241 -6
  70. package/dist/services/RepositoryBase.d.ts.map +1 -1
  71. package/dist/services/RepositoryBase.js +176 -52
  72. package/dist/services/RequestContextContainer.d.ts +3 -5
  73. package/dist/services/RequestContextContainer.d.ts.map +1 -1
  74. package/dist/services/RequestContextContainer.js +17 -16
  75. package/dist/services/Store/ContextMapContainer.d.ts +2 -5
  76. package/dist/services/Store/ContextMapContainer.d.ts.map +1 -1
  77. package/dist/services/Store/ContextMapContainer.js +7 -8
  78. package/dist/services/Store/Cosmos.js +1 -1
  79. package/dist/services/Store/Disk.js +1 -1
  80. package/dist/services/Store/Memory.d.ts.map +1 -1
  81. package/dist/services/Store/Memory.js +1 -1
  82. package/dist/services/Store/Redis.js +1 -1
  83. package/dist/services/Store/utils.d.ts.map +1 -1
  84. package/dist/services/Store/utils.js +1 -1
  85. package/dist/services/simpledb/cosmosdb.js +1 -1
  86. package/dist/services/simpledb/diskdb.js +1 -1
  87. package/dist/services/simpledb/memdb.js +1 -1
  88. package/dist/services/simpledb/mongodb.js +1 -1
  89. package/dist/services/simpledb/redisdb.js +1 -1
  90. package/package.json +37 -7
@@ -1,16 +1,24 @@
1
- import * as tsplus_module_1 from "effect/Effect";
2
- import * as tsplus_module_2 from "@effect-app/core/Array";
3
- import * as tsplus_module_3 from "@effect-app/core/_ext/Iterable";
4
- import * as tsplus_module_4 from "@effect-app/core/Effect";
5
- import * as tsplus_module_5 from "@effect-app/core/Chunk";
6
- import * as tsplus_module_6 from "@effect/schema/Schema";
7
- import * as tsplus_module_7 from "@effect-app/core/Function";
8
- import * as tsplus_module_8 from "effect/PubSub";
9
- import * as tsplus_module_9 from "@effect-app/infra/services/Repository";
10
- import * as tsplus_module_10 from "@effect-app/prelude/service";
1
+ import * as tsplus_module_1 from "@effect-app/prelude/_ext/misc";
2
+ import * as tsplus_module_2 from "effect/Effect";
3
+ import * as tsplus_module_3 from "@effect-app/infra/services/Repository/ext";
4
+ import * as tsplus_module_4 from "@effect-app/prelude/schema";
5
+ import * as tsplus_module_5 from "@effect-app/prelude/Pure";
6
+ import * as tsplus_module_6 from "@effect-app/core/Array";
7
+ import * as tsplus_module_7 from "@effect-app/core/_ext/Iterable";
8
+ import * as tsplus_module_8 from "@effect-app/core/Effect";
9
+ import * as tsplus_module_9 from "@effect-app/core/Chunk";
10
+ import * as tsplus_module_10 from "@effect/schema/Schema";
11
+ import * as tsplus_module_11 from "@effect-app/core/Function";
12
+ import * as tsplus_module_12 from "effect/PubSub";
13
+ import * as tsplus_module_13 from "@effect-app/prelude/service";
14
+ /* eslint-disable @typescript-eslint/no-explicit-any */
15
+ /* eslint-disable @typescript-eslint/ban-types */
16
+ // import type { ParserEnv } from "@effect-app/schema/custom/Parser"
17
+ import { AnyPureDSL, byIdAndSaveWithPure, get, queryAndSaveOnePureEffect, queryEffect, queryOneEffect, saveAllWithEffectInt, saveManyWithPure_, saveManyWithPureBatched_, saveWithPure_ } from "./Repository.js";
11
18
  import { StoreMaker } from "./Store.js";
12
19
  import { makeFilters } from "@effect-app/infra/filter";
13
20
  import { S } from "@effect-app/prelude";
21
+ import { NotFoundError } from "../errors.js";
14
22
  import { ContextMapContainer } from "./Store/ContextMapContainer.js";
15
23
  import { QueryBuilder } from "./Store/filterApi/query.js";
16
24
  /**
@@ -37,6 +45,114 @@ export class RepositoryBaseC2 extends RepositoryBaseC1 {
37
45
  this.changeFeed = this.impl.changeFeed;
38
46
  }
39
47
  }
48
+ export class RepositoryBaseC3 extends RepositoryBaseC2 {
49
+ constructor() {
50
+ super(...arguments);
51
+ this.log = (evt) => AnyPureDSL.log(evt);
52
+ this.save = (...items) => this.saveAndPublish(items);
53
+ this.saveWithEvents = (events) => (...items) => this.saveAndPublish(items, events);
54
+ }
55
+ get(id) {
56
+ return tsplus_module_2.flatMap(this
57
+ .find(id), (_) => tsplus_module_1.encaseMaybeInEffect_(_, () => new NotFoundError({ type: this.itemType, id })));
58
+ }
59
+ projectEffect(map) {
60
+ // TODO: a projection that gets sent to the db instead.
61
+ return tsplus_module_2.flatMap(map, (f) => tsplus_module_2.map(this
62
+ .utils
63
+ .filter(f), (_) => f.collect ? _.filterMap(f.collect) : _));
64
+ }
65
+ project(map) {
66
+ return tsplus_module_3.projectEffect(this, tsplus_module_2.sync(() => map));
67
+ }
68
+ /**
69
+ * TODO: count inside the db.
70
+ * @tsplus fluent Repository project
71
+ */
72
+ count(filter) {
73
+ return tsplus_module_2.map(tsplus_module_3.projectEffect(this, tsplus_module_2.sync(() => ({ filter }))), (_) => tsplus_module_4.NonNegativeInt(_.length));
74
+ }
75
+ /**
76
+ * @tsplus fluent Repository queryEffect
77
+ */
78
+ queryEffect(
79
+ // TODO: think about collectPM, collectE, and collect(Parsed)
80
+ map) {
81
+ return tsplus_module_2.flatMap(map, (f) => tsplus_module_2.map(tsplus_module_2.flatMap((f.filter ? this.utils.filter(f) : this.utils.all), (_) => this.utils.parseMany(_)), (_) => f.collect ? _.filterMap(f.collect) : _));
82
+ }
83
+ queryOneEffect(
84
+ // TODO: think about collectPM, collectE, and collect(Parsed)
85
+ map) {
86
+ return tsplus_module_2.flatMap(map, (f) => tsplus_module_2.flatMap(tsplus_module_2.flatMap((f.filter ? this.utils.filter({ filter: f.filter, limit: 1 }) : this.utils.all), (_) => this.utils.parseMany(_)), (_) => tsplus_module_2.map(tsplus_module_1.encaseMaybeInEffect_((f.collect ? _.filterMap(f.collect) : _)
87
+ .toNonEmpty, () => new NotFoundError({ type: this.itemType, id: f.filter })), (_) => _[0])));
88
+ }
89
+ /**
90
+ * @tsplus fluent Repository query
91
+ */
92
+ query(
93
+ // TODO: think about collectPM, collectE, and collect(Parsed)
94
+ map) {
95
+ return tsplus_module_3.queryEffect(this, tsplus_module_2.sync(() => map));
96
+ }
97
+ queryOne(map) {
98
+ return tsplus_module_3.queryOneEffect(this, tsplus_module_2.sync(() => map));
99
+ }
100
+ queryAndSaveOnePureEffect(map) {
101
+ return (pure) => tsplus_module_2.flatMap(queryOneEffect(this, map), (_) => saveWithPure_(this, _, pure));
102
+ }
103
+ queryAndSaveOnePure(map) {
104
+ return queryAndSaveOnePureEffect(this, tsplus_module_2.sync(() => map));
105
+ }
106
+ /**
107
+ * @tsplus fluent Repository queryAndSavePureEffect
108
+ */
109
+ queryAndSavePureEffect(map) {
110
+ return (pure) => tsplus_module_2.flatMap(queryEffect(this, map), (_) => tsplus_module_3.saveManyWithPure_(this, _, pure));
111
+ }
112
+ /**
113
+ * @tsplus fluent Repository queryAndSavePure
114
+ */
115
+ queryAndSavePure(map) {
116
+ return tsplus_module_3.queryAndSavePureEffect(this, tsplus_module_2.sync(() => map));
117
+ }
118
+ saveManyWithPure() {
119
+ return (pure) => (items) => saveManyWithPure_(this, items, pure);
120
+ }
121
+ byIdAndSaveWithPure(id) {
122
+ return (pure) => tsplus_module_2.flatMap(get(this, id), (item) => saveWithPure_(this, item, pure));
123
+ }
124
+ /**
125
+ * NOTE: it's not as composable, only useful when the request is simple, and only this part needs request args.
126
+ */
127
+ handleByIdAndSaveWithPure() {
128
+ return (pure) => (req, ctx) => byIdAndSaveWithPure(this, req.id)(pure(req, ctx));
129
+ }
130
+ saveManyWithPure_(items, pure) {
131
+ return saveAllWithEffectInt(this, tsplus_module_5.runTerm(pure, [...items]));
132
+ }
133
+ saveWithPure_(item, pure) {
134
+ return saveAllWithEffectInt(this, tsplus_module_2.map(tsplus_module_5.runTerm(pure, item), ([item, events, a]) => [[item], events, a]));
135
+ }
136
+ saveAllWithEffectInt(gen) {
137
+ return tsplus_module_2.flatMap(gen, ([items, events, a]) => tsplus_module_2.map(this.saveAndPublish(items, events), () => a));
138
+ }
139
+ queryAndSavePureEffectBatched(
140
+ // TODO: think about collectPM, collectE, and collect(Parsed)
141
+ map, batchSize = 100) {
142
+ return (pure) => tsplus_module_2.flatMap(queryEffect(this, map), (_) => tsplus_module_3.saveManyWithPureBatched_(this, _, pure, batchSize));
143
+ }
144
+ queryAndSavePureBatched(
145
+ // TODO: think about collectPM, collectE, and collect(Parsed)
146
+ map, batchSize = 100) {
147
+ return tsplus_module_3.queryAndSavePureEffectBatched(this, tsplus_module_2.sync(() => map), batchSize);
148
+ }
149
+ saveManyWithPureBatched(batchSize = 100) {
150
+ return (pure) => (items) => saveManyWithPureBatched_(this, items, pure, batchSize);
151
+ }
152
+ saveManyWithPureBatched_(items, pure, batchSize = 100) {
153
+ return tsplus_module_7.ext_forEach(tsplus_module_6.chunk_(items, batchSize), (batch) => saveAllWithEffectInt(this, tsplus_module_5.runTerm(pure, batch)));
154
+ }
155
+ }
40
156
  /**
41
157
  * A base implementation to create a repository.
42
158
  */
@@ -52,66 +168,74 @@ export function makeRepo() {
52
168
  }
53
169
  const mkStore = makeStore()(name, schema, mapTo);
54
170
  function make(args) {
55
- return tsplus_module_1.withLogSpan(tsplus_module_1.flatMap(tsplus_module_1.context(), rctx => {
56
- const encode = tsplus_module_7.flow(tsplus_module_6.encode(schema), tsplus_module_1.provide(rctx));
57
- const decode = tsplus_module_7.flow(tsplus_module_6.decode(schema), tsplus_module_1.provide(rctx));
58
- return tsplus_module_1.flatMap(mkStore(args.makeInitial, args.config), store => tsplus_module_1.flatMap(ContextMapContainer, ({ get }) => {
171
+ return tsplus_module_2.withLogSpan(tsplus_module_2.flatMap(tsplus_module_2.context(), rctx => {
172
+ const encode = tsplus_module_11.flow(tsplus_module_10.encode(schema), tsplus_module_2.provide(rctx));
173
+ const decode = tsplus_module_11.flow(tsplus_module_10.decode(schema), tsplus_module_2.provide(rctx));
174
+ return tsplus_module_2.flatMap(mkStore(args.makeInitial, args.config), store => tsplus_module_2.flatMap(ContextMapContainer, ({ get }) => {
59
175
  const cms = get.andThen((_) => ({
60
176
  get: (id) => _.get(`${name}.${id}`),
61
177
  set: (id, etag) => _.set(`${name}.${id}`, etag)
62
178
  }));
63
- return tsplus_module_1.flatMap(tsplus_module_1.context(), pubCfg => {
64
- const pub = "publishEvents" in args ? tsplus_module_7.flow(args.publishEvents, (_) => tsplus_module_1.provide(_, pubCfg)) : () => tsplus_module_1.unit;
65
- return tsplus_module_1.map(tsplus_module_8.unbounded(), changeFeed => {
66
- const allE = tsplus_module_1.flatMap(store.all, (items) => tsplus_module_1.map(cms, ({ set }) => items.map((_) => mapReverse(_, set))));
67
- const all = tsplus_module_1.flatMap(allE, (_) => tsplus_module_1.orDie(_.forEachEffect((_) => decode(_), { concurrency: "inherit", batching: true })));
179
+ return tsplus_module_2.flatMap(tsplus_module_2.context(), pubCfg => {
180
+ const pub = "publishEvents" in args ? tsplus_module_11.flow(args.publishEvents, (_) => tsplus_module_2.provide(_, pubCfg)) : () => tsplus_module_2.unit;
181
+ return tsplus_module_2.map(tsplus_module_12.unbounded(), changeFeed => {
182
+ const allE = tsplus_module_2.flatMap(store.all, (items) => tsplus_module_2.map(cms, ({ set }) => items.map((_) => mapReverse(_, set))));
183
+ const all = tsplus_module_2.flatMap(allE, (_) => tsplus_module_2.orDie(_.forEachEffect((_) => decode(_), { concurrency: "inherit", batching: true })));
68
184
  const structSchema = schema;
69
185
  const i = ("struct" in structSchema ? structSchema["struct"] : schema).pipe((_) => _.ast._tag === "Union"
70
186
  // we need to get the TypeLiteral, incase of class it's behind a transform...
71
187
  ? S.union(..._.ast.types.map((_) => S.make(_._tag === "Transform" ? _.from : _)
72
188
  .pipe(S.pick("id"))))
73
- : _.ast._tag === "Transform"
74
- ? S.make(_.ast.from)
75
- .pipe(S.pick("id"))
76
- : _.pipe(S.pick("id")));
77
- const encodeId = tsplus_module_7.flow(tsplus_module_6.encode(i), tsplus_module_1.provide(rctx));
189
+ : _
190
+ .ast
191
+ ._tag === "Transform"
192
+ ? S
193
+ .make(_
194
+ .ast
195
+ .from)
196
+ .pipe(S
197
+ .pick("id"))
198
+ : _
199
+ .pipe(S
200
+ .pick("id")));
201
+ const encodeId = tsplus_module_11.flow(tsplus_module_10.encode(i), tsplus_module_2.provide(rctx));
78
202
  function findE(_id) {
79
- return tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.map(encodeId({ id: _id }), (_) => _.id)).andThen((id) => store
80
- .find(id)), (items) => tsplus_module_1.map(cms, ({ set }) => items.map((_) => mapReverse(_, set))));
203
+ return tsplus_module_2.flatMap(tsplus_module_2.orDie(tsplus_module_2.map(encodeId({ id: _id }), (_) => _.id)).andThen((id) => store
204
+ .find(id)), (items) => tsplus_module_2.map(cms, ({ set }) => items.map((_) => mapReverse(_, set))));
81
205
  }
82
206
  function find(id) {
83
- return tsplus_module_4.flatMapOption(findE(id), (_) => tsplus_module_1.orDie(decode(_)));
207
+ return tsplus_module_8.flatMapOption(findE(id), (_) => tsplus_module_2.orDie(decode(_)));
84
208
  }
85
- const saveAllE = (a) => tsplus_module_1.asUnit(tsplus_module_4.flatMapOption(tsplus_module_1.sync(() => tsplus_module_2.CollectionToNonEmptyReadonlyArray(a)), (a) => tsplus_module_1.flatMap(cms, ({ get, set }) => {
209
+ const saveAllE = (a) => tsplus_module_2.asUnit(tsplus_module_8.flatMapOption(tsplus_module_2.sync(() => tsplus_module_6.CollectionToNonEmptyReadonlyArray(a)), (a) => tsplus_module_2.flatMap(cms, ({ get, set }) => {
86
210
  const items = a.map((_) => mapToPersistenceModel(_, get));
87
- return tsplus_module_1.map(store.batchSet(items), ret => {
211
+ return tsplus_module_2.map(store.batchSet(items), ret => {
88
212
  ret.forEach((_) => set(_.id, _._etag));
89
213
  });
90
214
  })));
91
- const saveAll = (a) => tsplus_module_1.orDie(tsplus_module_3.ext_forEach(tsplus_module_2.ext_itToChunk(a), (_) => encode(_), { concurrency: "inherit", batching: true })).andThen(saveAllE);
215
+ const saveAll = (a) => tsplus_module_2.orDie(tsplus_module_7.ext_forEach(tsplus_module_6.ext_itToChunk(a), (_) => encode(_), { concurrency: "inherit", batching: true })).andThen(saveAllE);
92
216
  const saveAndPublish = (items, events = []) => {
93
- const it = tsplus_module_2.ext_itToChunk(items);
94
- return tsplus_module_1.asUnit(tsplus_module_4.flatMapOption(saveAll(it)
95
- .andThen(tsplus_module_1.sync(() => tsplus_module_2.CollectionToNonEmptyReadonlyArray(events)))
217
+ const it = tsplus_module_6.ext_itToChunk(items);
218
+ return tsplus_module_2.asUnit(tsplus_module_8.flatMapOption(saveAll(it)
219
+ .andThen(tsplus_module_2.sync(() => tsplus_module_6.CollectionToNonEmptyReadonlyArray(events)))
96
220
  // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
97
221
  , pub)
98
222
  .andThen(changeFeed
99
- .publish([tsplus_module_5.toArray(it), "save"])));
223
+ .publish([tsplus_module_9.toArray(it), "save"])));
100
224
  };
101
225
  function removeAndPublish(a, events = []) {
102
- return tsplus_module_1.gen(function* ($) {
226
+ return tsplus_module_2.gen(function* ($) {
103
227
  const { get, set } = yield* $(cms);
104
- const it = tsplus_module_2.ext_itToChunk(a);
105
- const items = yield* $(tsplus_module_1.orDie(tsplus_module_3.ext_forEach(it, (_) => encode(_), { concurrency: "inherit", batching: true })));
228
+ const it = tsplus_module_6.ext_itToChunk(a);
229
+ const items = yield* $(tsplus_module_2.orDie(tsplus_module_7.ext_forEach(it, (_) => encode(_), { concurrency: "inherit", batching: true })));
106
230
  // TODO: we should have a batchRemove on store so the adapter can actually batch...
107
231
  for (const e of items) {
108
232
  yield* $(store.remove(mapToPersistenceModel(e, get)));
109
233
  set(e.id, undefined);
110
234
  }
111
- yield* $(tsplus_module_4.flatMapOption(tsplus_module_1.sync(() => tsplus_module_2.CollectionToNonEmptyReadonlyArray(events))
235
+ yield* $(tsplus_module_8.flatMapOption(tsplus_module_2.sync(() => tsplus_module_6.CollectionToNonEmptyReadonlyArray(events))
112
236
  // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
113
237
  , pub));
114
- yield* $(changeFeed.publish([tsplus_module_5.toArray(it), "remove"]));
238
+ yield* $(changeFeed.publish([tsplus_module_9.toArray(it), "remove"]));
115
239
  });
116
240
  }
117
241
  const r = {
@@ -119,13 +243,13 @@ export function makeRepo() {
119
243
  * @internal
120
244
  */
121
245
  utils: {
122
- parseMany: (items) => tsplus_module_1.flatMap(cms, (cm) => tsplus_module_1.orDie(items
246
+ parseMany: (items) => tsplus_module_2.flatMap(cms, (cm) => tsplus_module_2.orDie(items
123
247
  .forEachEffect((_) => decode(mapReverse(_, cm.set)), { concurrency: "inherit", batching: true }))),
124
248
  filter: (args) => store
125
249
  .filter(args)
126
250
  .tap((items) => args.select
127
- ? tsplus_module_1.unit : tsplus_module_1.map(cms, ({ set }) => items.forEach((_) => set(_.id, _._etag)))),
128
- all: store.all.tap((items) => tsplus_module_1.map(cms, ({ set }) => items.forEach((_) => set(_.id, _._etag))))
251
+ ? tsplus_module_2.unit : tsplus_module_2.map(cms, ({ set }) => items.forEach((_) => set(_.id, _._etag)))),
252
+ all: store.all.tap((items) => tsplus_module_2.map(cms, ({ set }) => items.forEach((_) => set(_.id, _._etag))))
129
253
  },
130
254
  changeFeed,
131
255
  itemType: name,
@@ -152,7 +276,7 @@ export function makeRepo() {
152
276
  * @tsplus fluent Repository removeById
153
277
  */
154
278
  export function removeById(self, id) {
155
- return tsplus_module_1.flatMap(tsplus_module_9.get(self, id), (_) => self.removeAndPublish([_]));
279
+ return tsplus_module_2.flatMap(tsplus_module_3.get(self, id), (_) => self.removeAndPublish([_]));
156
280
  }
157
281
  export function makeWhere() {
158
282
  const f_ = makeFilters();
@@ -179,14 +303,14 @@ export function makeStore() {
179
303
  return (name, schema, mapTo) => {
180
304
  function encodeToPM() {
181
305
  const getEtag = () => undefined;
182
- return (t) => tsplus_module_1.map(tsplus_module_1.orDie(tsplus_module_6.encode(schema)(t)), (_) => mapToPersistenceModel(_, getEtag));
306
+ return (t) => tsplus_module_2.map(tsplus_module_2.orDie(tsplus_module_10.encode(schema)(t)), (_) => mapToPersistenceModel(_, getEtag));
183
307
  }
184
308
  function mapToPersistenceModel(e, getEtag) {
185
309
  return mapTo(e, getEtag(e.id));
186
310
  }
187
311
  function makeStore(makeInitial, config) {
188
- return tsplus_module_1.flatMap(StoreMaker, ({ make }) => tsplus_module_1.map(make(pluralize(name), makeInitial
189
- ? tsplus_module_1.withSpan((tsplus_module_1.flatMap(makeInitial, (_) => _.forEachEffect(encodeToPM()))), "Repository.makeInitial [effect-app/infra]", {
312
+ return tsplus_module_2.flatMap(StoreMaker, ({ make }) => tsplus_module_2.map(make(pluralize(name), makeInitial
313
+ ? tsplus_module_2.withSpan((tsplus_module_2.flatMap(makeInitial, (_) => _.forEachEffect(encodeToPM()))), "Repository.makeInitial [effect-app/infra]", {
190
314
  attributes: { "repository.model_name": name }
191
315
  })
192
316
  : undefined, {
@@ -207,27 +331,27 @@ export const RepositoryBaseImpl = () => {
207
331
  }
208
332
  }
209
333
  Cls.make = mkRepo.make;
210
- Cls.makeWith = ((a, b) => tsplus_module_1.map(mkRepo.make(a), b));
334
+ Cls.makeWith = ((a, b) => tsplus_module_2.map(mkRepo.make(a), b));
211
335
  Cls.where = makeWhere();
212
336
  Cls.query = QueryBuilder.make();
213
337
  Cls.type = undefined;
214
- return tsplus_module_10.assignTag()(Cls);
338
+ return tsplus_module_13.assignTag()(Cls);
215
339
  };
216
340
  };
217
341
  export const RepositoryDefaultImpl = () => {
218
342
  return () => (itemType, schema, jitM) => {
219
343
  const mkRepo = makeRepo()(itemType, schema, jitM ? (pm) => jitM(pm) : (pm) => pm, (e, _etag) => ({ ...e, _etag }));
220
- class Cls extends RepositoryBaseC2 {
344
+ class Cls extends RepositoryBaseC3 {
221
345
  constructor(impl) {
222
346
  super(itemType, impl);
223
347
  }
224
348
  }
225
349
  Cls.make = mkRepo.make;
226
- Cls.makeWith = ((a, b) => tsplus_module_1.map(mkRepo.make(a), b));
350
+ Cls.makeWith = ((a, b) => tsplus_module_2.map(mkRepo.make(a), b));
227
351
  Cls.where = makeWhere();
228
352
  Cls.query = QueryBuilder.make();
229
353
  Cls.type = undefined;
230
- return tsplus_module_10.assignTag()(Cls); // impl is missing, but its marked protected
354
+ return tsplus_module_13.assignTag()(Cls); // impl is missing, but its marked protected
231
355
  };
232
356
  };
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL1JlcG9zaXRvcnlCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFJQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBS3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRXpEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixlQUFlO0NBd0JwQztBQUVELE1BQU0sT0FBZ0IsZ0JBS3BCLFNBQVEsZUFBcUM7SUFDN0MsWUFDa0IsUUFBa0I7UUFFbEMsS0FBSyxFQUFFLENBQUE7UUFGUyxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBR3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFLWCxTQUFRLGdCQUFzQztJQUM5QyxZQUNFLFFBQWtCLEVBQ0MsSUFBc0M7UUFFekQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRkksU0FBSSxHQUFKLElBQUksQ0FBa0M7UUFJM0QsbURBQW1EO1FBQzFDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUE7UUFDekMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtRQUM3QyxTQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDckIsUUFBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFBO1FBQ25CLFVBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN2QixlQUFVLEdBQUcsSUFBSSxDQUFD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
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL1JlcG9zaXRvcnlCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsaURBQWlEO0FBQ2pELG9FQUFvRTtBQUNwRSxPQUFPLEVBQ0wsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixHQUFHLEVBQ0gseUJBQXlCLEVBQ3pCLFdBQVcsRUFDWCxjQUFjLEVBRWQsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsYUFBYSxFQUNkLE1BQU0saUJBQWlCLENBQUE7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUt2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDdEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXZDLE9BQU8sRUFBMEIsYUFBYSxFQUF1QyxNQUFNLGNBQWMsQ0FBQTtBQUN6RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGVBQWU7Q0F3QnBDO0FBRUQsTUFBTSxPQUFnQixnQkFLcEIsU0FBUSxlQUFxQztJQUM3QyxZQUNrQixRQUFrQjtRQUVsQyxLQUFLLEVBQUUsQ0FBQTtRQUZTLGFBQVEsR0FBUixRQUFRLENBQVU7SUFHcEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUtYLFNBQVEsZ0JBQXNDO0lBQzlDLFlBQ0UsUUFBa0IsRUFDQyxJQUFzQztRQUV6RCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFGSSxTQUFJLEdBQUosSUFBSSxDQUFrQztRQUkzRCxtREFBbUQ7UUFDMUMsbUJBQWMsR0FBRyxJQUFJLENBQUMs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
@@ -2,6 +2,8 @@ import { TagClass } from "@effect-app/prelude/service";
2
2
  import { Effect } from "effect/Effect";
3
3
  import { Context } from "effect/Context";
4
4
  import { Option } from "@effect-app/core/Option";
5
+ import { NonEmptyString255 } from "@effect-app/prelude/schema";
6
+ import { FiberRef } from "effect/FiberRef";
5
7
  import { RequestContext } from "../RequestContext.js";
6
8
  declare const RequestContextContainer_base: (new (service: {
7
9
  requestContext: Effect<RequestContext>;
@@ -19,12 +21,8 @@ declare const RequestContextContainer_base: (new (service: {
19
21
  export declare class RequestContextContainer extends RequestContextContainer_base {
20
22
  static get get(): Effect<RequestContext, never, RequestContextContainer>;
21
23
  static get getOption(): import("effect/Effect").Effect<import("effect/Option").Option<RequestContext>, never, never>;
24
+ static readonly live: import("effect/Layer").Layer<RequestContextContainer, never, never>;
22
25
  }
23
- /**
24
- * @tsplus static RequestContextContainer.Ops live
25
- * @tsplus location "@effect-app/infra/services/RequestContextContainer"
26
- */
27
- export declare const live: import("effect/Layer").Layer<RequestContextContainer, never, never>;
28
26
  /**
29
27
  * @tsplus static RequestContext.Ops Tag
30
28
  * @tsplus location "@effect-app/infra/services/RequestContextContainer"
@@ -1 +1 @@
1
- {"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../_src/services/RequestContextContainer.ts"],"names":[],"mappings":";;;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;oBAOnC,OAAO,cAAc,CAAC;qBACrB,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;eAClE,cAAc,KAAK,OAAO,IAAI,CAAC;;oBAF1B,OAAO,cAAc,CAAC;qBACrB,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;eAClE,cAAc,KAAK,OAAO,IAAI,CAAC;;AAP5C;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,4BAIzC;IACF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,iGAQnB;CACF;;;;;AAKD,eAAO,MAAM,IAAI,qEASwB,CAAA;;;;;AAGzC,eAAO,MAAM,KAAK,8DAAgD,CAAA;;;;;AAKlE,eAAO,MAAM,cAAc,QAAS,cAAc;;;;;;;CAchD,CAAA"}
1
+ {"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../_src/services/RequestContextContainer.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;oBAOnC,OAAO,cAAc,CAAC;qBACrB,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;eAClE,cAAc,KAAK,OAAO,IAAI,CAAC;;oBAF1B,OAAO,cAAc,CAAC;qBACrB,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;eAClE,cAAc,KAAK,OAAO,IAAI,CAAC;;AAP5C;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,4BAIzC;IACF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,iGAQnB;IACD,MAAM,CAAC,QAAQ,CAAC,IAAI,sEASE;CACvB;;;;;AAGD,eAAO,MAAM,KAAK,8DAAgD,CAAA;;;;;AAKlE,eAAO,MAAM,cAAc,QAAS,cAAc;;;;;;;CAgBhD,CAAA"}
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  import * as tsplus_module_1 from "@effect-app/prelude/service";
2
3
  import * as tsplus_module_2 from "effect/Effect";
3
4
  import * as tsplus_module_3 from "effect/Option";
@@ -15,18 +16,16 @@ import { RequestContext } from "../RequestContext.js";
15
16
  */
16
17
  export class RequestContextContainer extends tsplus_module_1.TagClass() {
17
18
  static get get() {
18
- return tsplus_module_2.flatMap(RequestContextContainer, (_) => _.requestContext);
19
+ return tsplus_module_2.flatMap(_a, (_) => _.requestContext);
19
20
  }
20
21
  static get getOption() {
21
- return tsplus_module_2.flatMap(tsplus_module_2.contextWith((_) => tsplus_module_5.getOption(_, RequestContextContainer)), (requestContext) => tsplus_module_3.isSome(requestContext)
22
+ return tsplus_module_2.flatMap(tsplus_module_2.contextWith((_) => tsplus_module_5.getOption(_, _a)), (requestContext) => tsplus_module_3.isSome(requestContext)
22
23
  ? tsplus_module_2.map(requestContext.value.requestContext, tsplus_module_3.some)
23
24
  : tsplus_module_2.sync(() => tsplus_module_4.none));
24
25
  }
25
26
  }
26
- /**
27
- * @tsplus static RequestContextContainer.Ops live
28
- */
29
- export const live = tsplus_module_9.scoped(RequestContextContainer)(tsplus_module_2.map(tsplus_module_2.sync(() => new RequestContext({ name: tsplus_module_8.NonEmptyString255("_root_"), rootId: RequestId("_root_"), locale: "en" }))
27
+ _a = RequestContextContainer;
28
+ RequestContextContainer.live = tsplus_module_9.scoped(_a)(tsplus_module_2.map(tsplus_module_2.sync(() => new RequestContext({ name: tsplus_module_8.NonEmptyString255("_root_"), rootId: RequestId("_root_"), locale: "en" }))
30
29
  .andThen((tsplus_module_6.make)), (ref) => ({
31
30
  requestContext: tsplus_module_6.get(ref),
32
31
  update: (f) => tsplus_module_6.getAndUpdate(ref, f).tap((rc) => tsplus_module_2.annotateCurrentSpan(spanAttributes_1(rc))),
@@ -42,15 +41,17 @@ const spanAttributes_1 = (ctx) => ({
42
41
  "request.name": ctx.name,
43
42
  "request.locale": ctx.locale,
44
43
  "request.namespace": ctx.namespace,
45
- ...(ctx.userProfile?.sub ? {
46
- "request.user.sub": ctx
47
- .userProfile
48
- .sub,
49
- "request.user.roles": "roles" in ctx
50
- .userProfile
51
- ? ctx.userProfile.roles
52
- : undefined
53
- } : {})
44
+ ...(ctx.userProfile?.sub
45
+ ? {
46
+ "request.user.sub": ctx
47
+ .userProfile
48
+ .sub,
49
+ "request.user.roles": "roles" in ctx
50
+ .userProfile
51
+ ? ctx.userProfile.roles
52
+ : undefined
53
+ }
54
+ : {})
54
55
  });
55
56
  export const spanAttributes = spanAttributes_1;
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL1JlcXVlc3RDb250ZXh0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFckQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGdCQUFBLFFBQVEsRUFJakQ7SUFDRixNQUFNLEtBQUssR0FBRztRQUNaLE9BQU8sd0JBQUEsdUJBQXVCLEVBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBQ0QsTUFBTSxLQUFLLFNBQVM7UUFDbEIsT0FBTyx3QkFBQSw0QkFDUSxDQUFDLENBQWlCLEVBQUUsRUFBRSxDQUFDLDBCQUFrQixDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxFQUN6RSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQzFCLHVCQUFBLGNBQWMsQ0FBUztZQUNyQixDQUFDLENBQUMsb0JBQUEsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLHVCQUFpQjtZQUN0RCxDQUFDLENBQUMscUJBQVksR0FBRyxFQUFFLHFCQUFZLENBQUMsQ0FDbkMsQ0FBQTtJQUNMLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLHVCQVNILHVCQUF1QixFQVRwQixvQkFBQSxxQkFDWixHQUFHLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBQSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ2hILE9BQU8sQ0FBQyxDQUFBLG9CQUE2QixDQUFBLENBQUMsRUFDbEMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDYixjQUFjLHNCQUFFLEdBQUcsQ0FBSTtJQUN2QixNQUFNLEVBQUUsQ0FBQyxDQUF3QyxFQUFFLEVBQUUsQ0FDbkQsNkJBQUEsR0FBRyxFQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMscURBQTJCLEVBQUUsRUFBZ0IsQ0FBQztJQUNoRixLQUFLLEVBQUUsQ0FBQyxDQUFpQixFQUFFLEVBQUUsQ0FBQyxvQkFBQSxHQUFHLEVBQUssQ0FBQyxDQUFDLENBQUMsT0FBTywyQ0FBQyxDQUFDLEVBQWdCO0NBQ25FLENBQUMsQ0FBQyxDQUNvQyxDQUFBO0FBRXpDLDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsZ0JBQUEsVUFBVSxDQUFpQixpQkFBaUIsQ0FBQyxDQUFBO0FBRWxFOztHQUVHO0FBQ0ksTUFBTSxtQkFBaUIsQ0FBQyxHQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELFlBQVksRUFBRSxHQUFHLENBQUMsRUFBRTtJQUNwQixjQUFjLEVBQUUsR0FBRyxDQUFDLElBQUk7SUFDeEIsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLE1BQU07SUFDNUIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLFNBQVM7SUFDbEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixrQkFBa0IsRUFBRSxHQUFHO2FBQ3BCLFdBQVc7YUFDWCxHQUFHO1FBQ04sb0JBQW9CLEVBQUUsT0FBTyxJQUFJLEdBQUc7YUFDL0IsV0FBVztZQUNkLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUs7WUFDdkIsQ0FBQyxDQUFDLFNBQVM7S0FDZCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDVixDQUFDLENBQUE7YUFkVyxjQUFjIn0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL1JlcXVlc3RDb250ZXh0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXJEOzs7R0FHRztBQUNILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBQSxRQUFRLEVBSWpEO0lBQ0YsTUFBTSxLQUFLLEdBQUc7UUFDWixPQUFPLHdCQUFBLEVBQXVCLEVBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBQ0QsTUFBTSxLQUFLLFNBQVM7UUFDbEIsT0FBTyx3QkFBQSw0QkFDUSxDQUFDLENBQWlCLEVBQUUsRUFBRSxDQUFDLDBCQUFrQixDQUFDLEVBQUUsRUFBdUIsQ0FBQyxDQUFDLEVBQ3pFLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDMUIsdUJBQUEsY0FBYyxDQUFTO1lBQ3JCLENBQUMsQ0FBQyxvQkFBQSxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsdUJBQWlCO1lBQ3RELENBQUMsQ0FBQyxxQkFBWSxHQUFHLEVBQUUscUJBQVksQ0FBQyxDQUNuQyxDQUFBO0lBQ0wsQ0FBQzs7O0FBQ2UsNEJBQUksR0FBRyx1QkFTTixFQUFJLEVBVEUsb0JBQUEscUJBQ2YsR0FBRyxFQUFFLENBQUMsSUFBSSxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQUEsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoSCxPQUFPLENBQUMsQ0FBQSxvQkFBNkIsQ0FBQSxDQUFDLEVBQ2xDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsY0FBYyxzQkFBRSxHQUFHLENBQUk7SUFDdkIsTUFBTSxFQUFFLENBQUMsQ0FBd0MsRUFBRSxFQUFFLENBQ25ELDZCQUFBLEdBQUcsRUFBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLHFEQUEyQixFQUFFLEVBQWdCLENBQUM7SUFDaEYsS0FBSyxFQUFFLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsb0JBQUEsR0FBRyxFQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sMkNBQUMsQ0FBQyxFQUFnQjtDQUNuRSxDQUFDLENBQUMsQ0FDaUIsQUFURixDQVNFO0FBR3hCLDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsZ0JBQUEsVUFBVSxDQUFpQixpQkFBaUIsQ0FBQyxDQUFBO0FBRWxFOztHQUVHO0FBQ0ksTUFBTSxtQkFBaUIsQ0FBQyxHQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELFlBQVksRUFBRSxHQUFHLENBQUMsRUFBRTtJQUNwQixjQUFjLEVBQUUsR0FBRyxDQUFDLElBQUk7SUFDeEIsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLE1BQU07SUFDNUIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLFNBQVM7SUFDbEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRztRQUN0QixDQUFDLENBQUM7WUFDQSxrQkFBa0IsRUFBRSxHQUFHO2lCQUNwQixXQUFXO2lCQUNYLEdBQUc7WUFDTixvQkFBb0IsRUFBRSxPQUFPLElBQUksR0FBRztpQkFDL0IsV0FBVztnQkFDZCxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLO2dCQUN2QixDQUFDLENBQUMsU0FBUztTQUNkO1FBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUNSLENBQUMsQ0FBQTthQWhCVyxjQUFjIn0=
@@ -2,6 +2,7 @@ import { TagClass } from "@effect-app/prelude/service";
2
2
  import { Effect } from "effect/Effect";
3
3
  import { Context } from "effect/Context";
4
4
  import { Option } from "@effect-app/core/Option";
5
+ import { FiberRef } from "effect/FiberRef";
5
6
  import { ContextMap } from "./service.js";
6
7
  declare const ContextMapContainer_base: (new (service: {
7
8
  get: Effect<ContextMap>;
@@ -16,12 +17,8 @@ declare const ContextMapContainer_base: (new (service: {
16
17
  export declare class ContextMapContainer extends ContextMapContainer_base {
17
18
  static get get(): Effect<ContextMap, never, ContextMapContainer>;
18
19
  static get getOption(): import("effect/Effect").Effect<import("effect/Option").Option<ContextMap>, never, never>;
20
+ static readonly live: import("effect/Layer").Layer<ContextMapContainer, never, never>;
19
21
  }
20
- /**
21
- * @tsplus static ContextMapContainer.Ops live
22
- * @tsplus location "@effect-app/infra/services/Store/ContextMapContainer"
23
- */
24
- export declare const live: import("effect/Layer").Layer<ContextMapContainer, never, never>;
25
22
  /**
26
23
  * @tsplus static ContextMap.Ops Tag
27
24
  * @tsplus location "@effect-app/infra/services/Store/ContextMapContainer"
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMapContainer.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/ContextMapContainer.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAA;;SAYlD,OAAO,UAAU,CAAC;WAChB,OAAO,IAAI,CAAC;;SADd,OAAO,UAAU,CAAC;WAChB,OAAO,IAAI,CAAC;;AALrB;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,wBAGrC;IACF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAE/D;IACD,MAAM,KAAK,SAAS,6FAQnB;CACF;;;;;AAKD,eAAO,MAAM,IAAI,iEAIoB,CAAA;;;;;AAGrC,eAAO,MAAM,KAAK,sDAA4C,CAAA"}
1
+ {"version":3,"file":"ContextMapContainer.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/ContextMapContainer.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAA;;SAYlD,OAAO,UAAU,CAAC;WAChB,OAAO,IAAI,CAAC;;SADd,OAAO,UAAU,CAAC;WAChB,OAAO,IAAI,CAAC;;AALrB;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,wBAGrC;IACF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAE/D;IACD,MAAM,KAAK,SAAS,6FAQnB;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,kEAIE;CACvB;;;;;AAGD,eAAO,MAAM,KAAK,sDAA4C,CAAA"}
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  import * as tsplus_module_1 from "@effect-app/prelude/service";
2
3
  import * as tsplus_module_2 from "effect/Effect";
3
4
  import * as tsplus_module_3 from "effect/Option";
@@ -17,19 +18,17 @@ import { makeContextMap } from "./service.js";
17
18
  */
18
19
  export class ContextMapContainer extends tsplus_module_1.TagClass() {
19
20
  static get get() {
20
- return tsplus_module_2.flatMap(ContextMapContainer, (_) => _.get);
21
+ return tsplus_module_2.flatMap(_a, (_) => _.get);
21
22
  }
22
23
  static get getOption() {
23
- return tsplus_module_2.flatMap(tsplus_module_2.contextWith((_) => tsplus_module_5.getOption(_, ContextMapContainer)), (ctx) => tsplus_module_3.isSome(ctx)
24
+ return tsplus_module_2.flatMap(tsplus_module_2.contextWith((_) => tsplus_module_5.getOption(_, _a)), (ctx) => tsplus_module_3.isSome(ctx)
24
25
  ? tsplus_module_2.map(ctx.value.get, tsplus_module_3.some)
25
26
  : tsplus_module_2.sync(() => tsplus_module_4.none));
26
27
  }
27
28
  }
28
- /**
29
- * @tsplus static ContextMapContainer.Ops live
30
- */
31
- export const live = tsplus_module_8.scoped(ContextMapContainer)(tsplus_module_2.map(tsplus_module_2.sync(() => makeContextMap())
32
- .andThen((tsplus_module_6.make)), (ref) => new ContextMapContainer({ get: tsplus_module_6.get(ref), start: tsplus_module_2.flatMap(tsplus_module_7.makeMap, (_) => tsplus_module_6.set(ref, _)) })));
29
+ _a = ContextMapContainer;
30
+ ContextMapContainer.live = tsplus_module_8.scoped(_a)(tsplus_module_2.map(tsplus_module_2.sync(() => makeContextMap())
31
+ .andThen((tsplus_module_6.make)), (ref) => new _a({ get: tsplus_module_6.get(ref), start: tsplus_module_2.flatMap(tsplus_module_7.makeMap, (_) => tsplus_module_6.set(ref, _)) })));
33
32
  /** @tsplus static ContextMap.Ops Tag */
34
33
  export const RCTag = tsplus_module_5.GenericTag("@services/RCTag");
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dE1hcENvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvQ29udGV4dE1hcENvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFekQsNkRBQTZEO0FBQzdELDBDQUEwQztBQUMxQyx5RUFBeUU7QUFDekUsNEdBQTRHO0FBQzVHLHlGQUF5RjtBQUV6Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBQSxRQUFRLEVBRzdDO0lBQ0YsTUFBTSxLQUFLLEdBQUc7UUFDWixPQUFPLHdCQUFBLG1CQUFtQixFQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUNELE1BQU0sS0FBSyxTQUFTO1FBQ2xCLE9BQU8sd0JBQUEsNEJBQ1EsQ0FBQyxDQUFpQixFQUFFLEVBQUUsQ0FBQywwQkFBa0IsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLENBQUMsRUFDckUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNmLHVCQUFBLEdBQUcsQ0FBUztZQUNWLENBQUMsQ0FBQyxvQkFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsdUJBQWlCO1lBQ2hDLENBQUMsQ0FBQyxxQkFBWSxHQUFHLEVBQUUscUJBQVksQ0FBQyxDQUNuQyxDQUFBO0lBQ0wsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsdUJBSUgsbUJBQW1CLEVBSmhCLG9CQUFBLHFCQUNaLEdBQUcsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO0tBQzVCLE9BQU8sQ0FBQyxDQUFBLG9CQUF5QixDQUFBLENBQUMsRUFDOUIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsRUFBRSxHQUFHLHNCQUFFLEdBQUcsQ0FBSSxFQUFFLEtBQUssRUFBRSxpREFBd0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG9CQUFBLEdBQUcsRUFBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUN4RSxDQUFBO0FBRXJDLHdDQUF3QztBQUN4QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsZ0JBQUEsVUFBVSxDQUFhLGlCQUFpQixDQUFDLENBQUEifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dE1hcENvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvQ29udGV4dE1hcENvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpELDZEQUE2RDtBQUM3RCwwQ0FBMEM7QUFDMUMseUVBQXlFO0FBQ3pFLDRHQUE0RztBQUM1Ryx5RkFBeUY7QUFFekY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZ0JBQUEsUUFBUSxFQUc3QztJQUNGLE1BQU0sS0FBSyxHQUFHO1FBQ1osT0FBTyx3QkFBQSxFQUFtQixFQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUNELE1BQU0sS0FBSyxTQUFTO1FBQ2xCLE9BQU8sd0JBQUEsNEJBQ1EsQ0FBQyxDQUFpQixFQUFFLEVBQUUsQ0FBQywwQkFBa0IsQ0FBQyxFQUFFLEVBQW1CLENBQUMsQ0FBQyxFQUNyRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2YsdUJBQUEsR0FBRyxDQUFTO1lBQ1YsQ0FBQyxDQUFDLG9CQUFBLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyx1QkFBaUI7WUFDaEMsQ0FBQyxDQUFDLHFCQUFZLEdBQUcsRUFBRSxxQkFBWSxDQUFDLENBQ25DLENBQUE7SUFDTCxDQUFDOzs7QUFFZSx3QkFBSSxHQUFHLHVCQUlOLEVBQUksRUFKRSxvQkFBQSxxQkFDZixHQUFHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztLQUM1QixPQUFPLENBQUMsQ0FBQSxvQkFBeUIsQ0FBQSxDQUFDLEVBQzlCLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQW1CLENBQUMsRUFBRSxHQUFHLHNCQUFFLEdBQUcsQ0FBSSxFQUFFLEtBQUssRUFBRSxpREFBd0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG9CQUFBLEdBQUcsRUFBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUN2RixBQUpGLENBSUU7QUFHeEIsd0NBQXdDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxnQkFBQSxVQUFVLENBQWEsaUJBQWlCLENBQUMsQ0FBQSJ9