prostgles-server 4.2.187 → 4.2.188

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 (338) hide show
  1. package/.eslintignore +2 -1
  2. package/.eslintrc.json +2 -0
  3. package/dist/Auth/AuthHandler.d.ts +18 -11
  4. package/dist/Auth/AuthHandler.d.ts.map +1 -1
  5. package/dist/Auth/AuthHandler.js +94 -120
  6. package/dist/Auth/AuthHandler.js.map +1 -1
  7. package/dist/Auth/AuthTypes.d.ts +78 -71
  8. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  9. package/dist/Auth/{setEmailProvider.d.ts → authProviders/setEmailProvider.d.ts} +1 -1
  10. package/dist/Auth/authProviders/setEmailProvider.d.ts.map +1 -0
  11. package/dist/Auth/authProviders/setEmailProvider.js +27 -0
  12. package/dist/Auth/authProviders/setEmailProvider.js.map +1 -0
  13. package/dist/Auth/authProviders/setOAuthProviders.d.ts +5 -0
  14. package/dist/Auth/authProviders/setOAuthProviders.d.ts.map +1 -0
  15. package/dist/Auth/authProviders/setOAuthProviders.js +78 -0
  16. package/dist/Auth/authProviders/setOAuthProviders.js.map +1 -0
  17. package/dist/Auth/endpoints/getConfirmEmailRequestHandler.d.ts +7 -0
  18. package/dist/Auth/endpoints/getConfirmEmailRequestHandler.d.ts.map +1 -0
  19. package/dist/Auth/endpoints/getConfirmEmailRequestHandler.js +29 -0
  20. package/dist/Auth/endpoints/getConfirmEmailRequestHandler.js.map +1 -0
  21. package/dist/Auth/endpoints/getRegisterRequestHandler.d.ts +7 -0
  22. package/dist/Auth/endpoints/getRegisterRequestHandler.d.ts.map +1 -0
  23. package/dist/Auth/endpoints/getRegisterRequestHandler.js +74 -0
  24. package/dist/Auth/endpoints/getRegisterRequestHandler.js.map +1 -0
  25. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  26. package/dist/Auth/setAuthProviders.js +4 -74
  27. package/dist/Auth/setAuthProviders.js.map +1 -1
  28. package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
  29. package/dist/Auth/setupAuthRoutes.js +23 -33
  30. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  31. package/dist/Auth/utils/checkDmarc.d.ts +2 -0
  32. package/dist/Auth/utils/checkDmarc.d.ts.map +1 -0
  33. package/dist/Auth/utils/checkDmarc.js +22 -0
  34. package/dist/Auth/utils/checkDmarc.js.map +1 -0
  35. package/dist/Auth/utils/getClientRequestIPsInfo.d.ts +3 -0
  36. package/dist/Auth/utils/getClientRequestIPsInfo.d.ts.map +1 -0
  37. package/dist/Auth/utils/getClientRequestIPsInfo.js +29 -0
  38. package/dist/Auth/utils/getClientRequestIPsInfo.js.map +1 -0
  39. package/dist/Auth/utils/getReturnUrl.d.ts +3 -0
  40. package/dist/Auth/utils/getReturnUrl.d.ts.map +1 -0
  41. package/dist/Auth/utils/getReturnUrl.js +15 -0
  42. package/dist/Auth/utils/getReturnUrl.js.map +1 -0
  43. package/dist/Auth/utils/getSafeReturnURL.d.ts.map +1 -0
  44. package/dist/Auth/utils/getSafeReturnURL.js.map +1 -0
  45. package/dist/DBEventsManager.d.ts.map +1 -1
  46. package/dist/DBEventsManager.js +4 -5
  47. package/dist/DBEventsManager.js.map +1 -1
  48. package/dist/DBSchemaBuilder.js +1 -1
  49. package/dist/DBSchemaBuilder.js.map +1 -1
  50. package/dist/DboBuilder/DboBuilder.d.ts +0 -1
  51. package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
  52. package/dist/DboBuilder/DboBuilder.js +3 -12
  53. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  54. package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
  55. package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
  56. package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
  57. package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  58. package/dist/DboBuilder/QueryBuilder/Functions.js +38 -76
  59. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  60. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  61. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +4 -12
  62. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  63. package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
  64. package/dist/DboBuilder/QueryBuilder/getNewQuery.js +23 -33
  65. package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
  66. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
  67. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
  68. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +6 -6
  69. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
  70. package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
  71. package/dist/DboBuilder/QueryStreamer.js +13 -19
  72. package/dist/DboBuilder/QueryStreamer.js.map +1 -1
  73. package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
  74. package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
  75. package/dist/DboBuilder/TableHandler/DataValidator.js +7 -16
  76. package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
  77. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  78. package/dist/DboBuilder/TableHandler/TableHandler.js +7 -5
  79. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  80. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  81. package/dist/DboBuilder/TableHandler/delete.js +5 -8
  82. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  83. package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
  84. package/dist/DboBuilder/TableHandler/insert.js +10 -15
  85. package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
  86. package/dist/DboBuilder/TableHandler/insertTest.js +1 -1
  87. package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
  88. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
  89. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +1 -1
  90. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
  91. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  92. package/dist/DboBuilder/TableHandler/update.js +5 -9
  93. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  94. package/dist/DboBuilder/TableHandler/updateFile.d.ts +1 -1
  95. package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
  96. package/dist/DboBuilder/TableHandler/updateFile.js +7 -9
  97. package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
  98. package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
  99. package/dist/DboBuilder/TableHandler/upsert.js +1 -1
  100. package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
  101. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  102. package/dist/DboBuilder/ViewHandler/ViewHandler.js +11 -13
  103. package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
  104. package/dist/DboBuilder/ViewHandler/count.js +1 -1
  105. package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
  106. package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
  107. package/dist/DboBuilder/ViewHandler/find.js +20 -27
  108. package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
  109. package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
  110. package/dist/DboBuilder/ViewHandler/getExistsCondition.js +4 -10
  111. package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
  112. package/dist/DboBuilder/ViewHandler/getInfo.js +2 -2
  113. package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
  114. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
  115. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +6 -22
  116. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
  117. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
  118. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +6 -10
  119. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
  120. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
  121. package/dist/DboBuilder/ViewHandler/parseJoinPath.js +8 -11
  122. package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
  123. package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
  124. package/dist/DboBuilder/ViewHandler/prepareSortItems.js +7 -12
  125. package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
  126. package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
  127. package/dist/DboBuilder/ViewHandler/prepareWhere.js +6 -10
  128. package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
  129. package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
  130. package/dist/DboBuilder/dboBuilderUtils.js +8 -23
  131. package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
  132. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  133. package/dist/DboBuilder/getColumns.js +19 -26
  134. package/dist/DboBuilder/getColumns.js.map +1 -1
  135. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  136. package/dist/DboBuilder/getCondition.js +7 -9
  137. package/dist/DboBuilder/getCondition.js.map +1 -1
  138. package/dist/DboBuilder/getSubscribeRelatedTables.js +2 -2
  139. package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
  140. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
  141. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +14 -15
  142. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
  143. package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
  144. package/dist/DboBuilder/insertNestedRecords.js +26 -40
  145. package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
  146. package/dist/DboBuilder/parseUpdateRules.js +1 -1
  147. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  148. package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
  149. package/dist/DboBuilder/prepareShortestJoinPaths.js +12 -18
  150. package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
  151. package/dist/DboBuilder/runSQL.d.ts +1 -1
  152. package/dist/DboBuilder/runSQL.d.ts.map +1 -1
  153. package/dist/DboBuilder/runSQL.js +14 -27
  154. package/dist/DboBuilder/runSQL.js.map +1 -1
  155. package/dist/DboBuilder/uploadFile.d.ts +1 -1
  156. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  157. package/dist/DboBuilder/uploadFile.js +4 -11
  158. package/dist/DboBuilder/uploadFile.js.map +1 -1
  159. package/dist/FileManager/FileManager.d.ts.map +1 -1
  160. package/dist/FileManager/FileManager.js +11 -13
  161. package/dist/FileManager/FileManager.js.map +1 -1
  162. package/dist/FileManager/initFileManager.d.ts.map +1 -1
  163. package/dist/FileManager/initFileManager.js +60 -62
  164. package/dist/FileManager/initFileManager.js.map +1 -1
  165. package/dist/FileManager/uploadStream.js +2 -2
  166. package/dist/FileManager/uploadStream.js.map +1 -1
  167. package/dist/Filtering.d.ts +1 -1
  168. package/dist/Filtering.d.ts.map +1 -1
  169. package/dist/Filtering.js +12 -35
  170. package/dist/Filtering.js.map +1 -1
  171. package/dist/JSONBValidation/validation.d.ts.map +1 -1
  172. package/dist/JSONBValidation/validation.js +20 -26
  173. package/dist/JSONBValidation/validation.js.map +1 -1
  174. package/dist/Logging.d.ts +1 -0
  175. package/dist/Logging.d.ts.map +1 -1
  176. package/dist/PostgresNotifListenManager.d.ts.map +1 -1
  177. package/dist/PostgresNotifListenManager.js +1 -5
  178. package/dist/PostgresNotifListenManager.js.map +1 -1
  179. package/dist/Prostgles.d.ts +1 -1
  180. package/dist/Prostgles.d.ts.map +1 -1
  181. package/dist/Prostgles.js +18 -33
  182. package/dist/Prostgles.js.map +1 -1
  183. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  184. package/dist/PubSubManager/PubSubManager.js +8 -13
  185. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  186. package/dist/PubSubManager/addSub.d.ts.map +1 -1
  187. package/dist/PubSubManager/addSub.js +1 -1
  188. package/dist/PubSubManager/addSub.js.map +1 -1
  189. package/dist/PubSubManager/addSync.d.ts.map +1 -1
  190. package/dist/PubSubManager/addSync.js +4 -7
  191. package/dist/PubSubManager/addSync.js.map +1 -1
  192. package/dist/PubSubManager/getCreatePubSubManagerError.js +6 -6
  193. package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
  194. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  195. package/dist/PubSubManager/initPubSubManager.js +2 -3
  196. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  197. package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
  198. package/dist/PubSubManager/pushSubData.js +0 -2
  199. package/dist/PubSubManager/pushSubData.js.map +1 -1
  200. package/dist/PublishParser/PublishParser.d.ts.map +1 -1
  201. package/dist/PublishParser/PublishParser.js +8 -13
  202. package/dist/PublishParser/PublishParser.js.map +1 -1
  203. package/dist/PublishParser/getFileTableRules.js +1 -1
  204. package/dist/PublishParser/getFileTableRules.js.map +1 -1
  205. package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
  206. package/dist/PublishParser/getSchemaFromPublish.js +6 -13
  207. package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
  208. package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
  209. package/dist/PublishParser/getTableRulesWithoutFileTable.js +14 -19
  210. package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
  211. package/dist/RestApi.d.ts +1 -1
  212. package/dist/RestApi.d.ts.map +1 -1
  213. package/dist/RestApi.js +2 -2
  214. package/dist/RestApi.js.map +1 -1
  215. package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
  216. package/dist/SchemaWatch/SchemaWatch.js +2 -2
  217. package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
  218. package/dist/SyncReplication.d.ts.map +1 -1
  219. package/dist/SyncReplication.js +31 -41
  220. package/dist/SyncReplication.js.map +1 -1
  221. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  222. package/dist/TableConfig/TableConfig.js +7 -9
  223. package/dist/TableConfig/TableConfig.js.map +1 -1
  224. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
  225. package/dist/TableConfig/getConstraintDefinitionQueries.js +1 -6
  226. package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
  227. package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
  228. package/dist/TableConfig/getFutureTableSchema.js +16 -28
  229. package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
  230. package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
  231. package/dist/TableConfig/getTableColumnQueries.js +5 -9
  232. package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
  233. package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
  234. package/dist/TableConfig/initTableConfig.js +22 -25
  235. package/dist/TableConfig/initTableConfig.js.map +1 -1
  236. package/dist/initProstgles.js +1 -1
  237. package/dist/initProstgles.js.map +1 -1
  238. package/dist/onSocketConnected.d.ts.map +1 -1
  239. package/dist/onSocketConnected.js +2 -4
  240. package/dist/onSocketConnected.js.map +1 -1
  241. package/dist/runClientRequest.d.ts.map +1 -1
  242. package/dist/runClientRequest.js +14 -13
  243. package/dist/runClientRequest.js.map +1 -1
  244. package/lib/Auth/AuthHandler.ts +117 -137
  245. package/lib/Auth/AuthTypes.ts +97 -81
  246. package/lib/Auth/authProviders/setEmailProvider.ts +29 -0
  247. package/lib/Auth/authProviders/setOAuthProviders.ts +97 -0
  248. package/lib/Auth/endpoints/getConfirmEmailRequestHandler.ts +39 -0
  249. package/lib/Auth/endpoints/getRegisterRequestHandler.ts +83 -0
  250. package/lib/Auth/setAuthProviders.ts +8 -111
  251. package/lib/Auth/setupAuthRoutes.ts +105 -148
  252. package/lib/Auth/utils/checkDmarc.ts +19 -0
  253. package/lib/Auth/utils/getClientRequestIPsInfo.ts +25 -0
  254. package/lib/Auth/utils/getReturnUrl.ts +13 -0
  255. package/lib/DBEventsManager.ts +12 -26
  256. package/lib/DBSchemaBuilder.ts +1 -1
  257. package/lib/DboBuilder/DboBuilder.ts +23 -52
  258. package/lib/DboBuilder/DboBuilderTypes.ts +9 -23
  259. package/lib/DboBuilder/QueryBuilder/Functions.ts +86 -188
  260. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +11 -36
  261. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +102 -129
  262. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +14 -27
  263. package/lib/DboBuilder/QueryStreamer.ts +26 -57
  264. package/lib/DboBuilder/TableHandler/DataValidator.ts +58 -90
  265. package/lib/DboBuilder/TableHandler/TableHandler.ts +19 -45
  266. package/lib/DboBuilder/TableHandler/delete.ts +9 -18
  267. package/lib/DboBuilder/TableHandler/insert.ts +18 -31
  268. package/lib/DboBuilder/TableHandler/insertTest.ts +1 -1
  269. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +8 -19
  270. package/lib/DboBuilder/TableHandler/update.ts +17 -46
  271. package/lib/DboBuilder/TableHandler/updateFile.ts +18 -21
  272. package/lib/DboBuilder/TableHandler/upsert.ts +7 -24
  273. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +13 -15
  274. package/lib/DboBuilder/ViewHandler/count.ts +1 -1
  275. package/lib/DboBuilder/ViewHandler/find.ts +28 -35
  276. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +8 -30
  277. package/lib/DboBuilder/ViewHandler/getInfo.ts +2 -2
  278. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +16 -32
  279. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +9 -16
  280. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +26 -44
  281. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +58 -82
  282. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +14 -27
  283. package/lib/DboBuilder/dboBuilderUtils.ts +19 -46
  284. package/lib/DboBuilder/getColumns.ts +24 -46
  285. package/lib/DboBuilder/getCondition.ts +18 -30
  286. package/lib/DboBuilder/getSubscribeRelatedTables.ts +2 -2
  287. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +44 -62
  288. package/lib/DboBuilder/insertNestedRecords.ts +67 -135
  289. package/lib/DboBuilder/parseUpdateRules.ts +1 -1
  290. package/lib/DboBuilder/prepareShortestJoinPaths.ts +23 -58
  291. package/lib/DboBuilder/runSQL.ts +41 -76
  292. package/lib/DboBuilder/uploadFile.ts +26 -37
  293. package/lib/FileManager/FileManager.ts +27 -58
  294. package/lib/FileManager/initFileManager.ts +68 -76
  295. package/lib/FileManager/uploadStream.ts +2 -2
  296. package/lib/Filtering.ts +30 -87
  297. package/lib/JSONBValidation/validation.ts +36 -75
  298. package/lib/Logging.ts +1 -1
  299. package/lib/PostgresNotifListenManager.ts +11 -35
  300. package/lib/Prostgles.ts +42 -100
  301. package/lib/PubSubManager/PubSubManager.ts +30 -66
  302. package/lib/PubSubManager/addSub.ts +11 -18
  303. package/lib/PubSubManager/addSync.ts +5 -12
  304. package/lib/PubSubManager/getCreatePubSubManagerError.ts +9 -9
  305. package/lib/PubSubManager/initPubSubManager.ts +7 -13
  306. package/lib/PubSubManager/pushSubData.ts +1 -7
  307. package/lib/PublishParser/PublishParser.ts +8 -12
  308. package/lib/PublishParser/getFileTableRules.ts +1 -1
  309. package/lib/PublishParser/getSchemaFromPublish.ts +26 -42
  310. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +22 -37
  311. package/lib/RestApi.ts +4 -12
  312. package/lib/SchemaWatch/SchemaWatch.ts +11 -24
  313. package/lib/SyncReplication.ts +96 -190
  314. package/lib/TableConfig/TableConfig.ts +16 -38
  315. package/lib/TableConfig/getConstraintDefinitionQueries.ts +2 -8
  316. package/lib/TableConfig/getFutureTableSchema.ts +20 -34
  317. package/lib/TableConfig/getTableColumnQueries.ts +13 -35
  318. package/lib/TableConfig/initTableConfig.ts +40 -64
  319. package/lib/initProstgles.ts +1 -1
  320. package/lib/onSocketConnected.ts +8 -12
  321. package/lib/runClientRequest.ts +31 -54
  322. package/package.json +2 -2
  323. package/dist/Auth/getSafeReturnURL.d.ts.map +0 -1
  324. package/dist/Auth/getSafeReturnURL.js.map +0 -1
  325. package/dist/Auth/setEmailProvider.d.ts.map +0 -1
  326. package/dist/Auth/setEmailProvider.js +0 -133
  327. package/dist/Auth/setEmailProvider.js.map +0 -1
  328. package/dist/DboBuilder/runTransaction.d.ts +0 -9
  329. package/dist/DboBuilder/runTransaction.d.ts.map +0 -1
  330. package/dist/DboBuilder/runTransaction.js +0 -49
  331. package/dist/DboBuilder/runTransaction.js.map +0 -1
  332. package/lib/Auth/setEmailProvider.ts +0 -132
  333. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +0 -27
  334. package/lib/DboBuilder/runTransaction.ts +0 -61
  335. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +0 -3
  336. /package/dist/Auth/{getSafeReturnURL.d.ts → utils/getSafeReturnURL.d.ts} +0 -0
  337. /package/dist/Auth/{getSafeReturnURL.js → utils/getSafeReturnURL.js} +0 -0
  338. /package/lib/Auth/{getSafeReturnURL.ts → utils/getSafeReturnURL.ts} +0 -0
