@hocuspocus/extension-sqlite 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.
Files changed (94) hide show
  1. package/README.md +1 -1
  2. package/dist/hocuspocus-sqlite.cjs +29 -20
  3. package/dist/hocuspocus-sqlite.cjs.map +1 -1
  4. package/dist/hocuspocus-sqlite.esm.js +26 -20
  5. package/dist/hocuspocus-sqlite.esm.js.map +1 -1
  6. package/dist/packages/common/src/CloseEvents.d.ts +23 -0
  7. package/dist/packages/common/src/awarenessStatesToArray.d.ts +3 -0
  8. package/dist/packages/common/src/index.d.ts +3 -0
  9. package/dist/packages/common/src/types.d.ts +10 -0
  10. package/dist/packages/extension-database/src/Database.d.ts +5 -11
  11. package/dist/packages/extension-logger/src/Logger.d.ts +5 -0
  12. package/dist/packages/extension-monitor/src/Collector.d.ts +2 -3
  13. package/dist/packages/extension-monitor/src/index.d.ts +2 -2
  14. package/dist/packages/extension-redis/src/Redis.d.ts +91 -9
  15. package/dist/packages/extension-redis/src/index.d.ts +0 -1
  16. package/dist/packages/extension-sqlite/src/SQLite.d.ts +4 -4
  17. package/dist/packages/extension-throttle/src/index.d.ts +6 -2
  18. package/dist/packages/extension-webhook/src/index.d.ts +1 -2
  19. package/dist/packages/provider/src/EventEmitter.d.ts +1 -1
  20. package/dist/packages/provider/src/HocuspocusCloudProvider.d.ts +4 -3
  21. package/dist/packages/provider/src/HocuspocusProvider.d.ts +30 -26
  22. package/dist/packages/provider/src/index.d.ts +0 -1
  23. package/dist/packages/provider/src/types.d.ts +43 -0
  24. package/dist/packages/server/src/Connection.d.ts +16 -5
  25. package/dist/packages/server/src/Debugger.d.ts +1 -2
  26. package/dist/packages/server/src/Document.d.ts +9 -5
  27. package/dist/packages/server/src/Hocuspocus.d.ts +37 -15
  28. package/dist/packages/server/src/MessageReceiver.d.ts +8 -5
  29. package/dist/packages/server/src/OutgoingMessage.d.ts +2 -0
  30. package/dist/packages/server/src/index.d.ts +6 -0
  31. package/dist/packages/server/src/types.d.ts +127 -38
  32. package/dist/tests/extension-database/fetch.d.ts +1 -0
  33. package/dist/tests/extension-logger/onListen.d.ts +1 -0
  34. package/dist/tests/extension-redis/closeConnections.d.ts +1 -0
  35. package/dist/tests/extension-redis/getConnectionCount.d.ts +1 -0
  36. package/dist/tests/extension-redis/getDocumentsCount.d.ts +1 -0
  37. package/dist/tests/extension-redis/onAwarenessChange.d.ts +1 -0
  38. package/dist/tests/extension-redis/onChange.d.ts +1 -0
  39. package/dist/tests/extension-redis/onStoreDocument.d.ts +1 -0
  40. package/dist/tests/extension-throttle/configuration.d.ts +1 -0
  41. package/dist/tests/provider/configuration.d.ts +1 -0
  42. package/dist/tests/provider/observe.d.ts +1 -0
  43. package/dist/tests/provider/observeDeep.d.ts +1 -0
  44. package/dist/tests/provider/onAuthenticated.d.ts +1 -0
  45. package/dist/tests/provider/onAuthenticationFailed.d.ts +1 -0
  46. package/dist/tests/provider/onAwarenessChange.d.ts +1 -0
  47. package/dist/tests/provider/onAwarenessUpdate.d.ts +1 -0
  48. package/dist/tests/provider/onClose.d.ts +1 -0
  49. package/dist/tests/provider/onConnect.d.ts +1 -0
  50. package/dist/tests/provider/onDisconnect.d.ts +1 -0
  51. package/dist/tests/provider/onMessage.d.ts +1 -0
  52. package/dist/tests/provider/onOpen.d.ts +1 -0
  53. package/dist/tests/provider/onSynced.d.ts +1 -0
  54. package/dist/tests/server/address.d.ts +1 -0
  55. package/dist/tests/server/afterStoreDocument.d.ts +1 -0
  56. package/dist/tests/server/beforeHandleMessage.d.ts +1 -0
  57. package/dist/tests/server/closeConnections.d.ts +1 -0
  58. package/dist/tests/server/getConnectionsCount.d.ts +1 -0
  59. package/dist/tests/server/getDocumentName.d.ts +1 -0
  60. package/dist/tests/server/getDocumentsCount.d.ts +1 -0
  61. package/dist/tests/server/getMessageLogs.d.ts +1 -0
  62. package/dist/tests/server/listen.d.ts +1 -0
  63. package/dist/tests/server/onAuthenticate.d.ts +1 -0
  64. package/dist/tests/server/onAwarenessUpdate.d.ts +1 -0
  65. package/dist/tests/server/onChange.d.ts +1 -0
  66. package/dist/tests/server/onConfigure.d.ts +1 -0
  67. package/dist/tests/server/onConnect.d.ts +1 -0
  68. package/dist/tests/server/onDestroy.d.ts +1 -0
  69. package/dist/tests/server/onDisconnect.d.ts +1 -0
  70. package/dist/tests/server/onListen.d.ts +1 -0
  71. package/dist/tests/server/onLoadDocument.d.ts +1 -0
  72. package/dist/tests/server/onRequest.d.ts +1 -0
  73. package/dist/tests/server/onStoreDocument.d.ts +1 -0
  74. package/dist/tests/server/onUpgrade.d.ts +1 -0
  75. package/dist/tests/server/requiresAuthentication.d.ts +1 -0
  76. package/dist/tests/server/websocketError.d.ts +1 -0
  77. package/dist/tests/transformer/TiptapTransformer.d.ts +1 -0
  78. package/dist/tests/utils/createDirectory.d.ts +1 -0
  79. package/dist/tests/utils/flushRedis.d.ts +1 -0
  80. package/dist/tests/utils/index.d.ts +8 -0
  81. package/dist/tests/utils/newHocuspocus.d.ts +2 -0
  82. package/dist/tests/utils/newHocuspocusProvider.d.ts +3 -0
  83. package/dist/tests/utils/randomInteger.d.ts +1 -0
  84. package/dist/tests/utils/redisConnectionSettings.d.ts +4 -0
  85. package/dist/tests/utils/removeDirectory.d.ts +1 -0
  86. package/dist/tests/utils/retryableAssertion.d.ts +2 -0
  87. package/dist/tests/utils/sleep.d.ts +1 -0
  88. package/package.json +7 -7
  89. package/src/SQLite.ts +29 -21
  90. package/dist/packages/extension-redis/src/RedisCluster.d.ts +0 -4
  91. package/dist/packages/extension-rocksdb/src/index.d.ts +0 -22
  92. package/dist/packages/provider/src/utils/awarenessStatesToArray.d.ts +0 -4
  93. package/dist/packages/provider/src/utils/index.d.ts +0 -1
  94. 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 {};
