prostgles-server 3.0.87 → 3.0.89
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/.eslintignore +5 -0
- package/.eslintrc.json +30 -0
- package/dist/DBEventsManager.js +1 -1
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DBSchemaBuilder.js +6 -6
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.js +9 -9
- package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +8 -7
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js.map +1 -1
- package/dist/DboBuilder/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler.js +18 -20
- package/dist/DboBuilder/TableHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler.d.ts +0 -10
- package/dist/DboBuilder/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler.js +50 -63
- package/dist/DboBuilder/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/delete.js +0 -1
- package/dist/DboBuilder/delete.js.map +1 -1
- package/dist/DboBuilder/getColumns.js +5 -4
- package/dist/DboBuilder/getColumns.js.map +1 -1
- package/dist/DboBuilder/getCondition.d.ts.map +1 -1
- package/dist/DboBuilder/getCondition.js +6 -6
- package/dist/DboBuilder/getCondition.js.map +1 -1
- package/dist/DboBuilder/insert.js +15 -16
- package/dist/DboBuilder/insert.js.map +1 -1
- package/dist/DboBuilder/insertDataParse.d.ts.map +1 -1
- package/dist/DboBuilder/insertDataParse.js +9 -10
- package/dist/DboBuilder/insertDataParse.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +2 -2
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/DboBuilder/runSQL.d.ts.map +1 -1
- package/dist/DboBuilder/runSQL.js +5 -5
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/DboBuilder/subscribe.js +3 -3
- package/dist/DboBuilder/subscribe.js.map +1 -1
- package/dist/DboBuilder/update.js +5 -6
- package/dist/DboBuilder/update.js.map +1 -1
- package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
- package/dist/DboBuilder/uploadFile.js +1 -1
- package/dist/DboBuilder/uploadFile.js.map +1 -1
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +13 -14
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts.map +1 -1
- package/dist/FileManager.js +3 -5
- package/dist/FileManager.js.map +1 -1
- package/dist/Filtering.js +7 -7
- package/dist/Filtering.js.map +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts +3 -0
- package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -0
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js +295 -0
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -0
- package/dist/JSONBValidation/validation.d.ts +108 -0
- package/dist/JSONBValidation/validation.d.ts.map +1 -0
- package/dist/JSONBValidation/validation.js +222 -0
- package/dist/JSONBValidation/validation.js.map +1 -0
- package/dist/PostgresNotifListenManager.js +1 -1
- package/dist/PostgresNotifListenManager.js.map +1 -1
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +20 -20
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/initPubSubManager.js +10 -7
- package/dist/PubSubManager/initPubSubManager.js.map +1 -1
- package/dist/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser.js +122 -125
- package/dist/PublishParser.js.map +1 -1
- package/dist/SyncReplication.d.ts.map +1 -1
- package/dist/SyncReplication.js +19 -16
- package/dist/SyncReplication.js.map +1 -1
- package/dist/TableConfig.d.ts +9 -5
- package/dist/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig.js +33 -12
- package/dist/TableConfig.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/shortestPath.js +11 -11
- package/dist/shortestPath.js.map +1 -1
- package/dist/validation.d.ts +50 -24
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +177 -53
- package/dist/validation.js.map +1 -1
- package/lib/AuthHandler.d.ts +11 -11
- package/lib/AuthHandler.d.ts.map +1 -1
- package/lib/DBEventsManager.js +1 -1
- package/lib/DBEventsManager.ts +1 -1
- package/lib/DBSchemaBuilder.d.ts +3 -3
- package/lib/DBSchemaBuilder.d.ts.map +1 -1
- package/lib/DBSchemaBuilder.js +6 -6
- package/lib/DBSchemaBuilder.ts +10 -12
- package/lib/DboBuilder/QueryBuilder/Functions.d.ts +3 -3
- package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
- package/lib/DboBuilder/QueryBuilder/Functions.js +9 -9
- package/lib/DboBuilder/QueryBuilder/Functions.ts +13 -13
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +3 -3
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +8 -7
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +12 -12
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -1
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.ts +5 -5
- package/lib/DboBuilder/TableHandler.d.ts +1 -1
- package/lib/DboBuilder/TableHandler.d.ts.map +1 -1
- package/lib/DboBuilder/TableHandler.js +18 -20
- package/lib/DboBuilder/TableHandler.ts +21 -20
- package/lib/DboBuilder/ViewHandler.d.ts +1 -11
- package/lib/DboBuilder/ViewHandler.d.ts.map +1 -1
- package/lib/DboBuilder/ViewHandler.js +50 -63
- package/lib/DboBuilder/ViewHandler.ts +68 -97
- package/lib/DboBuilder/delete.js +0 -1
- package/lib/DboBuilder/delete.ts +1 -1
- package/lib/DboBuilder/getColumns.js +5 -4
- package/lib/DboBuilder/getColumns.ts +5 -5
- package/lib/DboBuilder/getCondition.d.ts.map +1 -1
- package/lib/DboBuilder/getCondition.js +6 -6
- package/lib/DboBuilder/getCondition.ts +7 -7
- package/lib/DboBuilder/insert.js +15 -16
- package/lib/DboBuilder/insert.ts +18 -18
- package/lib/DboBuilder/insertDataParse.d.ts.map +1 -1
- package/lib/DboBuilder/insertDataParse.js +9 -10
- package/lib/DboBuilder/insertDataParse.ts +42 -43
- package/lib/DboBuilder/parseUpdateRules.js +2 -2
- package/lib/DboBuilder/parseUpdateRules.ts +2 -2
- package/lib/DboBuilder/runSQL.d.ts.map +1 -1
- package/lib/DboBuilder/runSQL.js +5 -5
- package/lib/DboBuilder/runSQL.ts +6 -6
- package/lib/DboBuilder/subscribe.d.ts +1 -1
- package/lib/DboBuilder/subscribe.d.ts.map +1 -1
- package/lib/DboBuilder/subscribe.js +3 -3
- package/lib/DboBuilder/subscribe.ts +3 -3
- package/lib/DboBuilder/update.js +5 -6
- package/lib/DboBuilder/update.ts +6 -6
- package/lib/DboBuilder/uploadFile.d.ts.map +1 -1
- package/lib/DboBuilder/uploadFile.js +1 -1
- package/lib/DboBuilder/uploadFile.ts +2 -2
- package/lib/DboBuilder.d.ts +22 -22
- package/lib/DboBuilder.d.ts.map +1 -1
- package/lib/DboBuilder.js +13 -14
- package/lib/DboBuilder.ts +19 -19
- package/lib/FileManager.d.ts +6 -6
- package/lib/FileManager.d.ts.map +1 -1
- package/lib/FileManager.js +3 -5
- package/lib/FileManager.ts +7 -6
- package/lib/Filtering.d.ts +1 -1
- package/lib/Filtering.d.ts.map +1 -1
- package/lib/Filtering.js +7 -7
- package/lib/Filtering.ts +7 -7
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +3 -0
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -0
- package/lib/JSONBValidation/validate_jsonb_schema_sql.js +294 -0
- package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +293 -0
- package/lib/JSONBValidation/validation.d.ts +108 -0
- package/lib/JSONBValidation/validation.d.ts.map +1 -0
- package/lib/JSONBValidation/validation.js +221 -0
- package/lib/JSONBValidation/validation.ts +332 -0
- package/lib/PostgresNotifListenManager.d.ts +1 -1
- package/lib/PostgresNotifListenManager.d.ts.map +1 -1
- package/lib/PostgresNotifListenManager.js +1 -1
- package/lib/PostgresNotifListenManager.ts +1 -1
- package/lib/Prostgles.d.ts +14 -14
- package/lib/Prostgles.d.ts.map +1 -1
- package/lib/Prostgles.js +20 -20
- package/lib/Prostgles.ts +22 -21
- package/lib/PubSubManager/PubSubManager.d.ts +7 -7
- package/lib/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/lib/PubSubManager/initPubSubManager.d.ts.map +1 -1
- package/lib/PubSubManager/initPubSubManager.js +10 -7
- package/lib/PubSubManager/initPubSubManager.ts +12 -7
- package/lib/PublishParser.d.ts +32 -32
- package/lib/PublishParser.d.ts.map +1 -1
- package/lib/PublishParser.js +121 -124
- package/lib/PublishParser.ts +125 -127
- package/lib/SchemaWatch.d.ts +1 -1
- package/lib/SchemaWatch.d.ts.map +1 -1
- package/lib/SyncReplication.d.ts +5 -5
- package/lib/SyncReplication.d.ts.map +1 -1
- package/lib/SyncReplication.js +19 -16
- package/lib/SyncReplication.ts +470 -471
- package/lib/TableConfig.d.ts +28 -24
- package/lib/TableConfig.d.ts.map +1 -1
- package/lib/TableConfig.js +33 -12
- package/lib/TableConfig.ts +55 -21
- package/lib/index.js +1 -1
- package/lib/index.ts +1 -1
- package/lib/shortestPath.d.ts +1 -1
- package/lib/shortestPath.d.ts.map +1 -1
- package/lib/shortestPath.js +11 -11
- package/lib/shortestPath.ts +11 -11
- package/package.json +10 -6
- package/tests/client/PID.txt +1 -1
- package/tests/client/package-lock.json +53 -31
- package/tests/client/package.json +4 -1
- package/tests/isomorphic_queries.d.ts +4 -1
- package/tests/isomorphic_queries.d.ts.map +1 -1
- package/tests/isomorphic_queries.js +38 -30
- package/tests/isomorphic_queries.ts +40 -33
- package/tests/server/DBoGenerated.d.ts +1 -1
- package/tests/server/index.js +8 -7
- package/tests/server/index.ts +10 -8
- package/tests/server/package-lock.json +76 -58
- package/tests/server/package.json +2 -2
- package/tests/server/server.ts +2 -3
- package/lib/validation.d.ts +0 -100
- package/lib/validation.d.ts.map +0 -1
- package/lib/validation.js +0 -280
- package/lib/validation.ts +0 -360
package/lib/Prostgles.ts
CHANGED
|
@@ -9,10 +9,8 @@ import pg = require('pg-promise/typescript/pg-subset');
|
|
|
9
9
|
import FileManager, { ImageOptions, LocalConfig, S3Config } from "./FileManager";
|
|
10
10
|
import { SchemaWatch } from "./SchemaWatch";
|
|
11
11
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
import AuthHandler, { Auth, SessionUser, AuthRequestParams } from "./AuthHandler";
|
|
15
|
-
console.log("Add a basic auth mode where user and sessions table are created");
|
|
12
|
+
const { version } = require('../package.json');
|
|
13
|
+
import AuthHandler, { Auth, SessionUser, AuthRequestParams } from "./AuthHandler";
|
|
16
14
|
|
|
17
15
|
import TableConfigurator, { TableConfig } from "./TableConfig";
|
|
18
16
|
|
|
@@ -31,7 +29,7 @@ type DbConnection = string | pg.IConnectionParameters<pg.IClient>;
|
|
|
31
29
|
type DbConnectionOpts = pg.IDefaults;
|
|
32
30
|
export const TABLE_METHODS = ["update", "find", "findOne", "insert", "delete", "upsert"] as const;
|
|
33
31
|
function getDbConnection(dbConnection: DbConnection, options: DbConnectionOpts | undefined, debugQueries = false, onNotice: ProstglesInitOptions["onNotice"]): { db: DB, pgp: PGP } {
|
|
34
|
-
|
|
32
|
+
const pgp: PGP = pgPromise({
|
|
35
33
|
|
|
36
34
|
promiseLib: promise,
|
|
37
35
|
...(debugQueries ? {
|
|
@@ -48,7 +46,8 @@ function getDbConnection(dbConnection: DbConnection, options: DbConnectionOpts |
|
|
|
48
46
|
}
|
|
49
47
|
} : {}),
|
|
50
48
|
...((onNotice || debugQueries) ? {
|
|
51
|
-
connect: function (client, dc,
|
|
49
|
+
connect: function ({ client, dc, useCount }) {
|
|
50
|
+
const isFresh = !useCount;
|
|
52
51
|
if (isFresh && !client.listeners('notice').length) {
|
|
53
52
|
client.on('notice', function (msg) {
|
|
54
53
|
if (onNotice) {
|
|
@@ -333,7 +332,9 @@ export class Prostgles {
|
|
|
333
332
|
port: 5432,
|
|
334
333
|
application_name: "prostgles_app"
|
|
335
334
|
},
|
|
336
|
-
onReady: () => {
|
|
335
|
+
onReady: () => {
|
|
336
|
+
//empty
|
|
337
|
+
},
|
|
337
338
|
schema: "public",
|
|
338
339
|
watchSchema: false,
|
|
339
340
|
watchSchemaType: "DDL_trigger",
|
|
@@ -381,7 +382,7 @@ export class Prostgles {
|
|
|
381
382
|
if (!params.io) console.warn("io missing. WebSockets will not be set up");
|
|
382
383
|
|
|
383
384
|
// TODO: find an exact keyof T<->arr TS matching method
|
|
384
|
-
|
|
385
|
+
const config: Array<keyof ProstglesInitOptions> = [
|
|
385
386
|
"transactions", "joins", "tsGeneratedTypesDir",
|
|
386
387
|
"onReady", "dbConnection", "dbOptions", "publishMethods", "io",
|
|
387
388
|
"publish", "schema", "publishRawSQL", "wsChannelNamePrefix", "onSocketConnect",
|
|
@@ -715,7 +716,7 @@ export class Prostgles {
|
|
|
715
716
|
|
|
716
717
|
if (!this.dbo) throw "dbo missing";
|
|
717
718
|
|
|
718
|
-
|
|
719
|
+
const publishParser = new PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db!, this as any);
|
|
719
720
|
this.publishParser = publishParser;
|
|
720
721
|
|
|
721
722
|
if (!this.opts.io) return;
|
|
@@ -739,7 +740,7 @@ export class Prostgles {
|
|
|
739
740
|
this.connectedSockets.push(socket);
|
|
740
741
|
|
|
741
742
|
if (!this.db || !this.dbo) throw new Error("db/dbo missing");
|
|
742
|
-
|
|
743
|
+
const { dbo, db } = this;
|
|
743
744
|
|
|
744
745
|
try {
|
|
745
746
|
if (this.opts.onSocketConnect) {
|
|
@@ -759,7 +760,7 @@ export class Prostgles {
|
|
|
759
760
|
Checks request against publish and if OK run it with relevant publish functions. Local (server) requests do not check the policy
|
|
760
761
|
*/
|
|
761
762
|
socket.removeAllListeners(CHANNELS.DEFAULT)
|
|
762
|
-
socket.on(CHANNELS.DEFAULT, async ({ tableName, command, param1, param2, param3 }: SocketRequestParams, cb = (...
|
|
763
|
+
socket.on(CHANNELS.DEFAULT, async ({ tableName, command, param1, param2, param3 }: SocketRequestParams, cb = (..._callback: any[]) => { /* Empty */}) => {
|
|
763
764
|
|
|
764
765
|
try { /* Channel name will only include client-sent params so we ignore table_rules enforced params */
|
|
765
766
|
if (!socket || !this.authHandler || !this.publishParser || !this.dbo) {
|
|
@@ -768,9 +769,9 @@ export class Prostgles {
|
|
|
768
769
|
}
|
|
769
770
|
|
|
770
771
|
const clientInfo = await this.authHandler.getClientInfo({ socket });
|
|
771
|
-
|
|
772
|
+
const valid_table_command_rules = await this.publishParser.getValidatedRequestRule({ tableName, command, localParams: { socket } }, clientInfo);
|
|
772
773
|
if (valid_table_command_rules) {
|
|
773
|
-
|
|
774
|
+
const res = await this.dbo[tableName][command]!(param1, param2, param3, valid_table_command_rules, { socket, isRemoteRequest: true });
|
|
774
775
|
cb(null, res);
|
|
775
776
|
} else throw `Invalid OR disallowed request: ${tableName}.${command} `;
|
|
776
777
|
|
|
@@ -791,11 +792,11 @@ export class Prostgles {
|
|
|
791
792
|
if (this.opts.onSocketDisconnect) {
|
|
792
793
|
const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); }
|
|
793
794
|
this.opts.onSocketDisconnect({ socket, dbo: dbo as any, db, getUser });
|
|
794
|
-
}
|
|
795
|
+
}
|
|
795
796
|
});
|
|
796
797
|
|
|
797
798
|
socket.removeAllListeners(CHANNELS.METHOD)
|
|
798
|
-
socket.on(CHANNELS.METHOD, async ({ method, params }: SocketMethodRequest, cb = (...
|
|
799
|
+
socket.on(CHANNELS.METHOD, async ({ method, params }: SocketMethodRequest, cb = (..._callback: any) => { /* Empty */ }) => {
|
|
799
800
|
try {
|
|
800
801
|
const methods = await this.publishParser?.getAllowedMethods(socket);
|
|
801
802
|
|
|
@@ -827,13 +828,13 @@ export class Prostgles {
|
|
|
827
828
|
pushSocketSchema = async (socket: any) => {
|
|
828
829
|
|
|
829
830
|
try {
|
|
830
|
-
|
|
831
|
+
const { auth, userData } = await this.authHandler?.makeSocketAuth(socket) || {};
|
|
831
832
|
|
|
832
833
|
// let needType = this.publishRawSQL && typeof this.publishRawSQL === "function";
|
|
833
834
|
// let DATA_TYPES = !needType? [] : await this.db.any("SELECT oid, typname FROM pg_type");
|
|
834
835
|
// let USER_TABLES = !needType? [] : await this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables");
|
|
835
836
|
|
|
836
|
-
const {
|
|
837
|
+
const { db, publishParser } = this;
|
|
837
838
|
let fullSchema: {
|
|
838
839
|
schema: TableSchemaForClient;
|
|
839
840
|
tables: DBSchemaTable[];
|
|
@@ -856,13 +857,13 @@ export class Prostgles {
|
|
|
856
857
|
if (this.opts.publishRawSQL && typeof this.opts.publishRawSQL === "function") {
|
|
857
858
|
const canRunSQL = async () => {
|
|
858
859
|
const publishParams = await this.publishParser?.getPublishParams({ socket })
|
|
859
|
-
|
|
860
|
+
const res = await this.opts.publishRawSQL?.(publishParams as any);
|
|
860
861
|
return Boolean(res && typeof res === "boolean" || res === "*");
|
|
861
862
|
}
|
|
862
863
|
|
|
863
864
|
if (await canRunSQL()) {
|
|
864
865
|
socket.removeAllListeners(CHANNELS.SQL)
|
|
865
|
-
socket.on(CHANNELS.SQL, async ({ query, params, options }: SQLRequest, cb = (...
|
|
866
|
+
socket.on(CHANNELS.SQL, async ({ query, params, options }: SQLRequest, cb = (..._callback: any) => { /* Empty */ }) => {
|
|
866
867
|
|
|
867
868
|
if (!this.dbo?.sql) throw "Internal error: sql handler missing";
|
|
868
869
|
|
|
@@ -881,9 +882,9 @@ export class Prostgles {
|
|
|
881
882
|
}
|
|
882
883
|
|
|
883
884
|
const { schema, tables } = fullSchema ?? { schema: {}, tables: [] };
|
|
884
|
-
|
|
885
|
+
const joinTables2: string[][] = [];
|
|
885
886
|
if (this.opts.joins) {
|
|
886
|
-
|
|
887
|
+
const _joinTables2 = this.dboBuilder.getJoinPaths()
|
|
887
888
|
.filter(jp =>
|
|
888
889
|
![jp.t1, jp.t2].find(t => !schema[t] || !schema[t].findOne)
|
|
889
890
|
).map(jp => [jp.t1, jp.t2].sort());
|
|
@@ -8,8 +8,8 @@ import { TableRule } from "../PublishParser";
|
|
|
8
8
|
export declare const asValue: (v: any) => string;
|
|
9
9
|
export declare const DEFAULT_SYNC_BATCH_SIZE = 50;
|
|
10
10
|
export declare const log: (...args: any[]) => void;
|
|
11
|
-
export
|
|
12
|
-
export
|
|
11
|
+
export type BasicCallback = (err?: any, res?: any) => void;
|
|
12
|
+
export type SyncParams = {
|
|
13
13
|
socket_id: string;
|
|
14
14
|
channel_name: string;
|
|
15
15
|
table_name: string;
|
|
@@ -29,7 +29,7 @@ export declare type SyncParams = {
|
|
|
29
29
|
last_synced: number;
|
|
30
30
|
is_syncing: boolean;
|
|
31
31
|
};
|
|
32
|
-
|
|
32
|
+
type AddSyncParams = {
|
|
33
33
|
socket: any;
|
|
34
34
|
table_info: TableInfo;
|
|
35
35
|
table_rules: TableRule;
|
|
@@ -43,7 +43,7 @@ declare type AddSyncParams = {
|
|
|
43
43
|
condition: string;
|
|
44
44
|
throttle?: number;
|
|
45
45
|
};
|
|
46
|
-
export
|
|
46
|
+
export type ViewSubscriptionOptions = {
|
|
47
47
|
viewName: string;
|
|
48
48
|
definition: string;
|
|
49
49
|
relatedTables: {
|
|
@@ -52,7 +52,7 @@ export declare type ViewSubscriptionOptions = {
|
|
|
52
52
|
condition: string;
|
|
53
53
|
}[];
|
|
54
54
|
};
|
|
55
|
-
|
|
55
|
+
type SubscriptionParams = {
|
|
56
56
|
socket_id?: string;
|
|
57
57
|
channel_name: string;
|
|
58
58
|
table_name: string;
|
|
@@ -72,10 +72,10 @@ declare type SubscriptionParams = {
|
|
|
72
72
|
is_throttling?: any;
|
|
73
73
|
is_ready?: boolean;
|
|
74
74
|
};
|
|
75
|
-
|
|
75
|
+
type AddSubscriptionParams = SubscriptionParams & {
|
|
76
76
|
condition: string;
|
|
77
77
|
};
|
|
78
|
-
export
|
|
78
|
+
export type PubSubManagerOptions = {
|
|
79
79
|
dboBuilder: DboBuilder;
|
|
80
80
|
wsChannelNamePrefix?: string;
|
|
81
81
|
pgChannelName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSubManager.d.ts","sourceRoot":"","sources":["PubSubManager.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,EAAE,EAAe,MAAM,cAAc,CAAC;AAO/C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAU,GAAG,EAAW,SAAS,EAAW,MAAM,iBAAiB,CAAC;AAEtG,OAAO,EAAE,iBAAiB,EAAY,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQ7C,eAAO,MAAM,OAAO,MAAO,GAAG,WAA6B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,GAAG,YAAa,GAAG,EAAE,SAIjC,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"PubSubManager.d.ts","sourceRoot":"","sources":["PubSubManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initPubSubManager.d.ts","sourceRoot":"","sources":["initPubSubManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"initPubSubManager.d.ts","sourceRoot":"","sources":["initPubSubManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAM9D,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA4oB/F"}
|
|
@@ -4,6 +4,7 @@ exports.initPubSubManager = void 0;
|
|
|
4
4
|
const PostgresNotifListenManager_1 = require("../PostgresNotifListenManager");
|
|
5
5
|
const PubSubManager_1 = require("./PubSubManager");
|
|
6
6
|
const REALTIME_TRIGGER_CHECK_QUERY = "prostgles-server internal query used to manage realtime triggers";
|
|
7
|
+
const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
|
|
7
8
|
async function initPubSubManager() {
|
|
8
9
|
if (!this.canContinue())
|
|
9
10
|
return undefined;
|
|
@@ -30,14 +31,14 @@ async function initPubSubManager() {
|
|
|
30
31
|
IF EXISTS (SELECT 1 FROM information_schema.schemata WHERE schema_name = 'prostgles') THEN
|
|
31
32
|
|
|
32
33
|
IF
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
NOT EXISTS (
|
|
35
|
+
SELECT 1
|
|
36
|
+
FROM information_schema.tables
|
|
37
|
+
WHERE table_schema = 'prostgles'
|
|
38
|
+
AND table_name = 'versions'
|
|
39
|
+
)
|
|
39
40
|
THEN
|
|
40
|
-
|
|
41
|
+
DROP SCHEMA IF EXISTS prostgles CASCADE;
|
|
41
42
|
ELSE
|
|
42
43
|
IF NOT EXISTS(SELECT 1 FROM prostgles.versions WHERE version >= ${schema_version}) THEN
|
|
43
44
|
DROP SCHEMA IF EXISTS prostgles CASCADE;
|
|
@@ -58,6 +59,8 @@ async function initPubSubManager() {
|
|
|
58
59
|
);
|
|
59
60
|
INSERT INTO prostgles.versions(version) VALUES(${schema_version}) ON CONFLICT DO NOTHING;
|
|
60
61
|
|
|
62
|
+
${validate_jsonb_schema_sql_1.validate_jsonb_schema_sql}
|
|
63
|
+
|
|
61
64
|
CREATE OR REPLACE FUNCTION prostgles.random_string(length INTEGER DEFAULT 33) RETURNS TEXT AS $$
|
|
62
65
|
DECLARE
|
|
63
66
|
chars TEXT[] := '{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}';
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { PostgresNotifListenManager } from "../PostgresNotifListenManager";
|
|
2
2
|
import { asValue, log, PubSubManager } from "./PubSubManager";
|
|
3
3
|
const REALTIME_TRIGGER_CHECK_QUERY = "prostgles-server internal query used to manage realtime triggers" as const;
|
|
4
|
+
import * as fs from "fs";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import { validate_jsonb_schema_sql } from "../JSONBValidation/validate_jsonb_schema_sql";
|
|
4
7
|
|
|
5
8
|
export async function initPubSubManager(this: PubSubManager): Promise<PubSubManager | undefined> {
|
|
6
9
|
if (!this.canContinue()) return undefined;
|
|
@@ -29,14 +32,14 @@ export async function initPubSubManager(this: PubSubManager): Promise<PubSubMana
|
|
|
29
32
|
IF EXISTS (SELECT 1 FROM information_schema.schemata WHERE schema_name = 'prostgles') THEN
|
|
30
33
|
|
|
31
34
|
IF
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
NOT EXISTS (
|
|
36
|
+
SELECT 1
|
|
37
|
+
FROM information_schema.tables
|
|
38
|
+
WHERE table_schema = 'prostgles'
|
|
39
|
+
AND table_name = 'versions'
|
|
40
|
+
)
|
|
38
41
|
THEN
|
|
39
|
-
|
|
42
|
+
DROP SCHEMA IF EXISTS prostgles CASCADE;
|
|
40
43
|
ELSE
|
|
41
44
|
IF NOT EXISTS(SELECT 1 FROM prostgles.versions WHERE version >= ${schema_version}) THEN
|
|
42
45
|
DROP SCHEMA IF EXISTS prostgles CASCADE;
|
|
@@ -57,6 +60,8 @@ export async function initPubSubManager(this: PubSubManager): Promise<PubSubMana
|
|
|
57
60
|
);
|
|
58
61
|
INSERT INTO prostgles.versions(version) VALUES(${schema_version}) ON CONFLICT DO NOTHING;
|
|
59
62
|
|
|
63
|
+
${validate_jsonb_schema_sql}
|
|
64
|
+
|
|
60
65
|
CREATE OR REPLACE FUNCTION prostgles.random_string(length INTEGER DEFAULT 33) RETURNS TEXT AS $$
|
|
61
66
|
DECLARE
|
|
62
67
|
chars TEXT[] := '{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}';
|
package/lib/PublishParser.d.ts
CHANGED
|
@@ -3,56 +3,56 @@ import { AuthResult, SessionUser } from "./AuthHandler";
|
|
|
3
3
|
import { CommonTableRules, LocalParams, PRGLIOSocket, TableOrViewInfo, TableSchemaColumn } from "./DboBuilder";
|
|
4
4
|
import { Prostgles, DBHandlerServer, DB } from "./Prostgles";
|
|
5
5
|
import type { DBOFullyTyped, PublishFullyTyped } from "./DBSchemaBuilder";
|
|
6
|
-
export
|
|
6
|
+
export type PublishMethods<S = void, SUser extends SessionUser = SessionUser> = (params: PublishParams<S, SUser>) => {
|
|
7
7
|
[key: string]: Method;
|
|
8
8
|
} | Promise<{
|
|
9
9
|
[key: string]: Method;
|
|
10
10
|
} | null>;
|
|
11
|
-
export
|
|
12
|
-
|
|
11
|
+
export type Awaitable<T> = T | Promise<T>;
|
|
12
|
+
type Request = {
|
|
13
13
|
socket?: any;
|
|
14
14
|
httpReq?: any;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
type DboTable = Request & {
|
|
17
17
|
tableName: string;
|
|
18
18
|
localParams: LocalParams;
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
type DboTableCommand = Request & DboTable & {
|
|
21
21
|
command: string;
|
|
22
22
|
localParams: LocalParams;
|
|
23
23
|
};
|
|
24
24
|
import { FieldFilter, SelectParams } from "prostgles-types";
|
|
25
|
-
export
|
|
25
|
+
export type InsertRequestData = {
|
|
26
26
|
data: object | object[];
|
|
27
27
|
returning: FieldFilter;
|
|
28
28
|
};
|
|
29
|
-
export
|
|
29
|
+
export type SelectRequestData = {
|
|
30
30
|
filter: object;
|
|
31
31
|
params: SelectParams;
|
|
32
32
|
};
|
|
33
|
-
export
|
|
33
|
+
export type DeleteRequestData = {
|
|
34
34
|
filter: object;
|
|
35
35
|
returning: FieldFilter;
|
|
36
36
|
};
|
|
37
|
-
export
|
|
37
|
+
export type UpdateRequestDataOne<R extends AnyObject> = {
|
|
38
38
|
filter: FullFilter<R>;
|
|
39
39
|
data: Partial<R>;
|
|
40
40
|
returning: FieldFilter<R>;
|
|
41
41
|
};
|
|
42
|
-
export
|
|
42
|
+
export type UpdateReq<R extends AnyObject> = {
|
|
43
43
|
filter: FullFilter<R>;
|
|
44
44
|
data: Partial<R>;
|
|
45
45
|
};
|
|
46
|
-
export
|
|
46
|
+
export type UpdateRequestDataBatch<R extends AnyObject> = {
|
|
47
47
|
data: UpdateReq<R>[];
|
|
48
48
|
};
|
|
49
|
-
export
|
|
50
|
-
export
|
|
51
|
-
export
|
|
49
|
+
export type UpdateRequestData<R extends AnyObject = AnyObject> = UpdateRequestDataOne<R> | UpdateRequestDataBatch<R>;
|
|
50
|
+
export type ValidateRow<R extends AnyObject = AnyObject, S = void> = (row: R, dbx: DBOFullyTyped<S>) => R | Promise<R>;
|
|
51
|
+
export type ValidateUpdateRow<R extends AnyObject = AnyObject, S = void> = (args: {
|
|
52
52
|
update: Partial<R>;
|
|
53
53
|
filter: FullFilter<R>;
|
|
54
54
|
}, dbx: DBOFullyTyped<S>) => R | Promise<R>;
|
|
55
|
-
export
|
|
55
|
+
export type SelectRule<Cols extends AnyObject = AnyObject, S = void> = {
|
|
56
56
|
/**
|
|
57
57
|
* Fields allowed to be selected.
|
|
58
58
|
* Tip: Use false to exclude field
|
|
@@ -80,7 +80,7 @@ export declare type SelectRule<Cols extends AnyObject = AnyObject, S = void> = {
|
|
|
80
80
|
*/
|
|
81
81
|
validate?(args: SelectRequestData): SelectRequestData | Promise<SelectRequestData>;
|
|
82
82
|
};
|
|
83
|
-
export
|
|
83
|
+
export type InsertRule<Cols extends AnyObject = AnyObject, S = void> = {
|
|
84
84
|
/**
|
|
85
85
|
* Fields allowed to be inserted. Tip: Use false to exclude field
|
|
86
86
|
*/
|
|
@@ -107,7 +107,7 @@ export declare type InsertRule<Cols extends AnyObject = AnyObject, S = void> = {
|
|
|
107
107
|
*/
|
|
108
108
|
postValidate?: ValidateRow<Required<Cols>, S>;
|
|
109
109
|
};
|
|
110
|
-
export
|
|
110
|
+
export type UpdateRule<Cols extends AnyObject = AnyObject, S = void> = {
|
|
111
111
|
/**
|
|
112
112
|
* Fields allowed to be updated. Tip: Use false/0 to exclude field
|
|
113
113
|
*/
|
|
@@ -150,7 +150,7 @@ export declare type UpdateRule<Cols extends AnyObject = AnyObject, S = void> = {
|
|
|
150
150
|
*/
|
|
151
151
|
postValidate?: ValidateRow<Required<Cols>, S>;
|
|
152
152
|
};
|
|
153
|
-
export
|
|
153
|
+
export type DeleteRule<Cols extends AnyObject = AnyObject, S = void> = {
|
|
154
154
|
/**
|
|
155
155
|
* Filter added to every query (e.g. user_id) to restrict access
|
|
156
156
|
*/
|
|
@@ -168,7 +168,7 @@ export declare type DeleteRule<Cols extends AnyObject = AnyObject, S = void> = {
|
|
|
168
168
|
*/
|
|
169
169
|
validate?(...args: any[]): Awaitable<void>;
|
|
170
170
|
};
|
|
171
|
-
export
|
|
171
|
+
export type SyncRule<Cols extends AnyObject = AnyObject> = {
|
|
172
172
|
/**
|
|
173
173
|
* Primary keys used in updating data
|
|
174
174
|
*/
|
|
@@ -190,35 +190,35 @@ export declare type SyncRule<Cols extends AnyObject = AnyObject> = {
|
|
|
190
190
|
*/
|
|
191
191
|
batch_size?: number;
|
|
192
192
|
};
|
|
193
|
-
export
|
|
193
|
+
export type SubscribeRule = {
|
|
194
194
|
throttle?: number;
|
|
195
195
|
};
|
|
196
|
-
export
|
|
196
|
+
export type ViewRule<S extends AnyObject = AnyObject> = CommonTableRules & {
|
|
197
197
|
/**
|
|
198
198
|
* What can be read from the table
|
|
199
199
|
*/
|
|
200
200
|
select?: SelectRule<S>;
|
|
201
201
|
};
|
|
202
|
-
export
|
|
202
|
+
export type TableRule<RowType extends AnyObject = AnyObject, S = void> = ViewRule<RowType> & {
|
|
203
203
|
insert?: InsertRule<RowType, S>;
|
|
204
204
|
update?: UpdateRule<RowType, S>;
|
|
205
205
|
delete?: DeleteRule<RowType, S>;
|
|
206
206
|
sync?: SyncRule<RowType>;
|
|
207
207
|
subscribe?: SubscribeRule;
|
|
208
208
|
};
|
|
209
|
-
export
|
|
209
|
+
export type PublishViewRule<Col extends AnyObject = AnyObject, S = void> = {
|
|
210
210
|
select?: SelectRule<Col, S> | PublishAllOrNothing;
|
|
211
211
|
getColumns?: PublishAllOrNothing;
|
|
212
212
|
getInfo?: PublishAllOrNothing;
|
|
213
213
|
};
|
|
214
|
-
export
|
|
214
|
+
export type PublishTableRule<Col extends AnyObject = AnyObject, S = void> = PublishViewRule<Col, S> & {
|
|
215
215
|
insert?: InsertRule<Col, S> | PublishAllOrNothing;
|
|
216
216
|
update?: UpdateRule<Col, S> | PublishAllOrNothing;
|
|
217
217
|
delete?: DeleteRule<Col, S> | PublishAllOrNothing;
|
|
218
218
|
sync?: SyncRule<Col>;
|
|
219
219
|
subscribe?: SubscribeRule | PublishAllOrNothing;
|
|
220
220
|
};
|
|
221
|
-
export
|
|
221
|
+
export type ParsedPublishTable = {
|
|
222
222
|
select?: SelectRule;
|
|
223
223
|
getColumns?: true;
|
|
224
224
|
getInfo?: true;
|
|
@@ -229,7 +229,7 @@ export declare type ParsedPublishTable = {
|
|
|
229
229
|
subscribe?: SubscribeRule;
|
|
230
230
|
subscribeOne?: SubscribeRule;
|
|
231
231
|
};
|
|
232
|
-
export
|
|
232
|
+
export type PublishParams<S = void, SUser extends SessionUser = SessionUser> = {
|
|
233
233
|
sid?: string;
|
|
234
234
|
dbo: DBOFullyTyped<S>;
|
|
235
235
|
db: DB;
|
|
@@ -241,19 +241,19 @@ export declare type PublishParams<S = void, SUser extends SessionUser = SessionU
|
|
|
241
241
|
columns: TableSchemaColumn[];
|
|
242
242
|
}[];
|
|
243
243
|
};
|
|
244
|
-
export
|
|
244
|
+
export type RequestParams = {
|
|
245
245
|
dbo?: DBHandlerServer;
|
|
246
246
|
socket?: any;
|
|
247
247
|
};
|
|
248
|
-
export
|
|
249
|
-
|
|
248
|
+
export type PublishAllOrNothing = true | "*" | false | null;
|
|
249
|
+
type PublishObject = {
|
|
250
250
|
[table_name: string]: (PublishTableRule | PublishViewRule | PublishAllOrNothing);
|
|
251
251
|
};
|
|
252
|
-
export
|
|
252
|
+
export type ParsedPublishTables = {
|
|
253
253
|
[table_name: string]: ParsedPublishTable;
|
|
254
254
|
};
|
|
255
|
-
export
|
|
256
|
-
export
|
|
255
|
+
export type PublishedResult<Schema = void> = PublishAllOrNothing | PublishFullyTyped<Schema>;
|
|
256
|
+
export type Publish<Schema = void, SUser extends SessionUser = SessionUser> = PublishedResult<Schema> | ((params: PublishParams<Schema, SUser>) => Awaitable<PublishedResult<Schema>>);
|
|
257
257
|
export declare class PublishParser {
|
|
258
258
|
publish: any;
|
|
259
259
|
publishMethods?: PublishMethods<void, SessionUser<AnyObject, AnyObject>> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublishParser.d.ts","sourceRoot":"","sources":["PublishParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,SAAS,EAAO,oBAAoB,EAAE,aAAa,EAAwB,UAAU,EAAY,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACjK,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAyB,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtI,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAiB,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,
|
|
1
|
+
{"version":3,"file":"PublishParser.d.ts","sourceRoot":"","sources":["PublishParser.ts"],"names":[],"mappings":"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"}
|