@hocuspocus/extension-database 1.0.0-alpha.2 → 1.0.0-alpha.21
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/README.md +1 -1
- package/dist/hocuspocus-database.cjs +12 -12
- package/dist/hocuspocus-database.cjs.map +1 -1
- package/dist/hocuspocus-database.esm.js +12 -12
- package/dist/hocuspocus-database.esm.js.map +1 -1
- package/dist/packages/common/src/CloseEvents.d.ts +23 -0
- package/dist/packages/common/src/awarenessStatesToArray.d.ts +3 -0
- package/dist/packages/common/src/index.d.ts +3 -0
- package/dist/packages/common/src/types.d.ts +10 -0
- package/dist/packages/extension-database/src/Database.d.ts +5 -11
- package/dist/packages/extension-logger/src/Logger.d.ts +5 -0
- package/dist/packages/extension-monitor/src/Collector.d.ts +2 -3
- package/dist/packages/extension-monitor/src/index.d.ts +2 -2
- package/dist/packages/extension-redis/src/Redis.d.ts +91 -9
- package/dist/packages/extension-redis/src/index.d.ts +0 -1
- package/dist/packages/extension-sqlite/src/SQLite.d.ts +4 -4
- package/dist/packages/extension-throttle/src/index.d.ts +6 -2
- package/dist/packages/extension-webhook/src/index.d.ts +1 -2
- package/dist/packages/provider/src/EventEmitter.d.ts +1 -1
- package/dist/packages/provider/src/HocuspocusCloudProvider.d.ts +4 -3
- package/dist/packages/provider/src/HocuspocusProvider.d.ts +30 -26
- package/dist/packages/provider/src/index.d.ts +0 -1
- package/dist/packages/provider/src/types.d.ts +43 -0
- package/dist/packages/server/src/Connection.d.ts +16 -5
- package/dist/packages/server/src/Debugger.d.ts +1 -2
- package/dist/packages/server/src/Document.d.ts +9 -5
- package/dist/packages/server/src/Hocuspocus.d.ts +37 -15
- package/dist/packages/server/src/MessageReceiver.d.ts +8 -5
- package/dist/packages/server/src/OutgoingMessage.d.ts +2 -0
- package/dist/packages/server/src/index.d.ts +6 -0
- package/dist/packages/server/src/types.d.ts +127 -38
- package/dist/tests/extension-database/fetch.d.ts +1 -0
- package/dist/tests/extension-logger/onListen.d.ts +1 -0
- package/dist/tests/extension-redis/closeConnections.d.ts +1 -0
- package/dist/tests/extension-redis/getConnectionCount.d.ts +1 -0
- package/dist/tests/extension-redis/getDocumentsCount.d.ts +1 -0
- package/dist/tests/extension-redis/onAwarenessChange.d.ts +1 -0
- package/dist/tests/extension-redis/onChange.d.ts +1 -0
- package/dist/tests/extension-redis/onStoreDocument.d.ts +1 -0
- package/dist/tests/extension-throttle/configuration.d.ts +1 -0
- package/dist/tests/provider/configuration.d.ts +1 -0
- package/dist/tests/provider/observe.d.ts +1 -0
- package/dist/tests/provider/observeDeep.d.ts +1 -0
- package/dist/tests/provider/onAuthenticated.d.ts +1 -0
- package/dist/tests/provider/onAuthenticationFailed.d.ts +1 -0
- package/dist/tests/provider/onAwarenessChange.d.ts +1 -0
- package/dist/tests/provider/onAwarenessUpdate.d.ts +1 -0
- package/dist/tests/provider/onClose.d.ts +1 -0
- package/dist/tests/provider/onConnect.d.ts +1 -0
- package/dist/tests/provider/onDisconnect.d.ts +1 -0
- package/dist/tests/provider/onMessage.d.ts +1 -0
- package/dist/tests/provider/onOpen.d.ts +1 -0
- package/dist/tests/provider/onSynced.d.ts +1 -0
- package/dist/tests/server/address.d.ts +1 -0
- package/dist/tests/server/afterStoreDocument.d.ts +1 -0
- package/dist/tests/server/beforeHandleMessage.d.ts +1 -0
- package/dist/tests/server/closeConnections.d.ts +1 -0
- package/dist/tests/server/getConnectionsCount.d.ts +1 -0
- package/dist/tests/server/getDocumentName.d.ts +1 -0
- package/dist/tests/server/getDocumentsCount.d.ts +1 -0
- package/dist/tests/server/getMessageLogs.d.ts +1 -0
- package/dist/tests/server/listen.d.ts +1 -0
- package/dist/tests/server/onAuthenticate.d.ts +1 -0
- package/dist/tests/server/onAwarenessUpdate.d.ts +1 -0
- package/dist/tests/server/onChange.d.ts +1 -0
- package/dist/tests/server/onConfigure.d.ts +1 -0
- package/dist/tests/server/onConnect.d.ts +1 -0
- package/dist/tests/server/onDestroy.d.ts +1 -0
- package/dist/tests/server/onDisconnect.d.ts +1 -0
- package/dist/tests/server/onListen.d.ts +1 -0
- package/dist/tests/server/onLoadDocument.d.ts +1 -0
- package/dist/tests/server/onRequest.d.ts +1 -0
- package/dist/tests/server/onStoreDocument.d.ts +1 -0
- package/dist/tests/server/onUpgrade.d.ts +1 -0
- package/dist/tests/server/requiresAuthentication.d.ts +1 -0
- package/dist/tests/server/websocketError.d.ts +1 -0
- package/dist/tests/transformer/TiptapTransformer.d.ts +1 -0
- package/dist/tests/utils/createDirectory.d.ts +1 -0
- package/dist/tests/utils/flushRedis.d.ts +1 -0
- package/dist/tests/utils/index.d.ts +8 -0
- package/dist/tests/utils/newHocuspocus.d.ts +2 -0
- package/dist/tests/utils/newHocuspocusProvider.d.ts +3 -0
- package/dist/tests/utils/randomInteger.d.ts +1 -0
- package/dist/tests/utils/redisConnectionSettings.d.ts +4 -0
- package/dist/tests/utils/removeDirectory.d.ts +1 -0
- package/dist/tests/utils/retryableAssertion.d.ts +2 -0
- package/dist/tests/utils/sleep.d.ts +1 -0
- package/package.json +5 -5
- package/src/Database.ts +23 -18
- package/dist/packages/extension-redis/src/RedisCluster.d.ts +0 -4
- package/dist/packages/extension-rocksdb/src/index.d.ts +0 -22
- package/dist/packages/provider/src/utils/awarenessStatesToArray.d.ts +0 -4
- package/dist/packages/provider/src/utils/index.d.ts +0 -1
- package/dist/packages/server/src/CloseEvents.d.ts +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createDirectory: (dir: string) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const flushRedis: () => Promise<string>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './createDirectory';
|
|
2
|
+
export * from './flushRedis';
|
|
3
|
+
export * from './newHocuspocus';
|
|
4
|
+
export * from './newHocuspocusProvider';
|
|
5
|
+
export * from './randomInteger';
|
|
6
|
+
export * from './redisConnectionSettings';
|
|
7
|
+
export * from './removeDirectory';
|
|
8
|
+
export * from './sleep';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { HocuspocusProvider, HocuspocusProviderConfiguration } from '@hocuspocus/provider';
|
|
2
|
+
import { Hocuspocus } from '@hocuspocus/server';
|
|
3
|
+
export declare const newHocuspocusProvider: (server: Hocuspocus, options?: Partial<Omit<HocuspocusProviderConfiguration, 'url'>>) => HocuspocusProvider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const randomInteger: (min: number, max: number) => number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const removeDirectory: (dir: string) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const sleep: (time: number) => Promise<unknown>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hocuspocus/extension-database",
|
|
3
3
|
"description": "a generic Hocuspocus persistence driver for the database",
|
|
4
|
-
"version": "1.0.0-alpha.
|
|
4
|
+
"version": "1.0.0-alpha.21",
|
|
5
5
|
"homepage": "https://hocuspocus.dev",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"hocuspocus",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"type": "module",
|
|
12
|
-
"main": "dist/hocuspocus-database.
|
|
12
|
+
"main": "dist/hocuspocus-database.cjs",
|
|
13
13
|
"module": "dist/hocuspocus-database.esm.js",
|
|
14
14
|
"types": "dist/packages/extension-database/src/index.d.ts",
|
|
15
15
|
"exports": {
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"dist"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@hocuspocus/server": "^1.0.0-alpha.
|
|
30
|
-
"yjs": "^13.5.
|
|
29
|
+
"@hocuspocus/server": "^1.0.0-alpha.107",
|
|
30
|
+
"yjs": "^13.5.29"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "3dc62aedd8d19d4a9c346188885657ea814271c0"
|
|
36
36
|
}
|
package/src/Database.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Extension,
|
|
3
|
+
onChangePayload,
|
|
4
|
+
onLoadDocumentPayload,
|
|
5
|
+
storePayload,
|
|
6
|
+
fetchPayload,
|
|
7
|
+
} from '@hocuspocus/server'
|
|
2
8
|
import * as Y from 'yjs'
|
|
3
9
|
|
|
4
10
|
export interface DatabaseConfiguration {
|
|
@@ -6,11 +12,11 @@ export interface DatabaseConfiguration {
|
|
|
6
12
|
* Pass a Promise to retrieve updates from your database. The Promise should resolve to
|
|
7
13
|
* an array of items with Y.js-compatible binary data.
|
|
8
14
|
*/
|
|
9
|
-
|
|
15
|
+
fetch: (data: fetchPayload) => Promise<Uint8Array | null>,
|
|
10
16
|
/**
|
|
11
17
|
* Pass a function to store updates in your database.
|
|
12
18
|
*/
|
|
13
|
-
|
|
19
|
+
store: (data: storePayload) => void,
|
|
14
20
|
}
|
|
15
21
|
|
|
16
22
|
export class Database implements Extension {
|
|
@@ -18,8 +24,8 @@ export class Database implements Extension {
|
|
|
18
24
|
* Default configuration
|
|
19
25
|
*/
|
|
20
26
|
configuration: DatabaseConfiguration = {
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
fetch: async () => null,
|
|
28
|
+
store: async () => null,
|
|
23
29
|
}
|
|
24
30
|
|
|
25
31
|
/**
|
|
@@ -35,26 +41,25 @@ export class Database implements Extension {
|
|
|
35
41
|
/**
|
|
36
42
|
* Get stored data from the database.
|
|
37
43
|
*/
|
|
38
|
-
async onLoadDocument(
|
|
39
|
-
const
|
|
44
|
+
async onLoadDocument(data: onLoadDocumentPayload): Promise<any> {
|
|
45
|
+
const update = await this.configuration.fetch(data)
|
|
40
46
|
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
Y.applyUpdate(document, update)
|
|
44
|
-
})
|
|
47
|
+
if (update) {
|
|
48
|
+
Y.applyUpdate(data.document, update)
|
|
45
49
|
}
|
|
46
50
|
|
|
47
|
-
return document
|
|
51
|
+
return data.document
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
/**
|
|
51
55
|
* Store new updates in the database.
|
|
52
56
|
*/
|
|
53
|
-
async
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
async onStoreDocument(data: onChangePayload) {
|
|
58
|
+
return this.configuration.store({
|
|
59
|
+
...data,
|
|
60
|
+
state: Buffer.from(
|
|
61
|
+
Y.encodeStateAsUpdate(data.document),
|
|
62
|
+
),
|
|
63
|
+
})
|
|
59
64
|
}
|
|
60
65
|
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Extension, onLoadDocumentPayload } from '@hocuspocus/server';
|
|
2
|
-
import { LeveldbPersistence } from 'y-leveldb';
|
|
3
|
-
export interface Configuration {
|
|
4
|
-
options: object | undefined;
|
|
5
|
-
path: string;
|
|
6
|
-
}
|
|
7
|
-
export declare class RocksDB implements Extension {
|
|
8
|
-
configuration: Configuration;
|
|
9
|
-
provider: LeveldbPersistence;
|
|
10
|
-
/**
|
|
11
|
-
* Constructor
|
|
12
|
-
*/
|
|
13
|
-
constructor(configuration?: Partial<Configuration>);
|
|
14
|
-
/**
|
|
15
|
-
* onLoadDocument hook
|
|
16
|
-
*/
|
|
17
|
-
onLoadDocument(data: onLoadDocumentPayload): Promise<any>;
|
|
18
|
-
/**
|
|
19
|
-
* store updates in y-leveldb persistence
|
|
20
|
-
*/
|
|
21
|
-
store(documentName: string, update: Uint8Array): Promise<any>;
|
|
22
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as awarenessStatesToArray } from './awarenessStatesToArray';
|