jazz-react-native 0.12.1 → 0.13.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +37 -0
- package/README.md +3 -229
- package/crypto/index.d.ts +2 -0
- package/crypto/index.js +2 -0
- 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 +13 -16
- 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
|
-
}
|