@powersync/service-core 0.0.0-dev-20250507151436 → 0.0.0-dev-20250611110033

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 (126) hide show
  1. package/CHANGELOG.md +47 -7
  2. package/dist/api/RouteAPI.d.ts +1 -5
  3. package/dist/api/diagnostics.js +1 -1
  4. package/dist/api/diagnostics.js.map +1 -1
  5. package/dist/auth/CachedKeyCollector.js +2 -7
  6. package/dist/auth/CachedKeyCollector.js.map +1 -1
  7. package/dist/auth/CompoundKeyCollector.js.map +1 -1
  8. package/dist/auth/KeyCollector.d.ts +2 -2
  9. package/dist/auth/KeyStore.js +32 -14
  10. package/dist/auth/KeyStore.js.map +1 -1
  11. package/dist/auth/RemoteJWKSCollector.d.ts +1 -0
  12. package/dist/auth/RemoteJWKSCollector.js +39 -16
  13. package/dist/auth/RemoteJWKSCollector.js.map +1 -1
  14. package/dist/auth/auth-index.d.ts +1 -0
  15. package/dist/auth/auth-index.js +1 -0
  16. package/dist/auth/auth-index.js.map +1 -1
  17. package/dist/auth/utils.d.ts +6 -0
  18. package/dist/auth/utils.js +97 -0
  19. package/dist/auth/utils.js.map +1 -0
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.js +1 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/metrics/open-telemetry/OpenTelemetryMetricsFactory.d.ts +1 -1
  24. package/dist/metrics/open-telemetry/OpenTelemetryMetricsFactory.js.map +1 -1
  25. package/dist/replication/AbstractReplicationJob.d.ts +4 -0
  26. package/dist/replication/AbstractReplicationJob.js.map +1 -1
  27. package/dist/replication/AbstractReplicator.d.ts +23 -0
  28. package/dist/replication/AbstractReplicator.js +45 -0
  29. package/dist/replication/AbstractReplicator.js.map +1 -1
  30. package/dist/replication/RelationCache.d.ts +9 -0
  31. package/dist/replication/RelationCache.js +20 -0
  32. package/dist/replication/RelationCache.js.map +1 -0
  33. package/dist/replication/replication-index.d.ts +1 -0
  34. package/dist/replication/replication-index.js +1 -0
  35. package/dist/replication/replication-index.js.map +1 -1
  36. package/dist/replication/replication-metrics.js +6 -0
  37. package/dist/replication/replication-metrics.js.map +1 -1
  38. package/dist/routes/RouterEngine.js +1 -1
  39. package/dist/routes/RouterEngine.js.map +1 -1
  40. package/dist/routes/auth.d.ts +5 -16
  41. package/dist/routes/auth.js +6 -4
  42. package/dist/routes/auth.js.map +1 -1
  43. package/dist/routes/configure-fastify.d.ts +3 -21
  44. package/dist/routes/configure-fastify.js +3 -2
  45. package/dist/routes/configure-fastify.js.map +1 -1
  46. package/dist/routes/configure-rsocket.js +28 -11
  47. package/dist/routes/configure-rsocket.js.map +1 -1
  48. package/dist/routes/endpoints/admin.js +2 -0
  49. package/dist/routes/endpoints/admin.js.map +1 -1
  50. package/dist/routes/endpoints/checkpointing.d.ts +4 -28
  51. package/dist/routes/endpoints/socket-route.js +22 -8
  52. package/dist/routes/endpoints/socket-route.js.map +1 -1
  53. package/dist/routes/endpoints/sync-rules.js +6 -6
  54. package/dist/routes/endpoints/sync-rules.js.map +1 -1
  55. package/dist/routes/endpoints/sync-stream.d.ts +2 -14
  56. package/dist/routes/endpoints/sync-stream.js +28 -9
  57. package/dist/routes/endpoints/sync-stream.js.map +1 -1
  58. package/dist/routes/route-register.js +10 -6
  59. package/dist/routes/route-register.js.map +1 -1
  60. package/dist/routes/router.d.ts +7 -3
  61. package/dist/routes/router.js.map +1 -1
  62. package/dist/storage/BucketStorageBatch.d.ts +17 -1
  63. package/dist/storage/BucketStorageBatch.js +2 -1
  64. package/dist/storage/BucketStorageBatch.js.map +1 -1
  65. package/dist/storage/PersistedSyncRulesContent.d.ts +5 -0
  66. package/dist/storage/SourceTable.d.ts +17 -1
  67. package/dist/storage/SourceTable.js +28 -0
  68. package/dist/storage/SourceTable.js.map +1 -1
  69. package/dist/storage/SyncRulesBucketStorage.d.ts +11 -2
  70. package/dist/storage/SyncRulesBucketStorage.js.map +1 -1
  71. package/dist/storage/bson.js +4 -1
  72. package/dist/storage/bson.js.map +1 -1
  73. package/dist/sync/BucketChecksumState.d.ts +40 -18
  74. package/dist/sync/BucketChecksumState.js +122 -74
  75. package/dist/sync/BucketChecksumState.js.map +1 -1
  76. package/dist/sync/RequestTracker.d.ts +22 -1
  77. package/dist/sync/RequestTracker.js +51 -2
  78. package/dist/sync/RequestTracker.js.map +1 -1
  79. package/dist/sync/sync.d.ts +3 -5
  80. package/dist/sync/sync.js +49 -34
  81. package/dist/sync/sync.js.map +1 -1
  82. package/dist/util/config/collectors/config-collector.js +2 -5
  83. package/dist/util/config/collectors/config-collector.js.map +1 -1
  84. package/dist/util/protocol-types.d.ts +9 -9
  85. package/dist/util/protocol-types.js.map +1 -1
  86. package/dist/util/utils.d.ts +1 -1
  87. package/package.json +6 -7
  88. package/src/api/RouteAPI.ts +1 -6
  89. package/src/api/diagnostics.ts +1 -1
  90. package/src/auth/CachedKeyCollector.ts +4 -6
  91. package/src/auth/CompoundKeyCollector.ts +2 -1
  92. package/src/auth/KeyCollector.ts +2 -2
  93. package/src/auth/KeyStore.ts +45 -20
  94. package/src/auth/RemoteJWKSCollector.ts +39 -16
  95. package/src/auth/auth-index.ts +1 -0
  96. package/src/auth/utils.ts +102 -0
  97. package/src/index.ts +2 -0
  98. package/src/metrics/open-telemetry/OpenTelemetryMetricsFactory.ts +3 -3
  99. package/src/replication/AbstractReplicationJob.ts +5 -0
  100. package/src/replication/AbstractReplicator.ts +47 -0
  101. package/src/replication/RelationCache.ts +25 -0
  102. package/src/replication/replication-index.ts +1 -0
  103. package/src/replication/replication-metrics.ts +7 -0
  104. package/src/routes/RouterEngine.ts +1 -1
  105. package/src/routes/auth.ts +7 -6
  106. package/src/routes/configure-fastify.ts +6 -3
  107. package/src/routes/configure-rsocket.ts +33 -14
  108. package/src/routes/endpoints/admin.ts +2 -0
  109. package/src/routes/endpoints/socket-route.ts +24 -8
  110. package/src/routes/endpoints/sync-rules.ts +6 -6
  111. package/src/routes/endpoints/sync-stream.ts +31 -8
  112. package/src/routes/route-register.ts +10 -7
  113. package/src/routes/router.ts +9 -3
  114. package/src/storage/BucketStorageBatch.ts +22 -2
  115. package/src/storage/PersistedSyncRulesContent.ts +6 -0
  116. package/src/storage/SourceTable.ts +44 -1
  117. package/src/storage/SyncRulesBucketStorage.ts +14 -2
  118. package/src/storage/bson.ts +4 -1
  119. package/src/sync/BucketChecksumState.ts +162 -77
  120. package/src/sync/RequestTracker.ts +70 -3
  121. package/src/sync/sync.ts +72 -49
  122. package/src/util/config/collectors/config-collector.ts +3 -7
  123. package/src/util/protocol-types.ts +15 -10
  124. package/test/src/auth.test.ts +29 -11
  125. package/test/src/sync/BucketChecksumState.test.ts +32 -18
  126. package/tsconfig.tsbuildinfo +1 -1
