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.
Files changed (432) hide show
  1. package/.github/workflows/main.yml +15 -15
  2. package/.prettierignore +2 -0
  3. package/README.md +1 -1
  4. package/dist/Auth/AuthHandler.d.ts +1 -1
  5. package/dist/Auth/AuthHandler.d.ts.map +1 -1
  6. package/dist/Auth/AuthHandler.js +64 -32
  7. package/dist/Auth/AuthHandler.js.map +1 -1
  8. package/dist/Auth/AuthTypes.d.ts +15 -1
  9. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  10. package/dist/Auth/getSafeReturnURL.d.ts.map +1 -1
  11. package/dist/Auth/getSafeReturnURL.js.map +1 -1
  12. package/dist/Auth/sendEmail.d.ts.map +1 -1
  13. package/dist/Auth/sendEmail.js +6 -6
  14. package/dist/Auth/sendEmail.js.map +1 -1
  15. package/dist/Auth/setAuthProviders.d.ts +1 -1
  16. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  17. package/dist/Auth/setAuthProviders.js +15 -8
  18. package/dist/Auth/setAuthProviders.js.map +1 -1
  19. package/dist/Auth/setEmailProvider.d.ts.map +1 -1
  20. package/dist/Auth/setEmailProvider.js +23 -4
  21. package/dist/Auth/setEmailProvider.js.map +1 -1
  22. package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
  23. package/dist/Auth/setupAuthRoutes.js +27 -9
  24. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  25. package/dist/DBEventsManager.d.ts.map +1 -1
  26. package/dist/DBEventsManager.js +24 -19
  27. package/dist/DBEventsManager.js.map +1 -1
  28. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  29. package/dist/DBSchemaBuilder.js +18 -5
  30. package/dist/DBSchemaBuilder.js.map +1 -1
  31. package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
  32. package/dist/DboBuilder/DboBuilder.js +7 -2
  33. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  34. package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
  35. package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
  36. package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
  37. package/dist/DboBuilder/QueryBuilder/Functions.d.ts +2 -2
  38. package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  39. package/dist/DboBuilder/QueryBuilder/Functions.js +293 -173
  40. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  41. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +2 -2
  42. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  43. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +52 -29
  44. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  45. package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
  46. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +51 -32
  47. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
  48. package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
  49. package/dist/DboBuilder/QueryBuilder/getNewQuery.js +48 -25
  50. package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
  51. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
  52. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
  53. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +32 -23
  54. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
  55. package/dist/DboBuilder/QueryStreamer.d.ts +2 -2
  56. package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
  57. package/dist/DboBuilder/QueryStreamer.js +68 -23
  58. package/dist/DboBuilder/QueryStreamer.js.map +1 -1
  59. package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
  60. package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
  61. package/dist/DboBuilder/TableHandler/DataValidator.js +79 -43
  62. package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
  63. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  64. package/dist/DboBuilder/TableHandler/TableHandler.js +39 -15
  65. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  66. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  67. package/dist/DboBuilder/TableHandler/delete.js +44 -13
  68. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  69. package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
  70. package/dist/DboBuilder/TableHandler/insert.js +81 -22
  71. package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
  72. package/dist/DboBuilder/TableHandler/insertTest.d.ts.map +1 -1
  73. package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
  74. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +1 -1
  75. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
  76. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +7 -4
  77. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
  78. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
  79. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -5
  80. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
  81. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  82. package/dist/DboBuilder/TableHandler/update.js +16 -4
  83. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  84. package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
  85. package/dist/DboBuilder/TableHandler/updateBatch.js +33 -10
  86. package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
  87. package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
  88. package/dist/DboBuilder/TableHandler/updateFile.js +24 -6
  89. package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
  90. package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
  91. package/dist/DboBuilder/TableHandler/upsert.js +22 -6
  92. package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
  93. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +5 -5
  94. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  95. package/dist/DboBuilder/ViewHandler/ViewHandler.js +64 -36
  96. package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
  97. package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
  98. package/dist/DboBuilder/ViewHandler/count.js +21 -7
  99. package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
  100. package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
  101. package/dist/DboBuilder/ViewHandler/find.js +76 -22
  102. package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
  103. package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
  104. package/dist/DboBuilder/ViewHandler/getExistsCondition.js +19 -10
  105. package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
  106. package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts.map +1 -1
  107. package/dist/DboBuilder/ViewHandler/getExistsFilters.js +12 -5
  108. package/dist/DboBuilder/ViewHandler/getExistsFilters.js.map +1 -1
  109. package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
  110. package/dist/DboBuilder/ViewHandler/getInfo.js +27 -9
  111. package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
  112. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +2 -2
  113. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
  114. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +42 -23
  115. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
  116. package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -1
  117. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +22 -9
  118. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -1
  119. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts +4 -4
  120. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
  121. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +13 -11
  122. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
  123. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts +1 -1
  124. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
  125. package/dist/DboBuilder/ViewHandler/parseJoinPath.js +44 -29
  126. package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
  127. package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
  128. package/dist/DboBuilder/ViewHandler/prepareSortItems.js +36 -27
  129. package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
  130. package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
  131. package/dist/DboBuilder/ViewHandler/prepareWhere.js +16 -12
  132. package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
  133. package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
  134. package/dist/DboBuilder/ViewHandler/size.js +24 -7
  135. package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
  136. package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
  137. package/dist/DboBuilder/ViewHandler/subscribe.js +40 -12
  138. package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
  139. package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts.map +1 -1
  140. package/dist/DboBuilder/ViewHandler/validateViewRules.js +20 -5
  141. package/dist/DboBuilder/ViewHandler/validateViewRules.js.map +1 -1
  142. package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
  143. package/dist/DboBuilder/dboBuilderUtils.js +18 -7
  144. package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
  145. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  146. package/dist/DboBuilder/getColumns.js +22 -7
  147. package/dist/DboBuilder/getColumns.js.map +1 -1
  148. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  149. package/dist/DboBuilder/getCondition.js +43 -30
  150. package/dist/DboBuilder/getCondition.js.map +1 -1
  151. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
  152. package/dist/DboBuilder/getSubscribeRelatedTables.js +38 -27
  153. package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
  154. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
  155. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +9 -9
  156. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
  157. package/dist/DboBuilder/insertNestedRecords.d.ts +3 -3
  158. package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
  159. package/dist/DboBuilder/insertNestedRecords.js +79 -44
  160. package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
  161. package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
  162. package/dist/DboBuilder/parseUpdateRules.js +38 -14
  163. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  164. package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
  165. package/dist/DboBuilder/prepareShortestJoinPaths.js +56 -31
  166. package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
  167. package/dist/DboBuilder/runSQL.d.ts.map +1 -1
  168. package/dist/DboBuilder/runSQL.js +41 -21
  169. package/dist/DboBuilder/runSQL.js.map +1 -1
  170. package/dist/DboBuilder/runTransaction.d.ts +1 -1
  171. package/dist/DboBuilder/runTransaction.d.ts.map +1 -1
  172. package/dist/DboBuilder/runTransaction.js +2 -2
  173. package/dist/DboBuilder/runTransaction.js.map +1 -1
  174. package/dist/DboBuilder/sqlErrCodeToMsg.d.ts.map +1 -1
  175. package/dist/DboBuilder/sqlErrCodeToMsg.js +297 -38
  176. package/dist/DboBuilder/sqlErrCodeToMsg.js.map +1 -1
  177. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  178. package/dist/DboBuilder/uploadFile.js +33 -9
  179. package/dist/DboBuilder/uploadFile.js.map +1 -1
  180. package/dist/Event_Trigger_Tags.d.ts +1 -1
  181. package/dist/Event_Trigger_Tags.d.ts.map +1 -1
  182. package/dist/Event_Trigger_Tags.js +1 -1
  183. package/dist/Event_Trigger_Tags.js.map +1 -1
  184. package/dist/FileManager/FileManager.d.ts.map +1 -1
  185. package/dist/FileManager/FileManager.js +6 -3
  186. package/dist/FileManager/FileManager.js.map +1 -1
  187. package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
  188. package/dist/FileManager/getValidatedFileType.js +18 -16
  189. package/dist/FileManager/getValidatedFileType.js.map +1 -1
  190. package/dist/FileManager/initFileManager.d.ts.map +1 -1
  191. package/dist/FileManager/initFileManager.js +7 -1
  192. package/dist/FileManager/initFileManager.js.map +1 -1
  193. package/dist/FileManager/upload.d.ts +1 -1
  194. package/dist/FileManager/upload.d.ts.map +1 -1
  195. package/dist/FileManager/upload.js +3 -3
  196. package/dist/FileManager/upload.js.map +1 -1
  197. package/dist/FileManager/uploadStream.d.ts +1 -1
  198. package/dist/FileManager/uploadStream.d.ts.map +1 -1
  199. package/dist/FileManager/uploadStream.js +6 -7
  200. package/dist/FileManager/uploadStream.js.map +1 -1
  201. package/dist/Filtering.d.ts +3 -3
  202. package/dist/Filtering.d.ts.map +1 -1
  203. package/dist/Filtering.js +70 -37
  204. package/dist/Filtering.js.map +1 -1
  205. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
  206. package/dist/JSONBValidation/validate_jsonb_schema_sql.js +1 -4
  207. package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
  208. package/dist/JSONBValidation/validation.d.ts.map +1 -1
  209. package/dist/JSONBValidation/validation.js +46 -24
  210. package/dist/JSONBValidation/validation.js.map +1 -1
  211. package/dist/Logging.d.ts +2 -2
  212. package/dist/Logging.d.ts.map +1 -1
  213. package/dist/PostgresNotifListenManager.d.ts.map +1 -1
  214. package/dist/PostgresNotifListenManager.js +20 -22
  215. package/dist/PostgresNotifListenManager.js.map +1 -1
  216. package/dist/Prostgles.d.ts +1 -1
  217. package/dist/Prostgles.d.ts.map +1 -1
  218. package/dist/Prostgles.js +37 -11
  219. package/dist/Prostgles.js.map +1 -1
  220. package/dist/ProstglesTypes.d.ts.map +1 -1
  221. package/dist/ProstglesTypes.js +6 -1
  222. package/dist/ProstglesTypes.js.map +1 -1
  223. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  224. package/dist/PubSubManager/PubSubManager.js +10 -5
  225. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  226. package/dist/PubSubManager/addSub.d.ts.map +1 -1
  227. package/dist/PubSubManager/addSub.js +4 -6
  228. package/dist/PubSubManager/addSub.js.map +1 -1
  229. package/dist/PubSubManager/addSync.d.ts.map +1 -1
  230. package/dist/PubSubManager/addSync.js +10 -6
  231. package/dist/PubSubManager/addSync.js.map +1 -1
  232. package/dist/PubSubManager/getCreatePubSubManagerError.d.ts.map +1 -1
  233. package/dist/PubSubManager/getCreatePubSubManagerError.js +3 -1
  234. package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
  235. package/dist/PubSubManager/getPubSubManagerInitQuery.d.ts.map +1 -1
  236. package/dist/PubSubManager/getPubSubManagerInitQuery.js +8 -8
  237. package/dist/PubSubManager/getPubSubManagerInitQuery.js.map +1 -1
  238. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  239. package/dist/PubSubManager/initPubSubManager.js +7 -9
  240. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  241. package/dist/PubSubManager/notifListener.d.ts.map +1 -1
  242. package/dist/PubSubManager/notifListener.js +23 -12
  243. package/dist/PubSubManager/notifListener.js.map +1 -1
  244. package/dist/PubSubManager/orphanTriggerCheck.d.ts.map +1 -1
  245. package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
  246. package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
  247. package/dist/PubSubManager/pushSubData.js +1 -1
  248. package/dist/PubSubManager/pushSubData.js.map +1 -1
  249. package/dist/PublishParser/PublishParser.d.ts +1 -1
  250. package/dist/PublishParser/PublishParser.d.ts.map +1 -1
  251. package/dist/PublishParser/PublishParser.js +25 -14
  252. package/dist/PublishParser/PublishParser.js.map +1 -1
  253. package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
  254. package/dist/PublishParser/getFileTableRules.js +23 -16
  255. package/dist/PublishParser/getFileTableRules.js.map +1 -1
  256. package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
  257. package/dist/PublishParser/getSchemaFromPublish.js +39 -16
  258. package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
  259. package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
  260. package/dist/PublishParser/getTableRulesWithoutFileTable.js +42 -22
  261. package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
  262. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  263. package/dist/PublishParser/publishTypesAndUtils.js +5 -1
  264. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  265. package/dist/RestApi.d.ts +1 -1
  266. package/dist/RestApi.d.ts.map +1 -1
  267. package/dist/RestApi.js +1 -1
  268. package/dist/RestApi.js.map +1 -1
  269. package/dist/SchemaWatch/SchemaWatch.d.ts +2 -2
  270. package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
  271. package/dist/SchemaWatch/SchemaWatch.js +11 -9
  272. package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
  273. package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts.map +1 -1
  274. package/dist/SchemaWatch/getValidatedWatchSchemaType.js +3 -3
  275. package/dist/SchemaWatch/getValidatedWatchSchemaType.js.map +1 -1
  276. package/dist/SchemaWatch/getWatchSchemaTagList.d.ts.map +1 -1
  277. package/dist/SchemaWatch/getWatchSchemaTagList.js +12 -6
  278. package/dist/SchemaWatch/getWatchSchemaTagList.js.map +1 -1
  279. package/dist/SyncReplication.d.ts.map +1 -1
  280. package/dist/SyncReplication.js +84 -42
  281. package/dist/SyncReplication.js.map +1 -1
  282. package/dist/TableConfig/TableConfig.d.ts +5 -5
  283. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  284. package/dist/TableConfig/TableConfig.js +18 -5
  285. package/dist/TableConfig/TableConfig.js.map +1 -1
  286. package/dist/TableConfig/getColumnDefinitionQuery.d.ts +2 -2
  287. package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
  288. package/dist/TableConfig/getColumnDefinitionQuery.js +20 -9
  289. package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
  290. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +3 -3
  291. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
  292. package/dist/TableConfig/getConstraintDefinitionQueries.js +12 -7
  293. package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
  294. package/dist/TableConfig/getFutureTableSchema.d.ts +1 -1
  295. package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
  296. package/dist/TableConfig/getFutureTableSchema.js +6 -4
  297. package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
  298. package/dist/TableConfig/getPGIndexes.d.ts.map +1 -1
  299. package/dist/TableConfig/getPGIndexes.js.map +1 -1
  300. package/dist/TableConfig/getTableColumnQueries.d.ts +1 -1
  301. package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
  302. package/dist/TableConfig/getTableColumnQueries.js +38 -19
  303. package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
  304. package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
  305. package/dist/TableConfig/initTableConfig.js +91 -43
  306. package/dist/TableConfig/initTableConfig.js.map +1 -1
  307. package/dist/index.d.ts.map +1 -1
  308. package/dist/index.js.map +1 -1
  309. package/dist/initProstgles.d.ts.map +1 -1
  310. package/dist/initProstgles.js +14 -10
  311. package/dist/initProstgles.js.map +1 -1
  312. package/dist/onSocketConnected.d.ts.map +1 -1
  313. package/dist/onSocketConnected.js +38 -16
  314. package/dist/onSocketConnected.js.map +1 -1
  315. package/dist/runClientRequest.d.ts.map +1 -1
  316. package/dist/runClientRequest.js +33 -14
  317. package/dist/runClientRequest.js.map +1 -1
  318. package/dist/shortestPath.d.ts.map +1 -1
  319. package/dist/shortestPath.js +1 -1
  320. package/dist/shortestPath.js.map +1 -1
  321. package/dist/typeTests/dboTypeCheck.js.map +1 -1
  322. package/examples/full-example-typescript/DBoGenerated.d.ts +112 -54
  323. package/examples/full-example-typescript/DBoGenerated.js +3 -3
  324. package/examples/full-example-typescript/home.html +28 -26
  325. package/examples/full-example-typescript/index.d.ts +1 -1
  326. package/examples/full-example-typescript/index.js +80 -53
  327. package/examples/full-example-vanilla/home.html +151 -125
  328. package/examples/server/javascript/index.js +17 -19
  329. package/lib/Auth/AuthHandler.ts +234 -155
  330. package/lib/Auth/AuthTypes.ts +27 -4
  331. package/lib/Auth/getSafeReturnURL.ts +35 -21
  332. package/lib/Auth/sendEmail.ts +34 -31
  333. package/lib/Auth/setAuthProviders.ts +94 -71
  334. package/lib/Auth/setEmailProvider.ts +45 -27
  335. package/lib/Auth/setupAuthRoutes.ts +164 -100
  336. package/lib/DBEventsManager.ts +87 -65
  337. package/lib/DBSchemaBuilder.ts +62 -28
  338. package/lib/DboBuilder/DboBuilder.ts +45 -21
  339. package/lib/DboBuilder/DboBuilderTypes.ts +99 -95
  340. package/lib/DboBuilder/QueryBuilder/Functions.ts +862 -580
  341. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +202 -141
  342. package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +199 -124
  343. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +209 -148
  344. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +101 -75
  345. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +10 -5
  346. package/lib/DboBuilder/QueryStreamer.ts +207 -100
  347. package/lib/DboBuilder/TableHandler/DataValidator.ts +253 -148
  348. package/lib/DboBuilder/TableHandler/TableHandler.ts +155 -60
  349. package/lib/DboBuilder/TableHandler/delete.ts +82 -29
  350. package/lib/DboBuilder/TableHandler/insert.ts +177 -81
  351. package/lib/DboBuilder/TableHandler/insertTest.ts +13 -7
  352. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +35 -21
  353. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +95 -45
  354. package/lib/DboBuilder/TableHandler/update.ts +54 -14
  355. package/lib/DboBuilder/TableHandler/updateBatch.ts +59 -21
  356. package/lib/DboBuilder/TableHandler/updateFile.ts +57 -26
  357. package/lib/DboBuilder/TableHandler/upsert.ts +58 -13
  358. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +264 -121
  359. package/lib/DboBuilder/ViewHandler/count.ts +56 -25
  360. package/lib/DboBuilder/ViewHandler/find.ts +153 -68
  361. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +59 -32
  362. package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +31 -19
  363. package/lib/DboBuilder/ViewHandler/getInfo.ts +47 -16
  364. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +91 -57
  365. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +51 -29
  366. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +35 -29
  367. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +130 -76
  368. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +140 -92
  369. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +66 -26
  370. package/lib/DboBuilder/ViewHandler/size.ts +56 -22
  371. package/lib/DboBuilder/ViewHandler/subscribe.ts +122 -46
  372. package/lib/DboBuilder/ViewHandler/validateViewRules.ts +39 -14
  373. package/lib/DboBuilder/dboBuilderUtils.ts +41 -18
  374. package/lib/DboBuilder/getColumns.ts +44 -12
  375. package/lib/DboBuilder/getCondition.ts +120 -79
  376. package/lib/DboBuilder/getSubscribeRelatedTables.ts +144 -83
  377. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +61 -44
  378. package/lib/DboBuilder/insertNestedRecords.ts +370 -235
  379. package/lib/DboBuilder/parseUpdateRules.ts +117 -61
  380. package/lib/DboBuilder/prepareShortestJoinPaths.ts +115 -56
  381. package/lib/DboBuilder/runSQL.ts +135 -74
  382. package/lib/DboBuilder/runTransaction.ts +27 -16
  383. package/lib/DboBuilder/sqlErrCodeToMsg.ts +502 -244
  384. package/lib/DboBuilder/uploadFile.ts +67 -31
  385. package/lib/Event_Trigger_Tags.ts +6 -4
  386. package/lib/FileManager/FileManager.ts +53 -21
  387. package/lib/FileManager/getValidatedFileType.ts +79 -35
  388. package/lib/FileManager/initFileManager.ts +21 -9
  389. package/lib/FileManager/upload.ts +21 -19
  390. package/lib/FileManager/uploadStream.ts +33 -34
  391. package/lib/Filtering.ts +249 -197
  392. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +2 -7
  393. package/lib/JSONBValidation/validation.ts +147 -82
  394. package/lib/Logging.ts +107 -97
  395. package/lib/PostgresNotifListenManager.ts +96 -63
  396. package/lib/Prostgles.ts +106 -35
  397. package/lib/ProstglesTypes.ts +31 -9
  398. package/lib/PubSubManager/PubSubManager.ts +62 -27
  399. package/lib/PubSubManager/addSub.ts +56 -37
  400. package/lib/PubSubManager/addSync.ts +50 -33
  401. package/lib/PubSubManager/getCreatePubSubManagerError.ts +29 -21
  402. package/lib/PubSubManager/getPubSubManagerInitQuery.ts +45 -27
  403. package/lib/PubSubManager/initPubSubManager.ts +27 -18
  404. package/lib/PubSubManager/notifListener.ts +77 -59
  405. package/lib/PubSubManager/orphanTriggerCheck.ts +5 -4
  406. package/lib/PubSubManager/pushSubData.ts +11 -9
  407. package/lib/PublishParser/PublishParser.ts +102 -44
  408. package/lib/PublishParser/getFileTableRules.ts +97 -54
  409. package/lib/PublishParser/getSchemaFromPublish.ts +146 -74
  410. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +101 -51
  411. package/lib/PublishParser/publishTypesAndUtils.ts +74 -23
  412. package/lib/RestApi.ts +10 -2
  413. package/lib/SchemaWatch/SchemaWatch.ts +52 -34
  414. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +1 -1
  415. package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +32 -22
  416. package/lib/SchemaWatch/getWatchSchemaTagList.ts +24 -16
  417. package/lib/SyncReplication.ts +376 -190
  418. package/lib/TableConfig/TableConfig.ts +200 -136
  419. package/lib/TableConfig/getColumnDefinitionQuery.ts +65 -44
  420. package/lib/TableConfig/getConstraintDefinitionQueries.ts +41 -25
  421. package/lib/TableConfig/getFutureTableSchema.ts +31 -21
  422. package/lib/TableConfig/getPGIndexes.ts +7 -4
  423. package/lib/TableConfig/getTableColumnQueries.ts +101 -54
  424. package/lib/TableConfig/initTableConfig.ts +192 -101
  425. package/lib/index.ts +6 -5
  426. package/lib/initProstgles.ts +57 -51
  427. package/lib/onSocketConnected.ts +75 -40
  428. package/lib/runClientRequest.ts +148 -79
  429. package/lib/shortestPath.ts +80 -76
  430. package/lib/typeTests/DBoGenerated.d.ts +5 -1
  431. package/lib/typeTests/dboTypeCheck.ts +8 -8
  432. package/package.json +1 -1
