prostgles-server 1.5.122 → 2.0.3

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 (426) hide show
  1. package/dist/DboBuilder.d.ts +52 -27
  2. package/dist/DboBuilder.d.ts.map +1 -1
  3. package/dist/DboBuilder.js +404 -85
  4. package/dist/DboBuilder.js.map +1 -1
  5. package/dist/FileManager.d.ts +160 -0
  6. package/dist/FileManager.d.ts.map +1 -0
  7. package/dist/FileManager.js +419 -0
  8. package/dist/FileManager.js.map +1 -0
  9. package/dist/Prostgles.d.ts +145 -79
  10. package/dist/Prostgles.d.ts.map +1 -1
  11. package/dist/Prostgles.js +240 -180
  12. package/dist/Prostgles.js.map +1 -1
  13. package/dist/PubSubManager.js +1 -1
  14. package/dist/PubSubManager.js.map +1 -1
  15. package/dist/QueryBuilder.d.ts.map +1 -1
  16. package/dist/QueryBuilder.js +8 -5
  17. package/dist/QueryBuilder.js.map +1 -1
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/lib/DboBuilder.ts +541 -136
  22. package/lib/FileManager.ts +546 -0
  23. package/lib/Prostgles.ts +407 -253
  24. package/lib/PubSubManager.ts +1 -1
  25. package/lib/QueryBuilder.ts +10 -6
  26. package/lib/index.ts +3 -3
  27. package/package.json +8 -2
  28. package/tests/client/index.js +18 -6
  29. package/tests/client/index.ts +16 -4
  30. package/tests/client/package-lock.json +27 -26
  31. package/tests/client/package.json +1 -1
  32. package/tests/client_only_queries.js +4 -4
  33. package/tests/config_test/DBoGenerated.d.ts +231 -8
  34. package/tests/config_test/index.html +35 -9
  35. package/tests/config_test/index.js +55 -97
  36. package/tests/config_test/index.js.map +1 -0
  37. package/tests/config_test/index.ts +67 -113
  38. package/tests/config_test/init.sql +50 -24
  39. package/tests/config_test/media/002d5f12-63c3-41f3-9007-cd33009104f4.txt +1 -0
  40. package/tests/config_test/media/003f0136-d231-4dd1-8937-08fa9a7c3d2e.txt +1 -0
  41. package/tests/config_test/media/01bd39a0-083b-4bfa-91fc-f4d1d9b7b204.txt +1 -0
  42. package/tests/config_test/media/0224513a-62de-4f0a-92bb-dcb3f700da7f.txt +1 -0
  43. package/tests/config_test/media/03005346-d6d5-4824-96ae-5ad7ca762730.txt +1 -0
  44. package/tests/config_test/media/0342d065-9bd2-443f-9058-f8058ab52de0.txt +1 -0
  45. package/tests/config_test/media/0350d1cf-b3b3-4c58-aef2-ad1dc3f80c6c.txt +1 -0
  46. package/tests/config_test/media/036833d7-d166-43a1-bda3-b801938c614d.txt +1 -0
  47. package/tests/config_test/media/03b5324d-0913-408f-a78a-252ff8fe8126.txt +1 -0
  48. package/tests/config_test/media/0540b670-bf42-4a83-82b2-67164630a24a.txt +1 -0
  49. package/tests/config_test/media/05900f5f-3b67-4ee9-8e1d-b511fd79d878.txt +1 -0
  50. package/tests/config_test/media/05969252-3f9e-41a0-88ce-aa23ba8b42eb.txt +1 -0
  51. package/tests/config_test/media/05a8a60c-cc75-4469-8e06-55d88c26e97a.txt +1 -0
  52. package/tests/config_test/media/05e662fc-7a03-4303-ae42-27a28d9affb9.txt +1 -0
  53. package/tests/config_test/media/061f86e6-0ddd-49b0-b243-4c063c6db5e4.txt +1 -0
  54. package/tests/config_test/media/062cf311-3976-471e-88ec-d618bd8ceeaa.txt +1 -0
  55. package/tests/config_test/media/0693b073-77b9-446a-9606-5453bcafd200.txt +1 -0
  56. package/tests/config_test/media/07a09b79-b1ed-45a3-bb42-42cd1a00757b.txt +1 -0
  57. package/tests/config_test/media/07e48303-0520-4a80-921e-130417488baa.txt +1 -0
  58. package/tests/config_test/media/09ab90a6-8461-4f39-89fb-8e2277974771.txt +1 -0
  59. package/tests/config_test/media/09c1194a-5d09-417c-a0c4-26dcf1e65bdb.txt +1 -0
  60. package/tests/config_test/media/09dc662f-6a9d-4a0b-95ba-8d24ceae9721.txt +1 -0
  61. package/tests/config_test/media/09ebb492-6146-4ff8-ac83-ac9970f5844c.txt +1 -0
  62. package/tests/config_test/media/0a198d6f-c629-42bd-9aa8-3c0ff62e1f1d.txt +1 -0
  63. package/tests/config_test/media/0a6d3ced-a16f-4491-b25b-679e9323ad79.txt +1 -0
  64. package/tests/config_test/media/0a817a27-6888-4ac4-b07b-4d1275e035ff.txt +1 -0
  65. package/tests/config_test/media/0aadc4f7-bf87-49da-8ef6-0857bf1789b4.txt +1 -0
  66. package/tests/config_test/media/0abe4a2e-fd75-428b-9757-2535d4112862.txt +1 -0
  67. package/tests/config_test/media/0ad9deca-6362-41dd-b0b3-8f8a71e2e1e2.txt +1 -0
  68. package/tests/config_test/media/0bdb19df-b82c-4a07-8d9b-a6e3a2af8a94.txt +1 -0
  69. package/tests/config_test/media/0c1e4575-223d-4d0c-b2c3-6ab6bb9844e6.txt +1 -0
  70. package/tests/config_test/media/0c4e3d55-432f-42e9-aa53-48e816ff6d15.txt +1 -0
  71. package/tests/config_test/media/0c5b47a4-884a-4207-b106-fa2557fc5600.txt +1 -0
  72. package/tests/config_test/media/0d8fbe62-22bc-47e8-b4ca-b77d8fd02798.txt +1 -0
  73. package/tests/config_test/media/0d95a140-3ae1-4faa-a34b-ed5b6cc524ac.txt +1 -0
  74. package/tests/config_test/media/0e0907c7-bd10-4ce2-ac36-066916a8a793.txt +1 -0
  75. package/tests/config_test/media/0e192b00-2676-4130-8819-90ee34a50932.txt +1 -0
  76. package/tests/config_test/media/0f9e3861-0e59-4ae4-a606-1fdd2c890c5b.txt +1 -0
  77. package/tests/config_test/media/1039afe1-24e9-4ea6-bfd0-6871b5f06f8f.txt +1 -0
  78. package/tests/config_test/media/1052e479-295e-46e9-88ec-d8f20efa75ea.txt +1 -0
  79. package/tests/config_test/media/11973be6-a675-4e0d-a54e-1eccbcdb3f2a.txt +1 -0
  80. package/tests/config_test/media/121656f5-1ef9-4181-9ee0-e3ae1433fed1.txt +1 -0
  81. package/tests/config_test/media/121a16b4-a925-406b-9ba9-0e4b4d413402.txt +1 -0
  82. package/tests/config_test/media/122cdf36-5b17-4b81-aa9d-c6725d1e8c8a.txt +1 -0
  83. package/tests/config_test/media/12435236-4735-4978-a234-52100181ee72.txt +1 -0
  84. package/tests/config_test/media/130eea28-64d0-40c4-8fa4-0cfba493e321.txt +1 -0
  85. package/tests/config_test/media/1435b6fd-4b86-4f7e-8e68-b607c5e5f2ad.txt +1 -0
  86. package/tests/config_test/media/14d78bf0-fd3e-4686-863d-b18d2c69b181.txt +1 -0
  87. package/tests/config_test/media/14dffd0e-23ae-4659-b8b3-25c89593643e.txt +1 -0
  88. package/tests/config_test/media/14e32028-fb4d-4743-a34d-c325be47b25e.txt +1 -0
  89. package/tests/config_test/media/14fb2139-eb53-4246-8dcb-c1e568572306.txt +1 -0
  90. package/tests/config_test/media/1644d880-c61f-4e9c-9c5c-892623ff5689.txt +1 -0
  91. package/tests/config_test/media/16818bb0-a022-4fd9-acac-e5a448b58eaf.txt +1 -0
  92. package/tests/config_test/media/16a47db5-262f-490b-850f-0f82019a58b4.txt +1 -0
  93. package/tests/config_test/media/16c2ffcc-8632-4935-b12d-be1313b74ddc.txt +1 -0
  94. package/tests/config_test/media/16fe3928-25c7-4e3a-9f68-51520712a4f6.txt +1 -0
  95. package/tests/config_test/media/172a7736-d3cf-431c-92a5-1a4aa6e89c7e.txt +1 -0
  96. package/tests/config_test/media/1784e75f-d063-43e2-accb-364ed36ae7d0.txt +1 -0
  97. package/tests/config_test/media/182e9dcc-0443-4cc5-aff1-9cf954dab771.txt +1 -0
  98. package/tests/config_test/media/19158860-e0c0-4ac7-afee-5428f9060b36.txt +1 -0
  99. package/tests/config_test/media/1998f271-5d71-4bc0-9f92-376a8a98f7da.txt +1 -0
  100. package/tests/config_test/media/19d2b383-4b1b-41a5-a7ef-ceaf1e691e0f.txt +1 -0
  101. package/tests/config_test/media/1c33fac7-470b-47e0-8aba-7c7394406aad.txt +1 -0
  102. package/tests/config_test/media/1d8a6c9c-0539-4c08-8ea5-4bd0bbe8fa18.txt +1 -0
  103. package/tests/config_test/media/1de86105-97ce-49c0-8137-030f3af37fb5.txt +1 -0
  104. package/tests/config_test/media/1f1393d1-e2f2-445e-806e-05c9a6135437.txt +1 -0
  105. package/tests/config_test/media/1fc303e7-943c-42cd-87f0-d14b361e5564.txt +1 -0
  106. package/tests/config_test/media/1fd79260-4246-4230-b4ab-c42baad3de44.txt +1 -0
  107. package/tests/config_test/media/209085fb-8441-4039-bb01-32171248c7f7.txt +1 -0
  108. package/tests/config_test/media/20ab3e07-77d6-4fbc-9532-b47e16c38e68.txt +1 -0
  109. package/tests/config_test/media/20d43c00-35b4-43da-b79f-cb59888ac41b.txt +1 -0
  110. package/tests/config_test/media/20f7f651-06de-4d5f-aa39-2c261c662cd3.txt +1 -0
  111. package/tests/config_test/media/214af93c-f973-4809-a440-87a5a3b28e83.txt +1 -0
  112. package/tests/config_test/media/22bffc7f-c942-4163-bbf6-141f585f3671.txt +1 -0
  113. package/tests/config_test/media/23d09f4f-db2a-44cb-9d1b-552eb0568acf.txt +1 -0
  114. package/tests/config_test/media/24a256f7-fe83-4a6d-ace8-a2c2ded37341.txt +1 -0
  115. package/tests/config_test/media/25522aa0-9c30-413b-b0df-f9f2c2562769.txt +1 -0
  116. package/tests/config_test/media/25806b78-52cd-40f2-907a-d4fba3821435.txt +1 -0
  117. package/tests/config_test/media/259920a6-0c5a-4193-8940-91fc0183204c.txt +1 -0
  118. package/tests/config_test/media/28ca6b02-f58e-4204-a87a-28347d8f5884.txt +1 -0
  119. package/tests/config_test/media/2a3f8e6e-3bc4-44b3-ac43-17851b1f53e4.txt +1 -0
  120. package/tests/config_test/media/2afe6eb3-64ca-4aae-b002-676ab3862c96.txt +1 -0
  121. package/tests/config_test/media/2bd913c1-408a-4451-b465-e48452ca46cb.txt +1 -0
  122. package/tests/config_test/media/2bfe0f21-70b6-45a7-9bc0-f60dee9b0786.txt +1 -0
  123. package/tests/config_test/media/2c37bb2d-412e-44be-8f91-58bf1adae554.txt +1 -0
  124. package/tests/config_test/media/2c6ffa05-479f-4d8f-bc98-0c050567ef28.txt +1 -0
  125. package/tests/config_test/media/2ce666cb-e1e7-411f-9727-ce47be9365f5.txt +1 -0
  126. package/tests/config_test/media/2d737158-559b-4fca-b35c-3a832e21a0bf.txt +1 -0
  127. package/tests/config_test/media/2d7cae40-8fa9-4715-8834-b105a5815efc.txt +1 -0
  128. package/tests/config_test/media/2ea6b55b-eb9e-4b72-9510-4d5b00490076.txt +1 -0
  129. package/tests/config_test/media/2f0f8b73-7a21-48e5-b0d8-6e733de5eef8.txt +1 -0
  130. package/tests/config_test/media/2f37ed63-4a76-49e8-9df0-b586e2318b54.txt +1 -0
  131. package/tests/config_test/media/2f4e2797-63dd-43cb-8edf-b6e4a5f6d85b.txt +1 -0
  132. package/tests/config_test/media/2fc8b254-571c-49da-b8d8-af12bead2b6e.txt +1 -0
  133. package/tests/config_test/media/31887ce4-a69d-429e-bd32-e3fcf1b6ec3c.txt +1 -0
  134. package/tests/config_test/media/31ab5780-f38f-4614-b11e-1399a5d19e88.txt +1 -0
  135. package/tests/config_test/media/330b1369-abf8-4a0d-aac3-15185409347b.txt +1 -0
  136. package/tests/config_test/media/332306f0-16a4-46f1-b312-42d5b1739561.txt +1 -0
  137. package/tests/config_test/media/33729cd7-ef5a-461d-860c-188b12c3c0e1.txt +1 -0
  138. package/tests/config_test/media/34f797b8-98c7-47ff-ac4f-da792d3e59ec.txt +1 -0
  139. package/tests/config_test/media/35753dc2-4a87-4fdb-b547-8ba587ab7cca.txt +1 -0
  140. package/tests/config_test/media/35cf2e07-f087-410d-898b-326b16617631.txt +1 -0
  141. package/tests/config_test/media/3704c54c-08b7-429c-98fa-0656dca539ca.txt +1 -0
  142. package/tests/config_test/media/3823f728-c199-416b-aeb3-223bc0dc006a.txt +1 -0
  143. package/tests/config_test/media/38d31ef9-7e41-47f9-8e05-e826f9d1a378.txt +1 -0
  144. package/tests/config_test/media/39504f22-47a7-428a-8793-7cb9cc79b23d.txt +1 -0
  145. package/tests/config_test/media/39baaddd-7764-48b4-9dc3-e77f91b04ff0.txt +1 -0
  146. package/tests/config_test/media/39c91ceb-928d-4279-a8a7-00f363b18384.txt +1 -0
  147. package/tests/config_test/media/3a58c511-78de-425f-a857-63a43e3b4c51.txt +1 -0
  148. package/tests/config_test/media/3c3fd2ca-8a72-4d38-899b-776f4ff690fc.txt +1 -0
  149. package/tests/config_test/media/3c592436-14fa-49f5-be05-1d8aff250d0d.txt +1 -0
  150. package/tests/config_test/media/3db275e8-327d-45d4-a755-3df103967b04.txt +1 -0
  151. package/tests/config_test/media/3de350d2-a26d-40ef-ad11-fa1454a0f50a.txt +1 -0
  152. package/tests/config_test/media/3e4f08ac-8b0a-4ec6-b3be-ff6ce140af6a.txt +1 -0
  153. package/tests/config_test/media/3fa40e56-cb30-4722-ba36-583e7c064d16.txt +1 -0
  154. package/tests/config_test/media/3fe9495c-6fa5-49ca-a16f-e3cf1808d619.txt +1 -0
  155. package/tests/config_test/media/3fed5003-1a13-433d-a82f-325dbd57ff55.txt +1 -0
  156. package/tests/config_test/media/40dfa3df-237e-4e0d-99ff-c90000c5f7ed.txt +1 -0
  157. package/tests/config_test/media/40ea2d40-3f28-46e5-a41d-5aae1721de21.txt +1 -0
  158. package/tests/config_test/media/410c564d-860e-4693-9112-efb2304bf940.txt +1 -0
  159. package/tests/config_test/media/424c9239-aa07-48f3-9a64-c99261387fec.txt +1 -0
  160. package/tests/config_test/media/4260eab4-3e7d-420a-bc8f-b9cc945f3c80.txt +1 -0
  161. package/tests/config_test/media/42886a01-8047-4a49-beab-97f5a3a7c128.txt +1 -0
  162. package/tests/config_test/media/44e2e069-a213-4632-b13b-153461000c5e.txt +1 -0
  163. package/tests/config_test/media/46520b9c-f878-41e9-9840-0d0babb9b63d.txt +1 -0
  164. package/tests/config_test/media/46f010a8-66b2-48d8-b4a6-62cc23e26008.txt +1 -0
  165. package/tests/config_test/media/48c9f649-f776-4cd9-8df5-56b5312f51c2.txt +1 -0
  166. package/tests/config_test/media/49f5836b-4fb0-4ee1-831b-91ddfcaac0bf.txt +1 -0
  167. package/tests/config_test/media/4a2d3bae-040e-44fe-bb36-301af65302fd.txt +1 -0
  168. package/tests/config_test/media/4ab15a14-36c7-4a4e-8179-be60c56368c5.txt +1 -0
  169. package/tests/config_test/media/4b98c009-458a-4e35-96e2-ccd465673234.txt +1 -0
  170. package/tests/config_test/media/4bf86749-685c-423c-9997-eb73cb0bc254.txt +1 -0
  171. package/tests/config_test/media/4db9d5ad-c703-4fb5-9b15-9c48ee3edca1.txt +1 -0
  172. package/tests/config_test/media/4dd147f7-59ef-4b8f-963b-1dbedb0d10a2.txt +1 -0
  173. package/tests/config_test/media/4e61da19-25e1-44a0-b901-2cefc3461619.txt +1 -0
  174. package/tests/config_test/media/4e66c64c-72e3-4458-8ac9-490774193a50.txt +1 -0
  175. package/tests/config_test/media/4e98ba50-1583-4d7b-9e0d-7c577af28182.txt +1 -0
  176. package/tests/config_test/media/4e9cb872-dd5f-404a-ae9f-97ec69606d36.txt +1 -0
  177. package/tests/config_test/media/4fbb89d3-e922-42f2-81ed-6c1370199c94.txt +1 -0
  178. package/tests/config_test/media/4fdf0b1d-1718-4f53-8a9c-6d44bdef0c60.txt +1 -0
  179. package/tests/config_test/media/503c6659-ff3f-4df4-ac88-628e809b2e72.txt +1 -0
  180. package/tests/config_test/media/51010c69-5b30-4ac7-8ed9-12f1866ef145.txt +1 -0
  181. package/tests/config_test/media/51b2d38d-230e-4eb0-9b1f-dab8fa8b415d.txt +1 -0
  182. package/tests/config_test/media/51cc7a7b-a764-4ebd-ac31-ba881fa1404e.txt +1 -0
  183. package/tests/config_test/media/52f0dbb6-2179-4472-871d-dd80c6341c58.txt +1 -0
  184. package/tests/config_test/media/54aff9eb-0202-447d-9c95-c74560cabcd7.txt +1 -0
  185. package/tests/config_test/media/55551c8d-4305-48ca-a752-ade3a9efb538.txt +1 -0
  186. package/tests/config_test/media/555b772b-6c78-4667-80d6-bbe2f290611c.txt +1 -0
  187. package/tests/config_test/media/555fbb0b-febc-4611-9efa-16ddbf8e988c.txt +1 -0
  188. package/tests/config_test/media/55a84883-9a15-4368-b8fe-05bd848de6ba.txt +1 -0
  189. package/tests/config_test/media/56523343-de4a-49de-94ae-8205cc92eeb6.txt +1 -0
  190. package/tests/config_test/media/567d431e-813f-47d7-a3d2-e2371c0f32e2.txt +1 -0
  191. package/tests/config_test/media/56fa54a9-10a4-42a3-9a29-ea132adf09bc.txt +1 -0
  192. package/tests/config_test/media/57734e9e-d5b8-4942-a76c-db1d0cb72aea.txt +1 -0
  193. package/tests/config_test/media/5777d7a2-cd26-494e-92ba-fa681c2445ef.txt +1 -0
  194. package/tests/config_test/media/582f6e3f-1b06-4f97-bb81-4355cc139e41.txt +1 -0
  195. package/tests/config_test/media/584ef61c-974e-4882-aaff-8089029b7a66.txt +1 -0
  196. package/tests/config_test/media/58987f15-0627-4c3c-a8ba-33e0315548f9.txt +1 -0
  197. package/tests/config_test/media/58eb23e6-6110-489f-81d3-37d48bcd3bf7.txt +1 -0
  198. package/tests/config_test/media/5c5e5543-491c-49d2-b762-162faa75019a.txt +1 -0
  199. package/tests/config_test/media/5e688b4a-afba-4d47-bdc8-dd108d673619.txt +1 -0
  200. package/tests/config_test/media/5f42b54e-6020-4552-8872-17dc7d57b110.txt +1 -0
  201. package/tests/config_test/media/5f5ae0f6-816d-4425-8403-5d07284db0aa.txt +1 -0
  202. package/tests/config_test/media/5ffa2969-2d65-430e-a621-420c07f18f41.txt +1 -0
  203. package/tests/config_test/media/62a62671-e4bc-4312-8dfd-a06168c22aee.txt +1 -0
  204. package/tests/config_test/media/63732c16-1f11-4635-b2bc-62a6459e651e.txt +1 -0
  205. package/tests/config_test/media/64b8c889-5423-4cbb-9816-a05e72771b52.txt +1 -0
  206. package/tests/config_test/media/653d8bcd-4e60-4fda-9676-2e0054d966c1.txt +1 -0
  207. package/tests/config_test/media/6602e1e0-07e9-4dd1-b3c8-276f24e2a41f.txt +1 -0
  208. package/tests/config_test/media/67868636-99cc-441b-991d-7fe781b67745.txt +1 -0
  209. package/tests/config_test/media/67b4eede-7118-4e25-8801-ca53d0fd9d7f.txt +1 -0
  210. package/tests/config_test/media/67b817df-8c2f-4fe5-ba38-6090b5658943.txt +1 -0
  211. package/tests/config_test/media/67f8c8a6-8aa3-4d0f-bcf6-bec8c5a6726a.txt +1 -0
  212. package/tests/config_test/media/6808c09c-a1a9-4eea-92d6-327957c599be.txt +1 -0
  213. package/tests/config_test/media/681f8ee3-0d7f-4d85-a593-0c1f5ceea9be.txt +1 -0
  214. package/tests/config_test/media/68ae942b-c728-4127-a057-dfd08edc1aee.txt +1 -0
  215. package/tests/config_test/media/6a405178-234d-4562-ab34-c554826476fc.txt +1 -0
  216. package/tests/config_test/media/6b801410-b1fb-43f6-935e-c7cb09fb0f5a.txt +1 -0
  217. package/tests/config_test/media/6bd41073-fa62-4c20-a896-8b1e5d2b8381.txt +1 -0
  218. package/tests/config_test/media/6ea9bf1d-780e-4fc2-987e-841038b791cd.txt +1 -0
  219. package/tests/config_test/media/6fa62bcc-859a-44eb-a85b-ed12b3aec3ae.txt +1 -0
  220. package/tests/config_test/media/70118801-66f3-4165-a0b2-8918e4d4bd15.txt +1 -0
  221. package/tests/config_test/media/70640e73-56dc-4880-af62-ad7530a1185d.txt +1 -0
  222. package/tests/config_test/media/7114e6d7-f285-48b3-80c9-ec3fb1c3233e.txt +1 -0
  223. package/tests/config_test/media/71997029-9398-4efb-9868-3025b6de861a.txt +1 -0
  224. package/tests/config_test/media/725cb5f7-8410-4b7a-8427-90b213cea9d6.txt +1 -0
  225. package/tests/config_test/media/727960af-4454-4aa2-b479-c88398ca2c01.txt +1 -0
  226. package/tests/config_test/media/763e2702-7677-48b0-89be-30f8caf56667.txt +1 -0
  227. package/tests/config_test/media/7682d7aa-6622-4ae1-bdfc-bb5134cf92d9.txt +1 -0
  228. package/tests/config_test/media/773d6a45-2316-41da-9973-1395727ffc1f.txt +1 -0
  229. package/tests/config_test/media/783cdda1-9913-4ab0-aba6-56a4c22e2b61.txt +1 -0
  230. package/tests/config_test/media/78becb97-76f6-4fd1-976d-ab3d5e4b21c2.txt +1 -0
  231. package/tests/config_test/media/78cb1409-965a-44ea-b42b-0363db4d2ebd.txt +1 -0
  232. package/tests/config_test/media/79f9864e-b5d5-4c8d-bb66-749f5b49877f.txt +1 -0
  233. package/tests/config_test/media/7b2928b9-4fd3-46c7-8b78-f8d1118c605b.txt +1 -0
  234. package/tests/config_test/media/7b5aead0-b20b-4719-88aa-3dd070d53e4d.txt +1 -0
  235. package/tests/config_test/media/7c1a82c9-391d-40fb-a6f3-d79468fcd45f.txt +1 -0
  236. package/tests/config_test/media/7f1aefd7-7c6b-4b29-9f71-a85d800d63eb.txt +1 -0
  237. package/tests/config_test/media/7fe1aa1b-3e92-4f1b-a77d-bf69601ba162.txt +1 -0
  238. package/tests/config_test/media/802ca8c0-8898-446d-aeca-59d0cce3eea5.txt +1 -0
  239. package/tests/config_test/media/8034e1cc-a82a-4e65-9019-ecf53a212c9e.txt +1 -0
  240. package/tests/config_test/media/80828d5a-916c-412b-aa23-eccdf3ce4078.txt +1 -0
  241. package/tests/config_test/media/81a6ec1c-49c5-490b-afe8-bd47a3c3b1e7.txt +1 -0
  242. package/tests/config_test/media/82827b46-f1f4-4b2a-bd5a-4a83e6b5cc12.txt +1 -0
  243. package/tests/config_test/media/82f7163d-c5a6-44fe-b06a-b1863c553af4.txt +1 -0
  244. package/tests/config_test/media/83141a3e-3f8b-456a-83f1-b9b4ada167f0.txt +1 -0
  245. package/tests/config_test/media/837397e7-63f9-4cba-8b10-51d565e00341.txt +1 -0
  246. package/tests/config_test/media/8440b86e-2036-46ef-affe-e052ae1e232f.txt +1 -0
  247. package/tests/config_test/media/8729c33a-8f9d-496c-8090-42947d3bd4c7.txt +1 -0
  248. package/tests/config_test/media/874e1047-3429-443a-868d-4ce453c3a525.txt +1 -0
  249. package/tests/config_test/media/8770cffa-58f5-4c15-869a-687c77529f81.txt +1 -0
  250. package/tests/config_test/media/87c977c0-4375-4527-abc1-6223c71e8756.txt +1 -0
  251. package/tests/config_test/media/889e72cc-7e19-40ef-9d5b-1e501f3b48c7.txt +1 -0
  252. package/tests/config_test/media/88c89c9b-755e-43f9-9ac6-c01df1e83dfb.txt +1 -0
  253. package/tests/config_test/media/894ee8b5-d527-40e2-a7e1-475d9f07c2aa.txt +1 -0
  254. package/tests/config_test/media/89ec8a46-a4bf-4462-8f6d-c132016af9e1.txt +1 -0
  255. package/tests/config_test/media/8b2bee47-1673-4cd9-a8d5-033ef092b93e.txt +1 -0
  256. package/tests/config_test/media/8c362262-34ff-4707-ab5f-c334034083ee.txt +1 -0
  257. package/tests/config_test/media/8c458967-085b-4750-91e6-3ea391147bc7.txt +1 -0
  258. package/tests/config_test/media/8c5b0560-fc62-47a5-b480-a93120ca7bc4.txt +1 -0
  259. package/tests/config_test/media/8ce076d6-e809-4355-97ab-96104b51b939.txt +1 -0
  260. package/tests/config_test/media/8d60f276-8a2d-48e2-934b-63ef82f03d0f.txt +1 -0
  261. package/tests/config_test/media/8d889db9-f6b8-4ccb-864c-d10d1a54f7e9.txt +1 -0
  262. package/tests/config_test/media/8df0284b-c43f-4c32-a4e1-7dbe2c8c80f0.txt +1 -0
  263. package/tests/config_test/media/8e583c0b-1e2e-4b51-b104-1382e81f69d9.txt +1 -0
  264. package/tests/config_test/media/8f57d7e8-0f26-4719-b4d1-37896da3f579.txt +1 -0
  265. package/tests/config_test/media/9070fc55-481f-44c9-96f2-62f7c0a08814.txt +1 -0
  266. package/tests/config_test/media/93743c64-b60e-4521-9774-4d3beffd4465.txt +1 -0
  267. package/tests/config_test/media/939c6b06-b95d-4de6-bdaa-6f33cbe1fc1e.txt +1 -0
  268. package/tests/config_test/media/94ac4fc1-ba54-43de-b283-a7fa05eb3921.txt +1 -0
  269. package/tests/config_test/media/95093a2d-81d2-46d7-a817-7ab507cc2454.txt +1 -0
  270. package/tests/config_test/media/9628850e-c8d3-44da-b3b4-b27e00ba0e05.txt +1 -0
  271. package/tests/config_test/media/965e4782-3120-41c1-a398-23b38a342d95.txt +1 -0
  272. package/tests/config_test/media/97216f64-db92-4fa8-a239-5a115e3293a0.txt +1 -0
  273. package/tests/config_test/media/97b54a41-ec05-498e-9c61-6ec20f34a331.txt +1 -0
  274. package/tests/config_test/media/97c15c9a-13b4-49f1-b9ea-708c92756b95.txt +1 -0
  275. package/tests/config_test/media/97e45e1c-d03b-4a17-bb6f-ea8601e7fdf4.txt +1 -0
  276. package/tests/config_test/media/98faca9f-2686-4338-a1c2-d1920cce2fc0.txt +1 -0
  277. package/tests/config_test/media/997016d6-6832-4c09-9f8d-949dba5f4f8e.txt +1 -0
  278. package/tests/config_test/media/99ce7c2e-d4a3-49d0-9251-9c62d28288f5.txt +1 -0
  279. package/tests/config_test/media/9a9940a6-78b9-4978-98a6-914a171406c3.txt +1 -0
  280. package/tests/config_test/media/9ade4d45-452f-4a3f-ba4f-d9a08da80dab.txt +1 -0
  281. package/tests/config_test/media/9aff7e30-1809-4021-8ab1-e9a04068ad15.txt +1 -0
  282. package/tests/config_test/media/9b6b83df-1ee4-48f2-a3b0-aee0723378fc.txt +1 -0
  283. package/tests/config_test/media/9bbf50e1-c19d-4cc4-a366-0dcc234f003f.txt +1 -0
  284. package/tests/config_test/media/9ce9bc18-89eb-4a6f-832d-a4380111ebfa.txt +1 -0
  285. package/tests/config_test/media/9d7e647b-f1a9-44a7-bb9d-5ad7ac545ed9.txt +1 -0
  286. package/tests/config_test/media/9e141207-cb69-47c7-a80a-9096886b0f4e.txt +1 -0
  287. package/tests/config_test/media/9e58e7cc-04bb-48d0-9af1-9fd7c80d46be.txt +1 -0
  288. package/tests/config_test/media/9f1f6f42-70f0-404e-89e4-31588f235108.txt +1 -0
  289. package/tests/config_test/media/9f3e0022-deb0-44a2-b47c-fd4880fb2fa6.txt +1 -0
  290. package/tests/config_test/media/a07a6a4e-25c7-4f91-acdc-411e676bae99.txt +1 -0
  291. package/tests/config_test/media/a08ef99a-7cff-4224-985f-aa7cf292c6c3.txt +1 -0
  292. package/tests/config_test/media/a0c4ef94-eb1d-4b7f-b636-62ad6914a69c.txt +1 -0
  293. package/tests/config_test/media/a170f562-2b00-4662-85d7-7c43f9f67e0c.txt +1 -0
  294. package/tests/config_test/media/a32bb27b-7772-4373-ada7-890d9315256f.txt +1 -0
  295. package/tests/config_test/media/a36c31b9-f5c1-43a9-b448-34a380990d3f.txt +1 -0
  296. package/tests/config_test/media/a3831984-3f77-4bac-af70-5a7de6ce5424.txt +1 -0
  297. package/tests/config_test/media/a4f1f023-6135-44da-b580-c1d024cd3f47.txt +1 -0
  298. package/tests/config_test/media/a6227af7-2710-47be-ab45-25f497cec39f.txt +1 -0
  299. package/tests/config_test/media/a64baf32-bd1e-4353-bdf8-74cc3672639f.txt +1 -0
  300. package/tests/config_test/media/a67f5ac1-9645-4f28-a221-c3466b6ba865.txt +1 -0
  301. package/tests/config_test/media/a7f8e5a7-0c0e-48fb-b323-743b121fc091.txt +1 -0
  302. package/tests/config_test/media/a969343e-857b-49b1-a311-0030e0cc57cd.txt +1 -0
  303. package/tests/config_test/media/a9bc7241-7413-4113-8baf-784af73b110d.txt +1 -0
  304. package/tests/config_test/media/aa5b6ba2-76cf-4ca2-90b8-8f83cb23687e.txt +1 -0
  305. package/tests/config_test/media/aa5f29d2-3c13-4a15-ac68-b28964f80a1d.txt +1 -0
  306. package/tests/config_test/media/aaa97926-1d6f-4f5a-9af8-e68584797d23.txt +1 -0
  307. package/tests/config_test/media/ac98c0da-b830-4ec8-9ab6-d8e72a6d0bf2.txt +1 -0
  308. package/tests/config_test/media/af2dda92-1ed0-4b00-a786-f0f7516d4b2b.txt +1 -0
  309. package/tests/config_test/media/b0327e27-0733-4f08-b728-8dca3eae7526.txt +1 -0
  310. package/tests/config_test/media/b23fc74b-403b-49d6-810b-5c3dc71f48de.txt +1 -0
  311. package/tests/config_test/media/b2aa3fbb-ef3f-423b-b7a9-1863aba35bdd.txt +1 -0
  312. package/tests/config_test/media/b38675e5-1ecf-4967-88ef-9f60cce1bb89.txt +1 -0
  313. package/tests/config_test/media/b45c1951-b045-4762-a9fa-8d346617c1b5.txt +1 -0
  314. package/tests/config_test/media/b5359b92-46ea-4ebc-b6bc-102ef03ac5f5.txt +1 -0
  315. package/tests/config_test/media/b5d5aa47-fb92-48a6-9bd5-e394dc7b5212.txt +1 -0
  316. package/tests/config_test/media/b6bba0b4-d9fe-431b-8836-ef41bcd890fe.txt +1 -0
  317. package/tests/config_test/media/b72f4de8-5071-4314-a8e9-0adc7ce98fb8.txt +1 -0
  318. package/tests/config_test/media/b792506c-a05f-4b33-8934-83a7f2b1ebdd.txt +1 -0
  319. package/tests/config_test/media/b7e0e1bd-5e0f-44cc-89b9-55e67c368dce.txt +1 -0
  320. package/tests/config_test/media/b7ec24ac-6967-441e-9cb9-533daa7b443e.txt +1 -0
  321. package/tests/config_test/media/b86f2242-9e7c-4434-ac3d-e8fe868ab758.txt +1 -0
  322. package/tests/config_test/media/b8aa1cbb-05fe-4564-bfad-96a5243eec54.txt +1 -0
  323. package/tests/config_test/media/b8c54323-7977-4626-9412-66116a40fe42.txt +1 -0
  324. package/tests/config_test/media/ba3387a6-c5cd-4677-bddd-a399c6f648a3.txt +1 -0
  325. package/tests/config_test/media/ba70f293-7a40-4a5d-9e60-9d9c3d1fd2c0.txt +1 -0
  326. package/tests/config_test/media/ba7cad62-385b-494c-9688-b008fbae10c9.txt +1 -0
  327. package/tests/config_test/media/bb07c0ca-4b9f-4888-9109-95087951d2a6.txt +1 -0
  328. package/tests/config_test/media/bcf860eb-13b6-44b7-9a58-f2b6422a4fb0.txt +1 -0
  329. package/tests/config_test/media/bd8a019f-c9fd-4289-bc38-cc222a247ba8.txt +1 -0
  330. package/tests/config_test/media/bda18b4f-b4f3-4095-8b9b-8d715945ded1.txt +1 -0
  331. package/tests/config_test/media/bf3e4228-17f4-40d6-9d23-7ba79a333be5.txt +1 -0
  332. package/tests/config_test/media/bfa2fe67-34fe-466c-b807-bea2ddfb0141.txt +1 -0
  333. package/tests/config_test/media/c15ecf6e-6167-42ad-ba24-161216dbabfb.txt +1 -0
  334. package/tests/config_test/media/c17436fb-113d-425e-b59b-cafe93e3418e.txt +1 -0
  335. package/tests/config_test/media/c22154ee-3f66-4996-8ed7-df6120806040.txt +1 -0
  336. package/tests/config_test/media/c2c47ffe-50a1-46f4-bace-d66008c3ce7b.txt +1 -0
  337. package/tests/config_test/media/c4e0c0bf-f9b0-4fec-8fbf-292d8d2fe254.txt +1 -0
  338. package/tests/config_test/media/c56803d2-29bc-4359-8cb4-ea9574a47b2d.txt +1 -0
  339. package/tests/config_test/media/c607d0ee-1641-47e1-83d5-66e9e4bed857.txt +1 -0
  340. package/tests/config_test/media/c62769c5-d469-4499-bf09-97f752a65397.txt +1 -0
  341. package/tests/config_test/media/c667bac7-c161-4f89-b311-9975dcac5865.txt +1 -0
  342. package/tests/config_test/media/c7485a24-95f6-45e7-90f2-6a4716e8971e.txt +1 -0
  343. package/tests/config_test/media/c80b124d-579a-4f7b-9743-5428be624edf.txt +1 -0
  344. package/tests/config_test/media/c8f6e757-0252-4ac6-a439-14a5cd406e16.txt +1 -0
  345. package/tests/config_test/media/c94c9c39-24e1-4ce3-94bd-e32db7052a9d.txt +1 -0
  346. package/tests/config_test/media/ca950ac2-312d-472f-ae0f-7604edd6eae8.txt +1 -0
  347. package/tests/config_test/media/cc1ffb29-8d6f-47cd-9efd-f38832045570.txt +1 -0
  348. package/tests/config_test/media/cf42859e-23b6-4f7b-9b00-4928b0fc33fd.txt +1 -0
  349. package/tests/config_test/media/d000b20e-fd2c-4d07-bb8c-fc48541fe420.txt +1 -0
  350. package/tests/config_test/media/d191b4ba-365d-4346-96c6-7ab4f27a163d.txt +1 -0
  351. package/tests/config_test/media/d2739585-5101-44b5-8dd1-bbb09a104978.txt +1 -0
  352. package/tests/config_test/media/d31d2bf6-bdb1-4de2-9942-3ab83e857a52.txt +1 -0
  353. package/tests/config_test/media/d4027635-8e25-4cf5-a3dc-73a826c5045c.txt +1 -0
  354. package/tests/config_test/media/d476077e-d4e9-42e8-a7db-ded7f075d88d.txt +1 -0
  355. package/tests/config_test/media/d4fe0fae-942f-4966-ab76-64ba34352269.txt +1 -0
  356. package/tests/config_test/media/d551ace3-b4bb-4306-ad17-4873cdbfa5f5.txt +1 -0
  357. package/tests/config_test/media/d5aabdf7-472d-4268-b542-ddce2b25c70e.txt +1 -0
  358. package/tests/config_test/media/d6279202-c868-4058-947d-d9e44acd26cc.txt +1 -0
  359. package/tests/config_test/media/d62ecbb0-df04-449c-91fa-5d60f96c717f.txt +1 -0
  360. package/tests/config_test/media/d6309af6-add5-4d3d-9596-92a3c1b785b8.txt +1 -0
  361. package/tests/config_test/media/d6f419fc-2441-4170-8967-1d3f2a232869.txt +1 -0
  362. package/tests/config_test/media/d78e034e-51e4-47e7-802b-2fb9ca7aeeb0.txt +1 -0
  363. package/tests/config_test/media/d7a5dea2-b545-4b1f-9f25-0ca31bfa9ba9.txt +1 -0
  364. package/tests/config_test/media/d7eff0e2-7e17-4364-995a-13608df42af3.txt +1 -0
  365. package/tests/config_test/media/d89b187c-f4e0-45c2-8622-8f6c05b3f8f8.txt +1 -0
  366. package/tests/config_test/media/d8e4f769-79a3-4577-ae6f-e21b6c373661.txt +1 -0
  367. package/tests/config_test/media/d9266efc-e275-4daf-bb58-a7d224649ac5.txt +1 -0
  368. package/tests/config_test/media/db04add1-1f89-4657-a897-4779001bd6cc.txt +1 -0
  369. package/tests/config_test/media/dc709e83-06c7-4371-95f4-c4982d094c7b.txt +1 -0
  370. package/tests/config_test/media/de3812df-b579-4203-98b1-7ee8821680a4.txt +1 -0
  371. package/tests/config_test/media/df1a21db-e3e1-4670-b909-da77c591486e.txt +1 -0
  372. package/tests/config_test/media/e033a02b-3a38-4b6f-8873-b121cc0cbcad.txt +1 -0
  373. package/tests/config_test/media/e13e2632-4aaf-4a79-b6b4-ef1f81028346.txt +1 -0
  374. package/tests/config_test/media/e19633b3-1ab1-4f18-86cd-e421633e96af.txt +1 -0
  375. package/tests/config_test/media/e1dc9b89-9563-4937-b529-43cd55f82a98.txt +1 -0
  376. package/tests/config_test/media/e37f9c75-0571-4336-b7a6-d431e295ba92.txt +1 -0
  377. package/tests/config_test/media/e3fb83b1-53ed-470d-b9f4-015f98c6a128.txt +1 -0
  378. package/tests/config_test/media/e6c964da-ab48-4779-9706-0ae9ab5f22bb.txt +1 -0
  379. package/tests/config_test/media/e732131f-d7e2-4969-9f0f-10672281405b.txt +1 -0
  380. package/tests/config_test/media/e73f5320-f030-43ae-9efe-002aeb6e0522.txt +1 -0
  381. package/tests/config_test/media/e98267b9-553f-4cd2-9277-2bee037b7003.txt +1 -0
  382. package/tests/config_test/media/ea3c4ac0-f63d-4a91-b015-345851856564.txt +1 -0
  383. package/tests/config_test/media/eacee16f-a2db-4d60-a36b-9b60ea2be330.txt +1 -0
  384. package/tests/config_test/media/eba1b05a-52aa-4f00-92f6-3d556ca2f366.txt +1 -0
  385. package/tests/config_test/media/ebf6e54b-0d1e-4d87-b206-34fa81c66dbb.txt +1 -0
  386. package/tests/config_test/media/ecbf0894-6d76-4141-875d-7691de63a8f7.txt +1 -0
  387. package/tests/config_test/media/ece7a87a-3490-4ac6-adaf-289b1e427325.txt +1 -0
  388. package/tests/config_test/media/ed59c963-3449-4431-8440-2cba7defdcae.txt +1 -0
  389. package/tests/config_test/media/eda09368-348b-4531-a062-a8aafbf9cb8a.txt +1 -0
  390. package/tests/config_test/media/edd1c2b2-179f-4d44-9ac0-72b4fe16c6f2.txt +1 -0
  391. package/tests/config_test/media/ee4e9f39-779e-4084-b696-f39abe74f545.txt +1 -0
  392. package/tests/config_test/media/ef08a195-fcc6-452f-b81e-9d4e97231327.txt +1 -0
  393. package/tests/config_test/media/ef518fee-57a4-47d3-bbb5-aef9b166ca49.txt +1 -0
  394. package/tests/config_test/media/efd77ad3-0e00-448f-a01d-4f363ad5c0b1.txt +1 -0
  395. package/tests/config_test/media/f0c18f54-1095-4787-891b-63c82ba6c153.txt +1 -0
  396. package/tests/config_test/media/f18dca67-521a-4e7f-8064-e6daa08ea3bc.txt +1 -0
  397. package/tests/config_test/media/f19a32ab-f345-4bcb-be01-58e62ade0285.txt +1 -0
  398. package/tests/config_test/media/f29ef9e1-4f84-4bb7-93ce-3693d7cd01f7.txt +1 -0
  399. package/tests/config_test/media/f2cd3857-386e-4d43-b5ee-cb54d1e7fa3c.txt +1 -0
  400. package/tests/config_test/media/f3c8b431-4b3a-43b9-a277-233daea240bb.txt +1 -0
  401. package/tests/config_test/media/f7344305-dde1-4b33-989e-b64b18447e2a.txt +1 -0
  402. package/tests/config_test/media/f829cdfe-a118-4751-a49f-565a617c2b99.txt +1 -0
  403. package/tests/config_test/media/f89206aa-0728-4215-a1df-c1f4315079b5.txt +1 -0
  404. package/tests/config_test/media/f89bb977-c022-471d-9972-d9417484f025.txt +1 -0
  405. package/tests/config_test/media/f960f026-724a-4630-b3ea-48d7ad60b022.txt +1 -0
  406. package/tests/config_test/media/fa343cd4-aca6-482b-9395-f221148fd0d8.txt +1 -0
  407. package/tests/config_test/media/fa802dcc-614e-4027-95fe-ce4f0da61bc9.txt +1 -0
  408. package/tests/config_test/media/ff1a47f0-9c4b-4c88-b0dc-b28d20a83509.txt +1 -0
  409. package/tests/config_test/media/ff8aa3b0-5c4d-4d39-be53-4e28e9ee02e7.txt +1 -0
  410. package/tests/config_test/media/ffb998c5-c98b-4442-b8ef-187bdc7e4c73.txt +1 -0
  411. package/tests/config_test/media/ffc43791-7d7b-4e13-a2ea-3bb952457e7f.txt +1 -0
  412. package/tests/config_test/package-lock.json +727 -688
  413. package/tests/config_test/package.json +2 -2
  414. package/tests/config_test/tsconfig.json +1 -1
  415. package/tests/isomorphic_queries.js +38 -0
  416. package/tests/isomorphic_queries.ts +28 -1
  417. package/tests/server/DBoGenerated.d.ts +135 -1
  418. package/tests/server/index.js +51 -27
  419. package/tests/server/index.ts +49 -26
  420. package/tests/server/init.sql +22 -7
  421. package/tests/server/media/35d7e3d7-64d3-4d4b-b564-5e810ca3671f.txt +1 -0
  422. package/tests/server/media/70ca7114-d6bc-4551-8170-cd7dcdff11dd.txt +1 -0
  423. package/tests/server/media/9e19f591-edc8-4ad7-ac4f-96c3078cb8ed.txt +1 -0
  424. package/tests/server/package-lock.json +166 -535
  425. package/tests/server/package.json +2 -2
  426. package/tests/config_test2/package-lock.json +0 -1999
