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.
- package/dist/DboBuilder.d.ts +52 -27
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +404 -85
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts +160 -0
- package/dist/FileManager.d.ts.map +1 -0
- package/dist/FileManager.js +419 -0
- package/dist/FileManager.js.map +1 -0
- package/dist/Prostgles.d.ts +145 -79
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +240 -180
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager.js +1 -1
- package/dist/PubSubManager.js.map +1 -1
- package/dist/QueryBuilder.d.ts.map +1 -1
- package/dist/QueryBuilder.js +8 -5
- package/dist/QueryBuilder.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/lib/DboBuilder.ts +541 -136
- package/lib/FileManager.ts +546 -0
- package/lib/Prostgles.ts +407 -253
- package/lib/PubSubManager.ts +1 -1
- package/lib/QueryBuilder.ts +10 -6
- package/lib/index.ts +3 -3
- package/package.json +8 -2
- package/tests/client/index.js +18 -6
- package/tests/client/index.ts +16 -4
- package/tests/client/package-lock.json +27 -26
- package/tests/client/package.json +1 -1
- package/tests/client_only_queries.js +4 -4
- package/tests/config_test/DBoGenerated.d.ts +231 -8
- package/tests/config_test/index.html +35 -9
- package/tests/config_test/index.js +55 -97
- package/tests/config_test/index.js.map +1 -0
- package/tests/config_test/index.ts +67 -113
- package/tests/config_test/init.sql +50 -24
- package/tests/config_test/media/002d5f12-63c3-41f3-9007-cd33009104f4.txt +1 -0
- package/tests/config_test/media/003f0136-d231-4dd1-8937-08fa9a7c3d2e.txt +1 -0
- package/tests/config_test/media/01bd39a0-083b-4bfa-91fc-f4d1d9b7b204.txt +1 -0
- package/tests/config_test/media/0224513a-62de-4f0a-92bb-dcb3f700da7f.txt +1 -0
- package/tests/config_test/media/03005346-d6d5-4824-96ae-5ad7ca762730.txt +1 -0
- package/tests/config_test/media/0342d065-9bd2-443f-9058-f8058ab52de0.txt +1 -0
- package/tests/config_test/media/0350d1cf-b3b3-4c58-aef2-ad1dc3f80c6c.txt +1 -0
- package/tests/config_test/media/036833d7-d166-43a1-bda3-b801938c614d.txt +1 -0
- package/tests/config_test/media/03b5324d-0913-408f-a78a-252ff8fe8126.txt +1 -0
- package/tests/config_test/media/0540b670-bf42-4a83-82b2-67164630a24a.txt +1 -0
- package/tests/config_test/media/05900f5f-3b67-4ee9-8e1d-b511fd79d878.txt +1 -0
- package/tests/config_test/media/05969252-3f9e-41a0-88ce-aa23ba8b42eb.txt +1 -0
- package/tests/config_test/media/05a8a60c-cc75-4469-8e06-55d88c26e97a.txt +1 -0
- package/tests/config_test/media/05e662fc-7a03-4303-ae42-27a28d9affb9.txt +1 -0
- package/tests/config_test/media/061f86e6-0ddd-49b0-b243-4c063c6db5e4.txt +1 -0
- package/tests/config_test/media/062cf311-3976-471e-88ec-d618bd8ceeaa.txt +1 -0
- package/tests/config_test/media/0693b073-77b9-446a-9606-5453bcafd200.txt +1 -0
- package/tests/config_test/media/07a09b79-b1ed-45a3-bb42-42cd1a00757b.txt +1 -0
- package/tests/config_test/media/07e48303-0520-4a80-921e-130417488baa.txt +1 -0
- package/tests/config_test/media/09ab90a6-8461-4f39-89fb-8e2277974771.txt +1 -0
- package/tests/config_test/media/09c1194a-5d09-417c-a0c4-26dcf1e65bdb.txt +1 -0
- package/tests/config_test/media/09dc662f-6a9d-4a0b-95ba-8d24ceae9721.txt +1 -0
- package/tests/config_test/media/09ebb492-6146-4ff8-ac83-ac9970f5844c.txt +1 -0
- package/tests/config_test/media/0a198d6f-c629-42bd-9aa8-3c0ff62e1f1d.txt +1 -0
- package/tests/config_test/media/0a6d3ced-a16f-4491-b25b-679e9323ad79.txt +1 -0
- package/tests/config_test/media/0a817a27-6888-4ac4-b07b-4d1275e035ff.txt +1 -0
- package/tests/config_test/media/0aadc4f7-bf87-49da-8ef6-0857bf1789b4.txt +1 -0
- package/tests/config_test/media/0abe4a2e-fd75-428b-9757-2535d4112862.txt +1 -0
- package/tests/config_test/media/0ad9deca-6362-41dd-b0b3-8f8a71e2e1e2.txt +1 -0
- package/tests/config_test/media/0bdb19df-b82c-4a07-8d9b-a6e3a2af8a94.txt +1 -0
- package/tests/config_test/media/0c1e4575-223d-4d0c-b2c3-6ab6bb9844e6.txt +1 -0
- package/tests/config_test/media/0c4e3d55-432f-42e9-aa53-48e816ff6d15.txt +1 -0
- package/tests/config_test/media/0c5b47a4-884a-4207-b106-fa2557fc5600.txt +1 -0
- package/tests/config_test/media/0d8fbe62-22bc-47e8-b4ca-b77d8fd02798.txt +1 -0
- package/tests/config_test/media/0d95a140-3ae1-4faa-a34b-ed5b6cc524ac.txt +1 -0
- package/tests/config_test/media/0e0907c7-bd10-4ce2-ac36-066916a8a793.txt +1 -0
- package/tests/config_test/media/0e192b00-2676-4130-8819-90ee34a50932.txt +1 -0
- package/tests/config_test/media/0f9e3861-0e59-4ae4-a606-1fdd2c890c5b.txt +1 -0
- package/tests/config_test/media/1039afe1-24e9-4ea6-bfd0-6871b5f06f8f.txt +1 -0
- package/tests/config_test/media/1052e479-295e-46e9-88ec-d8f20efa75ea.txt +1 -0
- package/tests/config_test/media/11973be6-a675-4e0d-a54e-1eccbcdb3f2a.txt +1 -0
- package/tests/config_test/media/121656f5-1ef9-4181-9ee0-e3ae1433fed1.txt +1 -0
- package/tests/config_test/media/121a16b4-a925-406b-9ba9-0e4b4d413402.txt +1 -0
- package/tests/config_test/media/122cdf36-5b17-4b81-aa9d-c6725d1e8c8a.txt +1 -0
- package/tests/config_test/media/12435236-4735-4978-a234-52100181ee72.txt +1 -0
- package/tests/config_test/media/130eea28-64d0-40c4-8fa4-0cfba493e321.txt +1 -0
- package/tests/config_test/media/1435b6fd-4b86-4f7e-8e68-b607c5e5f2ad.txt +1 -0
- package/tests/config_test/media/14d78bf0-fd3e-4686-863d-b18d2c69b181.txt +1 -0
- package/tests/config_test/media/14dffd0e-23ae-4659-b8b3-25c89593643e.txt +1 -0
- package/tests/config_test/media/14e32028-fb4d-4743-a34d-c325be47b25e.txt +1 -0
- package/tests/config_test/media/14fb2139-eb53-4246-8dcb-c1e568572306.txt +1 -0
- package/tests/config_test/media/1644d880-c61f-4e9c-9c5c-892623ff5689.txt +1 -0
- package/tests/config_test/media/16818bb0-a022-4fd9-acac-e5a448b58eaf.txt +1 -0
- package/tests/config_test/media/16a47db5-262f-490b-850f-0f82019a58b4.txt +1 -0
- package/tests/config_test/media/16c2ffcc-8632-4935-b12d-be1313b74ddc.txt +1 -0
- package/tests/config_test/media/16fe3928-25c7-4e3a-9f68-51520712a4f6.txt +1 -0
- package/tests/config_test/media/172a7736-d3cf-431c-92a5-1a4aa6e89c7e.txt +1 -0
- package/tests/config_test/media/1784e75f-d063-43e2-accb-364ed36ae7d0.txt +1 -0
- package/tests/config_test/media/182e9dcc-0443-4cc5-aff1-9cf954dab771.txt +1 -0
- package/tests/config_test/media/19158860-e0c0-4ac7-afee-5428f9060b36.txt +1 -0
- package/tests/config_test/media/1998f271-5d71-4bc0-9f92-376a8a98f7da.txt +1 -0
- package/tests/config_test/media/19d2b383-4b1b-41a5-a7ef-ceaf1e691e0f.txt +1 -0
- package/tests/config_test/media/1c33fac7-470b-47e0-8aba-7c7394406aad.txt +1 -0
- package/tests/config_test/media/1d8a6c9c-0539-4c08-8ea5-4bd0bbe8fa18.txt +1 -0
- package/tests/config_test/media/1de86105-97ce-49c0-8137-030f3af37fb5.txt +1 -0
- package/tests/config_test/media/1f1393d1-e2f2-445e-806e-05c9a6135437.txt +1 -0
- package/tests/config_test/media/1fc303e7-943c-42cd-87f0-d14b361e5564.txt +1 -0
- package/tests/config_test/media/1fd79260-4246-4230-b4ab-c42baad3de44.txt +1 -0
- package/tests/config_test/media/209085fb-8441-4039-bb01-32171248c7f7.txt +1 -0
- package/tests/config_test/media/20ab3e07-77d6-4fbc-9532-b47e16c38e68.txt +1 -0
- package/tests/config_test/media/20d43c00-35b4-43da-b79f-cb59888ac41b.txt +1 -0
- package/tests/config_test/media/20f7f651-06de-4d5f-aa39-2c261c662cd3.txt +1 -0
- package/tests/config_test/media/214af93c-f973-4809-a440-87a5a3b28e83.txt +1 -0
- package/tests/config_test/media/22bffc7f-c942-4163-bbf6-141f585f3671.txt +1 -0
- package/tests/config_test/media/23d09f4f-db2a-44cb-9d1b-552eb0568acf.txt +1 -0
- package/tests/config_test/media/24a256f7-fe83-4a6d-ace8-a2c2ded37341.txt +1 -0
- package/tests/config_test/media/25522aa0-9c30-413b-b0df-f9f2c2562769.txt +1 -0
- package/tests/config_test/media/25806b78-52cd-40f2-907a-d4fba3821435.txt +1 -0
- package/tests/config_test/media/259920a6-0c5a-4193-8940-91fc0183204c.txt +1 -0
- package/tests/config_test/media/28ca6b02-f58e-4204-a87a-28347d8f5884.txt +1 -0
- package/tests/config_test/media/2a3f8e6e-3bc4-44b3-ac43-17851b1f53e4.txt +1 -0
- package/tests/config_test/media/2afe6eb3-64ca-4aae-b002-676ab3862c96.txt +1 -0
- package/tests/config_test/media/2bd913c1-408a-4451-b465-e48452ca46cb.txt +1 -0
- package/tests/config_test/media/2bfe0f21-70b6-45a7-9bc0-f60dee9b0786.txt +1 -0
- package/tests/config_test/media/2c37bb2d-412e-44be-8f91-58bf1adae554.txt +1 -0
- package/tests/config_test/media/2c6ffa05-479f-4d8f-bc98-0c050567ef28.txt +1 -0
- package/tests/config_test/media/2ce666cb-e1e7-411f-9727-ce47be9365f5.txt +1 -0
- package/tests/config_test/media/2d737158-559b-4fca-b35c-3a832e21a0bf.txt +1 -0
- package/tests/config_test/media/2d7cae40-8fa9-4715-8834-b105a5815efc.txt +1 -0
- package/tests/config_test/media/2ea6b55b-eb9e-4b72-9510-4d5b00490076.txt +1 -0
- package/tests/config_test/media/2f0f8b73-7a21-48e5-b0d8-6e733de5eef8.txt +1 -0
- package/tests/config_test/media/2f37ed63-4a76-49e8-9df0-b586e2318b54.txt +1 -0
- package/tests/config_test/media/2f4e2797-63dd-43cb-8edf-b6e4a5f6d85b.txt +1 -0
- package/tests/config_test/media/2fc8b254-571c-49da-b8d8-af12bead2b6e.txt +1 -0
- package/tests/config_test/media/31887ce4-a69d-429e-bd32-e3fcf1b6ec3c.txt +1 -0
- package/tests/config_test/media/31ab5780-f38f-4614-b11e-1399a5d19e88.txt +1 -0
- package/tests/config_test/media/330b1369-abf8-4a0d-aac3-15185409347b.txt +1 -0
- package/tests/config_test/media/332306f0-16a4-46f1-b312-42d5b1739561.txt +1 -0
- package/tests/config_test/media/33729cd7-ef5a-461d-860c-188b12c3c0e1.txt +1 -0
- package/tests/config_test/media/34f797b8-98c7-47ff-ac4f-da792d3e59ec.txt +1 -0
- package/tests/config_test/media/35753dc2-4a87-4fdb-b547-8ba587ab7cca.txt +1 -0
- package/tests/config_test/media/35cf2e07-f087-410d-898b-326b16617631.txt +1 -0
- package/tests/config_test/media/3704c54c-08b7-429c-98fa-0656dca539ca.txt +1 -0
- package/tests/config_test/media/3823f728-c199-416b-aeb3-223bc0dc006a.txt +1 -0
- package/tests/config_test/media/38d31ef9-7e41-47f9-8e05-e826f9d1a378.txt +1 -0
- package/tests/config_test/media/39504f22-47a7-428a-8793-7cb9cc79b23d.txt +1 -0
- package/tests/config_test/media/39baaddd-7764-48b4-9dc3-e77f91b04ff0.txt +1 -0
- package/tests/config_test/media/39c91ceb-928d-4279-a8a7-00f363b18384.txt +1 -0
- package/tests/config_test/media/3a58c511-78de-425f-a857-63a43e3b4c51.txt +1 -0
- package/tests/config_test/media/3c3fd2ca-8a72-4d38-899b-776f4ff690fc.txt +1 -0
- package/tests/config_test/media/3c592436-14fa-49f5-be05-1d8aff250d0d.txt +1 -0
- package/tests/config_test/media/3db275e8-327d-45d4-a755-3df103967b04.txt +1 -0
- package/tests/config_test/media/3de350d2-a26d-40ef-ad11-fa1454a0f50a.txt +1 -0
- package/tests/config_test/media/3e4f08ac-8b0a-4ec6-b3be-ff6ce140af6a.txt +1 -0
- package/tests/config_test/media/3fa40e56-cb30-4722-ba36-583e7c064d16.txt +1 -0
- package/tests/config_test/media/3fe9495c-6fa5-49ca-a16f-e3cf1808d619.txt +1 -0
- package/tests/config_test/media/3fed5003-1a13-433d-a82f-325dbd57ff55.txt +1 -0
- package/tests/config_test/media/40dfa3df-237e-4e0d-99ff-c90000c5f7ed.txt +1 -0
- package/tests/config_test/media/40ea2d40-3f28-46e5-a41d-5aae1721de21.txt +1 -0
- package/tests/config_test/media/410c564d-860e-4693-9112-efb2304bf940.txt +1 -0
- package/tests/config_test/media/424c9239-aa07-48f3-9a64-c99261387fec.txt +1 -0
- package/tests/config_test/media/4260eab4-3e7d-420a-bc8f-b9cc945f3c80.txt +1 -0
- package/tests/config_test/media/42886a01-8047-4a49-beab-97f5a3a7c128.txt +1 -0
- package/tests/config_test/media/44e2e069-a213-4632-b13b-153461000c5e.txt +1 -0
- package/tests/config_test/media/46520b9c-f878-41e9-9840-0d0babb9b63d.txt +1 -0
- package/tests/config_test/media/46f010a8-66b2-48d8-b4a6-62cc23e26008.txt +1 -0
- package/tests/config_test/media/48c9f649-f776-4cd9-8df5-56b5312f51c2.txt +1 -0
- package/tests/config_test/media/49f5836b-4fb0-4ee1-831b-91ddfcaac0bf.txt +1 -0
- package/tests/config_test/media/4a2d3bae-040e-44fe-bb36-301af65302fd.txt +1 -0
- package/tests/config_test/media/4ab15a14-36c7-4a4e-8179-be60c56368c5.txt +1 -0
- package/tests/config_test/media/4b98c009-458a-4e35-96e2-ccd465673234.txt +1 -0
- package/tests/config_test/media/4bf86749-685c-423c-9997-eb73cb0bc254.txt +1 -0
- package/tests/config_test/media/4db9d5ad-c703-4fb5-9b15-9c48ee3edca1.txt +1 -0
- package/tests/config_test/media/4dd147f7-59ef-4b8f-963b-1dbedb0d10a2.txt +1 -0
- package/tests/config_test/media/4e61da19-25e1-44a0-b901-2cefc3461619.txt +1 -0
- package/tests/config_test/media/4e66c64c-72e3-4458-8ac9-490774193a50.txt +1 -0
- package/tests/config_test/media/4e98ba50-1583-4d7b-9e0d-7c577af28182.txt +1 -0
- package/tests/config_test/media/4e9cb872-dd5f-404a-ae9f-97ec69606d36.txt +1 -0
- package/tests/config_test/media/4fbb89d3-e922-42f2-81ed-6c1370199c94.txt +1 -0
- package/tests/config_test/media/4fdf0b1d-1718-4f53-8a9c-6d44bdef0c60.txt +1 -0
- package/tests/config_test/media/503c6659-ff3f-4df4-ac88-628e809b2e72.txt +1 -0
- package/tests/config_test/media/51010c69-5b30-4ac7-8ed9-12f1866ef145.txt +1 -0
- package/tests/config_test/media/51b2d38d-230e-4eb0-9b1f-dab8fa8b415d.txt +1 -0
- package/tests/config_test/media/51cc7a7b-a764-4ebd-ac31-ba881fa1404e.txt +1 -0
- package/tests/config_test/media/52f0dbb6-2179-4472-871d-dd80c6341c58.txt +1 -0
- package/tests/config_test/media/54aff9eb-0202-447d-9c95-c74560cabcd7.txt +1 -0
- package/tests/config_test/media/55551c8d-4305-48ca-a752-ade3a9efb538.txt +1 -0
- package/tests/config_test/media/555b772b-6c78-4667-80d6-bbe2f290611c.txt +1 -0
- package/tests/config_test/media/555fbb0b-febc-4611-9efa-16ddbf8e988c.txt +1 -0
- package/tests/config_test/media/55a84883-9a15-4368-b8fe-05bd848de6ba.txt +1 -0
- package/tests/config_test/media/56523343-de4a-49de-94ae-8205cc92eeb6.txt +1 -0
- package/tests/config_test/media/567d431e-813f-47d7-a3d2-e2371c0f32e2.txt +1 -0
- package/tests/config_test/media/56fa54a9-10a4-42a3-9a29-ea132adf09bc.txt +1 -0
- package/tests/config_test/media/57734e9e-d5b8-4942-a76c-db1d0cb72aea.txt +1 -0
- package/tests/config_test/media/5777d7a2-cd26-494e-92ba-fa681c2445ef.txt +1 -0
- package/tests/config_test/media/582f6e3f-1b06-4f97-bb81-4355cc139e41.txt +1 -0
- package/tests/config_test/media/584ef61c-974e-4882-aaff-8089029b7a66.txt +1 -0
- package/tests/config_test/media/58987f15-0627-4c3c-a8ba-33e0315548f9.txt +1 -0
- package/tests/config_test/media/58eb23e6-6110-489f-81d3-37d48bcd3bf7.txt +1 -0
- package/tests/config_test/media/5c5e5543-491c-49d2-b762-162faa75019a.txt +1 -0
- package/tests/config_test/media/5e688b4a-afba-4d47-bdc8-dd108d673619.txt +1 -0
- package/tests/config_test/media/5f42b54e-6020-4552-8872-17dc7d57b110.txt +1 -0
- package/tests/config_test/media/5f5ae0f6-816d-4425-8403-5d07284db0aa.txt +1 -0
- package/tests/config_test/media/5ffa2969-2d65-430e-a621-420c07f18f41.txt +1 -0
- package/tests/config_test/media/62a62671-e4bc-4312-8dfd-a06168c22aee.txt +1 -0
- package/tests/config_test/media/63732c16-1f11-4635-b2bc-62a6459e651e.txt +1 -0
- package/tests/config_test/media/64b8c889-5423-4cbb-9816-a05e72771b52.txt +1 -0
- package/tests/config_test/media/653d8bcd-4e60-4fda-9676-2e0054d966c1.txt +1 -0
- package/tests/config_test/media/6602e1e0-07e9-4dd1-b3c8-276f24e2a41f.txt +1 -0
- package/tests/config_test/media/67868636-99cc-441b-991d-7fe781b67745.txt +1 -0
- package/tests/config_test/media/67b4eede-7118-4e25-8801-ca53d0fd9d7f.txt +1 -0
- package/tests/config_test/media/67b817df-8c2f-4fe5-ba38-6090b5658943.txt +1 -0
- package/tests/config_test/media/67f8c8a6-8aa3-4d0f-bcf6-bec8c5a6726a.txt +1 -0
- package/tests/config_test/media/6808c09c-a1a9-4eea-92d6-327957c599be.txt +1 -0
- package/tests/config_test/media/681f8ee3-0d7f-4d85-a593-0c1f5ceea9be.txt +1 -0
- package/tests/config_test/media/68ae942b-c728-4127-a057-dfd08edc1aee.txt +1 -0
- package/tests/config_test/media/6a405178-234d-4562-ab34-c554826476fc.txt +1 -0
- package/tests/config_test/media/6b801410-b1fb-43f6-935e-c7cb09fb0f5a.txt +1 -0
- package/tests/config_test/media/6bd41073-fa62-4c20-a896-8b1e5d2b8381.txt +1 -0
- package/tests/config_test/media/6ea9bf1d-780e-4fc2-987e-841038b791cd.txt +1 -0
- package/tests/config_test/media/6fa62bcc-859a-44eb-a85b-ed12b3aec3ae.txt +1 -0
- package/tests/config_test/media/70118801-66f3-4165-a0b2-8918e4d4bd15.txt +1 -0
- package/tests/config_test/media/70640e73-56dc-4880-af62-ad7530a1185d.txt +1 -0
- package/tests/config_test/media/7114e6d7-f285-48b3-80c9-ec3fb1c3233e.txt +1 -0
- package/tests/config_test/media/71997029-9398-4efb-9868-3025b6de861a.txt +1 -0
- package/tests/config_test/media/725cb5f7-8410-4b7a-8427-90b213cea9d6.txt +1 -0
- package/tests/config_test/media/727960af-4454-4aa2-b479-c88398ca2c01.txt +1 -0
- package/tests/config_test/media/763e2702-7677-48b0-89be-30f8caf56667.txt +1 -0
- package/tests/config_test/media/7682d7aa-6622-4ae1-bdfc-bb5134cf92d9.txt +1 -0
- package/tests/config_test/media/773d6a45-2316-41da-9973-1395727ffc1f.txt +1 -0
- package/tests/config_test/media/783cdda1-9913-4ab0-aba6-56a4c22e2b61.txt +1 -0
- package/tests/config_test/media/78becb97-76f6-4fd1-976d-ab3d5e4b21c2.txt +1 -0
- package/tests/config_test/media/78cb1409-965a-44ea-b42b-0363db4d2ebd.txt +1 -0
- package/tests/config_test/media/79f9864e-b5d5-4c8d-bb66-749f5b49877f.txt +1 -0
- package/tests/config_test/media/7b2928b9-4fd3-46c7-8b78-f8d1118c605b.txt +1 -0
- package/tests/config_test/media/7b5aead0-b20b-4719-88aa-3dd070d53e4d.txt +1 -0
- package/tests/config_test/media/7c1a82c9-391d-40fb-a6f3-d79468fcd45f.txt +1 -0
- package/tests/config_test/media/7f1aefd7-7c6b-4b29-9f71-a85d800d63eb.txt +1 -0
- package/tests/config_test/media/7fe1aa1b-3e92-4f1b-a77d-bf69601ba162.txt +1 -0
- package/tests/config_test/media/802ca8c0-8898-446d-aeca-59d0cce3eea5.txt +1 -0
- package/tests/config_test/media/8034e1cc-a82a-4e65-9019-ecf53a212c9e.txt +1 -0
- package/tests/config_test/media/80828d5a-916c-412b-aa23-eccdf3ce4078.txt +1 -0
- package/tests/config_test/media/81a6ec1c-49c5-490b-afe8-bd47a3c3b1e7.txt +1 -0
- package/tests/config_test/media/82827b46-f1f4-4b2a-bd5a-4a83e6b5cc12.txt +1 -0
- package/tests/config_test/media/82f7163d-c5a6-44fe-b06a-b1863c553af4.txt +1 -0
- package/tests/config_test/media/83141a3e-3f8b-456a-83f1-b9b4ada167f0.txt +1 -0
- package/tests/config_test/media/837397e7-63f9-4cba-8b10-51d565e00341.txt +1 -0
- package/tests/config_test/media/8440b86e-2036-46ef-affe-e052ae1e232f.txt +1 -0
- package/tests/config_test/media/8729c33a-8f9d-496c-8090-42947d3bd4c7.txt +1 -0
- package/tests/config_test/media/874e1047-3429-443a-868d-4ce453c3a525.txt +1 -0
- package/tests/config_test/media/8770cffa-58f5-4c15-869a-687c77529f81.txt +1 -0
- package/tests/config_test/media/87c977c0-4375-4527-abc1-6223c71e8756.txt +1 -0
- package/tests/config_test/media/889e72cc-7e19-40ef-9d5b-1e501f3b48c7.txt +1 -0
- package/tests/config_test/media/88c89c9b-755e-43f9-9ac6-c01df1e83dfb.txt +1 -0
- package/tests/config_test/media/894ee8b5-d527-40e2-a7e1-475d9f07c2aa.txt +1 -0
- package/tests/config_test/media/89ec8a46-a4bf-4462-8f6d-c132016af9e1.txt +1 -0
- package/tests/config_test/media/8b2bee47-1673-4cd9-a8d5-033ef092b93e.txt +1 -0
- package/tests/config_test/media/8c362262-34ff-4707-ab5f-c334034083ee.txt +1 -0
- package/tests/config_test/media/8c458967-085b-4750-91e6-3ea391147bc7.txt +1 -0
- package/tests/config_test/media/8c5b0560-fc62-47a5-b480-a93120ca7bc4.txt +1 -0
- package/tests/config_test/media/8ce076d6-e809-4355-97ab-96104b51b939.txt +1 -0
- package/tests/config_test/media/8d60f276-8a2d-48e2-934b-63ef82f03d0f.txt +1 -0
- package/tests/config_test/media/8d889db9-f6b8-4ccb-864c-d10d1a54f7e9.txt +1 -0
- package/tests/config_test/media/8df0284b-c43f-4c32-a4e1-7dbe2c8c80f0.txt +1 -0
- package/tests/config_test/media/8e583c0b-1e2e-4b51-b104-1382e81f69d9.txt +1 -0
- package/tests/config_test/media/8f57d7e8-0f26-4719-b4d1-37896da3f579.txt +1 -0
- package/tests/config_test/media/9070fc55-481f-44c9-96f2-62f7c0a08814.txt +1 -0
- package/tests/config_test/media/93743c64-b60e-4521-9774-4d3beffd4465.txt +1 -0
- package/tests/config_test/media/939c6b06-b95d-4de6-bdaa-6f33cbe1fc1e.txt +1 -0
- package/tests/config_test/media/94ac4fc1-ba54-43de-b283-a7fa05eb3921.txt +1 -0
- package/tests/config_test/media/95093a2d-81d2-46d7-a817-7ab507cc2454.txt +1 -0
- package/tests/config_test/media/9628850e-c8d3-44da-b3b4-b27e00ba0e05.txt +1 -0
- package/tests/config_test/media/965e4782-3120-41c1-a398-23b38a342d95.txt +1 -0
- package/tests/config_test/media/97216f64-db92-4fa8-a239-5a115e3293a0.txt +1 -0
- package/tests/config_test/media/97b54a41-ec05-498e-9c61-6ec20f34a331.txt +1 -0
- package/tests/config_test/media/97c15c9a-13b4-49f1-b9ea-708c92756b95.txt +1 -0
- package/tests/config_test/media/97e45e1c-d03b-4a17-bb6f-ea8601e7fdf4.txt +1 -0
- package/tests/config_test/media/98faca9f-2686-4338-a1c2-d1920cce2fc0.txt +1 -0
- package/tests/config_test/media/997016d6-6832-4c09-9f8d-949dba5f4f8e.txt +1 -0
- package/tests/config_test/media/99ce7c2e-d4a3-49d0-9251-9c62d28288f5.txt +1 -0
- package/tests/config_test/media/9a9940a6-78b9-4978-98a6-914a171406c3.txt +1 -0
- package/tests/config_test/media/9ade4d45-452f-4a3f-ba4f-d9a08da80dab.txt +1 -0
- package/tests/config_test/media/9aff7e30-1809-4021-8ab1-e9a04068ad15.txt +1 -0
- package/tests/config_test/media/9b6b83df-1ee4-48f2-a3b0-aee0723378fc.txt +1 -0
- package/tests/config_test/media/9bbf50e1-c19d-4cc4-a366-0dcc234f003f.txt +1 -0
- package/tests/config_test/media/9ce9bc18-89eb-4a6f-832d-a4380111ebfa.txt +1 -0
- package/tests/config_test/media/9d7e647b-f1a9-44a7-bb9d-5ad7ac545ed9.txt +1 -0
- package/tests/config_test/media/9e141207-cb69-47c7-a80a-9096886b0f4e.txt +1 -0
- package/tests/config_test/media/9e58e7cc-04bb-48d0-9af1-9fd7c80d46be.txt +1 -0
- package/tests/config_test/media/9f1f6f42-70f0-404e-89e4-31588f235108.txt +1 -0
- package/tests/config_test/media/9f3e0022-deb0-44a2-b47c-fd4880fb2fa6.txt +1 -0
- package/tests/config_test/media/a07a6a4e-25c7-4f91-acdc-411e676bae99.txt +1 -0
- package/tests/config_test/media/a08ef99a-7cff-4224-985f-aa7cf292c6c3.txt +1 -0
- package/tests/config_test/media/a0c4ef94-eb1d-4b7f-b636-62ad6914a69c.txt +1 -0
- package/tests/config_test/media/a170f562-2b00-4662-85d7-7c43f9f67e0c.txt +1 -0
- package/tests/config_test/media/a32bb27b-7772-4373-ada7-890d9315256f.txt +1 -0
- package/tests/config_test/media/a36c31b9-f5c1-43a9-b448-34a380990d3f.txt +1 -0
- package/tests/config_test/media/a3831984-3f77-4bac-af70-5a7de6ce5424.txt +1 -0
- package/tests/config_test/media/a4f1f023-6135-44da-b580-c1d024cd3f47.txt +1 -0
- package/tests/config_test/media/a6227af7-2710-47be-ab45-25f497cec39f.txt +1 -0
- package/tests/config_test/media/a64baf32-bd1e-4353-bdf8-74cc3672639f.txt +1 -0
- package/tests/config_test/media/a67f5ac1-9645-4f28-a221-c3466b6ba865.txt +1 -0
- package/tests/config_test/media/a7f8e5a7-0c0e-48fb-b323-743b121fc091.txt +1 -0
- package/tests/config_test/media/a969343e-857b-49b1-a311-0030e0cc57cd.txt +1 -0
- package/tests/config_test/media/a9bc7241-7413-4113-8baf-784af73b110d.txt +1 -0
- package/tests/config_test/media/aa5b6ba2-76cf-4ca2-90b8-8f83cb23687e.txt +1 -0
- package/tests/config_test/media/aa5f29d2-3c13-4a15-ac68-b28964f80a1d.txt +1 -0
- package/tests/config_test/media/aaa97926-1d6f-4f5a-9af8-e68584797d23.txt +1 -0
- package/tests/config_test/media/ac98c0da-b830-4ec8-9ab6-d8e72a6d0bf2.txt +1 -0
- package/tests/config_test/media/af2dda92-1ed0-4b00-a786-f0f7516d4b2b.txt +1 -0
- package/tests/config_test/media/b0327e27-0733-4f08-b728-8dca3eae7526.txt +1 -0
- package/tests/config_test/media/b23fc74b-403b-49d6-810b-5c3dc71f48de.txt +1 -0
- package/tests/config_test/media/b2aa3fbb-ef3f-423b-b7a9-1863aba35bdd.txt +1 -0
- package/tests/config_test/media/b38675e5-1ecf-4967-88ef-9f60cce1bb89.txt +1 -0
- package/tests/config_test/media/b45c1951-b045-4762-a9fa-8d346617c1b5.txt +1 -0
- package/tests/config_test/media/b5359b92-46ea-4ebc-b6bc-102ef03ac5f5.txt +1 -0
- package/tests/config_test/media/b5d5aa47-fb92-48a6-9bd5-e394dc7b5212.txt +1 -0
- package/tests/config_test/media/b6bba0b4-d9fe-431b-8836-ef41bcd890fe.txt +1 -0
- package/tests/config_test/media/b72f4de8-5071-4314-a8e9-0adc7ce98fb8.txt +1 -0
- package/tests/config_test/media/b792506c-a05f-4b33-8934-83a7f2b1ebdd.txt +1 -0
- package/tests/config_test/media/b7e0e1bd-5e0f-44cc-89b9-55e67c368dce.txt +1 -0
- package/tests/config_test/media/b7ec24ac-6967-441e-9cb9-533daa7b443e.txt +1 -0
- package/tests/config_test/media/b86f2242-9e7c-4434-ac3d-e8fe868ab758.txt +1 -0
- package/tests/config_test/media/b8aa1cbb-05fe-4564-bfad-96a5243eec54.txt +1 -0
- package/tests/config_test/media/b8c54323-7977-4626-9412-66116a40fe42.txt +1 -0
- package/tests/config_test/media/ba3387a6-c5cd-4677-bddd-a399c6f648a3.txt +1 -0
- package/tests/config_test/media/ba70f293-7a40-4a5d-9e60-9d9c3d1fd2c0.txt +1 -0
- package/tests/config_test/media/ba7cad62-385b-494c-9688-b008fbae10c9.txt +1 -0
- package/tests/config_test/media/bb07c0ca-4b9f-4888-9109-95087951d2a6.txt +1 -0
- package/tests/config_test/media/bcf860eb-13b6-44b7-9a58-f2b6422a4fb0.txt +1 -0
- package/tests/config_test/media/bd8a019f-c9fd-4289-bc38-cc222a247ba8.txt +1 -0
- package/tests/config_test/media/bda18b4f-b4f3-4095-8b9b-8d715945ded1.txt +1 -0
- package/tests/config_test/media/bf3e4228-17f4-40d6-9d23-7ba79a333be5.txt +1 -0
- package/tests/config_test/media/bfa2fe67-34fe-466c-b807-bea2ddfb0141.txt +1 -0
- package/tests/config_test/media/c15ecf6e-6167-42ad-ba24-161216dbabfb.txt +1 -0
- package/tests/config_test/media/c17436fb-113d-425e-b59b-cafe93e3418e.txt +1 -0
- package/tests/config_test/media/c22154ee-3f66-4996-8ed7-df6120806040.txt +1 -0
- package/tests/config_test/media/c2c47ffe-50a1-46f4-bace-d66008c3ce7b.txt +1 -0
- package/tests/config_test/media/c4e0c0bf-f9b0-4fec-8fbf-292d8d2fe254.txt +1 -0
- package/tests/config_test/media/c56803d2-29bc-4359-8cb4-ea9574a47b2d.txt +1 -0
- package/tests/config_test/media/c607d0ee-1641-47e1-83d5-66e9e4bed857.txt +1 -0
- package/tests/config_test/media/c62769c5-d469-4499-bf09-97f752a65397.txt +1 -0
- package/tests/config_test/media/c667bac7-c161-4f89-b311-9975dcac5865.txt +1 -0
- package/tests/config_test/media/c7485a24-95f6-45e7-90f2-6a4716e8971e.txt +1 -0
- package/tests/config_test/media/c80b124d-579a-4f7b-9743-5428be624edf.txt +1 -0
- package/tests/config_test/media/c8f6e757-0252-4ac6-a439-14a5cd406e16.txt +1 -0
- package/tests/config_test/media/c94c9c39-24e1-4ce3-94bd-e32db7052a9d.txt +1 -0
- package/tests/config_test/media/ca950ac2-312d-472f-ae0f-7604edd6eae8.txt +1 -0
- package/tests/config_test/media/cc1ffb29-8d6f-47cd-9efd-f38832045570.txt +1 -0
- package/tests/config_test/media/cf42859e-23b6-4f7b-9b00-4928b0fc33fd.txt +1 -0
- package/tests/config_test/media/d000b20e-fd2c-4d07-bb8c-fc48541fe420.txt +1 -0
- package/tests/config_test/media/d191b4ba-365d-4346-96c6-7ab4f27a163d.txt +1 -0
- package/tests/config_test/media/d2739585-5101-44b5-8dd1-bbb09a104978.txt +1 -0
- package/tests/config_test/media/d31d2bf6-bdb1-4de2-9942-3ab83e857a52.txt +1 -0
- package/tests/config_test/media/d4027635-8e25-4cf5-a3dc-73a826c5045c.txt +1 -0
- package/tests/config_test/media/d476077e-d4e9-42e8-a7db-ded7f075d88d.txt +1 -0
- package/tests/config_test/media/d4fe0fae-942f-4966-ab76-64ba34352269.txt +1 -0
- package/tests/config_test/media/d551ace3-b4bb-4306-ad17-4873cdbfa5f5.txt +1 -0
- package/tests/config_test/media/d5aabdf7-472d-4268-b542-ddce2b25c70e.txt +1 -0
- package/tests/config_test/media/d6279202-c868-4058-947d-d9e44acd26cc.txt +1 -0
- package/tests/config_test/media/d62ecbb0-df04-449c-91fa-5d60f96c717f.txt +1 -0
- package/tests/config_test/media/d6309af6-add5-4d3d-9596-92a3c1b785b8.txt +1 -0
- package/tests/config_test/media/d6f419fc-2441-4170-8967-1d3f2a232869.txt +1 -0
- package/tests/config_test/media/d78e034e-51e4-47e7-802b-2fb9ca7aeeb0.txt +1 -0
- package/tests/config_test/media/d7a5dea2-b545-4b1f-9f25-0ca31bfa9ba9.txt +1 -0
- package/tests/config_test/media/d7eff0e2-7e17-4364-995a-13608df42af3.txt +1 -0
- package/tests/config_test/media/d89b187c-f4e0-45c2-8622-8f6c05b3f8f8.txt +1 -0
- package/tests/config_test/media/d8e4f769-79a3-4577-ae6f-e21b6c373661.txt +1 -0
- package/tests/config_test/media/d9266efc-e275-4daf-bb58-a7d224649ac5.txt +1 -0
- package/tests/config_test/media/db04add1-1f89-4657-a897-4779001bd6cc.txt +1 -0
- package/tests/config_test/media/dc709e83-06c7-4371-95f4-c4982d094c7b.txt +1 -0
- package/tests/config_test/media/de3812df-b579-4203-98b1-7ee8821680a4.txt +1 -0
- package/tests/config_test/media/df1a21db-e3e1-4670-b909-da77c591486e.txt +1 -0
- package/tests/config_test/media/e033a02b-3a38-4b6f-8873-b121cc0cbcad.txt +1 -0
- package/tests/config_test/media/e13e2632-4aaf-4a79-b6b4-ef1f81028346.txt +1 -0
- package/tests/config_test/media/e19633b3-1ab1-4f18-86cd-e421633e96af.txt +1 -0
- package/tests/config_test/media/e1dc9b89-9563-4937-b529-43cd55f82a98.txt +1 -0
- package/tests/config_test/media/e37f9c75-0571-4336-b7a6-d431e295ba92.txt +1 -0
- package/tests/config_test/media/e3fb83b1-53ed-470d-b9f4-015f98c6a128.txt +1 -0
- package/tests/config_test/media/e6c964da-ab48-4779-9706-0ae9ab5f22bb.txt +1 -0
- package/tests/config_test/media/e732131f-d7e2-4969-9f0f-10672281405b.txt +1 -0
- package/tests/config_test/media/e73f5320-f030-43ae-9efe-002aeb6e0522.txt +1 -0
- package/tests/config_test/media/e98267b9-553f-4cd2-9277-2bee037b7003.txt +1 -0
- package/tests/config_test/media/ea3c4ac0-f63d-4a91-b015-345851856564.txt +1 -0
- package/tests/config_test/media/eacee16f-a2db-4d60-a36b-9b60ea2be330.txt +1 -0
- package/tests/config_test/media/eba1b05a-52aa-4f00-92f6-3d556ca2f366.txt +1 -0
- package/tests/config_test/media/ebf6e54b-0d1e-4d87-b206-34fa81c66dbb.txt +1 -0
- package/tests/config_test/media/ecbf0894-6d76-4141-875d-7691de63a8f7.txt +1 -0
- package/tests/config_test/media/ece7a87a-3490-4ac6-adaf-289b1e427325.txt +1 -0
- package/tests/config_test/media/ed59c963-3449-4431-8440-2cba7defdcae.txt +1 -0
- package/tests/config_test/media/eda09368-348b-4531-a062-a8aafbf9cb8a.txt +1 -0
- package/tests/config_test/media/edd1c2b2-179f-4d44-9ac0-72b4fe16c6f2.txt +1 -0
- package/tests/config_test/media/ee4e9f39-779e-4084-b696-f39abe74f545.txt +1 -0
- package/tests/config_test/media/ef08a195-fcc6-452f-b81e-9d4e97231327.txt +1 -0
- package/tests/config_test/media/ef518fee-57a4-47d3-bbb5-aef9b166ca49.txt +1 -0
- package/tests/config_test/media/efd77ad3-0e00-448f-a01d-4f363ad5c0b1.txt +1 -0
- package/tests/config_test/media/f0c18f54-1095-4787-891b-63c82ba6c153.txt +1 -0
- package/tests/config_test/media/f18dca67-521a-4e7f-8064-e6daa08ea3bc.txt +1 -0
- package/tests/config_test/media/f19a32ab-f345-4bcb-be01-58e62ade0285.txt +1 -0
- package/tests/config_test/media/f29ef9e1-4f84-4bb7-93ce-3693d7cd01f7.txt +1 -0
- package/tests/config_test/media/f2cd3857-386e-4d43-b5ee-cb54d1e7fa3c.txt +1 -0
- package/tests/config_test/media/f3c8b431-4b3a-43b9-a277-233daea240bb.txt +1 -0
- package/tests/config_test/media/f7344305-dde1-4b33-989e-b64b18447e2a.txt +1 -0
- package/tests/config_test/media/f829cdfe-a118-4751-a49f-565a617c2b99.txt +1 -0
- package/tests/config_test/media/f89206aa-0728-4215-a1df-c1f4315079b5.txt +1 -0
- package/tests/config_test/media/f89bb977-c022-471d-9972-d9417484f025.txt +1 -0
- package/tests/config_test/media/f960f026-724a-4630-b3ea-48d7ad60b022.txt +1 -0
- package/tests/config_test/media/fa343cd4-aca6-482b-9395-f221148fd0d8.txt +1 -0
- package/tests/config_test/media/fa802dcc-614e-4027-95fe-ce4f0da61bc9.txt +1 -0
- package/tests/config_test/media/ff1a47f0-9c4b-4c88-b0dc-b28d20a83509.txt +1 -0
- package/tests/config_test/media/ff8aa3b0-5c4d-4d39-be53-4e28e9ee02e7.txt +1 -0
- package/tests/config_test/media/ffb998c5-c98b-4442-b8ef-187bdc7e4c73.txt +1 -0
- package/tests/config_test/media/ffc43791-7d7b-4e13-a2ea-3bb952457e7f.txt +1 -0
- package/tests/config_test/package-lock.json +727 -688
- package/tests/config_test/package.json +2 -2
- package/tests/config_test/tsconfig.json +1 -1
- package/tests/isomorphic_queries.js +38 -0
- package/tests/isomorphic_queries.ts +28 -1
- package/tests/server/DBoGenerated.d.ts +135 -1
- package/tests/server/index.js +51 -27
- package/tests/server/index.ts +49 -26
- package/tests/server/init.sql +22 -7
- package/tests/server/media/35d7e3d7-64d3-4d4b-b564-5e810ca3671f.txt +1 -0
- package/tests/server/media/70ca7114-d6bc-4551-8170-cd7dcdff11dd.txt +1 -0
- package/tests/server/media/9e19f591-edc8-4ad7-ac4f-96c3078cb8ed.txt +1 -0
- package/tests/server/package-lock.json +166 -535
- package/tests/server/package.json +2 -2
- 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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"}
|