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,11 @@
1
-
2
1
  import { tryCatch } from "prostgles-types";
3
2
  import { pgp } from "../DboBuilder/DboBuilderTypes";
4
- import { asValue, NOTIF_CHANNEL, NOTIF_TYPE, PubSubManager } from "./PubSubManager";
3
+ import {
4
+ asValue,
5
+ NOTIF_CHANNEL,
6
+ NOTIF_TYPE,
7
+ PubSubManager,
8
+ } from "./PubSubManager";
5
9
  const { version } = require("../../package.json");
6
10
  import { getAppCheckQuery } from "./orphanTriggerCheck";
7
11
  import { DboBuilder } from "../DboBuilder/DboBuilder";
@@ -11,7 +15,7 @@ export const DB_OBJ_NAMES = {
11
15
  data_watch_func: "prostgles.prostgles_trigger_function",
12
16
  schema_watch_func: "prostgles.schema_watch_func",
13
17
  schema_watch_trigger: "prostgles_schema_watch_trigger_new",
14
- schema_watch_trigger_drop: "prostgles_schema_watch_trigger_new_drop"
18
+ schema_watch_trigger_drop: "prostgles_schema_watch_trigger_new_drop",
15
19
  } as const;
16
20
 
17
21
  const PROSTGLES_SCHEMA_EXISTS_QUERY = `
@@ -30,11 +34,10 @@ const PROSTGLES_SCHEMA_VERSION_OK_QUERY = `
30
34
  `;
31
35
 
32
36
  const getInitQuery = (debugMode: boolean | undefined, pgVersion: number) => {
33
-
34
37
  const canReplaceTriggers = pgVersion >= 140006;
35
- const createTriggerQuery = canReplaceTriggers ?
36
- `CREATE OR REPLACE TRIGGER %1$I`:
37
- `
38
+ const createTriggerQuery = canReplaceTriggers
39
+ ? `CREATE OR REPLACE TRIGGER %1$I`
40
+ : `
38
41
  DROP TRIGGER IF EXISTS %1$I ON %2$s;
39
42
  CREATE TRIGGER %1$I
40
43
  `;
@@ -334,7 +337,7 @@ BEGIN
334
337
  THEN concat_ws('; ', 'error', err_text, err_detail, err_hint, 'query: ' || query )
335
338
  ELSE COALESCE(v_trigger.cids, '')
336
339
  END
337
- ${debugMode? (", COALESCE(current_query(), 'current_query ??'), ' ', query") : ""}
340
+ ${debugMode ? ", COALESCE(current_query(), 'current_query ??'), ' ', query" : ""}
338
341
  ), 7999/4) -- Some chars are 2bytes -> 'Ω'
339
342
  );
340
343
  END LOOP;
@@ -504,7 +507,7 @@ BEGIN
504
507
  $q$
505
508
  DO $e$
506
509
  BEGIN
507
- /* ${ PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
510
+ /* ${PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
508
511
  %s
509
512
 
510
513
  END $e$;
@@ -532,7 +535,7 @@ BEGIN
532
535
  json_build_object(
533
536
  'TG_OP', TG_OP,
534
537
  'duration', (EXTRACT(EPOCH FROM now()) * 1000) - start_time,
535
- 'query', ${debugMode? 'LEFT(current_query(), 400)' : "'Only shown in debug mode'"}
538
+ 'query', ${debugMode ? "LEFT(current_query(), 400)" : "'Only shown in debug mode'"}
536
539
  )
537
540
  )::TEXT, 7999/4)
538
541
  );
@@ -609,7 +612,7 @@ BEGIN
609
612
  ${asValue(NOTIF_TYPE.schema)},
610
613
  tg_tag ,
611
614
  TG_event,
612
- ${debugMode? 'curr_query' : "'Only shown in debug mode'"}
615
+ ${debugMode ? "curr_query" : "'Only shown in debug mode'"}
613
616
  ), 7999/4)
614
617
  );
615
618
  END LOOP;
@@ -629,34 +632,49 @@ $do$;
629
632
 
630
633
  COMMIT;
631
634
  `;
632
-
633
- }
635
+ };
634
636
 
635
637
  /**
636
638
  * Initialize the prostgles schema and functions needed for realtime data and schema changes
637
639
  * undefined returned if the database contains the apropriate prostgles schema
638
640
  */
