jazz-tools 0.13.33 → 0.13.34
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 +8 -8
- package/CHANGELOG.md +7 -0
- package/dist/auth/DemoAuth.d.ts.map +1 -1
- package/dist/auth/PassphraseAuth.d.ts +3 -1
- package/dist/auth/PassphraseAuth.d.ts.map +1 -1
- package/dist/{chunk-WLOZKDOH.js → chunk-IJU4XPFS.js} +3372 -3617
- package/dist/chunk-IJU4XPFS.js.map +1 -0
- package/dist/coValues/account.d.ts +12 -12
- package/dist/coValues/account.d.ts.map +1 -1
- package/dist/coValues/coFeed.d.ts +25 -24
- package/dist/coValues/coFeed.d.ts.map +1 -1
- package/dist/coValues/coList.d.ts +13 -10
- package/dist/coValues/coList.d.ts.map +1 -1
- package/dist/coValues/coMap.d.ts +35 -32
- package/dist/coValues/coMap.d.ts.map +1 -1
- package/dist/coValues/coPlainText.d.ts.map +1 -1
- package/dist/coValues/deepLoading.d.ts +21 -17
- package/dist/coValues/deepLoading.d.ts.map +1 -1
- package/dist/coValues/extensions/imageDef.d.ts +11 -12
- package/dist/coValues/extensions/imageDef.d.ts.map +1 -1
- package/dist/coValues/group.d.ts +9 -5
- package/dist/coValues/group.d.ts.map +1 -1
- package/dist/coValues/inbox.d.ts +3 -2
- package/dist/coValues/inbox.d.ts.map +1 -1
- package/dist/coValues/interfaces.d.ts +34 -8
- package/dist/coValues/interfaces.d.ts.map +1 -1
- package/dist/coValues/profile.d.ts +14 -4
- package/dist/coValues/profile.d.ts.map +1 -1
- package/dist/coValues/registeredSchemas.d.ts +3 -1
- package/dist/coValues/registeredSchemas.d.ts.map +1 -1
- package/dist/coValues/schemaUnion.d.ts +6 -6
- package/dist/exports.d.ts +16 -12
- package/dist/exports.d.ts.map +1 -1
- package/dist/implementation/ContextManager.d.ts +1 -1
- package/dist/implementation/ContextManager.d.ts.map +1 -1
- package/dist/implementation/activeAccountContext.d.ts +1 -1
- package/dist/implementation/activeAccountContext.d.ts.map +1 -1
- package/dist/implementation/createContext.d.ts +10 -10
- package/dist/implementation/createContext.d.ts.map +1 -1
- package/dist/implementation/invites.d.ts +6 -6
- package/dist/implementation/invites.d.ts.map +1 -1
- package/dist/implementation/refs.d.ts +2 -2
- package/dist/implementation/refs.d.ts.map +1 -1
- package/dist/implementation/schema.d.ts +28 -21
- package/dist/implementation/schema.d.ts.map +1 -1
- package/dist/index.js +10 -295
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +0 -34
- package/dist/internal.d.ts.map +1 -1
- package/dist/subscribe/SubscriptionScope.d.ts +2 -1
- package/dist/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/subscribe/utils.d.ts +2 -2
- package/dist/subscribe/utils.d.ts.map +1 -1
- package/dist/testing.d.ts +8 -10
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/tests/deepLoading.test-d.d.ts +2 -0
- package/dist/tests/deepLoading.test-d.d.ts.map +1 -0
- package/dist/tests/utils.d.ts +2 -6
- package/dist/tests/utils.d.ts.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-WLOZKDOH.js.map +0 -1
- package/dist/coValues/CoValueBase.d.ts +0 -22
- package/dist/coValues/CoValueBase.d.ts.map +0 -1
- package/dist/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.d.ts +0 -9
- package/dist/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.d.ts.map +0 -1
- package/dist/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.d.ts +0 -28
- package/dist/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +0 -65
- package/dist/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +0 -28
- package/dist/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +0 -24
- package/dist/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +0 -44
- package/dist/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +0 -35
- package/dist/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +0 -9
- package/dist/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +0 -20
- package/dist/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +0 -18
- package/dist/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +0 -24
- package/dist/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +0 -21
- package/dist/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +0 -1
- package/dist/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts +0 -29
- package/dist/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts.map +0 -1
- package/dist/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts +0 -29
- package/dist/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map +0 -1
- package/dist/implementation/zodSchema/unionUtils.d.ts +0 -6
- package/dist/implementation/zodSchema/unionUtils.d.ts.map +0 -1
- package/dist/implementation/zodSchema/zodCo.d.ts +0 -35
- package/dist/implementation/zodSchema/zodCo.d.ts.map +0 -1
- package/dist/implementation/zodSchema/zodSchema.d.ts +0 -38
- package/dist/implementation/zodSchema/zodSchema.d.ts.map +0 -1
@@ -1,22 +1,22 @@
|
|
1
1
|
import { type InviteSecret } from "cojson";
|
2
2
|
import { Account } from "../coValues/account.js";
|
3
|
-
import type { CoValue,
|
3
|
+
import type { CoValue, CoValueClass, ID } from "../internal.js";
|
4
4
|
/** @category Invite Links */
|
5
5
|
export declare function createInviteLink<C extends CoValue>(value: C, role: "reader" | "writer" | "admin" | "writeOnly", baseURL: string, valueHint?: string): string;
|
6
6
|
/** @category Invite Links */
|
7
|
-
export declare function parseInviteLink(inviteURL: string): {
|
8
|
-
valueID:
|
7
|
+
export declare function parseInviteLink<C extends CoValue>(inviteURL: string): {
|
8
|
+
valueID: ID<C>;
|
9
9
|
valueHint?: string;
|
10
10
|
inviteSecret: InviteSecret;
|
11
11
|
} | undefined;
|
12
12
|
/** @category Invite Links */
|
13
|
-
export declare function consumeInviteLink<
|
13
|
+
export declare function consumeInviteLink<V extends CoValue>({ inviteURL, as, forValueHint, invitedObjectSchema, }: {
|
14
14
|
inviteURL: string;
|
15
15
|
as?: Account;
|
16
16
|
forValueHint?: string;
|
17
|
-
invitedObjectSchema:
|
17
|
+
invitedObjectSchema: CoValueClass<V>;
|
18
18
|
}): Promise<{
|
19
|
-
valueID:
|
19
|
+
valueID: ID<V>;
|
20
20
|
valueHint?: string;
|
21
21
|
inviteSecret: InviteSecret;
|
22
22
|
} | undefined>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"invites.d.ts","sourceRoot":"","sources":["../../src/implementation/invites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"invites.d.ts","sourceRoot":"","sources":["../../src/implementation/invites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEhE,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,EACjD,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAoBR;AAED,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,EAC/C,SAAS,EAAE,MAAM,GAEf;IACE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;CAC5B,GACD,SAAS,CAuBZ;AAED,6BAA6B;AAC7B,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,EACnD,SAAS,EACT,EAAoB,EACpB,YAAY,EACZ,mBAAmB,GACpB,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CACtC,GAAG,OAAO,CACP;IACE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;CAC5B,GACD,SAAS,CACZ,CAcA"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { type Account } from "../coValues/account.js";
|
2
|
-
import type { AnonymousJazzAgent, CoValue, ID, RefEncoded } from "../internal.js";
|
2
|
+
import type { AnonymousJazzAgent, CoValue, ID, RefEncoded, UnCo } from "../internal.js";
|
3
3
|
export declare class Ref<out V extends CoValue> {
|
4
4
|
readonly id: ID<V>;
|
5
5
|
readonly controlledAccount: Account | AnonymousJazzAgent;
|
@@ -15,5 +15,5 @@ export declare function makeRefs<Keys extends string | number>(parent: CoValue,
|
|
15
15
|
[Symbol.iterator]: () => IterableIterator<Ref<CoValue>>;
|
16
16
|
length: number;
|
17
17
|
};
|
18
|
-
export type RefIfCoValue<V> = NonNullable<V> extends CoValue ? Ref<NonNullable<V
|
18
|
+
export type RefIfCoValue<V> = NonNullable<V> extends CoValue ? Ref<UnCo<NonNullable<V>>> : never;
|
19
19
|
//# sourceMappingURL=refs.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/implementation/refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,EAAE,EACF,UAAU,
|
1
|
+
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/implementation/refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,EAAE,EACF,UAAU,EACV,IAAI,EACL,MAAM,gBAAgB,CAAC;AAIxB,qBAAa,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO;IAElC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,GAAG,kBAAkB;IACxD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAHf,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,iBAAiB,EAAE,OAAO,GAAG,kBAAkB,EAC/C,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,OAAO;IAOpB,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAiC/B,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAEhC;CACF;AAED,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACnD,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,SAAS,EACnD,cAAc,EAAE,MAAM,IAAI,EAAE,EAC5B,iBAAiB,EAAE,OAAO,GAAG,kBAAkB,EAC/C,eAAe,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,UAAU,CAAC,OAAO,CAAC,GAClD;KAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;CAAE,GAAG;IACjC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB,CAgDA;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,OAAO,GACxD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GACzB,KAAK,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { JsonValue, RawCoValue } from "cojson";
|
2
2
|
import { CojsonInternalTypes } from "cojson";
|
3
|
-
import { type CoValue, type CoValueClass, ItemsSym } from "../internal.js";
|
3
|
+
import { type CoValue, type CoValueClass, ItemsSym, JazzToolsSymbol } from "../internal.js";
|
4
4
|
/** @category Schema definition */
|
5
5
|
export declare const Encoders: {
|
6
6
|
Date: {
|
@@ -12,35 +12,42 @@ export declare const Encoders: {
|
|
12
12
|
decode: (value: JsonValue) => Date | undefined;
|
13
13
|
};
|
14
14
|
};
|
15
|
+
export type CoMarker = {
|
16
|
+
readonly __co: unique symbol;
|
17
|
+
};
|
18
|
+
/** @category Schema definition */
|
19
|
+
export type co<T> = T | (T & CoMarker);
|
20
|
+
export type IfCo<C, R> = C extends infer _A | infer B ? B extends CoMarker ? R extends JazzToolsSymbol ? never : R : never : never;
|
21
|
+
export type UnCo<T> = T extends co<infer A> ? A : T;
|
15
22
|
/** @category Schema definition */
|
16
|
-
export declare const
|
17
|
-
string: string
|
18
|
-
number: number
|
19
|
-
boolean: boolean
|
20
|
-
null: null
|
21
|
-
Date: Date
|
22
|
-
literal<T extends (string | number | boolean)[]>(..._lit: T): T[number]
|
23
|
-
json<T extends CojsonInternalTypes.CoJsonValue<T>>(): T
|
24
|
-
encoded<T>(arg: Encoder<T>): T
|
23
|
+
export declare const co: {
|
24
|
+
string: co<string>;
|
25
|
+
number: co<number>;
|
26
|
+
boolean: co<boolean>;
|
27
|
+
null: co<null>;
|
28
|
+
Date: co<Date>;
|
29
|
+
literal<T extends (string | number | boolean)[]>(..._lit: T): co<T[number]>;
|
30
|
+
json<T extends CojsonInternalTypes.CoJsonValue<T>>(): co<T>;
|
31
|
+
encoded<T>(arg: Encoder<T>): co<T>;
|
25
32
|
ref: typeof ref;
|
26
33
|
items: ItemsSym;
|
27
34
|
optional: {
|
28
35
|
ref: typeof optionalRef;
|
29
|
-
json<T extends CojsonInternalTypes.CoJsonValue<T>>(): T | undefined
|
30
|
-
encoded<T>(arg: OptionalEncoder<T>): T | undefined
|
31
|
-
string: string | undefined
|
32
|
-
number: number | undefined
|
33
|
-
boolean: boolean | undefined
|
34
|
-
null: null | undefined
|
35
|
-
Date: Date | undefined
|
36
|
-
literal<T extends (string | number | boolean)[]>(..._lit: T): T[number] | undefined
|
36
|
+
json<T extends CojsonInternalTypes.CoJsonValue<T>>(): co<T | undefined>;
|
37
|
+
encoded<T>(arg: OptionalEncoder<T>): co<T | undefined>;
|
38
|
+
string: co<string | undefined>;
|
39
|
+
number: co<number | undefined>;
|
40
|
+
boolean: co<boolean | undefined>;
|
41
|
+
null: co<null | undefined>;
|
42
|
+
Date: co<Date | undefined>;
|
43
|
+
literal<T extends (string | number | boolean)[]>(..._lit: T): co<T[number] | undefined>;
|
37
44
|
};
|
38
45
|
};
|
39
|
-
declare function optionalRef<C extends CoValueClass>(arg: C | ((_raw: InstanceType<C>["_raw"]) => C)): InstanceType<C> | null | undefined
|
40
|
-
declare function ref<C extends CoValueClass>(arg: C | ((_raw: InstanceType<C>["_raw"]) => C), options?: never): InstanceType<C> | null
|
46
|
+
declare function optionalRef<C extends CoValueClass>(arg: C | ((_raw: InstanceType<C>["_raw"]) => C)): co<InstanceType<C> | null | undefined>;
|
47
|
+
declare function ref<C extends CoValueClass>(arg: C | ((_raw: InstanceType<C>["_raw"]) => C), options?: never): co<InstanceType<C> | null>;
|
41
48
|
declare function ref<C extends CoValueClass>(arg: C | ((_raw: InstanceType<C>["_raw"]) => C), options: {
|
42
49
|
optional: true;
|
43
|
-
}): InstanceType<C> | null | undefined
|
50
|
+
}): co<InstanceType<C> | null | undefined>;
|
44
51
|
export type JsonEncoded = "json";
|
45
52
|
export type EncodedAs<V> = {
|
46
53
|
encoded: Encoder<V> | OptionalEncoder<V>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/implementation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,YAAY,EAEjB,QAAQ,
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/implementation/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
@@ -8,6 +8,7 @@ import {
|
|
8
8
|
CoPlainText,
|
9
9
|
CoRichText,
|
10
10
|
CoValueBase,
|
11
|
+
DemoAuth,
|
11
12
|
Encoders,
|
12
13
|
FileStream,
|
13
14
|
Group,
|
@@ -17,308 +18,26 @@ import {
|
|
17
18
|
InboxSender,
|
18
19
|
JazzContextManager,
|
19
20
|
KvStoreContext,
|
21
|
+
PassphraseAuth,
|
20
22
|
Profile,
|
21
23
|
SchemaUnion,
|
22
|
-
anySchemaToCoSchema,
|
23
24
|
co,
|
24
|
-
|
25
|
+
consumeInviteLink,
|
25
26
|
createAnonymousJazzContext,
|
26
27
|
createCoValueObservable,
|
28
|
+
createInviteLink,
|
27
29
|
createJazzContext,
|
28
30
|
createJazzContextForNewAccount,
|
29
31
|
createJazzContextFromExistingCredentials,
|
30
32
|
isControlledAccount,
|
31
33
|
loadCoValue,
|
34
|
+
parseInviteLink,
|
32
35
|
randomSessionProvider,
|
33
|
-
subscribeToCoValue
|
34
|
-
|
35
|
-
} from "./chunk-WLOZKDOH.js";
|
36
|
-
|
37
|
-
// src/exports.ts
|
38
|
-
import { z } from "zod/v4";
|
39
|
-
|
40
|
-
// src/auth/DemoAuth.ts
|
41
|
-
var DemoAuth = class {
|
42
|
-
constructor(authenticate, authSecretStorage) {
|
43
|
-
this.authenticate = authenticate;
|
44
|
-
this.authSecretStorage = authSecretStorage;
|
45
|
-
this.logIn = async (username) => {
|
46
|
-
const existingUsers = await this.getExisitingUsersWithData();
|
47
|
-
const storageData = existingUsers[username];
|
48
|
-
if (!storageData?.accountID) {
|
49
|
-
throw new Error("User not found");
|
50
|
-
}
|
51
|
-
await this.authenticate({
|
52
|
-
accountID: storageData.accountID,
|
53
|
-
accountSecret: storageData.accountSecret
|
54
|
-
});
|
55
|
-
await this.authSecretStorage.set({
|
56
|
-
accountID: storageData.accountID,
|
57
|
-
accountSecret: storageData.accountSecret,
|
58
|
-
secretSeed: storageData.secretSeed ? new Uint8Array(storageData.secretSeed) : void 0,
|
59
|
-
provider: "demo"
|
60
|
-
});
|
61
|
-
};
|
62
|
-
this.signUp = async (username) => {
|
63
|
-
const existingUsers = await this.getExistingUsers();
|
64
|
-
if (existingUsers.includes(username)) {
|
65
|
-
throw new Error("User already registered");
|
66
|
-
}
|
67
|
-
const credentials = await this.authSecretStorage.get();
|
68
|
-
if (!credentials) {
|
69
|
-
throw new Error("No credentials found");
|
70
|
-
}
|
71
|
-
const currentAccount = await Account.getMe().ensureLoaded({
|
72
|
-
resolve: {
|
73
|
-
profile: true
|
74
|
-
}
|
75
|
-
});
|
76
|
-
currentAccount.profile.name = username;
|
77
|
-
await this.authSecretStorage.set({
|
78
|
-
accountID: credentials.accountID,
|
79
|
-
accountSecret: credentials.accountSecret,
|
80
|
-
secretSeed: credentials.secretSeed ? new Uint8Array(credentials.secretSeed) : void 0,
|
81
|
-
provider: "demo"
|
82
|
-
});
|
83
|
-
await this.addToExistingUsers(username, {
|
84
|
-
accountID: credentials.accountID,
|
85
|
-
accountSecret: credentials.accountSecret,
|
86
|
-
secretSeed: credentials.secretSeed ? Array.from(credentials.secretSeed) : void 0
|
87
|
-
});
|
88
|
-
};
|
89
|
-
this.getExistingUsers = async () => {
|
90
|
-
return Object.keys(await this.getExisitingUsersWithData());
|
91
|
-
};
|
92
|
-
}
|
93
|
-
async addToExistingUsers(username, data) {
|
94
|
-
const existingUsers = await this.getExisitingUsersWithData();
|
95
|
-
if (existingUsers[username]) {
|
96
|
-
return;
|
97
|
-
}
|
98
|
-
existingUsers[username] = data;
|
99
|
-
const kvStore = KvStoreContext.getInstance().getStorage();
|
100
|
-
await kvStore.set("demo-auth-users", JSON.stringify(existingUsers));
|
101
|
-
}
|
102
|
-
async getExisitingUsersWithData() {
|
103
|
-
const kvStore = KvStoreContext.getInstance().getStorage();
|
104
|
-
await migrateExistingUsers(kvStore);
|
105
|
-
const existingUsers = await kvStore.get("demo-auth-users");
|
106
|
-
return existingUsers ? JSON.parse(existingUsers) : {};
|
107
|
-
}
|
108
|
-
};
|
109
|
-
function encodeUsername(username) {
|
110
|
-
return btoa(username).replace(/=/g, "-").replace(/\+/g, "_").replace(/\//g, ".");
|
111
|
-
}
|
112
|
-
async function getStorageVersion(kvStore) {
|
113
|
-
try {
|
114
|
-
const version = await kvStore.get("demo-auth-storage-version");
|
115
|
-
return version ? parseInt(version) : 1;
|
116
|
-
} catch (error) {
|
117
|
-
return 1;
|
118
|
-
}
|
119
|
-
}
|
120
|
-
async function setStorageVersion(kvStore, version) {
|
121
|
-
await kvStore.set("demo-auth-storage-version", version.toString());
|
122
|
-
}
|
123
|
-
async function getExistingUsersList(kvStore) {
|
124
|
-
const existingUsers = await kvStore.get("demo-auth-existing-users");
|
125
|
-
return existingUsers ? existingUsers.split(",") : [];
|
126
|
-
}
|
127
|
-
async function migrateExistingUsers(kvStore) {
|
128
|
-
if (await getStorageVersion(kvStore) < 2) {
|
129
|
-
const existingUsers = await getExistingUsersList(kvStore);
|
130
|
-
for (const username of existingUsers) {
|
131
|
-
const legacyKey = `demo-auth-existing-users-${username}`;
|
132
|
-
const storageData = await kvStore.get(legacyKey);
|
133
|
-
if (storageData) {
|
134
|
-
await kvStore.set(
|
135
|
-
`demo-auth-existing-users-${encodeUsername(username)}`,
|
136
|
-
storageData
|
137
|
-
);
|
138
|
-
await kvStore.delete(legacyKey);
|
139
|
-
}
|
140
|
-
}
|
141
|
-
await setStorageVersion(kvStore, 2);
|
142
|
-
}
|
143
|
-
if (await getStorageVersion(kvStore) < 3) {
|
144
|
-
const existingUsersList = await getExistingUsersList(kvStore);
|
145
|
-
const existingUsers = {};
|
146
|
-
const keysToDelete = ["demo-auth-existing-users"];
|
147
|
-
for (const username of existingUsersList) {
|
148
|
-
const key = `demo-auth-existing-users-${encodeUsername(username)}`;
|
149
|
-
const storageData = await kvStore.get(key);
|
150
|
-
if (storageData) {
|
151
|
-
existingUsers[username] = JSON.parse(storageData);
|
152
|
-
keysToDelete.push(key);
|
153
|
-
}
|
154
|
-
}
|
155
|
-
await kvStore.set("demo-auth-users", JSON.stringify(existingUsers));
|
156
|
-
for (const key of keysToDelete) {
|
157
|
-
await kvStore.delete(key);
|
158
|
-
}
|
159
|
-
await setStorageVersion(kvStore, 3);
|
160
|
-
}
|
161
|
-
}
|
162
|
-
|
163
|
-
// src/auth/PassphraseAuth.ts
|
164
|
-
import * as bip39 from "@scure/bip39";
|
165
|
-
import { entropyToMnemonic } from "@scure/bip39";
|
166
|
-
import { cojsonInternals } from "cojson";
|
167
|
-
var PassphraseAuth = class {
|
168
|
-
constructor(crypto, authenticate, register, authSecretStorage, wordlist) {
|
169
|
-
this.crypto = crypto;
|
170
|
-
this.authenticate = authenticate;
|
171
|
-
this.register = register;
|
172
|
-
this.authSecretStorage = authSecretStorage;
|
173
|
-
this.wordlist = wordlist;
|
174
|
-
this.passphrase = "";
|
175
|
-
this.logIn = async (passphrase) => {
|
176
|
-
const { crypto, authenticate } = this;
|
177
|
-
let secretSeed;
|
178
|
-
try {
|
179
|
-
secretSeed = bip39.mnemonicToEntropy(passphrase, this.wordlist);
|
180
|
-
} catch (e) {
|
181
|
-
throw new Error("Invalid passphrase");
|
182
|
-
}
|
183
|
-
const accountSecret = crypto.agentSecretFromSecretSeed(secretSeed);
|
184
|
-
const accountID = cojsonInternals.idforHeader(
|
185
|
-
cojsonInternals.accountHeaderForInitialAgentSecret(accountSecret, crypto),
|
186
|
-
crypto
|
187
|
-
);
|
188
|
-
await authenticate({
|
189
|
-
accountID,
|
190
|
-
accountSecret
|
191
|
-
});
|
192
|
-
await this.authSecretStorage.set({
|
193
|
-
accountID,
|
194
|
-
secretSeed,
|
195
|
-
accountSecret,
|
196
|
-
provider: "passphrase"
|
197
|
-
});
|
198
|
-
this.passphrase = passphrase;
|
199
|
-
this.notify();
|
200
|
-
};
|
201
|
-
this.signUp = async (name) => {
|
202
|
-
const credentials = await this.authSecretStorage.get();
|
203
|
-
if (!credentials || !credentials.secretSeed) {
|
204
|
-
throw new Error("No credentials found");
|
205
|
-
}
|
206
|
-
const passphrase = entropyToMnemonic(credentials.secretSeed, this.wordlist);
|
207
|
-
await this.authSecretStorage.set({
|
208
|
-
accountID: credentials.accountID,
|
209
|
-
secretSeed: credentials.secretSeed,
|
210
|
-
accountSecret: credentials.accountSecret,
|
211
|
-
provider: "passphrase"
|
212
|
-
});
|
213
|
-
if (name?.trim()) {
|
214
|
-
const currentAccount = await Account.getMe().ensureLoaded({
|
215
|
-
resolve: {
|
216
|
-
profile: true
|
217
|
-
}
|
218
|
-
});
|
219
|
-
currentAccount.profile.name = name;
|
220
|
-
}
|
221
|
-
return passphrase;
|
222
|
-
};
|
223
|
-
this.registerNewAccount = async (passphrase, name) => {
|
224
|
-
const secretSeed = bip39.mnemonicToEntropy(passphrase, this.wordlist);
|
225
|
-
const accountSecret = this.crypto.agentSecretFromSecretSeed(secretSeed);
|
226
|
-
const accountID = await this.register(accountSecret, { name });
|
227
|
-
await this.authSecretStorage.set({
|
228
|
-
accountID,
|
229
|
-
secretSeed,
|
230
|
-
accountSecret,
|
231
|
-
provider: "passphrase"
|
232
|
-
});
|
233
|
-
return accountID;
|
234
|
-
};
|
235
|
-
this.getCurrentAccountPassphrase = async () => {
|
236
|
-
const credentials = await this.authSecretStorage.get();
|
237
|
-
if (!credentials || !credentials.secretSeed) {
|
238
|
-
throw new Error("No credentials found");
|
239
|
-
}
|
240
|
-
return entropyToMnemonic(credentials.secretSeed, this.wordlist);
|
241
|
-
};
|
242
|
-
this.generateRandomPassphrase = () => {
|
243
|
-
return entropyToMnemonic(this.crypto.newRandomSecretSeed(), this.wordlist);
|
244
|
-
};
|
245
|
-
this.loadCurrentAccountPassphrase = async () => {
|
246
|
-
const passphrase = await this.getCurrentAccountPassphrase();
|
247
|
-
this.passphrase = passphrase;
|
248
|
-
this.notify();
|
249
|
-
};
|
250
|
-
this.listeners = /* @__PURE__ */ new Set();
|
251
|
-
this.subscribe = (callback) => {
|
252
|
-
this.listeners.add(callback);
|
253
|
-
return () => {
|
254
|
-
this.listeners.delete(callback);
|
255
|
-
};
|
256
|
-
};
|
257
|
-
}
|
258
|
-
notify() {
|
259
|
-
for (const listener of this.listeners) {
|
260
|
-
listener();
|
261
|
-
}
|
262
|
-
}
|
263
|
-
};
|
264
|
-
|
265
|
-
// src/implementation/invites.ts
|
266
|
-
import { cojsonInternals as cojsonInternals2 } from "cojson";
|
267
|
-
function createInviteLink(value, role, baseURL, valueHint) {
|
268
|
-
const coValueCore = value._raw.core;
|
269
|
-
let currentCoValue = coValueCore;
|
270
|
-
while (currentCoValue.verified.header.ruleset.type === "ownedByGroup") {
|
271
|
-
currentCoValue = currentCoValue.getGroup().core;
|
272
|
-
}
|
273
|
-
const { ruleset, meta } = currentCoValue.verified.header;
|
274
|
-
if (ruleset.type !== "group" || meta?.type === "account") {
|
275
|
-
throw new Error("Can't create invite link for object without group");
|
276
|
-
}
|
277
|
-
const group = cojsonInternals2.expectGroup(currentCoValue.getCurrentContent());
|
278
|
-
const inviteSecret = group.createInvite(role);
|
279
|
-
return `${baseURL}#/invite/${valueHint ? valueHint + "/" : ""}${value.id}/${inviteSecret}`;
|
280
|
-
}
|
281
|
-
function parseInviteLink(inviteURL) {
|
282
|
-
const url = new URL(inviteURL);
|
283
|
-
const parts = url.hash.split("/");
|
284
|
-
let valueHint;
|
285
|
-
let valueID;
|
286
|
-
let inviteSecret;
|
287
|
-
if (parts[0] === "#" && parts[1] === "invite") {
|
288
|
-
if (parts.length === 5) {
|
289
|
-
valueHint = parts[2];
|
290
|
-
valueID = parts[3];
|
291
|
-
inviteSecret = parts[4];
|
292
|
-
} else if (parts.length === 4) {
|
293
|
-
valueID = parts[2];
|
294
|
-
inviteSecret = parts[3];
|
295
|
-
}
|
296
|
-
if (!valueID || !inviteSecret) {
|
297
|
-
return void 0;
|
298
|
-
}
|
299
|
-
return { valueID, inviteSecret, valueHint };
|
300
|
-
}
|
301
|
-
}
|
302
|
-
function consumeInviteLink({
|
303
|
-
inviteURL,
|
304
|
-
as = Account.getMe(),
|
305
|
-
forValueHint,
|
306
|
-
invitedObjectSchema
|
307
|
-
}) {
|
308
|
-
return new Promise((resolve, reject) => {
|
309
|
-
const result = parseInviteLink(inviteURL);
|
310
|
-
if (result && result.valueHint === forValueHint) {
|
311
|
-
as.acceptInvite(result.valueID, result.inviteSecret, invitedObjectSchema).then(() => {
|
312
|
-
resolve(result);
|
313
|
-
}).catch(reject);
|
314
|
-
} else {
|
315
|
-
resolve(void 0);
|
316
|
-
}
|
317
|
-
});
|
318
|
-
}
|
36
|
+
subscribeToCoValue
|
37
|
+
} from "./chunk-IJU4XPFS.js";
|
319
38
|
|
320
39
|
// src/index.ts
|
321
|
-
import { MAX_RECOMMENDED_TX_SIZE, cojsonInternals
|
40
|
+
import { MAX_RECOMMENDED_TX_SIZE, cojsonInternals } from "cojson";
|
322
41
|
export {
|
323
42
|
Account,
|
324
43
|
AnonymousJazzAgent,
|
@@ -345,10 +64,8 @@ export {
|
|
345
64
|
PassphraseAuth,
|
346
65
|
Profile,
|
347
66
|
SchemaUnion,
|
348
|
-
anySchemaToCoSchema,
|
349
67
|
co,
|
350
|
-
|
351
|
-
cojsonInternals3 as cojsonInternals,
|
68
|
+
cojsonInternals,
|
352
69
|
consumeInviteLink,
|
353
70
|
createAnonymousJazzContext,
|
354
71
|
createCoValueObservable,
|
@@ -360,8 +77,6 @@ export {
|
|
360
77
|
loadCoValue,
|
361
78
|
parseInviteLink,
|
362
79
|
randomSessionProvider,
|
363
|
-
subscribeToCoValue
|
364
|
-
z,
|
365
|
-
zodSchemaToCoSchema
|
80
|
+
subscribeToCoValue
|
366
81
|
};
|
367
82
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/exports.ts","../src/auth/DemoAuth.ts","../src/auth/PassphraseAuth.ts","../src/implementation/invites.ts","../src/index.ts"],"sourcesContent":["export type {\n AgentID,\n CoValueUniqueness,\n CryptoProvider,\n InviteSecret,\n Peer,\n SessionID,\n SyncMessage,\n} from \"cojson\";\n\nexport { z } from \"zod/v4\";\n\nexport type { CoValue, ID } from \"./internal.js\";\n\nexport { Encoders, coField } from \"./internal.js\";\n\nexport { Inbox, InboxSender } from \"./internal.js\";\n\nexport { Group } from \"./internal.js\";\nexport { CoValueBase } from \"./internal.js\";\nexport { Profile } from \"./internal.js\";\nexport { SchemaUnion } from \"./internal.js\";\n\nexport { co } from \"./internal.js\";\n\nexport type {\n CoValueClass,\n CoValueFromRaw,\n DeeplyLoaded,\n Resolved,\n RefsToResolve,\n RefsToResolveStrict,\n CoMapInit,\n CoFeedEntry,\n TextPos,\n AccountClass,\n AccountCreationProps,\n} from \"./internal.js\";\n\nexport {\n CoMap,\n CoList,\n BinaryCoStream,\n CoFeed,\n CoStream,\n FileStream,\n CoPlainText,\n CoRichText,\n Account,\n isControlledAccount,\n createCoValueObservable,\n loadCoValue,\n subscribeToCoValue,\n ImageDefinition,\n} from \"./internal.js\";\n\nexport {\n JazzContextManager,\n type JazzContextManagerAuthProps,\n} from \"./internal.js\";\n\nexport { AuthSecretStorage } from \"./auth/AuthSecretStorage.js\";\nexport { KvStoreContext, type KvStore } from \"./auth/KvStoreContext.js\";\nexport { InMemoryKVStore } from \"./auth/InMemoryKVStore.js\";\nexport { DemoAuth } from \"./auth/DemoAuth.js\";\nexport { PassphraseAuth } from \"./auth/PassphraseAuth.js\";\n\nexport {\n createInviteLink,\n parseInviteLink,\n consumeInviteLink,\n} from \"./implementation/invites.js\";\n\nexport {\n AnonymousJazzAgent,\n createAnonymousJazzContext,\n createJazzContextFromExistingCredentials,\n createJazzContextForNewAccount,\n createJazzContext,\n randomSessionProvider,\n type AuthResult,\n type Credentials,\n type JazzContextWithAccount,\n} from \"./internal.js\";\n\nexport type * from \"./types.js\";\n\nexport {\n zodSchemaToCoSchema,\n anySchemaToCoSchema,\n type InstanceOfSchema,\n type InstanceOfSchemaCoValuesNullable,\n type CoValueOrZodSchema,\n type Loaded,\n type AccountSchema,\n type AnyAccountSchema,\n type CoListSchema,\n type CoMapSchema,\n type CoFeedSchema,\n type PlainTextSchema,\n type FileStreamSchema,\n type ResolveQuery,\n type ResolveQueryStrict,\n type InitFor,\n} from \"./internal.js\";\n","import { AgentSecret } from \"cojson\";\nimport { Account, ID } from \"../internal.js\";\nimport { AuthenticateAccountFunction } from \"../types.js\";\nimport { AuthSecretStorage } from \"./AuthSecretStorage.js\";\nimport { KvStore, KvStoreContext } from \"./KvStoreContext.js\";\n\ntype StorageData = {\n accountID: ID<Account>;\n accountSecret: AgentSecret;\n secretSeed?: number[];\n};\n\n/**\n * `DemoAuth` provides a `JazzAuth` object for demo authentication.\n *\n * Demo authentication is useful for quickly testing your app, as it allows you to create new accounts and log in as existing ones.\n *\n * ```\n * import { DemoAuth } from \"jazz-tools\";\n *\n * const auth = new DemoAuth(jazzContext.authenticate, new AuthSecretStorage());\n * ```\n *\n * @category Auth Providers\n */\nexport class DemoAuth {\n constructor(\n private authenticate: AuthenticateAccountFunction,\n private authSecretStorage: AuthSecretStorage,\n ) {}\n\n logIn = async (username: string) => {\n const existingUsers = await this.getExisitingUsersWithData();\n const storageData = existingUsers[username];\n\n if (!storageData?.accountID) {\n throw new Error(\"User not found\");\n }\n\n await this.authenticate({\n accountID: storageData.accountID,\n accountSecret: storageData.accountSecret,\n });\n\n await this.authSecretStorage.set({\n accountID: storageData.accountID,\n accountSecret: storageData.accountSecret,\n secretSeed: storageData.secretSeed\n ? new Uint8Array(storageData.secretSeed)\n : undefined,\n provider: \"demo\",\n });\n };\n\n signUp = async (username: string) => {\n const existingUsers = await this.getExistingUsers();\n if (existingUsers.includes(username)) {\n throw new Error(\"User already registered\");\n }\n\n const credentials = await this.authSecretStorage.get();\n\n if (!credentials) {\n throw new Error(\"No credentials found\");\n }\n\n const currentAccount = await Account.getMe().ensureLoaded({\n resolve: {\n profile: true,\n },\n });\n\n currentAccount.profile.name = username;\n\n await this.authSecretStorage.set({\n accountID: credentials.accountID,\n accountSecret: credentials.accountSecret,\n secretSeed: credentials.secretSeed\n ? new Uint8Array(credentials.secretSeed)\n : undefined,\n provider: \"demo\",\n });\n\n await this.addToExistingUsers(username, {\n accountID: credentials.accountID,\n accountSecret: credentials.accountSecret,\n secretSeed: credentials.secretSeed\n ? Array.from(credentials.secretSeed)\n : undefined,\n });\n };\n\n private async addToExistingUsers(username: string, data: StorageData) {\n const existingUsers = await this.getExisitingUsersWithData();\n\n if (existingUsers[username]) {\n return;\n }\n\n existingUsers[username] = data;\n\n const kvStore = KvStoreContext.getInstance().getStorage();\n await kvStore.set(\"demo-auth-users\", JSON.stringify(existingUsers));\n }\n\n private async getExisitingUsersWithData() {\n const kvStore = KvStoreContext.getInstance().getStorage();\n await migrateExistingUsers(kvStore);\n\n const existingUsers = await kvStore.get(\"demo-auth-users\");\n return existingUsers ? JSON.parse(existingUsers) : {};\n }\n\n getExistingUsers = async () => {\n return Object.keys(await this.getExisitingUsersWithData());\n };\n}\n\nexport function encodeUsername(username: string) {\n return btoa(username)\n .replace(/=/g, \"-\")\n .replace(/\\+/g, \"_\")\n .replace(/\\//g, \".\");\n}\n\nasync function getStorageVersion(kvStore: KvStore) {\n try {\n const version = await kvStore.get(\"demo-auth-storage-version\");\n return version ? parseInt(version) : 1;\n } catch (error) {\n return 1;\n }\n}\n\nasync function setStorageVersion(kvStore: KvStore, version: number) {\n await kvStore.set(\"demo-auth-storage-version\", version.toString());\n}\n\nasync function getExistingUsersList(kvStore: KvStore) {\n const existingUsers = await kvStore.get(\"demo-auth-existing-users\");\n return existingUsers ? existingUsers.split(\",\") : [];\n}\n\n/**\n * Migrates existing users keys to work with any storage.\n */\nasync function migrateExistingUsers(kvStore: KvStore) {\n if ((await getStorageVersion(kvStore)) < 2) {\n const existingUsers = await getExistingUsersList(kvStore);\n\n for (const username of existingUsers) {\n const legacyKey = `demo-auth-existing-users-${username}`;\n const storageData = await kvStore.get(legacyKey);\n if (storageData) {\n await kvStore.set(\n `demo-auth-existing-users-${encodeUsername(username)}`,\n storageData,\n );\n await kvStore.delete(legacyKey);\n }\n }\n\n await setStorageVersion(kvStore, 2);\n }\n\n if ((await getStorageVersion(kvStore)) < 3) {\n const existingUsersList = await getExistingUsersList(kvStore);\n\n const existingUsers: Record<string, StorageData> = {};\n const keysToDelete: string[] = [\"demo-auth-existing-users\"];\n\n for (const username of existingUsersList) {\n const key = `demo-auth-existing-users-${encodeUsername(username)}`;\n const storageData = await kvStore.get(key);\n if (storageData) {\n existingUsers[username] = JSON.parse(storageData);\n keysToDelete.push(key);\n }\n }\n\n await kvStore.set(\"demo-auth-users\", JSON.stringify(existingUsers));\n\n for (const key of keysToDelete) {\n await kvStore.delete(key);\n }\n\n await setStorageVersion(kvStore, 3);\n }\n}\n","import * as bip39 from \"@scure/bip39\";\nimport { entropyToMnemonic } from \"@scure/bip39\";\nimport { CryptoProvider, cojsonInternals } from \"cojson\";\nimport type { ID } from \"../internal.js\";\nimport { Account } from \"../internal.js\";\nimport type {\n AuthenticateAccountFunction,\n RegisterAccountFunction,\n} from \"../types.js\";\nimport { AuthSecretStorage } from \"./AuthSecretStorage.js\";\n\n/**\n * `PassphraseAuth` provides a `JazzAuth` object for passphrase authentication.\n *\n * ```ts\n * import { PassphraseAuth } from \"jazz-tools\";\n *\n * const auth = new PassphraseAuth(crypto, jazzContext.authenticate, new AuthSecretStorage(), wordlist);\n * ```\n *\n * @category Auth Providers\n */\nexport class PassphraseAuth {\n passphrase: string = \"\";\n\n constructor(\n private crypto: CryptoProvider,\n private authenticate: AuthenticateAccountFunction,\n private register: RegisterAccountFunction,\n private authSecretStorage: AuthSecretStorage,\n public wordlist: string[],\n ) {}\n\n logIn = async (passphrase: string) => {\n const { crypto, authenticate } = this;\n\n let secretSeed;\n\n try {\n secretSeed = bip39.mnemonicToEntropy(passphrase, this.wordlist);\n } catch (e) {\n throw new Error(\"Invalid passphrase\");\n }\n\n const accountSecret = crypto.agentSecretFromSecretSeed(secretSeed);\n\n const accountID = cojsonInternals.idforHeader(\n cojsonInternals.accountHeaderForInitialAgentSecret(accountSecret, crypto),\n crypto,\n ) as ID<Account>;\n\n await authenticate({\n accountID,\n accountSecret,\n });\n\n await this.authSecretStorage.set({\n accountID,\n secretSeed,\n accountSecret,\n provider: \"passphrase\",\n });\n\n this.passphrase = passphrase;\n this.notify();\n };\n\n signUp = async (name?: string) => {\n const credentials = await this.authSecretStorage.get();\n\n if (!credentials || !credentials.secretSeed) {\n throw new Error(\"No credentials found\");\n }\n\n const passphrase = entropyToMnemonic(credentials.secretSeed, this.wordlist);\n\n await this.authSecretStorage.set({\n accountID: credentials.accountID,\n secretSeed: credentials.secretSeed,\n accountSecret: credentials.accountSecret,\n provider: \"passphrase\",\n });\n\n if (name?.trim()) {\n const currentAccount = await Account.getMe().ensureLoaded({\n resolve: {\n profile: true,\n },\n });\n\n currentAccount.profile.name = name;\n }\n\n return passphrase;\n };\n\n registerNewAccount = async (passphrase: string, name: string) => {\n const secretSeed = bip39.mnemonicToEntropy(passphrase, this.wordlist);\n const accountSecret = this.crypto.agentSecretFromSecretSeed(secretSeed);\n const accountID = await this.register(accountSecret, { name });\n\n await this.authSecretStorage.set({\n accountID,\n secretSeed,\n accountSecret,\n provider: \"passphrase\",\n });\n\n return accountID;\n };\n\n getCurrentAccountPassphrase = async () => {\n const credentials = await this.authSecretStorage.get();\n\n if (!credentials || !credentials.secretSeed) {\n throw new Error(\"No credentials found\");\n }\n\n return entropyToMnemonic(credentials.secretSeed, this.wordlist);\n };\n\n generateRandomPassphrase = () => {\n return entropyToMnemonic(this.crypto.newRandomSecretSeed(), this.wordlist);\n };\n\n loadCurrentAccountPassphrase = async () => {\n const passphrase = await this.getCurrentAccountPassphrase();\n this.passphrase = passphrase;\n this.notify();\n };\n\n listeners = new Set<() => void>();\n subscribe = (callback: () => void) => {\n this.listeners.add(callback);\n\n return () => {\n this.listeners.delete(callback);\n };\n };\n\n notify() {\n for (const listener of this.listeners) {\n listener();\n }\n }\n}\n","import { type InviteSecret, cojsonInternals } from \"cojson\";\nimport { Account } from \"../coValues/account.js\";\nimport type {\n CoValue,\n CoValueClass,\n CoValueOrZodSchema,\n ID,\n} from \"../internal.js\";\n\n/** @category Invite Links */\nexport function createInviteLink<C extends CoValue>(\n value: C,\n role: \"reader\" | \"writer\" | \"admin\" | \"writeOnly\",\n baseURL: string,\n valueHint?: string,\n): string {\n const coValueCore = value._raw.core;\n let currentCoValue = coValueCore;\n\n while (currentCoValue.verified.header.ruleset.type === \"ownedByGroup\") {\n currentCoValue = currentCoValue.getGroup().core;\n }\n\n const { ruleset, meta } = currentCoValue.verified.header;\n\n if (ruleset.type !== \"group\" || meta?.type === \"account\") {\n throw new Error(\"Can't create invite link for object without group\");\n }\n\n const group = cojsonInternals.expectGroup(currentCoValue.getCurrentContent());\n const inviteSecret = group.createInvite(role);\n\n return `${baseURL}#/invite/${valueHint ? valueHint + \"/\" : \"\"}${\n value.id\n }/${inviteSecret}`;\n}\n\n/** @category Invite Links */\nexport function parseInviteLink(inviteURL: string):\n | {\n valueID: string;\n valueHint?: string;\n inviteSecret: InviteSecret;\n }\n | undefined {\n const url = new URL(inviteURL);\n const parts = url.hash.split(\"/\");\n\n let valueHint: string | undefined;\n let valueID: string | undefined;\n let inviteSecret: InviteSecret | undefined;\n\n if (parts[0] === \"#\" && parts[1] === \"invite\") {\n if (parts.length === 5) {\n valueHint = parts[2];\n valueID = parts[3];\n inviteSecret = parts[4] as InviteSecret;\n } else if (parts.length === 4) {\n valueID = parts[2];\n inviteSecret = parts[3] as InviteSecret;\n }\n\n if (!valueID || !inviteSecret) {\n return undefined;\n }\n return { valueID, inviteSecret, valueHint };\n }\n}\n\n/** @category Invite Links */\nexport function consumeInviteLink<S extends CoValueOrZodSchema>({\n inviteURL,\n as = Account.getMe(),\n forValueHint,\n invitedObjectSchema,\n}: {\n inviteURL: string;\n as?: Account;\n forValueHint?: string;\n invitedObjectSchema: S;\n}): Promise<\n | {\n valueID: string;\n valueHint?: string;\n inviteSecret: InviteSecret;\n }\n | undefined\n> {\n return new Promise((resolve, reject) => {\n const result = parseInviteLink(inviteURL);\n\n if (result && result.valueHint === forValueHint) {\n as.acceptInvite(result.valueID, result.inviteSecret, invitedObjectSchema)\n .then(() => {\n resolve(result);\n })\n .catch(reject);\n } else {\n resolve(undefined);\n }\n });\n}\n","export * from \"./exports.js\";\n\nexport { MAX_RECOMMENDED_TX_SIZE, cojsonInternals } from \"cojson\";\n"],"mappings":"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","names":["cojsonInternals","cojsonInternals","cojsonInternals"]}
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./exports.js\";\n\nexport { MAX_RECOMMENDED_TX_SIZE, cojsonInternals } from \"cojson\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,yBAAyB,uBAAuB;","names":[]}
|
package/dist/internal.d.ts
CHANGED
@@ -1,46 +1,12 @@
|
|
1
1
|
export * from "./coValues/interfaces.js";
|
2
|
-
export * from "./coValues/CoValueBase.js";
|
3
2
|
export * from "./implementation/inspect.js";
|
4
3
|
export * from "./implementation/symbols.js";
|
5
|
-
export * from "./coValues/registeredSchemas.js";
|
6
|
-
export * from "./coValues/coMap.js";
|
7
|
-
export * from "./coValues/coList.js";
|
8
|
-
export * from "./coValues/coFeed.js";
|
9
|
-
export * from "./coValues/account.js";
|
10
|
-
export * from "./coValues/group.js";
|
11
|
-
export * from "./coValues/profile.js";
|
12
|
-
export * from "./coValues/inbox.js";
|
13
|
-
export * from "./coValues/coPlainText.js";
|
14
|
-
export * from "./coValues/coRichText.js";
|
15
|
-
export * from "./coValues/schemaUnion.js";
|
16
4
|
export * from "./coValues/deepLoading.js";
|
17
5
|
export * from "./implementation/anonymousJazzAgent.js";
|
18
|
-
export * from "./implementation/activeAccountContext.js";
|
19
6
|
export * from "./implementation/errors.js";
|
20
7
|
export * from "./implementation/refs.js";
|
21
8
|
export * from "./implementation/schema.js";
|
22
|
-
export * from "./subscribe/SubscriptionScope.js";
|
23
|
-
export * from "./subscribe/types.js";
|
24
9
|
export * from "./subscribe/index.js";
|
25
|
-
export * from "./lib/cache.js";
|
26
10
|
export * from "./implementation/createContext.js";
|
27
|
-
export * from "./types.js";
|
28
|
-
export * from "./implementation/zodSchema/zodSchema.js";
|
29
|
-
export * from "./implementation/zodSchema/zodCo.js";
|
30
|
-
export * from "./implementation/zodSchema/schemaTypes/CoMapSchema.js";
|
31
|
-
export * from "./implementation/zodSchema/schemaTypes/CoRecordSchema.js";
|
32
|
-
export * from "./implementation/zodSchema/schemaTypes/CoListSchema.js";
|
33
|
-
export * from "./implementation/zodSchema/schemaTypes/CoFeedSchema.js";
|
34
|
-
export * from "./implementation/zodSchema/schemaTypes/AccountSchema.js";
|
35
|
-
export * from "./implementation/zodSchema/schemaTypes/FileStreamSchema.js";
|
36
|
-
export * from "./implementation/zodSchema/schemaTypes/PlainTextSchema.js";
|
37
|
-
export * from "./implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.js";
|
38
|
-
export * from "./implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.js";
|
39
|
-
export * from "./implementation/zodSchema/typeConverters/InstanceOfSchema.js";
|
40
|
-
export * from "./implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.js";
|
41
|
-
export * from "./implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.js";
|
42
|
-
export * from "./implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.js";
|
43
|
-
export * from "./coValues/extensions/imageDef.js";
|
44
|
-
export * from "./implementation/ContextManager.js";
|
45
11
|
import "./implementation/devtoolsFormatters.js";
|
46
12
|
//# sourceMappingURL=internal.d.ts.map
|
package/dist/internal.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAElD,OAAO,wCAAwC,CAAC"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { LocalNode, RawCoValue } from "cojson";
|
2
|
-
import { CoList, CoMap
|
2
|
+
import type { CoList, CoMap } from "../exports.js";
|
3
|
+
import { type CoValue, type ID, type RefEncoded, type RefsToResolve } from "../internal.js";
|
3
4
|
import { CoValueCoreSubscription } from "./CoValueCoreSubscription.js";
|
4
5
|
import { JazzError } from "./JazzError.js";
|
5
6
|
import type { SubscriptionValue, Unloaded } from "./types.js";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../src/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,
|
1
|
+
{"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../src/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { RawCoValue } from "cojson";
|
2
2
|
import { CoValue, RefEncoded } from "../internal.js";
|
3
3
|
import { SubscriptionScope } from "./SubscriptionScope.js";
|
4
|
-
export declare function getOwnerFromRawValue(raw: RawCoValue): import("../
|
4
|
+
export declare function getOwnerFromRawValue(raw: RawCoValue): import("../exports.js").Account | import("../exports.js").Group;
|
5
5
|
export declare function createCoValue<D extends CoValue>(ref: RefEncoded<D>, raw: RawCoValue, subscriptionScope: SubscriptionScope<D>): {
|
6
6
|
type: "loaded";
|
7
7
|
value: D;
|
8
|
-
id:
|
8
|
+
id: import("../internal.js").ID<D>;
|
9
9
|
};
|
10
10
|
//# sourceMappingURL=utils.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/subscribe/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/subscribe/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAyB,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,mEAQnD;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAC7C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,UAAU,EACf,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;;;;EAgBxC"}
|