prostgles-server 1.5.119 → 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 +53 -28
  2. package/dist/DboBuilder.d.ts.map +1 -1
  3. package/dist/DboBuilder.js +432 -113
  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 +163 -78
  10. package/dist/Prostgles.d.ts.map +1 -1
  11. package/dist/Prostgles.js +241 -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 +581 -175
  22. package/lib/FileManager.ts +546 -0
  23. package/lib/Prostgles.ts +424 -252
  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 +83 -62
  31. package/tests/client/package.json +3 -3
  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 +43 -1
  416. package/tests/isomorphic_queries.ts +33 -2
  417. package/tests/server/DBoGenerated.d.ts +192 -0
  418. package/tests/server/index.js +64 -26
  419. package/tests/server/index.ts +64 -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());
@@ -225,35 +268,46 @@ class Prostgles {
225
268
  "transactions", "joins", "tsGeneratedTypesDir",
226
269
  "onReady", "dbConnection", "dbOptions", "publishMethods", "io",
227
270
  "publish", "schema", "publishRawSQL", "wsChannelNamePrefix", "onSocketConnect",
228
- "onSocketDisconnect", "sqlFilePath", "auth", "DEBUG_MODE", "watchSchema"
271
+ "onSocketDisconnect", "sqlFilePath", "auth", "DEBUG_MODE", "watchSchema",
272
+ "i18n", "fileTable"
229
273
  ];
230
274
  const unknownParams = Object.keys(params).filter((key) => !config.includes(key));
231
275
  if (unknownParams.length) {
232
276
  console.error(`Unrecognised ProstglesInitOptions params: ${unknownParams.join()}`);
233
277
  }
234
- 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";
235
284
  this.keywords = Object.assign(Object.assign({}, DEFAULT_KEYWORDS), params.keywords);
