jazz-react-native 0.8.44 → 0.8.46
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 +20 -0
- package/dist/auth/DemoAuthMethod.js +58 -23
- package/dist/auth/DemoAuthMethod.js.map +1 -1
- package/dist/crypto/RNQuickCrypto.d.ts +12 -0
- package/dist/crypto/RNQuickCrypto.js +31 -0
- package/dist/crypto/RNQuickCrypto.js.map +1 -0
- package/dist/crypto/index.d.ts +1 -0
- package/dist/crypto/index.js +2 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +52 -21
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +5 -5
- package/dist/provider.js +3 -1
- package/dist/provider.js.map +1 -1
- package/dist/tests/DemoAuthMethod.test.d.ts +1 -0
- package/dist/tests/DemoAuthMethod.test.js +186 -0
- package/dist/tests/DemoAuthMethod.test.js.map +1 -0
- package/package.json +11 -6
- package/src/auth/DemoAuthMethod.ts +77 -41
- package/src/crypto/RNQuickCrypto.ts +58 -0
- package/src/crypto/index.ts +1 -0
- package/src/index.ts +60 -25
- package/src/provider.tsx +8 -0
- package/src/tests/DemoAuthMethod.test.ts +282 -0
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,25 @@
|
|
1
1
|
# jazz-browser
|
2
2
|
|
3
|
+
## 0.8.46
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- ab4ffbd: Demo Auth: fix the user credentials storage when the username contains non aplhanumeric characters
|
8
|
+
|
9
|
+
## 0.8.45
|
10
|
+
|
11
|
+
### Patch Changes
|
12
|
+
|
13
|
+
- 7701307: Added RNQuickCrypto, an optional crypto provider that provides faster signatures and removed expo-linking dependency
|
14
|
+
- Updated dependencies [6f0bd7f]
|
15
|
+
- Updated dependencies [fca6a0b]
|
16
|
+
- Updated dependencies [fa41f8e]
|
17
|
+
- Updated dependencies [88d7d9a]
|
18
|
+
- Updated dependencies [60e35ea]
|
19
|
+
- cojson@0.8.45
|
20
|
+
- jazz-tools@0.8.45
|
21
|
+
- cojson-transport-ws@0.8.45
|
22
|
+
|
3
23
|
## 0.8.44
|
4
24
|
|
5
25
|
### Patch Changes
|
@@ -1,5 +1,54 @@
|
|
1
1
|
import { KvStoreContext } from "../storage/kv-store-context.js";
|
2
2
|
const localStorageKey = "demo-auth-logged-in-secret";
|
3
|
+
function getUserStorageKey(username) {
|
4
|
+
return `demo-auth-existing-users-${btoa(username)}`;
|
5
|
+
}
|
6
|
+
function getLegacyUserStorageKey(username) {
|
7
|
+
return `demo-auth-existing-users-${username}`;
|
8
|
+
}
|
9
|
+
async function getStorageVersion(kvStore) {
|
10
|
+
try {
|
11
|
+
const version = await kvStore.get("demo-auth-storage-version");
|
12
|
+
return version ? parseInt(version) : 1;
|
13
|
+
}
|
14
|
+
catch (error) {
|
15
|
+
return 1;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
async function setStorageVersion(kvStore, version) {
|
19
|
+
await kvStore.set("demo-auth-storage-version", version.toString());
|
20
|
+
}
|
21
|
+
async function getExistingUsers(kvStore) {
|
22
|
+
const existingUsers = await kvStore.get("demo-auth-existing-users");
|
23
|
+
return existingUsers ? existingUsers.split(",") : [];
|
24
|
+
}
|
25
|
+
async function addUserToExistingUsers(username, kvStore) {
|
26
|
+
const existingUsers = await getExistingUsers(kvStore);
|
27
|
+
if (existingUsers.includes(username)) {
|
28
|
+
return;
|
29
|
+
}
|
30
|
+
await kvStore.set("demo-auth-existing-users", existingUsers.concat(username).join(","));
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Migrates existing users keys to use a base64 encoded username.
|
34
|
+
*
|
35
|
+
* This is done to avoid issues with special characters in the username.
|
36
|
+
*/
|
37
|
+
async function migrateExistingUsersKeys(kvStore) {
|
38
|
+
if ((await getStorageVersion(kvStore)) >= 2) {
|
39
|
+
return;
|
40
|
+
}
|
41
|
+
await setStorageVersion(kvStore, 2);
|
42
|
+
const existingUsers = await getExistingUsers(kvStore);
|
43
|
+
for (const existingUsername of existingUsers) {
|
44
|
+
const legacyKey = getLegacyUserStorageKey(existingUsername);
|
45
|
+
const storageData = await kvStore.get(legacyKey);
|
46
|
+
if (storageData) {
|
47
|
+
await kvStore.set(getUserStorageKey(existingUsername), storageData);
|
48
|
+
await kvStore.delete(legacyKey);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
3
52
|
export class RNDemoAuth {
|
4
53
|
driver;
|
5
54
|
kvStore;
|
@@ -9,18 +58,11 @@ export class RNDemoAuth {
|
|
9
58
|
}
|
10
59
|
static async init(driver, seedAccounts) {
|
11
60
|
const kvStore = KvStoreContext.getInstance().getStorage();
|
61
|
+
await migrateExistingUsersKeys(kvStore);
|
12
62
|
for (const [name, credentials] of Object.entries(seedAccounts || {})) {
|
13
63
|
const storageData = JSON.stringify(credentials);
|
14
|
-
|
15
|
-
|
16
|
-
if (existingUsers) {
|
17
|
-
await kvStore.set("demo-auth-existing-users", existingUsers + "," + name);
|
18
|
-
}
|
19
|
-
else {
|
20
|
-
await kvStore.set("demo-auth-existing-users", name);
|
21
|
-
}
|
22
|
-
}
|
23
|
-
await kvStore.set("demo-auth-existing-users-" + name, storageData);
|
64
|
+
await addUserToExistingUsers(name, kvStore);
|
65
|
+
await kvStore.set(getUserStorageKey(name), storageData);
|
24
66
|
}
|
25
67
|
return new RNDemoAuth(driver, kvStore);
|
26
68
|
}
|
@@ -57,11 +99,7 @@ export class RNDemoAuth {
|
|
57
99
|
accountID: credentials.accountID,
|
58
100
|
accountSecret: credentials.secret,
|
59
101
|
});
|
60
|
-
|
61
|
-
const existingUsers = await this.kvStore.get("demo-auth-existing-users");
|
62
|
-
const existingUsernames = existingUsers
|
63
|
-
? existingUsers.split(",")
|
64
|
-
: [];
|
102
|
+
const existingUsernames = await getExistingUsers(this.kvStore);
|
65
103
|
// Determine if the username already exists and generate a unique username
|
66
104
|
let uniqueUsername = username;
|
67
105
|
let counter = 1;
|
@@ -71,12 +109,8 @@ export class RNDemoAuth {
|
|
71
109
|
}
|
72
110
|
// Save credentials using the unique username
|
73
111
|
await this.kvStore.set(localStorageKey, storageData);
|
74
|
-
await this.kvStore.set(
|
75
|
-
|
76
|
-
const updatedUsers = existingUsers
|
77
|
-
? `${existingUsers},${uniqueUsername}`
|
78
|
-
: uniqueUsername;
|
79
|
-
await this.kvStore.set("demo-auth-existing-users", updatedUsers);
|
112
|
+
await this.kvStore.set(getUserStorageKey(uniqueUsername), storageData);
|
113
|
+
await addUserToExistingUsers(uniqueUsername, this.kvStore);
|
80
114
|
},
|
81
115
|
onSuccess: () => {
|
82
116
|
this.driver.onSignedIn({ logOut });
|
@@ -92,10 +126,11 @@ export class RNDemoAuth {
|
|
92
126
|
});
|
93
127
|
},
|
94
128
|
getExistingUsers: async () => {
|
95
|
-
return
|
129
|
+
return await getExistingUsers(this.kvStore);
|
96
130
|
},
|
97
131
|
logInAs: async (existingUser) => {
|
98
|
-
const storageData = JSON.parse((await this.kvStore.get(
|
132
|
+
const storageData = JSON.parse((await this.kvStore.get(getUserStorageKey(existingUser))) ??
|
133
|
+
"{}");
|
99
134
|
await this.kvStore.set(localStorageKey, JSON.stringify(storageData));
|
100
135
|
resolve({
|
101
136
|
type: "existing",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DemoAuthMethod.js","sourceRoot":"","sources":["../../src/auth/DemoAuthMethod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAqBzE,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAErD,
|
1
|
+
{"version":3,"file":"DemoAuthMethod.js","sourceRoot":"","sources":["../../src/auth/DemoAuthMethod.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { JsonValue, PureJSCrypto } from "cojson/native";
|
2
|
+
import { CojsonInternalTypes } from "cojson/native";
|
3
|
+
import { Ed } from "react-native-quick-crypto";
|
4
|
+
export declare class RNQuickCrypto extends PureJSCrypto {
|
5
|
+
ed: Ed;
|
6
|
+
constructor();
|
7
|
+
static create(): Promise<RNQuickCrypto>;
|
8
|
+
newEd25519SigningKey(): Uint8Array;
|
9
|
+
getSignerID(secret: CojsonInternalTypes.SignerSecret): CojsonInternalTypes.SignerID;
|
10
|
+
sign(secret: CojsonInternalTypes.SignerSecret, message: JsonValue): CojsonInternalTypes.Signature;
|
11
|
+
verify(signature: CojsonInternalTypes.Signature, message: JsonValue, id: CojsonInternalTypes.SignerID): boolean;
|
12
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { base58 } from "@scure/base";
|
2
|
+
import { PureJSCrypto } from "cojson/native";
|
3
|
+
import { cojsonInternals } from "cojson/native";
|
4
|
+
import { Ed } from "react-native-quick-crypto";
|
5
|
+
const { stableStringify } = cojsonInternals;
|
6
|
+
const textEncoder = new TextEncoder();
|
7
|
+
export class RNQuickCrypto extends PureJSCrypto {
|
8
|
+
ed;
|
9
|
+
constructor() {
|
10
|
+
super();
|
11
|
+
this.ed = new Ed("ed25519", {});
|
12
|
+
}
|
13
|
+
static async create() {
|
14
|
+
return new RNQuickCrypto();
|
15
|
+
}
|
16
|
+
newEd25519SigningKey() {
|
17
|
+
this.ed.generateKeyPairSync();
|
18
|
+
return new Uint8Array(this.ed.getPrivateKey());
|
19
|
+
}
|
20
|
+
getSignerID(secret) {
|
21
|
+
return `signer_z${base58.encode(base58.decode(secret.substring("signerSecret_z".length)))}`;
|
22
|
+
}
|
23
|
+
sign(secret, message) {
|
24
|
+
const signature = new Uint8Array(this.ed.signSync(textEncoder.encode(stableStringify(message)), base58.decode(secret.substring("signerSecret_z".length))));
|
25
|
+
return `signature_z${base58.encode(signature)}`;
|
26
|
+
}
|
27
|
+
verify(signature, message, id) {
|
28
|
+
return this.ed.verifySync(base58.decode(signature.substring("signature_z".length)), textEncoder.encode(stableStringify(message)), base58.decode(id.substring("signer_z".length)));
|
29
|
+
}
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=RNQuickCrypto.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"RNQuickCrypto.js","sourceRoot":"","sources":["../../src/crypto/RNQuickCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAa,YAAY,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAuB,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,MAAM,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC;AAE5C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC7C,EAAE,CAAK;IAEP;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;QAC9B,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,WAAW,CACT,MAAwC;QAExC,OAAO,WAAW,MAAM,CAAC,MAAM,CAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CACzD,EAAE,CAAC;IACN,CAAC;IAED,IAAI,CACF,MAAwC,EACxC,OAAkB;QAElB,MAAM,SAAS,GAAG,IAAI,UAAU,CAC9B,IAAI,CAAC,EAAE,CAAC,QAAQ,CACd,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CACzD,CACF,CAAC;QACF,OAAO,cAAc,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,CACJ,SAAwC,EACxC,OAAkB,EAClB,EAAgC;QAEhC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CACvB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EACxD,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAC/C,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RNQuickCrypto } from "./RNQuickCrypto.js";
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
import { Account, AgentID, AnonymousJazzAgent, AuthMethod, CoValue, CoValueClass, CryptoProvider, ID, InviteSecret, SessionID } from "jazz-tools";
|
2
2
|
import { RawAccountID } from "cojson";
|
3
3
|
export { RNDemoAuth } from "./auth/DemoAuthMethod.js";
|
4
|
+
import { PureJSCrypto } from "cojson/native";
|
5
|
+
import type { RNQuickCrypto } from "./crypto/RNQuickCrypto.js";
|
4
6
|
/** @category Context Creation */
|
5
7
|
export type ReactNativeContext<Acc extends Account> = {
|
6
8
|
me: Acc;
|
@@ -22,7 +24,7 @@ export type BaseReactNativeContextOptions = {
|
|
22
24
|
peer: `wss://${string}` | `ws://${string}`;
|
23
25
|
reconnectionTimeout?: number;
|
24
26
|
storage?: "indexedDB" | "singleTabOPFS";
|
25
|
-
|
27
|
+
CryptoProvider?: typeof PureJSCrypto | typeof RNQuickCrypto;
|
26
28
|
};
|
27
29
|
/** @category Context Creation */
|
28
30
|
export declare function createJazzRNContext<Acc extends Account>(options: ReactNativeContextOptions<Acc>): Promise<ReactNativeContext<Acc>>;
|
package/dist/index.js
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
2
2
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
3
3
|
import { cojsonInternals, createJazzContext, } from "jazz-tools";
|
4
|
-
import * as Linking from "expo-linking";
|
5
|
-
import { PureJSCrypto } from "jazz-tools/native";
|
6
4
|
export { RNDemoAuth } from "./auth/DemoAuthMethod.js";
|
5
|
+
import { PureJSCrypto } from "cojson/native";
|
7
6
|
import { createWebSocketPeerWithReconnection } from "./createWebSocketPeerWithReconnection.js";
|
8
7
|
import { KvStoreContext } from "./storage/kv-store-context.js";
|
9
8
|
export async function createJazzRNContext(options) {
|
10
9
|
const websocketPeer = createWebSocketPeerWithReconnection(options.peer, options.reconnectionTimeout, (peer) => {
|
11
10
|
node.syncManager.addPeer(peer);
|
12
11
|
});
|
12
|
+
const CryptoProvider = options.CryptoProvider || PureJSCrypto;
|
13
13
|
const context = "auth" in options
|
14
14
|
? await createJazzContext({
|
15
15
|
AccountSchema: options.AccountSchema,
|
16
16
|
auth: options.auth,
|
17
|
-
crypto: await
|
17
|
+
crypto: await CryptoProvider.create(),
|
18
18
|
peersToLoadFrom: [websocketPeer.peer],
|
19
19
|
sessionProvider: provideLockSession,
|
20
20
|
})
|
21
21
|
: await createJazzContext({
|
22
|
-
crypto: await
|
22
|
+
crypto: await CryptoProvider.create(),
|
23
23
|
peersToLoadFrom: [websocketPeer.peer],
|
24
24
|
});
|
25
25
|
const node = "account" in context ? context.account._raw.core.node : context.agent.node;
|
@@ -71,29 +71,60 @@ export function createInviteLink(value, role, { baseURL, valueHint } = {}) {
|
|
71
71
|
return `${baseURL}/invite/${valueHint ? valueHint + "/" : ""}${value.id}/${inviteSecret}`;
|
72
72
|
}
|
73
73
|
/** @category Invite Links */
|
74
|
+
// TODO: copied from jazz-browser, should be shared
|
74
75
|
export function parseInviteLink(inviteURL) {
|
75
|
-
const url =
|
76
|
-
const parts = url.
|
77
|
-
if (!parts || parts[0] !== "invite") {
|
78
|
-
return undefined;
|
79
|
-
}
|
76
|
+
const url = new URL(inviteURL);
|
77
|
+
const parts = url.hash.split("/");
|
80
78
|
let valueHint;
|
81
79
|
let valueID;
|
82
80
|
let inviteSecret;
|
83
|
-
if (parts
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
81
|
+
if (parts[0] === "#" && parts[1] === "invite") {
|
82
|
+
if (parts.length === 5) {
|
83
|
+
valueHint = parts[2];
|
84
|
+
valueID = parts[3];
|
85
|
+
inviteSecret = parts[4];
|
86
|
+
}
|
87
|
+
else if (parts.length === 4) {
|
88
|
+
valueID = parts[2];
|
89
|
+
inviteSecret = parts[3];
|
90
|
+
}
|
91
|
+
if (!valueID || !inviteSecret) {
|
92
|
+
return undefined;
|
93
|
+
}
|
94
|
+
return { valueID, inviteSecret, valueHint };
|
94
95
|
}
|
95
|
-
return { valueID, inviteSecret, valueHint };
|
96
96
|
}
|
97
|
+
// getting out of the `expo` business 🤞
|
98
|
+
// export function parseInviteLink<C extends CoValue>(
|
99
|
+
// inviteURL: string,
|
100
|
+
// ):
|
101
|
+
// | {
|
102
|
+
// valueID: ID<C>;
|
103
|
+
// valueHint?: string;
|
104
|
+
// inviteSecret: InviteSecret;
|
105
|
+
// }
|
106
|
+
// | undefined {
|
107
|
+
// const url = Linking.parse(inviteURL);
|
108
|
+
// const parts = url.path?.split("/");
|
109
|
+
// if (!parts || parts[0] !== "invite") {
|
110
|
+
// return undefined;
|
111
|
+
// }
|
112
|
+
// let valueHint: string | undefined;
|
113
|
+
// let valueID: ID<C> | undefined;
|
114
|
+
// let inviteSecret: InviteSecret | undefined;
|
115
|
+
// if (parts.length === 4) {
|
116
|
+
// valueHint = parts[1];
|
117
|
+
// valueID = parts[2] as ID<C>;
|
118
|
+
// inviteSecret = parts[3] as InviteSecret;
|
119
|
+
// } else if (parts.length === 3) {
|
120
|
+
// valueID = parts[1] as ID<C>;
|
121
|
+
// inviteSecret = parts[2] as InviteSecret;
|
122
|
+
// }
|
123
|
+
// if (!valueID || !inviteSecret) {
|
124
|
+
// return undefined;
|
125
|
+
// }
|
126
|
+
// return { valueID, inviteSecret, valueHint };
|
127
|
+
// }
|
97
128
|
/////////
|
98
129
|
export * from "./provider.js";
|
99
130
|
export * from "./auth/auth.js";
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,sDAAsD;AACtD,OAAO,EAWL,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.d.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import { Account, AccountClass, AnonymousJazzAgent, AuthMethod, CoValue, CoValueClass, DeeplyLoaded, DepthsIn, ID } from "jazz-tools";
|
3
|
-
import { KvStore } from "./index.js";
|
4
|
-
import { ExpoSecureStoreAdapter } from "./storage/expo-secure-store-adapter.js";
|
3
|
+
import { BaseReactNativeContextOptions, KvStore } from "./index.js";
|
5
4
|
/** @category Context & Hooks */
|
6
|
-
export declare function createJazzRNApp<Acc extends Account>({ kvStore, AccountSchema, }?: {
|
7
|
-
kvStore?:
|
8
|
-
AccountSchema?: AccountClass<Acc
|
5
|
+
export declare function createJazzRNApp<Acc extends Account>({ kvStore, AccountSchema, CryptoProvider, }?: {
|
6
|
+
kvStore?: KvStore;
|
7
|
+
AccountSchema?: AccountClass<Acc>;
|
8
|
+
CryptoProvider?: BaseReactNativeContextOptions["CryptoProvider"];
|
9
9
|
}): JazzReactApp<Acc>;
|
10
10
|
/** @category Context & Hooks */
|
11
11
|
export interface JazzReactApp<Acc extends Account> {
|
package/dist/provider.js
CHANGED
@@ -4,7 +4,7 @@ import { Linking } from "react-native";
|
|
4
4
|
import { KvStoreContext, createJazzRNContext, parseInviteLink, } from "./index.js";
|
5
5
|
import { ExpoSecureStoreAdapter } from "./storage/expo-secure-store-adapter.js";
|
6
6
|
/** @category Context & Hooks */
|
7
|
-
export function createJazzRNApp({ kvStore = new ExpoSecureStoreAdapter(), AccountSchema = Account, } = {}) {
|
7
|
+
export function createJazzRNApp({ kvStore = new ExpoSecureStoreAdapter(), AccountSchema = Account, CryptoProvider, } = {}) {
|
8
8
|
const JazzContext = React.createContext(undefined);
|
9
9
|
if (!kvStore) {
|
10
10
|
throw new Error("kvStore is required");
|
@@ -18,12 +18,14 @@ export function createJazzRNApp({ kvStore = new ExpoSecureStoreAdapter(), Accoun
|
|
18
18
|
? {
|
19
19
|
peer,
|
20
20
|
storage,
|
21
|
+
CryptoProvider,
|
21
22
|
}
|
22
23
|
: {
|
23
24
|
AccountSchema,
|
24
25
|
auth: auth,
|
25
26
|
peer,
|
26
27
|
storage,
|
28
|
+
CryptoProvider,
|
27
29
|
}).then((context) => {
|
28
30
|
setCtx({
|
29
31
|
...context,
|
package/dist/provider.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EACL,OAAO,EASP,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|