@@ -34,6 +34,10 @@ export declare abstract class AbstractReplicator<T extends AbstractReplicationJo
34
34
  * @private
35
35
  */
36
36
  private replicationJobs;
37
+ /**
38
+ * Used for replication lag computation.
39
+ */
40
+ private activeReplicationJob;
37
41
  private stopped;
38
42
  private lastPing;
39
43
  protected constructor(options: AbstractReplicatorOptions);
@@ -55,4 +59,23 @@ export declare abstract class AbstractReplicator<T extends AbstractReplicationJo
55
59
  protected createJobId(syncRuleId: number): string;
56
60
  protected terminateSyncRules(syncRuleStorage: storage.SyncRulesBucketStorage): Promise<void>;
57
61
  abstract testConnection(): Promise<ConnectionTestResult>;
62
+ /**
63
+ * Measure replication lag in milliseconds.
64
+ *
65
+ * In general, this is the difference between now() and the time the oldest record, that we haven't committed yet,
66
+ * has been written (committed) to the source database.
67
+ *
68
+ * This is roughly a measure of the _average_ amount of time we're behind.
69
+ * If we get a new change as soon as each previous one has finished processing, and each change takes 1000ms
70
+ * to process, the average replication lag will be 500ms, not 1000ms.
71
+ *
72
+ * 1. When we are actively replicating, this is the difference between now and when the time the change was
73
+ * written to the source database.
74
+ * 2. When the replication stream is idle, this is either 0, or the delay for keepalive messages to make it to us.
75
+ * 3. When the active replication stream is an error state, this is the time since the last successful commit.
76
+ * 4. If there is no active replication stream, this is undefined.
77
+ *
78
+ * "processing" replication streams are not taken into account for this metric.
79
+ */
80
+ getReplicationLagMillis(): Promise<number | undefined>;
58
81
  }
