@hocuspocus/extension-throttle 1.0.0-alpha.55 → 1.0.0-alpha.58

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.
@@ -1,12 +1,10 @@
1
- import { Extension, onChangePayload, onLoadDocumentPayload, storePayload } from '@hocuspocus/server';
1
+ import { Extension, onChangePayload, onLoadDocumentPayload, storePayload, fetchPayload } from '@hocuspocus/server';
2
2
  export interface DatabaseConfiguration {
3
3
  /**
4
4
  * Pass a Promise to retrieve updates from your database. The Promise should resolve to
5
5
  * an array of items with Y.js-compatible binary data.
6
6
  */
7
- fetch: ({ documentName }: {
8
- documentName: string;
9
- }) => Promise<Uint8Array | null>;
7
+ fetch: (data: fetchPayload) => Promise<Uint8Array | null>;
10
8
  /**
11
9
  * Pass a function to store updates in your database.
12
10
  */
@@ -24,7 +22,7 @@ export declare class Database implements Extension {
24
22
  /**
25
23
  * Get stored data from the database.
26
24
  */
27
- onLoadDocument({ document, documentName }: onLoadDocumentPayload): Promise<any>;
25
+ onLoadDocument(data: onLoadDocumentPayload): Promise<any>;
28
26
  /**
29
27
  * Store new updates in the database.
30
28
  */
@@ -50,11 +50,12 @@ export declare class Collector {
50
50
  documents(): {};
51
51
  info(): Promise<{
52
52
  configuration: Partial<Configuration>;
53
- ipAddress: string;
53
+ ipAddress: string | null;
54
54
  nodeVersion: string;
55
55
  platform: NodeJS.Platform;
56
56
  started: string;
57
57
  version: string;
58
58
  }>;
59
+ private getIpAddress;
59
60
  private static readableYDoc;
60
61
  }
@@ -1,6 +1,6 @@
1
1
  import RedisClient from 'ioredis';
2
2
  import Redlock from 'redlock';
3
- import { Document, Extension, afterLoadDocumentPayload, afterStoreDocumentPayload, onDisconnectPayload, onStoreDocumentPayload, onAwarenessUpdatePayload, Debugger, onConfigurePayload } from '@hocuspocus/server';
3
+ import { Document, Extension, afterLoadDocumentPayload, afterStoreDocumentPayload, onDisconnectPayload, onStoreDocumentPayload, onAwarenessUpdatePayload, Debugger, onConfigurePayload, onListenPayload } from '@hocuspocus/server';
4
4
  export interface Configuration {
5
5
  /**
6
6
  * Redis port
@@ -46,7 +46,7 @@ export declare class Redis implements Extension {
46
46
  logger: Debugger;
47
47
  constructor(configuration: Partial<Configuration>);
48
48
  onConfigure({ instance }: onConfigurePayload): Promise<void>;
49
- onListen(): Promise<void>;
49
+ onListen({ configuration }: onListenPayload): Promise<void>;
50
50
  private getKey;
51
51
  private pubKey;
52
52
  private subKey;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import WebSocket, { AddressInfo, WebSocketServer } from 'ws';
3
3
  import { IncomingMessage, Server as HTTPServer } from 'http';
4
- import { Configuration, Hook } from './types';
4
+ import { Configuration, HookName, HookPayload } from './types';
5
5
  import Document from './Document';
6
6
  import { Debugger } from './Debugger';
7
7
  import { onListenPayload } from '.';
@@ -88,7 +88,7 @@ export declare class Hocuspocus {
88
88
  * Run the given hook on all configured extensions.
89
89
  * Runs the given callback after each hook.
90
90
  */
91
- hooks(name: Hook, payload: any, callback?: Function | null): Promise<any>;
91
+ hooks(name: HookName, payload: HookPayload, callback?: Function | null): Promise<any>;
92
92
  /**
93
93
  * Get parameters by the given request
94
94
  */
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'http';
3
3
  import { URLSearchParams } from 'url';
4
- import { Socket } from 'net';
5
4
  import { Awareness } from 'y-protocols/awareness';
6
5
  import Document from './Document';
7
6
  import { Hocuspocus } from './Hocuspocus';
@@ -44,11 +43,12 @@ export interface Extension {
44
43
  onDisconnect?(data: onDisconnectPayload): Promise<any>;
45
44
  onDestroy?(data: onDestroyPayload): Promise<any>;
46
45
  }
47
- export declare type Hook = 'onConfigure' | 'onListen' | 'onUpgrade' | 'onConnect' | 'connected' | 'onAuthenticate' |
46
+ export declare type HookName = 'onConfigure' | 'onListen' | 'onUpgrade' | 'onConnect' | 'connected' | 'onAuthenticate' |
48
47
  /**
49
48
  * @deprecated onCreateDocument is deprecated, use onLoadDocument instead
50
49
  */
51
50
  'onCreateDocument' | 'onLoadDocument' | 'afterLoadDocument' | 'onChange' | 'onStoreDocument' | 'afterStoreDocument' | 'onAwarenessUpdate' | 'onRequest' | 'onDisconnect' | 'onDestroy';
51
+ export declare type HookPayload = onConfigurePayload | onListenPayload | onUpgradePayload | onConnectPayload | connectedPayload | onAuthenticatePayload | onLoadDocumentPayload | onChangePayload | onStoreDocumentPayload | afterStoreDocumentPayload | onAwarenessUpdatePayload | onRequestPayload | onDisconnectPayload | onDestroyPayload;
52
52
  export interface Configuration extends Extension {
53
53
  /**
54
54
  * A name for the instance, used for logging.
@@ -179,6 +179,16 @@ export declare type StatesArray = {
179
179
  clientId: number;
180
180
  [key: string | number]: any;
181
181
  }[];
182
+ export interface fetchPayload {
183
+ context: any;
184
+ document: Document;
185
+ documentName: string;
186
+ instance: Hocuspocus;
187
+ requestHeaders: IncomingHttpHeaders;
188
+ requestParameters: URLSearchParams;
189
+ socketId: string;
190
+ connection: ConnectionConfiguration;
191
+ }
182
192
  export interface storePayload extends onStoreDocumentPayload {
183
193
  state: Buffer;
184
194
  }
@@ -198,19 +208,21 @@ export interface onRequestPayload {
198
208
  instance: Hocuspocus;
199
209
  }
200
210
  export interface onUpgradePayload {
201
- head: any;
202
211
  request: IncomingMessage;
203
- socket: Socket;
212
+ socket: any;
213
+ head: any;
204
214
  instance: Hocuspocus;
205
215
  }
206
216
  export interface onListenPayload {
217
+ instance: Hocuspocus;
218
+ configuration: Configuration;
207
219
  port: number;
208
220
  }
209
221
  export interface onDestroyPayload {
210
222
  instance: Hocuspocus;
211
223
  }
212
224
  export interface onConfigurePayload {
225
+ instance: Hocuspocus;
213
226
  configuration: Configuration;
214
227
  version: string;
215
- instance: Hocuspocus;
216
228
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -2,6 +2,7 @@ export * from './createDirectory';
2
2
  export * from './flushRedis';
3
3
  export * from './newHocuspocus';
4
4
  export * from './newHocuspocusProvider';
5
+ export * from './randomInteger';
5
6
  export * from './redisConnectionSettings';
6
7
  export * from './removeDirectory';
7
8
  export * from './sleep';
@@ -0,0 +1 @@
1
+ export declare const randomInteger: (min: number, max: number) => number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hocuspocus/extension-throttle",
3
- "version": "1.0.0-alpha.55",
3
+ "version": "1.0.0-alpha.58",
4
4
  "description": "hocuspocus throttle extension",
5
5
  "homepage": "https://hocuspocus.dev",
6
6
  "keywords": [
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "license": "MIT",
12
12
  "type": "module",
13
- "main": "dist/hocuspocus-throttle.esm.js",
13
+ "main": "dist/hocuspocus-throttle.cjs",
14
14
  "module": "dist/hocuspocus-throttle.esm.js",
15
15
  "types": "dist/packages/extension-throttle/src/index.d.ts",
16
16
  "exports": {
@@ -27,7 +27,7 @@
27
27
  "dist"
28
28
  ],
29
29
  "dependencies": {
30
- "@hocuspocus/server": "^1.0.0-alpha.99"
30
+ "@hocuspocus/server": "^1.0.0-alpha.102"
31
31
  },
32
- "gitHead": "e26a5eeaa9278b9587d4b475cec53bf14bc569b9"
32
+ "gitHead": "450e12c89b027bc62683f151330a98074cd8e8fb"
33
33
  }