@verdant-web/store 3.3.2 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/dist/bundle/index.js +8 -8
  2. package/dist/bundle/index.js.map +4 -4
  3. package/dist/esm/BackoffScheduler.js.map +1 -1
  4. package/dist/esm/IDBService.js.map +1 -1
  5. package/dist/esm/UndoHistory.js.map +1 -1
  6. package/dist/esm/__tests__/documents.test.js.map +1 -1
  7. package/dist/esm/__tests__/queries.test.js.map +1 -1
  8. package/dist/esm/backup.js.map +1 -1
  9. package/dist/esm/client/Client.d.ts +2 -24
  10. package/dist/esm/client/Client.js +7 -0
  11. package/dist/esm/client/Client.js.map +1 -1
  12. package/dist/esm/client/ClientDescriptor.js.map +1 -1
  13. package/dist/esm/entities/Entity.js.map +1 -1
  14. package/dist/esm/entities/EntityCache.js.map +1 -1
  15. package/dist/esm/entities/EntityMetadata.d.ts +2 -2
  16. package/dist/esm/entities/EntityMetadata.js.map +1 -1
  17. package/dist/esm/entities/EntityStore.d.ts +1 -0
  18. package/dist/esm/entities/EntityStore.js.map +1 -1
  19. package/dist/esm/entities/OperationBatcher.js.map +1 -1
  20. package/dist/esm/files/EntityFile.js.map +1 -1
  21. package/dist/esm/files/FileManager.d.ts +1 -0
  22. package/dist/esm/files/FileManager.js +3 -0
  23. package/dist/esm/files/FileManager.js.map +1 -1
  24. package/dist/esm/files/FileStorage.js.map +1 -1
  25. package/dist/esm/files/utils.js.map +1 -1
  26. package/dist/esm/idb.js.map +1 -1
  27. package/dist/esm/metadata/AckInfoStore.js.map +1 -1
  28. package/dist/esm/metadata/BaselinesStore.d.ts +4 -4
  29. package/dist/esm/metadata/LocalReplicaStore.js.map +1 -1
  30. package/dist/esm/metadata/MessageCreator.js.map +1 -1
  31. package/dist/esm/metadata/Metadata.d.ts +1 -1
  32. package/dist/esm/metadata/Metadata.js.map +1 -1
  33. package/dist/esm/metadata/OperationsStore.js.map +1 -1
  34. package/dist/esm/metadata/SchemaStore.js.map +1 -1
  35. package/dist/esm/metadata/openMetadataDatabase.js.map +1 -1
  36. package/dist/esm/migration/db.js.map +1 -1
  37. package/dist/esm/migration/openDatabase.js.map +1 -1
  38. package/dist/esm/migration/paths.js.map +1 -1
  39. package/dist/esm/queries/BaseQuery.js.map +1 -1
  40. package/dist/esm/queries/QueryCache.js.map +1 -1
  41. package/dist/esm/queries/QueryableStorage.js.map +1 -1
  42. package/dist/esm/queries/dbQueries.js.map +1 -1
  43. package/dist/esm/queries/keys.js.map +1 -1
  44. package/dist/esm/queries/ranges.js.map +1 -1
  45. package/dist/esm/queries/utils.js.map +1 -1
  46. package/dist/esm/sync/FileSync.js.map +1 -1
  47. package/dist/esm/sync/Heartbeat.js.map +1 -1
  48. package/dist/esm/sync/PresenceManager.js.map +1 -1
  49. package/dist/esm/sync/PushPullSync.js.map +1 -1
  50. package/dist/esm/sync/ServerSyncEndpointProvider.js.map +1 -1
  51. package/dist/esm/sync/Sync.d.ts +1 -1
  52. package/dist/esm/sync/Sync.js.map +1 -1
  53. package/dist/esm/sync/WebSocketSync.js.map +1 -1
  54. package/package.json +9 -10
  55. package/src/client/Client.ts +8 -1
  56. package/src/files/FileManager.ts +4 -0
  57. package/src/sync/Sync.ts +2 -2
  58. package/dist/cjs/BackoffScheduler.d.ts +0 -19
  59. package/dist/cjs/BackoffScheduler.js +0 -45
  60. package/dist/cjs/BackoffScheduler.js.map +0 -1
  61. package/dist/cjs/DocumentManager.d.ts +0 -28
  62. package/dist/cjs/DocumentManager.js +0 -45
  63. package/dist/cjs/DocumentManager.js.map +0 -1
  64. package/dist/cjs/FakeWeakRef.d.ts +0 -11
  65. package/dist/cjs/FakeWeakRef.js +0 -19
  66. package/dist/cjs/FakeWeakRef.js.map +0 -1
  67. package/dist/cjs/IDBService.d.ts +0 -30
  68. package/dist/cjs/IDBService.js +0 -101
  69. package/dist/cjs/IDBService.js.map +0 -1
  70. package/dist/cjs/UndoHistory.d.ts +0 -16
  71. package/dist/cjs/UndoHistory.js +0 -55
  72. package/dist/cjs/UndoHistory.js.map +0 -1
  73. package/dist/cjs/__tests__/batching.test.d.ts +0 -1
  74. package/dist/cjs/__tests__/batching.test.js +0 -47
  75. package/dist/cjs/__tests__/batching.test.js.map +0 -1
  76. package/dist/cjs/__tests__/documents.test.d.ts +0 -1
  77. package/dist/cjs/__tests__/documents.test.js +0 -468
  78. package/dist/cjs/__tests__/documents.test.js.map +0 -1
  79. package/dist/cjs/__tests__/fixtures/testStorage.d.ts +0 -76
  80. package/dist/cjs/__tests__/fixtures/testStorage.js +0 -96
  81. package/dist/cjs/__tests__/fixtures/testStorage.js.map +0 -1
  82. package/dist/cjs/__tests__/legacyOids.test.d.ts +0 -1
  83. package/dist/cjs/__tests__/legacyOids.test.js +0 -354
  84. package/dist/cjs/__tests__/legacyOids.test.js.map +0 -1
  85. package/dist/cjs/__tests__/mutations.test.d.ts +0 -1
  86. package/dist/cjs/__tests__/mutations.test.js +0 -48
  87. package/dist/cjs/__tests__/mutations.test.js.map +0 -1
  88. package/dist/cjs/__tests__/queries.test.d.ts +0 -1
  89. package/dist/cjs/__tests__/queries.test.js +0 -323
  90. package/dist/cjs/__tests__/queries.test.js.map +0 -1
  91. package/dist/cjs/__tests__/setup/indexedDB.d.ts +0 -1
  92. package/dist/cjs/__tests__/setup/indexedDB.js +0 -16
  93. package/dist/cjs/__tests__/setup/indexedDB.js.map +0 -1
  94. package/dist/cjs/__tests__/undo.test.d.ts +0 -1
  95. package/dist/cjs/__tests__/undo.test.js +0 -94
  96. package/dist/cjs/__tests__/undo.test.js.map +0 -1
  97. package/dist/cjs/backup.d.ts +0 -10
  98. package/dist/cjs/backup.js +0 -58
  99. package/dist/cjs/backup.js.map +0 -1
  100. package/dist/cjs/client/Client.d.ts +0 -120
  101. package/dist/cjs/client/Client.js +0 -300
  102. package/dist/cjs/client/Client.js.map +0 -1
  103. package/dist/cjs/client/ClientDescriptor.d.ts +0 -76
  104. package/dist/cjs/client/ClientDescriptor.js +0 -213
  105. package/dist/cjs/client/ClientDescriptor.js.map +0 -1
  106. package/dist/cjs/client/constants.d.ts +0 -1
  107. package/dist/cjs/client/constants.js +0 -5
  108. package/dist/cjs/client/constants.js.map +0 -1
  109. package/dist/cjs/constants.d.ts +0 -1
  110. package/dist/cjs/constants.js +0 -5
  111. package/dist/cjs/constants.js.map +0 -1
  112. package/dist/cjs/context.d.ts +0 -38
  113. package/dist/cjs/context.js +0 -3
  114. package/dist/cjs/context.js.map +0 -1
  115. package/dist/cjs/entities/Entity.d.ts +0 -148
  116. package/dist/cjs/entities/Entity.js +0 -711
  117. package/dist/cjs/entities/Entity.js.map +0 -1
  118. package/dist/cjs/entities/Entity.test.d.ts +0 -1
  119. package/dist/cjs/entities/Entity.test.js +0 -194
  120. package/dist/cjs/entities/Entity.test.js.map +0 -1
  121. package/dist/cjs/entities/EntityCache.d.ts +0 -15
  122. package/dist/cjs/entities/EntityCache.js +0 -39
  123. package/dist/cjs/entities/EntityCache.js.map +0 -1
  124. package/dist/cjs/entities/EntityMetadata.d.ts +0 -68
  125. package/dist/cjs/entities/EntityMetadata.js +0 -261
  126. package/dist/cjs/entities/EntityMetadata.js.map +0 -1
  127. package/dist/cjs/entities/EntityStore.d.ts +0 -80
  128. package/dist/cjs/entities/EntityStore.js +0 -352
  129. package/dist/cjs/entities/EntityStore.js.map +0 -1
  130. package/dist/cjs/entities/OperationBatcher.d.ts +0 -52
  131. package/dist/cjs/entities/OperationBatcher.js +0 -165
  132. package/dist/cjs/entities/OperationBatcher.js.map +0 -1
  133. package/dist/cjs/entities/types.d.ts +0 -103
  134. package/dist/cjs/entities/types.js +0 -3
  135. package/dist/cjs/entities/types.js.map +0 -1
  136. package/dist/cjs/files/EntityFile.d.ts +0 -35
  137. package/dist/cjs/files/EntityFile.js +0 -81
  138. package/dist/cjs/files/EntityFile.js.map +0 -1
  139. package/dist/cjs/files/FileManager.d.ts +0 -46
  140. package/dist/cjs/files/FileManager.js +0 -174
  141. package/dist/cjs/files/FileManager.js.map +0 -1
  142. package/dist/cjs/files/FileStorage.d.ts +0 -39
  143. package/dist/cjs/files/FileStorage.js +0 -110
  144. package/dist/cjs/files/FileStorage.js.map +0 -1
  145. package/dist/cjs/files/utils.d.ts +0 -10
  146. package/dist/cjs/files/utils.js +0 -62
  147. package/dist/cjs/files/utils.js.map +0 -1
  148. package/dist/cjs/files/utils.test.d.ts +0 -1
  149. package/dist/cjs/files/utils.test.js +0 -81
  150. package/dist/cjs/files/utils.test.js.map +0 -1
  151. package/dist/cjs/idb.d.ts +0 -13
  152. package/dist/cjs/idb.js +0 -158
  153. package/dist/cjs/idb.js.map +0 -1
  154. package/dist/cjs/index.d.ts +0 -23
  155. package/dist/cjs/index.js +0 -25
  156. package/dist/cjs/index.js.map +0 -1
  157. package/dist/cjs/metadata/AckInfoStore.d.ts +0 -10
  158. package/dist/cjs/metadata/AckInfoStore.js +0 -26
  159. package/dist/cjs/metadata/AckInfoStore.js.map +0 -1
  160. package/dist/cjs/metadata/BaselinesStore.d.ts +0 -40
  161. package/dist/cjs/metadata/BaselinesStore.js +0 -106
  162. package/dist/cjs/metadata/BaselinesStore.js.map +0 -1
  163. package/dist/cjs/metadata/LocalReplicaStore.d.ts +0 -18
  164. package/dist/cjs/metadata/LocalReplicaStore.js +0 -62
  165. package/dist/cjs/metadata/LocalReplicaStore.js.map +0 -1
  166. package/dist/cjs/metadata/MessageCreator.d.ts +0 -19
  167. package/dist/cjs/metadata/MessageCreator.js +0 -128
  168. package/dist/cjs/metadata/MessageCreator.js.map +0 -1
  169. package/dist/cjs/metadata/Metadata.d.ts +0 -135
  170. package/dist/cjs/metadata/Metadata.js +0 -408
  171. package/dist/cjs/metadata/Metadata.js.map +0 -1
  172. package/dist/cjs/metadata/OperationsStore.d.ts +0 -62
  173. package/dist/cjs/metadata/OperationsStore.js +0 -179
  174. package/dist/cjs/metadata/OperationsStore.js.map +0 -1
  175. package/dist/cjs/metadata/SchemaStore.d.ts +0 -9
  176. package/dist/cjs/metadata/SchemaStore.js +0 -39
  177. package/dist/cjs/metadata/SchemaStore.js.map +0 -1
  178. package/dist/cjs/metadata/openMetadataDatabase.d.ts +0 -19
  179. package/dist/cjs/metadata/openMetadataDatabase.js +0 -220
  180. package/dist/cjs/metadata/openMetadataDatabase.js.map +0 -1
  181. package/dist/cjs/migration/db.d.ts +0 -8
  182. package/dist/cjs/migration/db.js +0 -112
  183. package/dist/cjs/migration/db.js.map +0 -1
  184. package/dist/cjs/migration/errors.d.ts +0 -5
  185. package/dist/cjs/migration/errors.js +0 -12
  186. package/dist/cjs/migration/errors.js.map +0 -1
  187. package/dist/cjs/migration/openDatabase.d.ts +0 -20
  188. package/dist/cjs/migration/openDatabase.js +0 -468
  189. package/dist/cjs/migration/openDatabase.js.map +0 -1
  190. package/dist/cjs/migration/paths.d.ts +0 -6
  191. package/dist/cjs/migration/paths.js +0 -53
  192. package/dist/cjs/migration/paths.js.map +0 -1
  193. package/dist/cjs/migration/paths.test.d.ts +0 -1
  194. package/dist/cjs/migration/paths.test.js +0 -91
  195. package/dist/cjs/migration/paths.test.js.map +0 -1
  196. package/dist/cjs/queries/BaseQuery.d.ts +0 -53
  197. package/dist/cjs/queries/BaseQuery.js +0 -148
  198. package/dist/cjs/queries/BaseQuery.js.map +0 -1
  199. package/dist/cjs/queries/CollectionQueries.d.ts +0 -55
  200. package/dist/cjs/queries/CollectionQueries.js +0 -92
  201. package/dist/cjs/queries/CollectionQueries.js.map +0 -1
  202. package/dist/cjs/queries/FindAllQuery.d.ts +0 -12
  203. package/dist/cjs/queries/FindAllQuery.js +0 -44
  204. package/dist/cjs/queries/FindAllQuery.js.map +0 -1
  205. package/dist/cjs/queries/FindInfiniteQuery.d.ts +0 -19
  206. package/dist/cjs/queries/FindInfiniteQuery.js +0 -70
  207. package/dist/cjs/queries/FindInfiniteQuery.js.map +0 -1
  208. package/dist/cjs/queries/FindOneQuery.d.ts +0 -12
  209. package/dist/cjs/queries/FindOneQuery.js +0 -43
  210. package/dist/cjs/queries/FindOneQuery.js.map +0 -1
  211. package/dist/cjs/queries/FindPageQuery.d.ts +0 -24
  212. package/dist/cjs/queries/FindPageQuery.js +0 -77
  213. package/dist/cjs/queries/FindPageQuery.js.map +0 -1
  214. package/dist/cjs/queries/GetQuery.d.ts +0 -10
  215. package/dist/cjs/queries/GetQuery.js +0 -30
  216. package/dist/cjs/queries/GetQuery.js.map +0 -1
  217. package/dist/cjs/queries/QueryCache.d.ts +0 -17
  218. package/dist/cjs/queries/QueryCache.js +0 -46
  219. package/dist/cjs/queries/QueryCache.js.map +0 -1
  220. package/dist/cjs/queries/QueryableStorage.d.ts +0 -20
  221. package/dist/cjs/queries/QueryableStorage.js +0 -94
  222. package/dist/cjs/queries/QueryableStorage.js.map +0 -1
  223. package/dist/cjs/queries/dbQueries.d.ts +0 -22
  224. package/dist/cjs/queries/dbQueries.js +0 -136
  225. package/dist/cjs/queries/dbQueries.js.map +0 -1
  226. package/dist/cjs/queries/keys.d.ts +0 -10
  227. package/dist/cjs/queries/keys.js +0 -34
  228. package/dist/cjs/queries/keys.js.map +0 -1
  229. package/dist/cjs/queries/ranges.d.ts +0 -2
  230. package/dist/cjs/queries/ranges.js +0 -70
  231. package/dist/cjs/queries/ranges.js.map +0 -1
  232. package/dist/cjs/queries/types.d.ts +0 -6
  233. package/dist/cjs/queries/types.js +0 -3
  234. package/dist/cjs/queries/types.js.map +0 -1
  235. package/dist/cjs/queries/utils.d.ts +0 -3
  236. package/dist/cjs/queries/utils.js +0 -25
  237. package/dist/cjs/queries/utils.js.map +0 -1
  238. package/dist/cjs/sync/FileSync.d.ts +0 -24
  239. package/dist/cjs/sync/FileSync.js +0 -87
  240. package/dist/cjs/sync/FileSync.js.map +0 -1
  241. package/dist/cjs/sync/Heartbeat.d.ts +0 -25
  242. package/dist/cjs/sync/Heartbeat.js +0 -64
  243. package/dist/cjs/sync/Heartbeat.js.map +0 -1
  244. package/dist/cjs/sync/PresenceManager.d.ts +0 -55
  245. package/dist/cjs/sync/PresenceManager.js +0 -126
  246. package/dist/cjs/sync/PresenceManager.js.map +0 -1
  247. package/dist/cjs/sync/PushPullSync.d.ts +0 -39
  248. package/dist/cjs/sync/PushPullSync.js +0 -159
  249. package/dist/cjs/sync/PushPullSync.js.map +0 -1
  250. package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +0 -34
  251. package/dist/cjs/sync/ServerSyncEndpointProvider.js +0 -69
  252. package/dist/cjs/sync/ServerSyncEndpointProvider.js.map +0 -1
  253. package/dist/cjs/sync/Sync.d.ts +0 -160
  254. package/dist/cjs/sync/Sync.js +0 -293
  255. package/dist/cjs/sync/Sync.js.map +0 -1
  256. package/dist/cjs/sync/WebSocketSync.d.ts +0 -44
  257. package/dist/cjs/sync/WebSocketSync.js +0 -221
  258. package/dist/cjs/sync/WebSocketSync.js.map +0 -1
  259. package/dist/cjs/types.d.ts +0 -12
  260. package/dist/cjs/types.js +0 -3
  261. package/dist/cjs/types.js.map +0 -1
  262. package/dist/cjs/utils/Disposable.d.ts +0 -6
  263. package/dist/cjs/utils/Disposable.js +0 -19
  264. package/dist/cjs/utils/Disposable.js.map +0 -1
  265. package/dist/cjs/utils/Resolvable.d.ts +0 -8
  266. package/dist/cjs/utils/Resolvable.js +0 -23
  267. package/dist/cjs/utils/Resolvable.js.map +0 -1
  268. package/dist/cjs/vanilla.d.ts +0 -1
  269. package/dist/cjs/vanilla.js +0 -28
  270. package/dist/cjs/vanilla.js.map +0 -1
  271. package/dist/tsconfig-cjs.tsbuildinfo +0 -1
  272. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,468 +0,0 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- const common_1 = require("@verdant-web/common");
