@tursodatabase/sync-common 0.2.0-pre.9 → 0.2.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 +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +14 -3
- package/dist/types.d.ts +15 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This package is the Turso Sync common JS library which is shared between final builds for Node and Browser.
|
|
4
4
|
|
|
5
|
-
Do not use this package directly - instead you must use `@tursodatabase/sync` or `@tursodatabase/sync-
|
|
5
|
+
Do not use this package directly - instead you must use `@tursodatabase/sync` or `@tursodatabase/sync-wasm`.
|
|
6
6
|
|
|
7
|
-
> **⚠️ Warning:** This software is
|
|
7
|
+
> **⚠️ Warning:** This software is in BETA. It may still contain bugs and unexpected behavior. Use caution with production data and ensure you have backups.
|
|
8
8
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { run, memoryIO, SyncEngineGuards } from "./run.js";
|
|
2
|
-
import { DatabaseOpts, ProtocolIo, RunOpts, DatabaseRowMutation, DatabaseRowStatement, DatabaseRowTransformResult, DatabaseStats, DatabaseChangeType } from "./types.js";
|
|
2
|
+
import { DatabaseOpts, ProtocolIo, RunOpts, DatabaseRowMutation, DatabaseRowStatement, DatabaseRowTransformResult, DatabaseStats, DatabaseChangeType, EncryptionOpts } from "./types.js";
|
|
3
3
|
export { run, memoryIO, SyncEngineGuards };
|
|
4
|
-
export type { DatabaseStats, DatabaseOpts, DatabaseChangeType, DatabaseRowMutation, DatabaseRowStatement, DatabaseRowTransformResult, ProtocolIo, RunOpts, };
|
|
4
|
+
export type { DatabaseStats, DatabaseOpts, DatabaseChangeType, DatabaseRowMutation, DatabaseRowStatement, DatabaseRowTransformResult, EncryptionOpts, ProtocolIo, RunOpts, };
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAExL,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;AAC1C,YAAY,EACR,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EAEd,UAAU,EACV,OAAO,GACV,CAAA"}
|
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAkG3D,wBAAgB,QAAQ,IAAI,UAAU,CAUrC;AAGD,wBAAsB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBlG;AAED,qBAAa,gBAAgB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,EAAE,SAAS,CAAC;;IAOpB,IAAI,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAQzC,IAAI,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAY3B,KAAK,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAc5B,UAAU,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;CAc1C"}
|
package/dist/run.js
CHANGED
|
@@ -12,15 +12,26 @@ async function process(opts, io, request) {
|
|
|
12
12
|
const requestType = request.request();
|
|
13
13
|
const completion = request.completion();
|
|
14
14
|
if (requestType.type == 'Http') {
|
|
15
|
+
let url = null;
|
|
16
|
+
if (typeof opts.url == "function") {
|
|
17
|
+
url = opts.url();
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
url = opts.url;
|
|
21
|
+
}
|
|
22
|
+
if (url == null) {
|
|
23
|
+
completion.poison(`url is empty - sync is paused`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
15
26
|
try {
|
|
16
|
-
let headers = typeof opts.headers === "function" ? opts.headers() : opts.headers;
|
|
27
|
+
let headers = typeof opts.headers === "function" ? await opts.headers() : opts.headers;
|
|
17
28
|
if (requestType.headers != null && requestType.headers.length > 0) {
|
|
18
|
-
headers = { ...
|
|
29
|
+
headers = { ...headers };
|
|
19
30
|
for (let header of requestType.headers) {
|
|
20
31
|
headers[header[0]] = header[1];
|
|
21
32
|
}
|
|
22
33
|
}
|
|
23
|
-
const response = await fetch(`${
|
|
34
|
+
const response = await fetch(`${url}${requestType.path}`, {
|
|
24
35
|
method: requestType.method,
|
|
25
36
|
headers: headers,
|
|
26
37
|
body: requestType.body != null ? new Uint8Array(requestType.body) : null,
|
package/dist/types.d.ts
CHANGED
|
@@ -56,6 +56,10 @@ export interface DatabaseRowMutation {
|
|
|
56
56
|
updates?: Record<string, any>;
|
|
57
57
|
}
|
|
58
58
|
export type Transform = (arg: DatabaseRowMutation) => DatabaseRowTransformResult;
|
|
59
|
+
export interface EncryptionOpts {
|
|
60
|
+
key: string;
|
|
61
|
+
cipher: 'aes256gcm' | 'aes128gcm' | 'chacha20poly1305' | 'aegis256';
|
|
62
|
+
}
|
|
59
63
|
export interface DatabaseOpts {
|
|
60
64
|
/**
|
|
61
65
|
* local path where to store all synced database files (e.g. local.db)
|
|
@@ -66,22 +70,26 @@ export interface DatabaseOpts {
|
|
|
66
70
|
/**
|
|
67
71
|
* optional url of the remote database (e.g. libsql://db-org.turso.io)
|
|
68
72
|
* (if omitted - local-only database will be created)
|
|
73
|
+
*
|
|
74
|
+
* you can also promide function which will return URL or null
|
|
75
|
+
* in this case local database will be created and sync will be "switched-on" whenever the url will return non-empty value
|
|
76
|
+
* note, that all other parameters (like encryption) must be set in advance in order for the "deferred" sync to work properly
|
|
69
77
|
*/
|
|
70
|
-
url?: string;
|
|
78
|
+
url?: string | (() => string | null);
|
|
71
79
|
/**
|
|
72
80
|
* auth token for the remote database
|
|
73
81
|
* (can be either static string or function which will provide short-lived credentials for every new request)
|
|
74
82
|
*/
|
|
75
|
-
authToken?: string | (() => string);
|
|
83
|
+
authToken?: string | (() => Promise<string>);
|
|
76
84
|
/**
|
|
77
85
|
* arbitrary client name which can be used to distinguish clients internally
|
|
78
86
|
* the library will gurantee uniquiness of the clientId by appending unique suffix to the clientName
|
|
79
87
|
*/
|
|
80
88
|
clientName?: string;
|
|
81
89
|
/**
|
|
82
|
-
* optional
|
|
90
|
+
* optional remote encryption parameters if cloud database were encrypted by default
|
|
83
91
|
*/
|
|
84
|
-
|
|
92
|
+
remoteEncryption?: EncryptionOpts;
|
|
85
93
|
/**
|
|
86
94
|
* optional callback which will be called for every mutation before sending it to the remote
|
|
87
95
|
* this callback can transform the update in order to support complex conflict resolution strategy
|
|
@@ -126,12 +134,12 @@ export interface DatabaseStats {
|
|
|
126
134
|
}
|
|
127
135
|
export interface RunOpts {
|
|
128
136
|
preemptionMs: number;
|
|
129
|
-
url: string;
|
|
137
|
+
url: string | (() => string | null);
|
|
130
138
|
headers: {
|
|
131
139
|
[K: string]: string;
|
|
132
|
-
} | (() => {
|
|
140
|
+
} | (() => Promise<{
|
|
133
141
|
[K: string]: string;
|
|
134
|
-
});
|
|
142
|
+
}>);
|
|
135
143
|
transform?: Transform;
|
|
136
144
|
}
|
|
137
145
|
export interface ProtocolIo {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,kBAAkB;IACxC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CACrB;AAGD;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAAG,IAAI,CAAC;AAE7H,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,UAAU,EAAE,kBAAkB,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,kBAAkB;IACxC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CACrB;AAGD;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAAG,IAAI,CAAC;AAE7H,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,UAAU,EAAE,kBAAkB,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,0BAA0B,CAAC;AAEjF,MAAM,WAAW,cAAc;IAE3B,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,kBAAkB,GAAG,UAAU,CAAA;CACtE;AACD,MAAM,WAAW,YAAY;IACzB;;;;SAIK;IACL,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;CAC3D;AACD,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAID,MAAM,WAAW,OAAO;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,CAAC,MAAM,OAAO,CAAC;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IAC3E,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AACD,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAAG,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tursodatabase/sync-common",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/tursodatabase/turso"
|
|
@@ -23,6 +23,6 @@
|
|
|
23
23
|
"test": "echo 'no tests'"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@tursodatabase/database-common": "^0.2.
|
|
26
|
+
"@tursodatabase/database-common": "^0.2.1"
|
|
27
27
|
}
|
|
28
28
|
}
|