@voidhash/mimic-effect 0.0.9 → 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 (236) hide show
  1. package/.turbo/turbo-build.log +136 -90
  2. package/README.md +385 -0
  3. package/dist/ColdStorage.cjs +64 -0
  4. package/dist/ColdStorage.d.cts +53 -0
  5. package/dist/ColdStorage.d.cts.map +1 -0
  6. package/dist/ColdStorage.d.mts +53 -0
  7. package/dist/ColdStorage.d.mts.map +1 -0
  8. package/dist/ColdStorage.mjs +64 -0
  9. package/dist/ColdStorage.mjs.map +1 -0
  10. package/dist/DocumentInstance.cjs +263 -0
  11. package/dist/DocumentInstance.d.cts +78 -0
  12. package/dist/DocumentInstance.d.cts.map +1 -0
  13. package/dist/DocumentInstance.d.mts +78 -0
  14. package/dist/DocumentInstance.d.mts.map +1 -0
  15. package/dist/DocumentInstance.mjs +264 -0
  16. package/dist/DocumentInstance.mjs.map +1 -0
  17. package/dist/Errors.cjs +54 -0
  18. package/dist/Errors.d.cts +96 -0
  19. package/dist/Errors.d.cts.map +1 -0
  20. package/dist/Errors.d.mts +96 -0
  21. package/dist/Errors.d.mts.map +1 -0
  22. package/dist/Errors.mjs +48 -0
  23. package/dist/Errors.mjs.map +1 -0
  24. package/dist/HotStorage.cjs +104 -0
  25. package/dist/HotStorage.d.cts +70 -0
  26. package/dist/HotStorage.d.cts.map +1 -0
  27. package/dist/HotStorage.d.mts +70 -0
  28. package/dist/HotStorage.d.mts.map +1 -0
  29. package/dist/HotStorage.mjs +104 -0
  30. package/dist/HotStorage.mjs.map +1 -0
  31. package/dist/Metrics.cjs +149 -0
  32. package/dist/Metrics.d.cts +32 -0
  33. package/dist/Metrics.d.cts.map +1 -0
  34. package/dist/Metrics.d.mts +32 -0
  35. package/dist/Metrics.d.mts.map +1 -0
  36. package/dist/Metrics.mjs +131 -0
  37. package/dist/Metrics.mjs.map +1 -0
  38. package/dist/MimicAuthService.cjs +61 -45
  39. package/dist/MimicAuthService.d.cts +61 -48
  40. package/dist/MimicAuthService.d.cts.map +1 -1
  41. package/dist/MimicAuthService.d.mts +61 -48
  42. package/dist/MimicAuthService.d.mts.map +1 -1
  43. package/dist/MimicAuthService.mjs +60 -36
  44. package/dist/MimicAuthService.mjs.map +1 -1
  45. package/dist/MimicClusterServerEngine.cjs +348 -0
  46. package/dist/MimicClusterServerEngine.d.cts +17 -0
  47. package/dist/MimicClusterServerEngine.d.cts.map +1 -0
  48. package/dist/MimicClusterServerEngine.d.mts +17 -0
  49. package/dist/MimicClusterServerEngine.d.mts.map +1 -0
  50. package/dist/MimicClusterServerEngine.mjs +350 -0
  51. package/dist/MimicClusterServerEngine.mjs.map +1 -0
  52. package/dist/MimicServer.cjs +205 -96
  53. package/dist/MimicServer.d.cts +9 -110
  54. package/dist/MimicServer.d.cts.map +1 -1
  55. package/dist/MimicServer.d.mts +9 -110
  56. package/dist/MimicServer.d.mts.map +1 -1
  57. package/dist/MimicServer.mjs +206 -90
  58. package/dist/MimicServer.mjs.map +1 -1
  59. package/dist/MimicServerEngine.cjs +178 -0
  60. package/dist/MimicServerEngine.d.cts +83 -0
  61. package/dist/MimicServerEngine.d.cts.map +1 -0
  62. package/dist/MimicServerEngine.d.mts +83 -0
  63. package/dist/MimicServerEngine.d.mts.map +1 -0
  64. package/dist/MimicServerEngine.mjs +178 -0
  65. package/dist/MimicServerEngine.mjs.map +1 -0
  66. package/dist/PresenceManager.cjs +75 -91
  67. package/dist/PresenceManager.d.cts +17 -66
  68. package/dist/PresenceManager.d.cts.map +1 -1
  69. package/dist/PresenceManager.d.mts +17 -66
  70. package/dist/PresenceManager.d.mts.map +1 -1
  71. package/dist/PresenceManager.mjs +74 -78
  72. package/dist/PresenceManager.mjs.map +1 -1
  73. package/dist/Protocol.cjs +146 -0
  74. package/dist/Protocol.d.cts +203 -0
  75. package/dist/Protocol.d.cts.map +1 -0
  76. package/dist/Protocol.d.mts +203 -0
  77. package/dist/Protocol.d.mts.map +1 -0
  78. package/dist/Protocol.mjs +132 -0
  79. package/dist/Protocol.mjs.map +1 -0
  80. package/dist/Types.d.cts +179 -0
  81. package/dist/Types.d.cts.map +1 -0
  82. package/dist/Types.d.mts +179 -0
  83. package/dist/Types.d.mts.map +1 -0
  84. package/dist/_virtual/rolldown_runtime.cjs +1 -25
  85. package/dist/_virtual/rolldown_runtime.mjs +4 -1
  86. package/dist/index.cjs +37 -76
  87. package/dist/index.d.cts +13 -12
  88. package/dist/index.d.mts +13 -12
  89. package/dist/index.mjs +12 -12
  90. package/dist/testing/ColdStorageTestSuite.cjs +508 -0
  91. package/dist/testing/ColdStorageTestSuite.d.cts +36 -0
  92. package/dist/testing/ColdStorageTestSuite.d.cts.map +1 -0
  93. package/dist/testing/ColdStorageTestSuite.d.mts +36 -0
  94. package/dist/testing/ColdStorageTestSuite.d.mts.map +1 -0
  95. package/dist/testing/ColdStorageTestSuite.mjs +508 -0
  96. package/dist/testing/ColdStorageTestSuite.mjs.map +1 -0
  97. package/dist/testing/FailingStorage.cjs +162 -0
  98. package/dist/testing/FailingStorage.d.cts +43 -0
  99. package/dist/testing/FailingStorage.d.cts.map +1 -0
  100. package/dist/testing/FailingStorage.d.mts +43 -0
  101. package/dist/testing/FailingStorage.d.mts.map +1 -0
  102. package/dist/testing/FailingStorage.mjs +163 -0
  103. package/dist/testing/FailingStorage.mjs.map +1 -0
  104. package/dist/testing/HotStorageTestSuite.cjs +820 -0
  105. package/dist/testing/HotStorageTestSuite.d.cts +42 -0
  106. package/dist/testing/HotStorageTestSuite.d.cts.map +1 -0
  107. package/dist/testing/HotStorageTestSuite.d.mts +42 -0
  108. package/dist/testing/HotStorageTestSuite.d.mts.map +1 -0
  109. package/dist/testing/HotStorageTestSuite.mjs +820 -0
  110. package/dist/testing/HotStorageTestSuite.mjs.map +1 -0
  111. package/dist/testing/StorageIntegrationTestSuite.cjs +487 -0
  112. package/dist/testing/StorageIntegrationTestSuite.d.cts +37 -0
  113. package/dist/testing/StorageIntegrationTestSuite.d.cts.map +1 -0
  114. package/dist/testing/StorageIntegrationTestSuite.d.mts +37 -0
  115. package/dist/testing/StorageIntegrationTestSuite.d.mts.map +1 -0
  116. package/dist/testing/StorageIntegrationTestSuite.mjs +487 -0
  117. package/dist/testing/StorageIntegrationTestSuite.mjs.map +1 -0
  118. package/dist/testing/assertions.cjs +117 -0
  119. package/dist/testing/assertions.mjs +112 -0
  120. package/dist/testing/assertions.mjs.map +1 -0
  121. package/dist/testing/index.cjs +14 -0
  122. package/dist/testing/index.d.cts +6 -0
  123. package/dist/testing/index.d.mts +6 -0
  124. package/dist/testing/index.mjs +7 -0
  125. package/dist/testing/types.cjs +15 -0
  126. package/dist/testing/types.d.cts +90 -0
  127. package/dist/testing/types.d.cts.map +1 -0
  128. package/dist/testing/types.d.mts +90 -0
  129. package/dist/testing/types.d.mts.map +1 -0
  130. package/dist/testing/types.mjs +16 -0
  131. package/dist/testing/types.mjs.map +1 -0
  132. package/package.json +18 -3
  133. package/src/ColdStorage.ts +145 -0
  134. package/src/DocumentInstance.ts +527 -0
  135. package/src/Errors.ts +114 -0
  136. package/src/HotStorage.ts +256 -0
  137. package/src/Metrics.ts +193 -0
  138. package/src/MimicAuthService.ts +126 -64
  139. package/src/MimicClusterServerEngine.ts +669 -0
  140. package/src/MimicServer.ts +459 -198
  141. package/src/MimicServerEngine.ts +472 -0
  142. package/src/PresenceManager.ts +173 -234
  143. package/src/Protocol.ts +350 -0
  144. package/src/Types.ts +238 -0
  145. package/src/index.ts +27 -23
  146. package/src/testing/ColdStorageTestSuite.ts +589 -0
  147. package/src/testing/FailingStorage.ts +338 -0
  148. package/src/testing/HotStorageTestSuite.ts +1105 -0
  149. package/src/testing/StorageIntegrationTestSuite.ts +736 -0
  150. package/src/testing/assertions.ts +188 -0
  151. package/src/testing/index.ts +83 -0
  152. package/src/testing/types.ts +100 -0
  153. package/tests/ColdStorage.test.ts +24 -0
  154. package/tests/DocumentInstance.test.ts +669 -0
  155. package/tests/HotStorage.test.ts +24 -0
  156. package/tests/MimicAuthService.test.ts +102 -134
  157. package/tests/MimicClusterServerEngine.test.ts +587 -0
  158. package/tests/MimicServer.test.ts +90 -226
  159. package/tests/MimicServerEngine.test.ts +521 -0
  160. package/tests/PresenceManager.test.ts +22 -63
  161. package/tests/Protocol.test.ts +190 -0
  162. package/tests/StorageIntegration.test.ts +259 -0
  163. package/tsconfig.json +1 -1
  164. package/tsdown.config.ts +1 -1
  165. package/dist/DocumentManager.cjs +0 -118
  166. package/dist/DocumentManager.d.cts +0 -45
  167. package/dist/DocumentManager.d.cts.map +0 -1
  168. package/dist/DocumentManager.d.mts +0 -45
  169. package/dist/DocumentManager.d.mts.map +0 -1
  170. package/dist/DocumentManager.mjs +0 -105
  171. package/dist/DocumentManager.mjs.map +0 -1
  172. package/dist/DocumentProtocol.cjs +0 -94
  173. package/dist/DocumentProtocol.d.cts +0 -113
  174. package/dist/DocumentProtocol.d.cts.map +0 -1
  175. package/dist/DocumentProtocol.d.mts +0 -113
  176. package/dist/DocumentProtocol.d.mts.map +0 -1
  177. package/dist/DocumentProtocol.mjs +0 -89
  178. package/dist/DocumentProtocol.mjs.map +0 -1
  179. package/dist/MimicConfig.cjs +0 -60
  180. package/dist/MimicConfig.d.cts +0 -141
  181. package/dist/MimicConfig.d.cts.map +0 -1
  182. package/dist/MimicConfig.d.mts +0 -141
  183. package/dist/MimicConfig.d.mts.map +0 -1
  184. package/dist/MimicConfig.mjs +0 -50
  185. package/dist/MimicConfig.mjs.map +0 -1
  186. package/dist/MimicDataStorage.cjs +0 -83
  187. package/dist/MimicDataStorage.d.cts +0 -113
  188. package/dist/MimicDataStorage.d.cts.map +0 -1
  189. package/dist/MimicDataStorage.d.mts +0 -113
  190. package/dist/MimicDataStorage.d.mts.map +0 -1
  191. package/dist/MimicDataStorage.mjs +0 -74
  192. package/dist/MimicDataStorage.mjs.map +0 -1
  193. package/dist/WebSocketHandler.cjs +0 -365
  194. package/dist/WebSocketHandler.d.cts +0 -34
  195. package/dist/WebSocketHandler.d.cts.map +0 -1
  196. package/dist/WebSocketHandler.d.mts +0 -34
  197. package/dist/WebSocketHandler.d.mts.map +0 -1
  198. package/dist/WebSocketHandler.mjs +0 -355
  199. package/dist/WebSocketHandler.mjs.map +0 -1
  200. package/dist/auth/NoAuth.cjs +0 -43
  201. package/dist/auth/NoAuth.d.cts +0 -22
  202. package/dist/auth/NoAuth.d.cts.map +0 -1
  203. package/dist/auth/NoAuth.d.mts +0 -22
  204. package/dist/auth/NoAuth.d.mts.map +0 -1
  205. package/dist/auth/NoAuth.mjs +0 -36
  206. package/dist/auth/NoAuth.mjs.map +0 -1
  207. package/dist/errors.cjs +0 -74
  208. package/dist/errors.d.cts +0 -89
  209. package/dist/errors.d.cts.map +0 -1
  210. package/dist/errors.d.mts +0 -89
  211. package/dist/errors.d.mts.map +0 -1
  212. package/dist/errors.mjs +0 -67
  213. package/dist/errors.mjs.map +0 -1
  214. package/dist/storage/InMemoryDataStorage.cjs +0 -57
  215. package/dist/storage/InMemoryDataStorage.d.cts +0 -19
  216. package/dist/storage/InMemoryDataStorage.d.cts.map +0 -1
  217. package/dist/storage/InMemoryDataStorage.d.mts +0 -19
  218. package/dist/storage/InMemoryDataStorage.d.mts.map +0 -1
  219. package/dist/storage/InMemoryDataStorage.mjs +0 -48
  220. package/dist/storage/InMemoryDataStorage.mjs.map +0 -1
  221. package/src/DocumentManager.ts +0 -254
  222. package/src/DocumentProtocol.ts +0 -112
  223. package/src/MimicConfig.ts +0 -211
  224. package/src/MimicDataStorage.ts +0 -157
  225. package/src/WebSocketHandler.ts +0 -735
  226. package/src/auth/NoAuth.ts +0 -46
  227. package/src/errors.ts +0 -113
  228. package/src/storage/InMemoryDataStorage.ts +0 -66
  229. package/tests/DocumentManager.test.ts +0 -464
  230. package/tests/DocumentProtocol.test.ts +0 -113
  231. package/tests/InMemoryDataStorage.test.ts +0 -190
  232. package/tests/MimicConfig.test.ts +0 -290
  233. package/tests/MimicDataStorage.test.ts +0 -190
  234. package/tests/NoAuth.test.ts +0 -94
  235. package/tests/WebSocketHandler.test.ts +0 -321
  236. package/tests/errors.test.ts +0 -77
