jazz-react-native 0.9.1 → 0.9.3
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/auth/DemoAuthMethod.js +7 -4
- package/dist/auth/DemoAuthMethod.js.map +1 -1
- package/dist/hooks.d.ts +865 -1
- package/dist/platform.d.ts +1 -1
- package/dist/platform.js +11 -2
- package/dist/platform.js.map +1 -1
- package/dist/provider.d.ts +2 -1
- package/dist/provider.js +3 -1
- package/dist/provider.js.map +1 -1
- package/dist/storage/expo-secure-store-adapter.js +3 -3
- package/dist/storage/expo-secure-store-adapter.js.map +1 -1
- package/package.json +3 -2
- package/src/auth/DemoAuthMethod.ts +7 -5
- package/src/platform.ts +14 -3
- package/src/provider.tsx +4 -0
- package/src/storage/expo-secure-store-adapter.ts +3 -3
package/dist/platform.d.ts
CHANGED
@@ -24,7 +24,7 @@ export type ReactNativeContextOptions<Acc extends Account> = {
|
|
24
24
|
export type BaseReactNativeContextOptions = {
|
25
25
|
peer: `wss://${string}` | `ws://${string}`;
|
26
26
|
reconnectionTimeout?: number;
|
27
|
-
storage?: "
|
27
|
+
storage?: "sqlite" | "disabled";
|
28
28
|
CryptoProvider?: typeof PureJSCrypto | typeof RNQuickCrypto;
|
29
29
|
};
|
30
30
|
/** @category Context Creation */
|
package/dist/platform.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { SQLiteStorage } from "cojson-storage-rn-sqlite";
|
1
2
|
import { cojsonInternals, createJazzContext, } from "jazz-tools";
|
2
3
|
export { RNDemoAuth } from "./auth/DemoAuthMethod.js";
|
3
4
|
import { PureJSCrypto } from "cojson/native";
|
@@ -9,17 +10,25 @@ export async function createJazzRNContext(options) {
|
|
9
10
|
node.syncManager.addPeer(peer);
|
10
11
|
});
|
11
12
|
const CryptoProvider = options.CryptoProvider || PureJSCrypto;
|
13
|
+
const peersToLoadFrom = [websocketPeer.peer];
|
14
|
+
if (options.storage === "sqlite") {
|
15
|
+
const storage = await SQLiteStorage.asPeer({
|
16
|
+
filename: "jazz-storage",
|
17
|
+
trace: false,
|
18
|
+
});
|
19
|
+
peersToLoadFrom.push(storage);
|
20
|
+
}
|
12
21
|
const context = "auth" in options
|
13
22
|
? await createJazzContext({
|
14
23
|
AccountSchema: options.AccountSchema,
|
15
24
|
auth: options.auth,
|
16
25
|
crypto: await CryptoProvider.create(),
|
17
|
-
peersToLoadFrom
|
26
|
+
peersToLoadFrom,
|
18
27
|
sessionProvider: provideLockSession,
|
19
28
|
})
|
20
29
|
: await createJazzContext({
|
21
30
|
crypto: await CryptoProvider.create(),
|
22
|
-
peersToLoadFrom
|
31
|
+
peersToLoadFrom,
|
23
32
|
});
|
24
33
|
const node = "account" in context ? context.account._raw.core.node : context.agent.node;
|
25
34
|
return "account" in context
|
package/dist/platform.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAE/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAwC/D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAuE;IAEvE,MAAM,aAAa,GAAG,mCAAmC,CACvD,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,mBAAmB,EAC3B,CAAC,IAAI,EAAE,EAAE;QACP,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CACF,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,YAAY,CAAC;IAE9D,MAAM,OAAO,GACX,MAAM,IAAI,OAAO;QACf,CAAC,CAAC,MAAM,iBAAiB,CAAC;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE;YACrC,eAAe
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.d.ts
CHANGED
@@ -11,6 +11,7 @@ export type JazzProviderProps<Acc extends Account = RegisteredAccount> = {
|
|
11
11
|
peer: `wss://${string}` | `ws://${string}`;
|
12
12
|
AccountSchema?: AccountClass<Acc>;
|
13
13
|
CryptoProvider?: BaseReactNativeContextOptions["CryptoProvider"];
|
14
|
+
storage?: BaseReactNativeContextOptions["storage"];
|
14
15
|
};
|
15
16
|
/** @category Context & Hooks */
|
16
|
-
export declare function JazzProvider<Acc extends Account = RegisteredAccount>({ children, auth, peer, AccountSchema, CryptoProvider, }: JazzProviderProps<Acc>): import("react").JSX.Element;
|
17
|
+
export declare function JazzProvider<Acc extends Account = RegisteredAccount>({ children, auth, peer, AccountSchema, CryptoProvider, storage, }: JazzProviderProps<Acc>): import("react").JSX.Element;
|
package/dist/provider.js
CHANGED
@@ -4,7 +4,7 @@ import { useState } from "react";
|
|
4
4
|
import { useEffect, useRef } from "react";
|
5
5
|
import { createJazzRNContext, } from "./platform.js";
|
6
6
|
/** @category Context & Hooks */
|
7
|
-
export function JazzProvider({ children, auth, peer, AccountSchema = Account, CryptoProvider, }) {
|
7
|
+
export function JazzProvider({ children, auth, peer, AccountSchema = Account, CryptoProvider, storage, }) {
|
8
8
|
const [ctx, setCtx] = useState();
|
9
9
|
const [sessionCount, setSessionCount] = useState(0);
|
10
10
|
const effectExecuted = useRef(false);
|
@@ -30,12 +30,14 @@ export function JazzProvider({ children, auth, peer, AccountSchema = Account, Cr
|
|
30
30
|
? {
|
31
31
|
peer,
|
32
32
|
CryptoProvider,
|
33
|
+
storage,
|
33
34
|
}
|
34
35
|
: {
|
35
36
|
AccountSchema,
|
36
37
|
auth: auth,
|
37
38
|
peer,
|
38
39
|
CryptoProvider,
|
40
|
+
storage,
|
39
41
|
});
|
40
42
|
const logOut = () => {
|
41
43
|
currentContext.logOut();
|
package/dist/provider.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAA4B,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAEL,mBAAmB,GACpB,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAA4B,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAEL,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAgBvB,gCAAgC;AAChC,MAAM,UAAU,YAAY,CAA0C,EACpE,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,aAAa,GAAG,OAAuC,EACvD,cAAc,EACd,OAAO,GACgB;IACvB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAoC,CAAC;IAEnE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,iFAAiF;QACjF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;YAE9B,2EAA2E;YAC3E,0EAA0E;YAC1E,EAAE;YACF,qDAAqD;YACrD,MAAM,eAAe,GAAG,GAAG,CAAC;YAE5B,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,UAAU,aAAa;YAC1B,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAC9C,IAAI,KAAK,OAAO;gBACd,CAAC,CAAC;oBACE,IAAI;oBACJ,cAAc;oBACd,OAAO;iBACR;gBACH,CAAC,CAAC;oBACE,aAAa;oBACb,IAAI,EAAE,IAAI;oBACV,IAAI;oBACJ,cAAc;oBACd,OAAO;iBACR,CACN,CAAC;YAEF,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,cAAc,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClB,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAElC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;oBAC3C,yDAAyD;oBACzD,uCAAuC;oBACvC,cAAc,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,CAAC;gBACL,GAAG,cAAc;gBACjB,aAAa;gBACb,MAAM;aACP,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAEhC,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,OAAO,GAAG,EAAE;YACV,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAE9C,OAAO,CACL,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAC3E,CAAC;AACJ,CAAC"}
|
@@ -2,19 +2,19 @@ import * as SecureStore from "expo-secure-store";
|
|
2
2
|
export class ExpoSecureStoreAdapter {
|
3
3
|
get(key) {
|
4
4
|
return SecureStore.getItemAsync(key, {
|
5
|
-
requireAuthentication:
|
5
|
+
requireAuthentication: false,
|
6
6
|
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
7
7
|
});
|
8
8
|
}
|
9
9
|
async set(key, value) {
|
10
10
|
return SecureStore.setItemAsync(key, value, {
|
11
|
-
requireAuthentication:
|
11
|
+
requireAuthentication: false,
|
12
12
|
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
13
13
|
});
|
14
14
|
}
|
15
15
|
async delete(key) {
|
16
16
|
return SecureStore.deleteItemAsync(key, {
|
17
|
-
requireAuthentication:
|
17
|
+
requireAuthentication: false,
|
18
18
|
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
19
19
|
});
|
20
20
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"expo-secure-store-adapter.js","sourceRoot":"","sources":["../../src/storage/expo-secure-store-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAGjD,MAAM,OAAO,sBAAsB;IACjC,GAAG,CAAC,GAAW;QACb,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE;YACnC,qBAAqB,EAAE,
|
1
|
+
{"version":3,"file":"expo-secure-store-adapter.js","sourceRoot":"","sources":["../../src/storage/expo-secure-store-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAGjD,MAAM,OAAO,sBAAsB;IACjC,GAAG,CAAC,GAAW;QACb,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE;YACnC,qBAAqB,EAAE,KAAK;YAC5B,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE;YAC1C,qBAAqB,EAAE,KAAK;YAC5B,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE;YACtC,qBAAqB,EAAE,KAAK;YAC5B,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;CACF"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "jazz-react-native",
|
3
|
-
"version": "0.9.
|
3
|
+
"version": "0.9.3",
|
4
4
|
"type": "module",
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"module": "./dist/index.js",
|
@@ -28,8 +28,9 @@
|
|
28
28
|
"@scure/base": "1.2.1",
|
29
29
|
"react-native-quick-crypto": "1.0.0-beta.9",
|
30
30
|
"jazz-react-core": "0.8.47",
|
31
|
-
"cojson": "0.9.0",
|
32
31
|
"cojson-transport-ws": "0.9.0",
|
32
|
+
"cojson": "0.9.0",
|
33
|
+
"cojson-storage-rn-sqlite": "0.8.51",
|
33
34
|
"jazz-tools": "0.9.1"
|
34
35
|
},
|
35
36
|
"peerDependencies": {
|
@@ -111,20 +111,22 @@ export class RNDemoAuth implements AuthMethod {
|
|
111
111
|
) {
|
112
112
|
let kvStore = store;
|
113
113
|
|
114
|
-
|
115
|
-
const kvStoreContext = KvStoreContext.getInstance();
|
114
|
+
const kvStoreContext = KvStoreContext.getInstance();
|
116
115
|
|
117
|
-
|
116
|
+
if (!kvStoreContext.isInitialized()) {
|
117
|
+
if (!kvStore) {
|
118
118
|
const { ExpoSecureStoreAdapter } = await import(
|
119
119
|
"../storage/expo-secure-store-adapter.js"
|
120
120
|
);
|
121
121
|
|
122
122
|
kvStoreContext.initialize(new ExpoSecureStoreAdapter());
|
123
|
+
} else {
|
124
|
+
kvStoreContext.initialize(kvStore);
|
123
125
|
}
|
124
|
-
|
125
|
-
kvStore = kvStoreContext.getStorage();
|
126
126
|
}
|
127
127
|
|
128
|
+
kvStore = kvStoreContext.getStorage();
|
129
|
+
|
128
130
|
await migrateExistingUsersKeys(kvStore);
|
129
131
|
|
130
132
|
for (const [name, credentials] of Object.entries(seedAccounts || {})) {
|
package/src/platform.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { SQLiteStorage } from "cojson-storage-rn-sqlite";
|
1
2
|
import {
|
2
3
|
Account,
|
3
4
|
AgentID,
|
@@ -47,7 +48,7 @@ export type ReactNativeContextOptions<Acc extends Account> = {
|
|
47
48
|
export type BaseReactNativeContextOptions = {
|
48
49
|
peer: `wss://${string}` | `ws://${string}`;
|
49
50
|
reconnectionTimeout?: number;
|
50
|
-
storage?: "
|
51
|
+
storage?: "sqlite" | "disabled";
|
51
52
|
CryptoProvider?: typeof PureJSCrypto | typeof RNQuickCrypto;
|
52
53
|
};
|
53
54
|
|
@@ -74,18 +75,28 @@ export async function createJazzRNContext<Acc extends Account>(
|
|
74
75
|
|
75
76
|
const CryptoProvider = options.CryptoProvider || PureJSCrypto;
|
76
77
|
|
78
|
+
const peersToLoadFrom = [websocketPeer.peer];
|
79
|
+
|
80
|
+
if (options.storage === "sqlite") {
|
81
|
+
const storage = await SQLiteStorage.asPeer({
|
82
|
+
filename: "jazz-storage",
|
83
|
+
trace: false,
|
84
|
+
});
|
85
|
+
peersToLoadFrom.push(storage);
|
86
|
+
}
|
87
|
+
|
77
88
|
const context =
|
78
89
|
"auth" in options
|
79
90
|
? await createJazzContext({
|
80
91
|
AccountSchema: options.AccountSchema,
|
81
92
|
auth: options.auth,
|
82
93
|
crypto: await CryptoProvider.create(),
|
83
|
-
peersToLoadFrom
|
94
|
+
peersToLoadFrom,
|
84
95
|
sessionProvider: provideLockSession,
|
85
96
|
})
|
86
97
|
: await createJazzContext({
|
87
98
|
crypto: await CryptoProvider.create(),
|
88
|
-
peersToLoadFrom
|
99
|
+
peersToLoadFrom,
|
89
100
|
});
|
90
101
|
|
91
102
|
const node =
|
package/src/provider.tsx
CHANGED
@@ -18,6 +18,7 @@ export type JazzProviderProps<Acc extends Account = RegisteredAccount> = {
|
|
18
18
|
peer: `wss://${string}` | `ws://${string}`;
|
19
19
|
AccountSchema?: AccountClass<Acc>;
|
20
20
|
CryptoProvider?: BaseReactNativeContextOptions["CryptoProvider"];
|
21
|
+
storage?: BaseReactNativeContextOptions["storage"];
|
21
22
|
};
|
22
23
|
|
23
24
|
/** @category Context & Hooks */
|
@@ -27,6 +28,7 @@ export function JazzProvider<Acc extends Account = RegisteredAccount>({
|
|
27
28
|
peer,
|
28
29
|
AccountSchema = Account as unknown as AccountClass<Acc>,
|
29
30
|
CryptoProvider,
|
31
|
+
storage,
|
30
32
|
}: JazzProviderProps<Acc>) {
|
31
33
|
const [ctx, setCtx] = useState<JazzContextType<Acc> | undefined>();
|
32
34
|
|
@@ -60,12 +62,14 @@ export function JazzProvider<Acc extends Account = RegisteredAccount>({
|
|
60
62
|
? {
|
61
63
|
peer,
|
62
64
|
CryptoProvider,
|
65
|
+
storage,
|
63
66
|
}
|
64
67
|
: {
|
65
68
|
AccountSchema,
|
66
69
|
auth: auth,
|
67
70
|
peer,
|
68
71
|
CryptoProvider,
|
72
|
+
storage,
|
69
73
|
},
|
70
74
|
);
|
71
75
|
|
@@ -4,21 +4,21 @@ import type { KvStore } from "./kv-store-context.js";
|
|
4
4
|
export class ExpoSecureStoreAdapter implements KvStore {
|
5
5
|
get(key: string): Promise<string | null> {
|
6
6
|
return SecureStore.getItemAsync(key, {
|
7
|
-
requireAuthentication:
|
7
|
+
requireAuthentication: false,
|
8
8
|
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
9
9
|
});
|
10
10
|
}
|
11
11
|
|
12
12
|
async set(key: string, value: string): Promise<void> {
|
13
13
|
return SecureStore.setItemAsync(key, value, {
|
14
|
-
requireAuthentication:
|
14
|
+
requireAuthentication: false,
|
15
15
|
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
16
16
|
});
|
17
17
|
}
|
18
18
|
|
19
19
|
async delete(key: string): Promise<void> {
|
20
20
|
return SecureStore.deleteItemAsync(key, {
|
21
|
-
requireAuthentication:
|
21
|
+
requireAuthentication: false,
|
22
22
|
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
23
23
|
});
|
24
24
|
}
|