jazz-tools 0.15.14 → 0.15.16
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 +40 -44
- package/CHANGELOG.md +19 -0
- package/dist/{chunk-6CCJYSYQ.js → chunk-OSVAAVWQ.js} +107 -11
- package/dist/chunk-OSVAAVWQ.js.map +1 -0
- package/dist/index.js +357 -3
- package/dist/index.js.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/tools/coValues/group.d.ts +1 -0
- package/dist/tools/coValues/group.d.ts.map +1 -1
- package/dist/tools/coValues/inbox.d.ts.map +1 -1
- package/dist/tools/coValues/interfaces.d.ts +58 -2
- package/dist/tools/coValues/interfaces.d.ts.map +1 -1
- package/dist/tools/coValues/request.d.ts +82 -0
- package/dist/tools/coValues/request.d.ts.map +1 -0
- package/dist/tools/exports.d.ts +2 -1
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/lib/id.d.ts +2 -0
- package/dist/tools/lib/id.d.ts.map +1 -0
- package/dist/tools/subscribe/SubscriptionScope.d.ts +3 -2
- package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/tools/tests/exportImport.test.d.ts +2 -0
- package/dist/tools/tests/exportImport.test.d.ts.map +1 -0
- package/dist/tools/tests/request.test.d.ts +2 -0
- package/dist/tools/tests/request.test.d.ts.map +1 -0
- package/package.json +6 -5
- package/src/tools/coValues/group.ts +1 -0
- package/src/tools/coValues/inbox.ts +4 -3
- package/src/tools/coValues/interfaces.ts +177 -2
- package/src/tools/coValues/request.ts +631 -0
- package/src/tools/exports.ts +8 -0
- package/src/tools/lib/id.ts +3 -0
- package/src/tools/subscribe/SubscriptionScope.ts +17 -10
- package/src/tools/tests/coMap.test.ts +141 -0
- package/src/tools/tests/exportImport.test.ts +526 -0
- package/src/tools/tests/request.test.ts +951 -0
- package/tsup.config.ts +0 -2
- package/dist/chunk-6CCJYSYQ.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAgB,WAAW,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EACL,KAAK,OAAO,EACZ,OAAO,EACP,kBAAkB,EAClB,EAAE,EACF,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAgB,WAAW,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EACL,KAAK,OAAO,EACZ,OAAO,EACP,kBAAkB,EAClB,EAAE,EACF,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,YAAY,EAAE,CAAC;AACpE,KAAK,KAAK,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;AAEtC,KAAK,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,KAAK,oBAAoB,GAAG,WAAW,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;CACzC,CAAC,CAAC;AACH,KAAK,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACtC,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC;IAC/B,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnC,UAAU,EAAE,WAAW,CAAC;CACzB,CAAC,CAAC;AAEH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO;;;EAyB/C;AAED,KAAK,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,GAAG,SAAS,IAAI,QAAQ,CAAC;IAC7E,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACf,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC,CAAC;AA2BH,qBAAa,KAAK;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,4IAAuC;IAEjD,OAAO;IAcP,SAAS,CAAC,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,OAAO,GAAG,SAAS,EACnE,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CACR,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KACzB,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAClC,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;WAoIvB,IAAI,CAAC,OAAO,EAAE,OAAO;CAmCnC;AAED,qBAAa,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,GAAG,SAAS;IACvE,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IAEzB,OAAO;IAUP,eAAe;IAIT,WAAW,CACf,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;WAqBpC,IAAI,CACf,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,EACzC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE,OAAO;CA6CtD"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import type
|
2
|
-
import {
|
1
|
+
import { type CoValueUniqueness, type CojsonInternalTypes, type RawCoValue } from "cojson";
|
2
|
+
import { Account, AnonymousJazzAgent, CoValueOrZodSchema, type Group, Loaded, RefsToResolve, RefsToResolveStrict, ResolveQuery, ResolveQueryStrict, Resolved, SubscriptionScope, inspect } from "../internal.js";
|
3
3
|
/** @category Abstract interfaces */
|
4
4
|
export interface CoValueClass<Value extends CoValue = CoValue> {
|
5
5
|
/** @ignore */
|
@@ -112,5 +112,61 @@ export declare function parseGroupCreateOptions(options: {
|
|
112
112
|
} | Account | undefined): {
|
113
113
|
owner: Account;
|
114
114
|
};
|
115
|
+
/**
|
116
|
+
* Deeply export a CoValue to a content piece.
|
117
|
+
*
|
118
|
+
* @param cls - The class of the CoValue to export.
|
119
|
+
* @param id - The ID of the CoValue to export.
|
120
|
+
* @param options - The options for the export.
|
121
|
+
* @returns The content pieces that were exported.
|
122
|
+
*
|
123
|
+
* @example
|
124
|
+
* ```ts
|
125
|
+
* const Address = co.map({
|
126
|
+
* street: z.string(),
|
127
|
+
* city: z.string(),
|
128
|
+
* });
|
129
|
+
*
|
130
|
+
* const Person = co.map({
|
131
|
+
* name: z.string(),
|
132
|
+
* address: Address,
|
133
|
+
* });
|
134
|
+
*
|
135
|
+
* const group = Group.create();
|
136
|
+
* const address = Address.create(
|
137
|
+
* { street: "123 Main St", city: "New York" },
|
138
|
+
* group,
|
139
|
+
* );
|
140
|
+
* const person = Person.create({ name: "John", address }, group);
|
141
|
+
* group.addMember("everyone", "reader");
|
142
|
+
*
|
143
|
+
* // Export with nested references resolved, values can be serialized to JSON
|
144
|
+
* const exportedWithResolve = await exportCoValue(Person, person.id, {
|
145
|
+
* resolve: { address: true },
|
146
|
+
* });
|
147
|
+
*
|
148
|
+
* // In another client or session
|
149
|
+
* // Load the exported content pieces into the node, they will be persisted
|
150
|
+
* importContentPieces(exportedWithResolve);
|
151
|
+
*
|
152
|
+
* // Now the person can be loaded from the node, even offline
|
153
|
+
* const person = await loadCoValue(Person, person.id, {
|
154
|
+
* resolve: { address: true },
|
155
|
+
* });
|
156
|
+
* ```
|
157
|
+
*/
|
158
|
+
export declare function exportCoValue<S extends CoValueOrZodSchema | CoValueClass<CoValue>, const R extends ResolveQuery<S>>(cls: S, id: ID<CoValue>, options: {
|
159
|
+
resolve?: ResolveQueryStrict<S, R>;
|
160
|
+
loadAs: Account | AnonymousJazzAgent;
|
161
|
+
skipRetry?: boolean;
|
162
|
+
bestEffortResolution?: boolean;
|
163
|
+
}): Promise<import("cojson/dist/sync.js").NewContentMessage[] | null>;
|
164
|
+
/**
|
165
|
+
* Import content pieces into the node.
|
166
|
+
*
|
167
|
+
* @param contentPieces - The content pieces to import.
|
168
|
+
* @param loadAs - The account to load the content pieces as.
|
169
|
+
*/
|
170
|
+
export declare function importContentPieces(contentPieces: CojsonInternalTypes.NewContentMessage[], loadAs?: Account | AnonymousJazzAgent): void;
|
115
171
|
export {};
|
116
172
|
//# sourceMappingURL=interfaces.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/interfaces.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import z from "zod/v4";
|
2
|
+
import { AnyCoSchema, CoMapInitZod, CoMapSchema, Loaded, ResolveQuery, ResolveQueryStrict, Simplify } from "../internal.js";
|
3
|
+
import { Account } from "./account.js";
|
4
|
+
type MessageShape = Record<string, z.core.$ZodType | AnyCoSchema>;
|
5
|
+
type RequestSchemaDefinition<S extends MessageShape, R extends ResolveQuery<CoMapSchema<S>> = true> = S | {
|
6
|
+
schema: S;
|
7
|
+
resolve?: R;
|
8
|
+
};
|
9
|
+
/**
|
10
|
+
* Configuration options for defining HTTP request/response schemas in Jazz.
|
11
|
+
*
|
12
|
+
* This interface defines the structure for creating typed HTTP routes with
|
13
|
+
* request and response validation using CoMap schemas.
|
14
|
+
*
|
15
|
+
* @template RequestShape - The shape of the request message schema (must extend MessageShape)
|
16
|
+
* @template RequestResolve - The resolve query type for the request CoMap schema
|
17
|
+
* @template ResponseShape - The shape of the response message schema (must extend MessageShape)
|
18
|
+
* @template ResponseResolve - The resolve query type for the response CoMap schema
|
19
|
+
*/
|
20
|
+
interface RequestOptions<RequestShape extends MessageShape, RequestResolve extends ResolveQuery<CoMapSchema<RequestShape>>, ResponseShape extends MessageShape, ResponseResolve extends ResolveQuery<CoMapSchema<ResponseShape>>> {
|
21
|
+
/**
|
22
|
+
* The URL endpoint for the HTTP route.
|
23
|
+
* This is used by the client to send requests to the server.
|
24
|
+
*/
|
25
|
+
url: string;
|
26
|
+
/**
|
27
|
+
* The id of the worker Account or Group.
|
28
|
+
*/
|
29
|
+
workerId: string;
|
30
|
+
/**
|
31
|
+
* Schema definition for the request payload.
|
32
|
+
* Can be either a direct schema object or an object with schema and optional resolve properties.
|
33
|
+
* The schema defines the structure and validation rules for incoming requests.
|
34
|
+
*/
|
35
|
+
request: RequestSchemaDefinition<RequestShape, ResolveQueryStrict<CoMapSchema<RequestShape>, RequestResolve>>;
|
36
|
+
/**
|
37
|
+
* Schema definition for the response payload.
|
38
|
+
* Can be either a direct schema object or an object with schema and optional resolve properties.
|
39
|
+
* The schema defines the structure and validation rules for outgoing responses.
|
40
|
+
*/
|
41
|
+
response: RequestSchemaDefinition<ResponseShape, ResolveQueryStrict<CoMapSchema<ResponseShape>, ResponseResolve>>;
|
42
|
+
}
|
43
|
+
type AsNullablePayload<T extends MessageShape> = T extends Record<string, never> ? undefined : never;
|
44
|
+
type MessageValuePayload<T extends MessageShape> = Simplify<CoMapInitZod<T>> | AsNullablePayload<T>;
|
45
|
+
declare class HttpRoute<RequestShape extends MessageShape = z.core.$ZodLooseShape, RequestResolve extends ResolveQuery<CoMapSchema<RequestShape>> = any, ResponseShape extends MessageShape = z.core.$ZodLooseShape, ResponseResolve extends ResolveQuery<CoMapSchema<ResponseShape>> = any> {
|
46
|
+
private requestDefinition;
|
47
|
+
private responseDefinition;
|
48
|
+
private url;
|
49
|
+
private workerId;
|
50
|
+
constructor(params: RequestOptions<RequestShape, RequestResolve, ResponseShape, ResponseResolve>);
|
51
|
+
send(values: MessageValuePayload<RequestShape>, options?: {
|
52
|
+
owner?: Account;
|
53
|
+
}): Promise<Loaded<CoMapSchema<ResponseShape>, ResponseResolve>>;
|
54
|
+
handle: (request: Request, as: Account, callback: (value: Loaded<CoMapSchema<RequestShape>, RequestResolve>, madeBy: Account) => Promise<MessageValuePayload<ResponseShape>> | MessageValuePayload<ResponseShape>) => Promise<Response>;
|
55
|
+
executeHandleRequest: (request: Request, as: Account, callback: (value: Loaded<CoMapSchema<RequestShape>, RequestResolve>, madeBy: Account) => Promise<MessageValuePayload<ResponseShape>> | MessageValuePayload<ResponseShape>) => Promise<Response>;
|
56
|
+
get requestSchema(): CoMapSchema<RequestShape>;
|
57
|
+
get responseSchema(): CoMapSchema<ResponseShape>;
|
58
|
+
}
|
59
|
+
/**
|
60
|
+
* Define a request route.
|
61
|
+
*
|
62
|
+
* @param params - The parameters for the request route.
|
63
|
+
* @returns The request route.
|
64
|
+
*
|
65
|
+
* @see {@link https://jazz.tools/docs/react/server-side/http-requests}
|
66
|
+
*/
|
67
|
+
export declare function experimental_defineRequest<RequestShape extends MessageShape, RequestResolve extends ResolveQuery<CoMapSchema<RequestShape>>, ResponseShape extends MessageShape, ResponseResolve extends ResolveQuery<CoMapSchema<ResponseShape>>>(params: RequestOptions<RequestShape, RequestResolve, ResponseShape, ResponseResolve>): HttpRoute<RequestShape, RequestResolve, ResponseShape, ResponseResolve>;
|
68
|
+
export declare class JazzRequestError {
|
69
|
+
readonly message: string;
|
70
|
+
readonly code: number;
|
71
|
+
readonly details?: unknown;
|
72
|
+
readonly isJazzRequestError = true;
|
73
|
+
constructor(message: string, code: number, details?: unknown);
|
74
|
+
toJSON(): {
|
75
|
+
message: string;
|
76
|
+
code: number;
|
77
|
+
details: unknown;
|
78
|
+
};
|
79
|
+
}
|
80
|
+
export declare function isJazzRequestError(error: unknown): error is JazzRequestError;
|
81
|
+
export {};
|
82
|
+
//# sourceMappingURL=request.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/request.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/exports.d.ts
CHANGED
@@ -9,7 +9,7 @@ export { Profile } from "./internal.js";
|
|
9
9
|
export { SchemaUnion } from "./internal.js";
|
10
10
|
export { co } from "./internal.js";
|
11
11
|
export type { CoValueClass, CoValueFromRaw, DeeplyLoaded, Resolved, RefsToResolve, RefsToResolveStrict, CoMapInit, CoFeedEntry, TextPos, AccountClass, AccountCreationProps, WithHelpers, } from "./internal.js";
|
12
|
-
export { CoMap, CoList, BinaryCoStream, CoFeed, CoStream, FileStream, CoPlainText, CoRichText, Account, isControlledAccount, createCoValueObservable, loadCoValue, subscribeToCoValue, ImageDefinition, SubscriptionScope, } from "./internal.js";
|
12
|
+
export { CoMap, CoList, BinaryCoStream, CoFeed, CoStream, FileStream, CoPlainText, CoRichText, Account, isControlledAccount, createCoValueObservable, loadCoValue, subscribeToCoValue, ImageDefinition, SubscriptionScope, exportCoValue, importContentPieces, } from "./internal.js";
|
13
13
|
export { JazzContextManager, type JazzContextManagerAuthProps, } from "./internal.js";
|
14
14
|
export { AuthSecretStorage, type AuthSetPayload, } from "./auth/AuthSecretStorage.js";
|
15
15
|
export { JazzClerkAuth, MinimalClerkClient, isClerkCredentials, BrowserClerkAuth, } from "./auth/clerk/index.js";
|
@@ -21,4 +21,5 @@ export { createInviteLink, parseInviteLink, consumeInviteLink, } from "./impleme
|
|
21
21
|
export { AnonymousJazzAgent, createAnonymousJazzContext, createJazzContextFromExistingCredentials, createJazzContextForNewAccount, createJazzContext, randomSessionProvider, type AuthResult, type Credentials, type JazzContextWithAccount, } from "./internal.js";
|
22
22
|
export type * from "./types.js";
|
23
23
|
export { zodSchemaToCoSchema, anySchemaToCoSchema, type InstanceOfSchema, type InstanceOfSchemaCoValuesNullable, type CoValueOrZodSchema, type Loaded, type BaseAccountShape, type DefaultAccountShape, type AccountSchema, type AnyAccountSchema, type CoListSchema, type CoMapSchema, type CoFeedSchema, type PlainTextSchema, type FileStreamSchema, type ResolveQuery, type ResolveQueryStrict, type InitFor, type CoRecordSchema, type CoProfileSchema, } from "./internal.js";
|
24
|
+
export { experimental_defineRequest, JazzRequestError, isJazzRequestError, } from "./coValues/request.js";
|
24
25
|
//# sourceMappingURL=exports.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,CAAC,MAAM,2CAA2C,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,CAAC,MAAM,2CAA2C,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wCAAwC,EACxC,8BAA8B,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/tools/lib/id.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,OAAO,MAAM,EAAE,CAE9D"}
|
@@ -7,7 +7,8 @@ export declare class SubscriptionScope<D extends CoValue> {
|
|
7
7
|
node: LocalNode;
|
8
8
|
id: ID<D>;
|
9
9
|
schema: RefEncoded<D>;
|
10
|
-
skipRetry
|
10
|
+
skipRetry: boolean;
|
11
|
+
bestEffortResolution: boolean;
|
11
12
|
childNodes: Map<string, SubscriptionScope<CoValue>>;
|
12
13
|
childValues: Map<string, SubscriptionValue<any, any> | Unloaded>;
|
13
14
|
value: SubscriptionValue<D, any> | Unloaded;
|
@@ -25,7 +26,7 @@ export declare class SubscriptionScope<D extends CoValue> {
|
|
25
26
|
migrated: boolean;
|
26
27
|
migrating: boolean;
|
27
28
|
silenceUpdates: boolean;
|
28
|
-
constructor(node: LocalNode, resolve: RefsToResolve<D>, id: ID<D>, schema: RefEncoded<D>, skipRetry?: boolean
|
29
|
+
constructor(node: LocalNode, resolve: RefsToResolve<D>, id: ID<D>, schema: RefEncoded<D>, skipRetry?: boolean, bestEffortResolution?: boolean);
|
29
30
|
updateValue(value: SubscriptionValue<D, any>): void;
|
30
31
|
handleUpdate(update: RawCoValue | "unavailable"): void;
|
31
32
|
computeChildErrors(): JazzError | undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAEL,MAAM,EACN,KAAK,EACL,KAAK,OAAO,EACZ,KAAK,EAAE,EACP,KAAK,UAAU,EACf,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG9D,qBAAa,iBAAiB,CAAC,CAAC,SAAS,OAAO;IAwBrC,IAAI,EAAE,SAAS;IAEf,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACT,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACrB,SAAS,
|
1
|
+
{"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"exportImport.test.d.ts","sourceRoot":"","sources":["../../../src/tools/tests/exportImport.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"request.test.d.ts","sourceRoot":"","sources":["../../../src/tools/tests/request.test.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
@@ -139,7 +139,7 @@
|
|
139
139
|
},
|
140
140
|
"type": "module",
|
141
141
|
"license": "MIT",
|
142
|
-
"version": "0.15.
|
142
|
+
"version": "0.15.16",
|
143
143
|
"dependencies": {
|
144
144
|
"@manuscripts/prosemirror-recreate-steps": "^0.1.4",
|
145
145
|
"@scure/base": "1.2.1",
|
@@ -158,9 +158,9 @@
|
|
158
158
|
"prosemirror-state": "^1.4.3",
|
159
159
|
"prosemirror-transform": "^1.9.0",
|
160
160
|
"zod": "3.25.28",
|
161
|
-
"cojson": "0.15.
|
162
|
-
"cojson-storage-indexeddb": "0.15.
|
163
|
-
"cojson-transport-ws": "0.15.
|
161
|
+
"cojson": "0.15.16",
|
162
|
+
"cojson-storage-indexeddb": "0.15.16",
|
163
|
+
"cojson-transport-ws": "0.15.16"
|
164
164
|
},
|
165
165
|
"devDependencies": {
|
166
166
|
"@scure/bip39": "^1.3.0",
|
@@ -171,8 +171,9 @@
|
|
171
171
|
"@types/react": "19.1.0",
|
172
172
|
"@types/react-dom": "19.1.0",
|
173
173
|
"@vitest/browser": "^3.2.4",
|
174
|
-
"
|
174
|
+
"msw": "^2.10.3",
|
175
175
|
"playwright": "^1.50.1",
|
176
|
+
"queueueue": "^4.1.2",
|
176
177
|
"tsup": "8.5.0",
|
177
178
|
"typescript": "5.6.2",
|
178
179
|
"vitest": "3.2.4",
|
@@ -153,6 +153,7 @@ export class Group extends CoValueBase implements CoValue {
|
|
153
153
|
member: Group,
|
154
154
|
role?: "reader" | "writer" | "admin" | "inherit",
|
155
155
|
): void;
|
156
|
+
addMember(member: Group | Account, role: "reader" | "writer" | "admin"): void;
|
156
157
|
addMember(
|
157
158
|
member: Group | Everyone | Account,
|
158
159
|
role?: AccountRole | "inherit",
|
@@ -10,6 +10,7 @@ import {
|
|
10
10
|
anySchemaToCoSchema,
|
11
11
|
loadCoValue,
|
12
12
|
} from "../internal.js";
|
13
|
+
import { isCoValueId } from "../lib/id.js";
|
13
14
|
|
14
15
|
export type InboxInvite = `${CoID<MessagesStream>}/${InviteSecret}`;
|
15
16
|
type TxKey = `${SessionID}/${number}`;
|
@@ -382,7 +383,7 @@ async function acceptInvite(invite: string, account?: Account) {
|
|
382
383
|
|
383
384
|
const inviteSecret = invite.slice(invite.indexOf("/") + 1) as InviteSecret;
|
384
385
|
|
385
|
-
if (!id
|
386
|
+
if (!isCoValueId(id) || !inviteSecret.startsWith("inviteSecret_")) {
|
386
387
|
throw new Error("Invalid inbox ticket");
|
387
388
|
}
|
388
389
|
|
@@ -399,8 +400,8 @@ function getAccountIDfromSessionID(sessionID: SessionID) {
|
|
399
400
|
const until = sessionID.indexOf("_session");
|
400
401
|
const accountID = sessionID.slice(0, until);
|
401
402
|
|
402
|
-
if (accountID
|
403
|
-
return accountID
|
403
|
+
if (isCoValueId(accountID)) {
|
404
|
+
return accountID;
|
404
405
|
}
|
405
406
|
|
406
407
|
return;
|
@@ -1,6 +1,13 @@
|
|
1
|
-
import type { CoValueUniqueness, RawCoValue } from "cojson";
|
2
1
|
import {
|
3
|
-
|
2
|
+
CoValueCore,
|
3
|
+
type CoValueUniqueness,
|
4
|
+
type CojsonInternalTypes,
|
5
|
+
type RawCoValue,
|
6
|
+
emptyKnownState,
|
7
|
+
} from "cojson";
|
8
|
+
import { AvailableCoValueCore } from "cojson/dist/coValueCore/coValueCore.js";
|
9
|
+
import {
|
10
|
+
Account,
|
4
11
|
AnonymousJazzAgent,
|
5
12
|
CoValueOrZodSchema,
|
6
13
|
type Group,
|
@@ -15,6 +22,7 @@ import {
|
|
15
22
|
type SubscriptionValue,
|
16
23
|
activeAccountContext,
|
17
24
|
anySchemaToCoSchema,
|
25
|
+
getSubscriptionScope,
|
18
26
|
inspect,
|
19
27
|
} from "../internal.js";
|
20
28
|
|
@@ -462,3 +470,170 @@ export function parseGroupCreateOptions(
|
|
462
470
|
? { owner: options }
|
463
471
|
: { owner: options.owner ?? activeAccountContext.get() };
|
464
472
|
}
|
473
|
+
|
474
|
+
/**
|
475
|
+
* Deeply export a CoValue to a content piece.
|
476
|
+
*
|
477
|
+
* @param cls - The class of the CoValue to export.
|
478
|
+
* @param id - The ID of the CoValue to export.
|
479
|
+
* @param options - The options for the export.
|
480
|
+
* @returns The content pieces that were exported.
|
481
|
+
*
|
482
|
+
* @example
|
483
|
+
* ```ts
|
484
|
+
* const Address = co.map({
|
485
|
+
* street: z.string(),
|
486
|
+
* city: z.string(),
|
487
|
+
* });
|
488
|
+
*
|
489
|
+
* const Person = co.map({
|
490
|
+
* name: z.string(),
|
491
|
+
* address: Address,
|
492
|
+
* });
|
493
|
+
*
|
494
|
+
* const group = Group.create();
|
495
|
+
* const address = Address.create(
|
496
|
+
* { street: "123 Main St", city: "New York" },
|
497
|
+
* group,
|
498
|
+
* );
|
499
|
+
* const person = Person.create({ name: "John", address }, group);
|
500
|
+
* group.addMember("everyone", "reader");
|
501
|
+
*
|
502
|
+
* // Export with nested references resolved, values can be serialized to JSON
|
503
|
+
* const exportedWithResolve = await exportCoValue(Person, person.id, {
|
504
|
+
* resolve: { address: true },
|
505
|
+
* });
|
506
|
+
*
|
507
|
+
* // In another client or session
|
508
|
+
* // Load the exported content pieces into the node, they will be persisted
|
509
|
+
* importContentPieces(exportedWithResolve);
|
510
|
+
*
|
511
|
+
* // Now the person can be loaded from the node, even offline
|
512
|
+
* const person = await loadCoValue(Person, person.id, {
|
513
|
+
* resolve: { address: true },
|
514
|
+
* });
|
515
|
+
* ```
|
516
|
+
*/
|
517
|
+
export async function exportCoValue<
|
518
|
+
S extends CoValueOrZodSchema | CoValueClass<CoValue>,
|
519
|
+
const R extends ResolveQuery<S>,
|
520
|
+
>(
|
521
|
+
cls: S,
|
522
|
+
id: ID<CoValue>,
|
523
|
+
options: {
|
524
|
+
resolve?: ResolveQueryStrict<S, R>;
|
525
|
+
loadAs: Account | AnonymousJazzAgent;
|
526
|
+
skipRetry?: boolean;
|
527
|
+
bestEffortResolution?: boolean;
|
528
|
+
},
|
529
|
+
) {
|
530
|
+
const loadAs = options.loadAs ?? activeAccountContext.get();
|
531
|
+
const node = "node" in loadAs ? loadAs.node : loadAs._raw.core.node;
|
532
|
+
|
533
|
+
const resolve = options.resolve ?? true;
|
534
|
+
|
535
|
+
const rootNode = new SubscriptionScope<CoValue>(
|
536
|
+
node,
|
537
|
+
resolve as any,
|
538
|
+
id,
|
539
|
+
{
|
540
|
+
ref: anySchemaToCoSchema(cls),
|
541
|
+
optional: false,
|
542
|
+
},
|
543
|
+
options.skipRetry,
|
544
|
+
options.bestEffortResolution,
|
545
|
+
);
|
546
|
+
|
547
|
+
const value = await new Promise<Loaded<S, R> | null>((resolve) => {
|
548
|
+
rootNode.setListener((value) => {
|
549
|
+
if (value.type === "unavailable") {
|
550
|
+
resolve(null);
|
551
|
+
console.error(value.toString());
|
552
|
+
} else if (value.type === "unauthorized") {
|
553
|
+
resolve(null);
|
554
|
+
console.error(value.toString());
|
555
|
+
} else if (value.type === "loaded") {
|
556
|
+
resolve(value.value as Loaded<S, R>);
|
557
|
+
}
|
558
|
+
|
559
|
+
rootNode.destroy();
|
560
|
+
});
|
561
|
+
});
|
562
|
+
|
563
|
+
if (!value) {
|
564
|
+
return null;
|
565
|
+
}
|
566
|
+
|
567
|
+
const valuesExported = new Set<string>();
|
568
|
+
const contentPieces: CojsonInternalTypes.NewContentMessage[] = [];
|
569
|
+
|
570
|
+
loadContentPiecesFromSubscription(rootNode, valuesExported, contentPieces);
|
571
|
+
|
572
|
+
return contentPieces;
|
573
|
+
}
|
574
|
+
|
575
|
+
function loadContentPiecesFromSubscription(
|
576
|
+
subscription: SubscriptionScope<any>,
|
577
|
+
valuesExported: Set<string>,
|
578
|
+
contentPieces: CojsonInternalTypes.NewContentMessage[],
|
579
|
+
) {
|
580
|
+
if (valuesExported.has(subscription.id)) {
|
581
|
+
return;
|
582
|
+
}
|
583
|
+
|
584
|
+
valuesExported.add(subscription.id);
|
585
|
+
|
586
|
+
const core = subscription.getCurrentValue()?._raw
|
587
|
+
.core as AvailableCoValueCore;
|
588
|
+
|
589
|
+
if (core) {
|
590
|
+
loadContentPiecesFromCoValue(core, valuesExported, contentPieces);
|
591
|
+
}
|
592
|
+
|
593
|
+
for (const child of subscription.childNodes.values()) {
|
594
|
+
loadContentPiecesFromSubscription(child, valuesExported, contentPieces);
|
595
|
+
}
|
596
|
+
}
|
597
|
+
|
598
|
+
function loadContentPiecesFromCoValue(
|
599
|
+
core: AvailableCoValueCore,
|
600
|
+
valuesExported: Set<string>,
|
601
|
+
contentPieces: CojsonInternalTypes.NewContentMessage[],
|
602
|
+
) {
|
603
|
+
for (const dependency of core.getDependedOnCoValues()) {
|
604
|
+
if (valuesExported.has(dependency)) {
|
605
|
+
continue;
|
606
|
+
}
|
607
|
+
|
608
|
+
const depCoValue = core.node.getCoValue(dependency);
|
609
|
+
|
610
|
+
if (depCoValue.isAvailable()) {
|
611
|
+
valuesExported.add(dependency);
|
612
|
+
loadContentPiecesFromCoValue(depCoValue, valuesExported, contentPieces);
|
613
|
+
}
|
614
|
+
}
|
615
|
+
|
616
|
+
const pieces = core.verified.newContentSince(emptyKnownState(core.id));
|
617
|
+
|
618
|
+
for (const piece of pieces ?? []) {
|
619
|
+
contentPieces.push(piece);
|
620
|
+
}
|
621
|
+
}
|
622
|
+
|
623
|
+
/**
|
624
|
+
* Import content pieces into the node.
|
625
|
+
*
|
626
|
+
* @param contentPieces - The content pieces to import.
|
627
|
+
* @param loadAs - The account to load the content pieces as.
|
628
|
+
*/
|
629
|
+
export function importContentPieces(
|
630
|
+
contentPieces: CojsonInternalTypes.NewContentMessage[],
|
631
|
+
loadAs?: Account | AnonymousJazzAgent,
|
632
|
+
) {
|
633
|
+
const account = loadAs ?? Account.getMe();
|
634
|
+
const node = "node" in account ? account.node : account._raw.core.node;
|
635
|
+
|
636
|
+
for (const piece of contentPieces) {
|
637
|
+
node.syncManager.handleNewContent(piece, "import");
|
638
|
+
}
|
639
|
+
}
|