prostgles-server 4.2.183 → 4.2.185
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/main.yml +15 -15
- package/.prettierignore +2 -0
- package/README.md +1 -1
- package/dist/Auth/AuthHandler.d.ts +1 -1
- package/dist/Auth/AuthHandler.d.ts.map +1 -1
- package/dist/Auth/AuthHandler.js +64 -32
- package/dist/Auth/AuthHandler.js.map +1 -1
- package/dist/Auth/AuthTypes.d.ts +15 -1
- package/dist/Auth/AuthTypes.d.ts.map +1 -1
- package/dist/Auth/getSafeReturnURL.d.ts.map +1 -1
- package/dist/Auth/getSafeReturnURL.js.map +1 -1
- package/dist/Auth/sendEmail.d.ts.map +1 -1
- package/dist/Auth/sendEmail.js +6 -6
- package/dist/Auth/sendEmail.js.map +1 -1
- package/dist/Auth/setAuthProviders.d.ts +1 -1
- package/dist/Auth/setAuthProviders.d.ts.map +1 -1
- package/dist/Auth/setAuthProviders.js +15 -8
- package/dist/Auth/setAuthProviders.js.map +1 -1
- package/dist/Auth/setEmailProvider.d.ts.map +1 -1
- package/dist/Auth/setEmailProvider.js +23 -4
- package/dist/Auth/setEmailProvider.js.map +1 -1
- package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
- package/dist/Auth/setupAuthRoutes.js +27 -9
- package/dist/Auth/setupAuthRoutes.js.map +1 -1
- package/dist/DBEventsManager.d.ts.map +1 -1
- package/dist/DBEventsManager.js +24 -19
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DBSchemaBuilder.js +18 -5
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.js +7 -2
- package/dist/DboBuilder/DboBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
- package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.d.ts +2 -2
- package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.js +293 -173
- package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +2 -2
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +52 -29
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +51 -32
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js +48 -25
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +32 -23
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
- package/dist/DboBuilder/QueryStreamer.d.ts +2 -2
- package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
- package/dist/DboBuilder/QueryStreamer.js +68 -23
- package/dist/DboBuilder/QueryStreamer.js.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.js +79 -43
- package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +39 -15
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js +44 -13
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert.js +81 -22
- package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +7 -4
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -5
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
- package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/update.js +16 -4
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.js +33 -10
- package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.js +24 -6
- package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
- package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/upsert.js +22 -6
- package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +5 -5
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js +64 -36
- package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.js +21 -7
- package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.js +76 -22
- package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js +19 -10
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsFilters.js +12 -5
- package/dist/DboBuilder/ViewHandler/getExistsFilters.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getInfo.js +27 -9
- package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +2 -2
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +42 -23
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +22 -9
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts +4 -4
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +13 -11
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.js +44 -29
- package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js +36 -27
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareWhere.js +16 -12
- package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/size.js +24 -7
- package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/subscribe.js +40 -12
- package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/validateViewRules.js +20 -5
- package/dist/DboBuilder/ViewHandler/validateViewRules.js.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.js +18 -7
- package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
- package/dist/DboBuilder/getColumns.d.ts.map +1 -1
- package/dist/DboBuilder/getColumns.js +22 -7
- package/dist/DboBuilder/getColumns.js.map +1 -1
- package/dist/DboBuilder/getCondition.d.ts.map +1 -1
- package/dist/DboBuilder/getCondition.js +43 -30
- package/dist/DboBuilder/getCondition.js.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.js +38 -27
- package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +9 -9
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
- package/dist/DboBuilder/insertNestedRecords.d.ts +3 -3
- package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
- package/dist/DboBuilder/insertNestedRecords.js +79 -44
- package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +38 -14
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.js +56 -31
- package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
- package/dist/DboBuilder/runSQL.d.ts.map +1 -1
- package/dist/DboBuilder/runSQL.js +41 -21
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/DboBuilder/runTransaction.d.ts +1 -1
- package/dist/DboBuilder/runTransaction.d.ts.map +1 -1
- package/dist/DboBuilder/runTransaction.js +2 -2
- package/dist/DboBuilder/runTransaction.js.map +1 -1
- package/dist/DboBuilder/sqlErrCodeToMsg.d.ts.map +1 -1
- package/dist/DboBuilder/sqlErrCodeToMsg.js +297 -38
- package/dist/DboBuilder/sqlErrCodeToMsg.js.map +1 -1
- package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
- package/dist/DboBuilder/uploadFile.js +33 -9
- package/dist/DboBuilder/uploadFile.js.map +1 -1
- package/dist/Event_Trigger_Tags.d.ts +1 -1
- package/dist/Event_Trigger_Tags.d.ts.map +1 -1
- package/dist/Event_Trigger_Tags.js +1 -1
- package/dist/Event_Trigger_Tags.js.map +1 -1
- package/dist/FileManager/FileManager.d.ts.map +1 -1
- package/dist/FileManager/FileManager.js +6 -3
- package/dist/FileManager/FileManager.js.map +1 -1
- package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
- package/dist/FileManager/getValidatedFileType.js +18 -16
- package/dist/FileManager/getValidatedFileType.js.map +1 -1
- package/dist/FileManager/initFileManager.d.ts.map +1 -1
- package/dist/FileManager/initFileManager.js +7 -1
- package/dist/FileManager/initFileManager.js.map +1 -1
- package/dist/FileManager/upload.d.ts +1 -1
- package/dist/FileManager/upload.d.ts.map +1 -1
- package/dist/FileManager/upload.js +3 -3
- package/dist/FileManager/upload.js.map +1 -1
- package/dist/FileManager/uploadStream.d.ts +1 -1
- package/dist/FileManager/uploadStream.d.ts.map +1 -1
- package/dist/FileManager/uploadStream.js +6 -7
- package/dist/FileManager/uploadStream.js.map +1 -1
- package/dist/Filtering.d.ts +3 -3
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Filtering.js +70 -37
- package/dist/Filtering.js.map +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js +1 -4
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
- package/dist/JSONBValidation/validation.d.ts.map +1 -1
- package/dist/JSONBValidation/validation.js +46 -24
- package/dist/JSONBValidation/validation.js.map +1 -1
- package/dist/Logging.d.ts +2 -2
- package/dist/Logging.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.js +20 -22
- package/dist/PostgresNotifListenManager.js.map +1 -1
- package/dist/Prostgles.d.ts +1 -1
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +37 -11
- package/dist/Prostgles.js.map +1 -1
- package/dist/ProstglesTypes.d.ts.map +1 -1
- package/dist/ProstglesTypes.js +6 -1
- package/dist/ProstglesTypes.js.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +10 -5
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/addSub.d.ts.map +1 -1
- package/dist/PubSubManager/addSub.js +4 -6
- package/dist/PubSubManager/addSub.js.map +1 -1
- package/dist/PubSubManager/addSync.d.ts.map +1 -1
- package/dist/PubSubManager/addSync.js +10 -6
- package/dist/PubSubManager/addSync.js.map +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.d.ts.map +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.js +3 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
- package/dist/PubSubManager/getPubSubManagerInitQuery.d.ts.map +1 -1
- package/dist/PubSubManager/getPubSubManagerInitQuery.js +8 -8
- package/dist/PubSubManager/getPubSubManagerInitQuery.js.map +1 -1
- package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/initPubSubManager.js +7 -9
- package/dist/PubSubManager/initPubSubManager.js.map +1 -1
- package/dist/PubSubManager/notifListener.d.ts.map +1 -1
- package/dist/PubSubManager/notifListener.js +23 -12
- package/dist/PubSubManager/notifListener.js.map +1 -1
- package/dist/PubSubManager/orphanTriggerCheck.d.ts.map +1 -1
- package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
- package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
- package/dist/PubSubManager/pushSubData.js +1 -1
- package/dist/PubSubManager/pushSubData.js.map +1 -1
- package/dist/PublishParser/PublishParser.d.ts +1 -1
- package/dist/PublishParser/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.js +25 -14
- package/dist/PublishParser/PublishParser.js.map +1 -1
- package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
- package/dist/PublishParser/getFileTableRules.js +23 -16
- package/dist/PublishParser/getFileTableRules.js.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.js +39 -16
- package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.js +42 -22
- package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js +5 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/RestApi.d.ts +1 -1
- package/dist/RestApi.d.ts.map +1 -1
- package/dist/RestApi.js +1 -1
- package/dist/RestApi.js.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.d.ts +2 -2
- package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.js +11 -9
- package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
- package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts.map +1 -1
- package/dist/SchemaWatch/getValidatedWatchSchemaType.js +3 -3
- package/dist/SchemaWatch/getValidatedWatchSchemaType.js.map +1 -1
- package/dist/SchemaWatch/getWatchSchemaTagList.d.ts.map +1 -1
- package/dist/SchemaWatch/getWatchSchemaTagList.js +12 -6
- package/dist/SchemaWatch/getWatchSchemaTagList.js.map +1 -1
- package/dist/SyncReplication.d.ts.map +1 -1
- package/dist/SyncReplication.js +84 -42
- package/dist/SyncReplication.js.map +1 -1
- package/dist/TableConfig/TableConfig.d.ts +5 -5
- package/dist/TableConfig/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig/TableConfig.js +18 -5
- package/dist/TableConfig/TableConfig.js.map +1 -1
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts +2 -2
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
- package/dist/TableConfig/getColumnDefinitionQuery.js +20 -9
- package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +3 -3
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.js +12 -7
- package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.d.ts +1 -1
- package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.js +6 -4
- package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
- package/dist/TableConfig/getPGIndexes.d.ts.map +1 -1
- package/dist/TableConfig/getPGIndexes.js.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.d.ts +1 -1
- package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.js +38 -19
- package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
- package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
- package/dist/TableConfig/initTableConfig.js +91 -43
- package/dist/TableConfig/initTableConfig.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/initProstgles.d.ts.map +1 -1
- package/dist/initProstgles.js +14 -10
- package/dist/initProstgles.js.map +1 -1
- package/dist/onSocketConnected.d.ts.map +1 -1
- package/dist/onSocketConnected.js +38 -16
- package/dist/onSocketConnected.js.map +1 -1
- package/dist/runClientRequest.d.ts.map +1 -1
- package/dist/runClientRequest.js +33 -14
- package/dist/runClientRequest.js.map +1 -1
- package/dist/shortestPath.d.ts.map +1 -1
- package/dist/shortestPath.js +1 -1
- package/dist/shortestPath.js.map +1 -1
- package/dist/typeTests/dboTypeCheck.js.map +1 -1
- package/examples/full-example-typescript/DBoGenerated.d.ts +112 -54
- package/examples/full-example-typescript/DBoGenerated.js +3 -3
- package/examples/full-example-typescript/home.html +28 -26
- package/examples/full-example-typescript/index.d.ts +1 -1
- package/examples/full-example-typescript/index.js +80 -53
- package/examples/full-example-vanilla/home.html +151 -125
- package/examples/server/javascript/index.js +17 -19
- package/lib/Auth/AuthHandler.ts +234 -155
- package/lib/Auth/AuthTypes.ts +27 -4
- package/lib/Auth/getSafeReturnURL.ts +35 -21
- package/lib/Auth/sendEmail.ts +34 -31
- package/lib/Auth/setAuthProviders.ts +94 -71
- package/lib/Auth/setEmailProvider.ts +45 -27
- package/lib/Auth/setupAuthRoutes.ts +164 -100
- package/lib/DBEventsManager.ts +87 -65
- package/lib/DBSchemaBuilder.ts +62 -28
- package/lib/DboBuilder/DboBuilder.ts +45 -21
- package/lib/DboBuilder/DboBuilderTypes.ts +99 -95
- package/lib/DboBuilder/QueryBuilder/Functions.ts +862 -580
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +202 -141
- package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +199 -124
- package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +209 -148
- package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +101 -75
- package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +10 -5
- package/lib/DboBuilder/QueryStreamer.ts +207 -100
- package/lib/DboBuilder/TableHandler/DataValidator.ts +253 -148
- package/lib/DboBuilder/TableHandler/TableHandler.ts +155 -60
- package/lib/DboBuilder/TableHandler/delete.ts +82 -29
- package/lib/DboBuilder/TableHandler/insert.ts +177 -81
- package/lib/DboBuilder/TableHandler/insertTest.ts +13 -7
- package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +35 -21
- package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +95 -45
- package/lib/DboBuilder/TableHandler/update.ts +54 -14
- package/lib/DboBuilder/TableHandler/updateBatch.ts +59 -21
- package/lib/DboBuilder/TableHandler/updateFile.ts +57 -26
- package/lib/DboBuilder/TableHandler/upsert.ts +58 -13
- package/lib/DboBuilder/ViewHandler/ViewHandler.ts +264 -121
- package/lib/DboBuilder/ViewHandler/count.ts +56 -25
- package/lib/DboBuilder/ViewHandler/find.ts +153 -68
- package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +59 -32
- package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +31 -19
- package/lib/DboBuilder/ViewHandler/getInfo.ts +47 -16
- package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +91 -57
- package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +51 -29
- package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +35 -29
- package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +130 -76
- package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +140 -92
- package/lib/DboBuilder/ViewHandler/prepareWhere.ts +66 -26
- package/lib/DboBuilder/ViewHandler/size.ts +56 -22
- package/lib/DboBuilder/ViewHandler/subscribe.ts +122 -46
- package/lib/DboBuilder/ViewHandler/validateViewRules.ts +39 -14
- package/lib/DboBuilder/dboBuilderUtils.ts +41 -18
- package/lib/DboBuilder/getColumns.ts +44 -12
- package/lib/DboBuilder/getCondition.ts +120 -79
- package/lib/DboBuilder/getSubscribeRelatedTables.ts +144 -83
- package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +61 -44
- package/lib/DboBuilder/insertNestedRecords.ts +370 -235
- package/lib/DboBuilder/parseUpdateRules.ts +117 -61
- package/lib/DboBuilder/prepareShortestJoinPaths.ts +115 -56
- package/lib/DboBuilder/runSQL.ts +135 -74
- package/lib/DboBuilder/runTransaction.ts +27 -16
- package/lib/DboBuilder/sqlErrCodeToMsg.ts +502 -244
- package/lib/DboBuilder/uploadFile.ts +67 -31
- package/lib/Event_Trigger_Tags.ts +6 -4
- package/lib/FileManager/FileManager.ts +53 -21
- package/lib/FileManager/getValidatedFileType.ts +79 -35
- package/lib/FileManager/initFileManager.ts +21 -9
- package/lib/FileManager/upload.ts +21 -19
- package/lib/FileManager/uploadStream.ts +33 -34
- package/lib/Filtering.ts +249 -197
- package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +2 -7
- package/lib/JSONBValidation/validation.ts +147 -82
- package/lib/Logging.ts +107 -97
- package/lib/PostgresNotifListenManager.ts +96 -63
- package/lib/Prostgles.ts +106 -35
- package/lib/ProstglesTypes.ts +31 -9
- package/lib/PubSubManager/PubSubManager.ts +62 -27
- package/lib/PubSubManager/addSub.ts +56 -37
- package/lib/PubSubManager/addSync.ts +50 -33
- package/lib/PubSubManager/getCreatePubSubManagerError.ts +29 -21
- package/lib/PubSubManager/getPubSubManagerInitQuery.ts +45 -27
- package/lib/PubSubManager/initPubSubManager.ts +27 -18
- package/lib/PubSubManager/notifListener.ts +77 -59
- package/lib/PubSubManager/orphanTriggerCheck.ts +5 -4
- package/lib/PubSubManager/pushSubData.ts +11 -9
- package/lib/PublishParser/PublishParser.ts +102 -44
- package/lib/PublishParser/getFileTableRules.ts +97 -54
- package/lib/PublishParser/getSchemaFromPublish.ts +146 -74
- package/lib/PublishParser/getTableRulesWithoutFileTable.ts +101 -51
- package/lib/PublishParser/publishTypesAndUtils.ts +74 -23
- package/lib/RestApi.ts +10 -2
- package/lib/SchemaWatch/SchemaWatch.ts +52 -34
- package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +1 -1
- package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +32 -22
- package/lib/SchemaWatch/getWatchSchemaTagList.ts +24 -16
- package/lib/SyncReplication.ts +376 -190
- package/lib/TableConfig/TableConfig.ts +200 -136
- package/lib/TableConfig/getColumnDefinitionQuery.ts +65 -44
- package/lib/TableConfig/getConstraintDefinitionQueries.ts +41 -25
- package/lib/TableConfig/getFutureTableSchema.ts +31 -21
- package/lib/TableConfig/getPGIndexes.ts +7 -4
- package/lib/TableConfig/getTableColumnQueries.ts +101 -54
- package/lib/TableConfig/initTableConfig.ts +192 -101
- package/lib/index.ts +6 -5
- package/lib/initProstgles.ts +57 -51
- package/lib/onSocketConnected.ts +75 -40
- package/lib/runClientRequest.ts +148 -79
- package/lib/shortestPath.ts +80 -76
- package/lib/typeTests/DBoGenerated.d.ts +5 -1
- package/lib/typeTests/dboTypeCheck.ts +8 -8
- package/package.json +1 -1
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
asName as _asName,
|
|
3
|
+
AnyObject,
|
|
4
|
+
TableInfo,
|
|
5
|
+
ALLOWED_EXTENSION,
|
|
6
|
+
ALLOWED_CONTENT_TYPE,
|
|
7
|
+
isObject,
|
|
8
|
+
JSONB,
|
|
9
|
+
ColumnInfo,
|
|
10
|
+
} from "prostgles-types";
|
|
2
11
|
import { isPlainObject, JoinInfo, LocalParams } from "../DboBuilder/DboBuilder";
|
|
3
12
|
import { DB, DBHandlerServer, Prostgles } from "../Prostgles";
|
|
4
13
|
import { InsertRule, ValidateRowArgs } from "../PublishParser/PublishParser";
|
|
@@ -14,39 +23,41 @@ type ColExtraInfo = {
|
|
|
14
23
|
|
|
15
24
|
export type I18N_Config<LANG_IDS> = {
|
|
16
25
|
[lang_id in keyof LANG_IDS]: string;
|
|
17
|
-
}
|
|
26
|
+
};
|
|
18
27
|
|
|
19
28
|
export const parseI18N = <LANG_IDS, Def extends string | undefined>(params: {
|
|
20
|
-
config?: I18N_Config<LANG_IDS> | string;
|
|
21
|
-
lang?: keyof LANG_IDS | string;
|
|
29
|
+
config?: I18N_Config<LANG_IDS> | string;
|
|
30
|
+
lang?: keyof LANG_IDS | string;
|
|
22
31
|
defaultLang: keyof LANG_IDS | string;
|
|
23
32
|
defaultValue: Def;
|
|
24
33
|
}): Def | string => {
|
|
25
34
|
const { config, lang, defaultLang, defaultValue } = params;
|
|
26
|
-
if(config){
|
|
27
|
-
if(isPlainObject(config)){
|
|
35
|
+
if (config) {
|
|
36
|
+
if (isPlainObject(config)) {
|
|
28
37
|
//@ts-ignore
|
|
29
38
|
return config[lang] ?? config[defaultLang];
|
|
30
|
-
} else if(typeof config === "string"){
|
|
39
|
+
} else if (typeof config === "string") {
|
|
31
40
|
return config;
|
|
32
41
|
}
|
|
33
42
|
}
|
|
34
43
|
|
|
35
44
|
return defaultValue;
|
|
36
|
-
}
|
|
45
|
+
};
|
|
37
46
|
|
|
38
47
|
type BaseTableDefinition<LANG_IDS = AnyObject> = {
|
|
39
48
|
info?: {
|
|
40
49
|
label?: string | I18N_Config<LANG_IDS>;
|
|
41
|
-
}
|
|
50
|
+
};
|
|
42
51
|
dropIfExistsCascade?: boolean;
|
|
43
52
|
dropIfExists?: boolean;
|
|
44
53
|
hooks?: {
|
|
45
54
|
/**
|
|
46
|
-
* Hook used to run custom logic before inserting a row.
|
|
55
|
+
* Hook used to run custom logic before inserting a row.
|
|
47
56
|
* The returned row must satisfy the table schema
|
|
48
57
|
*/
|
|
49
|
-
getPreInsertRow?: (
|
|
58
|
+
getPreInsertRow?: (
|
|
59
|
+
args: GetPreInsertRowArgs,
|
|
60
|
+
) => Promise<{ row: AnyObject; onInserted: Promise<void> }>;
|
|
50
61
|
};
|
|
51
62
|
triggers?: {
|
|
52
63
|
[triggerName: string]: {
|
|
@@ -77,19 +88,21 @@ type BaseTableDefinition<LANG_IDS = AnyObject> = {
|
|
|
77
88
|
END;
|
|
78
89
|
*/
|
|
79
90
|
query: string;
|
|
80
|
-
}
|
|
91
|
+
};
|
|
81
92
|
};
|
|
82
|
-
}
|
|
93
|
+
};
|
|
83
94
|
|
|
84
95
|
type LookupTableDefinition<LANG_IDS> = {
|
|
85
96
|
isLookupTable: {
|
|
86
97
|
values: {
|
|
87
|
-
[id_value: string]:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
98
|
+
[id_value: string]:
|
|
99
|
+
| {}
|
|
100
|
+
| {
|
|
101
|
+
[lang_id in keyof LANG_IDS]: string;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
};
|
|
93
106
|
|
|
94
107
|
export type BaseColumn<LANG_IDS> = {
|
|
95
108
|
/**
|
|
@@ -97,21 +110,20 @@ export type BaseColumn<LANG_IDS> = {
|
|
|
97
110
|
*/
|
|
98
111
|
info?: ColExtraInfo;
|
|
99
112
|
|
|
100
|
-
label?: string | Partial<{ [lang_id in keyof LANG_IDS]: string
|
|
101
|
-
}
|
|
113
|
+
label?: string | Partial<{ [lang_id in keyof LANG_IDS]: string }>;
|
|
114
|
+
};
|
|
102
115
|
|
|
103
116
|
type SQLDefColumn = {
|
|
104
|
-
|
|
105
117
|
/**
|
|
106
118
|
* Raw sql statement used in creating/adding column
|
|
107
119
|
*/
|
|
108
120
|
sqlDefinition?: string;
|
|
109
|
-
}
|
|
121
|
+
};
|
|
110
122
|
|
|
111
123
|
export type BaseColumnTypes = {
|
|
112
124
|
defaultValue?: any;
|
|
113
125
|
nullable?: boolean;
|
|
114
|
-
}
|
|
126
|
+
};
|
|
115
127
|
|
|
116
128
|
type TextColumn = BaseColumnTypes & {
|
|
117
129
|
isText: true;
|
|
@@ -124,44 +136,51 @@ type TextColumn = BaseColumnTypes & {
|
|
|
124
136
|
* Value will be lower cased before update/insert
|
|
125
137
|
*/
|
|
126
138
|
lowerCased?: boolean;
|
|
127
|
-
}
|
|
139
|
+
};
|
|
128
140
|
|
|
129
141
|
export type JSONBColumnDef = (BaseColumnTypes & {
|
|
130
142
|
/**
|
|
131
143
|
* If the new schema CHECK fails old rows the update old rows using this function
|
|
132
144
|
*/
|
|
133
145
|
// onMigrationFail?: <T>(failedRow: T) => AnyObject | Promise<AnyObject>;
|
|
134
|
-
}) &
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
146
|
+
}) &
|
|
147
|
+
(
|
|
148
|
+
| {
|
|
149
|
+
jsonbSchema: JSONB.JSONBSchema;
|
|
150
|
+
jsonbSchemaType?: undefined;
|
|
151
|
+
}
|
|
152
|
+
| {
|
|
153
|
+
jsonbSchema?: undefined;
|
|
154
|
+
jsonbSchemaType: JSONB.ObjectType["type"];
|
|
155
|
+
}
|
|
156
|
+
);
|
|
141
157
|
|
|
142
158
|
/**
|
|
143
159
|
* Allows referencing media to this table.
|
|
144
160
|
* Requires this table to have a primary key AND a valid fileTable config
|
|
145
161
|
*/
|
|
146
|
-
type MediaColumn =
|
|
147
|
-
|
|
162
|
+
type MediaColumn = {
|
|
148
163
|
name: string;
|
|
149
164
|
label?: string;
|
|
150
165
|
files: "one" | "many";
|
|
151
166
|
} & (
|
|
152
|
-
|
|
153
|
-
|
|
167
|
+
| {
|
|
154
168
|
/**
|
|
155
169
|
* https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept
|
|
156
170
|
*/
|
|
157
|
-
allowedContentType?: Record<
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
171
|
+
allowedContentType?: Record<
|
|
172
|
+
Partial<
|
|
173
|
+
"audio/*" | "video/*" | "image/*" | "text/*" | ALLOWED_CONTENT_TYPE
|
|
174
|
+
>,
|
|
175
|
+
1
|
|
176
|
+
>;
|
|
177
|
+
}
|
|
178
|
+
| {
|
|
179
|
+
allowedExtensions?: Record<Partial<ALLOWED_EXTENSION>, 1>;
|
|
161
180
|
}
|
|
162
|
-
|
|
181
|
+
);
|
|
163
182
|
|
|
164
|
-
type ReferencedColumn = {
|
|
183
|
+
type ReferencedColumn = {
|
|
165
184
|
/**
|
|
166
185
|
* Will create a lookup table that this column will reference
|
|
167
186
|
*/
|
|
@@ -171,14 +190,14 @@ type ReferencedColumn = {
|
|
|
171
190
|
* Defaults to id
|
|
172
191
|
*/
|
|
173
192
|
columnName?: string;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
193
|
+
};
|
|
194
|
+
};
|
|
176
195
|
|
|
177
196
|
type JoinDef = {
|
|
178
197
|
sourceTable: string;
|
|
179
198
|
targetTable: string;
|
|
180
199
|
on: JoinInfo["paths"][number]["on"];
|
|
181
|
-
}
|
|
200
|
+
};
|
|
182
201
|
|
|
183
202
|
/**
|
|
184
203
|
* Used in specifying a join path to a table. This column name can then be used in select
|
|
@@ -186,54 +205,72 @@ type JoinDef = {
|
|
|
186
205
|
type NamedJoinColumn = {
|
|
187
206
|
label?: string;
|
|
188
207
|
joinDef: JoinDef[];
|
|
189
|
-
}
|
|
208
|
+
};
|
|
190
209
|
|
|
191
|
-
type Enum<T extends string | number = any> = {
|
|
210
|
+
type Enum<T extends string | number = any> = {
|
|
192
211
|
enum: T[] | readonly T[];
|
|
193
|
-
nullable?: boolean;
|
|
194
|
-
defaultValue?: T;
|
|
212
|
+
nullable?: boolean;
|
|
213
|
+
defaultValue?: T;
|
|
195
214
|
};
|
|
196
215
|
|
|
197
|
-
export type ColumnConfig<LANG_IDS = { en: 1 }> =
|
|
216
|
+
export type ColumnConfig<LANG_IDS = { en: 1 }> =
|
|
217
|
+
| string
|
|
218
|
+
| StrictUnion<
|
|
219
|
+
| NamedJoinColumn
|
|
220
|
+
| MediaColumn
|
|
221
|
+
| (BaseColumn<LANG_IDS> &
|
|
222
|
+
(
|
|
223
|
+
| SQLDefColumn
|
|
224
|
+
| ReferencedColumn
|
|
225
|
+
| TextColumn
|
|
226
|
+
| JSONBColumnDef
|
|
227
|
+
| Enum
|
|
228
|
+
))
|
|
229
|
+
>;
|
|
198
230
|
|
|
199
231
|
export type ColumnConfigs<LANG_IDS = { en: 1 }> = {
|
|
200
|
-
sql: string | BaseColumn<LANG_IDS> & SQLDefColumn;
|
|
232
|
+
sql: string | (BaseColumn<LANG_IDS> & SQLDefColumn);
|
|
201
233
|
join: BaseColumn<LANG_IDS> & NamedJoinColumn;
|
|
202
234
|
media: BaseColumn<LANG_IDS> & MediaColumn;
|
|
203
235
|
referenced: BaseColumn<LANG_IDS> & ReferencedColumn;
|
|
204
236
|
text: BaseColumn<LANG_IDS> & TextColumn;
|
|
205
237
|
jsonb: BaseColumn<LANG_IDS> & JSONBColumnDef;
|
|
206
238
|
enum: BaseColumn<LANG_IDS> & Enum;
|
|
207
|
-
}
|
|
239
|
+
};
|
|
208
240
|
|
|
209
241
|
type UnionKeys<T> = T extends T ? keyof T : never;
|
|
210
|
-
type StrictUnionHelper<T, TAll> = T extends any
|
|
211
|
-
|
|
242
|
+
type StrictUnionHelper<T, TAll> = T extends any
|
|
243
|
+
? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>>
|
|
244
|
+
: never;
|
|
245
|
+
export type StrictUnion<T> = StrictUnionHelper<T, T>;
|
|
212
246
|
|
|
213
|
-
export const CONSTRAINT_TYPES = ["PRIMARY KEY", "UNIQUE", "CHECK"] as const;
|
|
247
|
+
export const CONSTRAINT_TYPES = ["PRIMARY KEY", "UNIQUE", "CHECK"] as const;
|
|
214
248
|
export type TableDefinition<LANG_IDS> = {
|
|
215
|
-
onMount?: (params: {
|
|
249
|
+
onMount?: (params: {
|
|
250
|
+
dbo: DBHandlerServer;
|
|
251
|
+
_db: DB;
|
|
252
|
+
}) => Promise<void | { onUnmount: () => void }>;
|
|
216
253
|
columns?: {
|
|
217
|
-
[column_name: string]: ColumnConfig<LANG_IDS
|
|
218
|
-
}
|
|
219
|
-
constraints?:
|
|
220
|
-
| string[]
|
|
254
|
+
[column_name: string]: ColumnConfig<LANG_IDS>;
|
|
255
|
+
};
|
|
256
|
+
constraints?:
|
|
257
|
+
| string[]
|
|
221
258
|
| {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
259
|
+
[constraint_name: string]:
|
|
260
|
+
| string
|
|
261
|
+
| {
|
|
262
|
+
type: (typeof CONSTRAINT_TYPES)[number];
|
|
263
|
+
dropIfExists?: boolean;
|
|
264
|
+
/**
|
|
265
|
+
* E.g.:
|
|
266
|
+
* colname
|
|
267
|
+
* col1, col2
|
|
268
|
+
* col1 > col3
|
|
269
|
+
*/
|
|
270
|
+
content: string;
|
|
271
|
+
};
|
|
235
272
|
// & ({
|
|
236
|
-
// }
|
|
273
|
+
// }
|
|
237
274
|
// | {
|
|
238
275
|
// type: "FOREIGN KEY",
|
|
239
276
|
// columns: string[];
|
|
@@ -241,7 +278,7 @@ export type TableDefinition<LANG_IDS> = {
|
|
|
241
278
|
// fcols: string[];
|
|
242
279
|
// }
|
|
243
280
|
// )
|
|
244
|
-
|
|
281
|
+
};
|
|
245
282
|
|
|
246
283
|
/**
|
|
247
284
|
* Similar to unique constraints but expressions are allowed inside definition
|
|
@@ -249,7 +286,6 @@ export type TableDefinition<LANG_IDS> = {
|
|
|
249
286
|
replaceUniqueIndexes?: boolean;
|
|
250
287
|
indexes?: {
|
|
251
288
|
[index_name: string]: {
|
|
252
|
-
|
|
253
289
|
/**
|
|
254
290
|
* If true then will drop any existing index with this name
|
|
255
291
|
* Overrides replaceUniqueIndexes
|
|
@@ -257,14 +293,14 @@ export type TableDefinition<LANG_IDS> = {
|
|
|
257
293
|
replace?: boolean;
|
|
258
294
|
|
|
259
295
|
/**
|
|
260
|
-
* Causes the system to check for duplicate values in the table when the index is created (if data already exist) and each time data is added.
|
|
296
|
+
* Causes the system to check for duplicate values in the table when the index is created (if data already exist) and each time data is added.
|
|
261
297
|
* Attempts to insert or update data which would result in duplicate entries will generate an error.
|
|
262
298
|
*/
|
|
263
299
|
unique?: boolean;
|
|
264
300
|
|
|
265
301
|
/**
|
|
266
|
-
* When this option is used, PostgreSQL will build the index without taking any locks that prevent
|
|
267
|
-
* concurrent inserts, updates, or deletes on the table; whereas a standard index build locks out writes (but not reads) on the table until it's done.
|
|
302
|
+
* When this option is used, PostgreSQL will build the index without taking any locks that prevent
|
|
303
|
+
* concurrent inserts, updates, or deletes on the table; whereas a standard index build locks out writes (but not reads) on the table until it's done.
|
|
268
304
|
* There are several caveats to be aware of when using this option — see Building Indexes Concurrently.
|
|
269
305
|
*/
|
|
270
306
|
concurrently?: boolean;
|
|
@@ -288,44 +324,44 @@ export type TableDefinition<LANG_IDS> = {
|
|
|
288
324
|
where?: string;
|
|
289
325
|
|
|
290
326
|
/**
|
|
291
|
-
* The name of the index method to be used.
|
|
327
|
+
* The name of the index method to be used.
|
|
292
328
|
* Choices are btree, hash, gist, and gin. The default method is btree.
|
|
293
329
|
*/
|
|
294
330
|
using?: "btree" | "hash" | "gist" | "gin";
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
331
|
+
};
|
|
332
|
+
};
|
|
333
|
+
};
|
|
298
334
|
|
|
299
335
|
type GetPreInsertRowArgs = Omit<ValidateRowArgs, "localParams"> & {
|
|
300
336
|
// preValidate: InsertRule["preValidate"];
|
|
301
337
|
validate: InsertRule["validate"];
|
|
302
338
|
localParams: LocalParams | undefined;
|
|
303
|
-
}
|
|
339
|
+
};
|
|
304
340
|
|
|
305
341
|
/**
|
|
306
342
|
* Helper utility to create lookup tables for TEXT columns
|
|
307
343
|
*/
|
|
308
344
|
export type TableConfig<LANG_IDS = { en: 1 }> = {
|
|
309
|
-
[table_name: string]: BaseTableDefinition<LANG_IDS> &
|
|
310
|
-
|
|
345
|
+
[table_name: string]: BaseTableDefinition<LANG_IDS> &
|
|
346
|
+
(TableDefinition<LANG_IDS> | LookupTableDefinition<LANG_IDS>);
|
|
347
|
+
};
|
|
311
348
|
|
|
312
349
|
/**
|
|
313
350
|
* Will be run between initSQL and fileTable
|
|
314
351
|
*/
|
|
315
352
|
export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
316
|
-
|
|
317
353
|
instanceId = Date.now() + Math.random();
|
|
318
|
-
|
|
354
|
+
|
|
319
355
|
config: TableConfig<LANG_IDS> = {};
|
|
320
356
|
get dbo(): DBHandlerServer {
|
|
321
|
-
if (!this.prostgles.dbo) throw "this.prostgles.dbo missing"
|
|
322
|
-
return this.prostgles.dbo
|
|
323
|
-
}
|
|
357
|
+
if (!this.prostgles.dbo) throw "this.prostgles.dbo missing";
|
|
358
|
+
return this.prostgles.dbo;
|
|
359
|
+
}
|
|
324
360
|
get db(): DB {
|
|
325
|
-
if (!this.prostgles.db) throw "this.prostgles.db missing"
|
|
326
|
-
return this.prostgles.db
|
|
327
|
-
}
|
|
328
|
-
prostgles: Prostgles
|
|
361
|
+
if (!this.prostgles.db) throw "this.prostgles.db missing";
|
|
362
|
+
return this.prostgles.db;
|
|
363
|
+
}
|
|
364
|
+
prostgles: Prostgles;
|
|
329
365
|
|
|
330
366
|
constructor(prostgles: Prostgles) {
|
|
331
367
|
this.config = (prostgles.opts.tableConfig as any) ?? {};
|
|
@@ -333,56 +369,80 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
333
369
|
}
|
|
334
370
|
|
|
335
371
|
destroy = async () => {
|
|
336
|
-
for await(const { onUnmount } of Object.values(this.tableOnMounts)){
|
|
372
|
+
for await (const { onUnmount } of Object.values(this.tableOnMounts)) {
|
|
337
373
|
try {
|
|
338
374
|
await onUnmount();
|
|
339
375
|
} catch (error) {
|
|
340
376
|
console.error(error);
|
|
341
377
|
}
|
|
342
378
|
}
|
|
343
|
-
}
|
|
379
|
+
};
|
|
344
380
|
|
|
345
|
-
tableOnMounts: Record<string, { onUnmount: () => void
|
|
381
|
+
tableOnMounts: Record<string, { onUnmount: () => void }> = {};
|
|
346
382
|
setTableOnMounts = async () => {
|
|
347
383
|
this.tableOnMounts = {};
|
|
348
384
|
for (const [tableName, tableConfig] of Object.entries(this.config)) {
|
|
349
|
-
if("onMount" in tableConfig && tableConfig.onMount){
|
|
350
|
-
const cleanup = await tableConfig.onMount({
|
|
351
|
-
|
|
385
|
+
if ("onMount" in tableConfig && tableConfig.onMount) {
|
|
386
|
+
const cleanup = await tableConfig.onMount({
|
|
387
|
+
dbo: this.dbo,
|
|
388
|
+
_db: this.db,
|
|
389
|
+
});
|
|
390
|
+
if (cleanup) {
|
|
352
391
|
this.tableOnMounts[tableName] = cleanup;
|
|
353
392
|
}
|
|
354
393
|
}
|
|
355
394
|
}
|
|
356
|
-
}
|
|
395
|
+
};
|
|
357
396
|
|
|
358
|
-
getColumnConfig = (
|
|
397
|
+
getColumnConfig = (
|
|
398
|
+
tableName: string,
|
|
399
|
+
colName: string,
|
|
400
|
+
): ColumnConfig | undefined => {
|
|
359
401
|
const tconf = this.config?.[tableName];
|
|
360
402
|
if (tconf && "columns" in tconf) {
|
|
361
403
|
return tconf.columns?.[colName];
|
|
362
404
|
}
|
|
363
405
|
return undefined;
|
|
364
|
-
}
|
|
406
|
+
};
|
|
365
407
|
|
|
366
|
-
getTableInfo = (params: {
|
|
408
|
+
getTableInfo = (params: {
|
|
409
|
+
tableName: string;
|
|
410
|
+
lang?: string;
|
|
411
|
+
}): TableInfo["info"] | undefined => {
|
|
367
412
|
const tconf = this.config?.[params.tableName];
|
|
368
|
-
|
|
413
|
+
|
|
369
414
|
return {
|
|
370
|
-
label: parseI18N<LANG_IDS, string>({
|
|
371
|
-
|
|
372
|
-
|
|
415
|
+
label: parseI18N<LANG_IDS, string>({
|
|
416
|
+
config: tconf?.info?.label,
|
|
417
|
+
lang: params.lang,
|
|
418
|
+
defaultLang: "en",
|
|
419
|
+
defaultValue: params.tableName,
|
|
420
|
+
}),
|
|
421
|
+
};
|
|
422
|
+
};
|
|
373
423
|
|
|
374
|
-
getColInfo = (params: {
|
|
424
|
+
getColInfo = (params: {
|
|
425
|
+
col: string;
|
|
426
|
+
table: string;
|
|
427
|
+
lang?: string;
|
|
428
|
+
}):
|
|
429
|
+
| (ColExtraInfo & { label?: string } & Pick<ColumnInfo, "jsonbSchema">)
|
|
430
|
+
| undefined => {
|
|
375
431
|
const colConf = this.getColumnConfig(params.table, params.col);
|
|
376
432
|
let result: Partial<ReturnType<typeof this.getColInfo>> = undefined;
|
|
377
433
|
if (colConf) {
|
|
378
|
-
|
|
379
434
|
if (isObject(colConf)) {
|
|
380
435
|
const { jsonbSchema, jsonbSchemaType, info } = colConf;
|
|
381
436
|
result = {
|
|
382
437
|
...(result ?? {}),
|
|
383
438
|
...info,
|
|
384
|
-
...((jsonbSchema || jsonbSchemaType) && {
|
|
385
|
-
|
|
439
|
+
...((jsonbSchema || jsonbSchemaType) && {
|
|
440
|
+
jsonbSchema: {
|
|
441
|
+
nullable: colConf.nullable,
|
|
442
|
+
...(jsonbSchema || { type: jsonbSchemaType }),
|
|
443
|
+
},
|
|
444
|
+
}),
|
|
445
|
+
};
|
|
386
446
|
|
|
387
447
|
/**
|
|
388
448
|
* Get labels from TableConfig if specified
|
|
@@ -393,34 +453,35 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
393
453
|
if (["string", "object"].includes(typeof lbl)) {
|
|
394
454
|
if (typeof lbl === "string") {
|
|
395
455
|
result ??= {};
|
|
396
|
-
result.label = lbl
|
|
456
|
+
result.label = lbl;
|
|
397
457
|
} else if (lang && (lbl?.[lang as "en"] || lbl?.en)) {
|
|
398
458
|
result ??= {};
|
|
399
|
-
result.label =
|
|
459
|
+
result.label = lbl?.[lang as "en"] || lbl?.en;
|
|
400
460
|
}
|
|
401
461
|
}
|
|
402
|
-
|
|
403
462
|
}
|
|
404
|
-
|
|
405
463
|
}
|
|
406
|
-
|
|
407
464
|
}
|
|
408
465
|
|
|
409
|
-
|
|
410
466
|
return result;
|
|
411
|
-
}
|
|
467
|
+
};
|
|
412
468
|
|
|
413
|
-
checkColVal = (params: { col: string
|
|
469
|
+
checkColVal = (params: { col: string; table: string; value: any }): void => {
|
|
414
470
|
const conf = this.getColInfo(params);
|
|
415
471
|
if (conf) {
|
|
416
472
|
const { value } = params;
|
|
417
473
|
const { min, max } = conf;
|
|
418
|
-
if (min !== undefined && value !== undefined && value < min)
|
|
419
|
-
|
|
474
|
+
if (min !== undefined && value !== undefined && value < min)
|
|
475
|
+
throw `${params.col} must be greater than ${min}`;
|
|
476
|
+
if (max !== undefined && value !== undefined && value > max)
|
|
477
|
+
throw `${params.col} must be less than ${max}`;
|
|
420
478
|
}
|
|
421
|
-
}
|
|
479
|
+
};
|
|
422
480
|
|
|
423
|
-
getJoinInfo = (
|
|
481
|
+
getJoinInfo = (
|
|
482
|
+
sourceTable: string,
|
|
483
|
+
targetTable: string,
|
|
484
|
+
): JoinInfo | undefined => {
|
|
424
485
|
if (
|
|
425
486
|
this.config &&
|
|
426
487
|
sourceTable in this.config &&
|
|
@@ -431,7 +492,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
431
492
|
if ("columns" in td && td.columns?.[targetTable]) {
|
|
432
493
|
const cd = td.columns[targetTable];
|
|
433
494
|
if (isObject(cd) && "joinDef" in cd) {
|
|
434
|
-
if(!cd.joinDef) throw "cd.joinDef missing"
|
|
495
|
+
if (!cd.joinDef) throw "cd.joinDef missing";
|
|
435
496
|
const { joinDef } = cd;
|
|
436
497
|
const res: JoinInfo = {
|
|
437
498
|
expectOne: false,
|
|
@@ -439,30 +500,33 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
439
500
|
source: sourceTable,
|
|
440
501
|
target: targetTable,
|
|
441
502
|
table,
|
|
442
|
-
on
|
|
503
|
+
on,
|
|
443
504
|
})),
|
|
444
|
-
}
|
|
505
|
+
};
|
|
445
506
|
|
|
446
507
|
return res;
|
|
447
508
|
}
|
|
448
509
|
}
|
|
449
510
|
}
|
|
450
511
|
return undefined;
|
|
451
|
-
}
|
|
512
|
+
};
|
|
452
513
|
|
|
453
|
-
getPreInsertRow = async (
|
|
514
|
+
getPreInsertRow = async (
|
|
515
|
+
tableHandler: TableHandler,
|
|
516
|
+
args: Pick<GetPreInsertRowArgs, "localParams" | "row" | "validate" | "dbx">,
|
|
517
|
+
): Promise<AnyObject> => {
|
|
454
518
|
const tableHook = this.config?.[tableHandler.name]?.hooks?.getPreInsertRow;
|
|
455
|
-
if(tableHandler.is_media){
|
|
519
|
+
if (tableHandler.is_media) {
|
|
456
520
|
return uploadFile.bind(tableHandler)(args) as Promise<AnyObject>;
|
|
457
|
-
}
|
|
458
|
-
if(tableHook){
|
|
459
|
-
return tableHook(args)
|
|
521
|
+
}
|
|
522
|
+
if (tableHook) {
|
|
523
|
+
return tableHook(args);
|
|
460
524
|
}
|
|
461
525
|
|
|
462
526
|
return args.row;
|
|
463
|
-
}
|
|
527
|
+
};
|
|
464
528
|
|
|
465
529
|
prevInitQueryHistory?: string[];
|
|
466
530
|
initialising = false;
|
|
467
531
|
init = initTableConfig.bind(this);
|
|
468
|
-
}
|
|
532
|
+
}
|