@voidhash/mimic-effect 1.0.0-beta.1 → 1.0.0-beta.10

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 (142) hide show
  1. package/.turbo/turbo-build.log +116 -74
  2. package/dist/ColdStorage.cjs +9 -5
  3. package/dist/ColdStorage.d.cts.map +1 -1
  4. package/dist/ColdStorage.d.mts.map +1 -1
  5. package/dist/ColdStorage.mjs +9 -5
  6. package/dist/ColdStorage.mjs.map +1 -1
  7. package/dist/DocumentInstance.cjs +263 -0
  8. package/dist/DocumentInstance.d.cts +78 -0
  9. package/dist/DocumentInstance.d.cts.map +1 -0
  10. package/dist/DocumentInstance.d.mts +78 -0
  11. package/dist/DocumentInstance.d.mts.map +1 -0
  12. package/dist/DocumentInstance.mjs +264 -0
  13. package/dist/DocumentInstance.mjs.map +1 -0
  14. package/dist/Errors.cjs +10 -1
  15. package/dist/Errors.d.cts +18 -3
  16. package/dist/Errors.d.cts.map +1 -1
  17. package/dist/Errors.d.mts +18 -3
  18. package/dist/Errors.d.mts.map +1 -1
  19. package/dist/Errors.mjs +9 -1
  20. package/dist/Errors.mjs.map +1 -1
  21. package/dist/HotStorage.cjs +39 -12
  22. package/dist/HotStorage.d.cts +17 -1
  23. package/dist/HotStorage.d.cts.map +1 -1
  24. package/dist/HotStorage.d.mts +17 -1
  25. package/dist/HotStorage.d.mts.map +1 -1
  26. package/dist/HotStorage.mjs +39 -12
  27. package/dist/HotStorage.mjs.map +1 -1
  28. package/dist/Metrics.cjs +29 -1
  29. package/dist/Metrics.d.cts +5 -0
  30. package/dist/Metrics.d.cts.map +1 -1
  31. package/dist/Metrics.d.mts +5 -0
  32. package/dist/Metrics.d.mts.map +1 -1
  33. package/dist/Metrics.mjs +26 -1
  34. package/dist/Metrics.mjs.map +1 -1
  35. package/dist/MimicClusterServerEngine.cjs +44 -139
  36. package/dist/MimicClusterServerEngine.d.cts.map +1 -1
  37. package/dist/MimicClusterServerEngine.d.mts +1 -1
  38. package/dist/MimicClusterServerEngine.d.mts.map +1 -1
  39. package/dist/MimicClusterServerEngine.mjs +46 -141
  40. package/dist/MimicClusterServerEngine.mjs.map +1 -1
  41. package/dist/MimicServer.cjs +20 -20
  42. package/dist/MimicServer.d.cts.map +1 -1
  43. package/dist/MimicServer.d.mts.map +1 -1
  44. package/dist/MimicServer.mjs +20 -20
  45. package/dist/MimicServer.mjs.map +1 -1
  46. package/dist/MimicServerEngine.cjs +92 -11
  47. package/dist/MimicServerEngine.d.cts +12 -4
  48. package/dist/MimicServerEngine.d.cts.map +1 -1
  49. package/dist/MimicServerEngine.d.mts +12 -4
  50. package/dist/MimicServerEngine.d.mts.map +1 -1
  51. package/dist/MimicServerEngine.mjs +94 -13
  52. package/dist/MimicServerEngine.mjs.map +1 -1
  53. package/dist/PresenceManager.cjs +5 -5
  54. package/dist/PresenceManager.d.cts.map +1 -1
  55. package/dist/PresenceManager.d.mts.map +1 -1
  56. package/dist/PresenceManager.mjs +5 -5
  57. package/dist/PresenceManager.mjs.map +1 -1
  58. package/dist/Protocol.d.cts +1 -1
  59. package/dist/Protocol.d.mts +1 -1
  60. package/dist/Types.d.cts +9 -2
  61. package/dist/Types.d.cts.map +1 -1
  62. package/dist/Types.d.mts +9 -2
  63. package/dist/Types.d.mts.map +1 -1
  64. package/dist/index.cjs +5 -6
  65. package/dist/index.d.cts +3 -3
  66. package/dist/index.d.mts +3 -3
  67. package/dist/index.mjs +3 -3
  68. package/dist/testing/ColdStorageTestSuite.cjs +508 -0
  69. package/dist/testing/ColdStorageTestSuite.d.cts +36 -0
  70. package/dist/testing/ColdStorageTestSuite.d.cts.map +1 -0
  71. package/dist/testing/ColdStorageTestSuite.d.mts +36 -0
  72. package/dist/testing/ColdStorageTestSuite.d.mts.map +1 -0
  73. package/dist/testing/ColdStorageTestSuite.mjs +508 -0
  74. package/dist/testing/ColdStorageTestSuite.mjs.map +1 -0
  75. package/dist/testing/FailingStorage.cjs +162 -0
  76. package/dist/testing/FailingStorage.d.cts +43 -0
  77. package/dist/testing/FailingStorage.d.cts.map +1 -0
  78. package/dist/testing/FailingStorage.d.mts +43 -0
  79. package/dist/testing/FailingStorage.d.mts.map +1 -0
  80. package/dist/testing/FailingStorage.mjs +163 -0
  81. package/dist/testing/FailingStorage.mjs.map +1 -0
  82. package/dist/testing/HotStorageTestSuite.cjs +820 -0
  83. package/dist/testing/HotStorageTestSuite.d.cts +42 -0
  84. package/dist/testing/HotStorageTestSuite.d.cts.map +1 -0
  85. package/dist/testing/HotStorageTestSuite.d.mts +42 -0
  86. package/dist/testing/HotStorageTestSuite.d.mts.map +1 -0
  87. package/dist/testing/HotStorageTestSuite.mjs +820 -0
  88. package/dist/testing/HotStorageTestSuite.mjs.map +1 -0
  89. package/dist/testing/StorageIntegrationTestSuite.cjs +487 -0
  90. package/dist/testing/StorageIntegrationTestSuite.d.cts +37 -0
  91. package/dist/testing/StorageIntegrationTestSuite.d.cts.map +1 -0
  92. package/dist/testing/StorageIntegrationTestSuite.d.mts +37 -0
  93. package/dist/testing/StorageIntegrationTestSuite.d.mts.map +1 -0
  94. package/dist/testing/StorageIntegrationTestSuite.mjs +487 -0
  95. package/dist/testing/StorageIntegrationTestSuite.mjs.map +1 -0
  96. package/dist/testing/assertions.cjs +117 -0
  97. package/dist/testing/assertions.mjs +112 -0
  98. package/dist/testing/assertions.mjs.map +1 -0
  99. package/dist/testing/index.cjs +14 -0
  100. package/dist/testing/index.d.cts +6 -0
  101. package/dist/testing/index.d.mts +6 -0
  102. package/dist/testing/index.mjs +7 -0
  103. package/dist/testing/types.cjs +15 -0
  104. package/dist/testing/types.d.cts +90 -0
  105. package/dist/testing/types.d.cts.map +1 -0
  106. package/dist/testing/types.d.mts +90 -0
  107. package/dist/testing/types.d.mts.map +1 -0
  108. package/dist/testing/types.mjs +16 -0
  109. package/dist/testing/types.mjs.map +1 -0
  110. package/package.json +8 -3
  111. package/src/ColdStorage.ts +21 -12
  112. package/src/DocumentInstance.ts +527 -0
  113. package/src/Errors.ts +15 -1
  114. package/src/HotStorage.ts +115 -24
  115. package/src/Metrics.ts +30 -0
  116. package/src/MimicClusterServerEngine.ts +120 -275
  117. package/src/MimicServer.ts +83 -75
  118. package/src/MimicServerEngine.ts +230 -30
  119. package/src/PresenceManager.ts +44 -34
  120. package/src/Types.ts +9 -2
  121. package/src/index.ts +5 -35
  122. package/src/testing/ColdStorageTestSuite.ts +589 -0
  123. package/src/testing/FailingStorage.ts +338 -0
  124. package/src/testing/HotStorageTestSuite.ts +1105 -0
  125. package/src/testing/StorageIntegrationTestSuite.ts +736 -0
  126. package/src/testing/assertions.ts +188 -0
  127. package/src/testing/index.ts +83 -0
  128. package/src/testing/types.ts +100 -0
  129. package/tests/ColdStorage.test.ts +8 -120
  130. package/tests/DocumentInstance.test.ts +669 -0
  131. package/tests/HotStorage.test.ts +7 -126
  132. package/tests/StorageIntegration.test.ts +259 -0
  133. package/tsdown.config.ts +1 -1
  134. package/dist/DocumentManager.cjs +0 -229
  135. package/dist/DocumentManager.d.cts +0 -59
  136. package/dist/DocumentManager.d.cts.map +0 -1
  137. package/dist/DocumentManager.d.mts +0 -59
  138. package/dist/DocumentManager.d.mts.map +0 -1
  139. package/dist/DocumentManager.mjs +0 -227
  140. package/dist/DocumentManager.mjs.map +0 -1
  141. package/src/DocumentManager.ts +0 -506
  142. package/tests/DocumentManager.test.ts +0 -335
