@powersync/service-core 1.10.3 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/dist/api/api-index.d.ts +1 -0
  3. package/dist/api/api-index.js +1 -0
  4. package/dist/api/api-index.js.map +1 -1
  5. package/dist/api/api-metrics.d.ts +11 -0
  6. package/dist/api/api-metrics.js +30 -0
  7. package/dist/api/api-metrics.js.map +1 -0
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.js +2 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/metrics/MetricsEngine.d.ts +21 -0
  12. package/dist/metrics/MetricsEngine.js +79 -0
  13. package/dist/metrics/MetricsEngine.js.map +1 -0
  14. package/dist/metrics/metrics-index.d.ts +5 -0
  15. package/dist/metrics/metrics-index.js +6 -0
  16. package/dist/metrics/metrics-index.js.map +1 -0
  17. package/dist/metrics/metrics-interfaces.d.ts +36 -0
  18. package/dist/metrics/metrics-interfaces.js +6 -0
  19. package/dist/metrics/metrics-interfaces.js.map +1 -0
  20. package/dist/metrics/open-telemetry/OpenTelemetryMetricsFactory.d.ts +10 -0
  21. package/dist/metrics/open-telemetry/OpenTelemetryMetricsFactory.js +51 -0
  22. package/dist/metrics/open-telemetry/OpenTelemetryMetricsFactory.js.map +1 -0
  23. package/dist/metrics/open-telemetry/util.d.ts +6 -0
  24. package/dist/metrics/open-telemetry/util.js +62 -0
  25. package/dist/metrics/open-telemetry/util.js.map +1 -0
  26. package/dist/metrics/register-metrics.d.ts +11 -0
  27. package/dist/metrics/register-metrics.js +44 -0
  28. package/dist/metrics/register-metrics.js.map +1 -0
  29. package/dist/replication/AbstractReplicationJob.d.ts +2 -0
  30. package/dist/replication/AbstractReplicationJob.js.map +1 -1
  31. package/dist/replication/AbstractReplicator.d.ts +3 -0
  32. package/dist/replication/AbstractReplicator.js +3 -0
  33. package/dist/replication/AbstractReplicator.js.map +1 -1
  34. package/dist/replication/ReplicationModule.d.ts +7 -0
  35. package/dist/replication/ReplicationModule.js +1 -0
  36. package/dist/replication/ReplicationModule.js.map +1 -1
  37. package/dist/replication/replication-index.d.ts +1 -0
  38. package/dist/replication/replication-index.js +1 -0
  39. package/dist/replication/replication-index.js.map +1 -1
  40. package/dist/replication/replication-metrics.d.ts +11 -0
  41. package/dist/replication/replication-metrics.js +39 -0
  42. package/dist/replication/replication-metrics.js.map +1 -0
  43. package/dist/routes/endpoints/socket-route.js +5 -5
  44. package/dist/routes/endpoints/socket-route.js.map +1 -1
  45. package/dist/routes/endpoints/sync-stream.js +6 -6
  46. package/dist/routes/endpoints/sync-stream.js.map +1 -1
  47. package/dist/storage/storage-index.d.ts +1 -0
  48. package/dist/storage/storage-index.js +1 -0
  49. package/dist/storage/storage-index.js.map +1 -1
  50. package/dist/storage/storage-metrics.d.ts +4 -0
  51. package/dist/storage/storage-metrics.js +56 -0
  52. package/dist/storage/storage-metrics.js.map +1 -0
  53. package/dist/sync/RequestTracker.d.ts +3 -0
  54. package/dist/sync/RequestTracker.js +8 -3
  55. package/dist/sync/RequestTracker.js.map +1 -1
  56. package/dist/system/ServiceContext.d.ts +3 -3
  57. package/dist/system/ServiceContext.js +7 -3
  58. package/dist/system/ServiceContext.js.map +1 -1
  59. package/dist/util/config/compound-config-collector.js +1 -0
  60. package/dist/util/config/compound-config-collector.js.map +1 -1
  61. package/dist/util/config/types.d.ts +1 -0
  62. package/dist/util/env.d.ts +0 -1
  63. package/dist/util/env.js +0 -4
  64. package/dist/util/env.js.map +1 -1
  65. package/package.json +7 -7
  66. package/src/api/api-index.ts +1 -0
  67. package/src/api/api-metrics.ts +35 -0
  68. package/src/index.ts +2 -2
  69. package/src/metrics/MetricsEngine.ts +98 -0
  70. package/src/metrics/metrics-index.ts +5 -0
  71. package/src/metrics/metrics-interfaces.ts +41 -0
  72. package/src/metrics/open-telemetry/OpenTelemetryMetricsFactory.ts +66 -0
  73. package/src/metrics/open-telemetry/util.ts +80 -0
  74. package/src/metrics/register-metrics.ts +56 -0
  75. package/src/replication/AbstractReplicationJob.ts +2 -0
  76. package/src/replication/AbstractReplicator.ts +7 -0
  77. package/src/replication/ReplicationModule.ts +10 -0
  78. package/src/replication/replication-index.ts +1 -0
  79. package/src/replication/replication-metrics.ts +45 -0
  80. package/src/routes/endpoints/socket-route.ts +6 -5
  81. package/src/routes/endpoints/sync-stream.ts +7 -6
  82. package/src/storage/storage-index.ts +1 -0
  83. package/src/storage/storage-metrics.ts +67 -0
  84. package/src/sync/RequestTracker.ts +9 -3
  85. package/src/system/ServiceContext.ts +9 -4
  86. package/src/util/config/compound-config-collector.ts +1 -0
  87. package/src/util/config/types.ts +1 -0
  88. package/src/util/env.ts +0 -4
  89. package/tsconfig.tsbuildinfo +1 -1
  90. package/.probes/poll +0 -1
  91. package/dist/metrics/Metrics.d.ts +0 -30
  92. package/dist/metrics/Metrics.js +0 -202
  93. package/dist/metrics/Metrics.js.map +0 -1
  94. package/src/metrics/Metrics.ts +0 -255
  95. package/test/dist/auth.test.d.ts +0 -1
  96. package/test/dist/auth.test.js +0 -332
  97. package/test/dist/auth.test.js.map +0 -1
  98. package/test/dist/broadcast_iterable.test.d.ts +0 -1
  99. package/test/dist/broadcast_iterable.test.js +0 -131
  100. package/test/dist/broadcast_iterable.test.js.map +0 -1
  101. package/test/dist/bucket_validation.d.ts +0 -26
  102. package/test/dist/bucket_validation.js +0 -56
  103. package/test/dist/bucket_validation.js.map +0 -1
  104. package/test/dist/bucket_validation.test.d.ts +0 -1
  105. package/test/dist/bucket_validation.test.js +0 -134
  106. package/test/dist/bucket_validation.test.js.map +0 -1
  107. package/test/dist/checksum_cache.test.d.ts +0 -1
  108. package/test/dist/checksum_cache.test.js +0 -375
  109. package/test/dist/checksum_cache.test.js.map +0 -1
  110. package/test/dist/compacting.test.d.ts +0 -1
  111. package/test/dist/compacting.test.js +0 -254
  112. package/test/dist/compacting.test.js.map +0 -1
  113. package/test/dist/data_storage.test.d.ts +0 -1
  114. package/test/dist/data_storage.test.js +0 -1306
  115. package/test/dist/data_storage.test.js.map +0 -1
  116. package/test/dist/demultiplexer.test.d.ts +0 -1
  117. package/test/dist/demultiplexer.test.js +0 -166
  118. package/test/dist/demultiplexer.test.js.map +0 -1
  119. package/test/dist/env.d.ts +0 -3
  120. package/test/dist/env.js +0 -5
  121. package/test/dist/env.js.map +0 -1
  122. package/test/dist/merge_iterable.test.d.ts +0 -1
  123. package/test/dist/merge_iterable.test.js +0 -321
  124. package/test/dist/merge_iterable.test.js.map +0 -1
  125. package/test/dist/routes/probes.integration.test.d.ts +0 -1
  126. package/test/dist/routes/probes.integration.test.js +0 -192
  127. package/test/dist/routes/probes.integration.test.js.map +0 -1
  128. package/test/dist/routes/probes.test.d.ts +0 -1
  129. package/test/dist/routes/probes.test.js +0 -119
  130. package/test/dist/routes/probes.test.js.map +0 -1
  131. package/test/dist/setup.d.ts +0 -1
  132. package/test/dist/setup.js +0 -7
  133. package/test/dist/setup.js.map +0 -1
  134. package/test/dist/stream_utils.d.ts +0 -6
  135. package/test/dist/stream_utils.js +0 -37
  136. package/test/dist/stream_utils.js.map +0 -1
  137. package/test/dist/sync/BucketChecksumState.test.d.ts +0 -1
  138. package/test/dist/sync/BucketChecksumState.test.js +0 -499
  139. package/test/dist/sync/BucketChecksumState.test.js.map +0 -1
  140. package/test/dist/sync/checksum_state.test.d.ts +0 -1
  141. package/test/dist/sync/checksum_state.test.js +0 -21
  142. package/test/dist/sync/checksum_state.test.js.map +0 -1
  143. package/test/dist/sync/util.test.d.ts +0 -1
  144. package/test/dist/sync/util.test.js +0 -28
  145. package/test/dist/sync/util.test.js.map +0 -1
  146. package/test/dist/sync.test.d.ts +0 -1
  147. package/test/dist/sync.test.js +0 -428
  148. package/test/dist/sync.test.js.map +0 -1
  149. package/test/dist/util.d.ts +0 -36
  150. package/test/dist/util.js +0 -114
  151. package/test/dist/util.js.map +0 -1
  152. package/test/dist/util.test.d.ts +0 -1
  153. package/test/dist/util.test.js +0 -45
  154. package/test/dist/util.test.js.map +0 -1
  155. package/test/tsconfig.tsbuildinfo +0 -1
