@effect-app/infra 0.222.0 → 0.223.1

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 (43) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/_cjs/services/Repository/ext.cjs.map +1 -1
  3. package/_cjs/services/RepositoryBase.cjs +6 -4
  4. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  5. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  6. package/_cjs/services/Store/Disk.cjs.map +1 -1
  7. package/_cjs/services/Store/Memory.cjs +1 -0
  8. package/_cjs/services/Store/Memory.cjs.map +1 -1
  9. package/_cjs/services/Store/service.cjs.map +1 -1
  10. package/_cjs/services/Store/utils.cjs.map +1 -1
  11. package/dist/services/Repository/ext.d.ts +42 -15
  12. package/dist/services/Repository/ext.d.ts.map +1 -1
  13. package/dist/services/Repository/ext.js +1 -1
  14. package/dist/services/Repository/service.d.ts +3 -2
  15. package/dist/services/Repository/service.d.ts.map +1 -1
  16. package/dist/services/RepositoryBase.d.ts +77 -86
  17. package/dist/services/RepositoryBase.d.ts.map +1 -1
  18. package/dist/services/RepositoryBase.js +11 -7
  19. package/dist/services/Store/Cosmos.d.ts.map +1 -1
  20. package/dist/services/Store/Cosmos.js +1 -1
  21. package/dist/services/Store/Disk.d.ts +3 -1
  22. package/dist/services/Store/Disk.d.ts.map +1 -1
  23. package/dist/services/Store/Disk.js +1 -1
  24. package/dist/services/Store/Memory.d.ts +9 -3
  25. package/dist/services/Store/Memory.d.ts.map +1 -1
  26. package/dist/services/Store/Memory.js +2 -2
  27. package/dist/services/Store/service.d.ts +37 -18
  28. package/dist/services/Store/service.d.ts.map +1 -1
  29. package/dist/services/Store/service.js +1 -1
  30. package/dist/services/Store/utils.d.ts +6 -2
  31. package/dist/services/Store/utils.d.ts.map +1 -1
  32. package/dist/services/Store/utils.js +1 -1
  33. package/package.json +10 -10
  34. package/src/services/Repository/ext.ts +28 -29
  35. package/src/services/Repository/service.ts +2 -3
  36. package/src/services/RepositoryBase.ts +178 -170
  37. package/src/services/Store/Cosmos.ts +13 -12
  38. package/src/services/Store/Disk.ts +12 -11
  39. package/src/services/Store/Memory.ts +13 -12
  40. package/src/services/Store/index.test.ts.bak +3 -3
  41. package/src/services/Store/service.ts +22 -19
  42. package/src/services/Store/utils.ts +2 -2
  43. package/test/query.test.ts +1 -1
