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,4 @@
|
|
|
1
|
-
import { Method, isObject } from "prostgles-types";
|
|
1
|
+
import { Method, getObjectEntries, isObject } from "prostgles-types";
|
|
2
2
|
import { AuthResult, SessionUser } from "../Auth/AuthTypes";
|
|
3
3
|
import { LocalParams } from "../DboBuilder/DboBuilder";
|
|
4
4
|
import { DB, DBHandlerServer, Prostgles } from "../Prostgles";
|
|
@@ -6,17 +6,33 @@ import { VoidFunction } from "../SchemaWatch/SchemaWatch";
|
|
|
6
6
|
import { getFileTableRules } from "./getFileTableRules";
|
|
7
7
|
import { getSchemaFromPublish } from "./getSchemaFromPublish";
|
|
8
8
|
import { getTableRulesWithoutFileTable } from "./getTableRulesWithoutFileTable";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
DboTable,
|
|
11
|
+
DboTableCommand,
|
|
12
|
+
ParsedPublishTable,
|
|
13
|
+
PublishMethods,
|
|
14
|
+
PublishObject,
|
|
15
|
+
PublishParams,
|
|
16
|
+
RULE_TO_METHODS,
|
|
17
|
+
TableRule,
|
|
18
|
+
} from "./publishTypesAndUtils";
|
|
10
19
|
|
|
11
20
|
export class PublishParser {
|
|
12
21
|
publish: any;
|
|
13
22
|
publishMethods?: PublishMethods<void, SessionUser> | undefined;
|
|
14
23
|
publishRawSQL?: any;
|
|
15
24
|
dbo: DBHandlerServer;
|
|
16
|
-
db: DB
|
|
25
|
+
db: DB;
|
|
17
26
|
prostgles: Prostgles;
|
|
18
27
|
|
|
19
|
-
constructor(
|
|
28
|
+
constructor(
|
|
29
|
+
publish: any,
|
|
30
|
+
publishMethods: PublishMethods<void, SessionUser> | undefined,
|
|
31
|
+
publishRawSQL: any,
|
|
32
|
+
dbo: DBHandlerServer,
|
|
33
|
+
db: DB,
|
|
34
|
+
prostgles: Prostgles
|
|
35
|
+
) {
|
|
20
36
|
this.publish = publish;
|
|
21
37
|
this.publishMethods = publishMethods;
|
|
22
38
|
this.publishRawSQL = publishRawSQL;
|
|
@@ -27,32 +43,42 @@ export class PublishParser {
|
|
|
27
43
|
if (!this.dbo || !this.publish) throw "INTERNAL ERROR: dbo and/or publish missing";
|
|
28
44
|
}
|
|
29
45
|
|
|
30
|
-
async getPublishParams(
|
|
31
|
-
|
|
46
|
+
async getPublishParams(
|
|
47
|
+
localParams: LocalParams,
|
|
48
|
+
clientInfo?: AuthResult
|
|
49
|
+
): Promise<PublishParams> {
|
|
50
|
+
if (!this.dbo) throw "dbo missing";
|
|
32
51
|
return {
|
|
33
|
-
...(clientInfo || await this.prostgles.authHandler?.getClientInfo(localParams)),
|
|
52
|
+
...(clientInfo || (await this.prostgles.authHandler?.getClientInfo(localParams))),
|
|
34
53
|
dbo: this.dbo as any,
|
|
35
54
|
db: this.db,
|
|
36
55
|
socket: localParams.socket!,
|
|
37
56
|
tables: this.prostgles.dboBuilder.tables,
|
|
38
|
-
}
|
|
57
|
+
};
|
|
39
58
|
}
|
|
40
59
|
|
|
41
|
-
async getAllowedMethods(
|
|
42
|
-
|
|
60
|
+
async getAllowedMethods(
|
|
61
|
+
reqInfo: Pick<LocalParams, "httpReq" | "socket">,
|
|
62
|
+
userData?: AuthResult
|
|
63
|
+
): Promise<{ [key: string]: Method }> {
|
|
64
|
+
const methods: { [key: string]: Method } = {};
|
|
43
65
|
|
|
44
66
|
const publishParams = await this.getPublishParams(reqInfo, userData);
|
|
45
67
|
const _methods = await applyParamsIfFunc(this.publishMethods, publishParams);
|
|
46
68
|
|
|
47
69
|
if (_methods && Object.keys(_methods).length) {
|
|
48
|
-
|
|
49
|
-
const isFuncLike = (maybeFunc: VoidFunction | Promise<void>) =>
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
70
|
+
getObjectEntries(_methods).map(([key, method]) => {
|
|
71
|
+
const isFuncLike = (maybeFunc: VoidFunction | Promise<void> | Promise<any>) =>
|
|
72
|
+
typeof maybeFunc === "function" || (maybeFunc && typeof maybeFunc.then === "function");
|
|
73
|
+
if (
|
|
74
|
+
method &&
|
|
75
|
+
(isFuncLike(method as Extract<Method, Promise<any>>) ||
|
|
76
|
+
// @ts-ignore
|
|
77
|
+
(isObject(method) && isFuncLike(method.run)))
|
|
78
|
+
) {
|
|
79
|
+
methods[key] = _methods[key]!;
|
|
54
80
|
} else {
|
|
55
|
-
throw `invalid publishMethods item -> ${key} \n Expecting a function or promise
|
|
81
|
+
throw `invalid publishMethods item -> ${key} \n Expecting a function or promise`;
|
|
56
82
|
}
|
|
57
83
|
});
|
|
58
84
|
}
|
|
@@ -62,16 +88,16 @@ export class PublishParser {
|
|
|
62
88
|
|
|
63
89
|
/**
|
|
64
90
|
* Parses the first level of publish. (If false then nothing if * then all tables and views)
|
|
65
|
-
* @param socket
|
|
66
|
-
* @param user
|
|
91
|
+
* @param socket
|
|
92
|
+
* @param user
|
|
67
93
|
*/
|
|
68
94
|
async getPublish(localParams: LocalParams, clientInfo?: AuthResult): Promise<PublishObject> {
|
|
69
|
-
const publishParams = await this.getPublishParams(localParams, clientInfo)
|
|
95
|
+
const publishParams = await this.getPublishParams(localParams, clientInfo);
|
|
70
96
|
const _publish = await applyParamsIfFunc(this.publish, publishParams);
|
|
71
97
|
|
|
72
98
|
if (_publish === "*") {
|
|
73
99
|
const publish: PublishObject = {};
|
|
74
|
-
this.prostgles.dboBuilder.tablesOrViews?.map(tov => {
|
|
100
|
+
this.prostgles.dboBuilder.tablesOrViews?.map((tov) => {
|
|
75
101
|
publish[tov.name] = "*";
|
|
76
102
|
});
|
|
77
103
|
return publish;
|
|
@@ -79,29 +105,41 @@ export class PublishParser {
|
|
|
79
105
|
|
|
80
106
|
return _publish;
|
|
81
107
|
}
|
|
82
|
-
async getValidatedRequestRuleWusr({
|
|
83
|
-
|
|
108
|
+
async getValidatedRequestRuleWusr({
|
|
109
|
+
tableName,
|
|
110
|
+
command,
|
|
111
|
+
localParams,
|
|
112
|
+
}: DboTableCommand): Promise<TableRule> {
|
|
84
113
|
const clientInfo = await this.prostgles.authHandler!.getClientInfo(localParams);
|
|
85
|
-
const rules = await this.getValidatedRequestRule(
|
|
114
|
+
const rules = await this.getValidatedRequestRule(
|
|
115
|
+
{ tableName, command, localParams },
|
|
116
|
+
clientInfo
|
|
117
|
+
);
|
|
86
118
|
return rules;
|
|
87
119
|
}
|
|
88
120
|
|
|
89
|
-
async getValidatedRequestRule(
|
|
121
|
+
async getValidatedRequestRule(
|
|
122
|
+
{ tableName, command, localParams }: DboTableCommand,
|
|
123
|
+
clientInfo?: AuthResult
|
|
124
|
+
): Promise<TableRule> {
|
|
90
125
|
if (!this.dbo) throw "INTERNAL ERROR: dbo is missing";
|
|
91
126
|
|
|
92
127
|
if (!command || !tableName) throw "command OR tableName are missing";
|
|
93
128
|
|
|
94
|
-
const rtm = RULE_TO_METHODS.find(rtms => (rtms.methods as any).includes(command));
|
|
129
|
+
const rtm = RULE_TO_METHODS.find((rtms) => (rtms.methods as any).includes(command));
|
|
95
130
|
if (!rtm) {
|
|
96
131
|
throw "Invalid command: " + command;
|
|
97
132
|
}
|
|
98
133
|
|
|
99
134
|
/* Must be local request -> allow everything */
|
|
100
135
|
if (!localParams || (!localParams.socket && !localParams.httpReq)) {
|
|
101
|
-
return RULE_TO_METHODS.reduce(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
136
|
+
return RULE_TO_METHODS.reduce(
|
|
137
|
+
(a, v) => ({
|
|
138
|
+
...a,
|
|
139
|
+
[v.rule]: v.no_limits,
|
|
140
|
+
}),
|
|
141
|
+
{}
|
|
142
|
+
);
|
|
105
143
|
}
|
|
106
144
|
|
|
107
145
|
/* Must be from socket. Must have a publish */
|
|
@@ -113,44 +151,64 @@ export class PublishParser {
|
|
|
113
151
|
if (errorInfo) throw errorInfo.error;
|
|
114
152
|
|
|
115
153
|
const table_rule = await this.getTableRules({ tableName, localParams }, clientInfo);
|
|
116
|
-
if (!table_rule)
|
|
117
|
-
|
|
154
|
+
if (!table_rule)
|
|
155
|
+
throw {
|
|
156
|
+
stack: ["getValidatedRequestRule()"],
|
|
157
|
+
message: "Invalid or disallowed table: " + tableName,
|
|
158
|
+
};
|
|
118
159
|
|
|
119
160
|
if (command === "upsert") {
|
|
120
161
|
if (!table_rule.update || !table_rule.insert) {
|
|
121
|
-
throw {
|
|
162
|
+
throw {
|
|
163
|
+
stack: ["getValidatedRequestRule()"],
|
|
164
|
+
message: `Invalid or disallowed command: upsert`,
|
|
165
|
+
};
|
|
122
166
|
}
|
|
123
167
|
}
|
|
124
168
|
|
|
125
169
|
if (rtm && table_rule && table_rule[rtm.rule]) {
|
|
126
170
|
return table_rule;
|
|
127
|
-
} else
|
|
171
|
+
} else
|
|
172
|
+
throw {
|
|
173
|
+
stack: ["getValidatedRequestRule()"],
|
|
174
|
+
message: `Invalid or disallowed command: ${tableName}.${command}`,
|
|
175
|
+
};
|
|
128
176
|
}
|
|
129
177
|
|
|
130
|
-
async getTableRules(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
178
|
+
async getTableRules(
|
|
179
|
+
args: DboTable,
|
|
180
|
+
clientInfo?: AuthResult
|
|
181
|
+
): Promise<ParsedPublishTable | undefined> {
|
|
182
|
+
if (this.dbo[args.tableName]?.is_media) {
|
|
183
|
+
const fileTablePublishRules = await this.getTableRulesWithoutFileTable(args, clientInfo);
|
|
184
|
+
const { rules } = await getFileTableRules.bind(this)(
|
|
185
|
+
args.tableName,
|
|
186
|
+
fileTablePublishRules,
|
|
187
|
+
args.localParams,
|
|
188
|
+
clientInfo
|
|
189
|
+
);
|
|
135
190
|
return rules;
|
|
136
191
|
}
|
|
137
192
|
|
|
138
|
-
return await this.getTableRulesWithoutFileTable(args, clientInfo)
|
|
193
|
+
return await this.getTableRulesWithoutFileTable(args, clientInfo);
|
|
139
194
|
}
|
|
140
195
|
|
|
141
196
|
getTableRulesWithoutFileTable = getTableRulesWithoutFileTable.bind(this);
|
|
142
197
|
|
|
143
198
|
/* Prepares schema for client. Only allowed views and commands will be present */
|
|
144
199
|
getSchemaFromPublish = getSchemaFromPublish.bind(this);
|
|
145
|
-
|
|
146
200
|
}
|
|
147
201
|
|
|
148
202
|
export * from "./publishTypesAndUtils";
|
|
149
203
|
|
|
150
|
-
type FunctionWithArguments = (...args: any) => any
|
|
151
|
-
function applyParamsIfFunc<T>(
|
|
204
|
+
type FunctionWithArguments = (...args: any) => any;
|
|
205
|
+
function applyParamsIfFunc<T>(
|
|
206
|
+
maybeFunc: T,
|
|
207
|
+
...params: any
|
|
208
|
+
): T extends FunctionWithArguments ? ReturnType<T> : T {
|
|
152
209
|
if (
|
|
153
|
-
|
|
210
|
+
maybeFunc !== null &&
|
|
211
|
+
maybeFunc !== undefined &&
|
|
154
212
|
//@ts-ignore
|
|
155
213
|
(typeof maybeFunc === "function" || typeof maybeFunc.then === "function")
|
|
156
214
|
) {
|
|
@@ -7,72 +7,102 @@ import { ParsedPublishTable, UpdateRule } from "./publishTypesAndUtils";
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Permissions for referencedTables columns are propagated to the file table (even if file table has no permissions)
|
|
10
|
-
* File table existing permissions that include the referenced column resulting permissions are left as they are
|
|
10
|
+
* File table existing permissions that include the referenced column resulting permissions are left as they are
|
|
11
11
|
* Select on a referenced column allows selecting from file table any records that join the referenced table and the select filters
|
|
12
|
-
* Insert on a referenced column allows inserting a file (according to any file type/size rules) only if it is a nested from that table
|
|
13
|
-
* Update on a referenced column allows updating a file (delete and insert) only if it is a nested update from that table
|
|
14
|
-
* Delete on a referenced column table allows deleting any referenced file
|
|
15
|
-
*/
|
|
16
|
-
export async function getFileTableRules
|
|
12
|
+
* Insert on a referenced column allows inserting a file (according to any file type/size rules) only if it is a nested from that table
|
|
13
|
+
* Update on a referenced column allows updating a file (delete and insert) only if it is a nested update from that table
|
|
14
|
+
* Delete on a referenced column table allows deleting any referenced file
|
|
15
|
+
*/
|
|
16
|
+
export async function getFileTableRules(
|
|
17
|
+
this: PublishParser,
|
|
18
|
+
fileTableName: string,
|
|
19
|
+
fileTablePublishRules: ParsedPublishTable | undefined,
|
|
20
|
+
localParams: LocalParams,
|
|
21
|
+
clientInfo: AuthResult | undefined,
|
|
22
|
+
) {
|
|
17
23
|
const forcedDeleteFilters: FullFilter<AnyObject, void>[] = [];
|
|
18
24
|
const forcedSelectFilters: FullFilter<AnyObject, void>[] = [];
|
|
19
|
-
const forcedUpdateFilters: FullFilter<AnyObject, void>[] = [];
|
|
25
|
+
const forcedUpdateFilters: FullFilter<AnyObject, void>[] = [];
|
|
20
26
|
const allowedNestedInserts: { table: string; column: string }[] = [];
|
|
21
|
-
const referencedColumns = this.prostgles.dboBuilder.tablesOrViews
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
const referencedColumns = this.prostgles.dboBuilder.tablesOrViews
|
|
28
|
+
?.filter((t) => !t.is_view && t.name !== fileTableName)
|
|
29
|
+
.map((t) => {
|
|
30
|
+
const refCols = t.columns.filter((c) =>
|
|
31
|
+
c.references?.some((r) => r.ftable === fileTableName),
|
|
32
|
+
);
|
|
33
|
+
if (!refCols.length) return undefined;
|
|
34
|
+
return {
|
|
35
|
+
tableName: t.name,
|
|
36
|
+
fileColumns: refCols.map((c) => c.name),
|
|
37
|
+
allColumns: t.columns.map((c) => c.name),
|
|
38
|
+
};
|
|
39
|
+
})
|
|
40
|
+
.filter(isDefined);
|
|
41
|
+
if (referencedColumns?.length) {
|
|
42
|
+
for await (const {
|
|
43
|
+
tableName,
|
|
44
|
+
fileColumns,
|
|
45
|
+
allColumns,
|
|
46
|
+
} of referencedColumns) {
|
|
47
|
+
const table_rules = await this.getTableRules(
|
|
48
|
+
{ localParams, tableName },
|
|
49
|
+
clientInfo,
|
|
50
|
+
);
|
|
51
|
+
if (table_rules) {
|
|
52
|
+
fileColumns.map((column) => {
|
|
35
53
|
const path = [{ table: tableName, on: [{ id: column }] }];
|
|
36
|
-
if(table_rules.delete){
|
|
54
|
+
if (table_rules.delete) {
|
|
37
55
|
forcedDeleteFilters.push({
|
|
38
56
|
$existsJoined: {
|
|
39
57
|
path,
|
|
40
58
|
filter: table_rules.delete.forcedFilter ?? {},
|
|
41
|
-
}
|
|
42
|
-
})
|
|
59
|
+
},
|
|
60
|
+
});
|
|
43
61
|
}
|
|
44
|
-
if(table_rules.select){
|
|
45
|
-
const parsedFields = parseFieldFilter(
|
|
62
|
+
if (table_rules.select) {
|
|
63
|
+
const parsedFields = parseFieldFilter(
|
|
64
|
+
table_rules.select.fields,
|
|
65
|
+
false,
|
|
66
|
+
allColumns,
|
|
67
|
+
);
|
|
46
68
|
/** Must be allowed to view this column */
|
|
47
|
-
if(parsedFields.includes(column as any)){
|
|
69
|
+
if (parsedFields.includes(column as any)) {
|
|
48
70
|
forcedSelectFilters.push({
|
|
49
71
|
$existsJoined: {
|
|
50
72
|
path,
|
|
51
73
|
filter: table_rules.select.forcedFilter ?? {},
|
|
52
|
-
}
|
|
74
|
+
},
|
|
53
75
|
});
|
|
54
76
|
}
|
|
55
77
|
}
|
|
56
|
-
if(table_rules.insert){
|
|
57
|
-
const parsedFields = parseFieldFilter(
|
|
78
|
+
if (table_rules.insert) {
|
|
79
|
+
const parsedFields = parseFieldFilter(
|
|
80
|
+
table_rules.insert.fields,
|
|
81
|
+
false,
|
|
82
|
+
allColumns,
|
|
83
|
+
);
|
|
58
84
|
/** Must be allowed to view this column */
|
|
59
|
-
if(parsedFields.includes(column as any)){
|
|
85
|
+
if (parsedFields.includes(column as any)) {
|
|
60
86
|
allowedNestedInserts.push({ table: tableName, column });
|
|
61
87
|
}
|
|
62
88
|
}
|
|
63
|
-
if(table_rules.update){
|
|
64
|
-
const parsedFields = parseFieldFilter(
|
|
89
|
+
if (table_rules.update) {
|
|
90
|
+
const parsedFields = parseFieldFilter(
|
|
91
|
+
table_rules.update.fields,
|
|
92
|
+
false,
|
|
93
|
+
allColumns,
|
|
94
|
+
);
|
|
65
95
|
/** Must be allowed to view this column */
|
|
66
|
-
if(parsedFields.includes(column as any)){
|
|
96
|
+
if (parsedFields.includes(column as any)) {
|
|
67
97
|
forcedUpdateFilters.push({
|
|
68
98
|
$existsJoined: {
|
|
69
99
|
path,
|
|
70
100
|
filter: table_rules.update.forcedFilter ?? {},
|
|
71
|
-
}
|
|
101
|
+
},
|
|
72
102
|
});
|
|
73
103
|
}
|
|
74
104
|
}
|
|
75
|
-
})
|
|
105
|
+
});
|
|
76
106
|
}
|
|
77
107
|
}
|
|
78
108
|
}
|
|
@@ -81,44 +111,57 @@ export async function getFileTableRules (this: PublishParser, fileTableName: str
|
|
|
81
111
|
...fileTablePublishRules,
|
|
82
112
|
};
|
|
83
113
|
|
|
84
|
-
const getForcedFilter = (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
114
|
+
const getForcedFilter = (
|
|
115
|
+
rule: Pick<UpdateRule, "forcedFilter"> | undefined,
|
|
116
|
+
forcedFilters: FullFilter<AnyObject, void>[],
|
|
117
|
+
) => {
|
|
118
|
+
return rule && !rule.forcedFilter
|
|
119
|
+
? {}
|
|
120
|
+
: {
|
|
121
|
+
forcedFilter: {
|
|
122
|
+
$or: forcedFilters.concat(
|
|
123
|
+
rule?.forcedFilter ? [rule?.forcedFilter] : [],
|
|
124
|
+
),
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
if (forcedSelectFilters.length || fileTablePublishRules?.select) {
|
|
92
129
|
fileTableRule.select = {
|
|
93
130
|
fields: "*",
|
|
94
131
|
...fileTablePublishRules?.select,
|
|
95
132
|
...getForcedFilter(fileTablePublishRules?.select, forcedSelectFilters),
|
|
96
|
-
}
|
|
133
|
+
};
|
|
97
134
|
}
|
|
98
|
-
if(forcedDeleteFilters.length || fileTablePublishRules?.delete){
|
|
135
|
+
if (forcedDeleteFilters.length || fileTablePublishRules?.delete) {
|
|
99
136
|
fileTableRule.delete = {
|
|
100
137
|
filterFields: "*",
|
|
101
138
|
...fileTablePublishRules?.delete,
|
|
102
139
|
...getForcedFilter(fileTablePublishRules?.delete, forcedDeleteFilters),
|
|
103
|
-
}
|
|
140
|
+
};
|
|
104
141
|
}
|
|
105
|
-
if(forcedUpdateFilters.length || fileTablePublishRules?.update){
|
|
142
|
+
if (forcedUpdateFilters.length || fileTablePublishRules?.update) {
|
|
106
143
|
fileTableRule.update = {
|
|
107
144
|
fields: "*",
|
|
108
145
|
...fileTablePublishRules?.update,
|
|
109
146
|
...getForcedFilter(fileTablePublishRules?.update, forcedUpdateFilters),
|
|
110
|
-
}
|
|
147
|
+
};
|
|
111
148
|
}
|
|
112
149
|
|
|
113
|
-
if(allowedNestedInserts.length || fileTablePublishRules?.insert){
|
|
150
|
+
if (allowedNestedInserts.length || fileTablePublishRules?.insert) {
|
|
114
151
|
fileTableRule.insert = {
|
|
115
152
|
fields: "*",
|
|
116
153
|
...fileTablePublishRules?.insert,
|
|
117
|
-
allowedNestedInserts: fileTablePublishRules?.insert
|
|
118
|
-
|
|
154
|
+
allowedNestedInserts: fileTablePublishRules?.insert
|
|
155
|
+
? undefined
|
|
156
|
+
: allowedNestedInserts,
|
|
157
|
+
};
|
|
119
158
|
}
|
|
120
159
|
|
|
121
160
|
/** Add missing implied methods (getColumns, getInfo) */
|
|
122
|
-
const rules = await this.getTableRulesWithoutFileTable.bind(this)(
|
|
161
|
+
const rules = await this.getTableRulesWithoutFileTable.bind(this)(
|
|
162
|
+
{ localParams, tableName: fileTableName },
|
|
163
|
+
clientInfo,
|
|
164
|
+
{ [fileTableName]: fileTableRule },
|
|
165
|
+
);
|
|
123
166
|
return { rules, allowedInserts: allowedNestedInserts };
|
|
124
|
-
}
|
|
167
|
+
}
|