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,123 +1,186 @@
1
1
  import { AnyObject, InsertParams, asName, isObject } from "prostgles-types";
2
2
  import { TableRule, ValidateRowBasic } from "../../PublishParser/PublishParser";
3
- import { LocalParams, getErrorAsObject, getSerializedClientErrorFromPGError, withUserRLS } from "../DboBuilder";
3
+ import {
4
+ LocalParams,
5
+ getErrorAsObject,
6
+ getSerializedClientErrorFromPGError,
7
+ withUserRLS,
8
+ } from "../DboBuilder";
4
9
  import { insertNestedRecords } from "../insertNestedRecords";
5
10
  import { prepareNewData } from "./DataValidator";
6
11
  import { TableHandler } from "./TableHandler";
7
12
  import { insertTest } from "./insertTest";
8
13
  import { runInsertUpdateQuery } from "./runInsertUpdateQuery";
9
14
 
10
- export async function insert(this: TableHandler, rowOrRows: AnyObject | AnyObject[] = {}, insertParams?: InsertParams, param3_unused?: undefined, tableRules?: TableRule, localParams?: LocalParams): Promise<any | any[] | boolean> {
11
-
15
+ export async function insert(
16
+ this: TableHandler,
17
+ rowOrRows: AnyObject | AnyObject[] = {},
18
+ insertParams?: InsertParams,
19
+ param3_unused?: undefined,
20
+ tableRules?: TableRule,
21
+ localParams?: LocalParams,
22
+ ): Promise<any | any[] | boolean> {
12
23
  const ACTION = "insert";
13
24
  const start = Date.now();
14
25
  try {
15
-
16
26
  const { removeDisallowedFields = false } = insertParams || {};
17
27
  const { returnQuery = false, nestedInsert } = localParams || {};
18
-
28
+
19
29
  const finalDBtx = this.getFinalDBtx(localParams);
20
30
  const rule = tableRules?.[ACTION];
21
- const { postValidate, checkFilter, validate, allowedNestedInserts } = rule ?? {};
31
+ const { postValidate, checkFilter, validate, allowedNestedInserts } =
32
+ rule ?? {};
22
33
 
23
34
  /** Post validate and checkFilter require a transaction dbo handler because they happen after the insert */
24
- if(postValidate || checkFilter){
25
- if(!finalDBtx){
26
- return this.dboBuilder.getTX(_dbtx => _dbtx[this.name]?.[ACTION]?.(rowOrRows, insertParams, param3_unused, tableRules, localParams))
35
+ if (postValidate || checkFilter) {
36
+ if (!finalDBtx) {
37
+ return this.dboBuilder.getTX((_dbtx) =>
38
+ _dbtx[this.name]?.[ACTION]?.(
39
+ rowOrRows,
40
+ insertParams,
41
+ param3_unused,
42
+ tableRules,
43
+ localParams,
44
+ ),
45
+ );
27
46
  }
28
47
  }
29
48
 
30
- const { testOnly, fields, forcedData, returningFields } = await insertTest.bind(this)({ tableRules, localParams });
31
- if(testOnly){
49
+ const { testOnly, fields, forcedData, returningFields } =
50
+ await insertTest.bind(this)({ tableRules, localParams });
51
+ if (testOnly) {
32
52
  return true;
33
53
  }
34
54
 
35
- if(allowedNestedInserts){
36
- if(!nestedInsert || !allowedNestedInserts.some(ai => ai.table === nestedInsert?.previousTable && ai.column === nestedInsert.referencingColumn)){
37
- throw `Direct inserts not allowed. Only nested inserts from these tables: ${JSON.stringify(allowedNestedInserts)} `
55
+ if (allowedNestedInserts) {
56
+ if (
57
+ !nestedInsert ||
58
+ !allowedNestedInserts.some(
59
+ (ai) =>
60
+ ai.table === nestedInsert?.previousTable &&
61
+ ai.column === nestedInsert.referencingColumn,
62
+ )
63
+ ) {
64
+ throw `Direct inserts not allowed. Only nested inserts from these tables: ${JSON.stringify(allowedNestedInserts)} `;
38
65
  }
39
66
  }
40
67
  validateInsertParams(insertParams);
41
68
 
42
69
  const isMultiInsert = Array.isArray(rowOrRows);
43
- const preValidatedRows = await Promise.all((isMultiInsert? rowOrRows : [rowOrRows]).map(async nonValidated => {
44
- const { preValidate, validate } = tableRules?.insert ?? {};
45
- const { tableConfigurator } = this.dboBuilder.prostgles;
46
- if(!tableConfigurator) throw "tableConfigurator missing";
47
- let row = await tableConfigurator.getPreInsertRow(this, { dbx: this.getFinalDbo(localParams), validate, localParams, row: nonValidated })
48
- if (preValidate) {
49
- if(!localParams) throw "localParams missing for insert preValidate";
50
- row = await preValidate({ row, dbx: (this.tx?.dbTX || this.dboBuilder.dbo) as any, localParams });
51
- }
70
+ const preValidatedRows = await Promise.all(
71
+ (isMultiInsert ? rowOrRows : [rowOrRows]).map(async (nonValidated) => {
72
+ const { preValidate, validate } = tableRules?.insert ?? {};
73
+ const { tableConfigurator } = this.dboBuilder.prostgles;
74
+ if (!tableConfigurator) throw "tableConfigurator missing";
75
+ let row = await tableConfigurator.getPreInsertRow(this, {
76
+ dbx: this.getFinalDbo(localParams),
77
+ validate,
78
+ localParams,
79
+ row: nonValidated,
80
+ });
81
+ if (preValidate) {
82
+ if (!localParams) throw "localParams missing for insert preValidate";
83
+ row = await preValidate({
84
+ row,
85
+ dbx: (this.tx?.dbTX || this.dboBuilder.dbo) as any,
86
+ localParams,
87
+ });
88
+ }
52
89
 
53
- return row;
54
- }));
55
- const preValidatedrowOrRows = isMultiInsert? preValidatedRows : preValidatedRows[0]!;
90
+ return row;
91
+ }),
92
+ );
93
+ const preValidatedrowOrRows = isMultiInsert
94
+ ? preValidatedRows
95
+ : preValidatedRows[0]!;
56
96
 
57
97
  /**
58
98
  * If media it will: upload file and continue insert
59
99
  * If nested insert it will: make separate inserts and not continue main insert
60
100
  */
61
- const mediaOrNestedInsert = await insertNestedRecords.bind(this)({ data: preValidatedrowOrRows, param2: insertParams, tableRules, localParams });
101
+ const mediaOrNestedInsert = await insertNestedRecords.bind(this)({
102
+ data: preValidatedrowOrRows,
103
+ param2: insertParams,
104
+ tableRules,
105
+ localParams,
106
+ });
62
107
  const { data, insertResult } = mediaOrNestedInsert;
63
108
  if ("insertResult" in mediaOrNestedInsert) {
64
109
  return insertResult;
65
110
  }
66
111
 
67
- const pkeyNames = this.columns.filter(c => c.is_pkey).map(c => c.name);
112
+ const pkeyNames = this.columns.filter((c) => c.is_pkey).map((c) => c.name);
68
113
  const getInsertQuery = async (_rows: AnyObject[]) => {
69
- const validatedData = await Promise.all(_rows.map(async _row => {
114
+ const validatedData = await Promise.all(
115
+ _rows.map(async (_row) => {
116
+ const row = { ..._row };
70
117
 
71
- const row = { ..._row };
118
+ if (!isObject(row)) {
119
+ throw (
120
+ "\nInvalid insert data provided. Expected an object but received: " +
121
+ JSON.stringify(row)
122
+ );
123
+ }
72
124
 
73
- if (!isObject(row)) {
74
- throw "\nInvalid insert data provided. Expected an object but received: " + JSON.stringify(row);
75
- }
76
-
77
- const { data: validatedRow, allowedCols } = await prepareNewData({
78
- row,
79
- forcedData,
80
- allowedFields: fields,
81
- tableRules,
82
- removeDisallowedFields,
83
- tableConfigurator: this.dboBuilder.prostgles.tableConfigurator,
84
- tableHandler: this,
85
- });
86
- return { validatedRow, allowedCols };
87
- }));
88
- const validatedRows = validatedData.map(d => d.validatedRow);
89
- const allowedCols = Array.from(new Set(validatedData.flatMap(d => d.allowedCols)));
125
+ const { data: validatedRow, allowedCols } = await prepareNewData({
126
+ row,
127
+ forcedData,
128
+ allowedFields: fields,
129
+ tableRules,
130
+ removeDisallowedFields,
131
+ tableConfigurator: this.dboBuilder.prostgles.tableConfigurator,
132
+ tableHandler: this,
133
+ });
134
+ return { validatedRow, allowedCols };
135
+ }),
136
+ );
137
+ const validatedRows = validatedData.map((d) => d.validatedRow);
138
+ const allowedCols = Array.from(
139
+ new Set(validatedData.flatMap((d) => d.allowedCols)),
140
+ );
90
141
  const dbTx = finalDBtx || this.dboBuilder.dbo;
91
- const validationOptions = { validate: validate as ValidateRowBasic, localParams };
142
+ const validationOptions = {
143
+ validate: validate as ValidateRowBasic,
144
+ localParams,
145
+ };
92
146
  // const query = await this.colSet.getInsertQuery(validatedRows, allowedCols, dbTx, validate, localParams);
93
- const query = (await this.dataValidator.parse({ command: "insert", rows: validatedRows, allowedCols, dbTx, validationOptions })).getQuery();
147
+ const query = (
148
+ await this.dataValidator.parse({
149
+ command: "insert",
150
+ rows: validatedRows,
151
+ allowedCols,
152
+ dbTx,
153
+ validationOptions,
154
+ })
155
+ ).getQuery();
94
156
  const { onConflict } = insertParams ?? {};
95
157
  let conflict_query = "";
96
158
  if (onConflict === "DoNothing") {
97
159
  conflict_query = " ON CONFLICT DO NOTHING ";
98
- } else if(onConflict === "DoUpdate"){
99
- if(!pkeyNames.length) {
160
+ } else if (onConflict === "DoUpdate") {
161
+ if (!pkeyNames.length) {
100
162
  throw "Cannot do DoUpdate on a table without a primary key";
101
163
  }
102
- const nonPkeyCols = allowedCols.filter(c => !pkeyNames.includes(c)).map(v => asName(v));
103
- if(!nonPkeyCols.length){
164
+ const nonPkeyCols = allowedCols
165
+ .filter((c) => !pkeyNames.includes(c))
166
+ .map((v) => asName(v));
167
+ if (!nonPkeyCols.length) {
104
168
  throw "Cannot on conflict DoUpdate on a table with only primary key columns";
105
169
  }
106
- conflict_query = ` ON CONFLICT (${pkeyNames.join(", ")}) DO UPDATE SET ${nonPkeyCols.map(k => `${k} = EXCLUDED.${k}`).join(", ")}`;
170
+ conflict_query = ` ON CONFLICT (${pkeyNames.join(", ")}) DO UPDATE SET ${nonPkeyCols.map((k) => `${k} = EXCLUDED.${k}`).join(", ")}`;
107
171
  }
108
172
  return query + conflict_query;
109
173
  };
110
-
111
- let query = "";
112
- if (Array.isArray(data)) {
113
174
 
114
- if(!data.length){
175
+ let query = "";
176
+ if (Array.isArray(data)) {
177
+ if (!data.length) {
115
178
  throw "Empty insert. Provide data";
116
179
  }
117
180
 
118
- query = await getInsertQuery(data);
181
+ query = await getInsertQuery(data);
119
182
  } else {
120
- query = await getInsertQuery([data ?? {}]);
183
+ query = await getInsertQuery([data ?? {}]);
121
184
  }
122
185
 
123
186
  const queryWithoutUserRLS = query;
@@ -129,55 +192,88 @@ export async function insert(this: TableHandler, rowOrRows: AnyObject | AnyObjec
129
192
  }
130
193
 
131
194
  const result = await runInsertUpdateQuery({
132
- rule,
133
- localParams,
134
- queryWithoutUserRLS,
135
- tableHandler: this,
136
- returningFields,
195
+ rule,
196
+ localParams,
197
+ queryWithoutUserRLS,
198
+ tableHandler: this,
199
+ returningFields,
137
200
  data: preValidatedrowOrRows,
138
201
  fields,
139
202
  params: insertParams,
140
203
  type: "insert",
141
204
  isMultiInsert,
142
205
  });
143
- await this._log({ command: "insert", localParams, data: { rowOrRows, param2: insertParams }, duration: Date.now() - start });
206
+ await this._log({
207
+ command: "insert",
208
+ localParams,
209
+ data: { rowOrRows, param2: insertParams },
210
+ duration: Date.now() - start,
211
+ });
144
212
  return result;
145
213
  } catch (e) {
146
- await this._log({ command: "insert", localParams, data: { rowOrRows, param2: insertParams }, duration: Date.now() - start, error: getErrorAsObject(e) });
147
- throw getSerializedClientErrorFromPGError(e, { type: "tableMethod", localParams, view: this });
214
+ await this._log({
215
+ command: "insert",
216
+ localParams,
217
+ data: { rowOrRows, param2: insertParams },
218
+ duration: Date.now() - start,
219
+ error: getErrorAsObject(e),
220
+ });
221
+ throw getSerializedClientErrorFromPGError(e, {
222
+ type: "tableMethod",
223
+ localParams,
224
+ view: this,
225
+ });
148
226
  }
149
- }
227
+ }
150
228
 
151
229
  const validateInsertParams = (params: InsertParams | undefined) => {
152
-
153
230
  const { onConflict, returnType, returning } = params ?? {};
154
- if(![undefined, "DoNothing", "DoUpdate"].includes(onConflict)){
231
+ if (![undefined, "DoNothing", "DoUpdate"].includes(onConflict)) {
155
232
  throw `Invalid onConflict: ${onConflict}. Expecting one of: DoNothing, DoUpdate`;
156
233
  }
157
234
 
158
- const allowedReturnTypes: InsertParams["returnType"][] = ["row", "value", "values", "statement", undefined]
159
- if(!allowedReturnTypes.includes(returnType)){
160
- throw `Invalid return type ${returnType}. Expecting one of: ${allowedReturnTypes}`
235
+ const allowedReturnTypes: InsertParams["returnType"][] = [
236
+ "row",
237
+ "value",
238
+ "values",
239
+ "statement",
240
+ undefined,
241
+ ];
242
+ if (!allowedReturnTypes.includes(returnType)) {
243
+ throw `Invalid return type ${returnType}. Expecting one of: ${allowedReturnTypes}`;
161
244
  }
162
245
 
163
- if(returnType && returnType !== "statement" && !returning){
246
+ if (returnType && returnType !== "statement" && !returning) {
164
247
  throw `Must specify returning when using a non statement returnType: ${returnType}`;
165
248
  }
166
249
 
167
250
  if (params) {
168
- const good_paramsObj: Record<keyof InsertParams, 1> = { returning: 1, returnType: 1, removeDisallowedFields: 1, onConflict: 1 };
251
+ const good_paramsObj: Record<keyof InsertParams, 1> = {
252
+ returning: 1,
253
+ returnType: 1,
254
+ removeDisallowedFields: 1,
255
+ onConflict: 1,
256
+ };
169
257
  const good_params = Object.keys(good_paramsObj);
170
- const bad_params = Object.keys(params).filter(k => !good_params.includes(k));
171
- if (bad_params && bad_params.length) throw "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ");
258
+ const bad_params = Object.keys(params).filter(
259
+ (k) => !good_params.includes(k),
260
+ );
261
+ if (bad_params && bad_params.length)
262
+ throw (
263
+ "Invalid params: " +
264
+ bad_params.join(", ") +
265
+ " \n Expecting: " +
266
+ good_params.join(", ")
267
+ );
172
268
  }
173
- }
269
+ };
174
270
 
175
271
  // const removeBuffers = (o: any) => {
176
272
  // if(isPlainObject(o)){
177
273
  // return JSON.stringify(getKeys(o).reduce((a, k) => {
178
274
  // const value = o[k]
179
- // return { ...a, [k]: Buffer.isBuffer(value)? `Buffer[${value.byteLength}][...REMOVED]` : value
275
+ // return { ...a, [k]: Buffer.isBuffer(value)? `Buffer[${value.byteLength}][...REMOVED]` : value
180
276
  // }
181
277
  // }, {}));
182
278
  // }
183
- // }
279
+ // }
@@ -8,7 +8,10 @@ type InsertTestArgs = {
8
8
  tableRules: TableRule | undefined;
9
9
  localParams: LocalParams | undefined;
10
10
  };
11
- export async function insertTest(this: TableHandler, { localParams, tableRules }: InsertTestArgs) {
11
+ export async function insertTest(
12
+ this: TableHandler,
13
+ { localParams, tableRules }: InsertTestArgs,
14
+ ) {
12
15
  const { testRule } = localParams || {};
13
16
 
14
17
  const ACTION = "insert";
@@ -27,9 +30,11 @@ export async function insertTest(this: TableHandler, { localParams, tableRules }
27
30
  fields = tableRules[ACTION].fields;
28
31
 
29
32
  /* If no returning fields specified then take select fields as returning or the allowed insert fields */
30
- if (!returningFields) returningFields = tableRules?.select?.fields || tableRules?.insert.fields;
33
+ if (!returningFields)
34
+ returningFields = tableRules?.select?.fields || tableRules?.insert.fields;
31
35
 
32
- if (!fields) throw ` invalid insert rule for ${this.name} -> fields missing `;
36
+ if (!fields)
37
+ throw ` invalid insert rule for ${this.name} -> fields missing `;
33
38
 
34
39
  /* Safely test publish rules */
35
40
  if (testRule) {
@@ -51,13 +56,14 @@ export async function insertTest(this: TableHandler, { localParams, tableRules }
51
56
  if (keys.length) {
52
57
  const dataCols = keys.filter((k) => this.column_names.includes(k));
53
58
  const nestedInsertCols = keys.filter(
54
- (k) => !this.column_names.includes(k) && this.dboBuilder.dbo[k]?.insert
59
+ (k) =>
60
+ !this.column_names.includes(k) && this.dboBuilder.dbo[k]?.insert,
55
61
  );
56
62
  if (nestedInsertCols.length) {
57
63
  throw `Nested insert not supported for forcedData rule: ${nestedInsertCols}`;
58
64
  }
59
65
  const badCols = keys.filter(
60
- (k) => !dataCols.includes(k) && !nestedInsertCols.includes(k)
66
+ (k) => !dataCols.includes(k) && !nestedInsertCols.includes(k),
61
67
  );
62
68
  if (badCols.length) {
63
69
  throw `Invalid columns found in forced filter: ${badCols.join(", ")}`;
@@ -70,7 +76,7 @@ export async function insertTest(this: TableHandler, { localParams, tableRules }
70
76
  (k) =>
71
77
  asValue(forcedData![k]) +
72
78
  "::" +
73
- this.columns.find((c) => c.name === k)!.udt_name
79
+ this.columns.find((c) => c.name === k)!.udt_name,
74
80
  )
75
81
  .join(", ") +
76
82
  ")",
@@ -79,7 +85,7 @@ export async function insertTest(this: TableHandler, { localParams, tableRules }
79
85
  "EXPLAIN INSERT INTO " +
80
86
  this.escapedName +
81
87
  " (${colNames:raw}) SELECT * FROM ( VALUES ${values:raw} ) t WHERE FALSE;",
82
- { colNames, values }
88
+ { colNames, values },
83
89
  );
84
90
  await this.db.any(query);
85
91
  } catch (e) {
@@ -10,29 +10,44 @@ type OnDeleteFromFileTableArgs = {
10
10
  filterOpts: {
11
11
  where: string;
12
12
  filter: AnyObject;
13
- }
14
- }
15
- export async function onDeleteFromFileTable(this: TableHandler, { localParams, queryType, returningQuery, filterOpts }: OnDeleteFromFileTableArgs){
16
-
17
- if (!this.dboBuilder.prostgles.fileManager) throw new Error("fileManager missing")
13
+ };
14
+ };
15
+ export async function onDeleteFromFileTable(
16
+ this: TableHandler,
17
+ {
18
+ localParams,
19
+ queryType,
20
+ returningQuery,
21
+ filterOpts,
22
+ }: OnDeleteFromFileTableArgs,
23
+ ) {
24
+ if (!this.dboBuilder.prostgles.fileManager)
25
+ throw new Error("fileManager missing");
18
26
  if (this.dboBuilder.prostgles.opts.fileTable?.delayedDelete) {
19
- return this.dbHandler[queryType](`UPDATE ${asName(this.name)} SET deleted = now() ${filterOpts.where} ${returningQuery ?? ""};`)
27
+ return this.dbHandler[queryType](
28
+ `UPDATE ${asName(this.name)} SET deleted = now() ${filterOpts.where} ${returningQuery ?? ""};`,
29
+ );
20
30
  } else {
21
-
22
31
  const txDelete = async (tbl: TableHandler) => {
23
32
  if (!tbl.tx) throw new Error("Missing transaction object tx");
24
33
  let files: { id: string; name: string }[] = [];
25
34
  const totalFiles = await tbl.count(filterOpts.filter);
26
35
  do {
27
- const batch = await tbl.find(filterOpts.filter, { limit: 100, offset: files.length });
36
+ const batch = await tbl.find(filterOpts.filter, {
37
+ limit: 100,
38
+ offset: files.length,
39
+ });
28
40
  files = files.concat(batch);
29
- } while(files.length < totalFiles)
30
-
31
- const fileManager = tbl.dboBuilder.prostgles.fileManager
41
+ } while (files.length < totalFiles);
42
+
43
+ const fileManager = tbl.dboBuilder.prostgles.fileManager;
32
44
  if (!fileManager) throw new Error("fileManager missing");
33
45
 
34
46
  for await (const file of files) {
35
- await tbl.tx.t.any(`DELETE FROM ${asName(this.name)} WHERE id = \${id}`, file);
47
+ await tbl.tx.t.any(
48
+ `DELETE FROM ${asName(this.name)} WHERE id = \${id}`,
49
+ file,
50
+ );
36
51
  }
37
52
  /** If any table delete fails then do not delete files */
38
53
  for await (const file of files) {
@@ -42,21 +57,20 @@ export async function onDeleteFromFileTable(this: TableHandler, { localParams, q
42
57
  }
43
58
 
44
59
  if (returningQuery) {
45
- return files.map(f => pickKeys(f, ["id", "name"]));
60
+ return files.map((f) => pickKeys(f, ["id", "name"]));
46
61
  }
47
62
 
48
63
  return undefined;
49
- }
64
+ };
50
65
 
51
66
  if (localParams?.tx?.dbTX) {
52
- return txDelete(localParams.tx.dbTX[this.name] as TableHandler)
67
+ return txDelete(localParams.tx.dbTX[this.name] as TableHandler);
53
68
  } else if (this.tx) {
54
- return txDelete(this)
69
+ return txDelete(this);
55
70
  } else {
56
-
57
- return this.dboBuilder.getTX(tx => {
58
- return txDelete(tx[this.name] as TableHandler)
59
- })
71
+ return this.dboBuilder.getTX((tx) => {
72
+ return txDelete(tx[this.name] as TableHandler);
73
+ });
60
74
  }
61
75
  }
62
- }
76
+ }