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,120 @@
|
|
1
|
+
import { AgentSecret, CryptoProvider, Everyone, InviteSecret, LocalNode, Peer, RawAccount, RawControlledAccount, Role, SessionID } from "cojson";
|
2
|
+
import { AnonymousJazzAgent, type CoValue, CoValueBase, CoValueClass, DeeplyLoaded, DepthsIn, ID, Ref, RefIfCoValue, type Schema, inspect } from "../internal.js";
|
3
|
+
import { RegisteredAccount } from "../types.js";
|
4
|
+
import { type CoMap } from "./coMap.js";
|
5
|
+
import { type Group } from "./group.js";
|
6
|
+
import { Profile } from "./profile.js";
|
7
|
+
export type AccountCreationProps = {
|
8
|
+
name: string;
|
9
|
+
onboarding?: boolean;
|
10
|
+
};
|
11
|
+
/** @category Identity & Permissions */
|
12
|
+
export declare class Account extends CoValueBase implements CoValue {
|
13
|
+
id: ID<this>;
|
14
|
+
_type: "Account";
|
15
|
+
_raw: RawAccount | RawControlledAccount;
|
16
|
+
static _schema: any;
|
17
|
+
get _schema(): {
|
18
|
+
profile: Schema;
|
19
|
+
root: Schema;
|
20
|
+
};
|
21
|
+
get _owner(): Account;
|
22
|
+
get _loadedAs(): Account | AnonymousJazzAgent;
|
23
|
+
profile: Profile | null;
|
24
|
+
root: CoMap | null;
|
25
|
+
get _refs(): {
|
26
|
+
profile: RefIfCoValue<Profile> | undefined;
|
27
|
+
root: RefIfCoValue<CoMap> | undefined;
|
28
|
+
};
|
29
|
+
/**
|
30
|
+
* Whether this account is the currently active account.
|
31
|
+
*/
|
32
|
+
get isMe(): boolean;
|
33
|
+
/**
|
34
|
+
* Whether this account is the owner of the local node.
|
35
|
+
*/
|
36
|
+
isLocalNodeOwner: boolean;
|
37
|
+
sessionID: SessionID | undefined;
|
38
|
+
constructor(options: {
|
39
|
+
fromRaw: RawAccount | RawControlledAccount;
|
40
|
+
});
|
41
|
+
myRole(): "admin" | undefined;
|
42
|
+
getRoleOf(member: Everyone | ID<Account> | "me"): "admin" | undefined;
|
43
|
+
getParentGroups(): Array<Group>;
|
44
|
+
get members(): Array<{
|
45
|
+
id: ID<RegisteredAccount> | "everyone";
|
46
|
+
role: Role;
|
47
|
+
ref: Ref<RegisteredAccount> | undefined;
|
48
|
+
account: RegisteredAccount | null | undefined;
|
49
|
+
}>;
|
50
|
+
canRead(value: CoValue): boolean;
|
51
|
+
canWrite(value: CoValue): boolean;
|
52
|
+
canAdmin(value: CoValue): boolean;
|
53
|
+
acceptInvite<V extends CoValue>(valueID: ID<V>, inviteSecret: InviteSecret, coValueClass: CoValueClass<V>): Promise<([V] extends [(infer Item)[]] ? V : [V] extends [{
|
54
|
+
_type: "CoMap" | "Group" | "Account";
|
55
|
+
}] ? V : [V] extends [{
|
56
|
+
_type: "CoStream";
|
57
|
+
byMe: import("./coFeed.js").CoFeedEntry<infer Item_1> | undefined;
|
58
|
+
}] ? V : [V] extends [{
|
59
|
+
_type: "BinaryCoStream";
|
60
|
+
}] ? V : [V] extends [{
|
61
|
+
_type: "CoPlainText";
|
62
|
+
}] ? V : never) | undefined>;
|
63
|
+
/** @private */
|
64
|
+
static create<A extends Account>(this: CoValueClass<A> & typeof Account, options: {
|
65
|
+
creationProps: {
|
66
|
+
name: string;
|
67
|
+
};
|
68
|
+
initialAgentSecret?: AgentSecret;
|
69
|
+
peersToLoadFrom?: Peer[];
|
70
|
+
crypto: CryptoProvider;
|
71
|
+
}): Promise<A>;
|
72
|
+
static getMe<A extends Account>(this: CoValueClass<A> & typeof Account): A;
|
73
|
+
static createAs<A extends Account>(this: CoValueClass<A> & typeof Account, as: Account, options: {
|
74
|
+
creationProps: {
|
75
|
+
name: string;
|
76
|
+
};
|
77
|
+
}): Promise<A>;
|
78
|
+
static fromNode<A extends Account>(this: CoValueClass<A>, node: LocalNode): A;
|
79
|
+
toJSON(): object | any[];
|
80
|
+
[inspect](): object | any[];
|
81
|
+
applyMigration(creationProps?: AccountCreationProps): Promise<void>;
|
82
|
+
migrate(creationProps?: AccountCreationProps): void;
|
83
|
+
/** @category Subscription & Loading */
|
84
|
+
static load<A extends Account, Depth>(this: CoValueClass<A>, id: ID<A>, depth: Depth & DepthsIn<A>): Promise<DeeplyLoaded<A, Depth> | undefined>;
|
85
|
+
static load<A extends Account, Depth>(this: CoValueClass<A>, id: ID<A>, as: Account, depth: Depth & DepthsIn<A>): Promise<DeeplyLoaded<A, Depth> | undefined>;
|
86
|
+
/** @category Subscription & Loading */
|
87
|
+
static subscribe<A extends Account, Depth>(this: CoValueClass<A>, id: ID<A>, depth: Depth & DepthsIn<A>, listener: (value: DeeplyLoaded<A, Depth>) => void): () => void;
|
88
|
+
static subscribe<A extends Account, Depth>(this: CoValueClass<A>, id: ID<A>, as: Account, depth: Depth & DepthsIn<A>, listener: (value: DeeplyLoaded<A, Depth>) => void): () => void;
|
89
|
+
/** @category Subscription & Loading */
|
90
|
+
ensureLoaded<A extends Account, Depth>(this: A, depth: Depth & DepthsIn<A>): Promise<DeeplyLoaded<A, Depth>>;
|
91
|
+
/** @category Subscription & Loading */
|
92
|
+
subscribe<A extends Account, Depth>(this: A, depth: Depth & DepthsIn<A>, listener: (value: DeeplyLoaded<A, Depth>) => void): () => void;
|
93
|
+
/**
|
94
|
+
* Wait for the `Account` to be uploaded to the other peers.
|
95
|
+
*
|
96
|
+
* @category Subscription & Loading
|
97
|
+
*/
|
98
|
+
waitForSync(options?: {
|
99
|
+
timeout?: number;
|
100
|
+
}): Promise<unknown[]>;
|
101
|
+
/**
|
102
|
+
* Wait for all the available `CoValues` to be uploaded to the other peers.
|
103
|
+
*
|
104
|
+
* @category Subscription & Loading
|
105
|
+
*/
|
106
|
+
waitForAllCoValuesSync(options?: {
|
107
|
+
timeout?: number;
|
108
|
+
}): Promise<unknown[][]>;
|
109
|
+
}
|
110
|
+
export declare const AccountAndGroupProxyHandler: ProxyHandler<Account | Group>;
|
111
|
+
/** @category Identity & Permissions */
|
112
|
+
export declare function isControlledAccount(account: Account): account is Account & {
|
113
|
+
isLocalNodeOwner: true;
|
114
|
+
sessionID: SessionID;
|
115
|
+
_raw: RawControlledAccount;
|
116
|
+
};
|
117
|
+
export type AccountClass<Acc extends Account> = CoValueClass<Acc> & {
|
118
|
+
fromNode: (typeof Account)["fromNode"];
|
119
|
+
};
|
120
|
+
//# sourceMappingURL=account.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,361 @@
|
|
1
|
+
import type { BinaryStreamInfo, CojsonInternalTypes, RawBinaryCoStream, RawCoStream, SessionID } from "cojson";
|
2
|
+
import type { CoValue, CoValueClass, DeeplyLoaded, DepthsIn, ID, IfCo, SchemaFor, UnCo } from "../internal.js";
|
3
|
+
import { CoValueBase, ItemsSym, Ref, inspect } from "../internal.js";
|
4
|
+
import { type Account } from "./account.js";
|
5
|
+
import { type Group } from "./group.js";
|
6
|
+
/** @deprecated Use CoFeedEntry instead */
|
7
|
+
export type CoStreamEntry<Item> = CoFeedEntry<Item>;
|
8
|
+
export type CoFeedEntry<Item> = SingleCoFeedEntry<Item> & {
|
9
|
+
all: IterableIterator<SingleCoFeedEntry<Item>>;
|
10
|
+
};
|
11
|
+
/** @deprecated Use SingleCoFeedEntry instead */
|
12
|
+
export type SingleCoStreamEntry<Item> = SingleCoFeedEntry<Item>;
|
13
|
+
export type SingleCoFeedEntry<Item> = {
|
14
|
+
value: NonNullable<Item> extends CoValue ? NonNullable<Item> | null : Item;
|
15
|
+
ref: NonNullable<Item> extends CoValue ? Ref<NonNullable<Item>> : never;
|
16
|
+
by?: Account | null;
|
17
|
+
madeAt: Date;
|
18
|
+
tx: CojsonInternalTypes.TransactionID;
|
19
|
+
};
|
20
|
+
/** @deprecated Use CoFeed instead */
|
21
|
+
export { CoFeed as CoStream };
|
22
|
+
/**
|
23
|
+
* CoFeeds are collaborative logs of data.
|
24
|
+
*
|
25
|
+
* @categoryDescription Content
|
26
|
+
* They are similar to `CoList`s, but with a few key differences:
|
27
|
+
* - They are append-only
|
28
|
+
* - They consist of several internal append-only logs, one per account session (tab, device, app instance, etc.)
|
29
|
+
* - They expose those as a per-account aggregated view (default) or a precise per-session view
|
30
|
+
*
|
31
|
+
* ```ts
|
32
|
+
* favDog.push("Poodle");
|
33
|
+
* favDog.push("Schnowzer");
|
34
|
+
* ```
|
35
|
+
*
|
36
|
+
* @category CoValues
|
37
|
+
*/
|
38
|
+
export declare class CoFeed<Item = any> extends CoValueBase implements CoValue {
|
39
|
+
/**
|
40
|
+
* Declare a `CoFeed` by subclassing `CoFeed.Of(...)` and passing the item schema using a `co` primitive or a `co.ref`.
|
41
|
+
*
|
42
|
+
* @example
|
43
|
+
* ```ts
|
44
|
+
* class ColorFeed extends CoFeed.Of(co.string) {}
|
45
|
+
* class AnimalFeed extends CoFeed.Of(co.ref(Animal)) {}
|
46
|
+
* ```
|
47
|
+
*
|
48
|
+
* @category Declaration
|
49
|
+
*/
|
50
|
+
static Of<Item>(item: IfCo<Item, Item>): typeof CoFeed<Item>;
|
51
|
+
/**
|
52
|
+
* The ID of this `CoFeed`
|
53
|
+
* @category Content */
|
54
|
+
id: ID<this>;
|
55
|
+
/** @category Type Helpers */
|
56
|
+
_type: "CoStream";
|
57
|
+
/** @category Internals */
|
58
|
+
_raw: RawCoStream;
|
59
|
+
/** @internal This is only a marker type and doesn't exist at runtime */
|
60
|
+
[ItemsSym]: Item;
|
61
|
+
/** @internal */
|
62
|
+
static _schema: any;
|
63
|
+
/** @internal */
|
64
|
+
get _schema(): {
|
65
|
+
[ItemsSym]: SchemaFor<Item>;
|
66
|
+
};
|
67
|
+
/**
|
68
|
+
* The per-account view of this `CoFeed`
|
69
|
+
*
|
70
|
+
* @example
|
71
|
+
* ```ts
|
72
|
+
* // Access entries directly by account ID
|
73
|
+
* const aliceEntries = feed[aliceAccount.id];
|
74
|
+
* console.log(aliceEntries.value); // Latest value from Alice
|
75
|
+
*
|
76
|
+
* // Iterate through all accounts' entries
|
77
|
+
* for (const [accountId, entries] of Object.entries(feed)) {
|
78
|
+
* console.log(`Latest entry from ${accountId}:`, entries.value);
|
79
|
+
*
|
80
|
+
* // Access all entries from this account
|
81
|
+
* for (const entry of entries.all) {
|
82
|
+
* console.log(`Entry made at ${entry.madeAt}:`, entry.value);
|
83
|
+
* }
|
84
|
+
* }
|
85
|
+
* ```
|
86
|
+
*
|
87
|
+
* @category Content
|
88
|
+
*/
|
89
|
+
[key: ID<Account>]: CoFeedEntry<Item>;
|
90
|
+
/**
|
91
|
+
* The current account's view of this `CoFeed`
|
92
|
+
* @category Content
|
93
|
+
*/
|
94
|
+
get byMe(): CoFeedEntry<Item> | undefined;
|
95
|
+
/**
|
96
|
+
* The per-session view of this `CoFeed`
|
97
|
+
* @category Content
|
98
|
+
*/
|
99
|
+
perSession: {
|
100
|
+
[key: SessionID]: CoFeedEntry<Item>;
|
101
|
+
};
|
102
|
+
/**
|
103
|
+
* The current session's view of this `CoFeed`
|
104
|
+
*
|
105
|
+
* This is a shortcut for `this.perSession` where the session ID is the current session ID.
|
106
|
+
*
|
107
|
+
* @category Content
|
108
|
+
*/
|
109
|
+
get inCurrentSession(): CoFeedEntry<Item> | undefined;
|
110
|
+
constructor(options: {
|
111
|
+
init: Item[];
|
112
|
+
owner: Account | Group;
|
113
|
+
} | {
|
114
|
+
fromRaw: RawCoStream;
|
115
|
+
});
|
116
|
+
/**
|
117
|
+
* Create a new `CoFeed`
|
118
|
+
* @category Creation
|
119
|
+
*/
|
120
|
+
static create<S extends CoFeed>(this: CoValueClass<S>, init: S extends CoFeed<infer Item> ? UnCo<Item>[] : never, options?: {
|
121
|
+
owner: Account | Group;
|
122
|
+
} | Account | Group): S;
|
123
|
+
/**
|
124
|
+
* Push items to this `CoFeed`
|
125
|
+
*
|
126
|
+
* Items are appended to the current session's log. Each session (tab, device, app instance)
|
127
|
+
* maintains its own append-only log, which is then aggregated into the per-account view.
|
128
|
+
*
|
129
|
+
* @example
|
130
|
+
* ```ts
|
131
|
+
* // Adds items to current session's log
|
132
|
+
* feed.push("item1", "item2");
|
133
|
+
*
|
134
|
+
* // View items from current session
|
135
|
+
* console.log(feed.inCurrentSession);
|
136
|
+
*
|
137
|
+
* // View aggregated items from all sessions for current account
|
138
|
+
* console.log(feed.byMe);
|
139
|
+
* ```
|
140
|
+
*
|
141
|
+
* @category Content
|
142
|
+
*/
|
143
|
+
push(...items: Item[]): void;
|
144
|
+
private pushItem;
|
145
|
+
/**
|
146
|
+
* Get a JSON representation of the `CoFeed`
|
147
|
+
* @category
|
148
|
+
*/
|
149
|
+
toJSON(): {
|
150
|
+
id: string;
|
151
|
+
_type: "CoStream";
|
152
|
+
[key: string]: unknown;
|
153
|
+
in: {
|
154
|
+
[key: string]: unknown;
|
155
|
+
};
|
156
|
+
};
|
157
|
+
/** @internal */
|
158
|
+
[inspect](): {
|
159
|
+
id: string;
|
160
|
+
_type: "CoStream";
|
161
|
+
[key: string]: unknown;
|
162
|
+
in: {
|
163
|
+
[key: string]: unknown;
|
164
|
+
};
|
165
|
+
};
|
166
|
+
/** @internal */
|
167
|
+
static schema<V extends CoFeed>(this: {
|
168
|
+
new (...args: any): V;
|
169
|
+
} & typeof CoFeed, def: {
|
170
|
+
[ItemsSym]: V["_schema"][ItemsSym];
|
171
|
+
}): void;
|
172
|
+
/**
|
173
|
+
* Load a `CoFeed`
|
174
|
+
* @category Subscription & Loading
|
175
|
+
*/
|
176
|
+
static load<S extends CoFeed, Depth>(this: CoValueClass<S>, id: ID<S>, depth: Depth & DepthsIn<S>): Promise<DeeplyLoaded<S, Depth> | undefined>;
|
177
|
+
static load<S extends CoFeed, Depth>(this: CoValueClass<S>, id: ID<S>, as: Account, depth: Depth & DepthsIn<S>): Promise<DeeplyLoaded<S, Depth> | undefined>;
|
178
|
+
/**
|
179
|
+
* Subscribe to a `CoFeed`, when you have an ID but don't have a `CoFeed` instance yet
|
180
|
+
* @category Subscription & Loading
|
181
|
+
*/
|
182
|
+
static subscribe<S extends CoFeed, Depth>(this: CoValueClass<S>, id: ID<S>, depth: Depth & DepthsIn<S>, listener: (value: DeeplyLoaded<S, Depth>) => void): () => void;
|
183
|
+
static subscribe<S extends CoFeed, Depth>(this: CoValueClass<S>, id: ID<S>, as: Account, depth: Depth & DepthsIn<S>, listener: (value: DeeplyLoaded<S, Depth>) => void): () => void;
|
184
|
+
/**
|
185
|
+
* Ensure a `CoFeed` is loaded to the specified depth
|
186
|
+
*
|
187
|
+
* @returns A new instance of the same CoFeed that's loaded to the specified depth,
|
188
|
+
* or undefined if it cannot be loaded that deeply
|
189
|
+
* @category Subscription & Loading
|
190
|
+
*/
|
191
|
+
ensureLoaded<S extends CoFeed, Depth>(this: S, depth: Depth & DepthsIn<S>): Promise<DeeplyLoaded<S, Depth>>;
|
192
|
+
/**
|
193
|
+
* An instance method to subscribe to an existing `CoFeed`
|
194
|
+
*
|
195
|
+
* No need to provide an ID or Account since they're already part of the instance.
|
196
|
+
* @category Subscription & Loading
|
197
|
+
*/
|
198
|
+
subscribe<S extends CoFeed, Depth>(this: S, depth: Depth & DepthsIn<S>, listener: (value: DeeplyLoaded<S, Depth>) => void): () => void;
|
199
|
+
/**
|
200
|
+
* Wait for the `CoFeed` to be uploaded to the other peers.
|
201
|
+
*
|
202
|
+
* @category Subscription & Loading
|
203
|
+
*/
|
204
|
+
waitForSync(options?: {
|
205
|
+
timeout?: number;
|
206
|
+
}): Promise<unknown[]>;
|
207
|
+
}
|
208
|
+
/**
|
209
|
+
* The proxy handler for `CoFeed` instances
|
210
|
+
* @internal
|
211
|
+
*/
|
212
|
+
export declare const CoStreamProxyHandler: ProxyHandler<CoFeed>;
|
213
|
+
/** @deprecated Use FileStream instead */
|
214
|
+
export { FileStream as BinaryCoStream };
|
215
|
+
/**
|
216
|
+
* FileStreams are `CoFeed`s that contain binary data, collaborative versions of `Blob`s.
|
217
|
+
*
|
218
|
+
* @categoryDescription Declaration
|
219
|
+
* `FileStream` can be referenced in schemas.
|
220
|
+
*
|
221
|
+
* ```ts
|
222
|
+
* import { co, FileStream } from "jazz-tools";
|
223
|
+
*
|
224
|
+
* class MyCoMap extends CoMap {
|
225
|
+
* file = co.ref(FileStream);
|
226
|
+
* }
|
227
|
+
* ```
|
228
|
+
*
|
229
|
+
* @category CoValues
|
230
|
+
*/
|
231
|
+
export declare class FileStream extends CoValueBase implements CoValue {
|
232
|
+
/**
|
233
|
+
* The ID of this `FileStream`
|
234
|
+
* @category Content
|
235
|
+
*/
|
236
|
+
id: ID<this>;
|
237
|
+
/** @category Type Helpers */
|
238
|
+
_type: "BinaryCoStream";
|
239
|
+
/** @internal */
|
240
|
+
_raw: RawBinaryCoStream;
|
241
|
+
constructor(options: {
|
242
|
+
owner: Account | Group;
|
243
|
+
} | {
|
244
|
+
fromRaw: RawBinaryCoStream;
|
245
|
+
});
|
246
|
+
/**
|
247
|
+
* Create a new empty `FileStream` instance.
|
248
|
+
*
|
249
|
+
* @param options - Configuration options for the new FileStream
|
250
|
+
* @param options.owner - The Account or Group that will own this FileStream and control access rights
|
251
|
+
*
|
252
|
+
* @example
|
253
|
+
* ```typescript
|
254
|
+
* // Create owned by an account
|
255
|
+
* const stream = FileStream.create({ owner: myAccount });
|
256
|
+
*
|
257
|
+
* // Create owned by a group
|
258
|
+
* const stream = FileStream.create({ owner: teamGroup });
|
259
|
+
*
|
260
|
+
* // Create with implicit owner
|
261
|
+
* const stream = FileStream.create(myAccount);
|
262
|
+
* ```
|
263
|
+
*
|
264
|
+
* @remarks
|
265
|
+
* For uploading an existing file or blob, use {@link FileStream.createFromBlob} instead.
|
266
|
+
*
|
267
|
+
* @category Creation
|
268
|
+
*/
|
269
|
+
static create<S extends FileStream>(this: CoValueClass<S>, options?: {
|
270
|
+
owner?: Account | Group;
|
271
|
+
} | Account | Group): S;
|
272
|
+
getChunks(options?: {
|
273
|
+
allowUnfinished?: boolean;
|
274
|
+
}): (BinaryStreamInfo & {
|
275
|
+
chunks: Uint8Array[];
|
276
|
+
finished: boolean;
|
277
|
+
}) | undefined;
|
278
|
+
isBinaryStreamEnded(): boolean;
|
279
|
+
start(options: BinaryStreamInfo): void;
|
280
|
+
push(data: Uint8Array): void;
|
281
|
+
end(): void;
|
282
|
+
toBlob(options?: {
|
283
|
+
allowUnfinished?: boolean;
|
284
|
+
}): Blob | undefined;
|
285
|
+
/**
|
286
|
+
* Load a `FileStream` as a `Blob`
|
287
|
+
*
|
288
|
+
* @category Content
|
289
|
+
*/
|
290
|
+
static loadAsBlob(id: ID<FileStream>, options?: {
|
291
|
+
allowUnfinished?: boolean;
|
292
|
+
}): Promise<Blob | undefined>;
|
293
|
+
static loadAsBlob(id: ID<FileStream>, as: Account, options?: {
|
294
|
+
allowUnfinished?: boolean;
|
295
|
+
}): Promise<Blob | undefined>;
|
296
|
+
/**
|
297
|
+
* Create a `FileStream` from a `Blob` or `File`
|
298
|
+
*
|
299
|
+
* @example
|
300
|
+
* ```ts
|
301
|
+
* import { co, FileStream } from "jazz-tools";
|
302
|
+
*
|
303
|
+
* const fileStream = await FileStream.createFromBlob(file, {owner: group})
|
304
|
+
* ```
|
305
|
+
* @category Content
|
306
|
+
*/
|
307
|
+
static createFromBlob(blob: Blob | File, options?: {
|
308
|
+
owner?: Group | Account;
|
309
|
+
onProgress?: (progress: number) => void;
|
310
|
+
} | Account | Group): Promise<FileStream>;
|
311
|
+
/**
|
312
|
+
* Get a JSON representation of the `FileStream`
|
313
|
+
* @category Content
|
314
|
+
*/
|
315
|
+
toJSON(): {
|
316
|
+
id: string;
|
317
|
+
_type: "BinaryCoStream";
|
318
|
+
mimeType?: string;
|
319
|
+
totalSizeBytes?: number;
|
320
|
+
fileName?: string;
|
321
|
+
chunks?: Uint8Array[];
|
322
|
+
finished?: boolean;
|
323
|
+
};
|
324
|
+
/** @internal */
|
325
|
+
[inspect](): {
|
326
|
+
id: string;
|
327
|
+
_type: "BinaryCoStream";
|
328
|
+
mimeType?: string;
|
329
|
+
totalSizeBytes?: number;
|
330
|
+
fileName?: string;
|
331
|
+
chunks?: Uint8Array[];
|
332
|
+
finished?: boolean;
|
333
|
+
};
|
334
|
+
/**
|
335
|
+
* Load a `FileStream`
|
336
|
+
* @category Subscription & Loading
|
337
|
+
*/
|
338
|
+
static load<C extends FileStream, Depth>(this: CoValueClass<C>, id: ID<C>, depth: Depth & DepthsIn<C>): Promise<DeeplyLoaded<C, Depth> | undefined>;
|
339
|
+
static load<C extends FileStream, Depth>(this: CoValueClass<C>, id: ID<C>, as: Account, depth: Depth & DepthsIn<C>): Promise<DeeplyLoaded<C, Depth> | undefined>;
|
340
|
+
/**
|
341
|
+
* Subscribe to a `FileStream`, when you have an ID but don't have a `FileStream` instance yet
|
342
|
+
* @category Subscription & Loading
|
343
|
+
*/
|
344
|
+
static subscribe<C extends FileStream, Depth>(this: CoValueClass<C>, id: ID<C>, depth: Depth & DepthsIn<C>, listener: (value: DeeplyLoaded<C, Depth>) => void): () => void;
|
345
|
+
static subscribe<C extends FileStream, Depth>(this: CoValueClass<C>, id: ID<C>, as: Account, depth: Depth & DepthsIn<C>, listener: (value: DeeplyLoaded<C, Depth>) => void): () => void;
|
346
|
+
ensureLoaded<B extends FileStream, Depth>(this: B, depth: Depth & DepthsIn<B>): Promise<DeeplyLoaded<B, Depth> | undefined>;
|
347
|
+
/**
|
348
|
+
* An instance method to subscribe to an existing `FileStream`
|
349
|
+
* @category Subscription & Loading
|
350
|
+
*/
|
351
|
+
subscribe<B extends FileStream, Depth>(this: B, depth: Depth & DepthsIn<B>, listener: (value: DeeplyLoaded<B, Depth>) => void): () => void;
|
352
|
+
/**
|
353
|
+
* Wait for the `FileStream` to be uploaded to the other peers.
|
354
|
+
*
|
355
|
+
* @category Subscription & Loading
|
356
|
+
*/
|
357
|
+
waitForSync(options?: {
|
358
|
+
timeout?: number;
|
359
|
+
}): Promise<unknown[]>;
|
360
|
+
}
|
361
|
+
//# sourceMappingURL=coFeed.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"coFeed.d.ts","sourceRoot":"","sources":["../../src/coValues/coFeed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAChB,mBAAmB,EAGnB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACV,MAAM,QAAQ,CAAC;AAGhB,OAAO,KAAK,EAEV,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,EAAE,EACF,IAAI,EAEJ,SAAS,EACT,IAAI,EACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,QAAQ,EACR,GAAG,EAIH,OAAO,EAQR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,0CAA0C;AAC1C,MAAM,MAAM,aAAa,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAEpD,MAAM,MAAM,WAAW,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG;IACxD,GAAG,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;CAChD,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAEhE,MAAM,MAAM,iBAAiB,CAAC,IAAI,IAAI;IACpC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3E,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACxE,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC;IACb,EAAE,EAAE,mBAAmB,CAAC,aAAa,CAAC;CACvC,CAAC;AAEF,qCAAqC;AACrC,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,CAAC;AAE9B;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,MAAM,CAAC,IAAI,GAAG,GAAG,CAAE,SAAQ,WAAY,YAAW,OAAO;IACpE;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;IAM5D;;2BAEuB;IACf,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,6BAA6B;IACrB,KAAK,EAAE,UAAU,CAAC;IAI1B,0BAA0B;IAClB,IAAI,EAAE,WAAW,CAAC;IAE1B,wEAAwE;IACxE,CAAC,QAAQ,CAAC,EAAG,IAAI,CAAC;IAClB,gBAAgB;IAEhB,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;IACpB,gBAAgB;IAChB,IAAI,OAAO,IAAI;QACb,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;KAC7B,CAEA;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEtC;;;OAGG;IACH,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAMxC;IAED;;;OAGG;IACH,UAAU,EAAG;QACX,CAAC,GAAG,EAAE,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;KACrC,CAAC;IAEF;;;;;;OAMG;IACH,IAAI,gBAAgB,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAMpD;gBAGC,OAAO,EACH;QAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,GACxC;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE;IAiB9B;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAC5B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,IAAI,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EACzD,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,GAAG,OAAO,GAAG,KAAK;IAoBxD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE;IAMrB,OAAO,CAAC,QAAQ;IAYhB;;;OAGG;IACH,MAAM,IAAI;QACR,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,UAAU,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB,EAAE,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC;KAChC;IA2BD,gBAAgB;IAChB,CAAC,OAAO,CAAC,IAAI;QACX,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,UAAU,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB,EAAE,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC;KAChC;IAID,gBAAgB;IAChB,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAE5B,IAAI,EAAE;QAAE,KAAK,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,MAAM,EAC/C,GAAG,EAAE;QAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAA;KAAE;IAM7C;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EACjC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EACjC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;IAU9C;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EACtC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAChD,MAAM,IAAI;IACb,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EACtC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAChD,MAAM,IAAI;IAmBb;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAClC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAIlC;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAC/B,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAChD,MAAM,IAAI;IAIb;;;;OAIG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;CAGF;AAoED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,YAAY,CAAC,MAAM,CAsFrD,CAAC;AAuEF,yCAAyC;AACzC,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,CAAC;AAExC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAW,SAAQ,WAAY,YAAW,OAAO;IAC5D;;;OAGG;IACK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,6BAA6B;IACrB,KAAK,EAAE,gBAAgB,CAAC;IAChC,gBAAgB;IACR,IAAI,EAAE,iBAAiB,CAAC;gBAG9B,OAAO,EACH;QACE,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;KACxB,GACD;QACE,OAAO,EAAE,iBAAiB,CAAC;KAC5B;IAuBP;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,UAAU,EAChC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,GAAG,OAAO,GAAG,KAAK;IAKzD,SAAS,CAAC,OAAO,CAAC,EAAE;QAClB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GACG,CAAC,gBAAgB,GAAG;QAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,GAChE,SAAS;IAIb,mBAAmB,IAAI,OAAO;IAI9B,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAItC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI5B,GAAG,IAAI,IAAI;IAIX,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS;IAajE;;;;OAIG;WACU,UAAU,CACrB,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAClB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GACA,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;WACf,UAAU,CACrB,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAClB,EAAE,EAAE,OAAO,EACX,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GACA,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAyC5B;;;;;;;;;;OAUG;WACU,cAAc,CACzB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,CAAC,EACJ;QACE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;QACxB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;KACzC,GACD,OAAO,GACP,KAAK,GACR,OAAO,CAAC,UAAU,CAAC;IAyCtB;;;OAGG;IACH,MAAM,IAAI;QACR,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,gBAAgB,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB;IAQD,gBAAgB;IAChB,CAAC,OAAO,CAAC;YAhBH,MAAM;eACH,gBAAgB;mBACZ,MAAM;yBACA,MAAM;mBACZ,MAAM;iBACR,UAAU,EAAE;mBACV,OAAO;;IAcpB;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EACrC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EACrC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;IAU9C;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAC1C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAChD,MAAM,IAAI;IACb,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAC1C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAChD,MAAM,IAAI;IAmBb,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EACtC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;IAI9C;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EACnC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAChD,MAAM,IAAI;IAIb;;;;OAIG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;CAG3C"}
|