@@ -18,7 +18,7 @@ export async function _delete(
18
18
  params?: DeleteParams,
19
19
  param3_unused?: undefined,
20
20
  tableRules?: TableRule,
21
- localParams?: LocalParams,
21
+ localParams?: LocalParams
22
22
  ): Promise<any> {
23
23
  const start = Date.now();
24
24
  try {
@@ -39,11 +39,10 @@ export async function _delete(
39
39
  returningFields = tableRules.delete.returningFields;
40
40
  validate = tableRules.delete.validate;
41
41
 
42
- if (!returningFields) returningFields = tableRules?.select?.fields;
43
- if (!returningFields) returningFields = tableRules?.delete?.filterFields;
42
+ if (!returningFields) returningFields = tableRules.select?.fields;
43
+ if (!returningFields) returningFields = tableRules.delete.filterFields;
44
44
 
45
- if (!filterFields)
46
- throw ` Invalid delete rule for ${this.name}. filterFields missing `;
45
+ if (!filterFields) throw ` Invalid delete rule for ${this.name}. filterFields missing `;
47
46
 
48
47
  /* Safely test publish rules */
49
48
  if (testRule) {
@@ -63,15 +62,10 @@ export async function _delete(
63
62
  returnType: 1,
64
63
  };
65
64
  const good_params = Object.keys(good_paramsObj);
66
- const bad_params = Object.keys(params).filter(
67
- (k) => !good_params.includes(k),
68
- );
69
- if (bad_params && bad_params.length)
65
+ const bad_params = Object.keys(params).filter((k) => !good_params.includes(k));
66
+ if (bad_params.length)
70
67
  throw (
71
- "Invalid params: " +
72
- bad_params.join(", ") +
73
- " \n Expecting: " +
74
- good_params.join(", ")
68
+ "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ")
75
69
  );
76
70
  }
77
71
 
@@ -98,10 +92,7 @@ export async function _delete(
98
92
  throw "Returning dissallowed";
99
93
  }
100
94
  returningQuery = this.makeReturnQuery(
101
- await this.prepareReturning(
102
- returning,
103
- this.parseFieldFilter(returningFields),
104
- ),
95
+ await this.prepareReturning(returning, this.parseFieldFilter(returningFields))
105
96
  );
106
97
  queryWithoutRLS += returningQuery;
107
98
  }
@@ -124,7 +115,7 @@ export async function _delete(
124
115
  const result = await onDeleteFromFileTable.bind(this)({
125
116
  localParams,
126
117
  queryType,
127
- returningQuery: returnQuery ? returnQuery : undefined,
118
+ returningQuery: undefined,
128
119
  filterOpts,
129
120
  });
130
121
  await this._log({
@@ -18,7 +18,7 @@ export async function insert(
18
18
  insertParams?: InsertParams,
19
19
  param3_unused?: undefined,
20
20
  tableRules?: TableRule,
21
- localParams?: LocalParams,
21
+ localParams?: LocalParams
22
22
  ): Promise<any | any[] | boolean> {
23
23
  const ACTION = "insert";
24
24
  const start = Date.now();
@@ -28,8 +28,7 @@ export async function insert(
28
28
 
29
29
  const finalDBtx = this.getFinalDBtx(localParams);
30
30
  const rule = tableRules?.[ACTION];
31
- const { postValidate, checkFilter, validate, allowedNestedInserts } =
32
- rule ?? {};
31
+ const { postValidate, checkFilter, validate, allowedNestedInserts } = rule ?? {};
33
32
 
34
33
  /** Post validate and checkFilter require a transaction dbo handler because they happen after the insert */
35
34
  if (postValidate || checkFilter) {
@@ -40,14 +39,16 @@ export async function insert(
40
39
  insertParams,
41
40
  param3_unused,
42
41
  tableRules,
43
- localParams,
44
- ),
42
+ localParams
43
+ )
45
44
  );
46
45
  }
47
46
  }
48
47
 
49
- const { testOnly, fields, forcedData, returningFields } =
50
- await insertTest.bind(this)({ tableRules, localParams });
48
+ const { testOnly, fields, forcedData, returningFields } = await insertTest.bind(this)({
49
+ tableRules,
50
+ localParams,
51
+ });
51
52
  if (testOnly) {
52
53
  return true;
53
54
  }
@@ -57,8 +58,7 @@ export async function insert(
57
58
  !nestedInsert ||
58
59
  !allowedNestedInserts.some(
59
60
  (ai) =>
60
- ai.table === nestedInsert?.previousTable &&
61
- ai.column === nestedInsert.referencingColumn,
61
+ ai.table === nestedInsert.previousTable && ai.column === nestedInsert.referencingColumn
62
62
  )
63
63
  ) {
64
64
  throw `Direct inserts not allowed. Only nested inserts from these tables: ${JSON.stringify(allowedNestedInserts)} `;
@@ -88,11 +88,9 @@ export async function insert(
88
88
  }
89
89
 
90
90
  return row;
91
- }),
91
+ })
92
92
  );