@@ -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 {};
@@ -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,2 @@
1
+ import { Hocuspocus, Configuration } from '@hocuspocus/server';
2
+ export declare const newHocuspocus: (options?: Partial<Configuration> | undefined) => Hocuspocus;
@@ -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,4 @@
1
+ export declare const redisConnectionSettings: {
2
+ host: string;
3
+ port: number;
4
+ };
@@ -0,0 +1 @@
1
+ export declare const removeDirectory: (dir: string) => void;
@@ -0,0 +1,2 @@
1
+ import { ExecutionContext } from 'ava';
2
+ export declare const retryableAssertion: (t: ExecutionContext, recoverableTry: (tt: ExecutionContext) => void) => Promise<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-sqlite",
3
3
  "description": "a generic Hocuspocus persistence driver for the sqlite",
4
- "version": "1.0.0-alpha.2",
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-sqlite.esm.js",
12
+ "main": "dist/hocuspocus-sqlite.cjs",
13
13
  "module": "dist/hocuspocus-sqlite.esm.js",
14
14
  "types": "dist/packages/extension-sqlite/src/index.d.ts",
15
15
  "exports": {
@@ -26,15 +26,15 @@
26
26
  "dist"
27
27
  ],
28
28
  "dependencies": {
29
- "@hocuspocus/extension-database": "^1.0.0-alpha.2",
30
- "chalk": "^5.0.0",
31
- "sqlite3": "^5.0.2"
29
+ "@hocuspocus/extension-database": "^1.0.0-alpha.21",
30
+ "kleur": "^4.1.4",
31
+ "sqlite3": "^5.0.11"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/sqlite3": "^3.1.7"
37
+ "@types/sqlite3": "^3.1.8"
38
38
  },