@@ -1,5 +1,6 @@
1
1
  import { container, logger } from '@powersync/lib-services-framework';
2
2
  import { hrtime } from 'node:process';
3
+ import { ReplicationMetric } from '@powersync/service-types';
3
4
  // 5 minutes
4
5
  const PING_INTERVAL = 1000000000n * 300n;
5
6
  /**
@@ -16,6 +17,10 @@ export class AbstractReplicator {
16
17
  * @private
17
18
  */
18
19
  replicationJobs = new Map();
20
+ /**
21
+ * Used for replication lag computation.
22
+ */
23
+ activeReplicationJob = undefined;
19
24
  stopped = false;
20
25
  // First ping is only after 5 minutes, not when starting
21
26
  lastPing = hrtime.bigint();
@@ -46,6 +51,17 @@ export class AbstractReplicator {
46
51
  process.exit(1);
47
52
  }, 1000);
48
53
  });
54
+ this.metrics.getObservableGauge(ReplicationMetric.REPLICATION_LAG_SECONDS).setValueProvider(async () => {
55
+ const lag = await this.getReplicationLagMillis().catch((e) => {
56
+ this.logger.error('Failed to get replication lag', e);
57
+ return undefined;
58
+ });
59
+ if (lag == null) {
60
+ return undefined;
61
+ }
62
+ // ms to seconds
63
+ return Math.round(lag / 1000);
64
+ });
49
65
  }