93
- const preValidatedrowOrRows = isMultiInsert
94
- ? preValidatedRows
95
- : preValidatedRows[0]!;
93
+ const preValidatedrowOrRows = isMultiInsert ? preValidatedRows : preValidatedRows[0]!;
96
94
 
97
95
  /**
98
96
  * If media it will: upload file and continue insert
@@ -132,12 +130,10 @@ export async function insert(
132
130
  tableHandler: this,
133
131
  });
134
132
  return { validatedRow, allowedCols };
135
- }),
133
+ })
136
134
  );
137
135
  const validatedRows = validatedData.map((d) => d.validatedRow);
138
- const allowedCols = Array.from(
139
- new Set(validatedData.flatMap((d) => d.allowedCols)),
140
- );
136
+ const allowedCols = Array.from(new Set(validatedData.flatMap((d) => d.allowedCols)));
141
137
  const dbTx = finalDBtx || this.dboBuilder.dbo;
142
138
  const validationOptions = {
143
139
  validate: validate as ValidateRowBasic,
@@ -161,9 +157,7 @@ export async function insert(
161
157
  if (!pkeyNames.length) {
162
158
  throw "Cannot do DoUpdate on a table without a primary key";
163
159
  }
164
- const nonPkeyCols = allowedCols
165
- .filter((c) => !pkeyNames.includes(c))
166
- .map((v) => asName(v));
160
+ const nonPkeyCols = allowedCols.filter((c) => !pkeyNames.includes(c)).map((v) => asName(v));
167
161
  if (!nonPkeyCols.length) {
168
162
  throw "Cannot on conflict DoUpdate on a table with only primary key columns";
169
163
  }
@@ -188,7 +182,7 @@ export async function insert(
188
182
  if (returnQuery) return queryWithRLS;
189
183
 
190
184
  if (this.dboBuilder.prostgles.opts.DEBUG_MODE) {
191
- console.log(this.tx?.t.ctx?.start, "insert in " + this.name, data);
185
+ console.log(this.tx?.t.ctx.start, "insert in " + this.name, data);
192
186
  }
193
187
 
194
188
  const result = await runInsertUpdateQuery({
@@ -255,16 +249,9 @@ const validateInsertParams = (params: InsertParams | undefined) => {
255
249
  onConflict: 1,
256
250
  };
257
251
  const good_params = Object.keys(good_paramsObj);
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
- );
252
+ const bad_params = Object.keys(params).filter((k) => !good_params.includes(k));
253
+ if (bad_params.length)
254
+ throw "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ");
268
255
  }
269
256
  };
270
257
 
@@ -31,7 +31,7 @@ export async function insertTest(
31
31
 
32
32
  /* If no returning fields specified then take select fields as returning or the allowed insert fields */
