prostgles-server 4.2.183 → 4.2.185
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/.github/workflows/main.yml +15 -15
- package/.prettierignore +2 -0
- package/README.md +1 -1
- package/dist/Auth/AuthHandler.d.ts +1 -1
- package/dist/Auth/AuthHandler.d.ts.map +1 -1
- package/dist/Auth/AuthHandler.js +64 -32
- package/dist/Auth/AuthHandler.js.map +1 -1
- package/dist/Auth/AuthTypes.d.ts +15 -1
- package/dist/Auth/AuthTypes.d.ts.map +1 -1
- package/dist/Auth/getSafeReturnURL.d.ts.map +1 -1
- package/dist/Auth/getSafeReturnURL.js.map +1 -1
- package/dist/Auth/sendEmail.d.ts.map +1 -1
- package/dist/Auth/sendEmail.js +6 -6
- package/dist/Auth/sendEmail.js.map +1 -1
- package/dist/Auth/setAuthProviders.d.ts +1 -1
- package/dist/Auth/setAuthProviders.d.ts.map +1 -1
- package/dist/Auth/setAuthProviders.js +15 -8
- package/dist/Auth/setAuthProviders.js.map +1 -1
- package/dist/Auth/setEmailProvider.d.ts.map +1 -1
- package/dist/Auth/setEmailProvider.js +23 -4
- package/dist/Auth/setEmailProvider.js.map +1 -1
- package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
- package/dist/Auth/setupAuthRoutes.js +27 -9
- package/dist/Auth/setupAuthRoutes.js.map +1 -1
- package/dist/DBEventsManager.d.ts.map +1 -1
- package/dist/DBEventsManager.js +24 -19
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DBSchemaBuilder.js +18 -5
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.js +7 -2
- 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 +2 -2
- package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.js +293 -173
- package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +2 -2
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +52 -29
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +51 -32
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js +48 -25
- 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 +32 -23
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
- package/dist/DboBuilder/QueryStreamer.d.ts +2 -2
- package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
- package/dist/DboBuilder/QueryStreamer.js +68 -23
- 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 +79 -43
- 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 +39 -15
- 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 +44 -13
- 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 +81 -22
- package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +7 -4
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -5
- 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 +16 -4
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.js +33 -10
- package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.js +24 -6
- 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 +22 -6
- package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +5 -5
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js +64 -36
- package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.js +21 -7
- 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 +76 -22
- 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 +19 -10
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsFilters.js +12 -5
- package/dist/DboBuilder/ViewHandler/getExistsFilters.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getInfo.js +27 -9
- package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +2 -2
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +42 -23
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +22 -9
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts +4 -4
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +13 -11
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.js +44 -29
- 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 +36 -27
- 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 +16 -12
- package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/size.js +24 -7
- package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/subscribe.js +40 -12
- package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/validateViewRules.js +20 -5
- package/dist/DboBuilder/ViewHandler/validateViewRules.js.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.js +18 -7
- package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
- package/dist/DboBuilder/getColumns.d.ts.map +1 -1
- package/dist/DboBuilder/getColumns.js +22 -7
- package/dist/DboBuilder/getColumns.js.map +1 -1
- package/dist/DboBuilder/getCondition.d.ts.map +1 -1
- package/dist/DboBuilder/getCondition.js +43 -30
- package/dist/DboBuilder/getCondition.js.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.js +38 -27
- package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +9 -9
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
- package/dist/DboBuilder/insertNestedRecords.d.ts +3 -3
- package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
- package/dist/DboBuilder/insertNestedRecords.js +79 -44
- package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +38 -14
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.js +56 -31
- package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
- package/dist/DboBuilder/runSQL.d.ts.map +1 -1
- package/dist/DboBuilder/runSQL.js +41 -21
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/DboBuilder/runTransaction.d.ts +1 -1
- package/dist/DboBuilder/runTransaction.d.ts.map +1 -1
- package/dist/DboBuilder/runTransaction.js +2 -2
- package/dist/DboBuilder/runTransaction.js.map +1 -1
- package/dist/DboBuilder/sqlErrCodeToMsg.d.ts.map +1 -1
- package/dist/DboBuilder/sqlErrCodeToMsg.js +297 -38
- package/dist/DboBuilder/sqlErrCodeToMsg.js.map +1 -1
- package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
- package/dist/DboBuilder/uploadFile.js +33 -9
- package/dist/DboBuilder/uploadFile.js.map +1 -1
- package/dist/Event_Trigger_Tags.d.ts +1 -1
- package/dist/Event_Trigger_Tags.d.ts.map +1 -1
- package/dist/Event_Trigger_Tags.js +1 -1
- package/dist/Event_Trigger_Tags.js.map +1 -1
- package/dist/FileManager/FileManager.d.ts.map +1 -1
- package/dist/FileManager/FileManager.js +6 -3
- package/dist/FileManager/FileManager.js.map +1 -1
- package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
- package/dist/FileManager/getValidatedFileType.js +18 -16
- package/dist/FileManager/getValidatedFileType.js.map +1 -1
- package/dist/FileManager/initFileManager.d.ts.map +1 -1
- package/dist/FileManager/initFileManager.js +7 -1
- package/dist/FileManager/initFileManager.js.map +1 -1
- package/dist/FileManager/upload.d.ts +1 -1
- package/dist/FileManager/upload.d.ts.map +1 -1
- package/dist/FileManager/upload.js +3 -3
- package/dist/FileManager/upload.js.map +1 -1
- package/dist/FileManager/uploadStream.d.ts +1 -1
- package/dist/FileManager/uploadStream.d.ts.map +1 -1
- package/dist/FileManager/uploadStream.js +6 -7
- package/dist/FileManager/uploadStream.js.map +1 -1
- package/dist/Filtering.d.ts +3 -3
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Filtering.js +70 -37
- package/dist/Filtering.js.map +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js +1 -4
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
- package/dist/JSONBValidation/validation.d.ts.map +1 -1
- package/dist/JSONBValidation/validation.js +46 -24
- package/dist/JSONBValidation/validation.js.map +1 -1
- package/dist/Logging.d.ts +2 -2
- package/dist/Logging.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.js +20 -22
- 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 +37 -11
- package/dist/Prostgles.js.map +1 -1
- package/dist/ProstglesTypes.d.ts.map +1 -1
- package/dist/ProstglesTypes.js +6 -1
- package/dist/ProstglesTypes.js.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +10 -5
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/addSub.d.ts.map +1 -1
- package/dist/PubSubManager/addSub.js +4 -6
- package/dist/PubSubManager/addSub.js.map +1 -1
- package/dist/PubSubManager/addSync.d.ts.map +1 -1
- package/dist/PubSubManager/addSync.js +10 -6
- package/dist/PubSubManager/addSync.js.map +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.d.ts.map +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.js +3 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
- package/dist/PubSubManager/getPubSubManagerInitQuery.d.ts.map +1 -1
- package/dist/PubSubManager/getPubSubManagerInitQuery.js +8 -8
- package/dist/PubSubManager/getPubSubManagerInitQuery.js.map +1 -1
- package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/initPubSubManager.js +7 -9
- package/dist/PubSubManager/initPubSubManager.js.map +1 -1
- package/dist/PubSubManager/notifListener.d.ts.map +1 -1
- package/dist/PubSubManager/notifListener.js +23 -12
- package/dist/PubSubManager/notifListener.js.map +1 -1
- package/dist/PubSubManager/orphanTriggerCheck.d.ts.map +1 -1
- package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
- package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
- package/dist/PubSubManager/pushSubData.js +1 -1
- package/dist/PubSubManager/pushSubData.js.map +1 -1
- package/dist/PublishParser/PublishParser.d.ts +1 -1
- package/dist/PublishParser/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.js +25 -14
- package/dist/PublishParser/PublishParser.js.map +1 -1
- package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
- package/dist/PublishParser/getFileTableRules.js +23 -16
- package/dist/PublishParser/getFileTableRules.js.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.js +39 -16
- package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.js +42 -22
- package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js +5 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/RestApi.d.ts +1 -1
- package/dist/RestApi.d.ts.map +1 -1
- package/dist/RestApi.js +1 -1
- package/dist/RestApi.js.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.d.ts +2 -2
- package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.js +11 -9
- package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
- package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts.map +1 -1
- package/dist/SchemaWatch/getValidatedWatchSchemaType.js +3 -3
- package/dist/SchemaWatch/getValidatedWatchSchemaType.js.map +1 -1
- package/dist/SchemaWatch/getWatchSchemaTagList.d.ts.map +1 -1
- package/dist/SchemaWatch/getWatchSchemaTagList.js +12 -6
- package/dist/SchemaWatch/getWatchSchemaTagList.js.map +1 -1
- package/dist/SyncReplication.d.ts.map +1 -1
- package/dist/SyncReplication.js +84 -42
- package/dist/SyncReplication.js.map +1 -1
- package/dist/TableConfig/TableConfig.d.ts +5 -5
- package/dist/TableConfig/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig/TableConfig.js +18 -5
- package/dist/TableConfig/TableConfig.js.map +1 -1
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts +2 -2
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
- package/dist/TableConfig/getColumnDefinitionQuery.js +20 -9
- package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +3 -3
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.js +12 -7
- package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.d.ts +1 -1
- package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.js +6 -4
- package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
- package/dist/TableConfig/getPGIndexes.d.ts.map +1 -1
- package/dist/TableConfig/getPGIndexes.js.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.d.ts +1 -1
- package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.js +38 -19
- package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
- package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
- package/dist/TableConfig/initTableConfig.js +91 -43
- package/dist/TableConfig/initTableConfig.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/initProstgles.d.ts.map +1 -1
- package/dist/initProstgles.js +14 -10
- package/dist/initProstgles.js.map +1 -1
- package/dist/onSocketConnected.d.ts.map +1 -1
- package/dist/onSocketConnected.js +38 -16
- package/dist/onSocketConnected.js.map +1 -1
- package/dist/runClientRequest.d.ts.map +1 -1
- package/dist/runClientRequest.js +33 -14
- package/dist/runClientRequest.js.map +1 -1
- package/dist/shortestPath.d.ts.map +1 -1
- package/dist/shortestPath.js +1 -1
- package/dist/shortestPath.js.map +1 -1
- package/dist/typeTests/dboTypeCheck.js.map +1 -1
- package/examples/full-example-typescript/DBoGenerated.d.ts +112 -54
- package/examples/full-example-typescript/DBoGenerated.js +3 -3
- package/examples/full-example-typescript/home.html +28 -26
- package/examples/full-example-typescript/index.d.ts +1 -1
- package/examples/full-example-typescript/index.js +80 -53
- package/examples/full-example-vanilla/home.html +151 -125
- package/examples/server/javascript/index.js +17 -19
- package/lib/Auth/AuthHandler.ts +234 -155
- package/lib/Auth/AuthTypes.ts +27 -4
- package/lib/Auth/getSafeReturnURL.ts +35 -21
- package/lib/Auth/sendEmail.ts +34 -31
- package/lib/Auth/setAuthProviders.ts +94 -71
- package/lib/Auth/setEmailProvider.ts +45 -27
- package/lib/Auth/setupAuthRoutes.ts +164 -100
- package/lib/DBEventsManager.ts +87 -65
- package/lib/DBSchemaBuilder.ts +62 -28
- package/lib/DboBuilder/DboBuilder.ts +45 -21
- package/lib/DboBuilder/DboBuilderTypes.ts +99 -95
- package/lib/DboBuilder/QueryBuilder/Functions.ts +862 -580
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +202 -141
- package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +199 -124
- package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +209 -148
- package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +101 -75
- package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +10 -5
- package/lib/DboBuilder/QueryStreamer.ts +207 -100
- package/lib/DboBuilder/TableHandler/DataValidator.ts +253 -148
- package/lib/DboBuilder/TableHandler/TableHandler.ts +155 -60
- package/lib/DboBuilder/TableHandler/delete.ts +82 -29
- package/lib/DboBuilder/TableHandler/insert.ts +177 -81
- package/lib/DboBuilder/TableHandler/insertTest.ts +13 -7
- package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +35 -21
- package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +95 -45
- package/lib/DboBuilder/TableHandler/update.ts +54 -14
- package/lib/DboBuilder/TableHandler/updateBatch.ts +59 -21
- package/lib/DboBuilder/TableHandler/updateFile.ts +57 -26
- package/lib/DboBuilder/TableHandler/upsert.ts +58 -13
- package/lib/DboBuilder/ViewHandler/ViewHandler.ts +264 -121
- package/lib/DboBuilder/ViewHandler/count.ts +56 -25
- package/lib/DboBuilder/ViewHandler/find.ts +153 -68
- package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +59 -32
- package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +31 -19
- package/lib/DboBuilder/ViewHandler/getInfo.ts +47 -16
- package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +91 -57
- package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +51 -29
- package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +35 -29
- package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +130 -76
- package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +140 -92
- package/lib/DboBuilder/ViewHandler/prepareWhere.ts +66 -26
- package/lib/DboBuilder/ViewHandler/size.ts +56 -22
- package/lib/DboBuilder/ViewHandler/subscribe.ts +122 -46
- package/lib/DboBuilder/ViewHandler/validateViewRules.ts +39 -14
- package/lib/DboBuilder/dboBuilderUtils.ts +41 -18
- package/lib/DboBuilder/getColumns.ts +44 -12
- package/lib/DboBuilder/getCondition.ts +120 -79
- package/lib/DboBuilder/getSubscribeRelatedTables.ts +144 -83
- package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +61 -44
- package/lib/DboBuilder/insertNestedRecords.ts +370 -235
- package/lib/DboBuilder/parseUpdateRules.ts +117 -61
- package/lib/DboBuilder/prepareShortestJoinPaths.ts +115 -56
- package/lib/DboBuilder/runSQL.ts +135 -74
- package/lib/DboBuilder/runTransaction.ts +27 -16
- package/lib/DboBuilder/sqlErrCodeToMsg.ts +502 -244
- package/lib/DboBuilder/uploadFile.ts +67 -31
- package/lib/Event_Trigger_Tags.ts +6 -4
- package/lib/FileManager/FileManager.ts +53 -21
- package/lib/FileManager/getValidatedFileType.ts +79 -35
- package/lib/FileManager/initFileManager.ts +21 -9
- package/lib/FileManager/upload.ts +21 -19
- package/lib/FileManager/uploadStream.ts +33 -34
- package/lib/Filtering.ts +249 -197
- package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +2 -7
- package/lib/JSONBValidation/validation.ts +147 -82
- package/lib/Logging.ts +107 -97
- package/lib/PostgresNotifListenManager.ts +96 -63
- package/lib/Prostgles.ts +106 -35
- package/lib/ProstglesTypes.ts +31 -9
- package/lib/PubSubManager/PubSubManager.ts +62 -27
- package/lib/PubSubManager/addSub.ts +56 -37
- package/lib/PubSubManager/addSync.ts +50 -33
- package/lib/PubSubManager/getCreatePubSubManagerError.ts +29 -21
- package/lib/PubSubManager/getPubSubManagerInitQuery.ts +45 -27
- package/lib/PubSubManager/initPubSubManager.ts +27 -18
- package/lib/PubSubManager/notifListener.ts +77 -59
- package/lib/PubSubManager/orphanTriggerCheck.ts +5 -4
- package/lib/PubSubManager/pushSubData.ts +11 -9
- package/lib/PublishParser/PublishParser.ts +102 -44
- package/lib/PublishParser/getFileTableRules.ts +97 -54
- package/lib/PublishParser/getSchemaFromPublish.ts +146 -74
- package/lib/PublishParser/getTableRulesWithoutFileTable.ts +101 -51
- package/lib/PublishParser/publishTypesAndUtils.ts +74 -23
- package/lib/RestApi.ts +10 -2
- package/lib/SchemaWatch/SchemaWatch.ts +52 -34
- package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +1 -1
- package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +32 -22
- package/lib/SchemaWatch/getWatchSchemaTagList.ts +24 -16
- package/lib/SyncReplication.ts +376 -190
- package/lib/TableConfig/TableConfig.ts +200 -136
- package/lib/TableConfig/getColumnDefinitionQuery.ts +65 -44
- package/lib/TableConfig/getConstraintDefinitionQueries.ts +41 -25
- package/lib/TableConfig/getFutureTableSchema.ts +31 -21
- package/lib/TableConfig/getPGIndexes.ts +7 -4
- package/lib/TableConfig/getTableColumnQueries.ts +101 -54
- package/lib/TableConfig/initTableConfig.ts +192 -101
- package/lib/index.ts +6 -5
- package/lib/initProstgles.ts +57 -51
- package/lib/onSocketConnected.ts +75 -40
- package/lib/runClientRequest.ts +148 -79
- package/lib/shortestPath.ts +80 -76
- package/lib/typeTests/DBoGenerated.d.ts +5 -1
- package/lib/typeTests/dboTypeCheck.ts +8 -8
- package/package.json +1 -1
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
AnyObject,
|
|
3
|
+
DBSchema,
|
|
4
|
+
FullFilter,
|
|
5
|
+
Method,
|
|
6
|
+
RULE_METHODS,
|
|
7
|
+
} from "prostgles-types";
|
|
2
8
|
import type { DBOFullyTyped, PublishFullyTyped } from "../DBSchemaBuilder";
|
|
3
9
|
import {
|
|
4
10
|
CommonTableRules,
|
|
@@ -9,8 +15,11 @@ import {
|
|
|
9
15
|
} from "../DboBuilder/DboBuilder";
|
|
10
16
|
import { DB, DBHandlerServer } from "../Prostgles";
|
|
11
17
|
|
|
12
|
-
export type PublishMethods<
|
|
13
|
-
|
|
18
|
+
export type PublishMethods<
|
|
19
|
+
S = void,
|
|
20
|
+
SUser extends SessionUser = SessionUser,
|
|
21
|
+
> = (
|
|
22
|
+
params: PublishParams<S, SUser>,
|
|
14
23
|
) => { [key: string]: Method } | Promise<{ [key: string]: Method } | null>;
|
|
15
24
|
|
|
16
25
|
export type Awaitable<T> = T | Promise<T>;
|
|
@@ -71,7 +80,11 @@ export const RULE_TO_METHODS = [
|
|
|
71
80
|
rule: "update",
|
|
72
81
|
sqlRule: "update",
|
|
73
82
|
methods: RULE_METHODS.update,
|
|
74
|
-
no_limits: <UpdateRule>{
|
|
83
|
+
no_limits: <UpdateRule>{
|
|
84
|
+
fields: "*",
|
|
85
|
+
filterFields: "*",
|
|
86
|
+
returningFields: "*",
|
|
87
|
+
},
|
|
75
88
|
table_only: true,
|
|
76
89
|
allowed_params: {
|
|
77
90
|
checkFilter: 1,
|
|
@@ -158,7 +171,10 @@ export type DeleteRequestData = {
|
|
|
158
171
|
filter: object;
|
|
159
172
|
returning: FieldFilter;
|
|
160
173
|
};
|
|
161
|
-
export type UpdateRequestDataOne<
|
|
174
|
+
export type UpdateRequestDataOne<
|
|
175
|
+
R extends AnyObject,
|
|
176
|
+
S extends DBSchema | void = void,
|
|
177
|
+
> = {
|
|
162
178
|
filter: FullFilter<R, S>;
|
|
163
179
|
data: Partial<R>;
|
|
164
180
|
returning: FieldFilter<R>;
|
|
@@ -179,28 +195,42 @@ export type ValidateRowArgs<R = AnyObject, DBX = DBHandlerServer> = {
|
|
|
179
195
|
dbx: DBX;
|
|
180
196
|
localParams: LocalParams;
|
|
181
197
|
};
|
|
182
|
-
export type ValidateUpdateRowArgs<
|
|
198
|
+
export type ValidateUpdateRowArgs<
|
|
199
|
+
U = Partial<AnyObject>,
|
|
200
|
+
F = Filter,
|
|
201
|
+
DBX = DBHandlerServer,
|
|
202
|
+
> = {
|
|
183
203
|
update: U;
|
|
184
204
|
filter: F;
|
|
185
205
|
dbx: DBX;
|
|
186
206
|
localParams: LocalParams;
|
|
187
207
|
};
|
|
188
208
|
export type ValidateRow<R extends AnyObject = AnyObject, S = void> = (
|
|
189
|
-
args: ValidateRowArgs<R, DBOFullyTyped<S
|
|
209
|
+
args: ValidateRowArgs<R, DBOFullyTyped<S>>,
|
|
190
210
|
) => R | Promise<R>;
|
|
191
211
|
export type PostValidateRow<R extends AnyObject = AnyObject, S = void> = (
|
|
192
|
-
args: ValidateRowArgs<R, DBOFullyTyped<S
|
|
212
|
+
args: ValidateRowArgs<R, DBOFullyTyped<S>>,
|
|
193
213
|
) => void | Promise<void>;
|
|
194
|
-
export type PostValidateRowBasic = (
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
214
|
+
export type PostValidateRowBasic = (
|
|
215
|
+
args: ValidateRowArgs,
|
|
216
|
+
) => void | Promise<void>;
|
|
217
|
+
export type ValidateRowBasic = (
|
|
218
|
+
args: ValidateRowArgs,
|
|
219
|
+
) => AnyObject | Promise<AnyObject>;
|
|
220
|
+
export type ValidateUpdateRow<
|
|
221
|
+
R extends AnyObject = AnyObject,
|
|
222
|
+
S extends DBSchema | void = void,
|
|
223
|
+
> = (
|
|
224
|
+
args: ValidateUpdateRowArgs<Partial<R>, FullFilter<R, S>, DBOFullyTyped<S>>,
|
|
198
225
|
) => Partial<R> | Promise<Partial<R>>;
|
|
199
226
|
export type ValidateUpdateRowBasic = (
|
|
200
|
-
args: ValidateUpdateRowArgs
|
|
227
|
+
args: ValidateUpdateRowArgs,
|
|
201
228
|
) => AnyObject | Promise<AnyObject>;
|
|
202
229
|
|
|
203
|
-
export type SelectRule<
|
|
230
|
+
export type SelectRule<
|
|
231
|
+
Cols extends AnyObject = AnyObject,
|
|
232
|
+
S extends DBSchema | void = void,
|
|
233
|
+
> = {
|
|
204
234
|
/**
|
|
205
235
|
* Fields allowed to be selected.
|
|
206
236
|
* Tip: Use false to exclude field
|
|
@@ -231,7 +261,9 @@ export type SelectRule<Cols extends AnyObject = AnyObject, S extends DBSchema |
|
|
|
231
261
|
/**
|
|
232
262
|
* Validation logic to check/update data for each request
|
|
233
263
|
*/
|
|
234
|
-
validate?(
|
|
264
|
+
validate?(
|
|
265
|
+
args: SelectRequestData,
|
|
266
|
+
): SelectRequestData | Promise<SelectRequestData>;
|
|
235
267
|
};
|
|
236
268
|
|
|
237
269
|
export type CommonInsertUpdateRule<
|
|
@@ -279,7 +311,9 @@ export type InsertRule<
|
|
|
279
311
|
* Validation logic to check/update data after the insert.
|
|
280
312
|
* Happens in the same transaction so upon throwing an error the record will be deleted (not committed)
|
|
281
313
|
*/
|
|
282
|
-
postValidate?: S extends DBSchema
|
|
314
|
+
postValidate?: S extends DBSchema
|
|
315
|
+
? PostValidateRow<Required<Cols>, S>
|
|
316
|
+
: PostValidateRowBasic;
|
|
283
317
|
|
|
284
318
|
/**
|
|
285
319
|
* If defined then only nested inserts from these tables are allowed
|
|
@@ -331,16 +365,23 @@ export type UpdateRule<
|
|
|
331
365
|
/**
|
|
332
366
|
* Validation logic to check/update data for each request
|
|
333
367
|
*/
|
|
334
|
-
validate?: S extends DBSchema
|
|
368
|
+
validate?: S extends DBSchema
|
|
369
|
+
? ValidateUpdateRow<Cols, S>
|
|
370
|
+
: ValidateUpdateRowBasic;
|
|
335
371
|
|
|
336
372
|
/**
|
|
337
373
|
* Validation logic to check/update data after the insert.
|
|
338
374
|
* Happens in the same transaction so upon throwing an error the record will be deleted (not committed)
|
|
339
375
|
*/
|
|
340
|
-
postValidate?: S extends DBSchema
|
|
376
|
+
postValidate?: S extends DBSchema
|
|
377
|
+
? PostValidateRow<Required<Cols>, S>
|
|
378
|
+
: PostValidateRowBasic;
|
|
341
379
|
};
|
|
342
380
|
|
|
343
|
-
export type DeleteRule<
|
|
381
|
+
export type DeleteRule<
|
|
382
|
+
Cols extends AnyObject = AnyObject,
|
|
383
|
+
S extends DBSchema | void = void,
|
|
384
|
+
> = {
|
|
344
385
|
/**
|
|
345
386
|
* Filter added to every query (e.g. user_id) to restrict access
|
|
346
387
|
*/
|
|
@@ -407,7 +448,10 @@ export type TableRule<
|
|
|
407
448
|
sync?: SyncRule<RowType>;
|
|
408
449
|
subscribe?: SubscribeRule;
|
|
409
450
|
};
|
|
410
|
-
export type PublishViewRule<
|
|
451
|
+
export type PublishViewRule<
|
|
452
|
+
Col extends AnyObject = AnyObject,
|
|
453
|
+
S extends DBSchema | void = void,
|
|
454
|
+
> = {
|
|
411
455
|
select?: SelectRule<Col, S> | PublishAllOrNothing;
|
|
412
456
|
getColumns?: PublishAllOrNothing;
|
|
413
457
|
getInfo?: PublishAllOrNothing;
|
|
@@ -451,12 +495,19 @@ export type PublishParams<S = void, SUser extends SessionUser = SessionUser> = {
|
|
|
451
495
|
export type RequestParams = { dbo?: DBHandlerServer; socket?: any };
|
|
452
496
|
export type PublishAllOrNothing = boolean | "*" | null;
|
|
453
497
|
export type PublishObject = {
|
|
454
|
-
[table_name: string]:
|
|
498
|
+
[table_name: string]:
|
|
499
|
+
| PublishTableRule
|
|
500
|
+
| PublishViewRule
|
|
501
|
+
| PublishAllOrNothing;
|
|
455
502
|
};
|
|
456
503
|
export type ParsedPublishTables = {
|
|
457
504
|
[table_name: string]: ParsedPublishTable;
|
|
458
505
|
};
|
|
459
|
-
export type PublishedResult<Schema = void> =
|
|
506
|
+
export type PublishedResult<Schema = void> =
|
|
507
|
+
| PublishAllOrNothing
|
|
508
|
+
| PublishFullyTyped<Schema>;
|
|
460
509
|
export type Publish<Schema = void, SUser extends SessionUser = SessionUser> =
|
|
461
510
|
| PublishedResult<Schema>
|
|
462
|
-
| ((
|
|
511
|
+
| ((
|
|
512
|
+
params: PublishParams<Schema, SUser>,
|
|
513
|
+
) => Awaitable<PublishedResult<Schema>>);
|
package/lib/RestApi.ts
CHANGED
|
@@ -4,7 +4,11 @@ import { HTTPCODES } from "./Auth/AuthHandler";
|
|
|
4
4
|
import { ExpressReq, ExpressRes } from "./Auth/AuthTypes";
|
|
5
5
|
import { getSerializedClientErrorFromPGError } from "./DboBuilder/DboBuilder";
|
|
6
6
|
import { Prostgles } from "./Prostgles";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
runClientMethod,
|
|
9
|
+
runClientRequest,
|
|
10
|
+
runClientSqlRequest,
|
|
11
|
+
} from "./runClientRequest";
|
|
8
12
|
import { VoidFunction } from "./SchemaWatch/SchemaWatch";
|
|
9
13
|
const jsonParser = bodyParser.json();
|
|
10
14
|
|
|
@@ -49,7 +53,11 @@ export class RestApi {
|
|
|
49
53
|
schema: string;
|
|
50
54
|
};
|
|
51
55
|
expressApp: Express;
|
|
52
|
-
constructor({
|
|
56
|
+
constructor({
|
|
57
|
+
expressApp,
|
|
58
|
+
routePrefix,
|
|
59
|
+
prostgles,
|
|
60
|
+
}: RestApiConfig & { prostgles: Prostgles }) {
|
|
53
61
|
this.prostgles = prostgles;
|
|
54
62
|
this.routes = {
|
|
55
63
|
db: `${routePrefix}/db/:tableName/:command`,
|
|
@@ -1,67 +1,83 @@
|
|
|
1
1
|
import type { DboBuilder } from "../DboBuilder/DboBuilder";
|
|
2
2
|
import { EVENT_TRIGGER_TAGS } from "../Event_Trigger_Tags";
|
|
3
3
|
import { PubSubManager, log } from "../PubSubManager/PubSubManager";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import {
|
|
5
|
+
ValidatedWatchSchemaType,
|
|
6
|
+
getValidatedWatchSchemaType,
|
|
7
|
+
} from "./getValidatedWatchSchemaType";
|
|
8
|
+
const COMMAND_FIRST_KEYWORDS = EVENT_TRIGGER_TAGS.map(
|
|
9
|
+
(tag) => tag.split(" ")[0]!,
|
|
10
|
+
).filter(
|
|
11
|
+
(tag) => tag !== "SELECT",
|
|
12
|
+
); /** SELECT INTO is not easily detectable with pg-node (command = "SELECT") */
|
|
8
13
|
|
|
9
|
-
const DB_FALLBACK_COMMANDS = Array.from(new Set(COMMAND_FIRST_KEYWORDS))
|
|
10
|
-
|
|
11
|
-
"DO",
|
|
12
|
-
"COMMIT" // Transaction block
|
|
13
|
-
]
|
|
14
|
+
const DB_FALLBACK_COMMANDS = Array.from(new Set(COMMAND_FIRST_KEYWORDS)).concat(
|
|
15
|
+
[
|
|
16
|
+
"DO", // Do statement
|
|
17
|
+
"COMMIT", // Transaction block
|
|
18
|
+
],
|
|
19
|
+
);
|
|
14
20
|
|
|
15
21
|
export type VoidFunction = () => void;
|
|
16
22
|
|
|
17
|
-
export type OnSchemaChangeCallback = (
|
|
23
|
+
export type OnSchemaChangeCallback = (event: {
|
|
24
|
+
command: string;
|
|
25
|
+
query: string;
|
|
26
|
+
}) => void;
|
|
18
27
|
|
|
19
28
|
export class SchemaWatch {
|
|
20
|
-
|
|
21
29
|
dboBuilder: DboBuilder;
|
|
22
30
|
type: ValidatedWatchSchemaType;
|
|
23
|
-
private constructor(dboBuilder: DboBuilder){
|
|
31
|
+
private constructor(dboBuilder: DboBuilder) {
|
|
24
32
|
this.dboBuilder = dboBuilder;
|
|
25
33
|
this.type = getValidatedWatchSchemaType(dboBuilder);
|
|
26
|
-
if(this.type.watchType === "NONE") {
|
|
34
|
+
if (this.type.watchType === "NONE") {
|
|
27
35
|
this.onSchemaChange = undefined;
|
|
28
36
|
this.onSchemaChangeFallback = undefined;
|
|
29
37
|
}
|
|
30
|
-
if(this.type.watchType === "DDL_trigger") {
|
|
38
|
+
if (this.type.watchType === "DDL_trigger") {
|
|
31
39
|
this.onSchemaChangeFallback = undefined;
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
static create = async (dboBuilder: DboBuilder) => {
|
|
36
44
|
const instance = new SchemaWatch(dboBuilder);
|
|
37
|
-
if(instance.type.watchType === "DDL_trigger") {
|
|
45
|
+
if (instance.type.watchType === "DDL_trigger") {
|
|
38
46
|
await dboBuilder.getPubSubManager();
|
|
39
47
|
// TODO finish createSchemaWatchEventTrigger to ensure the query is not used in NOTIFY and exclude happens inside Postgres
|
|
40
48
|
}
|
|
41
49
|
return instance;
|
|
42
|
-
}
|
|
50
|
+
};
|
|
43
51
|
|
|
44
52
|
/**
|
|
45
53
|
* Fallback for watchSchema in case of not a superuser (cannot add db event listener)
|
|
46
54
|
*/
|
|
47
|
-
onSchemaChangeFallback: OnSchemaChangeCallback | undefined = async ({
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
onSchemaChangeFallback: OnSchemaChangeCallback | undefined = async ({
|
|
56
|
+
command,
|
|
57
|
+
query,
|
|
58
|
+
}) => {
|
|
59
|
+
if (
|
|
60
|
+
typeof query === "string" &&
|
|
61
|
+
query.includes(PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID)
|
|
62
|
+
) {
|
|
63
|
+
log(
|
|
64
|
+
"Schema change event excluded from triggers due to EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID",
|
|
65
|
+
);
|
|
51
66
|
return;
|
|
52
67
|
}
|
|
53
|
-
if(
|
|
54
|
-
this.type.watchType !== "prostgles_queries" ||
|
|
55
|
-
!this.onSchemaChange ||
|
|
68
|
+
if (
|
|
69
|
+
this.type.watchType !== "prostgles_queries" ||
|
|
70
|
+
!this.onSchemaChange ||
|
|
56
71
|
!DB_FALLBACK_COMMANDS.includes(command)
|
|
57
|
-
)
|
|
72
|
+
)
|
|
73
|
+
return;
|
|
74
|
+
|
|
75
|
+
this.onSchemaChange({ command, query });
|
|
76
|
+
};
|
|
58
77
|
|
|
59
|
-
this.onSchemaChange({ command, query })
|
|
60
|
-
}
|
|
61
|
-
|
|
62
78
|
onSchemaChange: OnSchemaChangeCallback | undefined = async (event) => {
|
|
63
|
-
|
|
64
|
-
|
|
79
|
+
const { watchSchema, onReady, tsGeneratedTypesDir } =
|
|
80
|
+
this.dboBuilder.prostgles.opts;
|
|
65
81
|
if (watchSchema && this.dboBuilder.prostgles.loaded) {
|
|
66
82
|
log("Schema changed");
|
|
67
83
|
const { query, command } = event;
|
|
@@ -70,7 +86,6 @@ export class SchemaWatch {
|
|
|
70
86
|
if (typeof watchSchema === "function") {
|
|
71
87
|
/* Only call the provided func */
|
|
72
88
|
watchSchema(event);
|
|
73
|
-
|
|
74
89
|
} else if (watchSchema === "hotReloadMode") {
|
|
75
90
|
if (tsGeneratedTypesDir) {
|
|
76
91
|
/* Hot reload integration. Will only touch tsGeneratedTypesDir */
|
|
@@ -79,12 +94,15 @@ export class SchemaWatch {
|
|
|
79
94
|
await this.dboBuilder.prostgles.refreshDBO();
|
|
80
95
|
this.dboBuilder.prostgles.writeDBSchema(true);
|
|
81
96
|
}
|
|
82
|
-
|
|
83
97
|
} else if (watchSchema) {
|
|
84
98
|
/* Full re-init. Sockets must reconnect */
|
|
85
|
-
console.log("watchSchema: Full re-initialisation", { query })
|
|
86
|
-
this.dboBuilder.prostgles.init(onReady as any, {
|
|
99
|
+
console.log("watchSchema: Full re-initialisation", { query });
|
|
100
|
+
this.dboBuilder.prostgles.init(onReady as any, {
|
|
101
|
+
type: "schema change",
|
|
102
|
+
query,
|
|
103
|
+
command,
|
|
104
|
+
});
|
|
87
105
|
}
|
|
88
106
|
}
|
|
89
107
|
};
|
|
90
|
-
}
|
|
108
|
+
}
|
|
@@ -1,45 +1,55 @@
|
|
|
1
1
|
import type { DboBuilder } from "../DboBuilder/DboBuilder";
|
|
2
2
|
import { OnSchemaChangeCallback } from "./SchemaWatch";
|
|
3
3
|
|
|
4
|
-
export type ValidatedWatchSchemaType =
|
|
5
|
-
| { watchType: "NONE" }
|
|
6
|
-
| { watchType: "DDL_trigger"; onChange?: OnSchemaChangeCallback
|
|
7
|
-
| {
|
|
4
|
+
export type ValidatedWatchSchemaType =
|
|
5
|
+
| { watchType: "NONE" }
|
|
6
|
+
| { watchType: "DDL_trigger"; onChange?: OnSchemaChangeCallback }
|
|
7
|
+
| {
|
|
8
|
+
watchType: "prostgles_queries";
|
|
9
|
+
onChange?: OnSchemaChangeCallback;
|
|
10
|
+
isFallbackFromDDL: boolean;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const getValidatedWatchSchemaType = (
|
|
14
|
+
dboBuilder: DboBuilder,
|
|
15
|
+
): ValidatedWatchSchemaType => {
|
|
16
|
+
const { watchSchema, watchSchemaType, tsGeneratedTypesDir, disableRealtime } =
|
|
17
|
+
dboBuilder.prostgles.opts;
|
|
18
|
+
if (!watchSchema) return { watchType: "NONE" };
|
|
8
19
|
|
|
9
|
-
export const getValidatedWatchSchemaType = (dboBuilder: DboBuilder): ValidatedWatchSchemaType => {
|
|
10
|
-
const {watchSchema, watchSchemaType, tsGeneratedTypesDir, disableRealtime } = dboBuilder.prostgles.opts;
|
|
11
|
-
if(!watchSchema) return { watchType: "NONE" };
|
|
12
|
-
|
|
13
20
|
if (watchSchema === "hotReloadMode" && !tsGeneratedTypesDir) {
|
|
14
21
|
throw "tsGeneratedTypesDir option is needed for watchSchema: hotReloadMode to work ";
|
|
15
22
|
}
|
|
16
23
|
|
|
17
|
-
const onChange = typeof watchSchema === "function"? watchSchema : undefined;
|
|
18
|
-
|
|
19
|
-
if(watchSchemaType === "DDL_trigger" || !watchSchemaType){
|
|
20
|
-
if(!dboBuilder.prostgles.isSuperUser || disableRealtime){
|
|
24
|
+
const onChange = typeof watchSchema === "function" ? watchSchema : undefined;
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
if (watchSchemaType === "DDL_trigger" || !watchSchemaType) {
|
|
27
|
+
if (!dboBuilder.prostgles.isSuperUser || disableRealtime) {
|
|
28
|
+
if (watchSchemaType === "DDL_trigger") {
|
|
29
|
+
console.error(
|
|
30
|
+
`watchSchemaType "DDL_trigger" cannot be used because db user is not a superuser. Will fallback to watchSchemaType "prostgles_queries" `,
|
|
31
|
+
);
|
|
24
32
|
} else {
|
|
25
|
-
console.warn(
|
|
33
|
+
console.warn(
|
|
34
|
+
`watchSchema fallback to watchSchemaType "prostgles_queries" due to ${disableRealtime ? "disableRealtime setting" : "non-superuser"}`,
|
|
35
|
+
);
|
|
26
36
|
}
|
|
27
37
|
return {
|
|
28
38
|
watchType: "prostgles_queries",
|
|
29
39
|
onChange,
|
|
30
|
-
isFallbackFromDDL: true
|
|
31
|
-
}
|
|
40
|
+
isFallbackFromDDL: true,
|
|
41
|
+
};
|
|
32
42
|
}
|
|
33
43
|
|
|
34
44
|
return {
|
|
35
45
|
watchType: "DDL_trigger",
|
|
36
|
-
onChange
|
|
46
|
+
onChange,
|
|
37
47
|
};
|
|
38
48
|
}
|
|
39
|
-
|
|
49
|
+
|
|
40
50
|
return {
|
|
41
51
|
watchType: watchSchemaType,
|
|
42
52
|
isFallbackFromDDL: false,
|
|
43
|
-
onChange
|
|
44
|
-
}
|
|
45
|
-
}
|
|
53
|
+
onChange,
|
|
54
|
+
};
|
|
55
|
+
};
|
|
@@ -2,26 +2,34 @@ import { getKeys, isObject } from "prostgles-types";
|
|
|
2
2
|
import { EVENT_TRIGGER_TAGS } from "../Event_Trigger_Tags";
|
|
3
3
|
import { ProstglesInitOptions } from "../ProstglesTypes";
|
|
4
4
|
|
|
5
|
-
export const getWatchSchemaTagList = (
|
|
6
|
-
|
|
5
|
+
export const getWatchSchemaTagList = (
|
|
6
|
+
watchSchema: ProstglesInitOptions["watchSchema"],
|
|
7
|
+
) => {
|
|
8
|
+
if (!watchSchema) return undefined;
|
|
7
9
|
|
|
8
|
-
if(watchSchema === "*"){
|
|
10
|
+
if (watchSchema === "*") {
|
|
9
11
|
return EVENT_TRIGGER_TAGS.slice(0);
|
|
10
|
-
}
|
|
11
|
-
if (isObject(watchSchema) && typeof watchSchema !== "function"){
|
|
12
|
+
}
|
|
13
|
+
if (isObject(watchSchema) && typeof watchSchema !== "function") {
|
|
12
14
|
const watchSchemaKeys = getKeys(watchSchema);
|
|
13
|
-
const isInclusive = Object.values(watchSchema).every(v => v);
|
|
14
|
-
return EVENT_TRIGGER_TAGS
|
|
15
|
-
.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return isInclusive? matches : !matches;
|
|
19
|
-
});
|
|
15
|
+
const isInclusive = Object.values(watchSchema).every((v) => v);
|
|
16
|
+
return EVENT_TRIGGER_TAGS.slice(0).filter((v) => {
|
|
17
|
+
const matches = watchSchemaKeys.includes(v);
|
|
18
|
+
return isInclusive ? matches : !matches;
|
|
19
|
+
});
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
const coreTags: typeof EVENT_TRIGGER_TAGS[number][] = [
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const coreTags: (typeof EVENT_TRIGGER_TAGS)[number][] = [
|
|
23
|
+
"COMMENT",
|
|
24
|
+
"CREATE TABLE",
|
|
25
|
+
"ALTER TABLE",
|
|
26
|
+
"DROP TABLE",
|
|
27
|
+
"CREATE VIEW",
|
|
28
|
+
"DROP VIEW",
|
|
29
|
+
"ALTER VIEW",
|
|
30
|
+
"CREATE TABLE AS",
|
|
31
|
+
"SELECT INTO",
|
|
32
|
+
"CREATE POLICY",
|
|
25
33
|
];
|
|
26
34
|
return coreTags;
|
|
27
|
-
}
|
|
35
|
+
};
|