@@ -1,112 +1,154 @@
1
1
 
2
- > @voidhash/mimic-effect@1.0.0-beta.1 build /home/runner/work/mimic/mimic/packages/mimic-effect
2
+ > @voidhash/mimic-effect@1.0.0-beta.10 build /home/runner/work/mimic/mimic/packages/mimic-effect
3
3
  > tsdown
4
4
 
5
5
  ℹ tsdown v0.18.2 powered by rolldown v1.0.0-beta.55
6
6
  ℹ config file: /home/runner/work/mimic/mimic/packages/mimic-effect/tsdown.config.ts
7
- ℹ entry: src/index.ts
7
+ ℹ entry: src/index.ts, src/testing/index.ts
8
8
  ℹ target: es2017
9
9
  ℹ tsconfig: tsconfig.json
10
10
  ℹ Build start
11
- ℹ [CJS] dist/index.cjs  2.37 kB │ gzip: 0.49 kB
12
- ℹ [CJS] dist/MimicClusterServerEngine.cjs 18.10 kB │ gzip: 4.15 kB
13
- ℹ [CJS] dist/MimicServer.cjs 10.10 kB │ gzip: 2.74 kB
14
- ℹ [CJS] dist/DocumentManager.cjs  9.09 kB │ gzip: 2.24 kB
15
- ℹ [CJS] dist/MimicServerEngine.cjs  4.23 kB │ gzip: 1.34 kB
11
+ ℹ [CJS] dist/index.cjs  2.28 kB │ gzip: 0.49 kB
12
+ ℹ [CJS] dist/testing/index.cjs  0.95 kB │ gzip: 0.22 kB
13
+ ℹ [CJS] dist/testing/HotStorageTestSuite.cjs 38.03 kB │ gzip: 5.13 kB
14
+ ℹ [CJS] dist/testing/StorageIntegrationTestSuite.cjs 20.68 kB │ gzip: 3.67 kB
15
+ ℹ [CJS] dist/testing/ColdStorageTestSuite.cjs 18.14 kB │ gzip: 3.22 kB
16
+ ℹ [CJS] dist/MimicClusterServerEngine.cjs 15.02 kB │ gzip: 3.53 kB
17
+ ℹ [CJS] dist/DocumentInstance.cjs 10.46 kB │ gzip: 2.74 kB
18
+ ℹ [CJS] dist/MimicServer.cjs 10.37 kB │ gzip: 2.84 kB
19
+ ℹ [CJS] dist/MimicServerEngine.cjs  8.30 kB │ gzip: 2.21 kB
20
+ ℹ [CJS] dist/testing/FailingStorage.cjs  6.91 kB │ gzip: 1.53 kB
21
+ ℹ [CJS] dist/Metrics.cjs  4.47 kB │ gzip: 1.08 kB
22
+ ℹ [CJS] dist/HotStorage.cjs  3.86 kB │ gzip: 1.27 kB
23
+ ℹ [CJS] dist/PresenceManager.cjs  3.81 kB │ gzip: 1.03 kB
16
24
  ℹ [CJS] dist/Protocol.cjs  3.78 kB │ gzip: 1.14 kB
17
- ℹ [CJS] dist/PresenceManager.cjs  3.72 kB │ gzip: 1.00 kB
18
- ℹ [CJS] dist/Metrics.cjs  3.49 kB │ gzip: 0.88 kB
19
- ℹ [CJS] dist/HotStorage.cjs  2.63 kB │ gzip: 0.94 kB
25
+ ℹ [CJS] dist/testing/assertions.cjs  3.74 kB │ gzip: 1.16 kB
20
26
  ℹ [CJS] dist/MimicAuthService.cjs  2.27 kB │ gzip: 0.88 kB
21
- ℹ [CJS] dist/ColdStorage.cjs  1.91 kB │ gzip: 0.77 kB
22
- ℹ [CJS] dist/Errors.cjs  1.63 kB │ gzip: 0.49 kB
27
+ ℹ [CJS] dist/ColdStorage.cjs  2.09 kB │ gzip: 0.82 kB
28
+ ℹ [CJS] dist/Errors.cjs  1.98 kB │ gzip: 0.61 kB
23
29
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.cjs  0.95 kB │ gzip: 0.43 kB
24
30
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.cjs  0.53 kB │ gzip: 0.29 kB
25
31
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.cjs  0.52 kB │ gzip: 0.32 kB
26
32
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.cjs  0.40 kB │ gzip: 0.24 kB
27
33
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.cjs  0.37 kB │ gzip: 0.23 kB
28
34
  ℹ [CJS] dist/_virtual/rolldown_runtime.cjs  0.36 kB │ gzip: 0.25 kB
