@opendatalabs/personal-server-ts-server 1.34.1 → 1.35.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 (180) hide show
  1. package/dist/api-auth.d.ts +1 -0
  2. package/dist/api-auth.d.ts.map +1 -1
  3. package/dist/api-auth.js.map +1 -1
  4. package/dist/api.d.ts +3 -0
  5. package/dist/api.d.ts.map +1 -1
  6. package/dist/api.js +3 -0
  7. package/dist/api.js.map +1 -1
  8. package/dist/app.d.ts +14 -2
  9. package/dist/app.d.ts.map +1 -1
  10. package/dist/app.js +64 -8
  11. package/dist/app.js.map +1 -1
  12. package/dist/bootstrap.d.ts +19 -0
  13. package/dist/bootstrap.d.ts.map +1 -1
  14. package/dist/bootstrap.js +87 -4
  15. package/dist/bootstrap.js.map +1 -1
  16. package/dist/client.d.ts +1 -1
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +7 -0
  19. package/dist/client.js.map +1 -1
  20. package/dist/enclave-main.d.ts.map +1 -1
  21. package/dist/enclave-main.js +0 -2
  22. package/dist/enclave-main.js.map +1 -1
  23. package/dist/mcp/durable-state.d.ts +2 -1
  24. package/dist/mcp/durable-state.d.ts.map +1 -1
  25. package/dist/mcp/durable-state.js +35 -1
  26. package/dist/mcp/durable-state.js.map +1 -1
  27. package/dist/pdpp/bootstrap.d.ts.map +1 -1
  28. package/dist/pdpp/bootstrap.js +1 -0
  29. package/dist/pdpp/bootstrap.js.map +1 -1
  30. package/dist/pdpp/records-bootstrap.d.ts +47 -1
  31. package/dist/pdpp/records-bootstrap.d.ts.map +1 -1
  32. package/dist/pdpp/records-bootstrap.js +78 -2
  33. package/dist/pdpp/records-bootstrap.js.map +1 -1
  34. package/dist/pdpp/replica-authorization.d.ts +35 -0
  35. package/dist/pdpp/replica-authorization.d.ts.map +1 -0
  36. package/dist/pdpp/replica-authorization.js +234 -0
  37. package/dist/pdpp/replica-authorization.js.map +1 -0
  38. package/dist/pending-blob-deletions.d.ts +1 -0
  39. package/dist/pending-blob-deletions.d.ts.map +1 -1
  40. package/dist/pending-blob-deletions.js +8 -4
  41. package/dist/pending-blob-deletions.js.map +1 -1
  42. package/dist/routes/mcp.d.ts +18 -2
  43. package/dist/routes/mcp.d.ts.map +1 -1
  44. package/dist/routes/mcp.js +111 -11
  45. package/dist/routes/mcp.js.map +1 -1
  46. package/dist/routes/oura.d.ts +6 -0
  47. package/dist/routes/oura.d.ts.map +1 -0
  48. package/dist/routes/oura.js +272 -0
  49. package/dist/routes/oura.js.map +1 -0
  50. package/dist/routes/pdpp-auth-query-keys.d.ts +7 -0
  51. package/dist/routes/pdpp-auth-query-keys.d.ts.map +1 -0
  52. package/dist/routes/pdpp-auth-query-keys.js +25 -0
  53. package/dist/routes/pdpp-auth-query-keys.js.map +1 -0
  54. package/dist/routes/pdpp-auth.d.ts +3 -1
  55. package/dist/routes/pdpp-auth.d.ts.map +1 -1
  56. package/dist/routes/pdpp-auth.js +126 -45
  57. package/dist/routes/pdpp-auth.js.map +1 -1
  58. package/dist/routes/pdpp-blobs.d.ts +13 -1
  59. package/dist/routes/pdpp-blobs.d.ts.map +1 -1
  60. package/dist/routes/pdpp-blobs.js +100 -65
  61. package/dist/routes/pdpp-blobs.js.map +1 -1
  62. package/dist/routes/pdpp-connections.d.ts.map +1 -1
  63. package/dist/routes/pdpp-connections.js +24 -1
  64. package/dist/routes/pdpp-connections.js.map +1 -1
  65. package/dist/routes/pdpp-instance-bindings.d.ts +3 -0
  66. package/dist/routes/pdpp-instance-bindings.d.ts.map +1 -1
  67. package/dist/routes/pdpp-instance-bindings.js +63 -0
  68. package/dist/routes/pdpp-instance-bindings.js.map +1 -1
  69. package/dist/routes/pdpp-record-query.d.ts +19 -0
  70. package/dist/routes/pdpp-record-query.d.ts.map +1 -0
  71. package/dist/routes/pdpp-record-query.js +51 -0
  72. package/dist/routes/pdpp-record-query.js.map +1 -0
  73. package/dist/routes/pdpp-records.d.ts +12 -1
  74. package/dist/routes/pdpp-records.d.ts.map +1 -1
  75. package/dist/routes/pdpp-records.js +120 -233
  76. package/dist/routes/pdpp-records.js.map +1 -1
  77. package/dist/routes/pdpp-replica-quarantine-fixture.d.ts +65 -0
  78. package/dist/routes/pdpp-replica-quarantine-fixture.d.ts.map +1 -0
  79. package/dist/routes/pdpp-replica-quarantine-fixture.js +389 -0
  80. package/dist/routes/pdpp-replica-quarantine-fixture.js.map +1 -0
  81. package/dist/storage/claude-method-transition.d.ts +12 -0
  82. package/dist/storage/claude-method-transition.d.ts.map +1 -0
  83. package/dist/storage/claude-method-transition.js +139 -0
  84. package/dist/storage/claude-method-transition.js.map +1 -0
  85. package/dist/storage/import-operations.d.ts +16 -0
  86. package/dist/storage/import-operations.d.ts.map +1 -1
  87. package/dist/storage/import-operations.js +54 -1
  88. package/dist/storage/import-operations.js.map +1 -1
  89. package/dist/storage/index-schema.d.ts +1 -1
  90. package/dist/storage/index-schema.d.ts.map +1 -1
  91. package/dist/storage/index-schema.js +22 -5
  92. package/dist/storage/index-schema.js.map +1 -1
  93. package/dist/storage/legacy-scope-authority.d.ts.map +1 -1
  94. package/dist/storage/legacy-scope-authority.js +83 -11
  95. package/dist/storage/legacy-scope-authority.js.map +1 -1
  96. package/dist/storage/node-data-storage.d.ts.map +1 -1
  97. package/dist/storage/node-data-storage.js +58 -2
  98. package/dist/storage/node-data-storage.js.map +1 -1
  99. package/dist/storage/pdpp-binary-chunks.d.ts +120 -0
  100. package/dist/storage/pdpp-binary-chunks.d.ts.map +1 -0
  101. package/dist/storage/pdpp-binary-chunks.js +480 -0
  102. package/dist/storage/pdpp-binary-chunks.js.map +1 -0
  103. package/dist/storage/pdpp-records-sqlite-store.d.ts +96 -15
  104. package/dist/storage/pdpp-records-sqlite-store.d.ts.map +1 -1
  105. package/dist/storage/pdpp-records-sqlite-store.js +616 -211
  106. package/dist/storage/pdpp-records-sqlite-store.js.map +1 -1
  107. package/dist/storage/pdpp-replica-canonical-port.d.ts +202 -0
  108. package/dist/storage/pdpp-replica-canonical-port.d.ts.map +1 -0
  109. package/dist/storage/pdpp-replica-canonical-port.js +451 -0
  110. package/dist/storage/pdpp-replica-canonical-port.js.map +1 -0
  111. package/dist/storage/pdpp-replica-coordinator-state.d.ts +16 -0
  112. package/dist/storage/pdpp-replica-coordinator-state.d.ts.map +1 -0
  113. package/dist/storage/pdpp-replica-coordinator-state.js +25 -0
  114. package/dist/storage/pdpp-replica-coordinator-state.js.map +1 -0
  115. package/dist/storage/pdpp-replica-copies.d.ts +81 -0
  116. package/dist/storage/pdpp-replica-copies.d.ts.map +1 -0
  117. package/dist/storage/pdpp-replica-copies.js +59 -0
  118. package/dist/storage/pdpp-replica-copies.js.map +1 -0
  119. package/dist/storage/pdpp-replica-reconciler.d.ts +96 -0
  120. package/dist/storage/pdpp-replica-reconciler.d.ts.map +1 -0
  121. package/dist/storage/pdpp-replica-reconciler.js +710 -0
  122. package/dist/storage/pdpp-replica-reconciler.js.map +1 -0
  123. package/dist/storage/pdpp-replica-sql.d.ts +13 -0
  124. package/dist/storage/pdpp-replica-sql.d.ts.map +1 -0
  125. package/dist/storage/pdpp-replica-sql.js +43 -0
  126. package/dist/storage/pdpp-replica-sql.js.map +1 -0
  127. package/dist/storage/pdpp-replica-staging.d.ts +36 -0
  128. package/dist/storage/pdpp-replica-staging.d.ts.map +1 -0
  129. package/dist/storage/pdpp-replica-staging.js +202 -0
  130. package/dist/storage/pdpp-replica-staging.js.map +1 -0
  131. package/dist/storage/pdpp-replica-visibility-view.d.ts +64 -0
  132. package/dist/storage/pdpp-replica-visibility-view.d.ts.map +1 -0
  133. package/dist/storage/pdpp-replica-visibility-view.js +1397 -0
  134. package/dist/storage/pdpp-replica-visibility-view.js.map +1 -0
  135. package/dist/storage/pdpp-replica-writer-identity.d.ts +64 -0
  136. package/dist/storage/pdpp-replica-writer-identity.d.ts.map +1 -0
  137. package/dist/storage/pdpp-replica-writer-identity.js +81 -0
  138. package/dist/storage/pdpp-replica-writer-identity.js.map +1 -0
  139. package/dist/storage/pdpp-replication-door.d.ts +60 -0
  140. package/dist/storage/pdpp-replication-door.d.ts.map +1 -0
  141. package/dist/storage/pdpp-replication-door.js +203 -0
  142. package/dist/storage/pdpp-replication-door.js.map +1 -0
  143. package/dist/storage/pdpp-replication-host.d.ts +67 -0
  144. package/dist/storage/pdpp-replication-host.d.ts.map +1 -0
  145. package/dist/storage/pdpp-replication-host.js +159 -0
  146. package/dist/storage/pdpp-replication-host.js.map +1 -0
  147. package/dist/storage/pdpp-replication-memory.fixture.d.ts +2 -0
  148. package/dist/storage/pdpp-replication-memory.fixture.d.ts.map +1 -0
  149. package/dist/storage/pdpp-replication-memory.fixture.js +267 -0
  150. package/dist/storage/pdpp-replication-memory.fixture.js.map +1 -0
  151. package/dist/storage/pdpp-replication-preparation.d.ts +3 -0
  152. package/dist/storage/pdpp-replication-preparation.d.ts.map +1 -0
  153. package/dist/storage/pdpp-replication-preparation.js +3 -0
  154. package/dist/storage/pdpp-replication-preparation.js.map +1 -0
  155. package/dist/storage/pdpp-replication-promotion-memory.fixture.d.ts +2 -0
  156. package/dist/storage/pdpp-replication-promotion-memory.fixture.d.ts.map +1 -0
  157. package/dist/storage/pdpp-replication-promotion-memory.fixture.js +65 -0
  158. package/dist/storage/pdpp-replication-promotion-memory.fixture.js.map +1 -0
  159. package/dist/storage/pdpp-replication-receiver.d.ts +230 -0
  160. package/dist/storage/pdpp-replication-receiver.d.ts.map +1 -0
  161. package/dist/storage/pdpp-replication-receiver.js +950 -0
  162. package/dist/storage/pdpp-replication-receiver.js.map +1 -0
  163. package/dist/storage/pdpp-replication-sqlite.d.ts +95 -0
  164. package/dist/storage/pdpp-replication-sqlite.d.ts.map +1 -0
  165. package/dist/storage/pdpp-replication-sqlite.js +615 -0
  166. package/dist/storage/pdpp-replication-sqlite.js.map +1 -0
  167. package/dist/storage/pdpp-replication-transport.d.ts +39 -0
  168. package/dist/storage/pdpp-replication-transport.d.ts.map +1 -0
  169. package/dist/storage/pdpp-replication-transport.js +196 -0
  170. package/dist/storage/pdpp-replication-transport.js.map +1 -0
  171. package/dist/storage/schema-versions.d.ts +5 -0
  172. package/dist/storage/schema-versions.d.ts.map +1 -0
  173. package/dist/storage/schema-versions.js +26 -0
  174. package/dist/storage/schema-versions.js.map +1 -0
  175. package/dist/storage/strava-method-transition.d.ts +18 -0
  176. package/dist/storage/strava-method-transition.d.ts.map +1 -0
  177. package/dist/storage/strava-method-transition.js +209 -0
  178. package/dist/storage/strava-method-transition.js.map +1 -0
  179. package/dist/ui/ps-lite-debug.js +137018 -106931
  180. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdpp-replica-visibility-view.js","sourceRoot":"","sources":["../../src/storage/pdpp-replica-visibility-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { ReplicationTimers } from "@opendatalabs/personal-server-ts-core/replication/host-driver";
