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,36 +1,53 @@
1
-
2
1
  /*---------------------------------------------------------------------------------------------
3
2
  * Copyright (c) Stefan L. All rights reserved.
4
3
  * Licensed under the MIT License. See LICENSE in the project root for license information.
5
4
  *--------------------------------------------------------------------------------------------*/
6
5
 
7
- import { asName, ColumnInfo, getKeys, isEmpty, isObject, JoinSelect, PG_COLUMN_UDT_DATA_TYPE, Select, ValidatedColumnInfo } from "prostgles-types";
6
+ import {
7
+ asName,
8
+ ColumnInfo,
9
+ getKeys,
10
+ isEmpty,
11
+ isObject,
12
+ JoinSelect,
13
+ PG_COLUMN_UDT_DATA_TYPE,
14
+ Select,
15
+ ValidatedColumnInfo,
16
+ } from "prostgles-types";
8
17
  import { isPlainObject, postgresToTsType, SortItem } from "../DboBuilder";
9
18
 
10
19
  import { ParsedJoinPath } from "../ViewHandler/parseJoinPath";
11
20
  import { ViewHandler } from "../ViewHandler/ViewHandler";
12
- import { COMPUTED_FIELDS, FieldSpec, FunctionSpec, parseFunction } from "./Functions";
21
+ import {
22
+ COMPUTED_FIELDS,
23
+ FieldSpec,
24
+ FunctionSpec,
25
+ parseFunction,
26
+ } from "./Functions";
13
27
 
14
28
  export type SelectItem = {
15
29
  getFields: (args?: any[]) => string[] | "*";
16
30
  getQuery: (tableAlias?: string) => string;
17
31
  columnPGDataType?: string;
18
32
  column_udt_type?: PG_COLUMN_UDT_DATA_TYPE;
19
- tsDataType?: ValidatedColumnInfo["tsDataType"]
33
+ tsDataType?: ValidatedColumnInfo["tsDataType"];
20
34
  alias: string;
21
35
  selected: boolean;
22
- } & ({
23
- type: "column";
24
- columnName: string;
25
- } | {
26
- type: "function" | "aggregation" | "joinedColumn" | "computed";
27
- columnName?: undefined;
28
- });
29
- export type SelectItemValidated = SelectItem & { fields: string[]; }
36
+ } & (
37
+ | {
38
+ type: "column";
39
+ columnName: string;
40
+ }
41
+ | {
42
+ type: "function" | "aggregation" | "joinedColumn" | "computed";
43
+ columnName?: undefined;
44
+ }
45
+ );
46
+ export type SelectItemValidated = SelectItem & { fields: string[] };
30
47
  export type WhereOptions = Awaited<ReturnType<ViewHandler["prepareWhere"]>>;
31
48
  export type NewQueryRoot = {
32
49
  /**
33
- * All fields from the table will be in nested SELECT and GROUP BY to allow order/filter by fields not in select
50
+ * All fields from the table will be in nested SELECT and GROUP BY to allow order/filter by fields not in select
34
51
  */
35
52
  allFields: string[];
36
53
 
@@ -50,37 +67,38 @@ export type NewQueryRoot = {
50
67
  tableAlias?: string;
51
68
  };
52
69
 
53
- export type NewQueryJoin = (NewQuery & {
70
+ export type NewQueryJoin = NewQuery & {
54
71
  joinPath: ParsedJoinPath[];
55
72
  joinAlias: string;
56
- });
73
+ };
57
74
  export type NewQuery = NewQueryRoot & {
58
75
  joins?: NewQueryJoin[];
59
- }
76
+ };
60
77
 
61
78
  export const asNameAlias = (field: string, tableAlias?: string) => {
62
79
  const result = asName(field);
63
- if(tableAlias) return asName(tableAlias) + "." + result;
80
+ if (tableAlias) return asName(tableAlias) + "." + result;
64
81
  return result;
65
- }
82
+ };
66
83
 