29
- ℹ [CJS] 18 files, total: 66.45 kB
30
- ℹ [CJS] dist/Protocol.d.cts.map 1.57 kB │ gzip: 0.70 kB
31
- ℹ [CJS] dist/Types.d.cts.map 1.41 kB │ gzip: 0.65 kB
32
- ℹ [CJS] dist/MimicServerEngine.d.cts.map 1.05 kB │ gzip: 0.48 kB
33
- ℹ [CJS] dist/Errors.d.cts.map 0.72 kB │ gzip: 0.34 kB
34
- ℹ [CJS] dist/ColdStorage.d.cts.map 0.70 kB │ gzip: 0.37 kB
35
- ℹ [CJS] dist/HotStorage.d.cts.map 0.64 kB │ gzip: 0.35 kB
36
- ℹ [CJS] dist/MimicAuthService.d.cts.map 0.61 kB │ gzip: 0.35 kB
37
- ℹ [CJS] dist/DocumentManager.d.cts.map 0.56 kB │ gzip: 0.33 kB
38
- ℹ [CJS] dist/PresenceManager.d.cts.map 0.45 kB │ gzip: 0.27 kB
39
- ℹ [CJS] dist/MimicClusterServerEngine.d.cts.map 0.25 kB │ gzip: 0.19 kB
40
- ℹ [CJS] dist/MimicServer.d.cts.map 0.22 kB │ gzip: 0.16 kB
41
- ℹ [CJS] dist/Metrics.d.cts.map 0.12 kB │ gzip: 0.12 kB
42
- ℹ [CJS] dist/index.d.cts 2.23 kB │ gzip: 0.56 kB
43
- ℹ [CJS] dist/Protocol.d.cts 5.86 kB │ gzip: 1.34 kB
44
- ℹ [CJS] dist/Types.d.cts 5.47 kB │ gzip: 1.54 kB
45
- ℹ [CJS] dist/Errors.d.cts 4.10 kB │ gzip: 0.85 kB
46
- ℹ [CJS] dist/MimicServerEngine.d.cts 3.15 kB │ gzip: 1.00 kB
47
- ℹ [CJS] dist/MimicAuthService.d.cts 2.70 kB │ gzip: 1.04 kB
48
- ℹ [CJS] dist/DocumentManager.d.cts 2.23 kB │ gzip: 0.76 kB
49
- ℹ [CJS] dist/HotStorage.d.cts 1.95 kB │ gzip: 0.83 kB
50
- ℹ [CJS] dist/ColdStorage.d.cts 1.74 kB │ gzip: 0.70 kB
51
- ℹ [CJS] dist/PresenceManager.d.cts 1.60 kB │ gzip: 0.63 kB
52
- ℹ [CJS] dist/Metrics.d.cts 1.37 kB │ gzip: 0.36 kB
53
- ℹ [CJS] dist/MimicClusterServerEngine.d.cts 0.82 kB │ gzip: 0.33 kB
54
- ℹ [CJS] dist/MimicServer.d.cts 0.74 kB │ gzip: 0.31 kB
55
- ℹ [CJS] 25 files, total: 42.28 kB
56
- ✔ Build complete in 6497ms
57
- ℹ [ESM] dist/index.mjs  1.34 kB │ gzip: 0.34 kB
58
- ℹ [ESM] dist/MimicClusterServerEngine.mjs.map 35.37 kB │ gzip: 8.25 kB
59
- ℹ [ESM] dist/DocumentManager.mjs.map 21.77 kB │ gzip: 5.24 kB
60
- ℹ [ESM] dist/MimicServer.mjs.map 20.88 kB │ gzip: 5.46 kB
61
- ℹ [ESM] dist/MimicClusterServerEngine.mjs 16.72 kB │ gzip: 4.17 kB
62
- ℹ [ESM] dist/MimicServerEngine.mjs.map  9.73 kB │ gzip: 2.68 kB
63
- ℹ [ESM] dist/MimicServer.mjs  9.63 kB │ gzip: 2.78 kB
35
+ ℹ [CJS] dist/testing/types.cjs  0.34 kB │ gzip: 0.23 kB
36
+ ℹ [CJS] 25 files, total: 160.61 kB
37
+ ℹ [CJS] dist/Protocol.d.cts.map 1.57 kB │ gzip: 0.70 kB
38
+ ℹ [CJS] dist/Types.d.cts.map 1.44 kB │ gzip: 0.66 kB
39
+ ℹ [CJS] dist/DocumentInstance.d.cts.map 1.26 kB │ gzip: 0.57 kB
40
+ ℹ [CJS] dist/MimicServerEngine.d.cts.map 0.97 kB │ gzip: 0.49 kB
41
+ ℹ [CJS] dist/ColdStorage.d.cts.map 0.70 kB │ gzip: 0.37 kB
42
+ ℹ [CJS] dist/HotStorage.d.cts.map 0.67 kB │ gzip: 0.35 kB
43
+ ℹ [CJS] dist/MimicAuthService.d.cts.map 0.61 kB │ gzip: 0.35 kB
44
+ ℹ [CJS] dist/Errors.d.cts.map 0.60 kB │ gzip: 0.32 kB
45
+ ℹ [CJS] dist/testing/HotStorageTestSuite.d.cts.map 0.48 kB │ gzip: 0.29 kB
46
+ ℹ [CJS] dist/PresenceManager.d.cts.map 0.45 kB │ gzip: 0.27 kB
47
+ ℹ [CJS] dist/testing/types.d.cts.map 0.38 kB │ gzip: 0.23 kB
48
+ ℹ [CJS] dist/testing/ColdStorageTestSuite.d.cts.map 0.35 kB │ gzip: 0.25 kB
49
+ ℹ [CJS] dist/testing/StorageIntegrationTestSuite.d.cts.map 0.32 kB │ gzip: 0.21 kB
50
+ ℹ [CJS] dist/testing/FailingStorage.d.cts.map 0.26 kB │ gzip: 0.18 kB
51
+ ℹ [CJS] dist/MimicClusterServerEngine.d.cts.map 0.25 kB │ gzip: 0.19 kB
52
+ ℹ [CJS] dist/MimicServer.d.cts.map 0.22 kB │ gzip: 0.16 kB
53
+ ℹ [CJS] dist/Metrics.d.cts.map 0.12 kB │ gzip: 0.12 kB
54
+ ℹ [CJS] dist/index.d.cts 2.14 kB │ gzip: 0.53 kB
55
+ ℹ [CJS] dist/testing/index.d.cts 0.91 kB │ gzip: 0.25 kB
56
+ ℹ [CJS] dist/Protocol.d.cts 5.84 kB │ gzip: 1.34 kB
57
+ ℹ [CJS] dist/Types.d.cts 5.72 kB │ gzip: 1.61 kB
58
+ ℹ [CJS] dist/Errors.d.cts 4.86 kB │ gzip: 1.02 kB
59
+ ℹ [CJS] dist/MimicServerEngine.d.cts 3.60 kB │ gzip: 1.09 kB
60
+ ℹ [CJS] dist/DocumentInstance.d.cts 3.07 kB │ gzip: 1.00 kB
61
+ ℹ [CJS] dist/testing/types.d.cts 2.76 kB │ gzip: 1.15 kB
62
+ ℹ [CJS] dist/HotStorage.d.cts 2.72 kB │ gzip: 1.08 kB
63
+ ℹ [CJS] dist/MimicAuthService.d.cts 2.70 kB │ gzip: 1.04 kB
64
+ ℹ [CJS] dist/testing/HotStorageTestSuite.d.cts 1.93 kB │ gzip: 0.57 kB
65
+ ℹ [CJS] dist/ColdStorage.d.cts 1.74 kB │ gzip: 0.70 kB
66
+ ℹ [CJS] dist/Metrics.d.cts 1.65 kB │ gzip: 0.40 kB
67
+ ℹ [CJS] dist/PresenceManager.d.cts 1.60 kB │ gzip: 0.63 kB
68
+ ℹ [CJS] dist/testing/ColdStorageTestSuite.d.cts 1.55 kB │ gzip: 0.50 kB
69
+ ℹ [CJS] dist/testing/FailingStorage.d.cts 1.44 kB │ gzip: 0.46 kB
70
+ ℹ [CJS] dist/testing/StorageIntegrationTestSuite.d.cts 1.43 kB │ gzip: 0.57 kB
71
+ ℹ [CJS] dist/MimicClusterServerEngine.d.cts 0.82 kB │ gzip: 0.33 kB
72
+ ℹ [CJS] dist/MimicServer.d.cts 0.74 kB │ gzip: 0.31 kB
73
+ ℹ [CJS] 36 files, total: 57.85 kB
74
+ ✔ Build complete in 5947ms
75
+ ℹ [ESM] dist/index.mjs  1.29 kB │ gzip: 0.34 kB
76
+ ℹ [ESM] dist/testing/index.mjs  0.60 kB │ gzip: 0.19 kB
77
+ ℹ [ESM] dist/testing/HotStorageTestSuite.mjs.map 63.42 kB │ gzip: 8.61 kB
78
+ ℹ [ESM] dist/testing/StorageIntegrationTestSuite.mjs.map 35.60 kB │ gzip: 6.44 kB
79
+ ℹ [ESM] dist/testing/HotStorageTestSuite.mjs 34.21 kB │ gzip: 5.06 kB
80
+ ℹ [ESM] dist/testing/ColdStorageTestSuite.mjs.map 31.92 kB │ gzip: 5.21 kB
81
+ ℹ [ESM] dist/MimicClusterServerEngine.mjs.map 28.95 kB │ gzip: 6.88 kB
82
+ ℹ [ESM] dist/DocumentInstance.mjs.map 23.70 kB │ gzip: 6.13 kB
83
+ ℹ [ESM] dist/MimicServer.mjs.map 21.35 kB │ gzip: 5.64 kB
84
+ ℹ [ESM] dist/MimicServerEngine.mjs.map 19.25 kB │ gzip: 4.87 kB
85
+ ℹ [ESM] dist/testing/StorageIntegrationTestSuite.mjs 18.49 kB │ gzip: 3.63 kB
86
+ ℹ [ESM] dist/testing/ColdStorageTestSuite.mjs 16.50 kB │ gzip: 3.21 kB
87
+ ℹ [ESM] dist/testing/FailingStorage.mjs.map 15.60 kB │ gzip: 3.07 kB
88
+ ℹ [ESM] dist/MimicClusterServerEngine.mjs 13.93 kB │ gzip: 3.55 kB
89
+ ℹ [ESM] dist/HotStorage.mjs.map 10.81 kB │ gzip: 3.04 kB
90
+ ℹ [ESM] dist/DocumentInstance.mjs 10.06 kB │ gzip: 2.75 kB
91
+ ℹ [ESM] dist/MimicServer.mjs  9.90 kB │ gzip: 2.88 kB
92
+ ℹ [ESM] dist/PresenceManager.mjs.map  9.38 kB │ gzip: 2.38 kB
64
93
  ℹ [ESM] dist/Protocol.mjs.map  9.18 kB │ gzip: 2.15 kB
