@fiduswriter/editor 0.1.21 → 0.1.22

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/README.md CHANGED
@@ -1,22 +1,77 @@
1
- # @fiduswriter/editor
1
+ <p align="center">
2
+ <img src="logo.svg" alt="@fiduswriter/editor" width="100" height="100">
3
+ </p>
2
4
 
3
- Fidus Writer browser editor.
5
+ <h1 align="center">@fiduswriter/editor</h1>
4
6
 
5
- This package implements the browser-based ProseMirror editor used by Fidus
6
- Writer, including real-time collaboration, comments, tracked changes,
7
- footnotes, citations, dialogs, menus, and end-to-end encryption.
7
+ <p align="center">Browser-based ProseMirror editor for Fidus Writer</p>
8
8
 
9
- ## Build
9
+ ---
10
+
11
+ ## What it does
12
+
13
+ The main browser-based collaborative editor for Fidus Writer. Built on
14
+ ProseMirror, it provides real-time collaboration, comments, tracked changes,
15
+ footnotes, citations, end-to-end encryption (E2EE), menus, dialogs, and
16
+ clipboard import/export.
17
+
18
+ ### Key features
19
+
20
+ - **Real-time collaboration** — WebSocket-based collaborative editing with
21
+ participant carets, diffs, and versioning
22
+ - **Track changes** — Accept/reject individual changes with full change history
23
+ - **Comments** — Threaded commenting with annotation marks and resolution
24
+ - **Footnotes** — Inline footnote editing with proper layout
25
+ - **Citations** — Citeproc-js based citation rendering with bibliography
26
+ generation
27
+ - **E2EE** — End-to-end encryption with key management and passphrase support
28
+ - **Clipboard** — Paste from Word, LibreOffice, Google Docs with format
29
+ preservation
30
+ - **Tables** — Full table editing with column/row operations
31
+ - **Figures & equations** — Image and math formula editing with captions
32
+ - **Code blocks** — Syntax-highlighted code block editing
33
+
34
+ ## Exports
35
+
36
+ | Export | Description |
37
+ |--------|-------------|
38
+ | `Editor` | Main editor class — orchestrates ProseMirror, collaboration, and all subsystems |
39
+
40
+ Additional modules are exported under subpaths:
41
+ - `./state_plugins` — ProseMirror state plugins
42
+ - `./state_plugins/*` — Individual plugins (inline math, references, links, etc.)
43
+ - `./menus` — Editor menus and toolbar
44
+ - `./dialogs` — Editor dialogs (figure, citation, link, table, etc.)
45
+ - `./keymap` — Keyboard shortcut bindings
46
+
47
+ ## Installation
48
+
49
+ ```bash
50
+ npm install @fiduswriter/editor
51
+ ```
52
+
53
+ ## Usage
54
+
55
+ ```ts
56
+ import {Editor} from "@fiduswriter/editor"
57
+
58
+ const editor = new Editor({
59
+ user: {id: 1, username: "author"},
60
+ documentId: 123,
61
+ websocketUrl: "wss://example.com/ws/"
62
+ })
63
+ ```
64
+
65
+ ## Development
10
66
 
11
67
  ```bash
12
- npm install
13
- npm run build
68
+ npm install # Install dependencies
69
+ npm run build # Compile TypeScript to dist/
70
+ npm run typecheck # Check types without emitting
71
+ npm run lint # Lint with ESLint
72
+ npm run format:check # Check formatting with Prettier
14
73
  ```
15
74
 
16
- ## Status
75
+ ## License
17
76
 
18
- This is an initial extraction from the main Fidus Writer Django app. The code is
19
- still JavaScript and will be migrated to TypeScript over time. Some
20
- functionality that was previously spread across Django apps (image editing,
21
- contacts, access rights) has been copied into this package for the first pass
22
- and may be reorganized later.
77
+ AGPL-3.0 see [LICENSE](LICENSE) for details.
package/dist/types.d.ts CHANGED
@@ -10,8 +10,8 @@ import type { Node, Schema } from "prosemirror-model";
10
10
  import type { Plugin, Transaction } from "prosemirror-state";
11
11
  import type { EditorView } from "prosemirror-view";
12
12
  import type { App as CommonApp, User } from "@fiduswriter/common";
