prostgles-server 4.2.183 → 4.2.185

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/.github/workflows/main.yml +15 -15
  2. package/.prettierignore +2 -0
  3. package/README.md +1 -1
  4. package/dist/Auth/AuthHandler.d.ts +1 -1
  5. package/dist/Auth/AuthHandler.d.ts.map +1 -1
  6. package/dist/Auth/AuthHandler.js +64 -32
  7. package/dist/Auth/AuthHandler.js.map +1 -1
  8. package/dist/Auth/AuthTypes.d.ts +15 -1
  9. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  10. package/dist/Auth/getSafeReturnURL.d.ts.map +1 -1
  11. package/dist/Auth/getSafeReturnURL.js.map +1 -1
  12. package/dist/Auth/sendEmail.d.ts.map +1 -1
  13. package/dist/Auth/sendEmail.js +6 -6
  14. package/dist/Auth/sendEmail.js.map +1 -1
  15. package/dist/Auth/setAuthProviders.d.ts +1 -1
  16. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  17. package/dist/Auth/setAuthProviders.js +15 -8
  18. package/dist/Auth/setAuthProviders.js.map +1 -1
  19. package/dist/Auth/setEmailProvider.d.ts.map +1 -1
  20. package/dist/Auth/setEmailProvider.js +23 -4
  21. package/dist/Auth/setEmailProvider.js.map +1 -1
  22. package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
  23. package/dist/Auth/setupAuthRoutes.js +27 -9
  24. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  25. package/dist/DBEventsManager.d.ts.map +1 -1
  26. package/dist/DBEventsManager.js +24 -19
  27. package/dist/DBEventsManager.js.map +1 -1
  28. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  29. package/dist/DBSchemaBuilder.js +18 -5
  30. package/dist/DBSchemaBuilder.js.map +1 -1
  31. package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
  32. package/dist/DboBuilder/DboBuilder.js +7 -2
  33. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  34. package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
  35. package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
  36. package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
  37. package/dist/DboBuilder/QueryBuilder/Functions.d.ts +2 -2
  38. package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  39. package/dist/DboBuilder/QueryBuilder/Functions.js +293 -173
  40. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  41. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +2 -2
  42. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  43. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +52 -29
  44. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  45. package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
  46. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +51 -32
  47. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
  48. package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
  49. package/dist/DboBuilder/QueryBuilder/getNewQuery.js +48 -25
  50. package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
  51. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
  52. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
  53. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +32 -23
  54. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
  55. package/dist/DboBuilder/QueryStreamer.d.ts +2 -2
  56. package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
  57. package/dist/DboBuilder/QueryStreamer.js +68 -23
  58. package/dist/DboBuilder/QueryStreamer.js.map +1 -1
  59. package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
  60. package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
  61. package/dist/DboBuilder/TableHandler/DataValidator.js +79 -43
  62. package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
  63. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  64. package/dist/DboBuilder/TableHandler/TableHandler.js +39 -15
  65. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  66. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  67. package/dist/DboBuilder/TableHandler/delete.js +44 -13
  68. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  69. package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
  70. package/dist/DboBuilder/TableHandler/insert.js +81 -22
  71. package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
  72. package/dist/DboBuilder/TableHandler/insertTest.d.ts.map +1 -1
  73. package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
  74. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +1 -1
  75. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
  76. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +7 -4
  77. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
  78. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
  79. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -5
  80. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
  81. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  82. package/dist/DboBuilder/TableHandler/update.js +16 -4
  83. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  84. package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
  85. package/dist/DboBuilder/TableHandler/updateBatch.js +33 -10
  86. package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
  87. package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
  88. package/dist/DboBuilder/TableHandler/updateFile.js +24 -6
  89. package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
  90. package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
  91. package/dist/DboBuilder/TableHandler/upsert.js +22 -6
  92. package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
  93. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +5 -5
  94. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  95. package/dist/DboBuilder/ViewHandler/ViewHandler.js +64 -36
  96. package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
  97. package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
  98. package/dist/DboBuilder/ViewHandler/count.js +21 -7
  99. package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
  100. package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
  101. package/dist/DboBuilder/ViewHandler/find.js +76 -22
  102. package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
  103. package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
  104. package/dist/DboBuilder/ViewHandler/getExistsCondition.js +19 -10
  105. package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
  106. package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts.map +1 -1
  107. package/dist/DboBuilder/ViewHandler/getExistsFilters.js +12 -5
  108. package/dist/DboBuilder/ViewHandler/getExistsFilters.js.map +1 -1
  109. package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
  110. package/dist/DboBuilder/ViewHandler/getInfo.js +27 -9
  111. package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
  112. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +2 -2
  113. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
  114. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +42 -23
  115. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
  116. package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -1
  117. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +22 -9
  118. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -1
  119. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts +4 -4
  120. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
  121. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +13 -11
  122. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
  123. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts +1 -1
  124. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
  125. package/dist/DboBuilder/ViewHandler/parseJoinPath.js +44 -29
  126. package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
  127. package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
  128. package/dist/DboBuilder/ViewHandler/prepareSortItems.js +36 -27
  129. package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
  130. package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
  131. package/dist/DboBuilder/ViewHandler/prepareWhere.js +16 -12
  132. package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
  133. package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
  134. package/dist/DboBuilder/ViewHandler/size.js +24 -7
  135. package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
  136. package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
  137. package/dist/DboBuilder/ViewHandler/subscribe.js +40 -12
  138. package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
  139. package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts.map +1 -1
  140. package/dist/DboBuilder/ViewHandler/validateViewRules.js +20 -5
  141. package/dist/DboBuilder/ViewHandler/validateViewRules.js.map +1 -1
  142. package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
  143. package/dist/DboBuilder/dboBuilderUtils.js +18 -7
  144. package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
  145. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  146. package/dist/DboBuilder/getColumns.js +22 -7
  147. package/dist/DboBuilder/getColumns.js.map +1 -1
  148. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  149. package/dist/DboBuilder/getCondition.js +43 -30
  150. package/dist/DboBuilder/getCondition.js.map +1 -1
  151. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
  152. package/dist/DboBuilder/getSubscribeRelatedTables.js +38 -27
  153. package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
  154. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
  155. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +9 -9
  156. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
  157. package/dist/DboBuilder/insertNestedRecords.d.ts +3 -3
  158. package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
  159. package/dist/DboBuilder/insertNestedRecords.js +79 -44
  160. package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
  161. package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
  162. package/dist/DboBuilder/parseUpdateRules.js +38 -14
  163. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  164. package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
  165. package/dist/DboBuilder/prepareShortestJoinPaths.js +56 -31
  166. package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
  167. package/dist/DboBuilder/runSQL.d.ts.map +1 -1
  168. package/dist/DboBuilder/runSQL.js +41 -21
  169. package/dist/DboBuilder/runSQL.js.map +1 -1
  170. package/dist/DboBuilder/runTransaction.d.ts +1 -1
  171. package/dist/DboBuilder/runTransaction.d.ts.map +1 -1
  172. package/dist/DboBuilder/runTransaction.js +2 -2
  173. package/dist/DboBuilder/runTransaction.js.map +1 -1
  174. package/dist/DboBuilder/sqlErrCodeToMsg.d.ts.map +1 -1
  175. package/dist/DboBuilder/sqlErrCodeToMsg.js +297 -38
  176. package/dist/DboBuilder/sqlErrCodeToMsg.js.map +1 -1
  177. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  178. package/dist/DboBuilder/uploadFile.js +33 -9
  179. package/dist/DboBuilder/uploadFile.js.map +1 -1
  180. package/dist/Event_Trigger_Tags.d.ts +1 -1
  181. package/dist/Event_Trigger_Tags.d.ts.map +1 -1
  182. package/dist/Event_Trigger_Tags.js +1 -1
  183. package/dist/Event_Trigger_Tags.js.map +1 -1
  184. package/dist/FileManager/FileManager.d.ts.map +1 -1
  185. package/dist/FileManager/FileManager.js +6 -3
  186. package/dist/FileManager/FileManager.js.map +1 -1
  187. package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
  188. package/dist/FileManager/getValidatedFileType.js +18 -16
  189. package/dist/FileManager/getValidatedFileType.js.map +1 -1
  190. package/dist/FileManager/initFileManager.d.ts.map +1 -1
  191. package/dist/FileManager/initFileManager.js +7 -1
  192. package/dist/FileManager/initFileManager.js.map +1 -1
  193. package/dist/FileManager/upload.d.ts +1 -1
  194. package/dist/FileManager/upload.d.ts.map +1 -1
  195. package/dist/FileManager/upload.js +3 -3
  196. package/dist/FileManager/upload.js.map +1 -1
  197. package/dist/FileManager/uploadStream.d.ts +1 -1
  198. package/dist/FileManager/uploadStream.d.ts.map +1 -1
  199. package/dist/FileManager/uploadStream.js +6 -7
  200. package/dist/FileManager/uploadStream.js.map +1 -1
  201. package/dist/Filtering.d.ts +3 -3
  202. package/dist/Filtering.d.ts.map +1 -1
  203. package/dist/Filtering.js +70 -37
  204. package/dist/Filtering.js.map +1 -1
  205. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
  206. package/dist/JSONBValidation/validate_jsonb_schema_sql.js +1 -4
  207. package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
  208. package/dist/JSONBValidation/validation.d.ts.map +1 -1
  209. package/dist/JSONBValidation/validation.js +46 -24
  210. package/dist/JSONBValidation/validation.js.map +1 -1
  211. package/dist/Logging.d.ts +2 -2
  212. package/dist/Logging.d.ts.map +1 -1
  213. package/dist/PostgresNotifListenManager.d.ts.map +1 -1
  214. package/dist/PostgresNotifListenManager.js +20 -22
  215. package/dist/PostgresNotifListenManager.js.map +1 -1
  216. package/dist/Prostgles.d.ts +1 -1
  217. package/dist/Prostgles.d.ts.map +1 -1
  218. package/dist/Prostgles.js +37 -11
  219. package/dist/Prostgles.js.map +1 -1
  220. package/dist/ProstglesTypes.d.ts.map +1 -1
  221. package/dist/ProstglesTypes.js +6 -1
  222. package/dist/ProstglesTypes.js.map +1 -1
  223. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  224. package/dist/PubSubManager/PubSubManager.js +10 -5
  225. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  226. package/dist/PubSubManager/addSub.d.ts.map +1 -1
  227. package/dist/PubSubManager/addSub.js +4 -6
  228. package/dist/PubSubManager/addSub.js.map +1 -1
  229. package/dist/PubSubManager/addSync.d.ts.map +1 -1
  230. package/dist/PubSubManager/addSync.js +10 -6
  231. package/dist/PubSubManager/addSync.js.map +1 -1
  232. package/dist/PubSubManager/getCreatePubSubManagerError.d.ts.map +1 -1
  233. package/dist/PubSubManager/getCreatePubSubManagerError.js +3 -1
  234. package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
  235. package/dist/PubSubManager/getPubSubManagerInitQuery.d.ts.map +1 -1
  236. package/dist/PubSubManager/getPubSubManagerInitQuery.js +8 -8
  237. package/dist/PubSubManager/getPubSubManagerInitQuery.js.map +1 -1
  238. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  239. package/dist/PubSubManager/initPubSubManager.js +7 -9
  240. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  241. package/dist/PubSubManager/notifListener.d.ts.map +1 -1
  242. package/dist/PubSubManager/notifListener.js +23 -12
  243. package/dist/PubSubManager/notifListener.js.map +1 -1
  244. package/dist/PubSubManager/orphanTriggerCheck.d.ts.map +1 -1
  245. package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
  246. package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
  247. package/dist/PubSubManager/pushSubData.js +1 -1
  248. package/dist/PubSubManager/pushSubData.js.map +1 -1
  249. package/dist/PublishParser/PublishParser.d.ts +1 -1
  250. package/dist/PublishParser/PublishParser.d.ts.map +1 -1
  251. package/dist/PublishParser/PublishParser.js +25 -14
  252. package/dist/PublishParser/PublishParser.js.map +1 -1
  253. package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
  254. package/dist/PublishParser/getFileTableRules.js +23 -16
  255. package/dist/PublishParser/getFileTableRules.js.map +1 -1
  256. package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
  257. package/dist/PublishParser/getSchemaFromPublish.js +39 -16
  258. package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
  259. package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
  260. package/dist/PublishParser/getTableRulesWithoutFileTable.js +42 -22
  261. package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
  262. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  263. package/dist/PublishParser/publishTypesAndUtils.js +5 -1
  264. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  265. package/dist/RestApi.d.ts +1 -1
  266. package/dist/RestApi.d.ts.map +1 -1
  267. package/dist/RestApi.js +1 -1
  268. package/dist/RestApi.js.map +1 -1
  269. package/dist/SchemaWatch/SchemaWatch.d.ts +2 -2
  270. package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
  271. package/dist/SchemaWatch/SchemaWatch.js +11 -9
  272. package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
  273. package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts.map +1 -1
  274. package/dist/SchemaWatch/getValidatedWatchSchemaType.js +3 -3
  275. package/dist/SchemaWatch/getValidatedWatchSchemaType.js.map +1 -1
  276. package/dist/SchemaWatch/getWatchSchemaTagList.d.ts.map +1 -1
  277. package/dist/SchemaWatch/getWatchSchemaTagList.js +12 -6
  278. package/dist/SchemaWatch/getWatchSchemaTagList.js.map +1 -1
  279. package/dist/SyncReplication.d.ts.map +1 -1
  280. package/dist/SyncReplication.js +84 -42
  281. package/dist/SyncReplication.js.map +1 -1
  282. package/dist/TableConfig/TableConfig.d.ts +5 -5
  283. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  284. package/dist/TableConfig/TableConfig.js +18 -5
  285. package/dist/TableConfig/TableConfig.js.map +1 -1
  286. package/dist/TableConfig/getColumnDefinitionQuery.d.ts +2 -2
  287. package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
  288. package/dist/TableConfig/getColumnDefinitionQuery.js +20 -9
  289. package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
  290. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +3 -3
  291. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
  292. package/dist/TableConfig/getConstraintDefinitionQueries.js +12 -7
  293. package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
  294. package/dist/TableConfig/getFutureTableSchema.d.ts +1 -1
  295. package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
  296. package/dist/TableConfig/getFutureTableSchema.js +6 -4
  297. package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
  298. package/dist/TableConfig/getPGIndexes.d.ts.map +1 -1
  299. package/dist/TableConfig/getPGIndexes.js.map +1 -1
  300. package/dist/TableConfig/getTableColumnQueries.d.ts +1 -1
  301. package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
  302. package/dist/TableConfig/getTableColumnQueries.js +38 -19
  303. package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
  304. package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
  305. package/dist/TableConfig/initTableConfig.js +91 -43
  306. package/dist/TableConfig/initTableConfig.js.map +1 -1
  307. package/dist/index.d.ts.map +1 -1
  308. package/dist/index.js.map +1 -1
  309. package/dist/initProstgles.d.ts.map +1 -1
  310. package/dist/initProstgles.js +14 -10
  311. package/dist/initProstgles.js.map +1 -1
  312. package/dist/onSocketConnected.d.ts.map +1 -1
  313. package/dist/onSocketConnected.js +38 -16
  314. package/dist/onSocketConnected.js.map +1 -1
  315. package/dist/runClientRequest.d.ts.map +1 -1
  316. package/dist/runClientRequest.js +33 -14
  317. package/dist/runClientRequest.js.map +1 -1
  318. package/dist/shortestPath.d.ts.map +1 -1
  319. package/dist/shortestPath.js +1 -1
  320. package/dist/shortestPath.js.map +1 -1
  321. package/dist/typeTests/dboTypeCheck.js.map +1 -1
  322. package/examples/full-example-typescript/DBoGenerated.d.ts +112 -54
  323. package/examples/full-example-typescript/DBoGenerated.js +3 -3
  324. package/examples/full-example-typescript/home.html +28 -26
  325. package/examples/full-example-typescript/index.d.ts +1 -1
  326. package/examples/full-example-typescript/index.js +80 -53
  327. package/examples/full-example-vanilla/home.html +151 -125
  328. package/examples/server/javascript/index.js +17 -19
  329. package/lib/Auth/AuthHandler.ts +234 -155
  330. package/lib/Auth/AuthTypes.ts +27 -4
  331. package/lib/Auth/getSafeReturnURL.ts +35 -21
  332. package/lib/Auth/sendEmail.ts +34 -31
  333. package/lib/Auth/setAuthProviders.ts +94 -71
  334. package/lib/Auth/setEmailProvider.ts +45 -27
  335. package/lib/Auth/setupAuthRoutes.ts +164 -100
  336. package/lib/DBEventsManager.ts +87 -65
  337. package/lib/DBSchemaBuilder.ts +62 -28
  338. package/lib/DboBuilder/DboBuilder.ts +45 -21
  339. package/lib/DboBuilder/DboBuilderTypes.ts +99 -95
  340. package/lib/DboBuilder/QueryBuilder/Functions.ts +862 -580
  341. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +202 -141
  342. package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +199 -124
  343. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +209 -148
  344. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +101 -75
  345. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +10 -5
  346. package/lib/DboBuilder/QueryStreamer.ts +207 -100
  347. package/lib/DboBuilder/TableHandler/DataValidator.ts +253 -148
  348. package/lib/DboBuilder/TableHandler/TableHandler.ts +155 -60
  349. package/lib/DboBuilder/TableHandler/delete.ts +82 -29
  350. package/lib/DboBuilder/TableHandler/insert.ts +177 -81
  351. package/lib/DboBuilder/TableHandler/insertTest.ts +13 -7
  352. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +35 -21
  353. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +95 -45
  354. package/lib/DboBuilder/TableHandler/update.ts +54 -14
  355. package/lib/DboBuilder/TableHandler/updateBatch.ts +59 -21
  356. package/lib/DboBuilder/TableHandler/updateFile.ts +57 -26
  357. package/lib/DboBuilder/TableHandler/upsert.ts +58 -13
  358. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +264 -121
  359. package/lib/DboBuilder/ViewHandler/count.ts +56 -25
  360. package/lib/DboBuilder/ViewHandler/find.ts +153 -68
  361. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +59 -32
  362. package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +31 -19
  363. package/lib/DboBuilder/ViewHandler/getInfo.ts +47 -16
  364. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +91 -57
  365. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +51 -29
  366. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +35 -29
  367. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +130 -76
  368. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +140 -92
  369. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +66 -26
  370. package/lib/DboBuilder/ViewHandler/size.ts +56 -22
  371. package/lib/DboBuilder/ViewHandler/subscribe.ts +122 -46
  372. package/lib/DboBuilder/ViewHandler/validateViewRules.ts +39 -14
  373. package/lib/DboBuilder/dboBuilderUtils.ts +41 -18
  374. package/lib/DboBuilder/getColumns.ts +44 -12
  375. package/lib/DboBuilder/getCondition.ts +120 -79
  376. package/lib/DboBuilder/getSubscribeRelatedTables.ts +144 -83
  377. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +61 -44
  378. package/lib/DboBuilder/insertNestedRecords.ts +370 -235
  379. package/lib/DboBuilder/parseUpdateRules.ts +117 -61
  380. package/lib/DboBuilder/prepareShortestJoinPaths.ts +115 -56
  381. package/lib/DboBuilder/runSQL.ts +135 -74
  382. package/lib/DboBuilder/runTransaction.ts +27 -16
  383. package/lib/DboBuilder/sqlErrCodeToMsg.ts +502 -244
  384. package/lib/DboBuilder/uploadFile.ts +67 -31
  385. package/lib/Event_Trigger_Tags.ts +6 -4
  386. package/lib/FileManager/FileManager.ts +53 -21
  387. package/lib/FileManager/getValidatedFileType.ts +79 -35
  388. package/lib/FileManager/initFileManager.ts +21 -9
  389. package/lib/FileManager/upload.ts +21 -19
  390. package/lib/FileManager/uploadStream.ts +33 -34
  391. package/lib/Filtering.ts +249 -197
  392. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +2 -7
  393. package/lib/JSONBValidation/validation.ts +147 -82
  394. package/lib/Logging.ts +107 -97
  395. package/lib/PostgresNotifListenManager.ts +96 -63
  396. package/lib/Prostgles.ts +106 -35
  397. package/lib/ProstglesTypes.ts +31 -9
  398. package/lib/PubSubManager/PubSubManager.ts +62 -27
  399. package/lib/PubSubManager/addSub.ts +56 -37
  400. package/lib/PubSubManager/addSync.ts +50 -33
  401. package/lib/PubSubManager/getCreatePubSubManagerError.ts +29 -21
  402. package/lib/PubSubManager/getPubSubManagerInitQuery.ts +45 -27
  403. package/lib/PubSubManager/initPubSubManager.ts +27 -18
  404. package/lib/PubSubManager/notifListener.ts +77 -59
  405. package/lib/PubSubManager/orphanTriggerCheck.ts +5 -4
  406. package/lib/PubSubManager/pushSubData.ts +11 -9
  407. package/lib/PublishParser/PublishParser.ts +102 -44
  408. package/lib/PublishParser/getFileTableRules.ts +97 -54
  409. package/lib/PublishParser/getSchemaFromPublish.ts +146 -74
  410. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +101 -51
  411. package/lib/PublishParser/publishTypesAndUtils.ts +74 -23
  412. package/lib/RestApi.ts +10 -2
  413. package/lib/SchemaWatch/SchemaWatch.ts +52 -34
  414. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +1 -1
  415. package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +32 -22
  416. package/lib/SchemaWatch/getWatchSchemaTagList.ts +24 -16
  417. package/lib/SyncReplication.ts +376 -190
  418. package/lib/TableConfig/TableConfig.ts +200 -136
  419. package/lib/TableConfig/getColumnDefinitionQuery.ts +65 -44
  420. package/lib/TableConfig/getConstraintDefinitionQueries.ts +41 -25
  421. package/lib/TableConfig/getFutureTableSchema.ts +31 -21
  422. package/lib/TableConfig/getPGIndexes.ts +7 -4
  423. package/lib/TableConfig/getTableColumnQueries.ts +101 -54
  424. package/lib/TableConfig/initTableConfig.ts +192 -101
  425. package/lib/index.ts +6 -5
  426. package/lib/initProstgles.ts +57 -51
  427. package/lib/onSocketConnected.ts +75 -40
  428. package/lib/runClientRequest.ts +148 -79
  429. package/lib/shortestPath.ts +80 -76
  430. package/lib/typeTests/DBoGenerated.d.ts +5 -1
  431. package/lib/typeTests/dboTypeCheck.ts +8 -8
  432. package/package.json +1 -1