65
- ℹ [ESM] dist/PresenceManager.mjs.map  9.11 kB │ gzip: 2.27 kB
66
- ℹ [ESM] dist/DocumentManager.mjs  8.49 kB │ gzip: 2.26 kB
67
- ℹ [ESM] dist/HotStorage.mjs.map  6.48 kB │ gzip: 1.93 kB
94
+ ℹ [ESM] dist/MimicServerEngine.mjs  7.82 kB │ gzip: 2.23 kB
95
+ ℹ [ESM] dist/testing/assertions.mjs.map  7.31 kB │ gzip: 2.01 kB
96
+ ℹ [ESM] dist/testing/FailingStorage.mjs  6.49 kB │ gzip: 1.52 kB
97
+ ℹ [ESM] dist/Metrics.mjs.map  6.35 kB │ gzip: 1.48 kB
68
98
  ℹ [ESM] dist/MimicAuthService.mjs.map  6.09 kB │ gzip: 1.85 kB
69
- ℹ [ESM] dist/Metrics.mjs.map  5.25 kB │ gzip: 1.22 kB
70
- ℹ [ESM] dist/ColdStorage.mjs.map  4.90 kB │ gzip: 1.52 kB
71
- ℹ [ESM] dist/MimicServerEngine.mjs  4.10 kB │ gzip: 1.35 kB
72
- ℹ [ESM] dist/Errors.mjs.map  3.46 kB │ gzip: 0.88 kB
73
- ℹ [ESM] dist/PresenceManager.mjs  3.39 kB │ gzip: 1.01 kB
99
+ ℹ [ESM] dist/ColdStorage.mjs.map  5.35 kB │ gzip: 1.64 kB
100
+ ℹ [ESM] dist/Errors.mjs.map  4.00 kB │ gzip: 1.05 kB
101
+ ℹ [ESM] dist/Metrics.mjs  3.81 kB │ gzip: 1.05 kB
102
+ ℹ [ESM] dist/HotStorage.mjs  3.73 kB │ gzip: 1.27 kB
103
+ ℹ [ESM] dist/PresenceManager.mjs  3.48 kB │ gzip: 1.04 kB
104
+ ℹ [ESM] dist/testing/assertions.mjs  3.46 kB │ gzip: 1.15 kB
74
105
  ℹ [ESM] dist/Protocol.mjs  3.35 kB │ gzip: 1.06 kB