15
- const vitest_1 = require("vitest");
16
- const testStorage_js_1 = require("./fixtures/testStorage.js");
17
- const index_js_1 = require("../index.js");
18
- async function waitForStoragePropagation(mock) {
19
- await new Promise((resolve, reject) => {
20
- // timeout after 3s waiting
21
- const timeout = setTimeout(() => reject(new Error('Waiting for storage change timed out')), 3000);
22
- const interval = setInterval(() => {
23
- if (mock.mock.calls.length > 0) {
24
- clearInterval(interval);
25
- clearTimeout(timeout);
26
- resolve();
27
- }
28
- }, 0);
29
- });
30
- }
31
- (0, vitest_1.describe)('storage documents', () => {
32
- (0, vitest_1.it)('should fill in default values', async () => {
33
- const storage = await (0, testStorage_js_1.createTestStorage)();
34
- const item = await storage.todos.put({
35
- content: 'item',
36
- category: 'general',
37
- attachments: [
38
- {
39
- name: 'thing',
40
- },
41
- ],
42
- });
43
- (0, vitest_1.expect)(item.get('id')).toBeDefined();
44
- (0, vitest_1.expect)(item.get('done')).toBe(false);
45
- (0, vitest_1.expect)(item.get('tags').length).toBe(0);
46
- (0, vitest_1.expect)(item.get('attachments').get(0).get('test')).toBe(1);
47
- });
48
- (0, vitest_1.it)('should have a stable identity across different queries when subscribed', async () => {
49
- const storage = await (0, testStorage_js_1.createTestStorage)({
50
- // log: console.log,
51
- });
52
- const item1 = await storage.todos.put({
53
- content: 'item 1',
54
- done: false,
55
- tags: [],
56
- category: 'general',
57
- attachments: [],
58
- });
59
- await storage.todos.put({
60
- content: 'item 2',
61
- done: true,
62
- tags: [],
63
- category: 'general',
64
- attachments: [],
65
- });
66
- const singleItemQuery = storage.todos.get(item1.get('id'));
67
- const singleItemResult = await singleItemQuery.resolved;
68
- (0, vitest_1.expect)(singleItemResult).toBeTruthy();
69
- (0, common_1.assert)(!!singleItemResult);
70
- singleItemResult.subscribe('change', vitest_1.vi.fn());
71
- const allItemsQuery = storage.todos.findAll();
72
- const allItemsResult = await allItemsQuery.resolved;
73
- const allItemsReferenceToItem1 = allItemsResult.find((item) => item.get('id') === item1.get('id'));
74
- (0, vitest_1.expect)(singleItemResult).toBe(allItemsReferenceToItem1);
75
- });
76
- (0, vitest_1.it)('should immediately reflect mutations', async () => {
77
- const storage = await (0, testStorage_js_1.createTestStorage)();
78
- const item1 = await storage.todos.put({
79
- content: 'item 1',
80
- done: false,
81
- tags: [],
82
- category: 'general',
83
- attachments: [],
84
- });
85
- item1.set('done', true);
86
- (0, vitest_1.expect)(item1.get('done')).toBe(true);
87
- });
88
- (0, vitest_1.it)('should notify about changes', async () => {
89
- const storage = await (0, testStorage_js_1.createTestStorage)();
90
- const item1 = await storage.todos.put({
91
- content: 'item 1',
92
- done: false,
93
- tags: [],
94
- category: 'general',
95
- attachments: [],
96
- });
97
- const liveItem1 = await storage.todos.get(item1.get('id')).resolved;
98
- (0, vitest_1.expect)(liveItem1).toBeTruthy();
99
- (0, common_1.assert)(!!liveItem1);
100
- const callback = vitest_1.vi.fn();
101
- liveItem1.subscribe('change', callback);
102
- liveItem1.set('done', true);
103
- liveItem1.set('content', 'item 1 updated');
104
- await waitForStoragePropagation(callback);
105
- // only 1 callback - changes are batched.
106
- // expect(callback).toBeCalledTimes(1); // FIXME: called twice, once for immediate in-memory change and once after propagation. can this be 1?
107
- (0, vitest_1.expect)(liveItem1.getSnapshot()).toEqual({
108
- id: liveItem1.get('id'),
109
- content: 'item 1 updated',
110
- done: true,
111
- tags: [],
112
- category: 'general',
113
- attachments: [],
114
- });
115
- const callbackDeep = vitest_1.vi.fn();
116
- liveItem1.subscribe('changeDeep', callbackDeep);
117
- liveItem1.update({
118
- tags: ['tag 1', 'tag 2'],
119
- });
120
- await waitForStoragePropagation(callbackDeep);
121
- (0, vitest_1.expect)(liveItem1.getSnapshot().tags).toEqual(['tag 1', 'tag 2']);
122
- });
123
- (0, vitest_1.it)('should expose array mutators on nested arrays', async () => {
124
- const storage = await (0, testStorage_js_1.createTestStorage)();
125
- const item1 = await storage.todos.put({
126
- content: 'item 1',
127
- done: false,
128
- tags: [],
129
- category: 'general',
130
- attachments: [],
131
- });
132
- const callback = vitest_1.vi.fn(() => {
133
- var x;
134
- });
135
- item1.get('tags').subscribe('change', callback);
136
- item1.get('tags').push('tag 1');
137
- item1.get('tags').push('tag 2');
138
- item1.get('tags').push('tag 3');
139
- item1.get('tags').move(1, 2);
140
- // fields are immediately updated
141
- (0, vitest_1.expect)(item1.get('tags').get(0)).toEqual('tag 1');
142
- (0, vitest_1.expect)(item1.get('tags').get(1)).toEqual('tag 3');
143
- (0, vitest_1.expect)(item1.get('tags').get(2)).toEqual('tag 2');
144
- await waitForStoragePropagation(callback);
145
- (0, vitest_1.expect)(callback).toBeCalledTimes(4);
146
- (0, vitest_1.expect)(item1.getSnapshot()).toEqual({
147
- id: item1.get('id'),
148
- content: 'item 1',
149
- done: false,
150
- tags: ['tag 1', 'tag 3', 'tag 2'],
151
- category: 'general',
152
- attachments: [],
153
- });
154
- });
155
- (0, vitest_1.it)('should expose array accessors on nested arrays', async () => {
156
- const storage = await (0, testStorage_js_1.createTestStorage)();
157
- const item1 = await storage.todos.put({
158
- content: 'item 1',
159
- done: false,
160
- tags: ['tag 1', 'tag 2'],
161
- category: 'general',
162
- attachments: [
163
- {
164
- name: 'attachment 1',
165
- },
166
- ],
167
- });
168
- for (const attachment of item1.get('attachments')) {
169
- (0, vitest_1.expect)(attachment.get('name')).toBe('attachment 1');
170
- }
171
- let i = 0;
172
- for (const tag of item1.get('tags')) {
173
- (0, vitest_1.expect)(tag).toBe('tag ' + ++i);
174
- }
175
- (0, vitest_1.expect)(item1.get('tags').filter((tag) => tag === 'tag 1')).toEqual([
176
- 'tag 1',
177
- ]);
178
- item1.get('attachments').push({
179
- name: 'attachment 2',
180
- });
181
- (0, vitest_1.expect)(item1.get('attachments').getSnapshot()).toEqual([
182
- { name: 'attachment 1', test: 1 },
183
- { name: 'attachment 2', test: 1 },
184
- ]);
185
- });
186
- (0, vitest_1.it)('should provide a reasonable way to interact with unknown data', async () => {
187
- /**
188
- * 'any' field types should basically just stop type checking, but still
189
- * provide full reactive entity access for nested data.
190
- */
191
- const storage = await (0, testStorage_js_1.createTestStorage)();
192
- const item1 = await storage.weirds.put({
193
- weird: {
194
- foo: 'bar',
195
- baz: [
196
- {
197
- corge: 3,
198
- },
199
- ],
200
- },
201
- map: {},
202
- objectMap: {},
203
- });
204
- (0, vitest_1.expect)(item1.get('weird').get('foo')).toBe('bar');
205
- (0, vitest_1.expect)(item1.get('weird').get('baz').get(0).get('corge')).toBe(3);
206
- (0, vitest_1.expect)(item1.get('weird').getSnapshot()).toEqual({
207
- foo: 'bar',
208
- baz: [{ corge: 3 }],
209
- });
210
- item1.get('weird').get('baz').push({ corge: 4 });
211
- (0, vitest_1.expect)(item1.get('weird').get('baz').getSnapshot()).toEqual([
212
- { corge: 3 },
213
- { corge: 4 },
214
- ]);
215
- });
216
- (0, vitest_1.it)('should provide access and updates for map-type fields', async () => {
217
- const storage = await (0, testStorage_js_1.createTestStorage)();
218
- const item1 = await storage.weirds.put({
219
- weird: null,
220
- map: {
221
- foo: 'bar',
222
- baz: 'qux',
223
- },
224
- objectMap: {
225
- foo: {
226
- content: 'bar',
227
- },
228
- },
229
- });
230
- (0, vitest_1.expect)(item1.get('map').get('foo')).toBe('bar');
231
- (0, vitest_1.expect)(item1.get('map').get('baz')).toBe('qux');
232
- (0, vitest_1.expect)(item1.get('map').getSnapshot()).toEqual({
233
- foo: 'bar',
234
- baz: 'qux',
235
- });
236
- (0, vitest_1.expect)(item1.get('objectMap').get('foo').get('content')).toBe('bar');
237
- (0, vitest_1.expect)(item1.get('objectMap').get('baz')).toBe(undefined);
238
- item1.get('objectMap').set('baz', { content: 'qux' });
239
- (0, vitest_1.expect)(item1.get('objectMap').get('baz').get('content')).toBe('qux');
240
- });
241
- (0, vitest_1.it)('should merge .update fields and not discard undefined ones', async () => {
242
- const storage = await (0, testStorage_js_1.createTestStorage)();
243
- const item1 = await storage.weirds.put({
244
- weird: null,
245
- map: {
246
- foo: 'bar',
247
- baz: 'qux',
248
- },
249
- objectMap: {
250
- foo: {
251
- content: 'bar',
252
- },
253
- },
254
- });
255
- item1.update({
256
- weird: 'foo',
257
- });
258
- (0, vitest_1.expect)(item1.get('weird')).toBe('foo');
259
- (0, vitest_1.expect)(item1.get('map').get('foo')).toBe('bar');
260
- item1.update({
261
- weird: undefined,
262
- });
263
- (0, vitest_1.expect)(item1.get('weird')).toBe('foo');
264
- });
265
- (0, vitest_1.it)('should delete undefined fields in .update if merge is false', async () => {
266
- const storage = await (0, testStorage_js_1.createTestStorage)();
267
- const item1 = await storage.weirds.put({
268
- weird: {
269
- bar: 2,
270
- qux: 3,
271
- },
272
- map: {
273
- foo: 'bar',
274
- baz: 'qux',
275
- },
276
- objectMap: {
277
- foo: {
278
- content: 'bar',
279
- },
280
- },
281
- });
282
- item1.get('weird').update({
283
- bar: 1,
284
- }, {
285
- merge: false,
286
- });
287
- const weird = item1.get('weird');
288
- (0, vitest_1.expect)(weird.getSnapshot()).toMatchInlineSnapshot(`
289
- {
290
- "bar": 1,
291
- }
292
- `);
293
- });
294
- (0, vitest_1.it)('should not allow merge: false in strict schema field updates', async () => {
295
- const storage = await (0, testStorage_js_1.createTestStorage)();
296
- const item1 = await storage.todos.put({
297
- content: 'item 1',
298
- done: false,
299
- tags: [],
300
- category: 'general',
301
- attachments: [],
302
- });
303
- (0, vitest_1.expect)(() => {
304
- item1.update({ content: 'bar' }, { merge: false });
305
- }).toThrowErrorMatchingInlineSnapshot(`[Error: Cannot use .update without merge if the field has a strict schema type. merge: false is only available on "any" or "map" types.]`);
306
- });
307
- (0, vitest_1.it)('should apply defaults to created sub-objects in .update', async () => {
308
- const storage = await (0, testStorage_js_1.createTestStorage)();
309
- const item1 = await storage.todos.put({
310
- content: 'item 1',
311
- done: false,
312
- tags: [],
313
- category: 'general',
314
- attachments: [],
315
- });
316
- item1.update({
317
- attachments: [
318
- {
319
- name: 'attachment 1',
320
- },
321
- ],
322
- });
323
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('test')).toBe(1);
324
- });
325
- (0, vitest_1.it)('should remove items from list when .delete is called', async () => {
326
- const storage = await (0, testStorage_js_1.createTestStorage)();
327
- const item1 = await storage.todos.put({
328
- content: 'item 1',
329
- done: false,
330
- tags: [],
331
- category: 'general',
332
- attachments: [],
333
- });
334
- item1.get('attachments').push({
335
- name: 'attachment 1',
336
- });
337
- item1.get('attachments').push({
338
- name: 'attachment 2',
339
- });
340
- item1.get('attachments').push({
341
- name: 'attachment 3',
342
- });
343
- item1.get('attachments').delete(1);
344
- (0, vitest_1.expect)(item1.get('attachments').length).toBe(2);
345
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('name')).toBe('attachment 1');
346
- (0, vitest_1.expect)(item1.get('attachments').get(1).get('name')).toBe('attachment 3');
347
- // should work on lists which are not field-validated
348
- const item2 = await storage.weirds.put({
349
- weird: ['foo', 'bar', 'baz'],
350
- });
351
- item2.get('weird').delete(1);
352
- (0, vitest_1.expect)(item2.get('weird').length).toBe(2);
353
- (0, vitest_1.expect)(item2.get('weird').get(0)).toBe('foo');
354
- (0, vitest_1.expect)(item2.get('weird').get(1)).toBe('baz');
355
- });
356
- (0, vitest_1.it)('should expose updatedAt', async () => {
357
- const storage = await (0, testStorage_js_1.createTestStorage)({
358
- // log: console.log,
359
- });
360
- let time = new Date();
361
- vitest_1.vitest.setSystemTime(time);
362
- const item1 = await storage.todos.put({
363
- content: 'item 1',
364
- done: false,
365
- tags: [],
366
- category: 'general',
367
- attachments: [],
368
- });
369
- (0, vitest_1.expect)(item1.updatedAt).toEqual(time.getTime());
370
- time = new Date(time.getTime() + 1000);
371
- vitest_1.vitest.setSystemTime(time);
372
- item1.update({
373
- content: 'item 1 updated',
374
- });
375
- (0, vitest_1.expect)(item1.updatedAt).toEqual(time.getTime());
376
- // works on nested fields
377
- time = new Date(time.getTime() + 1000);
378
- vitest_1.vitest.setSystemTime(time);
379
- item1.get('attachments').push({
380
- name: 'attachment 1',
381
- });
382
- (0, vitest_1.expect)(item1.deepUpdatedAt).toEqual(time.getTime());
383
- time = new Date(time.getTime() + 1000);
384
- vitest_1.vitest.setSystemTime(time);
385
- item1.get('attachments').get(0).set('name', 'attachment 1 updated');
386
- (0, vitest_1.expect)(item1.deepUpdatedAt).toEqual(time.getTime());
387
- // but other items have their own updatedAt
388
- (0, vitest_1.expect)(item1.get('tags').deepUpdatedAt).not.toEqual(time.getTime());
389
- });
390
- (0, vitest_1.it)('should allow creating a new document from another document snapshot', async () => {
391
- const storage = await (0, testStorage_js_1.createTestStorage)();
392
- const item1 = await storage.todos.put({
393
- content: 'item 1',
394
- done: false,
395
- tags: ['tag 1'],
396
- category: 'general',
397
- attachments: [
398
- {
399
- name: 'attachment 1',
400
- },
401
- ],
402
- });
403
- const _a = item1.getSnapshot(), { id } = _a, snapshot = __rest(_a, ["id"]);
404
- const item2 = await storage.todos.put(snapshot);
405
- (0, vitest_1.expect)(item2.get('tags').length).toBe(1);
406
- (0, vitest_1.expect)(item2.get('attachments').length).toBe(1);
407
- item2.get('attachments').get(0).set('name', 'attachment 2');
408
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('name')).toBe('attachment 1');
409
- });
410
- (0, vitest_1.it)('should not allow modifying the primary key', async () => {
411
- const storage = await (0, testStorage_js_1.createTestStorage)();
412
- const item1 = await storage.todos.put({
413
- content: 'item 1',
414
- done: false,
415
- tags: ['tag 1'],
416
- category: 'general',
417
- attachments: [
418
- {
419
- name: 'attachment 1',
420
- },
421
- ],
422
- });
423
- (0, vitest_1.expect)(() => {
424
- item1.set('id', 'foo');
425
- }).toThrowErrorMatchingInlineSnapshot(`[Error: Cannot set readonly key id]`);
426
- });
427
- (0, vitest_1.it)('should properly handle pushing to a list of files', async () => {
428
- const storage = await (0, testStorage_js_1.createTestStorage)();
429
- const weird = await storage.weirds.put({});
430
- const fileList = weird.get('fileList');
431
- fileList.subscribe('change', vitest_1.vi.fn());
432
- function createTestFile() {
433
- return new window.File(['d(⌐□_□)b'], 'test.txt', {
434
- type: 'text/plain',
435
- });
436
- }
437
- fileList.push(createTestFile());
438
- // fileList.get(0).subscribe('change', vi.fn());
439
- fileList.push(createTestFile());
440
- (0, vitest_1.expect)(fileList.get(0)).toBeInstanceOf(index_js_1.EntityFile);
441
- (0, vitest_1.expect)(fileList.get(1)).toBeInstanceOf(index_js_1.EntityFile);
442
- });
443
- (0, vitest_1.it)('should move files by reference in a list', async () => {
444
- const storage = await (0, testStorage_js_1.createTestStorage)();
445
- const weird = await storage.weirds.put({});
446
- const fileList = weird.get('fileList');
447
- fileList.subscribe('change', vitest_1.vi.fn());
448
- function createTestFile() {
449
- return new window.File(['d(⌐□_□)b'], 'test.txt', {
450
- type: 'text/plain',
451
- });
452
- }
453
- const file1 = createTestFile();
454
- const file2 = createTestFile();
455
- const file3 = createTestFile();
456
- fileList.push(file1);
457
- fileList.push(file2);
458
- fileList.push(file3);
459
- const file1Ref = fileList.get(0);
460
- const file2Ref = fileList.get(1);
461
- const file3Ref = fileList.get(2);
462
- fileList.moveItem(file1Ref, 2);
463
- (0, vitest_1.expect)(fileList.get(0)).toBe(file2Ref);
464
- (0, vitest_1.expect)(fileList.get(1)).toBe(file3Ref);
465
- (0, vitest_1.expect)(fileList.get(2)).toBe(file1Ref);
466
- });
467
- });
468
- //# sourceMappingURL=documents.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documents.test.js","sourceRoot":"","sources":["../../../src/__tests__/documents.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,gDAA6C;AAE7C,mCAA0E;AAC1E,8DAA8D;AAC9D,0CAAyC;AAEzC,KAAK,UAAU,yBAAyB,CAAC,IAAyB;IACjE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,2BAA2B;QAC3B,MAAM,OAAO,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAC/D,IAAI,CACJ,CAAC;QACF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,EAAE,CAAC;aACV;QACF,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,IAAA,WAAE,EAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACpC,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,OAAO;iBACb;aACD;SACD,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,EAAC;QACvC,oBAAoB;SACpB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACvB,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;QACxD,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC;QACtC,IAAA,eAAM,EAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC3B,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC;QACpD,MAAM,wBAAwB,GAAG,cAAc,CAAC,IAAI,CACnD,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CACjD,CAAC;QACF,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxB,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpE,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAA,eAAM,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAExC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAE3C,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAE1C,yCAAyC;QACzC,8IAA8I;QAC9I,IAAA,eAAM,EAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;YACvC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAChD,SAAS,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAA,eAAM,EAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEhD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7B,iCAAiC;QACjC,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;YACnC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;YACjC,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YACxB,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,cAAc;iBACpB;aACD;SACD,CAAC,CAAC;QAEH,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAClD,IAAA,eAAM,EAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACpD;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACpC,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;SAC/B;QAED,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1E,OAAO;SACP,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,cAAc;SACpB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;YACtD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE;YACjC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE;SACjC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC9E;;;WAGG;QAEH,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YACtC,KAAK,EAAE;gBACN,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE;oBACJ;wBACC,KAAK,EAAE,CAAC;qBACR;iBACD;aACD;YACD,GAAG,EAAE,EAAE;YACP,SAAS,EAAE,EAAE;SACb,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClE,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;YAChD,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACnB,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;YAC3D,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;SACZ,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YACtC,KAAK,EAAE,IAAI;YACX,GAAG,EAAE;gBACJ,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,KAAK;aACV;YACD,SAAS,EAAE;gBACV,GAAG,EAAE;oBACJ,OAAO,EAAE,KAAK;iBACd;aACD;SACD,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;YAC9C,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,KAAK;SACV,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YACtC,KAAK,EAAE,IAAI;YACX,GAAG,EAAE;gBACJ,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,KAAK;aACV;YACD,SAAS,EAAE;gBACV,GAAG,EAAE;oBACJ,OAAO,EAAE,KAAK;iBACd;aACD;SACD,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC;YACZ,KAAK,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhD,KAAK,CAAC,MAAM,CAAC;YACZ,KAAK,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YACtC,KAAK,EAAE;gBACN,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;aACN;YACD,GAAG,EAAE;gBACJ,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,KAAK;aACV;YACD,SAAS,EAAE;gBACV,GAAG,EAAE;oBACJ,OAAO,EAAE,KAAK;iBACd;aACD;SACD,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CACxB;YACC,GAAG,EAAE,CAAC;SACN,EACD;YACC,KAAK,EAAE,KAAK;SACZ,CACD,CAAC;QAEF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAA,eAAM,EAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;GAIjD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,GAAG,EAAE;YACX,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC,kCAAkC,CACpC,0IAA0I,CAC1I,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC;YACZ,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,cAAc;iBACpB;aACD;SACD,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,cAAc;SACpB,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,cAAc;SACpB,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,cAAc;SACpB,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzE,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzE,qDAAqD;QACrD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YACtC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;SAC5B,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,EAAC;QACvC,oBAAoB;SACpB,CAAC,CAAC;QAEH,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,eAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE3B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhD,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACvC,eAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE3B,KAAK,CAAC,MAAM,CAAC;YACZ,OAAO,EAAE,gBAAgB;SACzB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhD,yBAAyB;QACzB,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACvC,eAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,cAAc;SACpB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpD,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACvC,eAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAEpE,IAAA,eAAM,EAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpD,2CAA2C;QAC3C,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,CAAC,OAAO,CAAC;YACf,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,cAAc;iBACpB;aACD;SACD,CAAC,CAAC;QAEH,MAAM,KAAsB,KAAK,CAAC,WAAW,EAAE,EAAzC,EAAE,EAAE,OAAqC,EAAhC,QAAQ,cAAjB,MAAmB,CAAsB,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhD,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE5D,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,CAAC,OAAO,CAAC;YACf,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,cAAc;iBACpB;aACD;SACD,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,GAAG,EAAE;YACX,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC,kCAAkC,CAAC,qCAAqC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtC,SAAS,cAAc;YACtB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE;gBAChD,IAAI,EAAE,YAAY;aAClB,CAAC,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAChC,gDAAgD;QAChD,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAEhC,IAAA,eAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,qBAAU,CAAC,CAAC;QACnD,IAAA,eAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,qBAAU,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtC,SAAS,cAAc;YACtB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE;gBAChD,IAAI,EAAE,YAAY;aAClB,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEjC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE/B,IAAA,eAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,76 +0,0 @@
1
- import { ClientWithCollections } from '../../index.js';
2
- export declare const todoCollection: import("@verdant-web/common").StorageCollectionSchema<{
3
- id: import("@verdant-web/common").StorageStringFieldSchema;
4
- content: import("@verdant-web/common").StorageStringFieldSchema;
5
- done: import("@verdant-web/common").StorageBooleanFieldSchema;
6
- tags: import("@verdant-web/common").StorageArrayFieldSchema<import("@verdant-web/common").StorageStringFieldSchema>;
7
- category: import("@verdant-web/common").StorageStringFieldSchema;
8
- attachments: import("@verdant-web/common").StorageArrayFieldSchema<import("@verdant-web/common").StorageObjectFieldSchema<{
9
- name: import("@verdant-web/common").StorageStringFieldSchema;
10
- test: import("@verdant-web/common").StorageNumberFieldSchema;
11
- }>>;
12
- }, {
13
- content: {
14
- field: "content";
15
- };
16
- example: {
17
- type: "string";
18
- compute: (doc: import("@verdant-web/common").ShapeFromFields<{
19
- id: import("@verdant-web/common").StorageStringFieldSchema;
20
- content: import("@verdant-web/common").StorageStringFieldSchema;
21
- done: import("@verdant-web/common").StorageBooleanFieldSchema;
22
- tags: import("@verdant-web/common").StorageArrayFieldSchema<import("@verdant-web/common").StorageStringFieldSchema>;
23
- category: import("@verdant-web/common").StorageStringFieldSchema;
24
- attachments: import("@verdant-web/common").StorageArrayFieldSchema<import("@verdant-web/common").StorageObjectFieldSchema<{
25
- name: import("@verdant-web/common").StorageStringFieldSchema;
26
- test: import("@verdant-web/common").StorageNumberFieldSchema;
27
- }>>;
28
- }>) => string;
29
- };
30
- }, {
31
- tagsSortedByDone: {
32
- of: ("done" | "tags")[];
33
- };
34
- categorySortedByDone: {
35
- of: ("done" | "category")[];
36
- };
37
- }>;
38
- export declare const weirdCollection: import("@verdant-web/common").StorageCollectionSchema<{
39
- id: import("@verdant-web/common").StorageStringFieldSchema;
40
- weird: import("@verdant-web/common").StorageAnyFieldSchema<any>;
41
- map: import("@verdant-web/common").StorageMapFieldSchema<import("@verdant-web/common").StorageStringFieldSchema>;
42
- fileList: import("@verdant-web/common").StorageArrayFieldSchema<import("@verdant-web/common").StorageFileFieldSchema>;
43
- objectMap: import("@verdant-web/common").StorageMapFieldSchema<import("@verdant-web/common").StorageObjectFieldSchema<{
44
- content: import("@verdant-web/common").StorageStringFieldSchema;
45
- }>>;
46
- }, import("@verdant-web/common").StorageSyntheticIndices<{
47
- id: import("@verdant-web/common").StorageStringFieldSchema;
48
- weird: import("@verdant-web/common").StorageAnyFieldSchema<any>;
49
- map: import("@verdant-web/common").StorageMapFieldSchema<import("@verdant-web/common").StorageStringFieldSchema>;
50
- fileList: import("@verdant-web/common").StorageArrayFieldSchema<import("@verdant-web/common").StorageFileFieldSchema>;
51
- objectMap: import("@verdant-web/common").StorageMapFieldSchema<import("@verdant-web/common").StorageObjectFieldSchema<{
52
- content: import("@verdant-web/common").StorageStringFieldSchema;
53
- }>>;
54
- }>, import("@verdant-web/common").CollectionCompoundIndices<{
55
- id: import("@verdant-web/common").StorageStringFieldSchema;
56
- weird: import("@verdant-web/common").StorageAnyFieldSchema<any>;
57
- map: import("@verdant-web/common").StorageMapFieldSchema<import("@verdant-web/common").StorageStringFieldSchema>;
58
- fileList: import("@verdant-web/common").StorageArrayFieldSchema<import("@verdant-web/common").StorageFileFieldSchema>;
59
- objectMap: import("@verdant-web/common").StorageMapFieldSchema<import("@verdant-web/common").StorageObjectFieldSchema<{
60
- content: import("@verdant-web/common").StorageStringFieldSchema;
61
- }>>;
62
- }, import("@verdant-web/common").StorageSyntheticIndices<{
63
- id: import("@verdant-web/common").StorageStringFieldSchema;
64
- weird: import("@verdant-web/common").StorageAnyFieldSchema<any>;
65
- map: import("@verdant-web/common").StorageMapFieldSchema<import("@verdant-web/common").StorageStringFieldSchema>;
66
- fileList: import("@verdant-web/common").StorageArrayFieldSchema<import("@verdant-web/common").StorageFileFieldSchema>;
67
- objectMap: import("@verdant-web/common").StorageMapFieldSchema<import("@verdant-web/common").StorageObjectFieldSchema<{
68
- content: import("@verdant-web/common").StorageStringFieldSchema;
69
- }>>;
70
- }>>>;
71
- export declare function createTestStorage({ idb, disableRebasing, metadataVersion, log, }?: {
72
- idb?: IDBFactory;
73
- disableRebasing?: boolean;
74
- metadataVersion?: number;
75
- log?: (...args: any[]) => void;
76
- }): Promise<ClientWithCollections>;