prostgles-server 4.0.57 → 4.0.59

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 (221) hide show
  1. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  2. package/dist/DboBuilder/getColumns.js +1 -13
  3. package/dist/DboBuilder/getColumns.js.map +1 -1
  4. package/dist/DboBuilder/runSQL.js +2 -2
  5. package/dist/DboBuilder/runSQL.js.map +1 -1
  6. package/dist/Prostgles.d.ts.map +1 -1
  7. package/dist/PubSubManager/PubSubManager.d.ts +1 -1
  8. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  9. package/dist/PubSubManager/PubSubManager.js +14 -1
  10. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  11. package/lib/DboBuilder/getColumns.ts +1 -18
  12. package/lib/DboBuilder/runSQL.ts +2 -2
  13. package/lib/Prostgles.ts +3 -3
  14. package/lib/PubSubManager/PubSubManager.ts +14 -1
  15. package/package.json +2 -2
  16. package/tests/client/PID.txt +1 -1
  17. package/tests/client/package.json +2 -2
  18. package/tests/client/tsconfig.json +2 -1
  19. package/tests/isomorphic_queries.ts +11 -9
  20. package/tests/server/DBoGenerated.d.ts +1 -1
  21. package/tests/server/dboTypeCheck.ts +3 -3
  22. package/tests/server/index.ts +7 -6
  23. package/tests/server/package-lock.json +1 -1
  24. package/tests/server/package.json +3 -3
  25. package/tests/server/publishTypeCheck.ts +1 -1
  26. package/tests/server/tsconfig.json +3 -2
  27. package/tests/test.sh +2 -0
  28. package/dist/FileManager.d.ts +0 -143
  29. package/dist/FileManager.d.ts.map +0 -1
  30. package/dist/FileManager.js +0 -646
  31. package/dist/FileManager.js.map +0 -1
  32. package/dist/TableConfig.d.ts +0 -267
  33. package/dist/TableConfig.d.ts.map +0 -1
  34. package/dist/TableConfig.js +0 -463
  35. package/dist/TableConfig.js.map +0 -1
  36. package/dist/validation.d.ts +0 -126
  37. package/dist/validation.d.ts.map +0 -1
  38. package/dist/validation.js +0 -405
  39. package/dist/validation.js.map +0 -1
  40. package/lib/AuthHandler.d.ts +0 -187
  41. package/lib/AuthHandler.d.ts.map +0 -1
  42. package/lib/AuthHandler.js +0 -478
  43. package/lib/DBEventsManager.d.ts +0 -38
  44. package/lib/DBEventsManager.d.ts.map +0 -1
  45. package/lib/DBEventsManager.js +0 -140
  46. package/lib/DBSchemaBuilder.d.ts +0 -13
  47. package/lib/DBSchemaBuilder.d.ts.map +0 -1
  48. package/lib/DBSchemaBuilder.js +0 -145
  49. package/lib/DboBuilder/QueryBuilder/Functions.d.ts +0 -64
  50. package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +0 -1
  51. package/lib/DboBuilder/QueryBuilder/Functions.js +0 -984
  52. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +0 -73
  53. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +0 -1
  54. package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +0 -335
  55. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +0 -8
  56. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +0 -1
  57. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +0 -227
  58. package/lib/DboBuilder/TableHandler.d.ts +0 -37
  59. package/lib/DboBuilder/TableHandler.d.ts.map +0 -1
  60. package/lib/DboBuilder/TableHandler.js +0 -213
  61. package/lib/DboBuilder/ViewHandler.d.ts +0 -119
  62. package/lib/DboBuilder/ViewHandler.d.ts.map +0 -1
  63. package/lib/DboBuilder/ViewHandler.js +0 -1023
  64. package/lib/DboBuilder/delete.d.ts +0 -6
  65. package/lib/DboBuilder/delete.d.ts.map +0 -1
  66. package/lib/DboBuilder/delete.js +0 -128
  67. package/lib/DboBuilder/find.d.ts +0 -8
  68. package/lib/DboBuilder/find.d.ts.map +0 -1
  69. package/lib/DboBuilder/find.js +0 -91
  70. package/lib/DboBuilder/getColumns.d.ts +0 -12
  71. package/lib/DboBuilder/getColumns.d.ts.map +0 -1
  72. package/lib/DboBuilder/getColumns.js +0 -92
  73. package/lib/DboBuilder/getCondition.d.ts +0 -22
  74. package/lib/DboBuilder/getCondition.d.ts.map +0 -1
  75. package/lib/DboBuilder/getCondition.js +0 -236
  76. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts +0 -20
  77. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts.map +0 -1
  78. package/lib/DboBuilder/getSubscribeRelatedTables.js +0 -152
  79. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts +0 -3
  80. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +0 -1
  81. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.js +0 -207
  82. package/lib/DboBuilder/insert.d.ts +0 -6
  83. package/lib/DboBuilder/insert.d.ts.map +0 -1
  84. package/lib/DboBuilder/insert.js +0 -180
  85. package/lib/DboBuilder/insertDataParse.d.ts +0 -12
  86. package/lib/DboBuilder/insertDataParse.d.ts.map +0 -1
  87. package/lib/DboBuilder/insertDataParse.js +0 -253
  88. package/lib/DboBuilder/parseUpdateRules.d.ts +0 -18
  89. package/lib/DboBuilder/parseUpdateRules.d.ts.map +0 -1
  90. package/lib/DboBuilder/parseUpdateRules.js +0 -123
  91. package/lib/DboBuilder/runSQL.d.ts +0 -7
  92. package/lib/DboBuilder/runSQL.d.ts.map +0 -1
  93. package/lib/DboBuilder/runSQL.js +0 -135
  94. package/lib/DboBuilder/subscribe.d.ts +0 -20
  95. package/lib/DboBuilder/subscribe.d.ts.map +0 -1
  96. package/lib/DboBuilder/subscribe.js +0 -90
  97. package/lib/DboBuilder/update.d.ts +0 -6
  98. package/lib/DboBuilder/update.d.ts.map +0 -1
  99. package/lib/DboBuilder/update.js +0 -151
  100. package/lib/DboBuilder/uploadFile.d.ts +0 -7
  101. package/lib/DboBuilder/uploadFile.d.ts.map +0 -1
  102. package/lib/DboBuilder/uploadFile.js +0 -53
  103. package/lib/DboBuilder.d.ts +0 -306
  104. package/lib/DboBuilder.d.ts.map +0 -1
  105. package/lib/DboBuilder.js +0 -745
  106. package/lib/Event_Trigger_Tags.d.ts +0 -4
  107. package/lib/Event_Trigger_Tags.d.ts.map +0 -1
  108. package/lib/Event_Trigger_Tags.js +0 -116
  109. package/lib/FileManager/FileManager.d.ts +0 -135
  110. package/lib/FileManager/FileManager.d.ts.map +0 -1
  111. package/lib/FileManager/FileManager.js +0 -303
  112. package/lib/FileManager/initFileManager.d.ts +0 -4
  113. package/lib/FileManager/initFileManager.d.ts.map +0 -1
  114. package/lib/FileManager/initFileManager.js +0 -231
  115. package/lib/FileManager/parseFile.d.ts +0 -15
  116. package/lib/FileManager/parseFile.d.ts.map +0 -1
  117. package/lib/FileManager/parseFile.js +0 -58
  118. package/lib/FileManager/upload.d.ts +0 -6
  119. package/lib/FileManager/upload.d.ts.map +0 -1
  120. package/lib/FileManager/upload.js +0 -98
  121. package/lib/FileManager/uploadStream.d.ts +0 -5
  122. package/lib/FileManager/uploadStream.d.ts.map +0 -1
  123. package/lib/FileManager/uploadStream.js +0 -92
  124. package/lib/Filtering.d.ts +0 -15
  125. package/lib/Filtering.d.ts.map +0 -1
  126. package/lib/Filtering.js +0 -336
  127. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +0 -4
  128. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +0 -1
  129. package/lib/JSONBValidation/validate_jsonb_schema_sql.js +0 -500
  130. package/lib/JSONBValidation/validation.d.ts +0 -9
  131. package/lib/JSONBValidation/validation.d.ts.map +0 -1
  132. package/lib/JSONBValidation/validation.js +0 -131
  133. package/lib/PostgresNotifListenManager.d.ts +0 -28
  134. package/lib/PostgresNotifListenManager.d.ts.map +0 -1
  135. package/lib/PostgresNotifListenManager.js +0 -134
  136. package/lib/Prostgles.d.ts +0 -289
  137. package/lib/Prostgles.d.ts.map +0 -1
  138. package/lib/Prostgles.js +0 -685
  139. package/lib/PubSubManager/PubSubManager.d.ts +0 -175
  140. package/lib/PubSubManager/PubSubManager.d.ts.map +0 -1
  141. package/lib/PubSubManager/PubSubManager.js +0 -452
  142. package/lib/PubSubManager/addSub.d.ts +0 -8
  143. package/lib/PubSubManager/addSub.d.ts.map +0 -1
  144. package/lib/PubSubManager/addSub.js +0 -166
  145. package/lib/PubSubManager/addSync.d.ts +0 -8
  146. package/lib/PubSubManager/addSync.d.ts.map +0 -1
  147. package/lib/PubSubManager/addSync.js +0 -109
  148. package/lib/PubSubManager/getInitQuery.d.ts +0 -9
  149. package/lib/PubSubManager/getInitQuery.d.ts.map +0 -1
  150. package/lib/PubSubManager/getInitQuery.js +0 -552
  151. package/lib/PubSubManager/initPubSubManager.d.ts +0 -3
  152. package/lib/PubSubManager/initPubSubManager.d.ts.map +0 -1
  153. package/lib/PubSubManager/initPubSubManager.js +0 -116
  154. package/lib/PubSubManager/notifListener.d.ts +0 -5
  155. package/lib/PubSubManager/notifListener.d.ts.map +0 -1
  156. package/lib/PubSubManager/notifListener.js +0 -100
  157. package/lib/PubSubManager/pushSubData.d.ts +0 -3
  158. package/lib/PubSubManager/pushSubData.d.ts.map +0 -1
  159. package/lib/PubSubManager/pushSubData.js +0 -51
  160. package/lib/PublishParser.d.ts +0 -284
  161. package/lib/PublishParser.d.ts.map +0 -1
  162. package/lib/PublishParser.js +0 -421
  163. package/lib/SchemaWatch.d.ts +0 -13
  164. package/lib/SchemaWatch.d.ts.map +0 -1
  165. package/lib/SchemaWatch.js +0 -35
  166. package/lib/SyncReplication.d.ts +0 -34
  167. package/lib/SyncReplication.d.ts.map +0 -1
  168. package/lib/SyncReplication.js +0 -412
  169. package/lib/TableConfig/TableConfig.d.ts +0 -284
  170. package/lib/TableConfig/TableConfig.d.ts.map +0 -1
  171. package/lib/TableConfig/TableConfig.js +0 -437
  172. package/lib/TableConfig/getColumnDefinitionQuery.d.ts +0 -27
  173. package/lib/TableConfig/getColumnDefinitionQuery.d.ts.map +0 -1
  174. package/lib/TableConfig/getColumnDefinitionQuery.js +0 -87
  175. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts +0 -34
  176. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts.map +0 -1
  177. package/lib/TableConfig/getConstraintDefinitionQueries.js +0 -65
  178. package/lib/TableConfig/getFutureTableSchema.d.ts +0 -15
  179. package/lib/TableConfig/getFutureTableSchema.d.ts.map +0 -1
  180. package/lib/TableConfig/getFutureTableSchema.js +0 -43
  181. package/lib/TableConfig/getTableColumnQueries.d.ts +0 -16
  182. package/lib/TableConfig/getTableColumnQueries.d.ts.map +0 -1
  183. package/lib/TableConfig/getTableColumnQueries.js +0 -107
  184. package/lib/index.d.ts +0 -5
  185. package/lib/index.d.ts.map +0 -1
  186. package/lib/index.js +0 -7
  187. package/lib/shortestPath.d.ts +0 -10
  188. package/lib/shortestPath.d.ts.map +0 -1
  189. package/lib/shortestPath.js +0 -111
  190. package/lib/utils.d.ts +0 -3
  191. package/lib/utils.d.ts.map +0 -1
  192. package/lib/utils.js +0 -12
  193. package/tests/client/index.d.ts +0 -2
  194. package/tests/client/index.d.ts.map +0 -1
  195. package/tests/client/index.js +0 -80
  196. package/tests/client/index.js.map +0 -1
  197. package/tests/client_only_queries.d.ts +0 -4
  198. package/tests/client_only_queries.d.ts.map +0 -1
  199. package/tests/client_only_queries.js +0 -282
  200. package/tests/config_test/DBoGenerated.d.ts +0 -388
  201. package/tests/config_test/index.js +0 -174
  202. package/tests/config_test/index.js.map +0 -1
  203. package/tests/isomorphic_queries.d.ts +0 -9
  204. package/tests/isomorphic_queries.d.ts.map +0 -1
  205. package/tests/isomorphic_queries.js +0 -773
  206. package/tests/manual_test/DBoGenerated.d.ts +0 -398
  207. package/tests/manual_test/index.d.ts +0 -2
  208. package/tests/manual_test/index.d.ts.map +0 -1
  209. package/tests/manual_test/index.js +0 -65
  210. package/tests/server/dboTypeCheck.d.ts +0 -2
  211. package/tests/server/dboTypeCheck.d.ts.map +0 -1
  212. package/tests/server/dboTypeCheck.js +0 -27
  213. package/tests/server/index.d.ts +0 -2
  214. package/tests/server/index.d.ts.map +0 -1
  215. package/tests/server/index.js +0 -507
  216. package/tests/server/publishTypeCheck.d.ts +0 -2
  217. package/tests/server/publishTypeCheck.d.ts.map +0 -1
  218. package/tests/server/publishTypeCheck.js +0 -130
  219. package/tests/server_only_queries.d.ts +0 -2
  220. package/tests/server_only_queries.d.ts.map +0 -1
  221. package/tests/server_only_queries.js +0 -19