75
- ℹ [ESM] dist/Metrics.mjs  2.95 kB │ gzip: 0.85 kB
76
- ℹ [ESM] dist/HotStorage.mjs  2.56 kB │ gzip: 0.96 kB
106
+ ℹ [ESM] dist/testing/types.mjs.map  3.22 kB │ gzip: 1.15 kB
77
107
  ℹ [ESM] dist/MimicAuthService.mjs  2.23 kB │ gzip: 0.88 kB
78
- ℹ [ESM] dist/ColdStorage.mjs  1.85 kB │ gzip: 0.79 kB
108
+ ℹ [ESM] dist/ColdStorage.mjs  2.01 kB │ gzip: 0.83 kB
109
+ ℹ [ESM] dist/Errors.mjs  1.73 kB │ gzip: 0.61 kB
79
110
  ℹ [ESM] dist/Protocol.d.mts.map  1.57 kB │ gzip: 0.70 kB
80
- ℹ [ESM] dist/Errors.mjs  1.42 kB │ gzip: 0.50 kB
81
- ℹ [ESM] dist/Types.d.mts.map  1.41 kB │ gzip: 0.65 kB
82
- ℹ [ESM] dist/MimicServerEngine.d.mts.map  1.05 kB │ gzip: 0.48 kB
111
+ ℹ [ESM] dist/Types.d.mts.map  1.44 kB │ gzip: 0.66 kB
112
+ ℹ [ESM] dist/DocumentInstance.d.mts.map  1.26 kB │ gzip: 0.57 kB
113
+ ℹ [ESM] dist/MimicServerEngine.d.mts.map  0.97 kB │ gzip: 0.49 kB
83
114
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.mjs  0.90 kB │ gzip: 0.42 kB
84
- ℹ [ESM] dist/Errors.d.mts.map  0.72 kB │ gzip: 0.34 kB
85
115
  ℹ [ESM] dist/ColdStorage.d.mts.map  0.70 kB │ gzip: 0.37 kB
86
- ℹ [ESM] dist/HotStorage.d.mts.map  0.64 kB │ gzip: 0.35 kB
116
+ ℹ [ESM] dist/HotStorage.d.mts.map  0.67 kB │ gzip: 0.35 kB
87
117
  ℹ [ESM] dist/MimicAuthService.d.mts.map  0.61 kB │ gzip: 0.35 kB
88
- ℹ [ESM] dist/DocumentManager.d.mts.map  0.56 kB │ gzip: 0.33 kB
118
+ ℹ [ESM] dist/Errors.d.mts.map  0.60 kB │ gzip: 0.32 kB
119
+ ℹ [ESM] dist/testing/HotStorageTestSuite.d.mts.map  0.48 kB │ gzip: 0.29 kB
89
120
  ℹ [ESM] dist/_virtual/rolldown_runtime.mjs  0.47 kB │ gzip: 0.30 kB
90
121
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.mjs  0.47 kB │ gzip: 0.30 kB
91
122
  ℹ [ESM] dist/PresenceManager.d.mts.map  0.45 kB │ gzip: 0.27 kB
92
123
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.mjs  0.43 kB │ gzip: 0.24 kB
124
+ ℹ [ESM] dist/testing/types.d.mts.map  0.38 kB │ gzip: 0.23 kB
125
+ ℹ [ESM] dist/testing/types.mjs  0.35 kB │ gzip: 0.25 kB
93
126
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.mjs  0.35 kB │ gzip: 0.23 kB
127
+ ℹ [ESM] dist/testing/ColdStorageTestSuite.d.mts.map  0.35 kB │ gzip: 0.25 kB
128
+ ℹ [ESM] dist/testing/StorageIntegrationTestSuite.d.mts.map  0.32 kB │ gzip: 0.21 kB
94
129
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.mjs  0.30 kB │ gzip: 0.21 kB
130
+ ℹ [ESM] dist/testing/FailingStorage.d.mts.map  0.26 kB │ gzip: 0.18 kB
95
131
  ℹ [ESM] dist/MimicClusterServerEngine.d.mts.map  0.25 kB │ gzip: 0.19 kB
96
132
  ℹ [ESM] dist/MimicServer.d.mts.map  0.22 kB │ gzip: 0.16 kB
97
133
  ℹ [ESM] dist/Metrics.d.mts.map  0.12 kB │ gzip: 0.12 kB
98
- ℹ [ESM] dist/index.d.mts  2.23 kB │ gzip: 0.56 kB
99
- ℹ [ESM] dist/Protocol.d.mts  5.86 kB │ gzip: 1.34 kB
100
- ℹ [ESM] dist/Types.d.mts  5.47 kB │ gzip: 1.54 kB
101
- ℹ [ESM] dist/Errors.d.mts  4.10 kB │ gzip: 0.85 kB
102
- ℹ [ESM] dist/MimicServerEngine.d.mts  3.15 kB │ gzip: 1.01 kB
134
+ ℹ [ESM] dist/index.d.mts  2.14 kB │ gzip: 0.53 kB
135
+ ℹ [ESM] dist/testing/index.d.mts  0.91 kB │ gzip: 0.25 kB
136
+ ℹ [ESM] dist/Protocol.d.mts  5.84 kB │ gzip: 1.34 kB
137
+ ℹ [ESM] dist/Types.d.mts  5.72 kB │ gzip: 1.61 kB
138
+ ℹ [ESM] dist/Errors.d.mts  4.86 kB │ gzip: 1.02 kB
139
+ ℹ [ESM] dist/MimicServerEngine.d.mts  3.60 kB │ gzip: 1.09 kB
140
+ ℹ [ESM] dist/DocumentInstance.d.mts  3.07 kB │ gzip: 1.00 kB
141
+ ℹ [ESM] dist/testing/types.d.mts  2.76 kB │ gzip: 1.15 kB
142
+ ℹ [ESM] dist/HotStorage.d.mts  2.72 kB │ gzip: 1.08 kB
103
143
  ℹ [ESM] dist/MimicAuthService.d.mts  2.70 kB │ gzip: 1.04 kB
104
- ℹ [ESM] dist/DocumentManager.d.mts  2.23 kB │ gzip: 0.76 kB
105
- ℹ [ESM] dist/HotStorage.d.mts  1.95 kB │ gzip: 0.83 kB
144
+ ℹ [ESM] dist/testing/HotStorageTestSuite.d.mts  1.93 kB │ gzip: 0.57 kB
106
145
  ℹ [ESM] dist/ColdStorage.d.mts  1.74 kB │ gzip: 0.70 kB
146
+ ℹ [ESM] dist/Metrics.d.mts  1.65 kB │ gzip: 0.40 kB
107
147
  ℹ [ESM] dist/PresenceManager.d.mts  1.60 kB │ gzip: 0.63 kB
