@hocuspocus/extension-webhook 3.0.4-rc.0 → 3.0.6-rc.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.
- package/dist/hocuspocus-webhook.cjs.map +1 -1
- package/dist/hocuspocus-webhook.esm.js.map +1 -1
- package/dist/packages/common/src/auth.d.ts +1 -1
- package/dist/packages/common/src/index.d.ts +4 -4
- package/dist/packages/extension-database/src/index.d.ts +1 -1
- package/dist/packages/extension-logger/src/index.d.ts +1 -1
- package/dist/packages/extension-redis/src/Redis.d.ts +0 -2
- package/dist/packages/extension-redis/src/index.d.ts +1 -1
- package/dist/packages/extension-sqlite/src/index.d.ts +1 -1
- package/dist/packages/extension-throttle/src/index.d.ts +0 -1
- package/dist/packages/extension-webhook/src/index.d.ts +0 -1
- package/dist/packages/provider/src/HocuspocusProvider.d.ts +4 -4
- package/dist/packages/provider/src/HocuspocusProviderWebsocket.d.ts +4 -4
- package/dist/packages/provider/src/IncomingMessage.d.ts +2 -2
- package/dist/packages/provider/src/MessageReceiver.d.ts +2 -2
- package/dist/packages/provider/src/MessageSender.d.ts +2 -2
- package/dist/packages/provider/src/OutgoingMessage.d.ts +2 -2
- package/dist/packages/provider/src/OutgoingMessages/AuthenticationMessage.d.ts +3 -3
- package/dist/packages/provider/src/OutgoingMessages/AwarenessMessage.d.ts +3 -3
- package/dist/packages/provider/src/OutgoingMessages/CloseMessage.d.ts +3 -3
- package/dist/packages/provider/src/OutgoingMessages/QueryAwarenessMessage.d.ts +3 -3
- package/dist/packages/provider/src/OutgoingMessages/StatelessMessage.d.ts +3 -3
- package/dist/packages/provider/src/OutgoingMessages/SyncStepOneMessage.d.ts +3 -3
- package/dist/packages/provider/src/OutgoingMessages/SyncStepTwoMessage.d.ts +3 -3
- package/dist/packages/provider/src/OutgoingMessages/UpdateMessage.d.ts +3 -3
- package/dist/packages/provider/src/index.d.ts +3 -3
- package/dist/packages/provider/src/types.d.ts +8 -8
- package/dist/packages/server/src/ClientConnection.d.ts +3 -5
- package/dist/packages/server/src/Connection.d.ts +13 -5
- package/dist/packages/server/src/DirectConnection.d.ts +3 -3
- package/dist/packages/server/src/Document.d.ts +1 -1
- package/dist/packages/server/src/Hocuspocus.d.ts +4 -5
- package/dist/packages/server/src/IncomingMessage.d.ts +4 -3
- package/dist/packages/server/src/MessageReceiver.d.ts +5 -5
- package/dist/packages/server/src/OutgoingMessage.d.ts +1 -1
- package/dist/packages/server/src/Server.d.ts +1 -2
- package/dist/packages/server/src/index.d.ts +9 -9
- package/dist/packages/server/src/types.d.ts +28 -9
- package/dist/packages/server/src/util/getParameters.d.ts +0 -2
- package/dist/packages/transformer/src/Prosemirror.d.ts +1 -1
- package/dist/packages/transformer/src/Tiptap.d.ts +1 -1
- package/dist/packages/transformer/src/index.d.ts +3 -3
- package/dist/playground/frontend/app/SocketContext.d.ts +2 -0
- package/dist/playground/frontend/next.config.d.ts +3 -0
- package/dist/tests/utils/index.d.ts +9 -9
- package/dist/tests/utils/newHocuspocusProviderWebsocket.d.ts +1 -1
- package/package.json +5 -5
- package/dist/playground/frontend/vite.config.d.ts +0 -2
- /package/dist/{playground/frontend/src/main.d.ts → tests/server/beforeSync.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hocuspocus-webhook.cjs","sources":["../src/index.ts"],"sourcesContent":["import { createHmac } from 'crypto'\nimport type {\n Extension,\n onChangePayload,\n onConnectPayload,\n onLoadDocumentPayload,\n onDisconnectPayload,\n} from '@hocuspocus/server'\nimport type { Doc } from 'yjs'\nimport type { Transformer } from '@hocuspocus/transformer'\nimport { TiptapTransformer } from '@hocuspocus/transformer'\nimport axios from 'axios'\nimport { Forbidden } from '@hocuspocus/common'\n\nexport enum Events {\n onChange = 'change',\n onConnect = 'connect',\n onCreate = 'create',\n onDisconnect = 'disconnect',\n}\n\nexport interface Configuration {\n debounce: number | false | null,\n debounceMaxWait: number,\n secret: string,\n transformer: Transformer | {\n toYdoc: (document: any) => Doc,\n fromYdoc: (document: Doc) => any,\n },\n url: string,\n events: Array<Events>,\n}\n\nexport class Webhook implements Extension {\n\n configuration: Configuration = {\n debounce: 2000,\n debounceMaxWait: 10000,\n secret: '',\n transformer: TiptapTransformer,\n url: '',\n events: [\n Events.onChange,\n ],\n }\n\n debounced: Map<string, { timeout: NodeJS.Timeout, start: number }> = new Map()\n\n /**\n * Constructor\n */\n constructor(configuration?: Partial<Configuration>) {\n this.configuration = {\n ...this.configuration,\n ...configuration,\n }\n\n if (!this.configuration.url) {\n throw new Error('url is required!')\n }\n }\n\n /**\n * Create a signature for the response body\n */\n createSignature(body: string): string {\n const hmac = createHmac('sha256', this.configuration.secret)\n\n return `sha256=${hmac.update(body).digest('hex')}`\n }\n\n /**\n * debounce the given function, using the given identifier\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n debounce(id: string, func: Function) {\n const old = this.debounced.get(id)\n const start = old?.start || Date.now()\n\n const run = () => {\n this.debounced.delete(id)\n func()\n }\n\n if (old?.timeout) clearTimeout(old.timeout)\n if (Date.now() - start >= this.configuration.debounceMaxWait) return run()\n\n this.debounced.set(id, {\n start,\n timeout: setTimeout(run, <number> this.configuration.debounce),\n })\n }\n\n /**\n * Send a request to the given url containing the given data\n */\n async sendRequest(event: Events, payload: any) {\n const json = JSON.stringify({ event, payload })\n\n return axios.post(\n this.configuration.url,\n json,\n { headers: { 'X-Hocuspocus-Signature-256': this.createSignature(json), 'Content-Type': 'application/json' } },\n )\n }\n\n /**\n * onChange hook\n */\n async onChange(data: onChangePayload) {\n if (!this.configuration.events.includes(Events.onChange)) {\n return\n }\n\n const save = async () => {\n try {\n await this.sendRequest(Events.onChange, {\n document: this.configuration.transformer.fromYdoc(data.document),\n documentName: data.documentName,\n context: data.context,\n requestHeaders: data.requestHeaders,\n requestParameters: Object.fromEntries(data.requestParameters.entries()),\n })\n } catch (e) {\n console.error(`Caught error in extension-webhook: ${e}`)\n }\n }\n\n if (!this.configuration.debounce) {\n return save()\n }\n\n this.debounce(data.documentName, save)\n }\n\n /**\n * onLoadDocument hook\n */\n async onLoadDocument(data: onLoadDocumentPayload) {\n if (!this.configuration.events.includes(Events.onCreate)) {\n return\n }\n\n try {\n const response = await this.sendRequest(Events.onCreate, {\n documentName: data.documentName,\n requestHeaders: data.requestHeaders,\n requestParameters: Object.fromEntries(data.requestParameters.entries()),\n })\n\n if (response.status !== 200 || !response.data) return\n\n const document = typeof response.data === 'string'\n ? JSON.parse(response.data)\n : response.data\n\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const fieldName in document) {\n if (data.document.isEmpty(fieldName)) {\n data.document.merge(\n this.configuration.transformer.toYdoc(document[fieldName], fieldName),\n )\n }\n }\n } catch (e) {\n console.error(`Caught error in extension-webhook: ${e}`)\n }\n }\n\n /**\n * onConnect hook\n */\n async onConnect(data: onConnectPayload) {\n if (!this.configuration.events.includes(Events.onConnect)) {\n return\n }\n\n try {\n const response = await this.sendRequest(Events.onConnect, {\n documentName: data.documentName,\n requestHeaders: data.requestHeaders,\n requestParameters: Object.fromEntries(data.requestParameters.entries()),\n })\n\n return typeof response.data === 'string' && response.data.length > 0\n ? JSON.parse(response.data)\n : response.data\n } catch (e) {\n console.error(`Caught error in extension-webhook: ${e}`)\n throw Forbidden\n }\n }\n\n async onDisconnect(data: onDisconnectPayload) {\n if (!this.configuration.events.includes(Events.onDisconnect)) {\n return\n }\n\n try {\n await this.sendRequest(Events.onDisconnect, {\n documentName: data.documentName,\n requestHeaders: data.requestHeaders,\n requestParameters: Object.fromEntries(data.requestParameters.entries()),\n context: data.context,\n })\n } catch (e) {\n console.error(`Caught error in extension-webhook: ${e}`)\n }\n }\n\n}\n"],"names":["Events","TiptapTransformer","createHmac","Forbidden"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hocuspocus-webhook.cjs","sources":["../src/index.ts"],"sourcesContent":[null],"names":["Events","TiptapTransformer","createHmac","Forbidden"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hocuspocus-webhook.esm.js","sources":["../src/index.ts"],"sourcesContent":["import { createHmac } from 'crypto'\nimport type {\n Extension,\n onChangePayload,\n onConnectPayload,\n onLoadDocumentPayload,\n onDisconnectPayload,\n} from '@hocuspocus/server'\nimport type { Doc } from 'yjs'\nimport type { Transformer } from '@hocuspocus/transformer'\nimport { TiptapTransformer } from '@hocuspocus/transformer'\nimport axios from 'axios'\nimport { Forbidden } from '@hocuspocus/common'\n\nexport enum Events {\n onChange = 'change',\n onConnect = 'connect',\n onCreate = 'create',\n onDisconnect = 'disconnect',\n}\n\nexport interface Configuration {\n debounce: number | false | null,\n debounceMaxWait: number,\n secret: string,\n transformer: Transformer | {\n toYdoc: (document: any) => Doc,\n fromYdoc: (document: Doc) => any,\n },\n url: string,\n events: Array<Events>,\n}\n\nexport class Webhook implements Extension {\n\n configuration: Configuration = {\n debounce: 2000,\n debounceMaxWait: 10000,\n secret: '',\n transformer: TiptapTransformer,\n url: '',\n events: [\n Events.onChange,\n ],\n }\n\n debounced: Map<string, { timeout: NodeJS.Timeout, start: number }> = new Map()\n\n /**\n * Constructor\n */\n constructor(configuration?: Partial<Configuration>) {\n this.configuration = {\n ...this.configuration,\n ...configuration,\n }\n\n if (!this.configuration.url) {\n throw new Error('url is required!')\n }\n }\n\n /**\n * Create a signature for the response body\n */\n createSignature(body: string): string {\n const hmac = createHmac('sha256', this.configuration.secret)\n\n return `sha256=${hmac.update(body).digest('hex')}`\n }\n\n /**\n * debounce the given function, using the given identifier\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n debounce(id: string, func: Function) {\n const old = this.debounced.get(id)\n const start = old?.start || Date.now()\n\n const run = () => {\n this.debounced.delete(id)\n func()\n }\n\n if (old?.timeout) clearTimeout(old.timeout)\n if (Date.now() - start >= this.configuration.debounceMaxWait) return run()\n\n this.debounced.set(id, {\n start,\n timeout: setTimeout(run, <number> this.configuration.debounce),\n })\n }\n\n /**\n * Send a request to the given url containing the given data\n */\n async sendRequest(event: Events, payload: any) {\n const json = JSON.stringify({ event, payload })\n\n return axios.post(\n this.configuration.url,\n json,\n { headers: { 'X-Hocuspocus-Signature-256': this.createSignature(json), 'Content-Type': 'application/json' } },\n )\n }\n\n /**\n * onChange hook\n */\n async onChange(data: onChangePayload) {\n if (!this.configuration.events.includes(Events.onChange)) {\n return\n }\n\n const save = async () => {\n try {\n await this.sendRequest(Events.onChange, {\n document: this.configuration.transformer.fromYdoc(data.document),\n documentName: data.documentName,\n context: data.context,\n requestHeaders: data.requestHeaders,\n requestParameters: Object.fromEntries(data.requestParameters.entries()),\n })\n } catch (e) {\n console.error(`Caught error in extension-webhook: ${e}`)\n }\n }\n\n if (!this.configuration.debounce) {\n return save()\n }\n\n this.debounce(data.documentName, save)\n }\n\n /**\n * onLoadDocument hook\n */\n async onLoadDocument(data: onLoadDocumentPayload) {\n if (!this.configuration.events.includes(Events.onCreate)) {\n return\n }\n\n try {\n const response = await this.sendRequest(Events.onCreate, {\n documentName: data.documentName,\n requestHeaders: data.requestHeaders,\n requestParameters: Object.fromEntries(data.requestParameters.entries()),\n })\n\n if (response.status !== 200 || !response.data) return\n\n const document = typeof response.data === 'string'\n ? JSON.parse(response.data)\n : response.data\n\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const fieldName in document) {\n if (data.document.isEmpty(fieldName)) {\n data.document.merge(\n this.configuration.transformer.toYdoc(document[fieldName], fieldName),\n )\n }\n }\n } catch (e) {\n console.error(`Caught error in extension-webhook: ${e}`)\n }\n }\n\n /**\n * onConnect hook\n */\n async onConnect(data: onConnectPayload) {\n if (!this.configuration.events.includes(Events.onConnect)) {\n return\n }\n\n try {\n const response = await this.sendRequest(Events.onConnect, {\n documentName: data.documentName,\n requestHeaders: data.requestHeaders,\n requestParameters: Object.fromEntries(data.requestParameters.entries()),\n })\n\n return typeof response.data === 'string' && response.data.length > 0\n ? JSON.parse(response.data)\n : response.data\n } catch (e) {\n console.error(`Caught error in extension-webhook: ${e}`)\n throw Forbidden\n }\n }\n\n async onDisconnect(data: onDisconnectPayload) {\n if (!this.configuration.events.includes(Events.onDisconnect)) {\n return\n }\n\n try {\n await this.sendRequest(Events.onDisconnect, {\n documentName: data.documentName,\n requestHeaders: data.requestHeaders,\n requestParameters: Object.fromEntries(data.requestParameters.entries()),\n context: data.context,\n })\n } catch (e) {\n console.error(`Caught error in extension-webhook: ${e}`)\n }\n }\n\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hocuspocus-webhook.esm.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@ import * as encoding from 'lib0/encoding';
|
|
|
2
2
|
import * as decoding from 'lib0/decoding';
|
|
3
3
|
export declare const writeAuthentication: (encoder: encoding.Encoder, auth: string) => void;
|
|
4
4
|
export declare const writePermissionDenied: (encoder: encoding.Encoder, reason: string) => void;
|
|
5
|
-
export declare const writeAuthenticated: (encoder: encoding.Encoder, scope:
|
|
5
|
+
export declare const writeAuthenticated: (encoder: encoding.Encoder, scope: "readonly" | "read-write") => void;
|
|
6
6
|
export declare const readAuthMessage: (decoder: decoding.Decoder, permissionDeniedHandler: (reason: string) => void, authenticatedHandler: (scope: string) => void) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './auth.
|
|
2
|
-
export * from './CloseEvents.
|
|
3
|
-
export * from './awarenessStatesToArray.
|
|
4
|
-
export * from './types.
|
|
1
|
+
export * from './auth.ts';
|
|
2
|
+
export * from './CloseEvents.ts';
|
|
3
|
+
export * from './awarenessStatesToArray.ts';
|
|
4
|
+
export * from './types.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './Database.
|
|
1
|
+
export * from './Database.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './Logger.
|
|
1
|
+
export * from './Logger.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './Redis.
|
|
1
|
+
export * from './Redis.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './SQLite.
|
|
1
|
+
export * from './SQLite.ts';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Event, MessageEvent } from 'ws';
|
|
2
2
|
import { Awareness } from 'y-protocols/awareness';
|
|
3
3
|
import * as Y from 'yjs';
|
|
4
|
-
import EventEmitter from './EventEmitter.
|
|
5
|
-
import type { CompleteHocuspocusProviderWebsocketConfiguration } from './HocuspocusProviderWebsocket.
|
|
6
|
-
import { HocuspocusProviderWebsocket } from './HocuspocusProviderWebsocket.
|
|
7
|
-
import type { ConstructableOutgoingMessage, onAuthenticationFailedParameters, onAwarenessChangeParameters, onAwarenessUpdateParameters, onCloseParameters, onDisconnectParameters, onMessageParameters, onOpenParameters, onOutgoingMessageParameters, onStatelessParameters, onSyncedParameters } from './types.
|
|
4
|
+
import EventEmitter from './EventEmitter.ts';
|
|
5
|
+
import type { CompleteHocuspocusProviderWebsocketConfiguration } from './HocuspocusProviderWebsocket.ts';
|
|
6
|
+
import { HocuspocusProviderWebsocket } from './HocuspocusProviderWebsocket.ts';
|
|
7
|
+
import type { ConstructableOutgoingMessage, onAuthenticationFailedParameters, onAwarenessChangeParameters, onAwarenessUpdateParameters, onCloseParameters, onDisconnectParameters, onMessageParameters, onOpenParameters, onOutgoingMessageParameters, onStatelessParameters, onSyncedParameters } from './types.ts';
|
|
8
8
|
export type HocuspocusProviderConfiguration = Required<Pick<CompleteHocuspocusProviderConfiguration, 'name'>> & Partial<CompleteHocuspocusProviderConfiguration> & (Required<Pick<CompleteHocuspocusProviderWebsocketConfiguration, 'url'>> | Required<Pick<CompleteHocuspocusProviderConfiguration, 'websocketProvider'>>);
|
|
9
9
|
export interface CompleteHocuspocusProviderConfiguration {
|
|
10
10
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { MessageEvent, Event } from 'ws';
|
|
2
|
-
import EventEmitter from './EventEmitter.
|
|
3
|
-
import type { HocuspocusProvider } from './HocuspocusProvider.
|
|
4
|
-
import type { onAwarenessChangeParameters, onAwarenessUpdateParameters, onCloseParameters, onDisconnectParameters, onMessageParameters, onOpenParameters, onOutgoingMessageParameters, onStatusParameters } from './types.
|
|
5
|
-
import { WebSocketStatus } from './types.
|
|
2
|
+
import EventEmitter from './EventEmitter.ts';
|
|
3
|
+
import type { HocuspocusProvider } from './HocuspocusProvider.ts';
|
|
4
|
+
import type { onAwarenessChangeParameters, onAwarenessUpdateParameters, onCloseParameters, onDisconnectParameters, onMessageParameters, onOpenParameters, onOutgoingMessageParameters, onStatusParameters } from './types.ts';
|
|
5
|
+
import { WebSocketStatus } from './types.ts';
|
|
6
6
|
export type HocusPocusWebSocket = WebSocket & {
|
|
7
7
|
identifier: string;
|
|
8
8
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Decoder } from 'lib0/decoding';
|
|
2
2
|
import type { Encoder } from 'lib0/encoding';
|
|
3
|
-
import type { MessageType } from './types.
|
|
3
|
+
import type { MessageType } from './types.ts';
|
|
4
4
|
export declare class IncomingMessage {
|
|
5
5
|
data: any;
|
|
6
6
|
encoder: Encoder;
|
|
@@ -9,7 +9,7 @@ export declare class IncomingMessage {
|
|
|
9
9
|
peekVarString(): string;
|
|
10
10
|
readVarUint(): MessageType;
|
|
11
11
|
readVarString(): string;
|
|
12
|
-
readVarUint8Array(): Uint8Array
|
|
12
|
+
readVarUint8Array(): Uint8Array<ArrayBufferLike>;
|
|
13
13
|
writeVarUint(type: MessageType): void;
|
|
14
14
|
writeVarString(string: string): void;
|
|
15
15
|
writeVarUint8Array(data: Uint8Array): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { HocuspocusProvider } from './HocuspocusProvider.
|
|
2
|
-
import type { IncomingMessage } from './IncomingMessage.
|
|
1
|
+
import type { HocuspocusProvider } from './HocuspocusProvider.ts';
|
|
2
|
+
import type { IncomingMessage } from './IncomingMessage.ts';
|
|
3
3
|
export declare class MessageReceiver {
|
|
4
4
|
message: IncomingMessage;
|
|
5
5
|
constructor(message: IncomingMessage);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Encoder } from 'lib0/encoding';
|
|
2
|
-
import type { ConstructableOutgoingMessage } from './types.
|
|
2
|
+
import type { ConstructableOutgoingMessage } from './types.ts';
|
|
3
3
|
export declare class MessageSender {
|
|
4
4
|
encoder: Encoder;
|
|
5
5
|
message: any;
|
|
6
6
|
constructor(Message: ConstructableOutgoingMessage, args?: any);
|
|
7
|
-
create(): Uint8Array
|
|
7
|
+
create(): Uint8Array<ArrayBufferLike>;
|
|
8
8
|
send(webSocket: any): void;
|
|
9
9
|
broadcast(channel: string): void;
|
|
10
10
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Encoder } from 'lib0/encoding';
|
|
2
|
-
import type { MessageType, OutgoingMessageArguments, OutgoingMessageInterface } from './types.
|
|
2
|
+
import type { MessageType, OutgoingMessageArguments, OutgoingMessageInterface } from './types.ts';
|
|
3
3
|
export declare class OutgoingMessage implements OutgoingMessageInterface {
|
|
4
4
|
encoder: Encoder;
|
|
5
5
|
type?: MessageType;
|
|
6
6
|
constructor();
|
|
7
7
|
get(args: Partial<OutgoingMessageArguments>): Encoder | undefined;
|
|
8
|
-
toUint8Array(): Uint8Array
|
|
8
|
+
toUint8Array(): Uint8Array<ArrayBufferLike>;
|
|
9
9
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { OutgoingMessageArguments } from '../types.
|
|
2
|
-
import { MessageType } from '../types.
|
|
3
|
-
import { OutgoingMessage } from '../OutgoingMessage.
|
|
1
|
+
import type { OutgoingMessageArguments } from '../types.ts';
|
|
2
|
+
import { MessageType } from '../types.ts';
|
|
3
|
+
import { OutgoingMessage } from '../OutgoingMessage.ts';
|
|
4
4
|
export declare class AuthenticationMessage extends OutgoingMessage {
|
|
5
5
|
type: MessageType;
|
|
6
6
|
description: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as encoding from 'lib0/encoding';
|
|
2
|
-
import type { OutgoingMessageArguments } from '../types.
|
|
3
|
-
import { MessageType } from '../types.
|
|
4
|
-
import { OutgoingMessage } from '../OutgoingMessage.
|
|
2
|
+
import type { OutgoingMessageArguments } from '../types.ts';
|
|
3
|
+
import { MessageType } from '../types.ts';
|
|
4
|
+
import { OutgoingMessage } from '../OutgoingMessage.ts';
|
|
5
5
|
export declare class AwarenessMessage extends OutgoingMessage {
|
|
6
6
|
type: MessageType;
|
|
7
7
|
description: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as encoding from 'lib0/encoding';
|
|
2
|
-
import type { OutgoingMessageArguments } from '../types.
|
|
3
|
-
import { MessageType } from '../types.
|
|
4
|
-
import { OutgoingMessage } from '../OutgoingMessage.
|
|
2
|
+
import type { OutgoingMessageArguments } from '../types.ts';
|
|
3
|
+
import { MessageType } from '../types.ts';
|
|
4
|
+
import { OutgoingMessage } from '../OutgoingMessage.ts';
|
|
5
5
|
export declare class CloseMessage extends OutgoingMessage {
|
|
6
6
|
type: MessageType;
|
|
7
7
|
description: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as encoding from 'lib0/encoding';
|
|
2
|
-
import type { OutgoingMessageArguments } from '../types.
|
|
3
|
-
import { MessageType } from '../types.
|
|
4
|
-
import { OutgoingMessage } from '../OutgoingMessage.
|
|
2
|
+
import type { OutgoingMessageArguments } from '../types.ts';
|
|
3
|
+
import { MessageType } from '../types.ts';
|
|
4
|
+
import { OutgoingMessage } from '../OutgoingMessage.ts';
|
|
5
5
|
export declare class QueryAwarenessMessage extends OutgoingMessage {
|
|
6
6
|
type: MessageType;
|
|
7
7
|
description: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { OutgoingMessageArguments } from '../types.
|
|
2
|
-
import { MessageType } from '../types.
|
|
3
|
-
import { OutgoingMessage } from '../OutgoingMessage.
|
|
1
|
+
import type { OutgoingMessageArguments } from '../types.ts';
|
|
2
|
+
import { MessageType } from '../types.ts';
|
|
3
|
+
import { OutgoingMessage } from '../OutgoingMessage.ts';
|
|
4
4
|
export declare class StatelessMessage extends OutgoingMessage {
|
|
5
5
|
type: MessageType;
|
|
6
6
|
description: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as encoding from 'lib0/encoding';
|
|
2
|
-
import type { OutgoingMessageArguments } from '../types.
|
|
3
|
-
import { MessageType } from '../types.
|
|
4
|
-
import { OutgoingMessage } from '../OutgoingMessage.
|
|
2
|
+
import type { OutgoingMessageArguments } from '../types.ts';
|
|
3
|
+
import { MessageType } from '../types.ts';
|
|
4
|
+
import { OutgoingMessage } from '../OutgoingMessage.ts';
|
|
5
5
|
export declare class SyncStepOneMessage extends OutgoingMessage {
|
|
6
6
|
type: MessageType;
|
|
7
7
|
description: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as encoding from 'lib0/encoding';
|
|
2
|
-
import type { OutgoingMessageArguments } from '../types.
|
|
3
|
-
import { MessageType } from '../types.
|
|
4
|
-
import { OutgoingMessage } from '../OutgoingMessage.
|
|
2
|
+
import type { OutgoingMessageArguments } from '../types.ts';
|
|
3
|
+
import { MessageType } from '../types.ts';
|
|
4
|
+
import { OutgoingMessage } from '../OutgoingMessage.ts';
|
|
5
5
|
export declare class SyncStepTwoMessage extends OutgoingMessage {
|
|
6
6
|
type: MessageType;
|
|
7
7
|
description: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { OutgoingMessageArguments } from '../types.
|
|
2
|
-
import { MessageType } from '../types.
|
|
3
|
-
import { OutgoingMessage } from '../OutgoingMessage.
|
|
1
|
+
import type { OutgoingMessageArguments } from '../types.ts';
|
|
2
|
+
import { MessageType } from '../types.ts';
|
|
3
|
+
import { OutgoingMessage } from '../OutgoingMessage.ts';
|
|
4
4
|
export declare class UpdateMessage extends OutgoingMessage {
|
|
5
5
|
type: MessageType;
|
|
6
6
|
description: string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './HocuspocusProvider.
|
|
2
|
-
export * from './HocuspocusProviderWebsocket.
|
|
3
|
-
export * from './types.
|
|
1
|
+
export * from './HocuspocusProvider.ts';
|
|
2
|
+
export * from './HocuspocusProviderWebsocket.ts';
|
|
3
|
+
export * from './types.ts';
|
|
@@ -3,14 +3,14 @@ import type { Event, MessageEvent } from 'ws';
|
|
|
3
3
|
import type { Awareness } from 'y-protocols/awareness';
|
|
4
4
|
import type * as Y from 'yjs';
|
|
5
5
|
import type { CloseEvent } from '@hocuspocus/common';
|
|
6
|
-
import type { IncomingMessage } from './IncomingMessage.
|
|
7
|
-
import type { OutgoingMessage } from './OutgoingMessage.
|
|
8
|
-
import type { AuthenticationMessage } from './OutgoingMessages/AuthenticationMessage.
|
|
9
|
-
import type { AwarenessMessage } from './OutgoingMessages/AwarenessMessage.
|
|
10
|
-
import type { QueryAwarenessMessage } from './OutgoingMessages/QueryAwarenessMessage.
|
|
11
|
-
import type { SyncStepOneMessage } from './OutgoingMessages/SyncStepOneMessage.
|
|
12
|
-
import type { SyncStepTwoMessage } from './OutgoingMessages/SyncStepTwoMessage.
|
|
13
|
-
import type { UpdateMessage } from './OutgoingMessages/UpdateMessage.
|
|
6
|
+
import type { IncomingMessage } from './IncomingMessage.ts';
|
|
7
|
+
import type { OutgoingMessage } from './OutgoingMessage.ts';
|
|
8
|
+
import type { AuthenticationMessage } from './OutgoingMessages/AuthenticationMessage.ts';
|
|
9
|
+
import type { AwarenessMessage } from './OutgoingMessages/AwarenessMessage.ts';
|
|
10
|
+
import type { QueryAwarenessMessage } from './OutgoingMessages/QueryAwarenessMessage.ts';
|
|
11
|
+
import type { SyncStepOneMessage } from './OutgoingMessages/SyncStepOneMessage.ts';
|
|
12
|
+
import type { SyncStepTwoMessage } from './OutgoingMessages/SyncStepTwoMessage.ts';
|
|
13
|
+
import type { UpdateMessage } from './OutgoingMessages/UpdateMessage.ts';
|
|
14
14
|
export declare enum MessageType {
|
|
15
15
|
Sync = 0,
|
|
16
16
|
Awareness = 1,
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import type { IncomingMessage } from 'http';
|
|
4
2
|
import { type CloseEvent } from '@hocuspocus/common';
|
|
5
3
|
import type WebSocket from 'ws';
|
|
6
|
-
import type Document from './Document.
|
|
7
|
-
import type { Hocuspocus } from './Hocuspocus.
|
|
8
|
-
import type { onDisconnectPayload } from './types.
|
|
4
|
+
import type Document from './Document.ts';
|
|
5
|
+
import type { Hocuspocus } from './Hocuspocus.ts';
|
|
6
|
+
import type { onDisconnectPayload } from './types.ts';
|
|
9
7
|
/**
|
|
10
8
|
* The `ClientConnection` class is responsible for handling an incoming WebSocket
|
|
11
9
|
*
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import type { IncomingMessage as HTTPIncomingMessage } from 'http';
|
|
3
|
-
import type WebSocket from 'ws';
|
|
4
2
|
import { type CloseEvent } from '@hocuspocus/common';
|
|
5
|
-
import type
|
|
6
|
-
import type
|
|
3
|
+
import type WebSocket from 'ws';
|
|
4
|
+
import type Document from './Document.ts';
|
|
5
|
+
import type { beforeSyncPayload, onStatelessPayload } from './types.ts';
|
|
7
6
|
export declare class Connection {
|
|
8
7
|
webSocket: WebSocket;
|
|
9
8
|
context: any;
|
|
10
9
|
document: Document;
|
|
11
10
|
request: HTTPIncomingMessage;
|
|
12
|
-
callbacks:
|
|
11
|
+
callbacks: {
|
|
12
|
+
onClose: ((document: Document, event?: CloseEvent) => void)[];
|
|
13
|
+
beforeHandleMessage: (connection: Connection, update: Uint8Array) => Promise<void>;
|
|
14
|
+
beforeSync: (connection: Connection, payload: Pick<beforeSyncPayload, "type" | "payload">) => Promise<void>;
|
|
15
|
+
statelessCallback: (payload: onStatelessPayload) => Promise<void>;
|
|
16
|
+
};
|
|
13
17
|
socketId: string;
|
|
14
18
|
readOnly: boolean;
|
|
15
19
|
/**
|
|
@@ -28,6 +32,10 @@ export declare class Connection {
|
|
|
28
32
|
* Set a callback that will be triggered before an message is handled
|
|
29
33
|
*/
|
|
30
34
|
beforeHandleMessage(callback: (connection: Connection, update: Uint8Array) => Promise<any>): Connection;
|
|
35
|
+
/**
|
|
36
|
+
* Set a callback that will be triggered before a sync message is handled
|
|
37
|
+
*/
|
|
38
|
+
beforeSync(callback: (connection: Connection, payload: Pick<beforeSyncPayload, 'type' | 'payload'>) => Promise<any>): Connection;
|
|
31
39
|
/**
|
|
32
40
|
* Send the given message
|
|
33
41
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type Document from './Document.
|
|
2
|
-
import type { Hocuspocus } from './Hocuspocus.
|
|
3
|
-
import type { DirectConnection as DirectConnectionInterface } from './types.
|
|
1
|
+
import type Document from './Document.ts';
|
|
2
|
+
import type { Hocuspocus } from './Hocuspocus.ts';
|
|
3
|
+
import type { DirectConnection as DirectConnectionInterface } from './types.ts';
|
|
4
4
|
export declare class DirectConnection implements DirectConnectionInterface {
|
|
5
5
|
document: Document | null;
|
|
6
6
|
instance: Hocuspocus;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type WebSocket from 'ws';
|
|
2
2
|
import { Awareness } from 'y-protocols/awareness';
|
|
3
3
|
import { Doc } from 'yjs';
|
|
4
|
-
import type Connection from './Connection.
|
|
4
|
+
import type Connection from './Connection.ts';
|
|
5
5
|
export declare class Document extends Doc {
|
|
6
6
|
awareness: Awareness;
|
|
7
7
|
callbacks: {
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import type { IncomingMessage } from 'http';
|
|
3
2
|
import type WebSocket from 'ws';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import type { Configuration, ConnectionConfiguration, HookName, HookPayloadByName, onStoreDocumentPayload } from './types.
|
|
3
|
+
import { DirectConnection } from './DirectConnection.ts';
|
|
4
|
+
import Document from './Document.ts';
|
|
5
|
+
import type { Server } from './Server.ts';
|
|
6
|
+
import type { Configuration, ConnectionConfiguration, HookName, HookPayloadByName, onStoreDocumentPayload } from './types.ts';
|
|
8
7
|
export declare const defaultConfiguration: {
|
|
9
8
|
name: null;
|
|
10
9
|
timeout: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Decoder } from 'lib0/decoding';
|
|
2
2
|
import type { Encoder } from 'lib0/encoding';
|
|
3
|
-
import type { MessageType } from './types.
|
|
3
|
+
import type { MessageType } from './types.ts';
|
|
4
4
|
export declare class IncomingMessage {
|
|
5
5
|
/**
|
|
6
6
|
* Access to the received message.
|
|
@@ -14,10 +14,11 @@ export declare class IncomingMessage {
|
|
|
14
14
|
private encoderInternal?;
|
|
15
15
|
constructor(input: any);
|
|
16
16
|
get encoder(): Encoder;
|
|
17
|
-
readVarUint8Array(): Uint8Array
|
|
17
|
+
readVarUint8Array(): Uint8Array<ArrayBufferLike>;
|
|
18
|
+
peekVarUint8Array(): Uint8Array<ArrayBufferLike>;
|
|
18
19
|
readVarUint(): number;
|
|
19
20
|
readVarString(): string;
|
|
20
|
-
toUint8Array(): Uint8Array
|
|
21
|
+
toUint8Array(): Uint8Array<ArrayBufferLike>;
|
|
21
22
|
writeVarUint(type: MessageType): void;
|
|
22
23
|
writeVarString(string: string): void;
|
|
23
24
|
get length(): number;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type Connection from './Connection.
|
|
2
|
-
import type Document from './Document.
|
|
3
|
-
import type { IncomingMessage } from './IncomingMessage.
|
|
1
|
+
import type Connection from './Connection.ts';
|
|
2
|
+
import type Document from './Document.ts';
|
|
3
|
+
import type { IncomingMessage } from './IncomingMessage.ts';
|
|
4
4
|
export declare class MessageReceiver {
|
|
5
5
|
message: IncomingMessage;
|
|
6
6
|
defaultTransactionOrigin?: string;
|
|
7
7
|
constructor(message: IncomingMessage, defaultTransactionOrigin?: string);
|
|
8
|
-
apply(document: Document, connection?: Connection, reply?: (message: Uint8Array) => void): void
|
|
9
|
-
readSyncMessage(message: IncomingMessage, document: Document, connection?: Connection, reply?: (message: Uint8Array) => void, requestFirstSync?: boolean): 0 | 1 | 2
|
|
8
|
+
apply(document: Document, connection?: Connection, reply?: (message: Uint8Array) => void): Promise<void>;
|
|
9
|
+
readSyncMessage(message: IncomingMessage, document: Document, connection?: Connection, reply?: (message: Uint8Array) => void, requestFirstSync?: boolean): Promise<0 | 1 | 2>;
|
|
10
10
|
applyQueryAwarenessMessage(document: Document, reply?: (message: Uint8Array) => void): void;
|
|
11
11
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Encoder } from 'lib0/encoding';
|
|
2
2
|
import type { Awareness } from 'y-protocols/awareness';
|
|
3
|
-
import type Document from './Document.
|
|
3
|
+
import type Document from './Document.ts';
|
|
4
4
|
export declare class OutgoingMessage {
|
|
5
5
|
encoder: Encoder;
|
|
6
6
|
type?: number;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import type { IncomingMessage, Server as HTTPServer, ServerResponse } from 'http';
|
|
3
2
|
import { WebSocketServer } from 'ws';
|
|
4
3
|
import type { AddressInfo, ServerOptions } from 'ws';
|
|
5
|
-
import { Hocuspocus } from './Hocuspocus.
|
|
4
|
+
import { Hocuspocus } from './Hocuspocus.ts';
|
|
6
5
|
import type { Configuration } from './types';
|
|
7
6
|
export interface ServerConfiguration extends Configuration {
|
|
8
7
|
port?: number;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * from './Connection.
|
|
2
|
-
export * from './Document.
|
|
3
|
-
export * from './Hocuspocus.
|
|
4
|
-
export * from './IncomingMessage.
|
|
5
|
-
export * from './MessageReceiver.
|
|
6
|
-
export * from './OutgoingMessage.
|
|
7
|
-
export * from './Server.
|
|
8
|
-
export * from './types.
|
|
9
|
-
export * from './util/debounce.
|
|
1
|
+
export * from './Connection.ts';
|
|
2
|
+
export * from './Document.ts';
|
|
3
|
+
export * from './Hocuspocus.ts';
|
|
4
|
+
export * from './IncomingMessage.ts';
|
|
5
|
+
export * from './MessageReceiver.ts';
|
|
6
|
+
export * from './OutgoingMessage.ts';
|
|
7
|
+
export * from './Server.ts';
|
|
8
|
+
export * from './types.ts';
|
|
9
|
+
export * from './util/debounce.ts';
|
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
/// <reference types="node" />
|
|
5
1
|
import type { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'http';
|
|
6
2
|
import type { URLSearchParams } from 'url';
|
|
7
3
|
import type { Awareness } from 'y-protocols/awareness';
|
|
8
|
-
import type Connection from './Connection.
|
|
9
|
-
import type Document from './Document.
|
|
10
|
-
import type { Hocuspocus } from './Hocuspocus.
|
|
4
|
+
import type Connection from './Connection.ts';
|
|
5
|
+
import type Document from './Document.ts';
|
|
6
|
+
import type { Hocuspocus } from './Hocuspocus.ts';
|
|
11
7
|
export declare enum MessageType {
|
|
12
8
|
Unknown = -1,
|
|
13
9
|
Sync = 0,
|
|
14
10
|
Awareness = 1,
|
|
15
11
|
Auth = 2,
|
|
16
12
|
QueryAwareness = 3,
|
|
17
|
-
SyncReply = 4,
|
|
13
|
+
SyncReply = 4,// same as Sync, but won't trigger another 'SyncStep1'
|
|
18
14
|
Stateless = 5,
|
|
19
15
|
BroadcastStateless = 6,
|
|
20
16
|
CLOSE = 7,
|
|
@@ -42,6 +38,7 @@ export interface Extension {
|
|
|
42
38
|
onLoadDocument?(data: onLoadDocumentPayload): Promise<any>;
|
|
43
39
|
afterLoadDocument?(data: afterLoadDocumentPayload): Promise<any>;
|
|
44
40
|
beforeHandleMessage?(data: beforeHandleMessagePayload): Promise<any>;
|
|
41
|
+
beforeSync?(data: beforeSyncPayload): Promise<any>;
|
|
45
42
|
beforeBroadcastStateless?(data: beforeBroadcastStatelessPayload): Promise<any>;
|
|
46
43
|
onStateless?(payload: onStatelessPayload): Promise<any>;
|
|
47
44
|
onChange?(data: onChangePayload): Promise<any>;
|
|
@@ -54,7 +51,7 @@ export interface Extension {
|
|
|
54
51
|
afterUnloadDocument?(data: afterUnloadDocumentPayload): Promise<any>;
|
|
55
52
|
onDestroy?(data: onDestroyPayload): Promise<any>;
|
|
56
53
|
}
|
|
57
|
-
export type HookName = 'onConfigure' | 'onListen' | 'onUpgrade' | 'onConnect' | 'connected' | 'onAuthenticate' | 'onCreateDocument' | 'onLoadDocument' | 'afterLoadDocument' | 'beforeHandleMessage' | 'beforeBroadcastStateless' | 'onStateless' | 'onChange' | 'onStoreDocument' | 'afterStoreDocument' | 'onAwarenessUpdate' | 'onRequest' | 'onDisconnect' | 'beforeUnloadDocument' | 'afterUnloadDocument' | 'onDestroy';
|
|
54
|
+
export type HookName = 'onConfigure' | 'onListen' | 'onUpgrade' | 'onConnect' | 'connected' | 'onAuthenticate' | 'onCreateDocument' | 'onLoadDocument' | 'afterLoadDocument' | 'beforeHandleMessage' | 'beforeBroadcastStateless' | 'beforeSync' | 'onStateless' | 'onChange' | 'onStoreDocument' | 'afterStoreDocument' | 'onAwarenessUpdate' | 'onRequest' | 'onDisconnect' | 'beforeUnloadDocument' | 'afterUnloadDocument' | 'onDestroy';
|
|
58
55
|
export type HookPayloadByName = {
|
|
59
56
|
onConfigure: onConfigurePayload;
|
|
60
57
|
onListen: onListenPayload;
|
|
@@ -67,6 +64,7 @@ export type HookPayloadByName = {
|
|
|
67
64
|
afterLoadDocument: afterLoadDocumentPayload;
|
|
68
65
|
beforeHandleMessage: beforeHandleMessagePayload;
|
|
69
66
|
beforeBroadcastStateless: beforeBroadcastStatelessPayload;
|
|
67
|
+
beforeSync: beforeSyncPayload;
|
|
70
68
|
onStateless: onStatelessPayload;
|
|
71
69
|
onChange: onChangePayload;
|
|
72
70
|
onStoreDocument: onStoreDocumentPayload;
|
|
@@ -211,6 +209,27 @@ export interface beforeHandleMessagePayload {
|
|
|
211
209
|
socketId: string;
|
|
212
210
|
connection: Connection;
|
|
213
211
|
}
|
|
212
|
+
export interface beforeSyncPayload {
|
|
213
|
+
clientsCount: number;
|
|
214
|
+
context: any;
|
|
215
|
+
document: Document;
|
|
216
|
+
documentName: string;
|
|
217
|
+
connection: Connection;
|
|
218
|
+
/**
|
|
219
|
+
* The y-protocols/sync message type
|
|
220
|
+
* @example
|
|
221
|
+
* 0: SyncStep1
|
|
222
|
+
* 1: SyncStep2
|
|
223
|
+
* 2: YjsUpdate
|
|
224
|
+
*
|
|
225
|
+
* @see https://github.com/yjs/y-protocols/blob/master/sync.js#L13-L40
|
|
226
|
+
*/
|
|
227
|
+
type: number;
|
|
228
|
+
/**
|
|
229
|
+
* The payload of the y-sync message.
|
|
230
|
+
*/
|
|
231
|
+
payload: Uint8Array;
|
|
232
|
+
}
|
|
214
233
|
export interface beforeBroadcastStatelessPayload {
|
|
215
234
|
document: Document;
|
|
216
235
|
documentName: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Doc } from 'yjs';
|
|
2
2
|
import { Schema } from '@tiptap/pm/model';
|
|
3
|
-
import type { Transformer } from './types.
|
|
3
|
+
import type { Transformer } from './types.ts';
|
|
4
4
|
declare class Prosemirror implements Transformer {
|
|
5
5
|
defaultSchema: Schema;
|
|
6
6
|
schema(schema: Schema): Prosemirror;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Doc } from 'yjs';
|
|
2
2
|
import type { Extensions } from '@tiptap/core';
|
|
3
|
-
import type { Transformer } from './types.
|
|
3
|
+
import type { Transformer } from './types.ts';
|
|
4
4
|
export declare class Tiptap implements Transformer {
|
|
5
5
|
defaultExtensions: Extensions;
|
|
6
6
|
extensions(extensions: Extensions): Tiptap;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './Prosemirror.
|
|
2
|
-
export * from './Tiptap.
|
|
3
|
-
export * from './types.
|
|
1
|
+
export * from './Prosemirror.ts';
|
|
2
|
+
export * from './Tiptap.ts';
|
|
3
|
+
export * from './types.ts';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * from './createDirectory.
|
|
2
|
-
export * from './flushRedis.
|
|
3
|
-
export * from './newHocuspocus.
|
|
4
|
-
export * from './newHocuspocusProvider.
|
|
5
|
-
export * from './newHocuspocusProviderWebsocket.
|
|
6
|
-
export * from './randomInteger.
|
|
7
|
-
export * from './redisConnectionSettings.
|
|
8
|
-
export * from './removeDirectory.
|
|
9
|
-
export * from './sleep.
|
|
1
|
+
export * from './createDirectory.ts';
|
|
2
|
+
export * from './flushRedis.ts';
|
|
3
|
+
export * from './newHocuspocus.ts';
|
|
4
|
+
export * from './newHocuspocusProvider.ts';
|
|
5
|
+
export * from './newHocuspocusProviderWebsocket.ts';
|
|
6
|
+
export * from './randomInteger.ts';
|
|
7
|
+
export * from './redisConnectionSettings.ts';
|
|
8
|
+
export * from './removeDirectory.ts';
|
|
9
|
+
export * from './sleep.ts';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { HocuspocusProviderWebsocketConfiguration } from '@hocuspocus/provider';
|
|
2
2
|
import { HocuspocusProviderWebsocket } from '@hocuspocus/provider';
|
|
3
3
|
import type { Hocuspocus } from '@hocuspocus/server';
|
|
4
|
-
export declare const newHocuspocusProviderWebsocket: (hocuspocus: Hocuspocus, options?: Partial<Omit<HocuspocusProviderWebsocketConfiguration,
|
|
4
|
+
export declare const newHocuspocusProviderWebsocket: (hocuspocus: Hocuspocus, options?: Partial<Omit<HocuspocusProviderWebsocketConfiguration, "url">>) => HocuspocusProviderWebsocket;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hocuspocus/extension-webhook",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.6-rc.0",
|
|
4
4
|
"description": "hocuspocus webhook extension",
|
|
5
5
|
"homepage": "https://hocuspocus.dev",
|
|
6
6
|
"keywords": [
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"types": "dist/packages/extension-webhook/src/index.d.ts",
|
|
18
18
|
"exports": {
|
|
19
19
|
"source": {
|
|
20
|
-
"import": "./src"
|
|
20
|
+
"import": "./src/index.ts"
|
|
21
21
|
},
|
|
22
22
|
"default": {
|
|
23
23
|
"import": "./dist/hocuspocus-webhook.esm.js",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"dist"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@hocuspocus/common": "^3.0.
|
|
34
|
-
"@hocuspocus/server": "^3.0.
|
|
35
|
-
"@hocuspocus/transformer": "^3.0.
|
|
33
|
+
"@hocuspocus/common": "^3.0.6-rc.0",
|
|
34
|
+
"@hocuspocus/server": "^3.0.6-rc.0",
|
|
35
|
+
"@hocuspocus/transformer": "^3.0.6-rc.0",
|
|
36
36
|
"axios": "^1.6.2"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
File without changes
|