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,4 +1,15 @@
1
- import { AnyObject, ColumnInfo, FieldFilter, ValidatedColumnInfo, asName, getKeys, isEmpty, isObject, pickKeys, unpatchText } from "prostgles-types/dist";
1
+ import {
2
+ AnyObject,
3
+ ColumnInfo,
4
+ FieldFilter,
5
+ ValidatedColumnInfo,
6
+ asName,
7
+ getKeys,
8
+ isEmpty,
9
+ isObject,
10
+ pickKeys,
11
+ unpatchText,
12
+ } from "prostgles-types/dist";
2
13
  import { ValidateRowBasic } from "../../PublishParser/PublishParser";
3
14
  import { DBHandlerServer } from "../../Prostgles";
4
15
  import { asValue } from "../../PubSubManager/PubSubManager";
@@ -11,14 +22,14 @@ type RowFieldDataPlain = {
11
22
  type: "plain";
12
23
  column: TableSchemaColumn;
13
24
  fieldValue: any;
14
- }
25
+ };
15
26
 
16
27
  type RowFieldDataFunction = {
17
28
  type: "function";
18
29
  column: TableSchemaColumn;
19
30
  funcName: string;
20
31
  args: any[];
21
- }
32
+ };
22
33
  type RowFieldData = RowFieldDataPlain | RowFieldDataFunction;
23
34
 
24
35
  type ParsedRowFieldData = {
@@ -34,8 +45,8 @@ type ParseDataArgs = {
34
45
  validationOptions: {
35
46
  localParams: undefined | LocalParams;
36
47
  validate: undefined | ValidateRowBasic;
37
- }
38
- }
48
+ };
49
+ };
39
50
 
40
51
  export class DataValidator {
41
52
  rowFieldData?: RowFieldData[][];
@@ -47,67 +58,102 @@ export class DataValidator {
47
58
 
48
59
  parse = async (args: ParseDataArgs) => {
49
60
  const { command } = args;
50
- const rowFieldData = await getValidatedRowFieldData(args, this.tableHandler);
61
+ const rowFieldData = await getValidatedRowFieldData(
62
+ args,
63
+ this.tableHandler,
64
+ );
51
65
  const parsedRowFieldData = await getParsedRowFieldData(rowFieldData, args);
52
66
  if (command === "update") {
53
- if (rowFieldData.some(rowParts => rowParts.length === 0)) {
67
+ if (rowFieldData.some((rowParts) => rowParts.length === 0)) {
54
68
  throw "Empty row. No data provided for update";
55
69
  }
56
70
  }
57
71
 
58
72
  return {
59
73
  parsedRowFieldData,
60
- getQuery: () => getQuery(command, parsedRowFieldData, this.tableHandler.escapedName),
61
- }
62
- }
74
+ getQuery: () =>
75
+ getQuery(command, parsedRowFieldData, this.tableHandler.escapedName),
76
+ };
77
+ };
63
78
  }
64
79
 
65
- const getQuery = (type: "insert" | "update", parsedRowFieldData: ParsedRowFieldData[][], escapedTableName: string): string => {
80
+ const getQuery = (
81
+ type: "insert" | "update",
82
+ parsedRowFieldData: ParsedRowFieldData[][],
83
+ escapedTableName: string,
84
+ ): string => {
66
85
  if (type === "insert") {
67
-
68
- const uniqueColumns = Array.from(new Set(parsedRowFieldData.flatMap(row => row.map(r => r.escapedCol))))
69
- const values = parsedRowFieldData.map(row => `(${uniqueColumns.map(colName => row.find(r => r.escapedCol === colName)?.escapedVal ?? 'DEFAULT')})`).join(",\n");
70
- const whatToInsert = !uniqueColumns.length ? "DEFAULT VALUES" : `(${uniqueColumns}) VALUES ${values}`
86
+ const uniqueColumns = Array.from(
87
+ new Set(
88
+ parsedRowFieldData.flatMap((row) => row.map((r) => r.escapedCol)),
89
+ ),
90
+ );
91
+ const values = parsedRowFieldData
92
+ .map(
93
+ (row) =>
94
+ `(${uniqueColumns.map((colName) => row.find((r) => r.escapedCol === colName)?.escapedVal ?? "DEFAULT")})`,
95
+ )
96
+ .join(",\n");
97
+ const whatToInsert = !uniqueColumns.length
98
+ ? "DEFAULT VALUES"
99
+ : `(${uniqueColumns}) VALUES ${values}`;
71
100
  return `INSERT INTO ${escapedTableName} ${whatToInsert} `;
72
101
  } else {
73
- const query = parsedRowFieldData.map(rowParts => {
74
- return `UPDATE ${escapedTableName} SET ` + rowParts.map(r => `${r.escapedCol} = ${r.escapedVal} `).join(",\n")
75
- }).join(";\n") + " ";
76
-
102
+ const query =
103
+ parsedRowFieldData
104
+ .map((rowParts) => {
105
+ return (
106
+ `UPDATE ${escapedTableName} SET ` +
107
+ rowParts
108
+ .map((r) => `${r.escapedCol} = ${r.escapedVal} `)
109
+ .join(",\n")
110
+ );
111
+ })
112
+ .join(";\n") + " ";
113
+
77
114
  return query;
78
115
  }
79
- }
116
+ };
80
117
 
