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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AACpD,gEAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"getJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNewQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getNewQuery.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getNewQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getNewQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EAMZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAuB,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAKzD,OAAO,EAAE,QAAQ,EAAmC,MAAM,gBAAgB,CAAC;AA8E3E,wBAAsB,WAAW,CAC/B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAwC,EACpD,aAAa,kBAAO,EACpB,UAAU,EAAE,SAAS,GAAG,SAAS,EACjC,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,OAAO,CAAC,QAAQ,CAAC,CAyLnB"}
|
|
@@ -14,12 +14,12 @@ const JOIN_PARAM_KEYS = (0, prostgles_types_1.getKeys)({
|
|
|
14
14
|
limit: 1,
|
|
15
15
|
offset: 1,
|
|
16
16
|
orderBy: 1,
|
|
17
|
-
select: 1
|
|
17
|
+
select: 1,
|
|
18
18
|
});
|
|
19
19
|
const parseJoinSelect = (joinParams) => {
|
|
20
20
|
if (!joinParams) {
|
|
21
21
|
return {
|
|
22
|
-
error: "Empty join params"
|
|
22
|
+
error: "Empty join params",
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
if (typeof joinParams === "string") {
|
|
@@ -28,18 +28,18 @@ const parseJoinSelect = (joinParams) => {
|
|
|
28
28
|
}
|
|
29
29
|
return {
|
|
30
30
|
type: "simple",
|
|
31
|
-
params: joinParams
|
|
31
|
+
params: joinParams,
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
const [joinKey, ...otherKeys] = (0, prostgles_types_1.getKeys)(joinParams).filter(k => JOIN_KEYS.includes(k));
|
|
34
|
+
const [joinKey, ...otherKeys] = (0, prostgles_types_1.getKeys)(joinParams).filter((k) => JOIN_KEYS.includes(k));
|
|
35
35
|
if (otherKeys.length) {
|
|
36
36
|
return {
|
|
37
|
-
error: "Cannot specify more than one join type ( $innerJoin OR $leftJoin )"
|
|
37
|
+
error: "Cannot specify more than one join type ( $innerJoin OR $leftJoin )",
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
else if (joinKey) {
|
|
41
41
|
/* Full option join { field_name: db.innerJoin.table_name(filter, select) } */
|
|
42
|
-
const invalidParams = Object.keys(joinParams).filter(k => ![...JOIN_PARAM_KEYS, ...JOIN_KEYS].includes(k));
|
|
42
|
+
const invalidParams = Object.keys(joinParams).filter((k) => ![...JOIN_PARAM_KEYS, ...JOIN_KEYS].includes(k));
|
|
43
43
|
if (invalidParams.length) {
|
|
44
44
|
throw "Invalid join params: " + invalidParams.join(", ");
|
|
45
45
|
}
|
|
@@ -58,7 +58,7 @@ const parseJoinSelect = (joinParams) => {
|
|
|
58
58
|
}
|
|
59
59
|
return {
|
|
60
60
|
type: "simple",
|
|
61
|
-
params: joinParams
|
|
61
|
+
params: joinParams,
|
|
62
62
|
};
|
|
63
63
|
};
|
|
64
64
|
async function getNewQuery(_this, filter, selectParams = {}, param3_unused = null, tableRules, localParams) {
|
|
@@ -66,8 +66,12 @@ async function getNewQuery(_this, filter, selectParams = {}, param3_unused = nul
|
|
|
66
66
|
if (localParams?.isRemoteRequest && !tableRules?.select?.fields) {
|
|
67
67
|
throw `INTERNAL ERROR: publish.${_this.name}.select.fields rule missing`;
|
|
68
68
|
}
|
|
69
|
-
const allowedOrderByFields = !tableRules
|
|
70
|
-
|
|
69
|
+
const allowedOrderByFields = !tableRules
|
|
70
|
+
? _this.column_names.slice(0)
|
|
71
|
+
: _this.parseFieldFilter(tableRules?.select?.orderByFields ?? tableRules?.select?.fields);
|
|
72
|
+
const allowedSelectFields = !tableRules
|
|
73
|
+
? _this.column_names.slice(0)
|
|
74
|
+
: _this.parseFieldFilter(tableRules?.select?.fields);
|
|
71
75
|
const joinQueries = [];
|
|
72
76
|
const { select: userSelect = "*" } = selectParams, sBuilder = new QueryBuilder_1.SelectItemBuilder({
|
|
73
77
|
allowedFields: allowedSelectFields,
|
|
@@ -76,7 +80,7 @@ async function getNewQuery(_this, filter, selectParams = {}, param3_unused = nul
|
|
|
76
80
|
isView: _this.is_view,
|
|
77
81
|
functions: Functions_1.FUNCTIONS,
|
|
78
82
|
allFields: _this.column_names.slice(0),
|
|
79
|
-
columns
|
|
83
|
+
columns,
|
|
80
84
|
});
|
|
81
85
|
await sBuilder.parseUserSelect(userSelect, async (fTable, _joinParams, throwErr) => {
|
|
82
86
|
const j_selectParams = {};
|
|
@@ -110,7 +114,11 @@ async function getNewQuery(_this, filter, selectParams = {}, param3_unused = nul
|
|
|
110
114
|
else {
|
|
111
115
|
j_selectParams.select = parsedJoin.params;
|
|
112
116
|
}
|
|
113
|
-
const jTable = parsedJoin.type === "simple"
|
|
117
|
+
const jTable = parsedJoin.type === "simple"
|
|
118
|
+
? fTable
|
|
119
|
+
: typeof j_path === "string"
|
|
120
|
+
? j_path
|
|
121
|
+
: j_path?.at(-1)?.table;
|
|
114
122
|
if (!jTable) {
|
|
115
123
|
throw "jTable missing";
|
|
116
124
|
}
|
|
@@ -121,7 +129,12 @@ async function getNewQuery(_this, filter, selectParams = {}, param3_unused = nul
|
|
|
121
129
|
let isLocal = true;
|
|
122
130
|
if (localParams && (localParams.socket || localParams.httpReq)) {
|
|
123
131
|
isLocal = false;
|
|
124
|
-
j_tableRules =
|
|
132
|
+
j_tableRules =
|
|
133
|
+
await _this.dboBuilder.publishParser?.getValidatedRequestRuleWusr({
|
|
134
|
+
tableName: jTable,
|
|
135
|
+
command: "find",
|
|
136
|
+
localParams,
|
|
137
|
+
});
|
|
125
138
|
}
|
|
126
139
|
const isAllowedAccessToTable = isLocal || j_tableRules;
|
|
127
140
|
if (isAllowedAccessToTable) {
|
|
@@ -140,8 +153,8 @@ async function getNewQuery(_this, filter, selectParams = {}, param3_unused = nul
|
|
|
140
153
|
* Add non selected columns
|
|
141
154
|
* This ensures all fields are available for orderBy in case of nested select
|
|
142
155
|
* */
|
|
143
|
-
Array.from(new Set([...allowedSelectFields, ...allowedOrderByFields])).map(key => {
|
|
144
|
-
if (!sBuilder.select.find(s => s.alias === key && s.type === "column")) {
|
|
156
|
+
Array.from(new Set([...allowedSelectFields, ...allowedOrderByFields])).map((key) => {
|
|
157
|
+
if (!sBuilder.select.find((s) => s.alias === key && s.type === "column")) {
|
|
145
158
|
sBuilder.addColumn(key, false);
|
|
146
159
|
}
|
|
147
160
|
});
|
|
@@ -161,11 +174,13 @@ async function getNewQuery(_this, filter, selectParams = {}, param3_unused = nul
|
|
|
161
174
|
...commonWhereParams,
|
|
162
175
|
isHaving: false,
|
|
163
176
|
});
|
|
164
|
-
const havingOpts = !(0, prostgles_types_1.isEmpty)(selectParams.having)
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
177
|
+
const havingOpts = !(0, prostgles_types_1.isEmpty)(selectParams.having)
|
|
178
|
+
? await _this.prepareWhere({
|
|
179
|
+
...(0, prostgles_types_1.omitKeys)(commonWhereParams, ["forcedFilter"]),
|
|
180
|
+
filter: selectParams.having,
|
|
181
|
+
isHaving: true,
|
|
182
|
+
})
|
|
183
|
+
: undefined;
|
|
169
184
|
const where = filterOpts.where;
|
|
170
185
|
const validatedRules = _this.getValidatedRules(tableRules, localParams);
|
|
171
186
|
const resQuery = {
|
|
@@ -179,9 +194,10 @@ async function getNewQuery(_this, filter, selectParams = {}, param3_unused = nul
|
|
|
179
194
|
isLeftJoin: false,
|
|
180
195
|
limit: prepareLimitQuery(selectParams.limit, validatedRules),
|
|
181
196
|
orderByItems: (0, prepareSortItems_1.prepareSortItems)(selectParams.orderBy, allowedOrderByFields, selectParams.alias, select, joinQueries),
|
|
182
|
-
offset: prepareOffsetQuery(selectParams.offset)
|
|
197
|
+
offset: prepareOffsetQuery(selectParams.offset),
|
|
183
198
|
};
|
|
184
|
-
if (resQuery.select.some(s => s.type === "aggregation") &&
|
|
199
|
+
if (resQuery.select.some((s) => s.type === "aggregation") &&
|
|
200
|
+
resQuery.joins?.length) {
|
|
185
201
|
throw new Error(`Root query aggregation AND nested joins not allowed`);
|
|
186
202
|
}
|
|
187
203
|
return resQuery;
|
|
@@ -199,13 +215,20 @@ const prepareLimitQuery = (limit = null, p) => {
|
|
|
199
215
|
}
|
|
200
216
|
let _limit = limit;
|
|
201
217
|
/* If no limit then set as the lesser of (100, maxLimit) */
|
|
202
|
-
if (_limit !== null &&
|
|
203
|
-
|
|
218
|
+
if (_limit !== null &&
|
|
219
|
+
!Number.isInteger(_limit) &&
|
|
220
|
+
p.select.maxLimit !== null) {
|
|
221
|
+
_limit = [100, p.select.maxLimit]
|
|
222
|
+
.filter(Number.isInteger)
|
|
223
|
+
.sort((a, b) => a - b)[0];
|
|
204
224
|
}
|
|
205
225
|
else {
|
|
206
226
|
/* If a limit higher than maxLimit specified throw error */
|
|
207
|
-
if (Number.isInteger(p.select.maxLimit) &&
|
|
208
|
-
|
|
227
|
+
if (Number.isInteger(p.select.maxLimit) &&
|
|
228
|
+
_limit !== null &&
|
|
229
|
+
_limit > p.select.maxLimit) {
|
|
230
|
+
throw (`Unexpected LIMIT ${_limit}. Must be less than the published maxLimit: ` +
|
|
231
|
+
p.select.maxLimit);
|
|
209
232
|
}
|
|
210
233
|
}
|
|
211
234
|
return _limit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNewQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getNewQuery.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"getNewQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getNewQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ type IndentLinesOpts = {
|
|
|
15
15
|
indentStr?: string;
|
|
16
16
|
appendCommas?: boolean;
|
|
17
17
|
};
|
|
18
|
-
export declare const indentLines: (strArr: (string | undefined | null)[], { numberOfSpaces, indentStr, appendCommas }?: IndentLinesOpts) => string[];
|
|
18
|
+
export declare const indentLines: (strArr: (string | undefined | null)[], { numberOfSpaces, indentStr, appendCommas, }?: IndentLinesOpts) => string[];
|
|
19
19
|
export declare const getTableAliasAsName: (q: NewQuery) => string;
|
|
20
20
|
export declare const getRootGroupBy: (q: NewQuery, selectParamsGroupBy?: boolean) => string[];
|
|
21
21
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSelectQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getSelectQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD;;GAEG;AACH,eAAO,MAAM,qBAAqB,+BAAyC,CAAC;AAC5E,eAAO,MAAM,gBAAgB,8BAAwC,CAAC;AAEtE;;;KAGK;AACL,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,CAAC,EAAE,QAAQ,EACX,KAAK,oBAAI,EACT,mBAAmB,EAAE,OAAO,GAC3B,MAAM,CAyER;AAOD,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AACF,eAAO,MAAM,WAAW,WACd,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,iDAKlC,eAAe,KACjB,MAAM,EAUR,CAAC;AASF,eAAO,MAAM,mBAAmB,MAAO,QAAQ,WAA6B,CAAC;AAE7E,eAAO,MAAM,cAAc,MAAO,QAAQ,wBAAwB,OAAO,aA2BxE,CAAC"}
|
|
@@ -8,44 +8,48 @@ const getJoinQuery_1 = require("./getJoinQuery");
|
|
|
8
8
|
* Used to prevent single row nested results in case of OR join conditions
|
|
9
9
|
*/
|
|
10
10
|
exports.ROOT_TABLE_ROW_NUM_ID = "prostgles_root_table_row_id";
|
|
11
|
-
exports.ROOT_TABLE_ALIAS =
|
|
11
|
+
exports.ROOT_TABLE_ALIAS = "prostgles_root_table_alias";
|
|
12
12
|
/**
|
|
13
13
|
* Creating the text query from the NewQuery spec
|
|
14
14
|
* No validation/authorisation at this point
|
|
15
15
|
* */
|
|
16
16
|
function getSelectQuery(viewHandler, q, depth = 0, selectParamsGroupBy) {
|
|
17
|
-
const rootSelect = q.select
|
|
18
|
-
|
|
17
|
+
const rootSelect = q.select
|
|
18
|
+
.filter((s) => s.selected)
|
|
19
|
+
.map((s) => [s.getQuery(exports.ROOT_TABLE_ALIAS), " AS ", (0, prostgles_types_1.asName)(s.alias)].join(""));
|
|
20
|
+
const parsedJoins = q.joins?.flatMap((q2) => {
|
|
19
21
|
const parsed = (0, getJoinQuery_1.getJoinQuery)(viewHandler, {
|
|
20
22
|
q1: { ...q, tableAlias: exports.ROOT_TABLE_ALIAS },
|
|
21
23
|
q2: { ...q2 },
|
|
22
|
-
selectParamsGroupBy
|
|
24
|
+
selectParamsGroupBy,
|
|
23
25
|
});
|
|
24
26
|
return {
|
|
25
27
|
...q2,
|
|
26
|
-
...parsed
|
|
28
|
+
...parsed,
|
|
27
29
|
};
|
|
28
30
|
}) ?? [];
|
|
29
|
-
const selectItems = rootSelect.concat(parsedJoins?.map(join => {
|
|
31
|
+
const selectItems = rootSelect.concat(parsedJoins?.map((join) => {
|
|
30
32
|
const { joinAlias } = join;
|
|
31
33
|
return `COALESCE(${(0, prostgles_types_1.asName)(joinAlias)}.${join.resultAlias}, '[]') as ${(0, prostgles_types_1.asName)(joinAlias)}`;
|
|
32
34
|
}) ?? []);
|
|
33
35
|
/** OR joins cannot be easily aggregated to one-many with the root table. Must group by root table id */
|
|
34
|
-
const hasOrJoins = parsedJoins.some(j => j.isOrJoin);
|
|
35
|
-
let joinCtes = !parsedJoins.length
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
const hasOrJoins = parsedJoins.some((j) => j.isOrJoin);
|
|
37
|
+
let joinCtes = !parsedJoins.length
|
|
38
|
+
? []
|
|
39
|
+
: [
|
|
40
|
+
...parsedJoins.flatMap((j, i) => {
|
|
41
|
+
const needsComma = parsedJoins.length > 1 && i < parsedJoins.length - 1;
|
|
42
|
+
return j.cteLines.concat(needsComma ? [","] : []);
|
|
43
|
+
}),
|
|
44
|
+
];
|
|
41
45
|
if (hasOrJoins) {
|
|
42
|
-
const pkey = viewHandler.columns.find(c => c.is_pkey);
|
|
46
|
+
const pkey = viewHandler.columns.find((c) => c.is_pkey);
|
|
43
47
|
joinCtes = [
|
|
44
48
|
`${q.table} AS (`,
|
|
45
49
|
` SELECT *, ${pkey ? (0, prostgles_types_1.asName)(pkey.name) : "ROW_NUMBER() OVER()"} as ${exports.ROOT_TABLE_ROW_NUM_ID}`,
|
|
46
50
|
` FROM ${q.table}`,
|
|
47
51
|
`),`,
|
|
48
|
-
...joinCtes
|
|
52
|
+
...joinCtes,
|
|
49
53
|
];
|
|
50
54
|
}
|
|
51
55
|
if (joinCtes.length) {
|
|
@@ -60,20 +64,19 @@ function getSelectQuery(viewHandler, q, depth = 0, selectParamsGroupBy) {
|
|
|
60
64
|
` FROM ${q.table}`,
|
|
61
65
|
...(q.where ? [` ${q.where}`] : []),
|
|
62
66
|
`) ${exports.ROOT_TABLE_ALIAS}`,
|
|
63
|
-
...parsedJoins.flatMap(j => j.joinLines),
|
|
67
|
+
...parsedJoins.flatMap((j) => j.joinLines),
|
|
64
68
|
...(0, exports.getRootGroupBy)(q, selectParamsGroupBy),
|
|
65
69
|
...(0, DboBuilder_1.prepareOrderByQuery)(q.orderByItems),
|
|
66
70
|
...(q.having ? [`HAVING ${q.having} `] : []),
|
|
67
71
|
...(depth || q.limit === null ? [] : [`LIMIT ${q.limit || 0}`]),
|
|
68
|
-
...(q.offset ? [`OFFSET ${q.offset || 0}`] : [])
|
|
72
|
+
...(q.offset ? [`OFFSET ${q.offset || 0}`] : []),
|
|
69
73
|
];
|
|
70
74
|
return indentLinesToString(query);
|
|
71
75
|
}
|
|
72
76
|
exports.getSelectQuery = getSelectQuery;
|
|
73
77
|
const indentLine = (numberOfSpaces, str, indentStr = " ") => new Array(numberOfSpaces).fill(indentStr).join("") + str;
|
|
74
|
-
const indentLines = (strArr, { numberOfSpaces = 2, indentStr = " ", appendCommas = false } = {}) => {
|
|
75
|
-
const nonEmptyLines = strArr
|
|
76
|
-
.filter(v => v);
|
|
78
|
+
const indentLines = (strArr, { numberOfSpaces = 2, indentStr = " ", appendCommas = false, } = {}) => {
|
|
79
|
+
const nonEmptyLines = strArr.filter((v) => v);
|
|
77
80
|
return nonEmptyLines.map((str, idx) => {
|
|
78
81
|
const res = indentLine(numberOfSpaces, str, indentStr);
|
|
79
82
|
if (appendCommas && idx < nonEmptyLines.length - 1) {
|
|
@@ -88,8 +91,8 @@ const getTableAlias = (q) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${
|
|
|
88
91
|
const getTableAliasAsName = (q) => (0, prostgles_types_1.asName)(getTableAlias(q));
|
|
89
92
|
exports.getTableAliasAsName = getTableAliasAsName;
|
|
90
93
|
const getRootGroupBy = (q, selectParamsGroupBy) => {
|
|
91
|
-
const aggs = q.select.filter(s => s.selected && s.type === "aggregation");
|
|
92
|
-
const nonAggs = q.select.filter(s => s.selected && s.type !== "aggregation");
|
|
94
|
+
const aggs = q.select.filter((s) => s.selected && s.type === "aggregation");
|
|
95
|
+
const nonAggs = q.select.filter((s) => s.selected && s.type !== "aggregation");
|
|
93
96
|
if ((selectParamsGroupBy || aggs.length) && nonAggs.length) {
|
|
94
97
|
/** Add ORDER BY items not included in root select */
|
|
95
98
|
const orderByItems = [];
|
|
@@ -98,7 +101,13 @@ const getRootGroupBy = (q, selectParamsGroupBy) => {
|
|
|
98
101
|
// orderByItems.push(sortItem.fieldQuery);
|
|
99
102
|
// }
|
|
100
103
|
// });
|
|
101
|
-
return [
|
|
104
|
+
return [
|
|
105
|
+
`GROUP BY ${q.select
|
|
106
|
+
.map((s, i) => s.selected && s.type !== "aggregation" ? `${i + 1}` : undefined)
|
|
107
|
+
.concat(orderByItems)
|
|
108
|
+
.filter(prostgles_types_1.isDefined)
|
|
109
|
+
.join(", ")} `,
|
|
110
|
+
];
|
|
102
111
|
}
|
|
103
112
|
return [];
|
|
104
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"getSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as pg from "pg";
|
|
2
|
-
import CursorType from
|
|
2
|
+
import CursorType from "pg-cursor";
|
|
3
3
|
import { SQLOptions, SocketSQLStreamServer } from "prostgles-types";
|
|
4
4
|
import { VoidFunction } from "../SchemaWatch/SchemaWatch";
|
|
5
5
|
import { DB } from "../initProstgles";
|
|
@@ -15,7 +15,7 @@ type StreamedQuery = ClientStreamedRequest & {
|
|
|
15
15
|
cursor: CursorType | undefined;
|
|
16
16
|
client: pg.Client | undefined;
|
|
17
17
|
stop?: VoidFunction;
|
|
18
|
-
onError: (
|
|
18
|
+
onError: (error: any) => void;
|
|
19
19
|
};
|
|
20
20
|
export declare class QueryStreamer {
|
|
21
21
|
db: DB;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryStreamer.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,UAAU,MAAM,WAAW,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"QueryStreamer.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,UAAU,MAAM,WAAW,CAAC;AACnC,OAAO,EAEL,UAAU,EAEV,qBAAqB,EAGtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjD,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AACF,KAAK,aAAa,GAAG,qBAAqB,GAAG;IAC3C,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/B,CAAC;AAiBF,qBAAa,aAAa;IACxB,EAAE,EAAE,EAAE,CAAC;IACP,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAM;IAClE,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC;gBACX,UAAU,EAAE,UAAU;IAsBlC,aAAa,mBACK,GAAG,KAAK,IAAI,8BACb,GAAG,YAAY,eAW9B;IACF,YAAY,aAAc,MAAM,UAS9B;IAEF,MAAM,UACG,qBAAqB,KAC3B,QAAQ,qBAAqB,CAAC,CA2P/B;CACH"}
|
|
@@ -5,7 +5,7 @@ const pg = require("pg");
|
|
|
5
5
|
const prostgles_types_1 = require("prostgles-types");
|
|
6
6
|
const dboBuilderUtils_1 = require("./dboBuilderUtils");
|
|
7
7
|
const runSQL_1 = require("./runSQL");
|
|
8
|
-
const Cursor = require(
|
|
8
|
+
const Cursor = require("pg-cursor");
|
|
9
9
|
const shortSocketIds = {};
|
|
10
10
|
const getSetShortSocketId = (socketId) => {
|
|
11
11
|
const shortId = socketId.slice(0, 3);
|
|
@@ -27,7 +27,8 @@ class QueryStreamer {
|
|
|
27
27
|
this.adminClient.connect();
|
|
28
28
|
};
|
|
29
29
|
this.adminClient = this.getConnection((error) => {
|
|
30
|
-
if (error.message?.includes("database") &&
|
|
30
|
+
if (error.message?.includes("database") &&
|
|
31
|
+
error.message?.includes("does not exist"))
|
|
31
32
|
return;
|
|
32
33
|
console.log("Admin client error. Reconnecting...", error);
|
|
33
34
|
setAdminClient();
|
|
@@ -35,7 +36,9 @@ class QueryStreamer {
|
|
|
35
36
|
this.adminClient.connect();
|
|
36
37
|
}
|
|
37
38
|
getConnection = (onError, extraOptions) => {
|
|
38
|
-
const connectionInfo = typeof this.db.$cn === "string"
|
|
39
|
+
const connectionInfo = typeof this.db.$cn === "string"
|
|
40
|
+
? { connectionString: this.db.$cn }
|
|
41
|
+
: this.db.$cn;
|
|
39
42
|
const client = new pg.Client({ ...connectionInfo, ...extraOptions });
|
|
40
43
|
client.on("error", (err) => {
|
|
41
44
|
onError?.(err);
|
|
@@ -76,7 +79,10 @@ class QueryStreamer {
|
|
|
76
79
|
const errorWithoutQuery = (0, dboBuilderUtils_1.getSerializedClientErrorFromPGError)(rawError, { type: "sql", localParams: { socket } });
|
|
77
80
|
// For some reason query is not present on the error object from sql stream mode
|
|
78
81
|
const error = { ...errorWithoutQuery, query: query.query };
|
|
79
|
-
socket.emit(channel, {
|
|
82
|
+
socket.emit(channel, {
|
|
83
|
+
type: "error",
|
|
84
|
+
error,
|
|
85
|
+
});
|
|
80
86
|
},
|
|
81
87
|
};
|
|
82
88
|
this.socketQueries[socketId][id] ??= socketQuery;
|
|
@@ -89,31 +95,46 @@ class QueryStreamer {
|
|
|
89
95
|
}
|
|
90
96
|
/** Only send fields on first request */
|
|
91
97
|
let fieldsWereSent = false;
|
|
92
|
-
const emit = ({ reachedEnd, rows, info }) => {
|
|
98
|
+
const emit = ({ reachedEnd, rows, info, }) => {
|
|
93
99
|
if (!info?.fields)
|
|
94
100
|
throw "No fields";
|
|
95
101
|
const fields = runSQL_1.getDetailedFieldInfo.bind(this.dboBuilder)(info.fields);
|
|
96
|
-
const packet = {
|
|
102
|
+
const packet = {
|
|
103
|
+
type: "data",
|
|
104
|
+
rows,
|
|
105
|
+
fields: fieldsWereSent ? undefined : fields,
|
|
106
|
+
info: reachedEnd ? info : undefined,
|
|
107
|
+
ended: reachedEnd,
|
|
108
|
+
processId: processID,
|
|
109
|
+
};
|
|
97
110
|
socket.emit(channel, packet);
|
|
98
111
|
if (reachedEnd) {
|
|
99
|
-
this.dboBuilder.prostgles.schemaWatch?.onSchemaChangeFallback?.({
|
|
112
|
+
this.dboBuilder.prostgles.schemaWatch?.onSchemaChangeFallback?.({
|
|
113
|
+
command: info.command,
|
|
114
|
+
query: query.query,
|
|
115
|
+
});
|
|
100
116
|
}
|
|
101
117
|
fieldsWereSent = true;
|
|
102
118
|
};
|
|
103
|
-
const currentClient = client ??
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
119
|
+
const currentClient = client ??
|
|
120
|
+
this.getConnection((err) => {
|
|
121
|
+
socketQuery.onError(err);
|
|
122
|
+
currentClient.end();
|
|
123
|
+
});
|
|
107
124
|
this.socketQueries[socketId][id].client = currentClient;
|
|
108
125
|
try {
|
|
109
126
|
if (!client) {
|
|
110
127
|
await currentClient.connect();
|
|
111
128
|
}
|
|
112
129
|
processID = currentClient.processID;
|
|
113
|
-
if (query.options?.streamLimit &&
|
|
130
|
+
if (query.options?.streamLimit &&
|
|
131
|
+
(!Number.isInteger(query.options.streamLimit) ||
|
|
132
|
+
query.options.streamLimit < 0)) {
|
|
114
133
|
throw "streamLimit must be a positive integer";
|
|
115
134
|
}
|
|
116
|
-
const batchSize = query.options?.streamLimit
|
|
135
|
+
const batchSize = query.options?.streamLimit
|
|
136
|
+
? Math.min(1e3, query.options?.streamLimit)
|
|
137
|
+
: 1e3;
|
|
117
138
|
const cursor = currentClient.query(new Cursor(query.query, undefined, { rowMode: "array" }));
|
|
118
139
|
this.socketQueries[socketId][id].cursor = cursor;
|
|
119
140
|
let streamLimitReached = false;
|
|
@@ -124,11 +145,21 @@ class QueryStreamer {
|
|
|
124
145
|
let rowsSent = 0;
|
|
125
146
|
do {
|
|
126
147
|
rowChunk = await cursor.read(batchSize);
|
|
127
|
-
const info = (0, prostgles_types_1.pickKeys)(cursor._result, [
|
|
148
|
+
const info = (0, prostgles_types_1.pickKeys)(cursor._result, [
|
|
149
|
+
"fields",
|
|
150
|
+
"rowCount",
|
|
151
|
+
"command",
|
|
152
|
+
"duration",
|
|
153
|
+
]);
|
|
128
154
|
rowsSent += rowChunk.length;
|
|
129
|
-
streamLimitReached = Boolean(query.options?.streamLimit &&
|
|
155
|
+
streamLimitReached = Boolean(query.options?.streamLimit &&
|
|
156
|
+
rowsSent >= query.options.streamLimit);
|
|
130
157
|
reachedEnd = rowChunk.length < batchSize;
|
|
131
|
-
emit({
|
|
158
|
+
emit({
|
|
159
|
+
info,
|
|
160
|
+
rows: rowChunk,
|
|
161
|
+
reachedEnd: reachedEnd || streamLimitReached,
|
|
162
|
+
});
|
|
132
163
|
} while (!reachedEnd && !streamLimitReached);
|
|
133
164
|
streamState = "ended";
|
|
134
165
|
if (!query.options?.persistStreamConnection) {
|
|
@@ -139,10 +170,17 @@ class QueryStreamer {
|
|
|
139
170
|
}
|
|
140
171
|
catch (error) {
|
|
141
172
|
streamState = "errored";
|
|
142
|
-
if (error.message ===
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
173
|
+
if (error.message ===
|
|
174
|
+
"cannot insert multiple commands into a prepared statement") {
|
|
175
|
+
this.dboBuilder.dbo.sql(query.query, {}, { returnType: "arrayMode", hasParams: false })
|
|
176
|
+
.then((res) => {
|
|
177
|
+
emit({
|
|
178
|
+
info: (0, prostgles_types_1.omitKeys)(res, ["rows"]),
|
|
179
|
+
reachedEnd: true,
|
|
180
|
+
rows: res.rows,
|
|
181
|
+
});
|
|
182
|
+
})
|
|
183
|
+
.catch((newError) => {
|
|
146
184
|
socketQuery.onError(newError);
|
|
147
185
|
});
|
|
148
186
|
}
|
|
@@ -172,7 +210,9 @@ class QueryStreamer {
|
|
|
172
210
|
}, 4e3);
|
|
173
211
|
}
|
|
174
212
|
try {
|
|
175
|
-
const stopFunction = opts?.terminate
|
|
213
|
+
const stopFunction = opts?.terminate
|
|
214
|
+
? "pg_terminate_backend"
|
|
215
|
+
: "pg_cancel_backend";
|
|
176
216
|
const rows = await this.adminClient.query(`SELECT ${stopFunction}(pid), pid, state, query FROM pg_stat_activity WHERE pid = $1`, [processID]);
|
|
177
217
|
cleanup();
|
|
178
218
|
cb({ processID, info: rows.rows[0] });
|
|
@@ -181,7 +221,9 @@ class QueryStreamer {
|
|
|
181
221
|
cb(null, error);
|
|
182
222
|
}
|
|
183
223
|
};
|
|
184
|
-
this.socketQueries[socketId][id].stop = () => stop({ terminate: true }, () => {
|
|
224
|
+
this.socketQueries[socketId][id].stop = () => stop({ terminate: true }, () => {
|
|
225
|
+
/* Empty */
|
|
226
|
+
});
|
|
185
227
|
socket.removeAllListeners(unsubChannel);
|
|
186
228
|
socket.once(unsubChannel, stop);
|
|
187
229
|
let runCount = 0;
|
|
@@ -197,7 +239,10 @@ class QueryStreamer {
|
|
|
197
239
|
const persistedClient = this.socketQueries[socketId]?.[id];
|
|
198
240
|
if (!persistedClient)
|
|
199
241
|
throw "Persisted query client not found";
|
|
200
|
-
await startStream(persistedClient.client, {
|
|
242
|
+
await startStream(persistedClient.client, {
|
|
243
|
+
...query,
|
|
244
|
+
query: _data.query,
|
|
245
|
+
});
|
|
201
246
|
}
|
|
202
247
|
else {
|
|
203
248
|
await startStream(undefined, query);
|