prostgles-server 4.2.344 → 4.2.345
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/dist/Auth/AuthHandler.d.ts +3 -4
- package/dist/Auth/AuthHandler.d.ts.map +1 -1
- package/dist/Auth/AuthHandler.js +3 -11
- package/dist/Auth/AuthHandler.js.map +1 -1
- package/dist/Auth/AuthTypes.d.ts +8 -7
- package/dist/Auth/AuthTypes.d.ts.map +1 -1
- package/dist/Auth/AuthTypes.js.map +1 -1
- package/dist/Auth/endpoints/setCatchAllRequestHandler.d.ts +2 -2
- package/dist/Auth/endpoints/setCatchAllRequestHandler.d.ts.map +1 -1
- package/dist/Auth/endpoints/setCatchAllRequestHandler.js +4 -3
- package/dist/Auth/endpoints/setCatchAllRequestHandler.js.map +1 -1
- package/dist/Auth/endpoints/setLoginRequestHandler.d.ts +4 -3
- package/dist/Auth/endpoints/setLoginRequestHandler.d.ts.map +1 -1
- package/dist/Auth/endpoints/setLoginRequestHandler.js.map +1 -1
- package/dist/Auth/endpoints/setLogoutRequestHandler.d.ts +2 -2
- package/dist/Auth/endpoints/setLogoutRequestHandler.d.ts.map +1 -1
- package/dist/Auth/endpoints/setLogoutRequestHandler.js.map +1 -1
- package/dist/Auth/endpoints/setMagicLinkOrOTPRequestHandler.d.ts +3 -3
- package/dist/Auth/endpoints/setMagicLinkOrOTPRequestHandler.d.ts.map +1 -1
- package/dist/Auth/endpoints/setMagicLinkOrOTPRequestHandler.js.map +1 -1
- package/dist/Auth/endpoints/setOAuthRequestHandlers.d.ts +3 -3
- package/dist/Auth/endpoints/setOAuthRequestHandlers.d.ts.map +1 -1
- package/dist/Auth/endpoints/setOAuthRequestHandlers.js.map +1 -1
- package/dist/Auth/endpoints/setRegisterRequestHandler.d.ts +1 -1
- package/dist/Auth/endpoints/setRegisterRequestHandler.d.ts.map +1 -1
- package/dist/Auth/endpoints/setRegisterRequestHandler.js.map +1 -1
- package/dist/Auth/getClientAuth.d.ts +3 -3
- package/dist/Auth/getClientAuth.d.ts.map +1 -1
- package/dist/Auth/getClientAuth.js.map +1 -1
- package/dist/Auth/login.d.ts +4 -3
- package/dist/Auth/login.d.ts.map +1 -1
- package/dist/Auth/login.js.map +1 -1
- package/dist/Auth/sendEmail.d.ts +2 -2
- package/dist/Auth/sendEmail.d.ts.map +1 -1
- package/dist/Auth/setupAuthRoutes.d.ts +1 -1
- package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
- package/dist/Auth/setupAuthRoutes.js.map +1 -1
- package/dist/Auth/utils/getClientRequestIPsInfo.d.ts +2 -2
- package/dist/Auth/utils/getClientRequestIPsInfo.d.ts.map +1 -1
- package/dist/Auth/utils/getReturnUrl.d.ts +1 -1
- package/dist/Auth/utils/getReturnUrl.d.ts.map +1 -1
- package/dist/Auth/utils/getSidAndUserFromRequest.d.ts +2 -2
- package/dist/Auth/utils/getSidAndUserFromRequest.d.ts.map +1 -1
- package/dist/Auth/utils/handleGetUser.d.ts +1 -1
- package/dist/Auth/utils/handleGetUser.d.ts.map +1 -1
- package/dist/Auth/utils/handleGetUser.js.map +1 -1
- package/dist/Auth/utils/matchesRoute.d.ts +2 -0
- package/dist/Auth/utils/matchesRoute.d.ts.map +1 -0
- package/dist/Auth/utils/matchesRoute.js +13 -0
- package/dist/Auth/utils/matchesRoute.js.map +1 -0
- package/dist/Auth/utils/removeExpressRoute.d.ts +1 -1
- package/dist/Auth/utils/removeExpressRoute.d.ts.map +1 -1
- package/dist/Auth/utils/removeExpressRoute.js +2 -2
- package/dist/Auth/utils/removeExpressRoute.js.map +1 -1
- package/dist/Auth/utils/setCookieAndGoToReturnURLIFSet.d.ts.map +1 -1
- package/dist/Auth/utils/setCookieAndGoToReturnURLIFSet.js +2 -1
- package/dist/Auth/utils/setCookieAndGoToReturnURLIFSet.js.map +1 -1
- package/dist/Auth/utils/upsertNamedExpressMiddleware.d.ts +3 -1
- package/dist/Auth/utils/upsertNamedExpressMiddleware.d.ts.map +1 -1
- package/dist/Auth/utils/upsertNamedExpressMiddleware.js +14 -3
- package/dist/Auth/utils/upsertNamedExpressMiddleware.js.map +1 -1
- package/dist/DBEventsManager.d.ts +2 -2
- package/dist/DBEventsManager.d.ts.map +1 -1
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/{DBSchemaBuilder.d.ts → DBSchemaBuilder/DBSchemaBuilder.d.ts} +9 -5
- package/dist/DBSchemaBuilder/DBSchemaBuilder.d.ts.map +1 -0
- package/dist/DBSchemaBuilder/DBSchemaBuilder.js +35 -0
- package/dist/DBSchemaBuilder/DBSchemaBuilder.js.map +1 -0
- package/dist/DBSchemaBuilder/DBSchemaBuilder.spec.d.ts +2 -0
- package/dist/DBSchemaBuilder/DBSchemaBuilder.spec.d.ts.map +1 -0
- package/dist/DBSchemaBuilder/DBSchemaBuilder.spec.js +98 -0
- package/dist/DBSchemaBuilder/DBSchemaBuilder.spec.js.map +1 -0
- package/dist/DBSchemaBuilder/getColumnTypescriptDefinition.d.ts +15 -0
- package/dist/DBSchemaBuilder/getColumnTypescriptDefinition.d.ts.map +1 -0
- package/dist/DBSchemaBuilder/getColumnTypescriptDefinition.js +79 -0
- package/dist/DBSchemaBuilder/getColumnTypescriptDefinition.js.map +1 -0
- package/dist/DboBuilder/DboBuilder.d.ts +9 -8
- package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.js +10 -6
- package/dist/DboBuilder/DboBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilderTypes.d.ts +7 -7
- package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions/COMPUTED_FIELDS.d.ts +3 -0
- package/dist/DboBuilder/QueryBuilder/Functions/COMPUTED_FIELDS.d.ts.map +1 -0
- package/dist/DboBuilder/QueryBuilder/Functions/COMPUTED_FIELDS.js +35 -0
- package/dist/DboBuilder/QueryBuilder/Functions/COMPUTED_FIELDS.js.map +1 -0
- package/dist/DboBuilder/QueryBuilder/{Functions.d.ts → Functions/Functions.d.ts} +1 -8
- package/dist/DboBuilder/QueryBuilder/Functions/Functions.d.ts.map +1 -0
- package/dist/DboBuilder/QueryBuilder/{Functions.js → Functions/Functions.js} +48 -123
- package/dist/DboBuilder/QueryBuilder/Functions/Functions.js.map +1 -0
- package/dist/DboBuilder/QueryBuilder/Functions/parseFunction.d.ts +8 -0
- package/dist/DboBuilder/QueryBuilder/Functions/parseFunction.d.ts.map +1 -0
- package/dist/DboBuilder/QueryBuilder/Functions/parseFunction.js +51 -0
- package/dist/DboBuilder/QueryBuilder/Functions/parseFunction.js.map +1 -0
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +5 -6
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +8 -14
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts +3 -2
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +4 -4
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts +5 -5
- package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js +3 -2
- package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +2 -2
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryStreamer.d.ts +6 -6
- package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
- package/dist/DboBuilder/QueryStreamer.js.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.d.ts +5 -5
- package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts +8 -7
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +3 -2
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts +4 -4
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insert.d.ts +4 -4
- package/dist/DboBuilder/TableHandler/insert/insert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insert.js +0 -9
- package/dist/DboBuilder/TableHandler/insert/insert.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.d.ts +6 -5
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insertTest.d.ts +4 -4
- 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 +3 -3
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts +4 -4
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
- package/dist/DboBuilder/TableHandler/update.d.ts +4 -4
- package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.d.ts +4 -4
- package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.d.ts +4 -4
- package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
- package/dist/DboBuilder/TableHandler/upsert.d.ts +4 -4
- package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
- package/dist/DboBuilder/TableRules/getValidatedRules.d.ts.map +1 -1
- package/dist/DboBuilder/TableRules/getValidatedRules.js +4 -4
- package/dist/DboBuilder/TableRules/getValidatedRules.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +10 -10
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js +2 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.d.ts +4 -4
- package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.d.ts +6 -6
- package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts +2 -2
- package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts +2 -2
- package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsFilters.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getInfo.d.ts +4 -4
- package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts +2 -2
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +5 -3
- package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +10 -5
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts +2 -2
- package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts +3 -3
- package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js +2 -2
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts +4 -4
- package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/size.d.ts +4 -4
- package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/subscribe.d.ts +4 -4
- package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts +3 -3
- package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts +6 -13
- package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.js +3 -33
- package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
- package/dist/DboBuilder/getColumns.d.ts +5 -5
- package/dist/DboBuilder/getColumns.d.ts.map +1 -1
- package/dist/DboBuilder/getColumns.js +1 -1
- package/dist/DboBuilder/getColumns.js.map +1 -1
- package/dist/DboBuilder/getCondition.d.ts +3 -3
- package/dist/DboBuilder/getCondition.d.ts.map +1 -1
- package/dist/DboBuilder/getCondition.js +1 -1
- package/dist/DboBuilder/getCondition.js.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.d.ts +6 -6
- package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
- package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.d.ts +5 -4
- package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.d.ts +4 -4
- package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
- package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
- package/dist/DboBuilder/runSQL.d.ts +5 -5
- package/dist/DboBuilder/runSQL.d.ts.map +1 -1
- package/dist/DboBuilder/runSQL.js +2 -1
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/DboBuilder/schema/getMaterialViews.d.ts +2 -2
- package/dist/DboBuilder/schema/getMaterialViews.d.ts.map +1 -1
- package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.d.ts +3 -3
- package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
- package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.js +1 -1
- package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.js.map +1 -1
- package/dist/DboBuilder/uploadFile.d.ts +4 -4
- package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
- package/dist/DboBuilder/uploadFile.js.map +1 -1
- package/dist/FileManager/FileManager.d.ts +3 -5
- package/dist/FileManager/FileManager.d.ts.map +1 -1
- package/dist/FileManager/FileManager.js +1 -13
- package/dist/FileManager/FileManager.js.map +1 -1
- package/dist/FileManager/getValidatedFileType.d.ts +2 -2
- package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
- package/dist/FileManager/getValidatedFileType.js.map +1 -1
- package/dist/FileManager/initFileManager.d.ts +2 -2
- package/dist/FileManager/initFileManager.d.ts.map +1 -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/uploadStream.d.ts +1 -1
- package/dist/FileManager/uploadStream.d.ts.map +1 -1
- package/dist/Filtering.d.ts +1 -1
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Filtering.js.map +1 -1
- package/dist/Logging.d.ts +3 -3
- package/dist/Logging.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.d.ts +3 -3
- package/dist/PostgresNotifListenManager.d.ts.map +1 -1
- package/dist/Prostgles.d.ts +7 -6
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js.map +1 -1
- package/dist/ProstglesTypes.d.ts +17 -16
- package/dist/ProstglesTypes.d.ts.map +1 -1
- package/dist/ProstglesTypes.js.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts +8 -7
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/PubSubManagerUtils.d.ts +1 -1
- package/dist/PubSubManager/PubSubManagerUtils.d.ts.map +1 -1
- package/dist/PubSubManager/addSub.d.ts +3 -3
- package/dist/PubSubManager/addSub.d.ts.map +1 -1
- package/dist/PubSubManager/addSync.d.ts +1 -1
- package/dist/PubSubManager/addSync.d.ts.map +1 -1
- package/dist/PubSubManager/addTrigger.d.ts +3 -2
- package/dist/PubSubManager/addTrigger.d.ts.map +1 -1
- package/dist/PubSubManager/addTrigger.js.map +1 -1
- package/dist/PubSubManager/deleteOrphanedTriggers.d.ts +1 -1
- package/dist/PubSubManager/deleteOrphanedTriggers.d.ts.map +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.d.ts +1 -1
- package/dist/PubSubManager/getCreatePubSubManagerError.d.ts.map +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.d.ts +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.d.ts.map +1 -1
- package/dist/PubSubManager/notifListener.d.ts +1 -1
- package/dist/PubSubManager/notifListener.d.ts.map +1 -1
- package/dist/PubSubManager/pushSubData.d.ts +2 -1
- package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
- package/dist/PubSubManager/pushSubData.js.map +1 -1
- package/dist/PublishParser/PublishParser.d.ts +6 -5
- package/dist/PublishParser/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.js.map +1 -1
- package/dist/PublishParser/getFileTableRules.d.ts +3 -3
- package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
- package/dist/PublishParser/getFileTableRules.js.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.d.ts +4 -3
- package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts +4 -3
- package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts +7 -7
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/RestApi.d.ts +4 -4
- package/dist/RestApi.d.ts.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.d.ts +1 -1
- package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
- package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
- package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts +1 -1
- package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts.map +1 -1
- package/dist/SchemaWatch/getWatchSchemaTagList.d.ts +1 -1
- package/dist/SchemaWatch/getWatchSchemaTagList.d.ts.map +1 -1
- package/dist/SyncReplication.d.ts +2 -2
- package/dist/SyncReplication.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/TableConfig/getColumnConfig.d.ts +3 -0
- package/dist/TableConfig/getColumnConfig.d.ts.map +1 -0
- package/dist/TableConfig/getColumnConfig.js +12 -0
- package/dist/TableConfig/getColumnConfig.js.map +1 -0
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts +3 -3
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +3 -3
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.d.ts +3 -3
- package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
- package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
- package/dist/TableConfig/getPGIndexes.d.ts +1 -1
- package/dist/TableConfig/getPGIndexes.d.ts.map +1 -1
- package/dist/TableConfig/getTableColumnQueries.d.ts +2 -2
- package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
- package/dist/TableConfig/getTableConfigSchemaQueries.d.ts +1 -1
- package/dist/TableConfig/getTableConfigSchemaQueries.d.ts.map +1 -1
- package/dist/TableConfig/initTableConfig.d.ts +1 -1
- package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
- package/dist/WebsocketAPI/getClientHandlers.d.ts +1 -1
- package/dist/WebsocketAPI/getClientHandlers.d.ts.map +1 -1
- package/dist/WebsocketAPI/getClientSchema.d.ts +1 -1
- package/dist/WebsocketAPI/getClientSchema.d.ts.map +1 -1
- package/dist/WebsocketAPI/onSocketConnected.d.ts +2 -2
- package/dist/WebsocketAPI/onSocketConnected.d.ts.map +1 -1
- package/dist/WebsocketAPI/onSocketConnected.js.map +1 -1
- package/dist/WebsocketAPI/pushSocketSchema.d.ts +1 -1
- package/dist/WebsocketAPI/pushSocketSchema.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/initProstgles.d.ts +6 -5
- package/dist/initProstgles.d.ts.map +1 -1
- package/dist/initProstgles.js +1 -1
- package/dist/initProstgles.js.map +1 -1
- package/dist/runClientRequest.d.ts +4 -3
- package/dist/runClientRequest.d.ts.map +1 -1
- package/dist/runClientRequest.js.map +1 -1
- package/dist/utils/asNameAlias.d.ts +2 -0
- package/dist/utils/asNameAlias.d.ts.map +1 -0
- package/dist/utils/asNameAlias.js +12 -0
- package/dist/utils/asNameAlias.js.map +1 -0
- package/dist/{utils.d.ts → utils/utils.d.ts} +1 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +34 -0
- package/dist/utils/utils.js.map +1 -0
- package/eslint.config.mjs +1 -0
- package/lib/Auth/AuthHandler.ts +6 -11
- package/lib/Auth/AuthTypes.ts +8 -7
- package/lib/Auth/endpoints/setCatchAllRequestHandler.ts +8 -5
- package/lib/Auth/endpoints/setLoginRequestHandler.ts +7 -4
- package/lib/Auth/endpoints/setLogoutRequestHandler.ts +5 -3
- package/lib/Auth/endpoints/setMagicLinkOrOTPRequestHandler.ts +8 -6
- package/lib/Auth/endpoints/setOAuthRequestHandlers.ts +6 -5
- package/lib/Auth/endpoints/setRegisterRequestHandler.ts +3 -2
- package/lib/Auth/getClientAuth.ts +8 -5
- package/lib/Auth/login.ts +6 -4
- package/lib/Auth/sendEmail.ts +2 -2
- package/lib/Auth/setupAuthRoutes.ts +3 -2
- package/lib/Auth/utils/getClientRequestIPsInfo.ts +2 -2
- package/lib/Auth/utils/getReturnUrl.ts +1 -1
- package/lib/Auth/utils/getSidAndUserFromRequest.ts +2 -2
- package/lib/Auth/utils/handleGetUser.ts +3 -2
- package/lib/Auth/utils/matchesRoute.ts +6 -0
- package/lib/Auth/utils/removeExpressRoute.ts +2 -2
- package/lib/Auth/utils/setCookieAndGoToReturnURLIFSet.ts +2 -7
- package/lib/Auth/utils/upsertNamedExpressMiddleware.ts +13 -2
- package/lib/DBEventsManager.ts +4 -3
- package/lib/DBSchemaBuilder/DBSchemaBuilder.spec.ts +128 -0
- package/lib/DBSchemaBuilder/DBSchemaBuilder.ts +100 -0
- package/lib/DBSchemaBuilder/getColumnTypescriptDefinition.ts +117 -0
- package/lib/DboBuilder/DboBuilder.ts +20 -15
- package/lib/DboBuilder/DboBuilderTypes.ts +7 -7
- package/lib/DboBuilder/QueryBuilder/Functions/COMPUTED_FIELDS.ts +35 -0
- package/lib/DboBuilder/QueryBuilder/{Functions.ts → Functions/Functions.ts} +7 -103
- package/lib/DboBuilder/QueryBuilder/Functions/parseFunction.ts +65 -0
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +9 -15
- package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +6 -9
- package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +10 -10
- package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +2 -2
- package/lib/DboBuilder/QueryStreamer.ts +10 -9
- package/lib/DboBuilder/TableHandler/DataValidator.ts +8 -6
- package/lib/DboBuilder/TableHandler/TableHandler.ts +12 -16
- package/lib/DboBuilder/TableHandler/delete.ts +7 -6
- package/lib/DboBuilder/TableHandler/insert/insert.ts +6 -14
- package/lib/DboBuilder/TableHandler/insert/insertNestedRecords.ts +7 -6
- package/lib/DboBuilder/TableHandler/insertTest.ts +6 -4
- package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +5 -3
- package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +7 -4
- package/lib/DboBuilder/TableHandler/update.ts +6 -5
- package/lib/DboBuilder/TableHandler/updateBatch.ts +6 -5
- package/lib/DboBuilder/TableHandler/updateFile.ts +5 -4
- package/lib/DboBuilder/TableHandler/upsert.ts +4 -4
- package/lib/DboBuilder/TableRules/getValidatedRules.ts +4 -3
- package/lib/DboBuilder/ViewHandler/ViewHandler.ts +14 -20
- package/lib/DboBuilder/ViewHandler/count.ts +4 -4
- package/lib/DboBuilder/ViewHandler/find.ts +9 -7
- package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +6 -5
- package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +4 -3
- package/lib/DboBuilder/ViewHandler/getInfo.ts +4 -4
- package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +1 -1
- package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +7 -4
- package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +19 -6
- package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +4 -3
- package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +4 -3
- package/lib/DboBuilder/ViewHandler/prepareWhere.ts +5 -4
- package/lib/DboBuilder/ViewHandler/size.ts +4 -4
- package/lib/DboBuilder/ViewHandler/subscribe.ts +8 -7
- package/lib/DboBuilder/ViewHandler/validateViewRules.ts +3 -3
- package/lib/DboBuilder/dboBuilderUtils.ts +9 -46
- package/lib/DboBuilder/getColumns.ts +9 -12
- package/lib/DboBuilder/getCondition.ts +6 -5
- package/lib/DboBuilder/getSubscribeRelatedTables.ts +11 -9
- package/lib/DboBuilder/parseUpdateRules.ts +7 -5
- package/lib/DboBuilder/prepareShortestJoinPaths.ts +7 -5
- package/lib/DboBuilder/runSQL.ts +10 -6
- package/lib/DboBuilder/schema/getMaterialViews.ts +2 -2
- package/lib/DboBuilder/schema/getTablesForSchemaPostgresSQL.ts +5 -5
- package/lib/DboBuilder/uploadFile.ts +5 -4
- package/lib/FileManager/FileManager.ts +6 -22
- package/lib/FileManager/getValidatedFileType.ts +4 -2
- package/lib/FileManager/initFileManager.ts +4 -3
- package/lib/FileManager/upload.ts +1 -1
- package/lib/FileManager/uploadStream.ts +1 -1
- package/lib/Filtering.ts +3 -2
- package/lib/Logging.ts +3 -3
- package/lib/PostgresNotifListenManager.ts +3 -3
- package/lib/Prostgles.ts +8 -6
- package/lib/ProstglesTypes.ts +20 -19
- package/lib/PubSubManager/PubSubManager.ts +11 -9
- package/lib/PubSubManager/PubSubManagerUtils.ts +1 -1
- package/lib/PubSubManager/addSub.ts +3 -3
- package/lib/PubSubManager/addSync.ts +1 -1
- package/lib/PubSubManager/addTrigger.ts +3 -2
- package/lib/PubSubManager/deleteOrphanedTriggers.ts +1 -1
- package/lib/PubSubManager/getCreatePubSubManagerError.ts +1 -1
- package/lib/PubSubManager/init/getPubSubManagerInitQuery.ts +1 -1
- package/lib/PubSubManager/notifListener.ts +1 -1
- package/lib/PubSubManager/pushSubData.ts +3 -2
- package/lib/PublishParser/PublishParser.ts +10 -8
- package/lib/PublishParser/getFileTableRules.ts +5 -4
- package/lib/PublishParser/getSchemaFromPublish.ts +8 -6
- package/lib/PublishParser/getTableRulesWithoutFileTable.ts +9 -8
- package/lib/PublishParser/publishTypesAndUtils.ts +11 -11
- package/lib/RestApi.ts +4 -4
- package/lib/SchemaWatch/SchemaWatch.ts +2 -1
- package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +1 -1
- package/lib/SchemaWatch/getWatchSchemaTagList.ts +1 -1
- package/lib/SyncReplication.ts +4 -3
- package/lib/TableConfig/TableConfig.ts +8 -7
- package/lib/TableConfig/getColumnConfig.ts +13 -0
- package/lib/TableConfig/getColumnDefinitionQuery.ts +3 -3
- package/lib/TableConfig/getConstraintDefinitionQueries.ts +3 -3
- package/lib/TableConfig/getFutureTableSchema.ts +5 -3
- package/lib/TableConfig/getPGIndexes.ts +1 -1
- package/lib/TableConfig/getTableColumnQueries.ts +2 -2
- package/lib/TableConfig/getTableConfigSchemaQueries.ts +1 -1
- package/lib/TableConfig/initTableConfig.ts +1 -1
- package/lib/WebsocketAPI/getClientHandlers.ts +1 -1
- package/lib/WebsocketAPI/getClientSchema.ts +1 -1
- package/lib/WebsocketAPI/onSocketConnected.ts +4 -3
- package/lib/WebsocketAPI/pushSocketSchema.ts +1 -1
- package/lib/index.ts +2 -2
- package/lib/initProstgles.ts +8 -6
- package/lib/runClientRequest.ts +9 -7
- package/lib/typeTests/dboTypeCheck.ts +4 -4
- package/lib/utils/asNameAlias.ts +7 -0
- package/lib/utils/utils.ts +27 -0
- package/package.json +5 -3
- package/dist/DBSchemaBuilder.d.ts.map +0 -1
- package/dist/DBSchemaBuilder.js +0 -181
- package/dist/DBSchemaBuilder.js.map +0 -1
- package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +0 -1
- package/dist/DboBuilder/QueryBuilder/Functions.js.map +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -19
- package/dist/utils.js.map +0 -1
- package/lib/DBSchemaBuilder.ts +0 -279
- package/lib/utils.ts +0 -14
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
AUTH_ROUTES_AND_PARAMS,
|
|
4
|
-
HTTP_FAIL_CODES,
|
|
5
|
-
matchesRoute,
|
|
6
|
-
type AuthHandler,
|
|
7
|
-
} from "../AuthHandler";
|
|
1
|
+
import { AUTH_ROUTES_AND_PARAMS, HTTP_FAIL_CODES, type AuthHandler } from "../AuthHandler";
|
|
8
2
|
import type { ExpressReq } from "../AuthTypes";
|
|
9
3
|
import type { LoginResponseHandler } from "../endpoints/setLoginRequestHandler";
|
|
10
4
|
import { getBasicSessionErrorCode } from "../login";
|
|
11
5
|
import { getReturnUrl } from "./getReturnUrl";
|
|
12
6
|
import { getSafeReturnURL } from "./getSafeReturnURL";
|
|
7
|
+
import { matchesRoute } from "./matchesRoute";
|
|
13
8
|
|
|
14
9
|
export function validateSessionAndSetCookie(
|
|
15
10
|
this: AuthHandler,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type e from "express";
|
|
2
|
-
import { RequestHandler } from "express";
|
|
3
|
-
import { removeExpressRouteByName } from "../../FileManager/FileManager";
|
|
2
|
+
import type { RequestHandler } from "express";
|
|
4
3
|
import type { ExpressApp } from "../../RestApi";
|
|
5
4
|
|
|
6
5
|
export const upsertNamedExpressMiddleware = (
|
|
@@ -13,3 +12,15 @@ export const upsertNamedExpressMiddleware = (
|
|
|
13
12
|
removeExpressRouteByName(app as ExpressApp, name);
|
|
14
13
|
app.use(handler);
|
|
15
14
|
};
|
|
15
|
+
|
|
16
|
+
export const removeExpressRouteByName = (app: ExpressApp | undefined, name: string) => {
|
|
17
|
+
const routes = app?._router?.stack;
|
|
18
|
+
if (routes) {
|
|
19
|
+
app._router!.stack = routes.filter((route) => {
|
|
20
|
+
if (route.name === name) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
};
|
package/lib/DBEventsManager.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { PrglNotifListener } from "./PostgresNotifListenManager";
|
|
2
|
+
import { PostgresNotifListenManager } from "./PostgresNotifListenManager";
|
|
3
|
+
import type { DB, PGP } from "./Prostgles";
|
|
3
4
|
import { getKeys, CHANNELS } from "prostgles-types";
|
|
4
|
-
import { PRGLIOSocket } from "./DboBuilder/DboBuilder";
|
|
5
|
+
import type { PRGLIOSocket } from "./DboBuilder/DboBuilder";
|
|
5
6
|
|
|
6
7
|
export class DBEventsManager {
|
|
7
8
|
notifies: {
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { describe, test } from "node:test";
|
|
2
|
+
import type { DBOFullyTyped, PublishFullyTyped } from "./DBSchemaBuilder";
|
|
3
|
+
import type { PublishParams } from "../PublishParser/publishTypesAndUtils";
|
|
4
|
+
import prostgles from "..";
|
|
5
|
+
import type { AuthConfig } from "../Auth/AuthTypes";
|
|
6
|
+
import type { DBSchema } from "prostgles-types";
|
|
7
|
+
import type { DBHandlerServer } from "../Prostgles";
|
|
8
|
+
|
|
9
|
+
void describe("DBSchemaBuilder type tests", async () => {
|
|
10
|
+
await test("Type checks", () => {
|
|
11
|
+
/** Type checks */
|
|
12
|
+
() => {
|
|
13
|
+
const ddb = {} as DBOFullyTyped;
|
|
14
|
+
ddb.dwad?.insert;
|
|
15
|
+
ddb.dwad?.delete;
|
|
16
|
+
|
|
17
|
+
const d = {} as DBOFullyTyped<undefined>;
|
|
18
|
+
d.dwad?.insert;
|
|
19
|
+
d.dwad?.delete;
|
|
20
|
+
|
|
21
|
+
const p = {} as PublishParams;
|
|
22
|
+
p.dbo.dwad?.insert;
|
|
23
|
+
ddb.dwad?.delete;
|
|
24
|
+
|
|
25
|
+
//@ts-ignore
|
|
26
|
+
void prostgles({
|
|
27
|
+
dbConnection: "",
|
|
28
|
+
publish: async (params) => {
|
|
29
|
+
const _rows = await params.dbo.dwadwa?.find?.({});
|
|
30
|
+
|
|
31
|
+
return "*" as const;
|
|
32
|
+
},
|
|
33
|
+
transactions: true,
|
|
34
|
+
onReady: ({ dbo }) => {
|
|
35
|
+
void dbo.tdwa?.find!();
|
|
36
|
+
void dbo.tx((t) => {
|
|
37
|
+
void t.dwa?.find!();
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const _auth: AuthConfig = {
|
|
43
|
+
sidKeyName: "sid_token",
|
|
44
|
+
getUser: (sid, db, _db) => {
|
|
45
|
+
db.dwadaw?.find;
|
|
46
|
+
return {};
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
type S = {
|
|
51
|
+
tbl1: {
|
|
52
|
+
columns: {
|
|
53
|
+
col1: number | null;
|
|
54
|
+
col2: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
tbl2: {
|
|
58
|
+
columns: {
|
|
59
|
+
col1: number | null;
|
|
60
|
+
col2: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/** Test the created schema */
|
|
66
|
+
const c = {} as S;
|
|
67
|
+
const _test: DBSchema = c;
|
|
68
|
+
const dbt = {} as DBOFullyTyped<S>;
|
|
69
|
+
|
|
70
|
+
void dbt.tx((t) => {
|
|
71
|
+
void t.tbl1.delete();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const db = {} as DBHandlerServer;
|
|
75
|
+
void db.tx!((t) => {
|
|
76
|
+
void t.wadwa?.find!();
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
const _publish = (): PublishFullyTyped<S> => {
|
|
80
|
+
const r = {
|
|
81
|
+
tbl1: {
|
|
82
|
+
select: {
|
|
83
|
+
fields: "*" as const,
|
|
84
|
+
forcedFilter: { col1: 32, col2: "" },
|
|
85
|
+
},
|
|
86
|
+
getColumns: true,
|
|
87
|
+
getInfo: true,
|
|
88
|
+
delete: {
|
|
89
|
+
filterFields: { col1: 1 },
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
tbl2: {
|
|
93
|
+
delete: {
|
|
94
|
+
filterFields: "*" as const,
|
|
95
|
+
forcedFilter: { col1: 2 },
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
const res: PublishFullyTyped<S> = {
|
|
100
|
+
tbl1: {
|
|
101
|
+
select: {
|
|
102
|
+
fields: "*",
|
|
103
|
+
forcedFilter: { col1: 32, col2: "" },
|
|
104
|
+
},
|
|
105
|
+
getColumns: true,
|
|
106
|
+
getInfo: true,
|
|
107
|
+
delete: {
|
|
108
|
+
filterFields: { col1: 1 },
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
tbl2: {
|
|
112
|
+
delete: {
|
|
113
|
+
filterFields: "*" as const,
|
|
114
|
+
forcedFilter: { col1: 2 },
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
const _res1: PublishFullyTyped = r;
|
|
119
|
+
|
|
120
|
+
const p = {} as PublishParams<undefined>;
|
|
121
|
+
|
|
122
|
+
void p.dbo.dwadaw?.find?.();
|
|
123
|
+
|
|
124
|
+
return res;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
});
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AnyObject,
|
|
3
|
+
DbJoinMaker,
|
|
4
|
+
DBSchema,
|
|
5
|
+
SQLHandler,
|
|
6
|
+
TableHandler,
|
|
7
|
+
TableSchema,
|
|
8
|
+
ViewHandler,
|
|
9
|
+
} from "prostgles-types";
|
|
10
|
+
import type { TX } from "../DboBuilder/DboBuilderTypes";
|
|
11
|
+
import type {
|
|
12
|
+
PublishAllOrNothing,
|
|
13
|
+
PublishTableRule,
|
|
14
|
+
PublishViewRule,
|
|
15
|
+
} from "../PublishParser/PublishParser";
|
|
16
|
+
import { type PublishObject } from "../PublishParser/PublishParser";
|
|
17
|
+
import type { TableConfig } from "../TableConfig/TableConfig";
|
|
18
|
+
import { escapeTSNames } from "../utils/utils";
|
|
19
|
+
import { getColumnTypescriptDefinition } from "./getColumnTypescriptDefinition";
|
|
20
|
+
|
|
21
|
+
export const getDBSchema = ({
|
|
22
|
+
tablesOrViews,
|
|
23
|
+
config,
|
|
24
|
+
}: {
|
|
25
|
+
tablesOrViews: TableSchema[];
|
|
26
|
+
config: TableConfig | undefined;
|
|
27
|
+
}): string => {
|
|
28
|
+
const tables: string[] = [];
|
|
29
|
+
|
|
30
|
+
/** Tables and columns are sorted to avoid infinite loops due to changing order */
|
|
31
|
+
tablesOrViews
|
|
32
|
+
.slice(0)
|
|
33
|
+
.sort((a, b) => a.name.localeCompare(b.name))
|
|
34
|
+
.forEach((tableOrView) => {
|
|
35
|
+
const { privileges, columns } = tableOrView;
|
|
36
|
+
const cols = columns.slice(0).sort((a, b) => a.name.localeCompare(b.name));
|
|
37
|
+
tables.push(`${escapeTSNames(tableOrView.name)}: {
|
|
38
|
+
is_view: ${tableOrView.is_view};
|
|
39
|
+
select: ${privileges.select};
|
|
40
|
+
insert: ${privileges.insert};
|
|
41
|
+
update: ${privileges.update};
|
|
42
|
+
delete: ${privileges.delete};
|
|
43
|
+
columns: {${cols
|
|
44
|
+
.map(
|
|
45
|
+
(column) => `
|
|
46
|
+
${getColumnTypescriptDefinition({ tablesOrViews, config, tableOrView, column })}`
|
|
47
|
+
)
|
|
48
|
+
.join("")}
|
|
49
|
+
};
|
|
50
|
+
};\n `);
|
|
51
|
+
});
|
|
52
|
+
return `
|
|
53
|
+
export type DBGeneratedSchema = {
|
|
54
|
+
${tables.join("")}
|
|
55
|
+
}
|
|
56
|
+
`;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export type ServerViewHandler<
|
|
60
|
+
T extends AnyObject = AnyObject,
|
|
61
|
+
Schema extends DBSchema | void = void,
|
|
62
|
+
> = ViewHandler<T, Schema> & { is_view: true };
|
|
63
|
+
export type ServerTableHandler<
|
|
64
|
+
T extends AnyObject = AnyObject,
|
|
65
|
+
Schema extends DBSchema | void = void,
|
|
66
|
+
> = TableHandler<T, Schema> & { is_view: false };
|
|
67
|
+
|
|
68
|
+
export type DBTableHandlersFromSchema<Schema = void> =
|
|
69
|
+
Schema extends DBSchema ?
|
|
70
|
+
{
|
|
71
|
+
[tov_name in keyof Schema]: Schema[tov_name]["is_view"] extends true ?
|
|
72
|
+
ServerViewHandler<Schema[tov_name]["columns"], Schema>
|
|
73
|
+
: ServerTableHandler<Schema[tov_name]["columns"], Schema>;
|
|
74
|
+
}
|
|
75
|
+
: Record<string, Partial<ServerTableHandler>>;
|
|
76
|
+
|
|
77
|
+
export type DBHandlerServerExtra<
|
|
78
|
+
TH = Record<string, Partial<ServerTableHandler>>,
|
|
79
|
+
WithTransactions = true,
|
|
80
|
+
> = {
|
|
81
|
+
sql: SQLHandler;
|
|
82
|
+
} & Partial<DbJoinMaker> &
|
|
83
|
+
(WithTransactions extends true ? { tx: TX<TH> } : Record<string, never>);
|
|
84
|
+
|
|
85
|
+
export type DBOFullyTyped<
|
|
86
|
+
Schema = void,
|
|
87
|
+
WithTransactions = true,
|
|
88
|
+
> = DBTableHandlersFromSchema<Schema> &
|
|
89
|
+
DBHandlerServerExtra<DBTableHandlersFromSchema<Schema>, WithTransactions>;
|
|
90
|
+
|
|
91
|
+
export type PublishFullyTyped<Schema = void> =
|
|
92
|
+
Schema extends DBSchema ?
|
|
93
|
+
{
|
|
94
|
+
[tov_name in keyof Partial<Schema>]:
|
|
95
|
+
| PublishAllOrNothing
|
|
96
|
+
| (Schema[tov_name]["is_view"] extends true ?
|
|
97
|
+
PublishViewRule<Schema[tov_name]["columns"], Schema>
|
|
98
|
+
: PublishTableRule<Schema[tov_name]["columns"], Schema>);
|
|
99
|
+
}
|
|
100
|
+
: PublishObject;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getJSONBSchemaTSTypes,
|
|
3
|
+
isDefined,
|
|
4
|
+
isObject,
|
|
5
|
+
postgresToTsType,
|
|
6
|
+
type JSONB,
|
|
7
|
+
type TableSchema,
|
|
8
|
+
} from "prostgles-types";
|
|
9
|
+
import type { TableSchemaColumn } from "../DboBuilder/DboBuilder";
|
|
10
|
+
import { escapeTSNames } from "../utils/utils";
|
|
11
|
+
import type { TableConfig } from "../TableConfig/TableConfig";
|
|
12
|
+
import { getColumnConfig } from "../TableConfig/getColumnConfig";
|
|
13
|
+
|
|
14
|
+
export const getColumnTypescriptDefinition = ({
|
|
15
|
+
config,
|
|
16
|
+
tablesOrViews,
|
|
17
|
+
tableOrView,
|
|
18
|
+
column,
|
|
19
|
+
}: {
|
|
20
|
+
config: TableConfig | undefined;
|
|
21
|
+
tablesOrViews: TableSchema[];
|
|
22
|
+
tableOrView: TableSchema;
|
|
23
|
+
column: TableSchema["columns"][number];
|
|
24
|
+
}) => {
|
|
25
|
+
/**
|
|
26
|
+
* Columns that are nullable or have default values can be ommitted from an insert
|
|
27
|
+
* Non nullable columns with default values cannot containt null values in an insert so they must contain a valid value or be omitted
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
const dataType = getDataType({
|
|
31
|
+
config,
|
|
32
|
+
tablesOrViews,
|
|
33
|
+
tableOrView,
|
|
34
|
+
column,
|
|
35
|
+
});
|
|
36
|
+
const { name, is_nullable, has_default } = column;
|
|
37
|
+
|
|
38
|
+
return `${escapeTSNames(name)}${is_nullable || has_default ? "?" : ""}: ${dataType}`;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const getDataType = ({
|
|
42
|
+
config,
|
|
43
|
+
tablesOrViews,
|
|
44
|
+
tableOrView,
|
|
45
|
+
column,
|
|
46
|
+
}: {
|
|
47
|
+
config: TableConfig | undefined;
|
|
48
|
+
tablesOrViews: TableSchema[];
|
|
49
|
+
tableOrView: TableSchema;
|
|
50
|
+
column: TableSchema["columns"][number];
|
|
51
|
+
}) => {
|
|
52
|
+
const typeFromUdtName: string =
|
|
53
|
+
(column.is_nullable ? "null | " : "") + getColTypeForDBSchema(column.udt_name) + ";";
|
|
54
|
+
|
|
55
|
+
const buildEnumTypeDefinition = (enumVals: any[] | readonly any[], nullable: boolean) => {
|
|
56
|
+
const types = enumVals.map((t) => (typeof t === "number" ? t : JSON.stringify(t)));
|
|
57
|
+
if (nullable) {
|
|
58
|
+
types.unshift("null");
|
|
59
|
+
}
|
|
60
|
+
return types.join(" | ");
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const tableConfig = config && config[tableOrView.name];
|
|
64
|
+
if (tableConfig && "isLookupTable" in tableConfig && column.is_pkey) {
|
|
65
|
+
const enumValus = Object.keys(tableConfig.isLookupTable.values);
|
|
66
|
+
return buildEnumTypeDefinition(enumValus, !!column.is_nullable);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const colConf = config && getColumnConfig(config, tableOrView.name, column.name);
|
|
70
|
+
if (!colConf || !isObject(colConf)) {
|
|
71
|
+
return typeFromUdtName;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (colConf.jsonbSchema || colConf.jsonbSchemaType) {
|
|
75
|
+
const schema: JSONB.JSONBSchema = colConf.jsonbSchema || {
|
|
76
|
+
...colConf,
|
|
77
|
+
type: colConf.jsonbSchemaType,
|
|
78
|
+
};
|
|
79
|
+
return getJSONBSchemaTSTypes(schema, { nullable: colConf.nullable }, " ", tablesOrViews);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if ("enum" in colConf) {
|
|
83
|
+
if (!colConf.enum) throw "colConf.enum missing";
|
|
84
|
+
return buildEnumTypeDefinition(colConf.enum, !!colConf.nullable);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/** When referencing a isLookupTable table we add the isLookupTable.values as enums */
|
|
88
|
+
if (("references" in colConf && colConf.references) || column.references?.length) {
|
|
89
|
+
const lookupTableConfig =
|
|
90
|
+
colConf.references ?
|
|
91
|
+
config[colConf.references.tableName]
|
|
92
|
+
: column.references
|
|
93
|
+
?.map((ref) => {
|
|
94
|
+
const refTableConfig = config[ref.ftable];
|
|
95
|
+
if (refTableConfig && "isLookupTable" in refTableConfig) {
|
|
96
|
+
return refTableConfig;
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
.find(isDefined);
|
|
100
|
+
if (lookupTableConfig && "isLookupTable" in lookupTableConfig) {
|
|
101
|
+
const enumValus = Object.keys(lookupTableConfig.isLookupTable.values);
|
|
102
|
+
return buildEnumTypeDefinition(enumValus, !!colConf.nullable);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return typeFromUdtName;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
const getColTypeForDBSchema = (udt_name: TableSchemaColumn["udt_name"]): string => {
|
|
110
|
+
if (udt_name === "interval") {
|
|
111
|
+
const units = ["years", "months", "days", "hours", "minutes", "seconds", "milliseconds"];
|
|
112
|
+
|
|
113
|
+
return `{ ${units.map((u) => `${u}?: number;`).join(" ")} }`;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return postgresToTsType(udt_name);
|
|
117
|
+
};
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
|
|
6
|
+
import type { PG_COLUMN_UDT_DATA_TYPE, SQLOptions } from "prostgles-types";
|
|
6
7
|
import {
|
|
7
|
-
PG_COLUMN_UDT_DATA_TYPE,
|
|
8
|
-
SQLOptions,
|
|
9
8
|
getJSONBTSTypes,
|
|
10
9
|
getJoinHandlers,
|
|
11
10
|
getObjectEntries,
|
|
@@ -14,16 +13,17 @@ import {
|
|
|
14
13
|
tryCatchV2,
|
|
15
14
|
type JSONB,
|
|
16
15
|
} from "prostgles-types";
|
|
17
|
-
import { getDBSchema } from "../DBSchemaBuilder";
|
|
18
|
-
import { DB, Prostgles } from "../Prostgles";
|
|
19
|
-
import { Join } from "../ProstglesTypes";
|
|
16
|
+
import { getDBSchema } from "../DBSchemaBuilder/DBSchemaBuilder";
|
|
17
|
+
import type { DB, Prostgles } from "../Prostgles";
|
|
18
|
+
import type { Join } from "../ProstglesTypes";
|
|
20
19
|
import { PubSubManager } from "../PubSubManager/PubSubManager";
|
|
21
20
|
import { getCreatePubSubManagerError } from "../PubSubManager/getCreatePubSubManagerError";
|
|
22
|
-
import { DbTableInfo,
|
|
21
|
+
import type { DbTableInfo, PublishParser } from "../PublishParser/PublishParser";
|
|
22
|
+
import { getV2Methods } from "../PublishParser/PublishParser";
|
|
23
23
|
import { getQueryErrorPositionInfo } from "../TableConfig/runSQLFile";
|
|
24
|
-
import { Graph } from "../shortestPath";
|
|
25
|
-
import { clone } from "../utils";
|
|
26
|
-
import {
|
|
24
|
+
import type { Graph } from "../shortestPath";
|
|
25
|
+
import { clone } from "../utils/utils";
|
|
26
|
+
import type {
|
|
27
27
|
DBHandlerServer,
|
|
28
28
|
DbTxTableHandlers,
|
|
29
29
|
LocalParams,
|
|
@@ -32,10 +32,11 @@ import {
|
|
|
32
32
|
} from "./DboBuilderTypes";
|
|
33
33
|
import { QueryStreamer } from "./QueryStreamer";
|
|
34
34
|
import { TableHandler } from "./TableHandler/TableHandler";
|
|
35
|
-
import { JoinPaths
|
|
35
|
+
import type { JoinPaths } from "./ViewHandler/ViewHandler";
|
|
36
|
+
import { ViewHandler } from "./ViewHandler/ViewHandler";
|
|
36
37
|
import { parseJoinPath } from "./ViewHandler/parseJoinPath";
|
|
38
|
+
import type { PGConstraint } from "./dboBuilderUtils";
|
|
37
39
|
import {
|
|
38
|
-
PGConstraint,
|
|
39
40
|
getCanExecute,
|
|
40
41
|
getConstraints,
|
|
41
42
|
getSerializedClientErrorFromPGError,
|
|
@@ -240,7 +241,8 @@ export class DboBuilder {
|
|
|
240
241
|
data: tablesOrViewsReq.durations,
|
|
241
242
|
duration: Date.now() - start,
|
|
242
243
|
});
|
|
243
|
-
|
|
244
|
+
const tablesOrViews = tablesOrViewsReq.result;
|
|
245
|
+
this.tablesOrViews = tablesOrViews;
|
|
244
246
|
|
|
245
247
|
this.constraints = await getConstraints(this.db, this.prostgles.opts.schemaFilter);
|
|
246
248
|
await this.prepareShortestJoinPaths();
|
|
@@ -301,7 +303,7 @@ export class DboBuilder {
|
|
|
301
303
|
const v2Methods = getV2Methods(this.prostgles.opts.publishMethods);
|
|
302
304
|
if (v2Methods) {
|
|
303
305
|
const methodDefinitions = getObjectEntries(v2Methods).map(([name, method]) => {
|
|
304
|
-
const argumentTypes = getJSONBTSTypes(
|
|
306
|
+
const argumentTypes = getJSONBTSTypes(tablesOrViews, {
|
|
305
307
|
type: method.input as JSONB.ObjectType["type"],
|
|
306
308
|
});
|
|
307
309
|
|
|
@@ -309,7 +311,7 @@ export class DboBuilder {
|
|
|
309
311
|
v.trim().endsWith(";") ? v.trim().slice(0, -1) : v.trim();
|
|
310
312
|
const returnType =
|
|
311
313
|
!method.output ? "void" : (
|
|
312
|
-
getJSONBTSTypes(
|
|
314
|
+
getJSONBTSTypes(tablesOrViews, {
|
|
313
315
|
type: method.output as JSONB.ObjectType["type"],
|
|
314
316
|
})
|
|
315
317
|
);
|
|
@@ -329,7 +331,10 @@ export class DboBuilder {
|
|
|
329
331
|
|
|
330
332
|
this.tsTypesDefinition = [
|
|
331
333
|
`/* Schema definition generated by prostgles-server */`,
|
|
332
|
-
getDBSchema(
|
|
334
|
+
getDBSchema({
|
|
335
|
+
config: this.prostgles.opts.tableConfig,
|
|
336
|
+
tablesOrViews,
|
|
337
|
+
}),
|
|
333
338
|
functionTypes,
|
|
334
339
|
].join("\n");
|
|
335
340
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
|
|
6
6
|
import * as pgPromise from "pg-promise";
|
|
7
|
-
import {
|
|
7
|
+
import type {
|
|
8
8
|
AnyObject,
|
|
9
9
|
ClientSchema,
|
|
10
10
|
ColumnInfo,
|
|
@@ -15,12 +15,12 @@ import {
|
|
|
15
15
|
TableInfo as TInfo,
|
|
16
16
|
UserLike,
|
|
17
17
|
} from "prostgles-types";
|
|
18
|
-
import { AuthClientRequest, BasicSession, SessionUser } from "../Auth/AuthTypes";
|
|
19
|
-
import { BasicCallback } from "../PubSubManager/PubSubManager";
|
|
20
|
-
import { PublishAllOrNothing } from "../PublishParser/PublishParser";
|
|
21
|
-
import { FieldSpec } from "./QueryBuilder/Functions";
|
|
22
|
-
import { TableHandler } from "./TableHandler/TableHandler";
|
|
23
|
-
import { ParsedJoinPath } from "./ViewHandler/parseJoinPath";
|
|
18
|
+
import type { AuthClientRequest, BasicSession, SessionUser } from "../Auth/AuthTypes";
|
|
19
|
+
import type { BasicCallback } from "../PubSubManager/PubSubManager";
|
|
20
|
+
import type { PublishAllOrNothing } from "../PublishParser/PublishParser";
|
|
21
|
+
import type { FieldSpec } from "./QueryBuilder/Functions/Functions";
|
|
22
|
+
import type { TableHandler } from "./TableHandler/TableHandler";
|
|
23
|
+
import type { ParsedJoinPath } from "./ViewHandler/parseJoinPath";
|
|
24
24
|
import pg = require("pg-promise/typescript/pg-subset");
|
|
25
25
|
|
|
26
26
|
type PGP = pgPromise.IMain<{}, pg.IClient>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { asNameAlias } from "../../../utils/asNameAlias";
|
|
2
|
+
import type { FieldSpec } from "./Functions";
|
|
3
|
+
/* The difference between a function and computed field is that the computed field does not require any arguments */
|
|
4
|
+
export const COMPUTED_FIELDS: FieldSpec[] = [
|
|
5
|
+
/**
|
|
6
|
+
* Used instead of row id. Must be used as a last resort. Use all non pseudo or domain data type columns first!
|
|
7
|
+
*/
|
|
8
|
+
{
|
|
9
|
+
name: "$rowhash",
|
|
10
|
+
type: "computed",
|
|
11
|
+
// description: ` order hash of row content `,
|
|
12
|
+
getQuery: ({ allowedFields, tableAlias, ctidField }) => {
|
|
13
|
+
return (
|
|
14
|
+
"md5(" +
|
|
15
|
+
allowedFields
|
|
16
|
+
|
|
17
|
+
/* CTID not available in AFTER trigger */
|
|
18
|
+
// .concat(ctidField? [ctidField] : [])
|
|
19
|
+
.sort()
|
|
20
|
+
.map((f) => asNameAlias(f, tableAlias))
|
|
21
|
+
.map((f) => `md5(coalesce(${f}::text, 'dd'))`)
|
|
22
|
+
.join(" || ") +
|
|
23
|
+
`)`
|
|
24
|
+
);
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
// ,{
|
|
28
|
+
// name: "ctid",
|
|
29
|
+
// type: "computed",
|
|
30
|
+
// // description: ` order hash of row content `,
|
|
31
|
+
// getQuery: ({ allowedFields, tableAlias, ctidField }) => {
|
|
32
|
+
// return asNameAlias("ctid", tableAlias);
|
|
33
|
+
// }
|
|
34
|
+
// }
|
|
35
|
+
];
|
|
@@ -1,78 +1,16 @@
|
|
|
1
|
+
import type { ColumnInfo, PG_COLUMN_UDT_DATA_TYPE } from "prostgles-types";
|
|
1
2
|
import {
|
|
2
3
|
asName,
|
|
3
|
-
ColumnInfo,
|
|
4
4
|
includes,
|
|
5
5
|
isEmpty,
|
|
6
6
|
isObject,
|
|
7
|
-
PG_COLUMN_UDT_DATA_TYPE,
|
|
8
7
|
TextFilter_FullTextSearchFilterKeys,
|
|
8
|
+
postgresToTsType,
|
|
9
9
|
} from "prostgles-types";
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import { asNameAlias } from "
|
|
13
|
-
|
|
14
|
-
export const parseFunction = (funcData: {
|
|
15
|
-
func: string | FunctionSpec;
|
|
16
|
-
args: any[];
|
|
17
|
-
functions: FunctionSpec[];
|
|
18
|
-
allowedFields: string[];
|
|
19
|
-
}): FunctionSpec => {
|
|
20
|
-
const { func, args, functions, allowedFields } = funcData;
|
|
21
|
-
|
|
22
|
-
/* Function is computed column. No checks needed */
|
|
23
|
-
if (typeof func !== "string") {
|
|
24
|
-
const computedCol = COMPUTED_FIELDS.find((c) => c.name === func.name);
|
|
25
|
-
if (!computedCol)
|
|
26
|
-
throw `Unexpected function: computed column spec not found for ${JSON.stringify(func.name)}`;
|
|
27
|
-
return func;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const funcName = func;
|
|
31
|
-
const makeErr = (msg: string): string => {
|
|
32
|
-
return `Issue with function ${JSON.stringify({ [funcName]: args })}: \n${msg}`;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/* Find function */
|
|
36
|
-
const funcDef = functions.find((f) => f.name === funcName);
|
|
37
|
-
|
|
38
|
-
if (!funcDef) {
|
|
39
|
-
const sf = functions
|
|
40
|
-
.filter((f) => f.name.toLowerCase().slice(1).startsWith(funcName.toLowerCase()))
|
|
41
|
-
.sort((a, b) => a.name.length - b.name.length);
|
|
42
|
-
const hint =
|
|
43
|
-
sf.length ?
|
|
44
|
-
`. \n Maybe you meant: \n | ${sf.map((s) => s.name + " " + (s.description || "")).join(" \n | ")} ?`
|
|
45
|
-
: "";
|
|
46
|
-
throw "\n Function " + funcName + " does not exist or is not allowed " + hint;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/* Validate fields */
|
|
50
|
-
const fields = funcDef.getFields(args);
|
|
51
|
-
if (fields !== "*") {
|
|
52
|
-
fields.forEach((fieldKey) => {
|
|
53
|
-
if (typeof fieldKey !== "string" || !allowedFields.includes(fieldKey)) {
|
|
54
|
-
throw makeErr(
|
|
55
|
-
`getFields() => field name ${JSON.stringify(fieldKey)} is invalid or disallowed`
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
if ((funcDef.minCols ?? 0) > fields.length) {
|
|
60
|
-
throw makeErr(`Less columns provided than necessary (minCols=${funcDef.minCols})`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (
|
|
65
|
-
funcDef.numArgs &&
|
|
66
|
-
funcDef.minCols !== 0 &&
|
|
67
|
-
fields !== "*" &&
|
|
68
|
-
Array.isArray(fields) &&
|
|
69
|
-
!fields.length
|
|
70
|
-
) {
|
|
71
|
-
throw `\n Function "${funcDef.name}" expects at least a field name but has not been provided with one`;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return funcDef;
|
|
75
|
-
};
|
|
10
|
+
import { parseFieldFilter } from "../../ViewHandler/parseFieldFilter";
|
|
11
|
+
import * as pgPromise from "pg-promise";
|
|
12
|
+
import { asNameAlias } from "../../../utils/asNameAlias";
|
|
13
|
+
const pgp = pgPromise();
|
|
76
14
|
|
|
77
15
|
type GetQueryArgs = {
|
|
78
16
|
allColumns: ColumnInfo[];
|
|
@@ -284,7 +222,7 @@ const FTS_Funcs: FunctionSpec[] =
|
|
|
284
222
|
const searchTypes = TextFilter_FullTextSearchFilterKeys;
|
|
285
223
|
|
|
286
224
|
/* { to_tsquery: 'search term' } */
|
|
287
|
-
if (
|
|
225
|
+
if (isObject(qVal)) {
|
|
288
226
|
const keys = Object.keys(qVal);
|
|
289
227
|
if (!keys.length) throw "Bad arg";
|
|
290
228
|
if (keys.length !== 1 || !searchTypes.includes(keys[0] as any))
|
|
@@ -1274,40 +1212,6 @@ export const FUNCTIONS: FunctionSpec[] = [
|
|
|
1274
1212
|
} as FunctionSpec,
|
|
1275
1213
|
];
|
|
1276
1214
|
|
|
1277
|
-
/* The difference between a function and computed field is that the computed field does not require any arguments */
|
|
1278
|
-
export const COMPUTED_FIELDS: FieldSpec[] = [
|
|
1279
|
-
/**
|
|
1280
|
-
* Used instead of row id. Must be used as a last resort. Use all non pseudo or domain data type columns first!
|
|
1281
|
-
*/
|
|
1282
|
-
{
|
|
1283
|
-
name: "$rowhash",
|
|
1284
|
-
type: "computed",
|
|
1285
|
-
// description: ` order hash of row content `,
|
|
1286
|
-
getQuery: ({ allowedFields, tableAlias, ctidField }) => {
|
|
1287
|
-
return (
|
|
1288
|
-
"md5(" +
|
|
1289
|
-
allowedFields
|
|
1290
|
-
|
|
1291
|
-
/* CTID not available in AFTER trigger */
|
|
1292
|
-
// .concat(ctidField? [ctidField] : [])
|
|
1293
|
-
.sort()
|
|
1294
|
-
.map((f) => asNameAlias(f, tableAlias))
|
|
1295
|
-
.map((f) => `md5(coalesce(${f}::text, 'dd'))`)
|
|
1296
|
-
.join(" || ") +
|
|
1297
|
-
`)`
|
|
1298
|
-
);
|
|
1299
|
-
},
|
|
1300
|
-
},
|
|
1301
|
-
// ,{
|
|
1302
|
-
// name: "ctid",
|
|
1303
|
-
// type: "computed",
|
|
1304
|
-
// // description: ` order hash of row content `,
|
|
1305
|
-
// getQuery: ({ allowedFields, tableAlias, ctidField }) => {
|
|
1306
|
-
// return asNameAlias("ctid", tableAlias);
|
|
1307
|
-
// }
|
|
1308
|
-
// }
|
|
1309
|
-
];
|
|
1310
|
-
|
|
1311
1215
|
/*
|
|
1312
1216
|
|
|
1313
1217
|
|