@@ -45,4 +45,4 @@ export function greaterThan(valA, valB) {
45
45
  export function greaterThanExclusive(valA, valB) {
46
46
  return valA >= valB;
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvU3RvcmUvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDM0MsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUc5QyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFDZixFQUFFLENBQUUsQ0FBQztJQUNSLEdBQUcsQ0FBQztJQUNKLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0NBQ3JCLENBQVMsQ0FBQTtBQUNWLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDekIsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQXdELENBQUksRUFBRSxPQUFrQixFQUFFLEVBQUUsQ0FDcEcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNOLE1BQU0sQ0FBQyxRQUFRLENBQ2IsT0FBTyxFQUNQLEdBQUcsRUFBRSxDQUFDLElBQUksOEJBQThCLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQzFGLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNiLElBQUksOEJBQThCLENBQUM7WUFDakMsSUFBSTtZQUNKLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSztZQUM1QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7U0FDZixDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEIsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDLENBQUMsQ0FBQTtBQUVOLE1BQU0sVUFBVSxVQUFVLENBQXlDLE1BQWtCO0lBQ25GLE9BQU8sQ0FBQyxDQUFJLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDcEcsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxHQUFNO0lBQ3pDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsSUFBYSxFQUFFLElBQWE7SUFDbEQsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFBO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQXNCLEVBQUUsSUFBc0I7SUFDdEUsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFBO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBc0IsRUFBRSxJQUFzQjtJQUMvRSxPQUFPLElBQUksSUFBSSxJQUFJLENBQUE7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBc0IsRUFBRSxJQUFzQjtJQUN4RSxPQUFPLElBQUksR0FBRyxJQUFJLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUFzQixFQUFFLElBQXNCO0lBQ2pGLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQTtBQUNyQixDQUFDIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvU3RvcmUvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDM0MsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUc5QyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFDZixFQUFFLENBQUUsQ0FBQztJQUNSLEdBQUcsQ0FBQztJQUNKLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0NBQ3JCLENBQVMsQ0FBQTtBQUNWLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDekIsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQWlELENBQUksRUFBRSxPQUFrQixFQUFFLEVBQUUsQ0FDN0YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNOLE1BQU0sQ0FBQyxRQUFRLENBQ2IsT0FBTyxFQUNQLEdBQUcsRUFBRSxDQUFDLElBQUksOEJBQThCLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQzFGLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNiLElBQUksOEJBQThCLENBQUM7WUFDakMsSUFBSTtZQUNKLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSztZQUM1QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7U0FDZixDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEIsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDLENBQUMsQ0FBQTtBQUVOLE1BQU0sVUFBVSxVQUFVLENBQXlDLE1BQWtCO0lBQ25GLE9BQU8sQ0FBQyxDQUFJLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDcEcsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxHQUFNO0lBQ3pDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsSUFBYSxFQUFFLElBQWE7SUFDbEQsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFBO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQXNCLEVBQUUsSUFBc0I7SUFDdEUsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFBO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBc0IsRUFBRSxJQUFzQjtJQUMvRSxPQUFPLElBQUksSUFBSSxJQUFJLENBQUE7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBc0IsRUFBRSxJQUFzQjtJQUN4RSxPQUFPLElBQUksR0FBRyxJQUFJLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUFzQixFQUFFLElBQXNCO0lBQ2pGLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQTtBQUNyQixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "0.222.0",
3
+ "version": "0.223.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -18,17 +18,17 @@
18
18
  "proper-lockfile": "^4.1.2",
19
19
  "pure-rand": "6.0.4",
20
20
  "redlock": "^4.2.0",
21
- "@effect-app/core": "0.156.0",
22
- "@effect-app/fluent-extensions": "0.150.0",
23
- "effect-app": "0.189.0",
24
- "@effect-app/schema": "0.210.0",
25
- "@effect-app/infra-adapters": "0.144.0"
21
+ "@effect-app/fluent-extensions": "0.151.0",
22
+ "@effect-app/core": "0.156.1",
23
+ "@effect-app/infra-adapters": "0.144.1",
24
+ "effect-app": "0.189.1",
25
+ "@effect-app/schema": "0.210.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@babel/cli": "^7.23.9",
29
29
  "@sentry/node": "^7.107.0",
30
30
  "@types/express": "^4.17.21",
31
- "@types/node": "~20.11.27",
31
+ "@types/node": "~20.11.28",
32
32
  "@types/proper-lockfile": "^4.1.4",
33
33
  "@types/redis": "^2.8.32",
34
34
  "@types/redlock": "^4.0.7",
@@ -39,12 +39,12 @@
39
39
  "redis": "^3.1.2",
40
40
  "ts-node": "^10.9.2",
41
41
  "typescript": "^5.4.2",
42
- "vitest": "^1.3.1"
42
+ "vitest": "^1.4.0"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "express": "^4.18.3",
46
- "@effect/platform": "^0.48.7",
47
- "@effect/schema": "^0.64.4",
46
+ "@effect/platform": "^0.48.8",
47
+ "@effect/schema": "^0.64.5",
48
48
  "effect": "^2.4.7"
49
49
  },
50
50
  "typesVersions": {
@@ -5,7 +5,6 @@ import { Effect, ReadonlyArray } from "effect-app"
5
5
  import type { NonEmptyArray } from "effect-app"
6
6
  import { type FixEnv, runTerm } from "effect-app/Pure"
7
7
  import { NotFoundError } from "../../errors.js"
8
- import type { PersistenceModelType } from "../../services/Store.js"
9
8
  import type { RepositoryBaseC } from "../RepositoryBase.js"
10
9
  import { AnyPureDSL } from "./dsl.js"
11
10
  import type { Repository } from "./service.js"
@@ -15,11 +14,11 @@ import type { Repository } from "./service.js"
15
14
  */
16
15
  export function get<
17
16
  T extends { id: unknown },
18
- PM extends PersistenceModelType<string>,
17
+ Encoded extends { id: string },
19
18
  Evt,
20
19
  ItemType extends string
21
20
  >(
22
- self: RepositoryBaseC<T, PM, Evt, ItemType>,
21
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
23
22
  id: T["id"]
24
23
  ) {
25
24
  return self
@@ -32,10 +31,10 @@ export function get<
32
31
  */
33
32
  export function log<
34
33
  T extends { id: unknown },
35
- PM extends PersistenceModelType<string>,
34
+ Encoded extends { id: string },
36
35
  Evt,
37
36
  ItemType extends string
38
- >(_: RepositoryBaseC<T, PM, Evt, ItemType>) {
37
+ >(_: RepositoryBaseC<T, Encoded, Evt, ItemType>) {
39
38
  return (evt: Evt) => AnyPureDSL.log(evt)
40
39
  }
41
40
 
@@ -44,10 +43,10 @@ export function log<
44
43
  */
45
44
  export function byIdAndSaveWithPure<
46
45
  T extends { id: unknown },
47
- PM extends PersistenceModelType<string>,
46
+ Encoded extends { id: string },
48
47
  Evt,
49
48
  ItemType extends string
50
- >(self: RepositoryBaseC<T, PM, Evt, ItemType>, id: T["id"]) {
49
+ >(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, id: T["id"]) {
51
50
  return <R, A, E, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) =>
52
51
  get(self, id).pipe(Effect.flatMap((item) => saveWithPure_(self, item, pure)))
53
52
  }
@@ -58,10 +57,10 @@ export function byIdAndSaveWithPure<
58
57
  */
59
58
  export function handleByIdAndSaveWithPure<
60
59
  T extends { id: unknown },
61
- PM extends PersistenceModelType<string>,
60
+ Encoded extends { id: string },
62
61
  Evt,
63
62
  ItemType extends string
64
- >(self: RepositoryBaseC<T, PM, Evt, ItemType>) {
63
+ >(self: RepositoryBaseC<T, Encoded, Evt, ItemType>) {
65
64
  return <Req extends { id: T["id"] }, Context, R, A, E, S2 extends T>(
66
65
  pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>
67
66
  ) =>
@@ -74,7 +73,7 @@ export function handleByIdAndSaveWithPure<
74
73
  export function saveManyWithPure_<
75
74
  R,
76
75
  T extends { id: unknown },
77
- PM extends PersistenceModelType<string>,
76
+ Encoded extends { id: string },
78
77
  A,
79
78
  E,
80
79
  Evt,
@@ -82,7 +81,7 @@ export function saveManyWithPure_<
82
81
  S2 extends T,
83
82
  ItemType extends string
84
83
  >(
85
- self: RepositoryBaseC<T, PM, Evt, ItemType>,
84
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
86
85
  items: Iterable<S1>,
87
86
  pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>
88
87
  ) {
@@ -98,7 +97,7 @@ export function saveManyWithPure_<
98
97
  export function saveWithPure_<
99
98
  R,
100
99
  T extends { id: unknown },
101
- PM extends PersistenceModelType<string>,
100
+ Encoded extends { id: string },
102
101
  A,
103
102
  E,
104
103
  Evt,
@@ -106,7 +105,7 @@ export function saveWithPure_<
106
105
  S2 extends T,
107
106
  ItemType extends string
108
107
  >(
109
- self: RepositoryBaseC<T, PM, Evt, ItemType>,
108
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
110
109
  item: S1,
111
110
  pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>
112
111
  ) {
@@ -120,7 +119,7 @@ export function saveWithPure_<
120
119
 
121
120
  export function saveAllWithEffectInt<
122
121
  T extends { id: unknown },
123
- PM extends PersistenceModelType<string>,
122
+ Encoded extends { id: string },
124
123
  P extends T,
125
124
  Evt,
126
125
  ItemType extends string,
@@ -128,7 +127,7 @@ export function saveAllWithEffectInt<
128
127
  E,
129
128
  A
130
129
  >(
131
- self: RepositoryBaseC<T, PM, Evt, ItemType>,
130
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
132
131
  gen: Effect<readonly [Iterable<P>, Iterable<Evt>, A], E, R>
133
132
  ) {
134
133
  return Effect.flatMap(gen, ([items, events, a]) => self.saveAndPublish(items, events).pipe(Effect.map(() => a)))
@@ -139,10 +138,10 @@ export function saveAllWithEffectInt<
139
138
  */
140
139
  export function saveManyWithPureBatched<
141
140
  T extends { id: unknown },
142
- PM extends PersistenceModelType<string>,
141
+ Encoded extends { id: string },
143
142
  Evt,
144
143
  ItemType extends string
145
- >(self: RepositoryBaseC<T, PM, Evt, ItemType>, batchSize = 100) {
144
+ >(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, batchSize = 100) {
146
145
  return <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>) =>
147
146
  (items: Iterable<S1>) => saveManyWithPureBatched_(self, items, pure, batchSize)
148
147
  }
@@ -153,7 +152,7 @@ export function saveManyWithPureBatched<
153
152
  export function saveManyWithPureBatched_<
154
153
  R,
155
154
  T extends { id: unknown },
156
- PM extends PersistenceModelType<string>,
155
+ Encoded extends { id: string },
157
156
  A,
158
157
  E,
159
158
  Evt,
@@ -161,7 +160,7 @@ export function saveManyWithPureBatched_<
161
160
  S2 extends T,
162
161
  ItemType extends string
163
162
  >(
164
- self: RepositoryBaseC<T, PM, Evt, ItemType>,
163
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
165
164
  items: Iterable<S1>,
166
165
  pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>,
167
166
  batchSize = 100
@@ -181,11 +180,11 @@ export function saveManyWithPureBatched_<
181
180
  */
182
181
  export function save<
183
182
  T extends { id: unknown },
184
- PM extends PersistenceModelType<string>,
183
+ Encoded extends { id: string },
185
184
  Evt,
186
185
  ItemType extends string
187
186
  >(
188
- self: RepositoryBaseC<T, PM, Evt, ItemType>
187
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType>
189
188
  ) {
190
189
  return (...items: NonEmptyArray<T>) => self.saveAndPublish(items)
191
190
  }
@@ -195,11 +194,11 @@ export function save<
195
194
  */
196
195
  export function saveWithEvents<
197
196
  T extends { id: unknown },
198
- PM extends PersistenceModelType<string>,
197
+ Encoded extends { id: string },
199
198
  Evt,
200
199
  ItemType extends string
201
200
  >(
202
- self: RepositoryBaseC<T, PM, Evt, ItemType>
201
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType>
203
202
  ) {
204
203
  return (events: Iterable<Evt>) => (...items: NonEmptyArray<T>) => self.saveAndPublish(items, events)
205
204
  }
@@ -211,11 +210,11 @@ export function itemUpdateWithEffect<
211
210
  R,
212
211
  E,
213
212
  T extends { id: string },
214
- PM extends PersistenceModelType<string>,
213
+ Encoded extends { id: string },
215
214
  Evt,
216
215
  ItemType extends string
217
216
  >(
218
- repo: RepositoryBaseC<T, PM, Evt, ItemType>,
217
+ repo: RepositoryBaseC<T, Encoded, Evt, ItemType>,
219
218
  id: T["id"],
220
219
  mod: (item: T) => Effect<T, E, R>
221
220
  ) {
@@ -227,11 +226,11 @@ export function itemUpdateWithEffect<
227
226
  */
228
227
  export function itemUpdate<
229
228
  T extends { id: string },
230
- PM extends PersistenceModelType<string>,
229
+ Encoded extends { id: string },
231
230
  Evt,
232
231
  ItemType extends string
233
232
  >(
234
- repo: RepositoryBaseC<T, PM, Evt, ItemType>,
233
+ repo: RepositoryBaseC<T, Encoded, Evt, ItemType>,
235
234
  id: T["id"],
236
235
  mod: (item: T) => T
237
236
  ) {
@@ -248,11 +247,11 @@ export function itemUpdate<
248
247
  */
249
248
  export function removeById<
250
249
  T extends { id: unknown },
251
- PM extends PersistenceModelType<string>,
250
+ Encoded extends { id: string },
252
251
  Evt,
253
252
  ItemType extends string
254
253
  >(
255
- self: Repository<T, PM, Evt, ItemType>,
254
+ self: Repository<T, Encoded, Evt, ItemType>,
256
255
  id: T["id"]
257
256
  ) {
258
257
  return get(self, id).pipe(Effect.flatMap((_) => self.removeAndPublish([_])))
@@ -1,12 +1,11 @@
1
1
  import type { RepositoryBaseC } from "../RepositoryBase.js"
2
- import type { PersistenceModelType } from "../Store.js"
3
2
 
4
3
  /**
5
4
  * @tsplus type Repository
6
5
  */
7
6
  export interface Repository<
8
7
  T extends { id: unknown },
9
- PM extends PersistenceModelType<string>,
8
+ Encoded extends { id: string },
10
9
  Evt,
11
10
  ItemType extends string
12
- > extends RepositoryBaseC<T, PM, Evt, ItemType> {}
11
+ > extends RepositoryBaseC<T, Encoded, Evt, ItemType> {}