108
- ℹ [ESM] dist/Metrics.d.mts  1.37 kB │ gzip: 0.36 kB
148
+ ℹ [ESM] dist/testing/ColdStorageTestSuite.d.mts  1.55 kB │ gzip: 0.50 kB
149
+ ℹ [ESM] dist/testing/FailingStorage.d.mts  1.44 kB │ gzip: 0.46 kB
150
+ ℹ [ESM] dist/testing/StorageIntegrationTestSuite.d.mts  1.43 kB │ gzip: 0.57 kB
109
151
  ℹ [ESM] dist/MimicClusterServerEngine.d.mts  0.82 kB │ gzip: 0.33 kB
110
152
  ℹ [ESM] dist/MimicServer.d.mts  0.74 kB │ gzip: 0.31 kB
111
- ℹ [ESM] 54 files, total: 235.47 kB
112
- ✔ Build complete in 6508ms
153
+ ℹ [ESM] 78 files, total: 505.69 kB
154
+ ✔ Build complete in 5966ms
@@ -36,18 +36,22 @@ var ColdStorageTag = class extends effect.Context.Tag("@voidhash/mimic-effect/Co
36
36
  const make = (effect$1) => effect.Layer.effect(ColdStorageTag, effect$1);
37
37
  let InMemory;
38
38
  (function(_InMemory) {
39
- _InMemory.make = () => effect.Layer.effect(ColdStorageTag, effect.Effect.gen(function* () {
39
+ _InMemory.make = () => effect.Layer.effect(ColdStorageTag, effect.Effect.fn("cold-storage.in-memory.create")(function* () {
40
40
  const store = yield* effect.Ref.make(effect.HashMap.empty());
41
41
  return {
42
- load: (documentId) => effect.Effect.gen(function* () {
42
+ load: effect.Effect.fn("cold-storage.load")(function* (documentId) {
43
43
  const current = yield* effect.Ref.get(store);
44
44
  const result = effect.HashMap.get(current, documentId);
45
45
  return result._tag === "Some" ? result.value : void 0;
46
46
  }),
47
- save: (documentId, document) => effect.Ref.update(store, (map) => effect.HashMap.set(map, documentId, document)),
48
- delete: (documentId) => effect.Ref.update(store, (map) => effect.HashMap.remove(map, documentId))
47
+ save: effect.Effect.fn("cold-storage.save")(function* (documentId, document) {
48
+ yield* effect.Ref.update(store, (map) => effect.HashMap.set(map, documentId, document));
49
+ }),
50
+ delete: effect.Effect.fn("cold-storage.delete")(function* (documentId) {
51
+ yield* effect.Ref.update(store, (map) => effect.HashMap.remove(map, documentId));
52
+ })
49
53
  };
50
- }));
54
+ })());
51
55
  })(InMemory || (InMemory = {}));
52
56
  const ColdStorage = {
53
57
  Tag: ColdStorageTag,
@@ -1 +1 @@
1
- {"version":3,"file":"ColdStorage.d.cts","names":[],"sources":["../src/ColdStorage.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA2CC,UAvBgB,WAAA,CAuBhB;;;;;EASY,SAAA,IAAA,EAAA,CAAA,UAAe,EAAA,MAAQ,EAAA,GAzB7B,MAAA,CAAO,MA4BX,CA5BkB,cA4BlB,GAAA,SAAA,EA5B8C,gBA4B9C,CAAA;EA4Cc;AAgCjB;;EA9CwB,SAAA,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAnDV,cAmDU,EAAA,GAlDjB,MAAA,CAAO,MAkDU,CAAA,IAAA,EAlDG,gBAkDH,CAAA;EAAa;;;EACtB,SAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GA5CR,MAAA,CAAO,MA4CC,CAAA,IAAA,EA5CY,gBA4CZ,CAAA;;cA3Cd,mBA2CiC,kBAAA,eAAA,EAAA,oCAAA,aAAA,CAAA;;;;cAlCrB,cAAA,SAAuB,mBAAA;;;;;;;kBA+CnB,QAAA;;;;oBAIS,KAAA,CAAM,MAAM;;cA4BzB;;uBA9CH,MAAA,CAAO,OAAO,aAAa,GAAG,OACrC,KAAA,CAAM,MAAM,gBAAgB,GAAG"}
1
+ {"version":3,"file":"ColdStorage.d.cts","names":[],"sources":["../src/ColdStorage.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA2CC,UAvBgB,WAAA,CAuBhB;;;;;EASY,SAAA,IAAA,EAAA,CAAA,UAAe,EAAA,MAAQ,EAAA,GAzB7B,MAAA,CAAO,MA4BX,CA5BkB,cA4BlB,GAAA,SAAA,EA5B8C,gBA4B9C,CAAA;EA4Cc;AAyCjB;;EAvDwB,SAAA,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAnDV,cAmDU,EAAA,GAlDjB,MAAA,CAAO,MAkDU,CAAA,IAAA,EAlDG,gBAkDH,CAAA;EAAa;;;EACtB,SAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GA5CR,MAAA,CAAO,MA4CC,CAAA,IAAA,EA5CY,gBA4CZ,CAAA;;cA3Cd,mBA2CiC,kBAAA,eAAA,EAAA,oCAAA,aAAA,CAAA;;;;cAlCrB,cAAA,SAAuB,mBAAA;;;;;;;kBA+CnB,QAAA;;;;oBAIS,KAAA,CAAM,MAAM;;cAqCzB;;uBAvDH,MAAA,CAAO,OAAO,aAAa,GAAG,OACrC,KAAA,CAAM,MAAM,gBAAgB,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColdStorage.d.mts","names":[],"sources":["../src/ColdStorage.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA2CC,UAvBgB,WAAA,CAuBhB;;;;;EASY,SAAA,IAAA,EAAA,CAAA,UAAe,EAAA,MAAQ,EAAA,GAzB7B,MAAA,CAAO,MA4BX,CA5BkB,cA4BlB,GAAA,SAAA,EA5B8C,gBA4B9C,CAAA;EA4Cc;AAgCjB;;EA9CwB,SAAA,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAnDV,cAmDU,EAAA,GAlDjB,MAAA,CAAO,MAkDU,CAAA,IAAA,EAlDG,gBAkDH,CAAA;EAAa;;;EACtB,SAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GA5CR,MAAA,CAAO,MA4CC,CAAA,IAAA,EA5CY,gBA4CZ,CAAA;;cA3Cd,mBA2CiC,kBAAA,eAAA,EAAA,oCAAA,aAAA,CAAA;;;;cAlCrB,cAAA,SAAuB,mBAAA;;;;;;;kBA+CnB,QAAA;;;;oBAIS,KAAA,CAAM,MAAM;;cA4BzB;;uBA9CH,MAAA,CAAO,OAAO,aAAa,GAAG,OACrC,KAAA,CAAM,MAAM,gBAAgB,GAAG"}
1
+ {"version":3,"file":"ColdStorage.d.mts","names":[],"sources":["../src/ColdStorage.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA2CC,UAvBgB,WAAA,CAuBhB;;;;;EASY,SAAA,IAAA,EAAA,CAAA,UAAe,EAAA,MAAQ,EAAA,GAzB7B,MAAA,CAAO,MA4BX,CA5BkB,cA4BlB,GAAA,SAAA,EA5B8C,gBA4B9C,CAAA;EA4Cc;AAyCjB;;EAvDwB,SAAA,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAnDV,cAmDU,EAAA,GAlDjB,MAAA,CAAO,MAkDU,CAAA,IAAA,EAlDG,gBAkDH,CAAA;EAAa;;;EACtB,SAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GA5CR,MAAA,CAAO,MA4CC,CAAA,IAAA,EA5CY,gBA4CZ,CAAA;;cA3Cd,mBA2CiC,kBAAA,eAAA,EAAA,oCAAA,aAAA,CAAA;;;;cAlCrB,cAAA,SAAuB,mBAAA;;;;;;;kBA+CnB,QAAA;;;;oBAIS,KAAA,CAAM,MAAM;;cAqCzB;;uBAvDH,MAAA,CAAO,OAAO,aAAa,GAAG,OACrC,KAAA,CAAM,MAAM,gBAAgB,GAAG"}
@@ -36,18 +36,22 @@ var ColdStorageTag = class extends Context.Tag("@voidhash/mimic-effect/ColdStora
36
36
  const make = (effect) => Layer.effect(ColdStorageTag, effect);
37
37
  let InMemory;
38
38
  (function(_InMemory) {
39
- _InMemory.make = () => Layer.effect(ColdStorageTag, Effect.gen(function* () {
39
+ _InMemory.make = () => Layer.effect(ColdStorageTag, Effect.fn("cold-storage.in-memory.create")(function* () {
40
40
  const store = yield* Ref.make(HashMap.empty());
41
41
  return {
42
- load: (documentId) => Effect.gen(function* () {
42
+ load: Effect.fn("cold-storage.load")(function* (documentId) {
43
43
  const current = yield* Ref.get(store);
44
44
  const result = HashMap.get(current, documentId);
45
45
  return result._tag === "Some" ? result.value : void 0;
46
46
  }),
47
- save: (documentId, document) => Ref.update(store, (map) => HashMap.set(map, documentId, document)),
48
- delete: (documentId) => Ref.update(store, (map) => HashMap.remove(map, documentId))
47
+ save: Effect.fn("cold-storage.save")(function* (documentId, document) {
48
+ yield* Ref.update(store, (map) => HashMap.set(map, documentId, document));
49
+ }),
50
+ delete: Effect.fn("cold-storage.delete")(function* (documentId) {
51
+ yield* Ref.update(store, (map) => HashMap.remove(map, documentId));
52
+ })
49
53
  };
50
- }));
54
+ })());
51
55
  })(InMemory || (InMemory = {}));
52
56
  const ColdStorage = {
53
57
  Tag: ColdStorageTag,
@@ -1 +1 @@
1
- {"version":3,"file":"ColdStorage.mjs","names":[],"sources":["../src/ColdStorage.ts"],"sourcesContent":["/**\n * @voidhash/mimic-effect - ColdStorage\n *\n * Interface and implementations for document snapshot storage.\n */\nimport { Context, Effect, HashMap, Layer, Ref } from \"effect\";\nimport type { StoredDocument } from \"./Types\";\nimport { ColdStorageError } from \"./Errors\";\n\n// =============================================================================\n// ColdStorage Interface\n// =============================================================================\n\n/**\n * ColdStorage interface for storing document snapshots.\n *\n * This is the \"cold\" tier of the two-tier storage system.\n * It stores complete document snapshots less frequently (on periodic intervals\n * or after a threshold of transactions).\n */\nexport interface ColdStorage {\n /**\n * Load a document snapshot.\n * Returns undefined if the document doesn't exist.\n */\n readonly load: (\n documentId: string\n ) => Effect.Effect<StoredDocument | undefined, ColdStorageError>;\n\n /**\n * Save a document snapshot.\n */\n readonly save: (\n documentId: string,\n document: StoredDocument\n ) => Effect.Effect<void, ColdStorageError>;\n\n /**\n * Delete a document snapshot.\n */\n readonly delete: (\n documentId: string\n ) => Effect.Effect<void, ColdStorageError>;\n}\n\n// =============================================================================\n// Context Tag\n// =============================================================================\n\n/**\n * Context tag for ColdStorage service\n */\nexport class ColdStorageTag extends Context.Tag(\"@voidhash/mimic-effect/ColdStorage\")<\n ColdStorageTag,\n ColdStorage\n>() {}\n\n// =============================================================================\n// Factory\n// =============================================================================\n\n/**\n * Create a ColdStorage layer from an Effect that produces a ColdStorage service.\n *\n * This allows you to access other Effect services when implementing custom storage.\n *\n * @example\n * ```typescript\n * const Cold = ColdStorage.make(\n * Effect.gen(function*() {\n * const redis = yield* RedisService\n *\n * return {\n * load: (documentId) => redis.get(`doc:${documentId}`).pipe(\n * Effect.map(data => data ? JSON.parse(data) : undefined)\n * ),\n * save: (documentId, document) =>\n * redis.set(`doc:${documentId}`, JSON.stringify(document)),\n * delete: (documentId) => redis.del(`doc:${documentId}`),\n * }\n * })\n * )\n * ```\n */\nexport const make = <E, R>(\n effect: Effect.Effect<ColdStorage, E, R>\n): Layer.Layer<ColdStorageTag, E, R> =>\n Layer.effect(ColdStorageTag, effect);\n\n// =============================================================================\n// InMemory Implementation\n// =============================================================================\n\n/**\n * In-memory ColdStorage implementation.\n *\n * Useful for testing and development. Not suitable for production\n * as data is lost when the process restarts.\n */\nexport namespace InMemory {\n /**\n * Create an in-memory ColdStorage layer.\n */\n export const make = (): Layer.Layer<ColdStorageTag> =>\n Layer.effect(\n ColdStorageTag,\n Effect.gen(function* () {\n const store = yield* Ref.make(HashMap.empty<string, StoredDocument>());\n\n return {\n load: (documentId) =>\n Effect.gen(function* () {\n const current = yield* Ref.get(store);\n const result = HashMap.get(current, documentId);\n return result._tag === \"Some\" ? result.value : undefined;\n }),\n\n save: (documentId, document) =>\n Ref.update(store, (map) => HashMap.set(map, documentId, document)),\n\n delete: (documentId) =>\n Ref.update(store, (map) => HashMap.remove(map, documentId)),\n };\n })\n );\n}\n\n// =============================================================================\n// Re-export namespace\n// =============================================================================\n\nexport const ColdStorage = {\n Tag: ColdStorageTag,\n make,\n InMemory,\n};\n"],"mappings":";;;;;;;;;;;AAoDA,IAAa,iBAAb,cAAoC,QAAQ,IAAI,qCAAqC,EAGlF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AA6BJ,MAAa,QACX,WAEA,MAAM,OAAO,gBAAgB,OAAO;;;wBAiBlC,MAAM,OACJ,gBACA,OAAO,IAAI,aAAa;EACtB,MAAM,QAAQ,OAAO,IAAI,KAAK,QAAQ,OAA+B,CAAC;AAEtE,SAAO;GACL,OAAO,eACL,OAAO,IAAI,aAAa;IACtB,MAAM,UAAU,OAAO,IAAI,IAAI,MAAM;IACrC,MAAM,SAAS,QAAQ,IAAI,SAAS,WAAW;AAC/C,WAAO,OAAO,SAAS,SAAS,OAAO,QAAQ;KAC/C;GAEJ,OAAO,YAAY,aACjB,IAAI,OAAO,QAAQ,QAAQ,QAAQ,IAAI,KAAK,YAAY,SAAS,CAAC;GAEpE,SAAS,eACP,IAAI,OAAO,QAAQ,QAAQ,QAAQ,OAAO,KAAK,WAAW,CAAC;GAC9D;GACD,CACH;;AAOL,MAAa,cAAc;CACzB,KAAK;CACL;CACA;CACD"}
1
+ {"version":3,"file":"ColdStorage.mjs","names":[],"sources":["../src/ColdStorage.ts"],"sourcesContent":["/**\n * @voidhash/mimic-effect - ColdStorage\n *\n * Interface and implementations for document snapshot storage.\n */\nimport { Context, Effect, HashMap, Layer, Ref } from \"effect\";\nimport type { StoredDocument } from \"./Types\";\nimport { ColdStorageError } from \"./Errors\";\n\n// =============================================================================\n// ColdStorage Interface\n// =============================================================================\n\n/**\n * ColdStorage interface for storing document snapshots.\n *\n * This is the \"cold\" tier of the two-tier storage system.\n * It stores complete document snapshots less frequently (on periodic intervals\n * or after a threshold of transactions).\n */\nexport interface ColdStorage {\n /**\n * Load a document snapshot.\n * Returns undefined if the document doesn't exist.\n */\n readonly load: (\n documentId: string\n ) => Effect.Effect<StoredDocument | undefined, ColdStorageError>;\n\n /**\n * Save a document snapshot.\n */\n readonly save: (\n documentId: string,\n document: StoredDocument\n ) => Effect.Effect<void, ColdStorageError>;\n\n /**\n * Delete a document snapshot.\n */\n readonly delete: (\n documentId: string\n ) => Effect.Effect<void, ColdStorageError>;\n}\n\n// =============================================================================\n// Context Tag\n// =============================================================================\n\n/**\n * Context tag for ColdStorage service\n */\nexport class ColdStorageTag extends Context.Tag(\"@voidhash/mimic-effect/ColdStorage\")<\n ColdStorageTag,\n ColdStorage\n>() {}\n\n// =============================================================================\n// Factory\n// =============================================================================\n\n/**\n * Create a ColdStorage layer from an Effect that produces a ColdStorage service.\n *\n * This allows you to access other Effect services when implementing custom storage.\n *\n * @example\n * ```typescript\n * const Cold = ColdStorage.make(\n * Effect.gen(function*() {\n * const redis = yield* RedisService\n *\n * return {\n * load: (documentId) => redis.get(`doc:${documentId}`).pipe(\n * Effect.map(data => data ? JSON.parse(data) : undefined)\n * ),\n * save: (documentId, document) =>\n * redis.set(`doc:${documentId}`, JSON.stringify(document)),\n * delete: (documentId) => redis.del(`doc:${documentId}`),\n * }\n * })\n * )\n * ```\n */\nexport const make = <E, R>(\n effect: Effect.Effect<ColdStorage, E, R>\n): Layer.Layer<ColdStorageTag, E, R> =>\n Layer.effect(ColdStorageTag, effect);\n\n// =============================================================================\n// InMemory Implementation\n// =============================================================================\n\n/**\n * In-memory ColdStorage implementation.\n *\n * Useful for testing and development. Not suitable for production\n * as data is lost when the process restarts.\n */\nexport namespace InMemory {\n /**\n * Create an in-memory ColdStorage layer.\n */\n export const make = (): Layer.Layer<ColdStorageTag> =>\n Layer.effect(\n ColdStorageTag,\n Effect.fn(\"cold-storage.in-memory.create\")(function* () {\n const store = yield* Ref.make(HashMap.empty<string, StoredDocument>());\n\n return {\n load: Effect.fn(\"cold-storage.load\")(function* (documentId: string) {\n const current = yield* Ref.get(store);\n const result = HashMap.get(current, documentId);\n return result._tag === \"Some\" ? result.value : undefined;\n }),\n\n save: Effect.fn(\"cold-storage.save\")(\n function* (documentId: string, document: StoredDocument) {\n yield* Ref.update(store, (map) =>\n HashMap.set(map, documentId, document)\n );\n }\n ),\n\n delete: Effect.fn(\"cold-storage.delete\")(\n function* (documentId: string) {\n yield* Ref.update(store, (map) =>\n HashMap.remove(map, documentId)\n );\n }\n ),\n };\n })()\n );\n}\n\n// =============================================================================\n// Re-export namespace\n// =============================================================================\n\nexport const ColdStorage = {\n Tag: ColdStorageTag,\n make,\n InMemory,\n};\n"],"mappings":";;;;;;;;;;;AAoDA,IAAa,iBAAb,cAAoC,QAAQ,IAAI,qCAAqC,EAGlF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AA6BJ,MAAa,QACX,WAEA,MAAM,OAAO,gBAAgB,OAAO;;;wBAiBlC,MAAM,OACJ,gBACA,OAAO,GAAG,gCAAgC,CAAC,aAAa;EACtD,MAAM,QAAQ,OAAO,IAAI,KAAK,QAAQ,OAA+B,CAAC;AAEtE,SAAO;GACL,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,YAAoB;IAClE,MAAM,UAAU,OAAO,IAAI,IAAI,MAAM;IACrC,MAAM,SAAS,QAAQ,IAAI,SAAS,WAAW;AAC/C,WAAO,OAAO,SAAS,SAAS,OAAO,QAAQ;KAC/C;GAEF,MAAM,OAAO,GAAG,oBAAoB,CAClC,WAAW,YAAoB,UAA0B;AACvD,WAAO,IAAI,OAAO,QAAQ,QACxB,QAAQ,IAAI,KAAK,YAAY,SAAS,CACvC;KAEJ;GAED,QAAQ,OAAO,GAAG,sBAAsB,CACtC,WAAW,YAAoB;AAC7B,WAAO,IAAI,OAAO,QAAQ,QACxB,QAAQ,OAAO,KAAK,WAAW,CAChC;KAEJ;GACF;GACD,EAAE,CACL;;AAOL,MAAa,cAAc;CACzB,KAAK;CACL;CACA;CACD"}