33
33
  if (!returningFields)
34
- returningFields = tableRules?.select?.fields || tableRules?.insert.fields;
34
+ returningFields = tableRules.select?.fields || tableRules.insert.fields;
35
35
 
36
36
  if (!fields)
37
37
  throw ` invalid insert rule for ${this.name} -> fields missing `;
@@ -1,16 +1,6 @@
1
- import {
2
- AnyObject,
3
- asName,
4
- FieldFilter,
5
- InsertParams,
6
- UpdateParams,
7
- } from "prostgles-types";
1
+ import { AnyObject, asName, FieldFilter, InsertParams, UpdateParams } from "prostgles-types";
8
2
  import { InsertRule, UpdateRule } from "../../PublishParser/PublishParser";
9
- import {
10
- getClientErrorFromPGError,
11
- LocalParams,
12
- withUserRLS,
13
- } from "../DboBuilder";
3
+ import { getClientErrorFromPGError, LocalParams, withUserRLS } from "../DboBuilder";
14
4
  import { getSelectItemQuery, TableHandler } from "./TableHandler";
15
5
 
16
6
  type RunInsertUpdateQueryArgs = {
@@ -52,7 +42,7 @@ export const runInsertUpdateQuery = async (args: RunInsertUpdateQueryArgs) => {
52
42
 
53
43
  const returningSelectItems = await tableHandler.prepareReturning(
54
44
  params?.returning,
55
- tableHandler.parseFieldFilter(returningFields),
45
+ tableHandler.parseFieldFilter(returningFields)
56
46
  );
57
47
  const { checkFilter, postValidate } = rule ?? {};
58
48
  let checkCondition = "WHERE FALSE";
@@ -122,7 +112,7 @@ export const runInsertUpdateQuery = async (args: RunInsertUpdateQueryArgs) => {
122
112
  localParams,
123
113
  view: tableHandler,
124
114
  allowedKeys: allowedFieldKeys,
125
- }),
115
+ })
126
116
  );
