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
@@ -0,0 +1,419 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const aws_sdk_1 = require("aws-sdk");
13
+ const fs = require("fs");
14
+ const FileType = require("file-type");
15
+ const sharp = require("sharp");
16
+ const prostgles_types_1 = require("prostgles-types");
17
+ const HOUR = 3600 * 1000;
18
+ class FileManager {
19
+ constructor(config, imageOptions) {
20
+ this.uploadAsMedia = (params) => __awaiter(this, void 0, void 0, function* () {
21
+ const { item, imageOptions } = params;
22
+ const { name, data, content_type } = item;
23
+ if (!data)
24
+ throw "No file provided";
25
+ if (!name || typeof name !== "string")
26
+ throw "Expecting a string name";
27
+ // const type = await this.getMIME(data, name, allowedExtensions, dissallowedExtensions);
28
+ let _data = data;
29
+ if (content_type.startsWith("image")) {
30
+ const compression = imageOptions === null || imageOptions === void 0 ? void 0 : imageOptions.compression;
31
+ if (compression) {
32
+ console.log("Resizing image");
33
+ let opts;
34
+ if ("contain" in compression) {
35
+ opts = Object.assign({ fit: sharp.fit.contain }, compression.contain);
36
+ }
37
+ else if ("inside" in compression) {
38
+ opts = Object.assign({ fit: sharp.fit.inside }, compression.inside);
39
+ }
40
+ _data = yield sharp(data)
41
+ .resize(opts)
42
+ .withMetadata(Boolean(imageOptions.keepMetadata))
43
+ // .jpeg({ quality: 80 })
44
+ .toBuffer();
45
+ }
46
+ else if (!(imageOptions === null || imageOptions === void 0 ? void 0 : imageOptions.keepMetadata)) {
47
+ /**
48
+ * Remove exif
49
+ */
50
+ _data = yield sharp(data)
51
+ .clone()
52
+ .toBuffer();
53
+ }
54
+ }
55
+ const res = yield this.upload(_data, name, content_type);
56
+ return res;
57
+ });
58
+ this.parseSQLIdentifier = (name) => __awaiter(this, void 0, void 0, function* () { return this.prostgles.dbo.sql("select format('%I', $1)", [name], { returnType: "value" }); });
59
+ this.init = (prg) => __awaiter(this, void 0, void 0, function* () {
60
+ var _a, _b, _c;
61
+ this.prostgles = prg;
62
+ const { dbo, db, opts } = prg;
63
+ const { fileTable } = opts;
64
+ const { tableName = "media", referencedTables = {} } = fileTable;
65
+ this.tableName = tableName;
66
+ const maxBfSizeMB = ((_c = (_b = (_a = prg.opts.io) === null || _a === void 0 ? void 0 : _a.engine) === null || _b === void 0 ? void 0 : _b.opts) === null || _c === void 0 ? void 0 : _c.maxHttpBufferSize) / 1e6;
67
+ console.log(`Prostgles: Initiated file manager. Max allowed file size: ${maxBfSizeMB}MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options`);
68
+ // throw "Why are constraints dissapearing?"
69
+ /**
70
+ * 1. Create media table
71
+ */
72
+ if (!dbo[tableName]) {
73
+ console.log(`Creating fileTable ${prostgles_types_1.asName(tableName)} ...`);
74
+ yield db.any(`CREATE EXTENSION IF NOT EXISTS pgcrypto `);
75
+ yield db.any(`CREATE TABLE IF NOT EXISTS ${prostgles_types_1.asName(tableName)} (
76
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
77
+ name TEXT NOT NULL,
78
+ extension TEXT NOT NULL,
79
+ content_type TEXT NOT NULL,
80
+ url TEXT NOT NULL,
81
+ original_name TEXT NOT NULL,
82
+
83
+ description TEXT,
84
+ s3_url TEXT,
85
+ signed_url TEXT,
86
+ signed_url_expires BIGINT,
87
+ etag TEXT,
88
+ UNIQUE(name)
89
+ )`);
90
+ console.log(`Created fileTable ${prostgles_types_1.asName(tableName)}`);
91
+ }
92
+ /**
93
+ * 2. Create media lookup tables
94
+ */
95
+ yield Promise.all(Object.keys(referencedTables).map((refTable) => __awaiter(this, void 0, void 0, function* () {
96
+ if (!dbo[refTable])
97
+ throw `Referenced table (${refTable}) from fileTable.referencedTables record is missing`;
98
+ // const lookupTableName = asName(`lookup_${tableName}_${refTable}`);
99
+ const lookupTableName = yield this.parseSQLIdentifier(`prostgles_lookup_${tableName}_${refTable}`);
100
+ const pKeyFields = (yield dbo[refTable].getColumns()).filter(f => f.is_pkey);
101
+ if (pKeyFields.length !== 1)
102
+ throw `Could not make link table for ${refTable}. ${pKeyFields} must have exactly one primary key column. Current pkeys: ${pKeyFields.map(f => f.name)}`;
103
+ const pkField = pKeyFields[0];
104
+ const refType = referencedTables[refTable];
105
+ if (!dbo[lookupTableName]) {
106
+ // if(!(await dbo[lookupTableName].count())) await db.any(`DROP TABLE IF EXISTS ${lookupTableName};`);
107
+ const action = ` (${tableName} <-> ${refTable}) join table ${lookupTableName}`; // PRIMARY KEY
108
+ const query = `
109
+ CREATE TABLE ${lookupTableName} (
110
+ foreign_id ${pkField.udt_name} ${refType === "one" ? " PRIMARY KEY " : ""} REFERENCES ${prostgles_types_1.asName(refTable)}(${prostgles_types_1.asName(pkField.name)}),
111
+ media_id UUID NOT NULL REFERENCES ${prostgles_types_1.asName(tableName)}(id)
112
+ )
113
+ `;
114
+ // console.log(`Creating ${action} ...`, lookupTableName);
115
+ yield db.any(query);
116
+ console.log(`Created ${action}`);
117
+ }
118
+ else {
119
+ const cols = yield dbo[lookupTableName].getColumns();
120
+ const badCols = cols.filter(c => !c.references);
121
+ yield Promise.all(badCols.map((badCol) => __awaiter(this, void 0, void 0, function* () {
122
+ console.error(`Prostgles: media ${lookupTableName} joining table has lost a reference constraint for column ${badCol.name}.` +
123
+ ` This may have been caused by a DROP TABLE ... CASCADE.`);
124
+ let q = `
125
+ ALTER TABLE ${prostgles_types_1.asName(lookupTableName)}
126
+ ADD CONSTRAINT ${(lookupTableName + "_" + badCol.name + "_r")} FOREIGN KEY (${badCol.name})
127
+ `;
128
+ console.log("Trying to add the missing constraint back");
129
+ if (badCol.name === "foreign_id") {
130
+ q += `REFERENCES ${prostgles_types_1.asName(refTable)}(${prostgles_types_1.asName(pkField.name)}) `;
131
+ }
132
+ else if (badCol.name === "media_id") {
133
+ q += `REFERENCES ${prostgles_types_1.asName(tableName)}(id) `;
134
+ }
135
+ if (q) {
136
+ try {
137
+ yield db.any(q);
138
+ console.log("Added missing constraint back");
139
+ }
140
+ catch (e) {
141
+ console.error("Failed to add missing constraint", e);
142
+ }
143
+ }
144
+ })));
145
+ }
146
+ return true;
147
+ })));
148
+ /**
149
+ * 4. Serve media through express
150
+ */
151
+ const { fileUrlPath = `/${tableName}`, expressApp: app } = fileTable;
152
+ this.fileRoute = fileUrlPath;
153
+ if (app) {
154
+ app.get(fileUrlPath + "/:name", (req, res) => __awaiter(this, void 0, void 0, function* () {
155
+ if (!dbo[tableName]) {
156
+ res.status(500).json({ err: "Internal error: media table not valid" });
157
+ return false;
158
+ }
159
+ const mediaTable = dbo[tableName];
160
+ try {
161
+ const { name } = req.params;
162
+ if (typeof name !== "string")
163
+ throw "Invalid media name";
164
+ const media = yield mediaTable.findOne({ name }, { select: { id: 1, name: 1, signed_url: 1, signed_url_expires: 1, content_type: 1 } }, { httpReq: req });
165
+ if (!media)
166
+ throw "Invalid media";
167
+ if (this.s3Client) {
168
+ let url = media.signed_url;
169
+ const expires = +(media.signed_url_expires || 0);
170
+ const EXPIRES = Date.now() + HOUR;
171
+ if (!url || expires < EXPIRES) {
172
+ url = yield this.getFileURL(media.name, 60 * 60);
173
+ yield mediaTable.update({ name }, { signed_url: url, signed_url_expires: EXPIRES });
174
+ }
175
+ res.redirect(url);
176
+ }
177
+ else {
178
+ const pth = `${this.config.localFolderPath}/${media.name}`;
179
+ res.contentType(media.content_type);
180
+ res.sendFile(pth);
181
+ }
182
+ }
183
+ catch (e) {
184
+ console.log(e);
185
+ res.status(404).json({ err: "Invalid media" });
186
+ }
187
+ }));
188
+ }
189
+ });
190
+ this.config = config;
191
+ this.imageOptions = imageOptions;
192
+ if ("region" in config) {
193
+ const { region, accessKeyId, secretAccessKey } = config;
194
+ this.s3Client = new aws_sdk_1.S3({
195
+ region,
196
+ credentials: { accessKeyId, secretAccessKey },
197
+ });
198
+ }
199
+ }
200
+ getMIME(file, fileName, allowedExtensions, dissallowedExtensions, onlyFromName = true) {
201
+ var _a, _b;
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ const nameParts = fileName.split(".");
204
+ const nameExt = nameParts[nameParts.length - 1].toLowerCase(), mime = Object.keys(CONTENT_TYPE_TO_EXT).find(k => CONTENT_TYPE_TO_EXT[k].includes(nameExt));
205
+ let type = {
206
+ fileName,
207
+ mime,
208
+ ext: nameExt,
209
+ };
210
+ if (onlyFromName && !mime)
211
+ throw `Invalid file extension: content_type could not be found for extension(${nameExt})`;
212
+ if (!mime) {
213
+ /* Set correct/missing extension */
214
+ if (["xml", "txt", "csv", "tsv", "doc"].includes(nameExt)) {
215
+ type = Object.assign(Object.assign({}, type), { mime: "text/" + nameExt, ext: nameExt });
216
+ }
217
+ else if (["svg"].includes(nameExt)) {
218
+ type = Object.assign(Object.assign({}, type), { mime: "image/svg+xml", ext: nameExt });
219
+ }
220
+ else if (Buffer.isBuffer(file)) {
221
+ const res = yield FileType.fromBuffer(file);
222
+ type = Object.assign(Object.assign({}, res), { fileName });
223
+ }
224
+ else if (typeof file === "string") {
225
+ const res = yield FileType.fromFile(file);
226
+ type = Object.assign(Object.assign({}, res), { fileName });
227
+ }
228
+ else {
229
+ throw "Unexpected file. Expecting: Buffer | String";
230
+ }
231
+ }
232
+ if (allowedExtensions &&
233
+ !((_a = allowedExtensions.map(v => v.toLowerCase())) === null || _a === void 0 ? void 0 : _a.includes(type.ext))) {
234
+ throw fileName + " -> File type ( " + type.ext + " ) not allowed. Expecting one of: " + allowedExtensions.map(v => v.toLowerCase()).join(", ");
235
+ }
236
+ else if (dissallowedExtensions && ((_b = dissallowedExtensions.map(v => v.toLowerCase())) === null || _b === void 0 ? void 0 : _b.includes(type.ext))) {
237
+ throw fileName + " -> File type ( " + type.ext + " ) not allowed";
238
+ }
239
+ if (!onlyFromName) {
240
+ let { ext } = type;
241
+ if (nameExt !== ext)
242
+ fileName = nameParts.slice(0, -1).join('') + "." + ext;
243
+ }
244
+ return Object.assign(Object.assign({}, type), { fileName });
245
+ });
246
+ }
247
+ // async getUploadURL(fileName: string): Promise<string> {
248
+ // const thisHour = new Date();
249
+ // thisHour.setMilliseconds(0);
250
+ // thisHour.setSeconds(0);
251
+ // thisHour.setMinutes(0);
252
+ // const now = Date.now();
253
+ // const HOUR = 60 * 60;
254
+ // const params = {
255
+ // Bucket: this.config.bucket,
256
+ // Key: fileName,
257
+ // Expires: Math.round(((now - (+thisHour))/1000 + 2 * HOUR )), // one hour
258
+ // ACL: "bucket-owner-full-control",
259
+ // ContentType: "image/png",
260
+ // };
261
+ // return await this.s3Client.getSignedUrlPromise("putObject", params)
262
+ // }
263
+ upload(file, name, mime) {
264
+ return __awaiter(this, void 0, void 0, function* () {
265
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
266
+ if (!file) {
267
+ throw "No file. Expecting: Buffer | String";
268
+ }
269
+ if (!name) {
270
+ throw "No name. Expecting: String";
271
+ }
272
+ // let type = await this.getMIME(file, name, allowedExtensions);
273
+ const url = `${this.fileRoute}/${name}`;
274
+ if (!this.s3Client) {
275
+ const config = this.config;
276
+ try {
277
+ yield fs.promises.mkdir(config.localFolderPath, { recursive: true });
278
+ fs.writeFileSync(`${config.localFolderPath}/${name}`, file);
279
+ resolve({
280
+ url,
281
+ etag: `none`,
282
+ });
283
+ }
284
+ catch (err) {
285
+ console.error("Error saving file locally", err);
286
+ reject("Internal error");
287
+ }
288
+ }
289
+ else {
290
+ /* S3 Upload */
291
+ // ACL: "public-read",
292
+ /* ACL needs this permission:
293
+ "s3:PutObject",
294
+ "s3:PutObjectAcl",
295
+ "s3:GetObject",
296
+ "s3:GetObjectAcl",
297
+ */
298
+ const params = {
299
+ Bucket: this.config.bucket,
300
+ Key: name,
301
+ ContentType: mime,
302
+ Body: file
303
+ };
304
+ this.s3Client.upload(params, (err, res) => {
305
+ if (err) {
306
+ reject("Something went wrong");
307
+ console.error(err);
308
+ }
309
+ else {
310
+ // console.log("Uploaded file:", res)
311
+ resolve({
312
+ url,
313
+ etag: res.ETag,
314
+ s3_url: res.Location,
315
+ });
316
+ }
317
+ });
318
+ }
319
+ }));
320
+ });
321
+ }
322
+ getFileURL(fileName, expiresInSeconds = 30 * 60) {
323
+ return __awaiter(this, void 0, void 0, function* () {
324
+ const params = {
325
+ Bucket: this.config.bucket,
326
+ Key: fileName,
327
+ Expires: expiresInSeconds || 30 * 60
328
+ };
329
+ return yield this.s3Client.getSignedUrlPromise("getObject", params);
330
+ });
331
+ }
332
+ }
333
+ exports.default = FileManager;
334
+ const CONTENT_TYPE_TO_EXT = {
335
+ "text/html": ["html", "htm", "shtml"],
336
+ "text/css": ["css"],
337
+ "text/xml": ["xml"],
338
+ "image/gif": ["gif"],
339
+ "image/jpeg": ["jpeg", "jpg"],
340
+ "application/x-javascript": ["js"],
341
+ "application/atom+xml": ["atom"],
342
+ "application/rss+xml": ["rss"],
343
+ "text/mathml": ["mml"],
344
+ "text/plain": ["txt"],
345
+ "text/vnd.sun.j2me.app-descriptor": ["jad"],
346
+ "text/vnd.wap.wml": ["wml"],
347
+ "text/x-component": ["htc"],
348
+ "image/png": ["png"],
349
+ "image/tiff": ["tif", "tiff"],
350
+ "image/vnd.wap.wbmp": ["wbmp"],
351
+ "image/x-icon": ["ico"],
352
+ "image/x-jng": ["jng"],
353
+ "image/x-ms-bmp": ["bmp"],
354
+ "image/svg+xml": ["svg"],
355
+ "image/webp": ["webp"],
356
+ "application/java-archive": ["jar", "war", "ear"],
357
+ "application/mac-binhex40": ["hqx"],
358
+ "application/msword": ["doc"],
359
+ "application/pdf": ["pdf"],
360
+ "application/postscript": ["ps", "eps", "ai"],
361
+ "application/rtf": ["rtf"],
362
+ "application/vnd.ms-excel": ["xls"],
363
+ "application/vnd.ms-powerpoint": ["ppt"],
364
+ "application/vnd.wap.wmlc": ["wmlc"],
365
+ "application/vnd.google-earth.kml+xml": ["kml"],
366
+ "application/vnd.google-earth.kmz": ["kmz"],
367
+ "application/x-7z-compressed": ["7z"],
368
+ "application/x-cocoa": ["cco"],
369
+ "application/x-java-archive-diff": ["jardiff"],
370
+ "application/x-java-jnlp-file": ["jnlp"],
371
+ "application/x-makeself": ["run"],
372
+ "application/x-perl": ["pl", "pm"],
373
+ "application/x-pilot": ["prc", "pdb"],
374
+ "application/x-rar-compressed": ["rar"],
375
+ "application/x-redhat-package-manager": ["rpm"],
376
+ "application/x-sea": ["sea"],
377
+ "application/x-shockwave-flash": ["swf"],
378
+ "application/x-stuffit": ["sit"],
379
+ "application/x-tcl": ["tcl", "tk"],
380
+ "application/x-x509-ca-cert": ["der", "pem", "crt"],
381
+ "application/x-xpinstall": ["xpi"],
382
+ "application/xhtml+xml": ["xhtml"],
383
+ "application/zip": ["zip"],
384
+ "application/octet-stream": ["bin", "exe", "dll", "deb", "dmg", "eot", "iso", "img", "msi", "msp", "msm"],
385
+ "audio/midi": ["mid", "midi", "kar"],
386
+ "audio/mpeg": ["mp3"],
387
+ "audio/ogg": ["ogg"],
388
+ "audio/x-realaudio": ["ra"],
389
+ "video/3gpp": ["3gpp", "3gp"],
390
+ "video/mpeg": ["mpeg", "mpg"],
391
+ "video/quicktime": ["mov"],
392
+ "video/x-flv": ["flv"],
393
+ "video/x-mng": ["mng"],
394
+ "video/x-ms-asf": ["asx", "asf"],
395
+ "video/x-ms-wmv": ["wmv"],
396
+ "video/x-msvideo": ["avi"],
397
+ "video/mp4": ["m4v", "mp4"],
398
+ };
399
+ /**
400
+ *
401
+
402
+
403
+ // if(content_type && typeof content_type !== "string") throw "Invalid content_type provided";
404
+ // if(title && typeof title !== "string") throw "Invalid title provided";
405
+ // let fExt = name.split(".").pop()
406
+ // if(content_type && name.split(".").length > 1 && fExt && fExt.length <= 4){
407
+ // type = {
408
+ // mime: content_type,
409
+ // ext: fExt,
410
+ // fileName: name,
411
+ // }
412
+ // } else {
413
+ // type = await this.getMIME(data, name);//, ["png", "jpg", "ogg", "webm", "pdf", "doc"]);
414
+ // }
415
+
416
+
417
+
418
+ */
419
+ //# sourceMappingURL=FileManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../lib/FileManager.ts"],"names":[],"mappings":"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"}