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
package/lib/DBSchemaBuilder.ts
CHANGED
|
@@ -10,7 +10,11 @@ import {
|
|
|
10
10
|
} from "prostgles-types";
|
|
11
11
|
import prostgles from ".";
|
|
12
12
|
import { Auth } from "./Auth/AuthTypes";
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
DboBuilder,
|
|
15
|
+
escapeTSNames,
|
|
16
|
+
postgresToTsType,
|
|
17
|
+
} from "./DboBuilder/DboBuilder";
|
|
14
18
|
import {
|
|
15
19
|
PublishAllOrNothing,
|
|
16
20
|
PublishParams,
|
|
@@ -18,14 +22,28 @@ import {
|
|
|
18
22
|
PublishViewRule,
|
|
19
23
|
} from "./PublishParser/PublishParser";
|
|
20
24
|
import { getJSONBSchemaTSTypes } from "./JSONBValidation/validation";
|
|
21
|
-
import {
|
|
25
|
+
import {
|
|
26
|
+
DBHandlerServer,
|
|
27
|
+
TableSchemaColumn,
|
|
28
|
+
TX,
|
|
29
|
+
} from "./DboBuilder/DboBuilderTypes";
|
|
22
30
|
|
|
23
31
|
export const getDBSchema = (dboBuilder: DboBuilder): string => {
|
|
24
32
|
const tables: string[] = [];
|
|
25
33
|
|
|
26
|
-
const getColTypeForDBSchema = (
|
|
34
|
+
const getColTypeForDBSchema = (
|
|
35
|
+
udt_name: TableSchemaColumn["udt_name"],
|
|
36
|
+
): string => {
|
|
27
37
|
if (udt_name === "interval") {
|
|
28
|
-
const units = [
|
|
38
|
+
const units = [
|
|
39
|
+
"years",
|
|
40
|
+
"months",
|
|
41
|
+
"days",
|
|
42
|
+
"hours",
|
|
43
|
+
"minutes",
|
|
44
|
+
"seconds",
|
|
45
|
+
"milliseconds",
|
|
46
|
+
];
|
|
29
47
|
|
|
30
48
|
return `{ ${units.map((u) => `${u}?: number;`).join(" ")} }`;
|
|
31
49
|
}
|
|
@@ -38,13 +56,23 @@ export const getDBSchema = (dboBuilder: DboBuilder): string => {
|
|
|
38
56
|
?.slice(0)
|
|
39
57
|
.sort((a, b) => a.name.localeCompare(b.name))
|
|
40
58
|
.forEach((tov) => {
|
|
41
|
-
const cols = tov.columns
|
|
59
|
+
const cols = tov.columns
|
|
60
|
+
.slice(0)
|
|
61
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
42
62
|
const getColType = (c: (typeof cols)[number]) => {
|
|
43
63
|
let type: string =
|
|
44
|
-
(c.is_nullable ? "null | " : "") +
|
|
45
|
-
|
|
64
|
+
(c.is_nullable ? "null | " : "") +
|
|
65
|
+
getColTypeForDBSchema(c.udt_name) +
|
|
66
|
+
";";
|
|
67
|
+
const colConf = dboBuilder.prostgles.tableConfigurator?.getColumnConfig(
|
|
68
|
+
tov.name,
|
|
69
|
+
c.name,
|
|
70
|
+
);
|
|
46
71
|
if (colConf) {
|
|
47
|
-
if (
|
|
72
|
+
if (
|
|
73
|
+
isObject(colConf) &&
|
|
74
|
+
(colConf.jsonbSchema || colConf.jsonbSchemaType)
|
|
75
|
+
) {
|
|
48
76
|
const schema: JSONB.JSONBSchema = colConf.jsonbSchema || {
|
|
49
77
|
...colConf,
|
|
50
78
|
type: colConf.jsonbSchemaType,
|
|
@@ -54,11 +82,13 @@ export const getDBSchema = (dboBuilder: DboBuilder): string => {
|
|
|
54
82
|
schema,
|
|
55
83
|
{ nullable: colConf.nullable },
|
|
56
84
|
" ",
|
|
57
|
-
dboBuilder.tablesOrViews ?? []
|
|
85
|
+
dboBuilder.tablesOrViews ?? [],
|
|
58
86
|
);
|
|
59
87
|
} else if (isObject(colConf) && "enum" in colConf) {
|
|
60
88
|
if (!colConf.enum) throw "colConf.enum missing";
|
|
61
|
-
const types = colConf.enum.map((t) =>
|
|
89
|
+
const types = colConf.enum.map((t) =>
|
|
90
|
+
typeof t === "number" ? t : JSON.stringify(t),
|
|
91
|
+
);
|
|
62
92
|
if (colConf.nullable) {
|
|
63
93
|
types.unshift("null");
|
|
64
94
|
}
|
|
@@ -80,7 +110,7 @@ export const getDBSchema = (dboBuilder: DboBuilder): string => {
|
|
|
80
110
|
columns: {${cols
|
|
81
111
|
.map(
|
|
82
112
|
(c) => `
|
|
83
|
-
${getColType(c)}
|
|
113
|
+
${getColType(c)}`,
|
|
84
114
|
)
|
|
85
115
|
.join("")}
|
|
86
116
|
};
|
|
@@ -102,12 +132,11 @@ type ServerTableHandler<
|
|
|
102
132
|
Schema extends DBSchema | void = void,
|
|
103
133
|
> = TableHandler<T, Schema> & { is_view: boolean };
|
|
104
134
|
|
|
105
|
-
export type DBTableHandlersFromSchema<Schema = void> =
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
: ServerTableHandler<Schema[tov_name]["columns"], Schema>;
|
|
135
|
+
export type DBTableHandlersFromSchema<Schema = void> = Schema extends DBSchema
|
|
136
|
+
? {
|
|
137
|
+
[tov_name in keyof Schema]: Schema[tov_name]["is_view"] extends true
|
|
138
|
+
? ServerViewHandler<Schema[tov_name]["columns"], Schema>
|
|
139
|
+
: ServerTableHandler<Schema[tov_name]["columns"], Schema>;
|
|
111
140
|
}
|
|
112
141
|
: Record<string, Partial<ServerTableHandler>>;
|
|
113
142
|
|
|
@@ -125,17 +154,22 @@ export type DBHandlerServerExtra<
|
|
|
125
154
|
export type DBOFullyTyped<Schema = void> = DBTableHandlersFromSchema<Schema> &
|
|
126
155
|
DBHandlerServerExtra<DBTableHandlersFromSchema<Schema>>;
|
|
127
156
|
|
|
128
|
-
export type PublishFullyTyped<Schema = void> =
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
:
|
|
157
|
+
export type PublishFullyTyped<Schema = void> = Schema extends DBSchema
|
|
158
|
+
?
|
|
159
|
+
| PublishAllOrNothing
|
|
160
|
+
| {
|
|
161
|
+
[tov_name in keyof Partial<Schema>]:
|
|
162
|
+
| PublishAllOrNothing
|
|
163
|
+
| (Schema[tov_name]["is_view"] extends true
|
|
164
|
+
? PublishViewRule<Schema[tov_name]["columns"], Schema>
|
|
165
|
+
: PublishTableRule<Schema[tov_name]["columns"], Schema>);
|
|
166
|
+
}
|
|
167
|
+
:
|
|
168
|
+
| PublishAllOrNothing
|
|
169
|
+
| Record<
|
|
170
|
+
string,
|
|
171
|
+
PublishViewRule | PublishTableRule | PublishAllOrNothing
|
|
172
|
+
>;
|
|
139
173
|
|
|
140
174
|
/** Type checks */
|
|
141
175
|
() => {
|
|
@@ -167,7 +167,9 @@ export class DboBuilder {
|
|
|
167
167
|
|
|
168
168
|
_joins?: Join[];
|
|
169
169
|
get joins(): Join[] {
|
|
170
|
-
return clone(this._joins ?? []).filter(
|
|
170
|
+
return clone(this._joins ?? []).filter(
|
|
171
|
+
(j) => j.tables[0] !== j.tables[1],
|
|
172
|
+
) as Join[];
|
|
171
173
|
}
|
|
172
174
|
|
|
173
175
|
set joins(j: Join[]) {
|
|
@@ -179,7 +181,8 @@ export class DboBuilder {
|
|
|
179
181
|
}
|
|
180
182
|
|
|
181
183
|
prepareShortestJoinPaths = async () => {
|
|
182
|
-
const { joins, shortestJoinPaths, joinGraph } =
|
|
184
|
+
const { joins, shortestJoinPaths, joinGraph } =
|
|
185
|
+
await prepareShortestJoinPaths(this);
|
|
183
186
|
this.joinGraph = joinGraph;
|
|
184
187
|
this.joins = joins;
|
|
185
188
|
this.shortestJoinPaths = shortestJoinPaths;
|
|
@@ -189,12 +192,17 @@ export class DboBuilder {
|
|
|
189
192
|
query: string,
|
|
190
193
|
params: any,
|
|
191
194
|
options: SQLOptions | undefined,
|
|
192
|
-
localParams?: LocalParams
|
|
195
|
+
localParams?: LocalParams,
|
|
193
196
|
) => {
|
|
194
197
|
return runSQL
|
|
195
198
|
.bind(this)(query, params, options, localParams)
|
|
196
199
|
.catch((error) =>
|
|
197
|
-
Promise.reject(
|
|
200
|
+
Promise.reject(
|
|
201
|
+
getSerializedClientErrorFromPGError(error, {
|
|
202
|
+
type: "sql",
|
|
203
|
+
localParams,
|
|
204
|
+
}),
|
|
205
|
+
),
|
|
198
206
|
);
|
|
199
207
|
};
|
|
200
208
|
|
|
@@ -207,7 +215,7 @@ export class DboBuilder {
|
|
|
207
215
|
if (subscribeError) {
|
|
208
216
|
console.error(
|
|
209
217
|
"Could not initiate PubSubManager. Realtime data/Subscriptions will not work. Error: ",
|
|
210
|
-
subscribeError
|
|
218
|
+
subscribeError,
|
|
211
219
|
);
|
|
212
220
|
this.canSubscribe = false;
|
|
213
221
|
} else {
|
|
@@ -218,7 +226,7 @@ export class DboBuilder {
|
|
|
218
226
|
const start = Date.now();
|
|
219
227
|
const tablesOrViewsReq = await getTablesForSchemaPostgresSQL(
|
|
220
228
|
this,
|
|
221
|
-
this.prostgles.opts.schemaFilter
|
|
229
|
+
this.prostgles.opts.schemaFilter,
|
|
222
230
|
);
|
|
223
231
|
await this.prostgles.opts.onLog?.({
|
|
224
232
|
type: "debug",
|
|
@@ -228,28 +236,31 @@ export class DboBuilder {
|
|
|
228
236
|
});
|
|
229
237
|
this.tablesOrViews = tablesOrViewsReq.result;
|
|
230
238
|
|
|
231
|
-
this.constraints = await getConstraints(
|
|
239
|
+
this.constraints = await getConstraints(
|
|
240
|
+
this.db,
|
|
241
|
+
this.prostgles.opts.schemaFilter,
|
|
242
|
+
);
|
|
232
243
|
await this.prepareShortestJoinPaths();
|
|
233
244
|
|
|
234
245
|
this.dbo = {};
|
|
235
246
|
this.tablesOrViews.map((tov) => {
|
|
236
|
-
const columnsForTypes = tov.columns
|
|
247
|
+
const columnsForTypes = tov.columns
|
|
248
|
+
.slice(0)
|
|
249
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
237
250
|
|
|
238
251
|
const filterKeywords = Object.values(this.prostgles.keywords);
|
|
239
|
-
const $filterCol = columnsForTypes.find((c) =>
|
|
252
|
+
const $filterCol = columnsForTypes.find((c) =>
|
|
253
|
+
filterKeywords.includes(c.name),
|
|
254
|
+
);
|
|
240
255
|
if ($filterCol) {
|
|
241
256
|
throw `DboBuilder init error: \n\nTable ${JSON.stringify(tov.name)} column ${JSON.stringify($filterCol.name)} is colliding with Prostgles filtering functionality ($filter keyword)
|
|
242
257
|
Please provide a replacement keyword name using the $filter_keyName init option.
|
|
243
258
|
Alternatively you can rename the table column\n`;
|
|
244
259
|
}
|
|
245
260
|
|
|
246
|
-
this.dbo[tov.escaped_identifier] = new (
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
this,
|
|
250
|
-
undefined,
|
|
251
|
-
this.shortestJoinPaths
|
|
252
|
-
);
|
|
261
|
+
this.dbo[tov.escaped_identifier] = new (
|
|
262
|
+
tov.is_view ? ViewHandler : TableHandler
|
|
263
|
+
)(this.db, tov, this, undefined, this.shortestJoinPaths);
|
|
253
264
|
|
|
254
265
|
if (
|
|
255
266
|
this.shortestJoinPaths &&
|
|
@@ -282,7 +293,9 @@ export class DboBuilder {
|
|
|
282
293
|
if (!this.dbo.sql) {
|
|
283
294
|
this.dbo.sql = this.runSQL;
|
|
284
295
|
} else {
|
|
285
|
-
console.warn(
|
|
296
|
+
console.warn(
|
|
297
|
+
`Could not create dbo.sql handler because there is already a table named "sql"`,
|
|
298
|
+
);
|
|
286
299
|
}
|
|
287
300
|
|
|
288
301
|
this.tsTypesDefinition = [
|
|
@@ -296,7 +309,7 @@ export class DboBuilder {
|
|
|
296
309
|
|
|
297
310
|
getShortestJoinPath = (
|
|
298
311
|
viewHandler: ViewHandler,
|
|
299
|
-
target: string
|
|
312
|
+
target: string,
|
|
300
313
|
): JoinPaths[number] | undefined => {
|
|
301
314
|
const source = viewHandler.name;
|
|
302
315
|
if (source === target) {
|
|
@@ -315,7 +328,9 @@ export class DboBuilder {
|
|
|
315
328
|
};
|
|
316
329
|
}
|
|
317
330
|
|
|
318
|
-
const jp = this.shortestJoinPaths.find(
|
|
331
|
+
const jp = this.shortestJoinPaths.find(
|
|
332
|
+
(jp) => jp.t1 === source && jp.t2 === target,
|
|
333
|
+
);
|
|
319
334
|
return jp;
|
|
320
335
|
};
|
|
321
336
|
|
|
@@ -324,7 +339,13 @@ export class DboBuilder {
|
|
|
324
339
|
const dbTX: DbTxTableHandlers & Pick<DBHandlerServer, "sql"> = {};
|
|
325
340
|
this.tablesOrViews?.map((tov) => {
|
|
326
341
|
const handlerClass = tov.is_view ? ViewHandler : TableHandler;
|
|
327
|
-
dbTX[tov.name] = new handlerClass(
|
|
342
|
+
dbTX[tov.name] = new handlerClass(
|
|
343
|
+
this.db,
|
|
344
|
+
tov,
|
|
345
|
+
this,
|
|
346
|
+
{ t, dbTX },
|
|
347
|
+
this.shortestJoinPaths,
|
|
348
|
+
);
|
|
328
349
|
});
|
|
329
350
|
dbTX.sql = (q, args, opts, localP) =>
|
|
330
351
|
this.runSQL(q, args, opts, { tx: { dbTX, t }, ...(localP ?? {}) });
|
|
@@ -338,6 +359,9 @@ export class DboBuilder {
|
|
|
338
359
|
cacheDBTypes = cacheDBTypes.bind(this);
|
|
339
360
|
|
|
340
361
|
runClientTransactionStatement = (statement: string) => {
|
|
341
|
-
return runClientTransactionStatement(
|
|
362
|
+
return runClientTransactionStatement(
|
|
363
|
+
statement,
|
|
364
|
+
this.prostgles.opts.dbConnection as any,
|
|
365
|
+
);
|
|
342
366
|
};
|
|
343
367
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
1
|
/*---------------------------------------------------------------------------------------------
|
|
3
2
|
* Copyright (c) Stefan L. All rights reserved.
|
|
4
3
|
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
|
5
4
|
*--------------------------------------------------------------------------------------------*/
|
|
6
5
|
|
|
7
|
-
import * as pgPromise from
|
|
6
|
+
import * as pgPromise from "pg-promise";
|
|
8
7
|
import {
|
|
9
8
|
AnyObject,
|
|
10
9
|
ClientSchema,
|
|
@@ -14,25 +13,23 @@ import {
|
|
|
14
13
|
RawJoinPath,
|
|
15
14
|
SQLHandler,
|
|
16
15
|
TableInfo as TInfo,
|
|
17
|
-
UserLike
|
|
16
|
+
UserLike,
|
|
18
17
|
} from "prostgles-types";
|
|
19
18
|
import { BasicSession, ExpressReq } from "../Auth/AuthTypes";
|
|
20
19
|
import { BasicCallback } from "../PubSubManager/PubSubManager";
|
|
21
|
-
import {
|
|
22
|
-
|
|
23
|
-
} from "../PublishParser/PublishParser";
|
|
24
|
-
import { FieldSpec, } from "./QueryBuilder/Functions";
|
|
20
|
+
import { PublishAllOrNothing } from "../PublishParser/PublishParser";
|
|
21
|
+
import { FieldSpec } from "./QueryBuilder/Functions";
|
|
25
22
|
import { TableHandler } from "./TableHandler/TableHandler";
|
|
26
23
|
import { ParsedJoinPath } from "./ViewHandler/parseJoinPath";
|
|
27
|
-
import pg = require(
|
|
28
|
-
|
|
24
|
+
import pg = require("pg-promise/typescript/pg-subset");
|
|
29
25
|
|
|
30
26
|
type PGP = pgPromise.IMain<{}, pg.IClient>;
|
|
31
27
|
|
|
32
|
-
|
|
33
28
|
export type TableSchemaColumn = ColumnInfo & {
|
|
34
|
-
privileges: Partial<
|
|
35
|
-
|
|
29
|
+
privileges: Partial<
|
|
30
|
+
Record<"INSERT" | "REFERENCES" | "SELECT" | "UPDATE", true>
|
|
31
|
+
>;
|
|
32
|
+
};
|
|
36
33
|
|
|
37
34
|
export type TableSchema = Pick<TableInfo, "uniqueColumnGroups"> & {
|
|
38
35
|
schema: string;
|
|
@@ -52,7 +49,7 @@ export type TableSchema = Pick<TableInfo, "uniqueColumnGroups"> & {
|
|
|
52
49
|
};
|
|
53
50
|
/** Cannot add triggers to hyperTables */
|
|
54
51
|
isHyperTable?: boolean;
|
|
55
|
-
}
|
|
52
|
+
};
|
|
56
53
|
|
|
57
54
|
export type SortItem = {
|
|
58
55
|
asc: boolean;
|
|
@@ -66,13 +63,16 @@ export type SortItem = {
|
|
|
66
63
|
wrapperQuerySortItem: string;
|
|
67
64
|
joinAlias: string;
|
|
68
65
|
};
|
|
69
|
-
} & (
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
} & (
|
|
67
|
+
| {
|
|
68
|
+
type: "query";
|
|
69
|
+
fieldQuery: string;
|
|
70
|
+
}
|
|
71
|
+
| {
|
|
72
|
+
type: "position";
|
|
73
|
+
fieldPosition: number;
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
76
|
|
|
77
77
|
export type Media = {
|
|
78
78
|
id?: string;
|
|
@@ -94,26 +94,27 @@ export type Media = {
|
|
|
94
94
|
export type ParsedMedia = Required<Pick<Media, "extension" | "content_type">>;
|
|
95
95
|
|
|
96
96
|
export type TxCB<TH = DbTxTableHandlers> = {
|
|
97
|
-
(t: TH & Pick<DBHandlerServer, "sql">, _t: pgPromise.ITask<{}>):
|
|
98
|
-
}
|
|
97
|
+
(t: TH & Pick<DBHandlerServer, "sql">, _t: pgPromise.ITask<{}>): any | void;
|
|
98
|
+
};
|
|
99
99
|
export type TX<TH = TableHandlers> = {
|
|
100
|
-
(t: TxCB<TH>): Promise<
|
|
101
|
-
}
|
|
100
|
+
(t: TxCB<TH>): Promise<any | void>;
|
|
101
|
+
};
|
|
102
102
|
|
|
103
103
|
export type TableHandlers = {
|
|
104
104
|
[key: string]: Partial<TableHandler>;
|
|
105
|
-
}
|
|
105
|
+
};
|
|
106
106
|
export type DbTxTableHandlers = {
|
|
107
|
-
[key: string]:
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
[key: string]:
|
|
108
|
+
| Omit<Partial<TableHandler>, "dbTx">
|
|
109
|
+
| Omit<TableHandler, "dbTx">;
|
|
110
|
+
};
|
|
110
111
|
|
|
111
|
-
export type DBHandlerServerExtra<
|
|
112
|
+
export type DBHandlerServerExtra<
|
|
113
|
+
TH = TableHandlers,
|
|
114
|
+
WithTransactions = true,
|
|
115
|
+
> = {
|
|
112
116
|
sql: SQLHandler;
|
|
113
|
-
} & (
|
|
114
|
-
WithTransactions extends true? { tx: TX<TH> } :
|
|
115
|
-
Record<string, never>
|
|
116
|
-
);
|
|
117
|
+
} & (WithTransactions extends true ? { tx: TX<TH> } : Record<string, never>);
|
|
117
118
|
|
|
118
119
|
// export type DBHandlerServer<TH = TableHandlers> =
|
|
119
120
|
// TH &
|
|
@@ -123,14 +124,12 @@ export type DBHandlerServerExtra<TH = TableHandlers, WithTransactions = true> =
|
|
|
123
124
|
// tx?: TX<TH>
|
|
124
125
|
// }
|
|
125
126
|
|
|
126
|
-
export type DBHandlerServer<TH = TableHandlers> =
|
|
127
|
-
TH &
|
|
127
|
+
export type DBHandlerServer<TH = TableHandlers> = TH &
|
|
128
128
|
Partial<DbJoinMaker> & {
|
|
129
|
-
sql?: SQLHandler
|
|
129
|
+
sql?: SQLHandler;
|
|
130
130
|
} & {
|
|
131
|
-
tx?: TX<TH
|
|
132
|
-
}
|
|
133
|
-
|
|
131
|
+
tx?: TX<TH>;
|
|
132
|
+
};
|
|
134
133
|
|
|
135
134
|
export const pgp: PGP = pgPromise({
|
|
136
135
|
// ,query: function (e) { console.log({psql: e.query, params: e.params}); }
|
|
@@ -142,15 +141,16 @@ export type TableInfo = TInfo & {
|
|
|
142
141
|
oid: number;
|
|
143
142
|
comment: string;
|
|
144
143
|
columns: ColumnInfo[];
|
|
145
|
-
}
|
|
144
|
+
};
|
|
146
145
|
|
|
147
146
|
export type ViewInfo = TableInfo & {
|
|
148
|
-
parent_tables: string[]
|
|
149
|
-
}
|
|
147
|
+
parent_tables: string[];
|
|
148
|
+
};
|
|
150
149
|
|
|
151
|
-
export type TableOrViewInfo = TableInfo &
|
|
152
|
-
|
|
153
|
-
|
|
150
|
+
export type TableOrViewInfo = TableInfo &
|
|
151
|
+
ViewInfo & {
|
|
152
|
+
is_view: boolean;
|
|
153
|
+
};
|
|
154
154
|
|
|
155
155
|
export type PRGLIOSocket = {
|
|
156
156
|
readonly id: string;
|
|
@@ -161,15 +161,22 @@ export type PRGLIOSocket = {
|
|
|
161
161
|
* IP Address
|
|
162
162
|
*/
|
|
163
163
|
address: string;
|
|
164
|
-
headers?: AnyObject & { cookie?: string
|
|
164
|
+
headers?: AnyObject & { cookie?: string }; // e.g.: "some_arg=dwdaw; otherarg=23232"
|
|
165
165
|
auth?: Record<string, any>;
|
|
166
|
-
}
|
|
166
|
+
};
|
|
167
167
|
|
|
168
|
-
readonly on: (
|
|
168
|
+
readonly on: (
|
|
169
|
+
channel: string,
|
|
170
|
+
params: any,
|
|
171
|
+
cb?: (err: any, res?: any) => void,
|
|
172
|
+
) => any; // Promise<void>;
|
|
169
173
|
|
|
170
174
|
readonly emit: (channel: string, message?: any, cb?: BasicCallback) => any;
|
|
171
175
|
|
|
172
|
-
readonly once: (
|
|
176
|
+
readonly once: (
|
|
177
|
+
channel: string,
|
|
178
|
+
cb: (_data: any, cb: BasicCallback) => void,
|
|
179
|
+
) => void;
|
|
173
180
|
|
|
174
181
|
readonly removeAllListeners: (channel: string) => void;
|
|
175
182
|
|
|
@@ -177,17 +184,17 @@ export type PRGLIOSocket = {
|
|
|
177
184
|
|
|
178
185
|
readonly request: {
|
|
179
186
|
url?: string;
|
|
180
|
-
connection: { remoteAddress?: string
|
|
181
|
-
}
|
|
187
|
+
connection: { remoteAddress?: string };
|
|
188
|
+
};
|
|
182
189
|
|
|
183
190
|
/** Used for session caching */
|
|
184
191
|
__prglCache?: {
|
|
185
192
|
session: BasicSession;
|
|
186
193
|
user: UserLike;
|
|
187
194
|
clientUser: UserLike;
|
|
188
|
-
}
|
|
195
|
+
};
|
|
189
196
|
|
|
190
|
-
_user?: AnyObject
|
|
197
|
+
_user?: AnyObject;
|
|
191
198
|
|
|
192
199
|
/** Used for publish error caching */
|
|
193
200
|
prostgles?: ClientSchema;
|
|
@@ -207,7 +214,7 @@ export type LocalParams = {
|
|
|
207
214
|
tx?: {
|
|
208
215
|
dbTX: TableHandlers;
|
|
209
216
|
t: pgPromise.ITask<{}>;
|
|
210
|
-
}
|
|
217
|
+
};
|
|
211
218
|
|
|
212
219
|
/** Used to exclude certain logs */
|
|
213
220
|
noLog?: boolean;
|
|
@@ -222,14 +229,13 @@ export type LocalParams = {
|
|
|
222
229
|
previousData: AnyObject;
|
|
223
230
|
previousTable: string;
|
|
224
231
|
referencingColumn?: string;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
232
|
+
};
|
|
233
|
+
};
|
|
228
234
|
|
|
229
235
|
export type Aggregation = {
|
|
230
|
-
field: string
|
|
231
|
-
query: string
|
|
232
|
-
alias: string
|
|
236
|
+
field: string;
|
|
237
|
+
query: string;
|
|
238
|
+
alias: string;
|
|
233
239
|
getQuery: (alias: string) => string;
|
|
234
240
|
};
|
|
235
241
|
|
|
@@ -239,50 +245,46 @@ export type JoinInfo = {
|
|
|
239
245
|
/**
|
|
240
246
|
* If true then all joins involve unique columns and the result is a 1 to 1 join
|
|
241
247
|
*/
|
|
242
|
-
expectOne?: boolean
|
|
248
|
+
expectOne?: boolean;
|
|
243
249
|
paths: {
|
|
244
|
-
|
|
245
250
|
/**
|
|
246
251
|
* The table that JOIN ON columns refer to.
|
|
247
252
|
* columns in index = 1 refer to this table. index = 0 columns refer to previous JoinInfo.table
|
|
248
253
|
*/
|
|
249
|
-
table: string
|
|
254
|
+
table: string;
|
|
250
255
|
|
|
251
256
|
/**
|
|
252
257
|
* Source and target JOIN ON column groups for each existing constraint
|
|
253
|
-
* Each inner array group will be combined with AND and outer arrays with OR to allow multiple references to the same table
|
|
258
|
+
* Each inner array group will be combined with AND and outer arrays with OR to allow multiple references to the same table
|
|
254
259
|
* e.g.: [[source_table_column: string, table_column: string]]
|
|
255
260
|
*/
|
|
256
|
-
on: [string, string][][]
|
|
261
|
+
on: [string, string][][];
|
|
257
262
|
|
|
258
263
|
/**
|
|
259
264
|
* Source table name
|
|
260
265
|
*/
|
|
261
|
-
source: string
|
|
266
|
+
source: string;
|
|
262
267
|
|
|
263
268
|
/**
|
|
264
269
|
* Target table name
|
|
265
270
|
*/
|
|
266
|
-
target: string
|
|
267
|
-
}[]
|
|
268
|
-
}
|
|
269
|
-
|
|
271
|
+
target: string;
|
|
272
|
+
}[];
|
|
273
|
+
};
|
|
270
274
|
|
|
271
275
|
export type CommonTableRules = {
|
|
272
|
-
|
|
273
276
|
/**
|
|
274
|
-
* True by default. Allows clients to get column information on any columns that are allowed in (select, insert, update) field rules.
|
|
277
|
+
* True by default. Allows clients to get column information on any columns that are allowed in (select, insert, update) field rules.
|
|
275
278
|
*/
|
|
276
279
|
getColumns?: PublishAllOrNothing;
|
|
277
280
|
|
|
278
281
|
/**
|
|
279
|
-
* True by default. Allows clients to get table information (oid, comment, label, has_media).
|
|
282
|
+
* True by default. Allows clients to get table information (oid, comment, label, has_media).
|
|
280
283
|
*/
|
|
281
|
-
getInfo?: PublishAllOrNothing
|
|
282
|
-
}
|
|
284
|
+
getInfo?: PublishAllOrNothing;
|
|
285
|
+
};
|
|
283
286
|
|
|
284
287
|
export type ValidatedTableRules = CommonTableRules & {
|
|
285
|
-
|
|
286
288
|
/* All columns of the view/table. Includes computed fields as well */
|
|
287
289
|
allColumns: FieldSpec[];
|
|
288
290
|
|
|
@@ -301,7 +303,7 @@ export type ValidatedTableRules = CommonTableRules & {
|
|
|
301
303
|
|
|
302
304
|
/* Max limit allowed for each select. 1000 by default. If null then an unlimited select is allowed when providing { limit: null } */
|
|
303
305
|
maxLimit: number | null;
|
|
304
|
-
}
|
|
306
|
+
};
|
|
305
307
|
update: {
|
|
306
308
|
/* Fields you can update */
|
|
307
309
|
fields: string[];
|
|
@@ -317,7 +319,7 @@ export type ValidatedTableRules = CommonTableRules & {
|
|
|
317
319
|
|
|
318
320
|
/* Data applied to every update */
|
|
319
321
|
forcedData: any;
|
|
320
|
-
}
|
|
322
|
+
};
|
|
321
323
|
insert: {
|
|
322
324
|
/* Fields you can insert */
|
|
323
325
|
fields: string[];
|
|
@@ -327,7 +329,7 @@ export type ValidatedTableRules = CommonTableRules & {
|
|
|
327
329
|
|
|
328
330
|
/* Data applied to every insert */
|
|
329
331
|
forcedData: any;
|
|
330
|
-
}
|
|
332
|
+
};
|
|
331
333
|
delete: {
|
|
332
334
|
/* Fields to filter by when deleting */
|
|
333
335
|
filterFields: string[];
|
|
@@ -337,8 +339,8 @@ export type ValidatedTableRules = CommonTableRules & {
|
|
|
337
339
|
|
|
338
340
|
/* Fields you can return after deleting */
|
|
339
341
|
returningFields: string[];
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
+
};
|
|
343
|
+
};
|
|
342
344
|
|
|
343
345
|
export type ExistsFilterConfig = {
|
|
344
346
|
existType: EXISTS_KEY;
|
|
@@ -346,17 +348,19 @@ export type ExistsFilterConfig = {
|
|
|
346
348
|
* Target table filter. target table is the last table from tables
|
|
347
349
|
*/
|
|
348
350
|
targetTableFilter: Filter;
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
351
|
+
} & (
|
|
352
|
+
| {
|
|
353
|
+
isJoined: true;
|
|
354
|
+
/**
|
|
355
|
+
* list of join tables in their order
|
|
356
|
+
* If table path starts with "**" then get shortest join to first table
|
|
357
|
+
* e.g.: "**.users" means finding the shortest join from root table to users table
|
|
358
|
+
*/
|
|
359
|
+
path: RawJoinPath;
|
|
360
|
+
parsedPath: ParsedJoinPath[];
|
|
361
|
+
}
|
|
362
|
+
| {
|
|
363
|
+
isJoined: false;
|
|
364
|
+
targetTable: string;
|
|
365
|
+
}
|
|
366
|
+
);
|