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,4 +1,10 @@
1
- import { AnyObject, FieldFilter, getKeys, isDefined, isObject } from "prostgles-types/dist";
1
+ import {
2
+ AnyObject,
3
+ FieldFilter,
4
+ getKeys,
5
+ isDefined,
6
+ isObject,
7
+ } from "prostgles-types/dist";
2
8
  import { ViewHandler } from "./ViewHandler";
3
9
  import { ExistsFilterConfig, Filter, LocalParams } from "../DboBuilder";
4
10
  import { SelectItem } from "../QueryBuilder/QueryBuilder";
@@ -11,14 +17,31 @@ export type PrepareWhereParams = {
11
17
  forcedFilter?: AnyObject;
12
18
  filterFields?: FieldFilter;
13
19
  addWhere?: boolean;
14
- tableAlias?: string,
15
- localParams: LocalParams | undefined,
16
- tableRule: TableRule | undefined,
20
+ tableAlias?: string;
21
+ localParams: LocalParams | undefined;
22
+ tableRule: TableRule | undefined;
17
23
  isHaving?: boolean;
18
24
  };
19
25
 
20
- export async function prepareWhere(this: ViewHandler, params: PrepareWhereParams): Promise<{ condition: string; where: string; filter: AnyObject; exists: ExistsFilterConfig[]; }> {
21
- const { filter, select, forcedFilter, filterFields: ff, addWhere: addKeywords = true, tableAlias, localParams, tableRule } = params;
26
+ export async function prepareWhere(
27
+ this: ViewHandler,
28
+ params: PrepareWhereParams,
29
+ ): Promise<{
30
+ condition: string;
31
+ where: string;
32
+ filter: AnyObject;
33
+ exists: ExistsFilterConfig[];
34
+ }> {
35
+ const {
36
+ filter,
37
+ select,
38
+ forcedFilter,
39
+ filterFields: ff,
40
+ addWhere: addKeywords = true,
41
+ tableAlias,
42
+ localParams,
43
+ tableRule,
44
+ } = params;
22
45
  const { $and: $and_key, $or: $or_key } = this.dboBuilder.prostgles.keywords;
23
46
 
24
47
  let filterFields = ff;
@@ -27,17 +50,26 @@ export async function prepareWhere(this: ViewHandler, params: PrepareWhereParams
27
50
 
28
51
  const exists: ExistsFilterConfig[] = [];
29
52
 
30
- const parseFullFilter = async (f: any, parentFilter: any = null, isForcedFilterBypass: boolean): Promise<string> => {
53
+ const parseFullFilter = async (
54
+ f: any,
55
+ parentFilter: any = null,
56
+ isForcedFilterBypass: boolean,
57
+ ): Promise<string> => {
31
58
  if (!f) throw "Invalid/missing group filter provided";
32
- if (!isObject(f)) throw "\nInvalid filter\nExpecting an object but got -> " + JSON.stringify(f);
59
+ if (!isObject(f))
60
+ throw (
61
+ "\nInvalid filter\nExpecting an object but got -> " + JSON.stringify(f)
62
+ );
33
63
  let result = "";
34
64
  const keys = getKeys(f);
35
65
  if (!keys.length) {
36
66
  return result;
37
67
  }
38
- if ((keys.includes($and_key) || keys.includes($or_key))) {
39
- if (keys.length > 1) throw `\ngroup filter must contain only one array property. e.g.: { ${$and_key}: [...] } OR { ${$or_key}: [...] } `;
40
- if (parentFilter && Object.keys(parentFilter).includes("")) throw "group filter ($and/$or) can only be placed at the root or within another group filter";
68
+ if (keys.includes($and_key) || keys.includes($or_key)) {
69
+ if (keys.length > 1)
70
+ throw `\ngroup filter must contain only one array property. e.g.: { ${$and_key}: [...] } OR { ${$or_key}: [...] } `;
71
+ if (parentFilter && Object.keys(parentFilter).includes(""))
72
+ throw "group filter ($and/$or) can only be placed at the root or within another group filter";
41
73
  }
42
74
 
43
75
  const { [$and_key]: $and, [$or_key]: $or } = f,
@@ -45,21 +77,27 @@ export async function prepareWhere(this: ViewHandler, params: PrepareWhereParams
45
77
 
46
78
  if (group && group.length) {
47
79
  const operand = $and ? " AND " : " OR ";
48
- const conditions = (await Promise.all(
49
- group.map(async gf => await parseFullFilter(gf, group, isForcedFilterBypass))
50
- )).filter(c => c);
51
-
80
+ const conditions = (
81
+ await Promise.all(
82
+ group.map(
83
+ async (gf) =>
84
+ await parseFullFilter(gf, group, isForcedFilterBypass),
85
+ ),
86
+ )
87
+ ).filter((c) => c);
88
+
52
89
  if (conditions?.length) {
53
90
  if (conditions.length === 1) return conditions.join(operand);
54
91
  else return ` ( ${conditions.sort().join(operand)} ) `;
55
92
  }
56
93
  } else if (!group) {
57
-
58
94
  /** forcedFilters do not get checked against publish and are treated as server-side requests */
59
95
  const cond = await getCondition.bind(this)({
60
96
  filter: { ...f },
61
97
  select,
62
- allowed_colnames: isForcedFilterBypass ? this.column_names.slice(0) : this.parseFieldFilter(filterFields),
98
+ allowed_colnames: isForcedFilterBypass
99
+ ? this.column_names.slice(0)
100
+ : this.parseFieldFilter(filterFields),
63
101
  tableAlias,
64
102
  localParams: isForcedFilterBypass ? undefined : localParams,
65
103
  tableRules: isForcedFilterBypass ? undefined : tableRule,
@@ -69,22 +107,24 @@ export async function prepareWhere(this: ViewHandler, params: PrepareWhereParams
69
107
  exists.push(...cond.exists);
70
108
  }
71
109
  return result;
72
- }
110
+ };
73
111
 
74
112
  /* A forced filter condition will not check if the existsJoined filter tables have been published */
75
- const forcedFilterCond = forcedFilter ? await parseFullFilter(forcedFilter, null, true) : undefined;
113
+ const forcedFilterCond = forcedFilter
114
+ ? await parseFullFilter(forcedFilter, null, true)
115
+ : undefined;
76
116
  const filterCond = await parseFullFilter(filter, null, false);
77
- let cond = [
78
- forcedFilterCond, filterCond
79
- ].filter(c => c).join(" AND ");
117
+ let cond = [forcedFilterCond, filterCond].filter((c) => c).join(" AND ");
80
118
 
81
- const finalFilter = forcedFilter ? {
82
- [$and_key]: [forcedFilter, filter].filter(isDefined)
83
- } : { ...filter };
119
+ const finalFilter = forcedFilter
120
+ ? {
121
+ [$and_key]: [forcedFilter, filter].filter(isDefined),
122
+ }
123
+ : { ...filter };
84
124
 
85
125
  const condition = cond;
86
126
  if (cond && addKeywords) {
87
127
  cond = `WHERE ${cond}`;
88
128
  }
89
129
  return { condition, where: cond || "", filter: finalFilter, exists };
90
- }
130
+ }
@@ -1,37 +1,71 @@
1
1
  import { SelectParams } from "prostgles-types";
2
2
  import { TableRule } from "../../PublishParser/publishTypesAndUtils";
3
3
  import { Filter, LocalParams } from "../DboBuilderTypes";
4
- import { getErrorAsObject, getSerializedClientErrorFromPGError, withUserRLS } from "../dboBuilderUtils";
4
+ import {
5
+ getErrorAsObject,
6
+ getSerializedClientErrorFromPGError,
7
+ withUserRLS,
8
+ } from "../dboBuilderUtils";
5
9
  import { ViewHandler } from "./ViewHandler";
6
- export async function size(this: ViewHandler, _filter?: Filter, selectParams?: SelectParams, param3_unused?: undefined, table_rules?: TableRule, localParams?: LocalParams): Promise<string> {
10
+ export async function size(
11
+ this: ViewHandler,
12
+ _filter?: Filter,
13
+ selectParams?: SelectParams,
14
+ param3_unused?: undefined,
15
+ table_rules?: TableRule,
16
+ localParams?: LocalParams,
17
+ ): Promise<string> {
7
18
  const filter = _filter || {};
8
19
  const start = Date.now();
9
20
  try {
10
- const result = await this.find(filter, { ...selectParams, limit: 2 }, undefined, table_rules, localParams)
11
- .then(async _allowed => {
12
-
13
- const q: string = await this.find(
14
- filter, { ...selectParams, limit: selectParams?.limit ?? Number.MAX_SAFE_INTEGER },
15
- undefined,
16
- table_rules,
17
- { ...localParams, returnQuery: "noRLS", bypassLimit: true }
18
- ) as any;
19
- const query = withUserRLS(
20
- localParams,
21
- `${withUserRLS(localParams, "")}
21
+ const result = await this.find(
22
+ filter,
23
+ { ...selectParams, limit: 2 },
24
+ undefined,
25
+ table_rules,
26
+ localParams,
27
+ ).then(async (_allowed) => {
28
+ const q: string = (await this.find(
29
+ filter,
30
+ {
31
+ ...selectParams,
32
+ limit: selectParams?.limit ?? Number.MAX_SAFE_INTEGER,
33
+ },
34
+ undefined,
35
+ table_rules,
36
+ { ...localParams, returnQuery: "noRLS", bypassLimit: true },
37
+ )) as any;
38
+ const query = withUserRLS(
39
+ localParams,
40
+ `${withUserRLS(localParams, "")}
22
41
  SELECT sum(pg_column_size((prgl_size_query.*))) as size
23
42
  FROM (
24
43
  ${q}
25
44
  ) prgl_size_query
26
- `
27
- );
45
+ `,
46
+ );
28
47
 
29
- return (this.tx?.t || this.db).one(query).then(({ size }) => size || '0');
30
- });
31
- await this._log({ command: "size", localParams, data: { filter, selectParams }, duration: Date.now() - start });
48
+ return (this.tx?.t || this.db).one(query).then(({ size }) => size || "0");
49
+ });
50
+ await this._log({
51
+ command: "size",
52
+ localParams,
53
+ data: { filter, selectParams },
54
+ duration: Date.now() - start,
55
+ });
32
56
  return result;
33
57
  } catch (e) {
34
- await this._log({ command: "size", localParams, data: { filter, selectParams }, duration: Date.now() - start, error: getErrorAsObject(e) });
35
- throw getSerializedClientErrorFromPGError(e, { type: "tableMethod", localParams, view: this });
58
+ await this._log({
59
+ command: "size",
60
+ localParams,
61
+ data: { filter, selectParams },
62
+ duration: Date.now() - start,
63
+ error: getErrorAsObject(e),
64
+ });
65
+ throw getSerializedClientErrorFromPGError(e, {
66
+ type: "tableMethod",
67
+ localParams,
68
+ view: this,
69
+ });
36
70
  }
37
- }
71
+ }
@@ -1,36 +1,80 @@
1
- import { AnyObject, SubscribeParams, SubscriptionChannels } from "prostgles-types";
1
+ import {
2
+ AnyObject,
3
+ SubscribeParams,
4
+ SubscriptionChannels,
5
+ } from "prostgles-types";
2
6
  import { TableRule } from "../../PublishParser/PublishParser";
3
- import { Filter, LocalParams, getClientErrorFromPGError, getErrorAsObject, getSerializedClientErrorFromPGError } from "../DboBuilder";
7
+ import {
8
+ Filter,
9
+ LocalParams,
10
+ getClientErrorFromPGError,
11
+ getErrorAsObject,
12
+ getSerializedClientErrorFromPGError,
13
+ } from "../DboBuilder";
4
14
  import { getSubscribeRelatedTables } from "../getSubscribeRelatedTables";
5
15
  import { NewQuery } from "../QueryBuilder/QueryBuilder";
6
16
  import { ViewHandler } from "./ViewHandler";
7
17
 
8
- type OnData = (items: AnyObject[]) => any;
9
- export type LocalFuncs = {
10
- onData: OnData
11
- onError?: (error: any) => void;
12
- } | OnData;
18
+ type OnData = (items: AnyObject[]) => any;
19
+ export type LocalFuncs =
20
+ | {
21
+ onData: OnData;
22
+ onError?: (error: any) => void;
23
+ }
24
+ | OnData;
13
25
 
14
- export const getOnDataFunc = (localFuncs: LocalFuncs | undefined): OnData | undefined => {
15
- return typeof localFuncs === "function"? localFuncs : localFuncs?.onData;
16
- }
17
- export const matchesLocalFuncs = (localFuncs1: LocalFuncs | undefined, localFuncs2: LocalFuncs | undefined) => {
18
- return localFuncs1 && localFuncs2 && getOnDataFunc(localFuncs1) === getOnDataFunc(localFuncs2);
19
- }
20
- export const parseLocalFuncs = (localFuncs1: LocalFuncs | undefined): Extract<LocalFuncs, { onData: OnData }> | undefined=> {
21
- return !localFuncs1? undefined : typeof localFuncs1 === "function"? {
22
- onData: localFuncs1
23
- } : localFuncs1;
24
- }
26
+ export const getOnDataFunc = (
27
+ localFuncs: LocalFuncs | undefined,
28
+ ): OnData | undefined => {
29
+ return typeof localFuncs === "function" ? localFuncs : localFuncs?.onData;
30
+ };
31
+ export const matchesLocalFuncs = (
32
+ localFuncs1: LocalFuncs | undefined,
33
+ localFuncs2: LocalFuncs | undefined,
34
+ ) => {
35
+ return (
36
+ localFuncs1 &&
37
+ localFuncs2 &&
38
+ getOnDataFunc(localFuncs1) === getOnDataFunc(localFuncs2)
39
+ );
40
+ };
41
+ export const parseLocalFuncs = (
42
+ localFuncs1: LocalFuncs | undefined,
43
+ ): Extract<LocalFuncs, { onData: OnData }> | undefined => {
44
+ return !localFuncs1
45
+ ? undefined
46
+ : typeof localFuncs1 === "function"
47
+ ? {
48
+ onData: localFuncs1,
49
+ }
50
+ : localFuncs1;
51
+ };
25
52
 
26
- async function subscribe(this: ViewHandler, filter: Filter, params: SubscribeParams, localFuncs: LocalFuncs): Promise<{ unsubscribe: () => any }>
27
- async function subscribe(this: ViewHandler, filter: Filter, params: SubscribeParams, localFuncs: undefined, table_rules: TableRule | undefined, localParams: LocalParams): Promise<SubscriptionChannels>
28
- async function subscribe(this: ViewHandler, filter: Filter, params: SubscribeParams, localFuncs?: LocalFuncs, table_rules?: TableRule, localParams?: LocalParams): Promise<{ unsubscribe: () => any } | SubscriptionChannels>
29
- {
53
+ async function subscribe(
54
+ this: ViewHandler,
55
+ filter: Filter,
56
+ params: SubscribeParams,
57
+ localFuncs: LocalFuncs,
58
+ ): Promise<{ unsubscribe: () => any }>;
59
+ async function subscribe(
60
+ this: ViewHandler,
61
+ filter: Filter,
62
+ params: SubscribeParams,
63
+ localFuncs: undefined,
64
+ table_rules: TableRule | undefined,
65
+ localParams: LocalParams,
66
+ ): Promise<SubscriptionChannels>;
67
+ async function subscribe(
68
+ this: ViewHandler,
69
+ filter: Filter,
70
+ params: SubscribeParams,
71
+ localFuncs?: LocalFuncs,
72
+ table_rules?: TableRule,
73
+ localParams?: LocalParams,
74
+ ): Promise<{ unsubscribe: () => any } | SubscriptionChannels> {
30
75
  const start = Date.now();
31
76
  try {
32
-
33
- if(!this.dboBuilder.canSubscribe){
77
+ if (!this.dboBuilder.canSubscribe) {
34
78
  throw "Cannot subscribe. PubSubManager not initiated";
35
79
  }
36
80
 
@@ -41,25 +85,39 @@ async function subscribe(this: ViewHandler, filter: Filter, params: SubscribePar
41
85
  throw " missing data. provide -> localFunc | localParams { socket } ";
42
86
  }
43
87
  if (localParams?.socket && localFuncs) {
44
- console.error({ localParams, localFuncs })
88
+ console.error({ localParams, localFuncs });
45
89
  throw " Cannot have localFunc AND socket ";
46
90
  }
47
91
 
48
92
  const { throttle = 0, throttleOpts, ...selectParams } = params;
49
93
 
50
94
  /** Ensure request is valid */
51
- await this.find(filter, { ...selectParams, limit: 0 }, undefined, table_rules, localParams);
95
+ await this.find(
96
+ filter,
97
+ { ...selectParams, limit: 0 },
98
+ undefined,
99
+ table_rules,
100
+ localParams,
101
+ );
52
102
 
53
103
  // TODO: Implement comprehensive canSubscribe check
54
104
  // if (!this.dboBuilder.prostgles.isSuperUser) {
55
105
  // throw "Subscribe not possible. Must be superuser";
56
106
  // }
57
107
 
58
- const newQuery: NewQuery = await this.find(filter, { ...selectParams, limit: 0 }, undefined, table_rules, { ...localParams, returnNewQuery: true }) as any;
59
- const viewOptions = await getSubscribeRelatedTables.bind(this)({
60
- filter, selectParams,
61
- table_rules, localParams,
62
- newQuery
108
+ const newQuery: NewQuery = (await this.find(
109
+ filter,
110
+ { ...selectParams, limit: 0 },
111
+ undefined,
112
+ table_rules,
113
+ { ...localParams, returnNewQuery: true },
114
+ )) as any;
115
+ const viewOptions = await getSubscribeRelatedTables.bind(this)({
116
+ filter,
117
+ selectParams,
118
+ table_rules,
119
+ localParams,
120
+ newQuery,
63
121
  });
64
122
 
65
123
  const commonSubOpts = {
@@ -76,32 +134,40 @@ async function subscribe(this: ViewHandler, filter: Filter, params: SubscribePar
76
134
  } as const;
77
135
 
78
136
  const pubSubManager = await this.dboBuilder.getPubSubManager();
79
- if (!localFuncs) {
80
-
137
+ if (!localFuncs) {
81
138
  const { socket } = localParams ?? {};
82
139
  const result = await pubSubManager.addSub({
83
140
  ...commonSubOpts,
84
- socket,
141
+ socket,
85
142
  localFuncs: undefined,
86
- socket_id: socket?.id,
143
+ socket_id: socket?.id,
87
144
  });
88
145
 
89
- await this._log({ command: "subscribe", localParams, data: { filter, params }, duration: Date.now() - start });
146
+ await this._log({
147
+ command: "subscribe",
148
+ localParams,
149
+ data: { filter, params },
150
+ duration: Date.now() - start,
151
+ });
90
152
  return result;
91
153
  } else {
92
-
93
- const { channelName, sendFirstData } = await pubSubManager.addSub({
154
+ const { channelName, sendFirstData } = await pubSubManager.addSub({
94
155
  ...commonSubOpts,
95
- socket: undefined,
96
- localFuncs,
97
- socket_id: undefined,
156
+ socket: undefined,
157
+ localFuncs,
158
+ socket_id: undefined,
98
159
  });
99
-
160
+
100
161
  const unsubscribe = async () => {
101
162
  const pubSubManager = await this.dboBuilder.getPubSubManager();
102
- pubSubManager.removeLocalSub(channelName, localFuncs)
163
+ pubSubManager.removeLocalSub(channelName, localFuncs);
103
164
  };
104
- await this._log({ command: "subscribe", localParams, data: { filter, params }, duration: Date.now() - start });
165
+ await this._log({
166
+ command: "subscribe",
167
+ localParams,
168
+ data: { filter, params },
169
+ duration: Date.now() - start,
170
+ });
105
171
  const res: { unsubscribe: () => any } = Object.freeze({ unsubscribe });
106
172
  /** Send first data after subscription is initialised to prevent race conditions */
107
173
  setTimeout(() => {
@@ -110,8 +176,18 @@ async function subscribe(this: ViewHandler, filter: Filter, params: SubscribePar
110
176
  return res;
111
177
  }
112
178
  } catch (e) {
113
- await this._log({ command: "subscribe", localParams, data: { filter, params }, duration: Date.now() - start, error: getErrorAsObject(e) });
114
- throw getSerializedClientErrorFromPGError(e, { type: "tableMethod", localParams, view: this });
179
+ await this._log({
180
+ command: "subscribe",
181
+ localParams,
182
+ data: { filter, params },
183
+ duration: Date.now() - start,
184
+ error: getErrorAsObject(e),
185
+ });
186
+ throw getSerializedClientErrorFromPGError(e, {
187
+ type: "tableMethod",
188
+ localParams,
189
+ view: this,
190
+ });
115
191
  }
116
192
  }
117
193
 
@@ -5,13 +5,13 @@ import { ViewHandler } from "./ViewHandler";
5
5
  export async function validateViewRules(
6
6
  this: ViewHandler,
7
7
  args: {
8
- fields?: FieldFilter,
9
- filterFields?: FieldFilter,
10
- returningFields?: FieldFilter,
11
- forcedFilter?: AnyObject,
12
- dynamicFields?: UpdateRule["dynamicFields"],
13
- rule: "update" | "select" | "insert" | "delete"
14
- }
8
+ fields?: FieldFilter;
9
+ filterFields?: FieldFilter;
10
+ returningFields?: FieldFilter;
11
+ forcedFilter?: AnyObject;
12
+ dynamicFields?: UpdateRule["dynamicFields"];
13
+ rule: "update" | "select" | "insert" | "delete";
14
+ },
15
15
  ) {
16
16
  const {
17
17
  fields,
@@ -27,31 +27,51 @@ export async function validateViewRules(
27
27
  try {
28
28
  const _fields = this.parseFieldFilter(fields);
29
29
  if (this.is_media && rule === "insert" && !_fields.includes("id")) {
30
- throw "Must allow id insert for media table"
30
+ throw "Must allow id insert for media table";
31
31
  }
32
32
  } catch (e) {
33
- throw ` issue with publish.${this.name}.${rule}.fields: \nVALUE: ` + JSON.stringify(fields, null, 2) + "\nERROR: " + JSON.stringify(e, null, 2);
33
+ throw (
34
+ ` issue with publish.${this.name}.${rule}.fields: \nVALUE: ` +
35
+ JSON.stringify(fields, null, 2) +
36
+ "\nERROR: " +
37
+ JSON.stringify(e, null, 2)
38
+ );
34
39
  }
35
40
  }
36
41
  if (filterFields) {
37
42
  try {
38
43
  this.parseFieldFilter(filterFields);
39
44
  } catch (e) {
40
- throw ` issue with publish.${this.name}.${rule}.filterFields: \nVALUE: ` + JSON.stringify(filterFields, null, 2) + "\nERROR: " + JSON.stringify(e, null, 2);
45
+ throw (
46
+ ` issue with publish.${this.name}.${rule}.filterFields: \nVALUE: ` +
47
+ JSON.stringify(filterFields, null, 2) +
48
+ "\nERROR: " +
49
+ JSON.stringify(e, null, 2)
50
+ );
41
51
  }
42
52
  }
43
53
  if (returningFields) {
44
54
  try {
45
55
  this.parseFieldFilter(returningFields);
46
56
  } catch (e) {
47
- throw ` issue with publish.${this.name}.${rule}.returningFields: \nVALUE: ` + JSON.stringify(returningFields, null, 2) + "\nERROR: " + JSON.stringify(e, null, 2);
57
+ throw (
58
+ ` issue with publish.${this.name}.${rule}.returningFields: \nVALUE: ` +
59
+ JSON.stringify(returningFields, null, 2) +
60
+ "\nERROR: " +
61
+ JSON.stringify(e, null, 2)
62
+ );
48
63
  }
49
64
  }
50
65
  if (forcedFilter) {
51
66
  try {
52
67
  await this.find(forcedFilter, { limit: 0 });
53
68
  } catch (e) {
54
- throw ` issue with publish.${this.name}.${rule}.forcedFilter: \nVALUE: ` + JSON.stringify(forcedFilter, null, 2) + "\nERROR: " + JSON.stringify(e, null, 2);
69
+ throw (
70
+ ` issue with publish.${this.name}.${rule}.forcedFilter: \nVALUE: ` +
71
+ JSON.stringify(forcedFilter, null, 2) +
72
+ "\nERROR: " +
73
+ JSON.stringify(e, null, 2)
74
+ );
55
75
  }
56
76
  }
57
77
  if (dynamicFields) {
@@ -61,10 +81,15 @@ export async function validateViewRules(
61
81
  this.parseFieldFilter(fields);
62
82
  await this.find(filter, { limit: 0 });
63
83
  } catch (e) {
64
- throw ` issue with publish.${this.name}.${rule}.dynamicFields: \nVALUE: ` + JSON.stringify(dfieldRule, null, 2) + "\nERROR: " + JSON.stringify(e, null, 2);
84
+ throw (
85
+ ` issue with publish.${this.name}.${rule}.dynamicFields: \nVALUE: ` +
86
+ JSON.stringify(dfieldRule, null, 2) +
87
+ "\nERROR: " +
88
+ JSON.stringify(e, null, 2)
89
+ );
65
90
  }
66
91
  }
67
92
  }
68
93
 
69
94
  return true;
70
- }
95
+ }