50
66
  async stop() {
51
67
  this.stopped = true;
@@ -114,8 +130,12 @@ export class AbstractReplicator {
114
130
  const existingJobs = new Map(this.replicationJobs.entries());
115
131
  const replicatingSyncRules = await this.storage.getReplicatingSyncRules();
116
132
  const newJobs = new Map();
133
+ let activeJob = undefined;
117
134
  for (let syncRules of replicatingSyncRules) {
118
135
  const existingJob = existingJobs.get(syncRules.id);
136
+ if (syncRules.active && activeJob == null) {
137
+ activeJob = existingJob;
138
+ }
119
139
  if (existingJob && !existingJob.isStopped) {
120
140
  // No change
121
141
  existingJobs.delete(syncRules.id);
@@ -143,6 +163,9 @@ export class AbstractReplicator {
143
163
  });
144
164
  newJobs.set(syncRules.id, newJob);
145
165
  newJob.start();
166
+ if (syncRules.active) {
167
+ activeJob = newJob;
168
+ }
146
169
  }
147
170
  catch (e) {
148
171
  // Could be a sync rules parse error,
@@ -154,6 +177,7 @@ export class AbstractReplicator {
154
177
  }
155
178
  }
156
179
  this.replicationJobs = newJobs;
180
+ this.activeReplicationJob = activeJob;
157
181
  // Stop any orphaned jobs that no longer have sync rules.
158
182
  // Termination happens below
159
183
  for (let job of existingJobs.values()) {
@@ -187,5 +211,26 @@ export class AbstractReplicator {
187
211
  await syncRuleStorage.terminate();
188
212
  this.logger.info(`Successfully terminated sync rules: ${syncRuleStorage.group_id}`);
189
213
  }
214
+ /**
215
+ * Measure replication lag in milliseconds.
216
+ *
217
+ * In general, this is the difference between now() and the time the oldest record, that we haven't committed yet,
218
+ * has been written (committed) to the source database.
219
+ *
220
+ * This is roughly a measure of the _average_ amount of time we're behind.
221
+ * If we get a new change as soon as each previous one has finished processing, and each change takes 1000ms
222
+ * to process, the average replication lag will be 500ms, not 1000ms.
223
+ *
224
+ * 1. When we are actively replicating, this is the difference between now and when the time the change was
225
+ * written to the source database.
226
+ * 2. When the replication stream is idle, this is either 0, or the delay for keepalive messages to make it to us.
227
+ * 3. When the active replication stream is an error state, this is the time since the last successful commit.
228
+ * 4. If there is no active replication stream, this is undefined.
229
+ *
230
+ * "processing" replication streams are not taken into account for this metric.
231
+ */
232
+ async getReplicationLagMillis() {
233
+ return this.activeReplicationJob?.getReplicationLagMillis();
234
+ }
190
235
  }
191
236
  //# sourceMappingURL=AbstractReplicator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractReplicator.js","sourceRoot":"","sources":["../../src/replication/AbstractReplicator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractReplicator.js","sourceRoot":"","sources":["../../src/replication/AbstractReplicator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { SourceTable } from '../storage/SourceTable.js';
2
+ export declare class RelationCache<T> {
3
+ private cache;
4
+ private idFunction;
5
+ constructor(idFunction: (item: T | SourceTable) => string | number);
6
+ update(table: SourceTable): void;
7
+ get(source: T | SourceTable): SourceTable | undefined;
8
+ delete(source: T | SourceTable): boolean;
9
+ }
@@ -0,0 +1,20 @@
1
+ export class RelationCache {
2
+ cache = new Map();
3
+ idFunction;
4
+ constructor(idFunction) {
5
+ this.idFunction = idFunction;
6
+ }
7
+ update(table) {
8
+ const id = this.idFunction(table);
9
+ this.cache.set(id, table);
10
+ }
11
+ get(source) {
12
+ const id = this.idFunction(source);
13
+ return this.cache.get(id);
14
+ }
15
+ delete(source) {
16
+ const id = this.idFunction(source);
17
+ return this.cache.delete(id);
18
+ }
19
+ }
20
+ //# sourceMappingURL=RelationCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelationCache.js","sourceRoot":"","sources":["../../src/replication/RelationCache.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAChB,KAAK,GAAG,IAAI,GAAG,EAAgC,CAAC;IAChD,UAAU,CAA6C;IAE/D,YAAY,UAAsD;QAChE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,MAAuB;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,MAAuB;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -4,3 +4,4 @@ export * from './ErrorRateLimiter.js';
4
4
  export * from './ReplicationEngine.js';
5
5
  export * from './ReplicationModule.js';
6
6
  export * from './replication-metrics.js';
7
+ export * from './RelationCache.js';
@@ -4,4 +4,5 @@ export * from './ErrorRateLimiter.js';
4
4
  export * from './ReplicationEngine.js';
5
5
  export * from './ReplicationModule.js';
6
6
  export * from './replication-metrics.js';
7
+ export * from './RelationCache.js';
7
8
  //# sourceMappingURL=replication-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replication-index.js","sourceRoot":"","sources":["../../src/replication/replication-index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"replication-index.js","sourceRoot":"","sources":["../../src/replication/replication-index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
@@ -21,6 +21,10 @@ export function createCoreReplicationMetrics(engine) {
21
21
  name: ReplicationMetric.CHUNKS_REPLICATED,
22
22
  description: 'Total number of replication chunks'
23
23
  });
24
+ engine.createObservableGauge({
25
+ name: ReplicationMetric.REPLICATION_LAG_SECONDS,
26
+ description: 'Replication lag between the source database and PowerSync instance'
27
+ });
24
28
  }