2
+ import type { Database } from "better-sqlite3";
3
+ import type { ReplicaRosterPort, ReplicaRosterRecord } from "@opendatalabs/personal-server-ts-core/replication/roster";
4
+ import type { ReplicaWriterIdentity, ReplicaWriterIdentityState } from "@opendatalabs/personal-server-ts-core/replication/writer-identity-store";
5
+ import type { ReplicaWriterRotation } from "@opendatalabs/personal-server-ts-core/replication/writer-identity";
6
+ /**
7
+ * This server's replica writer identity (host contract §3.2) on Node. The
8
+ * rules are core's (`core/replication/writer-identity-store.ts`), shared with
9
+ * PS-Lite; this binds them to one better-sqlite3 connection, its door and
10
+ * its replica journal.
11
+ */
12
+ export { REPLICA_WRITER_IDENTITY_MIGRATION, ReplicaWriterIdentityError, type ReplicaWriterIdentity, type ReplicaWriterIdentityState, } from "@opendatalabs/personal-server-ts-core/replication/writer-identity-store";
13
+ /** The current identity, or undefined before the first enable. */
14
+ export declare function currentReplicaWriterIdentity(db: Database): ReplicaWriterIdentity | undefined;
15
+ /**
16
+ * Create or update the identity from this server's own gateway record.
17
+ * Idempotent for the current registration. A new registration id (the
18
+ * address registered again) starts a new incarnation with a new nonce.
19
+ *
20
+ * The first identity requires an empty replica journal: operations captured
21
+ * before it carry another writer id, which receivers refuse. A database that
22
+ * captured under the old random writer ids starts fresh. Throws
23
+ * `ReplicationRefusedError` instead of writing once the door is closed.
24
+ */
25
+ export declare function establishReplicaWriterIdentity(db: Database, input: {
26
+ owner: string;
27
+ server: string;
28
+ record: ReplicaRosterRecord | null;
29
+ nonce?: string;
30
+ }): ReplicaWriterIdentity;
31
+ /**
32
+ * A new nonce under the same registration, before new writes. Hosts call it
33
+ * after a replication reset and after restoring or cloning a database: both
34
+ * copies would otherwise continue the same writer sequences. On a database
35
+ * whose replication door is closed it throws `ReplicationRefusedError` and
36
+ * writes nothing: that database never replicates again, so it has no writer
37
+ * to rotate, and a restore path may ignore the refusal.
38
+ */
39
+ export declare function rotateReplicaWriterIdentity(db: Database, input?: {
40
+ nonce?: string;
41
+ }): ReplicaWriterIdentity;
42
+ /**
43
+ * The boot step for a host's rotation request (host contract §3.2). A host
44
+ * asks when it cannot rule out that this database is a copy: a restore, a
45
+ * clone, a reinstall onto existing data. `replicationEnabled` is this boot's
46
+ * result from the replication door. Run it after the door and before any
47
+ * record store of this boot captures a write. A database without an identity
48
+ * yet reports `no_identity`: its first identity draws a new nonce anyway.
49
+ */
50
+ export declare function rotateReplicaWriterIdentityAtBoot(db: Database, input: {
51
+ requested: boolean;
52
+ replicationEnabled: boolean;
53
+ }): ReplicaWriterRotation;
54
+ /** See core `enableReplicaWriterIdentity`. */
55
+ export declare function enableReplicaWriterIdentity(input: {
56
+ db: Database;
57
+ owner: string;
58
+ server: string;
59
+ roster: ReplicaRosterPort;
60
+ signal?: AbortSignal;
61
+ deadlineMs?: number;
62
+ timers?: Pick<ReplicationTimers, "setTimeout" | "clearTimeout">;
63
+ }): Promise<ReplicaWriterIdentityState>;
64
+ //# sourceMappingURL=pdpp-replica-writer-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdpp-replica-writer-identity.d.ts","sourceRoot":"","sources":["../../src/storage/pdpp-replica-writer-identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAC;AACvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,0DAA0D,CAAC;AAOlE,OAAO,KAAK,EACV,qBAAqB,EAErB,0BAA0B,EAC3B,MAAM,yEAAyE,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mEAAmE,CAAC;AAI/G;;;;;GAKG;AACH,OAAO,EACL,iCAAiC,EACjC,0BAA0B,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,GAChC,MAAM,yEAAyE,CAAC;AAYjF,kEAAkE;AAClE,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,QAAQ,GACX,qBAAqB,GAAG,SAAS,CAEnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE;IACL,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,qBAAqB,CAMvB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,QAAQ,EACZ,KAAK,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,qBAAqB,CAMvB;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAE,GACzD,qBAAqB,CAWvB;AAED,8CAA8C;AAC9C,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,EAAE,EAAE,QAAQ,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC;CACjE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAOtC"}
@@ -0,0 +1,81 @@
1
+ import { perform, runEffectSync, } from "@opendatalabs/personal-server-ts-core/replication/effects";
2
+ import * as identity from "@opendatalabs/personal-server-ts-core/replication/writer-identity-store";
3
+ import { replicationAdmitted } from "./pdpp-replication-door.js";
4
+ import { nodeReplicaContext } from "./pdpp-replica-sql.js";
5
+ /**
6
+ * This server's replica writer identity (host contract §3.2) on Node. The
7
+ * rules are core's (`core/replication/writer-identity-store.ts`), shared with
8
+ * PS-Lite; this binds them to one better-sqlite3 connection, its door and
9
+ * its replica journal.
10
+ */
11
+ export { REPLICA_WRITER_IDENTITY_MIGRATION, ReplicaWriterIdentityError, } from "@opendatalabs/personal-server-ts-core/replication/writer-identity-store";
12
+ const run = (db, effect) => runEffectSync(effect, nodeReplicaContext(db));
13
+ const host = (db) => ({
14
+ admitted: () => perform(() => replicationAdmitted(db)),
15
+ journalEmpty: () => perform(() => !db.prepare("SELECT 1 FROM pdpp_replica_operations LIMIT 1").get()),
16
+ });
17
+ /** The current identity, or undefined before the first enable. */
18
+ export function currentReplicaWriterIdentity(db) {
19
+ return run(db, identity.currentReplicaWriterIdentity());
20
+ }
21
+ /**
22
+ * Create or update the identity from this server's own gateway record.
23
+ * Idempotent for the current registration. A new registration id (the
24
+ * address registered again) starts a new incarnation with a new nonce.
25
+ *
26
+ * The first identity requires an empty replica journal: operations captured
27
+ * before it carry another writer id, which receivers refuse. A database that
28
+ * captured under the old random writer ids starts fresh. Throws
29
+ * `ReplicationRefusedError` instead of writing once the door is closed.
30
+ */
31
+ export function establishReplicaWriterIdentity(db, input) {
32
+ return db
33
+ .transaction(() => run(db, identity.establishReplicaWriterIdentity(host(db), input)))
34
+ .immediate();
35
+ }
36
+ /**
37
+ * A new nonce under the same registration, before new writes. Hosts call it
38
+ * after a replication reset and after restoring or cloning a database: both
39
+ * copies would otherwise continue the same writer sequences. On a database
40
+ * whose replication door is closed it throws `ReplicationRefusedError` and
41
+ * writes nothing: that database never replicates again, so it has no writer
42
+ * to rotate, and a restore path may ignore the refusal.
43
+ */
44
+ export function rotateReplicaWriterIdentity(db, input = {}) {
45
+ return db
46
+ .transaction(() => run(db, identity.rotateReplicaWriterIdentity(host(db), input)))
47
+ .immediate();
48
+ }
49
+ /**
50
+ * The boot step for a host's rotation request (host contract §3.2). A host
51
+ * asks when it cannot rule out that this database is a copy: a restore, a
52
+ * clone, a reinstall onto existing data. `replicationEnabled` is this boot's
53
+ * result from the replication door. Run it after the door and before any
54
+ * record store of this boot captures a write. A database without an identity
55
+ * yet reports `no_identity`: its first identity draws a new nonce anyway.
56
+ */
57
+ export function rotateReplicaWriterIdentityAtBoot(db, input) {
58
+ if (!input.requested)
59
+ return "not_requested";
60
+ if (!input.replicationEnabled)
61
+ return "replication_off";
62
+ try {
63
+ rotateReplicaWriterIdentity(db);
64
+ return "rotated";
65
+ }
66
+ catch (error) {
67
+ const outcome = identity.replicaWriterRotationOutcome(error);
68
+ if (outcome)
69
+ return outcome;
70
+ throw error;
71
+ }
72
+ }
73
+ /** See core `enableReplicaWriterIdentity`. */
74
+ export function enableReplicaWriterIdentity(input) {
75
+ return identity.enableReplicaWriterIdentity({
76
+ ...input,
77
+ current: () => currentReplicaWriterIdentity(input.db),
78
+ establish: (record) => establishReplicaWriterIdentity(input.db, { ...input, record }),
79
+ });
80
+ }
81
+ //# sourceMappingURL=pdpp-replica-writer-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdpp-replica-writer-identity.js","sourceRoot":"","sources":["../../src/storage/pdpp-replica-writer-identity.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,OAAO,EACP,aAAa,GAEd,MAAM,2DAA2D,CAAC;AACnE,OAAO,KAAK,QAAQ,MAAM,yEAAyE,CAAC;AAOpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;GAKG;AACH,OAAO,EACL,iCAAiC,EACjC,0BAA0B,GAG3B,MAAM,yEAAyE,CAAC;AAEjF,MAAM,GAAG,GAAG,CAAI,EAAY,EAAE,MAAwB,EAAE,EAAE,CACxD,aAAa,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,MAAM,IAAI,GAAG,CAAC,EAAY,EAA6B,EAAE,CAAC,CAAC;IACzD,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACtD,YAAY,EAAE,GAAG,EAAE,CACjB,OAAO,CACL,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,EAAE,CACzE;CACJ,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,UAAU,4BAA4B,CAC1C,EAAY;IAEZ,OAAO,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,4BAA4B,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,8BAA8B,CAC5C,EAAY,EACZ,KAKC;IAED,OAAO,EAAE;SACN,WAAW,CAAC,GAAG,EAAE,CAChB,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAClE;SACA,SAAS,EAAE,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,EAAY,EACZ,QAA4B,EAAE;IAE9B,OAAO,EAAE;SACN,WAAW,CAAC,GAAG,EAAE,CAChB,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAC/D;SACA,SAAS,EAAE,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAC/C,EAAY,EACZ,KAA0D;IAE1D,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,eAAe,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAAE,OAAO,iBAAiB,CAAC;IACxD,IAAI,CAAC;QACH,2BAA2B,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,2BAA2B,CAAC,KAQ3C;IACC,OAAO,QAAQ,CAAC,2BAA2B,CAAC;QAC1C,GAAG,KAAK;QACR,OAAO,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,8BAA8B,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;KACjE,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The replication door on a Node database (see `core/replication/door.ts`).
3
+ *
4
+ * The first enabled open creates `pdpp_replica_door`, one row that records
5
+ * the enable and holds a capture guard, and AFTER triggers on every canonical
6
+ * table a replicated mutation writes. A trigger marks the row `uncaptured`
7
+ * when it fires while the guard is 0. Capture and import transactions set the
8
+ * guard to 1 at their start and back to 0 before they commit
9
+ * (`captureWrites`), so only a write outside them marks the row. The fence is
10
+ * plain SQL, so it also catches a build that knows nothing of replication.
11
+ *
12
+ * A database that never enabled replication gets none of this: the flag-off
13
+ * open only probes `sqlite_master` for the table.
14
+ */
15
+ import type { Database } from "better-sqlite3";
16
+ import { type ReplicationDoorStatus } from "@opendatalabs/personal-server-ts-core/replication/door";
17
+ /** The flag-off open's only replica statement. Read-only. */
18
+ export declare const REPLICATION_DOOR_PROBE = "SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'pdpp_replica_door'";
19
+ export declare const REPLICATION_DOOR_SCHEMA: string;
20
+ /**
21
+ * Whether replication may still capture and publish on this database: the
22
+ * door exists and is open. Read-only. A write outside capture, or a flag-off
23
+ * open, closes it while a worker runs; the worker checks before each step.
24
+ */
25
+ export declare function replicationAdmitted(db: Database): boolean;
26
+ /**
27
+ * Bind one running transport step to its host signal and the durable door.
28
+ * `retireReplication` aborts it immediately in this process; polling also
29
+ * observes closure by another database connection or an older build.
30
+ */
31
+ export declare function beginReplicationStep(db: Database, parent?: AbortSignal): {
32
+ signal: AbortSignal;
33
+ close: () => void;
34
+ };
35
+ /** Check immediately before/after I/O that can send a transport write. */
36
+ export declare function assertReplicationStepOpen(db: Database, signal: AbortSignal): void;
37
+ /** Check after the receiver raises its capture guard inside the write tx. */
38
+ export declare function assertReplicationTransactionOpen(db: Database, signal: AbortSignal): void;
39
+ /**
40
+ * The enabled open's door check. Creates the door and fence on the first
41
+ * enable; throws `ReplicationRefusedError` when the door is closed. Run after
42
+ * the canonical schema exists and before any replica write.
43
+ */
44
+ export declare function admitReplication(db: Database): void;
45
+ /**
46
+ * The flag-off open's door step: once replication was enabled, an open with
47
+ * it off closes the door for good and drops the fence, so a closed door costs
48
+ * flag-off writes nothing. It also writes main's whole row for canonical
49
+ * blobs that replication stored only as chunks. On a database that never
50
+ * enabled it, this is one read of `sqlite_master` and writes nothing.
51
+ */
52
+ export declare function retireReplication(db: Database): ReplicationDoorStatus;
53
+ /**
54
+ * Run `write` as a capture or import: canonical writes inside it do not trip
55
+ * the fence. Call it inside the write's transaction. Nested calls leave the
56
+ * guard to the outermost one, which resets it before the transaction
57
+ * commits; a rollback restores it.
58
+ */
59
+ export declare function captureWrites<T>(db: Database, write: () => T): T;
60
+ //# sourceMappingURL=pdpp-replication-door.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdpp-replication-door.d.ts","sourceRoot":"","sources":["../../src/storage/pdpp-replication-door.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,wDAAwD,CAAC;AAEhE,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,oFACgD,CAAC;AA2BpF,eAAO,MAAM,uBAAuB,QAanC,CAAC;AAyBF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CA+B5C;AAED,0EAA0E;AAC1E,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,WAAW,GAClB,IAAI,CAMN;AAED,6EAA6E;AAC7E,wBAAgB,gCAAgC,CAC9C,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,WAAW,GAClB,IAAI,CAiBN;AAmBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAcnD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,qBAAqB,CAQrE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAqBhE"}
@@ -0,0 +1,203 @@
1
+ import { materializeCanonicalBinaries } from "./pdpp-binary-chunks.js";
2
+ import { ReplicationRefusedError, } from "@opendatalabs/personal-server-ts-core/replication/door";
3
+ /** The flag-off open's only replica statement. Read-only. */
4
+ export const REPLICATION_DOOR_PROBE = "SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'pdpp_replica_door'";
5
+ const runningSteps = new WeakMap();
6
+ /**
7
+ * Canonical tables a replicated mutation writes, and the operations fenced on
8
+ * each. Blob claims fence INSERT and UPDATE only: startup GC deletes stale
9
+ * claims on every open, and a claim is otherwise removed only with a binding
10
+ * change, which `pdpp_instance_binding` fences.
11
+ */
12
+ const FENCED = [
13
+ ["pdpp_records", ["INSERT", "UPDATE", "DELETE"]],
14
+ ["pdpp_instance_binding", ["INSERT", "UPDATE", "DELETE"]],
15
+ ["pdpp_stream_completion", ["INSERT", "UPDATE", "DELETE"]],
16
+ ["pdpp_claude_transition", ["INSERT", "UPDATE", "DELETE"]],
17
+ ["pdpp_strava_transition", ["INSERT", "UPDATE", "DELETE"]],
18
+ ["pdpp_blob_claims", ["INSERT", "UPDATE"]],
19
+ ];
20
+ const TRIGGERS = FENCED.flatMap(([table, operations]) => operations.map((operation) => ({
21
+ name: `pdpp_replica_door_${table}_${operation.toLowerCase()}`,
22
+ table,
23
+ operation,
24
+ })));
25
+ export const REPLICATION_DOOR_SCHEMA = `
26
+ CREATE TABLE IF NOT EXISTS pdpp_replica_door (
27
+ id INTEGER PRIMARY KEY CHECK (id = 1),
28
+ capturing INTEGER NOT NULL DEFAULT 0 CHECK (capturing IN (0, 1)),
29
+ uncaptured INTEGER NOT NULL DEFAULT 0 CHECK (uncaptured IN (0, 1)),
30
+ off INTEGER NOT NULL DEFAULT 0 CHECK (off IN (0, 1))
31
+ );
32
+ ${TRIGGERS.map(({ name, table, operation }) => `CREATE TRIGGER IF NOT EXISTS ${name} AFTER ${operation} ON ${table}
33
+ WHEN (SELECT capturing = 0 AND uncaptured = 0 FROM pdpp_replica_door WHERE id = 1)
34
+ BEGIN UPDATE pdpp_replica_door SET uncaptured = 1 WHERE id = 1; END;`).join("\n")}
35
+ `;
36
+ /** Closing the door is final, so the fence has nothing left to guard. */
37
+ const CLOSE_DOOR = `
38
+ UPDATE pdpp_replica_door SET off = 1 WHERE id = 1 AND off = 0;
39
+ ${TRIGGERS.map(({ name }) => `DROP TRIGGER IF EXISTS ${name};`).join("\n")}
40
+ `;
41
+ function hasDoor(db) {
42
+ return db.prepare(REPLICATION_DOOR_PROBE).get() !== undefined;
43
+ }
44
+ /**
45
+ * The door row is exactly open. A committed `capturing = 1` cannot survive a
46
+ * rollback, so it is corruption, and it would silence every trigger.
47
+ */
48
+ function doorOpen(db) {
49
+ const door = db
50
+ .prepare("SELECT capturing, uncaptured, off FROM pdpp_replica_door WHERE id = 1")
51
+ .get();
52
+ return door?.capturing === 0 && door.uncaptured === 0 && door.off === 0;
53
+ }
54
+ /**
55
+ * Whether replication may still capture and publish on this database: the
56
+ * door exists and is open. Read-only. A write outside capture, or a flag-off
57
+ * open, closes it while a worker runs; the worker checks before each step.
58
+ */
59
+ export function replicationAdmitted(db) {
60
+ return hasDoor(db) && doorOpen(db);
61
+ }
62
+ /**
63
+ * Bind one running transport step to its host signal and the durable door.
64
+ * `retireReplication` aborts it immediately in this process; polling also
65
+ * observes closure by another database connection or an older build.
66
+ */
67
+ export function beginReplicationStep(db, parent) {
68
+ if (!replicationAdmitted(db))
69
+ throw new ReplicationRefusedError("reenable_refused");
70
+ const controller = new AbortController();
71
+ const active = runningSteps.get(db) ?? new Set();
72
+ active.add(controller);
73
+ runningSteps.set(db, active);
74
+ const abort = (reason) => {
75
+ if (!controller.signal.aborted)
76
+ controller.abort(reason);
77
+ };
78
+ const onParentAbort = () => abort(parent?.reason);
79
+ parent?.addEventListener("abort", onParentAbort, { once: true });
80
+ const poll = setInterval(() => {
81
+ try {
82
+ if (!replicationAdmitted(db))
83
+ abort(new ReplicationRefusedError("reenable_refused"));
84
+ }
85
+ catch (error) {
86
+ abort(error);
87
+ }
88
+ }, 25);
89
+ poll.unref?.();
90
+ if (parent?.aborted)
91
+ onParentAbort();
92
+ return {
93
+ signal: controller.signal,
94
+ close() {
95
+ clearInterval(poll);
96
+ parent?.removeEventListener("abort", onParentAbort);
97
+ active.delete(controller);
98
+ if (active.size === 0)
99
+ runningSteps.delete(db);
100
+ },
101
+ };
102
+ }
103
+ /** Check immediately before/after I/O that can send a transport write. */
104
+ export function assertReplicationStepOpen(db, signal) {
105
+ if (!replicationAdmitted(db)) {
106
+ abortRunningSteps(db, new ReplicationRefusedError("reenable_refused"));
107
+ }
108
+ if (signal.aborted)
109
+ throw signal.reason ?? new ReplicationRefusedError("reenable_refused");
110
+ }
111
+ /** Check after the receiver raises its capture guard inside the write tx. */
112
+ export function assertReplicationTransactionOpen(db, signal) {
113
+ const door = db
114
+ .prepare("SELECT capturing, uncaptured, off FROM pdpp_replica_door WHERE id = 1")
115
+ .get();
116
+ if (door?.capturing !== 1 ||
117
+ door.uncaptured !== 0 ||
118
+ door.off !== 0 ||
119
+ signal.aborted) {
120
+ const error = signal.reason ?? new ReplicationRefusedError("reenable_refused");
121
+ abortRunningSteps(db, error);
122
+ throw error;
123
+ }
124
+ }
125
+ function abortRunningSteps(db, reason) {
126
+ for (const controller of runningSteps.get(db) ?? [])
127
+ if (!controller.signal.aborted)
128
+ controller.abort(reason);
129
+ }
130
+ /** A database a pre-door build enabled: baselined, with no record of off periods. */
131
+ function enabledWithoutDoor(db) {
132
+ return (db
133
+ .prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'pdpp_replica_settings'")
134
+ .get() !== undefined &&
135
+ db.prepare("SELECT 1 FROM pdpp_replica_settings").get() !== undefined);
136
+ }
137
+ /**
138
+ * The enabled open's door check. Creates the door and fence on the first
139
+ * enable; throws `ReplicationRefusedError` when the door is closed. Run after
140
+ * the canonical schema exists and before any replica write.
141
+ */
142
+ export function admitReplication(db) {
143
+ db.transaction(() => {
144
+ if (hasDoor(db)) {
145
+ // Admit only a door row that is exactly open. Refusing also closes the
146
+ // door for good.
147
+ if (!doorOpen(db))
148
+ throw new ReplicationRefusedError("reenable_refused");
149
+ }
150
+ else if (enabledWithoutDoor(db)) {
151
+ // Unbaselined replica tables are harmless: the baseline reads every
152
+ // canonical row. A baseline without a door may have missed writes.
153
+ throw new ReplicationRefusedError("reenable_refused");
154
+ }
155
+ db.exec(REPLICATION_DOOR_SCHEMA);
156
+ db.prepare("INSERT OR IGNORE INTO pdpp_replica_door (id) VALUES (1)").run();
157
+ }).immediate();
158
+ }
159
+ /**
160
+ * The flag-off open's door step: once replication was enabled, an open with
161
+ * it off closes the door for good and drops the fence, so a closed door costs
162
+ * flag-off writes nothing. It also writes main's whole row for canonical
163
+ * blobs that replication stored only as chunks. On a database that never
164
+ * enabled it, this is one read of `sqlite_master` and writes nothing.
165
+ */
166
+ export function retireReplication(db) {
167
+ if (!hasDoor(db))
168
+ return { state: "never" };
169
+ db.transaction(() => db.exec(CLOSE_DOOR)).immediate();
170
+ abortRunningSteps(db, new ReplicationRefusedError("reenable_refused"));
171
+ // Replication keeps large canonical blobs chunk-only. Give each one main's
172
+ // whole row before any flag-off store or plain main build reads it.
173
+ materializeCanonicalBinaries(db);
174
+ return { state: "off" };
175
+ }
176
+ /**
177
+ * Run `write` as a capture or import: canonical writes inside it do not trip
178
+ * the fence. Call it inside the write's transaction. Nested calls leave the
179
+ * guard to the outermost one, which resets it before the transaction
180
+ * commits; a rollback restores it.
181
+ */
182
+ export function captureWrites(db, write) {
183
+ if (!db.inTransaction)
184
+ throw new Error("a capture guard requires the write transaction");
185
+ let guard = guards.get(db);
186
+ if (!guard) {
187
+ guard = {
188
+ raise: db.prepare("UPDATE pdpp_replica_door SET capturing = 1 WHERE id = 1 AND capturing = 0"),
189
+ lower: db.prepare("UPDATE pdpp_replica_door SET capturing = 0 WHERE id = 1"),
190
+ };
191
+ guards.set(db, guard);
192
+ }
193
+ const outermost = guard.raise.run().changes === 1;
194
+ try {
195
+ return write();
196
+ }
197
+ finally {
198
+ if (outermost && db.inTransaction)
199
+ guard.lower.run();
200
+ }
201
+ }
202
+ const guards = new WeakMap();
203
+ //# sourceMappingURL=pdpp-replication-door.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdpp-replication-door.js","sourceRoot":"","sources":["../../src/storage/pdpp-replication-door.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Node host wiring for record replication (plan item A9).
3
+ *
4
+ * Bootstrap calls this only when the boot's replication door is on. It
5
+ * builds the receiver, the transport worker and the shared host driver over
6
+ * the boot's database, and returns the driver for start and shutdown. Phase
7
+ * order, retries and backoff stay in the core coordinator; this file only
8
+ * constructs ports and passes finite budgets.
9
+ */
10
+ import type { Database } from "better-sqlite3";
11
+ import type { Logger } from "pino";
12
+ import type { DeclarationSnapshot } from "@opendatalabs/personal-server-ts-core/pdpp";
13
+ import type { ServerAccount } from "@opendatalabs/personal-server-ts-core/keys";
14
+ import type { ReplicaBudget } from "@opendatalabs/personal-server-ts-core/replication/coordinator";
15
+ import { type ReplicationNetworkPorts } from "@opendatalabs/personal-server-ts-core/replication/host-ports";
16
+ import { type ReplicationDriver, type ReplicationTimers } from "@opendatalabs/personal-server-ts-core/replication/host-driver";
17
+ import type { PdppReplicaReads } from "@opendatalabs/personal-server-ts-core/storage/pdpp-records";
18
+ import { type ReplicaRecordStore } from "./pdpp-replica-canonical-port.js";
19
+ import { createReplicaTransportWorker } from "./pdpp-replication-transport.js";
20
+ /**
21
+ * Desktop step bound (host contract §6): 50 units, 64 MiB. Bytes stay
22
+ * omitted so the coordinator's 64 MiB default applies, under which a batch
23
+ * larger than the whole step still runs alone; an explicit 64 MiB would
24
+ * defer it forever.
25
+ */
26
+ export declare const NODE_REPLICATION_BUDGET: ReplicaBudget;
27
+ /** How long shutdown waits for an aborted step before closing storage. */
28
+ export declare const NODE_REPLICATION_STOP_GRACE_MS = 5000;
29
+ export type NodeReplication = {
30
+ state: "started";
31
+ /** The boot's record store. The resource server must use this one. */
32
+ store: ReplicaRecordStore;
33
+ /** The resource server's reader port (pending preview for owners). */
34
+ reads: PdppReplicaReads;
35
+ driver: ReplicationDriver;
36
+ worker: ReturnType<typeof createReplicaTransportWorker>;
37
+ }
38
+ /** Replication is on for this database but cannot run this boot. */
39
+ | {
40
+ state: "blocked";
41
+ reason: string;
42
+ };
43
+ /**
44
+ * Build the replication runtime for one owner's database. Does not step:
45
+ * the caller starts the returned driver once the server is serving.
46
+ *
47
+ * The returned store and reads replace the resource server's own: the
48
+ * receiver's local-write and visibility observers live on one store instance,
49
+ * and a host with a receiver reads through `receiver.readStore`.
50
+ */
51
+ export declare function createNodeReplication(input: {
52
+ db: Database;
53
+ owner: `0x${string}`;
54
+ chainId: number;
55
+ /** The retained declarations the resource server serves. */
56
+ declarations: readonly DeclarationSnapshot[];
57
+ /** The registered server key (`key.json`). Never the owner wallet. */
58
+ serverAccount: Pick<ServerAccount, "address" | "signTypedData">;
59
+ /** Built only once the chain, owner and declarations are known good. */
60
+ ports: (owner: `0x${string}`) => ReplicationNetworkPorts;
61
+ logger: Pick<Logger, "info" | "warn">;
62
+ budget?: ReplicaBudget;
63
+ timers?: ReplicationTimers;
64
+ /** Worker options for tests (e.g. `now`, chunk sizes). */
65
+ worker?: Partial<Parameters<typeof createReplicaTransportWorker>[0]>;
66
+ }): NodeReplication;
67
+ //# sourceMappingURL=pdpp-replication-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdpp-replication-host.d.ts","sourceRoot":"","sources":["../../src/storage/pdpp-replication-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,+DAA+D,CAAC;AAGvE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,iBAAiB,EACvB,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAG/E;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAA6B,CAAC;AACpE,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,OAAQ,CAAC;AAEpD,MAAM,MAAM,eAAe,GACvB;IACE,KAAK,EAAE,SAAS,CAAC;IACjB,sEAAsE;IACtE,KAAK,EAAE,kBAAkB,CAAC;IAC1B,sEAAsE;IACtE,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;CACzD;AACH,oEAAoE;GAClE;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,EAAE,EAAE,QAAQ,CAAC;IACb,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,sEAAsE;IACtE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;IAChE,wEAAwE;IACxE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,uBAAuB,CAAC;IACzD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,GAAG,eAAe,CAyIlB"}