@effect-app/infra 0.174.7 → 0.176.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.
@@ -5,7 +5,6 @@ import {
5
5
  AnyPureDSL,
6
6
  byIdAndSaveWithPure,
7
7
  get,
8
- queryAndSaveOnePureEffect,
9
8
  queryEffect,
10
9
  queryOneEffect,
11
10
  type Repository,
@@ -95,15 +94,7 @@ export class RepositoryBaseC3<
95
94
  Evt,
96
95
  ItemType extends string
97
96
  > extends RepositoryBaseC2<T, PM, Evt, ItemType> {
98
- get<
99
- T extends { id: unknown },
100
- PM extends PersistenceModelType<string>,
101
- Evt,
102
- ItemType extends string
103
- >(
104
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
105
- id: T["id"]
106
- ) {
97
+ get(id: T["id"]) {
107
98
  return this
108
99
  .find(id)
109
100
  .flatMap((_) => _.encaseInEffect(() => new NotFoundError<ItemType>({ type: this.itemType, id })))
@@ -191,14 +182,7 @@ export class RepositoryBaseC3<
191
182
  * TODO: project inside the db.
192
183
  * @tsplus fluent Repository project
193
184
  */
194
- project<
195
- T extends { id: unknown },
196
- PM extends PersistenceModelType<string>,
197
- Evt,
198
- ItemType extends string,
199
- S = PM
200
- >(
201
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
185
+ project<S = PM>(
202
186
  map: {
203
187
  filter?: Filter<PM>
204
188
  collect?: (t: PM) => Option<S>
@@ -207,13 +191,8 @@ export class RepositoryBaseC3<
207
191
  }
208
192
  ): Effect<S[]>
209
193
  project<
210
- T extends { id: unknown },
211
- PM extends PersistenceModelType<string>,
212
- Evt,
213
- ItemType extends string,
214
194
  U extends keyof PM
215
195
  >(
216
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
217
196
  map: {
218
197
  filter?: QueryBuilder<PM>
219
198
  select: NonEmptyReadonlyArray<U>
@@ -222,14 +201,9 @@ export class RepositoryBaseC3<
222
201
  }
223
202
  ): Effect<Pick<PM, U>[]>
224
203
  project<
225
- T extends { id: unknown },
226
- PM extends PersistenceModelType<string>,
227
- Evt,
228
- ItemType extends string,
229
204
  U extends keyof PM,
230
205
  S = Pick<PM, U>
231
206
  >(
232
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
233
207
  map: {
234
208
  filter?: Filter<PM>
235
209
  select?: NonEmptyReadonlyArray<U>
@@ -245,13 +219,7 @@ export class RepositoryBaseC3<
245
219
  * TODO: count inside the db.
246
220
  * @tsplus fluent Repository project
247
221
  */
248
- count<
249
- T extends { id: unknown },
250
- PM extends PersistenceModelType<string>,
251
- Evt,
252
- ItemType extends string
253
- >(
254
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
222
+ count(
255
223
  filter?: Filter<PM>
256
224
  ) {
257
225
  return this
@@ -335,17 +303,7 @@ export class RepositoryBaseC3<
335
303
  )
336
304
  }
337
305
 
338
- /**
339
- * @tsplus fluent Repository query
340
- */
341
- query<
342
- T extends { id: unknown },
343
- PM extends PersistenceModelType<string>,
344
- Evt,
345
- ItemType extends string,
346
- S = T
347
- >(
348
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
306
+ query<S = T>(
349
307
  // TODO: think about collectPM, collectE, and collect(Parsed)
350
308
  map: { filter?: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number }
351
309
  ) {
@@ -355,51 +313,23 @@ export class RepositoryBaseC3<
355
313
  /**
356
314
  * @tsplus fluent Repository queryOne
357
315
  */
358
- queryOne<
359
- T extends { id: unknown },
360
- PM extends PersistenceModelType<string>,
361
- Evt,
362
- ItemType extends string,
363
- S = T
364
- >(
365
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
316
+ queryOne<S = T>(
366
317
  map: { filter?: Filter<PM>; collect: (t: T) => Option<S> }
367
318
  ): Effect<S, NotFoundError<ItemType>>
368
- queryOne<
369
- T extends { id: unknown },
370
- PM extends PersistenceModelType<string>,
371
- Evt,
372
- ItemType extends string
373
- >(
374
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
319
+ queryOne(
375
320
  map: { filter?: Filter<PM> }
376
321
  ): Effect<T, NotFoundError<ItemType>>
377
- queryOne<
378
- T extends { id: unknown },
379
- PM extends PersistenceModelType<string>,
380
- Evt,
381
- ItemType extends string,
382
- S = T
383
- >(
384
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
322
+ queryOne<S = T>(
385
323
  map: { filter?: Filter<PM>; collect?: (t: T) => Option<S> }
386
324
  ) {
387
325
  return this.queryOneEffect(Effect.sync(() => map))
388
326
  }
389
327
 
390
- /**
391
- * @tsplus fluent Repository queryAndSaveOnePureEffect
392
- */
393
328
  queryAndSaveOnePureEffect<
394
- T extends { id: unknown },
395
- PM extends PersistenceModelType<string>,
396
- Evt,
397
- ItemType extends string,
398
329
  R,
399
330
  E,
400
331
  S extends T = T
401
332
  >(
402
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
403
333
  map: Effect<{ filter: Filter<PM>; collect: (t: T) => Option<S>; limit?: number; skip?: number }, E, R>
404
334
  ): <R2, A, E2, S2 extends T>(
405
335
  pure: Effect<A, E2, FixEnv<R2, Evt, S, S2>>
@@ -412,14 +342,9 @@ export class RepositoryBaseC3<
412
342
  }>
413
343
  >
414
344
  queryAndSaveOnePureEffect<
415
- T extends { id: unknown },
416
- PM extends PersistenceModelType<string>,
417
- Evt,
418
- ItemType extends string,
419
345
  R,
420
346
  E
421
347
  >(
422
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
423
348
  map: Effect<{ filter: Filter<PM> }, E, R>
424
349
  ): <R2, A, E2, T2 extends T>(
425
350
  pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>
@@ -432,7 +357,6 @@ export class RepositoryBaseC3<
432
357
  }>
433
358
  >
434
359
  queryAndSaveOnePureEffect(
435
- this: any,
436
360
  map: any
437
361
  ) {
438
362
  return (pure: any) =>
@@ -444,13 +368,8 @@ export class RepositoryBaseC3<
444
368
  * @tsplus fluent Repository queryAndSaveOnePure
445
369
  */
446
370
  queryAndSaveOnePure<
447
- T extends { id: unknown },
448
- PM extends PersistenceModelType<string>,
449
- Evt,
450
- ItemType extends string,
451
371
  S extends T = T
452
372
  >(
453
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
454
373
  map: { filter: Filter<PM>; collect: (t: T) => Option<S>; limit?: number; skip?: number }
455
374
  ): <R2, A, E2, S2>(pure: Effect<A, E2, FixEnv<R2, Evt, S, S2>>) => Effect<
456
375
  A,
@@ -459,13 +378,7 @@ export class RepositoryBaseC3<
459
378
  env: PureEnv<Evt, S, S2>
460
379
  }>
461
380
  >
462
- queryAndSaveOnePure<
463
- T extends { id: unknown },
464
- PM extends PersistenceModelType<string>,
465
- Evt,
466
- ItemType extends string
467
- >(
468
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
381
+ queryAndSaveOnePure(
469
382
  map: { filter: Filter<PM> }
470
383
  ): <R2, A, E2, T2>(pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>) => Effect<
471
384
  A,
@@ -474,26 +387,20 @@ export class RepositoryBaseC3<
474
387
  env: PureEnv<Evt, T, T2>
475
388
  }>
476
389
  >
477
- queryAndSaveOnePure(
478
- this: any,
479
- map: { filter: Filter<any>; collect?: any }
390
+ queryAndSaveOnePure<S = T>(
391
+ map: { filter: Filter<PM>; collect: (t: T) => Option<S> }
480
392
  ) {
481
- return queryAndSaveOnePureEffect(this, Effect.sync(() => map))
393
+ return this.queryAndSaveOnePureEffect(Effect.sync(() => map))
482
394
  }
483
395
 
484
396
  /**
485
397
  * @tsplus fluent Repository queryAndSavePureEffect
486
398
  */
487
399
  queryAndSavePureEffect<
488
- T extends { id: unknown },
489
- PM extends PersistenceModelType<string>,
490
- Evt,
491
- ItemType extends string,
492
400
  R,
493
401
  E,
494
402
  S extends T = T
495
403
  >(
496
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
497
404
  map: Effect<{ filter: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number }, E, R>
498
405
  ) {
499
406
  return <R2, A, E2, S2 extends T>(pure: Effect<A, E2, FixEnv<R2, Evt, S[], S2[]>>) =>
@@ -505,34 +412,19 @@ export class RepositoryBaseC3<
505
412
  * @tsplus fluent Repository queryAndSavePure
506
413
  */
507
414
  queryAndSavePure<
508
- T extends { id: unknown },
509
- PM extends PersistenceModelType<string>,
510
- Evt,
511
- ItemType extends string,
512
415
  S extends T = T
513
416
  >(
514
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
515
417
  map: { filter: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number }
516
418
  ) {
517
419
  return this.queryAndSavePureEffect(Effect.sync(() => map))
518
420
  }
519
421
 
520
- saveManyWithPure<
521
- T extends { id: unknown },
522
- PM extends PersistenceModelType<string>,
523
- Evt,
524
- ItemType extends string
525
- >(this: RepositoryBaseC<T, PM, Evt, ItemType>) {
422
+ get saveManyWithPure() {
526
423
  return <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, S1[], S2[]>>) =>
527
424
  (items: Iterable<S1>) => saveManyWithPure_(this, items, pure)
528
425
  }
529
426
 
530
- byIdAndSaveWithPure<
531
- T extends { id: unknown },
532
- PM extends PersistenceModelType<string>,
533
- Evt,
534
- ItemType extends string
535
- >(this: RepositoryBaseC<T, PM, Evt, ItemType>, id: T["id"]) {
427
+ byIdAndSaveWithPure(id: T["id"]) {
536
428
  return <R, A, E, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) =>
537
429
  get(this, id).flatMap((item) => saveWithPure_(this, item, pure))
538
430
  }
@@ -540,12 +432,7 @@ export class RepositoryBaseC3<
540
432
  /**
541
433
  * NOTE: it's not as composable, only useful when the request is simple, and only this part needs request args.
542
434
  */
543
- handleByIdAndSaveWithPure<
544
- T extends { id: unknown },
545
- PM extends PersistenceModelType<string>,
546
- Evt,
547
- ItemType extends string
548
- >(this: RepositoryBaseC<T, PM, Evt, ItemType>) {
435
+ get handleByIdAndSaveWithPure() {
549
436
  return <Req extends { id: T["id"] }, Context, R, A, E, S2 extends T>(
550
437
  pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>
551
438
  ) =>
@@ -616,15 +503,10 @@ export class RepositoryBaseC3<
616
503
  }
617
504
 
618
505
  queryAndSavePureEffectBatched<
619
- T extends { id: unknown },
620
- PM extends PersistenceModelType<string>,
621
- Evt,
622
- ItemType extends string,
623
506
  R,
624
507
  E,
625
508
  S extends T = T
626
509
  >(
627
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
628
510
  // TODO: think about collectPM, collectE, and collect(Parsed)
629
511
  map: Effect<{ filter: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number }, E, R>,
630
512
  batchSize = 100
@@ -635,13 +517,8 @@ export class RepositoryBaseC3<
635
517
  }
636
518
 
637
519
  queryAndSavePureBatched<
638
- T extends { id: unknown },
639
- PM extends PersistenceModelType<string>,
640
- Evt,
641
- ItemType extends string,
642
520
  S extends T = T
643
521
  >(
644
- this: RepositoryBaseC<T, PM, Evt, ItemType>,
645
522
  // TODO: think about collectPM, collectE, and collect(Parsed)
646
523
  map: { filter: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number },
647
524
  batchSize = 100
@@ -649,12 +526,7 @@ export class RepositoryBaseC3<
649
526
  return this.queryAndSavePureEffectBatched(Effect.sync(() => map), batchSize)
650
527
  }
651
528
 
652
- saveManyWithPureBatched<
653
- T extends { id: unknown },
654
- PM extends PersistenceModelType<string>,
655
- Evt,
656
- ItemType extends string
657
- >(this: RepositoryBaseC<T, PM, Evt, ItemType>, batchSize = 100) {
529
+ saveManyWithPureBatched(batchSize = 100) {
658
530
  return <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, S1[], S2[]>>) =>
659
531
  (items: Iterable<S1>) => saveManyWithPureBatched_(this, items, pure, batchSize)
660
532
  }
@@ -901,8 +773,8 @@ export function makeRepo<
901
773
 
902
774
  return {
903
775
  make,
904
- where,
905
- query: QueryBuilder.make<PM>()
776
+ Where: where,
777
+ Query: QueryBuilder.make<PM>()
906
778
  }
907
779
  }
908
780
  }
@@ -1057,13 +929,42 @@ export interface Repos<
1057
929
  f: (r: Repository<T, PM, Evt, ItemType>) => Out
1058
930
  ): Effect<Out, E, StoreMaker | ContextMapContainer | R | RInitial | R2>
1059
931
  /** @deprecated use `query` instead */
1060
- readonly where: ReturnType<typeof makeWhere<PM>>
1061
- readonly query: ReturnType<typeof QueryBuilder.make<PM>>
932
+ readonly Where: ReturnType<typeof makeWhere<PM>>
933
+ readonly Query: ReturnType<typeof QueryBuilder.make<PM>>
1062
934
  readonly type: Repository<T, PM, Evt, ItemType>
1063
935
  }
1064
936
 
1065
937
  export type GetRepoType<T> = T extends { type: infer R } ? R : never
1066
938
 
939
+ export interface RepoFunctions<T extends { id: unknown }, PM extends { id: string }, Evt, ItemType, Service> {
940
+ all: Effect<readonly T[], never, Service>
941
+ find: (id: T["id"]) => Effect<T | null, never, Service>
942
+ saveAndPublish: (
943
+ items: Iterable<T>,
944
+ events?: Iterable<Evt>
945
+ ) => Effect<void, InvalidStateError | OptimisticConcurrencyException, Service>
946
+ removeAndPublish: (
947
+ items: Iterable<T>,
948
+ events?: Iterable<Evt>
949
+ ) => Effect<void, never, Service>
950
+ save: (...items: T[]) => Effect<void, InvalidStateError | OptimisticConcurrencyException, Service>
951
+ get: (id: T["id"]) => Effect<T, NotFoundError<ItemType>, Service>
952
+
953
+ query: <S = T>(map: {
954
+ filter?: Filter<PM>
955
+ collect?: (t: T) => Option<S>
956
+ limit?: number
957
+ skip?: number
958
+ }) => Effect<S[], never, never>
959
+ }
960
+
961
+ const makeRepoFunctions = (tag: any) => {
962
+ const { all } = Effect.serviceConstants(tag) as any
963
+ const { find, get, query, removeAndPublish, save, saveAndPublish } = Effect.serviceFunctions(tag) as any
964
+
965
+ return { all, find, saveAndPublish, removeAndPublish, save, get, query }
966
+ }
967
+
1067
968
  export const RepositoryBaseImpl = <Service>() => {
1068
969
  return <
1069
970
  PM extends { id: string; _etag: string | undefined },
@@ -1083,6 +984,7 @@ export const RepositoryBaseImpl = <Service>() => {
1083
984
  Evt,
1084
985
  ItemType
1085
986
  >
987
+ & RepoFunctions<T, PM, Evt, ItemType, Service>
1086
988
  : never =>
1087
989
  {
1088
990
  const mkRepo = makeRepo<PM, Evt>()(
@@ -1098,11 +1000,12 @@ export const RepositoryBaseImpl = <Service>() => {
1098
1000
  static readonly make = mkRepo.make
1099
1001
  static readonly makeWith = ((a: any, b: any) => mkRepo.make(a).map(b)) as any
1100
1002
 
1101
- static readonly where = makeWhere<PM>()
1102
- static readonly query = QueryBuilder.make<PM>()
1003
+ static readonly Where = makeWhere<PM>()
1004
+ static readonly Query = QueryBuilder.make<PM>()
1103
1005
  static readonly type: Repository<T, PM, Evt, ItemType> = undefined as any
1104
1006
  }
1105
- return assignTag<Service>()(Cls) as any
1007
+
1008
+ return assignTag<Service>()(Object.assign(Cls, makeRepoFunctions(Cls))) as any
1106
1009
  }
1107
1010
  }
1108
1011
 
@@ -1127,6 +1030,7 @@ export const RepositoryDefaultImpl = <Service>() => {
1127
1030
  Evt,
1128
1031
  ItemType
1129
1032
  >
1033
+ & RepoFunctions<T, PM, Evt, ItemType, Service>
1130
1034
  : never =>
1131
1035
  {
1132
1036
  const mkRepo = makeRepo<PM, Evt>()(
@@ -1144,11 +1048,11 @@ export const RepositoryDefaultImpl = <Service>() => {
1144
1048
  static readonly make = mkRepo.make
1145
1049
  static readonly makeWith = ((a: any, b: any) => mkRepo.make(a).map(b)) as any
1146
1050
 
1147
- static readonly where = makeWhere<PM>()
1148
- static readonly query = QueryBuilder.make<PM>()
1051
+ static readonly Where = makeWhere<PM>()
1052
+ static readonly Query = QueryBuilder.make<PM>()
1149
1053
 
1150
1054
  static readonly type: Repository<T, PM, Evt, ItemType> = undefined as any
1151
1055
  }
1152
- return assignTag<Service>()(Cls) as any // impl is missing, but its marked protected
1056
+ return assignTag<Service>()(Object.assign(Cls, makeRepoFunctions(Cls))) as any // impl is missing, but its marked protected
1153
1057
  }
1154
1058
  }
@@ -19,6 +19,10 @@ declare const Operations_base: (new (service: {
19
19
  * @tsplus companion Operations.Ops
20
20
  */
21
21
  export declare class Operations extends Operations_base {
22
+ static readonly find: (id: import("effect-app/Operations").OperationId) => import("effect/Effect").Effect<import("effect/Option").Option<Operation>, never, Operations.Id>;
23
+ static readonly update: (id: import("effect-app/Operations").OperationId, progress: OperationProgress) => import("effect/Effect").Effect<void, never, Operations.Id>;
24
+ static readonly register: import("effect/Effect").Effect<import("effect-app/Operations").OperationId, never, Scope.Scope | Operations.Id>;
25
+ static readonly cleanup: import("effect/Effect").Effect<void, never, Operations.Id>;
22
26
  }
23
27
  export declare namespace Operations {
24
28
  interface Id {
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Operations/service.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;;cAOzB,OAAO,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;iBACpC,WAAW,YAAY,iBAAiB,KAAK,OAAO,IAAI,CAAC;eAC3D,WAAW,KAAK,OAAO,OAAO,SAAS,CAAC,CAAC;aAC3C,OAAO,IAAI,CAAC;;cAHX,OAAO,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;iBACpC,WAAW,YAAY,iBAAiB,KAAK,OAAO,IAAI,CAAC;eAC3D,WAAW,KAAK,OAAO,OAAO,SAAS,CAAC,CAAC;aAC3C,OAAO,IAAI,CAAC;;AARvB;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAKhB;CAAG;AACnB,yBAAiB,UAAU,CAAC;IAC1B,UAAiB,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;KAC1B;CACF;;;;;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,+HAY3D;;;;;AAKD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SACvE,GAAG,iIACjB;;;;;AAKD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,+HAYnF;;;;;AAKD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EACzD,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1C,GAAG,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,0JAc7C"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Operations/service.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;;cAOzB,OAAO,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;iBACpC,WAAW,YAAY,iBAAiB,KAAK,OAAO,IAAI,CAAC;eAC3D,WAAW,KAAK,OAAO,OAAO,SAAS,CAAC,CAAC;aAC3C,OAAO,IAAI,CAAC;;cAHX,OAAO,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;iBACpC,WAAW,YAAY,iBAAiB,KAAK,OAAO,IAAI,CAAC;eAC3D,WAAW,KAAK,OAAO,OAAO,SAAS,CAAC,CAAC;aAC3C,OAAO,IAAI,CAAC;;AARvB;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAKhB;IACd,MAAM,CAAC,QAAQ,CAAC,IAAI,uJAAqC;IACzD,MAAM,CAAC,QAAQ,CAAC,MAAM,+IAAuC;IAC7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,kHAAyC;IACjE,MAAM,CAAC,QAAQ,CAAC,OAAO,6DAAwC;CAChE;AACD,yBAAiB,UAAU,CAAC;IAC1B,UAAiB,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;KAC1B;CACF;;;;;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,+HAY3D;;;;;AAKD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SACvE,GAAG,iIACjB;;;;;AAKD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,+HAYnF;;;;;AAKD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EACzD,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1C,GAAG,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,0JAc7C"}
@@ -1,6 +1,7 @@
1
+ var _a;
1
2
  import * as tsplus_module_1 from "effect-app/service";
2
- import * as tsplus_module_2 from "@effect-app/infra/api/reportError";
3
- import * as tsplus_module_3 from "effect/Effect";
3
+ import * as tsplus_module_2 from "effect/Effect";
4
+ import * as tsplus_module_3 from "@effect-app/infra/api/reportError";
4
5
  export const forkOperation = forkOperation_1;
5
6
  import * as Scope from "effect/Scope";
6
7
  /**
@@ -9,14 +10,19 @@ import * as Scope from "effect/Scope";
9
10
  */
10
11
  export class Operations extends tsplus_module_1.TagClass() {
11
12
  }
13
+ _a = Operations;
14
+ Operations.find = tsplus_module_2.serviceFunctions(_a).find;
15
+ Operations.update = tsplus_module_2.serviceFunctions(_a).update;
16
+ Operations.register = tsplus_module_2.serviceConstants(_a).register;
17
+ Operations.cleanup = tsplus_module_2.serviceConstants(_a).cleanup;
12
18
  /**
13
19
  * @tsplus getter effect/io/Effect forkOperation
14
20
  */
15
21
  function forkOperation_1(self) {
16
- return tsplus_module_3.flatMap(Operations, (Operations) => tsplus_module_3.flatMap(Scope
22
+ return tsplus_module_2.flatMap(Operations, (Operations) => tsplus_module_2.flatMap(Scope
17
23
  .make(), (scope) => Scope.extend(Operations
18
24
  .register, scope)
19
- .tap(() => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self, scope)))));
25
+ .tap(() => tsplus_module_3.forkDaemonReportRequestUnexpected(Scope.use(self, scope)))));
20
26
  }
21
27
  /**
22
28
  * @tsplus getter function forkOperation
@@ -28,19 +34,19 @@ export function forkOperationFunction(fnc) {
28
34
  * @tsplus static effect/io/Effect.Ops forkOperation
29
35
  */
30
36
  export function forkOperation2(self) {
31
- return tsplus_module_3.flatMap(Operations, (Operations) => tsplus_module_3.flatMap(Scope
37
+ return tsplus_module_2.flatMap(Operations, (Operations) => tsplus_module_2.flatMap(Scope
32
38
  .make(), (scope) => Scope.extend(Operations
33
39
  .register, scope)
34
- .tap((id) => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self(id), scope)))));
40
+ .tap((id) => tsplus_module_3.forkDaemonReportRequestUnexpected(Scope.use(self(id), scope)))));
35
41
  }
36
42
  /**
37
43
  * @tsplus static effect/io/Effect.Ops forkOperationWithEffect
38
44
  */
39
45
  export function forkOperationWithEffect(self, fnc) {
40
- return tsplus_module_3.flatMap(Operations, (Operations) => tsplus_module_3.flatMap(Scope
46
+ return tsplus_module_2.flatMap(Operations, (Operations) => tsplus_module_2.flatMap(Scope
41
47
  .make(), (scope) => Scope.extend(Operations
42
48
  .register, scope)
43
- .tap((opId) => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self(opId), scope)))
44
- .tap((opId) => Scope.extend(tsplus_module_3.forkScoped(tsplus_module_3.interruptible(fnc(opId))), scope))));
49
+ .tap((opId) => tsplus_module_3.forkDaemonReportRequestUnexpected(Scope.use(self(opId), scope)))
50
+ .tap((opId) => Scope.extend(tsplus_module_2.forkScoped(tsplus_module_2.interruptible(fnc(opId))), scope))));
45
51
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OzthQXNCZ0IsYUFBYTtBQXJCN0IsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFFckM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFVBQVcsU0FBUSxnQkFBQSxRQUFRLEVBS3hCO0NBQUc7QUFPbkI7O0dBRUc7QUFDSCx5QkFBdUMsSUFBcUI7SUFDMUQsT0FBTyx3QkFBQSxVQUFVLEVBQ2YsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLHdCQUFBLEtBQUs7U0FDRixJQUFJLEVBQUUsRUFDRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pCLEFBM0JFLEtBQUssUUEyQlAsVUFBVTtTQUNQLFFBQVEsRUFDRCxLQUFLLENBQUM7U0FDYixHQUFHLENBQUMsR0FBRyxFQUFFLG1EQUFDLEFBOUJYLEtBQUssS0E4Qk0sSUFBSSxFQUFLLEtBQUssQ0FBQyxDQUFrQyxDQUFDLENBQ2hFLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBZSxHQUFrQztJQUNwRixPQUFPLENBQUMsR0FBUSxFQUFFLEVBQUUsaUJBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFjLENBQUE7QUFDN0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBVSxJQUE0QztJQUNsRixPQUFPLHdCQUFBLFVBQVUsRUFDZixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2Isd0JBQUEsS0FBSztTQUNGLElBQUksRUFBRSxFQUNFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDakIsQUFuREUsS0FBSyxRQW1EUCxVQUFVO1NBQ1AsUUFBUSxFQUNELEtBQUssQ0FBQztTQUNiLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLG1EQUFDLEFBdERiLEtBQUssS0FzRFEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFLLEtBQUssQ0FBQyxDQUFrQyxDQUFDLENBQ3RFLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsSUFBMEMsRUFDMUMsR0FBNEM7SUFFNUMsT0FBTyx3QkFBQSxVQUFVLEVBQ2YsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLHdCQUFBLEtBQUs7U0FDRixJQUFJLEVBQUUsRUFDRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pCLEFBdkVFLEtBQUssUUF1RVAsVUFBVTtTQUNQLFFBQVEsRUFDRCxLQUFLLENBQUM7U0FDYixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxtREFBQyxBQTFFZixLQUFLLEtBMEVVLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBSyxLQUFLLENBQUMsQ0FBa0MsQ0FBQztTQUN0RSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEFBM0VmLEtBQUssaUVBMkVVLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBaUMsS0FBSyxDQUFDLENBQUMsQ0FDbkUsQ0FDTixDQUFBO0FBQ0gsQ0FBQyJ9
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7YUEyQmdCLGFBQWE7QUExQjdCLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFXLFNBQVEsZ0JBQUEsUUFBUSxFQUt4Qjs7O0FBQ0UsZUFBSSxHQUFHLGlDQUF3QixFQUFJLENBQUMsQ0FBQyxJQUFJLEFBQXJDLENBQXFDO0FBQ3pDLGlCQUFNLEdBQUcsaUNBQXdCLEVBQUksQ0FBQyxDQUFDLE1BQU0sQUFBdkMsQ0FBdUM7QUFDN0MsbUJBQVEsR0FBRyxpQ0FBd0IsRUFBSSxDQUFDLENBQUMsUUFBUSxBQUF6QyxDQUF5QztBQUNqRCxrQkFBTyxHQUFHLGlDQUF3QixFQUFJLENBQUMsQ0FBQyxPQUFPLEFBQXhDLENBQXdDO0FBUWpFOztHQUVHO0FBQ0gseUJBQXVDLElBQXFCO0lBQzFELE9BQU8sd0JBQUEsVUFBVSxFQUNmLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDYix3QkFBQSxLQUFLO1NBQ0YsSUFBSSxFQUFFLEVBQ0UsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNqQixBQWhDRSxLQUFLLFFBZ0NQLFVBQVU7U0FDUCxRQUFRLEVBQ0QsS0FBSyxDQUFDO1NBQ2IsR0FBRyxDQUFDLEdBQUcsRUFBRSxtREFBQyxBQW5DWCxLQUFLLEtBbUNNLElBQUksRUFBSyxLQUFLLENBQUMsQ0FBa0MsQ0FBQyxDQUNoRSxDQUNOLENBQUE7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQWUsR0FBa0M7SUFDcEYsT0FBTyxDQUFDLEdBQVEsRUFBRSxFQUFFLGlCQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBYyxDQUFBO0FBQzdDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQVUsSUFBNEM7SUFDbEYsT0FBTyx3QkFBQSxVQUFVLEVBQ2YsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLHdCQUFBLEtBQUs7U0FDRixJQUFJLEVBQUUsRUFDRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pCLEFBeERFLEtBQUssUUF3RFAsVUFBVTtTQUNQLFFBQVEsRUFDRCxLQUFLLENBQUM7U0FDYixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxtREFBQyxBQTNEYixLQUFLLEtBMkRRLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBSyxLQUFLLENBQUMsQ0FBa0MsQ0FBQyxDQUN0RSxDQUNOLENBQUE7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLElBQTBDLEVBQzFDLEdBQTRDO0lBRTVDLE9BQU8sd0JBQUEsVUFBVSxFQUNmLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDYix3QkFBQSxLQUFLO1NBQ0YsSUFBSSxFQUFFLEVBQ0UsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNqQixBQTVFRSxLQUFLLFFBNEVQLFVBQVU7U0FDUCxRQUFRLEVBQ0QsS0FBSyxDQUFDO1NBQ2IsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsbURBQUMsQUEvRWYsS0FBSyxLQStFVSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUssS0FBSyxDQUFDLENBQWtDLENBQUM7U0FDdEUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxBQWhGZixLQUFLLGlFQWdGVSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQWlDLEtBQUssQ0FBQyxDQUFDLENBQ25FLENBQ04sQ0FBQTtBQUNILENBQUMifQ==