13
- import type { BibDB, BibDBEntries, CommentData, ImageDB, ImageDBEntries } from "@fiduswriter/document";
14
- export type { BibDB, BibDBEntries, CommentData, ImageDB, ImageDBEntries };
13
+ import type { BibDB, BibDBEntries, CommentData, CSL, ImageDB, ImageDBEntries } from "@fiduswriter/document";
14
+ export type { BibDB, BibDBEntries, CommentData, CSL, ImageDB, ImageDBEntries };
15
15
  export type { User } from "@fiduswriter/common";
16
16
  /** Image database interface used by the editor (document and user DBs). */
17
17
  export interface EditorImageDB extends ImageDB {
@@ -21,7 +21,7 @@ export interface EditorImageDB extends ImageDB {
21
21
  /** Extended app object used by the editor page. */
22
22
  export interface App extends CommonApp {
23
23
  isOffline(): boolean;
24
- csl: any;
24
+ csl: CSL;
25
25
  imageDB: EditorImageDB;
26
26
  }
27
27
  export type { App as EditorApp };
@@ -67,32 +67,113 @@ export interface DocInfo {
67
67
  /** Aggregated editor module namespace (populated by individual modules). */
68
68
  export interface EditorMod {
69
69
  [key: string]: unknown;
70
- documentTemplate?: unknown;
71
- citations?: unknown;
72
- collab?: unknown;
73
- comments?: unknown;
70
+ collab?: {
71
+ doc: {
72
+ sendToCollaborators(): void;
73
+ confirmVersion(n: number): void;
74
+ receiveDiff(data: unknown): void;
75
+ receiveSelectionChange(data: unknown): void;
76
+ checkVersion(offline?: boolean): void;
77
+ cancelCurrentlyCheckingVersion(): void;
78
+ confirmDiff(rid: number): void;
79
+ rejectDiff(rid: number): void;
80
+ awaitingDiffResponse: boolean;
81
+ footnoteRender: boolean;
82
+ };
83
+ participants: Array<{
84
+ id: number;
85
+ name?: string;
86
+ session_id?: string;
87
+ sessionIds?: string[];
88
+ }>;
89
+ pastParticipants: Array<{
90
+ id: number;
91
+ name?: string;
92
+ }>;
93
+ updateParticipantList(participants: unknown[]): void;
94
+ chat: {
95
+ newMessage(message: unknown): void;
96
+ showChat(participants: unknown[]): void;
97
+ };
98
+ };
99
+ marginboxes?: {
100
+ updateDOM(): void;
101
+ view(view: EditorView): void;
102
+ init(): void;
103
+ };
104
+ footnotes?: {
105
+ fnEditor: {
106
+ view: EditorView;
107
+ renderAllFootnotes(): void;
108
+ applyDiffs(diffs: unknown[], cid: unknown): void;
109
+ schema: {
110
+ cached: Record<string, unknown>;
111
+ };
112
+ };
113
+ init(): void;
114
+ layout?: {
115
+ updateDOM(): void;
116
+ };
117
+ };
118
+ comments?: {
119
+ store: {
120
+ reset(): void;
121
+ loadComments(comments: unknown): void;
122
+ unsentEvents(): unknown[];
123
+ eventsSent(events: unknown[]): void;
124
+ receive(events: unknown[]): void;
125
+ comments: Record<string, unknown>;
126
+ };
127
+ };
128
+ documentTemplate?: {
129
+ documentStyles: Array<{
130
+ slug: string;
131
+ }>;
132
+ getCitationStyles(): Promise<unknown>;
133
+ setStyles(styles: unknown): void;
134
+ addDocPartSettings(): void;
135
+ addCitationStylesMenuEntries(): void;
136
+ };
137
+ citations?: {
138
+ init(): void;
139
+ resetCitations(): void;
140
+ layoutCitations(): void;
141
+ };
142
+ navigator?: {
143
+ init(): void;
144
+ };
145
+ track?: unknown;
74
146
  db?: {
75
147
  bibDB: {
76
148
  db: BibDBEntries;
77
149
  unsent: unknown[];
78
150
  setDB(value: BibDB): void;
151
+ unsentEvents(): unknown[];
152
+ eventsSent(events: unknown[]): void;
153
+ receive(events: unknown[]): void;
154
+ hasReference(ref: unknown): boolean;
155
+ addReference(ref: unknown, id: number): number;
79
156
  };
80
157
  imageDB: {
81
158
  db: ImageDBEntries;
82
159
  unsent: unknown[];
83
160
  setDB(value: ImageDB): void;
84
161
  unsentEvents(): unknown[];
162
+ eventsSent(events: unknown[]): void;
163
+ receive(events: unknown[]): void;
85
164
  };
165
+ clean?(): void;
86
166
  };
87
- footnotes?: unknown;
88
- marginboxes?: unknown;
89
- navigator?: unknown;
90
- track?: unknown;
91
167
  }
92
168
  /** End-to-end encryption state attached to an editor. */
93
169
  export interface EditorE2EE {
94
170
  key?: CryptoKey;
95
- snapshotManager?: unknown;
171
+ snapshotManager?: {
172
+ setKey(key: CryptoKey): void;
173
+ sendInitialSnapshot(...args: unknown[]): void;
174
+ handleRequestSnapshot(data: unknown): void;
175
+ handleSnapshotReceived(data: unknown): void;
176
+ };
96
177
  encrypted?: boolean;
97
178
  encryptionSalt?: string;
98
179
  encryptionIterations?: number;
@@ -102,7 +183,10 @@ export interface EditorE2EE {
102
183
  /** Menu model registry created during editor construction. */
103
184
  export interface EditorMenu {
104
185
  headerbarModel: unknown;
105
- headerView?: unknown;
186
+ headerView?: {
187
+ update(): void;
188
+ destroy(): void;
189
+ };
106
190
  imageMenuModel: unknown;
107
191
  navigatorFilterModel: unknown;
108
192
  orderedListMenuModel: unknown;
@@ -111,9 +195,16 @@ export interface EditorMenu {
111
195
  tableMenuModel: unknown;
112
196
  figureMenuModel: unknown;
113
197
  toolbarModel: unknown;
114
- toolbarViews?: unknown[];
198
+ toolbarViews?: Array<{
199
+ update(): void;
200
+ destroy(): void;
201
+ onResize?(): void;
202
+ }>;
115
203
  figureWidthMenuModel: unknown;
116
204
  codeBlockMenuModel: unknown;
205
+ selectionMenuViews?: Array<{
206
+ destroy(): void;
207
+ }>;
117
208
  }
118
209
  /** User object attached to the editor, extending the common user with an id. */
119
210
  export interface EditorUser extends User {
@@ -134,12 +225,14 @@ export type EditorPluginTuple = [Plugin | ((...args: unknown[]) => Plugin)] | [
134
225
  export interface Editor {
135
226
  app: App;
136
227
  user: EditorUser;
137
- editorPlugins: unknown[];
138
- citationDialogPlugins: unknown[] | null;
228
+ editorPlugins: EditorPluginTuple[];
229
+ citationDialogPlugins: EditorPluginTuple[] | null;
139
230
  mod: EditorMod;
140
231
  waitingForDocument: boolean;
141
232
  docInfo: DocInfo;
142
- schema: Schema;
233
+ schema: Schema & {
234
+ cached: Record<string, unknown>;
235
+ };
143
236
  menu: EditorMenu;
144
237
  client_id: number;
145
238
  clientTimeAdjustment: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8CH,MAAM,CAAC,MAAM,kBAAkB,GAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAmB,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAChF,MAAM,CAAC,MAAM,YAAY,GAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AACtE,MAAM,CAAC,MAAM,WAAW,GAAgB;IACpC,OAAO;IACP,eAAe;IACf,gBAAgB;CACnB,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+CH,MAAM,CAAC,MAAM,kBAAkB,GAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAmB,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAChF,MAAM,CAAC,MAAM,YAAY,GAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AACtE,MAAM,CAAC,MAAM,WAAW,GAAgB;IACpC,OAAO;IACP,eAAe;IACf,gBAAgB;CACnB,CAAA"}
package/package.json CHANGED
@@ -1,117 +1,131 @@
1
1
  {
2
- "name": "@fiduswriter/editor",
3
- "version": "0.1.21",
4
- "description": "Fidus Writer browser editor",
5
- "repository": {
6
- "type": "git",
7
- "url": "ssh://git@codeberg.org/fiduswriter/fiduswriter-editor-js.git"
2
+ "name": "@fiduswriter/editor",
3
+ "version": "0.1.22",
4
+ "description": "Fidus Writer browser editor",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "ssh://git@codeberg.org/fiduswriter/fiduswriter-editor-js.git"
8
+ },
9
+ "license": "AGPL-3.0",
10
+ "author": "Johannes Wilm",
11
+ "type": "module",
12
+ "main": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.js"
8
18
  },
9
- "license": "AGPL-3.0",
10
- "author": "Johannes Wilm",
11
- "type": "module",
12
- "main": "./dist/index.js",
13
- "types": "./dist/index.d.ts",
14
- "exports": {
15
- ".": {
16
- "types": "./dist/index.d.ts",
17
- "default": "./dist/index.js"
18
- },
19
- "./state_plugins": {
20
- "types": "./dist/state_plugins/index.d.ts",
21
- "default": "./dist/state_plugins/index.js"
22
- },
23
- "./state_plugins/*": {
24
- "types": "./dist/state_plugins/*.d.ts",
25
- "default": "./dist/state_plugins/*.js"
26
- },
27
- "./menus": {
28
- "types": "./dist/menus/index.d.ts",
29
- "default": "./dist/menus/index.js"
30
- },
31
- "./menus/*": {
32
- "types": "./dist/menus/*.d.ts",
33
- "default": "./dist/menus/*.js"
34
- },
35
- "./dialogs": {
36
- "types": "./dist/dialogs/index.d.ts",
37
- "default": "./dist/dialogs/index.js"
38
- },
39
- "./dialogs/*": {
40
- "types": "./dist/dialogs/*.d.ts",
41
- "default": "./dist/dialogs/*.js"
42
- },
43
- "./keymap": {
44
- "types": "./dist/keymap.d.ts",
45
- "default": "./dist/keymap.js"
46
- },
47
- "./*": {
48
- "types": "./dist/*.d.ts",
49
- "default": "./dist/*.js"
50
- }
19
+ "./state_plugins": {
20
+ "types": "./dist/state_plugins/index.d.ts",
21
+ "default": "./dist/state_plugins/index.js"
51
22
  },
52
- "files": [
53
- "dist/",
54
- "src/",
55
- "README.md",
56
- "LICENSE"
57
- ],
58
- "scripts": {
59
- "build": "tsc",
60
- "prepare": "npm run build",
61
- "prepublishOnly": "npm run build",
62
- "typecheck": "tsc --noEmit",
63
- "lint": "eslint src",
64
- "lint:fix": "eslint src --fix",
65
- "format": "prettier --write .",
66
- "format:check": "prettier --check ."
23
+ "./state_plugins/*": {
24
+ "types": "./dist/state_plugins/*.d.ts",
25
+ "default": "./dist/state_plugins/*.js"
26
+ },
27
+ "./menus": {
28
+ "types": "./dist/menus/index.d.ts",
29
+ "default": "./dist/menus/index.js"
30
+ },
31
+ "./menus/*": {
32
+ "types": "./dist/menus/*.d.ts",
33
+ "default": "./dist/menus/*.js"
67
34
  },
68
- "dependencies": {
69
- "@fiduswriter/bibliography-manager": "^0.1.7",
70
- "@fiduswriter/common": "^0.1.5",
71
- "@fiduswriter/document": "^0.2.20",
72
- "@fiduswriter/image-manager": "^0.1.4",
73
- "bibliojson": "^4.0.0",
74
- "citeproc-plus": "^1.0.2",
75
- "cropperjs": "^1.6.2",
76
- "diff": "^5.0.0",
77
- "diff-dom": "^5.2.1",
78
- "fastdom": "^1.0.11",
79
- "fast-deep-equal": "^3.1.3",
80
- "fast-xml-parser": "^4.5.0",
81
- "fix-utf8": "^2.0.1",
82
- "fwtoolkit": "^0.1.9",
83
- "jszip": "^3.10.1",
84
- "mathml-to-latex": "^1.4.3",
85
- "mathml2omml": "^0.5.0",
86
- "orderedmap": "^2.1.1",
87
- "pretty": "^2.0.0",
88
- "prosemirror-changeset": "^2.2.1",
89
- "prosemirror-collab": "^1.3.1",
90
- "prosemirror-commands": "^1.7.0",
91
- "prosemirror-dropcursor": "^1.8.1",
92
- "prosemirror-example-setup": "^1.2.3",
93
- "prosemirror-gapcursor": "^1.3.2",
94
- "prosemirror-history": "^1.3.2",
95
- "prosemirror-keymap": "^1.2.2",
96
- "prosemirror-menu": "^1.2.4",
97
- "prosemirror-model": "^1.25.0",
98
- "prosemirror-schema-basic": "^1.2.4",
99
- "prosemirror-schema-list": "^1.5.1",
100
- "prosemirror-state": "^1.4.3",
101
- "prosemirror-suggestions": "^0.2.0",
102
- "prosemirror-tables": "^1.6.4",
103
- "prosemirror-transform": "^1.10.3",
104
- "prosemirror-view": "^1.38.1",
105
- "rfc6902": "^5.0.1",
106
- "sortablejs": "^1.15.0"
35
+ "./dialogs": {
36
+ "types": "./dist/dialogs/index.d.ts",
37
+ "default": "./dist/dialogs/index.js"
107
38
  },
108
- "devDependencies": {
109
- "@eslint/js": "^10.0.1",
110
- "@types/node": "^26.0.1",
111
- "eslint": "^10.6.0",
112
- "globals": "^15.15.0",
113
- "prettier": "^3.5.3",
114
- "typescript": "^6.0.3",
115
- "typescript-eslint": "^8.62.0"
39
+ "./dialogs/*": {
40
+ "types": "./dist/dialogs/*.d.ts",
41
+ "default": "./dist/dialogs/*.js"
42
+ },
43
+ "./keymap": {
44
+ "types": "./dist/keymap.d.ts",
45
+ "default": "./dist/keymap.js"
46
+ },
47
+ "./*": {
48
+ "types": "./dist/*.d.ts",
49
+ "default": "./dist/*.js"
116
50
  }
51
+ },
52
+ "files": [
53
+ "dist/",
54
+ "src/",
55
+ "README.md",
56
+ "LICENSE"
57
+ ],
58
+ "scripts": {
59
+ "build": "tsc",
60
+ "prepare": "npm run build",
61
+ "prepublishOnly": "npm run build",
62
+ "typecheck": "tsc --noEmit",
63
+ "lint": "eslint src",
64
+ "lint:fix": "eslint src --fix",
65
+ "format": "prettier --write .",
66
+ "format:check": "prettier --check .",
67
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --config jest.config.js"
68
+ },
69
+ "dependencies": {
70
+ "@fiduswriter/bibliography-manager": "^0.1.7",
71
+ "@fiduswriter/common": "^0.1.5",
72
+ "@fiduswriter/document": "^0.2.20",
73
+ "@fiduswriter/image-manager": "^0.1.4",
74
+ "bibliojson": "^4.0.0",
75
+ "citeproc-plus": "^1.0.2",
76
+ "cropperjs": "^1.6.2",
77
+ "diff": "^5.0.0",
78
+ "diff-dom": "^5.2.1",
79
+ "fast-deep-equal": "^3.1.3",
80
+ "fast-xml-parser": "^4.5.0",
81
+ "fastdom": "^1.0.11",
82
+ "fix-utf8": "^2.0.1",
83
+ "fwtoolkit": "^0.1.9",
84
+ "jszip": "^3.10.1",
85
+ "mathml-to-latex": "^1.4.3",
86
+ "mathml2omml": "^0.5.0",
87
+ "orderedmap": "^2.1.1",
88
+ "pretty": "^2.0.0",
89
+ "prosemirror-changeset": "^2.2.1",
90
+ "prosemirror-collab": "^1.3.1",
91
+ "prosemirror-commands": "^1.7.0",
92
+ "prosemirror-dropcursor": "^1.8.1",
93
+ "prosemirror-example-setup": "^1.2.3",
94
+ "prosemirror-gapcursor": "^1.3.2",
95
+ "prosemirror-history": "^1.3.2",
96
+ "prosemirror-keymap": "^1.2.2",
97
+ "prosemirror-menu": "^1.2.4",
98
+ "prosemirror-model": "^1.25.0",
99
+ "prosemirror-schema-basic": "^1.2.4",
100
+ "prosemirror-schema-list": "^1.5.1",
101
+ "prosemirror-state": "^1.4.3",
102
+ "prosemirror-suggestions": "^0.2.0",
103
+ "prosemirror-tables": "^1.6.4",
104
+ "prosemirror-transform": "^1.10.3",
105
+ "prosemirror-view": "^1.38.1",
106
+ "rfc6902": "^5.0.1",
107
+ "sortablejs": "^1.15.0"
108
+ },
109
+ "devDependencies": {
110
+ "@eslint/js": "^10.0.1",
111
+ "@types/jest": "^30.0.0",
112
+ "@types/node": "^26.0.1",
113
+ "eslint": "^10.6.0",
114
+ "globals": "^15.15.0",
115
+ "happy-dom": "^20.10.6",
116
+ "jest": "^30.4.2",
117
+ "prettier": "^3.5.3",
118
+ "ts-jest": "^29.4.11",
119
+ "ts-jest-resolver": "^2.0.1",
120
+ "typescript": "^6.0.3",
121
+ "typescript-eslint": "^8.62.0"
122
+ },
123
+ "lint-staged": {
124
+ "*.{ts,js,mjs,css,md,json,html}": [
125
+ "prettier --write"
126
+ ],
127
+ "*.{ts,js,mjs}": [
128
+ "eslint --fix"
129
+ ]
130
+ }
117
131
  }
package/src/types.ts CHANGED
@@ -15,11 +15,12 @@ import type {
15
15
  BibDB,
16
16
  BibDBEntries,
17
17
  CommentData,
18
+ CSL,
18
19
  ImageDB,
19
20
  ImageDBEntries
20
21
  } from "@fiduswriter/document"
21
22
 
22
- export type {BibDB, BibDBEntries, CommentData, ImageDB, ImageDBEntries}
23
+ export type {BibDB, BibDBEntries, CommentData, CSL, ImageDB, ImageDBEntries}
23
24
  export type {User} from "@fiduswriter/common"
24
25
 
25
26
  /** Image database interface used by the editor (document and user DBs). */
@@ -31,7 +32,7 @@ export interface EditorImageDB extends ImageDB {
31
32
  /** Extended app object used by the editor page. */
32
33
  export interface App extends CommonApp {
33
34
  isOffline(): boolean
34
- csl: any
35
+ csl: CSL
35
36
  imageDB: EditorImageDB
36
37
  }
37
38
 
@@ -88,29 +89,100 @@ export interface DocInfo {
88
89
  /** Aggregated editor module namespace (populated by individual modules). */
89
90
  export interface EditorMod {
90
91
  [key: string]: unknown
91
- documentTemplate?: unknown
92
- citations?: unknown
93
- collab?: unknown
94
- comments?: unknown
92
+ collab?: {
93
+ doc: {
94
+ sendToCollaborators(): void
95
+ confirmVersion(n: number): void
96
+ receiveDiff(data: unknown): void
97
+ receiveSelectionChange(data: unknown): void
98
+ checkVersion(offline?: boolean): void
99
+ cancelCurrentlyCheckingVersion(): void
100
+ confirmDiff(rid: number): void
101
+ rejectDiff(rid: number): void
102
+ awaitingDiffResponse: boolean
103
+ footnoteRender: boolean
104
+ }
105
+ participants: Array<{id: number; name?: string; session_id?: string; sessionIds?: string[]}>
106
+ pastParticipants: Array<{id: number; name?: string}>
107
+ updateParticipantList(participants: unknown[]): void
108
+ chat: {
109
+ newMessage(message: unknown): void
110
+ showChat(participants: unknown[]): void
111
+ }
112
+ }
113
+ marginboxes?: {
114
+ updateDOM(): void
115
+ view(view: EditorView): void
116
+ init(): void
117
+ }
118
+ footnotes?: {
119
+ fnEditor: {
120
+ view: EditorView
121
+ renderAllFootnotes(): void
122
+ applyDiffs(diffs: unknown[], cid: unknown): void
123
+ schema: {cached: Record<string, unknown>}
124
+ }
125
+ init(): void
126
+ layout?: {updateDOM(): void}
127
+ }
128
+ comments?: {
129
+ store: {
130
+ reset(): void
131
+ loadComments(comments: unknown): void
132
+ unsentEvents(): unknown[]
133
+ eventsSent(events: unknown[]): void
134
+ receive(events: unknown[]): void
135
+ comments: Record<string, unknown>
136
+ }
137
+ }
138
+ documentTemplate?: {
139
+ documentStyles: Array<{slug: string}>
140
+ getCitationStyles(): Promise<unknown>
141
+ setStyles(styles: unknown): void
142
+ addDocPartSettings(): void
143
+ addCitationStylesMenuEntries(): void
144
+ }
145
+ citations?: {
146
+ init(): void
147
+ resetCitations(): void
148
+ layoutCitations(): void
149
+ }
150
+ navigator?: {
151
+ init(): void
152
+ }
153
+ track?: unknown
95
154
  db?: {
96
- bibDB: {db: BibDBEntries; unsent: unknown[]; setDB(value: BibDB): void}
155
+ bibDB: {
156
+ db: BibDBEntries
157
+ unsent: unknown[]
158
+ setDB(value: BibDB): void
159
+ unsentEvents(): unknown[]
160
+ eventsSent(events: unknown[]): void
161
+ receive(events: unknown[]): void
162
+ hasReference(ref: unknown): boolean
163
+ addReference(ref: unknown, id: number): number
164
+ }
97
165
  imageDB: {
98
166
  db: ImageDBEntries
99
167
  unsent: unknown[]
100
168
  setDB(value: ImageDB): void
101
169
  unsentEvents(): unknown[]
170
+ eventsSent(events: unknown[]): void
171
+ receive(events: unknown[]): void
102
172
  }
173
+ clean?(): void
103
174
  }
104
- footnotes?: unknown
105
- marginboxes?: unknown
106
- navigator?: unknown
107
- track?: unknown
108
175
  }
109
176
 
110
177
  /** End-to-end encryption state attached to an editor. */
111
178
  export interface EditorE2EE {
112
179
  key?: CryptoKey
113
- snapshotManager?: unknown
180
+ snapshotManager?: {
181
+ setKey(key: CryptoKey): void
182
+ sendInitialSnapshot(...args: unknown[]): void
183
+ handleRequestSnapshot(data: unknown): void
184
+ handleSnapshotReceived(data: unknown): void
185
+ }
114
186
  encrypted?: boolean
115
187
  encryptionSalt?: string
116
188
  encryptionIterations?: number
@@ -121,7 +193,7 @@ export interface EditorE2EE {
121
193
  /** Menu model registry created during editor construction. */
122
194
  export interface EditorMenu {
123
195
  headerbarModel: unknown
124
- headerView?: unknown
196
+ headerView?: {update(): void; destroy(): void}
125
197
  imageMenuModel: unknown
126
198
  navigatorFilterModel: unknown
127
199
  orderedListMenuModel: unknown
@@ -130,9 +202,10 @@ export interface EditorMenu {
130
202
  tableMenuModel: unknown
131
203
  figureMenuModel: unknown
132
204
  toolbarModel: unknown
133
- toolbarViews?: unknown[]
205
+ toolbarViews?: Array<{update(): void; destroy(): void; onResize?(): void}>
134
206
  figureWidthMenuModel: unknown
135
207
  codeBlockMenuModel: unknown
208
+ selectionMenuViews?: Array<{destroy(): void}>
136
209
  }
137
210
 
138
211
  /** User object attached to the editor, extending the common user with an id. */
@@ -159,12 +232,12 @@ export type EditorPluginTuple =
159
232
  export interface Editor {
160
233
  app: App
161
234
  user: EditorUser
162
- editorPlugins: unknown[]
163
- citationDialogPlugins: unknown[] | null
235
+ editorPlugins: EditorPluginTuple[]
236
+ citationDialogPlugins: EditorPluginTuple[] | null
164
237
  mod: EditorMod
165
238
  waitingForDocument: boolean
166
239
  docInfo: DocInfo
167
- schema: Schema
240
+ schema: Schema & {cached: Record<string, unknown>}
168
241
  menu: EditorMenu
169
242
  client_id: number
170
243
  clientTimeAdjustment: number