@@ -1,254 +0,0 @@
1
- import { SaveOperationTag } from '@/storage/BucketStorage.js';
2
- import { describe, expect, test } from 'vitest';
3
- import { validateCompactedBucket } from './bucket_validation.js';
4
- import { oneFromAsync } from './stream_utils.js';
5
- import { BATCH_OPTIONS, makeTestTable, MONGO_STORAGE_FACTORY, rid, testRules } from './util.js';
6
- const TEST_TABLE = makeTestTable('test', ['id']);
7
- // Test with the default options - large batch sizes
8
- describe('compacting buckets - default options', () => compactTests({}));
9
- // Also test with the miniumum batch sizes, forcing usage of multiple batches internally
10
- describe('compacting buckets - batched', () => compactTests({ clearBatchLimit: 2, moveBatchLimit: 1, moveBatchQueryLimit: 1 }));
11
- function compactTests(compactOptions) {
12
- const factory = MONGO_STORAGE_FACTORY;
13
- test('compacting (1)', async () => {
14
- const sync_rules = testRules(`
15
- bucket_definitions:
16
- global:
17
- data: [select * from test]
18
- `);
19
- const storage = (await factory()).getInstance(sync_rules);
20
- const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
21
- await batch.save({
22
- sourceTable: TEST_TABLE,
23
- tag: SaveOperationTag.INSERT,
24
- after: {
25
- id: 't1'
26
- },
27
- afterReplicaId: rid('t1')
28
- });
29
- await batch.save({
30
- sourceTable: TEST_TABLE,
31
- tag: SaveOperationTag.INSERT,
32
- after: {
33
- id: 't2'
34
- },
35
- afterReplicaId: rid('t2')
36
- });
37
- await batch.save({
38
- sourceTable: TEST_TABLE,
39
- tag: SaveOperationTag.UPDATE,
40
- after: {
41
- id: 't2'
42
- },
43
- afterReplicaId: rid('t2')
44
- });
45
- });
46
- const checkpoint = result.flushed_op;
47
- const batchBefore = await oneFromAsync(storage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
48
- const dataBefore = batchBefore.batch.data;
49
- const checksumBefore = await storage.getChecksums(checkpoint, ['global[]']);
50
- expect(dataBefore).toMatchObject([
51
- {
52
- checksum: 2634521662,
53
- object_id: 't1',
54
- op: 'PUT',
55
- op_id: '1'
56
- },
57
- {
58
- checksum: 4243212114,
59
- object_id: 't2',
60
- op: 'PUT',
61
- op_id: '2'
62
- },
63
- {
64
- checksum: 4243212114,
65
- object_id: 't2',
66
- op: 'PUT',
67
- op_id: '3'
68
- }
69
- ]);
70
- await storage.compact(compactOptions);
71
- const batchAfter = await oneFromAsync(storage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
72
- const dataAfter = batchAfter.batch.data;
73
- const checksumAfter = await storage.getChecksums(checkpoint, ['global[]']);
74
- expect(batchAfter.targetOp).toEqual(3n);
75
- expect(dataAfter).toMatchObject([
76
- {
77
- checksum: 2634521662,
78
- object_id: 't1',
79
- op: 'PUT',
80
- op_id: '1'
81
- },
82
- {
83
- checksum: 4243212114,
84
- op: 'MOVE',
85
- op_id: '2'
86
- },
87
- {
88
- checksum: 4243212114,
89
- object_id: 't2',
90
- op: 'PUT',
91
- op_id: '3'
92
- }
93
- ]);
94
- expect(checksumBefore.get('global[]')).toEqual(checksumAfter.get('global[]'));
95
- validateCompactedBucket(dataBefore, dataAfter);
96
- });
97
- test('compacting (2)', async () => {
98
- const sync_rules = testRules(`
99
- bucket_definitions:
100
- global:
101
- data: [select * from test]
102
- `);
103
- const storage = (await factory()).getInstance(sync_rules);
104
- const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
105
- await batch.save({
106
- sourceTable: TEST_TABLE,
107
- tag: SaveOperationTag.INSERT,
108
- after: {
109
- id: 't1'
110
- },
111
- afterReplicaId: rid('t1')
112
- });
113
- await batch.save({
114
- sourceTable: TEST_TABLE,
115
- tag: SaveOperationTag.INSERT,
116
- after: {
117
- id: 't2'
118
- },
119
- afterReplicaId: rid('t2')
120
- });
121
- await batch.save({
122
- sourceTable: TEST_TABLE,
123
- tag: SaveOperationTag.DELETE,
124
- before: {
125
- id: 't1'
126
- },
127
- beforeReplicaId: rid('t1')
128
- });
129
- await batch.save({
130
- sourceTable: TEST_TABLE,
131
- tag: SaveOperationTag.UPDATE,
132
- after: {
133
- id: 't2'
134
- },
135
- afterReplicaId: rid('t2')
136
- });
137
- });
138
- const checkpoint = result.flushed_op;
139
- const batchBefore = await oneFromAsync(storage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
140
- const dataBefore = batchBefore.batch.data;
141
- const checksumBefore = await storage.getChecksums(checkpoint, ['global[]']);
142
- expect(dataBefore).toMatchObject([
143
- {
144
- checksum: 2634521662,
145
- object_id: 't1',
146
- op: 'PUT',
147
- op_id: '1'
148
- },
149
- {
150
- checksum: 4243212114,
151
- object_id: 't2',
152
- op: 'PUT',
153
- op_id: '2'
154
- },
155
- {
156
- checksum: 4228978084,
157
- object_id: 't1',
158
- op: 'REMOVE',
159
- op_id: '3'
160
- },
161
- {
162
- checksum: 4243212114,
163
- object_id: 't2',
164
- op: 'PUT',
165
- op_id: '4'
166
- }
167
- ]);
168
- await storage.compact(compactOptions);
169
- const batchAfter = await oneFromAsync(storage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
170
- const dataAfter = batchAfter.batch.data;
171
- const checksumAfter = await storage.getChecksums(checkpoint, ['global[]']);
172
- expect(batchAfter.targetOp).toEqual(4n);
173
- expect(dataAfter).toMatchObject([
174
- {
175
- checksum: -1778190028,
176
- op: 'CLEAR',
177
- op_id: '3'
178
- },
179
- {
180
- checksum: 4243212114,
181
- object_id: 't2',
182
- op: 'PUT',
183
- op_id: '4'
184
- }
185
- ]);
186
- expect(checksumBefore.get('global[]')).toEqual(checksumAfter.get('global[]'));
187
- validateCompactedBucket(dataBefore, dataAfter);
188
- });
189
- test('compacting (3)', async () => {
190
- const sync_rules = testRules(`
191
- bucket_definitions:
192
- global:
193
- data: [select * from test]
194
- `);
195
- const storage = (await factory()).getInstance(sync_rules);
196
- const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
197
- await batch.save({
198
- sourceTable: TEST_TABLE,
199
- tag: SaveOperationTag.INSERT,
200
- after: {
201
- id: 't1'
202
- },
203
- afterReplicaId: 't1'
204
- });
205
- await batch.save({
206
- sourceTable: TEST_TABLE,
207
- tag: SaveOperationTag.INSERT,
208
- after: {
209
- id: 't2'
210
- },
211
- afterReplicaId: 't2'
212
- });
213
- await batch.save({
214
- sourceTable: TEST_TABLE,
215
- tag: SaveOperationTag.DELETE,
216
- before: {
217
- id: 't1'
218
- },
219
- beforeReplicaId: 't1'
220
- });
221
- });
222
- const checkpoint1 = result.flushed_op;
223
- const checksumBefore = await storage.getChecksums(checkpoint1, ['global[]']);
224
- const result2 = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
225
- await batch.save({
226
- sourceTable: TEST_TABLE,
227
- tag: SaveOperationTag.DELETE,
228
- before: {
229
- id: 't2'
230
- },
231
- beforeReplicaId: 't2'
232
- });
233
- });
234
- const checkpoint2 = result2.flushed_op;
235
- await storage.compact(compactOptions);
236
- const batchAfter = await oneFromAsync(storage.getBucketDataBatch(checkpoint2, new Map([['global[]', '0']])));
237
- const dataAfter = batchAfter.batch.data;
238
- const checksumAfter = await storage.getChecksums(checkpoint2, ['global[]']);
239
- expect(batchAfter.targetOp).toEqual(4n);
240
- expect(dataAfter).toMatchObject([
241
- {
242
- checksum: 1874612650,
243
- op: 'CLEAR',
244
- op_id: '4'
245
- }
246
- ]);
247
- expect(checksumAfter.get('global[]')).toEqual({
248
- bucket: 'global[]',
249
- count: 1,
250
- checksum: 1874612650
251
- });
252
- });
253
- }
254
- //# sourceMappingURL=compacting.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compacting.test.js","sourceRoot":"","sources":["../src/compacting.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhG,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAEjD,oDAAoD;AACpD,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAEzE,wFAAwF;AACxF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAC5C,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnF,SAAS,YAAY,CAAC,cAAmC;IACvD,MAAM,OAAO,GAAG,qBAAqB,CAAC;IAEtC,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,UAAU,GAAG,SAAS,CAAC;;;;KAI5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrE,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;iBACT;gBACD,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;iBACT;gBACD,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;iBACT;gBACD,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAO,CAAC,UAAU,CAAC;QAEtC,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1C,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAE5E,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;YAC/B;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;YACD;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;YACD;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEtC,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAE3E,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC;YAC9B;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;YACD;gBACE,QAAQ,EAAE,UAAU;gBACpB,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,GAAG;aACX;YACD;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAE9E,uBAAuB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,UAAU,GAAG,SAAS,CAAC;;;;KAI5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrE,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;iBACT;gBACD,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;iBACT;gBACD,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;iBACT;gBACD,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;iBACT;gBACD,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAO,CAAC,UAAU,CAAC;QAEtC,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1C,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAE5E,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;YAC/B;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;YACD;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;YACD;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,GAAG;aACX;YACD;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEtC,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAE3E,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC;YAC9B;gBACE,QAAQ,EAAE,CAAC,UAAU;gBACrB,EAAE,EAAE,OAAO;gBACX,KAAK,EAAE,GAAG;aACX;YACD;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAE9E,uBAAuB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,UAAU,GAAG,SAAS,CAAC;;;;KAI5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrE,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;iBACT;gBACD,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,EAAE,EAAE,IAAI;iBACT;gBACD,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;iBACT;gBACD,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAO,CAAC,UAAU,CAAC;QACvC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAE7E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtE,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,UAAU;gBACvB,GAAG,EAAE,gBAAgB,CAAC,MAAM;gBAC5B,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;iBACT;gBACD,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,OAAQ,CAAC,UAAU,CAAC;QAExC,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEtC,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAE5E,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC;YAC9B;gBACE,QAAQ,EAAE,UAAU;gBACpB,EAAE,EAAE,OAAO;gBACX,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5C,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- export {};