@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.
Files changed (59) hide show
  1. package/@ones-editor/block-resizer/src/index.d.ts +1 -0
  2. package/@ones-editor/comments/src/block-hook/block-comment-hook.d.ts +10 -0
  3. package/@ones-editor/comments/src/comment-quick-reply/index.d.ts +1 -0
  4. package/@ones-editor/comments/src/comments-helper/get-comment-abstract.d.ts +2 -1
  5. package/@ones-editor/core/src/core/block-renderers/block-renderers.d.ts +1 -0
  6. package/@ones-editor/core/src/core/doc/doc.d.ts +1 -2
  7. package/@ones-editor/core/src/core/editor-doc/editor-doc.d.ts +0 -1
  8. package/@ones-editor/core/src/core/types.d.ts +6 -2
  9. package/@ones-editor/core/src/core/undo-manager/actions/action.d.ts +5 -1
  10. package/@ones-editor/core/src/core/undo-manager/actions/block-action.d.ts +1 -0
  11. package/@ones-editor/core/src/core/undo-manager/actions/update-block-data-action.d.ts +1 -0
  12. package/@ones-editor/embed-block-helper/src/block-properties/embed-block-properties.d.ts +1 -1
  13. package/@ones-editor/embed-block-helper/src/block-resizer/index.d.ts +1 -0
  14. package/@ones-editor/image-embed/src/hovering-toolbar/index.d.ts +0 -11
  15. package/@ones-editor/image-embed/src/image-object.d.ts +1 -0
  16. package/@ones-editor/media-embed/src/core/hovering-toolbar/index.d.ts +2 -20
  17. package/@ones-editor/misc/src/index.d.ts +0 -1
  18. package/@ones-editor/misc/src/re-auth/index.d.ts +0 -23
  19. package/@ones-editor/sharedb-doc/src/doc/auth-connection.d.ts +39 -31
  20. package/@ones-editor/sharedb-doc/src/doc/auto-renew-token.d.ts +15 -0
  21. package/@ones-editor/sharedb-doc/src/doc/connection-status.d.ts +19 -0
  22. package/@ones-editor/sharedb-doc/src/doc/edit-status.d.ts +13 -0
  23. package/@ones-editor/sharedb-doc/src/doc/sharedb-client-base.d.ts +24 -0
  24. package/@ones-editor/sharedb-doc/src/doc/sharedb-client.d.ts +10 -14
  25. package/@ones-editor/sharedb-doc/src/doc/sharedb-doc.d.ts +4 -4
  26. package/@ones-editor/sharedb-doc/src/doc/sharedb-local-doc.d.ts +17 -0
  27. package/@ones-editor/sharedb-doc/src/index.d.ts +5 -1
  28. package/@ones-editor/sharedb-doc/src/types.d.ts +15 -2
  29. package/@ones-editor/sharedb-doc/src/versions/sharedb-server.d.ts +1 -1
  30. package/@ones-editor/sharedb-doc/src/versions/simple-client.d.ts +1 -1
  31. package/@ones-editor/tsconfig.tsbuildinfo +1 -1
  32. package/@ones-editor/ui/src/index.d.ts +2 -1
  33. package/@ones-editor/ui/src/readonly-toolbar/add-comment-to-old-doc.d.ts +3 -0
  34. package/@ones-editor/ui/src/readonly-toolbar/helper.d.ts +2 -0
  35. package/@ones-editor/ui/src/readonly-toolbar/index.d.ts +2 -0
  36. package/@ones-editor/ui/src/tooltips/index.d.ts +21 -9
  37. package/@ones-editor/ui-base/src/color-button/text-color-item.d.ts +18 -8
  38. package/@ones-editor/ui-base/src/color-palette/color-palette.d.ts +7 -1
  39. package/@ones-editor/ui-base/src/color-palette/index.d.ts +3 -3
  40. package/@ones-editor/ui-base/src/command-bar/active-observer.d.ts +11 -0
  41. package/@ones-editor/ui-base/src/command-bar/fixed-toolbar.d.ts +1 -0
  42. package/@ones-editor/ui-base/src/locale/en-us.d.ts +1 -0
  43. package/@ones-editor/ui-base/src/locale/ja-jp.d.ts +1 -0
  44. package/@ones-editor/ui-base/src/locale/zh-cn.d.ts +1 -0
  45. package/@ones-editor/versions/package.json +3 -0
  46. package/@ones-editor/versions/src/constant/index.d.ts +2 -0
  47. package/@ones-editor/versions/src/history-doc/history-doc.d.ts +2 -2
  48. package/@ones-editor/versions/src/history-render/index.d.ts +15 -1
  49. package/@ones-editor/versions/src/history-tooltip/index.d.ts +14 -0
  50. package/@ones-editor/versions/src/index.d.ts +1 -0
  51. package/@ones-editor/versions/src/locale/en-us.d.ts +1 -0
  52. package/@ones-editor/versions/src/locale/ja-jp.d.ts +1 -0
  53. package/@ones-editor/versions/src/locale/zh-cn.d.ts +1 -0
  54. package/@ones-editor/versions/src/types.d.ts +4 -0
  55. package/@ones-editor/versions/src/utils/block-text.d.ts +3 -1
  56. package/dist/error-handler/index.d.ts +19 -0
  57. package/dist/index.js +4484 -3079
  58. package/dist/types.d.ts +14 -2
  59. 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
- constructor(editor: OnesEditor, containerId: string, afterRange: OnesEditorDocRange);
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
  }
@@ -9,4 +9,5 @@ export default class UpdateBlockDataAction extends Action {
9
9
  undo(editor: OnesEditor): boolean;
10
10
  redo(editor: OnesEditor): boolean;
11
11
  private static toAttributes;
12
+ getBatchActionId(): string | undefined;
12
13
  }
@@ -1,5 +1,5 @@
1
1
  import { BlockCommands, BlockElement, CommandItem, OnesEditor } from '../../../../@ones-editor/core';
2
- export type CommandId = 'edit' | 'add-comment' | 'separator';
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
- groupOrder: number;
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,4 +1,3 @@
1
1
  export * from './image';
2
2
  export * from './title';
3
3
  export * from './image-downloader';
4
- export * from './re-auth';
@@ -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
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { Connection, Doc } from 'sharedb/lib/client';
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 declare class AuthConnection {
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 reauthFunc?;
10
- enabled: boolean;
11
- connection?: Connection;
12
- ws?: ReconnectingWebSocket;
13
- retryCount: number;
14
- events: EventEmitter;
15
- token: string | null;
16
- resourceToken: string | null;
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, reauthFunc?: ReauthFunc | undefined);
35
+ constructor(authMessage: AuthMessage, url: string, renewTokenFunc?: RenewTokenFunc | undefined);
22
36
  getBaseURL(): string;
23
37
  getBase64BaseURL(): string;
24
- auth(auth: AuthMessage): Promise<{
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(auth: AuthMessage): Promise<void>;
30
- reConnect(token: string): Promise<void>;
31
- _autoReAuth(): Promise<void>;
32
- autoReAuth(): Promise<void>;
33
- handleAuthError(): Promise<void>;
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(message: object): void;
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, ReauthFunc, AuthMessage, OnProgress, EditorOp, LinkDetails } from '../types';
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
- clientId: string;
13
- constructor(auth: AuthMessage, serverUrl: string, reauthFunc?: 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 | null;
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
- private getResourceId;
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
- options: ShareDBDocOptions | null;
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
- export { ShareDBDoc, RemoteCarets, RemoteCaretsDecorator };
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 ReauthFunc = () => Promise<AuthMessage>;
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<{