jazz-react-native 0.12.1 → 0.13.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +31 -0
- package/README.md +3 -229
- package/dist/index.d.ts +3 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +2 -13
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +8 -48
- package/dist/provider.js.map +1 -1
- package/dist/storage/mmkv-store-adapter.d.ts +8 -0
- package/dist/storage/mmkv-store-adapter.d.ts.map +1 -0
- package/dist/storage/mmkv-store-adapter.js +19 -0
- package/dist/storage/mmkv-store-adapter.js.map +1 -0
- package/dist/storage/op-sqlite-adapter.d.ts +18 -0
- package/dist/storage/op-sqlite-adapter.d.ts.map +1 -0
- package/dist/storage/op-sqlite-adapter.js +127 -0
- package/dist/storage/op-sqlite-adapter.js.map +1 -0
- package/dist/testing.d.ts +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/package.json +10 -18
- package/src/index.ts +4 -7
- package/src/provider.tsx +12 -91
- package/src/storage/mmkv-store-adapter.ts +24 -0
- package/src/storage/op-sqlite-adapter.ts +168 -0
- package/src/testing.ts +1 -0
- package/dist/ReactNativeContextManager.d.ts +0 -30
- package/dist/ReactNativeContextManager.d.ts.map +0 -1
- package/dist/ReactNativeContextManager.js +0 -39
- package/dist/ReactNativeContextManager.js.map +0 -1
- package/dist/auth/DemoAuthUI.d.ts +0 -8
- package/dist/auth/DemoAuthUI.d.ts.map +0 -1
- package/dist/auth/DemoAuthUI.js +0 -156
- package/dist/auth/DemoAuthUI.js.map +0 -1
- package/dist/auth/auth.d.ts +0 -3
- package/dist/auth/auth.d.ts.map +0 -1
- package/dist/auth/auth.js +0 -12
- package/dist/auth/auth.js.map +0 -1
- package/dist/crypto/RNQuickCrypto.d.ts +0 -14
- package/dist/crypto/RNQuickCrypto.d.ts.map +0 -1
- package/dist/crypto/RNQuickCrypto.js +0 -31
- package/dist/crypto/RNQuickCrypto.js.map +0 -1
- package/dist/crypto/index.d.ts +0 -2
- package/dist/crypto/index.d.ts.map +0 -1
- package/dist/crypto/index.js +0 -2
- package/dist/crypto/index.js.map +0 -1
- package/dist/hooks.d.ts +0 -14
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.js +0 -35
- package/dist/hooks.js.map +0 -1
- package/dist/media.d.ts +0 -24
- package/dist/media.d.ts.map +0 -1
- package/dist/media.js +0 -61
- package/dist/media.js.map +0 -1
- package/dist/platform.d.ts +0 -46
- package/dist/platform.d.ts.map +0 -1
- package/dist/platform.js +0 -155
- package/dist/platform.js.map +0 -1
- package/dist/storage/expo-secure-store-adapter.d.ts +0 -8
- package/dist/storage/expo-secure-store-adapter.d.ts.map +0 -1
- package/dist/storage/expo-secure-store-adapter.js +0 -25
- package/dist/storage/expo-secure-store-adapter.js.map +0 -1
- package/dist/storage/kv-store-context.d.ts +0 -17
- package/dist/storage/kv-store-context.d.ts.map +0 -1
- package/dist/storage/kv-store-context.js +0 -27
- package/dist/storage/kv-store-context.js.map +0 -1
- package/src/ReactNativeContextManager.ts +0 -70
- package/src/auth/DemoAuthUI.tsx +0 -202
- package/src/auth/auth.ts +0 -14
- package/src/crypto/RNQuickCrypto.ts +0 -59
- package/src/crypto/index.ts +0 -1
- package/src/hooks.tsx +0 -72
- package/src/media.tsx +0 -92
- package/src/platform.ts +0 -238
- package/src/storage/expo-secure-store-adapter.ts +0 -29
- package/src/storage/kv-store-context.ts +0 -39
- package/src/testing.tsx +0 -1
@@ -1,14 +0,0 @@
|
|
1
|
-
import { JsonValue } from "cojson";
|
2
|
-
import { CojsonInternalTypes } from "cojson";
|
3
|
-
import { PureJSCrypto } from "cojson/dist/crypto/PureJSCrypto";
|
4
|
-
import { Ed } from "react-native-quick-crypto";
|
5
|
-
export declare class RNQuickCrypto extends PureJSCrypto {
|
6
|
-
ed: Ed;
|
7
|
-
constructor();
|
8
|
-
static create(): Promise<RNQuickCrypto>;
|
9
|
-
newEd25519SigningKey(): Uint8Array;
|
10
|
-
getSignerID(secret: CojsonInternalTypes.SignerSecret): CojsonInternalTypes.SignerID;
|
11
|
-
sign(secret: CojsonInternalTypes.SignerSecret, message: JsonValue): CojsonInternalTypes.Signature;
|
12
|
-
verify(signature: CojsonInternalTypes.Signature, message: JsonValue, id: CojsonInternalTypes.SignerID): boolean;
|
13
|
-
}
|
14
|
-
//# sourceMappingURL=RNQuickCrypto.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"RNQuickCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/RNQuickCrypto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAmB,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAK/C,qBAAa,aAAc,SAAQ,YAAY;IAC7C,EAAE,EAAE,EAAE,CAAC;;WAOM,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IAI7C,oBAAoB,IAAI,UAAU;IAKlC,WAAW,CACT,MAAM,EAAE,mBAAmB,CAAC,YAAY,GACvC,mBAAmB,CAAC,QAAQ;IAM/B,IAAI,CACF,MAAM,EAAE,mBAAmB,CAAC,YAAY,EACxC,OAAO,EAAE,SAAS,GACjB,mBAAmB,CAAC,SAAS;IAUhC,MAAM,CACJ,SAAS,EAAE,mBAAmB,CAAC,SAAS,EACxC,OAAO,EAAE,SAAS,EAClB,EAAE,EAAE,mBAAmB,CAAC,QAAQ,GAC/B,OAAO;CAOX"}
|
@@ -1,31 +0,0 @@
|
|
1
|
-
import { base58 } from "@scure/base";
|
2
|
-
import { cojsonInternals } from "cojson";
|
3
|
-
import { PureJSCrypto } from "cojson/dist/crypto/PureJSCrypto"; // Importing from dist to not rely on the exports field
|
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
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"RNQuickCrypto.js","sourceRoot":"","sources":["../../src/crypto/RNQuickCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAuB,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC,CAAC,uDAAuD;AACvH,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"}
|
package/dist/crypto/index.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/crypto/index.js
DELETED
package/dist/crypto/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/hooks.d.ts
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
import { CoValue, CoValueClass, ID } from "jazz-tools";
|
2
|
-
import { RegisteredAccount } from "./provider.js";
|
3
|
-
export { useCoState, experimental_useInboxSender, useDemoAuth, usePassphraseAuth, useJazzContext, useAuthSecretStorage, useIsAuthenticated, useAccount, useAccountOrGuest, } from "jazz-react-core";
|
4
|
-
declare module "jazz-react-core" {
|
5
|
-
interface Register {
|
6
|
-
Account: RegisteredAccount;
|
7
|
-
}
|
8
|
-
}
|
9
|
-
export declare function useAcceptInvite<V extends CoValue>({ invitedObjectSchema, onAccept, forValueHint, }: {
|
10
|
-
invitedObjectSchema: CoValueClass<V>;
|
11
|
-
onAccept: (projectID: ID<V>) => void;
|
12
|
-
forValueHint?: string;
|
13
|
-
}): void;
|
14
|
-
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/hooks.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAmB,MAAM,YAAY,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAiB,QAAQ;QACvB,OAAO,EAAE,iBAAiB,CAAC;KAC5B;CACF;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,EACjD,mBAAmB,EACnB,QAAQ,EACR,YAAY,GACb,EAAE;IACD,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAsCP"}
|
package/dist/hooks.js
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
import { useEffect } from "react";
|
2
|
-
import { useJazzContext } from "jazz-react-core";
|
3
|
-
import { parseInviteLink } from "jazz-tools";
|
4
|
-
import { Linking } from "react-native";
|
5
|
-
export { useCoState, experimental_useInboxSender, useDemoAuth, usePassphraseAuth, useJazzContext, useAuthSecretStorage, useIsAuthenticated, useAccount, useAccountOrGuest, } from "jazz-react-core";
|
6
|
-
export function useAcceptInvite({ invitedObjectSchema, onAccept, forValueHint, }) {
|
7
|
-
const context = useJazzContext();
|
8
|
-
if (!("me" in context)) {
|
9
|
-
throw new Error("useAcceptInvite can't be used in a JazzProvider with auth === 'guest'.");
|
10
|
-
}
|
11
|
-
useEffect(() => {
|
12
|
-
const handleDeepLink = ({ url }) => {
|
13
|
-
const result = parseInviteLink(url);
|
14
|
-
if (result && result.valueHint === forValueHint) {
|
15
|
-
context.me
|
16
|
-
.acceptInvite(result.valueID, result.inviteSecret, invitedObjectSchema)
|
17
|
-
.then(() => {
|
18
|
-
onAccept(result.valueID);
|
19
|
-
})
|
20
|
-
.catch((e) => {
|
21
|
-
console.error("Failed to accept invite", e);
|
22
|
-
});
|
23
|
-
}
|
24
|
-
};
|
25
|
-
const linkingListener = Linking.addEventListener("url", handleDeepLink);
|
26
|
-
void Linking.getInitialURL().then((url) => {
|
27
|
-
if (url)
|
28
|
-
handleDeepLink({ url });
|
29
|
-
});
|
30
|
-
return () => {
|
31
|
-
linkingListener.remove();
|
32
|
-
};
|
33
|
-
}, [context, onAccept, invitedObjectSchema, forValueHint]);
|
34
|
-
}
|
35
|
-
//# sourceMappingURL=hooks.js.map
|
package/dist/hooks.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAA6B,eAAe,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAQzB,MAAM,UAAU,eAAe,CAAoB,EACjD,mBAAmB,EACnB,QAAQ,EACR,YAAY,GAKb;IACC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,eAAe,CAAI,GAAG,CAAC,CAAC;YACvC,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;gBAChD,OAAO,CAAC,EAAE;qBACP,YAAY,CACX,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,YAAY,EACnB,mBAAmB,CACpB;qBACA,IAAI,CAAC,GAAG,EAAE;oBACT,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAExE,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,IAAI,GAAG;gBAAE,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
package/dist/media.d.ts
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
import { ImageDefinition } from "jazz-tools";
|
2
|
-
import React from "react";
|
3
|
-
/** @category Media */
|
4
|
-
export declare function useProgressiveImg({ image, maxWidth, targetWidth, }: {
|
5
|
-
image: ImageDefinition | null | undefined;
|
6
|
-
maxWidth?: number;
|
7
|
-
targetWidth?: number;
|
8
|
-
}): {
|
9
|
-
src: string | undefined;
|
10
|
-
res: "placeholder" | `${number}x${number}` | undefined;
|
11
|
-
originalSize: import("jazz-tools").co<[number, number]> | undefined;
|
12
|
-
};
|
13
|
-
/** @category Media */
|
14
|
-
export declare function ProgressiveImg({ children, image, maxWidth, targetWidth, }: {
|
15
|
-
children: (result: {
|
16
|
-
src: string | undefined;
|
17
|
-
res: `${number}x${number}` | "placeholder" | undefined;
|
18
|
-
originalSize: readonly [number, number] | undefined;
|
19
|
-
}) => React.ReactNode;
|
20
|
-
image: ImageDefinition | null | undefined;
|
21
|
-
maxWidth?: number;
|
22
|
-
targetWidth?: number;
|
23
|
-
}): React.ReactNode;
|
24
|
-
//# sourceMappingURL=media.d.ts.map
|
package/dist/media.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,sBAAsB;AACtB,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;EA2DA;AAED,sBAAsB;AACtB,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE;QACjB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,GAAG,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,aAAa,GAAG,SAAS,CAAC;QACvD,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KACrD,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,mBAGA"}
|
package/dist/media.js
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
import { useEffect, useState } from "react";
|
2
|
-
/** @category Media */
|
3
|
-
export function useProgressiveImg({ image, maxWidth, targetWidth, }) {
|
4
|
-
const [current, setCurrent] = useState(undefined);
|
5
|
-
useEffect(() => {
|
6
|
-
let lastHighestRes;
|
7
|
-
if (!image)
|
8
|
-
return;
|
9
|
-
const unsub = image.subscribe({}, (update) => {
|
10
|
-
const highestRes = update?.highestResAvailable({ maxWidth, targetWidth });
|
11
|
-
if (highestRes && highestRes.res !== lastHighestRes) {
|
12
|
-
lastHighestRes = highestRes.res;
|
13
|
-
// use the base64 data directly
|
14
|
-
const chunks = highestRes.stream.getChunks();
|
15
|
-
if (chunks?.chunks && chunks.chunks.length > 0) {
|
16
|
-
// convert chunks to base64
|
17
|
-
const totalLength = chunks.chunks.reduce((acc, chunk) => acc + chunk.length, 0);
|
18
|
-
const combinedArray = new Uint8Array(totalLength);
|
19
|
-
let offset = 0;
|
20
|
-
chunks.chunks.forEach((chunk) => {
|
21
|
-
combinedArray.set(chunk, offset);
|
22
|
-
offset += chunk.length;
|
23
|
-
});
|
24
|
-
// Create data URL
|
25
|
-
const base64 = Buffer.from(combinedArray).toString("base64");
|
26
|
-
const dataUrl = `data:${chunks.mimeType};base64,${base64}`;
|
27
|
-
setCurrent({
|
28
|
-
src: dataUrl,
|
29
|
-
res: highestRes.res,
|
30
|
-
});
|
31
|
-
}
|
32
|
-
else {
|
33
|
-
// Fallback to placeholder if chunks aren't available
|
34
|
-
console.warn("No chunks available for image", image.id);
|
35
|
-
setCurrent({
|
36
|
-
src: update?.placeholderDataURL,
|
37
|
-
res: "placeholder",
|
38
|
-
});
|
39
|
-
}
|
40
|
-
}
|
41
|
-
else if (!highestRes) {
|
42
|
-
setCurrent({
|
43
|
-
src: update?.placeholderDataURL,
|
44
|
-
res: "placeholder",
|
45
|
-
});
|
46
|
-
}
|
47
|
-
});
|
48
|
-
return unsub;
|
49
|
-
}, [image?.id, maxWidth]);
|
50
|
-
return {
|
51
|
-
src: current?.src,
|
52
|
-
res: current?.res,
|
53
|
-
originalSize: image?.originalSize,
|
54
|
-
};
|
55
|
-
}
|
56
|
-
/** @category Media */
|
57
|
-
export function ProgressiveImg({ children, image, maxWidth, targetWidth, }) {
|
58
|
-
const result = useProgressiveImg({ image, maxWidth, targetWidth });
|
59
|
-
return result && children(result);
|
60
|
-
}
|
61
|
-
//# sourceMappingURL=media.js.map
|
package/dist/media.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.tsx"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
import { LocalNode, RawAccountID } from "cojson";
|
2
|
-
import { PureJSCrypto } from "cojson/dist/crypto/PureJSCrypto";
|
3
|
-
import { Account, AgentID, AuthCredentials, AuthSecretStorage, CoValue, CoValueClass, CryptoProvider, ID, NewAccountProps, SessionID, SyncConfig } from "jazz-tools";
|
4
|
-
import type { RNQuickCrypto } from "./crypto/RNQuickCrypto.js";
|
5
|
-
import { ExpoSecureStoreAdapter } from "./storage/expo-secure-store-adapter.js";
|
6
|
-
export type BaseReactNativeContextOptions = {
|
7
|
-
sync: SyncConfig;
|
8
|
-
reconnectionTimeout?: number;
|
9
|
-
storage?: "sqlite" | "disabled";
|
10
|
-
CryptoProvider?: typeof PureJSCrypto | typeof RNQuickCrypto;
|
11
|
-
authSecretStorage: AuthSecretStorage;
|
12
|
-
};
|
13
|
-
export declare function createJazzReactNativeGuestContext(options: BaseReactNativeContextOptions): Promise<{
|
14
|
-
guest: import("jazz-tools").AnonymousJazzAgent;
|
15
|
-
node: LocalNode;
|
16
|
-
done: () => void;
|
17
|
-
logOut: () => Promise<void>;
|
18
|
-
}>;
|
19
|
-
export type ReactNativeContextOptions<Acc extends Account> = {
|
20
|
-
credentials?: AuthCredentials;
|
21
|
-
AccountSchema?: CoValueClass<Acc> & {
|
22
|
-
fromNode: (typeof Account)["fromNode"];
|
23
|
-
};
|
24
|
-
newAccountProps?: NewAccountProps;
|
25
|
-
defaultProfileName?: string;
|
26
|
-
} & BaseReactNativeContextOptions;
|
27
|
-
export declare function createJazzReactNativeContext<Acc extends Account>(options: ReactNativeContextOptions<Acc>): Promise<{
|
28
|
-
me: Acc;
|
29
|
-
node: LocalNode;
|
30
|
-
authSecretStorage: AuthSecretStorage;
|
31
|
-
done: () => void;
|
32
|
-
logOut: () => Promise<void>;
|
33
|
-
}>;
|
34
|
-
/** @category Auth Providers */
|
35
|
-
export type SessionProvider = (accountID: ID<Account> | AgentID) => Promise<SessionID>;
|
36
|
-
export declare function provideLockSession(accountID: ID<Account> | AgentID, crypto: CryptoProvider): Promise<{
|
37
|
-
sessionID: `sealer_z${string}/signer_z${string}_session_z${string}` | `${RawAccountID}_session_z${string}`;
|
38
|
-
sessionDone: () => void;
|
39
|
-
}>;
|
40
|
-
/** @category Invite Links */
|
41
|
-
export declare function createInviteLink<C extends CoValue>(value: C, role: "reader" | "writer" | "admin", { baseURL, valueHint }?: {
|
42
|
-
baseURL?: string;
|
43
|
-
valueHint?: string;
|
44
|
-
}): string;
|
45
|
-
export declare function setupKvStore(kvStore?: ExpoSecureStoreAdapter): ExpoSecureStoreAdapter;
|
46
|
-
//# sourceMappingURL=platform.d.ts.map
|
package/dist/platform.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAQ,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EACL,OAAO,EACP,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,EAAE,EACF,eAAe,EACf,SAAS,EACT,UAAU,EAIX,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAGhF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,YAAY,GAAG,OAAO,aAAa,CAAC;IAC5D,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CAAC;AAyEF,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,6BAA6B;;;;;GA0BvC;AAED,MAAM,MAAM,yBAAyB,CAAC,GAAG,SAAS,OAAO,IAAI;IAC3D,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG;QAClC,QAAQ,EAAE,CAAC,OAAO,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;KACxC,CAAC;IACF,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,6BAA6B,CAAC;AAElC,wBAAsB,4BAA4B,CAAC,GAAG,SAAS,OAAO,EACpE,OAAO,EAAE,yBAAyB,CAAC,GAAG,CAAC;;;;;;GAsDxC;AAED,+BAA+B;AAC/B,MAAM,MAAM,eAAe,GAAG,CAC5B,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,OAAO,KAC7B,OAAO,CAAC,SAAS,CAAC,CAAC;AAExB,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,OAAO,EAChC,MAAM,EAAE,cAAc;;;GAevB;AAED,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,EACnC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACpE,MAAM,CAER;AAED,wBAAgB,YAAY,CAAC,OAAO,yBAA+B,0BAIlE"}
|
package/dist/platform.js
DELETED
@@ -1,155 +0,0 @@
|
|
1
|
-
import NetInfo from "@react-native-community/netinfo";
|
2
|
-
import { SQLiteStorage } from "cojson-storage-rn-sqlite";
|
3
|
-
import { PureJSCrypto } from "cojson/dist/crypto/PureJSCrypto"; // Importing from dist to not rely on the exports field
|
4
|
-
import { createInviteLink as baseCreateInviteLink, createAnonymousJazzContext, createJazzContext, } from "jazz-tools";
|
5
|
-
import { WebSocketPeerWithReconnection } from "cojson-transport-ws";
|
6
|
-
import { ExpoSecureStoreAdapter } from "./storage/expo-secure-store-adapter.js";
|
7
|
-
import { KvStoreContext } from "./storage/kv-store-context.js";
|
8
|
-
class ReactNativeWebSocketPeerWithReconnection extends WebSocketPeerWithReconnection {
|
9
|
-
onNetworkChange(callback) {
|
10
|
-
return NetInfo.addEventListener((state) => callback(state.isConnected ?? false));
|
11
|
-
}
|
12
|
-
}
|
13
|
-
async function setupPeers(options) {
|
14
|
-
const CryptoProvider = options.CryptoProvider || PureJSCrypto;
|
15
|
-
const crypto = await CryptoProvider.create();
|
16
|
-
let node = undefined;
|
17
|
-
const peersToLoadFrom = [];
|
18
|
-
if (options.storage === "sqlite") {
|
19
|
-
const storage = await SQLiteStorage.asPeer({
|
20
|
-
filename: "jazz-storage",
|
21
|
-
trace: false,
|
22
|
-
});
|
23
|
-
peersToLoadFrom.push(storage);
|
24
|
-
}
|
25
|
-
if (options.sync.when === "never") {
|
26
|
-
return {
|
27
|
-
toggleNetwork: () => { },
|
28
|
-
peersToLoadFrom,
|
29
|
-
setNode: () => { },
|
30
|
-
crypto,
|
31
|
-
};
|
32
|
-
}
|
33
|
-
const wsPeer = new ReactNativeWebSocketPeerWithReconnection({
|
34
|
-
peer: options.sync.peer,
|
35
|
-
reconnectionTimeout: options.reconnectionTimeout,
|
36
|
-
addPeer: (peer) => {
|
37
|
-
if (node) {
|
38
|
-
node.syncManager.addPeer(peer);
|
39
|
-
}
|
40
|
-
else {
|
41
|
-
peersToLoadFrom.push(peer);
|
42
|
-
}
|
43
|
-
},
|
44
|
-
removePeer: (peer) => {
|
45
|
-
peersToLoadFrom.splice(peersToLoadFrom.indexOf(peer), 1);
|
46
|
-
},
|
47
|
-
});
|
48
|
-
function toggleNetwork(enabled) {
|
49
|
-
if (enabled) {
|
50
|
-
wsPeer.enable();
|
51
|
-
}
|
52
|
-
else {
|
53
|
-
wsPeer.disable();
|
54
|
-
}
|
55
|
-
}
|
56
|
-
function setNode(value) {
|
57
|
-
node = value;
|
58
|
-
}
|
59
|
-
if (options.sync.when === "always" || !options.sync.when) {
|
60
|
-
toggleNetwork(true);
|
61
|
-
}
|
62
|
-
return {
|
63
|
-
toggleNetwork,
|
64
|
-
peersToLoadFrom,
|
65
|
-
setNode,
|
66
|
-
crypto,
|
67
|
-
};
|
68
|
-
}
|
69
|
-
export async function createJazzReactNativeGuestContext(options) {
|
70
|
-
const { toggleNetwork, peersToLoadFrom, setNode, crypto } = await setupPeers(options);
|
71
|
-
const context = await createAnonymousJazzContext({
|
72
|
-
crypto,
|
73
|
-
peersToLoadFrom,
|
74
|
-
});
|
75
|
-
setNode(context.agent.node);
|
76
|
-
options.authSecretStorage.emitUpdate(null);
|
77
|
-
return {
|
78
|
-
guest: context.agent,
|
79
|
-
node: context.agent.node,
|
80
|
-
done: () => {
|
81
|
-
// TODO: Sync all the covalues before closing the connection & context
|
82
|
-
toggleNetwork(false);
|
83
|
-
context.done();
|
84
|
-
},
|
85
|
-
logOut: () => {
|
86
|
-
return context.logOut();
|
87
|
-
},
|
88
|
-
};
|
89
|
-
}
|
90
|
-
export async function createJazzReactNativeContext(options) {
|
91
|
-
const { toggleNetwork, peersToLoadFrom, setNode, crypto } = await setupPeers(options);
|
92
|
-
let unsubscribeAuthUpdate = () => { };
|
93
|
-
if (options.sync.when === "signedUp") {
|
94
|
-
const authSecretStorage = options.authSecretStorage;
|
95
|
-
const credentials = options.credentials ?? (await authSecretStorage.get());
|
96
|
-
// To update the internal state with the current credentials
|
97
|
-
authSecretStorage.emitUpdate(credentials);
|
98
|
-
function handleAuthUpdate(isAuthenticated) {
|
99
|
-
if (isAuthenticated) {
|
100
|
-
toggleNetwork(true);
|
101
|
-
}
|
102
|
-
else {
|
103
|
-
toggleNetwork(false);
|
104
|
-
}
|
105
|
-
}
|
106
|
-
unsubscribeAuthUpdate = authSecretStorage.onUpdate(handleAuthUpdate);
|
107
|
-
handleAuthUpdate(authSecretStorage.isAuthenticated);
|
108
|
-
}
|
109
|
-
const context = await createJazzContext({
|
110
|
-
credentials: options.credentials,
|
111
|
-
newAccountProps: options.newAccountProps,
|
112
|
-
peersToLoadFrom,
|
113
|
-
crypto,
|
114
|
-
defaultProfileName: options.defaultProfileName,
|
115
|
-
AccountSchema: options.AccountSchema,
|
116
|
-
sessionProvider: provideLockSession,
|
117
|
-
authSecretStorage: options.authSecretStorage,
|
118
|
-
});
|
119
|
-
setNode(context.node);
|
120
|
-
return {
|
121
|
-
me: context.account,
|
122
|
-
node: context.node,
|
123
|
-
authSecretStorage: context.authSecretStorage,
|
124
|
-
done: () => {
|
125
|
-
// TODO: Sync all the covalues before closing the connection & context
|
126
|
-
toggleNetwork(false);
|
127
|
-
unsubscribeAuthUpdate();
|
128
|
-
context.done();
|
129
|
-
},
|
130
|
-
logOut: () => {
|
131
|
-
unsubscribeAuthUpdate();
|
132
|
-
return context.logOut();
|
133
|
-
},
|
134
|
-
};
|
135
|
-
}
|
136
|
-
export async function provideLockSession(accountID, crypto) {
|
137
|
-
const sessionDone = () => { };
|
138
|
-
const kvStore = KvStoreContext.getInstance().getStorage();
|
139
|
-
const sessionID = (await kvStore.get(accountID)) ||
|
140
|
-
crypto.newRandomSessionID(accountID);
|
141
|
-
await kvStore.set(accountID, sessionID);
|
142
|
-
return Promise.resolve({
|
143
|
-
sessionID,
|
144
|
-
sessionDone,
|
145
|
-
});
|
146
|
-
}
|
147
|
-
/** @category Invite Links */
|
148
|
-
export function createInviteLink(value, role, { baseURL, valueHint } = {}) {
|
149
|
-
return baseCreateInviteLink(value, role, baseURL ?? "", valueHint);
|
150
|
-
}
|
151
|
-
export function setupKvStore(kvStore = new ExpoSecureStoreAdapter()) {
|
152
|
-
KvStoreContext.getInstance().initialize(kvStore);
|
153
|
-
return kvStore;
|
154
|
-
}
|
155
|
-
//# sourceMappingURL=platform.js.map
|
package/dist/platform.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import type { KvStore } from "./kv-store-context.js";
|
2
|
-
export declare class ExpoSecureStoreAdapter implements KvStore {
|
3
|
-
get(key: string): Promise<string | null>;
|
4
|
-
set(key: string, value: string): Promise<void>;
|
5
|
-
delete(key: string): Promise<void>;
|
6
|
-
clearAll(): Promise<void>;
|
7
|
-
}
|
8
|
-
//# sourceMappingURL=expo-secure-store-adapter.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"expo-secure-store-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/expo-secure-store-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,sBAAuB,YAAW,OAAO;IACpD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOlC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
import * as SecureStore from "expo-secure-store";
|
2
|
-
export class ExpoSecureStoreAdapter {
|
3
|
-
get(key) {
|
4
|
-
return SecureStore.getItemAsync(key, {
|
5
|
-
requireAuthentication: false,
|
6
|
-
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
7
|
-
});
|
8
|
-
}
|
9
|
-
async set(key, value) {
|
10
|
-
return SecureStore.setItemAsync(key, value, {
|
11
|
-
requireAuthentication: false,
|
12
|
-
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
13
|
-
});
|
14
|
-
}
|
15
|
-
async delete(key) {
|
16
|
-
return SecureStore.deleteItemAsync(key, {
|
17
|
-
requireAuthentication: false,
|
18
|
-
keychainAccessible: SecureStore.AFTER_FIRST_UNLOCK,
|
19
|
-
});
|
20
|
-
}
|
21
|
-
async clearAll() {
|
22
|
-
throw new Error("Not implemented");
|
23
|
-
}
|
24
|
-
}
|
25
|
-
//# sourceMappingURL=expo-secure-store-adapter.js.map
|
@@ -1 +0,0 @@
|
|
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"}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
export interface KvStore {
|
2
|
-
get(key: string): Promise<string | null>;
|
3
|
-
set(key: string, value: string): Promise<void>;
|
4
|
-
delete(key: string): Promise<void>;
|
5
|
-
clearAll(): Promise<void>;
|
6
|
-
}
|
7
|
-
export declare class KvStoreContext {
|
8
|
-
private static instance;
|
9
|
-
private storageInstance;
|
10
|
-
private constructor();
|
11
|
-
static getInstance(): KvStoreContext;
|
12
|
-
isInitialized(): boolean;
|
13
|
-
initialize(store: KvStore): void;
|
14
|
-
getStorage(): KvStore;
|
15
|
-
}
|
16
|
-
export default KvStoreContext;
|
17
|
-
//# sourceMappingURL=kv-store-context.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"kv-store-context.d.ts","sourceRoot":"","sources":["../../src/storage/kv-store-context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAwB;IAE/C,OAAO;WAEO,WAAW,IAAI,cAAc;IAOpC,aAAa,IAAI,OAAO;IAIxB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAMhC,UAAU,IAAI,OAAO;CAM7B;AAED,eAAe,cAAc,CAAC"}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
export class KvStoreContext {
|
2
|
-
static instance;
|
3
|
-
storageInstance = null;
|
4
|
-
constructor() { }
|
5
|
-
static getInstance() {
|
6
|
-
if (!KvStoreContext.instance) {
|
7
|
-
KvStoreContext.instance = new KvStoreContext();
|
8
|
-
}
|
9
|
-
return KvStoreContext.instance;
|
10
|
-
}
|
11
|
-
isInitialized() {
|
12
|
-
return this.storageInstance !== null;
|
13
|
-
}
|
14
|
-
initialize(store) {
|
15
|
-
if (!this.storageInstance) {
|
16
|
-
this.storageInstance = store;
|
17
|
-
}
|
18
|
-
}
|
19
|
-
getStorage() {
|
20
|
-
if (!this.storageInstance) {
|
21
|
-
throw new Error("Storage instance is not initialized.");
|
22
|
-
}
|
23
|
-
return this.storageInstance;
|
24
|
-
}
|
25
|
-
}
|
26
|
-
export default KvStoreContext;
|
27
|
-
//# sourceMappingURL=kv-store-context.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"kv-store-context.js","sourceRoot":"","sources":["../../src/storage/kv-store-context.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,QAAQ,CAAiB;IAChC,eAAe,GAAmB,IAAI,CAAC;IAE/C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC7B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC;IACvC,CAAC;IAEM,UAAU,CAAC,KAAc;QAC9B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,eAAe,cAAc,CAAC"}
|
@@ -1,70 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
Account,
|
3
|
-
AccountClass,
|
4
|
-
JazzContextManager,
|
5
|
-
KvStore,
|
6
|
-
SyncConfig,
|
7
|
-
} from "jazz-tools";
|
8
|
-
import { JazzContextManagerAuthProps } from "jazz-tools";
|
9
|
-
import {
|
10
|
-
BaseReactNativeContextOptions,
|
11
|
-
createJazzReactNativeContext,
|
12
|
-
createJazzReactNativeGuestContext,
|
13
|
-
} from "./platform.js";
|
14
|
-
import { KvStoreContext } from "./storage/kv-store-context.js";
|
15
|
-
|
16
|
-
export type JazzContextManagerProps<Acc extends Account> = {
|
17
|
-
guestMode?: boolean;
|
18
|
-
sync: SyncConfig;
|
19
|
-
onLogOut?: () => void;
|
20
|
-
storage?: BaseReactNativeContextOptions["storage"];
|
21
|
-
AccountSchema?: AccountClass<Acc>;
|
22
|
-
defaultProfileName?: string;
|
23
|
-
onAnonymousAccountDiscarded?: (anonymousAccount: Acc) => Promise<void>;
|
24
|
-
CryptoProvider?: BaseReactNativeContextOptions["CryptoProvider"];
|
25
|
-
};
|
26
|
-
|
27
|
-
export class ReactNativeContextManager<
|
28
|
-
Acc extends Account,
|
29
|
-
> extends JazzContextManager<Acc, JazzContextManagerProps<Acc>> {
|
30
|
-
async getNewContext(
|
31
|
-
props: JazzContextManagerProps<Acc>,
|
32
|
-
authProps?: JazzContextManagerAuthProps,
|
33
|
-
) {
|
34
|
-
if (props.guestMode) {
|
35
|
-
return createJazzReactNativeGuestContext({
|
36
|
-
sync: props.sync,
|
37
|
-
storage: props.storage,
|
38
|
-
authSecretStorage: this.authSecretStorage,
|
39
|
-
CryptoProvider: props.CryptoProvider,
|
40
|
-
});
|
41
|
-
} else {
|
42
|
-
return createJazzReactNativeContext<Acc>({
|
43
|
-
sync: props.sync,
|
44
|
-
storage: props.storage,
|
45
|
-
AccountSchema: props.AccountSchema,
|
46
|
-
credentials: authProps?.credentials,
|
47
|
-
newAccountProps: authProps?.newAccountProps,
|
48
|
-
defaultProfileName: props.defaultProfileName,
|
49
|
-
authSecretStorage: this.authSecretStorage,
|
50
|
-
CryptoProvider: props.CryptoProvider,
|
51
|
-
});
|
52
|
-
}
|
53
|
-
}
|
54
|
-
|
55
|
-
getKvStore(): KvStore {
|
56
|
-
return KvStoreContext.getInstance().getStorage();
|
57
|
-
}
|
58
|
-
|
59
|
-
propsChanged(props: JazzContextManagerProps<Acc>) {
|
60
|
-
if (!this.props) {
|
61
|
-
return true;
|
62
|
-
}
|
63
|
-
|
64
|
-
return (
|
65
|
-
this.props.sync.when !== props.sync.when ||
|
66
|
-
this.props.sync.peer !== props.sync.peer ||
|
67
|
-
this.props.guestMode !== props.guestMode
|
68
|
-
);
|
69
|
-
}
|
70
|
-
}
|