prostgles-server 4.2.187 → 4.2.188
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 +2 -1
- package/.eslintrc.json +2 -0
- package/dist/Auth/AuthHandler.d.ts +18 -11
- package/dist/Auth/AuthHandler.d.ts.map +1 -1
- package/dist/Auth/AuthHandler.js +94 -120
- package/dist/Auth/AuthHandler.js.map +1 -1
- package/dist/Auth/AuthTypes.d.ts +78 -71
- package/dist/Auth/AuthTypes.d.ts.map +1 -1
- package/dist/Auth/{setEmailProvider.d.ts → authProviders/setEmailProvider.d.ts} +1 -1
- package/dist/Auth/authProviders/setEmailProvider.d.ts.map +1 -0
- package/dist/Auth/authProviders/setEmailProvider.js +27 -0
- package/dist/Auth/authProviders/setEmailProvider.js.map +1 -0
- package/dist/Auth/authProviders/setOAuthProviders.d.ts +5 -0
- package/dist/Auth/authProviders/setOAuthProviders.d.ts.map +1 -0
- package/dist/Auth/authProviders/setOAuthProviders.js +78 -0
- package/dist/Auth/authProviders/setOAuthProviders.js.map +1 -0
- package/dist/Auth/endpoints/getConfirmEmailRequestHandler.d.ts +7 -0
- package/dist/Auth/endpoints/getConfirmEmailRequestHandler.d.ts.map +1 -0
- package/dist/Auth/endpoints/getConfirmEmailRequestHandler.js +29 -0
- package/dist/Auth/endpoints/getConfirmEmailRequestHandler.js.map +1 -0
- package/dist/Auth/endpoints/getRegisterRequestHandler.d.ts +7 -0
- package/dist/Auth/endpoints/getRegisterRequestHandler.d.ts.map +1 -0
- package/dist/Auth/endpoints/getRegisterRequestHandler.js +74 -0
- package/dist/Auth/endpoints/getRegisterRequestHandler.js.map +1 -0
- package/dist/Auth/setAuthProviders.d.ts.map +1 -1
- package/dist/Auth/setAuthProviders.js +4 -74
- package/dist/Auth/setAuthProviders.js.map +1 -1
- package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
- package/dist/Auth/setupAuthRoutes.js +23 -33
- package/dist/Auth/setupAuthRoutes.js.map +1 -1
- package/dist/Auth/utils/checkDmarc.d.ts +2 -0
- package/dist/Auth/utils/checkDmarc.d.ts.map +1 -0
- package/dist/Auth/utils/checkDmarc.js +22 -0
- package/dist/Auth/utils/checkDmarc.js.map +1 -0
- package/dist/Auth/utils/getClientRequestIPsInfo.d.ts +3 -0
- package/dist/Auth/utils/getClientRequestIPsInfo.d.ts.map +1 -0
- package/dist/Auth/utils/getClientRequestIPsInfo.js +29 -0
- package/dist/Auth/utils/getClientRequestIPsInfo.js.map +1 -0
- package/dist/Auth/utils/getReturnUrl.d.ts +3 -0
- package/dist/Auth/utils/getReturnUrl.d.ts.map +1 -0
- package/dist/Auth/utils/getReturnUrl.js +15 -0
- package/dist/Auth/utils/getReturnUrl.js.map +1 -0
- package/dist/Auth/utils/getSafeReturnURL.d.ts.map +1 -0
- package/dist/Auth/utils/getSafeReturnURL.js.map +1 -0
- package/dist/DBEventsManager.d.ts.map +1 -1
- package/dist/DBEventsManager.js +4 -5
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/DBSchemaBuilder.js +1 -1
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilder.d.ts +0 -1
- package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.js +3 -12
- package/dist/DboBuilder/DboBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
- package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.js +38 -76
- 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 +4 -12
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js +23 -33
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +6 -6
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
- package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
- package/dist/DboBuilder/QueryStreamer.js +13 -19
- package/dist/DboBuilder/QueryStreamer.js.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.js +7 -16
- package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +7 -5
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js +5 -8
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert.js +10 -15
- package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.js +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
- package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/update.js +5 -9
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.js +7 -9
- package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
- package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/upsert.js +1 -1
- package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js +11 -13
- package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.js +1 -1
- package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.js +20 -27
- package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js +4 -10
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getInfo.js +2 -2
- package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +6 -22
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +6 -10
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.js +8 -11
- package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js +7 -12
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareWhere.js +6 -10
- package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.js +8 -23
- package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
- package/dist/DboBuilder/getColumns.d.ts.map +1 -1
- package/dist/DboBuilder/getColumns.js +19 -26
- package/dist/DboBuilder/getColumns.js.map +1 -1
- package/dist/DboBuilder/getCondition.d.ts.map +1 -1
- package/dist/DboBuilder/getCondition.js +7 -9
- package/dist/DboBuilder/getCondition.js.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.js +2 -2
- package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +14 -15
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
- package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
- package/dist/DboBuilder/insertNestedRecords.js +26 -40
- package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +1 -1
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.js +12 -18
- package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
- package/dist/DboBuilder/runSQL.d.ts +1 -1
- package/dist/DboBuilder/runSQL.d.ts.map +1 -1
- package/dist/DboBuilder/runSQL.js +14 -27
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/DboBuilder/uploadFile.d.ts +1 -1
- package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
- package/dist/DboBuilder/uploadFile.js +4 -11
- package/dist/DboBuilder/uploadFile.js.map +1 -1
- package/dist/FileManager/FileManager.d.ts.map +1 -1
- package/dist/FileManager/FileManager.js +11 -13
- package/dist/FileManager/FileManager.js.map +1 -1
- package/dist/FileManager/initFileManager.d.ts.map +1 -1
- package/dist/FileManager/initFileManager.js +60 -62
- package/dist/FileManager/initFileManager.js.map +1 -1
- package/dist/FileManager/uploadStream.js +2 -2
- package/dist/FileManager/uploadStream.js.map +1 -1
- package/dist/Filtering.d.ts +1 -1
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Filtering.js +12 -35
- package/dist/Filtering.js.map +1 -1
- package/dist/JSONBValidation/validation.d.ts.map +1 -1
- package/dist/JSONBValidation/validation.js +20 -26
- package/dist/JSONBValidation/validation.js.map +1 -1
- package/dist/Logging.d.ts +1 -0
- package/dist/Logging.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.js +1 -5
- package/dist/PostgresNotifListenManager.js.map +1 -1
- package/dist/Prostgles.d.ts +1 -1
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +18 -33
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +8 -13
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/addSub.d.ts.map +1 -1
- package/dist/PubSubManager/addSub.js +1 -1
- package/dist/PubSubManager/addSub.js.map +1 -1
- package/dist/PubSubManager/addSync.d.ts.map +1 -1
- package/dist/PubSubManager/addSync.js +4 -7
- package/dist/PubSubManager/addSync.js.map +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.js +6 -6
- package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
- package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/initPubSubManager.js +2 -3
- package/dist/PubSubManager/initPubSubManager.js.map +1 -1
- package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
- package/dist/PubSubManager/pushSubData.js +0 -2
- package/dist/PubSubManager/pushSubData.js.map +1 -1
- package/dist/PublishParser/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.js +8 -13
- package/dist/PublishParser/PublishParser.js.map +1 -1
- package/dist/PublishParser/getFileTableRules.js +1 -1
- package/dist/PublishParser/getFileTableRules.js.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.js +6 -13
- package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.js +14 -19
- package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
- package/dist/RestApi.d.ts +1 -1
- package/dist/RestApi.d.ts.map +1 -1
- package/dist/RestApi.js +2 -2
- package/dist/RestApi.js.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.js +2 -2
- package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
- package/dist/SyncReplication.d.ts.map +1 -1
- package/dist/SyncReplication.js +31 -41
- package/dist/SyncReplication.js.map +1 -1
- package/dist/TableConfig/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig/TableConfig.js +7 -9
- package/dist/TableConfig/TableConfig.js.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.js +1 -6
- package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.js +16 -28
- package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.js +5 -9
- package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
- package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
- package/dist/TableConfig/initTableConfig.js +22 -25
- package/dist/TableConfig/initTableConfig.js.map +1 -1
- package/dist/initProstgles.js +1 -1
- package/dist/initProstgles.js.map +1 -1
- package/dist/onSocketConnected.d.ts.map +1 -1
- package/dist/onSocketConnected.js +2 -4
- package/dist/onSocketConnected.js.map +1 -1
- package/dist/runClientRequest.d.ts.map +1 -1
- package/dist/runClientRequest.js +14 -13
- package/dist/runClientRequest.js.map +1 -1
- package/lib/Auth/AuthHandler.ts +117 -137
- package/lib/Auth/AuthTypes.ts +97 -81
- package/lib/Auth/authProviders/setEmailProvider.ts +29 -0
- package/lib/Auth/authProviders/setOAuthProviders.ts +97 -0
- package/lib/Auth/endpoints/getConfirmEmailRequestHandler.ts +39 -0
- package/lib/Auth/endpoints/getRegisterRequestHandler.ts +83 -0
- package/lib/Auth/setAuthProviders.ts +8 -111
- package/lib/Auth/setupAuthRoutes.ts +105 -148
- package/lib/Auth/utils/checkDmarc.ts +19 -0
- package/lib/Auth/utils/getClientRequestIPsInfo.ts +25 -0
- package/lib/Auth/utils/getReturnUrl.ts +13 -0
- package/lib/DBEventsManager.ts +12 -26
- package/lib/DBSchemaBuilder.ts +1 -1
- package/lib/DboBuilder/DboBuilder.ts +23 -52
- package/lib/DboBuilder/DboBuilderTypes.ts +9 -23
- package/lib/DboBuilder/QueryBuilder/Functions.ts +86 -188
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +11 -36
- package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +102 -129
- package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +14 -27
- package/lib/DboBuilder/QueryStreamer.ts +26 -57
- package/lib/DboBuilder/TableHandler/DataValidator.ts +58 -90
- package/lib/DboBuilder/TableHandler/TableHandler.ts +19 -45
- package/lib/DboBuilder/TableHandler/delete.ts +9 -18
- package/lib/DboBuilder/TableHandler/insert.ts +18 -31
- package/lib/DboBuilder/TableHandler/insertTest.ts +1 -1
- package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +8 -19
- package/lib/DboBuilder/TableHandler/update.ts +17 -46
- package/lib/DboBuilder/TableHandler/updateFile.ts +18 -21
- package/lib/DboBuilder/TableHandler/upsert.ts +7 -24
- package/lib/DboBuilder/ViewHandler/ViewHandler.ts +13 -15
- package/lib/DboBuilder/ViewHandler/count.ts +1 -1
- package/lib/DboBuilder/ViewHandler/find.ts +28 -35
- package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +8 -30
- package/lib/DboBuilder/ViewHandler/getInfo.ts +2 -2
- package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +16 -32
- package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +9 -16
- package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +26 -44
- package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +58 -82
- package/lib/DboBuilder/ViewHandler/prepareWhere.ts +14 -27
- package/lib/DboBuilder/dboBuilderUtils.ts +19 -46
- package/lib/DboBuilder/getColumns.ts +24 -46
- package/lib/DboBuilder/getCondition.ts +18 -30
- package/lib/DboBuilder/getSubscribeRelatedTables.ts +2 -2
- package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +44 -62
- package/lib/DboBuilder/insertNestedRecords.ts +67 -135
- package/lib/DboBuilder/parseUpdateRules.ts +1 -1
- package/lib/DboBuilder/prepareShortestJoinPaths.ts +23 -58
- package/lib/DboBuilder/runSQL.ts +41 -76
- package/lib/DboBuilder/uploadFile.ts +26 -37
- package/lib/FileManager/FileManager.ts +27 -58
- package/lib/FileManager/initFileManager.ts +68 -76
- package/lib/FileManager/uploadStream.ts +2 -2
- package/lib/Filtering.ts +30 -87
- package/lib/JSONBValidation/validation.ts +36 -75
- package/lib/Logging.ts +1 -1
- package/lib/PostgresNotifListenManager.ts +11 -35
- package/lib/Prostgles.ts +42 -100
- package/lib/PubSubManager/PubSubManager.ts +30 -66
- package/lib/PubSubManager/addSub.ts +11 -18
- package/lib/PubSubManager/addSync.ts +5 -12
- package/lib/PubSubManager/getCreatePubSubManagerError.ts +9 -9
- package/lib/PubSubManager/initPubSubManager.ts +7 -13
- package/lib/PubSubManager/pushSubData.ts +1 -7
- package/lib/PublishParser/PublishParser.ts +8 -12
- package/lib/PublishParser/getFileTableRules.ts +1 -1
- package/lib/PublishParser/getSchemaFromPublish.ts +26 -42
- package/lib/PublishParser/getTableRulesWithoutFileTable.ts +22 -37
- package/lib/RestApi.ts +4 -12
- package/lib/SchemaWatch/SchemaWatch.ts +11 -24
- package/lib/SyncReplication.ts +96 -190
- package/lib/TableConfig/TableConfig.ts +16 -38
- package/lib/TableConfig/getConstraintDefinitionQueries.ts +2 -8
- package/lib/TableConfig/getFutureTableSchema.ts +20 -34
- package/lib/TableConfig/getTableColumnQueries.ts +13 -35
- package/lib/TableConfig/initTableConfig.ts +40 -64
- package/lib/initProstgles.ts +1 -1
- package/lib/onSocketConnected.ts +8 -12
- package/lib/runClientRequest.ts +31 -54
- package/package.json +2 -2
- package/dist/Auth/getSafeReturnURL.d.ts.map +0 -1
- package/dist/Auth/getSafeReturnURL.js.map +0 -1
- package/dist/Auth/setEmailProvider.d.ts.map +0 -1
- package/dist/Auth/setEmailProvider.js +0 -133
- package/dist/Auth/setEmailProvider.js.map +0 -1
- package/dist/DboBuilder/runTransaction.d.ts +0 -9
- package/dist/DboBuilder/runTransaction.d.ts.map +0 -1
- package/dist/DboBuilder/runTransaction.js +0 -49
- package/dist/DboBuilder/runTransaction.js.map +0 -1
- package/lib/Auth/setEmailProvider.ts +0 -132
- package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +0 -27
- package/lib/DboBuilder/runTransaction.ts +0 -61
- package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +0 -3
- /package/dist/Auth/{getSafeReturnURL.d.ts → utils/getSafeReturnURL.d.ts} +0 -0
- /package/dist/Auth/{getSafeReturnURL.js → utils/getSafeReturnURL.js} +0 -0
- /package/lib/Auth/{getSafeReturnURL.ts → utils/getSafeReturnURL.ts} +0 -0
|
@@ -29,11 +29,7 @@ import {
|
|
|
29
29
|
} from "prostgles-types";
|
|
30
30
|
|
|
31
31
|
import { find, pickKeys, tryCatch } from "prostgles-types/dist/util";
|
|
32
|
-
import {
|
|
33
|
-
LocalFuncs,
|
|
34
|
-
getOnDataFunc,
|
|
35
|
-
matchesLocalFuncs,
|
|
36
|
-
} from "../DboBuilder/ViewHandler/subscribe";
|
|
32
|
+
import { LocalFuncs, getOnDataFunc, matchesLocalFuncs } from "../DboBuilder/ViewHandler/subscribe";
|
|
37
33
|
import { EVENT_TRIGGER_TAGS } from "../Event_Trigger_Tags";
|
|
38
34
|
import { EventTypes } from "../Logging";
|
|
39
35
|
import { TableRule } from "../PublishParser/PublishParser";
|
|
@@ -113,10 +109,7 @@ export type ViewSubscriptionOptions = (
|
|
|
113
109
|
}[];
|
|
114
110
|
};
|
|
115
111
|
|
|
116
|
-
export type SubscriptionParams = Pick<
|
|
117
|
-
SubscribeParams,
|
|
118
|
-
"throttle" | "throttleOpts"
|
|
119
|
-
> & {
|
|
112
|
+
export type SubscriptionParams = Pick<SubscribeParams, "throttle" | "throttleOpts"> & {
|
|
120
113
|
socket_id?: string;
|
|
121
114
|
channel_name: string;
|
|
122
115
|
|
|
@@ -200,10 +193,6 @@ export class PubSubManager {
|
|
|
200
193
|
postgresNotifListenManager?: PostgresNotifListenManager;
|
|
201
194
|
|
|
202
195
|
private constructor(dboBuilder: DboBuilder) {
|
|
203
|
-
if (!dboBuilder.db || !dboBuilder.dbo) {
|
|
204
|
-
throw "MISSING: db_pg, db";
|
|
205
|
-
}
|
|
206
|
-
|
|
207
196
|
this.dboBuilder = dboBuilder;
|
|
208
197
|
|
|
209
198
|
log("Created PubSubManager");
|
|
@@ -237,17 +226,16 @@ export class PubSubManager {
|
|
|
237
226
|
const { watchSchema } = this.dboBuilder.prostgles.opts;
|
|
238
227
|
if (watchSchema && !(await getIsSuperUser(this.db))) {
|
|
239
228
|
console.warn(
|
|
240
|
-
"prostgles watchSchema requires superuser db user. Will not watch using event triggers"
|
|
229
|
+
"prostgles watchSchema requires superuser db user. Will not watch using event triggers"
|
|
241
230
|
);
|
|
242
231
|
}
|
|
243
232
|
|
|
244
233
|
try {
|
|
245
234
|
/** We use these names because they include schema where necessary */
|
|
246
|
-
const allTableNames = Object.keys(this.dbo).filter(
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
? `OR table_name NOT IN (${allTableNames.map((tblName) => asValue(tblName)).join(", ")})`
|
|
235
|
+
const allTableNames = Object.keys(this.dbo).filter((k) => this.dbo[k]?.tableOrViewInfo);
|
|
236
|
+
const tableFilterQuery =
|
|
237
|
+
allTableNames.length ?
|
|
238
|
+
`OR table_name NOT IN (${allTableNames.map((tblName) => asValue(tblName)).join(", ")})`
|
|
251
239
|
: "";
|
|
252
240
|
const query = pgp.as.format(
|
|
253
241
|
`
|
|
@@ -303,7 +291,7 @@ export class PubSubManager {
|
|
|
303
291
|
|
|
304
292
|
COMMIT;
|
|
305
293
|
`,
|
|
306
|
-
{ EVENT_TRIGGER_TAGS }
|
|
294
|
+
{ EVENT_TRIGGER_TAGS }
|
|
307
295
|
);
|
|
308
296
|
|
|
309
297
|
await this.db
|
|
@@ -324,72 +312,54 @@ export class PubSubManager {
|
|
|
324
312
|
channel_name,
|
|
325
313
|
localFuncs,
|
|
326
314
|
socket_id,
|
|
327
|
-
}: Pick<
|
|
328
|
-
Subscription,
|
|
329
|
-
"localFuncs" | "socket_id" | "channel_name"
|
|
330
|
-
>): Subscription[] {
|
|
315
|
+
}: Pick<Subscription, "localFuncs" | "socket_id" | "channel_name">): Subscription[] {
|
|
331
316
|
return this.subs.filter((s) => {
|
|
332
317
|
return (
|
|
333
318
|
s.channel_name === channel_name &&
|
|
334
|
-
(matchesLocalFuncs(localFuncs, s.localFuncs) ||
|
|
335
|
-
(socket_id && s.socket_id === socket_id))
|
|
319
|
+
(matchesLocalFuncs(localFuncs, s.localFuncs) || (socket_id && s.socket_id === socket_id))
|
|
336
320
|
);
|
|
337
321
|
});
|
|
338
322
|
}
|
|
339
323
|
|
|
340
324
|
getTriggerSubs(table_name: string, condition: string): Subscription[] {
|
|
341
|
-
const subs = this.subs.filter((s) =>
|
|
342
|
-
find(s.triggers, { table_name, condition }),
|
|
343
|
-
);
|
|
325
|
+
const subs = this.subs.filter((s) => find(s.triggers, { table_name, condition }));
|
|
344
326
|
return subs;
|
|
345
327
|
}
|
|
346
328
|
|
|
347
329
|
removeLocalSub(channelName: string, localFuncs: LocalFuncs) {
|
|
348
330
|
const matchingSubIdx = this.subs.findIndex(
|
|
349
331
|
(s) =>
|
|
350
|
-
s.channel_name === channelName &&
|
|
351
|
-
getOnDataFunc(localFuncs) === getOnDataFunc(s.localFuncs),
|
|
332
|
+
s.channel_name === channelName && getOnDataFunc(localFuncs) === getOnDataFunc(s.localFuncs)
|
|
352
333
|
);
|
|
353
334
|
if (matchingSubIdx > -1) {
|
|
354
335
|
this.subs.splice(matchingSubIdx, 1);
|
|
355
336
|
} else {
|
|
356
|
-
console.error(
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
channelName,
|
|
360
|
-
},
|
|
361
|
-
);
|
|
337
|
+
console.error("Could not unsubscribe. Subscription might not have initialised yet", {
|
|
338
|
+
channelName,
|
|
339
|
+
});
|
|
362
340
|
}
|
|
363
341
|
}
|
|
364
342
|
|
|
365
343
|
getSyncs(table_name: string, condition: string) {
|
|
366
|
-
return
|
|
367
|
-
(s: SyncParams) =>
|
|
368
|
-
s.table_name === table_name && s.condition === condition,
|
|
344
|
+
return this.syncs.filter(
|
|
345
|
+
(s: SyncParams) => s.table_name === table_name && s.condition === condition
|
|
369
346
|
);
|
|
370
347
|
}
|
|
371
348
|
|
|
372
349
|
notifListener = notifListener.bind(this);
|
|
373
350
|
|
|
374
351
|
getSubData = async (
|
|
375
|
-
sub: Subscription
|
|
376
|
-
): Promise<
|
|
377
|
-
{ data: any[]; err?: undefined } | { data?: undefined; err: any }
|
|
378
|
-
> => {
|
|
352
|
+
sub: Subscription
|
|
353
|
+
): Promise<{ data: any[]; err?: undefined } | { data?: undefined; err: any }> => {
|
|
379
354
|
const { table_info, filter, params, table_rules } = sub; //, subOne = false
|
|
380
355
|
const { name: table_name } = table_info;
|
|
381
356
|
|
|
382
|
-
if (!this.dbo
|
|
357
|
+
if (!this.dbo[table_name]?.find) {
|
|
383
358
|
throw new Error(`this.dbo.${table_name}.find undefined`);
|
|
384
359
|
}
|
|
385
360
|
|
|
386
361
|
try {
|
|
387
|
-
const data = await this.dbo
|
|
388
|
-
filter,
|
|
389
|
-
params,
|
|
390
|
-
undefined,
|
|
391
|
-
table_rules,
|
|
392
|
-
);
|
|
362
|
+
const data = await this.dbo[table_name]!.find!(filter, params, undefined, table_rules);
|
|
393
363
|
return { data };
|
|
394
364
|
} catch (err) {
|
|
395
365
|
return { err };
|
|
@@ -424,10 +394,10 @@ export class PubSubManager {
|
|
|
424
394
|
this.subs.map((s) => ({
|
|
425
395
|
tableName: s.table_info.name,
|
|
426
396
|
triggers: s.triggers,
|
|
427
|
-
}))
|
|
397
|
+
}))
|
|
428
398
|
),
|
|
429
399
|
remainingSyncs: JSON.stringify(
|
|
430
|
-
this.syncs.map((s) => pickKeys(s, ["table_name", "condition"]))
|
|
400
|
+
this.syncs.map((s) => pickKeys(s, ["table_name", "condition"]))
|
|
431
401
|
),
|
|
432
402
|
});
|
|
433
403
|
|
|
@@ -453,13 +423,11 @@ export class PubSubManager {
|
|
|
453
423
|
getActiveListeners = (): { table_name: string; condition: string }[] => {
|
|
454
424
|
const activeListeners: { table_name: string; condition: string }[] = [];
|
|
455
425
|
const upsert = (t: string, c: string) => {
|
|
456
|
-
if (
|
|
457
|
-
!activeListeners.find((r) => r.table_name === t && r.condition === c)
|
|
458
|
-
) {
|
|
426
|
+
if (!activeListeners.find((r) => r.table_name === t && r.condition === c)) {
|
|
459
427
|
activeListeners.push({ table_name: t, condition: c });
|
|
460
428
|
}
|
|
461
429
|
};
|
|
462
|
-
|
|
430
|
+
this.syncs.map((s) => {
|
|
463
431
|
upsert(s.table_name, s.condition);
|
|
464
432
|
});
|
|
465
433
|
|
|
@@ -486,7 +454,7 @@ export class PubSubManager {
|
|
|
486
454
|
WHERE app_id = $1
|
|
487
455
|
ORDER BY table_name, condition
|
|
488
456
|
`,
|
|
489
|
-
[this.dboBuilder.prostgles.appId]
|
|
457
|
+
[this.dboBuilder.prostgles.appId]
|
|
490
458
|
);
|
|
491
459
|
|
|
492
460
|
this._triggers = {};
|
|
@@ -504,7 +472,7 @@ export class PubSubManager {
|
|
|
504
472
|
async addTrigger(
|
|
505
473
|
params: { table_name: string; condition: string },
|
|
506
474
|
viewOptions: ViewSubscriptionOptions | undefined,
|
|
507
|
-
socket: PRGLIOSocket | undefined
|
|
475
|
+
socket: PRGLIOSocket | undefined
|
|
508
476
|
) {
|
|
509
477
|
const addedTrigger = await tryCatch(async () => {
|
|
510
478
|
const { table_name } = { ...params };
|
|
@@ -522,9 +490,7 @@ export class PubSubManager {
|
|
|
522
490
|
const trgVals = {
|
|
523
491
|
tbl: asValue(table_name),
|
|
524
492
|
cond: asValue(condition),
|
|
525
|
-
condHash: asValue(
|
|
526
|
-
crypto.createHash("md5").update(condition).digest("hex"),
|
|
527
|
-
),
|
|
493
|
+
condHash: asValue(crypto.createHash("md5").update(condition).digest("hex")),
|
|
528
494
|
};
|
|
529
495
|
|
|
530
496
|
await this.db.tx((t) =>
|
|
@@ -563,7 +529,7 @@ export class PubSubManager {
|
|
|
563
529
|
ON CONFLICT DO NOTHING;
|
|
564
530
|
|
|
565
531
|
COMMIT WORK;
|
|
566
|
-
`)
|
|
532
|
+
`)
|
|
567
533
|
);
|
|
568
534
|
|
|
569
535
|
/** This might be redundant due to trigger on app_triggers */
|
|
@@ -582,9 +548,7 @@ export class PubSubManager {
|
|
|
582
548
|
error: addedTrigger.error,
|
|
583
549
|
sid: this.dboBuilder.prostgles.authHandler?.getSIDNoError({ socket }),
|
|
584
550
|
tableName: addedTrigger.tbl ?? params.table_name,
|
|
585
|
-
connectedSocketIds: this.dboBuilder.prostgles.connectedSockets.map(
|
|
586
|
-
(s) => s.id,
|
|
587
|
-
),
|
|
551
|
+
connectedSocketIds: this.dboBuilder.prostgles.connectedSockets.map((s) => s.id),
|
|
588
552
|
localParams: { socket },
|
|
589
553
|
});
|
|
590
554
|
|
|
@@ -20,10 +20,7 @@ type AddSubResult = SubscriptionChannels & {
|
|
|
20
20
|
/* The distinct list of {table_name, condition} must have a corresponding trigger in the database */
|
|
21
21
|
export async function addSub(
|
|
22
22
|
this: PubSubManager,
|
|
23
|
-
subscriptionParams: Omit<
|
|
24
|
-
AddSubscriptionParams,
|
|
25
|
-
"channel_name" | "parentSubParams"
|
|
26
|
-
>,
|
|
23
|
+
subscriptionParams: Omit<AddSubscriptionParams, "channel_name" | "parentSubParams">
|
|
27
24
|
): Promise<AddSubResult> {
|
|
28
25
|
const {
|
|
29
26
|
socket,
|
|
@@ -36,7 +33,7 @@ export async function addSub(
|
|
|
36
33
|
viewOptions,
|
|
37
34
|
table_info,
|
|
38
35
|
throttleOpts,
|
|
39
|
-
} = subscriptionParams
|
|
36
|
+
} = subscriptionParams;
|
|
40
37
|
const table_name = table_info.name;
|
|
41
38
|
|
|
42
39
|
if (!socket && !localFuncs) {
|
|
@@ -127,19 +124,15 @@ export async function addSub(
|
|
|
127
124
|
socket.once(result.channelNameReady, () => {
|
|
128
125
|
this.pushSubData(newSub);
|
|
129
126
|
});
|
|
130
|
-
socket.once(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
removeListeners();
|
|
140
|
-
cb(null, { res });
|
|
141
|
-
},
|
|
142
|
-
);
|
|
127
|
+
socket.once(result.channelNameUnsubscribe, (_data: any, cb: BasicCallback) => {
|
|
128
|
+
const res = "ok";
|
|
129
|
+
this.subs = this.subs.filter((s) => {
|
|
130
|
+
const isMatch = s.socket?.id === socket.id && s.channel_name === channel_name;
|
|
131
|
+
return !isMatch;
|
|
132
|
+
});
|
|
133
|
+
removeListeners();
|
|
134
|
+
cb(null, { res });
|
|
135
|
+
});
|
|
143
136
|
}
|
|
144
137
|
|
|
145
138
|
this.subs.push(newSub);
|
|
@@ -27,7 +27,7 @@ export async function addSync(this: PubSubManager, syncParams: AddSyncParams) {
|
|
|
27
27
|
params,
|
|
28
28
|
condition = "",
|
|
29
29
|
throttle = 0,
|
|
30
|
-
} = syncParams
|
|
30
|
+
} = syncParams;
|
|
31
31
|
const conditionParsed = parseCondition(condition);
|
|
32
32
|
if (!socket || !table_info) throw "socket or table_info missing";
|
|
33
33
|
|
|
@@ -49,8 +49,8 @@ export async function addSync(this: PubSubManager, syncParams: AddSyncParams) {
|
|
|
49
49
|
id_fields,
|
|
50
50
|
allow_delete,
|
|
51
51
|
table_rules,
|
|
52
|
-
throttle: Math.max(throttle || 0, table_rules
|
|
53
|
-
batch_size: table_rules
|
|
52
|
+
throttle: Math.max(throttle || 0, table_rules.sync?.throttle || 0),
|
|
53
|
+
batch_size: table_rules.sync?.batch_size || DEFAULT_SYNC_BATCH_SIZE,
|
|
54
54
|
socket_id: socket.id,
|
|
55
55
|
is_sync: true,
|
|
56
56
|
last_synced: 0,
|
|
@@ -63,7 +63,6 @@ export async function addSync(this: PubSubManager, syncParams: AddSyncParams) {
|
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
/* Only a sync per socket per table per condition allowed */
|
|
66
|
-
this.syncs ??= [];
|
|
67
66
|
const existing = find(this.syncs, { socket_id: socket.id, channel_name });
|
|
68
67
|
if (!existing) {
|
|
69
68
|
this.syncs.push(newSync);
|
|
@@ -85,9 +84,7 @@ export async function addSync(this: PubSubManager, syncParams: AddSyncParams) {
|
|
|
85
84
|
socket.removeAllListeners(unsyncChn);
|
|
86
85
|
this.syncs = this.syncs.filter((s) => {
|
|
87
86
|
const isMatch =
|
|
88
|
-
s.socket_id &&
|
|
89
|
-
s.socket_id === socket.id &&
|
|
90
|
-
s.channel_name === channel_name;
|
|
87
|
+
s.socket_id && s.socket_id === socket.id && s.channel_name === channel_name;
|
|
91
88
|
return !isMatch;
|
|
92
89
|
});
|
|
93
90
|
cb(null, { res: "ok" });
|
|
@@ -131,11 +128,7 @@ export async function addSync(this: PubSubManager, syncParams: AddSyncParams) {
|
|
|
131
128
|
|
|
132
129
|
upsertSync();
|
|
133
130
|
|
|
134
|
-
await this.addTrigger(
|
|
135
|
-
{ table_name, condition: conditionParsed },
|
|
136
|
-
undefined,
|
|
137
|
-
socket,
|
|
138
|
-
);
|
|
131
|
+
await this.addTrigger({ table_name, condition: conditionParsed }, undefined, socket);
|
|
139
132
|
|
|
140
133
|
return { result: channel_name };
|
|
141
134
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { tryCatch } from "prostgles-types";
|
|
1
|
+
import { tryCatch, tryCatchV2 } from "prostgles-types";
|
|
2
2
|
import { getPubSubManagerInitQuery } from "./getPubSubManagerInitQuery";
|
|
3
3
|
import { getCanExecute } from "../DboBuilder/dboBuilderUtils";
|
|
4
4
|
import { DboBuilder } from "../DboBuilder/DboBuilder";
|
|
5
5
|
|
|
6
6
|
export const getCreatePubSubManagerError = async (
|
|
7
|
-
dboBuilder: DboBuilder
|
|
7
|
+
dboBuilder: DboBuilder
|
|
8
8
|
): Promise<string | undefined> => {
|
|
9
9
|
const db = dboBuilder.db;
|
|
10
10
|
|
|
@@ -19,7 +19,7 @@ export const getCreatePubSubManagerError = async (
|
|
|
19
19
|
`);
|
|
20
20
|
|
|
21
21
|
const checkIfCanCreateProstglesSchema = () =>
|
|
22
|
-
|
|
22
|
+
tryCatchV2(async () => {
|
|
23
23
|
const allGood = await db.task(async (t) => {
|
|
24
24
|
try {
|
|
25
25
|
await t.none(`
|
|
@@ -40,7 +40,7 @@ export const getCreatePubSubManagerError = async (
|
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
if (!prglSchema.length) {
|
|
43
|
-
const canCreate = await checkIfCanCreateProstglesSchema();
|
|
43
|
+
const { data: canCreate } = await checkIfCanCreateProstglesSchema();
|
|
44
44
|
if (!canCreate) {
|
|
45
45
|
const dbName = await db.one(`SELECT current_database()`);
|
|
46
46
|
const user = await db.one(`SELECT current_user`);
|
|
@@ -48,23 +48,23 @@ export const getCreatePubSubManagerError = async (
|
|
|
48
48
|
}
|
|
49
49
|
return undefined;
|
|
50
50
|
} else {
|
|
51
|
-
const canCheckVersion = await
|
|
51
|
+
const canCheckVersion = await tryCatchV2(async () => {
|
|
52
52
|
await db.any(`
|
|
53
53
|
SELECT * FROM prostgles.versions
|
|
54
54
|
`);
|
|
55
55
|
return { ok: true };
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
if (!canCheckVersion.ok) {
|
|
58
|
+
if (!canCheckVersion.data?.ok) {
|
|
59
59
|
console.error(
|
|
60
60
|
"prostgles schema exists but cannot check version. Check logs",
|
|
61
|
-
canCheckVersion.error
|
|
61
|
+
canCheckVersion.error
|
|
62
62
|
);
|
|
63
63
|
return "prostgles schema exists but cannot check version. Check logs";
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
const initQuery = await
|
|
67
|
+
const initQuery = await tryCatchV2(async () => ({
|
|
68
68
|
query: await getPubSubManagerInitQuery.bind(dboBuilder)(),
|
|
69
69
|
}));
|
|
70
70
|
if (initQuery.hasError) {
|
|
@@ -72,7 +72,7 @@ export const getCreatePubSubManagerError = async (
|
|
|
72
72
|
return "Could not get initQuery. Check logs";
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
if (!initQuery.query) {
|
|
75
|
+
if (!initQuery.data.query) {
|
|
76
76
|
return undefined;
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -8,9 +8,7 @@ export const REALTIME_TRIGGER_CHECK_QUERY =
|
|
|
8
8
|
|
|
9
9
|
export const tout = (ms: number) => new Promise((res) => setTimeout(res, ms));
|
|
10
10
|
|
|
11
|
-
export async function initPubSubManager(
|
|
12
|
-
this: PubSubManager,
|
|
13
|
-
): Promise<PubSubManager | undefined> {
|
|
11
|
+
export async function initPubSubManager(this: PubSubManager): Promise<PubSubManager | undefined> {
|
|
14
12
|
if (!this.getIsDestroyed()) return undefined;
|
|
15
13
|
|
|
16
14
|
const initQuery = await getPubSubManagerInitQuery.bind(this.dboBuilder)();
|
|
@@ -27,7 +25,6 @@ export async function initPubSubManager(
|
|
|
27
25
|
/** Try to reduce race condition deadlocks due to multiple clients connecting at the same time */
|
|
28
26
|
await tout(Math.random());
|
|
29
27
|
|
|
30
|
-
// await this.dboBuilder.runClientTransactionStatement(initQuery);// this.db.tx(t => t.any(initQuery));
|
|
31
28
|
await this.db.tx((t) => t.any(initQuery));
|
|
32
29
|
error = undefined;
|
|
33
30
|
tries = 0;
|
|
@@ -52,20 +49,17 @@ export async function initPubSubManager(
|
|
|
52
49
|
this.appInfoWasInserted = true;
|
|
53
50
|
const check_frequency_ms = this.appCheckFrequencyMS;
|
|
54
51
|
const watching_schema_tag_names =
|
|
55
|
-
this.dboBuilder.prostgles.schemaWatch?.type.watchType !== "NONE"
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
this.dboBuilder.prostgles.schemaWatch?.type.watchType !== "NONE" ?
|
|
53
|
+
getWatchSchemaTagList(this.dboBuilder.prostgles.opts.watchSchema)
|
|
54
|
+
: null;
|
|
58
55
|
await this.db.one(
|
|
59
56
|
"INSERT INTO prostgles.apps (id, check_frequency_ms, watching_schema_tag_names, application_name) \
|
|
60
57
|
VALUES($1, $2, $3, current_setting('application_name')) \
|
|
61
58
|
RETURNING *; ",
|
|
62
|
-
[this.appId, check_frequency_ms, watching_schema_tag_names]
|
|
59
|
+
[this.appId, check_frequency_ms, watching_schema_tag_names]
|
|
63
60
|
);
|
|
64
61
|
|
|
65
|
-
const appRecord = await this.db.one(
|
|
66
|
-
"SELECT * FROM prostgles.apps WHERE id = $1",
|
|
67
|
-
[this.appId],
|
|
68
|
-
);
|
|
62
|
+
const appRecord = await this.db.one("SELECT * FROM prostgles.apps WHERE id = $1", [this.appId]);
|
|
69
63
|
if (!appRecord || !appRecord.application_name?.includes(this.appId)) {
|
|
70
64
|
throw `initPubSubManager error: App record with application_name containing appId (${this.appId}) not found`;
|
|
71
65
|
}
|
|
@@ -79,7 +73,7 @@ export async function initPubSubManager(
|
|
|
79
73
|
this.postgresNotifListenManager = new PostgresNotifListenManager(
|
|
80
74
|
this.db,
|
|
81
75
|
this.notifListener,
|
|
82
|
-
NOTIF_CHANNEL.getFull(this.appId)
|
|
76
|
+
NOTIF_CHANNEL.getFull(this.appId)
|
|
83
77
|
);
|
|
84
78
|
|
|
85
79
|
await this.initialiseEventTriggers();
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { parseLocalFuncs } from "../DboBuilder/ViewHandler/subscribe";
|
|
2
2
|
import { log, PubSubManager, Subscription } from "./PubSubManager";
|
|
3
3
|
|
|
4
|
-
export async function pushSubData(
|
|
5
|
-
this: PubSubManager,
|
|
6
|
-
sub: Subscription,
|
|
7
|
-
err?: any,
|
|
8
|
-
) {
|
|
9
|
-
if (!sub) throw "pushSubData: invalid sub";
|
|
10
|
-
|
|
4
|
+
export async function pushSubData(this: PubSubManager, sub: Subscription, err?: any) {
|
|
11
5
|
const { socket_id, channel_name } = sub;
|
|
12
6
|
if (!this.subs.some((s) => s.channel_name === channel_name)) {
|
|
13
7
|
// Might be throttling a sub that was removed
|
|
@@ -40,14 +40,13 @@ export class PublishParser {
|
|
|
40
40
|
this.db = db;
|
|
41
41
|
this.prostgles = prostgles;
|
|
42
42
|
|
|
43
|
-
if (!this.
|
|
43
|
+
if (!this.publish) throw "INTERNAL ERROR: dbo and/or publish missing";
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
async getPublishParams(
|
|
47
47
|
localParams: LocalParams,
|
|
48
48
|
clientInfo?: AuthResult
|
|
49
49
|
): Promise<PublishParams> {
|
|
50
|
-
if (!this.dbo) throw "dbo missing";
|
|
51
50
|
return {
|
|
52
51
|
...(clientInfo || (await this.prostgles.authHandler?.getClientInfo(localParams))),
|
|
53
52
|
dbo: this.dbo as any,
|
|
@@ -69,12 +68,11 @@ export class PublishParser {
|
|
|
69
68
|
if (_methods && Object.keys(_methods).length) {
|
|
70
69
|
getObjectEntries(_methods).map(([key, method]) => {
|
|
71
70
|
const isFuncLike = (maybeFunc: VoidFunction | Promise<void> | Promise<any>) =>
|
|
72
|
-
typeof maybeFunc === "function" ||
|
|
71
|
+
typeof maybeFunc === "function" || typeof maybeFunc.then === "function";
|
|
73
72
|
if (
|
|
74
|
-
method
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
(isObject(method) && isFuncLike(method.run)))
|
|
73
|
+
isFuncLike(method as Extract<Method, Promise<any>>) ||
|
|
74
|
+
// @ts-ignore
|
|
75
|
+
(isObject(method) && isFuncLike(method.run))
|
|
78
76
|
) {
|
|
79
77
|
methods[key] = _methods[key]!;
|
|
80
78
|
} else {
|
|
@@ -122,8 +120,6 @@ export class PublishParser {
|
|
|
122
120
|
{ tableName, command, localParams }: DboTableCommand,
|
|
123
121
|
clientInfo?: AuthResult
|
|
124
122
|
): Promise<TableRule> {
|
|
125
|
-
if (!this.dbo) throw "INTERNAL ERROR: dbo is missing";
|
|
126
|
-
|
|
127
123
|
if (!command || !tableName) throw "command OR tableName are missing";
|
|
128
124
|
|
|
129
125
|
const rtm = RULE_TO_METHODS.find((rtms) => (rtms.methods as any).includes(command));
|
|
@@ -132,7 +128,7 @@ export class PublishParser {
|
|
|
132
128
|
}
|
|
133
129
|
|
|
134
130
|
/* Must be local request -> allow everything */
|
|
135
|
-
if (!localParams
|
|
131
|
+
if (!localParams.socket && !localParams.httpReq) {
|
|
136
132
|
return RULE_TO_METHODS.reduce(
|
|
137
133
|
(a, v) => ({
|
|
138
134
|
...a,
|
|
@@ -146,7 +142,7 @@ export class PublishParser {
|
|
|
146
142
|
if (!this.publish) throw "publish is missing";
|
|
147
143
|
|
|
148
144
|
/* Get any publish errors for socket */
|
|
149
|
-
const errorInfo = localParams
|
|
145
|
+
const errorInfo = localParams.socket?.prostgles?.tableSchemaErrors[tableName]?.[command];
|
|
150
146
|
|
|
151
147
|
if (errorInfo) throw errorInfo.error;
|
|
152
148
|
|
|
@@ -166,7 +162,7 @@ export class PublishParser {
|
|
|
166
162
|
}
|
|
167
163
|
}
|
|
168
164
|
|
|
169
|
-
if (
|
|
165
|
+
if (table_rule[rtm.rule]) {
|
|
170
166
|
return table_rule;
|
|
171
167
|
} else
|
|
172
168
|
throw {
|