39
- "gitHead": "09919438a0a220ffb7479afc562872c8726cc4b4"
39
+ "gitHead": "3dc62aedd8d19d4a9c346188885657ea814271c0"
40
40
  }
package/src/SQLite.ts CHANGED
@@ -1,6 +1,21 @@
1
1
  import { Database, DatabaseConfiguration } from '@hocuspocus/extension-database'
2
2
  import sqlite3 from 'sqlite3'
3
- import chalk from 'chalk'
3
+ import kleur from 'kleur'
4
+
5
+ export const schema = `CREATE TABLE IF NOT EXISTS "documents" (
6
+ "name" varchar(255) NOT NULL,
7
+ "data" blob NOT NULL,
8
+ UNIQUE(name)
9
+ )`
10
+
11
+ export const selectQuery = `
12
+ SELECT data FROM "documents" WHERE name = $name ORDER BY rowid DESC
13
+ `
14
+
15
+ export const upsertQuery = `
16
+ INSERT INTO "documents" ("name", "data") VALUES ($name, $data)
17
+ ON CONFLICT(name) DO UPDATE SET data = $data
18
+ `
4
19
 
5
20
  export interface SQLiteConfiguration extends DatabaseConfiguration {
6
21
  /**
@@ -22,34 +37,28 @@ export class SQLite extends Database {
22
37
 
23
38
  configuration: SQLiteConfiguration = {
24
39
  database: ':memory:',
25
- schema: `CREATE TABLE IF NOT EXISTS "documents" (
26
- "name" varchar(255) NOT NULL,
27
- "data" blob NOT NULL
28
- );`,
29
- fetchUpdates: async ({ documentName }) => {
40
+ schema,
41
+ fetch: async ({ documentName }) => {
30
42
  return new Promise((resolve, reject) => {
31
- this.db?.all('SELECT data FROM "documents" WHERE name = $name ORDER BY rowid', {
43
+ this.db?.get(selectQuery, {
32
44
  $name: documentName,
33
- }, (error, rows) => {
45
+ }, (error, row) => {
34
46
  if (error) {
35
47
  reject(error)
36
48
  }
37
49
 
38
- resolve(rows.map(row => row.data))
50
+ resolve(row?.data)
39
51
  })
40
52
  })
41
53
  },
42
- storeUpdate: async ({ documentName, update }) => {
43
- this.db?.run('INSERT INTO "documents" ("name", "data") VALUES ($name, $data)', {
54
+ store: async ({ documentName, state }) => {
55
+ this.db?.run(upsertQuery, {
44
56
  $name: documentName,
45
- $data: update,
57
+ $data: state,
46
58
  })
47
59
  },
48
60
  }
49
61
 
50
- /**
51
- * Constructor
52
- */
53
62
  constructor(configuration?: Partial<SQLiteConfiguration>) {
54
63
  super({})
55
64
 
@@ -59,14 +68,13 @@ export class SQLite extends Database {
59
68
  }
60
69
  }
61
70
 
62
- async onListen() {
63
- console.warn(` ${chalk.yellow('The SQLite extension is intended to be used in a local development environment, not in a production environment.')}`)
64
- console.log()
65
- }
66
-
67
71
  async onConfigure() {
68
72
  this.db = new sqlite3.Database(this.configuration.database)
69
-
70
73
  this.db.run(this.configuration.schema)
71
74
  }
75
+
76
+ async onListen() {
77
+ console.warn(` ${kleur.yellow('The SQLite extension is intended to be used in a local development environment, not in a production environment.')}`)
78
+ console.log()
79
+ }
72
80
  }
@@ -1,4 +0,0 @@
1
- import { Redis } from './Redis';
2
- export declare class RedisCluster extends Redis {
3
- cluster: boolean;
4
- }
@@ -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,4 +0,0 @@
1
- declare const _default: (states: Map<number, Record<string, any>>) => {
2
- clientId: number;
3
- }[];
4
- export default _default;
@@ -1 +0,0 @@
1
- export { default as awarenessStatesToArray } from './awarenessStatesToArray';
@@ -1,4 +0,0 @@
1
- import { CloseEvent } from './types';
2
- export declare const Forbidden: CloseEvent;
3
- export declare const ResetConnection: CloseEvent;
4
- export declare const CloseEvents: CloseEvent[];