@rgby/collab-vue 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ export * from './useCollab.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './useCollab.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,216 @@
1
+ import { type InjectionKey, type Ref, type ShallowRef, type ComputedRef } from 'vue';
2
+ import * as Y from 'yjs';
3
+ import { CollabClient, CollabProvider, type CollabClientOptions, type SessionData } from '@rgby/collab-core';
4
+ import type { Editor, EditorOptions } from '@tiptap/core';
5
+ export declare const CollabClientKey: InjectionKey<CollabClient>;
6
+ export declare function provideCollabClient(optionsOrInstance: CollabClientOptions | CollabClient): CollabClient;
7
+ export declare function useCollabClient(): CollabClient;
8
+ export interface UseDocumentReturn {
9
+ doc: ShallowRef<Y.Doc>;
10
+ provider: ShallowRef<CollabProvider | null>;
11
+ status: Ref<'disconnected' | 'connecting' | 'connected'>;
12
+ synced: Ref<boolean>;
13
+ persistenceReady: Ref<boolean>;
14
+ undoManager: ShallowRef<Y.UndoManager | null>;
15
+ connect: () => void;
16
+ disconnect: () => void;
17
+ transact: (callback: (txn: Y.Transaction) => void) => void;
18
+ undo: () => void;
19
+ redo: () => void;
20
+ clearLocalData: () => Promise<void>;
21
+ }
22
+ export declare function useDocument(spaceId: string, documentId: string): UseDocumentReturn;
23
+ export declare function useSyncedMap<T = any>(doc: ShallowRef<Y.Doc>, mapName: string): {
24
+ data: Record<string, T>;
25
+ set: (key: string, value: T) => T | undefined;
26
+ remove: (key: string) => void | undefined;
27
+ clear: () => void | undefined;
28
+ get: (key: string) => T | undefined;
29
+ yMap: ComputedRef<Y.Map<T> | null>;
30
+ };
31
+ export declare function useSyncedArray<T = any>(doc: ShallowRef<Y.Doc>, arrayName: string): {
32
+ list: Ref<T[], T[]>;
33
+ push: (item: T) => void | undefined;
34
+ unshift: (item: T) => void | undefined;
35
+ insert: (index: number, items: T[]) => void | undefined;
36
+ deleteAt: (index: number, length?: number) => void | undefined;
37
+ replace: (index: number, item: T) => void;
38
+ yArray: ComputedRef<Y.Array<T> | null>;
39
+ };
40
+ export declare function useSyncedText(doc: ShallowRef<Y.Doc>, textName: string): {
41
+ text: Ref<string, string>;
42
+ insert: (index: number, content: string, attributes?: Record<string, any>) => void | undefined;
43
+ delete: (index: number, length: number) => void | undefined;
44
+ format: (index: number, length: number, attributes: Record<string, any>) => void | undefined;
45
+ yText: ComputedRef<Y.Text | null>;
46
+ };
47
+ export declare function useSyncedXml(doc: ShallowRef<Y.Doc>, xmlName: string): {
48
+ yXml: ShallowRef<Y.XmlFragment | null, Y.XmlFragment | null>;
49
+ };
50
+ export interface AwarenessUser {
51
+ clientId: number;
52
+ user: {
53
+ name: string;
54
+ color: string;
55
+ avatar?: string;
56
+ };
57
+ [key: string]: any;
58
+ }
59
+ export declare function useAwareness(provider: ShallowRef<CollabProvider | null>): {
60
+ states: Ref<{
61
+ [x: string]: any;
62
+ clientId: number;
63
+ user: {
64
+ name: string;
65
+ color: string;
66
+ avatar?: string | undefined;
67
+ };
68
+ }[], AwarenessUser[] | {
69
+ [x: string]: any;
70
+ clientId: number;
71
+ user: {
72
+ name: string;
73
+ color: string;
74
+ avatar?: string | undefined;
75
+ };
76
+ }[]>;
77
+ currentUser: Ref<{
78
+ [x: string]: any;
79
+ clientId: number;
80
+ user: {
81
+ name: string;
82
+ color: string;
83
+ avatar?: string | undefined;
84
+ };
85
+ } | null, AwarenessUser | {
86
+ [x: string]: any;
87
+ clientId: number;
88
+ user: {
89
+ name: string;
90
+ color: string;
91
+ avatar?: string | undefined;
92
+ };
93
+ } | null>;
94
+ setLocalState: (state: Partial<AwarenessUser["user"] | any>) => void;
95
+ };
96
+ export declare function useLiveComments(provider: ShallowRef<CollabProvider | null>, spaceId: string, documentId: string): {
97
+ threads: Ref<any[], any[]>;
98
+ loading: Ref<boolean, boolean>;
99
+ createComment: (content: string, anchor?: any, parentId?: string) => Promise<void>;
100
+ refresh: () => Promise<void>;
101
+ };
102
+ export interface UseAuthReturn {
103
+ session: ComputedRef<SessionData | null>;
104
+ user: ComputedRef<SessionData['user'] | null>;
105
+ isAuthenticated: ComputedRef<boolean>;
106
+ login: (email: string, password: string) => Promise<SessionData>;
107
+ signup: (email: string, password: string, name: string) => Promise<SessionData>;
108
+ logout: () => Promise<void>;
109
+ }
110
+ export declare function useAuth(providedClient?: CollabClient): UseAuthReturn;
111
+ export interface UseTiptapEditorOptions {
112
+ spaceId: ComputedRef<string> | Ref<string> | string;
113
+ documentId: ComputedRef<string> | Ref<string> | string;
114
+ extensions?: any[];
115
+ editorOptions?: Partial<EditorOptions>;
116
+ user?: {
117
+ name?: string;
118
+ color?: string;
119
+ };
120
+ onReady?: (editor: Editor) => void;
121
+ autoConnect?: boolean;
122
+ }
123
+ export interface UseTiptapEditorReturn {
124
+ editor: ShallowRef<Editor | null>;
125
+ doc: ShallowRef<Y.Doc>;
126
+ provider: ShallowRef<CollabProvider | null>;
127
+ status: Ref<'disconnected' | 'connecting' | 'connected'>;
128
+ synced: Ref<boolean>;
129
+ persistenceReady: Ref<boolean>;
130
+ loading: Ref<boolean>;
131
+ error: Ref<string>;
132
+ connect: () => Promise<void>;
133
+ disconnect: () => void;
134
+ destroy: () => void;
135
+ clearLocalData: () => Promise<void>;
136
+ }
137
+ export declare function useTiptapEditor(options: UseTiptapEditorOptions): UseTiptapEditorReturn;
138
+ export declare function useCollaborativeDocument(spaceId: string, documentId: string): {
139
+ doc: ShallowRef<Y.Doc>;
140
+ provider: ShallowRef<CollabProvider | null>;
141
+ status: Ref<"disconnected" | "connecting" | "connected", "disconnected" | "connecting" | "connected">;
142
+ synced: Ref<boolean, boolean>;
143
+ connect: () => void;
144
+ disconnect: () => void;
145
+ undo: () => void;
146
+ redo: () => void;
147
+ transact: (callback: (txn: Y.Transaction) => void) => void;
148
+ canUndo: ComputedRef<number | boolean>;
149
+ canRedo: ComputedRef<number | boolean>;
150
+ users: Ref<{
151
+ [x: string]: any;
152
+ clientId: number;
153
+ user: {
154
+ name: string;
155
+ color: string;
156
+ avatar?: string | undefined;
157
+ };
158
+ }[], AwarenessUser[] | {
159
+ [x: string]: any;
160
+ clientId: number;
161
+ user: {
162
+ name: string;
163
+ color: string;
164
+ avatar?: string | undefined;
165
+ };
166
+ }[]>;
167
+ me: Ref<{
168
+ [x: string]: any;
169
+ clientId: number;
170
+ user: {
171
+ name: string;
172
+ color: string;
173
+ avatar?: string | undefined;
174
+ };
175
+ } | null, AwarenessUser | {
176
+ [x: string]: any;
177
+ clientId: number;
178
+ user: {
179
+ name: string;
180
+ color: string;
181
+ avatar?: string | undefined;
182
+ };
183
+ } | null>;
184
+ updatePresence: (state: Partial<AwarenessUser["user"] | any>) => void;
185
+ comments: Ref<any[], any[]>;
186
+ loadingComments: Ref<boolean, boolean>;
187
+ createComment: (content: string, anchor?: any, parentId?: string) => Promise<void>;
188
+ useMap: <T>(name: string) => {
189
+ data: Record<string, T>;
190
+ set: (key: string, value: T) => T | undefined;
191
+ remove: (key: string) => void | undefined;
192
+ clear: () => void | undefined;
193
+ get: (key: string) => T | undefined;
194
+ yMap: ComputedRef<Y.Map<T> | null>;
195
+ };
196
+ useArray: <T>(name: string) => {
197
+ list: Ref<T[], T[]>;
198
+ push: (item: T) => void | undefined;
199
+ unshift: (item: T) => void | undefined;
200
+ insert: (index: number, items: T[]) => void | undefined;
201
+ deleteAt: (index: number, length?: number) => void | undefined;
202
+ replace: (index: number, item: T) => void;
203
+ yArray: ComputedRef<Y.Array<T> | null>;
204
+ };
205
+ useText: (name: string) => {
206
+ text: Ref<string, string>;
207
+ insert: (index: number, content: string, attributes?: Record<string, any>) => void | undefined;
208
+ delete: (index: number, length: number) => void | undefined;
209
+ format: (index: number, length: number, attributes: Record<string, any>) => void | undefined;
210
+ yText: ComputedRef<Y.Text | null>;
211
+ };
212
+ useXml: (name: string) => {
213
+ yXml: ShallowRef<Y.XmlFragment | null, Y.XmlFragment | null>;
214
+ };
215
+ };
216
+ //# sourceMappingURL=useCollab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollab.d.ts","sourceRoot":"","sources":["../src/useCollab.ts"],"names":[],"mappings":"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"}