jazz-tools 0.19.22 → 0.20.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/.svelte-kit/__package__/react.d.ts.map +1 -1
- package/.svelte-kit/__package__/react.tsx +5 -2
- package/.turbo/turbo-build.log +71 -83
- package/CHANGELOG.md +80 -0
- package/dist/better-auth/auth/react.d.ts.map +1 -1
- package/dist/better-auth/auth/react.js +5 -2
- package/dist/better-auth/auth/react.js.map +1 -1
- package/dist/browser/createBrowserContext.d.ts +1 -2
- package/dist/browser/createBrowserContext.d.ts.map +1 -1
- package/dist/browser/index.js +1 -8
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/provideBrowserLockSession/SessionIDStorage.d.ts +1 -1
- package/dist/{chunk-QCTQH5RS.js → chunk-2OPP7KWV.js} +382 -174
- package/dist/chunk-2OPP7KWV.js.map +1 -0
- package/dist/{chunk-M2HGBOXS.js → chunk-K4D7IMFM.js} +3 -3
- package/dist/chunk-K4D7IMFM.js.map +1 -0
- package/dist/chunk-ZQWSQH6L.js +20 -0
- package/dist/expo/auth/clerk/index.d.ts.map +1 -1
- package/dist/expo/index.js +5 -2
- package/dist/expo/index.js.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/inspector/{chunk-YQNK5Y7B.js → chunk-MCTB5ZJC.js} +1 -1
- package/dist/inspector/chunk-MCTB5ZJC.js.map +1 -0
- package/dist/inspector/contexts/node.d.ts.map +1 -1
- package/dist/inspector/{custom-element-KYV64IOC.js → custom-element-5YWVZBWA.js} +1 -1
- package/dist/inspector/{custom-element-KYV64IOC.js.map → custom-element-5YWVZBWA.js.map} +1 -1
- package/dist/inspector/index.js +3 -3
- package/dist/inspector/index.js.map +1 -1
- package/dist/inspector/register-custom-element.js +1 -1
- package/dist/inspector/standalone.js +1 -1
- package/dist/react/auth/Clerk.d.ts.map +1 -1
- package/dist/react/hooks.d.ts +1 -1
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/index.js +61 -47
- package/dist/react/index.js.map +1 -1
- package/dist/react/provider.d.ts.map +1 -1
- package/dist/react/ssr.js +2 -2
- package/dist/react/ssr.js.map +1 -1
- package/dist/react-core/chunk-UOYH6JFJ.js +10 -0
- package/dist/react-core/chunk-UOYH6JFJ.js.map +1 -0
- package/dist/react-core/hooks.d.ts +3 -3
- package/dist/react-core/hooks.d.ts.map +1 -1
- package/dist/react-core/index.js +27 -25
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-core/provider.d.ts +2 -3
- package/dist/react-core/provider.d.ts.map +1 -1
- package/dist/react-core/testing.d.ts.map +1 -1
- package/dist/react-core/testing.js +4 -10
- package/dist/react-core/testing.js.map +1 -1
- package/dist/react-native/index.js +61 -53
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native-core/ReactNativeContextManager.d.ts +0 -1
- package/dist/react-native-core/ReactNativeContextManager.d.ts.map +1 -1
- package/dist/react-native-core/hooks.d.ts +1 -1
- package/dist/react-native-core/hooks.d.ts.map +1 -1
- package/dist/react-native-core/index.js +58 -50
- package/dist/react-native-core/index.js.map +1 -1
- package/dist/react-native-core/platform.d.ts +0 -4
- package/dist/react-native-core/platform.d.ts.map +1 -1
- package/dist/react-native-core/provider.d.ts +2 -1
- package/dist/react-native-core/provider.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.js +2 -8
- package/dist/svelte/tests/AccountCoState.svelte.test.d.ts +2 -0
- package/dist/svelte/tests/AccountCoState.svelte.test.d.ts.map +1 -0
- package/dist/svelte/tests/AccountCoState.svelte.test.js +59 -0
- package/dist/svelte/tests/CoState.svelte.test.js +23 -0
- package/dist/svelte/tests/TestAccountCoStateWrapper.svelte +24 -0
- package/dist/svelte/tests/TestAccountCoStateWrapper.svelte.d.ts +11 -0
- package/dist/svelte/tests/TestAccountCoStateWrapper.svelte.d.ts.map +1 -0
- package/dist/testing.js +7 -7
- package/dist/testing.js.map +1 -1
- package/dist/tools/coValues/coList.d.ts +2 -2
- package/dist/tools/coValues/coList.d.ts.map +1 -1
- package/dist/tools/coValues/coMap.d.ts +2 -2
- package/dist/tools/coValues/deepLoading.d.ts +2 -2
- package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
- package/dist/tools/coValues/interfaces.d.ts +32 -0
- package/dist/tools/coValues/interfaces.d.ts.map +1 -1
- package/dist/tools/exports.d.ts +1 -1
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/implementation/ContextManager.d.ts.map +1 -1
- package/dist/tools/implementation/createContext.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +5 -4
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +5 -3
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +7 -3
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts +3 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +3 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +2 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +6 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
- package/dist/tools/ssr.js +2 -2
- package/dist/tools/subscribe/JazzError.d.ts +3 -3
- package/dist/tools/subscribe/JazzError.d.ts.map +1 -1
- package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/tools/subscribe/types.d.ts +5 -1
- package/dist/tools/subscribe/types.d.ts.map +1 -1
- package/dist/tools/testing.d.ts +3 -3
- package/dist/tools/testing.d.ts.map +1 -1
- package/dist/tools/tests/deleteCoValues.test.d.ts +2 -0
- package/dist/tools/tests/deleteCoValues.test.d.ts.map +1 -0
- package/dist/tools/tests/deletedState.test.d.ts +2 -0
- package/dist/tools/tests/deletedState.test.d.ts.map +1 -0
- package/dist/worker/edge-wasm.js +2 -1
- package/dist/worker/edge-wasm.js.map +1 -1
- package/dist/worker/wasm.d.ts +2 -0
- package/dist/worker/wasm.d.ts.map +1 -0
- package/package.json +9 -28
- package/src/better-auth/auth/react.tsx +5 -2
- package/src/browser/createBrowserContext.ts +2 -5
- package/src/expo/auth/clerk/index.tsx +5 -2
- package/src/inspector/contexts/node.tsx +1 -2
- package/src/inspector/index.tsx +2 -2
- package/src/react/auth/Clerk.tsx +5 -2
- package/src/react/auth/PasskeyAuth.tsx +2 -2
- package/src/react/hooks.tsx +3 -2
- package/src/react/provider.tsx +45 -41
- package/src/react-core/auth/DemoAuth.tsx +2 -2
- package/src/react-core/auth/PassphraseAuth.tsx +2 -2
- package/src/react-core/hooks.ts +26 -27
- package/src/react-core/provider.tsx +1 -5
- package/src/react-core/testing.tsx +3 -11
- package/src/react-core/tests/useAccount.selector.test.ts +2 -3
- package/src/react-core/tests/useAccount.test.ts +57 -7
- package/src/react-core/tests/useCoState.test.ts +37 -0
- package/src/react-core/tests/useInboxSender.test.ts +2 -5
- package/src/react-core/tests/useSuspenseAccount.test.tsx +68 -0
- package/src/react-core/tests/useSuspenseCoState.test.tsx +44 -0
- package/src/react-native-core/ReactNativeContextManager.ts +0 -3
- package/src/react-native-core/auth/usePasskeyAuth.tsx +2 -2
- package/src/react-native-core/hooks.tsx +3 -3
- package/src/react-native-core/platform.ts +2 -6
- package/src/react-native-core/provider.tsx +47 -43
- package/src/svelte/jazz.class.svelte.ts +2 -8
- package/src/svelte/tests/AccountCoState.svelte.test.ts +79 -0
- package/src/svelte/tests/CoState.svelte.test.ts +36 -0
- package/src/svelte/tests/TestAccountCoStateWrapper.svelte +24 -0
- package/src/tools/coValues/coList.ts +73 -37
- package/src/tools/coValues/deepLoading.ts +2 -0
- package/src/tools/coValues/interfaces.ts +170 -32
- package/src/tools/exports.ts +1 -0
- package/src/tools/implementation/ContextManager.ts +2 -2
- package/src/tools/implementation/createContext.ts +4 -0
- package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +30 -8
- package/src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts +55 -7
- package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +38 -16
- package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +40 -8
- package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +40 -16
- package/src/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.ts +6 -2
- package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +6 -2
- package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +5 -2
- package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +9 -2
- package/src/tools/ssr/ssr.ts +2 -2
- package/src/tools/subscribe/CoValueCoreSubscription.ts +1 -0
- package/src/tools/subscribe/JazzError.ts +4 -1
- package/src/tools/subscribe/SubscriptionScope.ts +23 -0
- package/src/tools/subscribe/types.ts +5 -0
- package/src/tools/testing.ts +5 -5
- package/src/tools/tests/PassphraseAuth.test.ts +5 -5
- package/src/tools/tests/coList.test.ts +262 -0
- package/src/tools/tests/deleteCoValues.test.ts +231 -0
- package/src/tools/tests/deletedState.test.ts +110 -0
- package/src/tools/tests/request.test.ts +15 -2
- package/src/tools/tests/schema.withPermissions.test.ts +27 -4
- package/src/worker/edge-wasm.ts +2 -1
- package/src/worker/wasm.ts +1 -0
- package/tsup.config.ts +0 -4
- package/dist/browser/storageOptions.d.ts +0 -8
- package/dist/browser/storageOptions.d.ts.map +0 -1
- package/dist/browser/tests/storageOptions.test.d.ts +0 -2
- package/dist/browser/tests/storageOptions.test.d.ts.map +0 -1
- package/dist/chunk-M2HGBOXS.js.map +0 -1
- package/dist/chunk-PZ5AY32C.js +0 -10
- package/dist/chunk-QCTQH5RS.js.map +0 -1
- package/dist/expo/crypto.d.ts +0 -2
- package/dist/expo/crypto.d.ts.map +0 -1
- package/dist/expo/crypto.js +0 -6
- package/dist/expo/crypto.js.map +0 -1
- package/dist/inspector/chunk-YQNK5Y7B.js.map +0 -1
- package/dist/react-core/chunk-7DYMJ74I.js +0 -12
- package/dist/react-core/chunk-7DYMJ74I.js.map +0 -1
- package/dist/react-native/chunk-DGUM43GV.js +0 -11
- package/dist/react-native/chunk-DGUM43GV.js.map +0 -1
- package/dist/react-native/crypto.d.ts +0 -2
- package/dist/react-native/crypto.d.ts.map +0 -1
- package/dist/react-native/crypto.js +0 -8
- package/dist/react-native/crypto.js.map +0 -1
- package/dist/react-native-core/chunk-DGUM43GV.js +0 -11
- package/dist/react-native-core/chunk-DGUM43GV.js.map +0 -1
- package/dist/react-native-core/crypto/RNCrypto.d.ts +0 -2
- package/dist/react-native-core/crypto/RNCrypto.d.ts.map +0 -1
- package/dist/react-native-core/crypto/RNCrypto.js +0 -3
- package/dist/react-native-core/crypto/RNCrypto.js.map +0 -1
- package/dist/react-native-core/crypto/RNQuickCrypto.d.ts +0 -17
- package/dist/react-native-core/crypto/RNQuickCrypto.d.ts.map +0 -1
- package/dist/react-native-core/crypto/index.d.ts +0 -2
- package/dist/react-native-core/crypto/index.d.ts.map +0 -1
- package/dist/react-native-core/crypto.js +0 -89
- package/dist/react-native-core/crypto.js.map +0 -1
- package/src/browser/storageOptions.ts +0 -17
- package/src/browser/tests/storageOptions.test.ts +0 -33
- package/src/expo/crypto.ts +0 -1
- package/src/react-native/crypto.ts +0 -1
- package/src/react-native-core/crypto/RNCrypto.ts +0 -1
- package/src/react-native-core/crypto/RNQuickCrypto.ts +0 -122
- package/src/react-native-core/crypto/index.ts +0 -1
- /package/dist/{chunk-PZ5AY32C.js.map → chunk-ZQWSQH6L.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-core/provider.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Account, JazzContextManager, JazzContextType } from \"jazz-tools\";\n\nexport const JazzContext = React.createContext<\n JazzContextType<Account> | undefined\n>(undefined);\n\nexport const JazzContextManagerContext = React.createContext<\n JazzContextManager<Account, {}> | undefined\n>(undefined);\n"],"mappings":";;;AAAA,OAAO,WAAW;AAIX,IAAM,cAAc,MAAM,cAE/B,MAAS;AAEJ,IAAM,4BAA4B,MAAM,cAE7C,MAAS;","names":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
__require
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=chunk-DGUM43GV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/react-native/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-native/crypto.ts"],"sourcesContent":["export { RNQuickCrypto } from \"jazz-tools/react-native-core/crypto\";\n"],"mappings":";;;AAAA,SAAS,qBAAqB;","names":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
__require
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=chunk-DGUM43GV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RNCrypto.d.ts","sourceRoot":"","sources":["../../../src/react-native-core/crypto/RNCrypto.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/react-native-core/crypto/RNCrypto.ts"],"sourcesContent":["export * from \"cojson/crypto/RNCrypto\";\n"],"mappings":";AAAA,cAAc;","names":[]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { JsonValue, Stringified } from "cojson";
|
|
2
|
-
import { CojsonInternalTypes } from "cojson";
|
|
3
|
-
import { PureJSCrypto, Blake3State } 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
|
-
createStreamingHash(): Blake3State;
|
|
10
|
-
blake3HashOnce(data: Uint8Array): Uint8Array;
|
|
11
|
-
newEd25519SigningKey(): Uint8Array;
|
|
12
|
-
sign(secret: CojsonInternalTypes.SignerSecret, message: JsonValue): CojsonInternalTypes.Signature;
|
|
13
|
-
verify(signature: CojsonInternalTypes.Signature, message: JsonValue, id: CojsonInternalTypes.SignerID): boolean;
|
|
14
|
-
encrypt<T extends JsonValue, N extends JsonValue>(value: T, keySecret: CojsonInternalTypes.KeySecret, nOnceMaterial: N): CojsonInternalTypes.Encrypted<T, N>;
|
|
15
|
-
decryptRaw<T extends JsonValue, N extends JsonValue>(encrypted: CojsonInternalTypes.Encrypted<T, N>, keySecret: CojsonInternalTypes.KeySecret, nOnceMaterial: N): Stringified<T>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=RNQuickCrypto.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RNQuickCrypto.d.ts","sourceRoot":"","sources":["../../../src/react-native-core/crypto/RNQuickCrypto.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,WAAW,EAGZ,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,mBAAmB,EAAmB,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,EAAE,EAA4B,MAAM,2BAA2B,CAAC;AAwBzE,qBAAa,aAAc,SAAQ,YAAY;IAC7C,EAAE,EAAE,EAAE,CAAC;;WAOM,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IAI7C,mBAAmB,IAAI,WAAW;IAKlC,cAAc,CAAC,IAAI,EAAE,UAAU;IAI/B,oBAAoB,IAAI,UAAU;IAKlC,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;IAQV,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAC9C,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,mBAAmB,CAAC,SAAS,EACxC,aAAa,EAAE,CAAC,GACf,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAgBtC,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EACjD,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9C,SAAS,EAAE,mBAAmB,CAAC,SAAS,EACxC,aAAa,EAAE,CAAC,GACf,WAAW,CAAC,CAAC,CAAC;CAalB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react-native-core/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import "./chunk-DGUM43GV.js";
|
|
2
|
-
|
|
3
|
-
// src/react-native-core/crypto/RNQuickCrypto.ts
|
|
4
|
-
import { base58 } from "@scure/base";
|
|
5
|
-
import {
|
|
6
|
-
base64URLtoBytes,
|
|
7
|
-
bytesToBase64url
|
|
8
|
-
} from "cojson";
|
|
9
|
-
import { cojsonInternals } from "cojson";
|
|
10
|
-
import { PureJSCrypto } from "cojson/dist/crypto/PureJSCrypto";
|
|
11
|
-
import { Ed, xsalsa20, blake3 } from "react-native-quick-crypto";
|
|
12
|
-
var { stableStringify } = cojsonInternals;
|
|
13
|
-
var Blake3StateAdapter = class _Blake3StateAdapter {
|
|
14
|
-
constructor(instance) {
|
|
15
|
-
this.instance = instance;
|
|
16
|
-
}
|
|
17
|
-
update(buf) {
|
|
18
|
-
this.instance.update(buf);
|
|
19
|
-
return this;
|
|
20
|
-
}
|
|
21
|
-
digest() {
|
|
22
|
-
return this.instance.digest();
|
|
23
|
-
}
|
|
24
|
-
clone() {
|
|
25
|
-
return new _Blake3StateAdapter(this.instance.copy());
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
var RNQuickCrypto = class _RNQuickCrypto extends PureJSCrypto {
|
|
29
|
-
constructor() {
|
|
30
|
-
super();
|
|
31
|
-
this.ed = new Ed("ed25519", {});
|
|
32
|
-
}
|
|
33
|
-
static async create() {
|
|
34
|
-
return new _RNQuickCrypto();
|
|
35
|
-
}
|
|
36
|
-
createStreamingHash() {
|
|
37
|
-
const instance = blake3.create({});
|
|
38
|
-
return new Blake3StateAdapter(instance);
|
|
39
|
-
}
|
|
40
|
-
blake3HashOnce(data) {
|
|
41
|
-
return blake3(data);
|
|
42
|
-
}
|
|
43
|
-
newEd25519SigningKey() {
|
|
44
|
-
this.ed.generateKeyPairSync();
|
|
45
|
-
return new Uint8Array(this.ed.getPrivateKey());
|
|
46
|
-
}
|
|
47
|
-
sign(secret, message) {
|
|
48
|
-
const signature = new Uint8Array(
|
|
49
|
-
this.ed.signSync(
|
|
50
|
-
cojsonInternals.textEncoder.encode(stableStringify(message)),
|
|
51
|
-
base58.decode(secret.substring("signerSecret_z".length))
|
|
52
|
-
)
|
|
53
|
-
);
|
|
54
|
-
return `signature_z${base58.encode(signature)}`;
|
|
55
|
-
}
|
|
56
|
-
verify(signature, message, id) {
|
|
57
|
-
return this.ed.verifySync(
|
|
58
|
-
base58.decode(signature.substring("signature_z".length)),
|
|
59
|
-
cojsonInternals.textEncoder.encode(stableStringify(message)),
|
|
60
|
-
base58.decode(id.substring("signer_z".length))
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
encrypt(value, keySecret, nOnceMaterial) {
|
|
64
|
-
const keySecretBytes = base58.decode(
|
|
65
|
-
keySecret.substring("keySecret_z".length)
|
|
66
|
-
);
|
|
67
|
-
const nOnce = this.generateJsonNonce(nOnceMaterial);
|
|
68
|
-
const plaintext = cojsonInternals.textEncoder.encode(
|
|
69
|
-
stableStringify(value)
|
|
70
|
-
);
|
|
71
|
-
const ciphertext = xsalsa20(keySecretBytes, nOnce, plaintext);
|
|
72
|
-
return `encrypted_U${bytesToBase64url(ciphertext)}`;
|
|
73
|
-
}
|
|
74
|
-
decryptRaw(encrypted, keySecret, nOnceMaterial) {
|
|
75
|
-
const keySecretBytes = base58.decode(
|
|
76
|
-
keySecret.substring("keySecret_z".length)
|
|
77
|
-
);
|
|
78
|
-
const nOnce = this.generateJsonNonce(nOnceMaterial);
|
|
79
|
-
const ciphertext = base64URLtoBytes(
|
|
80
|
-
encrypted.substring("encrypted_U".length)
|
|
81
|
-
);
|
|
82
|
-
const plaintext = xsalsa20(keySecretBytes, nOnce, ciphertext);
|
|
83
|
-
return cojsonInternals.textDecoder.decode(plaintext);
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
export {
|
|
87
|
-
RNQuickCrypto
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=crypto.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-native-core/crypto/RNQuickCrypto.ts"],"sourcesContent":["import { base58 } from \"@scure/base\";\nimport {\n JsonValue,\n Stringified,\n base64URLtoBytes,\n bytesToBase64url,\n} from \"cojson\";\nimport { CojsonInternalTypes, cojsonInternals } from \"cojson\";\nimport { PureJSCrypto, Blake3State } from \"cojson/dist/crypto/PureJSCrypto\"; // Importing from dist to not rely on the exports field\nimport { Ed, xsalsa20, blake3, Blake3 } from \"react-native-quick-crypto\";\nconst { stableStringify } = cojsonInternals;\n\nclass Blake3StateAdapter implements Blake3State {\n private instance: Blake3;\n\n constructor(instance: Blake3) {\n this.instance = instance;\n }\n\n update(buf: Uint8Array) {\n this.instance.update(buf);\n return this;\n }\n\n digest() {\n return this.instance.digest();\n }\n\n clone() {\n return new Blake3StateAdapter(this.instance.copy());\n }\n}\n\nexport class RNQuickCrypto extends PureJSCrypto {\n ed: Ed;\n\n constructor() {\n super();\n this.ed = new Ed(\"ed25519\", {});\n }\n\n static async create(): Promise<RNQuickCrypto> {\n return new RNQuickCrypto();\n }\n\n createStreamingHash(): Blake3State {\n const instance = blake3.create({});\n return new Blake3StateAdapter(instance);\n }\n\n blake3HashOnce(data: Uint8Array) {\n return blake3(data);\n }\n\n newEd25519SigningKey(): Uint8Array {\n this.ed.generateKeyPairSync();\n return new Uint8Array(this.ed.getPrivateKey());\n }\n\n sign(\n secret: CojsonInternalTypes.SignerSecret,\n message: JsonValue,\n ): CojsonInternalTypes.Signature {\n const signature = new Uint8Array(\n this.ed.signSync(\n cojsonInternals.textEncoder.encode(stableStringify(message)),\n base58.decode(secret.substring(\"signerSecret_z\".length)),\n ),\n );\n return `signature_z${base58.encode(signature)}`;\n }\n\n verify(\n signature: CojsonInternalTypes.Signature,\n message: JsonValue,\n id: CojsonInternalTypes.SignerID,\n ): boolean {\n return this.ed.verifySync(\n base58.decode(signature.substring(\"signature_z\".length)),\n cojsonInternals.textEncoder.encode(stableStringify(message)),\n base58.decode(id.substring(\"signer_z\".length)),\n );\n }\n\n encrypt<T extends JsonValue, N extends JsonValue>(\n value: T,\n keySecret: CojsonInternalTypes.KeySecret,\n nOnceMaterial: N,\n ): CojsonInternalTypes.Encrypted<T, N> {\n const keySecretBytes = base58.decode(\n keySecret.substring(\"keySecret_z\".length),\n );\n const nOnce = this.generateJsonNonce(nOnceMaterial);\n\n const plaintext = cojsonInternals.textEncoder.encode(\n stableStringify(value),\n );\n const ciphertext = xsalsa20(keySecretBytes, nOnce, plaintext);\n return `encrypted_U${bytesToBase64url(ciphertext)}` as CojsonInternalTypes.Encrypted<\n T,\n N\n >;\n }\n\n decryptRaw<T extends JsonValue, N extends JsonValue>(\n encrypted: CojsonInternalTypes.Encrypted<T, N>,\n keySecret: CojsonInternalTypes.KeySecret,\n nOnceMaterial: N,\n ): Stringified<T> {\n const keySecretBytes = base58.decode(\n keySecret.substring(\"keySecret_z\".length),\n );\n const nOnce = this.generateJsonNonce(nOnceMaterial);\n\n const ciphertext = base64URLtoBytes(\n encrypted.substring(\"encrypted_U\".length),\n );\n const plaintext = xsalsa20(keySecretBytes, nOnce, ciphertext);\n\n return cojsonInternals.textDecoder.decode(plaintext) as Stringified<T>;\n }\n}\n"],"mappings":";;;AAAA,SAAS,cAAc;AACvB;AAAA,EAGE;AAAA,EACA;AAAA,OACK;AACP,SAA8B,uBAAuB;AACrD,SAAS,oBAAiC;AAC1C,SAAS,IAAI,UAAU,cAAsB;AAC7C,IAAM,EAAE,gBAAgB,IAAI;AAE5B,IAAM,qBAAN,MAAM,oBAA0C;AAAA,EAG9C,YAAY,UAAkB;AAC5B,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,OAAO,KAAiB;AACtB,SAAK,SAAS,OAAO,GAAG;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,SAAS;AACP,WAAO,KAAK,SAAS,OAAO;AAAA,EAC9B;AAAA,EAEA,QAAQ;AACN,WAAO,IAAI,oBAAmB,KAAK,SAAS,KAAK,CAAC;AAAA,EACpD;AACF;AAEO,IAAM,gBAAN,MAAM,uBAAsB,aAAa;AAAA,EAG9C,cAAc;AACZ,UAAM;AACN,SAAK,KAAK,IAAI,GAAG,WAAW,CAAC,CAAC;AAAA,EAChC;AAAA,EAEA,aAAa,SAAiC;AAC5C,WAAO,IAAI,eAAc;AAAA,EAC3B;AAAA,EAEA,sBAAmC;AACjC,UAAM,WAAW,OAAO,OAAO,CAAC,CAAC;AACjC,WAAO,IAAI,mBAAmB,QAAQ;AAAA,EACxC;AAAA,EAEA,eAAe,MAAkB;AAC/B,WAAO,OAAO,IAAI;AAAA,EACpB;AAAA,EAEA,uBAAmC;AACjC,SAAK,GAAG,oBAAoB;AAC5B,WAAO,IAAI,WAAW,KAAK,GAAG,cAAc,CAAC;AAAA,EAC/C;AAAA,EAEA,KACE,QACA,SAC+B;AAC/B,UAAM,YAAY,IAAI;AAAA,MACpB,KAAK,GAAG;AAAA,QACN,gBAAgB,YAAY,OAAO,gBAAgB,OAAO,CAAC;AAAA,QAC3D,OAAO,OAAO,OAAO,UAAU,iBAAiB,MAAM,CAAC;AAAA,MACzD;AAAA,IACF;AACA,WAAO,cAAc,OAAO,OAAO,SAAS,CAAC;AAAA,EAC/C;AAAA,EAEA,OACE,WACA,SACA,IACS;AACT,WAAO,KAAK,GAAG;AAAA,MACb,OAAO,OAAO,UAAU,UAAU,cAAc,MAAM,CAAC;AAAA,MACvD,gBAAgB,YAAY,OAAO,gBAAgB,OAAO,CAAC;AAAA,MAC3D,OAAO,OAAO,GAAG,UAAU,WAAW,MAAM,CAAC;AAAA,IAC/C;AAAA,EACF;AAAA,EAEA,QACE,OACA,WACA,eACqC;AACrC,UAAM,iBAAiB,OAAO;AAAA,MAC5B,UAAU,UAAU,cAAc,MAAM;AAAA,IAC1C;AACA,UAAM,QAAQ,KAAK,kBAAkB,aAAa;AAElD,UAAM,YAAY,gBAAgB,YAAY;AAAA,MAC5C,gBAAgB,KAAK;AAAA,IACvB;AACA,UAAM,aAAa,SAAS,gBAAgB,OAAO,SAAS;AAC5D,WAAO,cAAc,iBAAiB,UAAU,CAAC;AAAA,EAInD;AAAA,EAEA,WACE,WACA,WACA,eACgB;AAChB,UAAM,iBAAiB,OAAO;AAAA,MAC5B,UAAU,UAAU,cAAc,MAAM;AAAA,IAC1C;AACA,UAAM,QAAQ,KAAK,kBAAkB,aAAa;AAElD,UAAM,aAAa;AAAA,MACjB,UAAU,UAAU,cAAc,MAAM;AAAA,IAC1C;AACA,UAAM,YAAY,SAAS,gBAAgB,OAAO,UAAU;AAE5D,WAAO,gBAAgB,YAAY,OAAO,SAAS;AAAA,EACrD;AACF;","names":[]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
type StorageOption = "indexedDB";
|
|
2
|
-
type CombinedStorageOption = ["indexedDB"];
|
|
3
|
-
export type StorageConfig =
|
|
4
|
-
| StorageOption
|
|
5
|
-
| CombinedStorageOption
|
|
6
|
-
| [StorageOption];
|
|
7
|
-
|
|
8
|
-
export function getStorageOptions(storage?: StorageConfig): {
|
|
9
|
-
useIndexedDB: boolean;
|
|
10
|
-
} {
|
|
11
|
-
const useIndexedDB =
|
|
12
|
-
!storage ||
|
|
13
|
-
(Array.isArray(storage) && storage.includes("indexedDB")) ||
|
|
14
|
-
storage === "indexedDB";
|
|
15
|
-
|
|
16
|
-
return { useIndexedDB };
|
|
17
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "vitest";
|
|
2
|
-
import { getStorageOptions } from "../storageOptions.js";
|
|
3
|
-
|
|
4
|
-
describe("getStorageOptions", () => {
|
|
5
|
-
test("should default to indexedDB only when no storage option is provided", () => {
|
|
6
|
-
const result = getStorageOptions();
|
|
7
|
-
expect(result).toEqual({
|
|
8
|
-
useIndexedDB: true,
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
test("should enable only indexedDB when 'indexedDB' is provided", () => {
|
|
13
|
-
const result = getStorageOptions("indexedDB");
|
|
14
|
-
expect(result).toEqual({
|
|
15
|
-
useIndexedDB: true,
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test("should enable only indexedDB when array with only indexedDB is provided", () => {
|
|
20
|
-
const result = getStorageOptions(["indexedDB"]);
|
|
21
|
-
expect(result).toEqual({
|
|
22
|
-
useIndexedDB: true,
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
// Type checking tests
|
|
27
|
-
test("should handle type checking for StorageConfig", () => {
|
|
28
|
-
// These should compile without type errors
|
|
29
|
-
getStorageOptions("indexedDB");
|
|
30
|
-
getStorageOptions(["indexedDB"]);
|
|
31
|
-
getStorageOptions(undefined);
|
|
32
|
-
});
|
|
33
|
-
});
|
package/src/expo/crypto.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { RNQuickCrypto } from "jazz-tools/react-native-core/crypto";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { RNQuickCrypto } from "jazz-tools/react-native-core/crypto";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "cojson/crypto/RNCrypto";
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { base58 } from "@scure/base";
|
|
2
|
-
import {
|
|
3
|
-
JsonValue,
|
|
4
|
-
Stringified,
|
|
5
|
-
base64URLtoBytes,
|
|
6
|
-
bytesToBase64url,
|
|
7
|
-
} from "cojson";
|
|
8
|
-
import { CojsonInternalTypes, cojsonInternals } from "cojson";
|
|
9
|
-
import { PureJSCrypto, Blake3State } from "cojson/dist/crypto/PureJSCrypto"; // Importing from dist to not rely on the exports field
|
|
10
|
-
import { Ed, xsalsa20, blake3, Blake3 } from "react-native-quick-crypto";
|
|
11
|
-
const { stableStringify } = cojsonInternals;
|
|
12
|
-
|
|
13
|
-
class Blake3StateAdapter implements Blake3State {
|
|
14
|
-
private instance: Blake3;
|
|
15
|
-
|
|
16
|
-
constructor(instance: Blake3) {
|
|
17
|
-
this.instance = instance;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
update(buf: Uint8Array) {
|
|
21
|
-
this.instance.update(buf);
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
digest() {
|
|
26
|
-
return this.instance.digest();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
clone() {
|
|
30
|
-
return new Blake3StateAdapter(this.instance.copy());
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export class RNQuickCrypto extends PureJSCrypto {
|
|
35
|
-
ed: Ed;
|
|
36
|
-
|
|
37
|
-
constructor() {
|
|
38
|
-
super();
|
|
39
|
-
this.ed = new Ed("ed25519", {});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
static async create(): Promise<RNQuickCrypto> {
|
|
43
|
-
return new RNQuickCrypto();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
createStreamingHash(): Blake3State {
|
|
47
|
-
const instance = blake3.create({});
|
|
48
|
-
return new Blake3StateAdapter(instance);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
blake3HashOnce(data: Uint8Array) {
|
|
52
|
-
return blake3(data);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
newEd25519SigningKey(): Uint8Array {
|
|
56
|
-
this.ed.generateKeyPairSync();
|
|
57
|
-
return new Uint8Array(this.ed.getPrivateKey());
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
sign(
|
|
61
|
-
secret: CojsonInternalTypes.SignerSecret,
|
|
62
|
-
message: JsonValue,
|
|
63
|
-
): CojsonInternalTypes.Signature {
|
|
64
|
-
const signature = new Uint8Array(
|
|
65
|
-
this.ed.signSync(
|
|
66
|
-
cojsonInternals.textEncoder.encode(stableStringify(message)),
|
|
67
|
-
base58.decode(secret.substring("signerSecret_z".length)),
|
|
68
|
-
),
|
|
69
|
-
);
|
|
70
|
-
return `signature_z${base58.encode(signature)}`;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
verify(
|
|
74
|
-
signature: CojsonInternalTypes.Signature,
|
|
75
|
-
message: JsonValue,
|
|
76
|
-
id: CojsonInternalTypes.SignerID,
|
|
77
|
-
): boolean {
|
|
78
|
-
return this.ed.verifySync(
|
|
79
|
-
base58.decode(signature.substring("signature_z".length)),
|
|
80
|
-
cojsonInternals.textEncoder.encode(stableStringify(message)),
|
|
81
|
-
base58.decode(id.substring("signer_z".length)),
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
encrypt<T extends JsonValue, N extends JsonValue>(
|
|
86
|
-
value: T,
|
|
87
|
-
keySecret: CojsonInternalTypes.KeySecret,
|
|
88
|
-
nOnceMaterial: N,
|
|
89
|
-
): CojsonInternalTypes.Encrypted<T, N> {
|
|
90
|
-
const keySecretBytes = base58.decode(
|
|
91
|
-
keySecret.substring("keySecret_z".length),
|
|
92
|
-
);
|
|
93
|
-
const nOnce = this.generateJsonNonce(nOnceMaterial);
|
|
94
|
-
|
|
95
|
-
const plaintext = cojsonInternals.textEncoder.encode(
|
|
96
|
-
stableStringify(value),
|
|
97
|
-
);
|
|
98
|
-
const ciphertext = xsalsa20(keySecretBytes, nOnce, plaintext);
|
|
99
|
-
return `encrypted_U${bytesToBase64url(ciphertext)}` as CojsonInternalTypes.Encrypted<
|
|
100
|
-
T,
|
|
101
|
-
N
|
|
102
|
-
>;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
decryptRaw<T extends JsonValue, N extends JsonValue>(
|
|
106
|
-
encrypted: CojsonInternalTypes.Encrypted<T, N>,
|
|
107
|
-
keySecret: CojsonInternalTypes.KeySecret,
|
|
108
|
-
nOnceMaterial: N,
|
|
109
|
-
): Stringified<T> {
|
|
110
|
-
const keySecretBytes = base58.decode(
|
|
111
|
-
keySecret.substring("keySecret_z".length),
|
|
112
|
-
);
|
|
113
|
-
const nOnce = this.generateJsonNonce(nOnceMaterial);
|
|
114
|
-
|
|
115
|
-
const ciphertext = base64URLtoBytes(
|
|
116
|
-
encrypted.substring("encrypted_U".length),
|
|
117
|
-
);
|
|
118
|
-
const plaintext = xsalsa20(keySecretBytes, nOnce, ciphertext);
|
|
119
|
-
|
|
120
|
-
return cojsonInternals.textDecoder.decode(plaintext) as Stringified<T>;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { RNQuickCrypto } from "./RNQuickCrypto.js";
|
|
File without changes
|