jazz-tools 0.10.14 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +11 -7
- package/CHANGELOG.md +31 -0
- package/dist/auth/AuthSecretStorage.d.ts +25 -0
- package/dist/auth/AuthSecretStorage.d.ts.map +1 -0
- package/dist/auth/DemoAuth.d.ts +27 -0
- package/dist/auth/DemoAuth.d.ts.map +1 -0
- package/dist/auth/InMemoryKVStore.d.ts +9 -0
- package/dist/auth/InMemoryKVStore.d.ts.map +1 -0
- package/dist/auth/KvStoreContext.d.ts +17 -0
- package/dist/auth/KvStoreContext.d.ts.map +1 -0
- package/dist/auth/PassphraseAuth.d.ts +35 -0
- package/dist/auth/PassphraseAuth.d.ts.map +1 -0
- package/dist/{chunk-5YDDEUNX.js → chunk-RTRX7HIO.js} +193 -81
- package/dist/chunk-RTRX7HIO.js.map +1 -0
- package/dist/coValues/account.d.ts +120 -0
- package/dist/coValues/account.d.ts.map +1 -0
- package/dist/coValues/coFeed.d.ts +361 -0
- package/dist/coValues/coFeed.d.ts.map +1 -0
- package/dist/coValues/coList.d.ts +221 -0
- package/dist/coValues/coList.d.ts.map +1 -0
- package/dist/coValues/coMap.d.ts +500 -0
- package/dist/coValues/coMap.d.ts.map +1 -0
- package/dist/coValues/coPlainText.d.ts +69 -0
- package/dist/coValues/coPlainText.d.ts.map +1 -0
- package/dist/coValues/coRichText.d.ts +259 -0
- package/dist/coValues/coRichText.d.ts.map +1 -0
- package/dist/coValues/deepLoading.d.ts +81 -0
- package/dist/coValues/deepLoading.d.ts.map +1 -0
- package/dist/coValues/extensions/imageDef.d.ts +17 -0
- package/dist/coValues/extensions/imageDef.d.ts.map +1 -0
- package/dist/coValues/group.d.ts +67 -0
- package/dist/coValues/group.d.ts.map +1 -0
- package/dist/coValues/inbox.d.ts +52 -0
- package/dist/coValues/inbox.d.ts.map +1 -0
- package/dist/coValues/interfaces.d.ts +97 -0
- package/dist/coValues/interfaces.d.ts.map +1 -0
- package/dist/coValues/profile.d.ts +28 -0
- package/dist/coValues/profile.d.ts.map +1 -0
- package/dist/coValues/registeredSchemas.d.ts +12 -0
- package/dist/coValues/registeredSchemas.d.ts.map +1 -0
- package/dist/coValues/schemaUnion.d.ts +79 -0
- package/dist/coValues/schemaUnion.d.ts.map +1 -0
- package/dist/exports.d.ts +27 -0
- package/dist/exports.d.ts.map +1 -0
- package/dist/implementation/ContextManager.d.ts +65 -0
- package/dist/implementation/ContextManager.d.ts.map +1 -0
- package/dist/implementation/activeAccountContext.d.ts +12 -0
- package/dist/implementation/activeAccountContext.d.ts.map +1 -0
- package/dist/implementation/anonymousJazzAgent.d.ts +7 -0
- package/dist/implementation/anonymousJazzAgent.d.ts.map +1 -0
- package/dist/implementation/createContext.d.ts +91 -0
- package/dist/implementation/createContext.d.ts.map +1 -0
- package/dist/implementation/devtoolsFormatters.d.ts +2 -0
- package/dist/implementation/devtoolsFormatters.d.ts.map +1 -0
- package/dist/implementation/errors.d.ts +2 -0
- package/dist/implementation/errors.d.ts.map +1 -0
- package/dist/implementation/inspect.d.ts +3 -0
- package/dist/implementation/inspect.d.ts.map +1 -0
- package/dist/implementation/invites.d.ts +23 -0
- package/dist/implementation/invites.d.ts.map +1 -0
- package/dist/implementation/refs.d.ts +21 -0
- package/dist/implementation/refs.d.ts.map +1 -0
- package/dist/implementation/schema.d.ts +72 -0
- package/dist/implementation/schema.d.ts.map +1 -0
- package/dist/implementation/subscriptionScope.d.ts +33 -0
- package/dist/implementation/subscriptionScope.d.ts.map +1 -0
- package/dist/implementation/symbols.d.ts +8 -0
- package/dist/implementation/symbols.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -1
- package/dist/internal.d.ts +12 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/lib/cache.d.ts +6 -0
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/lib/cache.test.d.ts +2 -0
- package/dist/lib/cache.test.d.ts.map +1 -0
- package/dist/testing.d.ts +41 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +11 -16
- package/dist/testing.js.map +1 -1
- package/dist/tests/AuthSecretStorage.test.d.ts +2 -0
- package/dist/tests/AuthSecretStorage.test.d.ts.map +1 -0
- package/dist/tests/ContextManager.test.d.ts +2 -0
- package/dist/tests/ContextManager.test.d.ts.map +1 -0
- package/dist/tests/DemoAuth.test.d.ts +2 -0
- package/dist/tests/DemoAuth.test.d.ts.map +1 -0
- package/dist/tests/PassphraseAuth.test.d.ts +2 -0
- package/dist/tests/PassphraseAuth.test.d.ts.map +1 -0
- package/dist/tests/account.test.d.ts +2 -0
- package/dist/tests/account.test.d.ts.map +1 -0
- package/dist/tests/coFeed.test.d.ts +2 -0
- package/dist/tests/coFeed.test.d.ts.map +1 -0
- package/dist/tests/coList.test.d.ts +2 -0
- package/dist/tests/coList.test.d.ts.map +1 -0
- package/dist/tests/coMap.test.d.ts +2 -0
- package/dist/tests/coMap.test.d.ts.map +1 -0
- package/dist/tests/coPlainText.test.d.ts +2 -0
- package/dist/tests/coPlainText.test.d.ts.map +1 -0
- package/dist/tests/coRichText.test.d.ts +2 -0
- package/dist/tests/coRichText.test.d.ts.map +1 -0
- package/dist/tests/createContext.test.d.ts +2 -0
- package/dist/tests/createContext.test.d.ts.map +1 -0
- package/dist/tests/deepLoading.test.d.ts +2 -0
- package/dist/tests/deepLoading.test.d.ts.map +1 -0
- package/dist/tests/fixtures.d.ts +2 -0
- package/dist/tests/fixtures.d.ts.map +1 -0
- package/dist/tests/groupsAndAccounts.test.d.ts +2 -0
- package/dist/tests/groupsAndAccounts.test.d.ts.map +1 -0
- package/dist/tests/inbox.test.d.ts +2 -0
- package/dist/tests/inbox.test.d.ts.map +1 -0
- package/dist/tests/interfaces.test.d.ts +2 -0
- package/dist/tests/interfaces.test.d.ts.map +1 -0
- package/dist/tests/invites.test.d.ts +2 -0
- package/dist/tests/invites.test.d.ts.map +1 -0
- package/dist/tests/schema.test.d.ts +2 -0
- package/dist/tests/schema.test.d.ts.map +1 -0
- package/dist/tests/schemaUnion.test.d.ts +2 -0
- package/dist/tests/schemaUnion.test.d.ts.map +1 -0
- package/dist/tests/subscribe.test.d.ts +2 -0
- package/dist/tests/subscribe.test.d.ts.map +1 -0
- package/dist/tests/testing.test.d.ts +2 -0
- package/dist/tests/testing.test.d.ts.map +1 -0
- package/dist/tests/utils.d.ts +21 -0
- package/dist/tests/utils.d.ts.map +1 -0
- package/dist/types.d.ts +52 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +8 -7
- package/src/coValues/account.ts +69 -11
- package/src/coValues/coMap.ts +2 -2
- package/src/coValues/coRichText.ts +42 -17
- package/src/coValues/group.ts +76 -31
- package/src/coValues/inbox.ts +10 -0
- package/src/coValues/interfaces.ts +1 -1
- package/src/coValues/profile.ts +35 -2
- package/src/implementation/ContextManager.ts +63 -15
- package/src/implementation/schema.ts +1 -3
- package/src/testing.ts +10 -16
- package/src/tests/AuthSecretStorage.test.ts +1 -2
- package/src/tests/ContextManager.test.ts +27 -14
- package/src/tests/PassphraseAuth.test.ts +7 -3
- package/src/tests/coMap.test.ts +20 -21
- package/src/tests/deepLoading.test.ts +8 -17
- package/src/tests/groupsAndAccounts.test.ts +429 -89
- package/src/tests/inbox.test.ts +24 -0
- package/src/tests/schema.test.ts +45 -5
- package/src/tests/utils.ts +7 -3
- package/src/types.ts +6 -0
- package/tsconfig.json +4 -1
- package/dist/chunk-5YDDEUNX.js.map +0 -1
@@ -0,0 +1,221 @@
|
|
1
|
+
import type { RawCoList } from "cojson";
|
2
|
+
import type { CoValue, CoValueClass, CoValueFromRaw, DeeplyLoaded, DepthsIn, ID, SchemaFor, UnCo } from "../internal.js";
|
3
|
+
import { AnonymousJazzAgent, ItemsSym, Ref, inspect } from "../internal.js";
|
4
|
+
import { type Account } from "./account.js";
|
5
|
+
import { type Group } from "./group.js";
|
6
|
+
/**
|
7
|
+
* CoLists are collaborative versions of plain arrays.
|
8
|
+
*
|
9
|
+
* @categoryDescription Content
|
10
|
+
* You can access items on a `CoList` as if they were normal items on a plain array, using `[]` notation, etc.
|
11
|
+
*
|
12
|
+
* Since `CoList` is a subclass of `Array`, you can use all the normal array methods like `push`, `pop`, `splice`, etc.
|
13
|
+
*
|
14
|
+
* ```ts
|
15
|
+
* colorList[0];
|
16
|
+
* colorList[3] = "yellow";
|
17
|
+
* colorList.push("Kawazaki Green");
|
18
|
+
* colorList.splice(1, 1);
|
19
|
+
* ```
|
20
|
+
*
|
21
|
+
* @category CoValues
|
22
|
+
*/
|
23
|
+
export declare class CoList<Item = any> extends Array<Item> implements CoValue {
|
24
|
+
/**
|
25
|
+
* Declare a `CoList` by subclassing `CoList.Of(...)` and passing the item schema using `co`.
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* ```ts
|
29
|
+
* class ColorList extends CoList.Of(
|
30
|
+
* co.string
|
31
|
+
* ) {}
|
32
|
+
* class AnimalList extends CoList.Of(
|
33
|
+
* co.ref(Animal)
|
34
|
+
* ) {}
|
35
|
+
* ```
|
36
|
+
*
|
37
|
+
* @category Declaration
|
38
|
+
*/
|
39
|
+
static Of<Item>(item: Item): typeof CoList<Item>;
|
40
|
+
/**
|
41
|
+
* @ignore
|
42
|
+
* @deprecated Use UPPERCASE `CoList.Of` instead! */
|
43
|
+
static of(..._args: never): never;
|
44
|
+
/**
|
45
|
+
* The ID of this `CoList`
|
46
|
+
* @category Content */
|
47
|
+
id: ID<this>;
|
48
|
+
/** @category Type Helpers */
|
49
|
+
_type: "CoList";
|
50
|
+
/** @category Internals */
|
51
|
+
_raw: RawCoList;
|
52
|
+
/** @category Internals */
|
53
|
+
_instanceID: string;
|
54
|
+
/** @internal This is only a marker type and doesn't exist at runtime */
|
55
|
+
[ItemsSym]: Item;
|
56
|
+
/** @internal */
|
57
|
+
static _schema: any;
|
58
|
+
/** @internal */
|
59
|
+
get _schema(): {
|
60
|
+
[ItemsSym]: SchemaFor<Item>;
|
61
|
+
};
|
62
|
+
/** @category Collaboration */
|
63
|
+
get _owner(): Account | Group;
|
64
|
+
/**
|
65
|
+
* If a `CoList`'s items are a `co.ref(...)`, you can use `coList._refs[i]` to access
|
66
|
+
* the `Ref` instead of the potentially loaded/null value.
|
67
|
+
*
|
68
|
+
* This allows you to always get the ID or load the value manually.
|
69
|
+
*
|
70
|
+
* @example
|
71
|
+
* ```ts
|
72
|
+
* animals._refs[0].id; // => ID<Animal>
|
73
|
+
* animals._refs[0].value;
|
74
|
+
* // => Animal | null
|
75
|
+
* const animal = await animals._refs[0].load();
|
76
|
+
* ```
|
77
|
+
*
|
78
|
+
* @category Content
|
79
|
+
**/
|
80
|
+
get _refs(): {
|
81
|
+
[idx: number]: Exclude<Item, null> extends CoValue ? Ref<UnCo<Exclude<Item, null>>> : never;
|
82
|
+
} & {
|
83
|
+
length: number;
|
84
|
+
[Symbol.iterator](): IterableIterator<Exclude<Item, null> extends CoValue ? Ref<Exclude<Item, null>> : never>;
|
85
|
+
};
|
86
|
+
get _edits(): {
|
87
|
+
[idx: number]: {
|
88
|
+
value?: Item;
|
89
|
+
ref?: Item extends CoValue ? Ref<Item> : never;
|
90
|
+
by?: Account;
|
91
|
+
madeAt: Date;
|
92
|
+
};
|
93
|
+
};
|
94
|
+
get _loadedAs(): Account | AnonymousJazzAgent;
|
95
|
+
static get [Symbol.species](): ArrayConstructor;
|
96
|
+
constructor(options: {
|
97
|
+
fromRaw: RawCoList;
|
98
|
+
} | undefined);
|
99
|
+
/**
|
100
|
+
* Create a new CoList with the given initial values and owner.
|
101
|
+
*
|
102
|
+
* The owner (a Group or Account) determines access rights to the CoMap.
|
103
|
+
*
|
104
|
+
* The CoList will immediately be persisted and synced to connected peers.
|
105
|
+
*
|
106
|
+
* @example
|
107
|
+
* ```ts
|
108
|
+
* const colours = ColorList.create(
|
109
|
+
* ["red", "green", "blue"],
|
110
|
+
* { owner: me }
|
111
|
+
* );
|
112
|
+
* const animals = AnimalList.create(
|
113
|
+
* [cat, dog, fish],
|
114
|
+
* { owner: me }
|
115
|
+
* );
|
116
|
+
* ```
|
117
|
+
*
|
118
|
+
* @category Creation
|
119
|
+
**/
|
120
|
+
static create<L extends CoList>(this: CoValueClass<L>, items: UnCo<L[number]>[], options?: {
|
121
|
+
owner: Account | Group;
|
122
|
+
} | Account | Group): L;
|
123
|
+
push(...items: Item[]): number;
|
124
|
+
unshift(...items: Item[]): number;
|
125
|
+
pop(): Item | undefined;
|
126
|
+
shift(): Item | undefined;
|
127
|
+
splice(start: number, deleteCount: number, ...items: Item[]): Item[];
|
128
|
+
toJSON(_key?: string, seenAbove?: ID<CoValue>[]): any[];
|
129
|
+
[inspect](): any[];
|
130
|
+
/** @category Internals */
|
131
|
+
static fromRaw<V extends CoList>(this: CoValueClass<V> & typeof CoList, raw: RawCoList): V & CoList<any>;
|
132
|
+
/** @internal */
|
133
|
+
static schema<V extends CoList>(this: {
|
134
|
+
new (...args: any): V;
|
135
|
+
} & typeof CoList, def: {
|
136
|
+
[ItemsSym]: V["_schema"][ItemsSym];
|
137
|
+
}): void;
|
138
|
+
/**
|
139
|
+
* Load a `CoList` with a given ID, as a given account.
|
140
|
+
*
|
141
|
+
* `depth` specifies if item CoValue references should be loaded as well before resolving.
|
142
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
143
|
+
*
|
144
|
+
* You can pass `[]` or for shallowly loading only this CoList, or `[itemDepth]` for recursively loading referenced CoValues.
|
145
|
+
*
|
146
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoFeed`/`Group`/`Account` to see which depth structures are valid to nest.
|
147
|
+
*
|
148
|
+
* @example
|
149
|
+
* ```ts
|
150
|
+
* const animalsWithVets =
|
151
|
+
* await ListOfAnimals.load(
|
152
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
153
|
+
* me,
|
154
|
+
* [{ vet: {} }]
|
155
|
+
* );
|
156
|
+
* ```
|
157
|
+
*
|
158
|
+
* @category Subscription & Loading
|
159
|
+
*/
|
160
|
+
static load<C extends CoList, Depth>(this: CoValueClass<C>, id: ID<C>, depth: Depth & DepthsIn<C>): Promise<DeeplyLoaded<C, Depth> | undefined>;
|
161
|
+
static load<C extends CoList, Depth>(this: CoValueClass<C>, id: ID<C>, as: Account, depth: Depth & DepthsIn<C>): Promise<DeeplyLoaded<C, Depth> | undefined>;
|
162
|
+
/**
|
163
|
+
* Load and subscribe to a `CoList` with a given ID, as a given account.
|
164
|
+
*
|
165
|
+
* Automatically also subscribes to updates to all referenced/nested CoValues as soon as they are accessed in the listener.
|
166
|
+
*
|
167
|
+
* `depth` specifies if item CoValue references should be loaded as well before calling `listener` for the first time.
|
168
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
169
|
+
*
|
170
|
+
* You can pass `[]` or for shallowly loading only this CoList, or `[itemDepth]` for recursively loading referenced CoValues.
|
171
|
+
*
|
172
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoFeed`/`Group`/`Account` to see which depth structures are valid to nest.
|
173
|
+
*
|
174
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
175
|
+
*
|
176
|
+
* Also see the `useCoState` hook to reactively subscribe to a CoValue in a React component.
|
177
|
+
*
|
178
|
+
* @example
|
179
|
+
* ```ts
|
180
|
+
* const unsub = ListOfAnimals.subscribe(
|
181
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
182
|
+
* me,
|
183
|
+
* { vet: {} },
|
184
|
+
* (animalsWithVets) => console.log(animalsWithVets)
|
185
|
+
* );
|
186
|
+
* ```
|
187
|
+
*
|
188
|
+
* @category Subscription & Loading
|
189
|
+
*/
|
190
|
+
static subscribe<C extends CoList, Depth>(this: CoValueClass<C>, id: ID<C>, depth: Depth & DepthsIn<C>, listener: (value: DeeplyLoaded<C, Depth>) => void): () => void;
|
191
|
+
static subscribe<C extends CoList, Depth>(this: CoValueClass<C>, id: ID<C>, as: Account, depth: Depth & DepthsIn<C>, listener: (value: DeeplyLoaded<C, Depth>) => void): () => void;
|
192
|
+
/**
|
193
|
+
* Given an already loaded `CoList`, ensure that items are loaded to the specified depth.
|
194
|
+
*
|
195
|
+
* Works like `CoList.load()`, but you don't need to pass the ID or the account to load as again.
|
196
|
+
*
|
197
|
+
* @category Subscription & Loading
|
198
|
+
*/
|
199
|
+
ensureLoaded<L extends CoList, Depth>(this: L, depth: Depth & DepthsIn<L>): Promise<DeeplyLoaded<L, Depth>>;
|
200
|
+
/**
|
201
|
+
* Given an already loaded `CoList`, subscribe to updates to the `CoList` and ensure that items are loaded to the specified depth.
|
202
|
+
*
|
203
|
+
* Works like `CoList.subscribe()`, but you don't need to pass the ID or the account to load as again.
|
204
|
+
*
|
205
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
206
|
+
*
|
207
|
+
* @category Subscription & Loading
|
208
|
+
**/
|
209
|
+
subscribe<L extends CoList, Depth>(this: L, depth: Depth & DepthsIn<L>, listener: (value: DeeplyLoaded<L, Depth>) => void): () => void;
|
210
|
+
/** @category Type Helpers */
|
211
|
+
castAs<Cl extends CoValueClass & CoValueFromRaw<CoValue>>(cl: Cl): InstanceType<Cl>;
|
212
|
+
/**
|
213
|
+
* Wait for the `CoList` to be uploaded to the other peers.
|
214
|
+
*
|
215
|
+
* @category Subscription & Loading
|
216
|
+
*/
|
217
|
+
waitForSync(options?: {
|
218
|
+
timeout?: number;
|
219
|
+
}): Promise<unknown[]>;
|
220
|
+
}
|
221
|
+
//# sourceMappingURL=coList.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"coList.d.ts","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}
|