@evolu/react-native 14.3.0 → 15.0.0-next.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.
- package/README.md +3 -3
- package/dist/src/Polyfills.d.ts +3 -0
- package/dist/src/Polyfills.d.ts.map +1 -0
- package/dist/src/Polyfills.js +209 -0
- package/dist/src/Task.d.ts +31 -0
- package/dist/src/Task.d.ts.map +1 -0
- package/dist/src/Task.js +46 -0
- package/dist/src/Worker.d.ts +30 -0
- package/dist/src/Worker.d.ts.map +1 -0
- package/dist/src/Worker.js +29 -0
- package/dist/src/components/EvoluIdenticon.d.ts +9 -0
- package/dist/src/components/EvoluIdenticon.d.ts.map +1 -0
- package/dist/{components → src/components}/EvoluIdenticon.js +1 -1
- package/dist/src/createExpoDeps.d.ts +1 -0
- package/dist/src/createExpoDeps.d.ts.map +1 -0
- package/dist/src/createExpoDeps.js +163 -0
- package/dist/src/exports/bare-op-sqlite.d.ts +1 -0
- package/dist/src/exports/bare-op-sqlite.d.ts.map +1 -0
- package/dist/src/exports/bare-op-sqlite.js +31 -0
- package/dist/src/exports/expo-op-sqlite.d.ts +1 -0
- package/dist/src/exports/expo-op-sqlite.d.ts.map +1 -0
- package/dist/src/exports/expo-op-sqlite.js +16 -0
- package/dist/src/exports/expo-sqlite.d.ts +11 -0
- package/dist/src/exports/expo-sqlite.d.ts.map +1 -0
- package/dist/src/exports/expo-sqlite.js +24 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +3 -0
- package/dist/src/shared.d.ts +5 -0
- package/dist/src/shared.d.ts.map +1 -0
- package/dist/src/shared.js +87 -0
- package/dist/src/sqlite-drivers/createExpoSqliteDriver.d.ts +3 -0
- package/dist/src/sqlite-drivers/createExpoSqliteDriver.d.ts.map +1 -0
- package/dist/src/sqlite-drivers/createExpoSqliteDriver.js +51 -0
- package/dist/src/sqlite-drivers/createOpSqliteDriver.d.ts +3 -0
- package/dist/src/sqlite-drivers/createOpSqliteDriver.d.ts.map +1 -0
- package/dist/src/sqlite-drivers/createOpSqliteDriver.js +37 -0
- package/dist/src/web.d.ts.map +1 -0
- package/package.json +73 -51
- package/src/ErrorUtils.d.ts +19 -0
- package/src/Polyfills.ts +305 -0
- package/src/Task.ts +66 -0
- package/src/Worker.ts +54 -0
- package/src/components/EvoluIdenticon.tsx +2 -2
- package/src/createExpoDeps.ts +162 -160
- package/src/exports/bare-op-sqlite.ts +30 -28
- package/src/exports/expo-op-sqlite.ts +15 -14
- package/src/exports/expo-sqlite.ts +21 -4
- package/src/index.ts +2 -0
- package/src/shared.ts +113 -52
- package/src/sqlite-drivers/createExpoSqliteDriver.ts +59 -51
- package/src/sqlite-drivers/createOpSqliteDriver.ts +51 -61
- package/LICENSE +0 -21
- package/dist/components/EvoluIdenticon.d.ts +0 -9
- package/dist/components/EvoluIdenticon.d.ts.map +0 -1
- package/dist/createExpoDeps.d.ts +0 -7
- package/dist/createExpoDeps.d.ts.map +0 -1
- package/dist/createExpoDeps.js +0 -123
- package/dist/exports/bare-op-sqlite.d.ts +0 -10
- package/dist/exports/bare-op-sqlite.d.ts.map +0 -1
- package/dist/exports/bare-op-sqlite.js +0 -24
- package/dist/exports/expo-op-sqlite.d.ts +0 -9
- package/dist/exports/expo-op-sqlite.d.ts.map +0 -1
- package/dist/exports/expo-op-sqlite.js +0 -12
- package/dist/exports/expo-sqlite.d.ts +0 -8
- package/dist/exports/expo-sqlite.d.ts.map +0 -1
- package/dist/exports/expo-sqlite.js +0 -11
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -1
- package/dist/shared.d.ts +0 -5
- package/dist/shared.d.ts.map +0 -1
- package/dist/shared.js +0 -39
- package/dist/sqlite-drivers/createExpoSqliteDriver.d.ts +0 -3
- package/dist/sqlite-drivers/createExpoSqliteDriver.d.ts.map +0 -1
- package/dist/sqlite-drivers/createExpoSqliteDriver.js +0 -46
- package/dist/sqlite-drivers/createOpSqliteDriver.d.ts +0 -3
- package/dist/sqlite-drivers/createOpSqliteDriver.d.ts.map +0 -1
- package/dist/sqlite-drivers/createOpSqliteDriver.js +0 -54
- package/dist/web.d.ts.map +0 -1
- /package/dist/{web.d.ts → src/web.d.ts} +0 -0
- /package/dist/{web.js → src/web.js} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry point for Expo SQLite. Exported as
|
|
3
|
+
* "@evolu/react-native/expo-sqlite" in package.json.
|
|
4
|
+
*
|
|
5
|
+
* Use this with Expo projects that use expo-sqlite.
|
|
6
|
+
*/
|
|
7
|
+
import * as Expo from "expo";
|
|
8
|
+
import { createEvoluDeps as createSharedEvoluDeps } from "../shared.js";
|
|
9
|
+
import { createExpoSqliteDriver } from "../sqlite-drivers/createExpoSqliteDriver.js";
|
|
10
|
+
/** Creates Evolu dependencies for Expo. */
|
|
11
|
+
export const createEvoluDeps = (deps = {}) => createSharedEvoluDeps({
|
|
12
|
+
...deps,
|
|
13
|
+
createSqliteDriver: createExpoSqliteDriver,
|
|
14
|
+
reloadApp: () => {
|
|
15
|
+
void Expo.reloadAppAsync();
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
// import { createExpoDeps } from "../createExpoDeps.js";
|
|
19
|
+
// import { createExpoSqliteDriver } from "../sqlite-drivers/createExpoSqliteDriver.js";
|
|
20
|
+
//
|
|
21
|
+
// // eslint-disable-next-line evolu/require-pure-annotation
|
|
22
|
+
// export const { evoluReactNativeDeps, localAuth } = createExpoDeps({
|
|
23
|
+
// createSqliteDriver: createExpoSqliteDriver,
|
|
24
|
+
// });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ConsoleDep, type CreateSqliteDriverDep, type ReloadAppDep } from "@evolu/common";
|
|
2
|
+
import type { EvoluDeps } from "@evolu/common/local-first";
|
|
3
|
+
/** Creates Evolu dependencies for React Native. */
|
|
4
|
+
export declare const createEvoluDeps: (deps: ReloadAppDep & CreateSqliteDriverDep & Partial<ConsoleDep>) => EvoluDeps;
|
|
5
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAIV,SAAS,EAEV,MAAM,2BAA2B,CAAC;AAenC,mDAAmD;AACnD,eAAO,MAAM,eAAe,GAC1B,MAAM,YAAY,GAAG,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,KAC/D,SAuCF,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { createConsole, createConsoleStoreOutput, createInMemoryLeaderLock, createRandomBytes, createRun, createWebSocket, } from "@evolu/common";
|
|
2
|
+
import { createEvoluDeps as createCommonEvoluDeps, startDbWorker, initSharedWorker, } from "@evolu/common/local-first";
|
|
3
|
+
import { createMessageChannel, createMessagePort, createSharedWorker, createWorker, } from "./Worker.js";
|
|
4
|
+
const leaderLock = createInMemoryLeaderLock();
|
|
5
|
+
/** Creates Evolu dependencies for React Native. */
|
|
6
|
+
export const createEvoluDeps = (deps) => {
|
|
7
|
+
// Worker-side Run lives as long as the app. When RN supports real workers,
|
|
8
|
+
// this moves to the worker entry point (like web's Worker.worker.ts).
|
|
9
|
+
const createWorkerRun = () => {
|
|
10
|
+
const consoleStoreOutput = createConsoleStoreOutput();
|
|
11
|
+
const workerConsole = createConsole({
|
|
12
|
+
output: consoleStoreOutput,
|
|
13
|
+
...(deps.console && { level: deps.console.getLevel() }),
|
|
14
|
+
});
|
|
15
|
+
return createRun({
|
|
16
|
+
console: workerConsole,
|
|
17
|
+
consoleStoreOutputEntry: consoleStoreOutput.entry,
|
|
18
|
+
createMessagePort,
|
|
19
|
+
createWebSocket,
|
|
20
|
+
createSqliteDriver: deps.createSqliteDriver,
|
|
21
|
+
leaderLock,
|
|
22
|
+
randomBytes: createRandomBytes(),
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
const createDbWorker = () => createWorker((self) => {
|
|
26
|
+
const dbWorkerRun = createWorkerRun();
|
|
27
|
+
dbWorkerRun(startDbWorker(self));
|
|
28
|
+
});
|
|
29
|
+
const sharedWorker = createSharedWorker((self) => {
|
|
30
|
+
const sharedWorkerRun = createWorkerRun();
|
|
31
|
+
sharedWorkerRun(initSharedWorker(self));
|
|
32
|
+
});
|
|
33
|
+
return createCommonEvoluDeps({
|
|
34
|
+
...deps,
|
|
35
|
+
createDbWorker,
|
|
36
|
+
createMessageChannel,
|
|
37
|
+
reloadApp: deps.reloadApp,
|
|
38
|
+
sharedWorker,
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
// TODO: Reimplement local auth for React Native from scratch.
|
|
42
|
+
// export const createSharedLocalAuth = (
|
|
43
|
+
// secureStorage: SecureStorage,
|
|
44
|
+
// ): LocalAuth =>
|
|
45
|
+
// createLocalAuth({
|
|
46
|
+
// randomBytes,
|
|
47
|
+
// secureStorage,
|
|
48
|
+
// });
|
|
49
|
+
// import {
|
|
50
|
+
// createConsole,
|
|
51
|
+
// createLocalAuth,
|
|
52
|
+
// createRandomBytes,
|
|
53
|
+
// type CreateSqliteDriverDep,
|
|
54
|
+
// type LocalAuth,
|
|
55
|
+
// type ReloadAppDep,
|
|
56
|
+
// type SecureStorage,
|
|
57
|
+
// } from "@evolu/common";
|
|
58
|
+
// import type {
|
|
59
|
+
// // createDbWorkerForPlatform,
|
|
60
|
+
// // createDbWorkerForPlatform,
|
|
61
|
+
// EvoluDeps,
|
|
62
|
+
// } from "@evolu/common/local-first";
|
|
63
|
+
//
|
|
64
|
+
// const _console = createConsole();
|
|
65
|
+
// const randomBytes = createRandomBytes();
|
|
66
|
+
//
|
|
67
|
+
// export const createSharedEvoluDeps = (
|
|
68
|
+
// _deps: CreateSqliteDriverDep & ReloadAppDep,
|
|
69
|
+
// ): EvoluDeps => {
|
|
70
|
+
// throw new Error("todo");
|
|
71
|
+
// };
|
|
72
|
+
//
|
|
73
|
+
// ({
|
|
74
|
+
// ...deps,
|
|
75
|
+
// console,
|
|
76
|
+
// sharedWorker: "TODO" as never,
|
|
77
|
+
// // createDbWorker: () =>
|
|
78
|
+
// // createDbWorkerForPlatform({
|
|
79
|
+
// // ...deps,
|
|
80
|
+
// // console,
|
|
81
|
+
// // createWebSocket,
|
|
82
|
+
// // random: createRandom(),
|
|
83
|
+
// // randomBytes,
|
|
84
|
+
// // time: createTime(),
|
|
85
|
+
// // }),
|
|
86
|
+
// randomBytes,
|
|
87
|
+
// });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createExpoSqliteDriver.d.ts","sourceRoot":"","sources":["../../../src/sqlite-drivers/createExpoSqliteDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAC;AAGvB,eAAO,MAAM,sBAAsB,EAAE,kBAgElC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { bytesToHex, createPreparedStatementsCache, ok, } from "@evolu/common";
|
|
2
|
+
import { openDatabaseSync, SQLiteStatement } from "expo-sqlite";
|
|
3
|
+
export const createExpoSqliteDriver = (name, options) => () => {
|
|
4
|
+
const stack = new globalThis.DisposableStack();
|
|
5
|
+
const db = stack.adopt(openDatabaseSync(options?.mode === "memory" ? ":memory:" : `evolu1-${name}.db`), (db) => {
|
|
6
|
+
db.closeSync();
|
|
7
|
+
});
|
|
8
|
+
if (options?.mode === "encrypted") {
|
|
9
|
+
db.execSync(`PRAGMA key = "x'${bytesToHex(options.encryptionKey)}'"`);
|
|
10
|
+
}
|
|
11
|
+
const cache = stack.use(createPreparedStatementsCache((sql) => db.prepareSync(sql), (statement) => {
|
|
12
|
+
statement.finalizeSync();
|
|
13
|
+
}));
|
|
14
|
+
return ok({
|
|
15
|
+
exec: (query) => {
|
|
16
|
+
const execStatement = (statement) => {
|
|
17
|
+
const result = statement.executeSync(query.parameters);
|
|
18
|
+
try {
|
|
19
|
+
const rows = result.getAllSync();
|
|
20
|
+
const changes = result.changes;
|
|
21
|
+
return { rows: rows, changes };
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
result.resetSync();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const prepared = cache.get(query);
|
|
28
|
+
if (prepared)
|
|
29
|
+
return execStatement(prepared);
|
|
30
|
+
const statement = db.prepareSync(query.sql);
|
|
31
|
+
try {
|
|
32
|
+
return execStatement(statement);
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
statement.finalizeSync();
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
export: () => {
|
|
39
|
+
const file = db.serializeSync();
|
|
40
|
+
const { buffer } = file;
|
|
41
|
+
if (buffer instanceof ArrayBuffer) {
|
|
42
|
+
return new Uint8Array(buffer, file.byteOffset, file.byteLength);
|
|
43
|
+
}
|
|
44
|
+
// Ensure export uses transferable ArrayBuffer backing.
|
|
45
|
+
return new Uint8Array(file);
|
|
46
|
+
},
|
|
47
|
+
[Symbol.dispose]: () => {
|
|
48
|
+
stack.dispose();
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createOpSqliteDriver.d.ts","sourceRoot":"","sources":["../../../src/sqlite-drivers/createOpSqliteDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,kBAAkB,EAIxB,MAAM,eAAe,CAAC;AAGvB,eAAO,MAAM,oBAAoB,EAAE,kBAqDhC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { bytesToHex, createPreparedStatementsCache, lazyVoid, ok, } from "@evolu/common";
|
|
2
|
+
import { open } from "@op-engineering/op-sqlite";
|
|
3
|
+
export const createOpSqliteDriver = (name, options) => () => {
|
|
4
|
+
// https://op-engineering.github.io/op-sqlite/docs/configuration#in-memory
|
|
5
|
+
const stack = new globalThis.DisposableStack();
|
|
6
|
+
const db = stack.adopt(open(options?.mode === "memory"
|
|
7
|
+
? { name: `inMemoryDb`, location: ":memory:" }
|
|
8
|
+
: {
|
|
9
|
+
name: `evolu1-${name}.db`,
|
|
10
|
+
...(options?.mode === "encrypted" && {
|
|
11
|
+
encryptionKey: `x'${bytesToHex(options.encryptionKey)}'`,
|
|
12
|
+
}),
|
|
13
|
+
}), (db) => {
|
|
14
|
+
db.close();
|
|
15
|
+
});
|
|
16
|
+
const cache = stack.use(createPreparedStatementsCache((sql) => db.prepareStatement(sql),
|
|
17
|
+
// op-sqlite doesn't have API for that
|
|
18
|
+
lazyVoid));
|
|
19
|
+
return ok({
|
|
20
|
+
exec: (query) => {
|
|
21
|
+
const prepared = cache.get(query);
|
|
22
|
+
if (prepared) {
|
|
23
|
+
prepared.bindSync(query.parameters);
|
|
24
|
+
}
|
|
25
|
+
const { rows, rowsAffected } = db.executeSync(query.sql, query.parameters);
|
|
26
|
+
return { rows: rows, changes: rowsAffected };
|
|
27
|
+
},
|
|
28
|
+
// FIXME: op-sqlite does not expose binary, but a path to the database file
|
|
29
|
+
// another react native dependency would be needed to implement this
|
|
30
|
+
export: () => {
|
|
31
|
+
throw new Error("TODO: Not implemented yet");
|
|
32
|
+
},
|
|
33
|
+
[Symbol.dispose]: () => {
|
|
34
|
+
stack.dispose();
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evolu/react-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "15.0.0-next.0",
|
|
4
4
|
"description": "Evolu for React Native and Expo",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"evolu",
|
|
@@ -20,76 +20,104 @@
|
|
|
20
20
|
"type": "module",
|
|
21
21
|
"exports": {
|
|
22
22
|
".": {
|
|
23
|
-
"types": "./dist/index.d.ts",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
23
|
+
"types": "./dist/src/index.d.ts",
|
|
24
|
+
"react-native": "./dist/src/index.js",
|
|
25
|
+
"default": "./dist/src/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./polyfills": {
|
|
28
|
+
"types": "./dist/src/Polyfills.d.ts",
|
|
29
|
+
"react-native": "./dist/src/Polyfills.js",
|
|
30
|
+
"default": "./dist/src/Polyfills.js"
|
|
26
31
|
},
|
|
27
32
|
"./expo-sqlite": {
|
|
28
|
-
"types": "./dist/exports/expo-sqlite.d.ts",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
33
|
+
"types": "./dist/src/exports/expo-sqlite.d.ts",
|
|
34
|
+
"react-native": "./dist/src/exports/expo-sqlite.js",
|
|
35
|
+
"browser": "./dist/src/web.js",
|
|
36
|
+
"default": "./dist/src/exports/expo-sqlite.js"
|
|
32
37
|
},
|
|
33
38
|
"./expo-op-sqlite": {
|
|
34
|
-
"types": "./dist/exports/expo-op-sqlite.d.ts",
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
39
|
+
"types": "./dist/src/exports/expo-op-sqlite.d.ts",
|
|
40
|
+
"react-native": "./dist/src/exports/expo-op-sqlite.js",
|
|
41
|
+
"browser": "./dist/src/web.js",
|
|
42
|
+
"default": "./dist/src/exports/expo-op-sqlite.js"
|
|
38
43
|
},
|
|
39
44
|
"./bare-op-sqlite": {
|
|
40
|
-
"types": "./dist/exports/bare-op-sqlite.d.ts",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
45
|
+
"types": "./dist/src/exports/bare-op-sqlite.d.ts",
|
|
46
|
+
"react-native": "./dist/src/exports/bare-op-sqlite.js",
|
|
47
|
+
"browser": "./dist/src/web.js",
|
|
48
|
+
"default": "./dist/src/exports/bare-op-sqlite.js"
|
|
44
49
|
}
|
|
45
50
|
},
|
|
46
51
|
"typesVersions": {
|
|
47
52
|
"*": {
|
|
48
53
|
".": [
|
|
49
|
-
"./dist/index.d.ts"
|
|
54
|
+
"./dist/src/index.d.ts"
|
|
55
|
+
],
|
|
56
|
+
"polyfills": [
|
|
57
|
+
"./dist/src/Polyfills.d.ts"
|
|
50
58
|
],
|
|
51
59
|
"expo-sqlite": [
|
|
52
|
-
"./dist/exports/expo-sqlite.d.ts"
|
|
60
|
+
"./dist/src/exports/expo-sqlite.d.ts"
|
|
53
61
|
],
|
|
54
62
|
"expo-op-sqlite": [
|
|
55
|
-
"./dist/exports/expo-op-sqlite.d.ts"
|
|
63
|
+
"./dist/src/exports/expo-op-sqlite.d.ts"
|
|
56
64
|
],
|
|
57
65
|
"bare-op-sqlite": [
|
|
58
|
-
"./dist/exports/bare-op-sqlite.d.ts"
|
|
66
|
+
"./dist/src/exports/bare-op-sqlite.d.ts"
|
|
59
67
|
]
|
|
60
68
|
}
|
|
61
69
|
},
|
|
62
70
|
"files": [
|
|
63
|
-
"dist/**",
|
|
71
|
+
"dist/src/**",
|
|
64
72
|
"src/**",
|
|
65
73
|
"README.md"
|
|
66
74
|
],
|
|
75
|
+
"scripts": {
|
|
76
|
+
"build": "tsc --build tsconfig.build.json",
|
|
77
|
+
"prepack": "npm run build",
|
|
78
|
+
"format": "prettier --write \"src/*.{ts,tsx,md}\""
|
|
79
|
+
},
|
|
80
|
+
"dependencies": {
|
|
81
|
+
"array-from-async": "^3.0.0",
|
|
82
|
+
"array.prototype.tosorted": "^1.1.4",
|
|
83
|
+
"promise.try": "^2.0.1",
|
|
84
|
+
"promise.withresolvers": "^1.0.4",
|
|
85
|
+
"set.prototype.difference": "^1.1.7",
|
|
86
|
+
"set.prototype.intersection": "^1.1.8",
|
|
87
|
+
"set.prototype.isdisjointfrom": "^1.1.5",
|
|
88
|
+
"set.prototype.issubsetof": "^1.1.4",
|
|
89
|
+
"set.prototype.issupersetof": "^1.1.3",
|
|
90
|
+
"set.prototype.symmetricdifference": "^1.1.3",
|
|
91
|
+
"set.prototype.union": "^1.1.3"
|
|
92
|
+
},
|
|
67
93
|
"devDependencies": {
|
|
68
|
-
"@
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"react
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
94
|
+
"@evolu/common": "8.0.0-next.0",
|
|
95
|
+
"@evolu/react": "11.0.0-next.0",
|
|
96
|
+
"@evolu/typescript-config": "*",
|
|
97
|
+
"@op-engineering/op-sqlite": "^15.2.2",
|
|
98
|
+
"@types/react": "^19.2.14",
|
|
99
|
+
"expo": "^55.0.4",
|
|
100
|
+
"expo-secure-store": "~55.0.8",
|
|
101
|
+
"expo-sqlite": "~55.0.10",
|
|
102
|
+
"react": "^19.2.4",
|
|
103
|
+
"react-native": "0.83.2",
|
|
104
|
+
"react-native-nitro-modules": "0.34.1",
|
|
105
|
+
"react-native-sensitive-info": "6.0.0-rc.11",
|
|
106
|
+
"react-native-svg": "15.15.3",
|
|
107
|
+
"typescript": "^5.9.3"
|
|
81
108
|
},
|
|
82
109
|
"peerDependencies": {
|
|
83
|
-
"@evolu/common": "^
|
|
84
|
-
"@evolu/react": "^
|
|
110
|
+
"@evolu/common": "^8.0.0-next.0",
|
|
111
|
+
"@evolu/react": "^11.0.0-next.0",
|
|
85
112
|
"@op-engineering/op-sqlite": ">=12",
|
|
86
|
-
"expo": ">=
|
|
87
|
-
"expo-secure-store": ">=
|
|
88
|
-
"expo-sqlite": ">=
|
|
89
|
-
"react
|
|
90
|
-
"react-native
|
|
113
|
+
"expo": ">=55",
|
|
114
|
+
"expo-secure-store": ">=55",
|
|
115
|
+
"expo-sqlite": ">=55",
|
|
116
|
+
"react": ">=19",
|
|
117
|
+
"react-native": ">=0.83",
|
|
118
|
+
"react-native-nitro-modules": ">=0.34",
|
|
91
119
|
"react-native-sensitive-info": ">=6",
|
|
92
|
-
"react-native-svg": ">=15"
|
|
120
|
+
"react-native-svg": ">=15.15"
|
|
93
121
|
},
|
|
94
122
|
"peerDependenciesMeta": {
|
|
95
123
|
"@op-engineering/op-sqlite": {
|
|
@@ -118,13 +146,7 @@
|
|
|
118
146
|
"access": "public"
|
|
119
147
|
},
|
|
120
148
|
"engines": {
|
|
121
|
-
"node": ">=
|
|
149
|
+
"node": ">=24.0.0"
|
|
122
150
|
},
|
|
123
|
-
"sideEffects":
|
|
124
|
-
|
|
125
|
-
"dev": "tsc --watch",
|
|
126
|
-
"build": "rimraf dist && tsc",
|
|
127
|
-
"clean": "rimraf .turbo node_modules dist",
|
|
128
|
-
"format": "prettier --write \"src/*.{ts,tsx,md}\""
|
|
129
|
-
}
|
|
130
|
-
}
|
|
151
|
+
"sideEffects": false
|
|
152
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Native global error handling utilities.
|
|
3
|
+
*
|
|
4
|
+
* ErrorUtils is a React Native global that provides error handling
|
|
5
|
+
* capabilities.
|
|
6
|
+
*/
|
|
7
|
+
interface ErrorUtils {
|
|
8
|
+
getGlobalHandler: () => ((error: unknown, isFatal?: boolean) => void) | null;
|
|
9
|
+
setGlobalHandler: (
|
|
10
|
+
handler: (error: unknown, isFatal?: boolean) => void,
|
|
11
|
+
) => void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare global {
|
|
15
|
+
// eslint-disable-next-line no-var
|
|
16
|
+
var ErrorUtils: ErrorUtils | undefined;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export {};
|