25
29
  /**
26
30
  * Initialise the core replication metrics. This should be called after the metrics have been created.
@@ -35,5 +39,7 @@ export function initializeCoreReplicationMetrics(engine) {
35
39
  rows_replicated_total.add(0);
36
40
  transactions_replicated_total.add(0);
37
41
  chunks_replicated_total.add(0);
42
+ // REPLICATION_LAG_SECONDS is not explicitly initialized - the value remains "unknown" until the first value
43
+ // is reported.
38
44
  }
39
45
  //# sourceMappingURL=replication-metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replication-metrics.js","sourceRoot":"","sources":["../../src/replication/replication-metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAqB;IAChE,MAAM,CAAC,aAAa,CAAC;QACnB,IAAI,EAAE,iBAAiB,CAAC,qBAAqB;QAC7C,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC;QACnB,IAAI,EAAE,iBAAiB,CAAC,eAAe;QACvC,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC;QACnB,IAAI,EAAE,iBAAiB,CAAC,uBAAuB;QAC/C,WAAW,EAAE,yCAAyC;KACvD,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC;QACnB,IAAI,EAAE,iBAAiB,CAAC,iBAAiB;QACzC,WAAW,EAAE,oCAAoC;KAClD,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAAC,MAAqB;IACpE,MAAM,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IACzF,MAAM,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACnF,MAAM,6BAA6B,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IACnG,MAAM,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEvF,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7B,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7B,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"replication-metrics.js","sourceRoot":"","sources":["../../src/replication/replication-metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAqB;IAChE,MAAM,CAAC,aAAa,CAAC;QACnB,IAAI,EAAE,iBAAiB,CAAC,qBAAqB;QAC7C,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC;QACnB,IAAI,EAAE,iBAAiB,CAAC,eAAe;QACvC,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC;QACnB,IAAI,EAAE,iBAAiB,CAAC,uBAAuB;QAC/C,WAAW,EAAE,yCAAyC;KACvD,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC;QACnB,IAAI,EAAE,iBAAiB,CAAC,iBAAiB;QACzC,WAAW,EAAE,oCAAoC;KAClD,CAAC,CAAC;IAEH,MAAM,CAAC,qBAAqB,CAAC;QAC3B,IAAI,EAAE,iBAAiB,CAAC,uBAAuB;QAC/C,WAAW,EAAE,oEAAoE;KAClF,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAAC,MAAqB;IACpE,MAAM,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IACzF,MAAM,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACnF,MAAM,6BAA6B,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IACnG,MAAM,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEvF,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7B,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7B,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,4GAA4G;IAC5G,eAAe;AACjB,CAAC"}
@@ -49,7 +49,7 @@ export class RouterEngine {
49
49
  async start(setup) {
50
50
  logger.info('Starting Router Engine...');
51
51
  if (!this.hasRoutes) {
52
- logger.warn('No routes have been registered. Router Engine will not continue.');
52
+ logger.info('Router Engine will not start an HTTP server as no routes have been registered.');
53
53
  return;
54
54
  }
55
55
  const { onShutdown } = await setup(this.routes);
@@ -1 +1 @@
1
- {"version":3,"file":"RouterEngine.js","sourceRoot":"","sources":["../../src/routes/RouterEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouterEngine.js","sourceRoot":"","sources":["../../src/routes/RouterEngine.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import * as auth from '../auth/auth-index.js';
2
2
  import { ServiceContext } from '../system/ServiceContext.js';
3
3
  import * as util from '../util/util-index.js';
4
4
  import { BasicRouterRequest, Context, RequestEndpointHandlerPayload } from './router.js';
5
+ import { AuthorizationError, AuthorizationResponse } from '@powersync/lib-services-framework';
5
6
  export declare function endpoint(req: BasicRouterRequest): string;
6
7
  /**
7
8
  * @deprecated
@@ -13,29 +14,17 @@ export declare function issueDevToken(req: BasicRouterRequest, user_id: string,
13
14
  export declare function issueLegacyDevToken(req: BasicRouterRequest, user_id: string, config: util.ResolvedPowerSyncConfig): Promise<string>;
14
15
  export declare function issuePowerSyncToken(req: BasicRouterRequest, user_id: string, config: util.ResolvedPowerSyncConfig): Promise<string>;
15
16
  export declare function getTokenFromHeader(authHeader?: string): string | null;
16
- export declare const authUser: (payload: RequestEndpointHandlerPayload) => Promise<{
17
- authorized: boolean;
18
- errors: any[];
19
- } | {
20
- authorized: boolean;
21
- errors?: undefined;
22
- }>;
23
- export declare function authorizeUser(context: Context, authHeader?: string): Promise<{
24
- authorized: boolean;
25
- errors: any[];
26
- } | {
27
- authorized: boolean;
28
- errors?: undefined;
29
- }>;
17
+ export declare const authUser: (payload: RequestEndpointHandlerPayload) => Promise<AuthorizationResponse>;
18
+ export declare function authorizeUser(context: Context, authHeader?: string): Promise<AuthorizationResponse>;
30
19
  export declare function generateContext(serviceContext: ServiceContext, token: string): Promise<{
31
20
  context: {
32
21
  user_id: string;
33
22
  token_payload: auth.JwtPayload;
34
23
  };
35
- errors?: undefined;
24
+ tokenError?: undefined;
36
25
  } | {
37
26
  context: null;
38
- errors: any[];
27
+ tokenError: AuthorizationError;
39
28
  }>;
40
29
  /**
41
30
  * @deprecated
@@ -1,4 +1,6 @@
1
1
  import * as jose from 'jose';
2
+ import * as auth from '../auth/auth-index.js';
3
+ import { AuthorizationError, ErrorCode } from '@powersync/lib-services-framework';
2
4
  export function endpoint(req) {
3
5
  const protocol = req.headers['x-forwarded-proto'] ?? req.protocol;
4
6
  const host = req.hostname;
@@ -78,14 +80,14 @@ export async function authorizeUser(context, authHeader = '') {
78
80
  if (token == null) {
79
81
  return {
80
82
  authorized: false,
81
- errors: ['Authentication required']
83
+ error: new AuthorizationError(ErrorCode.PSYNC_S2106, 'Authentication required')
82
84
  };
83
85
  }
84
- const { context: tokenContext, errors } = await generateContext(context.service_context, token);
86
+ const { context: tokenContext, tokenError } = await generateContext(context.service_context, token);
85
87
  if (!tokenContext) {
86
88
  return {
87
89
  authorized: false,
88
- errors
90
+ error: tokenError
89
91
  };
90
92
  }
91
93
  Object.assign(context, tokenContext);
@@ -110,7 +112,7 @@ export async function generateContext(serviceContext, token) {
110
112
  catch (err) {
111
113
  return {
112
114
  context: null,
113
- errors: [err.message]
115
+ tokenError: auth.mapAuthError(err, token)
114
116
  };
115
117
  }
116
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"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"}
@@ -537,13 +537,7 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
537
537
  }>> & {
538
538
  path: string;
539
539
  method: import("@powersync/lib-services-framework").HTTPMethod.GET;
540
- authorize: (payload: import("./router.js").RequestEndpointHandlerPayload) => Promise<{
541
- authorized: boolean;
542
- errors: any[];
543
- } | {
544
- authorized: boolean;
545
- errors?: undefined;
546
- }>;
540
+ authorize: (payload: import("./router.js").RequestEndpointHandlerPayload) => Promise<import("@powersync/lib-services-framework").AuthorizationResponse>;
547
541
  validator: import("@powersync/lib-services-framework").MicroValidator<{
548
542
  client_id?: string | undefined;
549
543
  }, string[]>;
@@ -565,13 +559,7 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
565
559
  }>> & {
566
560
  path: string;
567
561
  method: import("@powersync/lib-services-framework").HTTPMethod.GET;
568
- authorize: (payload: import("./router.js").RequestEndpointHandlerPayload) => Promise<{
569
- authorized: boolean;
570
- errors: any[];
571
- } | {
572
- authorized: boolean;
573
- errors?: undefined;
574
- }>;
562
+ authorize: (payload: import("./router.js").RequestEndpointHandlerPayload) => Promise<import("@powersync/lib-services-framework").AuthorizationResponse>;
575
563
  validator: import("@powersync/lib-services-framework").MicroValidator<{
576
564
  client_id?: string | undefined;
577
565
  }, string[]>;
@@ -722,13 +710,7 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
722
710
  }, import("./router.js").Context, import("./router.js").BasicRouterRequest>, import("@powersync/lib-services-framework").RouterResponse<import("stream").Readable> | undefined>> & {
723
711
  path: import("./endpoints/sync-stream.js").SyncRoutes;
724
712
  method: import("@powersync/lib-services-framework").HTTPMethod.POST;
725
- authorize: (payload: import("./router.js").RequestEndpointHandlerPayload) => Promise<{
726
- authorized: boolean;
727
- errors: any[];
728
- } | {
729
- authorized: boolean;
730
- errors?: undefined;
731
- }>;
713
+ authorize: (payload: import("./router.js").RequestEndpointHandlerPayload) => Promise<import("@powersync/lib-services-framework").AuthorizationResponse>;
732
714
  validator: import("@powersync/lib-services-framework").MicroValidator<{
733
715
  parameters?: Record<string, any> | undefined;
734
716
  buckets?: {
@@ -27,10 +27,11 @@ export const DEFAULT_ROUTE_OPTIONS = {
27
27
  */