@@ -1,113 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Layer from "effect/Layer";
3
- import * as Context from "effect/Context";
4
- import * as effect_Types0 from "effect/Types";
5
- import * as effect_Cause0 from "effect/Cause";
6
-
7
- //#region src/MimicDataStorage.d.ts
8
- declare namespace MimicDataStorage_d_exports {
9
- export { MimicDataStorage, MimicDataStorageTag, StorageDeleteError, StorageError, StorageLoadError, StorageSaveError, layer, layerEffect, make };
10
- }
11
- declare const StorageLoadError_base: new <A extends Record<string, any> = {}>(args: effect_Types0.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause0.YieldableError & {
12
- readonly _tag: "StorageLoadError";
13
- } & Readonly<A>;
14
- /**
15
- * Error when loading a document from storage fails.
16
- */
17
- declare class StorageLoadError extends StorageLoadError_base<{
18
- readonly documentId: string;
19
- readonly cause: unknown;
20
- }> {
21
- get message(): string;
22
- }
23
- declare const StorageSaveError_base: new <A extends Record<string, any> = {}>(args: effect_Types0.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause0.YieldableError & {
24
- readonly _tag: "StorageSaveError";
25
- } & Readonly<A>;
26
- /**
27
- * Error when saving a document to storage fails.
28
- */
29
- declare class StorageSaveError extends StorageSaveError_base<{
30
- readonly documentId: string;
31
- readonly cause: unknown;
32
- }> {
33
- get message(): string;
34
- }
35
- declare const StorageDeleteError_base: new <A extends Record<string, any> = {}>(args: effect_Types0.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause0.YieldableError & {
36
- readonly _tag: "StorageDeleteError";
37
- } & Readonly<A>;
38
- /**
39
- * Error when deleting a document from storage fails.
40
- */
41
- declare class StorageDeleteError extends StorageDeleteError_base<{
42
- readonly documentId: string;
43
- readonly cause: unknown;
44
- }> {
45
- get message(): string;
46
- }
47
- /**
48
- * Union of all storage errors.
49
- */
50
- type StorageError = StorageLoadError | StorageSaveError | StorageDeleteError;
51
- /**
52
- * Data storage service interface.
53
- * Implementations can persist documents to various backends (memory, S3, database, etc.)
54
- */
55
- interface MimicDataStorage {
56
- /**
57
- * Load a document's state from storage.
58
- * @param documentId - The unique identifier for the document
59
- * @returns The document state, or undefined if not found
60
- */
61
- readonly load: (documentId: string) => Effect.Effect<unknown | undefined, StorageLoadError>;
62
- /**
63
- * Save a document's state to storage.
64
- * @param documentId - The unique identifier for the document
65
- * @param state - The document state to persist
66
- */
67
- readonly save: (documentId: string, state: unknown) => Effect.Effect<void, StorageSaveError>;
68
- /**
69
- * Delete a document from storage.
70
- * @param documentId - The unique identifier for the document
71
- */
72
- readonly delete: (documentId: string) => Effect.Effect<void, StorageDeleteError>;
73
- /**
74
- * Transform data after loading from storage.
75
- * Useful for migrations, decryption, decompression, etc.
76
- * @param state - The raw state loaded from storage
77
- * @returns The transformed state
78
- */
79
- readonly onLoad: (state: unknown) => Effect.Effect<unknown>;
80
- /**
81
- * Transform/validate data before saving to storage.
82
- * Useful for encryption, compression, validation, etc.
83
- * @param state - The state to be saved
84
- * @returns The transformed state
85
- */
86
- readonly onSave: (state: unknown) => Effect.Effect<unknown>;
87
- }
88
- declare const MimicDataStorageTag_base: Context.TagClass<MimicDataStorageTag, "@voidhash/mimic-server-effect/MimicDataStorage", MimicDataStorage>;
89
- /**
90
- * Context tag for MimicDataStorage service.
91
- */
92
- declare class MimicDataStorageTag extends MimicDataStorageTag_base {}
93
- /**
94
- * Create a MimicDataStorage layer from a storage implementation.
95
- */
96
- declare const layer: (storage: MimicDataStorage) => Layer.Layer<MimicDataStorageTag>;
97
- /**
98
- * Create a MimicDataStorage layer from an Effect that produces a storage implementation.
99
- */
100
- declare const layerEffect: <E, R>(effect: Effect.Effect<MimicDataStorage, E, R>) => Layer.Layer<MimicDataStorageTag, E, R>;
101
- /**
102
- * Create a simple storage implementation with minimal configuration.
103
- */
104
- declare const make: (options: {
105
- readonly load: (documentId: string) => Effect.Effect<unknown | undefined, StorageLoadError>;
106
- readonly save: (documentId: string, state: unknown) => Effect.Effect<void, StorageSaveError>;
107
- readonly delete?: (documentId: string) => Effect.Effect<void, StorageDeleteError>;
108
- readonly onLoad?: (state: unknown) => Effect.Effect<unknown>;
109
- readonly onSave?: (state: unknown) => Effect.Effect<unknown>;
110
- }) => MimicDataStorage;
111
- //#endregion
112
- export { MimicDataStorageTag, MimicDataStorage_d_exports };
113
- //# sourceMappingURL=MimicDataStorage.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MimicDataStorage.d.cts","names":[],"sources":["../src/MimicDataStorage.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;cAOsC;;;;;;cAUzB,gBAAA,SAAyB;;;;;AAVA;cAiBrC;;;;;;cAKY,gBAAA,SAAyB;;;;;;AAZtC,cAmBC,uBAnBqC,EAAA,IAAA,CAAA,gBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,sBAAA,EAAA,EAAA,CAAA,CAAA,CAAA,SAAA,IAAA,GAAA,IAAA,GAAA,iBAAA,OAAA,KAAA,SAAA,MAAA,GAAA,KAAA,IAAA,IAAA,EAAA,CAAA,EAAA,EAAA,kCAAA;EAOrC,SAAA,IAAA,EAAA,oBAAA;;;;;cAiBY,kBAAA,SAA2B;;;;;;;;AAZxC;AAOC,KAiBW,YAAA,GAAe,gBAjB1B,GAiB6C,gBAjB7C,GAiBgE,kBAjBhE;;;;;UA2BgB,gBAAA;;;;;;yCAQV,MAAA,CAAO,4BAA4B;;AA9B1C;AAYA;;;EAAiE,SAAA,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GA4B1D,MAAA,CAAO,MA5BmD,CAAA,IAAA,EA4BtC,gBA5BsC,CAAA;EAAkB;AAUnF;;;EAkB2B,SAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAQpB,MAAA,CAAO,MARa,CAAA,IAAA,EAQA,kBARA,CAAA;EAApB;;;;;;EAyBN,SAAA,MAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GATsC,MAAA,CAAO,MAS7C,CAAA,OAAA,CAAA;;;;;AASD;AAWA;EAA+B,SAAA,MAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GArBQ,MAAA,CAAO,MAqBf,CAAA,OAAA,CAAA;;cApB9B,wBAoBuD,kBAAA,oBAAA,EAAA,gDAAA,kBAAA,CAAA;;AAMxD;;AAC0C,cAlB7B,mBAAA,SAA4B,wBAAA,CAkBC;;;;AACH,cAR1B,KAQ0B,EAAA,CAAA,OAAA,EARR,gBAQQ,EAAA,GARW,KAAA,CAAM,KAQjB,CARuB,mBAQvB,CAAA;;;AAUvC;AAC4E,cAb/D,WAa+D,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EAZlE,MAAA,CAAO,MAY2D,CAZpD,gBAYoD,EAZlC,CAYkC,EAZ/B,CAY+B,CAAA,EAAA,GAXzE,KAAA,CAAM,KAWmE,CAX7D,mBAW6D,EAXxC,CAWwC,EAXrC,CAWqC,CAAA;;;;AAEZ,cAHnD,IAGmD,EAAA,CAAA,OAAA,EAAA;EAApB,SAAO,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAFV,MAAA,CAAO,MAEG,CAAA,OAAA,GAAA,SAAA,EAFyB,gBAEzB,CAAA;EACX,SAAO,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAFU,MAAA,CAAO,MAEjB,CAAA,IAAA,EAF8B,gBAE9B,CAAA;EACP,SAAO,MAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAFH,MAAA,CAAO,MAEJ,CAAA,IAAA,EAFiB,kBAEjB,CAAA;EAC3C,SAAA,MAAA,CAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAFoC,MAAA,CAAO,MAE3C,CAAA,OAAA,CAAA;EAMF,SAAA,MAAA,CAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAPsC,MAAA,CAAO,MAO7C,CAAA,OAAA,CAAA;MANE"}
@@ -1,113 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Layer from "effect/Layer";
3
- import * as Context from "effect/Context";
4
- import * as effect_Types6 from "effect/Types";
5
- import * as effect_Cause6 from "effect/Cause";
6
-
7
- //#region src/MimicDataStorage.d.ts
8
- declare namespace MimicDataStorage_d_exports {
9
- export { MimicDataStorage, MimicDataStorageTag, StorageDeleteError, StorageError, StorageLoadError, StorageSaveError, layer, layerEffect, make };
10
- }
11
- declare const StorageLoadError_base: new <A extends Record<string, any> = {}>(args: effect_Types6.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause6.YieldableError & {
12
- readonly _tag: "StorageLoadError";
13
- } & Readonly<A>;
14
- /**
15
- * Error when loading a document from storage fails.
16
- */
17
- declare class StorageLoadError extends StorageLoadError_base<{
18
- readonly documentId: string;
19
- readonly cause: unknown;
20
- }> {
21
- get message(): string;
22
- }
23
- declare const StorageSaveError_base: new <A extends Record<string, any> = {}>(args: effect_Types6.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause6.YieldableError & {
24
- readonly _tag: "StorageSaveError";
25
- } & Readonly<A>;
26
- /**
27
- * Error when saving a document to storage fails.
28
- */
29
- declare class StorageSaveError extends StorageSaveError_base<{
30
- readonly documentId: string;
31
- readonly cause: unknown;
32
- }> {
33
- get message(): string;
34
- }
35
- declare const StorageDeleteError_base: new <A extends Record<string, any> = {}>(args: effect_Types6.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause6.YieldableError & {
36
- readonly _tag: "StorageDeleteError";
37
- } & Readonly<A>;
38
- /**
39
- * Error when deleting a document from storage fails.
40
- */
41
- declare class StorageDeleteError extends StorageDeleteError_base<{
42
- readonly documentId: string;
43
- readonly cause: unknown;
44
- }> {
45
- get message(): string;
46
- }
47
- /**
48
- * Union of all storage errors.
49
- */
50
- type StorageError = StorageLoadError | StorageSaveError | StorageDeleteError;
51
- /**
52
- * Data storage service interface.
53
- * Implementations can persist documents to various backends (memory, S3, database, etc.)
54
- */
55
- interface MimicDataStorage {
56
- /**
57
- * Load a document's state from storage.
58
- * @param documentId - The unique identifier for the document
59
- * @returns The document state, or undefined if not found
60
- */
61
- readonly load: (documentId: string) => Effect.Effect<unknown | undefined, StorageLoadError>;
62
- /**
63
- * Save a document's state to storage.
64
- * @param documentId - The unique identifier for the document
65
- * @param state - The document state to persist
66
- */
67
- readonly save: (documentId: string, state: unknown) => Effect.Effect<void, StorageSaveError>;
68
- /**
69
- * Delete a document from storage.
70
- * @param documentId - The unique identifier for the document
71
- */
72
- readonly delete: (documentId: string) => Effect.Effect<void, StorageDeleteError>;
73
- /**
74
- * Transform data after loading from storage.
75
- * Useful for migrations, decryption, decompression, etc.
76
- * @param state - The raw state loaded from storage
77
- * @returns The transformed state
78
- */
79
- readonly onLoad: (state: unknown) => Effect.Effect<unknown>;
80
- /**
81
- * Transform/validate data before saving to storage.
82
- * Useful for encryption, compression, validation, etc.
83
- * @param state - The state to be saved
84
- * @returns The transformed state
85
- */
86
- readonly onSave: (state: unknown) => Effect.Effect<unknown>;
87
- }
88
- declare const MimicDataStorageTag_base: Context.TagClass<MimicDataStorageTag, "@voidhash/mimic-server-effect/MimicDataStorage", MimicDataStorage>;
89
- /**
90
- * Context tag for MimicDataStorage service.
91
- */
92
- declare class MimicDataStorageTag extends MimicDataStorageTag_base {}
93
- /**
94
- * Create a MimicDataStorage layer from a storage implementation.
95
- */
96
- declare const layer: (storage: MimicDataStorage) => Layer.Layer<MimicDataStorageTag>;
97
- /**
98
- * Create a MimicDataStorage layer from an Effect that produces a storage implementation.
99
- */
100
- declare const layerEffect: <E, R>(effect: Effect.Effect<MimicDataStorage, E, R>) => Layer.Layer<MimicDataStorageTag, E, R>;
101
- /**
102
- * Create a simple storage implementation with minimal configuration.
103
- */
104
- declare const make: (options: {
105
- readonly load: (documentId: string) => Effect.Effect<unknown | undefined, StorageLoadError>;
106
- readonly save: (documentId: string, state: unknown) => Effect.Effect<void, StorageSaveError>;
107
- readonly delete?: (documentId: string) => Effect.Effect<void, StorageDeleteError>;
108
- readonly onLoad?: (state: unknown) => Effect.Effect<unknown>;
109
- readonly onSave?: (state: unknown) => Effect.Effect<unknown>;
110
- }) => MimicDataStorage;
111
- //#endregion
112
- export { MimicDataStorageTag, MimicDataStorage_d_exports };
113
- //# sourceMappingURL=MimicDataStorage.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MimicDataStorage.d.mts","names":[],"sources":["../src/MimicDataStorage.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;cAOsC;;;;;;cAUzB,gBAAA,SAAyB;;;;;AAVA;cAiBrC;;;;;;cAKY,gBAAA,SAAyB;;;;;;AAZtC,cAmBC,uBAnBqC,EAAA,IAAA,CAAA,gBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,sBAAA,EAAA,EAAA,CAAA,CAAA,CAAA,SAAA,IAAA,GAAA,IAAA,GAAA,iBAAA,OAAA,KAAA,SAAA,MAAA,GAAA,KAAA,IAAA,IAAA,EAAA,CAAA,EAAA,EAAA,kCAAA;EAOrC,SAAA,IAAA,EAAA,oBAAA;;;;;cAiBY,kBAAA,SAA2B;;;;;;;;AAZxC;AAOC,KAiBW,YAAA,GAAe,gBAjB1B,GAiB6C,gBAjB7C,GAiBgE,kBAjBhE;;;;;UA2BgB,gBAAA;;;;;;yCAQV,MAAA,CAAO,4BAA4B;;AA9B1C;AAYA;;;EAAiE,SAAA,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GA4B1D,MAAA,CAAO,MA5BmD,CAAA,IAAA,EA4BtC,gBA5BsC,CAAA;EAAkB;AAUnF;;;EAkB2B,SAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAQpB,MAAA,CAAO,MARa,CAAA,IAAA,EAQA,kBARA,CAAA;EAApB;;;;;;EAyBN,SAAA,MAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GATsC,MAAA,CAAO,MAS7C,CAAA,OAAA,CAAA;;;;;AASD;AAWA;EAA+B,SAAA,MAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GArBQ,MAAA,CAAO,MAqBf,CAAA,OAAA,CAAA;;cApB9B,wBAoBuD,kBAAA,oBAAA,EAAA,gDAAA,kBAAA,CAAA;;AAMxD;;AAC0C,cAlB7B,mBAAA,SAA4B,wBAAA,CAkBC;;;;AACH,cAR1B,KAQ0B,EAAA,CAAA,OAAA,EARR,gBAQQ,EAAA,GARW,KAAA,CAAM,KAQjB,CARuB,mBAQvB,CAAA;;;AAUvC;AAC4E,cAb/D,WAa+D,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EAZlE,MAAA,CAAO,MAY2D,CAZpD,gBAYoD,EAZlC,CAYkC,EAZ/B,CAY+B,CAAA,EAAA,GAXzE,KAAA,CAAM,KAWmE,CAX7D,mBAW6D,EAXxC,CAWwC,EAXrC,CAWqC,CAAA;;;;AAEZ,cAHnD,IAGmD,EAAA,CAAA,OAAA,EAAA;EAApB,SAAO,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAFV,MAAA,CAAO,MAEG,CAAA,OAAA,GAAA,SAAA,EAFyB,gBAEzB,CAAA;EACX,SAAO,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAFU,MAAA,CAAO,MAEjB,CAAA,IAAA,EAF8B,gBAE9B,CAAA;EACP,SAAO,MAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAFH,MAAA,CAAO,MAEJ,CAAA,IAAA,EAFiB,kBAEjB,CAAA;EAC3C,SAAA,MAAA,CAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAFoC,MAAA,CAAO,MAE3C,CAAA,OAAA,CAAA;EAMF,SAAA,MAAA,CAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAPsC,MAAA,CAAO,MAO7C,CAAA,OAAA,CAAA;MANE"}
@@ -1,74 +0,0 @@
1
- import { __export } from "./_virtual/rolldown_runtime.mjs";
2
- import * as Effect from "effect/Effect";
3
- import * as Layer from "effect/Layer";
4
- import * as Context from "effect/Context";
5
- import * as Data from "effect/Data";
6
-
7
- //#region src/MimicDataStorage.ts
8
- /**
9
- * @since 0.0.1
10
- * Data storage service interface for Mimic documents.
11
- * Provides pluggable storage adapters with load/save hooks for data transformation.
12
- */
13
- var MimicDataStorage_exports = /* @__PURE__ */ __export({
14
- MimicDataStorageTag: () => MimicDataStorageTag,
15
- StorageDeleteError: () => StorageDeleteError,
16
- StorageLoadError: () => StorageLoadError,
17
- StorageSaveError: () => StorageSaveError,
18
- layer: () => layer,
19
- layerEffect: () => layerEffect,
20
- make: () => make
21
- });
22
- /**
23
- * Error when loading a document from storage fails.
24
- */
25
- var StorageLoadError = class extends Data.TaggedError("StorageLoadError") {
26
- get message() {
27
- return `Failed to load document ${this.documentId}: ${String(this.cause)}`;
28
- }
29
- };
30
- /**
31
- * Error when saving a document to storage fails.
32
- */
33
- var StorageSaveError = class extends Data.TaggedError("StorageSaveError") {
34
- get message() {
35
- return `Failed to save document ${this.documentId}: ${String(this.cause)}`;
36
- }
37
- };
38
- /**
39
- * Error when deleting a document from storage fails.
40
- */
41
- var StorageDeleteError = class extends Data.TaggedError("StorageDeleteError") {
42
- get message() {
43
- return `Failed to delete document ${this.documentId}: ${String(this.cause)}`;
44
- }
45
- };
46
- /**
47
- * Context tag for MimicDataStorage service.
48
- */
49
- var MimicDataStorageTag = class extends Context.Tag("@voidhash/mimic-server-effect/MimicDataStorage")() {};
50
- /**
51
- * Create a MimicDataStorage layer from a storage implementation.
52
- */
53
- const layer = (storage) => Layer.succeed(MimicDataStorageTag, storage);
54
- /**
55
- * Create a MimicDataStorage layer from an Effect that produces a storage implementation.
56
- */
57
- const layerEffect = (effect) => Layer.effect(MimicDataStorageTag, effect);
58
- /**
59
- * Create a simple storage implementation with minimal configuration.
60
- */
61
- const make = (options) => {
62
- var _options$delete, _options$onLoad, _options$onSave;
63
- return {
64
- load: options.load,
65
- save: options.save,
66
- delete: (_options$delete = options.delete) !== null && _options$delete !== void 0 ? _options$delete : (() => Effect.void),
67
- onLoad: (_options$onLoad = options.onLoad) !== null && _options$onLoad !== void 0 ? _options$onLoad : ((state) => Effect.succeed(state)),
68
- onSave: (_options$onSave = options.onSave) !== null && _options$onSave !== void 0 ? _options$onSave : ((state) => Effect.succeed(state))
69
- };
70
- };
71
-
72
- //#endregion
73
- export { MimicDataStorageTag, MimicDataStorage_exports };
74
- //# sourceMappingURL=MimicDataStorage.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MimicDataStorage.mjs","names":[],"sources":["../src/MimicDataStorage.ts"],"sourcesContent":["/**\n * @since 0.0.1\n * Data storage service interface for Mimic documents.\n * Provides pluggable storage adapters with load/save hooks for data transformation.\n */\nimport * as Effect from \"effect/Effect\";\nimport * as Context from \"effect/Context\";\nimport * as Layer from \"effect/Layer\";\nimport * as Data from \"effect/Data\";\n\n// =============================================================================\n// Error Types\n// =============================================================================\n\n/**\n * Error when loading a document from storage fails.\n */\nexport class StorageLoadError extends Data.TaggedError(\"StorageLoadError\")<{\n readonly documentId: string;\n readonly cause: unknown;\n}> {\n override get message(): string {\n return `Failed to load document ${this.documentId}: ${String(this.cause)}`;\n }\n}\n\n/**\n * Error when saving a document to storage fails.\n */\nexport class StorageSaveError extends Data.TaggedError(\"StorageSaveError\")<{\n readonly documentId: string;\n readonly cause: unknown;\n}> {\n override get message(): string {\n return `Failed to save document ${this.documentId}: ${String(this.cause)}`;\n }\n}\n\n/**\n * Error when deleting a document from storage fails.\n */\nexport class StorageDeleteError extends Data.TaggedError(\"StorageDeleteError\")<{\n readonly documentId: string;\n readonly cause: unknown;\n}> {\n override get message(): string {\n return `Failed to delete document ${this.documentId}: ${String(this.cause)}`;\n }\n}\n\n/**\n * Union of all storage errors.\n */\nexport type StorageError = StorageLoadError | StorageSaveError | StorageDeleteError;\n\n// =============================================================================\n// Storage Service Interface\n// =============================================================================\n\n/**\n * Data storage service interface.\n * Implementations can persist documents to various backends (memory, S3, database, etc.)\n */\nexport interface MimicDataStorage {\n /**\n * Load a document's state from storage.\n * @param documentId - The unique identifier for the document\n * @returns The document state, or undefined if not found\n */\n readonly load: (\n documentId: string\n ) => Effect.Effect<unknown | undefined, StorageLoadError>;\n\n /**\n * Save a document's state to storage.\n * @param documentId - The unique identifier for the document\n * @param state - The document state to persist\n */\n readonly save: (\n documentId: string,\n state: unknown\n ) => Effect.Effect<void, StorageSaveError>;\n\n /**\n * Delete a document from storage.\n * @param documentId - The unique identifier for the document\n */\n readonly delete: (\n documentId: string\n ) => Effect.Effect<void, StorageDeleteError>;\n\n /**\n * Transform data after loading from storage.\n * Useful for migrations, decryption, decompression, etc.\n * @param state - The raw state loaded from storage\n * @returns The transformed state\n */\n readonly onLoad: (state: unknown) => Effect.Effect<unknown>;\n\n /**\n * Transform/validate data before saving to storage.\n * Useful for encryption, compression, validation, etc.\n * @param state - The state to be saved\n * @returns The transformed state\n */\n readonly onSave: (state: unknown) => Effect.Effect<unknown>;\n}\n\n// =============================================================================\n// Context Tag\n// =============================================================================\n\n/**\n * Context tag for MimicDataStorage service.\n */\nexport class MimicDataStorageTag extends Context.Tag(\n \"@voidhash/mimic-server-effect/MimicDataStorage\"\n)<MimicDataStorageTag, MimicDataStorage>() {}\n\n// =============================================================================\n// Layer Constructors\n// =============================================================================\n\n/**\n * Create a MimicDataStorage layer from a storage implementation.\n */\nexport const layer = (storage: MimicDataStorage): Layer.Layer<MimicDataStorageTag> =>\n Layer.succeed(MimicDataStorageTag, storage);\n\n/**\n * Create a MimicDataStorage layer from an Effect that produces a storage implementation.\n */\nexport const layerEffect = <E, R>(\n effect: Effect.Effect<MimicDataStorage, E, R>\n): Layer.Layer<MimicDataStorageTag, E, R> =>\n Layer.effect(MimicDataStorageTag, effect);\n\n// =============================================================================\n// Helper Functions\n// =============================================================================\n\n/**\n * Create a simple storage implementation with minimal configuration.\n */\nexport const make = (options: {\n readonly load: (documentId: string) => Effect.Effect<unknown | undefined, StorageLoadError>;\n readonly save: (documentId: string, state: unknown) => Effect.Effect<void, StorageSaveError>;\n readonly delete?: (documentId: string) => Effect.Effect<void, StorageDeleteError>;\n readonly onLoad?: (state: unknown) => Effect.Effect<unknown>;\n readonly onSave?: (state: unknown) => Effect.Effect<unknown>;\n}): MimicDataStorage => ({\n load: options.load,\n save: options.save,\n delete: options.delete ?? (() => Effect.void),\n onLoad: options.onLoad ?? ((state) => Effect.succeed(state)),\n onSave: options.onSave ?? ((state) => Effect.succeed(state)),\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAa,mBAAb,cAAsC,KAAK,YAAY,mBAAmB,CAGvE;CACD,IAAa,UAAkB;AAC7B,SAAO,2BAA2B,KAAK,WAAW,IAAI,OAAO,KAAK,MAAM;;;;;;AAO5E,IAAa,mBAAb,cAAsC,KAAK,YAAY,mBAAmB,CAGvE;CACD,IAAa,UAAkB;AAC7B,SAAO,2BAA2B,KAAK,WAAW,IAAI,OAAO,KAAK,MAAM;;;;;;AAO5E,IAAa,qBAAb,cAAwC,KAAK,YAAY,qBAAqB,CAG3E;CACD,IAAa,UAAkB;AAC7B,SAAO,6BAA6B,KAAK,WAAW,IAAI,OAAO,KAAK,MAAM;;;;;;AAqE9E,IAAa,sBAAb,cAAyC,QAAQ,IAC/C,iDACD,EAAyC,CAAC;;;;AAS3C,MAAa,SAAS,YACpB,MAAM,QAAQ,qBAAqB,QAAQ;;;;AAK7C,MAAa,eACX,WAEA,MAAM,OAAO,qBAAqB,OAAO;;;;AAS3C,MAAa,QAAQ,YAMG;;QAAC;EACvB,MAAM,QAAQ;EACd,MAAM,QAAQ;EACd,2BAAQ,QAAQ,0EAAiB,OAAO;EACxC,2BAAQ,QAAQ,qEAAY,UAAU,OAAO,QAAQ,MAAM;EAC3D,2BAAQ,QAAQ,qEAAY,UAAU,OAAO,QAAQ,MAAM;EAC5D"}