@atlaskit/editor-plugin-collab-edit 0.1.0

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 (69) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +13 -0
  3. package/README.md +30 -0
  4. package/dist/cjs/actions.js +110 -0
  5. package/dist/cjs/analytics.js +47 -0
  6. package/dist/cjs/events/handlers.js +88 -0
  7. package/dist/cjs/events/initialize.js +58 -0
  8. package/dist/cjs/events/send-transaction.js +48 -0
  9. package/dist/cjs/index.js +128 -0
  10. package/dist/cjs/native-collab-provider-plugin.js +37 -0
  11. package/dist/cjs/participants.js +95 -0
  12. package/dist/cjs/plugin-key.js +8 -0
  13. package/dist/cjs/plugin-state.js +241 -0
  14. package/dist/cjs/plugin.js +102 -0
  15. package/dist/cjs/types.js +5 -0
  16. package/dist/cjs/utils.js +150 -0
  17. package/dist/es2019/actions.js +119 -0
  18. package/dist/es2019/analytics.js +41 -0
  19. package/dist/es2019/events/handlers.js +72 -0
  20. package/dist/es2019/events/initialize.js +44 -0
  21. package/dist/es2019/events/send-transaction.js +42 -0
  22. package/dist/es2019/index.js +86 -0
  23. package/dist/es2019/native-collab-provider-plugin.js +32 -0
  24. package/dist/es2019/participants.js +57 -0
  25. package/dist/es2019/plugin-key.js +2 -0
  26. package/dist/es2019/plugin-state.js +219 -0
  27. package/dist/es2019/plugin.js +83 -0
  28. package/dist/es2019/types.js +1 -0
  29. package/dist/es2019/utils.js +133 -0
  30. package/dist/esm/actions.js +103 -0
  31. package/dist/esm/analytics.js +41 -0
  32. package/dist/esm/events/handlers.js +82 -0
  33. package/dist/esm/events/initialize.js +51 -0
  34. package/dist/esm/events/send-transaction.js +42 -0
  35. package/dist/esm/index.js +116 -0
  36. package/dist/esm/native-collab-provider-plugin.js +31 -0
  37. package/dist/esm/participants.js +88 -0
  38. package/dist/esm/plugin-key.js +2 -0
  39. package/dist/esm/plugin-state.js +229 -0
  40. package/dist/esm/plugin.js +85 -0
  41. package/dist/esm/types.js +1 -0
  42. package/dist/esm/utils.js +136 -0
  43. package/dist/types/actions.d.ts +11 -0
  44. package/dist/types/analytics.d.ts +6 -0
  45. package/dist/types/events/handlers.d.ts +24 -0
  46. package/dist/types/events/initialize.d.ts +16 -0
  47. package/dist/types/events/send-transaction.d.ts +11 -0
  48. package/dist/types/index.d.ts +29 -0
  49. package/dist/types/native-collab-provider-plugin.d.ts +7 -0
  50. package/dist/types/participants.d.ts +18 -0
  51. package/dist/types/plugin-key.d.ts +3 -0
  52. package/dist/types/plugin-state.d.ts +25 -0
  53. package/dist/types/plugin.d.ts +11 -0
  54. package/dist/types/types.d.ts +8 -0
  55. package/dist/types/utils.d.ts +16 -0
  56. package/dist/types-ts4.5/actions.d.ts +11 -0
  57. package/dist/types-ts4.5/analytics.d.ts +6 -0
  58. package/dist/types-ts4.5/events/handlers.d.ts +24 -0
  59. package/dist/types-ts4.5/events/initialize.d.ts +16 -0
  60. package/dist/types-ts4.5/events/send-transaction.d.ts +11 -0
  61. package/dist/types-ts4.5/index.d.ts +29 -0
  62. package/dist/types-ts4.5/native-collab-provider-plugin.d.ts +7 -0
  63. package/dist/types-ts4.5/participants.d.ts +18 -0
  64. package/dist/types-ts4.5/plugin-key.d.ts +3 -0
  65. package/dist/types-ts4.5/plugin-state.d.ts +25 -0
  66. package/dist/types-ts4.5/plugin.d.ts +11 -0
  67. package/dist/types-ts4.5/types.d.ts +8 -0
  68. package/dist/types-ts4.5/utils.d.ts +16 -0
  69. package/package.json +104 -0