28
28
  export function configureFastifyServer(server, options) {
29
29
  const { service_context, routes = DEFAULT_ROUTE_OPTIONS } = options;
30
- const generateContext = async () => {
30
+ const generateContext = async (request, options) => {
31
31
  return {
32
32
  user_id: undefined,
33
- service_context: service_context
33
+ service_context: service_context,
34
+ logger: options.logger
34
35
  };
35
36
  };
36
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"configure-fastify.js","sourceRoot":"","sources":["../../src/routes/configure-fastify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAA4B,MAAM,YAAY,CAAC;AA0B9E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,GAAG,EAAE;QACH,MAAM,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC;QACvF,aAAa,EAAE;YACb,WAAW,EAAE,EAAE;YACf,eAAe,EAAE,EAAE;SACpB;KACF;IACD,WAAW,EAAE;QACX,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAAC;QAC/B,aAAa,EAAE;YACb,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,CAAC;SACnB;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA+B,EAAE,OAA4B;IAClG,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,qBAAqB,EAAE,GAAG,OAAO,CAAC;IAEpE,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,eAAe,EAAE,eAAe;SACjC,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW,YAAY;QAC1C,qBAAqB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7G,uCAAuC;QACvC,YAAY,CAAC,OAAO,CAClB,WAAW,EACX,sBAAsB,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,IAAI,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,CAC7F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW,YAAY;QAC1C,qBAAqB,CACnB,YAAY,EACZ,eAAe,EACf,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,MAAM,CACvE,CAAC;QACF,uCAAuC;QACvC,YAAY,CAAC,OAAO,CAClB,WAAW,EACX,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,IAAI,qBAAqB,CAAC,WAAW,CAAC,aAAa,CAAC,CAC7G,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"configure-fastify.js","sourceRoot":"","sources":["../../src/routes/configure-fastify.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAA4B,MAAM,YAAY,CAAC;AA0B9E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,GAAG,EAAE;QACH,MAAM,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC;QACvF,aAAa,EAAE;YACb,WAAW,EAAE,EAAE;YACf,eAAe,EAAE,EAAE;SACpB;KACF;IACD,WAAW,EAAE;QACX,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAAC;QAC/B,aAAa,EAAE;YACb,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,CAAC;SACnB;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA+B,EAAE,OAA4B;IAClG,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,qBAAqB,EAAE,GAAG,OAAO,CAAC;IAEpE,MAAM,eAAe,GAAoB,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAClE,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,eAAe,EAAE,eAAe;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW,YAAY;QAC1C,qBAAqB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7G,uCAAuC;QACvC,YAAY,CAAC,OAAO,CAClB,WAAW,EACX,sBAAsB,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,IAAI,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,CAC7F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW,YAAY;QAC1C,qBAAqB,CACnB,YAAY,EACZ,eAAe,EACf,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,MAAM,CACvE,CAAC;QACF,uCAAuC;QACvC,YAAY,CAAC,OAAO,CAClB,WAAW,EACX,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,IAAI,qBAAqB,CAAC,WAAW,CAAC,aAAa,CAAC,CAC7G,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { deserialize } from 'bson';
2
- import { errors, logger } from '@powersync/lib-services-framework';
2
+ import * as uuid from 'uuid';
3
+ import { ErrorCode, errors, logger } from '@powersync/lib-services-framework';
3
4
  import { RSocketRequestMeta } from '@powersync/service-rsocket-router';
4
5
  import { generateContext, getTokenFromHeader } from './auth.js';
5
6
  import { syncStreamReactive } from './endpoints/socket-route.js';
@@ -9,39 +10,55 @@ export function configureRSocket(router, options) {
9
10
  const { route_generators = DEFAULT_SOCKET_ROUTES, server, service_context } = options;
10
11
  router.applyWebSocketEndpoints(server, {
11
12
  contextProvider: async (data) => {
12
- const { token, user_agent } = RSocketContextMeta.decode(deserialize(data));
13
+ const connectionLogger = logger.child({
14
+ // timestamp-based uuid - useful for requests
15
+ rid: `s/${uuid.v7()}`
16
+ });
17
+ const { token, user_agent } = RSocketContextMeta.decode(decodeTyped(data));
13
18
  if (!token) {
14
- throw new errors.AuthorizationError('No token provided');
19
+ throw new errors.AuthorizationError(ErrorCode.PSYNC_S2106, 'No token provided');
15
20
  }
16
21
  try {
17
22
  const extracted_token = getTokenFromHeader(token);
18
23
  if (extracted_token != null) {
19
- const { context, errors: token_errors } = await generateContext(options.service_context, extracted_token);
24
+ const { context, tokenError } = await generateContext(options.service_context, extracted_token);
20
25
  if (context?.token_payload == null) {
21
- throw new errors.AuthorizationError(token_errors ?? 'Authentication required');
26
+ throw new errors.AuthorizationError(ErrorCode.PSYNC_S2106, 'Authentication required');
22
27
  }
23
28
  return {
24
29
  token,
25
30
  user_agent,
26
31
  ...context,
27
- token_errors: token_errors,
28
- service_context: service_context
32
+ token_error: tokenError,
33
+ service_context: service_context,
34
+ logger: connectionLogger
29
35
  };
30
36
  }
31
37
  else {
32
- throw new errors.AuthorizationError('No token provided');
38
+ // Token field is present, but did not contain a token.
39
+ throw new errors.AuthorizationError(ErrorCode.PSYNC_S2106, 'No valid token provided');
33
40
  }
34
41
  }
35
42
  catch (ex) {
36
- logger.error(ex);
43
+ connectionLogger.error(ex);
37
44
  throw ex;
38
45
  }
39
46
  },
40
47
  endpoints: route_generators.map((generator) => generator(router)),
41
48
  metaDecoder: async (meta) => {
42
- return RSocketRequestMeta.decode(deserialize(meta));
49
+ return RSocketRequestMeta.decode(decodeTyped(meta));
43
50
  },
44
- payloadDecoder: async (rawData) => rawData && deserialize(rawData)
51
+ payloadDecoder: async (rawData) => rawData && decodeTyped(rawData)
45
52
  });
46
53
  }
54
+ function decodeTyped(data) {
55
+ switch (data.mimeType) {
56
+ case 'application/json':
57
+ const decoder = new TextDecoder();
58
+ return JSON.parse(decoder.decode(data.contents));
59
+ case 'application/bson':
60
+ return deserialize(data.contents);
61
+ }
62
+ throw new errors.UnsupportedMediaType(`Expected JSON or BSON request, got ${data.mimeType}`);
63
+ }
47
64
  //# sourceMappingURL=configure-rsocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configure-rsocket.js","sourceRoot":"","sources":["../../src/routes/configure-rsocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAwB,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAG7F,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAwB,MAAM,oBAAoB,CAAC;AAS9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,MAAqC,EAAE,OAA4B;IAClG,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEtF,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE;QACrC,eAAe,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;YACtC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAQ,CAAC,CAAC;YAElF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAClD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;oBAC5B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;oBAC1G,IAAI,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;wBACnC,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,YAAY,IAAI,yBAAyB,CAAC,CAAC;oBACjF,CAAC;oBAED,OAAO;wBACL,KAAK;wBACL,UAAU;wBACV,GAAG,OAAO;wBACV,YAAY,EAAE,YAAY;wBAC1B,eAAe,EAAE,eAAuC;qBACzD,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACjB,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;QACD,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjE,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;YAClC,OAAO,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAQ,CAAC,CAAC;QAC7D,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC;KAC5E,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"configure-rsocket.js","sourceRoot":"","sources":["../../src/routes/configure-rsocket.ts"],"names":[],"mappings":"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"}
@@ -133,6 +133,8 @@ export const validate = routeDefinition({
133
133
  // Dummy values
134
134
  id: 0,
135
135
  slot_name: '',
136
+ active: false,
137
+ last_checkpoint_lsn: '',
136
138
  parsed() {
137
139
  return {
138
140
  ...this,
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/routes/endpoints/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/routes/endpoints/admin.ts"],"names":[],"mappings":"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"}