127
117
  } else {
128
118
  result = await tableHandler.db
@@ -133,26 +123,25 @@ export const runInsertUpdateQuery = async (args: RunInsertUpdateQueryArgs) => {
133
123
  localParams,
134
124
  view: tableHandler,
135
125
  allowedKeys: allowedFieldKeys,
136
- }),
126
+ })
137
127
  );
138
128
  }
139
129
 
140
130
  if (checkFilter && result.failed_check?.length) {
141
131
  throw new Error(
142
- `Insert ${name} records failed the check condition: ${JSON.stringify(checkFilter, null, 2)}`,
132
+ `Insert ${name} records failed the check condition: ${JSON.stringify(checkFilter, null, 2)}`
143
133
  );
144
134
  }
145
135
 
146
136
  const finalDBtx = tableHandler.getFinalDBtx(localParams);
147
137
  if (postValidate) {
148
138
  if (!finalDBtx) throw new Error("Unexpected: no dbTX for postValidate");
149
- if (!localParams)
150
- throw new Error("Unexpected: no localParams for postValidate");
139
+ if (!localParams) throw new Error("Unexpected: no localParams for postValidate");
151
140
 
152
141
  const rows = result.modified ?? [];
153
142
  for await (const row of rows) {
154
143
  await postValidate({
155
- row: row ?? {},
144
+ row: row,
156
145
  dbx: finalDBtx as any,
157
146
  localParams,
158
147
  });
@@ -7,10 +7,7 @@ import {
7
7
  getSerializedClientErrorFromPGError,
8
8
  withUserRLS,
9
9
  } from "../DboBuilder";
10
- import {
11
- getInsertTableRules,
12
- getReferenceColumnInserts,
13
- } from "../insertNestedRecords";
10
+ import { getInsertTableRules, getReferenceColumnInserts } from "../insertNestedRecords";
14
11
  import { prepareNewData } from "./DataValidator";
15
12
  import { runInsertUpdateQuery } from "./runInsertUpdateQuery";
16
13
  import { TableHandler } from "./TableHandler";
@@ -22,7 +19,7 @@ export async function update(
22
19
  _newData: AnyObject,
23
20
  params?: UpdateParams,
24
21
  tableRules?: TableRule,
25
- localParams?: LocalParams,
22
+ localParams?: LocalParams
26
23
  ): Promise<AnyObject | void> {
27
24
  const ACTION = "update";
28
25
  const start = Date.now();
@@ -31,13 +28,7 @@ export async function update(
31
28
  const finalDBtx = this.getFinalDBtx(localParams);
32
29
  const wrapInTx = () =>
33
30
  this.dboBuilder.getTX((_dbtx) =>
34
- _dbtx[this.name]?.[ACTION]?.(
35
- filter,
36
- _newData,
37
- params,
38
- tableRules,
39
- localParams,
40
- ),
31
+ _dbtx[this.name]?.[ACTION]?.(filter, _newData, params, tableRules, localParams)
41
32
  );
42
33
  const rule = tableRules?.[ACTION];
43
34
  if (rule?.postValidate && !finalDBtx) {
@@ -54,28 +45,18 @@ export async function update(
54
45
  }));
55
46
  }
56
47
 
57
- const parsedRules = await this.parseUpdateRules(
58
- filter,
59
- params,
60
- tableRules,
61
- localParams,
62
- );
48
+ const parsedRules = await this.parseUpdateRules(filter, params, tableRules, localParams);
63
49
  if (localParams?.testRule) {
64
50
  return parsedRules;
65
51
  }
66
52
 
53
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
67
54
  if (!newData || !Object.keys(newData).length) {
68
55
  throw "no update data provided\nEXPECTING db.table.update(filter, updateData, options)";
69
56
  }
70
57
 
71
- const {
72
- fields,
73
- validateRow,
74
- forcedData,
75
- returningFields,
76
- forcedFilter,
77
- filterFields,
78
- } = parsedRules;
58
+ const { fields, validateRow, forcedData, returningFields, forcedFilter, filterFields } =
59
+ parsedRules;
79
60
  const { removeDisallowedFields = false } = params || {};
80
61
  const { returnQuery = false } = localParams ?? {};
81
62
 
@@ -87,15 +68,10 @@ export async function update(
87
68
  multi: 1,
88
69
  };
89
70
  const good_params = Object.keys(good_paramsObj);
90
- const bad_params = Object.keys(params).filter(
91
- (k) => !good_params.includes(k),
92
- );
93
- if (bad_params && bad_params.length)
71
+ const bad_params = Object.keys(params).filter((k) => !good_params.includes(k));
72
+ if (bad_params.length)
94
73
  throw (
95
- "Invalid params: " +
96
- bad_params.join(", ") +
97
- " \n Expecting: " +
98
- good_params.join(", ")
74
+ "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ")
99
75
  );
100
76
  }