639
- export const getPubSubManagerInitQuery = async function(this: DboBuilder): Promise<string | undefined> {
640
-
641
- const versionNum = await this.db.one("SELECT current_setting('server_version_num')::int as val");
642
- const initQuery = getInitQuery(this.prostgles.opts.DEBUG_MODE, versionNum.val);
643
- const { schema_md5 = "none" } = await this.db.oneOrNone("SELECT md5($1) as schema_md5", [initQuery.trim()]);
641
+ export const getPubSubManagerInitQuery = async function (
642
+ this: DboBuilder,
643
+ ): Promise<string | undefined> {
644
+ const versionNum = await this.db.one(
645
+ "SELECT current_setting('server_version_num')::int as val",
646
+ );
647
+ const initQuery = getInitQuery(
648
+ this.prostgles.opts.DEBUG_MODE,
649
+ versionNum.val,
650
+ );
651
+ const { schema_md5 = "none" } = await this.db.oneOrNone(
652
+ "SELECT md5($1) as schema_md5",
653
+ [initQuery.trim()],
654
+ );
644
655
  const query = pgp.as.format(initQuery, { schema_md5, version });
645
656
  const existingSchema = await this.db.any(PROSTGLES_SCHEMA_EXISTS_QUERY);
646
- if(!existingSchema.length){
647
- console.log("getPubSubManagerInitQuery: No prostgles.versions table found. Creating...");
657
+ if (!existingSchema.length) {
658
+ console.log(
659
+ "getPubSubManagerInitQuery: No prostgles.versions table found. Creating...",
660
+ );
648
661
  return query;
649
662
  }
650
663
  const { existingSchemaVersions } = await tryCatch(async () => {
651
- const existingSchemaVersions = await this.db.any(PROSTGLES_SCHEMA_VERSION_OK_QUERY, { schema_md5, version });
664
+ const existingSchemaVersions = await this.db.any(
665
+ PROSTGLES_SCHEMA_VERSION_OK_QUERY,
666
+ { schema_md5, version },
667
+ );
652
668
  return {
653
- existingSchemaVersions
654
- }
669
+ existingSchemaVersions,
670
+ };
655
671
  });
656
- if(!existingSchemaVersions?.length){
657
- console.log("getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...");
672
+ if (!existingSchemaVersions?.length) {
673
+ console.log(
674
+ "getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...",
675
+ );
658
676
  return query;
659
677
  }
660
-
678
+
661
679
  return undefined;
662
- }
680
+ };
@@ -3,11 +3,14 @@ import { PostgresNotifListenManager } from "../PostgresNotifListenManager";
3
3
  import { getWatchSchemaTagList } from "../SchemaWatch/getWatchSchemaTagList";
4
4
  import { NOTIF_CHANNEL, PubSubManager, asValue } from "./PubSubManager";
5
5
  import { getPubSubManagerInitQuery } from "./getPubSubManagerInitQuery";
6
- export const REALTIME_TRIGGER_CHECK_QUERY = "prostgles-server internal query used to manage realtime triggers" as const;
6
+ export const REALTIME_TRIGGER_CHECK_QUERY =
7
+ "prostgles-server internal query used to manage realtime triggers" as const;
7
8
 
8
- export const tout = (ms: number) => new Promise(res => setTimeout(res, ms));
9
+ export const tout = (ms: number) => new Promise((res) => setTimeout(res, ms));
9
10
 
10
- export async function initPubSubManager(this: PubSubManager): Promise<PubSubManager | undefined> {
11
+ export async function initPubSubManager(
12
+ this: PubSubManager,
13
+ ): Promise<PubSubManager | undefined> {
11
14
  if (!this.getIsDestroyed()) return undefined;
12
15
 
13
16
  const initQuery = await getPubSubManagerInitQuery.bind(this.dboBuilder)();
@@ -15,7 +18,7 @@ export async function initPubSubManager(this: PubSubManager): Promise<PubSubMana
15
18
  /**
16
19
  * High database activity might cause deadlocks.
17
20
  * Must retry
18
- */
21
+ */
19
22
  let didDeadlock = false;
20
23
  let tries = 3;
21
24
  let error: any;
@@ -25,20 +28,20 @@ export async function initPubSubManager(this: PubSubManager): Promise<PubSubMana
25
28
  await tout(Math.random());
26
29
 
27
30
  // await this.dboBuilder.runClientTransactionStatement(initQuery);// this.db.tx(t => t.any(initQuery));
28
- await this.db.tx(t => t.any(initQuery));
31
+ await this.db.tx((t) => t.any(initQuery));
29
32
  error = undefined;
30
33
  tries = 0;
31
34
  } catch (e: any) {
32
- if(!didDeadlock && isObject(e) && e.code === "40P01"){
35
+ if (!didDeadlock && isObject(e) && e.code === "40P01") {
33
36
  didDeadlock = true;
34
37
  tries = 5;
35
38
  console.error("Deadlock detected. Retrying...");
36
39
  }
37
40
  error = e;
38
- tries --;
41
+ tries--;
39
42
  }
40
43
  }
41
- if(error){
44
+ if (error) {
42
45
  throw error;
43
46
  }
44
47
 
@@ -48,19 +51,21 @@ export async function initPubSubManager(this: PubSubManager): Promise<PubSubMana
48
51
  if (!this.appInfoWasInserted) {
49
52
  this.appInfoWasInserted = true;
50
53
  const check_frequency_ms = this.appCheckFrequencyMS;
51
- const watching_schema_tag_names = this.dboBuilder.prostgles.schemaWatch?.type.watchType !== "NONE" ? getWatchSchemaTagList(this.dboBuilder.prostgles.opts.watchSchema) : null;
54
+ const watching_schema_tag_names =
55
+ this.dboBuilder.prostgles.schemaWatch?.type.watchType !== "NONE"
56
+ ? getWatchSchemaTagList(this.dboBuilder.prostgles.opts.watchSchema)
57
+ : null;
52
58
  await this.db.one(
53
59
  "INSERT INTO prostgles.apps (id, check_frequency_ms, watching_schema_tag_names, application_name) \
54
60
  VALUES($1, $2, $3, current_setting('application_name')) \
55
- RETURNING *; "
56
- , [
57
- this.appId,
58
- check_frequency_ms,
59
- watching_schema_tag_names
60
- ]
61
+ RETURNING *; ",
62
+ [this.appId, check_frequency_ms, watching_schema_tag_names],
61
63
  );
62
64
 
63
- const appRecord = await this.db.one("SELECT * FROM prostgles.apps WHERE id = $1", [this.appId]);
65
+ const appRecord = await this.db.one(
66
+ "SELECT * FROM prostgles.apps WHERE id = $1",
67
+ [this.appId],
68
+ );
64
69
  if (!appRecord || !appRecord.application_name?.includes(this.appId)) {
65
70
  throw `initPubSubManager error: App record with application_name containing appId (${this.appId}) not found`;
66
71
  }
@@ -71,9 +76,13 @@ export async function initPubSubManager(this: PubSubManager): Promise<PubSubMana
71
76
  `);
72
77
  }
73
78
 
74
- this.postgresNotifListenManager = new PostgresNotifListenManager(this.db, this.notifListener, NOTIF_CHANNEL.getFull(this.appId));
79
+ this.postgresNotifListenManager = new PostgresNotifListenManager(
80
+ this.db,
81
+ this.notifListener,
82
+ NOTIF_CHANNEL.getFull(this.appId),
83
+ );
75
84
 
76
85
  await this.initialiseEventTriggers();
77
86
 
78
87
  return this;
79
- }
88
+ }
@@ -1,11 +1,14 @@
1
1
  import { log, NOTIF_TYPE, pickKeys, PubSubManager } from "./PubSubManager";
2
2
 
3
3
  /* Relay relevant data to relevant subscriptions */
4
- export async function notifListener(this: PubSubManager, data: { payload: string }) {
4
+ export async function notifListener(
5
+ this: PubSubManager,
6
+ data: { payload: string },
7
+ ) {
5
8
  const str = data.payload;
6
9
 
7
10
  if (!str) {
8
- console.error("Unexpected Empty notif")
11
+ console.error("Unexpected Empty notif");
9
12
  return;
10
13
  }
11
14
 
@@ -15,19 +18,25 @@ export async function notifListener(this: PubSubManager, data: { payload: string
15
18
  log(str);
16
19
 
17
20
  if (notifType === NOTIF_TYPE.schema) {
18
-
19
21
  if (this.dboBuilder.prostgles.schemaWatch?.onSchemaChange) {
20
22
  const [_, command, _event_type, query] = dataArr;
21
- await this.dboBuilder.prostgles.opts.onLog?.({ type: "debug", command: "schemaChangeNotif", duration: 0, data: { command, query } });
23
+ await this.dboBuilder.prostgles.opts.onLog?.({
24
+ type: "debug",
25
+ command: "schemaChangeNotif",
26
+ duration: 0,
27
+ data: { command, query },
28
+ });
22
29
 
23
30
  if (query && command) {
24
- this.dboBuilder.prostgles.schemaWatch.onSchemaChange({ command, query })
31
+ this.dboBuilder.prostgles.schemaWatch.onSchemaChange({
32
+ command,
33
+ query,
34
+ });
25
35
  }
26
36
  }
27
37
 
28
38
  return;
29
- } else if(notifType === NOTIF_TYPE.data_trigger_change) {
30
-
39
+ } else if (notifType === NOTIF_TYPE.data_trigger_change) {
31
40
  await this.refreshTriggers();
32
41
  return;
33
42
  }
@@ -38,60 +47,61 @@ export async function notifListener(this: PubSubManager, data: { payload: string
38
47
  }
39
48
 
40
49
  if (dataArr.length < 3) {
41
- throw "notifListener: dataArr length < 3"
50
+ throw "notifListener: dataArr length < 3";
42
51
  }
43
-
52
+
44
53
  const [_, table_name, op_name, condition_ids_str] = dataArr;
45
- const condition_ids = condition_ids_str?.split(",").map(v => +v);
46
-
47
-
48
- if(!table_name) {
54
+ const condition_ids = condition_ids_str?.split(",").map((v) => +v);
55
+
56
+ if (!table_name) {
49
57
  throw "table_name undef";
50
58
  }
51
59
 
52
- const tableTriggerConditions = this._triggers?.[table_name]?.map((condition, idx) => ({
53
- idx,
54
- condition,
55
- subs: this.getTriggerSubs(table_name, condition),
56
- syncs: this.getSyncs(table_name, condition),
57
- }));
60
+ const tableTriggerConditions = this._triggers?.[table_name]?.map(
61
+ (condition, idx) => ({
62
+ idx,
63
+ condition,
64
+ subs: this.getTriggerSubs(table_name, condition),
65
+ syncs: this.getSyncs(table_name, condition),
66
+ }),
67
+ );
58
68
  let state: "error" | "no-triggers" | "ok" | "invalid_condition_ids" = "ok";
59
-
69
+
60
70
  // const triggers = await this.db.any("SELECT * FROM prostgles.triggers WHERE table_name = $1 AND id IN ($2:csv)", [table_name, condition_ids_str.split(",").map(v => +v)]);
61
71
  // const conditions: string[] = triggers.map(t => t.condition);
62
-
63
72
 
64
- if(!tableTriggerConditions?.length){
73
+ if (!tableTriggerConditions?.length) {
65
74
  state = "no-triggers";
66
75
 
67
76
  /* Trigger error */
68
- } else if (
69
- condition_ids_str?.startsWith("error")
70
- ) {
77
+ } else if (condition_ids_str?.startsWith("error")) {
71
78
  state = "error";
72
79
  const pref = "INTERNAL ERROR";
73
- console.error(`${pref}: condition_ids_str: ${condition_ids_str}`)
80
+ console.error(`${pref}: condition_ids_str: ${condition_ids_str}`);
74
81
  tableTriggerConditions.map(({ condition }) => {
75
82
  const subs = this.getTriggerSubs(table_name, condition);
76
- subs.map(s => {
77
- this.pushSubData(s, pref + ". Check server logs. Schema might have changed");
78
- })
83
+ subs.map((s) => {
84
+ this.pushSubData(
85
+ s,
86
+ pref + ". Check server logs. Schema might have changed",
87
+ );
88
+ });
79
89
  });
80
90
 
81
91
  /* Trigger ok */
82
- } else if (
83
- condition_ids?.every(id => Number.isInteger(id))
84
- ) {
85
-
92
+ } else if (condition_ids?.every((id) => Number.isInteger(id))) {
86
93
  state = "ok";
87
- const firedTableConditions = tableTriggerConditions.filter(({ idx }) => condition_ids.includes(idx));
94
+ const firedTableConditions = tableTriggerConditions.filter(({ idx }) =>
95
+ condition_ids.includes(idx),
96
+ );
88
97
  const orphanedTableConditions = condition_ids.filter((condId) => {
89
98
  const tc = tableTriggerConditions.at(condId);
90
99
  return !tc || (tc.subs.length === 0 && tc.syncs.length === 0);
91
100
  });
92
- if(orphanedTableConditions.length){
101
+ if (orphanedTableConditions.length) {
93
102
  this.db
94
- .any(`
103
+ .any(
104
+ `
95
105
  /* Delete removed subscriptions */
96
106
  /* ${PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
97
107
  DELETE FROM prostgles.app_triggers at
@@ -105,52 +115,57 @@ export async function notifListener(this: PubSubManager, data: { payload: string
105
115
  AND at.table_name = t.table_name
106
116
  AND at.condition = t.condition
107
117
  )
108
- `,
109
- [table_name, orphanedTableConditions, this.appId]
118
+ `,
119
+ [table_name, orphanedTableConditions, this.appId],
110
120
  )
111
121
  .then(() => {
112
122
  this.refreshTriggers();
113
123
  })
114
- .catch(e => {
124
+ .catch((e) => {
115
125
  console.error("Error deleting orphaned triggers", e);
116
126
  });
117
127
  }
118
128
 
119
129
  firedTableConditions.map(({ subs, syncs }) => {
120
-
121
- log("notifListener", subs.map(s => s.channel_name), syncs.map(s => s.channel_name))
130
+ log(
131
+ "notifListener",
132
+ subs.map((s) => s.channel_name),
133
+ syncs.map((s) => s.channel_name),
134
+ );
122
135
 
123
136
  syncs.map((s) => {
124
137
  this.syncData(s, undefined, "trigger");
125
138
  });
126
139
 
127
140
  /* Throttle the subscriptions */
128
- const activeAndReadySubs = subs.filter(sub =>
129
- sub.triggers.some(trg =>
130
- this.dbo[trg.table_name] &&
131
- sub.is_ready &&
132
- (sub.socket_id && this.sockets[sub.socket_id] || sub.localFuncs)
133
- )
141
+ const activeAndReadySubs = subs.filter((sub) =>
142
+ sub.triggers.some(
143
+ (trg) =>
144
+ this.dbo[trg.table_name] &&
145
+ sub.is_ready &&
146
+ ((sub.socket_id && this.sockets[sub.socket_id]) || sub.localFuncs),
147
+ ),
134
148
  );
135
- activeAndReadySubs.forEach(sub => {
149
+ activeAndReadySubs.forEach((sub) => {
136
150
  const { throttle = 0, throttleOpts } = sub;
137
- if (!throttleOpts?.skipFirst && sub.last_throttled <= Date.now() - throttle) {
151
+ if (
152
+ !throttleOpts?.skipFirst &&
153
+ sub.last_throttled <= Date.now() - throttle
154
+ ) {
138
155
  sub.last_throttled = Date.now();
139
156
 
140
157
  /* It is assumed the policy was checked before this point */
141
158
  this.pushSubData(sub);
142
159
  } else if (!sub.is_throttling) {
143
-
144
- log("throttling sub")
160
+ log("throttling sub");
145
161
  sub.is_throttling = setTimeout(() => {
146
- log("throttling finished. pushSubData...")
162
+ log("throttling finished. pushSubData...");
147
163
  sub.is_throttling = null;
148
164
  sub.last_throttled = Date.now();
149
165
  this.pushSubData(sub);
150
166
  }, throttle);
151
167
  }
152
168
  });
153
-
154
169
  });
155
170
 
156
171
  /* Trigger unknown issue */
@@ -158,16 +173,19 @@ export async function notifListener(this: PubSubManager, data: { payload: string
158
173
  state = "invalid_condition_ids";
159
174
  }
160
175
 
161
- await this._log({
176
+ await this._log({
162
177
  type: "sync",
163
178
  command: "notifListener",
164
179
  state,
165
- tableName: table_name,
166
- op_name,
180
+ tableName: table_name,
181
+ op_name,
167
182
  condition_ids_str,
168
183
  tableTriggers: this._triggers?.[table_name],
169
- tableSyncs: JSON.stringify(this.syncs.filter(s => s.table_name === table_name).map(s => pickKeys(s, ["condition", "socket_id"]))),
184
+ tableSyncs: JSON.stringify(
185
+ this.syncs
186
+ .filter((s) => s.table_name === table_name)
187
+ .map((s) => pickKeys(s, ["condition", "socket_id"])),
188
+ ),
170
189
  connectedSocketIds: this.connectedSocketIds,
171
190
  });
172
-
173
- }
191
+ }
@@ -1,13 +1,14 @@
1
- import { PubSubManager } from './PubSubManager';
1
+ import { PubSubManager } from "./PubSubManager";
2
2
  import { REALTIME_TRIGGER_CHECK_QUERY } from "./initPubSubManager";
3
3
 
4
4
  /**
5
- * Schema and Data watch triggers (DB_OBJ_NAMES.schema_watch_func, DB_OBJ_NAMES.data_watch_func)
5
+ * Schema and Data watch triggers (DB_OBJ_NAMES.schema_watch_func, DB_OBJ_NAMES.data_watch_func)
6
6
  * survive and continue to user resources even after the client disconnects.
7
7
  * We must therefore delete apps that do not have active connections
8
8
  */
9
9
 
10
- const queryIdentifier = "prostgles query used to keep track of which prgl backend clients are still connected";
10
+ const queryIdentifier =
11
+ "prostgles query used to keep track of which prgl backend clients are still connected";
11
12
  const connectedApplicationNamesQuery = `
12
13
  SELECT DISTINCT application_name
13
14
  FROM prostgles.apps
@@ -15,7 +16,7 @@ const connectedApplicationNamesQuery = `
15
16
  SELECT application_name
16
17
  FROM pg_catalog.pg_stat_activity
17
18
  )
18
- `;
19
+ `;
19
20
 
20
21
  export const DELETE_DISCONNECTED_APPS_QUERY = `
21
22
  DELETE FROM prostgles.apps a
@@ -1,11 +1,15 @@
1
1
  import { parseLocalFuncs } from "../DboBuilder/ViewHandler/subscribe";
2
2
  import { log, PubSubManager, Subscription } from "./PubSubManager";
3
3
 
4
- export async function pushSubData(this: PubSubManager, sub: Subscription, err?: any) {
4
+ export async function pushSubData(
5
+ this: PubSubManager,
6
+ sub: Subscription,
7
+ err?: any,
8
+ ) {
5
9
  if (!sub) throw "pushSubData: invalid sub";
6
10
 
7
11
  const { socket_id, channel_name } = sub;
8
- if(!this.subs.some(s => s.channel_name === channel_name)){
12
+ if (!this.subs.some((s) => s.channel_name === channel_name)) {
9
13
  // Might be throttling a sub that was removed
10
14
  return;
11
15
  }
@@ -20,13 +24,12 @@ export async function pushSubData(this: PubSubManager, sub: Subscription, err?:
20
24
 
21
25
  return new Promise(async (resolve, reject) => {
22
26
  /* TODO: Retire subOne -> it's redundant */
23
-
24
- const { data, err } = await this.getSubData(sub);
25
27
 
26
- if(data){
28
+ const { data, err } = await this.getSubData(sub);
27
29
 
30
+ if (data) {
28
31
  if (socket_id && this.sockets[socket_id]) {
29
- log("Pushed " + data.length + " records to sub")
32
+ log("Pushed " + data.length + " records to sub");
30
33
  this.sockets[socket_id].emit(channel_name, { data }, () => {
31
34
  resolve(data);
32
35
  });
@@ -38,13 +41,12 @@ export async function pushSubData(this: PubSubManager, sub: Subscription, err?:
38
41
  resolve(data);
39
42
  }
40
43
  // sub.last_throttled = Date.now();
41
-
42
44
  } else {
43
45
  const errObj = { _err_msg: err.toString(), err };
44
46
  if (socket_id && this.sockets[socket_id]) {
45
47
  this.sockets[socket_id].emit(channel_name, { err: errObj });
46
48
  } else if (localFuncs) {
47
- if(!localFuncs.onError){
49
+ if (!localFuncs.onError) {
48
50
  console.error("Uncaught subscription error", err);
49
51
  }
50
52
  localFuncs.onError?.(errObj);
@@ -52,4 +54,4 @@ export async function pushSubData(this: PubSubManager, sub: Subscription, err?:
52
54
  reject(errObj);
53
55
  }
54
56
  });
55
- }
57
+ }