@@ -1,134 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Stefan L. All rights reserved.
4
- * Licensed under the MIT License. See LICENSE in the project root for license information.
5
- *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.PostgresNotifListenManager = void 0;
8
- class PostgresNotifListenManager {
9
- connection;
10
- db_pg;
11
- notifListener;
12
- db_channel_name;
13
- isListening;
14
- client;
15
- static create = (db_pg, notifListener, db_channel_name) => {
16
- const res = new PostgresNotifListenManager(db_pg, notifListener, db_channel_name, true);
17
- return res.init();
18
- };
19
- constructor(db_pg, notifListener, db_channel_name, noInit = false) {
20
- if (!db_pg || !notifListener || !db_channel_name)
21
- throw "PostgresNotifListenManager: db_pg OR notifListener OR db_channel_name MISSING";
22
- this.db_pg = db_pg;
23
- this.notifListener = notifListener;
24
- this.db_channel_name = db_channel_name;
25
- if (!noInit)
26
- this.init();
27
- }
28
- async init() {
29
- this.connection = undefined;
30
- this.isListening = await this.startListening();
31
- return this;
32
- }
33
- isReady() {
34
- return this.isListening;
35
- }
36
- startListening() {
37
- if (!this.db_pg || !this.notifListener)
38
- throw "PostgresNotifListenManager: db_pg OR notifListener missing";
39
- return this.reconnect() // = same as reconnect(0, 1)
40
- .then(obj => {
41
- return obj;
42
- /* TODO: expose this within onReady */
43
- // console.log('psqlWS - Successful Initial Connection');
44
- // obj.done(); - releases the connection
45
- /* HOW TO SEND NOTIF
46
- Used for testing in conjunction with
47
- SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='db-name';
48
-
49
- function sendNotifications() {
50
- if (this.connection) {
51
- this.connection.none('NOTIFY $1~, $2', [this.db_channel_name, 'my payload string'])
52
- .catch(error => {
53
- console.log('psqlWS - Failed to Notify:', error); // unlikely to ever happen
54
- })
55
- }
56
- }
57
- */
58
- })
59
- .catch(error => {
60
- console.log('PostgresNotifListenManager: Failed Initial Connection:', error);
61
- });
62
- }
63
- destroyed = false;
64
- destroy = () => {
65
- if (this.connection) {
66
- this.destroyed = true;
67
- this.connection.done();
68
- this.connection = undefined;
69
- }
70
- };
71
- stopListening = () => {
72
- if (this.db_channel_name) {
73
- if (this.connection)
74
- this.connection.none('UNLISTEN $1~', this.db_channel_name);
75
- if (this.client)
76
- this.client.query('UNLISTEN $1~', this.db_channel_name);
77
- }
78
- };
79
- reconnect(delay = 0, maxAttempts = 0) {
80
- if (!this.db_pg || !this.notifListener)
81
- throw "db_pg OR notifListener missing";
82
- delay = delay > 0 ? parseInt(delay + "") : 0;
83
- maxAttempts = maxAttempts > 0 ? parseInt(maxAttempts + "") : 1;
84
- const setListeners = (client, notifListener, db_channel_name) => {
85
- client.on('notification', notifListener);
86
- this.client = client;
87
- if (!this.connection)
88
- throw "Connection missing";
89
- return this.connection.none(`/* prostgles-server internal query used for subscriptions and schema hot reload */ \nLISTEN $1~`, db_channel_name)
90
- .catch(error => {
91
- console.log("PostgresNotifListenManager: unexpected error: ", error); // unlikely to ever happen
92
- });
93
- }, removeListeners = (client) => {
94
- client.removeListener('notification', this.notifListener);
95
- }, onConnectionLost = (err, e) => {
96
- console.log('PostgresNotifListenManager: Connectivity Problem:', err);
97
- this.connection = undefined; // prevent use of the broken connection
98
- removeListeners(e.client);
99
- if (this.destroyed)
100
- return;
101
- this.reconnect(5000, 10) // retry 10 times, with 5-second intervals
102
- .then(() => {
103
- console.log('PostgresNotifListenManager: Successfully Reconnected');
104
- })
105
- .catch(() => {
106
- // failed after 10 attempts
107
- console.log('PostgresNotifListenManager: Connection Lost Permanently. No more retryies');
108
- // process.exit(); // exiting the process
109
- });
110
- };
111
- return new Promise((resolve, reject) => {
112
- setTimeout(() => {
113
- this.db_pg.connect({ direct: true, onLost: onConnectionLost })
114
- .then(obj => {
115
- this.connection = obj; // global connection is now available
116
- resolve(obj);
117
- return setListeners(obj.client, this.notifListener, this.db_channel_name);
118
- })
119
- .catch(error => {
120
- console.log('PostgresNotifListenManager: Error Connecting:', error);
121
- if (--maxAttempts) {
122
- this.reconnect(delay, maxAttempts)
123
- .then(resolve)
124
- .catch(reject);
125
- }
126
- else {
127
- reject(error);
128
- }
129
- });
130
- }, delay);
131
- });
132
- }
133
- }
134
- exports.PostgresNotifListenManager = PostgresNotifListenManager;
@@ -1,289 +0,0 @@
1
- /// <reference types="node" />
2
- import * as pgPromise from 'pg-promise';
3
- import pg = require('pg-promise/typescript/pg-subset');
4
- import { FileManager, ImageOptions, LocalConfig, S3Config } from "./FileManager/FileManager";
5
- import { SchemaWatch } from "./SchemaWatch";
6
- import { EventTriggerTagFilter } from "./Event_Trigger_Tags";
7
- import AuthHandler, { Auth, SessionUser, AuthRequestParams } from "./AuthHandler";
8
- import TableConfigurator, { TableConfig } from "./TableConfig/TableConfig";
9
- import { DboBuilder, DBHandlerServer, PRGLIOSocket } from "./DboBuilder";
10
- export { DBHandlerServer };
11
- export type PGP = pgPromise.IMain<{}, pg.IClient>;
12
- import { AnyObject, FileColumnConfig } from "prostgles-types";
13
- import { Publish, PublishMethods, PublishParams, PublishParser } from "./PublishParser";
14
- import { DBEventsManager } from "./DBEventsManager";
15
- export type DB = pgPromise.IDatabase<{}, pg.IClient>;
16
- type DbConnection = string | pg.IConnectionParameters<pg.IClient>;
17
- type DbConnectionOpts = pg.IDefaults;
18
- export declare const TABLE_METHODS: readonly ["update", "find", "findOne", "insert", "delete", "upsert"];
19
- export declare const JOIN_TYPES: readonly ["one-many", "many-one", "one-one", "many-many"];
20
- export type Join = {
21
- tables: [string, string];
22
- on: {
23
- [key: string]: string;
24
- }[];
25
- type: typeof JOIN_TYPES[number];
26
- };
27
- export type Joins = Join[] | "inferred";
28
- type Keywords = {
29
- $and: string;
30
- $or: string;
31
- $not: string;
32
- };
33
- export type DeepPartial<T> = {
34
- [P in keyof T]?: DeepPartial<T[P]>;
35
- };
36
- export type ExpressApp = {
37
- get: (routePath: string, cb: (req: {
38
- params: {
39
- name: string;
40
- };
41
- cookies: {
42
- sid: string;
43
- };
44
- }, res: {
45
- redirect: (redirectUrl: string) => any;
46
- contentType: (type: string) => void;
47
- sendFile: (fileName: string, opts?: {
48
- root: string;
49
- }) => any;
50
- status: (code: number) => {
51
- json: (response: AnyObject) => any;
52
- };
53
- }) => any) => any;
54
- _router?: {
55
- stack?: {
56
- handle: Function;
57
- path: undefined;
58
- keys?: any[];
59
- route?: {
60
- path?: string;
61
- };
62
- }[];
63
- };
64
- };
65
- /**
66
- * Allows uploading and downloading files.
67
- * Currently supports only S3.
68
- *
69
- * @description
70
- * Will create a media table that contains file metadata and urls
71
- * Inserting a file into this table through prostgles will upload it to S3 and insert the relevant metadata into the media table
72
- * Requesting a file from HTTP GET {fileUrlPath}/{fileId} will:
73
- * 1. check auth (if provided)
74
- * 2. check the permissions in publish (if provided)
75
- * 3. redirect the request to the signed url (if allowed)
76
- *
77
- * Specifying referencedTables will:
78
- * 1. create a column in that table called media
79
- * 2. create a lookup table lookup_media_{referencedTable} that joins referencedTable to the media table
80
- */
81
- export type FileTableConfig = {
82
- tableName?: string;
83
- /**
84
- * GET path used in serving media. defaults to /${tableName}
85
- */
86
- fileServeRoute?: string;
87
- awsS3Config?: S3Config;
88
- localConfig?: LocalConfig;
89
- /**
90
- * If defined the the files will not be deleted immediately
91
- * Instead, the "deleted" field will be updated to the current timestamp and after the day interval provided in "deleteAfterNDays" the files will be deleted
92
- * "checkIntervalMinutes" is the frequency in hours at which the files ready for deletion are deleted
93
- */
94
- delayedDelete?: {
95
- /**
96
- * Minimum amount of time measured in days for which the files will not be deleted after requesting delete
97
- */
98
- deleteAfterNDays: number;
99
- /**
100
- * How freuquently the files will be checked for deletion delay
101
- */
102
- checkIntervalHours?: number;
103
- };
104
- expressApp: ExpressApp;
105
- referencedTables?: {
106
- [tableName: string]: "one" | "many"
107
- /**
108
- * If defined then will try to create (if necessary) a column in the files table which will reference this table's primary key (must have one)
109
- * */
110
- /**
111
- * If defined then will try to create (if necessary) this column which will reference files_table(id)
112
- * Prostgles UI will use these hints (obtained through tableHandler.getInfo())
113
- * */
114
- | {
115
- type: "column";
116
- referenceColumns: Record<string, FileColumnConfig>;
117
- };
118
- };
119
- imageOptions?: ImageOptions;
120
- };
121
- export type ProstglesInitOptions<S = void, SUser extends SessionUser = SessionUser> = {
122
- dbConnection: DbConnection;
123
- dbOptions?: DbConnectionOpts;
124
- tsGeneratedTypesDir?: string;
125
- io?: any;
126
- publish?: Publish<S, SUser>;
127
- publishMethods?: PublishMethods<S, SUser>;
128
- publishRawSQL?(params: PublishParams<S, SUser>): ((boolean | "*") | Promise<(boolean | "*")>);
129
- joins?: Joins;
130
- schema?: string;
131
- sqlFilePath?: string;
132
- onReady: OnReadyCallback<S>;
133
- transactions?: string | boolean;
134
- wsChannelNamePrefix?: string;
135
- /**
136
- * Use for connection verification. Will disconnect socket on any errors
137
- */
138
- onSocketConnect?: (args: AuthRequestParams<S, SUser> & {
139
- socket: PRGLIOSocket;
140
- }) => void | Promise<void>;
141
- onSocketDisconnect?: (args: AuthRequestParams<S, SUser> & {
142
- socket: PRGLIOSocket;
143
- }) => void | Promise<void>;
144
- auth?: Auth<S, SUser>;
145
- DEBUG_MODE?: boolean;
146
- watchSchemaType?:
147
- /**
148
- * Will set database event trigger for schema changes. Requires superuser
149
- * Default
150
- */
151
- "DDL_trigger"
152
- /**
153
- * Will check client queries for schema changes
154
- * fallback if DDL not possible
155
- */
156
- | "prostgles_queries"
157
- /**
158
- * Schema checked for changes every 'checkIntervalMillis" milliseconds
159
- */
160
- | {
161
- checkIntervalMillis: number;
162
- };
163
- /**
164
- * If truthy then DBoGenerated.d.ts will be updated and "onReady" will be called with new schema on both client and server
165
- */
166
- watchSchema?:
167
- /**
168
- * Will listen only to few events (create table/view)
169
- */
170
- boolean
171
- /**
172
- * Will listen to specified events (or all if "*" is specified)
173
- */
174
- | EventTriggerTagFilter
175
- /**
176
- * Will only rewrite the DBoGenerated.d.ts found in tsGeneratedTypesDir
177
- * This is meant to be used in development when server restarts on file change
178
- */
179
- | "hotReloadMode"
180
- /**
181
- * Function called when schema changes. Nothing else triggered
182
- */
183
- | ((event: {
184
- command: string;
185
- query: string;
186
- }) => void);
187
- keywords?: Keywords;
188
- onNotice?: (notice: AnyObject, message?: string) => void;
189
- fileTable?: FileTableConfig;
190
- /**
191
- * Creates tables and provides UI labels, autocomplete and hints for a given json structure
192
- */
193
- tableConfig?: TableConfig;
194
- tableConfigMigrations?: {
195
- /**
196
- * If false then prostgles won't start on any tableConfig error
197
- * true by default
198
- */
199
- silentFail?: boolean;
200
- version: number;
201
- /** Table that will contain the schema version number and the tableConfig
202
- * Defaults to schema_version
203
- */
204
- versionTableName?: string;
205
- /**
206
- * Script run before tableConfig is loaded IF an older schema_version is present
207
- */
208
- onMigrate: (args: {
209
- db: DB;
210
- oldVersion: number | undefined;
211
- getConstraints: (table: string, column?: string, types?: ColConstraint["type"][]) => Promise<ColConstraint[]>;
212
- }) => void;
213
- };
214
- };
215
- export type OnReady = {
216
- dbo: DBHandlerServer;
217
- db: DB;
218
- };
219
- type OnReadyCallback<S = void> = (dbo: DBOFullyTyped<S>, db: DB) => any;
220
- export type InitResult = {
221
- db: DBOFullyTyped;
222
- _db: DB;
223
- pgp: PGP;
224
- io?: any;
225
- destroy: () => Promise<boolean>;
226
- /**
227
- * Generated database public schema TS types for all tables and views
228
- */
229
- getTSSchema: () => string;
230
- update: (newOpts: Pick<ProstglesInitOptions, "fileTable">) => Promise<void>;
231
- restart: () => Promise<InitResult>;
232
- };
233
- import { DBOFullyTyped } from "./DBSchemaBuilder";
234
- import { ColConstraint } from "./TableConfig/getConstraintDefinitionQueries";
235
- export declare class Prostgles {
236
- opts: ProstglesInitOptions;
237
- db?: DB;
238
- pgp?: PGP;
239
- dbo?: DBHandlerServer;
240
- _dboBuilder?: DboBuilder;
241
- get dboBuilder(): DboBuilder;
242
- set dboBuilder(d: DboBuilder);
243
- publishParser?: PublishParser;
244
- authHandler?: AuthHandler;
245
- schemaWatch?: SchemaWatch;
246
- keywords: {
247
- $filter: string;
248
- $and: string;
249
- $or: string;
250
- $not: string;
251
- };
252
- private loaded;
253
- dbEventsManager?: DBEventsManager;
254
- fileManager?: FileManager;
255
- tableConfigurator?: TableConfigurator;
256
- isMedia(tableName: string): boolean;
257
- constructor(params: ProstglesInitOptions);
258
- destroyed: boolean;
259
- onSchemaChange(event: {
260
- command: string;
261
- query: string;
262
- }): Promise<void>;
263
- checkDb(): void;
264
- getTSFileName(): {
265
- fileName: string;
266
- fullPath: string;
267
- };
268
- private getFileText;
269
- getTSFileContent: () => string;
270
- /**
271
- * Will write the Schema Typescript definitions to file (tsGeneratedTypesDir)
272
- */
273
- writeDBSchema(force?: boolean): void;
274
- /**
275
- * Will re-create the dbo object
276
- */
277
- refreshDBO: () => Promise<DBHandlerServer>;
278
- private initWatchSchema;
279
- initFileTable: () => Promise<void>;
280
- isSuperUser: boolean;
281
- schema_checkIntervalMillis?: NodeJS.Timeout;
282
- init(onReady: OnReadyCallback, reason: string): Promise<InitResult>;
283
- runSQLFile(filePath: string): Promise<any[][]>;
284
- connectedSockets: any[];
285
- setSocketEvents(): Promise<void>;
286
- pushSocketSchema: (socket: any) => Promise<void>;
287
- }
288
- export declare function isSuperUser(db: DB): Promise<boolean>;
289
- //# sourceMappingURL=Prostgles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Prostgles.d.ts","sourceRoot":"","sources":["Prostgles.ts"],"names":[],"mappings":"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"}