81
118
  type PrepareFieldValuesArgs = {
82
- row: AnyObject | undefined;
83
- forcedData: AnyObject | undefined;
119
+ row: AnyObject | undefined;
120
+ forcedData: AnyObject | undefined;
84
121
  allowedCols: FieldFilter | undefined;
85
122
  removeDisallowedFields?: boolean;
86
123
  tableHandler: TableHandler;
87
- }
88
- /**
89
- * Apply forcedData, remove disallowed columns, validate against allowed columns:
90
- * @example ({ item_id: 1 }, { user_id: 32 }) => { item_id: 1, user_id: 32 }
91
- * OR
92
- * ({ a: 1 }, { b: 32 }, ["c", "d"]) => throw "a field is not allowed"
93
- * @param {Object} obj - initial data
94
- * @param {Object} forcedData - set/override property
95
- * @param {string[]} allowed_cols - allowed columns (excluding forcedData) from table rules
96
- */
97
- const getValidatedRow = ({ row = {}, forcedData = {}, allowedCols, removeDisallowedFields = false, tableHandler }: PrepareFieldValuesArgs): AnyObject => {
124
+ };
125
+ /**
126
+ * Apply forcedData, remove disallowed columns, validate against allowed columns:
127
+ * @example ({ item_id: 1 }, { user_id: 32 }) => { item_id: 1, user_id: 32 }
128
+ * OR
129
+ * ({ a: 1 }, { b: 32 }, ["c", "d"]) => throw "a field is not allowed"
130
+ * @param {Object} obj - initial data
131
+ * @param {Object} forcedData - set/override property
132
+ * @param {string[]} allowed_cols - allowed columns (excluding forcedData) from table rules
133
+ */
134
+ const getValidatedRow = ({
135
+ row = {},
136
+ forcedData = {},
137
+ allowedCols,
138
+ removeDisallowedFields = false,
139
+ tableHandler,
140
+ }: PrepareFieldValuesArgs): AnyObject => {
98
141
  const column_names = tableHandler.column_names.slice(0);
99
142
  if (!column_names.length) {
100
143
  throw "table column_names mising";
101
144
  }
102
- const validatedAllowedColumns = tableHandler.parseFieldFilter(allowedCols, false);
103
-
145
+ const validatedAllowedColumns = tableHandler.parseFieldFilter(
146
+ allowedCols,
147
+ false,
148
+ );
149
+
104
150
  let finalRow = { ...row };
105
151
  if (removeDisallowedFields && !isEmpty(finalRow)) {
106
152
  finalRow = pickKeys(finalRow, validatedAllowedColumns);
107
153
  }
108
154
 
109
155
  /* If has keys check against allowed_cols */
110
- validateObj(finalRow, validatedAllowedColumns)
156
+ validateObj(finalRow, validatedAllowedColumns);
111
157
 
112
158
  /** Apply forcedData */
113
159
  if (!isEmpty(forcedData)) {
@@ -117,14 +163,22 @@ const getValidatedRow = ({ row = {}, forcedData = {}, allowedCols, removeDisallo
117
163
  /** Validate forcedData */
118
164
  validateObj(finalRow, column_names.slice(0));
119
165
  return finalRow;
120
- }
166
+ };
121
167
 
122
168
  /**
123
169
  * Add synced_field value if missing
124
170
  * prepareFieldValues(): Apply forcedData, remove disallowed columns, validate against allowed columns
125
171
  * tableConfigurator?.checkColVal(): Validate column min/max/isText/lowerCased/trimmed values
126
172
  */
127
- export const prepareNewData = async ({ row, forcedData, allowedFields, tableRules, removeDisallowedFields = false, tableConfigurator, tableHandler }: ValidatedParams) => {
173
+ export const prepareNewData = async ({
174
+ row,
175
+ forcedData,
176
+ allowedFields,
177
+ tableRules,
178
+ removeDisallowedFields = false,
179
+ tableConfigurator,
180
+ tableHandler,
181
+ }: ValidatedParams) => {
128
182
  const synced_field = (tableRules ?? {})?.sync?.synced_field;
129
183
 
130
184
  /* Update synced_field if sync is on and missing */
@@ -132,26 +186,45 @@ export const prepareNewData = async ({ row, forcedData, allowedFields, tableRule
132
186
  row[synced_field] = Date.now();
133
187
  }
134
188
 
135
- const data = getValidatedRow({ tableHandler, row, forcedData, allowedCols: allowedFields, removeDisallowedFields });
189
+ const data = getValidatedRow({
190
+ tableHandler,
191
+ row,
192
+ forcedData,
193
+ allowedCols: allowedFields,
194
+ removeDisallowedFields,
195
+ });
136
196
  const dataKeys = getKeys(data);
137
197
 
138
- dataKeys.forEach(col => {
139
- tableConfigurator?.checkColVal({ table: tableHandler.name, col, value: data[col] });
140
- const colConfig = tableConfigurator?.getColumnConfig(tableHandler.name, col);
141
- if (colConfig && isObject(colConfig) && "isText" in colConfig && data[col]) {
198
+ dataKeys.forEach((col) => {
199
+ tableConfigurator?.checkColVal({
200
+ table: tableHandler.name,
201
+ col,
202
+ value: data[col],
203
+ });
204
+ const colConfig = tableConfigurator?.getColumnConfig(
205
+ tableHandler.name,
206
+ col,
207
+ );
208
+ if (
209
+ colConfig &&
210
+ isObject(colConfig) &&
211
+ "isText" in colConfig &&
212
+ data[col]
213
+ ) {
142
214
  if (colConfig.lowerCased) {
143
- data[col] = data[col].toString().toLowerCase()
215
+ data[col] = data[col].toString().toLowerCase();
144
216
  }
145
217
  if (colConfig.trimmed) {
146
- data[col] = data[col].toString().trim()
218
+ data[col] = data[col].toString().trim();
147
219
  }
148
220
  }
149
- })
150
-
151
- const allowedCols = tableHandler.columns.filter(c => dataKeys.includes(c.name)).map(c => c.name);
152
- return { data, allowedCols }
153
- }
221
+ });
154
222
 
223
+ const allowedCols = tableHandler.columns
224
+ .filter((c) => dataKeys.includes(c.name))
225
+ .map((c) => c.name);
226
+ return { data, allowedCols };
227
+ };
155
228
 
156
229
  /**
157
230
  * Ensures:
@@ -160,76 +233,95 @@ export const prepareNewData = async ({ row, forcedData, allowedFields, tableRule
160
233
  * - update is not empty
161
234
  * - no duplicate column names ( could update with $func and plain value for same column )
162
235
  */
163
- const getValidatedRowFieldData = async ({ allowedCols, rows, validationOptions, dbTx, command }: ParseDataArgs, tableHandler: TableHandler) => {
236
+ const getValidatedRowFieldData = async (
237
+ { allowedCols, rows, validationOptions, dbTx, command }: ParseDataArgs,
238
+ tableHandler: TableHandler,
239
+ ) => {
164
240
  if (!allowedCols.length && command === "update") {
165
241
  throw "allowedColumns cannot be empty";
166
242
  }
167
243
  const rowFieldData = await Promise.all(
168
- rows.map(async nonvalidatedRow => {
169
-
244
+ rows.map(async (nonvalidatedRow) => {
170
245
  let row = pickKeys(nonvalidatedRow, allowedCols);
171
246
  const initialRowKeys = Object.keys(row);
172
247
  if (validationOptions.validate) {
173
- if(!validationOptions.localParams){
248
+ if (!validationOptions.localParams) {
174
249
  throw "localParams missing for validate";
175
250
  }
176
- row = await validationOptions.validate({ row, dbx: dbTx, localParams: validationOptions.localParams });
251
+ row = await validationOptions.validate({
252
+ row,
253
+ dbx: dbTx,
254
+ localParams: validationOptions.localParams,
255
+ });
177
256
  }
178
- const keysAddedDuringValidate = Object.keys(row).filter(newKey => !initialRowKeys.includes(newKey));
257
+ const keysAddedDuringValidate = Object.keys(row).filter(
258
+ (newKey) => !initialRowKeys.includes(newKey),
259
+ );
179
260
 
180
261
  const getColumn = (fieldName: string) => {
181
262
  if (!allowedCols.concat(keysAddedDuringValidate).includes(fieldName)) {
182
263
  throw `Unexpected/Dissallowed column name: ${fieldName}`;
183
264
  }
184
- const column = tableHandler.columns.find(c => c.name === fieldName);
265
+ const column = tableHandler.columns.find((c) => c.name === fieldName);
185
266
  if (!column) {
186
267
  throw `Invalid column: ${fieldName}`;
187
268
  }
188
269
  return column;
189
270
  };
190
271
 
191
- const rowPartValues = Object.entries(row).map(([fieldName, fieldValue]) => {
192
- const column = getColumn(fieldName);
193
- if (isObject(fieldValue)) {
194
-
195
- // const textPatch = getTextPatch(column, fieldValue);
196
- // if(textPatch){
197
- // return {
198
- // type: "plain",
199
- // column,
200
- // fieldValue: textPatch,
201
- // } satisfies RowFieldData;
202
- // }
203
-
204
- const [firstKey, ...otherkeys] = Object.keys(fieldValue);
205
- const func = firstKey && !otherkeys.length? convertionFuncs.some(f => `$${f.name}` === firstKey) : undefined;
206
- if(func){
207
- const { funcName, args } = parseFunctionObject(fieldValue);
208
- return {
209
- type: "function",
210
- column,
211
- funcName,
212
- args,
213
- } satisfies RowFieldData
272
+ const rowPartValues = Object.entries(row).map(
273
+ ([fieldName, fieldValue]) => {
274
+ const column = getColumn(fieldName);
275
+ if (isObject(fieldValue)) {
276
+ // const textPatch = getTextPatch(column, fieldValue);
277
+ // if(textPatch){
278
+ // return {
279
+ // type: "plain",
280
+ // column,
281
+ // fieldValue: textPatch,
282
+ // } satisfies RowFieldData;
283
+ // }
284
+
285
+ const [firstKey, ...otherkeys] = Object.keys(fieldValue);
286
+ const func =
287
+ firstKey && !otherkeys.length
288
+ ? convertionFuncs.some((f) => `$${f.name}` === firstKey)
289
+ : undefined;
290
+ if (func) {
291
+ const { funcName, args } = parseFunctionObject(fieldValue);
292
+ return {
293
+ type: "function",
294
+ column,
295
+ funcName,
296
+ args,
297
+ } satisfies RowFieldData;
298
+ }
214
299
  }
215
- }
216
- return {
217
- type: "plain",
218
- column: getColumn(fieldName),
219
- fieldValue,
220
- } satisfies RowFieldData;
221
- });
222
-
300
+ return {
301
+ type: "plain",
302
+ column: getColumn(fieldName),
303
+ fieldValue,
304
+ } satisfies RowFieldData;
305
+ },
306
+ );
307
+
223
308
  return rowPartValues;
224
- }));
309
+ }),
310
+ );
225
311
 
226
312
  return rowFieldData;
227
- }
313
+ };
228
314
 
229
315
  const getTextPatch = async (c: TableSchemaColumn, fieldValue: any) => {
230
-
231
- if (c.data_type === "text" && fieldValue && isObject(fieldValue) && !["from", "to"].find(key => typeof fieldValue[key] !== "number")) {
232
- const unrecProps = Object.keys(fieldValue).filter(k => !["from", "to", "text", "md5"].includes(k));
316
+ if (
317
+ c.data_type === "text" &&
318
+ fieldValue &&
319
+ isObject(fieldValue) &&
320
+ !["from", "to"].find((key) => typeof fieldValue[key] !== "number")
321
+ ) {
322
+ const unrecProps = Object.keys(fieldValue).filter(
323
+ (k) => !["from", "to", "text", "md5"].includes(k),
324
+ );
233
325
  if (unrecProps.length) {
234
326
  throw "Unrecognised params in textPatch field: " + unrecProps.join(", ");
235
327
  }
@@ -238,10 +330,10 @@ const getTextPatch = async (c: TableSchemaColumn, fieldValue: any) => {
238
330
  from: number;
239
331
  to: number;
240
332
  text: string;
241
- md5: string
333
+ md5: string;
242
334
  } = {
243
- ...fieldValue,
244
- fieldName: c.name
335
+ ...fieldValue,
336
+ fieldName: c.name,
245
337
  } as any;
246
338
 
247
339
  // if (tableRules && !tableRules.select) throw "Select needs to be permitted to patch data";
@@ -251,18 +343,20 @@ const getTextPatch = async (c: TableSchemaColumn, fieldValue: any) => {
251
343
  // throw "Cannot patch data within a filter that affects more/less than 1 row";
252
344
  // }
253
345
  // return unpatchText(rows[0][p.fieldName], patchedTextData);
254
- const rawValue = `OVERLAY(${asName(c.name)} PLACING ${asValue(patchedTextData.text)} FROM ${asValue(patchedTextData.from)} FOR ${asValue(patchedTextData.to - patchedTextData.from + 1)})`
346
+ const rawValue = `OVERLAY(${asName(c.name)} PLACING ${asValue(patchedTextData.text)} FROM ${asValue(patchedTextData.from)} FOR ${asValue(patchedTextData.to - patchedTextData.from + 1)})`;
255
347
  return rawValue;
256
- }
257
-
258
- return undefined
259
- }
348
+ }
260
349
 
261
- const getParsedRowFieldDataFunction = async (rowPart: RowFieldDataFunction, args: ParseDataArgs) => {
350
+ return undefined;
351
+ };
262
352
 
263
- const func = convertionFuncs.find(f => `$${f.name}` === rowPart.funcName);
353
+ const getParsedRowFieldDataFunction = async (
354
+ rowPart: RowFieldDataFunction,
355
+ args: ParseDataArgs,
356
+ ) => {
357
+ const func = convertionFuncs.find((f) => `$${f.name}` === rowPart.funcName);
264
358
  if (!func) {
265
- throw `Unknown function: ${rowPart.funcName}. Expecting one of: ${convertionFuncs.map(f => f.name).join(", ")}`;
359
+ throw `Unknown function: ${rowPart.funcName}. Expecting one of: ${convertionFuncs.map((f) => f.name).join(", ")}`;
266
360
  }
267
361
  if (func.onlyAllowedFor && func.onlyAllowedFor !== args.command) {
268
362
  throw `Function ${rowPart.funcName} is only allowed for ${func.onlyAllowedFor} but not ${args.command}`;
@@ -270,35 +364,43 @@ const getParsedRowFieldDataFunction = async (rowPart: RowFieldDataFunction, args
270
364
  return func.getQuery(rowPart);
271
365
  };
272
366
 
273
- const getParsedRowFieldData = async (rowFieldData: RowFieldData[][], args: ParseDataArgs) => {
274
- const parsedRowFieldData = Promise.all(rowFieldData.map(rowParts => {
275
- return Promise.all(rowParts.map(async rowPart => {
276
- let escapedVal: string;
277
- if (rowPart.type === "function") {
278
- escapedVal = await getParsedRowFieldDataFunction(rowPart, args);
279
- } else {
280
-
281
- /** Prevent pg-promise formatting jsonb */
282
- const colIsJSON = ["json", "jsonb"].includes(rowPart.column.data_type);
283
- escapedVal = pgp.as.format(colIsJSON ? "$1:json" : "$1", [rowPart.fieldValue])
284
- }
367
+ const getParsedRowFieldData = async (
368
+ rowFieldData: RowFieldData[][],
369
+ args: ParseDataArgs,
370
+ ) => {
371
+ const parsedRowFieldData = Promise.all(
372
+ rowFieldData.map((rowParts) => {
373
+ return Promise.all(
374
+ rowParts.map(async (rowPart) => {
375
+ let escapedVal: string;
376
+ if (rowPart.type === "function") {
377
+ escapedVal = await getParsedRowFieldDataFunction(rowPart, args);
378
+ } else {
379
+ /** Prevent pg-promise formatting jsonb */
380
+ const colIsJSON = ["json", "jsonb"].includes(
381
+ rowPart.column.data_type,
382
+ );
383
+ escapedVal = pgp.as.format(colIsJSON ? "$1:json" : "$1", [
384
+ rowPart.fieldValue,
385
+ ]);
386
+ }
285
387
 
286
- /**
287
- * Cast to type to avoid array errors (they do not cast automatically)
288
- */
289
- escapedVal += `::${rowPart.column.udt_name}`;
388
+ /**
389
+ * Cast to type to avoid array errors (they do not cast automatically)
390
+ */
391
+ escapedVal += `::${rowPart.column.udt_name}`;
290
392
 
291
- return {
292
- escapedCol: asName(rowPart.column.name),
293
- escapedVal,
294
- };
295
- }));
296
- }));
393
+ return {
394
+ escapedCol: asName(rowPart.column.name),
395
+ escapedVal,
396
+ };
397
+ }),
398
+ );
399
+ }),
400
+ );
297
401
 
298
402
  return parsedRowFieldData;
299
- }
300
-
301
-
403
+ };
302
404
 
303
405
  type ConvertionFunc = {
304
406
  name: string;
@@ -315,31 +417,36 @@ const convertionFuncs: ConvertionFunc[] = [
315
417
  "ST_MakePointM",
316
418
  "ST_PointFromText",
317
419
  "ST_GeomFromEWKT",
318
- "ST_GeomFromGeoJSON"
319
- ].map(name => ({
320
- name,
321
- getQuery: ({ args }) => {
322
- const argList = args.map(arg => asValue(arg)).join(", ");
323
- return `${name}(${argList})`;
324
- }
325
- } satisfies ConvertionFunc)),
420
+ "ST_GeomFromGeoJSON",
421
+ ].map(
422
+ (name) =>
423
+ ({
424
+ name,
425
+ getQuery: ({ args }) => {
426
+ const argList = args.map((arg) => asValue(arg)).join(", ");
427
+ return `${name}(${argList})`;
428
+ },
429
+ }) satisfies ConvertionFunc,
430
+ ),
326
431
  {
327
432
  name: "to_timestamp",
328
- getQuery: ({ args }) => `to_timestamp(${asValue(args[0])}::BIGINT/1000.0)::timestamp`
329
- }, {
433
+ getQuery: ({ args }) =>
434
+ `to_timestamp(${asValue(args[0])}::BIGINT/1000.0)::timestamp`,
435
+ },
436
+ {
330
437
  name: "merge",
331
- description: "Merge the provided jsonb objects into the existing column value, ensuring that a null source value will be coalesced with provided values",
438
+ description:
439
+ "Merge the provided jsonb objects into the existing column value, ensuring that a null source value will be coalesced with provided values",
332
440
  onlyAllowedFor: "update",
333
441
  getQuery: ({ args, column }) => {
334
442
  if (!args.length) throw "merge function requires at least one argument";
335
- const argVals = args.map(arg => asValue(arg))
443
+ const argVals = args.map((arg) => asValue(arg));
336
444
  const argList = argVals.join(" || ");
337
445
  return `COALESCE(${asName(column.name)}, ${argVals.join(", ")}) || ${argList}`;
338
- }
339
- }
446
+ },
447
+ },
340
448
  ];
341
449
 
342
-
343
450
  export class ColSet {
344
451
  opts: {
345
452
  columns: ColumnInfo[];
@@ -348,10 +455,9 @@ export class ColSet {
348
455
  };
349
456
 
350
457
  constructor(columns: ColumnInfo[], tableName: string) {
351
- this.opts = { columns, tableName, colNames: columns.map(c => c.name) }
458
+ this.opts = { columns, tableName, colNames: columns.map((c) => c.name) };
352
459
  }
353
460
 
354
-
355
461
  // private async getRow(data: any, allowedCols: string[], dbTx: DBHandlerServer, validate: ValidateRow | undefined, command: "update" | "insert", localParams: LocalParams | undefined): Promise<ParsedRowFieldData[]> {
356
462
  // const badCol = allowedCols.find(c => !this.opts.colNames.includes(c))
357
463
  // if (!allowedCols || badCol) {
@@ -388,7 +494,6 @@ export class ColSet {
388
494
  // escapedVal = func.getQuery(funcArgs);
389
495
  // } else if (col.udt_name === "text") {
390
496
 
391
-
392
497
  // } else {
393
498
  // /** Prevent pg-promise formatting jsonb */
394
499
  // const colIsJSON = ["json", "jsonb"].includes(col.data_type);
@@ -425,4 +530,4 @@ export class ColSet {
425
530
  // }))).join(";\n") + " ";
426
531
  // return res;
427
532
  // }
428
- }
533
+ }