@trainstar/synchro-react-native 0.1.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -24
- package/SynchroReactNative.podspec +3 -2
- package/android/build.gradle +8 -3
- package/android/src/main/kotlin/com/trainstar/synchro/rn/SynchroModule.kt +1105 -238
- package/ios/SynchroModule.mm +178 -51
- package/ios/SynchroModule.swift +1382 -295
- package/lib/module/NativeSynchro.js +5 -0
- package/lib/module/NativeSynchro.js.map +1 -1
- package/lib/module/SynchroClient.js +637 -65
- package/lib/module/SynchroClient.js.map +1 -1
- package/lib/module/digest.js +82 -0
- package/lib/module/digest.js.map +1 -0
- package/lib/module/errors.js +165 -22
- package/lib/module/errors.js.map +1 -1
- package/lib/module/hooks/useQuery.js +37 -3
- package/lib/module/hooks/useQuery.js.map +1 -1
- package/lib/module/hooks/useSyncStatus.js +51 -6
- package/lib/module/hooks/useSyncStatus.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/inspection.js +121 -0
- package/lib/module/inspection.js.map +1 -0
- package/lib/module/sqliteValues.js +87 -0
- package/lib/module/sqliteValues.js.map +1 -0
- package/lib/module/types.js +10 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/example/e2e/corpus-harness.d.ts +34 -0
- package/lib/typescript/example/e2e/corpus-harness.d.ts.map +1 -0
- package/lib/typescript/example/src/conformance/runner.d.ts +125 -0
- package/lib/typescript/example/src/conformance/runner.d.ts.map +1 -0
- package/lib/typescript/example/src/conformance/types.d.ts +71 -0
- package/lib/typescript/example/src/conformance/types.d.ts.map +1 -0
- package/lib/typescript/src/NativeSynchro.d.ts +59 -17
- package/lib/typescript/src/NativeSynchro.d.ts.map +1 -1
- package/lib/typescript/src/SynchroClient.d.ts +27 -10
- package/lib/typescript/src/SynchroClient.d.ts.map +1 -1
- package/lib/typescript/src/digest.d.ts +3 -0
- package/lib/typescript/src/digest.d.ts.map +1 -0
- package/lib/typescript/src/errors.d.ts +37 -9
- package/lib/typescript/src/errors.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useQuery.d.ts +2 -2
- package/lib/typescript/src/hooks/useQuery.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useSyncStatus.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +4 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/inspection.d.ts +43 -0
- package/lib/typescript/src/inspection.d.ts.map +1 -0
- package/lib/typescript/src/sqliteValues.d.ts +8 -0
- package/lib/typescript/src/sqliteValues.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +203 -11
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +20 -8
- package/src/NativeSynchro.ts +93 -26
- package/src/SynchroClient.ts +899 -120
- package/src/digest.ts +93 -0
- package/src/errors.ts +273 -33
- package/src/hooks/useQuery.ts +59 -16
- package/src/hooks/useSyncStatus.ts +40 -7
- package/src/index.ts +44 -3
- package/src/inspection.ts +226 -0
- package/src/sqliteValues.ts +105 -0
- package/src/types.ts +317 -16
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
export type Row = Record<string, unknown>;
|
|
2
|
+
/** A lossless SQLite BLOB value at the React Native boundary. */
|
|
3
|
+
export interface SQLiteBytes {
|
|
4
|
+
readonly type: 'bytes';
|
|
5
|
+
readonly base64: string;
|
|
6
|
+
}
|
|
7
|
+
/** A lossless SQLite INTEGER value outside JavaScript's safe integer range. */
|
|
8
|
+
export interface SQLiteInt64 {
|
|
9
|
+
readonly type: 'int64';
|
|
10
|
+
readonly value: string;
|
|
11
|
+
}
|
|
12
|
+
export type SQLiteTaggedValue = SQLiteBytes | SQLiteInt64;
|
|
13
|
+
export type SQLiteBindValue = null | string | number | boolean | SQLiteTaggedValue;
|
|
2
14
|
export interface ExecResult {
|
|
3
15
|
rowsAffected: number;
|
|
4
16
|
}
|
|
@@ -7,7 +19,7 @@ export interface BatchResult {
|
|
|
7
19
|
}
|
|
8
20
|
export interface SQLStatement {
|
|
9
21
|
sql: string;
|
|
10
|
-
params?:
|
|
22
|
+
params?: readonly SQLiteBindValue[];
|
|
11
23
|
}
|
|
12
24
|
export interface ColumnDef {
|
|
13
25
|
name: string;
|
|
@@ -20,17 +32,195 @@ export interface TableOptions {
|
|
|
20
32
|
ifNotExists?: boolean;
|
|
21
33
|
withoutRowid?: boolean;
|
|
22
34
|
}
|
|
23
|
-
export interface
|
|
24
|
-
query(sql: string, params?:
|
|
25
|
-
queryOne(sql: string, params?:
|
|
26
|
-
|
|
35
|
+
export interface ReadTransaction {
|
|
36
|
+
query(sql: string, params?: readonly SQLiteBindValue[]): Promise<Row[]>;
|
|
37
|
+
queryOne(sql: string, params?: readonly SQLiteBindValue[]): Promise<Row | null>;
|
|
38
|
+
}
|
|
39
|
+
export interface Transaction extends ReadTransaction {
|
|
40
|
+
execute(sql: string, params?: readonly SQLiteBindValue[]): Promise<ExecResult>;
|
|
41
|
+
}
|
|
42
|
+
export declare const SYNC_STATUS_TYPES: readonly ["uninitialized", "local_ready", "connecting", "schema_applying", "ready", "pushing", "pulling", "rebuilding", "backoff", "error", "stopped"];
|
|
43
|
+
export type SyncStatusType = (typeof SYNC_STATUS_TYPES)[number];
|
|
44
|
+
export declare const SYNC_OPERATION_KINDS: readonly ["opening", "connecting", "schema", "pushing", "pulling", "rebuilding", "lifecycle", "database"];
|
|
45
|
+
export type SyncOperationKind = (typeof SYNC_OPERATION_KINDS)[number];
|
|
46
|
+
export declare const SYNC_RECOVERY_ACTIONS: readonly ["retry", "schema_reset", "none"];
|
|
47
|
+
export type SyncRecoveryAction = (typeof SYNC_RECOVERY_ACTIONS)[number];
|
|
48
|
+
export declare const SYNC_FAILURE_CODES: readonly ["auth_required", "client_retired", "idempotency_conflict", "invalid_request", "invalid_response", "invalid_schema_reference", "invalid_state_transition", "local_database", "schema_application_failed", "sync_integrity_failure", "unsupported_schema", "upgrade_required", "schema_mismatch", "server_error", "network_error", "database_error", "local_failure"];
|
|
49
|
+
export type SyncFailureCode = (typeof SYNC_FAILURE_CODES)[number];
|
|
50
|
+
export declare const PROTOCOL_ERROR_CODES: readonly ["invalid_request", "invalid_schema_reference", "upgrade_required", "auth_required", "idempotency_conflict", "client_retired", "client_generation_expired", "rebuild_restart_required", "schema_mismatch", "retry_later", "sync_integrity_failure", "capture_pending", "temporary_unavailable"];
|
|
51
|
+
export type ProtocolErrorCode = (typeof PROTOCOL_ERROR_CODES)[number];
|
|
52
|
+
export interface SyncFailure {
|
|
53
|
+
operation: SyncOperationKind;
|
|
54
|
+
code: SyncFailureCode;
|
|
55
|
+
retryable: boolean;
|
|
56
|
+
message: string;
|
|
57
|
+
recoveryAction: SyncRecoveryAction;
|
|
58
|
+
metadata: Record<string, string>;
|
|
59
|
+
}
|
|
60
|
+
type DetailFreeSyncStatus = {
|
|
61
|
+
[K in Exclude<SyncStatusType, 'backoff' | 'error'>]: {
|
|
62
|
+
status: K;
|
|
63
|
+
retryAt: null;
|
|
64
|
+
operation: null;
|
|
65
|
+
failure: null;
|
|
66
|
+
};
|
|
67
|
+
}[Exclude<SyncStatusType, 'backoff' | 'error'>];
|
|
68
|
+
export type SyncStatus = DetailFreeSyncStatus | {
|
|
69
|
+
status: 'backoff';
|
|
70
|
+
retryAt: Date;
|
|
71
|
+
operation: SyncOperationKind;
|
|
72
|
+
failure: null;
|
|
73
|
+
} | {
|
|
74
|
+
status: 'error';
|
|
75
|
+
retryAt: null;
|
|
76
|
+
operation: null;
|
|
77
|
+
failure: SyncFailure;
|
|
78
|
+
};
|
|
79
|
+
export type JSONValue = null | boolean | number | string | JSONValue[] | {
|
|
80
|
+
[key: string]: JSONValue;
|
|
81
|
+
};
|
|
82
|
+
export type MutationOperation = 'insert' | 'upsert' | 'update' | 'delete';
|
|
83
|
+
export type LocalMutationStatus = 'pending' | 'sealed' | 'superseded_before_send' | 'cancelled_before_send' | 'blocked_by_predecessor' | 'server_rejected';
|
|
84
|
+
export type MutationStatus = 'applied' | 'conflict' | 'rejected_terminal';
|
|
85
|
+
export type MutationRejectionCode = 'version_conflict' | 'row_already_exists' | 'row_deleted' | 'row_not_found' | 'schema_incompatible' | 'policy_rejected' | 'validation_failed' | 'table_not_synced';
|
|
86
|
+
export interface SchemaRef {
|
|
87
|
+
version: number;
|
|
88
|
+
hash: string;
|
|
89
|
+
}
|
|
90
|
+
export interface AuthoredMutationField {
|
|
91
|
+
fieldID: string;
|
|
92
|
+
logicalType: string;
|
|
93
|
+
value: JSONValue;
|
|
94
|
+
}
|
|
95
|
+
export interface PendingMutationInspection {
|
|
96
|
+
mutationID: string;
|
|
97
|
+
localOrder: number;
|
|
98
|
+
tableID: string;
|
|
99
|
+
tableName: string;
|
|
100
|
+
recordID: string;
|
|
101
|
+
primaryKeyFieldID: string;
|
|
102
|
+
primaryKeyLogicalType: string;
|
|
103
|
+
operation: MutationOperation;
|
|
104
|
+
authoredSchema: SchemaRef;
|
|
105
|
+
baseVersion: string | null;
|
|
106
|
+
clientVersion: string;
|
|
107
|
+
status: LocalMutationStatus;
|
|
108
|
+
sourceKind: string;
|
|
109
|
+
dependsOnMutationID: string | null;
|
|
110
|
+
normalizedMutationID: string | null;
|
|
111
|
+
sealedBatchID: string | null;
|
|
112
|
+
sealedOrdinal: number | null;
|
|
113
|
+
authoredFields: AuthoredMutationField[];
|
|
114
|
+
}
|
|
115
|
+
export interface RejectedMutationInspection {
|
|
116
|
+
mutationID: string;
|
|
117
|
+
tableName: string;
|
|
118
|
+
recordID: string;
|
|
119
|
+
status: MutationStatus;
|
|
120
|
+
code: MutationRejectionCode;
|
|
121
|
+
message: string | null;
|
|
122
|
+
serverRowJSON: string | null;
|
|
123
|
+
serverVersion: string | null;
|
|
124
|
+
mutationJSON: string;
|
|
125
|
+
rejectionJSON: string;
|
|
126
|
+
createdAt: string;
|
|
127
|
+
updatedAt: string;
|
|
128
|
+
}
|
|
129
|
+
export interface ScopeStateInspection {
|
|
130
|
+
scopeID: string;
|
|
131
|
+
cursor: string | null;
|
|
132
|
+
checksum: string | null;
|
|
133
|
+
localChecksum: string;
|
|
134
|
+
generation: number;
|
|
135
|
+
}
|
|
136
|
+
export interface ScopeRowInspection {
|
|
137
|
+
scopeID: string;
|
|
138
|
+
tableName: string;
|
|
139
|
+
recordID: string;
|
|
140
|
+
checksum: string;
|
|
141
|
+
generation: number;
|
|
142
|
+
}
|
|
143
|
+
export interface RebuildAttemptInspection {
|
|
144
|
+
scopeID: string;
|
|
145
|
+
rebuildID: string;
|
|
146
|
+
clientGeneration: number;
|
|
147
|
+
schemaVersion: number;
|
|
148
|
+
schemaHash: string;
|
|
149
|
+
generation: number;
|
|
150
|
+
cursor: string | null;
|
|
151
|
+
pageLimit: number;
|
|
152
|
+
}
|
|
153
|
+
export interface ClientStateInspection {
|
|
154
|
+
schema: SchemaRef | null;
|
|
155
|
+
scopeStates: ScopeStateInspection[];
|
|
156
|
+
scopeRows: ScopeRowInspection[];
|
|
157
|
+
rebuildAttempts: RebuildAttemptInspection[];
|
|
158
|
+
applicationRowCount: number;
|
|
159
|
+
mutationLedgerCount: number;
|
|
160
|
+
mutationOutcomeCount: number;
|
|
161
|
+
sealedBatchCount: number;
|
|
162
|
+
rejectedMutationCount: number;
|
|
163
|
+
scopeStateCount: number;
|
|
164
|
+
scopeRowCount: number;
|
|
165
|
+
provenanceCount: number;
|
|
166
|
+
rowMetadataCount: number;
|
|
167
|
+
rebuildAttemptCount: number;
|
|
168
|
+
rebuildReceiptCount: number;
|
|
169
|
+
provenanceMaintenanceWorkCursor: string;
|
|
170
|
+
}
|
|
171
|
+
export type TransportOperationClass = 'connect' | 'pull' | 'push' | 'checkpoint' | 'schemas' | 'rebuild' | 'other';
|
|
172
|
+
export interface TransportObservation {
|
|
173
|
+
sequence: number;
|
|
174
|
+
operationClass: TransportOperationClass;
|
|
175
|
+
statusCode: number;
|
|
176
|
+
durationNanoseconds: number;
|
|
177
|
+
cursorFingerprints?: string[];
|
|
178
|
+
cursorFingerprintsComplete?: boolean;
|
|
179
|
+
requestFacts?: Record<string, JSONValue>;
|
|
180
|
+
rebuildResponseFacts?: Record<string, JSONValue>;
|
|
181
|
+
pullResponseFacts?: Record<string, JSONValue>;
|
|
182
|
+
}
|
|
183
|
+
export interface TransportObservationSnapshot {
|
|
184
|
+
observations: TransportObservation[];
|
|
185
|
+
overflowed: boolean;
|
|
186
|
+
sequenceCheckpoint: number;
|
|
187
|
+
}
|
|
188
|
+
export type SchemaAction = 'none' | 'replace' | 'rebuild_local' | 'unsupported';
|
|
189
|
+
export interface SyncSchemaEvent {
|
|
190
|
+
source: SchemaRef;
|
|
191
|
+
target: SchemaRef;
|
|
192
|
+
action: SchemaAction;
|
|
193
|
+
}
|
|
194
|
+
export interface SyncMutationEvent {
|
|
195
|
+
mutationID: string;
|
|
196
|
+
tableID: string;
|
|
197
|
+
status: MutationStatus;
|
|
198
|
+
rejectionCode: MutationRejectionCode | null;
|
|
27
199
|
}
|
|
28
|
-
export
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
status: SyncStatusType;
|
|
32
|
-
retryAt: Date | null;
|
|
200
|
+
export interface SyncRebuildEvent {
|
|
201
|
+
scopeID: string;
|
|
202
|
+
rebuildID: string;
|
|
33
203
|
}
|
|
204
|
+
export type SyncEvent = {
|
|
205
|
+
type: 'state_changed';
|
|
206
|
+
from: SyncStatusType;
|
|
207
|
+
to: SyncStatusType;
|
|
208
|
+
} | ({
|
|
209
|
+
type: 'backoff';
|
|
210
|
+
} & {
|
|
211
|
+
operation: SyncOperationKind;
|
|
212
|
+
attempt: number;
|
|
213
|
+
retryAt: Date;
|
|
214
|
+
}) | ({
|
|
215
|
+
type: 'schema_applying' | 'schema_applied';
|
|
216
|
+
} & SyncSchemaEvent) | ({
|
|
217
|
+
type: 'mutation_accepted' | 'mutation_rejected';
|
|
218
|
+
} & SyncMutationEvent) | ({
|
|
219
|
+
type: 'rebuild_requested' | 'rebuild_completed';
|
|
220
|
+
} & SyncRebuildEvent) | {
|
|
221
|
+
type: 'failure';
|
|
222
|
+
failure: SyncFailure;
|
|
223
|
+
};
|
|
34
224
|
export interface ConflictEvent {
|
|
35
225
|
table: string;
|
|
36
226
|
recordID: string;
|
|
@@ -49,7 +239,9 @@ export interface SynchroConfig {
|
|
|
49
239
|
maxRetryAttempts?: number;
|
|
50
240
|
pullPageSize?: number;
|
|
51
241
|
pushBatchSize?: number;
|
|
52
|
-
|
|
242
|
+
seedDatabasePath?: string;
|
|
53
243
|
}
|
|
54
244
|
export type Unsubscribe = () => void;
|
|
245
|
+
export type AsyncUnsubscribe = () => Promise<void>;
|
|
246
|
+
export {};
|
|
55
247
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trainstar/synchro-react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "React Native bridge for Synchro sync SDK",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
"types": "./lib/typescript/src/index.d.ts",
|
|
12
12
|
"default": "./lib/module/index.js"
|
|
13
13
|
},
|
|
14
|
+
"./inspection": {
|
|
15
|
+
"source": "./src/inspection.ts",
|
|
16
|
+
"types": "./lib/typescript/src/inspection.d.ts",
|
|
17
|
+
"default": "./lib/module/inspection.js"
|
|
18
|
+
},
|
|
14
19
|
"./package.json": "./package.json"
|
|
15
20
|
},
|
|
16
21
|
"files": [
|
|
@@ -35,8 +40,9 @@
|
|
|
35
40
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
36
41
|
"prepare": "bob build",
|
|
37
42
|
"pack:dry-run": "npm pack --dry-run",
|
|
38
|
-
"test:unit": "jest --runInBand",
|
|
43
|
+
"test:unit": "jest --runInBand --watchman=false",
|
|
39
44
|
"typecheck": "tsc",
|
|
45
|
+
"lint": "eslint src/ __tests__/ example/e2e/",
|
|
40
46
|
"test": "jest"
|
|
41
47
|
},
|
|
42
48
|
"keywords": [
|
|
@@ -58,24 +64,29 @@
|
|
|
58
64
|
"publishConfig": {
|
|
59
65
|
"registry": "https://registry.npmjs.org/"
|
|
60
66
|
},
|
|
67
|
+
"engines": {
|
|
68
|
+
"node": ">=20.19.4"
|
|
69
|
+
},
|
|
61
70
|
"devDependencies": {
|
|
62
71
|
"@react-native/babel-preset": "0.83.0",
|
|
63
72
|
"@testing-library/react-native": "^12.4.0",
|
|
64
73
|
"@types/jest": "^29.5.14",
|
|
65
|
-
"@types/react": "^19.2.
|
|
74
|
+
"@types/react": "^19.2.4",
|
|
75
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
76
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
66
77
|
"del-cli": "^6.0.0",
|
|
78
|
+
"eslint": "^9.0.0",
|
|
67
79
|
"jest": "^29.7.0",
|
|
68
|
-
"react": "19.2.
|
|
80
|
+
"react": "19.2.4",
|
|
69
81
|
"react-native": "0.83.0",
|
|
70
82
|
"react-native-builder-bob": "^0.40.18",
|
|
71
|
-
"react-test-renderer": "^19.2.
|
|
83
|
+
"react-test-renderer": "^19.2.4",
|
|
72
84
|
"ts-jest": "^29.1.0",
|
|
73
|
-
"turbo": "^2.5.6",
|
|
74
85
|
"typescript": "^5.9.2"
|
|
75
86
|
},
|
|
76
87
|
"peerDependencies": {
|
|
77
|
-
"react": "
|
|
78
|
-
"react-native": "
|
|
88
|
+
"react": ">=19.2.0 <20.0.0",
|
|
89
|
+
"react-native": ">=0.83.0 <0.84.0"
|
|
79
90
|
},
|
|
80
91
|
"workspaces": [
|
|
81
92
|
"example"
|
|
@@ -123,6 +134,7 @@
|
|
|
123
134
|
]
|
|
124
135
|
},
|
|
125
136
|
"moduleNameMapper": {
|
|
137
|
+
"^@trainstar/synchro-react-native/inspection$": "<rootDir>/src/inspection",
|
|
126
138
|
"^react-native$": "<rootDir>/__tests__/__mocks__/react-native"
|
|
127
139
|
},
|
|
128
140
|
"modulePathIgnorePatterns": [
|
package/src/NativeSynchro.ts
CHANGED
|
@@ -1,21 +1,55 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
EventEmitter,
|
|
4
|
+
UnsafeObject,
|
|
5
|
+
} from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
6
|
import { TurboModuleRegistry } from 'react-native';
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
// Codegen does not support a discriminated union of object and primitive
|
|
9
|
+
// parameter types. UnsafeObject keeps the TurboModule boundary representable,
|
|
10
|
+
// while the public client validates the tagged values before crossing it.
|
|
11
|
+
type NativeSQLiteBindValue = string | number | boolean | null | UnsafeObject;
|
|
12
|
+
type NativeRow = UnsafeObject;
|
|
13
|
+
type NativeSQLStatement = {
|
|
14
|
+
sql: string;
|
|
15
|
+
params: ReadonlyArray<NativeSQLiteBindValue>;
|
|
16
|
+
};
|
|
17
|
+
type StatusEvent = {
|
|
18
|
+
status: string;
|
|
19
|
+
retryAt: string | null;
|
|
20
|
+
operation: string | null;
|
|
21
|
+
failure: UnsafeObject | null;
|
|
22
|
+
};
|
|
6
23
|
type ConflictEvent = {
|
|
7
24
|
table: string;
|
|
8
25
|
recordID: string;
|
|
9
26
|
clientDataJson: string | null;
|
|
10
27
|
serverDataJson: string | null;
|
|
11
28
|
};
|
|
29
|
+
type SyncEvent = {
|
|
30
|
+
type: string;
|
|
31
|
+
from: string | null;
|
|
32
|
+
to: string | null;
|
|
33
|
+
operation: string | null;
|
|
34
|
+
attempt: number | null;
|
|
35
|
+
retryAt: string | null;
|
|
36
|
+
source: UnsafeObject | null;
|
|
37
|
+
target: UnsafeObject | null;
|
|
38
|
+
action: string | null;
|
|
39
|
+
mutationID: string | null;
|
|
40
|
+
tableID: string | null;
|
|
41
|
+
mutationStatus: string | null;
|
|
42
|
+
rejectionCode: string | null;
|
|
43
|
+
scopeID: string | null;
|
|
44
|
+
rebuildID: string | null;
|
|
45
|
+
failure: UnsafeObject | null;
|
|
46
|
+
};
|
|
12
47
|
type AuthRequestEvent = { requestID: string };
|
|
13
|
-
type SnapshotRequiredEvent = { requestID: string };
|
|
14
48
|
type ChangeEvent = { observerID: string };
|
|
15
|
-
type QueryResultEvent = { observerID: string;
|
|
49
|
+
type QueryResultEvent = { observerID: string; rows: ReadonlyArray<NativeRow> };
|
|
16
50
|
|
|
17
51
|
export interface Spec extends TurboModule {
|
|
18
|
-
//
|
|
52
|
+
// Lifecycle
|
|
19
53
|
initialize(config: {
|
|
20
54
|
dbPath: string;
|
|
21
55
|
serverURL: string;
|
|
@@ -27,40 +61,59 @@ export interface Spec extends TurboModule {
|
|
|
27
61
|
maxRetryAttempts: number;
|
|
28
62
|
pullPageSize: number;
|
|
29
63
|
pushBatchSize: number;
|
|
30
|
-
|
|
64
|
+
seedDatabasePath?: string;
|
|
65
|
+
transportObservationCapacity: number;
|
|
66
|
+
requireNewDatabase: boolean;
|
|
31
67
|
}): Promise<void>;
|
|
32
68
|
close(): Promise<void>;
|
|
33
69
|
getPath(): Promise<string>;
|
|
34
70
|
|
|
35
|
-
//
|
|
36
|
-
query(
|
|
37
|
-
|
|
71
|
+
// Core SQL
|
|
72
|
+
query(
|
|
73
|
+
sql: string,
|
|
74
|
+
params: ReadonlyArray<NativeSQLiteBindValue>
|
|
75
|
+
): Promise<ReadonlyArray<NativeRow>>;
|
|
76
|
+
queryOne(
|
|
77
|
+
sql: string,
|
|
78
|
+
params: ReadonlyArray<NativeSQLiteBindValue>
|
|
79
|
+
): Promise<NativeRow | null>;
|
|
38
80
|
execute(
|
|
39
81
|
sql: string,
|
|
40
|
-
|
|
82
|
+
params: ReadonlyArray<NativeSQLiteBindValue>
|
|
83
|
+
): Promise<{ rowsAffected: number }>;
|
|
84
|
+
executeAuthoredWrite(
|
|
85
|
+
tableName: string,
|
|
86
|
+
operation: string,
|
|
87
|
+
columnNames: ReadonlyArray<string>,
|
|
88
|
+
sql: string,
|
|
89
|
+
values: ReadonlyArray<NativeSQLiteBindValue>
|
|
41
90
|
): Promise<{ rowsAffected: number }>;
|
|
42
91
|
executeBatch(
|
|
43
|
-
|
|
92
|
+
statements: ReadonlyArray<NativeSQLStatement>
|
|
44
93
|
): Promise<{ totalRowsAffected: number }>;
|
|
45
94
|
|
|
46
|
-
//
|
|
95
|
+
// Transactions
|
|
47
96
|
beginWriteTransaction(): Promise<string>;
|
|
48
97
|
beginReadTransaction(): Promise<string>;
|
|
49
|
-
txQuery(
|
|
98
|
+
txQuery(
|
|
99
|
+
txID: string,
|
|
100
|
+
sql: string,
|
|
101
|
+
params: ReadonlyArray<NativeSQLiteBindValue>
|
|
102
|
+
): Promise<ReadonlyArray<NativeRow>>;
|
|
50
103
|
txQueryOne(
|
|
51
104
|
txID: string,
|
|
52
105
|
sql: string,
|
|
53
|
-
|
|
54
|
-
): Promise<
|
|
106
|
+
params: ReadonlyArray<NativeSQLiteBindValue>
|
|
107
|
+
): Promise<NativeRow | null>;
|
|
55
108
|
txExecute(
|
|
56
109
|
txID: string,
|
|
57
110
|
sql: string,
|
|
58
|
-
|
|
111
|
+
params: ReadonlyArray<NativeSQLiteBindValue>
|
|
59
112
|
): Promise<{ rowsAffected: number }>;
|
|
60
113
|
commitTransaction(txID: string): Promise<void>;
|
|
61
114
|
rollbackTransaction(txID: string): Promise<void>;
|
|
62
115
|
|
|
63
|
-
//
|
|
116
|
+
// Schema
|
|
64
117
|
createTable(
|
|
65
118
|
name: string,
|
|
66
119
|
columnsJson: string,
|
|
@@ -73,7 +126,7 @@ export interface Spec extends TurboModule {
|
|
|
73
126
|
unique: boolean
|
|
74
127
|
): Promise<void>;
|
|
75
128
|
|
|
76
|
-
//
|
|
129
|
+
// Observation
|
|
77
130
|
addChangeObserver(
|
|
78
131
|
observerID: string,
|
|
79
132
|
tables: ReadonlyArray<string>
|
|
@@ -81,32 +134,46 @@ export interface Spec extends TurboModule {
|
|
|
81
134
|
addQueryObserver(
|
|
82
135
|
observerID: string,
|
|
83
136
|
sql: string,
|
|
84
|
-
|
|
137
|
+
params: ReadonlyArray<NativeSQLiteBindValue>,
|
|
85
138
|
tables: ReadonlyArray<string>
|
|
86
139
|
): Promise<void>;
|
|
87
140
|
removeObserver(observerID: string): Promise<void>;
|
|
88
141
|
|
|
89
|
-
//
|
|
90
|
-
checkpoint(mode: string): Promise<void>;
|
|
142
|
+
// Sync
|
|
91
143
|
start(): Promise<void>;
|
|
92
144
|
stop(): Promise<void>;
|
|
145
|
+
enterBackground(): Promise<void>;
|
|
146
|
+
enterForeground(): Promise<void>;
|
|
147
|
+
retryAfterError(): Promise<void>;
|
|
148
|
+
resetSchemaAndStart(): Promise<void>;
|
|
93
149
|
syncNow(): Promise<void>;
|
|
94
150
|
pendingChangeCount(): Promise<number>;
|
|
151
|
+
getSyncStatus(): Promise<string>;
|
|
152
|
+
inspectPendingMutations(): Promise<string>;
|
|
153
|
+
inspectRetainedMutations(): Promise<string>;
|
|
154
|
+
inspectRejectedMutations(): Promise<string>;
|
|
155
|
+
inspectClientState(): Promise<string>;
|
|
156
|
+
inspectDurableState(tableName: string, recordID: string): Promise<string>;
|
|
157
|
+
inspectTransportObservations(): Promise<string>;
|
|
158
|
+
armTransportPause(operationClass: string): Promise<void>;
|
|
159
|
+
awaitTransportPause(operationClass: string, timeoutMs: number): Promise<void>;
|
|
160
|
+
resumeTransportPause(): Promise<void>;
|
|
161
|
+
getProcessIdentity(): Promise<string>;
|
|
162
|
+
clearRejectedMutations(): Promise<void>;
|
|
95
163
|
|
|
96
|
-
//
|
|
164
|
+
// Bidirectional responses
|
|
97
165
|
resolveAuthRequest(requestID: string, token: string): void;
|
|
98
166
|
rejectAuthRequest(requestID: string, error: string): void;
|
|
99
|
-
resolveSnapshotRequest(requestID: string, approved: boolean): void;
|
|
100
167
|
|
|
101
|
-
//
|
|
168
|
+
// Typed events
|
|
102
169
|
readonly onStatusChange: EventEmitter<StatusEvent>;
|
|
170
|
+
readonly onSyncEvent: EventEmitter<SyncEvent>;
|
|
103
171
|
readonly onConflict: EventEmitter<ConflictEvent>;
|
|
104
172
|
readonly onAuthRequest: EventEmitter<AuthRequestEvent>;
|
|
105
|
-
readonly onSnapshotRequired: EventEmitter<SnapshotRequiredEvent>;
|
|
106
173
|
readonly onChange: EventEmitter<ChangeEvent>;
|
|
107
174
|
readonly onQueryResult: EventEmitter<QueryResultEvent>;
|
|
108
175
|
|
|
109
|
-
//
|
|
176
|
+
// NativeEventEmitter compatibility
|
|
110
177
|
addListener(eventName: string): void;
|
|
111
178
|
removeListeners(count: number): void;
|
|
112
179
|
}
|