@delali/sirannon-db 0.2.3-next.37 → 0.2.3-next.39
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.
- package/dist/backup/index.d.ts +6 -84
- package/dist/backup/index.mjs +6 -584
- package/dist/backup-scheduler/index.d.ts +58 -8
- package/dist/backup-scheduler/index.mjs +3 -2
- package/dist/{change-tracker-DXHPFe9J.d.ts → change-tracker-uG9gWvsY.d.ts} +1 -1
- package/dist/chunk-2QCPVE67.mjs +143 -0
- package/dist/chunk-63VBFSCS.mjs +525 -0
- package/dist/chunk-7SC2TZAS.mjs +41 -0
- package/dist/{chunk-72I5UI5C.mjs → chunk-DVS4QSIZ.mjs} +51 -23
- package/dist/{chunk-BQTVNI5H.mjs → chunk-DXXCLTFF.mjs} +205 -45
- package/dist/{chunk-BQFQ65OL.mjs → chunk-LXCGPZPA.mjs} +9 -1
- package/dist/{chunk-ZKDBGX7H.mjs → chunk-OJQHM4MT.mjs} +365 -357
- package/dist/chunk-U445A3C4.mjs +88 -0
- package/dist/chunk-W77EEVOT.mjs +156 -0
- package/dist/client/index.d.ts +8 -8
- package/dist/client/topology.d.ts +4 -4
- package/dist/{client-base-CGBpjZUB.d.ts → client-base-C-B8u5Lm.d.ts} +2 -2
- package/dist/core/index.d.ts +9 -9
- package/dist/core/index.mjs +228 -48
- package/dist/{database-955qag_W.d.ts → database-BlhUdJAO.d.ts} +46 -39
- package/dist/{chain-queries-D5aZ-8v2.d.ts → database-backup-C090lMHc.d.ts} +52 -2
- package/dist/driver/better-sqlite3.d.ts +1 -1
- package/dist/driver/better-sqlite3.mjs +9 -6
- package/dist/driver/bun.d.ts +1 -1
- package/dist/driver/expo.d.ts +1 -1
- package/dist/driver/node.d.ts +1 -1
- package/dist/driver/node.mjs +9 -6
- package/dist/driver/wa-sqlite.d.ts +1 -1
- package/dist/file-migrations/index.d.ts +1 -1
- package/dist/{protocol-BfiujBsE.d.ts → protocol-QekTGoKn.d.ts} +2 -2
- package/dist/replication/index.d.ts +7 -7
- package/dist/restore-options-C9MW9gpm.d.ts +83 -0
- package/dist/server/index.d.ts +102 -9
- package/dist/server/index.mjs +355 -3
- package/dist/{server-options-D4VmfTHw.d.ts → server-options-DeK6ZG8u.d.ts} +8 -1
- package/dist/{sirannon-DaGUawHs.d.ts → sirannon-C9cTgFrw.d.ts} +48 -5
- package/dist/transport/grpc.d.ts +3 -3
- package/dist/transport/memory.d.ts +3 -3
- package/dist/{types-BEjS69rs.d.ts → types-C1yBGTdx.d.ts} +2 -2
- package/dist/{types-Xb0L3o3w.d.ts → types-DApb7dvw.d.ts} +266 -23
- package/package.json +8 -7
- package/dist/chunk-GBM4AU24.mjs +0 -42
package/dist/driver/bun.d.ts
CHANGED
package/dist/driver/expo.d.ts
CHANGED
package/dist/driver/node.d.ts
CHANGED
package/dist/driver/node.mjs
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { nodeResolveExtensionPath, nodeWriterContext, createStatementCache, nodeBackupEngine, nodeStreamingSupport, WriterWorker, loadThroughRuntime, narrowSafeBigInt, narrowRowIntegers, narrowRowsIntegers } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import { defineDriver } from '../chunk-BQFQ65OL.mjs';
|
|
6
|
-
import '../chunk-YVF2ZJTE.mjs';
|
|
1
|
+
import { nodeResolveExtensionPath, nodeWriterContext, createStatementCache, nodeBackupEngine, nodeStreamingSupport, WriterWorker, loadThroughRuntime, narrowSafeBigInt, narrowRowIntegers, narrowRowsIntegers } from '../chunk-OJQHM4MT.mjs';
|
|
2
|
+
import '../chunk-7SC2TZAS.mjs';
|
|
3
|
+
import '../chunk-DXXCLTFF.mjs';
|
|
4
|
+
import { defineDriver } from '../chunk-LXCGPZPA.mjs';
|
|
7
5
|
import '../chunk-W67A4H2E.mjs';
|
|
8
6
|
import '../chunk-YLAVDZCS.mjs';
|
|
7
|
+
import '../chunk-W77EEVOT.mjs';
|
|
8
|
+
import '../chunk-U445A3C4.mjs';
|
|
9
|
+
import '../chunk-2QCPVE67.mjs';
|
|
10
|
+
import '../chunk-DVS4QSIZ.mjs';
|
|
9
11
|
import { synchronousPragmaValue } from '../chunk-OUSWVNWT.mjs';
|
|
12
|
+
import '../chunk-YVF2ZJTE.mjs';
|
|
10
13
|
import '../chunk-V5FUJEYY.mjs';
|
|
11
14
|
import { ExtensionError, BackupError } from '../chunk-PBRXXISQ.mjs';
|
|
12
15
|
import { createRequire } from 'module';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { W as WriteConcern, R as ReadConcern, E as ExecuteResult } from './query-types-Cv8N7pXj.js';
|
|
2
|
-
import { B as BulkLoadDurability, a as BulkLoadResult } from './server-options-
|
|
2
|
+
import { B as BulkLoadDurability, a as BulkLoadResult } from './server-options-DeK6ZG8u.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Body of `POST /db/{id}/query`.
|
|
@@ -149,4 +149,4 @@ interface ErrorResponse {
|
|
|
149
149
|
*/
|
|
150
150
|
declare function toExecuteResponse(result: ExecuteResult): ExecuteResponse;
|
|
151
151
|
|
|
152
|
-
export { type AckResponse as A, type BatchResponse as B, type ExecuteResponse as E, type LoadResponse as L, type QueryResponse as Q, type
|
|
152
|
+
export { type AckResponse as A, type BatchResponse as B, type ExecuteResponse as E, type LoadResponse as L, type QueryResponse as Q, type TransactionResponse as T, type TransactionStatement as a, type BatchRequest as b, type ErrorResponse as c, type ExecuteRequest as d, type LoadRequest as e, type QueryRequest as f, type TransactionRequest as g, toExecuteResponse as t };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
export { F as FieldMergeResolver, L as LWWResolver, P as PrimaryWinsResolver } from '../primary-wins-B0np8JS3.js';
|
|
2
|
-
import { l as HLC, D as Database } from '../database-
|
|
3
|
-
import {
|
|
2
|
+
import { l as HLC, D as Database } from '../database-BlhUdJAO.js';
|
|
3
|
+
import { r as BackupGroupSource, a1 as ClusterReadEndpointInfo, H as ClusterStatusInfo, I as SQLiteConnection, T as Transaction } from '../types-DApb7dvw.js';
|
|
4
4
|
import { C as ClusterCoordinator, c as ReplicationGroupState, e as CoordinatorWatchDisposer } from '../types-CMBcFPhb.js';
|
|
5
5
|
export { A as AcquireControllerLeaseInput, a as AcquireControllerLeaseResult, h as AdmitNodeToInSyncSetInput, f as CompareAndAdvancePrimaryTermInput, g as CompareAndAdvancePrimaryTermResult, j as CoordinatorCompatibilityMetadata, k as CoordinatorLease, b as CoordinatorNodeSession, l as CoordinatorPrimary, P as PromoteEligibleReplicaInput, R as RegisterNodeSessionInput, d as ReplicationGroupWatcher, S as SetReplicationGroupStateInput, U as UpdateInSyncSetInput, i as UpdateNodeMaintenanceInput } from '../types-CMBcFPhb.js';
|
|
6
|
-
import { R as ReplicationStatusInfo } from '../server-options-
|
|
7
|
-
import { C as CoordinatorRuntimeStatus, g as ReplicationStatus, h as SyncPhase, I as InFlightBatch, P as PeerState, a as ForwardedTransactionResult, b as SyncBatch, c as SyncComplete, d as SyncAck, S as SyncRequest, i as ReplicationConfig, j as SyncState, k as ReplicationErrorEvent, R as ReplicationAck, l as Topology, f as TopologyRole } from '../types-
|
|
8
|
-
export { F as ForwardedTransaction, N as NodeInfo, e as ReplicationTransport, T as TransportConfig } from '../types-
|
|
6
|
+
import { R as ReplicationStatusInfo } from '../server-options-DeK6ZG8u.js';
|
|
7
|
+
import { C as CoordinatorRuntimeStatus, g as ReplicationStatus, h as SyncPhase, I as InFlightBatch, P as PeerState, a as ForwardedTransactionResult, b as SyncBatch, c as SyncComplete, d as SyncAck, S as SyncRequest, i as ReplicationConfig, j as SyncState, k as ReplicationErrorEvent, R as ReplicationAck, l as Topology, f as TopologyRole } from '../types-C1yBGTdx.js';
|
|
8
|
+
export { F as ForwardedTransaction, N as NodeInfo, e as ReplicationTransport, T as TransportConfig } from '../types-C1yBGTdx.js';
|
|
9
9
|
import { EventEmitter } from 'node:events';
|
|
10
|
-
import { C as ChangeTracker } from '../change-tracker-
|
|
10
|
+
import { C as ChangeTracker } from '../change-tracker-uG9gWvsY.js';
|
|
11
11
|
import { P as Params, Q as QueryOptions, E as ExecuteResult } from '../query-types-Cv8N7pXj.js';
|
|
12
12
|
import { R as ReplicationBatch, C as ConflictResolver, A as ApplyResult, S as SyncTableManifest } from '../types-CjhxcjhA.js';
|
|
13
13
|
export { a as ConflictContext, b as ConflictResolution, H as HLCTimestamp, c as ReplicationChange } from '../types-CjhxcjhA.js';
|
|
14
14
|
import { S as SirannonError } from '../errors-Dei4GdBb.js';
|
|
15
|
-
import '../
|
|
15
|
+
import '../database-backup-C090lMHc.js';
|
|
16
16
|
import '../types-BCejqzNA.js';
|
|
17
17
|
import '../operation-registry-C1FmwQWR.js';
|
|
18
18
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { B as BackupDestination, S as SQLiteDriver } from './types-DApb7dvw.js';
|
|
2
|
+
|
|
3
|
+
/** How far one restore has got, reported after every piece it fetches.
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
interface BackupRestoreProgress {
|
|
7
|
+
/** Whether the restore is fetching the full copy or replaying the change pieces on top of it. */
|
|
8
|
+
phase: 'full-copy' | 'changes';
|
|
9
|
+
/** Pieces the restore has fetched. */
|
|
10
|
+
piecesFetched: number;
|
|
11
|
+
/** Bytes it has fetched. */
|
|
12
|
+
bytesFetched: number;
|
|
13
|
+
/** Change pieces it has replayed. */
|
|
14
|
+
changesApplied: number;
|
|
15
|
+
/** Change pieces the plan holds altogether. */
|
|
16
|
+
changesTotal: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* How Sirannon rebuilds a database from a moment you name.
|
|
20
|
+
*
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
interface BackupRestoreOptions {
|
|
24
|
+
/** Where the backups and their records are stored. */
|
|
25
|
+
destination: BackupDestination;
|
|
26
|
+
/** Driver the restore opens the rebuilt database through, so it can fold each batch of changes in. */
|
|
27
|
+
driver: SQLiteDriver;
|
|
28
|
+
/** Path Sirannon writes the rebuilt database to. A file already there stops the restore unless you set {@link BackupRestoreOptions.replaceExisting}. */
|
|
29
|
+
destPath: string;
|
|
30
|
+
/**
|
|
31
|
+
* Whether to replace a database already at that path. It defaults to false,
|
|
32
|
+
* because a restore removes the write-ahead log beside the path it writes to
|
|
33
|
+
* and any commit that log still held would go with it. Set this where you
|
|
34
|
+
* mean to restore over a database you no longer want.
|
|
35
|
+
*/
|
|
36
|
+
replaceExisting?: boolean;
|
|
37
|
+
/** Epoch milliseconds you want back. Defaults to now, which reaches the newest backup the destination holds. */
|
|
38
|
+
moment?: number;
|
|
39
|
+
/** Name the list of chains is stored under. Defaults to `sirannon-backup-chain`. */
|
|
40
|
+
chainName?: string;
|
|
41
|
+
/**
|
|
42
|
+
* How many change pieces to replay between one checkpoint and the next.
|
|
43
|
+
* Defaults to 16, and 4096 is the most it accepts. This is what bounds the
|
|
44
|
+
* log the restore writes beside the database, so lower it where disk is tight
|
|
45
|
+
* and raise it where a long chain takes too many checkpoints.
|
|
46
|
+
*/
|
|
47
|
+
batchSize?: number;
|
|
48
|
+
/** Milliseconds one call to the destination may take before the restore stops with an error. Defaults to 10 minutes, and zero leaves the calls unbounded. */
|
|
49
|
+
destinationTimeoutMs?: number;
|
|
50
|
+
/** Called after every piece the restore fetches. */
|
|
51
|
+
onProgress?: (progress: BackupRestoreProgress) => void;
|
|
52
|
+
}
|
|
53
|
+
/** What one finished restore produced.
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
interface BackupRestoreReport {
|
|
57
|
+
/** The chain the restore read. */
|
|
58
|
+
chainId: string;
|
|
59
|
+
/** Path of the rebuilt database. */
|
|
60
|
+
destPath: string;
|
|
61
|
+
/** Name the full copy underneath it is stored under. */
|
|
62
|
+
baseName: string;
|
|
63
|
+
/** Epoch milliseconds the rebuilt database reflects, which is when the last piece replayed was captured. */
|
|
64
|
+
restoresTo: number;
|
|
65
|
+
/** Pieces the restore fetched, counting the full copy and every change piece. */
|
|
66
|
+
pieceCount: number;
|
|
67
|
+
/** Bytes it fetched. */
|
|
68
|
+
bytesFetched: number;
|
|
69
|
+
/** Change pieces it replayed. */
|
|
70
|
+
changesApplied: number;
|
|
71
|
+
/** Log frames those pieces held. */
|
|
72
|
+
framesApplied: number;
|
|
73
|
+
/** Batches it replayed them in, each one folded into the database by a checkpoint of its own. */
|
|
74
|
+
batchCount: number;
|
|
75
|
+
/** Epoch milliseconds the restore started. */
|
|
76
|
+
startedAt: number;
|
|
77
|
+
/** Epoch milliseconds it finished. */
|
|
78
|
+
finishedAt: number;
|
|
79
|
+
/** Milliseconds it took. */
|
|
80
|
+
durationMs: number;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export type { BackupRestoreOptions as B, BackupRestoreReport as a, BackupRestoreProgress as b };
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,16 +1,106 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { g as BackupChain, k as BackupChainRecord, o as BackupCycleStatus, z as BackupVerifyResult } from '../types-DApb7dvw.js';
|
|
2
|
+
import { b as BackupRestoreProgress, a as BackupRestoreReport } from '../restore-options-C9MW9gpm.js';
|
|
3
|
+
import { a as TransactionStatement, Q as QueryResponse, E as ExecuteResponse, T as TransactionResponse, B as BatchResponse, L as LoadResponse, A as AckResponse } from '../protocol-QekTGoKn.js';
|
|
4
|
+
export { b as BatchRequest, c as ErrorResponse, d as ExecuteRequest, e as LoadRequest, f as QueryRequest, g as TransactionRequest, t as toExecuteResponse } from '../protocol-QekTGoKn.js';
|
|
5
|
+
import { S as Sirannon } from '../sirannon-C9cTgFrw.js';
|
|
6
|
+
import { B as BulkLoadDurability, S as ServerOptions, W as WSHandlerOptions } from '../server-options-DeK6ZG8u.js';
|
|
5
7
|
import { W as WriteConcern, R as ReadConcern } from '../query-types-Cv8N7pXj.js';
|
|
6
|
-
import '../database-
|
|
7
|
-
import '../
|
|
8
|
-
import '../
|
|
9
|
-
import '../change-tracker-DXHPFe9J.js';
|
|
8
|
+
import '../database-BlhUdJAO.js';
|
|
9
|
+
import '../database-backup-C090lMHc.js';
|
|
10
|
+
import '../change-tracker-uG9gWvsY.js';
|
|
10
11
|
import '../types-CjhxcjhA.js';
|
|
11
12
|
import '../types-BCejqzNA.js';
|
|
12
13
|
import '../operation-registry-C1FmwQWR.js';
|
|
13
14
|
|
|
15
|
+
/** The answer to a backup a caller triggered, which the server takes on and does not wait for.
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
interface BackupTriggerResponse {
|
|
19
|
+
/** True whenever the server answers, since it answers only once it has accepted the turn. */
|
|
20
|
+
started: true;
|
|
21
|
+
}
|
|
22
|
+
/** What the cycle is doing, and what its recent turns produced.
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
type BackupStatusResponse = BackupCycleStatus;
|
|
26
|
+
/** Every chain the destination stores.
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
interface BackupChainResponse {
|
|
30
|
+
/** One entry per chain, newest first, each with its full copy and its change pieces in order. */
|
|
31
|
+
chains: BackupChain[];
|
|
32
|
+
}
|
|
33
|
+
/** Names the backup to read back out of the destination.
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
interface BackupVerifyRequest {
|
|
37
|
+
/** Name the backup is stored under, which every chain record states. */
|
|
38
|
+
name?: unknown;
|
|
39
|
+
}
|
|
40
|
+
/** What Sirannon found when it read one backup back.
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
type BackupVerifyResponse = BackupVerifyResult;
|
|
44
|
+
/** How far back a restore must still reach.
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
interface BackupSafeToDeleteRequest {
|
|
48
|
+
/** Epoch milliseconds of the earliest moment a restore must still reach. Leave it out and the answer covers only the backups no restore could ever use. */
|
|
49
|
+
restorableFrom?: unknown;
|
|
50
|
+
}
|
|
51
|
+
/** The records no restore still needs.
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
interface BackupSafeToDeleteResponse {
|
|
55
|
+
/** The records you may delete, oldest first. */
|
|
56
|
+
records: BackupChainRecord[];
|
|
57
|
+
}
|
|
58
|
+
/** The moment to rebuild the database at, and how many change pieces one batch replays.
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
interface BackupRestoreRequest {
|
|
62
|
+
/** Epoch milliseconds you want back. Leave it out for the newest backup the destination stores. */
|
|
63
|
+
moment?: unknown;
|
|
64
|
+
/** How many change pieces to replay between one checkpoint and the next. Leave it out for the default of 16. */
|
|
65
|
+
batchSize?: unknown;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Where one database's restore stands. `idle` means that none has started since the server did.
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
type BackupRestoreState = 'idle' | 'running' | 'done' | 'failed';
|
|
72
|
+
/** What the server reports about the restore of one database.
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
75
|
+
interface BackupRestoreStatus {
|
|
76
|
+
/** Where the restore stands. */
|
|
77
|
+
state: BackupRestoreState;
|
|
78
|
+
/** Epoch milliseconds the caller asked to be taken back to. */
|
|
79
|
+
moment?: number;
|
|
80
|
+
/** Epoch milliseconds the restore started. */
|
|
81
|
+
startedAt?: number;
|
|
82
|
+
/** Epoch milliseconds it finished, whether it succeeded or failed. */
|
|
83
|
+
finishedAt?: number;
|
|
84
|
+
/** How far it has got, reported after every piece it fetches. */
|
|
85
|
+
progress?: BackupRestoreProgress;
|
|
86
|
+
/** What a finished restore produced. */
|
|
87
|
+
report?: BackupRestoreReport;
|
|
88
|
+
/**
|
|
89
|
+
* Why the database it replaced would not open again. The rebuilt data is on
|
|
90
|
+
* disk and the registry has nothing open under the identifier, so an operator
|
|
91
|
+
* who sees this restarts the process.
|
|
92
|
+
*/
|
|
93
|
+
reopenError?: {
|
|
94
|
+
code: string;
|
|
95
|
+
message: string;
|
|
96
|
+
};
|
|
97
|
+
/** Why a failed restore stopped. */
|
|
98
|
+
error?: {
|
|
99
|
+
code: string;
|
|
100
|
+
message: string;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
14
104
|
/**
|
|
15
105
|
* Every message a client sends over the WebSocket. Each carries a `type` and a
|
|
16
106
|
* client-chosen `id` the reply echoes.
|
|
@@ -377,6 +467,8 @@ declare class SirannonServer<Identity = unknown> {
|
|
|
377
467
|
private readonly cors;
|
|
378
468
|
private readonly authenticateHook;
|
|
379
469
|
private readonly acceptSql;
|
|
470
|
+
private readonly acceptBackupRestore;
|
|
471
|
+
private readonly restoreRuns;
|
|
380
472
|
private readonly operations;
|
|
381
473
|
private readonly registryDigest;
|
|
382
474
|
private readonly resolveExecutionTarget;
|
|
@@ -403,6 +495,7 @@ declare class SirannonServer<Identity = unknown> {
|
|
|
403
495
|
*/
|
|
404
496
|
get listeningPort(): number;
|
|
405
497
|
private registerRoutes;
|
|
498
|
+
private registerBackupRoutes;
|
|
406
499
|
private registerWebSocketRoute;
|
|
407
500
|
private withCors;
|
|
408
501
|
private wrapDbRoute;
|
|
@@ -511,4 +604,4 @@ declare class WSHandler<Identity = unknown> {
|
|
|
511
604
|
*/
|
|
512
605
|
declare function createWSHandler<Identity = unknown>(sirannon: Sirannon, options?: WSHandlerOptions<Identity>): WSHandler<Identity>;
|
|
513
606
|
|
|
514
|
-
export { BatchResponse, ExecuteResponse, LoadResponse, QueryResponse, SirannonServer, TransactionResponse, TransactionStatement, type WSBatchMessage, type WSChangeMessage, type WSClientMessage, type WSConnection, type WSErrorMessage, type WSExecuteMessage, WSHandler, type WSLoadMessage, type WSQueryMessage, type WSResultMessage, type WSServerMessage, type WSSubscribeMessage, type WSSubscribedMessage, type WSTransactionMessage, type WSUnsubscribeMessage, type WSUnsubscribedMessage, createServer, createWSHandler };
|
|
607
|
+
export { type BackupChainResponse, type BackupRestoreRequest, type BackupRestoreState, type BackupRestoreStatus, type BackupSafeToDeleteRequest, type BackupSafeToDeleteResponse, type BackupStatusResponse, type BackupTriggerResponse, type BackupVerifyRequest, type BackupVerifyResponse, BatchResponse, ExecuteResponse, LoadResponse, QueryResponse, SirannonServer, TransactionResponse, TransactionStatement, type WSBatchMessage, type WSChangeMessage, type WSClientMessage, type WSConnection, type WSErrorMessage, type WSExecuteMessage, WSHandler, type WSLoadMessage, type WSQueryMessage, type WSResultMessage, type WSServerMessage, type WSSubscribeMessage, type WSSubscribedMessage, type WSTransactionMessage, type WSUnsubscribeMessage, type WSUnsubscribedMessage, createServer, createWSHandler };
|