236
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
+ }
237
290
  onSchemaChange(event) {
238
291
  return __awaiter(this, void 0, void 0, function* () {
239
- if (this.watchSchema && this.loaded) {
292
+ const { watchSchema, onReady, tsGeneratedTypesDir } = this.opts;
293
+ if (watchSchema && this.loaded) {
240
294
  console.log("Schema changed");
241
- if (typeof this.watchSchema === "function") {
295
+ if (typeof watchSchema === "function") {
242
296
  /* Only call the provided func */
243
- this.watchSchema(event);
297
+ watchSchema(event);
244
298
  }
245
- else if (this.watchSchema === "hotReloadMode") {
246
- if (this.tsGeneratedTypesDir) {
299
+ else if (watchSchema === "hotReloadMode") {
300
+ if (tsGeneratedTypesDir) {
247
301
  /* Hot reload integration. Will only touch tsGeneratedTypesDir */
248
302
  console.log("watchSchema: Re-writing TS schema");
249
303
  yield this.refreshDBO();
250
304
  this.writeDBSchema(true);
251
305
  }
252
306
  }
253
- else if (this.watchSchema === true) {
307
+ else if (watchSchema === true) {
254
308
  /* Full re-init. Sockets must reconnect */
255
309
  console.log("watchSchema: Full re-initialisation");
256
- this.init(this.onReady);
310
+ this.init(onReady);
257
311
  }
258
312
  }
259
313
  });
@@ -264,7 +318,7 @@ class Prostgles {
264
318
  }
265
319
  getTSFileName() {
266
320
  const fileName = "DBoGenerated.d.ts"; //`dbo_${this.schema}_types.ts`;
267
- const fullPath = (this.tsGeneratedTypesDir || "") + fileName;
321
+ const fullPath = (this.opts.tsGeneratedTypesDir || "") + fileName;
268
322
  return { fileName, fullPath };
269
323
  }
270
324
  getFileText(fullPath, format = "utf8") {
@@ -278,7 +332,7 @@ class Prostgles {
278
332
  });
279
333
  }
280
334
  writeDBSchema(force = false) {
281
- if (this.tsGeneratedTypesDir) {
335
+ if (this.opts.tsGeneratedTypesDir) {
282
336
  const { fullPath, fileName } = this.getTSFileName();
283
337
  const header = `/* This file was generated by Prostgles \n` +
284
338
  // `* ${(new Date).toUTCString()} \n`
@@ -295,23 +349,17 @@ class Prostgles {
295
349
  console.error("Schema changed. tsGeneratedTypesDir needs to be set to reload server");
296
350
  }
297
351
  }
298
- refreshDBO() {
299
- return __awaiter(this, void 0, void 0, function* () {
300
- this.dboBuilder = yield DboBuilder_1.DboBuilder.create(this);
301
- this.dbo = this.dboBuilder.dbo;
302
- });
303
- }
304
352
  init(onReady) {
305
353
  return __awaiter(this, void 0, void 0, function* () {
306
354
  this.loaded = false;
307
- if (this.watchSchema === "hotReloadMode" && !this.tsGeneratedTypesDir) {
355
+ if (this.opts.watchSchema === "hotReloadMode" && !this.opts.tsGeneratedTypesDir) {
308
356
  throw "tsGeneratedTypesDir option is needed for watchSchema: hotReloadMode to work ";
309
357
  }
310
358
  /* 1. Connect to db */
311
359
  if (!this.db) {
312
- const { db, pgp } = getDbConnection(this.dbConnection, this.dbOptions, this.DEBUG_MODE, notice => {
313
- if (this.onNotice)
314
- 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);
315
363
  if (this.dbEventsManager) {
316
364
  this.dbEventsManager.onNotice(notice);
317
365
  }
@@ -322,34 +370,47 @@ class Prostgles {
322
370
  this.checkDb();
323
371
  const { db, pgp } = this;
324
372
  /* 2. Execute any SQL file if provided */
325
- if (this.sqlFilePath) {
326
- yield this.runSQLFile(this.sqlFilePath);
373
+ if (this.opts.sqlFilePath) {
374
+ yield this.runSQLFile(this.opts.sqlFilePath);
327
375
  }
328
376
  try {
329
377
  /* 3. Make DBO object from all tables and views */
330
378
  yield this.refreshDBO();
331
- this.writeDBSchema();
332
- 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");
333
392
  /* 3.9 Check auth config */
334
- if (this.auth) {
335
- const { sidCookieName, login, getUser, getClientUser } = this.auth;
336
- if (typeof sidCookieName !== "string" && !login) {
337
- 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 } ";
338
398
  }
339
399
  if (!getUser || !getClientUser)
340
400
  throw "getUser OR getClientUser missing from auth config";
341
401
  }
342
- 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);
343
403
  this.dboBuilder.publishParser = this.publishParser;
344
404
  /* 4. Set publish and auth listeners */ //makeDBO(db, allTablesViews, pubSubManager, false)
345
405
  yield this.setSocketEvents();
346
406
  }
347
- else if (this.auth)
407
+ else if (this.opts.auth)
348
408
  throw "Auth config does not work without publish";
349
409
  // if(this.watchSchema){
350
410
  // if(!(await isSuperUser(db))) throw "Cannot watchSchema without a super user schema. Set watchSchema=false or provide a super user";
351
411
  // }
352
412
  this.dbEventsManager = new DBEventsManager_1.DBEventsManager(db, pgp);
413
+ this.writeDBSchema();
353
414
  /* 5. Finish init and provide DBO object */
354
415
  try {
355
416
  if (this.destroyed) {
@@ -365,16 +426,16 @@ class Prostgles {
365
426
  db: this.dbo,
366
427
  _db: db,
367
428
  pgp,
368
- io: this.io,
429
+ io: this.opts.io,
369
430
  destroy: () => __awaiter(this, void 0, void 0, function* () {
370
431
  console.log("destroying prgl instance");
371
432
  this.destroyed = true;
372
- if (this.io) {
373
- this.io.on("connection", (socket) => {
433
+ if (this.opts.io) {
434
+ this.opts.io.on("connection", (socket) => {
374
435
  console.log("Socket connected to destroyed instance");
375
436
  });
376
- if (typeof this.io.close === "function") {
377
- this.io.close();
437
+ if (typeof this.opts.io.close === "function") {
438
+ this.opts.io.close();
378
439
  console.log("this.io.close");
379
440
  }
380
441
  }
@@ -400,7 +461,7 @@ class Prostgles {
400
461
  const fileContent = yield this.getFileText(filePath); //.then(console.log);
401
462
  return this.db.multi(fileContent).then((data) => {
402
463
  console.log("Prostgles: SQL file executed successfuly \n -> " + filePath);
403
- return true;
464
+ return data;
404
465
  }).catch((err) => {
405
466
  const { position, length } = err, lines = fileContent.split("\n");
406
467
  let errMsg = filePath + " error: ";
@@ -415,27 +476,32 @@ class Prostgles {
415
476
  });
416
477
  });
417
478
  }
418
- getSID(socket) {
419
- 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)
420
488
  return null;
421
- const { sidCookieName, sidQueryParamName } = this.auth;
422
- if (!sidCookieName && !sidQueryParamName)
489
+ const { sidKeyName } = this.opts.auth;
490
+ if (!sidKeyName || !localParams)
423
491
  return null;
424
- let result = {
425
- sidCookie: null,
426
- sidQuery: null,
427
- sid: null
428
- };
429
- if (sidQueryParamName) {
430
- result.sidQuery = utils_1.get(socket, `handshake.query.${sidQueryParamName}`);
431
- }
432
- if (sidCookieName) {
433
- const cookie_str = utils_1.get(socket, "handshake.headers.cookie");
434
- const cookie = parseCookieStr(cookie_str);
435
- if (socket && cookie) {
436
- 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];
437
498
  }
438
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";
439
505
  function parseCookieStr(cookie_str) {
440
506
  if (!cookie_str || typeof cookie_str !== "string")
441
507
  return {};
@@ -445,31 +511,21 @@ class Prostgles {
445
511
  return prev;
446
512
  }, {});
447
513
  }
448
- result.sid = result.sidQuery || result.sidCookie;
449
- return result;
450
514
  }
451
- getUser(socket) {
515
+ getClientInfo(localParams) {
452
516
  return __awaiter(this, void 0, void 0, function* () {
453
- if (this.auth) {
454
- const { getUser } = this.auth;
455
- if (getUser) {
456
- const params = this.getSID(socket);
457
- 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
+ };
458
526
  }
459
527
  }
460
- return null;
461
- });
462
- }
463
- getUserFromCookieSession(socket) {
464
- return __awaiter(this, void 0, void 0, function* () {
465
- // console.log("conn", socket.handshake.query, socket._session)
466
- const params = this.getSID(socket);
467
- const { getUser, getClientUser } = this.auth;
468
- const user = yield getUser(params, this.dbo, this.db, socket);
469
- const clientUser = yield getClientUser(params, this.dbo, this.db, socket);
470
- if (!user)
471
- return undefined;
472
- return { user, clientUser };
528
+ return {};
473
529
  });
474
530
  }
475
531
  setSocketEvents() {
@@ -477,9 +533,9 @@ class Prostgles {
477
533
  this.checkDb();
478
534
  if (!this.dbo)
479
535
  throw "dbo missing";
480
- 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);
481
537
  this.publishParser = publishParser;
482
- if (!this.io)
538
+ if (!this.opts.io)
483
539
  return;
484
540
  /* Already initialised. Only reconnect sockets */
485
541
  if (this.connectedSockets.length) {
@@ -490,7 +546,7 @@ class Prostgles {
490
546
  return;
491
547
  }
492
548
  /* Initialise */
493
- 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* () {
494
550
  if (this.destroyed) {
495
551
  console.log("Socket connected to destroyed instance");
496
552
  socket.disconnect();
@@ -501,8 +557,8 @@ class Prostgles {
501
557
  throw "db/dbo missing";
502
558
  let { dbo, db, pgp } = this;
503
559
  try {
504
- if (this.onSocketConnect)
505
- yield this.onSocketConnect(socket, dbo, db);
560
+ if (this.opts.onSocketConnect)
561
+ yield this.opts.onSocketConnect(socket, dbo, db);
506
562
  /* RUN Client request from Publish.
507
563
  Checks request against publish and if OK run it with relevant publish functions. Local (server) requests do not check the policy
508
564
  */
@@ -513,8 +569,8 @@ class Prostgles {
513
569
  console.error("socket missing??!!");
514
570
  throw "socket missing??!!";
515
571
  }
516
- const user = yield this.getUser(socket);
517
- 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);
518
574
  if (valid_table_command_rules) {
519
575
  let res = yield this.dbo[tableName][command](param1, param2, param3, valid_table_command_rules, { socket, has_rules: true });
520
576
  cb(null, res);
@@ -535,8 +591,8 @@ class Prostgles {
535
591
  this.dbEventsManager.removeNotify(socket);
536
592
  this.connectedSockets = this.connectedSockets.filter(s => s.id !== socket.id);
537
593
  // subscriptions = subscriptions.filter(sub => sub.socket.id !== socket.id);
538
- if (this.onSocketDisconnect) {
539
- this.onSocketDisconnect(socket, dbo);
594
+ if (this.opts.onSocketDisconnect) {
595
+ this.opts.onSocketDisconnect(socket, dbo);
540
596
  }
541
597
  ;
542
598
  });
@@ -635,7 +691,6 @@ function flat(arr) {
635
691
  let res = arr.reduce(function (farr, toFlatten) {
636
692
  return farr.concat(Array.isArray(toFlatten) ? flat(toFlatten) : toFlatten);
637
693
  }, []);
638
- // console.log(arr, res)
639
694
  return res;
640
695
  }
641
696
  exports.flat = flat;
@@ -650,11 +705,16 @@ class PublishParser {
650
705
  if (!this.dbo || !this.publish)
651
706
  throw "INTERNAL ERROR: dbo and/or publish missing";
652
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
+ }
653
713
  getMethods(socket) {
654
714
  return __awaiter(this, void 0, void 0, function* () {
655
715
  let methods = {};
656
- const user = yield this.prostgles.getUser(socket);
657
- 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);
658
718
  if (_methods && Object.keys(_methods).length) {
659
719
  Object.keys(_methods).map(key => {
660
720
  if (_methods[key] && (typeof _methods[key] === "function" || typeof _methods[key].then === "function")) {
@@ -673,9 +733,10 @@ class PublishParser {
673
733
  * @param socket
674
734
  * @param user
675
735
  */
676
- getPublish(socket, user) {
736
+ getPublish(localParams, clientInfo) {
677
737
  return __awaiter(this, void 0, void 0, function* () {
678
- 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);
679
740
  if (_publish === "*") {
680
741
  let publish = {};
681
742
  this.prostgles.dboBuilder.tablesOrViews.map(tov => {
@@ -686,13 +747,14 @@ class PublishParser {
686
747
  return _publish;
687
748
  });
688
749
  }
689
- getValidatedRequestRuleWusr({ tableName, command, socket }) {
750
+ getValidatedRequestRuleWusr({ tableName, command, localParams }) {
690
751
  return __awaiter(this, void 0, void 0, function* () {
691
- const user = yield this.prostgles.getUser(socket);
692
- 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);
693
754
  });
694
755
  }
695
- getValidatedRequestRule({ tableName, command, socket }, user) {
756
+ getValidatedRequestRule({ tableName, command, localParams }, clientInfo) {
757
+ var _a, _b, _c, _d;
696
758
  return __awaiter(this, void 0, void 0, function* () {
697
759
  if (!this.dbo)
698
760
  throw "INTERNAL ERROR: dbo is missing";
@@ -703,17 +765,16 @@ class PublishParser {
703
765
  throw "Invalid command: " + command;
704
766
  }
705
767
  /* Must be local request -> allow everything */
706
- if (!socket)
768
+ if (!localParams || (!localParams.socket && !localParams.httpReq))
707
769
  return undefined;
708
770
  /* Must be from socket. Must have a publish */
709
771
  if (!this.publish)
710
772
  throw "publish is missing";
711
773
  /* Get any publish errors for socket */
712
- const schm = utils_1.get(socket, `prostgles.schema.${tableName}.${command}`);
713
- // 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];
714
775
  if (schm && schm.err)
715
776
  throw schm.err;
716
- let table_rule = yield this.getTableRules({ tableName, socket }, user);
777
+ let table_rule = yield this.getTableRules({ tableName, localParams }, clientInfo);
717
778
  if (!table_rule)
718
779
  throw "Invalid or disallowed table: " + tableName;
719
780
  if (command === "upsert") {
@@ -728,13 +789,13 @@ class PublishParser {
728
789
  throw `Invalid or disallowed command: ${command}`;
729
790
  });
730
791
  }
731
- getTableRules({ tableName, socket }, user) {
792
+ getTableRules({ tableName, localParams }, clientInfo) {
732
793
  return __awaiter(this, void 0, void 0, function* () {
733
794
  try {
734
- if (!socket || !tableName)
795
+ if (!localParams || !tableName)
735
796
  throw "publish OR socket OR dbo OR tableName are missing";
736
- let _publish = yield this.getPublish(socket, user);
737
- 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);
738
799
  /* Get view or table specific rules */
739
800
  const is_view = this.dbo[tableName].is_view, MY_RULES = RULE_TO_METHODS.filter(r => !is_view || !r.table_only);
740
801
  // if(tableName === "various") console.warn(1033, MY_RULES)
@@ -755,9 +816,10 @@ class PublishParser {
755
816
  if (table_rules[r.rule]) {
756
817
  r.methods.map(method => {
757
818
  if (table_rules[method] === undefined) {
758
- if (method === "updateBatch" && !table_rules.update) {
819
+ const publishedTable = table_rules;
820
+ if (method === "updateBatch" && !publishedTable.update) {
759
821
  }
760
- else if (method === "upsert" && (!table_rules.update || !table_rules.insert)) {
822
+ else if (method === "upsert" && (!publishedTable.update || !publishedTable.insert)) {
761
823
  // return;
762
824
  }
763
825
  else {
@@ -825,14 +887,14 @@ class PublishParser {
825
887
  let schema = {};
826
888
  try {
827
889
  /* Publish tables and views based on socket */
828
- const user = yield this.prostgles.getUser(socket);
829
- let _publish = yield this.getPublish(socket, user);
890
+ const clientInfo = yield this.prostgles.getClientInfo({ socket });
891
+ let _publish = yield this.getPublish(socket, clientInfo);
830
892
  if (_publish && Object.keys(_publish).length) {
831
893
  let txKey = "tx";
832
- if (!this.prostgles.transactions)
894
+ if (!this.prostgles.opts.transactions)
833
895
  txKey = "";
834
- if (typeof this.prostgles.transactions === "string")
835
- txKey = this.prostgles.transactions;
896
+ if (typeof this.prostgles.opts.transactions === "string")
897
+ txKey = this.prostgles.opts.transactions;
836
898
  const tableNames = Object.keys(_publish).filter(k => !txKey || txKey !== k);
837
899
  yield Promise.all(tableNames
838
900
  .map((tableName) => __awaiter(this, void 0, void 0, function* () {
@@ -842,7 +904,7 @@ class PublishParser {
842
904
  DBO tables: ${Object.keys(this.dbo).filter(k => this.dbo[k].find).join(", ")}
843
905
  `;
844
906
  }
845
- const table_rules = yield this.getTableRules({ socket, tableName }, user);
907
+ const table_rules = yield this.getTableRules({ localParams: { socket }, tableName }, clientInfo);
846
908
  if (table_rules && Object.keys(table_rules).length) {
847
909
  schema[tableName] = {};
848
910
  let methods = [];
@@ -860,7 +922,7 @@ class PublishParser {
860
922
  if (["update", "find", "findOne", "insert", "delete", "upsert"].includes(method)) {
861
923
  let err = null;
862
924
  try {
863
- 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);
864
926
  yield this.dbo[tableName][method]({}, {}, {}, valid_table_command_rules, { socket, has_rules: true, testRule: true });
865
927
  }
866
928
  catch (e) {
@@ -880,7 +942,6 @@ class PublishParser {
880
942
  console.error("Prostgles \nERRORS IN PUBLISH: ", JSON.stringify(e));
881
943
  throw e;
882
944
  }
883
- // console.log(schema)
884
945
  return schema;
885
946
  });
886
947
  }