101
77
 
@@ -134,18 +110,13 @@ export async function update(
134
110
  }
135
111
  await Promise.all(
136
112
  nestedInserts.map(async (nestedInsert) => {
137
- const nesedTableHandler = finalDBtx[nestedInsert.tableName] as
138
- | TableHandler
139
- | undefined;
113
+ const nesedTableHandler = finalDBtx[nestedInsert.tableName] as TableHandler | undefined;
140
114
  if (!nesedTableHandler)
141
115
  throw `nestedInsert Tablehandler not found for ${nestedInsert.tableName}`;
142
- const refTableRules = !localParams
143
- ? undefined
144
- : await getInsertTableRules(
145
- this,
146
- nestedInsert.tableName,
147
- localParams,
148
- );
116
+ const refTableRules =
117
+ !localParams ? undefined : (
118
+ await getInsertTableRules(this, nestedInsert.tableName, localParams)
119
+ );
149
120
  const nestedLocalParams: LocalParams = {
150
121
  ...localParams,
151
122
  nestedInsert: {
@@ -160,7 +131,7 @@ export async function update(
160
131
  { returning: "*" },
161
132
  undefined,
162
133
  refTableRules,
163
- nestedLocalParams,
134
+ nestedLocalParams
164
135
  );
165
136
  nestedInsertsResultsObj[nestedInsert.col] = nestedInsertResult;
166
137
 
@@ -169,7 +140,7 @@ export async function update(
169
140
  ...nestedInsert,
170
141
  result: nestedInsertResult,
171
142
  };
172
- }),
143
+ })
173
144
  );
