prostgles-server 4.2.183 → 4.2.184

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 (430) 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.map +1 -1
  5. package/dist/Auth/AuthHandler.js +71 -33
  6. package/dist/Auth/AuthHandler.js.map +1 -1
  7. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  8. package/dist/Auth/getSafeReturnURL.d.ts.map +1 -1
  9. package/dist/Auth/getSafeReturnURL.js.map +1 -1
  10. package/dist/Auth/sendEmail.d.ts.map +1 -1
  11. package/dist/Auth/sendEmail.js +6 -6
  12. package/dist/Auth/sendEmail.js.map +1 -1
  13. package/dist/Auth/setAuthProviders.d.ts +1 -1
  14. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  15. package/dist/Auth/setAuthProviders.js +15 -8
  16. package/dist/Auth/setAuthProviders.js.map +1 -1
  17. package/dist/Auth/setEmailProvider.d.ts.map +1 -1
  18. package/dist/Auth/setEmailProvider.js +21 -6
  19. package/dist/Auth/setEmailProvider.js.map +1 -1
  20. package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
  21. package/dist/Auth/setupAuthRoutes.js +27 -9
  22. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  23. package/dist/DBEventsManager.d.ts.map +1 -1
  24. package/dist/DBEventsManager.js +24 -19
  25. package/dist/DBEventsManager.js.map +1 -1
  26. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  27. package/dist/DBSchemaBuilder.js +18 -5
  28. package/dist/DBSchemaBuilder.js.map +1 -1
  29. package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
  30. package/dist/DboBuilder/DboBuilder.js +7 -2
  31. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  32. package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
  33. package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
  34. package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
  35. package/dist/DboBuilder/QueryBuilder/Functions.d.ts +2 -2
  36. package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  37. package/dist/DboBuilder/QueryBuilder/Functions.js +293 -173
  38. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  39. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +2 -2
  40. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  41. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +52 -29
  42. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  43. package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
  44. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +51 -32
  45. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
  46. package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
  47. package/dist/DboBuilder/QueryBuilder/getNewQuery.js +48 -25
  48. package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
  49. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
  50. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
  51. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +32 -23
  52. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
  53. package/dist/DboBuilder/QueryStreamer.d.ts +2 -2
  54. package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
  55. package/dist/DboBuilder/QueryStreamer.js +68 -23
  56. package/dist/DboBuilder/QueryStreamer.js.map +1 -1
  57. package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
  58. package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
  59. package/dist/DboBuilder/TableHandler/DataValidator.js +79 -43
  60. package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
  61. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  62. package/dist/DboBuilder/TableHandler/TableHandler.js +39 -15
  63. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  64. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  65. package/dist/DboBuilder/TableHandler/delete.js +44 -13
  66. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  67. package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
  68. package/dist/DboBuilder/TableHandler/insert.js +81 -22
  69. package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
  70. package/dist/DboBuilder/TableHandler/insertTest.d.ts.map +1 -1
  71. package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
  72. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +1 -1
  73. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
  74. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +7 -4
  75. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
  76. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
  77. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -5
  78. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
  79. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  80. package/dist/DboBuilder/TableHandler/update.js +16 -4
  81. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  82. package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
  83. package/dist/DboBuilder/TableHandler/updateBatch.js +33 -10
  84. package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
  85. package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
  86. package/dist/DboBuilder/TableHandler/updateFile.js +24 -6
  87. package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
  88. package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
  89. package/dist/DboBuilder/TableHandler/upsert.js +22 -6
  90. package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
  91. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +5 -5
  92. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  93. package/dist/DboBuilder/ViewHandler/ViewHandler.js +64 -36
  94. package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
  95. package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
  96. package/dist/DboBuilder/ViewHandler/count.js +21 -7
  97. package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
  98. package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
  99. package/dist/DboBuilder/ViewHandler/find.js +76 -22
  100. package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
  101. package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
  102. package/dist/DboBuilder/ViewHandler/getExistsCondition.js +19 -10
  103. package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
  104. package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts.map +1 -1
  105. package/dist/DboBuilder/ViewHandler/getExistsFilters.js +12 -5
  106. package/dist/DboBuilder/ViewHandler/getExistsFilters.js.map +1 -1
  107. package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
  108. package/dist/DboBuilder/ViewHandler/getInfo.js +27 -9
  109. package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
  110. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +2 -2
  111. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
  112. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +42 -23
  113. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
  114. package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -1
  115. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +22 -9
  116. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -1
  117. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts +4 -4
  118. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
  119. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +13 -11
  120. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
  121. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts +1 -1
  122. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
  123. package/dist/DboBuilder/ViewHandler/parseJoinPath.js +44 -29
  124. package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
  125. package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
  126. package/dist/DboBuilder/ViewHandler/prepareSortItems.js +36 -27
  127. package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
  128. package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
  129. package/dist/DboBuilder/ViewHandler/prepareWhere.js +16 -12
  130. package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
  131. package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
  132. package/dist/DboBuilder/ViewHandler/size.js +24 -7
  133. package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
  134. package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
  135. package/dist/DboBuilder/ViewHandler/subscribe.js +40 -12
  136. package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
  137. package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts.map +1 -1
  138. package/dist/DboBuilder/ViewHandler/validateViewRules.js +20 -5
  139. package/dist/DboBuilder/ViewHandler/validateViewRules.js.map +1 -1
  140. package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
  141. package/dist/DboBuilder/dboBuilderUtils.js +18 -7
  142. package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
  143. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  144. package/dist/DboBuilder/getColumns.js +22 -7
  145. package/dist/DboBuilder/getColumns.js.map +1 -1
  146. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  147. package/dist/DboBuilder/getCondition.js +43 -30
  148. package/dist/DboBuilder/getCondition.js.map +1 -1
  149. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
  150. package/dist/DboBuilder/getSubscribeRelatedTables.js +38 -27
  151. package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
  152. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
  153. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +9 -9
  154. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
  155. package/dist/DboBuilder/insertNestedRecords.d.ts +3 -3
  156. package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
  157. package/dist/DboBuilder/insertNestedRecords.js +79 -44
  158. package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
  159. package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
  160. package/dist/DboBuilder/parseUpdateRules.js +38 -14
  161. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  162. package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
  163. package/dist/DboBuilder/prepareShortestJoinPaths.js +56 -31
  164. package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
  165. package/dist/DboBuilder/runSQL.d.ts.map +1 -1
  166. package/dist/DboBuilder/runSQL.js +41 -21
  167. package/dist/DboBuilder/runSQL.js.map +1 -1
  168. package/dist/DboBuilder/runTransaction.d.ts +1 -1
  169. package/dist/DboBuilder/runTransaction.d.ts.map +1 -1
  170. package/dist/DboBuilder/runTransaction.js +2 -2
  171. package/dist/DboBuilder/runTransaction.js.map +1 -1
  172. package/dist/DboBuilder/sqlErrCodeToMsg.d.ts.map +1 -1
  173. package/dist/DboBuilder/sqlErrCodeToMsg.js +297 -38
  174. package/dist/DboBuilder/sqlErrCodeToMsg.js.map +1 -1
  175. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  176. package/dist/DboBuilder/uploadFile.js +33 -9
  177. package/dist/DboBuilder/uploadFile.js.map +1 -1
  178. package/dist/Event_Trigger_Tags.d.ts +1 -1
  179. package/dist/Event_Trigger_Tags.d.ts.map +1 -1
  180. package/dist/Event_Trigger_Tags.js +1 -1
  181. package/dist/Event_Trigger_Tags.js.map +1 -1
  182. package/dist/FileManager/FileManager.d.ts.map +1 -1
  183. package/dist/FileManager/FileManager.js +6 -3
  184. package/dist/FileManager/FileManager.js.map +1 -1
  185. package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
  186. package/dist/FileManager/getValidatedFileType.js +18 -16
  187. package/dist/FileManager/getValidatedFileType.js.map +1 -1
  188. package/dist/FileManager/initFileManager.d.ts.map +1 -1
  189. package/dist/FileManager/initFileManager.js +7 -1
  190. package/dist/FileManager/initFileManager.js.map +1 -1
  191. package/dist/FileManager/upload.d.ts +1 -1
  192. package/dist/FileManager/upload.d.ts.map +1 -1
  193. package/dist/FileManager/upload.js +3 -3
  194. package/dist/FileManager/upload.js.map +1 -1
  195. package/dist/FileManager/uploadStream.d.ts +1 -1
  196. package/dist/FileManager/uploadStream.d.ts.map +1 -1
  197. package/dist/FileManager/uploadStream.js +6 -7
  198. package/dist/FileManager/uploadStream.js.map +1 -1
  199. package/dist/Filtering.d.ts +3 -3
  200. package/dist/Filtering.d.ts.map +1 -1
  201. package/dist/Filtering.js +70 -37
  202. package/dist/Filtering.js.map +1 -1
  203. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
  204. package/dist/JSONBValidation/validate_jsonb_schema_sql.js +1 -4
  205. package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
  206. package/dist/JSONBValidation/validation.d.ts.map +1 -1
  207. package/dist/JSONBValidation/validation.js +46 -24
  208. package/dist/JSONBValidation/validation.js.map +1 -1
  209. package/dist/Logging.d.ts +2 -2
  210. package/dist/Logging.d.ts.map +1 -1
  211. package/dist/PostgresNotifListenManager.d.ts.map +1 -1
  212. package/dist/PostgresNotifListenManager.js +20 -22
  213. package/dist/PostgresNotifListenManager.js.map +1 -1
  214. package/dist/Prostgles.d.ts +1 -1
  215. package/dist/Prostgles.d.ts.map +1 -1
  216. package/dist/Prostgles.js +37 -11
  217. package/dist/Prostgles.js.map +1 -1
  218. package/dist/ProstglesTypes.d.ts.map +1 -1
  219. package/dist/ProstglesTypes.js +6 -1
  220. package/dist/ProstglesTypes.js.map +1 -1
  221. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  222. package/dist/PubSubManager/PubSubManager.js +10 -5
  223. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  224. package/dist/PubSubManager/addSub.d.ts.map +1 -1
  225. package/dist/PubSubManager/addSub.js +4 -6
  226. package/dist/PubSubManager/addSub.js.map +1 -1
  227. package/dist/PubSubManager/addSync.d.ts.map +1 -1
  228. package/dist/PubSubManager/addSync.js +10 -6
  229. package/dist/PubSubManager/addSync.js.map +1 -1
  230. package/dist/PubSubManager/getCreatePubSubManagerError.d.ts.map +1 -1
  231. package/dist/PubSubManager/getCreatePubSubManagerError.js +3 -1
  232. package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
  233. package/dist/PubSubManager/getPubSubManagerInitQuery.d.ts.map +1 -1
  234. package/dist/PubSubManager/getPubSubManagerInitQuery.js +8 -8
  235. package/dist/PubSubManager/getPubSubManagerInitQuery.js.map +1 -1
  236. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  237. package/dist/PubSubManager/initPubSubManager.js +7 -9
  238. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  239. package/dist/PubSubManager/notifListener.d.ts.map +1 -1
  240. package/dist/PubSubManager/notifListener.js +23 -12
  241. package/dist/PubSubManager/notifListener.js.map +1 -1
  242. package/dist/PubSubManager/orphanTriggerCheck.d.ts.map +1 -1
  243. package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
  244. package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
  245. package/dist/PubSubManager/pushSubData.js +1 -1
  246. package/dist/PubSubManager/pushSubData.js.map +1 -1
  247. package/dist/PublishParser/PublishParser.d.ts +1 -1
  248. package/dist/PublishParser/PublishParser.d.ts.map +1 -1
  249. package/dist/PublishParser/PublishParser.js +25 -14
  250. package/dist/PublishParser/PublishParser.js.map +1 -1
  251. package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
  252. package/dist/PublishParser/getFileTableRules.js +23 -16
  253. package/dist/PublishParser/getFileTableRules.js.map +1 -1
  254. package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
  255. package/dist/PublishParser/getSchemaFromPublish.js +39 -16
  256. package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
  257. package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
  258. package/dist/PublishParser/getTableRulesWithoutFileTable.js +42 -22
  259. package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
  260. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  261. package/dist/PublishParser/publishTypesAndUtils.js +5 -1
  262. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  263. package/dist/RestApi.d.ts +1 -1
  264. package/dist/RestApi.d.ts.map +1 -1
  265. package/dist/RestApi.js +1 -1
  266. package/dist/RestApi.js.map +1 -1
  267. package/dist/SchemaWatch/SchemaWatch.d.ts +2 -2
  268. package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
  269. package/dist/SchemaWatch/SchemaWatch.js +11 -9
  270. package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
  271. package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts.map +1 -1
  272. package/dist/SchemaWatch/getValidatedWatchSchemaType.js +3 -3
  273. package/dist/SchemaWatch/getValidatedWatchSchemaType.js.map +1 -1
  274. package/dist/SchemaWatch/getWatchSchemaTagList.d.ts.map +1 -1
  275. package/dist/SchemaWatch/getWatchSchemaTagList.js +12 -6
  276. package/dist/SchemaWatch/getWatchSchemaTagList.js.map +1 -1
  277. package/dist/SyncReplication.d.ts.map +1 -1
  278. package/dist/SyncReplication.js +84 -42
  279. package/dist/SyncReplication.js.map +1 -1
  280. package/dist/TableConfig/TableConfig.d.ts +5 -5
  281. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  282. package/dist/TableConfig/TableConfig.js +18 -5
  283. package/dist/TableConfig/TableConfig.js.map +1 -1
  284. package/dist/TableConfig/getColumnDefinitionQuery.d.ts +2 -2
  285. package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
  286. package/dist/TableConfig/getColumnDefinitionQuery.js +20 -9
  287. package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
  288. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +3 -3
  289. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
  290. package/dist/TableConfig/getConstraintDefinitionQueries.js +12 -7
  291. package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
  292. package/dist/TableConfig/getFutureTableSchema.d.ts +1 -1
  293. package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
  294. package/dist/TableConfig/getFutureTableSchema.js +6 -4
  295. package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
  296. package/dist/TableConfig/getPGIndexes.d.ts.map +1 -1
  297. package/dist/TableConfig/getPGIndexes.js.map +1 -1
  298. package/dist/TableConfig/getTableColumnQueries.d.ts +1 -1
  299. package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
  300. package/dist/TableConfig/getTableColumnQueries.js +38 -19
  301. package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
  302. package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
  303. package/dist/TableConfig/initTableConfig.js +91 -43
  304. package/dist/TableConfig/initTableConfig.js.map +1 -1
  305. package/dist/index.d.ts.map +1 -1
  306. package/dist/index.js.map +1 -1
  307. package/dist/initProstgles.d.ts.map +1 -1
  308. package/dist/initProstgles.js +14 -10
  309. package/dist/initProstgles.js.map +1 -1
  310. package/dist/onSocketConnected.d.ts.map +1 -1
  311. package/dist/onSocketConnected.js +38 -16
  312. package/dist/onSocketConnected.js.map +1 -1
  313. package/dist/runClientRequest.d.ts.map +1 -1
  314. package/dist/runClientRequest.js +33 -14
  315. package/dist/runClientRequest.js.map +1 -1
  316. package/dist/shortestPath.d.ts.map +1 -1
  317. package/dist/shortestPath.js +1 -1
  318. package/dist/shortestPath.js.map +1 -1
  319. package/dist/typeTests/dboTypeCheck.js.map +1 -1
  320. package/examples/full-example-typescript/DBoGenerated.d.ts +112 -54
  321. package/examples/full-example-typescript/DBoGenerated.js +3 -3
  322. package/examples/full-example-typescript/home.html +28 -26
  323. package/examples/full-example-typescript/index.d.ts +1 -1
  324. package/examples/full-example-typescript/index.js +80 -53
  325. package/examples/full-example-vanilla/home.html +151 -125
  326. package/examples/server/javascript/index.js +17 -19
  327. package/lib/Auth/AuthHandler.ts +285 -167
  328. package/lib/Auth/AuthTypes.ts +43 -12
  329. package/lib/Auth/getSafeReturnURL.ts +35 -21
  330. package/lib/Auth/sendEmail.ts +34 -31
  331. package/lib/Auth/setAuthProviders.ts +94 -71
  332. package/lib/Auth/setEmailProvider.ts +53 -36
  333. package/lib/Auth/setupAuthRoutes.ts +164 -100
  334. package/lib/DBEventsManager.ts +87 -65
  335. package/lib/DBSchemaBuilder.ts +62 -28
  336. package/lib/DboBuilder/DboBuilder.ts +45 -21
  337. package/lib/DboBuilder/DboBuilderTypes.ts +99 -95
  338. package/lib/DboBuilder/QueryBuilder/Functions.ts +862 -580
  339. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +202 -141
  340. package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +199 -124
  341. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +209 -148
  342. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +101 -75
  343. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +10 -5
  344. package/lib/DboBuilder/QueryStreamer.ts +207 -100
  345. package/lib/DboBuilder/TableHandler/DataValidator.ts +253 -148
  346. package/lib/DboBuilder/TableHandler/TableHandler.ts +155 -60
  347. package/lib/DboBuilder/TableHandler/delete.ts +82 -29
  348. package/lib/DboBuilder/TableHandler/insert.ts +177 -81
  349. package/lib/DboBuilder/TableHandler/insertTest.ts +13 -7
  350. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +35 -21
  351. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +95 -45
  352. package/lib/DboBuilder/TableHandler/update.ts +54 -14
  353. package/lib/DboBuilder/TableHandler/updateBatch.ts +59 -21
  354. package/lib/DboBuilder/TableHandler/updateFile.ts +57 -26
  355. package/lib/DboBuilder/TableHandler/upsert.ts +58 -13
  356. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +264 -121
  357. package/lib/DboBuilder/ViewHandler/count.ts +56 -25
  358. package/lib/DboBuilder/ViewHandler/find.ts +153 -68
  359. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +59 -32
  360. package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +31 -19
  361. package/lib/DboBuilder/ViewHandler/getInfo.ts +47 -16
  362. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +91 -57
  363. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +51 -29
  364. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +35 -29
  365. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +130 -76
  366. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +140 -92
  367. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +66 -26
  368. package/lib/DboBuilder/ViewHandler/size.ts +56 -22
  369. package/lib/DboBuilder/ViewHandler/subscribe.ts +122 -46
  370. package/lib/DboBuilder/ViewHandler/validateViewRules.ts +39 -14
  371. package/lib/DboBuilder/dboBuilderUtils.ts +41 -18
  372. package/lib/DboBuilder/getColumns.ts +44 -12
  373. package/lib/DboBuilder/getCondition.ts +120 -79
  374. package/lib/DboBuilder/getSubscribeRelatedTables.ts +144 -83
  375. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +61 -44
  376. package/lib/DboBuilder/insertNestedRecords.ts +370 -235
  377. package/lib/DboBuilder/parseUpdateRules.ts +117 -61
  378. package/lib/DboBuilder/prepareShortestJoinPaths.ts +115 -56
  379. package/lib/DboBuilder/runSQL.ts +135 -74
  380. package/lib/DboBuilder/runTransaction.ts +27 -16
  381. package/lib/DboBuilder/sqlErrCodeToMsg.ts +502 -244
  382. package/lib/DboBuilder/uploadFile.ts +67 -31
  383. package/lib/Event_Trigger_Tags.ts +6 -4
  384. package/lib/FileManager/FileManager.ts +53 -21
  385. package/lib/FileManager/getValidatedFileType.ts +79 -35
  386. package/lib/FileManager/initFileManager.ts +21 -9
  387. package/lib/FileManager/upload.ts +21 -19
  388. package/lib/FileManager/uploadStream.ts +33 -34
  389. package/lib/Filtering.ts +249 -197
  390. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +2 -7
  391. package/lib/JSONBValidation/validation.ts +147 -82
  392. package/lib/Logging.ts +107 -97
  393. package/lib/PostgresNotifListenManager.ts +96 -63
  394. package/lib/Prostgles.ts +106 -35
  395. package/lib/ProstglesTypes.ts +31 -9
  396. package/lib/PubSubManager/PubSubManager.ts +62 -27
  397. package/lib/PubSubManager/addSub.ts +56 -37
  398. package/lib/PubSubManager/addSync.ts +50 -33
  399. package/lib/PubSubManager/getCreatePubSubManagerError.ts +29 -21
  400. package/lib/PubSubManager/getPubSubManagerInitQuery.ts +45 -27
  401. package/lib/PubSubManager/initPubSubManager.ts +27 -18
  402. package/lib/PubSubManager/notifListener.ts +77 -59
  403. package/lib/PubSubManager/orphanTriggerCheck.ts +5 -4
  404. package/lib/PubSubManager/pushSubData.ts +11 -9
  405. package/lib/PublishParser/PublishParser.ts +102 -44
  406. package/lib/PublishParser/getFileTableRules.ts +97 -54
  407. package/lib/PublishParser/getSchemaFromPublish.ts +146 -74
  408. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +101 -51
  409. package/lib/PublishParser/publishTypesAndUtils.ts +74 -23
  410. package/lib/RestApi.ts +10 -2
  411. package/lib/SchemaWatch/SchemaWatch.ts +52 -34
  412. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +1 -1
  413. package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +32 -22
  414. package/lib/SchemaWatch/getWatchSchemaTagList.ts +24 -16
  415. package/lib/SyncReplication.ts +376 -190
  416. package/lib/TableConfig/TableConfig.ts +200 -136
  417. package/lib/TableConfig/getColumnDefinitionQuery.ts +65 -44
  418. package/lib/TableConfig/getConstraintDefinitionQueries.ts +41 -25
  419. package/lib/TableConfig/getFutureTableSchema.ts +31 -21
  420. package/lib/TableConfig/getPGIndexes.ts +7 -4
  421. package/lib/TableConfig/getTableColumnQueries.ts +101 -54
  422. package/lib/TableConfig/initTableConfig.ts +192 -101
  423. package/lib/index.ts +6 -5
  424. package/lib/initProstgles.ts +57 -51
  425. package/lib/onSocketConnected.ts +75 -40
  426. package/lib/runClientRequest.ts +148 -79
  427. package/lib/shortestPath.ts +80 -76
  428. package/lib/typeTests/DBoGenerated.d.ts +5 -1
  429. package/lib/typeTests/dboTypeCheck.ts +8 -8
  430. 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
+ }