@@ -1,7 +1,17 @@
1
- import { AnyObject, asName, ParsedJoinPath, reverseParsedPath, SubscribeParams } from "prostgles-types";
1
+ import {
2
+ AnyObject,
3
+ asName,
4
+ ParsedJoinPath,
5
+ reverseParsedPath,
6
+ SubscribeParams,
7
+ } from "prostgles-types";
2
8
  import { TableRule } from "../PublishParser/PublishParser";
3
9
  import { log, ViewSubscriptionOptions } from "../PubSubManager/PubSubManager";
4
- import { Filter, getSerializedClientErrorFromPGError, LocalParams } from "./DboBuilder";
10
+ import {
11
+ Filter,
12
+ getSerializedClientErrorFromPGError,
13
+ LocalParams,
14
+ } from "./DboBuilder";
5
15
  import { NewQuery } from "./QueryBuilder/QueryBuilder";
6
16
  import { ViewHandler } from "./ViewHandler/ViewHandler";
7
17
 
@@ -11,69 +21,100 @@ type Args = {
11
21
  table_rules: TableRule<AnyObject, void> | undefined;
12
22
  localParams: LocalParams | undefined;
13
23
  newQuery: NewQuery;
14
- }
24
+ };
15
25
 
16
26
  /**
17
27
  * When subscribing to a view: we identify underlying tables to subscribe to them
18
28
  * When subscribing to a table: we identify joined tables to subscribe to them
19
29
  */
