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,37 +1,62 @@
1
- import { AnyObject, asName, FieldFilter, InsertParams, UpdateParams } from "prostgles-types";
1
+ import {
2
+ AnyObject,
3
+ asName,
4
+ FieldFilter,
5
+ InsertParams,
6
+ UpdateParams,
7
+ } from "prostgles-types";
2
8
  import { InsertRule, UpdateRule } from "../../PublishParser/PublishParser";
3
- import { getClientErrorFromPGError, LocalParams, withUserRLS } from "../DboBuilder";
9
+ import {
10
+ getClientErrorFromPGError,
11
+ LocalParams,
12
+ withUserRLS,
13
+ } from "../DboBuilder";
4
14
  import { getSelectItemQuery, TableHandler } from "./TableHandler";
5
15
 
6
16
  type RunInsertUpdateQueryArgs = {
7
17
  tableHandler: TableHandler;
8
- queryWithoutUserRLS: string;
18
+ queryWithoutUserRLS: string;
9
19
  localParams: LocalParams | undefined;
10
20
  fields: FieldFilter | undefined;
11
21
  returningFields: FieldFilter | undefined;
12
- } & ({
13
- type: "insert";
14
- params: InsertParams | undefined
15
- rule: InsertRule | undefined;
16
- data: AnyObject | AnyObject[];
17
- isMultiInsert: boolean;
18
- nestedInsertsResultsObj?: undefined;
19
- } | {
20
- type: "update";
21
- nestedInsertsResultsObj: Record<string, any>;
22
- params: UpdateParams | undefined
23
- rule: UpdateRule | undefined;
24
- data: undefined;
25
- });
22
+ } & (
23
+ | {
24
+ type: "insert";
25
+ params: InsertParams | undefined;
26
+ rule: InsertRule | undefined;
27
+ data: AnyObject | AnyObject[];
28
+ isMultiInsert: boolean;
29
+ nestedInsertsResultsObj?: undefined;
30
+ }
31
+ | {
32
+ type: "update";
33
+ nestedInsertsResultsObj: Record<string, any>;
34
+ params: UpdateParams | undefined;
35
+ rule: UpdateRule | undefined;
36
+ data: undefined;
37
+ }
38
+ );
26
39
 