67
- export const parseFunctionObject = (funcData: any): { funcName: string; args: any[] } => {
68
- const makeErr = (msg: string) => `Function not specified correctly. Expecting { $funcName: ["columnName" | <value>, ...args] } object but got: ${JSON.stringify(funcData)} \n ${msg}`
69
- if(!isObject(funcData)) throw makeErr("");
84
+ export const parseFunctionObject = (
85
+ funcData: any,
86
+ ): { funcName: string; args: any[] } => {
87
+ const makeErr = (msg: string) =>
88
+ `Function not specified correctly. Expecting { $funcName: ["columnName" | <value>, ...args] } object but got: ${JSON.stringify(funcData)} \n ${msg}`;
89
+ if (!isObject(funcData)) throw makeErr("");
70
90
  const keys = getKeys(funcData);
71
- if(keys.length !== 1) throw makeErr("");
91
+ if (keys.length !== 1) throw makeErr("");
72
92
  const funcName = keys[0]!;
73
93
  const args = funcData[funcName];
74
- if(!args || !Array.isArray(args)){
94
+ if (!args || !Array.isArray(args)) {
75
95
  throw makeErr("Arguments missing or invalid");
76
96
  }
77
97
 
78
98
  return { funcName, args };
79
- }
80
-
99
+ };
81
100
 
82
101
  export class SelectItemBuilder {
83
-
84
102
  select: SelectItemValidated[] = [];
85
103
  private allFields: string[];
86
104
 
@@ -92,7 +110,15 @@ export class SelectItemBuilder {
92
110
  private isView: boolean;
93
111
  private columns: ColumnInfo[];
94
112
 
95
- constructor(params: { allowedFields: string[]; allowedOrderByFields: string[]; computedFields: FieldSpec[]; functions: FunctionSpec[]; allFields: string[]; isView: boolean; columns: ColumnInfo[]; }){
113
+ constructor(params: {
114
+ allowedFields: string[];
115
+ allowedOrderByFields: string[];
116
+ computedFields: FieldSpec[];
117
+ functions: FunctionSpec[];
118
+ allFields: string[];
119
+ isView: boolean;
120
+ columns: ColumnInfo[];
121
+ }) {
96
122
  this.allFields = params.allFields;
97
123
  this.allowedFields = params.allowedFields;
98
124
  this.allowedOrderByFields = params.allowedOrderByFields;
@@ -100,48 +126,72 @@ export class SelectItemBuilder {
100
126
  this.isView = params.isView;
101
127
  this.functions = params.functions;
102
128
  this.columns = params.columns;
103
- this.allowedFieldsIncludingComputed = this.allowedFields.concat(this.computedFields? this.computedFields.map(cf => cf.name) : []);
104
- if(!this.allowedFields.length){
105
- if(!this.columns.length){
129
+ this.allowedFieldsIncludingComputed = this.allowedFields.concat(
130
+ this.computedFields ? this.computedFields.map((cf) => cf.name) : [],
131
+ );
132
+ if (!this.allowedFields.length) {
133
+ if (!this.columns.length) {
106
134
  throw "This view/table has no columns. Cannot select anything";
107
135
  }
108
136
  throw "allowedFields empty/missing";
109
137
  }
110
138
 
111
139
  /* Check for conflicting computed column names */
112
- const conflictingCol = this.allFields.find(fieldName => this.computedFields.find(cf => cf.name === fieldName));
113
- if(conflictingCol){
114
- throw "INTERNAL ERROR: Cannot have duplicate column names ( " + conflictingCol + " ). One or more computed column names are colliding with table columns ones";
140
+ const conflictingCol = this.allFields.find((fieldName) =>
141
+ this.computedFields.find((cf) => cf.name === fieldName),
142
+ );
143
+ if (conflictingCol) {
144
+ throw (
145
+ "INTERNAL ERROR: Cannot have duplicate column names ( " +
146
+ conflictingCol +
147
+ " ). One or more computed column names are colliding with table columns ones"
148
+ );
115
149
  }
116
150
  }
117
151
 
118
152
  private checkField = (f: string, isSelected: boolean) => {
119
153
  const allowedSelectedFields = this.allowedFieldsIncludingComputed;
120
- const allowedNonSelectedFields = [...this.allowedFieldsIncludingComputed, ...this.allowedOrderByFields];
154
+ const allowedNonSelectedFields = [
155
+ ...this.allowedFieldsIncludingComputed,
156
+ ...this.allowedOrderByFields,
157
+ ];
121
158
 
122
159
  /** Not selected items can be part of the orderBy fields */
123
- const allowedFields = isSelected? allowedSelectedFields : allowedNonSelectedFields;
124
- if(!allowedFields.includes(f)){
125
- throw "Field " + f + " is invalid or dissallowed. \nAllowed fields: " + allowedFields.join(", ");
160
+ const allowedFields = isSelected
161
+ ? allowedSelectedFields
162
+ : allowedNonSelectedFields;
163
+ if (!allowedFields.includes(f)) {
164
+ throw (
165
+ "Field " +
166
+ f +
167
+ " is invalid or dissallowed. \nAllowed fields: " +
168
+ allowedFields.join(", ")
169
+ );
126
170
  }
127
171
  return f;
128
- }
172
+ };
129
173
 
130
174
  private addItem = (item: SelectItem) => {
131
175
  let fields = item.getFields();
132
176
  // console.trace(fields)
133
- if(fields === "*") fields = this.allowedFields.slice(0);
134
- fields.map(f => this.checkField(f, item.selected));
177
+ if (fields === "*") fields = this.allowedFields.slice(0);
178
+ fields.map((f) => this.checkField(f, item.selected));
135
179
 
136
- if(this.select.find(s => s.alias === item.alias)){
180
+ if (this.select.find((s) => s.alias === item.alias)) {
137
181
  throw `Cannot specify duplicate columns ( ${item.alias} ). Perhaps you're using "*" with column names?`;
138
182
  }
139
183
  this.select.push({ ...item, fields });
140
- }
184
+ };
141
185
 
142
- private addFunction = (func: FunctionSpec | string, args: any[], alias: string) => {
186
+ private addFunction = (
187
+ func: FunctionSpec | string,
188
+ args: any[],
189
+ alias: string,
190
+ ) => {
143
191
  const funcDef = parseFunction({
144
- func, args, functions: this.functions,
192
+ func,
193
+ args,
194
+ functions: this.functions,
145
195
  allowedFields: this.allowedFieldsIncludingComputed,
146
196
  });
147
197
 
@@ -149,36 +199,40 @@ export class SelectItemBuilder {
149
199
  type: funcDef.type,
150
200
  alias,
151
201
  getFields: () => funcDef.getFields(args),
152
- getQuery: (tableAlias?: string) => funcDef.getQuery({ allColumns: this.columns, allowedFields: this.allowedFields, args, tableAlias,
153
- ctidField: undefined,
154
-
155
- /* CTID not available in AFTER trigger */
156
- // ctidField: this.isView? undefined : "ctid"
157
- }),
158
- selected: true
202
+ getQuery: (tableAlias?: string) =>
203
+ funcDef.getQuery({
204
+ allColumns: this.columns,
205
+ allowedFields: this.allowedFields,
206
+ args,
207
+ tableAlias,
208
+ ctidField: undefined,
209
+
210
+ /* CTID not available in AFTER trigger */
211
+ // ctidField: this.isView? undefined : "ctid"
212
+ }),
213
+ selected: true,
159
214
  });
160
- }
215
+ };
161
216
 
162
217
  addColumn = (fieldName: string, selected: boolean) => {
163
-
164
218
  /* Check if computed col */
165
- if(selected){
166
- const compCol = COMPUTED_FIELDS.find(cf => cf.name === fieldName);
167
- if(compCol && !this.select.find(s => s.alias === fieldName)){
168
- const cf: FunctionSpec = {
219
+ if (selected) {
220
+ const compCol = COMPUTED_FIELDS.find((cf) => cf.name === fieldName);
221
+ if (compCol && !this.select.find((s) => s.alias === fieldName)) {
222
+ const cf: FunctionSpec = {
169
223
  ...compCol,
170
224
  type: "computed",
171
225
  numArgs: 0,
172
226
  singleColArg: false,
173
- getFields: (_args: any[]) => []
174
- }
175
- this.addFunction(cf, [], compCol.name)
227
+ getFields: (_args: any[]) => [],
228
+ };
229
+ this.addFunction(cf, [], compCol.name);
176
230
  return;
177
231
  }
178
232
  }
179
233
 
180
- const colDef = this.columns.find(c => c.name === fieldName);
181
- const alias = selected? fieldName : ("not_selected_" + fieldName);
234
+ const colDef = this.columns.find((c) => c.name === fieldName);
235
+ const alias = selected ? fieldName : "not_selected_" + fieldName;
182
236
  this.addItem({
183
237
  type: "column",
184
238
  columnName: fieldName,
@@ -188,101 +242,108 @@ export class SelectItemBuilder {
188
242
  alias,
189
243
  getQuery: (tableAlias) => asNameAlias(fieldName, tableAlias),
190
244
  getFields: () => [fieldName],
191
- selected
245
+ selected,
192
246
  });
193
- }
247
+ };
248
+
249
+ parseUserSelect = async (
250
+ userSelect: Select,
251
+ joinParse?: (
252
+ key: string,
253
+ val: JoinSelect,
254
+ throwErr: (msg: string) => any,
255
+ ) => any,
256
+ ) => {
257
+ /* [col1, col2, col3] */
258
+ if (Array.isArray(userSelect)) {
259
+ if (userSelect.find((key) => typeof key !== "string"))
260
+ throw "Invalid array select. Expecting an array of strings";
194
261
 
195
- parseUserSelect = async (userSelect: Select, joinParse?: (key: string, val: JoinSelect, throwErr: (msg: string) => any) => any) => {
262
+ userSelect.map((key) => this.addColumn(key, true));
196
263
 
197
- /* [col1, col2, col3] */
198
- if(Array.isArray(userSelect)){
199
- if(userSelect.find(key => typeof key !== "string")) throw "Invalid array select. Expecting an array of strings";
200
-
201
- userSelect.map(key => this.addColumn(key, true))
202
-
203
- /* Empty select */
204
- } else if(userSelect === ""){
264
+ /* Empty select */
265
+ } else if (userSelect === "") {
205
266
  return [];
206
-
207
- } else if(userSelect === "*"){
208
- this.allowedFields.map(key => this.addColumn(key, true) );
209
-
210
- } else if(isPlainObject(userSelect) && !isEmpty(userSelect)){
267
+ } else if (userSelect === "*") {
268
+ this.allowedFields.map((key) => this.addColumn(key, true));
269
+ } else if (isPlainObject(userSelect) && !isEmpty(userSelect)) {
211
270
  const selectKeys = Object.keys(userSelect),
212
271
  selectValues = Object.values(userSelect);
213
-
272
+
214
273
  /* Cannot include and exclude at the same time */
215
- if(
216
- selectValues.filter(v => [0, false].includes(v)).length
217
- ){
218
- if(selectValues.filter(v => ![0, false].includes(v)).length ){
274
+ if (selectValues.filter((v) => [0, false].includes(v)).length) {
275
+ if (selectValues.filter((v) => ![0, false].includes(v)).length) {
219
276
  throw "\nCannot include and exclude fields at the same time";
220
277
  }
221
-
278
+
222
279
  /* Exclude only */
223
- this.allowedFields.filter(f => !selectKeys.includes(f)).map(key => this.addColumn(key, true) )
224
-
280
+ this.allowedFields
281
+ .filter((f) => !selectKeys.includes(f))
282
+ .map((key) => this.addColumn(key, true));
225
283
  } else {
226
- await Promise.all(selectKeys.map(async key => {
227
- const val: any = userSelect[key as keyof typeof userSelect],
228
- throwErr = (extraErr = "") => {
229
- console.trace(extraErr)
230
- throw "Unexpected select -> " + JSON.stringify({ [key]: val }) + "\n" + extraErr;
231
- };
232
-
233
- /* Included fields */
234
- if([1, true].includes(val)){
235
- if(key === "*"){
236
- this.allowedFields.map(key => this.addColumn(key, true) )
237
- } else {
238
- this.addColumn(key, true);
239
- }
240
-
241
- /* Aggs and functions */
242
- } else if(typeof val === "string" || isObject(val)) {
243
-
244
- /* Function shorthand notation
284
+ await Promise.all(
285
+ selectKeys.map(async (key) => {
286
+ const val: any = userSelect[key as keyof typeof userSelect],
287
+ throwErr = (extraErr = "") => {
288
+ console.trace(extraErr);
289
+ throw (
290
+ "Unexpected select -> " +
291
+ JSON.stringify({ [key]: val }) +
292
+ "\n" +
293
+ extraErr
294
+ );
295
+ };
296
+
297
+ /* Included fields */
298
+ if ([1, true].includes(val)) {
299
+ if (key === "*") {
300
+ this.allowedFields.map((key) => this.addColumn(key, true));
301
+ } else {
302
+ this.addColumn(key, true);
303
+ }
304
+
305
+ /* Aggs and functions */
306
+ } else if (typeof val === "string" || isObject(val)) {
307
+ /* Function shorthand notation
245
308
  { id: "$max" } === { id: { $max: ["id"] } } === SELECT MAX(id) AS id
246
- */
247
- if(
248
- (typeof val === "string" && val !== "*") ||
249
- isPlainObject(val) && Object.keys(val).length === 1 && Array.isArray(Object.values(val)[0])
250
- ){
251
-
252
- let funcName: string | undefined, args: any[] | undefined;
253
- if(typeof val === "string") {
254
- /* Shorthand notation -> it is expected that the key is the column name used as the only argument */
255
- try {
256
- this.checkField(key, true)
257
- } catch (err){
258
- throwErr(` Shorthand function notation error: the specifield column ( ${key} ) is invalid or dissallowed. \n Use correct column name or full aliased function notation, e.g.: -> { alias: { $func_name: ["column_name"] } } `)
309
+ */
310
+ if (
311
+ (typeof val === "string" && val !== "*") ||
312
+ (isPlainObject(val) &&
313
+ Object.keys(val).length === 1 &&
314
+ Array.isArray(Object.values(val)[0]))
315
+ ) {
316
+ let funcName: string | undefined, args: any[] | undefined;
317
+ if (typeof val === "string") {
318
+ /* Shorthand notation -> it is expected that the key is the column name used as the only argument */
319
+ try {
320
+ this.checkField(key, true);
321
+ } catch (err) {
322
+ throwErr(
323
+ ` Shorthand function notation error: the specifield column ( ${key} ) is invalid or dissallowed. \n Use correct column name or full aliased function notation, e.g.: -> { alias: { $func_name: ["column_name"] } } `,
324
+ );
325
+ }
326
+ funcName = val;
327
+ args = [key];
328
+
329
+ /** Function full notation { $funcName: ["colName", ...args] } */
330
+ } else {
331
+ ({ funcName, args } = parseFunctionObject(val));
259
332
  }
260
- funcName = val;
261
- args = [key];
262
333
 
263
- /** Function full notation { $funcName: ["colName", ...args] } */
334
+ this.addFunction(funcName, args, key);
335
+
336
+ /* Join */
264
337
  } else {
265
- ({ funcName, args } = parseFunctionObject(val));
266
- }
267
-
268
- this.addFunction(funcName, args, key);
269
-
270
- /* Join */
271
- } else {
272
-
273
- if(!joinParse) {
274
- throw "Joins dissalowed";
338
+ if (!joinParse) {
339
+ throw "Joins dissalowed";
340
+ }
341
+ await joinParse(key, val as JoinSelect, throwErr);
275
342
  }
276
- await joinParse(key, val as JoinSelect, throwErr);
277
-
278
- }
279
-
280
- } else throwErr();
281
-
282
- }));
343
+ } else throwErr();
344
+ }),
345
+ );
283
346
  }
284
347
  } else throw "Unexpected select -> " + JSON.stringify(userSelect);
285
-
286
- }
287
-
348
+ };
288
349
  }