@fileverse-dev/ddoc 4.2.0-durability-4 → 4.2.0-durability-6
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/dist/{index-DAyn7Bvw.mjs → index-BoiAnq5T.mjs} +1275 -1243
- package/dist/{index-BBUrVb_K.mjs → index-DEIvhJSy.mjs} +1 -1
- package/dist/index.es.js +1 -1
- package/dist/{markdown-source-pane-edyRbYf5.mjs → markdown-source-pane-Dmuateha.mjs} +2 -2
- package/dist/package/sync-local/SyncManager.d.ts +3 -0
- package/dist/package/sync-local/socketClient.d.ts +12 -1
- package/dist/package/sync-local/types/index.d.ts +19 -5
- package/dist/{split-view-toolbar-CJ28ino3.mjs → split-view-toolbar-CosVVtKe.mjs} +2 -2
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { k as Ql, b as Zl, s as eh } from "./index-
|
|
1
|
+
import { k as Ql, b as Zl, s as eh } from "./index-BoiAnq5T.mjs";
|
|
2
2
|
let An = [], Xr = [];
|
|
3
3
|
(() => {
|
|
4
4
|
let s = "lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((e) => e ? parseInt(e, 36) : 1);
|
package/dist/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as e, a as o, E as t, P as d, f as r, h as i, m as n, e as E, c as m, d as u, u as C, v as l } from "./index-
|
|
1
|
+
import { D as e, a as o, E as t, P as d, f as r, h as i, m as n, e as E, c as m, d as u, u as C, v as l } from "./index-BoiAnq5T.mjs";
|
|
2
2
|
export {
|
|
3
3
|
e as DdocEditor,
|
|
4
4
|
o as DdocExportModal,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var Vr = Object.defineProperty;
|
|
2
2
|
var Wr = (t, e, O) => e in t ? Vr(t, e, { enumerable: !0, configurable: !0, writable: !0, value: O }) : t[e] = O;
|
|
3
3
|
var gt = (t, e, O) => Wr(t, typeof e != "symbol" ? e + "" : e, O);
|
|
4
|
-
import { j as Cr } from "./index-
|
|
4
|
+
import { j as Cr } from "./index-BoiAnq5T.mjs";
|
|
5
5
|
import { useRef as pe, useEffect as St } from "react";
|
|
6
|
-
import { s as y, A as pO, T as dO, a as Gr, S as et, b as Lr, P as fO, E as j, i as QO, c as _, D as le, k as tt, F as Ar, M as Pt, W as Er, R as Ur, d as mO, N as oe, e as V, f as Mr, g as Ot, h as ce, p as $O, j as Y, t as h, l as Ir, I as rt, L as at, m as ye, n as ue, o as Qe, q as gO, r as te, u as SO, v as Br, w as Nr, x as PO, y as kO, z as Dr, B as Fr, C as Kr, G as Oe, H as ZO, J as Jr, K as kt, O as Hr, Q as ea, U as ta, V as Oa, X as ra, Y as aa, Z as ia, _ as sa, $ as na, a0 as la, a1 as oa, a2 as ca } from "./index-
|
|
6
|
+
import { s as y, A as pO, T as dO, a as Gr, S as et, b as Lr, P as fO, E as j, i as QO, c as _, D as le, k as tt, F as Ar, M as Pt, W as Er, R as Ur, d as mO, N as oe, e as V, f as Mr, g as Ot, h as ce, p as $O, j as Y, t as h, l as Ir, I as rt, L as at, m as ye, n as ue, o as Qe, q as gO, r as te, u as SO, v as Br, w as Nr, x as PO, y as kO, z as Dr, B as Fr, C as Kr, G as Oe, H as ZO, J as Jr, K as kt, O as Hr, Q as ea, U as ta, V as Oa, X as ra, Y as aa, Z as ia, _ as sa, $ as na, a0 as la, a1 as oa, a2 as ca } from "./index-DEIvhJSy.mjs";
|
|
7
7
|
class ua {
|
|
8
8
|
/**
|
|
9
9
|
Create a new completion context. (Mostly useful for testing
|
|
@@ -14,6 +14,7 @@ export declare class SyncManager {
|
|
|
14
14
|
private mirrorIdleTimer;
|
|
15
15
|
private readonly MIRROR_IDLE_MS;
|
|
16
16
|
private isOwner;
|
|
17
|
+
private joinOnly;
|
|
17
18
|
private updateQueue;
|
|
18
19
|
private contentTobeAppliedQueue;
|
|
19
20
|
private isProcessing;
|
|
@@ -55,6 +56,8 @@ export declare class SyncManager {
|
|
|
55
56
|
*/
|
|
56
57
|
private sendUpdateBatch;
|
|
57
58
|
private isRevocationResponse;
|
|
59
|
+
private classifyRevocation;
|
|
60
|
+
private handleWriteRevocation;
|
|
58
61
|
private maybeAuthorSnapshotAfterSend;
|
|
59
62
|
private scheduleMirror;
|
|
60
63
|
private authorMirror;
|
|
@@ -14,8 +14,16 @@ interface ISocketClientConfig {
|
|
|
14
14
|
identityToken?: string;
|
|
15
15
|
identityContractAddress?: string;
|
|
16
16
|
editUcan?: string;
|
|
17
|
-
refreshEditClaim?: () => Promise<
|
|
17
|
+
refreshEditClaim?: () => Promise<{
|
|
18
|
+
status: 'ok';
|
|
19
|
+
token: string;
|
|
20
|
+
} | {
|
|
21
|
+
status: 'demoted';
|
|
22
|
+
} | {
|
|
23
|
+
status: 'unavailable';
|
|
24
|
+
}>;
|
|
18
25
|
actorHandle?: string;
|
|
26
|
+
joinOnly?: boolean;
|
|
19
27
|
onHandshakeData?: (response: {
|
|
20
28
|
data: AckResponse;
|
|
21
29
|
roomKey: string;
|
|
@@ -53,7 +61,9 @@ export declare class SocketClient {
|
|
|
53
61
|
private identityContractAddress?;
|
|
54
62
|
private editUcan?;
|
|
55
63
|
private refreshEditClaim?;
|
|
64
|
+
private lastGoodEditUcan?;
|
|
56
65
|
private actorHandle?;
|
|
66
|
+
private joinOnly?;
|
|
57
67
|
private roomKey;
|
|
58
68
|
private roomInfo?;
|
|
59
69
|
private awareness;
|
|
@@ -80,6 +90,7 @@ export declare class SocketClient {
|
|
|
80
90
|
setDocumentMeta(): Promise<void>;
|
|
81
91
|
broadcastAwareness(awarenessUpdate: string): Promise<void>;
|
|
82
92
|
disconnect: () => void;
|
|
93
|
+
reauth: () => void;
|
|
83
94
|
terminateSession: () => Promise<void>;
|
|
84
95
|
flushBeacon(mergedUpdate: string): void;
|
|
85
96
|
private getCollaborationKeyPair;
|
|
@@ -25,12 +25,24 @@ export interface CollabConnectionConfig {
|
|
|
25
25
|
* server admits this connection as a GP-rail editor. Opaque to the package. */
|
|
26
26
|
editUcan?: string;
|
|
27
27
|
/** Host signal (non-owner editor): re-mints a CURRENT-epoch editUcan. Called at every /auth
|
|
28
|
-
* (incl. reconnect after a force-drop)
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
refreshEditClaim?: () => Promise<
|
|
28
|
+
* (incl. reconnect after a force-drop). Tri-state: `ok` (fresh token; overrides the static
|
|
29
|
+
* `editUcan`), `demoted` (no longer an editor → terminal, drop to viewer), or `unavailable`
|
|
30
|
+
* (transient/network → retry on the last-good claim). Opaque to the package. */
|
|
31
|
+
refreshEditClaim?: () => Promise<{
|
|
32
|
+
status: 'ok';
|
|
33
|
+
token: string;
|
|
34
|
+
} | {
|
|
35
|
+
status: 'demoted';
|
|
36
|
+
} | {
|
|
37
|
+
status: 'unavailable';
|
|
38
|
+
}>;
|
|
32
39
|
/** Host signal: an anonymous per-connection actor handle (public rail). Record-only; opaque. */
|
|
33
40
|
actorHandle?: string;
|
|
41
|
+
/** Host signal (non-creator workspace member): join-only. The server never creates or
|
|
42
|
+
* binds a session for this connection and caps the role at editor; every handshake
|
|
43
|
+
* rejection resolves to a quiet terminated state ('ROOM_NOT_ESTABLISHED' when the room
|
|
44
|
+
* was never established, 'JOIN_REJECTED' otherwise) instead of an error. */
|
|
45
|
+
joinOnly?: boolean;
|
|
34
46
|
/** Host signal (editor): produces the view-plane mirror ciphertext from the live Yjs state. The app
|
|
35
47
|
* AES-GCM-encrypts `{ file: base64(yjsUpdate), source }` under the fileKey in the publish wire
|
|
36
48
|
* format. Absent ⇒ the mirror is not written. The package never sees the fileKey or the crypto. */
|
|
@@ -156,7 +168,8 @@ export declare enum ServerErrorCode {
|
|
|
156
168
|
DB_ERROR = "DB_ERROR",
|
|
157
169
|
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
158
170
|
JOIN_DISABLED = "JOIN_DISABLED",
|
|
159
|
-
EDIT_REVOKED = "EDIT_REVOKED"
|
|
171
|
+
EDIT_REVOKED = "EDIT_REVOKED",
|
|
172
|
+
ROOM_NOT_ESTABLISHED = "ROOM_NOT_ESTABLISHED"
|
|
160
173
|
}
|
|
161
174
|
export interface AckResponse<T = Record<string, any>> {
|
|
162
175
|
status: boolean;
|
|
@@ -250,4 +263,5 @@ export interface IAuthArgs {
|
|
|
250
263
|
identityContractAddress?: string;
|
|
251
264
|
editUcan?: string;
|
|
252
265
|
actorHandle?: string;
|
|
266
|
+
joinOnly?: boolean;
|
|
253
267
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { j as d } from "./index-
|
|
1
|
+
import { j as d } from "./index-BoiAnq5T.mjs";
|
|
2
2
|
import { useRef as I, useState as N, useEffect as D } from "react";
|
|
3
3
|
import { DynamicDropdown as E, Tooltip as R, IconButton as O } from "@fileverse/ui";
|
|
4
|
-
import { a3 as A, a4 as P, c as y } from "./index-
|
|
4
|
+
import { a3 as A, a4 as P, c as y } from "./index-DEIvhJSy.mjs";
|
|
5
5
|
const p = (e, t, o = t) => {
|
|
6
6
|
const { state: s } = e, l = s.changeByRange((n) => {
|
|
7
7
|
const u = s.sliceDoc(n.from, n.to), r = s.sliceDoc(
|