20
- export async function getSubscribeRelatedTables(this: ViewHandler, { filter, localParams, newQuery }: Args){
21
-
30
+ export async function getSubscribeRelatedTables(
31
+ this: ViewHandler,
32
+ { filter, localParams, newQuery }: Args,
33
+ ) {
22
34
  let viewOptions: ViewSubscriptionOptions | undefined = undefined;
23
35
  const { condition } = newQuery.whereOpts;
24
36
  if (this.is_view) {
25
37
  /** TODO: this needs to be memoized on schema fetch */
26
38
  const viewName = this.name;
27
39
  const viewNameEscaped = this.escapedName;
28
- const { current_schema } = await this.db.oneOrNone("SELECT current_schema")
40
+ const { current_schema } = await this.db.oneOrNone("SELECT current_schema");
29
41
 
30
42
  /** Get list of used columns and their parent tables */
31
- let { def } = (await this.db.oneOrNone("SELECT pg_get_viewdef(${viewName}) as def", { viewName })) as { def: string };
43
+ let { def } = (await this.db.oneOrNone(
44
+ "SELECT pg_get_viewdef(${viewName}) as def",
45
+ { viewName },
46
+ )) as { def: string };
32
47
  def = def.trim();
33
48
  if (def.endsWith(";")) {
34
49
  def = def.slice(0, -1);
35
50
  }
36
51
  if (!def || typeof def !== "string") {
37
- throw getSerializedClientErrorFromPGError("Could get view definition", { type: "tableMethod", localParams, view: this, });
52
+ throw getSerializedClientErrorFromPGError("Could get view definition", {
53
+ type: "tableMethod",
54
+ localParams,
55
+ view: this,
56
+ });
38
57
  }
39
- const { fields } = await this.dboBuilder.dbo.sql!(`SELECT * FROM ( \n ${def} \n ) prostgles_subscribe_view_definition LIMIT 0`, {});
40
- const tableColumns = fields.filter(f => f.tableName && f.columnName);
58
+ const { fields } = await this.dboBuilder.dbo.sql!(
59
+ `SELECT * FROM ( \n ${def} \n ) prostgles_subscribe_view_definition LIMIT 0`,
60
+ {},
61
+ );
62
+ const tableColumns = fields.filter((f) => f.tableName && f.columnName);
41
63
 
42
64
  /** Create exists filters for each table */
43
- const tableIds: string[] = Array.from(new Set(tableColumns.map(tc => tc.tableID!.toString())));
65
+ const tableIds: string[] = Array.from(
66
+ new Set(tableColumns.map((tc) => tc.tableID!.toString())),
67
+ );
44
68
  viewOptions = {
45
69
  type: "view",
46
70
  viewName,
47
71
  definition: def,
48
- relatedTables: []
49
- }
50
- viewOptions.relatedTables = await Promise.all(tableIds.map(async tableID => {
51
- const table = this.dboBuilder.USER_TABLES!.find(t => t.relid === +tableID)!;
52
- let tableCols = tableColumns.filter(tc => tc.tableID!.toString() === tableID);
53
-
54
- /** If table has primary keys and they are all in this view then use only primary keys */
55
- if (table?.pkey_columns?.every(pkey => tableCols.some(c => c.columnName === pkey))) {
56
- tableCols = tableCols.filter(c => table?.pkey_columns?.includes(c.columnName!))
57
- } else {
58
- /** Exclude non comparable data types */
59
- tableCols = tableCols.filter(c => !["json", "xml"].includes(c.udt_name))
60
- }
61
-
62
- const { relname: tableName, schemaname: tableSchema } = table;
72
+ relatedTables: [],
73
+ };
74
+ viewOptions.relatedTables = await Promise.all(
75
+ tableIds.map(async (tableID) => {
76
+ const table = this.dboBuilder.USER_TABLES!.find(
77
+ (t) => t.relid === +tableID,
78
+ )!;
79
+ let tableCols = tableColumns.filter(
80
+ (tc) => tc.tableID!.toString() === tableID,
81
+ );
82
+
83
+ /** If table has primary keys and they are all in this view then use only primary keys */
84
+ if (
85
+ table?.pkey_columns?.every((pkey) =>
86
+ tableCols.some((c) => c.columnName === pkey),
87
+ )
88
+ ) {
89
+ tableCols = tableCols.filter((c) =>
90
+ table?.pkey_columns?.includes(c.columnName!),
91
+ );
92
+ } else {
93
+ /** Exclude non comparable data types */
94
+ tableCols = tableCols.filter(
95
+ (c) => !["json", "xml"].includes(c.udt_name),
96
+ );
97
+ }
63
98
 
64
- if (tableCols.length) {
99
+ const { relname: tableName, schemaname: tableSchema } = table;
65
100
 
66
- const tableNameEscaped = tableSchema === current_schema ? table.relname : [tableSchema, tableName].map(v => JSON.stringify(v)).join(".");
101
+ if (tableCols.length) {
102
+ const tableNameEscaped =
103
+ tableSchema === current_schema
104
+ ? table.relname
105
+ : [tableSchema, tableName]
106
+ .map((v) => JSON.stringify(v))
107
+ .join(".");
67
108
 
68
- const fullCondition = `EXISTS (
109
+ const fullCondition = `EXISTS (
69
110
  SELECT 1
70
111
  FROM ${viewNameEscaped}
71
- WHERE ${tableCols.map(c => `${tableNameEscaped}.${JSON.stringify(c.columnName)} = ${viewNameEscaped}.${JSON.stringify(c.name)}`).join(" AND \n")}
112
+ WHERE ${tableCols.map((c) => `${tableNameEscaped}.${JSON.stringify(c.columnName)} = ${viewNameEscaped}.${JSON.stringify(c.name)}`).join(" AND \n")}
72
113
  AND ${condition || "TRUE"}
73
114
  )`;
74
115
 
75
- try {
76
- const { count } = await this.db.oneOrNone(`
116
+ try {
117
+ const { count } = await this.db.oneOrNone(`
77
118
  WITH ${asName(tableName)} AS (
78
119
  SELECT *
79
120
  FROM ${asName(tableName)}
@@ -86,43 +127,56 @@ export async function getSubscribeRelatedTables(this: ViewHandler, { filter, loc
86
127
  ) prostgles_view_ref_table_test
87
128
  `);
88
129
 
89
- const relatedTableSubscription = {
90
- tableName: tableName!,
91
- tableNameEscaped,
92
- condition: fullCondition,
93
- }
130
+ const relatedTableSubscription = {
131
+ tableName: tableName!,
132
+ tableNameEscaped,
133
+ condition: fullCondition,
134
+ };
94
135
 
95
- if (count.toString() === '0') {
96
- return relatedTableSubscription;
136
+ if (count.toString() === "0") {
137
+ return relatedTableSubscription;
138
+ }
139
+ } catch (e) {
140
+ log(
141
+ `Could not not override subscribed view (${this.name}) table (${tableName}). Will not check condition`,
142
+ e,
143
+ );
97
144
  }
98
- } catch (e) {
99
- log(`Could not not override subscribed view (${this.name}) table (${tableName}). Will not check condition`, e);
100
145
  }
101
- }
102
-
103
- return {
104
- tableName,
105
- tableNameEscaped: JSON.stringify(tableName),// [table.schemaname, table.relname].map(v => JSON.stringify(v)).join("."),
106
- condition: "TRUE"
107
- }
108
146
 
109
- }))
147
+ return {
148
+ tableName,
149
+ tableNameEscaped: JSON.stringify(tableName), // [table.schemaname, table.relname].map(v => JSON.stringify(v)).join("."),
150
+ condition: "TRUE",
151
+ };
152
+ }),
153
+ );
110
154
 
111
155
  /** Get list of remaining used inner tables */
112
- const allUsedTables: { table_name: string; table_schema: string; }[] = await this.db.any(
113
- "SELECT distinct table_name, table_schema FROM information_schema.view_column_usage WHERE view_name = ${viewName}",
114
- { viewName }
115
- );
156
+ const allUsedTables: { table_name: string; table_schema: string }[] =
157
+ await this.db.any(
158
+ "SELECT distinct table_name, table_schema FROM information_schema.view_column_usage WHERE view_name = ${viewName}",
159
+ { viewName },
160
+ );
116
161
 
117
162
  /** Remaining tables will have listeners on all records (condition = "TRUE") */
118
- const remainingInnerTables = allUsedTables.filter(at => !tableColumns.some(dc => dc.tableName === at.table_name && dc.tableSchema === at.table_schema));
163
+ const remainingInnerTables = allUsedTables.filter(
164
+ (at) =>
165
+ !tableColumns.some(
166
+ (dc) =>
167
+ dc.tableName === at.table_name &&
168
+ dc.tableSchema === at.table_schema,
169
+ ),
170
+ );
119
171
  viewOptions.relatedTables = [
120
172
  ...viewOptions.relatedTables,
121
- ...remainingInnerTables.map(t => ({
173
+ ...remainingInnerTables.map((t) => ({
122
174
  tableName: t.table_name,
123
- tableNameEscaped: [t.table_name, t.table_schema].map(v => JSON.stringify(v)).join("."),
124
- condition: "TRUE"
125
- }))
175
+ tableNameEscaped: [t.table_name, t.table_schema]
176
+ .map((v) => JSON.stringify(v))
177
+ .join("."),
178
+ condition: "TRUE",
179
+ })),
126
180
  ];
127
181
 
128
182
  if (!viewOptions.relatedTables.length) {
@@ -133,51 +187,58 @@ export async function getSubscribeRelatedTables(this: ViewHandler, { filter, loc
133
187
  } else {
134
188
  viewOptions = {
135
189
  type: "table",
136
- relatedTables: []
137
- }
190
+ relatedTables: [],
191
+ };
138
192
 
139
193
  const nonExistsFilter = newQuery.whereOpts.exists.length ? {} : filter;
140
- const pushRelatedTable = async (relatedTableName: string, joinPath: ParsedJoinPath[]) => {
194
+ const pushRelatedTable = async (
195
+ relatedTableName: string,
196
+ joinPath: ParsedJoinPath[],
197
+ ) => {
141
198
  const relatedTableOrViewHandler = this.dboBuilder.dbo[relatedTableName];
142
199
  if (!relatedTableOrViewHandler) {
143
200
  throw `Table ${relatedTableName} not found`;
144
201
  }
145
202
 
146
- const alreadyPushed = viewOptions?.relatedTables.find(rt => rt.tableName === relatedTableName)
147
- if(alreadyPushed || relatedTableOrViewHandler.is_view){
148
- return
203
+ const alreadyPushed = viewOptions?.relatedTables.find(
204
+ (rt) => rt.tableName === relatedTableName,
205
+ );
206
+ if (alreadyPushed || relatedTableOrViewHandler.is_view) {
207
+ return;
149
208
  }
150
209
 
151
210
  viewOptions ??= {
152
211
  type: "table",
153
- relatedTables: []
154
- }
212
+ relatedTables: [],
213
+ };
155
214
  viewOptions.relatedTables.push({
156
215
  tableName: relatedTableName,
157
216
  tableNameEscaped: asName(relatedTableName),
158
- condition: (await relatedTableOrViewHandler!.prepareWhere!({
159
- select: undefined,
160
- filter: {
161
- $existsJoined: {
162
- path: reverseParsedPath(joinPath, this.name),
163
- filter: nonExistsFilter
164
- }
165
- },
166
- addWhere: false,
167
- localParams: undefined,
168
- tableRule: undefined
169
- })).where
217
+ condition: (
218
+ await relatedTableOrViewHandler!.prepareWhere!({
219
+ select: undefined,
220
+ filter: {
221
+ $existsJoined: {
222
+ path: reverseParsedPath(joinPath, this.name),
223
+ filter: nonExistsFilter,
224
+ },
225
+ },
226
+ addWhere: false,
227
+ localParams: undefined,
228
+ tableRule: undefined,
229
+ })
230
+ ).where,
170
231
  });
171
- }
232
+ };
172
233
 
173
234
  /**
174
235
  * Avoid nested exists error. Will affect performance
175
236
  */
176
- for await (const j of (newQuery.joins ?? [])) {
237
+ for await (const j of newQuery.joins ?? []) {
177
238
  await pushRelatedTable(j.table, j.joinPath);
178
239
  }
179
- for await (const e of newQuery.whereOpts.exists.filter(e => e.isJoined)) {
180
- if(!e.isJoined) throw `Not possible`;
240
+ for await (const e of newQuery.whereOpts.exists.filter((e) => e.isJoined)) {
241
+ if (!e.isJoined) throw `Not possible`;
181
242
  const targetTable = e.parsedPath.at(-1)!.table;
182
243
  await pushRelatedTable(targetTable, e.parsedPath);
183
244
  }
@@ -187,4 +248,4 @@ export async function getSubscribeRelatedTables(this: ViewHandler, { filter, loc
187
248
  }
188
249
 
189
250
  return viewOptions;
190
- }
251
+ }
@@ -6,7 +6,10 @@ import { clone } from "../utils";
6
6
  import { TableSchema, TableSchemaColumn } from "./DboBuilderTypes";
7
7
  import { ProstglesInitOptions } from "../ProstglesTypes";
8
8
 
9
- const getMaterialViews = (db: DBorTx, schema: ProstglesInitOptions["schemaFilter"]) => {
9
+ const getMaterialViews = (
10
+ db: DBorTx,
11
+ schema: ProstglesInitOptions["schemaFilter"],
12
+ ) => {
10
13
  const { sql, schemaNames } = getSchemaFilter(schema);
11
14
 
12
15
  const query = `
@@ -97,7 +100,9 @@ where nspname = 'public' and relname = 'test_view';
97
100
  return db.any(query, { schemaNames });
98
101
  };
99
102
 
100
- export const getSchemaFilter = (schema: ProstglesInitOptions["schemaFilter"] = { public: 1 }) => {
103
+ export const getSchemaFilter = (
104
+ schema: ProstglesInitOptions["schemaFilter"] = { public: 1 },
105
+ ) => {
101
106
  const schemaNames = Object.keys(schema);
102
107
  const isInclusive = Object.values(schema).every((v) => v);
103
108
  if (!schemaNames.length) {
@@ -114,7 +119,7 @@ export const getSchemaFilter = (schema: ProstglesInitOptions["schemaFilter"] = {
114
119
  // Reason: this query gets blocked by prostgles.app_triggers from PubSubManager.addTrigger in some cases (pg_dump locks that table)
115
120
  export async function getTablesForSchemaPostgresSQL(
116
121
  { db, runSQL }: DboBuilder,
117
- schema: ProstglesInitOptions["schemaFilter"]
122
+ schema: ProstglesInitOptions["schemaFilter"],
118
123
  ): Promise<{
119
124
  result: TableSchema[];
120
125
  durations: Record<string, number>;
@@ -160,7 +165,7 @@ export async function getTablesForSchemaPostgresSQL(
160
165
  )
161
166
  SELECT * FROM fk
162
167
  `,
163
- { schemaNames }
168
+ { schemaNames },
164
169
  );
165
170
 
166
171
  return { fkeys };
@@ -212,8 +217,9 @@ export async function getTablesForSchemaPostgresSQL(
212
217
  }
213
218
 
214
219
  const getTVColumns = await tryCatch(async () => {
215
- const columns: (TableSchemaColumn & { table_oid: number })[] = await t.any(
216
- `
220
+ const columns: (TableSchemaColumn & { table_oid: number })[] =
221
+ await t.any(
222
+ `
217
223
  SELECT
218
224
  table_oid
219
225
  , ccc.column_name as name ,
@@ -275,8 +281,8 @@ export async function getTablesForSchemaPostgresSQL(
275
281
  WHERE table_schema ${sql}
276
282
  ORDER BY table_oid, ordinal_position
277
283
  `,
278
- { schemaNames }
279
- );
284
+ { schemaNames },
285
+ );
280
286
 
281
287
  return { columns };
282
288
  });
@@ -285,7 +291,8 @@ export async function getTablesForSchemaPostgresSQL(
285
291
  }
286
292
 
287
293
  const getViewParentTables = await tryCatch(async () => {
288
- const parent_tables: { oid: number; table_names: string[] }[] = await t.any(`
294
+ const parent_tables: { oid: number; table_names: string[] }[] =
295
+ await t.any(`
289
296
  SELECT cl_r.oid, cl_r.relname as view_name, array_agg(DISTINCT cl_d.relname) AS table_names
290
297
  FROM pg_rewrite AS r
291
298
  JOIN pg_class AS cl_r ON r.ev_class = cl_r.oid
@@ -331,18 +338,18 @@ export async function getTablesForSchemaPostgresSQL(
331
338
  --GROUP BY t.table_schema, t.table_name, t.is_view, t.view_definition, t.oid
332
339
  ORDER BY schema, name
333
340
  `;
334
- const tablesAndViews = ((await t.any(query, { schemaNames })) as TableSchema[]).map(
335
- (table) => {
336
- table.columns =
337
- clone(getTVColumns.columns)
338
- .filter((c) => c.table_oid === table.oid)
339
- .map((c) => omitKeys(c, ["table_oid"])) ?? [];
340
- table.parent_tables =
341
- getViewParentTables.parent_tables?.find((vr) => vr.oid === table.oid)?.table_names ??
342
- [];
343
- return table;
344
- }
345
- );
341
+ const tablesAndViews = (
342
+ (await t.any(query, { schemaNames })) as TableSchema[]
343
+ ).map((table) => {
344
+ table.columns =
345
+ clone(getTVColumns.columns)
346
+ .filter((c) => c.table_oid === table.oid)
347
+ .map((c) => omitKeys(c, ["table_oid"])) ?? [];
348
+ table.parent_tables =
349
+ getViewParentTables.parent_tables?.find((vr) => vr.oid === table.oid)
350
+ ?.table_names ?? [];
351
+ return table;
352
+ });
346
353
  return { tablesAndViews };
347
354
  });
348
355
  if (getTablesAndViews.error || !getTablesAndViews.tablesAndViews) {
@@ -365,7 +372,9 @@ export async function getTablesForSchemaPostgresSQL(
365
372
  console.error(getHyperTablesReq.error);
366
373
  }
367
374
 
368
- let result = getTablesAndViews.tablesAndViews.concat(getMaterialViewsReq.materialViews);
375
+ let result = getTablesAndViews.tablesAndViews.concat(
376
+ getMaterialViewsReq.materialViews,
377
+ );
369
378
  result = await Promise.all(
370
379
  result.map(async (table) => {
371
380
  table.name = table.escaped_identifier;
@@ -379,7 +388,7 @@ export async function getTablesForSchemaPostgresSQL(
379
388
  allowAllIfNoColumns ?? table.columns.some((c) => c.privileges.UPDATE);
380
389
  table.columns = table.columns.map((c) => {
381
390
  const refs = getFkeys.fkeys!.filter(
382
- (fc) => fc.oid === table.oid && fc.cols.includes(c.name)
391
+ (fc) => fc.oid === table.oid && fc.cols.includes(c.name),
383
392
  );
384
393
  if (refs.length)
385
394
  c.references = refs.map((_ref) => {
@@ -395,25 +404,30 @@ export async function getTablesForSchemaPostgresSQL(
395
404
  let viewFCols: Pick<TableSchemaColumn, "name" | "references">[] = [];
396
405
  if (table.is_view) {
397
406
  try {
398
- const view_definition =
399
- table.view_definition?.endsWith(";") ?
400
- table.view_definition.slice(0, -1)
407
+ const view_definition = table.view_definition?.endsWith(";")
408
+ ? table.view_definition.slice(0, -1)
401
409
  : table.view_definition;
402
410
  const { fields } = (await runSQL(
403
411
  `SELECT * FROM \n ( ${view_definition!} \n) t LIMIT 0`,
404
412
  {},
405
413
  {},
406
- undefined
414
+ undefined,
407
415
  )) as SQLResult<undefined>;
408
- const ftables = result.filter((r) => fields.some((f) => f.tableID === r.oid));
416
+ const ftables = result.filter((r) =>
417
+ fields.some((f) => f.tableID === r.oid),
418
+ );
409
419
  ftables.forEach((ft) => {
410
420
  const fFields = fields.filter((f) => f.tableID === ft.oid);
411
421
  const pkeys = ft.columns.filter((c) => c.is_pkey);
412
- const fFieldPK = fFields.filter((ff) => pkeys.some((p) => p.name === ff.columnName));
422
+ const fFieldPK = fFields.filter((ff) =>
423
+ pkeys.some((p) => p.name === ff.columnName),
424
+ );
413
425
  const refCols =
414
- pkeys.length && fFieldPK.length === pkeys.length ?
415
- fFieldPK
416
- : fFields.filter((ff) => !["json", "jsonb", "xml"].includes(ff.udt_name));
426
+ pkeys.length && fFieldPK.length === pkeys.length
427
+ ? fFieldPK
428
+ : fFields.filter(
429
+ (ff) => !["json", "jsonb", "xml"].includes(ff.udt_name),
430
+ );
417
431
  const _fcols: typeof viewFCols = refCols.map((ff) => {
418
432
  const d: Pick<TableSchemaColumn, "name" | "references"> = {
419
433
  name: ff.columnName!,
@@ -438,13 +452,11 @@ export async function getTablesForSchemaPostgresSQL(
438
452
  if (col.has_default) {
439
453
  /** Hide pkey default value */
440
454
  col.column_default =
441
- (
442
- col.udt_name !== "uuid" &&
443
- !col.is_pkey &&
444
- !col.column_default.startsWith("nextval(")
445
- ) ?
446
- col.column_default
447
- : null;
455
+ col.udt_name !== "uuid" &&
456
+ !col.is_pkey &&
457
+ !col.column_default.startsWith("nextval(")
458
+ ? col.column_default
459
+ : null;
448
460
  }
449
461
 
450
462
  const viewFCol = viewFCols?.find((fc) => fc.name === col.name);
@@ -454,14 +466,19 @@ export async function getTablesForSchemaPostgresSQL(
454
466
 
455
467
  return col;
456
468
  });
457
- table.isHyperTable = getHyperTablesReq.hyperTables?.includes(table.name);
469
+ table.isHyperTable = getHyperTablesReq.hyperTables?.includes(
470
+ table.name,
471
+ );
458
472
 
459
473
  table.uniqueColumnGroups = uniqueColsReq.data
460
- ?.filter((r) => r.table_name === table.name && r.table_schema === table.schema)
474
+ ?.filter(
475
+ (r) =>
476
+ r.table_name === table.name && r.table_schema === table.schema,
477
+ )
461
478
  .map((r) => r.column_names);
462
479
 
463
480
  return table;
464
- })
481
+ }),
465
482
  );
466
483
 
467
484
  const res = {
@@ -493,11 +510,11 @@ const getHyperTables = async (db: DBorTx): Promise<string[] | undefined> => {
493
510
  AND table_schema = ${schema} \
494
511
  AND table_name = 'hypertable' \
495
512
  );",
496
- { schema }
513
+ { schema },
497
514
  );
498
515
  if (res.exists) {
499
516
  const tables: { table_name: string }[] = await db.any(
500
- "SELECT table_name FROM " + asName(schema) + ".hypertable;"
517
+ "SELECT table_name FROM " + asName(schema) + ".hypertable;",
501
518
  );
502
519
  return tables.map((t) => t.table_name);
503
520
  }