package/dist/Prostgles.js CHANGED
@@ -16,8 +16,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.isSuperUser = exports.PublishParser = exports.flat = exports.Prostgles = exports.JOIN_TYPES = void 0;
17
17
  const promise = require("bluebird");
18
18
  const pgPromise = require("pg-promise");
19
+ const FileManager_1 = require("./FileManager");
19
20
  const pkgj = require('../package.json');
20
21
  const version = pkgj.version;
22
+ console.log("Add a basic auth mode where user and sessions table are created");
21
23
  const utils_1 = require("./utils");
22
24
  const DboBuilder_1 = require("./DboBuilder");
23
25
  const PubSubManager_1 = require("./PubSubManager");
@@ -54,7 +56,6 @@ function getDbConnection(dbConnection, options, debugQueries = false, onNotice =
54
56
  pgp
55
57
  };
56
58
  }
57
- const QueryFile = require('pg-promise').QueryFile;
58
59
  exports.JOIN_TYPES = ["one-many", "many-one", "one-one", "many-many"];
59
60
  const DEFAULT_KEYWORDS = {
60
61
  $filter: "$filter",
@@ -65,32 +66,64 @@ const DEFAULT_KEYWORDS = {
65
66
  const fs = require('fs');
66
67
  class Prostgles {
67
68
  constructor(params) {
68
- // o: ProstglesInitOptions;
69
- this.dbConnection = {
70
- host: "localhost",
71
- port: 5432,
72
- application_name: "prostgles_app"
69
+ var _a, _b, _c;
70
+ this.opts = {
71
+ DEBUG_MODE: false,
72
+ dbConnection: {
73
+ host: "localhost",
74
+ port: 5432,
75
+ application_name: "prostgles_app"
76
+ },
77
+ onReady: () => { },
78
+ schema: "public",
79
+ watchSchema: false,
73
80
  };
74
- this.schema = "public";
75
- this.wsChannelNamePrefix = "_psqlWS_";
76
- this.DEBUG_MODE = false;
77
- this.watchSchema = false;
78
- this.loaded = false;
81
+ // publishMethods?: ProstglesInitOptions<DBO>["publishMethods"];
82
+ // io: any;
83
+ // publish?: ProstglesInitOptions<DBO>["publish"];
84
+ // joins?: Joins;
85
+ // schema: string = "public";
86
+ // transactions?: string | boolean;
87
+ // publishRawSQL?: ProstglesInitOptions<DBO>["publishRawSQL"];
88
+ // wsChannelNamePrefix: string = "_psqlWS_";
89
+ // onSocketConnect?(socket: Socket | any, dbo: DBO, db?: DB);
90
+ // onSocketDisconnect?(socket: Socket | any, dbo: DBO, db?: DB);
91
+ // sqlFilePath?: string;
92
+ // tsGeneratedTypesDir?: string;
93
+ // auth?: ProstglesInitOptions["auth"];
94
+ // DEBUG_MODE?: boolean = false;
95
+ // watchSchema?: ProstglesInitOptions["watchSchema"];// boolean | "hotReloadMode" | ((event: { command: string; query: string }) => void) = false;
96
+ // onReady: (dbo: any, db: DB) => void;
97
+ // i18n?: ProstglesInitOptions["i18n"];
98
+ // fileTable?: FileTableConfig;
99
+ // /**
100
+ // * Postgres on notice callback
101
+ // */
102
+ // onNotice?: ProstglesInitOptions["onNotice"];
79
103
  this.keywords = DEFAULT_KEYWORDS;
104
+ this.loaded = false;
80
105
  this.destroyed = false;
106
+ this.refreshDBO = () => __awaiter(this, void 0, void 0, function* () {
107
+ this.dboBuilder = (yield DboBuilder_1.DboBuilder.create(this));
108
+ this.dbo = this.dboBuilder.dbo;
109
+ return this.dbo;
110
+ });
81
111
  this.connectedSockets = [];
82
112
  this.pushSocketSchema = (socket) => __awaiter(this, void 0, void 0, function* () {
83
113
  let auth = {};
84
- if (this.auth) {
85
- const { register, login, logout, sidQueryParamName } = this.auth;
86
- if (sidQueryParamName === "sid")
114
+ if (this.opts.auth) {
115
+ const { register, login, logout, sidKeyName } = this.opts.auth;
116
+ /**
117
+ * Why ??? Collision with socket.io ???
118
+ */
119
+ if (sidKeyName === "sid")
87
120
  throw "sidQueryParamName cannot be 'sid' please provide another name.";
88
121
  let handlers = [
89
122
  { func: register, ch: prostgles_types_1.CHANNELS.REGISTER, name: "register" },
90
123
  { func: login, ch: prostgles_types_1.CHANNELS.LOGIN, name: "login" },
91
124
  { func: logout, ch: prostgles_types_1.CHANNELS.LOGOUT, name: "logout" }
92
125
  ].filter(h => h.func);
93
- const usrData = yield this.getUserFromCookieSession(socket);
126
+ const usrData = yield this.getClientInfo({ socket });
94
127
  if (usrData) {
95
128
  auth.user = usrData.clientUser;
96
129
  handlers = handlers.filter(h => h.name === "logout");
@@ -102,7 +135,7 @@ class Prostgles {
102
135
  try {
103
136
  if (!socket)
104
137
  throw "socket missing??!!";
105
- const res = yield func(params, dbo, db, socket);
138
+ const res = yield func(params, dbo, db);
106
139
  if (name === "login" && res && res.sid) {
107
140
  /* TODO: Re-send schema to client */
108
141
  }
@@ -115,16 +148,15 @@ class Prostgles {
115
148
  }));
116
149
  });
117
150
  }
118
- let needType = this.publishRawSQL && typeof this.publishRawSQL === "function";
119
- let DATA_TYPES = !needType ? [] : yield this.db.any("SELECT oid, typname FROM pg_type");
120
- let USER_TABLES = !needType ? [] : yield this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables");
151
+ // let needType = this.publishRawSQL && typeof this.publishRawSQL === "function";
152
+ // let DATA_TYPES = !needType? [] : await this.db.any("SELECT oid, typname FROM pg_type");
153
+ // let USER_TABLES = !needType? [] : await this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables");
121
154
  let schema = {};
122
155
  let publishValidationError;
123
156
  let rawSQL = false;
124
157
  const { dbo, db, pgp, publishParser } = this;
125
158
  try {
126
159
  schema = yield publishParser.getSchemaFromPublish(socket);
127
- // console.log("getSchemaFromPublish", Object.keys(schema), this.dboBuilder.tablesOrViews.map(t => `${t.name} (${t.columns.map(c => c.name).join(", ")})`))
128
160
  }
129
161
  catch (e) {
130
162
  publishValidationError = "Server Error: PUBLISH VALIDATION ERROR";
@@ -136,60 +168,71 @@ class Prostgles {
136
168
  */
137
169
  let fullSchema = [];
138
170
  let allTablesViews = this.dboBuilder.tablesOrViews;
139
- if (this.publishRawSQL && typeof this.publishRawSQL === "function") {
171
+ if (this.opts.publishRawSQL && typeof this.opts.publishRawSQL === "function") {
140
172
  const canRunSQL = () => __awaiter(this, void 0, void 0, function* () {
141
- let res = yield this.publishRawSQL(socket, dbo, db, yield this.getUser(socket));
173
+ const publishParams = yield this.publishParser.getPublishParams({ socket });
174
+ let res = yield this.opts.publishRawSQL(publishParams);
142
175
  return Boolean(res && typeof res === "boolean" || res === "*");
143
176
  });
144
- // console.log("canRunSQL", canRunSQL, socket.handshake.headers["x-real-ip"]);//, allTablesViews);
145
177
  if (yield canRunSQL()) {
146
178
  socket.removeAllListeners(prostgles_types_1.CHANNELS.SQL);
147
179
  socket.on(prostgles_types_1.CHANNELS.SQL, ({ query, params, options }, cb = (...callback) => { }) => __awaiter(this, void 0, void 0, function* () {
148
- if (!(yield canRunSQL())) {
149
- cb("Dissallowed", null);
150
- return;
151
- }
152
- const { returnType } = options || {};
153
- if (returnType === "noticeSubscription") {
154
- const sub = yield this.dbEventsManager.addNotice(socket);
155
- cb(null, sub);
156
- }
157
- else if (returnType === "statement") {
158
- try {
159
- cb(null, pgp.as.format(query, params));
160
- }
161
- catch (err) {
162
- cb(err.toString());
163
- }
164
- }
165
- else if (db) {
166
- db.result(query, params)
167
- .then((qres) => __awaiter(this, void 0, void 0, function* () {
168
- const { duration, fields, rows, command } = qres;
169
- if (command === "LISTEN") {
170
- const sub = yield this.dbEventsManager.addNotify(query, socket);
171
- cb(null, sub);
172
- }
173
- else if (returnType === "rows") {
174
- cb(null, rows);
175
- }
176
- else {
177
- if (fields && DATA_TYPES.length) {
178
- qres.fields = fields.map(f => {
179
- const dataType = DATA_TYPES.find(dt => +dt.oid === +f.dataTypeID), tableName = USER_TABLES.find(t => +t.relid === +f.tableID), { name } = f;
180
- return Object.assign(Object.assign(Object.assign({}, f), (dataType ? { dataType: dataType.typname } : {})), (tableName ? { tableName: tableName.relname } : {}));
181
- });
182
- }
183
- cb(null, qres);
184
- }
185
- }))
186
- .catch(err => {
187
- makeSocketError(cb, err);
188
- // Promise.reject(err.toString());
189
- });
190
- }
191
- else
192
- console.error("db missing");
180
+ if (!this.dbo.sql)
181
+ throw "Internal error: sql handler missing";
182
+ this.dbo.sql(query, params, options, { socket }).then(res => {
183
+ cb(null, res);
184
+ }).catch(err => {
185
+ makeSocketError(cb, err);
186
+ });
187
+ // if(!(await canRunSQL())) {
188
+ // cb("Dissallowed", null);
189
+ // return;
190
+ // }
191
+ // const { returnType }: SQLOptions = options || ({} as any);
192
+ // if(returnType === "noticeSubscription"){
193
+ // const sub = await this.dbEventsManager.addNotice(socket);
194
+ // cb(null, sub);
195
+ // } else if(returnType === "statement"){
196
+ // try {
197
+ // cb(null, pgp.as.format(query, params));
198
+ // } catch (err){
199
+ // cb(err.toString());
200
+ // }
201
+ // } else if(db) {
202
+ // db.result(query, params)
203
+ // .then(async (qres: any) => {
204
+ // const { duration, fields, rows, command } = qres;
205
+ // if(command === "LISTEN"){
206
+ // const sub = await this.dbEventsManager.addNotify(query, socket);
207
+ // cb(null, sub);
208
+ // } else if(returnType === "rows") {
209
+ // cb(null, rows);
210
+ // } else if(returnType === "row") {
211
+ // cb(null, rows[0]);
212
+ // } else if(returnType === "value") {
213
+ // cb(null, Object.values(rows[0])[0]);
214
+ // } else if(returnType === "values") {
215
+ // cb(null, rows.map(r => Object.values(r[0])));
216
+ // } else {
217
+ // if(fields && DATA_TYPES.length){
218
+ // qres.fields = fields.map(f => {
219
+ // const dataType = DATA_TYPES.find(dt => +dt.oid === +f.dataTypeID),
220
+ // tableName = USER_TABLES.find(t => +t.relid === +f.tableID);
221
+ // return {
222
+ // ...f,
223
+ // ...(dataType? { dataType: dataType.typname } : {}),
224
+ // ...(tableName? { tableName: tableName.relname } : {}),
225
+ // }
226
+ // });
227
+ // }
228
+ // cb(null, qres)
229
+ // }
230
+ // })
231
+ // .catch(err => {
232
+ // makeSocketError(cb, err);
233
+ // // Promise.reject(err.toString());
234
+ // });
235
+ // } else console.error("db missing");
193
236
  }));
194
237
  if (db) {
195
238
  // let allTablesViews = await db.any(STEP2_GET_ALL_TABLES_AND_COLUMNS);
@@ -202,7 +245,7 @@ class Prostgles {
202
245
  }
203
246
  // let joinTables = [];
204
247
  let joinTables2 = [];
205
- if (this.joins) {
248
+ if (this.opts.joins) {
206
249
  // joinTables = Array.from(new Set(flat(this.dboBuilder.getJoins().map(j => j.tables)).filter(t => schema[t])));
207
250
  let _joinTables2 = this.dboBuilder.getJoinPaths()
208
251
  .filter(jp => ![jp.t1, jp.t2].find(t => !schema[t] || !schema[t].findOne)).map(jp => [jp.t1, jp.t2].sort());
@@ -226,35 +269,45 @@ class Prostgles {
226
269
  "onReady", "dbConnection", "dbOptions", "publishMethods", "io",
227
270
  "publish", "schema", "publishRawSQL", "wsChannelNamePrefix", "onSocketConnect",
228
271
  "onSocketDisconnect", "sqlFilePath", "auth", "DEBUG_MODE", "watchSchema",
229
- "i18n"
272
+ "i18n", "fileTable"
230
273
  ];
231
274
  const unknownParams = Object.keys(params).filter((key) => !config.includes(key));
232
275
  if (unknownParams.length) {
233
276
  console.error(`Unrecognised ProstglesInitOptions params: ${unknownParams.join()}`);
234
277
  }
235
- Object.assign(this, params);
278
+ Object.assign(this.opts, params);
279
+ /* set defaults */
280
+ if ((_a = this.opts) === null || _a === void 0 ? void 0 : _a.fileTable) {
281
+ this.opts.fileTable.tableName = ((_c = (_b = this.opts) === null || _b === void 0 ? void 0 : _b.fileTable) === null || _c === void 0 ? void 0 : _c.tableName) || "media";
282
+ }
283
+ this.opts.schema = this.opts.schema || "public";
236
284
  this.keywords = Object.assign(Object.assign({}, DEFAULT_KEYWORDS), params.keywords);
237
285
  }
286
+ isMedia(tableName) {
287
+ var _a, _b;
288
+ return ((_b = (_a = this.opts) === null || _a === void 0 ? void 0 : _a.fileTable) === null || _b === void 0 ? void 0 : _b.tableName) === tableName;
289
+ }
238
290
  onSchemaChange(event) {
239
291
  return __awaiter(this, void 0, void 0, function* () {
240
- if (this.watchSchema && this.loaded) {
292
+ const { watchSchema, onReady, tsGeneratedTypesDir } = this.opts;
293
+ if (watchSchema && this.loaded) {
241
294
  console.log("Schema changed");
242
- if (typeof this.watchSchema === "function") {
295
+ if (typeof watchSchema === "function") {
243
296
  /* Only call the provided func */
244
- this.watchSchema(event);
297
+ watchSchema(event);
245
298
  }
246
- else if (this.watchSchema === "hotReloadMode") {
247
- if (this.tsGeneratedTypesDir) {
299
+ else if (watchSchema === "hotReloadMode") {
300
+ if (tsGeneratedTypesDir) {
248
301
  /* Hot reload integration. Will only touch tsGeneratedTypesDir */
249
302
  console.log("watchSchema: Re-writing TS schema");
250
303
  yield this.refreshDBO();
251
304
  this.writeDBSchema(true);
252
305
  }
253
306
  }
254
- else if (this.watchSchema === true) {
307
+ else if (watchSchema === true) {
255
308
  /* Full re-init. Sockets must reconnect */
256
309
  console.log("watchSchema: Full re-initialisation");
257
- this.init(this.onReady);
310
+ this.init(onReady);
258
311
  }
259
312
  }
260
313
  });
@@ -265,7 +318,7 @@ class Prostgles {
265
318
  }
266
319
  getTSFileName() {
267
320
  const fileName = "DBoGenerated.d.ts"; //`dbo_${this.schema}_types.ts`;
268
- const fullPath = (this.tsGeneratedTypesDir || "") + fileName;
321
+ const fullPath = (this.opts.tsGeneratedTypesDir || "") + fileName;
269
322
  return { fileName, fullPath };
270
323
  }
271
324
  getFileText(fullPath, format = "utf8") {
@@ -279,7 +332,7 @@ class Prostgles {
279
332
  });
280
333
  }
281
334
  writeDBSchema(force = false) {
282
- if (this.tsGeneratedTypesDir) {
335
+ if (this.opts.tsGeneratedTypesDir) {
283
336
  const { fullPath, fileName } = this.getTSFileName();
284
337
  const header = `/* This file was generated by Prostgles \n` +
285
338
  // `* ${(new Date).toUTCString()} \n`
@@ -296,23 +349,17 @@ class Prostgles {
296
349
  console.error("Schema changed. tsGeneratedTypesDir needs to be set to reload server");
297
350
  }
298
351
  }
299
- refreshDBO() {
300
- return __awaiter(this, void 0, void 0, function* () {
301
- this.dboBuilder = yield DboBuilder_1.DboBuilder.create(this);
302
- this.dbo = this.dboBuilder.dbo;
303
- });
304
- }
305
352
  init(onReady) {
306
353
  return __awaiter(this, void 0, void 0, function* () {
307
354
  this.loaded = false;
308
- if (this.watchSchema === "hotReloadMode" && !this.tsGeneratedTypesDir) {
355
+ if (this.opts.watchSchema === "hotReloadMode" && !this.opts.tsGeneratedTypesDir) {
309
356
  throw "tsGeneratedTypesDir option is needed for watchSchema: hotReloadMode to work ";
310
357
  }
311
358
  /* 1. Connect to db */
312
359
  if (!this.db) {
313
- const { db, pgp } = getDbConnection(this.dbConnection, this.dbOptions, this.DEBUG_MODE, notice => {
314
- if (this.onNotice)
315
- this.onNotice(notice);
360
+ const { db, pgp } = getDbConnection(this.opts.dbConnection, this.opts.dbOptions, this.opts.DEBUG_MODE, notice => {
361
+ if (this.opts.onNotice)
362
+ this.opts.onNotice(notice);
316
363
  if (this.dbEventsManager) {
317
364
  this.dbEventsManager.onNotice(notice);
318
365
  }
@@ -323,34 +370,47 @@ class Prostgles {
323
370
  this.checkDb();
324
371
  const { db, pgp } = this;
325
372
  /* 2. Execute any SQL file if provided */
326
- if (this.sqlFilePath) {
327
- yield this.runSQLFile(this.sqlFilePath);
373
+ if (this.opts.sqlFilePath) {
374
+ yield this.runSQLFile(this.opts.sqlFilePath);
328
375
  }
329
376
  try {
330
377
  /* 3. Make DBO object from all tables and views */
331
378
  yield this.refreshDBO();
332
- this.writeDBSchema();
333
- if (this.publish) {
379
+ /* Create media table if required */
380
+ if (this.opts.fileTable) {
381
+ const { awsS3Config, localConfig, imageOptions } = this.opts.fileTable;
382
+ if (!awsS3Config && !localConfig)
383
+ throw "fileTable missing param: Must provide awsS3Config OR localConfig";
384
+ yield this.refreshDBO();
385
+ this.fileManager = new FileManager_1.default(awsS3Config || localConfig, imageOptions);
386
+ yield this.fileManager.init(this);
387
+ }
388
+ yield this.refreshDBO();
389
+ if (this.opts.publish) {
390
+ if (!this.opts.io)
391
+ console.warn("IO missing. Publish has no effect without io");
334
392
  /* 3.9 Check auth config */
335
- if (this.auth) {
336
- const { sidCookieName, login, getUser, getClientUser } = this.auth;
337
- if (typeof sidCookieName !== "string" && !login) {
338
- throw "Invalid auth: Provide { sidCookieName: string } OR { login: Function } ";
393
+ if (this.opts.auth) {
394
+ this.opts.auth.sidKeyName = this.opts.auth.sidKeyName || "session_id";
395
+ const { sidKeyName, login, getUser, getClientUser } = this.opts.auth;
396
+ if (typeof sidKeyName !== "string" && !login) {
397
+ throw "Invalid auth: Provide { sidKeyName: string } ";
339
398
  }
340
399
  if (!getUser || !getClientUser)
341
400
  throw "getUser OR getClientUser missing from auth config";
342
401
  }
343
- this.publishParser = new PublishParser(this.publish, this.publishMethods, this.publishRawSQL, this.dbo, this.db, this);
402
+ this.publishParser = new PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db, this);
344
403
  this.dboBuilder.publishParser = this.publishParser;
345
404
  /* 4. Set publish and auth listeners */ //makeDBO(db, allTablesViews, pubSubManager, false)
346
405
  yield this.setSocketEvents();
347
406
  }
348
- else if (this.auth)
407
+ else if (this.opts.auth)
349
408
  throw "Auth config does not work without publish";
350
409
  // if(this.watchSchema){
351
410
  // if(!(await isSuperUser(db))) throw "Cannot watchSchema without a super user schema. Set watchSchema=false or provide a super user";
352
411
  // }
353
412
  this.dbEventsManager = new DBEventsManager_1.DBEventsManager(db, pgp);
413
+ this.writeDBSchema();
354
414
  /* 5. Finish init and provide DBO object */
355
415
  try {
356
416
  if (this.destroyed) {
@@ -366,16 +426,16 @@ class Prostgles {
366
426
  db: this.dbo,
367
427
  _db: db,
368
428
  pgp,
369
- io: this.io,
429
+ io: this.opts.io,
370
430
  destroy: () => __awaiter(this, void 0, void 0, function* () {
371
431
  console.log("destroying prgl instance");
372
432
  this.destroyed = true;
373
- if (this.io) {
374
- this.io.on("connection", (socket) => {
433
+ if (this.opts.io) {
434
+ this.opts.io.on("connection", (socket) => {
375
435
  console.log("Socket connected to destroyed instance");
376
436
  });
377
- if (typeof this.io.close === "function") {
378
- this.io.close();
437
+ if (typeof this.opts.io.close === "function") {
438
+ this.opts.io.close();
379
439
  console.log("this.io.close");
380
440
  }
381
441
  }
@@ -401,7 +461,7 @@ class Prostgles {
401
461
  const fileContent = yield this.getFileText(filePath); //.then(console.log);
402
462
  return this.db.multi(fileContent).then((data) => {
403
463
  console.log("Prostgles: SQL file executed successfuly \n -> " + filePath);
404
- return true;
464
+ return data;
405
465
  }).catch((err) => {
406
466
  const { position, length } = err, lines = fileContent.split("\n");
407
467
  let errMsg = filePath + " error: ";
@@ -416,27 +476,32 @@ class Prostgles {
416
476
  });
417
477
  });
418
478
  }
419
- getSID(socket) {
420
- if (!this.auth)
479
+ /**
480
+ * Will return first sid value found in : http cookie or query params
481
+ * Based on sid names in auth
482
+ * @param localParams
483
+ * @returns string
484
+ */
485
+ getSID(localParams) {
486
+ var _a, _b, _c, _d, _e;
487
+ if (!this.opts.auth)
421
488
  return null;
422
- const { sidCookieName, sidQueryParamName } = this.auth;
423
- if (!sidCookieName && !sidQueryParamName)
489
+ const { sidKeyName } = this.opts.auth;
490
+ if (!sidKeyName || !localParams)
424
491
  return null;
425
- let result = {
426
- sidCookie: null,
427
- sidQuery: null,
428
- sid: null
429
- };
430
- if (sidQueryParamName) {
431
- result.sidQuery = utils_1.get(socket, `handshake.query.${sidQueryParamName}`);
432
- }
433
- if (sidCookieName) {
434
- const cookie_str = utils_1.get(socket, "handshake.headers.cookie");
435
- const cookie = parseCookieStr(cookie_str);
436
- if (socket && cookie) {
437
- result.sidCookie = cookie[sidCookieName];
492
+ if (localParams.socket) {
493
+ const querySid = (_c = (_b = (_a = localParams.socket) === null || _a === void 0 ? void 0 : _a.handshake) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c[sidKeyName];
494
+ if (!querySid) {
495
+ const cookie_str = utils_1.get(localParams.socket, "handshake.headers.cookie");
496
+ const cookie = parseCookieStr(cookie_str);
497
+ return cookie[sidKeyName];
438
498
  }
439
499
  }
500
+ else if (localParams.httpReq) {
501
+ return (_e = (_d = localParams.httpReq) === null || _d === void 0 ? void 0 : _d.cookies) === null || _e === void 0 ? void 0 : _e[sidKeyName];
502
+ }
503
+ else
504
+ throw "socket OR httpReq missing from localParams";
440
505
  function parseCookieStr(cookie_str) {
441
506
  if (!cookie_str || typeof cookie_str !== "string")
442
507
  return {};
@@ -446,31 +511,21 @@ class Prostgles {
446
511
  return prev;
447
512
  }, {});
448
513
  }
449
- result.sid = result.sidQuery || result.sidCookie;
450
- return result;
451
514
  }
452
- getUser(socket) {
515
+ getClientInfo(localParams) {
453
516
  return __awaiter(this, void 0, void 0, function* () {
454
- if (this.auth) {
455
- const { getUser } = this.auth;
456
- if (getUser) {
457
- const params = this.getSID(socket);
458
- return yield getUser(params, this.dbo, this.db, socket);
517
+ if (this.opts.auth) {
518
+ const { getUser, getClientUser } = this.opts.auth;
519
+ if (getUser && localParams && (localParams.httpReq || localParams.socket)) {
520
+ const sid = this.getSID(localParams);
521
+ return {
522
+ sid,
523
+ user: yield getUser(sid, this.dbo, this.db),
524
+ clientUser: yield getClientUser(sid, this.dbo, this.db)
525
+ };
459
526
  }
460
527
  }
461
- return null;
462
- });
463
- }
464
- getUserFromCookieSession(socket) {
465
- return __awaiter(this, void 0, void 0, function* () {
466
- // console.log("conn", socket.handshake.query, socket._session)
467
- const params = this.getSID(socket);
468
- const { getUser, getClientUser } = this.auth;
469
- const user = yield getUser(params, this.dbo, this.db, socket);
470
- const clientUser = yield getClientUser(params, this.dbo, this.db, socket);
471
- if (!user)
472
- return undefined;
473
- return { user, clientUser };
528
+ return {};
474
529
  });
475
530
  }
476
531
  setSocketEvents() {
@@ -478,9 +533,9 @@ class Prostgles {
478
533
  this.checkDb();
479
534
  if (!this.dbo)
480
535
  throw "dbo missing";
481
- let publishParser = new PublishParser(this.publish, this.publishMethods, this.publishRawSQL, this.dbo, this.db, this);
536
+ let publishParser = new PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db, this);
482
537
  this.publishParser = publishParser;
483
- if (!this.io)
538
+ if (!this.opts.io)
484
539
  return;
485
540
  /* Already initialised. Only reconnect sockets */
486
541
  if (this.connectedSockets.length) {
@@ -491,7 +546,7 @@ class Prostgles {
491
546
  return;
492
547
  }
493
548
  /* Initialise */
494
- this.io.on('connection', (socket) => __awaiter(this, void 0, void 0, function* () {
549
+ this.opts.io.on('connection', (socket) => __awaiter(this, void 0, void 0, function* () {
495
550
  if (this.destroyed) {
496
551
  console.log("Socket connected to destroyed instance");
497
552
  socket.disconnect();
@@ -502,8 +557,8 @@ class Prostgles {
502
557
  throw "db/dbo missing";
503
558
  let { dbo, db, pgp } = this;
504
559
  try {
505
- if (this.onSocketConnect)
506
- yield this.onSocketConnect(socket, dbo, db);
560
+ if (this.opts.onSocketConnect)
561
+ yield this.opts.onSocketConnect(socket, dbo, db);
507
562
  /* RUN Client request from Publish.
508
563
  Checks request against publish and if OK run it with relevant publish functions. Local (server) requests do not check the policy
509
564
  */
@@ -514,8 +569,8 @@ class Prostgles {
514
569
  console.error("socket missing??!!");
515
570
  throw "socket missing??!!";
516
571
  }
517
- const user = yield this.getUser(socket);
518
- let valid_table_command_rules = yield this.publishParser.getValidatedRequestRule({ tableName, command, socket }, user);
572
+ const clientInfo = yield this.getClientInfo({ socket });
573
+ let valid_table_command_rules = yield this.publishParser.getValidatedRequestRule({ tableName, command, localParams: { socket } }, clientInfo);
519
574
  if (valid_table_command_rules) {
520
575
  let res = yield this.dbo[tableName][command](param1, param2, param3, valid_table_command_rules, { socket, has_rules: true });
521
576
  cb(null, res);
@@ -536,8 +591,8 @@ class Prostgles {
536
591
  this.dbEventsManager.removeNotify(socket);
537
592
  this.connectedSockets = this.connectedSockets.filter(s => s.id !== socket.id);
538
593
  // subscriptions = subscriptions.filter(sub => sub.socket.id !== socket.id);
539
- if (this.onSocketDisconnect) {
540
- this.onSocketDisconnect(socket, dbo);
594
+ if (this.opts.onSocketDisconnect) {
595
+ this.opts.onSocketDisconnect(socket, dbo);
541
596
  }
542
597
  ;
543
598
  });
@@ -636,7 +691,6 @@ function flat(arr) {
636
691
  let res = arr.reduce(function (farr, toFlatten) {
637
692
  return farr.concat(Array.isArray(toFlatten) ? flat(toFlatten) : toFlatten);
638
693
  }, []);
639
- // console.log(arr, res)
640
694
  return res;
641
695
  }
642
696
  exports.flat = flat;
@@ -651,11 +705,16 @@ class PublishParser {
651
705
  if (!this.dbo || !this.publish)
652
706
  throw "INTERNAL ERROR: dbo and/or publish missing";
653
707
  }
708
+ getPublishParams(localParams, clientInfo) {
709
+ return __awaiter(this, void 0, void 0, function* () {
710
+ return Object.assign(Object.assign({}, (clientInfo || (yield this.prostgles.getClientInfo(localParams)))), { dbo: this.dbo, db: this.db });
711
+ });
712
+ }
654
713
  getMethods(socket) {
655
714
  return __awaiter(this, void 0, void 0, function* () {
656
715
  let methods = {};
657
- const user = yield this.prostgles.getUser(socket);
658
- const _methods = yield applyParamsIfFunc(this.publishMethods, socket, this.dbo, this.db, user);
716
+ const publishParams = yield this.getPublishParams({ socket });
717
+ const _methods = yield applyParamsIfFunc(this.publishMethods, publishParams);
659
718
  if (_methods && Object.keys(_methods).length) {
660
719
  Object.keys(_methods).map(key => {
661
720
  if (_methods[key] && (typeof _methods[key] === "function" || typeof _methods[key].then === "function")) {
@@ -674,9 +733,10 @@ class PublishParser {
674
733
  * @param socket
675
734
  * @param user
676
735
  */
677
- getPublish(socket, user) {
736
+ getPublish(localParams, clientInfo) {
678
737
  return __awaiter(this, void 0, void 0, function* () {
679
- let _publish = yield applyParamsIfFunc(this.publish, socket, this.dbo, this.db, user);
738
+ const publishParams = yield this.getPublishParams(localParams, clientInfo);
739
+ let _publish = yield applyParamsIfFunc(this.publish, publishParams);
680
740
  if (_publish === "*") {
681
741
  let publish = {};
682
742
  this.prostgles.dboBuilder.tablesOrViews.map(tov => {
@@ -687,13 +747,14 @@ class PublishParser {
687
747
  return _publish;
688
748
  });
689
749
  }
690
- getValidatedRequestRuleWusr({ tableName, command, socket }) {
750
+ getValidatedRequestRuleWusr({ tableName, command, localParams }) {
691
751
  return __awaiter(this, void 0, void 0, function* () {
692
- const user = yield this.prostgles.getUser(socket);
693
- return yield this.getValidatedRequestRule({ tableName, command, socket }, user);
752
+ const clientInfo = yield this.prostgles.getClientInfo(localParams);
753
+ return yield this.getValidatedRequestRule({ tableName, command, localParams }, clientInfo);
694
754
  });
695
755
  }
696
- getValidatedRequestRule({ tableName, command, socket }, user) {
756
+ getValidatedRequestRule({ tableName, command, localParams }, clientInfo) {
757
+ var _a, _b, _c, _d;
697
758
  return __awaiter(this, void 0, void 0, function* () {
698
759
  if (!this.dbo)
699
760
  throw "INTERNAL ERROR: dbo is missing";
@@ -704,17 +765,16 @@ class PublishParser {
704
765
  throw "Invalid command: " + command;
705
766
  }
706
767
  /* Must be local request -> allow everything */
707
- if (!socket)
768
+ if (!localParams || (!localParams.socket && !localParams.httpReq))
708
769
  return undefined;
709
770
  /* Must be from socket. Must have a publish */
710
771
  if (!this.publish)
711
772
  throw "publish is missing";
712
773
  /* Get any publish errors for socket */
713
- const schm = utils_1.get(socket, `prostgles.schema.${tableName}.${command}`);
714
- // console.log(schm, get(socket, `prostgles.schema`));
774
+ const schm = (_d = (_c = (_b = (_a = localParams === null || localParams === void 0 ? void 0 : localParams.socket) === null || _a === void 0 ? void 0 : _a.prostgles) === null || _b === void 0 ? void 0 : _b.schema) === null || _c === void 0 ? void 0 : _c[tableName]) === null || _d === void 0 ? void 0 : _d[command];
715
775
  if (schm && schm.err)
716
776
  throw schm.err;
717
- let table_rule = yield this.getTableRules({ tableName, socket }, user);
777
+ let table_rule = yield this.getTableRules({ tableName, localParams }, clientInfo);
718
778
  if (!table_rule)
719
779
  throw "Invalid or disallowed table: " + tableName;
720
780
  if (command === "upsert") {
@@ -729,13 +789,13 @@ class PublishParser {
729
789
  throw `Invalid or disallowed command: ${command}`;
730
790
  });
731
791
  }
732
- getTableRules({ tableName, socket }, user) {
792
+ getTableRules({ tableName, localParams }, clientInfo) {
733
793
  return __awaiter(this, void 0, void 0, function* () {
734
794
  try {
735
- if (!socket || !tableName)
795
+ if (!localParams || !tableName)
736
796
  throw "publish OR socket OR dbo OR tableName are missing";
737
- let _publish = yield this.getPublish(socket, user);
738
- let table_rules = applyParamsIfFunc(_publish[tableName], socket, this.dbo, this.db, user);
797
+ let _publish = yield this.getPublish(localParams, clientInfo);
798
+ let table_rules = _publish[tableName]; // applyParamsIfFunc(_publish[tableName], localParams, this.dbo, this.db, user);
739
799
  /* Get view or table specific rules */
740
800
  const is_view = this.dbo[tableName].is_view, MY_RULES = RULE_TO_METHODS.filter(r => !is_view || !r.table_only);
741
801
  // if(tableName === "various") console.warn(1033, MY_RULES)
@@ -756,9 +816,10 @@ class PublishParser {
756
816
  if (table_rules[r.rule]) {
757
817
  r.methods.map(method => {
758
818
  if (table_rules[method] === undefined) {
759
- if (method === "updateBatch" && !table_rules.update) {
819
+ const publishedTable = table_rules;
820
+ if (method === "updateBatch" && !publishedTable.update) {
760
821
  }
761
- else if (method === "upsert" && (!table_rules.update || !table_rules.insert)) {
822
+ else if (method === "upsert" && (!publishedTable.update || !publishedTable.insert)) {
762
823
  // return;
763
824
  }
764
825
  else {
@@ -826,14 +887,14 @@ class PublishParser {
826
887
  let schema = {};
827
888
  try {
828
889
  /* Publish tables and views based on socket */
829
- const user = yield this.prostgles.getUser(socket);
830
- let _publish = yield this.getPublish(socket, user);
890
+ const clientInfo = yield this.prostgles.getClientInfo({ socket });
891
+ let _publish = yield this.getPublish(socket, clientInfo);
831
892
  if (_publish && Object.keys(_publish).length) {
832
893
  let txKey = "tx";
833
- if (!this.prostgles.transactions)
894
+ if (!this.prostgles.opts.transactions)
834
895
  txKey = "";
835
- if (typeof this.prostgles.transactions === "string")
836
- txKey = this.prostgles.transactions;
896
+ if (typeof this.prostgles.opts.transactions === "string")
897
+ txKey = this.prostgles.opts.transactions;
837
898
  const tableNames = Object.keys(_publish).filter(k => !txKey || txKey !== k);
838
899
  yield Promise.all(tableNames
839
900
  .map((tableName) => __awaiter(this, void 0, void 0, function* () {
@@ -843,7 +904,7 @@ class PublishParser {
843
904
  DBO tables: ${Object.keys(this.dbo).filter(k => this.dbo[k].find).join(", ")}
844
905
  `;
845
906
  }
846
- const table_rules = yield this.getTableRules({ socket, tableName }, user);
907
+ const table_rules = yield this.getTableRules({ localParams: { socket }, tableName }, clientInfo);
847
908
  if (table_rules && Object.keys(table_rules).length) {
848
909
  schema[tableName] = {};
849
910
  let methods = [];
@@ -861,7 +922,7 @@ class PublishParser {
861
922
  if (["update", "find", "findOne", "insert", "delete", "upsert"].includes(method)) {
862
923
  let err = null;
863
924
  try {
864
- let valid_table_command_rules = yield this.getValidatedRequestRule({ tableName, command: method, socket }, user);
925
+ let valid_table_command_rules = yield this.getValidatedRequestRule({ tableName, command: method, localParams: { socket } }, clientInfo);
865
926
  yield this.dbo[tableName][method]({}, {}, {}, valid_table_command_rules, { socket, has_rules: true, testRule: true });
866
927
  }
867
928
  catch (e) {
@@ -881,7 +942,6 @@ class PublishParser {
881
942
  console.error("Prostgles \nERRORS IN PUBLISH: ", JSON.stringify(e));
882
943
  throw e;
883
944
  }
884
- // console.log(schema)
885
945
  return schema;
886
946
  });
887
947
  }