174
145
  }
175
146
 
@@ -1,14 +1,9 @@
1
1
  import { AnyObject, getKeys, isObject } from "prostgles-types";
2
- import { LocalParams, Media } from "../DboBuilder";
3
- import {
4
- TableRule,
5
- ValidateRow,
6
- ValidateRowBasic,
7
- } from "../../PublishParser/PublishParser";
2
+ import { TableRule, ValidateRowBasic } from "../../PublishParser/PublishParser";
8
3
  import { omitKeys } from "../../PubSubManager/PubSubManager";
4
+ import { LocalParams, Media } from "../DboBuilder";
9
5
  import { isFile, uploadFile } from "../uploadFile";
10
6
  import { TableHandler } from "./TableHandler";
11
- import { DBOFullyTyped } from "../../DBSchemaBuilder";
12
7
 
13
8
  type Args = {
14
9
  newData: AnyObject;
@@ -18,7 +13,7 @@ type Args = {
18
13
  };
19
14
  export const updateFile = async function (
20
15
  this: TableHandler,
21
- { filter, newData, tableRules, localParams }: Args,
16
+ { filter, newData, tableRules, localParams }: Args
22
17
  ): Promise<{ newData: AnyObject }> {
23
18
  const rule = tableRules?.update;
24
19
 
@@ -28,31 +23,33 @@ export const updateFile = async function (
28
23
  if (localParams?.testRule) {
29
24
  return { newData: {} };
30
25
  }
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
26
+ const existingMediaId: string =
27
+ (
28
+ !(
29
+ !isObject(filter) ||
30
+ getKeys(filter).join() !== "id" ||
31
+ typeof (filter as any).id !== "string"
32
+ )
33
+ ) ?
34
+ (filter as any).id
38
35
  : undefined;
39
36
  if (!existingMediaId) {
40
37
  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" } `,
38
+ `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
39
  );
43
40
  }
44
41
  if (!isFile(newData)) {
45
42
  throw new Error(
46
- "Expecting { data: Buffer, name: string } but received " +
47
- JSON.stringify(newData),
43
+ "Expecting { data: Buffer, name: string } but received " + JSON.stringify(newData)
48
44
  );
49
45
  }
50
46
 
51
47
  const fileManager = this.dboBuilder.prostgles.fileManager;
52
48
  if (!fileManager) throw new Error("fileManager missing");
53
49
  if (rule?.validate && !localParams) throw new Error("localParams missing");
54
- const validate: ValidateRowBasic | undefined = rule?.validate
55
- ? async (row) => {
50
+ const validate: ValidateRowBasic | undefined =
51
+ rule?.validate ?
52
+ async (row) => {
56
53
  return rule.validate!({
57
54
  update: row,
58
55
  filter,
@@ -63,7 +60,7 @@ export const updateFile = async function (
63
60
  : undefined;
64
61
 
65
62
  const existingFile: Media | undefined = await (
66
- (localParams?.tx?.dbTX?.[this.name] as TableHandler) || this
63
+ (localParams?.tx?.dbTX[this.name] as TableHandler | undefined) || this
67
64
  ).findOne({ id: existingMediaId });
68
65
 
69
66
  if (!existingFile?.name) throw new Error("Existing file record not found");
@@ -1,10 +1,7 @@
1
1
  import { AnyObject, UpdateParams } from "prostgles-types";
2
2
  import { TableRule } from "../../PublishParser/publishTypesAndUtils";
3
3
  import { Filter, LocalParams } from "../DboBuilderTypes";
4
- import {
5
- getErrorAsObject,
6
- getSerializedClientErrorFromPGError,
7
- } from "../dboBuilderUtils";
4
+ import { getErrorAsObject, getSerializedClientErrorFromPGError } from "../dboBuilderUtils";
8
5
  import { TableHandler } from "./TableHandler";
9
6
 
10
7
  export const upsert = async function (
@@ -13,35 +10,23 @@ export const upsert = async function (
13
10
  newData: AnyObject,
14
11
  params?: UpdateParams,
15
12
  table_rules?: TableRule,
16
- localParams?: LocalParams,
13
+ localParams?: LocalParams
17
14
  ): Promise<any> {
18
15
  const start = Date.now();
19
16
  try {
20
17
  const _upsert = async function (tblH: TableHandler) {
21
18
  return tblH
22
- .find(
23
- filter,
24
- { select: "", limit: 1 },
25
- undefined,
26
- table_rules,
27
- localParams,
28
- )
19
+ .find(filter, { select: "", limit: 1 }, undefined, table_rules, localParams)
29
20
  .then((exists) => {
30
- if (exists && exists.length) {
31
- return tblH.update(
32
- filter,
33
- newData,
34
- params,
35
- table_rules,
36
- localParams,
37
- );
21
+ if (exists.length) {
22
+ return tblH.update(filter, newData, params, table_rules, localParams);
38
23
  } else {
39
24
  return tblH.insert(
40
25
  { ...newData, ...filter },
41
26
  params,
42
27
  undefined,
43
28
  table_rules,
44
- localParams,
29
+ localParams
45
30
  );
46
31
  }
47
32
  });
@@ -49,9 +34,7 @@ export const upsert = async function (
49
34
 
50
35
  /* Do it within a transaction to ensure consisency */
51
36
  if (!this.tx) {
52
- return this.dboBuilder.getTX((dbTX) =>
53
- _upsert(dbTX[this.name] as TableHandler),
54
- );
37
+ return this.dboBuilder.getTX((dbTX) => _upsert(dbTX[this.name] as TableHandler));
55
38
  }
56
39
  const result = await _upsert(this);
57
40
  await this._log({
@@ -75,8 +75,6 @@ export class ViewHandler {
75
75
  tx?: { t: pgPromise.ITask<{}>; dbTX: TableHandlers },
76
76
  joinPaths?: JoinPaths
77
77
  ) {
78
- if (!db || !tableOrViewInfo) throw "";
79
-
80
78
  this.db = db;
81
79
  this.tx = tx;
82
80
  this.joinPaths = joinPaths;
@@ -92,7 +90,7 @@ export class ViewHandler {
92
90
  this.column_names = tableOrViewInfo.columns.map((c) => c.name);
93
91
 
94
92
  this.dboBuilder = dboBuilder;
95
- this.joins = this.dboBuilder.joins ?? [];
93
+ this.joins = this.dboBuilder.joins;
96
94
  this.columnsForTypes.map(({ name, udt_name, is_nullable }) => {
97
95
  this.tsColumnDefs.push(
98
96
  `${escapeTSNames(name)}?: ${postgresToTsType(udt_name) as string} ${is_nullable ? " | null " : ""};`
@@ -111,7 +109,7 @@ export class ViewHandler {
111
109
  error?: any;
112
110
  }) => {
113
111
  if (localParams?.noLog) {
114
- if (localParams?.socket || localParams.httpReq) {
112
+ if (localParams.socket || localParams.httpReq) {
115
113
  throw new Error("noLog option is not allowed from a remote client");
116
114
  }
117
115
  return;
@@ -244,9 +242,9 @@ export class ViewHandler {
244
242
 
245
243
  const res: ValidatedTableRules = {
246
244
  allColumns,
247
- getColumns: tableRules?.getColumns ?? true,
248
- getInfo: tableRules?.getColumns ?? true,
249
- } as ValidatedTableRules;
245
+ getColumns: tableRules.getColumns ?? true,
246
+ getInfo: tableRules.getColumns ?? true,
247
+ };
250
248
 
251
249
  if (tableRules.select) {
252
250
  if (!tableRules.select.fields) return throwFieldsErr("select");
@@ -258,7 +256,7 @@ export class ViewHandler {
258
256
  tableRules.select.maxLimit !== maxLimit
259
257
  ) {
260
258
  const ml = tableRules.select.maxLimit;
261
- if (ml !== null && (!Number.isInteger(ml) || ml < 0))
259
+ if (!Number.isInteger(ml) || ml < 0)
262
260
  throw (
263
261
  ` Invalid publish.${this.name}.select.maxLimit -> expecting a positive integer OR null but got ` +
264
262
  ml
@@ -287,8 +285,8 @@ export class ViewHandler {
287
285
  forcedData: { ...tableRules.update.forcedData },
288
286
  forcedFilter: { ...tableRules.update.forcedFilter },
289
287
  returningFields: getFirstSpecified(
290
- tableRules.update?.returningFields,
291
- tableRules?.select?.fields,
288
+ tableRules.update.returningFields,
289
+ tableRules.select?.fields,
292
290
  tableRules.update.fields
293
291
  ),
294
292
  filterFields: this.parseFieldFilter(tableRules.update.filterFields),
@@ -303,7 +301,7 @@ export class ViewHandler {
303
301
  forcedData: { ...tableRules.insert.forcedData },
304
302
  returningFields: getFirstSpecified(
305
303
  tableRules.insert.returningFields,
306
- tableRules?.select?.fields,
304
+ tableRules.select?.fields,
307
305
  tableRules.insert.fields
308
306
  ),
309
307
  };
@@ -317,7 +315,7 @@ export class ViewHandler {
317
315
  filterFields: this.parseFieldFilter(tableRules.delete.filterFields),
318
316
  returningFields: getFirstSpecified(
319
317
  tableRules.delete.returningFields,
320
- tableRules?.select?.fields,
318
+ tableRules.select?.fields,
321
319
  tableRules.delete.filterFields
322
320
  ),
323
321
  };
@@ -476,10 +474,10 @@ export class ViewHandler {
476
474
  if (allowed_cols) {
477
475
  allowedFields = this.parseFieldFilter(allowed_cols, allow_empty);
478
476
  }
479
- let col_names = (resultFields || []).filter((f) => !allowedFields || allowedFields.includes(f));
477
+ let col_names = resultFields.filter((f) => allowedFields.includes(f));
480
478
 
481
479
  /* Maintain allowed cols order */
482
- if (selectParams === "*" && allowedFields && allowedFields.length) {
480
+ if (selectParams === "*" && allowedFields.length) {
483
481
  col_names = allowedFields;
484
482
  }
485
483
 
@@ -525,7 +523,7 @@ export class ViewHandler {
525
523
  * Throw error if illegal keys found in object
526
524
  */
527
525
  export const validateObj = <T extends Record<string, any>>(obj: T, allowedKeys: string[]): T => {
528
- if (obj && Object.keys(obj).length) {
526
+ if (Object.keys(obj).length) {
529
527
  const invalid_keys = Object.keys(obj).filter((k) => !allowedKeys.includes(k));
530
528
  if (invalid_keys.length) {
531
529
  throw "Invalid/Illegal fields found: " + invalid_keys.join(", ");
@@ -22,7 +22,7 @@ export async function count(
22
22
  try {
23
23
  const result = await this.find(
24
24
  filter,
25
- { select: selectParamsWithoutLimit?.select ?? "", limit: 0 },
25
+ { select: selectParamsWithoutLimit.select ?? "", limit: 0 },
26
26
  undefined,
27
27
  table_rules,
28
28
  localParams,