@@ -1,7 +1,13 @@
1
-
2
1
  import { SelectParams, isObject } from "prostgles-types";
3
2
  import { TableRule } from "../../PublishParser/PublishParser";
4
- 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";
5
11
  import { getNewQuery } from "../QueryBuilder/getNewQuery";
6
12
  import { getSelectQuery } from "../QueryBuilder/getSelectQuery";
7
13
  import { NewQuery } from "../QueryBuilder/QueryBuilder";
@@ -9,68 +15,104 @@ import { canRunSQL } from "../runSQL";
9
15
  import { TableHandler } from "../TableHandler/TableHandler";
10
16
  import { ViewHandler } from "./ViewHandler";
11
17
 
12
- export const find = async function(this: ViewHandler, filter?: Filter, selectParams?: SelectParams, _?: undefined, tableRules?: TableRule, localParams?: LocalParams): Promise<any[]> {
18
+ export const find = async function (
19
+ this: ViewHandler,
20
+ filter?: Filter,
21
+ selectParams?: SelectParams,
22
+ _?: undefined,
23
+ tableRules?: TableRule,
24
+ localParams?: LocalParams,
25
+ ): Promise<any[]> {
13
26
  const start = Date.now();
14
- const command = selectParams?.limit === 1 && selectParams?.returnType === "row"? "findOne" : "find";
27
+ const command =
28
+ selectParams?.limit === 1 && selectParams?.returnType === "row"
29
+ ? "findOne"
30
+ : "find";
15
31
  try {
16
32
  filter = filter || {};
17
- const allowedReturnTypes = Object.keys({
18
- row: 1, statement: 1, value: 1, values: 1,
19
- "statement-no-rls": 1, "statement-where": 1,
33
+ const allowedReturnTypes = Object.keys({
34
+ row: 1,
35
+ statement: 1,
36
+ value: 1,
37
+ values: 1,
38
+ "statement-no-rls": 1,
39
+ "statement-where": 1,
20
40
  } satisfies Record<Required<SelectParams>["returnType"], 1>);
21
41
 
22
42
  const { returnType } = selectParams || {};
23
43
  if (returnType && !allowedReturnTypes.includes(returnType)) {
24
- throw `returnType (${returnType}) can only be ${allowedReturnTypes.join(" OR ")}`
44
+ throw `returnType (${returnType}) can only be ${allowedReturnTypes.join(" OR ")}`;
25
45
  }
26
46
 
27
47
  const { testRule = false } = localParams || {};
28
48
 
29
49
  if (testRule) return [];
30
50
  if (selectParams) {
31
- const validParamNames = Object.keys({
32
- "select": 1, "orderBy": 1, "offset": 1, "limit": 1,
33
- "returnType": 1, "groupBy": 1, "having": 1
51
+ const validParamNames = Object.keys({
52
+ select: 1,
53
+ orderBy: 1,
54
+ offset: 1,
55
+ limit: 1,
56
+ returnType: 1,
57
+ groupBy: 1,
58
+ having: 1,
34
59
  } satisfies Record<keyof SelectParams, 1>);
35
-
36
- const invalidParams = Object.keys(selectParams).filter(k => !validParamNames.includes(k as any));
37
- if (invalidParams && invalidParams.length) throw "Invalid params: " + invalidParams.join(", ") + " \n Expecting: " + validParamNames.join(", ");
60
+
61
+ const invalidParams = Object.keys(selectParams).filter(
62
+ (k) => !validParamNames.includes(k as any),
63
+ );
64
+ if (invalidParams && invalidParams.length)
65
+ throw (
66
+ "Invalid params: " +
67
+ invalidParams.join(", ") +
68
+ " \n Expecting: " +
69
+ validParamNames.join(", ")
70
+ );
38
71
  }
39
72
 
40
73
  /* Validate publish */
41
- if (tableRules) {
42
-
74
+ if (tableRules) {
43
75
  if (!tableRules.select) throw "select rules missing for " + this.name;
44
- const fields = tableRules.select.fields;
76
+ const fields = tableRules.select.fields;
45
77
  const maxLimit = tableRules.select.maxLimit;
46
78
 
47
- if (<any>tableRules.select !== "*" && typeof tableRules.select !== "boolean" && !isObject(tableRules.select)) {
79
+ if (
80
+ <any>tableRules.select !== "*" &&
81
+ typeof tableRules.select !== "boolean" &&
82
+ !isObject(tableRules.select)
83
+ ) {
48
84
  throw `\nInvalid publish.${this.name}.select\nExpecting any of: "*" | { fields: "*" } | true | false`;
49
85
  }
50
86
  if (!fields) {
51
87
  throw ` invalid ${this.name}.select rule -> fields (required) setting missing.\nExpecting any of: "*" | { col_name: false } | { col1: true, col2: true }`;
52
88
  }
53
89
  if (maxLimit && !Number.isInteger(maxLimit)) {
54
- throw ` invalid publish.${this.name}.select.maxLimit -> expecting integer but got ` + maxLimit;
90
+ throw (
91
+ ` invalid publish.${this.name}.select.maxLimit -> expecting integer but got ` +
92
+ maxLimit
93
+ );
55
94
  }
56
95
  }
57
96
 
58
- const _selectParams = selectParams ?? {}
59
- const selectParamsLimitCheck = localParams?.bypassLimit && !Number.isFinite(_selectParams.limit)? { ..._selectParams, limit: null } : { limit: 1000, ..._selectParams }
97
+ const _selectParams = selectParams ?? {};
98
+ const selectParamsLimitCheck =
99
+ localParams?.bypassLimit && !Number.isFinite(_selectParams.limit)
100
+ ? { ..._selectParams, limit: null }
101
+ : { limit: 1000, ..._selectParams };
60
102
  const newQuery = await getNewQuery(
61
- this,
62
- filter,
63
- selectParamsLimitCheck,
64
- _,
65
- tableRules,
66
- localParams,
103
+ this,
104
+ filter,
105
+ selectParamsLimitCheck,
106
+ _,
107
+ tableRules,
108
+ localParams,
67
109
  );
68
110
 
69
111
  const queryWithoutRLS = getSelectQuery(
70
- this,
71
- newQuery,
72
- undefined,
73
- !!selectParamsLimitCheck?.groupBy
112
+ this,
113
+ newQuery,
114
+ undefined,
115
+ !!selectParamsLimitCheck?.groupBy,
74
116
  );
75
117
 
76
118
  const queryWithRLS = withUserRLS(localParams, queryWithoutRLS);
@@ -80,74 +122,117 @@ export const find = async function(this: ViewHandler, filter?: Filter, selectPar
80
122
  return [];
81
123
  } catch (e) {
82
124
  console.error(e);
83
- throw `Internal error: publish config is not valid for publish.${this.name}.select `
125
+ throw `Internal error: publish config is not valid for publish.${this.name}.select `;
84
126
  }
85
127
  }
86
128
 
87
129
  /** Used for subscribe */
88
- if(localParams?.returnNewQuery) return (newQuery as unknown as any);
130
+ if (localParams?.returnNewQuery) return newQuery as unknown as any;
89
131
  if (localParams?.returnQuery) {
90
- if(localParams?.returnQuery === "where-condition"){
132
+ if (localParams?.returnQuery === "where-condition") {
91
133
  return newQuery.whereOpts.condition as any;
92
134
  }
93
- return ((localParams?.returnQuery === "noRLS"? queryWithoutRLS : queryWithRLS) as unknown as any[]);
135
+ return (localParams?.returnQuery === "noRLS"
136
+ ? queryWithoutRLS
137
+ : queryWithRLS) as unknown as any[];
94
138
  }
95
139
 
96
- const result = await runQueryReturnType({
97
- queryWithoutRLS,
98
- queryWithRLS,
99
- returnType,
100
- handler: this,
140
+ const result = await runQueryReturnType({
141
+ queryWithoutRLS,
142
+ queryWithRLS,
143
+ returnType,
144
+ handler: this,
101
145
  localParams,
102
146
  newQuery,
103
147
  });
104
148
 
105
- await this._log({ command, localParams, data: { filter, selectParams }, duration: Date.now() - start });
149
+ await this._log({
150
+ command,
151
+ localParams,
152
+ data: { filter, selectParams },
153
+ duration: Date.now() - start,
154
+ });
106
155
  return result;
107
156
  } catch (e) {
108
- this._log({ command, localParams, data: { filter, selectParams }, duration: Date.now() - start, error: getErrorAsObject(e) });
109
- throw getSerializedClientErrorFromPGError(e, { type: "tableMethod", localParams, view: this });
157
+ this._log({
158
+ command,
159
+ localParams,
160
+ data: { filter, selectParams },
161
+ duration: Date.now() - start,
162
+ error: getErrorAsObject(e),
163
+ });
164
+ throw getSerializedClientErrorFromPGError(e, {
165
+ type: "tableMethod",
166
+ localParams,
167
+ view: this,
168
+ });
110
169
  }
111
- }
170
+ };
112
171
 
113
172
  type RunQueryReturnTypeArgs = {
114
173
  queryWithRLS: string;
115
174
  queryWithoutRLS: string;
116
- returnType: SelectParams["returnType"];
117
- handler: ViewHandler | TableHandler;
175
+ returnType: SelectParams["returnType"];
176
+ handler: ViewHandler | TableHandler;
118
177
  localParams: LocalParams | undefined;
119
178
  newQuery: NewQuery | undefined;
120
179
  };
121
180
 
122
- export const runQueryReturnType = async ({ newQuery, handler, localParams, queryWithRLS, queryWithoutRLS, returnType,}: RunQueryReturnTypeArgs) => {
123
-
181
+ export const runQueryReturnType = async ({
182
+ newQuery,
183
+ handler,
184
+ localParams,
185
+ queryWithRLS,
186
+ queryWithoutRLS,
187
+ returnType,
188
+ }: RunQueryReturnTypeArgs) => {
124
189
  const query = queryWithRLS;
125
- const sqlTypes = ["statement", "statement-no-rls", "statement-where"] as const;
126
- if(!returnType || returnType === "values"){
127
-
128
- return handler.dbHandler.any(query).then(data => {
129
- if (returnType === "values") {
130
- return data.map(d => Object.values(d)[0]);
131
- }
132
- return data;
133
- }).catch(err => getClientErrorFromPGError(err, { type: "tableMethod", localParams, view: handler, }));
134
-
135
- } else if (sqlTypes.some(v => v === returnType)) {
190
+ const sqlTypes = [
191
+ "statement",
192
+ "statement-no-rls",
193
+ "statement-where",
194
+ ] as const;
195
+ if (!returnType || returnType === "values") {
196
+ return handler.dbHandler
197
+ .any(query)
198
+ .then((data) => {
199
+ if (returnType === "values") {
200
+ return data.map((d) => Object.values(d)[0]);
201
+ }
202
+ return data;
203
+ })
204
+ .catch((err) =>
205
+ getClientErrorFromPGError(err, {
206
+ type: "tableMethod",
207
+ localParams,
208
+ view: handler,
209
+ }),
210
+ );
211
+ } else if (sqlTypes.some((v) => v === returnType)) {
136
212
  if (!(await canRunSQL(handler.dboBuilder.prostgles, localParams))) {
137
- throw `Not allowed: { returnType: ${JSON.stringify(returnType)} } requires execute sql privileges `
213
+ throw `Not allowed: { returnType: ${JSON.stringify(returnType)} } requires execute sql privileges `;
138
214
  }
139
- if(returnType === "statement-no-rls"){
215
+ if (returnType === "statement-no-rls") {
140
216
  return queryWithoutRLS as any;
141
217
  }
142
- if(returnType === "statement-where"){
143
- if(!newQuery) throw `returnType ${returnType} not possible for this command type`;
218
+ if (returnType === "statement-where") {
219
+ if (!newQuery)
220
+ throw `returnType ${returnType} not possible for this command type`;
144
221
  return newQuery.whereOpts.condition as any;
145
222
  }
146
223
  return query as unknown as any[];
147
-
148
224
  } else if (["row", "value"].includes(returnType)) {
149
- return handler.dbHandler.oneOrNone(query).then(data => {
150
- return (data && returnType === "value") ? Object.values(data)[0] : data;
151
- }).catch(err => getClientErrorFromPGError(err, { type: "tableMethod", localParams, view: handler, }));
225
+ return handler.dbHandler
226
+ .oneOrNone(query)
227
+ .then((data) => {
228
+ return data && returnType === "value" ? Object.values(data)[0] : data;
229
+ })
230
+ .catch((err) =>
231
+ getClientErrorFromPGError(err, {
232
+ type: "tableMethod",
233
+ localParams,
234
+ view: handler,
235
+ }),
236
+ );
152
237
  }
153
- }
238
+ };
@@ -1,22 +1,40 @@
1
- import { AnyObject, EXISTS_KEY, EXISTS_KEYS, FieldFilter, asName } from "prostgles-types";
1
+ import {
2
+ AnyObject,
3
+ EXISTS_KEY,
4
+ EXISTS_KEYS,
5
+ FieldFilter,
6
+ asName,
7
+ } from "prostgles-types";
2
8
  import { LocalParams, ExistsFilterConfig } from "../DboBuilder";
3
9
  import { ViewHandler } from "./ViewHandler";
4
10
  import { TableRule } from "../../PublishParser/PublishParser";
5
11
  import { TableHandler } from "../TableHandler/TableHandler";
6
12
  import { getTableJoinQuery } from "./getTableJoinQuery";
7
13
 
8
-
9
- export async function getExistsCondition(this: ViewHandler, eConfig: ExistsFilterConfig, localParams: LocalParams | undefined): Promise<string> {
10
-
14
+ export async function getExistsCondition(
15
+ this: ViewHandler,
16
+ eConfig: ExistsFilterConfig,
17
+ localParams: LocalParams | undefined,
18
+ ): Promise<string> {
11
19
  const thisTable = this.name;
12
- const isNotExists = ["$notExists", "$notExistsJoined"].includes(eConfig.existType);
20
+ const isNotExists = ["$notExists", "$notExistsJoined"].includes(
21
+ eConfig.existType,
22
+ );
13
23
 
14
24
  const { targetTableFilter } = eConfig;
15
25
 
16
26
  /* Nested $exists is not allowed */
17
- if (targetTableFilter && Object.keys(targetTableFilter).find(fk => EXISTS_KEYS.includes(fk as EXISTS_KEY))) {
18
- throw { stack: ["prepareExistCondition()"], message: "Nested exists dissallowed" };
19
- }
27
+ if (
28
+ targetTableFilter &&
29
+ Object.keys(targetTableFilter).find((fk) =>
30
+ EXISTS_KEYS.includes(fk as EXISTS_KEY),
31
+ )
32
+ ) {
33
+ throw {
34
+ stack: ["prepareExistCondition()"],
35
+ message: "Nested exists dissallowed",
36
+ };
37
+ }
20
38
 
21
39
  let t2Rules: TableRule | undefined = undefined,
22
40
  forcedFilter: AnyObject | undefined,
@@ -24,41 +42,51 @@ export async function getExistsCondition(this: ViewHandler, eConfig: ExistsFilte
24
42
  tableAlias;
25
43
 
26
44
  /* Check if allowed to view data - forcedFilters will bypass this check through isForcedFilterBypass */
27
- if (localParams?.isRemoteRequest && !localParams?.socket && !localParams?.httpReq) {
45
+ if (
46
+ localParams?.isRemoteRequest &&
47
+ !localParams?.socket &&
48
+ !localParams?.httpReq
49
+ ) {
28
50
  throw "Unexpected: localParams isRemoteRequest and missing socket/httpReq: ";
29
51
  }
30
- const targetTable = eConfig.isJoined? eConfig.parsedPath.at(-1)!.table : eConfig.targetTable;
31
- if ((localParams?.socket || localParams?.httpReq) && this.dboBuilder.publishParser) {
32
-
33
- t2Rules = await this.dboBuilder.publishParser.getValidatedRequestRuleWusr({
34
- tableName: targetTable,
35
- command: "find",
36
- localParams
37
- }) as TableRule;
52
+ const targetTable = eConfig.isJoined
53
+ ? eConfig.parsedPath.at(-1)!.table
54
+ : eConfig.targetTable;
55
+ if (
56
+ (localParams?.socket || localParams?.httpReq) &&
57
+ this.dboBuilder.publishParser
58
+ ) {
59
+ t2Rules = (await this.dboBuilder.publishParser.getValidatedRequestRuleWusr({
60
+ tableName: targetTable,
61
+ command: "find",
62
+ localParams,
63
+ })) as TableRule;
38
64
 
39
65
  if (!t2Rules || !t2Rules.select) throw "Dissallowed";
40
66
  ({ forcedFilter, filterFields } = t2Rules.select);
41
67
  }
42
68
 
43
- const tableHandler = this.dboBuilder.dbo[targetTable] as TableHandler
44
- const finalWhere = (await tableHandler.prepareWhere({
45
- select: undefined,
46
- filter: targetTableFilter,
47
- forcedFilter,
48
- filterFields,
49
- addWhere: false,
50
- tableAlias,
51
- localParams,
52
- tableRule: t2Rules
53
- })).where
69
+ const tableHandler = this.dboBuilder.dbo[targetTable] as TableHandler;
70
+ const finalWhere = (
71
+ await tableHandler.prepareWhere({
72
+ select: undefined,
73
+ filter: targetTableFilter,
74
+ forcedFilter,
75
+ filterFields,
76
+ addWhere: false,
77
+ tableAlias,
78
+ localParams,
79
+ tableRule: t2Rules,
80
+ })
81
+ ).where;
54
82
 
55
83
  let innerQuery = [
56
84
  `SELECT 1`,
57
85
  `FROM ${asName(targetTable)}`,
58
- `${finalWhere ? `WHERE ${finalWhere}` : ""}`
86
+ `${finalWhere ? `WHERE ${finalWhere}` : ""}`,
59
87
  ].join("\n");
60
88
 
61
- if(eConfig.isJoined){
89
+ if (eConfig.isJoined) {
62
90
  const { query } = getTableJoinQuery({
63
91
  path: eConfig.parsedPath,
64
92
  rootTableAlias: thisTable,
@@ -69,5 +97,4 @@ export async function getExistsCondition(this: ViewHandler, eConfig: ExistsFilte
69
97
  }
70
98
 
71
99
  return `${isNotExists ? " NOT " : " "} EXISTS ( \n${innerQuery} \n) `;
72
-
73
- }
100
+ }
@@ -3,46 +3,53 @@ import { ExistsFilterConfig } from "../DboBuilder";
3
3
  import { ViewHandler } from "./ViewHandler";
4
4
  import { parseJoinPath } from "./parseJoinPath";
5
5
 
6
- export const getExistsFilters = (filter: any, viewHandler: ViewHandler): ExistsFilterConfig[] => {
7
-
6
+ export const getExistsFilters = (
7
+ filter: any,
8
+ viewHandler: ViewHandler,
9
+ ): ExistsFilterConfig[] => {
8
10
  /* Exists join filter */
9
- const ERR = "Invalid exists filter. \nExpecting something like: \n | { $exists: { tableName.tableName2: Filter } } \n | { $exists: { \"**.tableName3\": Filter } }\n | { path: string[]; filter: AnyObject }"
11
+ const ERR =
12
+ 'Invalid exists filter. \nExpecting something like: \n | { $exists: { tableName.tableName2: Filter } } \n | { $exists: { "**.tableName3": Filter } }\n | { path: string[]; filter: AnyObject }';
10
13
  const existsConfigs: ExistsFilterConfig[] = getKeys(filter)
11
- .filter((k ): k is typeof EXISTS_KEYS[number] => EXISTS_KEYS.includes(k as EXISTS_KEY) && !!Object.keys(filter[k] ?? {}).length)
12
- .map(key => {
13
-
14
+ .filter(
15
+ (k): k is (typeof EXISTS_KEYS)[number] =>
16
+ EXISTS_KEYS.includes(k as EXISTS_KEY) &&
17
+ !!Object.keys(filter[k] ?? {}).length,
18
+ )
19
+ .map((key) => {
14
20
  const isJoined = key.toLowerCase().includes("join");
15
21
  const filterValue = filter[key];
16
22
 
17
-
18
23
  /**
19
- * type ExistsJoined =
24
+ * type ExistsJoined =
20
25
  * | { "table1.table2": { column: filterValue } }
21
26
  * | { path: string[]; filter: AnyObject }
22
27
  */
23
28
  const dataKeys = Object.keys(filterValue);
24
- const isDetailed = dataKeys.length === 2 && dataKeys.every(key => ["path", "filter"].includes(key));
29
+ const isDetailed =
30
+ dataKeys.length === 2 &&
31
+ dataKeys.every((key) => ["path", "filter"].includes(key));
25
32
 
26
33
  const firstKey = dataKeys[0]!;
27
34
 
28
35
  /**
29
36
  * Non joined exists are never detailed
30
37
  */
31
- if(!isJoined){
32
- const format = `Expecting single table in exists filter. Example: { $exists: { tableName: Filter } }`
33
- if(isDetailed){
34
- throw `Exists filters cannot be detailed. ${format}`
38
+ if (!isJoined) {
39
+ const format = `Expecting single table in exists filter. Example: { $exists: { tableName: Filter } }`;
40
+ if (isDetailed) {
41
+ throw `Exists filters cannot be detailed. ${format}`;
35
42
  }
36
43
  const targetTable = firstKey;
37
44
  if (!viewHandler.dboBuilder.dbo[targetTable]) {
38
- throw `Table ${JSON.stringify(targetTable)} not found. ${format}`
45
+ throw `Table ${JSON.stringify(targetTable)} not found. ${format}`;
39
46
  }
40
47
  const res: ExistsFilterConfig = {
41
48
  isJoined: false,
42
49
  existType: key as EXISTS_KEY,
43
50
  targetTableFilter: filterValue[firstKey],
44
51
  targetTable: firstKey,
45
- }
52
+ };
46
53
  return res;
47
54
  }
48
55
 
@@ -50,12 +57,17 @@ export const getExistsFilters = (filter: any, viewHandler: ViewHandler): ExistsF
50
57
  * Prevent some errors with table names that contain "."
51
58
  */
52
59
  const firstKeyIsATable = !!viewHandler.dboBuilder.dbo[firstKey];
53
- const [path, targetTableFilter] = isDetailed? [filterValue.path, filterValue.filter] : [(firstKeyIsATable? [firstKey] : firstKey.split(".")), filterValue[firstKey]];
60
+ const [path, targetTableFilter] = isDetailed
61
+ ? [filterValue.path, filterValue.filter]
62
+ : [
63
+ firstKeyIsATable ? [firstKey] : firstKey.split("."),
64
+ filterValue[firstKey],
65
+ ];
54
66
 
55
67
  if (!path.length) {
56
68
  throw ERR + "\nBut got: " + JSON.stringify(filterValue);
57
69
  }
58
-
70
+
59
71
  return {
60
72
  isJoined: true,
61
73
  existType: key as EXISTS_KEY,
@@ -67,8 +79,8 @@ export const getExistsFilters = (filter: any, viewHandler: ViewHandler): ExistsF
67
79
  allowMultiOrJoin: true,
68
80
  }),
69
81
  targetTableFilter,
70
- }
82
+ };
71
83
  });
72
84
 
73
85
  return existsConfigs;
74
- }
86
+ };
@@ -1,37 +1,68 @@
1
- import {
2
- TableInfo as TInfo
3
- } from "prostgles-types/dist";
1
+ import { TableInfo as TInfo } from "prostgles-types/dist";
4
2
  import { TableRule } from "../../PublishParser/PublishParser";
5
3
  import { LocalParams } from "../DboBuilder";
6
4
  import { ViewHandler } from "./ViewHandler";
7
5
 
8
- export async function getInfo(this: ViewHandler, lang?: string, param2?: any, param3?: any, tableRules?: TableRule, localParams?: LocalParams): Promise<TInfo> {
6
+ export async function getInfo(
7
+ this: ViewHandler,
8
+ lang?: string,
9
+ param2?: any,
10
+ param3?: any,
11
+ tableRules?: TableRule,
12
+ localParams?: LocalParams,
13
+ ): Promise<TInfo> {
9
14
  const p = this.getValidatedRules(tableRules, localParams);
10
15
  if (!p.getInfo) {
11
- await this._log({ command: "getInfo", localParams, data: { lang }, duration: 0, error: "Not allowed" });
16
+ await this._log({
17
+ command: "getInfo",
18
+ localParams,
19
+ data: { lang },
20
+ duration: 0,
21
+ error: "Not allowed",
22
+ });
12
23
  throw "Not allowed";
13
24
  }
14
25
 
15
26
  const fileTableName = this.dboBuilder.prostgles?.opts?.fileTable?.tableName;
16
27
 
17
- await this._log({ command: "getInfo", localParams, data: { lang }, duration: 0 });
18
- const allowedFieldsToSelect = this.parseFieldFilter(tableRules?.select?.fields);
28
+ await this._log({
29
+ command: "getInfo",
30
+ localParams,
31
+ data: { lang },
32
+ duration: 0,
33
+ });
34
+ const allowedFieldsToSelect = this.parseFieldFilter(
35
+ tableRules?.select?.fields,
36
+ );
19
37
  return {
20
38
  oid: this.tableOrViewInfo.oid,
21
39
  comment: this.tableOrViewInfo.comment,
22
- info: this.dboBuilder.prostgles?.tableConfigurator?.getTableInfo({ tableName: this.name, lang }),
23
- isFileTable: !this.is_media? undefined : {
24
- allowedNestedInserts: tableRules?.insert?.allowedNestedInserts
25
- },
40
+ info: this.dboBuilder.prostgles?.tableConfigurator?.getTableInfo({
41
+ tableName: this.name,
42
+ lang,
43
+ }),
44
+ isFileTable: !this.is_media
45
+ ? undefined
46
+ : {
47
+ allowedNestedInserts: tableRules?.insert?.allowedNestedInserts,
48
+ },
26
49
  isView: this.is_view,
27
- hasFiles: Boolean(!this.is_media && fileTableName && this.columns.some(c => c.references?.some(r => r.ftable === fileTableName))),
50
+ hasFiles: Boolean(
51
+ !this.is_media &&
52
+ fileTableName &&
53
+ this.columns.some((c) =>
54
+ c.references?.some((r) => r.ftable === fileTableName),
55
+ ),
56
+ ),
28
57
  fileTableName,
29
58
  dynamicRules: {
30
- update: Boolean(tableRules?.update?.dynamicFields?.length)
59
+ update: Boolean(tableRules?.update?.dynamicFields?.length),
31
60
  },
32
61
  /**
33
62
  * Only show column groups that are fully allowed to be selected by the user
34
63
  */
35
- uniqueColumnGroups: this.tableOrViewInfo.uniqueColumnGroups?.filter(g => !localParams || g.every(c => allowedFieldsToSelect.includes(c))),
36
- }
37
- }
64
+ uniqueColumnGroups: this.tableOrViewInfo.uniqueColumnGroups?.filter(
65
+ (g) => !localParams || g.every((c) => allowedFieldsToSelect.includes(c)),
66
+ ),
67
+ };
68
+ }