27
40
  export const runInsertUpdateQuery = async (args: RunInsertUpdateQueryArgs) => {
28
- const { tableHandler, queryWithoutUserRLS, rule, localParams, fields, returningFields, params, nestedInsertsResultsObj } = args;
41
+ const {
42
+ tableHandler,
43
+ queryWithoutUserRLS,
44
+ rule,
45
+ localParams,
46
+ fields,
47
+ returningFields,
48
+ params,
49
+ nestedInsertsResultsObj,
50
+ } = args;
29
51
  const { name } = tableHandler;
30
52
 
31
- const returningSelectItems = await tableHandler.prepareReturning(params?.returning, tableHandler.parseFieldFilter(returningFields))
53
+ const returningSelectItems = await tableHandler.prepareReturning(
54
+ params?.returning,
55
+ tableHandler.parseFieldFilter(returningFields),
56
+ );
32
57
  const { checkFilter, postValidate } = rule ?? {};
33
58
  let checkCondition = "WHERE FALSE";
34
- if(checkFilter){
59
+ if (checkFilter) {
35
60
  const checkCond = await tableHandler.prepareWhere({
36
61
  select: undefined,
37
62
  localParams: undefined,
@@ -43,7 +68,7 @@ export const runInsertUpdateQuery = async (args: RunInsertUpdateQueryArgs) => {
43
68
  }
44
69
  const hasReturning = !!returningSelectItems.length;
45
70
  const userRLS = withUserRLS(localParams, "");
46
- const escapedTableName = asName(name)
71
+ const escapedTableName = asName(name);
47
72
  const query = `
48
73
  ${userRLS}
49
74
  WITH ${escapedTableName} AS (
@@ -62,9 +87,9 @@ export const runInsertUpdateQuery = async (args: RunInsertUpdateQueryArgs) => {
62
87
  (
63
88
  SELECT json_agg(item)
64
89
  FROM (
65
- SELECT ${!hasReturning? "1" : getSelectItemQuery(returningSelectItems)}
90
+ SELECT ${!hasReturning ? "1" : getSelectItemQuery(returningSelectItems)}
66
91
  FROM ${escapedTableName}
67
- WHERE ${hasReturning? "TRUE" : "FALSE"}
92
+ WHERE ${hasReturning ? "TRUE" : "FALSE"}
68
93
  ) item
69
94
  ) as modified_returning,
70
95
  (
@@ -80,55 +105,80 @@ export const runInsertUpdateQuery = async (args: RunInsertUpdateQueryArgs) => {
80
105
  `;
81
106
 
82
107
  const allowedFieldKeys = tableHandler.parseFieldFilter(fields);
83
- let result: {
84
- row_count: number | null;
85
- modified: AnyObject[] | null;
108
+ let result: {
109
+ row_count: number | null;
110
+ modified: AnyObject[] | null;
86
111
  failed_check: AnyObject[] | null;
87
112
  modified_returning: AnyObject[] | null;
88
113
  };
89
-
114
+
90
115
  const queryType = "one";
91
116
 
92
117
  const tx = localParams?.tx?.t || tableHandler.tx?.t;
93
118
  if (tx) {
94
- result = await tx[queryType](query).catch((err: any) => getClientErrorFromPGError(err, { type: "tableMethod", localParams, view: tableHandler, allowedKeys: allowedFieldKeys }));
119
+ result = await tx[queryType](query).catch((err: any) =>
120
+ getClientErrorFromPGError(err, {
121
+ type: "tableMethod",
122
+ localParams,
123
+ view: tableHandler,
124
+ allowedKeys: allowedFieldKeys,
125
+ }),
126
+ );
95
127
  } else {
96
- result = await tableHandler.db.tx(t => (t as any)[queryType](query)).catch(err => getClientErrorFromPGError(err, { type: "tableMethod", localParams, view: tableHandler, allowedKeys: allowedFieldKeys }));
128
+ result = await tableHandler.db
129
+ .tx((t) => (t as any)[queryType](query))
130
+ .catch((err) =>
131
+ getClientErrorFromPGError(err, {
132
+ type: "tableMethod",
133
+ localParams,
134
+ view: tableHandler,
135
+ allowedKeys: allowedFieldKeys,
136
+ }),
137
+ );
97
138
  }
98
139
 
99
- if(checkFilter && result.failed_check?.length){
100
- throw new Error(`Insert ${name} records failed the check condition: ${JSON.stringify(checkFilter, null, 2)}`);
140
+ if (checkFilter && result.failed_check?.length) {
141
+ throw new Error(
142
+ `Insert ${name} records failed the check condition: ${JSON.stringify(checkFilter, null, 2)}`,
143
+ );
101
144
  }
102
145
 
103
146
  const finalDBtx = tableHandler.getFinalDBtx(localParams);
104
- if(postValidate){
105
- if(!finalDBtx) throw new Error("Unexpected: no dbTX for postValidate");
106
- if(!localParams) throw new Error("Unexpected: no localParams for postValidate");
147
+ if (postValidate) {
148
+ if (!finalDBtx) throw new Error("Unexpected: no dbTX for postValidate");
149
+ if (!localParams)
150
+ throw new Error("Unexpected: no localParams for postValidate");
107
151
 
108
152
  const rows = result.modified ?? [];
109
- for await (const row of rows){
110
- await postValidate({ row: row ?? {}, dbx: finalDBtx as any, localParams })
153
+ for await (const row of rows) {
154
+ await postValidate({
155
+ row: row ?? {},
156
+ dbx: finalDBtx as any,
157
+ localParams,
158
+ });
111
159
  }
112
160
  }
113
161
 
114
162
  let returnMany = false;
115
- if(args.type === "update"){
163
+ if (args.type === "update") {
116
164
  const { multi = true } = args.params || {};
117
- if(!multi && result.row_count && +result.row_count > 1){
165
+ if (!multi && result.row_count && +result.row_count > 1) {
118
166
  throw `More than 1 row modified: ${result.row_count} rows affected`;
119
167
  }
120
168
 
121
- if(hasReturning){
169
+ if (hasReturning) {
122
170
  returnMany = multi;
123
171
  }
124
-
125
172
  } else {
126
- returnMany = args.isMultiInsert
173
+ returnMany = args.isMultiInsert;
127
174
  }
128
175
 
129
- if(!hasReturning) return undefined;
176
+ if (!hasReturning) return undefined;
130
177
 
131
- const modified_returning = result.modified_returning?.map(d => ({ ...d, ...nestedInsertsResultsObj }))
178
+ const modified_returning = result.modified_returning?.map((d) => ({
179
+ ...d,
180
+ ...nestedInsertsResultsObj,
181
+ }));
132
182
 
133
- return returnMany? modified_returning : modified_returning?.[0];
134
- }
183
+ return returnMany ? modified_returning : modified_returning?.[0];
184
+ };
@@ -7,7 +7,10 @@ import {
7
7
  getSerializedClientErrorFromPGError,
8
8
  withUserRLS,
9
9
  } from "../DboBuilder";
10
- import { getInsertTableRules, getReferenceColumnInserts } from "../insertNestedRecords";
10
+ import {
11
+ getInsertTableRules,
12
+ getReferenceColumnInserts,
13
+ } from "../insertNestedRecords";
11
14
  import { prepareNewData } from "./DataValidator";
12
15
  import { runInsertUpdateQuery } from "./runInsertUpdateQuery";
13
16
  import { TableHandler } from "./TableHandler";
@@ -19,7 +22,7 @@ export async function update(
19
22
  _newData: AnyObject,
20
23
  params?: UpdateParams,
21
24
  tableRules?: TableRule,
22
- localParams?: LocalParams
25
+ localParams?: LocalParams,
23
26
  ): Promise<AnyObject | void> {
24
27
  const ACTION = "update";
25
28
  const start = Date.now();
@@ -28,7 +31,13 @@ export async function update(
28
31
  const finalDBtx = this.getFinalDBtx(localParams);
29
32
  const wrapInTx = () =>
30
33
  this.dboBuilder.getTX((_dbtx) =>
31
- _dbtx[this.name]?.[ACTION]?.(filter, _newData, params, tableRules, localParams)
34
+ _dbtx[this.name]?.[ACTION]?.(
35
+ filter,
36
+ _newData,
37
+ params,
38
+ tableRules,
39
+ localParams,
40
+ ),
32
41
  );
33
42
  const rule = tableRules?.[ACTION];
34
43
  if (rule?.postValidate && !finalDBtx) {
@@ -37,10 +46,20 @@ export async function update(
37
46
 
38
47
  let newData = _newData;
39
48
  if (this.is_media) {
40
- ({ newData } = await updateFile.bind(this)({ newData, filter, localParams, tableRules }));
49
+ ({ newData } = await updateFile.bind(this)({
50
+ newData,
51
+ filter,
52
+ localParams,
53
+ tableRules,
54
+ }));
41
55
  }
42
56
 
43
- const parsedRules = await this.parseUpdateRules(filter, params, tableRules, localParams);
57
+ const parsedRules = await this.parseUpdateRules(
58
+ filter,
59
+ params,
60
+ tableRules,
61
+ localParams,
62
+ );
44
63
  if (localParams?.testRule) {
45
64
  return parsedRules;
46
65
  }
@@ -49,8 +68,14 @@ export async function update(
49
68
  throw "no update data provided\nEXPECTING db.table.update(filter, updateData, options)";
50
69
  }
51
70
 
52
- const { fields, validateRow, forcedData, returningFields, forcedFilter, filterFields } =
53
- parsedRules;
71
+ const {
72
+ fields,
73
+ validateRow,
74
+ forcedData,
75
+ returningFields,
76
+ forcedFilter,
77
+ filterFields,
78
+ } = parsedRules;
54
79
  const { removeDisallowedFields = false } = params || {};
55
80
  const { returnQuery = false } = localParams ?? {};
56
81
 
@@ -62,10 +87,15 @@ export async function update(
62
87
  multi: 1,
63
88
  };
64
89
  const good_params = Object.keys(good_paramsObj);
65
- const bad_params = Object.keys(params).filter((k) => !good_params.includes(k));
90
+ const bad_params = Object.keys(params).filter(
91
+ (k) => !good_params.includes(k),
92
+ );
66
93
  if (bad_params && bad_params.length)
67
94
  throw (
68
- "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ")
95
+ "Invalid params: " +
96
+ bad_params.join(", ") +
97
+ " \n Expecting: " +
98
+ good_params.join(", ")
69
99
  );
70
100
  }
71
101
 
@@ -104,12 +134,18 @@ export async function update(
104
134
  }
105
135
  await Promise.all(
106
136
  nestedInserts.map(async (nestedInsert) => {
107
- const nesedTableHandler = finalDBtx[nestedInsert.tableName] as TableHandler | undefined;
137
+ const nesedTableHandler = finalDBtx[nestedInsert.tableName] as
138
+ | TableHandler
139
+ | undefined;
108
140
  if (!nesedTableHandler)
109
141
  throw `nestedInsert Tablehandler not found for ${nestedInsert.tableName}`;
110
142
  const refTableRules = !localParams
111
143
  ? undefined
112
- : await getInsertTableRules(this, nestedInsert.tableName, localParams);
144
+ : await getInsertTableRules(
145
+ this,
146
+ nestedInsert.tableName,
147
+ localParams,
148
+ );
113
149
  const nestedLocalParams: LocalParams = {
114
150
  ...localParams,
115
151
  nestedInsert: {
@@ -124,7 +160,7 @@ export async function update(
124
160
  { returning: "*" },
125
161
  undefined,
126
162
  refTableRules,
127
- nestedLocalParams
163
+ nestedLocalParams,
128
164
  );
129
165
  nestedInsertsResultsObj[nestedInsert.col] = nestedInsertResult;
130
166
 
@@ -133,7 +169,7 @@ export async function update(
133
169
  ...nestedInsert,
134
170
  result: nestedInsertResult,
135
171
  };
136
- })
172
+ }),
137
173
  );
138
174
  }
139
175
 
@@ -179,6 +215,10 @@ export async function update(
179
215
  duration: Date.now() - start,
180
216
  error: getErrorAsObject(e),
181
217
  });
182
- throw getSerializedClientErrorFromPGError(e, { type: "tableMethod", localParams, view: this });
218
+ throw getSerializedClientErrorFromPGError(e, {
219
+ type: "tableMethod",
220
+ localParams,
221
+ view: this,
222
+ });
183
223
  }
184
224
  }
@@ -1,49 +1,87 @@
1
1
  import { AnyObject, UpdateParams } from "prostgles-types";
2
2
  import { TableRule } from "../../PublishParser/PublishParser";
3
- import { Filter, LocalParams, getClientErrorFromPGError, getErrorAsObject, getSerializedClientErrorFromPGError, withUserRLS } from "../DboBuilder";
3
+ import {
4
+ Filter,
5
+ LocalParams,
6
+ getClientErrorFromPGError,
7
+ getErrorAsObject,
8
+ getSerializedClientErrorFromPGError,
9
+ withUserRLS,
10
+ } from "../DboBuilder";
4
11
  import { TableHandler } from "./TableHandler";
5
12
 
6
-
7
- export async function updateBatch(this: TableHandler, updates: [Filter, AnyObject][], params?: UpdateParams, _?: undefined, tableRules?: TableRule, localParams?: LocalParams): Promise<any> {
13
+ export async function updateBatch(
14
+ this: TableHandler,
15
+ updates: [Filter, AnyObject][],
16
+ params?: UpdateParams,
17
+ _?: undefined,
18
+ tableRules?: TableRule,
19
+ localParams?: LocalParams,
20
+ ): Promise<any> {
8
21
  const start = Date.now();
9
22
  try {
10
23
  const { checkFilter, postValidate } = tableRules?.update ?? {};
11
- if(checkFilter || postValidate){
12
- throw `updateBatch not allowed for tables with checkFilter or postValidate rules`
24
+ if (checkFilter || postValidate) {
25
+ throw `updateBatch not allowed for tables with checkFilter or postValidate rules`;
13
26
  }
14
27
  const updateQueries: string[] = await Promise.all(
15
- updates.map(async ([filter, data]) => {
28
+ updates.map(async ([filter, data]) => {
16
29
  const query = (await this.update(
17
30
  filter,
18
31
  data,
19
32
  { ...(params ?? {}), returning: undefined },
20
33
  tableRules,
21
- { ...(localParams ?? {}), returnQuery: "noRLS" }
34
+ { ...(localParams ?? {}), returnQuery: "noRLS" },
22
35
  )) as unknown as string;
23
36
 
24
37
  return query;
25
- })
38
+ }),
26
39
  );
27
- const queries = [
28
- withUserRLS(localParams, ""),
29
- ...updateQueries
30
- ];
31
-
40
+ const queries = [withUserRLS(localParams, ""), ...updateQueries];
41
+
32
42
  const t = localParams?.tx?.t ?? this.tx?.t;
33
- if(t){
43
+ if (t) {
34
44
  const result = await t.none(queries.join(";\n"));
35
- await this._log({ command: "updateBatch", localParams, data: { data: updates, params }, duration: Date.now() - start });
45
+ await this._log({
46
+ command: "updateBatch",
47
+ localParams,
48
+ data: { data: updates, params },
49
+ duration: Date.now() - start,
50
+ });
36
51
  return result;
37
52
  }
38
- const result = await this.db.tx(t => {
53
+ const result = await this.db
54
+ .tx((t) => {
39
55
  return t.none(queries.join(";\n"));
40
56
  })
41
- .catch(err => getClientErrorFromPGError(err, { type: "tableMethod", localParams, view: this, allowedKeys: [] }));
57
+ .catch((err) =>
58
+ getClientErrorFromPGError(err, {
59
+ type: "tableMethod",
60
+ localParams,
61
+ view: this,
62
+ allowedKeys: [],
63
+ }),
64
+ );
42
65
 
43
- await this._log({ command: "updateBatch", localParams, data: { data: updates, params }, duration: Date.now() - start });
66
+ await this._log({
67
+ command: "updateBatch",
68
+ localParams,
69
+ data: { data: updates, params },
70
+ duration: Date.now() - start,
71
+ });
44
72
  return result;
45
73
  } catch (e) {
46
- await this._log({ command: "updateBatch", localParams, data: { data: updates, params }, duration: Date.now() - start, error: getErrorAsObject(e) });
47
- throw getSerializedClientErrorFromPGError(e, { type: "tableMethod", localParams, view: this });
74
+ await this._log({
75
+ command: "updateBatch",
76
+ localParams,
77
+ data: { data: updates, params },
78
+ duration: Date.now() - start,
79
+ error: getErrorAsObject(e),
80
+ });
81
+ throw getSerializedClientErrorFromPGError(e, {
82
+ type: "tableMethod",
83
+ localParams,
84
+ view: this,
85
+ });
48
86
  }
49
- }
87
+ }
@@ -1,48 +1,79 @@
1
1
  import { AnyObject, getKeys, isObject } from "prostgles-types";
2
2
  import { LocalParams, Media } from "../DboBuilder";
3
- import { TableRule, ValidateRow, ValidateRowBasic } from "../../PublishParser/PublishParser";
3
+ import {
4
+ TableRule,
5
+ ValidateRow,
6
+ ValidateRowBasic,
7
+ } from "../../PublishParser/PublishParser";
4
8
  import { omitKeys } from "../../PubSubManager/PubSubManager";
5
9
  import { isFile, uploadFile } from "../uploadFile";
6
10
  import { TableHandler } from "./TableHandler";
7
11
  import { DBOFullyTyped } from "../../DBSchemaBuilder";
8
12
 
9
13
  type Args = {
10
- newData: AnyObject;
14
+ newData: AnyObject;
11
15
  filter: AnyObject;
12
- tableRules: TableRule | undefined;
16
+ tableRules: TableRule | undefined;
13
17
  localParams: LocalParams | undefined;
14
- }
15
- export const updateFile = async function(this: TableHandler, { filter, newData, tableRules, localParams }: Args): Promise<{ newData: AnyObject }> {
16
-
18
+ };
19
+ export const updateFile = async function (
20
+ this: TableHandler,
21
+ { filter, newData, tableRules, localParams }: Args,
22
+ ): Promise<{ newData: AnyObject }> {
17
23
  const rule = tableRules?.update;
18
24
 
19
- if(tableRules && !tableRules.update){
20
- throw "Not allowed"
25
+ if (tableRules && !tableRules.update) {
26
+ throw "Not allowed";
21
27
  }
22
- if(localParams?.testRule){
28
+ if (localParams?.testRule) {
23
29
  return { newData: {} };
24
30
  }
25
- const existingMediaId: string = !(!filter || !isObject(filter) || getKeys(filter).join() !== "id" || typeof (filter as any).id !== "string")? (filter as any).id : undefined
26
- if(!existingMediaId){
27
- throw new Error(`Updating the file table with file data can only be done by providing a single id filter. E.g. { id: "9ea4e23c-2b1a-4e33-8ec0-c15919bb45ec" } `);
31
+ const existingMediaId: string = !(
32
+ !filter ||
33
+ !isObject(filter) ||
34
+ getKeys(filter).join() !== "id" ||
35
+ typeof (filter as any).id !== "string"
36
+ )
37
+ ? (filter as any).id
38
+ : undefined;
39
+ if (!existingMediaId) {
40
+ throw new Error(
41
+ `Updating the file table with file data can only be done by providing a single id filter. E.g. { id: "9ea4e23c-2b1a-4e33-8ec0-c15919bb45ec" } `,
42
+ );
28
43
  }
29
- if(!isFile(newData)){
30
- throw new Error("Expecting { data: Buffer, name: string } but received " + JSON.stringify(newData))
44
+ if (!isFile(newData)) {
45
+ throw new Error(
46
+ "Expecting { data: Buffer, name: string } but received " +
47
+ JSON.stringify(newData),
48
+ );
31
49
  }
32
50
 
33
- const fileManager = this.dboBuilder.prostgles.fileManager
34
- if(!fileManager) throw new Error("fileManager missing");
35
- if(rule?.validate && !localParams) throw new Error("localParams missing");
36
- const validate: ValidateRowBasic | undefined = rule?.validate? async (row) => {
37
- return rule.validate!({ update: row, filter, dbx: (this.tx?.dbTX || this.dboBuilder.dbo) as any, localParams: localParams! })
38
- } : undefined;
51
+ const fileManager = this.dboBuilder.prostgles.fileManager;
52
+ if (!fileManager) throw new Error("fileManager missing");
53
+ if (rule?.validate && !localParams) throw new Error("localParams missing");
54
+ const validate: ValidateRowBasic | undefined = rule?.validate
55
+ ? async (row) => {
56
+ return rule.validate!({
57
+ update: row,
58
+ filter,
59
+ dbx: (this.tx?.dbTX || this.dboBuilder.dbo) as any,
60
+ localParams: localParams!,
61
+ });
62
+ }
63
+ : undefined;
64
+
65
+ const existingFile: Media | undefined = await (
66
+ (localParams?.tx?.dbTX?.[this.name] as TableHandler) || this
67
+ ).findOne({ id: existingMediaId });
39
68
 
40
- const existingFile: Media | undefined = await (localParams?.tx?.dbTX?.[this.name] as TableHandler || this).findOne({ id: existingMediaId });
41
-
42
- if(!existingFile?.name) throw new Error("Existing file record not found");
69
+ if (!existingFile?.name) throw new Error("Existing file record not found");
43
70
 
44
71
  await fileManager.deleteFile(existingFile.name);
45
- const newFile = await uploadFile.bind(this)({ row: newData, validate, localParams, mediaId: existingFile.id })
72
+ const newFile = await uploadFile.bind(this)({
73
+ row: newData,
74
+ validate,
75
+ localParams,
76
+ mediaId: existingFile.id,
77
+ });
46
78
  return { newData: omitKeys(newFile, ["id"]) };
47
-
48
- }
79
+ };
@@ -1,33 +1,78 @@
1
1
  import { AnyObject, UpdateParams } from "prostgles-types";
2
2
  import { TableRule } from "../../PublishParser/publishTypesAndUtils";
3
3
  import { Filter, LocalParams } from "../DboBuilderTypes";
4
- import { getErrorAsObject, getSerializedClientErrorFromPGError } from "../dboBuilderUtils";
4
+ import {
5
+ getErrorAsObject,
6
+ getSerializedClientErrorFromPGError,
7
+ } from "../dboBuilderUtils";
5
8
  import { TableHandler } from "./TableHandler";
6
9
 
7
- export const upsert = async function(this: TableHandler, filter: Filter, newData: AnyObject, params?: UpdateParams, table_rules?: TableRule, localParams?: LocalParams): Promise<any> {
10
+ export const upsert = async function (
11
+ this: TableHandler,
12
+ filter: Filter,
13
+ newData: AnyObject,
14
+ params?: UpdateParams,
15
+ table_rules?: TableRule,
16
+ localParams?: LocalParams,
17
+ ): Promise<any> {
8
18
  const start = Date.now();
9
19
  try {
10
20
  const _upsert = async function (tblH: TableHandler) {
11
- return tblH.find(filter, { select: "", limit: 1 }, undefined, table_rules, localParams)
12
- .then(exists => {
21
+ return tblH
22
+ .find(
23
+ filter,
24
+ { select: "", limit: 1 },
25
+ undefined,
26
+ table_rules,
27
+ localParams,
28
+ )
29
+ .then((exists) => {
13
30
  if (exists && exists.length) {
14
- return tblH.update(filter, newData, params, table_rules, localParams);
31
+ return tblH.update(
32
+ filter,
33
+ newData,
34
+ params,
35
+ table_rules,
36
+ localParams,
37
+ );
15
38
  } else {
16
- return tblH.insert({ ...newData, ...filter }, params, undefined, table_rules, localParams);
39
+ return tblH.insert(
40
+ { ...newData, ...filter },
41
+ params,
42
+ undefined,
43
+ table_rules,
44
+ localParams,
45
+ );
17
46
  }
18
47
  });
19
- }
48
+ };
20
49
 
21
50
  /* Do it within a transaction to ensure consisency */
22
51
  if (!this.tx) {
23
- return this.dboBuilder.getTX(dbTX => _upsert(dbTX[this.name] as TableHandler))
52
+ return this.dboBuilder.getTX((dbTX) =>
53
+ _upsert(dbTX[this.name] as TableHandler),
54
+ );
24
55
  }
25
56
  const result = await _upsert(this);
26
- await this._log({ command: "upsert", localParams, data: { filter, newData, params }, duration: Date.now() - start });
57
+ await this._log({
58
+ command: "upsert",
59
+ localParams,
60
+ data: { filter, newData, params },
61
+ duration: Date.now() - start,
62
+ });
27
63
  return result;
28
-
29
64
  } catch (e) {
30
- await this._log({ command: "upsert", localParams, data: { filter, newData, params }, duration: Date.now() - start, error: getErrorAsObject(e) });
31
- throw getSerializedClientErrorFromPGError(e, { type: "tableMethod", localParams, view: this });
65
+ await this._log({
66
+ command: "upsert",
67
+ localParams,
68
+ data: { filter, newData, params },
69
+ duration: Date.now() - start,
70
+ error: getErrorAsObject(e),
71
+ });
72
+ throw getSerializedClientErrorFromPGError(e, {
73
+ type: "tableMethod",
74
+ localParams,
75
+ view: this,
76
+ });
32
77
  }
33
- }
78
+ };