@@ -0,0 +1,18 @@
1
+ import type { CollabParticipant } from '@atlaskit/editor-common/collab';
2
+ export interface ReadOnlyParticipants {
3
+ get(sessionId: string): CollabParticipant | undefined;
4
+ toArray(): ReadonlyArray<CollabParticipant>;
5
+ eq(other: ReadOnlyParticipants): boolean;
6
+ }
7
+ export declare class Participants implements ReadOnlyParticipants {
8
+ private participants;
9
+ constructor(participants?: Map<string, CollabParticipant>);
10
+ add(data: CollabParticipant[]): Participants;
11
+ remove(sessionIds: string[]): Participants;
12
+ update(sessionId: string, lastActive: number): Participants;
13
+ updateCursorPos(sessionId: string, cursorPos: number): Participants;
14
+ toArray(): CollabParticipant[];
15
+ get(sessionId: string): CollabParticipant | undefined;
16
+ size(): number;
17
+ eq(other: Participants): boolean;
18
+ }
@@ -0,0 +1,3 @@
1
+ import { PluginKey } from '@atlaskit/editor-prosemirror/state';
2
+ import type { PluginState as CollabPluginState } from './plugin-state';
3
+ export declare const pluginKey: PluginKey<CollabPluginState>;
@@ -0,0 +1,25 @@
1
+ import { TELEPOINTER_DIM_CLASS } from '@atlaskit/editor-common/collab';
2
+ import type { ReadonlyTransaction } from '@atlaskit/editor-prosemirror/state';
3
+ import { DecorationSet } from '@atlaskit/editor-prosemirror/view';
4
+ import type { ReadOnlyParticipants } from './participants';
5
+ import { Participants } from './participants';
6
+ export { TELEPOINTER_DIM_CLASS };
7
+ /**
8
+ * Returns position where it's possible to place a decoration.
9
+ */
10
+ export declare const getValidPos: (tr: ReadonlyTransaction, pos: number) => number;
11
+ export declare class PluginState {
12
+ private decorationSet;
13
+ private participants;
14
+ private onError;
15
+ private sid?;
16
+ isReady: boolean;
17
+ get decorations(): DecorationSet;
18
+ get activeParticipants(): ReadOnlyParticipants;
19
+ get sessionId(): string | undefined;
20
+ constructor(decorations: DecorationSet, participants: Participants, sessionId?: string, collabInitalised?: boolean, onError?: (err: Error) => void);
21
+ getInitial(sessionId: string): string;
22
+ apply(tr: ReadonlyTransaction): PluginState;
23
+ static eq(a: PluginState, b: PluginState): boolean;
24
+ static init(config: any): PluginState;
25
+ }
@@ -0,0 +1,11 @@
1
+ import type { CollabEditProvider } from '@atlaskit/editor-common/collab';
2
+ import type { Dispatch } from '@atlaskit/editor-common/event-dispatcher';
3
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
5
+ import type { ExtractInjectionAPI, FeatureFlags } from '@atlaskit/editor-common/types';
6
+ import { pluginKey } from './plugin-key';
7
+ import { PluginState } from './plugin-state';
8
+ import type { PrivateCollabEditOptions, ProviderCallback } from './types';
9
+ import type { collabEditPlugin } from './index';
10
+ export { PluginState, pluginKey };
11
+ export declare const createPlugin: (dispatch: Dispatch, providerFactory: ProviderFactory, providerResolver: (value: CollabEditProvider) => void, collabProviderCallback: ProviderCallback, options: PrivateCollabEditOptions, featureFlags: FeatureFlags, pluginInjectionApi: ExtractInjectionAPI<typeof collabEditPlugin> | undefined) => SafePlugin<PluginState>;
@@ -0,0 +1,8 @@
1
+ import type { CollabEditOptions, CollabEditProvider, SyncUpErrorFunction } from '@atlaskit/editor-common/collab';
2
+ export type { InviteToEditComponentProps, InviteToEditButtonProps, CollabInviteToEditProps, CollabAnalyticsProps, } from '@atlaskit/editor-common/collab';
3
+ export type PrivateCollabEditOptions = CollabEditOptions & {
4
+ sanitizePrivateContent?: boolean;
5
+ onSyncUpError?: SyncUpErrorFunction;
6
+ };
7
+ export type ProviderCallback = <ReturnType>(codeToExecute: (provider: CollabEditProvider) => ReturnType | undefined, onError?: (err: Error) => void) => Promise<ReturnType | undefined> | undefined;
8
+ export type ProviderBuilder = (collabEditProviderPromise: Promise<CollabEditProvider>) => ProviderCallback;
@@ -0,0 +1,16 @@
1
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ import type { CollabEditOptions, CollabParticipant, Color } from '@atlaskit/editor-common/collab';
3
+ import { colors } from '@atlaskit/editor-common/collab';
4
+ import type { EditorState } from '@atlaskit/editor-prosemirror/state';
5
+ import type { DecorationSet, EditorView } from '@atlaskit/editor-prosemirror/view';
6
+ import { Decoration } from '@atlaskit/editor-prosemirror/view';
7
+ export { Color, colors };
8
+ export declare const findPointers: (id: string, decorations: DecorationSet) => Decoration[];
9
+ export declare function getAvatarColor(str: string): {
10
+ index: number;
11
+ color: Color;
12
+ };
13
+ export declare const createTelepointers: (from: number, to: number, sessionId: string, isSelection: boolean, initial: string) => Decoration[];
14
+ export declare const replaceDocument: (doc: any, state: EditorState, version?: number, options?: CollabEditOptions, reserveCursor?: boolean) => import("prosemirror-state").Transaction;
15
+ export declare const scrollToCollabCursor: (editorView: EditorView, participants: CollabParticipant[], sessionId: string | undefined, index: number, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => void;
16
+ export declare const getPositionOfTelepointer: (sessionId: string, decorationSet: DecorationSet) => undefined | number;
@@ -0,0 +1,11 @@
1
+ import type { CollabEventConnectionData, CollabEventInitData, CollabEventPresenceData, CollabEventRemoteData, CollabSendableSelection, CollabTelepointerPayload } from '@atlaskit/editor-common/collab';
2
+ import type { Selection } from '@atlaskit/editor-prosemirror/state';
3
+ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
4
+ import type { PrivateCollabEditOptions } from './types';
5
+ export declare const handleInit: (initData: CollabEventInitData, view: EditorView, options?: PrivateCollabEditOptions) => void;
6
+ export declare const handleConnection: (connectionData: CollabEventConnectionData, view: EditorView) => void;
7
+ export declare const handlePresence: (presenceData: CollabEventPresenceData, view: EditorView) => void;
8
+ export declare const applyRemoteData: (remoteData: CollabEventRemoteData, view: EditorView, options: PrivateCollabEditOptions) => void;
9
+ export declare const applyRemoteSteps: (json: any[], view: EditorView, userIds?: (number | string)[], options?: PrivateCollabEditOptions) => void;
10
+ export declare const handleTelePointer: (telepointerData: CollabTelepointerPayload, view: EditorView) => void;
11
+ export declare const getSendableSelection: (selection: Selection) => CollabSendableSelection;
@@ -0,0 +1,6 @@
1
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ import type { FeatureFlags } from '@atlaskit/editor-common/types';
3
+ import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
4
+ export declare const addSynchronyErrorAnalytics: (state: EditorState, tr: Transaction, featureFlags: FeatureFlags, editorAnalyticsApi: EditorAnalyticsAPI | undefined) => (error: Error) => Transaction;
5
+ export type EntityEventType = 'error' | 'disconnected';
6
+ export declare const addSynchronyEntityAnalytics: (state: EditorState, tr: Transaction) => (type: EntityEventType, editorAnalyticsApi: EditorAnalyticsAPI | undefined) => Transaction;
@@ -0,0 +1,24 @@
1
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ import type { CollabEditProvider, CollabEventConnectionData, CollabEventInitData, CollabEventLocalStepData, CollabEventPresenceData, CollabEventRemoteData, CollabTelepointerPayload } from '@atlaskit/editor-common/collab';
3
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
+ import type { FeatureFlags } from '@atlaskit/editor-common/types';
5
+ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
+ import type { PrivateCollabEditOptions } from '../types';
7
+ export type SynchronyEntity = {
8
+ on: (evt: 'disconnected' | 'error', handler: (...args: any) => void) => void;
9
+ off: (evt: 'disconnected' | 'error', handler: (...args: any) => void) => void;
10
+ };
11
+ export interface CollabHandlers {
12
+ initHandler: (data: CollabEventInitData) => void;
13
+ connectedHandler: (data: CollabEventConnectionData) => void;
14
+ dataHandler: (data: CollabEventRemoteData) => void;
15
+ presenceHandler: (data: CollabEventPresenceData) => void;
16
+ telepointerHandler: (data: CollabTelepointerPayload) => void;
17
+ localStepsHandler: (data: CollabEventLocalStepData) => void;
18
+ errorHandler: (error: any) => void;
19
+ entityHandler: ({ entity }: {
20
+ entity: SynchronyEntity;
21
+ }) => void;
22
+ }
23
+ export type Cleanup = () => void;
24
+ export declare const subscribe: (currentDeps_0: EditorView, currentDeps_1: CollabEditProvider<import("@atlaskit/editor-common/collab").CollabEvents>, currentDeps_2: PrivateCollabEditOptions, currentDeps_3: FeatureFlags, currentDeps_4?: ProviderFactory | undefined, currentDeps_5?: EditorAnalyticsAPI | undefined) => Cleanup;
@@ -0,0 +1,16 @@
1
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ import type { CollabEditProvider } from '@atlaskit/editor-common/collab';
3
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
+ import type { FeatureFlags } from '@atlaskit/editor-common/types';
5
+ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
+ import type { PrivateCollabEditOptions } from '../types';
7
+ import type { Cleanup } from './handlers';
8
+ type Props = {
9
+ view: EditorView;
10
+ options: PrivateCollabEditOptions;
11
+ providerFactory: ProviderFactory;
12
+ featureFlags: FeatureFlags;
13
+ editorAnalyticsApi: EditorAnalyticsAPI | undefined;
14
+ };
15
+ export declare const initialize: ({ options, providerFactory, view, featureFlags, editorAnalyticsApi, }: Props) => (provider: CollabEditProvider) => Cleanup;
16
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { CollabEditProvider } from '@atlaskit/editor-common/collab';
2
+ import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
3
+ type Props = {
4
+ originalTransaction: Readonly<Transaction>;
5
+ transactions: readonly Transaction[];
6
+ oldEditorState: EditorState;
7
+ newEditorState: EditorState;
8
+ useNativePlugin: boolean;
9
+ };
10
+ export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, }: Props) => (provider: CollabEditProvider) => void;
11
+ export {};
@@ -0,0 +1,29 @@
1
+ import type { NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
2
+ import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
3
+ import type { FeatureFlagsPlugin } from '@atlaskit/editor-plugin-feature-flags';
4
+ import type { ReadOnlyParticipants } from './participants';
5
+ import { pluginKey } from './plugin';
6
+ import type { PrivateCollabEditOptions } from './types';
7
+ export { pluginKey };
8
+ import type { Color } from './utils';
9
+ export type { PluginState } from './plugin-state';
10
+ export type { CollabInviteToEditProps, InviteToEditComponentProps, PrivateCollabEditOptions, } from './types';
11
+ export type { ReadOnlyParticipants } from './participants';
12
+ export type CollabEditPlugin = NextEditorPlugin<'collabEdit', {
13
+ pluginConfiguration: PrivateCollabEditOptions;
14
+ dependencies: [
15
+ OptionalPlugin<FeatureFlagsPlugin>,
16
+ OptionalPlugin<AnalyticsPlugin>
17
+ ];
18
+ sharedState: {
19
+ activeParticipants: ReadOnlyParticipants | undefined;
20
+ sessionId: string | undefined;
21
+ } | undefined;
22
+ actions: {
23
+ getAvatarColor: (str: string) => {
24
+ index: number;
25
+ color: Color;
26
+ };
27
+ };
28
+ }>;
29
+ export declare const collabEditPlugin: CollabEditPlugin;
@@ -0,0 +1,7 @@
1
+ import type { CollabEditProvider, CollabEvents } from '@atlaskit/editor-common/collab';
2
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
+ import type { EditorState } from '@atlaskit/editor-prosemirror/state';
4
+ export declare const nativeCollabProviderPlugin: ({ providerPromise, }: {
5
+ providerPromise: Promise<CollabEditProvider>;
6
+ }) => SafePlugin<CollabEditProvider<CollabEvents> | null>;
7
+ export declare const getCollabProvider: (editorState: EditorState) => CollabEditProvider | null;
@@ -0,0 +1,18 @@
1
+ import type { CollabParticipant } from '@atlaskit/editor-common/collab';
2
+ export interface ReadOnlyParticipants {
3
+ get(sessionId: string): CollabParticipant | undefined;
4
+ toArray(): ReadonlyArray<CollabParticipant>;
5
+ eq(other: ReadOnlyParticipants): boolean;
6
+ }
7
+ export declare class Participants implements ReadOnlyParticipants {
8
+ private participants;
9
+ constructor(participants?: Map<string, CollabParticipant>);
10
+ add(data: CollabParticipant[]): Participants;
11
+ remove(sessionIds: string[]): Participants;
12
+ update(sessionId: string, lastActive: number): Participants;
13
+ updateCursorPos(sessionId: string, cursorPos: number): Participants;
14
+ toArray(): CollabParticipant[];
15
+ get(sessionId: string): CollabParticipant | undefined;
16
+ size(): number;
17
+ eq(other: Participants): boolean;
18
+ }
@@ -0,0 +1,3 @@
1
+ import { PluginKey } from '@atlaskit/editor-prosemirror/state';
2
+ import type { PluginState as CollabPluginState } from './plugin-state';
3
+ export declare const pluginKey: PluginKey<CollabPluginState>;
@@ -0,0 +1,25 @@
1
+ import { TELEPOINTER_DIM_CLASS } from '@atlaskit/editor-common/collab';
2
+ import type { ReadonlyTransaction } from '@atlaskit/editor-prosemirror/state';
3
+ import { DecorationSet } from '@atlaskit/editor-prosemirror/view';
4
+ import type { ReadOnlyParticipants } from './participants';
5
+ import { Participants } from './participants';
6
+ export { TELEPOINTER_DIM_CLASS };
7
+ /**
8
+ * Returns position where it's possible to place a decoration.
9
+ */
10
+ export declare const getValidPos: (tr: ReadonlyTransaction, pos: number) => number;
11
+ export declare class PluginState {
12
+ private decorationSet;
13
+ private participants;
14
+ private onError;
15
+ private sid?;
16
+ isReady: boolean;
17
+ get decorations(): DecorationSet;
18
+ get activeParticipants(): ReadOnlyParticipants;
19
+ get sessionId(): string | undefined;
20
+ constructor(decorations: DecorationSet, participants: Participants, sessionId?: string, collabInitalised?: boolean, onError?: (err: Error) => void);
21
+ getInitial(sessionId: string): string;
22
+ apply(tr: ReadonlyTransaction): PluginState;
23
+ static eq(a: PluginState, b: PluginState): boolean;
24
+ static init(config: any): PluginState;
25
+ }
@@ -0,0 +1,11 @@
1
+ import type { CollabEditProvider } from '@atlaskit/editor-common/collab';
2
+ import type { Dispatch } from '@atlaskit/editor-common/event-dispatcher';
3
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
5
+ import type { ExtractInjectionAPI, FeatureFlags } from '@atlaskit/editor-common/types';
6
+ import { pluginKey } from './plugin-key';
7
+ import { PluginState } from './plugin-state';
8
+ import type { PrivateCollabEditOptions, ProviderCallback } from './types';
9
+ import type { collabEditPlugin } from './index';
10
+ export { PluginState, pluginKey };
11
+ export declare const createPlugin: (dispatch: Dispatch, providerFactory: ProviderFactory, providerResolver: (value: CollabEditProvider) => void, collabProviderCallback: ProviderCallback, options: PrivateCollabEditOptions, featureFlags: FeatureFlags, pluginInjectionApi: ExtractInjectionAPI<typeof collabEditPlugin> | undefined) => SafePlugin<PluginState>;
@@ -0,0 +1,8 @@
1
+ import type { CollabEditOptions, CollabEditProvider, SyncUpErrorFunction } from '@atlaskit/editor-common/collab';
2
+ export type { InviteToEditComponentProps, InviteToEditButtonProps, CollabInviteToEditProps, CollabAnalyticsProps, } from '@atlaskit/editor-common/collab';
3
+ export type PrivateCollabEditOptions = CollabEditOptions & {
4
+ sanitizePrivateContent?: boolean;
5
+ onSyncUpError?: SyncUpErrorFunction;
6
+ };
7
+ export type ProviderCallback = <ReturnType>(codeToExecute: (provider: CollabEditProvider) => ReturnType | undefined, onError?: (err: Error) => void) => Promise<ReturnType | undefined> | undefined;
8
+ export type ProviderBuilder = (collabEditProviderPromise: Promise<CollabEditProvider>) => ProviderCallback;
@@ -0,0 +1,16 @@
1
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ import type { CollabEditOptions, CollabParticipant, Color } from '@atlaskit/editor-common/collab';
3
+ import { colors } from '@atlaskit/editor-common/collab';
4
+ import type { EditorState } from '@atlaskit/editor-prosemirror/state';
5
+ import type { DecorationSet, EditorView } from '@atlaskit/editor-prosemirror/view';
6
+ import { Decoration } from '@atlaskit/editor-prosemirror/view';
7
+ export { Color, colors };
8
+ export declare const findPointers: (id: string, decorations: DecorationSet) => Decoration[];
9
+ export declare function getAvatarColor(str: string): {
10
+ index: number;
11
+ color: Color;
12
+ };
13
+ export declare const createTelepointers: (from: number, to: number, sessionId: string, isSelection: boolean, initial: string) => Decoration[];
14
+ export declare const replaceDocument: (doc: any, state: EditorState, version?: number, options?: CollabEditOptions, reserveCursor?: boolean) => import("prosemirror-state").Transaction;
15
+ export declare const scrollToCollabCursor: (editorView: EditorView, participants: CollabParticipant[], sessionId: string | undefined, index: number, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => void;
16
+ export declare const getPositionOfTelepointer: (sessionId: string, decorationSet: DecorationSet) => undefined | number;
package/package.json ADDED
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "@atlaskit/editor-plugin-collab-edit",
3
+ "version": "0.1.0",
4
+ "description": "Collab Edit plugin for @atlaskit/editor-core",
5
+ "author": "Atlassian Pty Ltd",
6
+ "license": "Apache-2.0",
7
+ "publishConfig": {
8
+ "registry": "https://registry.npmjs.org/"
9
+ },
10
+ "atlassian": {
11
+ "team": "Editor: Collaboration",
12
+ "inPublicMirror": false,
13
+ "releaseModel": "continuous",
14
+ "website": {
15
+ "name": "EditorPluginCollabEdit",
16
+ "category": "Components"
17
+ }
18
+ },
19
+ "repository": "https://bitbucket.org/atlassian/atlassian-frontend",
20
+ "main": "dist/cjs/index.js",
21
+ "module": "dist/esm/index.js",
22
+ "module:es2019": "dist/es2019/index.js",
23
+ "types": "dist/types/index.d.ts",
24
+ "typesVersions": {
25
+ ">=4.5 <4.9": {
26
+ "*": [
27
+ "dist/types-ts4.5/*",
28
+ "dist/types-ts4.5/index.d.ts"
29
+ ]
30
+ }
31
+ },
32
+ "sideEffects": false,
33
+ "atlaskit:src": "src/index.ts",
34
+ "af:exports": {
35
+ ".": "./src/index.ts"
36
+ },
37
+ "dependencies": {
38
+ "@atlaskit/editor-common": "^76.35.0",
39
+ "@atlaskit/editor-plugin-analytics": "0.4.4",
40
+ "@atlaskit/editor-plugin-feature-flags": "^1.0.0",
41
+ "@atlaskit/editor-prosemirror": "1.1.0",
42
+ "@babel/runtime": "^7.0.0",
43
+ "memoize-one": "^6.0.0",
44
+ "prosemirror-collab": "1.3.1"
45
+ },
46
+ "peerDependencies": {
47
+ "react": "^16.8.0"
48
+ },
49
+ "devDependencies": {
50
+ "@af/integration-testing": "*",
51
+ "@af/visual-regression": "*",
52
+ "@atlaskit/editor-plugin-mentions": "^0.1.0",
53
+ "@atlaskit/editor-plugin-text-formatting": "^0.4.0",
54
+ "@atlaskit/editor-plugin-type-ahead": "^0.9.0",
55
+ "@atlaskit/editor-plugin-unsupported-content": "^0.2.0",
56
+ "@atlaskit/editor-test-helpers": "^18.15.0",
57
+ "@atlaskit/ssr": "*",
58
+ "@atlaskit/synchrony-test-helpers": "^2.3.0",
59
+ "@atlaskit/util-data-test": "^17.8.0",
60
+ "@atlaskit/visual-regression": "*",
61
+ "@atlaskit/webdriver-runner": "*",
62
+ "@atlassian/atlassian-frontend-prettier-config-1.0.0": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.0",
63
+ "@testing-library/react": "^12.1.5",
64
+ "react-dom": "^16.8.0",
65
+ "typescript": "~4.9.5",
66
+ "wait-for-expect": "^1.2.0"
67
+ },
68
+ "techstack": {
69
+ "@atlassian/frontend": {
70
+ "import-structure": [
71
+ "atlassian-conventions"
72
+ ],
73
+ "circular-dependencies": [
74
+ "file-and-folder-level"
75
+ ]
76
+ },
77
+ "@repo/internal": {
78
+ "dom-events": "use-bind-event-listener",
79
+ "analytics": [
80
+ "analytics-next"
81
+ ],
82
+ "design-tokens": [
83
+ "color"
84
+ ],
85
+ "theming": [
86
+ "react-context"
87
+ ],
88
+ "ui-components": [
89
+ "lite-mode"
90
+ ],
91
+ "deprecation": [
92
+ "no-deprecated-imports"
93
+ ],
94
+ "styling": [
95
+ "static",
96
+ "emotion"
97
+ ],
98
+ "imports": [
99
+ "import-no-extraneous-disable-for-examples-and-docs"
100
+ ]
101
+ }
102
+ },
103
+ "prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.0"
104
+ }