@ones-editor/editor 2.2.4 → 2.2.6-beta.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.
- package/@ones-editor/block-resizer/src/index.d.ts +1 -0
- package/@ones-editor/comments/src/block-hook/block-comment-hook.d.ts +10 -0
- package/@ones-editor/comments/src/comment-quick-reply/index.d.ts +1 -0
- package/@ones-editor/comments/src/comments-helper/get-comment-abstract.d.ts +2 -1
- package/@ones-editor/core/src/core/block-renderers/block-renderers.d.ts +1 -0
- package/@ones-editor/core/src/core/doc/doc.d.ts +1 -2
- package/@ones-editor/core/src/core/editor-doc/editor-doc.d.ts +0 -1
- package/@ones-editor/core/src/core/types.d.ts +6 -2
- package/@ones-editor/core/src/core/undo-manager/actions/action.d.ts +5 -1
- package/@ones-editor/core/src/core/undo-manager/actions/block-action.d.ts +1 -0
- package/@ones-editor/core/src/core/undo-manager/actions/update-block-data-action.d.ts +1 -0
- package/@ones-editor/embed-block-helper/src/block-properties/embed-block-properties.d.ts +1 -1
- package/@ones-editor/embed-block-helper/src/block-resizer/index.d.ts +1 -0
- package/@ones-editor/image-embed/src/hovering-toolbar/index.d.ts +0 -11
- package/@ones-editor/image-embed/src/image-object.d.ts +1 -0
- package/@ones-editor/media-embed/src/core/hovering-toolbar/index.d.ts +2 -20
- package/@ones-editor/misc/src/index.d.ts +0 -1
- package/@ones-editor/misc/src/re-auth/index.d.ts +0 -23
- package/@ones-editor/sharedb-doc/src/doc/auth-connection.d.ts +39 -31
- package/@ones-editor/sharedb-doc/src/doc/auto-renew-token.d.ts +15 -0
- package/@ones-editor/sharedb-doc/src/doc/connection-status.d.ts +19 -0
- package/@ones-editor/sharedb-doc/src/doc/edit-status.d.ts +13 -0
- package/@ones-editor/sharedb-doc/src/doc/sharedb-client-base.d.ts +24 -0
- package/@ones-editor/sharedb-doc/src/doc/sharedb-client.d.ts +10 -14
- package/@ones-editor/sharedb-doc/src/doc/sharedb-doc.d.ts +4 -4
- package/@ones-editor/sharedb-doc/src/doc/sharedb-local-doc.d.ts +17 -0
- package/@ones-editor/sharedb-doc/src/index.d.ts +5 -1
- package/@ones-editor/sharedb-doc/src/types.d.ts +15 -2
- package/@ones-editor/sharedb-doc/src/versions/sharedb-server.d.ts +1 -1
- package/@ones-editor/sharedb-doc/src/versions/simple-client.d.ts +1 -1
- package/@ones-editor/tsconfig.tsbuildinfo +1 -1
- package/@ones-editor/ui/src/index.d.ts +2 -1
- package/@ones-editor/ui/src/readonly-toolbar/add-comment-to-old-doc.d.ts +3 -0
- package/@ones-editor/ui/src/readonly-toolbar/helper.d.ts +2 -0
- package/@ones-editor/ui/src/readonly-toolbar/index.d.ts +2 -0
- package/@ones-editor/ui/src/tooltips/index.d.ts +21 -9
- package/@ones-editor/ui-base/src/color-button/text-color-item.d.ts +18 -8
- package/@ones-editor/ui-base/src/color-palette/color-palette.d.ts +7 -1
- package/@ones-editor/ui-base/src/color-palette/index.d.ts +3 -3
- package/@ones-editor/ui-base/src/command-bar/active-observer.d.ts +11 -0
- package/@ones-editor/ui-base/src/command-bar/fixed-toolbar.d.ts +1 -0
- package/@ones-editor/ui-base/src/locale/en-us.d.ts +1 -0
- package/@ones-editor/ui-base/src/locale/ja-jp.d.ts +1 -0
- package/@ones-editor/ui-base/src/locale/zh-cn.d.ts +1 -0
- package/@ones-editor/versions/package.json +3 -0
- package/@ones-editor/versions/src/constant/index.d.ts +2 -0
- package/@ones-editor/versions/src/history-doc/history-doc.d.ts +2 -2
- package/@ones-editor/versions/src/history-render/index.d.ts +15 -1
- package/@ones-editor/versions/src/history-tooltip/index.d.ts +14 -0
- package/@ones-editor/versions/src/index.d.ts +1 -0
- package/@ones-editor/versions/src/locale/en-us.d.ts +1 -0
- package/@ones-editor/versions/src/locale/ja-jp.d.ts +1 -0
- package/@ones-editor/versions/src/locale/zh-cn.d.ts +1 -0
- package/@ones-editor/versions/src/types.d.ts +4 -0
- package/@ones-editor/versions/src/utils/block-text.d.ts +3 -1
- package/dist/error-handler/index.d.ts +19 -0
- package/dist/index.js +4484 -3079
- package/dist/types.d.ts +14 -2
- package/package.json +2 -1
|
@@ -18,6 +18,7 @@ export declare class BlockResizer extends TypedEmitter<BlockResizerEvents> {
|
|
|
18
18
|
constructor(editor: OnesEditor, options: BlockResizerOptions);
|
|
19
19
|
enableResize(block: BlockElement, resizableElement?: HTMLElement): void;
|
|
20
20
|
disableResize(): void;
|
|
21
|
+
handleEditorResize: () => void;
|
|
21
22
|
update(block: BlockElement, resizableElement?: HTMLElement): void;
|
|
22
23
|
updateResizer(): void;
|
|
23
24
|
getBlock(): BlockElement | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BlockCommands, BlockElement, CommandItem, OnesEditor, OnesEditorBlockHook, TextBlockContentChild } from '../../../../@ones-editor/core';
|
|
2
|
+
import type { OnesEditorComments } from '../comments';
|
|
3
|
+
import { OnesEditorCommentsProvider } from '../types';
|
|
4
|
+
export default class HoveringCommentBlockHook implements OnesEditorBlockHook {
|
|
5
|
+
private provider;
|
|
6
|
+
private editorComments;
|
|
7
|
+
constructor(provider: OnesEditorCommentsProvider, editorComments: OnesEditorComments);
|
|
8
|
+
commands(editor: OnesEditor, blockElement: BlockElement, child: TextBlockContentChild | null): BlockCommands | undefined;
|
|
9
|
+
executeCommand: (editor: OnesEditor, block: BlockElement, item: CommandItem) => void;
|
|
10
|
+
}
|
|
@@ -11,6 +11,7 @@ export declare class CommentQuickReply {
|
|
|
11
11
|
root: HTMLDivElement;
|
|
12
12
|
private components;
|
|
13
13
|
constructor(mainEditor: OnesEditor, commentsProvider: OnesEditorCommentsProvider, comment: CommentWithChildren, groupItem: CommentGroupItem);
|
|
14
|
+
private get commentOptions();
|
|
14
15
|
private createQuickReply;
|
|
15
16
|
private handleFocus;
|
|
16
17
|
private handleDocChange;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { BlockElement, OnesEditor } from '../../../../@ones-editor/core';
|
|
1
|
+
import { BlockElement, OnesEditor, SelectedBlock } from '../../../../@ones-editor/core';
|
|
2
2
|
export declare function getCommentAbstract(editor: OnesEditor, blocks: BlockElement[]): string;
|
|
3
|
+
export declare function getCommentAbstractFromSelectedBlocks(editor: OnesEditor, blocks: SelectedBlock[]): string;
|
|
@@ -9,4 +9,5 @@ export declare class EditorBlockRenderers implements OnesEditorBlockRenderers {
|
|
|
9
9
|
renderText(path: BlockPath, attributes: DocBlockTextAttributes): OnesEditorBlockRenderResult;
|
|
10
10
|
renderBlock(editor: OnesEditor, path: BlockPath, blockData: DocBlock): OnesEditorBlockRenderResult;
|
|
11
11
|
updateBlock(editor: OnesEditor, path: BlockPath, blockElement: BlockElement, blockData: DocBlock): void;
|
|
12
|
+
renderChildContainer(editor: OnesEditor, path: BlockPath, containerId: string): OnesEditorBlockRenderResult;
|
|
12
13
|
}
|
|
@@ -132,7 +132,6 @@ export interface OnesEditorDocCallbacks {
|
|
|
132
132
|
onCustomMessage?: (msg: unknown) => void;
|
|
133
133
|
onStatusChanged?: (status: OnesEditorDocStatus) => void;
|
|
134
134
|
onError?: (error: Error) => void;
|
|
135
|
-
onAuthRecover?: () => void;
|
|
136
135
|
}
|
|
137
136
|
export interface UploadResourceOptions {
|
|
138
137
|
onProgress?: (progress: number) => void;
|
|
@@ -268,7 +267,7 @@ export interface OnesEditorHistoryDataParseHandler {
|
|
|
268
267
|
onUpdateComment: (commentId: string, local: boolean) => void;
|
|
269
268
|
}
|
|
270
269
|
export interface OnesEditorDocVersionHelper {
|
|
271
|
-
getVersions: () => Promise<DocVersion[]>;
|
|
270
|
+
getVersions: (showPublished?: boolean) => Promise<DocVersion[]>;
|
|
272
271
|
getVersion: (ver: number) => Promise<DocObject>;
|
|
273
272
|
getLatestVersion: () => Promise<DocObject>;
|
|
274
273
|
getHistoryData: (version: number, from?: number) => Promise<{
|
|
@@ -34,7 +34,6 @@ export default class EditorDoc extends EventCallbacks<OnesEditorDocCallbacks> im
|
|
|
34
34
|
onCustomMessage(msg: unknown): void;
|
|
35
35
|
onStatusChanged(status: OnesEditorDocStatus): void;
|
|
36
36
|
onError(error: Error): void;
|
|
37
|
-
onAuthRecover(): void;
|
|
38
37
|
uploadResource(file: File, options?: UploadResourceOptions): Promise<UploadResourceResult>;
|
|
39
38
|
addResources(resourceIds: string[]): Promise<string[]>;
|
|
40
39
|
buildResourceUrl(resourceId: string, options?: BuildResourceUrlOptions): string;
|
|
@@ -58,7 +58,6 @@ export type BlockPosition = SimpleBlockPosition | ComplexBlockPosition;
|
|
|
58
58
|
export interface BoxCommands {
|
|
59
59
|
group: string;
|
|
60
60
|
commands: CommandItem[];
|
|
61
|
-
startGroup?: boolean;
|
|
62
61
|
executeCommand: (editor: OnesEditor, block: BlockElement, box: BoxElement, item: CommandItem) => unknown;
|
|
63
62
|
}
|
|
64
63
|
export interface BoxProperties {
|
|
@@ -143,6 +142,8 @@ export interface CommandItem {
|
|
|
143
142
|
group?: string;
|
|
144
143
|
groupOrder?: number;
|
|
145
144
|
dropdown?: boolean;
|
|
145
|
+
dropSplit?: boolean;
|
|
146
|
+
splitTooltip?: string;
|
|
146
147
|
manualShowChildren?: boolean;
|
|
147
148
|
childrenPlacement?: CommandItemChildrenPlacement;
|
|
148
149
|
childrenOffset?: [number, number];
|
|
@@ -175,7 +176,6 @@ export interface BlockCommands {
|
|
|
175
176
|
element?: HTMLElement;
|
|
176
177
|
group: string;
|
|
177
178
|
commands: CommandItem[];
|
|
178
|
-
startGroup?: boolean;
|
|
179
179
|
executeCommand: (editor: OnesEditor, block: BlockElement, item: CommandItem, child: TextBlockContentChild | null) => unknown;
|
|
180
180
|
}
|
|
181
181
|
export interface BlockProperties {
|
|
@@ -354,6 +354,8 @@ export interface OnesEditorUndoAction {
|
|
|
354
354
|
redo: (editor: OnesEditor) => boolean;
|
|
355
355
|
combinable: (other: OnesEditorUndoAction) => boolean;
|
|
356
356
|
combine: (other: OnesEditorUndoAction) => void;
|
|
357
|
+
getTimeStamp: () => number;
|
|
358
|
+
getBatchActionId?: () => string | undefined;
|
|
357
359
|
}
|
|
358
360
|
export interface OnesEditorUndoManager {
|
|
359
361
|
reset: () => void;
|
|
@@ -400,12 +402,14 @@ export interface OnesEditorBlockRenderer {
|
|
|
400
402
|
renderBox?: (editor: OnesEditor, path: BlockPath, attributes: DocBlockTextAttributes) => OnesEditorBlockRenderResult;
|
|
401
403
|
renderText?: (editor: OnesEditor, path: BlockPath, attributes: DocBlockTextAttributes) => OnesEditorBlockRenderResult;
|
|
402
404
|
renderBlock?: (editor: OnesEditor, path: BlockPath, blockData: DocBlock) => OnesEditorBlockRenderResult;
|
|
405
|
+
renderChildContainer?: (editor: OnesEditor, path: BlockPath, containerId: string) => OnesEditorBlockRenderResult;
|
|
403
406
|
updateBlock?: (editor: OnesEditor, path: BlockPath, blockElement: BlockElement, blockData: DocBlock) => void;
|
|
404
407
|
}
|
|
405
408
|
export interface OnesEditorBlockRenderers {
|
|
406
409
|
renderBox: (path: BlockPath, attributes: DocBlockTextAttributes) => OnesEditorBlockRenderResult;
|
|
407
410
|
renderText: (path: BlockPath, attributes: DocBlockTextAttributes) => OnesEditorBlockRenderResult;
|
|
408
411
|
renderBlock: (editor: OnesEditor, path: BlockPath, blockData: DocBlock) => OnesEditorBlockRenderResult;
|
|
412
|
+
renderChildContainer: (editor: OnesEditor, path: BlockPath, containerId: string) => OnesEditorBlockRenderResult;
|
|
409
413
|
updateBlock: (editor: OnesEditor, path: BlockPath, blockElement: BlockElement, blockData: DocBlock) => void;
|
|
410
414
|
registerRender: (decorator: OnesEditorBlockRenderer) => void;
|
|
411
415
|
}
|
|
@@ -4,11 +4,15 @@ export default class Action implements OnesEditorUndoAction {
|
|
|
4
4
|
protected containerId: string;
|
|
5
5
|
beforeRange: OnesEditorDocRange;
|
|
6
6
|
afterRange: OnesEditorDocRange;
|
|
7
|
-
|
|
7
|
+
batchActionId?: string;
|
|
8
|
+
ts: number;
|
|
9
|
+
constructor(editor: OnesEditor, containerId: string, afterRange: OnesEditorDocRange, batchActionId?: string);
|
|
10
|
+
getTimeStamp(): number;
|
|
8
11
|
undo(editor: OnesEditor): boolean;
|
|
9
12
|
redo(editor: OnesEditor): boolean;
|
|
10
13
|
combinable(other: OnesEditorUndoAction): boolean;
|
|
11
14
|
combine(other: OnesEditorUndoAction): void;
|
|
15
|
+
getBatchActionId(): string | undefined;
|
|
12
16
|
setAfterRange(range: OnesEditorDocRange): void;
|
|
13
17
|
hasDocContainerId(editor: OnesEditor, id: string): boolean;
|
|
14
18
|
findDocBlockById(editor: OnesEditor, id: string): DocBlock | undefined;
|
|
@@ -7,4 +7,5 @@ export default class BlockAction extends Action {
|
|
|
7
7
|
constructor(editor: OnesEditor, containerId: string, blockIndex: number, data: DocBlock, afterRange: OnesEditorDocRange);
|
|
8
8
|
deleteBlock(editor: OnesEditor, newRange: OnesEditorDocRange): boolean;
|
|
9
9
|
insertBlock(editor: OnesEditor, newRange: OnesEditorDocRange): boolean;
|
|
10
|
+
getBatchActionId(): string | undefined;
|
|
10
11
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockCommands, BlockElement, CommandItem, OnesEditor } from '../../../../@ones-editor/core';
|
|
2
|
-
export type CommandId = 'edit' | '
|
|
2
|
+
export type CommandId = 'edit' | 'separator';
|
|
3
3
|
export interface StandardEmbedBlockProperties<T = CommandId> {
|
|
4
4
|
presetIds?: T[];
|
|
5
5
|
extIds?: T[];
|
|
@@ -9,6 +9,7 @@ export declare class EmbedBlockResizer {
|
|
|
9
9
|
handleResizing: (resizer: BlockResizer, rect: DOMRect) => void;
|
|
10
10
|
destroy(): void;
|
|
11
11
|
handleHoveringBlockChange: (block: BlockElement | null, old: BlockElement | null) => void;
|
|
12
|
+
handleEditorResize: () => void;
|
|
12
13
|
tryEnableResizer(block: BlockElement): void;
|
|
13
14
|
disableResizer(): void;
|
|
14
15
|
static get(editor: OnesEditor): EmbedBlockResizer;
|
|
@@ -10,22 +10,11 @@ export default class ImageHoveringToolbarCommands implements BlockCommands {
|
|
|
10
10
|
name: string;
|
|
11
11
|
icon: string;
|
|
12
12
|
type?: undefined;
|
|
13
|
-
groupOrder?: undefined;
|
|
14
|
-
order?: undefined;
|
|
15
13
|
} | {
|
|
16
14
|
id: string;
|
|
17
15
|
name: string;
|
|
18
16
|
type: CommandItemType;
|
|
19
17
|
icon?: undefined;
|
|
20
|
-
groupOrder?: undefined;
|
|
21
|
-
order?: undefined;
|
|
22
|
-
} | {
|
|
23
|
-
id: string;
|
|
24
|
-
name: string;
|
|
25
|
-
icon: string;
|
|
26
|
-
groupOrder: number;
|
|
27
|
-
order: number;
|
|
28
|
-
type?: undefined;
|
|
29
18
|
})[];
|
|
30
19
|
isHoveringImageEmpty: () => boolean;
|
|
31
20
|
get commands(): CommandItem[];
|
|
@@ -42,4 +42,5 @@ export declare class ImageObject implements ImageObjectBase {
|
|
|
42
42
|
private setData;
|
|
43
43
|
static create(editor: OnesEditor, blockData: DocEmbedBlock): ImageObject;
|
|
44
44
|
static getImageObject(editor: OnesEditor, block: BlockElement | string): ImageObject;
|
|
45
|
+
static findImageObject(editor: OnesEditor, block: BlockElement | string): ImageObject | null;
|
|
45
46
|
}
|
|
@@ -1,32 +1,14 @@
|
|
|
1
1
|
import { BlockCommands, BlockElement, CommandItem, OnesEditor } from '../../../../../@ones-editor/core';
|
|
2
|
-
import type { CommandItemType } from '../../../../../@ones-editor/core';
|
|
3
2
|
export default class ImageHoveringToolbarCommands implements BlockCommands {
|
|
4
3
|
protected editor: OnesEditor;
|
|
5
4
|
protected block: BlockElement;
|
|
6
5
|
group: string;
|
|
7
6
|
constructor(editor: OnesEditor, block: BlockElement);
|
|
8
|
-
_commands:
|
|
7
|
+
_commands: {
|
|
9
8
|
id: string;
|
|
10
9
|
name: string;
|
|
11
10
|
icon: string;
|
|
12
|
-
|
|
13
|
-
order: number;
|
|
14
|
-
type?: undefined;
|
|
15
|
-
} | {
|
|
16
|
-
id: string;
|
|
17
|
-
name: string;
|
|
18
|
-
type: CommandItemType;
|
|
19
|
-
icon?: undefined;
|
|
20
|
-
groupOrder?: undefined;
|
|
21
|
-
order?: undefined;
|
|
22
|
-
} | {
|
|
23
|
-
id: string;
|
|
24
|
-
name: string;
|
|
25
|
-
icon: string;
|
|
26
|
-
groupOrder?: undefined;
|
|
27
|
-
order?: undefined;
|
|
28
|
-
type?: undefined;
|
|
29
|
-
})[];
|
|
11
|
+
}[];
|
|
30
12
|
isHoveringImageEmpty: () => boolean;
|
|
31
13
|
get commands(): CommandItem[];
|
|
32
14
|
executeCommand(editor: OnesEditor, block: BlockElement, item: CommandItem): void;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { TypedEmitter } from 'tiny-typed-emitter';
|
|
2
|
-
import { OnesEditor, OnesEditorCustom, OnesEditorDocCallbacks } from '../../../../@ones-editor/core';
|
|
3
|
-
import ReAuthToolbar from './ui/toolbar';
|
|
4
|
-
import './locale';
|
|
5
|
-
type EventCallback = (() => void) | undefined;
|
|
6
|
-
declare const DOC_RE_AUTH_KEYS = "doc-re-auth-event";
|
|
7
|
-
type ReAuthEvent = {
|
|
8
|
-
tokenExpired: () => void;
|
|
9
|
-
};
|
|
10
|
-
declare class DocReAuthCallbacks extends TypedEmitter<ReAuthEvent> implements OnesEditorCustom, OnesEditorDocCallbacks {
|
|
11
|
-
private editor;
|
|
12
|
-
private authErrorCallback;
|
|
13
|
-
private authRecoverCallback;
|
|
14
|
-
reAuthToolbar: ReAuthToolbar;
|
|
15
|
-
constructor(editor: OnesEditor);
|
|
16
|
-
handleReAuth: () => void;
|
|
17
|
-
addAuthListen(event: 'authError' | 'authRecover', callback: EventCallback): void;
|
|
18
|
-
removeListeners(): void;
|
|
19
|
-
destroy: () => void;
|
|
20
|
-
onError: (error: Error) => void;
|
|
21
|
-
onAuthRecover: () => void;
|
|
22
|
-
}
|
|
23
|
-
export { ReAuthToolbar, DocReAuthCallbacks, DOC_RE_AUTH_KEYS, };
|
|
@@ -1,50 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import ReconnectingWebSocket, { Event } from 'reconnecting-websocket';
|
|
5
|
-
import { AuthMessage, ReauthFunc } from '../types';
|
|
1
|
+
import { Doc } from 'sharedb/lib/client';
|
|
2
|
+
import { TypedEmitter } from 'tiny-typed-emitter';
|
|
3
|
+
import { AuthMessage, RenewTokenFunc } from '../types';
|
|
6
4
|
import './sharedb-ext';
|
|
7
|
-
export
|
|
5
|
+
export interface AutoConnectionEvents {
|
|
6
|
+
renewingToken: (count: number) => void;
|
|
7
|
+
renewedToken: (auth: AuthMessage) => void;
|
|
8
|
+
renewTokenError: (error: Error) => void;
|
|
9
|
+
reauthing: (count: number) => void;
|
|
10
|
+
authError: (error: Error) => void;
|
|
11
|
+
authRecover: (auth: AuthMessage) => void;
|
|
12
|
+
unknownError: (error: Error) => void;
|
|
13
|
+
connectionError: (error: Error) => void;
|
|
14
|
+
disconnected: (reason: string) => void;
|
|
15
|
+
writeConflictError: (error: Error) => void;
|
|
16
|
+
maxUsersError: () => void;
|
|
17
|
+
requestReloadError: (error: Error) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare class AuthConnection extends TypedEmitter<AutoConnectionEvents> {
|
|
8
20
|
url: string;
|
|
9
|
-
private
|
|
10
|
-
|
|
11
|
-
connection
|
|
12
|
-
ws
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
private renewTokenFunc?;
|
|
22
|
+
private closed;
|
|
23
|
+
private connection?;
|
|
24
|
+
private ws?;
|
|
25
|
+
private token;
|
|
26
|
+
private resourceToken;
|
|
27
|
+
private authMessage;
|
|
28
|
+
private autoRenewToken;
|
|
29
|
+
private connectionStatus;
|
|
30
|
+
private reauthing;
|
|
17
31
|
pingOptions: {
|
|
18
32
|
interval: number;
|
|
19
33
|
timeout: number;
|
|
20
34
|
};
|
|
21
|
-
constructor(url: string,
|
|
35
|
+
constructor(authMessage: AuthMessage, url: string, renewTokenFunc?: RenewTokenFunc | undefined);
|
|
22
36
|
getBaseURL(): string;
|
|
23
37
|
getBase64BaseURL(): string;
|
|
24
|
-
|
|
38
|
+
getToken(): string;
|
|
39
|
+
getResourceToken(): string;
|
|
40
|
+
getAuthMessage(): AuthMessage;
|
|
41
|
+
verifyAuth(authMessage: AuthMessage): Promise<{
|
|
25
42
|
read: string;
|
|
26
43
|
user: string;
|
|
27
44
|
}>;
|
|
28
45
|
logout(): Promise<void>;
|
|
29
|
-
init(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
reAuth: () => Promise<void>;
|
|
46
|
+
init(): Promise<void>;
|
|
47
|
+
private handleAuthError;
|
|
48
|
+
private handleUnknownError;
|
|
49
|
+
private handleConnectionError;
|
|
50
|
+
private handleDisconnected;
|
|
35
51
|
private emitPermissionError;
|
|
36
|
-
private emitAuthRecover;
|
|
37
|
-
private emitAuthError;
|
|
38
52
|
private emitRequestReloadError;
|
|
39
53
|
private emitWriteConflictError;
|
|
40
54
|
private emitMaxUsersError;
|
|
41
|
-
handleMessage
|
|
55
|
+
private handleMessage;
|
|
42
56
|
get(collectionName: string, documentID: string): Doc;
|
|
43
|
-
addEventListener(event: 'open' | 'close' | 'error', callback: (e: Event | Error) => void): void;
|
|
44
|
-
onAuthError(callback: (error: Error) => void): void;
|
|
45
|
-
onAuthRecover(callback: () => void): void;
|
|
46
|
-
onWriteConflictError(callback: (error: Error) => void): void;
|
|
47
|
-
onMaxUsersError(callback: () => void): void;
|
|
48
|
-
onRequestReloadError(callback: (error: Error) => void): void;
|
|
49
57
|
end(logout: boolean): void;
|
|
50
58
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TypedEmitter } from 'tiny-typed-emitter';
|
|
2
|
+
import { AuthMessage, RenewTokenFunc } from '../types';
|
|
3
|
+
export interface AutoRenewTokenEvents {
|
|
4
|
+
'renewingToken': (count: number) => void;
|
|
5
|
+
'renewedToken': (auth: AuthMessage) => void;
|
|
6
|
+
'renewTokenError': (error: Error) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare class AutoRenewToken extends TypedEmitter<AutoRenewTokenEvents> {
|
|
9
|
+
private renewToken;
|
|
10
|
+
private retryCount;
|
|
11
|
+
private stop;
|
|
12
|
+
constructor(renewToken: RenewTokenFunc);
|
|
13
|
+
start(): Promise<void>;
|
|
14
|
+
destroy(): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Connection, Error as ShareDBError } from 'sharedb/lib/client';
|
|
2
|
+
import type { ConnectionState } from 'sharedb/lib/sharedb';
|
|
3
|
+
import { TypedEmitter } from 'tiny-typed-emitter';
|
|
4
|
+
export interface ConnectionStatusEvents {
|
|
5
|
+
'connectionError': (error: ShareDBError) => void;
|
|
6
|
+
'unknownError': (error: ShareDBError) => void;
|
|
7
|
+
'disconnected': (reason: string) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare class ConnectionStatus extends TypedEmitter<ConnectionStatusEvents> {
|
|
10
|
+
private connection;
|
|
11
|
+
constructor(connection: Connection);
|
|
12
|
+
handleClosed: () => void;
|
|
13
|
+
handleCommonError: (error: ShareDBError) => void;
|
|
14
|
+
handleConnecting: () => void;
|
|
15
|
+
handleConnected: () => void;
|
|
16
|
+
handleConnectionError: (error: ShareDBError) => void;
|
|
17
|
+
handleStateChanged: (newState: ConnectionState, reason: string) => void;
|
|
18
|
+
destroy(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface EditStatusOptions {
|
|
2
|
+
dirtyTimeout?: number;
|
|
3
|
+
onDirtyTimeoutError?: () => void;
|
|
4
|
+
onClean?: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare class EditStatus {
|
|
7
|
+
private options;
|
|
8
|
+
private dirtyTimeout;
|
|
9
|
+
private waitingForSave;
|
|
10
|
+
constructor(options: EditStatusOptions);
|
|
11
|
+
setStatus(status: 'clean' | 'dirty'): void;
|
|
12
|
+
destroy(): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AxiosResponse } from 'axios';
|
|
2
|
+
import { BuildResourceUrlOptions } from '../../../../@ones-editor/core';
|
|
3
|
+
import { OnProgress } from '../types';
|
|
4
|
+
export default abstract class ShareDBClientBase {
|
|
5
|
+
abstract apiServer(): string;
|
|
6
|
+
abstract request<T = unknown>(url: string, opt?: any): Promise<AxiosResponse<any, T>>;
|
|
7
|
+
abstract token(): string;
|
|
8
|
+
abstract resourceToken(): string;
|
|
9
|
+
abstract docId(): string;
|
|
10
|
+
getFileUrlByHash(uploadFileUrl: string, hash: string, name: string, size: number, headers: {
|
|
11
|
+
[index: string]: string;
|
|
12
|
+
}): Promise<any>;
|
|
13
|
+
getFileUrlsByHashes(resourceHashes: string[]): Promise<any[]>;
|
|
14
|
+
uploadFile(url: string, file: File, headers: {
|
|
15
|
+
[index: string]: string;
|
|
16
|
+
}, onProgress: OnProgress, options?: {
|
|
17
|
+
thumbnail?: boolean;
|
|
18
|
+
}): Promise<string>;
|
|
19
|
+
uploadResource(file: File, onProgress?: OnProgress, options?: {
|
|
20
|
+
thumbnail?: boolean;
|
|
21
|
+
}): Promise<string>;
|
|
22
|
+
getResourceId(url: string): string;
|
|
23
|
+
buildResourceUrl(resourceId: string, options?: BuildResourceUrlOptions): string;
|
|
24
|
+
}
|
|
@@ -1,31 +1,28 @@
|
|
|
1
1
|
import { BuildResourceUrlOptions, DocVersion, OnesEditorDocVersionExtra } from '../../../../@ones-editor/core';
|
|
2
2
|
import { Doc } from 'sharedb/lib/client';
|
|
3
|
-
import { Event } from 'reconnecting-websocket';
|
|
4
3
|
import type { AxiosResponse } from 'axios';
|
|
5
4
|
import { AuthConnection } from './auth-connection';
|
|
6
|
-
import { EditorDoc,
|
|
5
|
+
import { EditorDoc, RenewTokenFunc, AuthMessage, OnProgress, EditorOp, LinkDetails } from '../types';
|
|
7
6
|
export default class ShareDBClient {
|
|
8
7
|
connection: AuthConnection;
|
|
9
|
-
auth: AuthMessage;
|
|
10
8
|
private doc;
|
|
11
9
|
private reauthFunc?;
|
|
12
|
-
|
|
13
|
-
constructor(auth: AuthMessage, serverUrl: string, reauthFunc?:
|
|
10
|
+
private _clientId;
|
|
11
|
+
constructor(auth: AuthMessage, serverUrl: string, reauthFunc?: RenewTokenFunc);
|
|
12
|
+
get clientId(): string;
|
|
13
|
+
token(): string;
|
|
14
|
+
resourceToken(): string;
|
|
15
|
+
authMessage(): AuthMessage;
|
|
16
|
+
docId(): string;
|
|
14
17
|
editorServer(): string;
|
|
15
18
|
close(logout: boolean): void;
|
|
16
|
-
on(event: 'open' | 'close' | 'error', callback: (event: Event | Error) => void): void;
|
|
17
|
-
onAuthError(callback: (error: Error) => void): void;
|
|
18
|
-
onAuthRecover(callback: () => void): void;
|
|
19
|
-
onWriteConflictError(callback: (error: Error) => void): void;
|
|
20
|
-
onMaxUsersError(callback: () => void): void;
|
|
21
|
-
onRequestReloadError(callback: (error: Error) => void): void;
|
|
22
19
|
/**
|
|
23
20
|
* 根据Id生成一个文档对象,如果文档不存在,则创建一个新的。
|
|
24
21
|
* @param id 待获取的containerId
|
|
25
22
|
*/
|
|
26
23
|
getDoc: () => Promise<Doc<any>>;
|
|
27
24
|
authOnly(): Promise<void>;
|
|
28
|
-
getResourceToken(): string
|
|
25
|
+
getResourceToken(): string;
|
|
29
26
|
hasDocContainer(): boolean;
|
|
30
27
|
apiServer(): string;
|
|
31
28
|
getFileUrlByHash(uploadFileUrl: string, hash: string, name: string, size: number, headers: {
|
|
@@ -52,7 +49,6 @@ export default class ShareDBClient {
|
|
|
52
49
|
revertVersion(ver: number): Promise<void>;
|
|
53
50
|
createVersion(tag: string, publish: boolean): Promise<any>;
|
|
54
51
|
recognizeLink(url: string): Promise<LinkDetails>;
|
|
55
|
-
|
|
52
|
+
getResourceId(url: string): string;
|
|
56
53
|
buildResourceUrl(resourceId: string, options?: BuildResourceUrlOptions): string;
|
|
57
|
-
reAuth(auto?: boolean): void;
|
|
58
54
|
}
|
|
@@ -4,7 +4,9 @@ import { LocalPresence } from 'sharedb/lib/sharedb';
|
|
|
4
4
|
import RemoteCaretsHandler from './remote-caret-handler';
|
|
5
5
|
import { EditorDoc, ShareDBDocCallbacks, ShareDBDocOptions } from '../types';
|
|
6
6
|
import ShareDBClient from './sharedb-client';
|
|
7
|
+
import { EditStatus } from './edit-status';
|
|
7
8
|
export default class ShareDBDoc extends EventCallbacks<ShareDBDocCallbacks> implements OnesEditorDoc, OnesEditorDocVersionHelper {
|
|
9
|
+
private options;
|
|
8
10
|
doc: Doc;
|
|
9
11
|
client: ShareDBClient;
|
|
10
12
|
localPresence?: LocalPresence;
|
|
@@ -13,8 +15,8 @@ export default class ShareDBDoc extends EventCallbacks<ShareDBDocCallbacks> impl
|
|
|
13
15
|
status: OnesEditorDocStatus;
|
|
14
16
|
disableLogout: boolean;
|
|
15
17
|
destroyed: boolean;
|
|
16
|
-
|
|
17
|
-
constructor(client: ShareDBClient, doc: Doc, disableLogout?: boolean);
|
|
18
|
+
editStatus: EditStatus;
|
|
19
|
+
constructor(options: ShareDBDocOptions, client: ShareDBClient, doc: Doc, disableLogout?: boolean);
|
|
18
20
|
beginBatchUpdate(): number;
|
|
19
21
|
endBatchUpdate(): number;
|
|
20
22
|
static load(options: ShareDBDocOptions): Promise<ShareDBDoc>;
|
|
@@ -76,7 +78,6 @@ export default class ShareDBDoc extends EventCallbacks<ShareDBDocCallbacks> impl
|
|
|
76
78
|
onCreateComment(commentId: string, local: boolean): void;
|
|
77
79
|
onUpdateComment(commentId: string, local: boolean): void;
|
|
78
80
|
onCustomMessage(msg: unknown): void;
|
|
79
|
-
onAuthRecover(): void;
|
|
80
81
|
addResources(resourceIds: string[]): Promise<string[]>;
|
|
81
82
|
uploadResource(file: File, options?: UploadResourceOptions): Promise<UploadResourceResult>;
|
|
82
83
|
buildResourceUrl(resourceId: string, options?: BuildResourceUrlOptions): string;
|
|
@@ -108,5 +109,4 @@ export default class ShareDBDoc extends EventCallbacks<ShareDBDocCallbacks> impl
|
|
|
108
109
|
recognizeLink(url: string): Promise<import("../types").LinkDetails>;
|
|
109
110
|
parseHistoryData(historyData: OnesEditorDocHistoryData, handler: OnesEditorHistoryDataParseHandler): void;
|
|
110
111
|
getServerMeta(): OnesEditorDocServerMeta;
|
|
111
|
-
triggerReAuth(auto?: boolean): void;
|
|
112
112
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DocObject, LocalDoc, OnesEditorUser, UploadResourceOptions, UploadResourceResult } from '../../../../@ones-editor/core';
|
|
2
|
+
export interface ShareDBLocalDocOptions {
|
|
3
|
+
serverUrl: string;
|
|
4
|
+
token: string;
|
|
5
|
+
resourceToken?: string;
|
|
6
|
+
user: OnesEditorUser;
|
|
7
|
+
docId: string;
|
|
8
|
+
}
|
|
9
|
+
export default class ShareDBLocalDoc extends LocalDoc {
|
|
10
|
+
private _options;
|
|
11
|
+
private _client;
|
|
12
|
+
constructor(docObject: DocObject, _options: ShareDBLocalDocOptions);
|
|
13
|
+
buildResourceUrl(src: string): string;
|
|
14
|
+
getUser(): OnesEditorUser;
|
|
15
|
+
request<T>(url: string, opt?: any): Promise<T>;
|
|
16
|
+
uploadResource(file: File, options?: UploadResourceOptions | undefined): Promise<UploadResourceResult>;
|
|
17
|
+
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import ShareDBDoc from './doc/sharedb-doc';
|
|
3
3
|
import { RemoteCarets, RemoteCaretsDecorator } from './remote-carets';
|
|
4
|
-
|
|
4
|
+
import ShareDBClientBase from './doc/sharedb-client-base';
|
|
5
|
+
import ShareDBLocalDoc from './doc/sharedb-local-doc';
|
|
6
|
+
import type { ShareDBLocalDocOptions } from './doc/sharedb-local-doc';
|
|
7
|
+
export { ShareDBDoc, RemoteCarets, RemoteCaretsDecorator, ShareDBClientBase, ShareDBLocalDoc };
|
|
8
|
+
export type { ShareDBLocalDocOptions };
|
|
5
9
|
export * from './doc/comments';
|
|
6
10
|
export * from './types';
|
|
7
11
|
export * from './versions';
|
|
@@ -62,16 +62,29 @@ export declare const FileExtError: {
|
|
|
62
62
|
};
|
|
63
63
|
export declare const AuthHeader = "x-live-editor-token";
|
|
64
64
|
export declare const BaseURLHeader = "x-live-editor-base-url";
|
|
65
|
-
export type
|
|
65
|
+
export type RenewTokenFunc = () => Promise<AuthMessage>;
|
|
66
66
|
export type OnProgress = (percentage: number) => void;
|
|
67
67
|
export interface ShareDBDocOptions {
|
|
68
68
|
auth: AuthMessage;
|
|
69
69
|
serverUrl: string;
|
|
70
|
-
reauthFunc?: ReauthFunc;
|
|
71
70
|
autoCreateDoc?: boolean;
|
|
72
71
|
templateData?: EditorDoc;
|
|
73
72
|
disableLogout?: boolean;
|
|
73
|
+
dirtyTimeout?: number;
|
|
74
74
|
onMaxUsersError?: () => void;
|
|
75
|
+
onDirtyTimeoutError?: () => void;
|
|
76
|
+
onClean?: () => void;
|
|
77
|
+
onRenewingToken?: (count: number) => void;
|
|
78
|
+
onRenewedToken?: (auth: AuthMessage) => void;
|
|
79
|
+
onRenewTokenError?: (error: Error) => void;
|
|
80
|
+
onReauthing?: () => void;
|
|
81
|
+
onReauthError?: (error: Error) => void;
|
|
82
|
+
onReauthRecovered?: (auth: AuthMessage) => void;
|
|
83
|
+
onUnknownError?: (error: Error) => void;
|
|
84
|
+
onDisconnected?: (reason: string) => void;
|
|
85
|
+
onConnectionError?: (error: Error) => void;
|
|
86
|
+
onUploadResourceError?: (error: Error) => void;
|
|
87
|
+
renewTokenFunc?: RenewTokenFunc;
|
|
75
88
|
buildResourceUrl?: (resourceId: string, options?: BuildResourceUrlOptions) => string;
|
|
76
89
|
uploadResource?: (file: File, options?: UploadResourceOptions) => Promise<UploadResourceResult>;
|
|
77
90
|
}
|
|
@@ -10,7 +10,7 @@ export default class ShareDBServer extends EventCallbacks<ShareDBDocCallbacks> i
|
|
|
10
10
|
buildResourceUrl(resourceId: string, options?: BuildResourceUrlOptions): string;
|
|
11
11
|
getRemoteUsers(): RemoteUsers;
|
|
12
12
|
getVersionHelper(): OnesEditorDocVersionHelper;
|
|
13
|
-
getVersions(): Promise<DocVersion[]>;
|
|
13
|
+
getVersions(showPublished?: boolean): Promise<DocVersion[]>;
|
|
14
14
|
getVersion(ver: number): Promise<DocObject>;
|
|
15
15
|
getLatestVersion(): Promise<DocObject>;
|
|
16
16
|
getHistoryData(version: number, from?: number | undefined): Promise<{
|
|
@@ -11,7 +11,7 @@ export default class ShareDBSimpleClient {
|
|
|
11
11
|
getBaseURL(): string;
|
|
12
12
|
getBase64BaseURL(): string;
|
|
13
13
|
request<T = unknown>(url: string, opt?: any): Promise<AxiosResponse<any, T>>;
|
|
14
|
-
getVersions(): Promise<DocVersion[]>;
|
|
14
|
+
getVersions(showPublished: boolean): Promise<DocVersion[]>;
|
|
15
15
|
getVersion(ver: number): Promise<EditorDoc>;
|
|
16
16
|
getLatestVersion(): Promise<EditorDoc>;
|
|
17
17
|
getVersionOps(version: number, from?: number): Promise<{
|