prostgles-server 1.5.119 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DboBuilder.d.ts +53 -28
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +432 -113
- 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 +163 -78
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +241 -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 +581 -175
- package/lib/FileManager.ts +546 -0
- package/lib/Prostgles.ts +424 -252
- 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 +83 -62
- package/tests/client/package.json +3 -3
- 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 +43 -1
- package/tests/isomorphic_queries.ts +33 -2
- package/tests/server/DBoGenerated.d.ts +192 -0
- package/tests/server/index.js +64 -26
- package/tests/server/index.ts +64 -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
package/dist/Prostgles.js
CHANGED
|
@@ -16,8 +16,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.isSuperUser = exports.PublishParser = exports.flat = exports.Prostgles = exports.JOIN_TYPES = void 0;
|
|
17
17
|
const promise = require("bluebird");
|
|
18
18
|
const pgPromise = require("pg-promise");
|
|
19
|
+
const FileManager_1 = require("./FileManager");
|
|
19
20
|
const pkgj = require('../package.json');
|
|
20
21
|
const version = pkgj.version;
|
|
22
|
+
console.log("Add a basic auth mode where user and sessions table are created");
|
|
21
23
|
const utils_1 = require("./utils");
|
|
22
24
|
const DboBuilder_1 = require("./DboBuilder");
|
|
23
25
|
const PubSubManager_1 = require("./PubSubManager");
|
|
@@ -54,7 +56,6 @@ function getDbConnection(dbConnection, options, debugQueries = false, onNotice =
|
|
|
54
56
|
pgp
|
|
55
57
|
};
|
|
56
58
|
}
|
|
57
|
-
const QueryFile = require('pg-promise').QueryFile;
|
|
58
59
|
exports.JOIN_TYPES = ["one-many", "many-one", "one-one", "many-many"];
|
|
59
60
|
const DEFAULT_KEYWORDS = {
|
|
60
61
|
$filter: "$filter",
|
|
@@ -65,32 +66,64 @@ const DEFAULT_KEYWORDS = {
|
|
|
65
66
|
const fs = require('fs');
|
|
66
67
|
class Prostgles {
|
|
67
68
|
constructor(params) {
|
|
68
|
-
|
|
69
|
-
this.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
var _a, _b, _c;
|
|
70
|
+
this.opts = {
|
|
71
|
+
DEBUG_MODE: false,
|
|
72
|
+
dbConnection: {
|
|
73
|
+
host: "localhost",
|
|
74
|
+
port: 5432,
|
|
75
|
+
application_name: "prostgles_app"
|
|
76
|
+
},
|
|
77
|
+
onReady: () => { },
|
|
78
|
+
schema: "public",
|
|
79
|
+
watchSchema: false,
|
|
73
80
|
};
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
81
|
+
// publishMethods?: ProstglesInitOptions<DBO>["publishMethods"];
|
|
82
|
+
// io: any;
|
|
83
|
+
// publish?: ProstglesInitOptions<DBO>["publish"];
|
|
84
|
+
// joins?: Joins;
|
|
85
|
+
// schema: string = "public";
|
|
86
|
+
// transactions?: string | boolean;
|
|
87
|
+
// publishRawSQL?: ProstglesInitOptions<DBO>["publishRawSQL"];
|
|
88
|
+
// wsChannelNamePrefix: string = "_psqlWS_";
|
|
89
|
+
// onSocketConnect?(socket: Socket | any, dbo: DBO, db?: DB);
|
|
90
|
+
// onSocketDisconnect?(socket: Socket | any, dbo: DBO, db?: DB);
|
|
91
|
+
// sqlFilePath?: string;
|
|
92
|
+
// tsGeneratedTypesDir?: string;
|
|
93
|
+
// auth?: ProstglesInitOptions["auth"];
|
|
94
|
+
// DEBUG_MODE?: boolean = false;
|
|
95
|
+
// watchSchema?: ProstglesInitOptions["watchSchema"];// boolean | "hotReloadMode" | ((event: { command: string; query: string }) => void) = false;
|
|
96
|
+
// onReady: (dbo: any, db: DB) => void;
|
|
97
|
+
// i18n?: ProstglesInitOptions["i18n"];
|
|
98
|
+
// fileTable?: FileTableConfig;
|
|
99
|
+
// /**
|
|
100
|
+
// * Postgres on notice callback
|
|
101
|
+
// */
|
|
102
|
+
// onNotice?: ProstglesInitOptions["onNotice"];
|
|
79
103
|
this.keywords = DEFAULT_KEYWORDS;
|
|
104
|
+
this.loaded = false;
|
|
80
105
|
this.destroyed = false;
|
|
106
|
+
this.refreshDBO = () => __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
this.dboBuilder = (yield DboBuilder_1.DboBuilder.create(this));
|
|
108
|
+
this.dbo = this.dboBuilder.dbo;
|
|
109
|
+
return this.dbo;
|
|
110
|
+
});
|
|
81
111
|
this.connectedSockets = [];
|
|
82
112
|
this.pushSocketSchema = (socket) => __awaiter(this, void 0, void 0, function* () {
|
|
83
113
|
let auth = {};
|
|
84
|
-
if (this.auth) {
|
|
85
|
-
const { register, login, logout,
|
|
86
|
-
|
|
114
|
+
if (this.opts.auth) {
|
|
115
|
+
const { register, login, logout, sidKeyName } = this.opts.auth;
|
|
116
|
+
/**
|
|
117
|
+
* Why ??? Collision with socket.io ???
|
|
118
|
+
*/
|
|
119
|
+
if (sidKeyName === "sid")
|
|
87
120
|
throw "sidQueryParamName cannot be 'sid' please provide another name.";
|
|
88
121
|
let handlers = [
|
|
89
122
|
{ func: register, ch: prostgles_types_1.CHANNELS.REGISTER, name: "register" },
|
|
90
123
|
{ func: login, ch: prostgles_types_1.CHANNELS.LOGIN, name: "login" },
|
|
91
124
|
{ func: logout, ch: prostgles_types_1.CHANNELS.LOGOUT, name: "logout" }
|
|
92
125
|
].filter(h => h.func);
|
|
93
|
-
const usrData = yield this.
|
|
126
|
+
const usrData = yield this.getClientInfo({ socket });
|
|
94
127
|
if (usrData) {
|
|
95
128
|
auth.user = usrData.clientUser;
|
|
96
129
|
handlers = handlers.filter(h => h.name === "logout");
|
|
@@ -102,7 +135,7 @@ class Prostgles {
|
|
|
102
135
|
try {
|
|
103
136
|
if (!socket)
|
|
104
137
|
throw "socket missing??!!";
|
|
105
|
-
const res = yield func(params, dbo, db
|
|
138
|
+
const res = yield func(params, dbo, db);
|
|
106
139
|
if (name === "login" && res && res.sid) {
|
|
107
140
|
/* TODO: Re-send schema to client */
|
|
108
141
|
}
|
|
@@ -115,16 +148,15 @@ class Prostgles {
|
|
|
115
148
|
}));
|
|
116
149
|
});
|
|
117
150
|
}
|
|
118
|
-
let needType = this.publishRawSQL && typeof this.publishRawSQL === "function";
|
|
119
|
-
let DATA_TYPES = !needType
|
|
120
|
-
let USER_TABLES = !needType
|
|
151
|
+
// let needType = this.publishRawSQL && typeof this.publishRawSQL === "function";
|
|
152
|
+
// let DATA_TYPES = !needType? [] : await this.db.any("SELECT oid, typname FROM pg_type");
|
|
153
|
+
// let USER_TABLES = !needType? [] : await this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables");
|
|
121
154
|
let schema = {};
|
|
122
155
|
let publishValidationError;
|
|
123
156
|
let rawSQL = false;
|
|
124
157
|
const { dbo, db, pgp, publishParser } = this;
|
|
125
158
|
try {
|
|
126
159
|
schema = yield publishParser.getSchemaFromPublish(socket);
|
|
127
|
-
// console.log("getSchemaFromPublish", Object.keys(schema), this.dboBuilder.tablesOrViews.map(t => `${t.name} (${t.columns.map(c => c.name).join(", ")})`))
|
|
128
160
|
}
|
|
129
161
|
catch (e) {
|
|
130
162
|
publishValidationError = "Server Error: PUBLISH VALIDATION ERROR";
|
|
@@ -136,60 +168,71 @@ class Prostgles {
|
|
|
136
168
|
*/
|
|
137
169
|
let fullSchema = [];
|
|
138
170
|
let allTablesViews = this.dboBuilder.tablesOrViews;
|
|
139
|
-
if (this.publishRawSQL && typeof this.publishRawSQL === "function") {
|
|
171
|
+
if (this.opts.publishRawSQL && typeof this.opts.publishRawSQL === "function") {
|
|
140
172
|
const canRunSQL = () => __awaiter(this, void 0, void 0, function* () {
|
|
141
|
-
|
|
173
|
+
const publishParams = yield this.publishParser.getPublishParams({ socket });
|
|
174
|
+
let res = yield this.opts.publishRawSQL(publishParams);
|
|
142
175
|
return Boolean(res && typeof res === "boolean" || res === "*");
|
|
143
176
|
});
|
|
144
|
-
// console.log("canRunSQL", canRunSQL, socket.handshake.headers["x-real-ip"]);//, allTablesViews);
|
|
145
177
|
if (yield canRunSQL()) {
|
|
146
178
|
socket.removeAllListeners(prostgles_types_1.CHANNELS.SQL);
|
|
147
179
|
socket.on(prostgles_types_1.CHANNELS.SQL, ({ query, params, options }, cb = (...callback) => { }) => __awaiter(this, void 0, void 0, function* () {
|
|
148
|
-
if (!
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
180
|
+
if (!this.dbo.sql)
|
|
181
|
+
throw "Internal error: sql handler missing";
|
|
182
|
+
this.dbo.sql(query, params, options, { socket }).then(res => {
|
|
183
|
+
cb(null, res);
|
|
184
|
+
}).catch(err => {
|
|
185
|
+
makeSocketError(cb, err);
|
|
186
|
+
});
|
|
187
|
+
// if(!(await canRunSQL())) {
|
|
188
|
+
// cb("Dissallowed", null);
|
|
189
|
+
// return;
|
|
190
|
+
// }
|
|
191
|
+
// const { returnType }: SQLOptions = options || ({} as any);
|
|
192
|
+
// if(returnType === "noticeSubscription"){
|
|
193
|
+
// const sub = await this.dbEventsManager.addNotice(socket);
|
|
194
|
+
// cb(null, sub);
|
|
195
|
+
// } else if(returnType === "statement"){
|
|
196
|
+
// try {
|
|
197
|
+
// cb(null, pgp.as.format(query, params));
|
|
198
|
+
// } catch (err){
|
|
199
|
+
// cb(err.toString());
|
|
200
|
+
// }
|
|
201
|
+
// } else if(db) {
|
|
202
|
+
// db.result(query, params)
|
|
203
|
+
// .then(async (qres: any) => {
|
|
204
|
+
// const { duration, fields, rows, command } = qres;
|
|
205
|
+
// if(command === "LISTEN"){
|
|
206
|
+
// const sub = await this.dbEventsManager.addNotify(query, socket);
|
|
207
|
+
// cb(null, sub);
|
|
208
|
+
// } else if(returnType === "rows") {
|
|
209
|
+
// cb(null, rows);
|
|
210
|
+
// } else if(returnType === "row") {
|
|
211
|
+
// cb(null, rows[0]);
|
|
212
|
+
// } else if(returnType === "value") {
|
|
213
|
+
// cb(null, Object.values(rows[0])[0]);
|
|
214
|
+
// } else if(returnType === "values") {
|
|
215
|
+
// cb(null, rows.map(r => Object.values(r[0])));
|
|
216
|
+
// } else {
|
|
217
|
+
// if(fields && DATA_TYPES.length){
|
|
218
|
+
// qres.fields = fields.map(f => {
|
|
219
|
+
// const dataType = DATA_TYPES.find(dt => +dt.oid === +f.dataTypeID),
|
|
220
|
+
// tableName = USER_TABLES.find(t => +t.relid === +f.tableID);
|
|
221
|
+
// return {
|
|
222
|
+
// ...f,
|
|
223
|
+
// ...(dataType? { dataType: dataType.typname } : {}),
|
|
224
|
+
// ...(tableName? { tableName: tableName.relname } : {}),
|
|
225
|
+
// }
|
|
226
|
+
// });
|
|
227
|
+
// }
|
|
228
|
+
// cb(null, qres)
|
|
229
|
+
// }
|
|
230
|
+
// })
|
|
231
|
+
// .catch(err => {
|
|
232
|
+
// makeSocketError(cb, err);
|
|
233
|
+
// // Promise.reject(err.toString());
|
|
234
|
+
// });
|
|
235
|
+
// } else console.error("db missing");
|
|
193
236
|
}));
|
|
194
237
|
if (db) {
|
|
195
238
|
// let allTablesViews = await db.any(STEP2_GET_ALL_TABLES_AND_COLUMNS);
|
|
@@ -202,7 +245,7 @@ class Prostgles {
|
|
|
202
245
|
}
|
|
203
246
|
// let joinTables = [];
|
|
204
247
|
let joinTables2 = [];
|
|
205
|
-
if (this.joins) {
|
|
248
|
+
if (this.opts.joins) {
|
|
206
249
|
// joinTables = Array.from(new Set(flat(this.dboBuilder.getJoins().map(j => j.tables)).filter(t => schema[t])));
|
|
207
250
|
let _joinTables2 = this.dboBuilder.getJoinPaths()
|
|
208
251
|
.filter(jp => ![jp.t1, jp.t2].find(t => !schema[t] || !schema[t].findOne)).map(jp => [jp.t1, jp.t2].sort());
|
|
@@ -225,35 +268,46 @@ class Prostgles {
|
|
|
225
268
|
"transactions", "joins", "tsGeneratedTypesDir",
|
|
226
269
|
"onReady", "dbConnection", "dbOptions", "publishMethods", "io",
|
|
227
270
|
"publish", "schema", "publishRawSQL", "wsChannelNamePrefix", "onSocketConnect",
|
|
228
|
-
"onSocketDisconnect", "sqlFilePath", "auth", "DEBUG_MODE", "watchSchema"
|
|
271
|
+
"onSocketDisconnect", "sqlFilePath", "auth", "DEBUG_MODE", "watchSchema",
|
|
272
|
+
"i18n", "fileTable"
|
|
229
273
|
];
|
|
230
274
|
const unknownParams = Object.keys(params).filter((key) => !config.includes(key));
|
|
231
275
|
if (unknownParams.length) {
|
|
232
276
|
console.error(`Unrecognised ProstglesInitOptions params: ${unknownParams.join()}`);
|
|
233
277
|
}
|
|
234
|
-
Object.assign(this, params);
|
|
278
|
+
Object.assign(this.opts, params);
|
|
279
|
+
/* set defaults */
|
|
280
|
+
if ((_a = this.opts) === null || _a === void 0 ? void 0 : _a.fileTable) {
|
|
281
|
+
this.opts.fileTable.tableName = ((_c = (_b = this.opts) === null || _b === void 0 ? void 0 : _b.fileTable) === null || _c === void 0 ? void 0 : _c.tableName) || "media";
|
|
282
|
+
}
|
|
283
|
+
this.opts.schema = this.opts.schema || "public";
|
|
235
284
|
this.keywords = Object.assign(Object.assign({}, DEFAULT_KEYWORDS), params.keywords);
|
|
236
285
|
}
|
|
286
|
+
isMedia(tableName) {
|
|
287
|
+
var _a, _b;
|
|
288
|
+
return ((_b = (_a = this.opts) === null || _a === void 0 ? void 0 : _a.fileTable) === null || _b === void 0 ? void 0 : _b.tableName) === tableName;
|
|
289
|
+
}
|
|
237
290
|
onSchemaChange(event) {
|
|
238
291
|
return __awaiter(this, void 0, void 0, function* () {
|
|
239
|
-
|
|
292
|
+
const { watchSchema, onReady, tsGeneratedTypesDir } = this.opts;
|
|
293
|
+
if (watchSchema && this.loaded) {
|
|
240
294
|
console.log("Schema changed");
|
|
241
|
-
if (typeof
|
|
295
|
+
if (typeof watchSchema === "function") {
|
|
242
296
|
/* Only call the provided func */
|
|
243
|
-
|
|
297
|
+
watchSchema(event);
|
|
244
298
|
}
|
|
245
|
-
else if (
|
|
246
|
-
if (
|
|
299
|
+
else if (watchSchema === "hotReloadMode") {
|
|
300
|
+
if (tsGeneratedTypesDir) {
|
|
247
301
|
/* Hot reload integration. Will only touch tsGeneratedTypesDir */
|
|
248
302
|
console.log("watchSchema: Re-writing TS schema");
|
|
249
303
|
yield this.refreshDBO();
|
|
250
304
|
this.writeDBSchema(true);
|
|
251
305
|
}
|
|
252
306
|
}
|
|
253
|
-
else if (
|
|
307
|
+
else if (watchSchema === true) {
|
|
254
308
|
/* Full re-init. Sockets must reconnect */
|
|
255
309
|
console.log("watchSchema: Full re-initialisation");
|
|
256
|
-
this.init(
|
|
310
|
+
this.init(onReady);
|
|
257
311
|
}
|
|
258
312
|
}
|
|
259
313
|
});
|
|
@@ -264,7 +318,7 @@ class Prostgles {
|
|
|
264
318
|
}
|
|
265
319
|
getTSFileName() {
|
|
266
320
|
const fileName = "DBoGenerated.d.ts"; //`dbo_${this.schema}_types.ts`;
|
|
267
|
-
const fullPath = (this.tsGeneratedTypesDir || "") + fileName;
|
|
321
|
+
const fullPath = (this.opts.tsGeneratedTypesDir || "") + fileName;
|
|
268
322
|
return { fileName, fullPath };
|
|
269
323
|
}
|
|
270
324
|
getFileText(fullPath, format = "utf8") {
|
|
@@ -278,7 +332,7 @@ class Prostgles {
|
|
|
278
332
|
});
|
|
279
333
|
}
|
|
280
334
|
writeDBSchema(force = false) {
|
|
281
|
-
if (this.tsGeneratedTypesDir) {
|
|
335
|
+
if (this.opts.tsGeneratedTypesDir) {
|
|
282
336
|
const { fullPath, fileName } = this.getTSFileName();
|
|
283
337
|
const header = `/* This file was generated by Prostgles \n` +
|
|
284
338
|
// `* ${(new Date).toUTCString()} \n`
|
|
@@ -295,23 +349,17 @@ class Prostgles {
|
|
|
295
349
|
console.error("Schema changed. tsGeneratedTypesDir needs to be set to reload server");
|
|
296
350
|
}
|
|
297
351
|
}
|
|
298
|
-
refreshDBO() {
|
|
299
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
300
|
-
this.dboBuilder = yield DboBuilder_1.DboBuilder.create(this);
|
|
301
|
-
this.dbo = this.dboBuilder.dbo;
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
352
|
init(onReady) {
|
|
305
353
|
return __awaiter(this, void 0, void 0, function* () {
|
|
306
354
|
this.loaded = false;
|
|
307
|
-
if (this.watchSchema === "hotReloadMode" && !this.tsGeneratedTypesDir) {
|
|
355
|
+
if (this.opts.watchSchema === "hotReloadMode" && !this.opts.tsGeneratedTypesDir) {
|
|
308
356
|
throw "tsGeneratedTypesDir option is needed for watchSchema: hotReloadMode to work ";
|
|
309
357
|
}
|
|
310
358
|
/* 1. Connect to db */
|
|
311
359
|
if (!this.db) {
|
|
312
|
-
const { db, pgp } = getDbConnection(this.dbConnection, this.dbOptions, this.DEBUG_MODE, notice => {
|
|
313
|
-
if (this.onNotice)
|
|
314
|
-
this.onNotice(notice);
|
|
360
|
+
const { db, pgp } = getDbConnection(this.opts.dbConnection, this.opts.dbOptions, this.opts.DEBUG_MODE, notice => {
|
|
361
|
+
if (this.opts.onNotice)
|
|
362
|
+
this.opts.onNotice(notice);
|
|
315
363
|
if (this.dbEventsManager) {
|
|
316
364
|
this.dbEventsManager.onNotice(notice);
|
|
317
365
|
}
|
|
@@ -322,34 +370,47 @@ class Prostgles {
|
|
|
322
370
|
this.checkDb();
|
|
323
371
|
const { db, pgp } = this;
|
|
324
372
|
/* 2. Execute any SQL file if provided */
|
|
325
|
-
if (this.sqlFilePath) {
|
|
326
|
-
yield this.runSQLFile(this.sqlFilePath);
|
|
373
|
+
if (this.opts.sqlFilePath) {
|
|
374
|
+
yield this.runSQLFile(this.opts.sqlFilePath);
|
|
327
375
|
}
|
|
328
376
|
try {
|
|
329
377
|
/* 3. Make DBO object from all tables and views */
|
|
330
378
|
yield this.refreshDBO();
|
|
331
|
-
|
|
332
|
-
if (this.
|
|
379
|
+
/* Create media table if required */
|
|
380
|
+
if (this.opts.fileTable) {
|
|
381
|
+
const { awsS3Config, localConfig, imageOptions } = this.opts.fileTable;
|
|
382
|
+
if (!awsS3Config && !localConfig)
|
|
383
|
+
throw "fileTable missing param: Must provide awsS3Config OR localConfig";
|
|
384
|
+
yield this.refreshDBO();
|
|
385
|
+
this.fileManager = new FileManager_1.default(awsS3Config || localConfig, imageOptions);
|
|
386
|
+
yield this.fileManager.init(this);
|
|
387
|
+
}
|
|
388
|
+
yield this.refreshDBO();
|
|
389
|
+
if (this.opts.publish) {
|
|
390
|
+
if (!this.opts.io)
|
|
391
|
+
console.warn("IO missing. Publish has no effect without io");
|
|
333
392
|
/* 3.9 Check auth config */
|
|
334
|
-
if (this.auth) {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
393
|
+
if (this.opts.auth) {
|
|
394
|
+
this.opts.auth.sidKeyName = this.opts.auth.sidKeyName || "session_id";
|
|
395
|
+
const { sidKeyName, login, getUser, getClientUser } = this.opts.auth;
|
|
396
|
+
if (typeof sidKeyName !== "string" && !login) {
|
|
397
|
+
throw "Invalid auth: Provide { sidKeyName: string } ";
|
|
338
398
|
}
|
|
339
399
|
if (!getUser || !getClientUser)
|
|
340
400
|
throw "getUser OR getClientUser missing from auth config";
|
|
341
401
|
}
|
|
342
|
-
this.publishParser = new PublishParser(this.publish, this.publishMethods, this.publishRawSQL, this.dbo, this.db, this);
|
|
402
|
+
this.publishParser = new PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db, this);
|
|
343
403
|
this.dboBuilder.publishParser = this.publishParser;
|
|
344
404
|
/* 4. Set publish and auth listeners */ //makeDBO(db, allTablesViews, pubSubManager, false)
|
|
345
405
|
yield this.setSocketEvents();
|
|
346
406
|
}
|
|
347
|
-
else if (this.auth)
|
|
407
|
+
else if (this.opts.auth)
|
|
348
408
|
throw "Auth config does not work without publish";
|
|
349
409
|
// if(this.watchSchema){
|
|
350
410
|
// if(!(await isSuperUser(db))) throw "Cannot watchSchema without a super user schema. Set watchSchema=false or provide a super user";
|
|
351
411
|
// }
|
|
352
412
|
this.dbEventsManager = new DBEventsManager_1.DBEventsManager(db, pgp);
|
|
413
|
+
this.writeDBSchema();
|
|
353
414
|
/* 5. Finish init and provide DBO object */
|
|
354
415
|
try {
|
|
355
416
|
if (this.destroyed) {
|
|
@@ -365,16 +426,16 @@ class Prostgles {
|
|
|
365
426
|
db: this.dbo,
|
|
366
427
|
_db: db,
|
|
367
428
|
pgp,
|
|
368
|
-
io: this.io,
|
|
429
|
+
io: this.opts.io,
|
|
369
430
|
destroy: () => __awaiter(this, void 0, void 0, function* () {
|
|
370
431
|
console.log("destroying prgl instance");
|
|
371
432
|
this.destroyed = true;
|
|
372
|
-
if (this.io) {
|
|
373
|
-
this.io.on("connection", (socket) => {
|
|
433
|
+
if (this.opts.io) {
|
|
434
|
+
this.opts.io.on("connection", (socket) => {
|
|
374
435
|
console.log("Socket connected to destroyed instance");
|
|
375
436
|
});
|
|
376
|
-
if (typeof this.io.close === "function") {
|
|
377
|
-
this.io.close();
|
|
437
|
+
if (typeof this.opts.io.close === "function") {
|
|
438
|
+
this.opts.io.close();
|
|
378
439
|
console.log("this.io.close");
|
|
379
440
|
}
|
|
380
441
|
}
|
|
@@ -400,7 +461,7 @@ class Prostgles {
|
|
|
400
461
|
const fileContent = yield this.getFileText(filePath); //.then(console.log);
|
|
401
462
|
return this.db.multi(fileContent).then((data) => {
|
|
402
463
|
console.log("Prostgles: SQL file executed successfuly \n -> " + filePath);
|
|
403
|
-
return
|
|
464
|
+
return data;
|
|
404
465
|
}).catch((err) => {
|
|
405
466
|
const { position, length } = err, lines = fileContent.split("\n");
|
|
406
467
|
let errMsg = filePath + " error: ";
|
|
@@ -415,27 +476,32 @@ class Prostgles {
|
|
|
415
476
|
});
|
|
416
477
|
});
|
|
417
478
|
}
|
|
418
|
-
|
|
419
|
-
|
|
479
|
+
/**
|
|
480
|
+
* Will return first sid value found in : http cookie or query params
|
|
481
|
+
* Based on sid names in auth
|
|
482
|
+
* @param localParams
|
|
483
|
+
* @returns string
|
|
484
|
+
*/
|
|
485
|
+
getSID(localParams) {
|
|
486
|
+
var _a, _b, _c, _d, _e;
|
|
487
|
+
if (!this.opts.auth)
|
|
420
488
|
return null;
|
|
421
|
-
const {
|
|
422
|
-
if (!
|
|
489
|
+
const { sidKeyName } = this.opts.auth;
|
|
490
|
+
if (!sidKeyName || !localParams)
|
|
423
491
|
return null;
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
result.sidQuery = utils_1.get(socket, `handshake.query.${sidQueryParamName}`);
|
|
431
|
-
}
|
|
432
|
-
if (sidCookieName) {
|
|
433
|
-
const cookie_str = utils_1.get(socket, "handshake.headers.cookie");
|
|
434
|
-
const cookie = parseCookieStr(cookie_str);
|
|
435
|
-
if (socket && cookie) {
|
|
436
|
-
result.sidCookie = cookie[sidCookieName];
|
|
492
|
+
if (localParams.socket) {
|
|
493
|
+
const querySid = (_c = (_b = (_a = localParams.socket) === null || _a === void 0 ? void 0 : _a.handshake) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c[sidKeyName];
|
|
494
|
+
if (!querySid) {
|
|
495
|
+
const cookie_str = utils_1.get(localParams.socket, "handshake.headers.cookie");
|
|
496
|
+
const cookie = parseCookieStr(cookie_str);
|
|
497
|
+
return cookie[sidKeyName];
|
|
437
498
|
}
|
|
438
499
|
}
|
|
500
|
+
else if (localParams.httpReq) {
|
|
501
|
+
return (_e = (_d = localParams.httpReq) === null || _d === void 0 ? void 0 : _d.cookies) === null || _e === void 0 ? void 0 : _e[sidKeyName];
|
|
502
|
+
}
|
|
503
|
+
else
|
|
504
|
+
throw "socket OR httpReq missing from localParams";
|
|
439
505
|
function parseCookieStr(cookie_str) {
|
|
440
506
|
if (!cookie_str || typeof cookie_str !== "string")
|
|
441
507
|
return {};
|
|
@@ -445,31 +511,21 @@ class Prostgles {
|
|
|
445
511
|
return prev;
|
|
446
512
|
}, {});
|
|
447
513
|
}
|
|
448
|
-
result.sid = result.sidQuery || result.sidCookie;
|
|
449
|
-
return result;
|
|
450
514
|
}
|
|
451
|
-
|
|
515
|
+
getClientInfo(localParams) {
|
|
452
516
|
return __awaiter(this, void 0, void 0, function* () {
|
|
453
|
-
if (this.auth) {
|
|
454
|
-
const { getUser } = this.auth;
|
|
455
|
-
if (getUser) {
|
|
456
|
-
const
|
|
457
|
-
return
|
|
517
|
+
if (this.opts.auth) {
|
|
518
|
+
const { getUser, getClientUser } = this.opts.auth;
|
|
519
|
+
if (getUser && localParams && (localParams.httpReq || localParams.socket)) {
|
|
520
|
+
const sid = this.getSID(localParams);
|
|
521
|
+
return {
|
|
522
|
+
sid,
|
|
523
|
+
user: yield getUser(sid, this.dbo, this.db),
|
|
524
|
+
clientUser: yield getClientUser(sid, this.dbo, this.db)
|
|
525
|
+
};
|
|
458
526
|
}
|
|
459
527
|
}
|
|
460
|
-
return
|
|
461
|
-
});
|
|
462
|
-
}
|
|
463
|
-
getUserFromCookieSession(socket) {
|
|
464
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
465
|
-
// console.log("conn", socket.handshake.query, socket._session)
|
|
466
|
-
const params = this.getSID(socket);
|
|
467
|
-
const { getUser, getClientUser } = this.auth;
|
|
468
|
-
const user = yield getUser(params, this.dbo, this.db, socket);
|
|
469
|
-
const clientUser = yield getClientUser(params, this.dbo, this.db, socket);
|
|
470
|
-
if (!user)
|
|
471
|
-
return undefined;
|
|
472
|
-
return { user, clientUser };
|
|
528
|
+
return {};
|
|
473
529
|
});
|
|
474
530
|
}
|
|
475
531
|
setSocketEvents() {
|
|
@@ -477,9 +533,9 @@ class Prostgles {
|
|
|
477
533
|
this.checkDb();
|
|
478
534
|
if (!this.dbo)
|
|
479
535
|
throw "dbo missing";
|
|
480
|
-
let publishParser = new PublishParser(this.publish, this.publishMethods, this.publishRawSQL, this.dbo, this.db, this);
|
|
536
|
+
let publishParser = new PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db, this);
|
|
481
537
|
this.publishParser = publishParser;
|
|
482
|
-
if (!this.io)
|
|
538
|
+
if (!this.opts.io)
|
|
483
539
|
return;
|
|
484
540
|
/* Already initialised. Only reconnect sockets */
|
|
485
541
|
if (this.connectedSockets.length) {
|
|
@@ -490,7 +546,7 @@ class Prostgles {
|
|
|
490
546
|
return;
|
|
491
547
|
}
|
|
492
548
|
/* Initialise */
|
|
493
|
-
this.io.on('connection', (socket) => __awaiter(this, void 0, void 0, function* () {
|
|
549
|
+
this.opts.io.on('connection', (socket) => __awaiter(this, void 0, void 0, function* () {
|
|
494
550
|
if (this.destroyed) {
|
|
495
551
|
console.log("Socket connected to destroyed instance");
|
|
496
552
|
socket.disconnect();
|
|
@@ -501,8 +557,8 @@ class Prostgles {
|
|
|
501
557
|
throw "db/dbo missing";
|
|
502
558
|
let { dbo, db, pgp } = this;
|
|
503
559
|
try {
|
|
504
|
-
if (this.onSocketConnect)
|
|
505
|
-
yield this.onSocketConnect(socket, dbo, db);
|
|
560
|
+
if (this.opts.onSocketConnect)
|
|
561
|
+
yield this.opts.onSocketConnect(socket, dbo, db);
|
|
506
562
|
/* RUN Client request from Publish.
|
|
507
563
|
Checks request against publish and if OK run it with relevant publish functions. Local (server) requests do not check the policy
|
|
508
564
|
*/
|
|
@@ -513,8 +569,8 @@ class Prostgles {
|
|
|
513
569
|
console.error("socket missing??!!");
|
|
514
570
|
throw "socket missing??!!";
|
|
515
571
|
}
|
|
516
|
-
const
|
|
517
|
-
let valid_table_command_rules = yield this.publishParser.getValidatedRequestRule({ tableName, command, socket },
|
|
572
|
+
const clientInfo = yield this.getClientInfo({ socket });
|
|
573
|
+
let valid_table_command_rules = yield this.publishParser.getValidatedRequestRule({ tableName, command, localParams: { socket } }, clientInfo);
|
|
518
574
|
if (valid_table_command_rules) {
|
|
519
575
|
let res = yield this.dbo[tableName][command](param1, param2, param3, valid_table_command_rules, { socket, has_rules: true });
|
|
520
576
|
cb(null, res);
|
|
@@ -535,8 +591,8 @@ class Prostgles {
|
|
|
535
591
|
this.dbEventsManager.removeNotify(socket);
|
|
536
592
|
this.connectedSockets = this.connectedSockets.filter(s => s.id !== socket.id);
|
|
537
593
|
// subscriptions = subscriptions.filter(sub => sub.socket.id !== socket.id);
|
|
538
|
-
if (this.onSocketDisconnect) {
|
|
539
|
-
this.onSocketDisconnect(socket, dbo);
|
|
594
|
+
if (this.opts.onSocketDisconnect) {
|
|
595
|
+
this.opts.onSocketDisconnect(socket, dbo);
|
|
540
596
|
}
|
|
541
597
|
;
|
|
542
598
|
});
|
|
@@ -635,7 +691,6 @@ function flat(arr) {
|
|
|
635
691
|
let res = arr.reduce(function (farr, toFlatten) {
|
|
636
692
|
return farr.concat(Array.isArray(toFlatten) ? flat(toFlatten) : toFlatten);
|
|
637
693
|
}, []);
|
|
638
|
-
// console.log(arr, res)
|
|
639
694
|
return res;
|
|
640
695
|
}
|
|
641
696
|
exports.flat = flat;
|
|
@@ -650,11 +705,16 @@ class PublishParser {
|
|
|
650
705
|
if (!this.dbo || !this.publish)
|
|
651
706
|
throw "INTERNAL ERROR: dbo and/or publish missing";
|
|
652
707
|
}
|
|
708
|
+
getPublishParams(localParams, clientInfo) {
|
|
709
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
710
|
+
return Object.assign(Object.assign({}, (clientInfo || (yield this.prostgles.getClientInfo(localParams)))), { dbo: this.dbo, db: this.db });
|
|
711
|
+
});
|
|
712
|
+
}
|
|
653
713
|
getMethods(socket) {
|
|
654
714
|
return __awaiter(this, void 0, void 0, function* () {
|
|
655
715
|
let methods = {};
|
|
656
|
-
const
|
|
657
|
-
const _methods = yield applyParamsIfFunc(this.publishMethods,
|
|
716
|
+
const publishParams = yield this.getPublishParams({ socket });
|
|
717
|
+
const _methods = yield applyParamsIfFunc(this.publishMethods, publishParams);
|
|
658
718
|
if (_methods && Object.keys(_methods).length) {
|
|
659
719
|
Object.keys(_methods).map(key => {
|
|
660
720
|
if (_methods[key] && (typeof _methods[key] === "function" || typeof _methods[key].then === "function")) {
|
|
@@ -673,9 +733,10 @@ class PublishParser {
|
|
|
673
733
|
* @param socket
|
|
674
734
|
* @param user
|
|
675
735
|
*/
|
|
676
|
-
getPublish(
|
|
736
|
+
getPublish(localParams, clientInfo) {
|
|
677
737
|
return __awaiter(this, void 0, void 0, function* () {
|
|
678
|
-
|
|
738
|
+
const publishParams = yield this.getPublishParams(localParams, clientInfo);
|
|
739
|
+
let _publish = yield applyParamsIfFunc(this.publish, publishParams);
|
|
679
740
|
if (_publish === "*") {
|
|
680
741
|
let publish = {};
|
|
681
742
|
this.prostgles.dboBuilder.tablesOrViews.map(tov => {
|
|
@@ -686,13 +747,14 @@ class PublishParser {
|
|
|
686
747
|
return _publish;
|
|
687
748
|
});
|
|
688
749
|
}
|
|
689
|
-
getValidatedRequestRuleWusr({ tableName, command,
|
|
750
|
+
getValidatedRequestRuleWusr({ tableName, command, localParams }) {
|
|
690
751
|
return __awaiter(this, void 0, void 0, function* () {
|
|
691
|
-
const
|
|
692
|
-
return yield this.getValidatedRequestRule({ tableName, command,
|
|
752
|
+
const clientInfo = yield this.prostgles.getClientInfo(localParams);
|
|
753
|
+
return yield this.getValidatedRequestRule({ tableName, command, localParams }, clientInfo);
|
|
693
754
|
});
|
|
694
755
|
}
|
|
695
|
-
getValidatedRequestRule({ tableName, command,
|
|
756
|
+
getValidatedRequestRule({ tableName, command, localParams }, clientInfo) {
|
|
757
|
+
var _a, _b, _c, _d;
|
|
696
758
|
return __awaiter(this, void 0, void 0, function* () {
|
|
697
759
|
if (!this.dbo)
|
|
698
760
|
throw "INTERNAL ERROR: dbo is missing";
|
|
@@ -703,17 +765,16 @@ class PublishParser {
|
|
|
703
765
|
throw "Invalid command: " + command;
|
|
704
766
|
}
|
|
705
767
|
/* Must be local request -> allow everything */
|
|
706
|
-
if (!socket)
|
|
768
|
+
if (!localParams || (!localParams.socket && !localParams.httpReq))
|
|
707
769
|
return undefined;
|
|
708
770
|
/* Must be from socket. Must have a publish */
|
|
709
771
|
if (!this.publish)
|
|
710
772
|
throw "publish is missing";
|
|
711
773
|
/* Get any publish errors for socket */
|
|
712
|
-
const schm =
|
|
713
|
-
// console.log(schm, get(socket, `prostgles.schema`));
|
|
774
|
+
const schm = (_d = (_c = (_b = (_a = localParams === null || localParams === void 0 ? void 0 : localParams.socket) === null || _a === void 0 ? void 0 : _a.prostgles) === null || _b === void 0 ? void 0 : _b.schema) === null || _c === void 0 ? void 0 : _c[tableName]) === null || _d === void 0 ? void 0 : _d[command];
|
|
714
775
|
if (schm && schm.err)
|
|
715
776
|
throw schm.err;
|
|
716
|
-
let table_rule = yield this.getTableRules({ tableName,
|
|
777
|
+
let table_rule = yield this.getTableRules({ tableName, localParams }, clientInfo);
|
|
717
778
|
if (!table_rule)
|
|
718
779
|
throw "Invalid or disallowed table: " + tableName;
|
|
719
780
|
if (command === "upsert") {
|
|
@@ -728,13 +789,13 @@ class PublishParser {
|
|
|
728
789
|
throw `Invalid or disallowed command: ${command}`;
|
|
729
790
|
});
|
|
730
791
|
}
|
|
731
|
-
getTableRules({ tableName,
|
|
792
|
+
getTableRules({ tableName, localParams }, clientInfo) {
|
|
732
793
|
return __awaiter(this, void 0, void 0, function* () {
|
|
733
794
|
try {
|
|
734
|
-
if (!
|
|
795
|
+
if (!localParams || !tableName)
|
|
735
796
|
throw "publish OR socket OR dbo OR tableName are missing";
|
|
736
|
-
let _publish = yield this.getPublish(
|
|
737
|
-
let table_rules = applyParamsIfFunc(_publish[tableName],
|
|
797
|
+
let _publish = yield this.getPublish(localParams, clientInfo);
|
|
798
|
+
let table_rules = _publish[tableName]; // applyParamsIfFunc(_publish[tableName], localParams, this.dbo, this.db, user);
|
|
738
799
|
/* Get view or table specific rules */
|
|
739
800
|
const is_view = this.dbo[tableName].is_view, MY_RULES = RULE_TO_METHODS.filter(r => !is_view || !r.table_only);
|
|
740
801
|
// if(tableName === "various") console.warn(1033, MY_RULES)
|
|
@@ -755,9 +816,10 @@ class PublishParser {
|
|
|
755
816
|
if (table_rules[r.rule]) {
|
|
756
817
|
r.methods.map(method => {
|
|
757
818
|
if (table_rules[method] === undefined) {
|
|
758
|
-
|
|
819
|
+
const publishedTable = table_rules;
|
|
820
|
+
if (method === "updateBatch" && !publishedTable.update) {
|
|
759
821
|
}
|
|
760
|
-
else if (method === "upsert" && (!
|
|
822
|
+
else if (method === "upsert" && (!publishedTable.update || !publishedTable.insert)) {
|
|
761
823
|
// return;
|
|
762
824
|
}
|
|
763
825
|
else {
|
|
@@ -825,14 +887,14 @@ class PublishParser {
|
|
|
825
887
|
let schema = {};
|
|
826
888
|
try {
|
|
827
889
|
/* Publish tables and views based on socket */
|
|
828
|
-
const
|
|
829
|
-
let _publish = yield this.getPublish(socket,
|
|
890
|
+
const clientInfo = yield this.prostgles.getClientInfo({ socket });
|
|
891
|
+
let _publish = yield this.getPublish(socket, clientInfo);
|
|
830
892
|
if (_publish && Object.keys(_publish).length) {
|
|
831
893
|
let txKey = "tx";
|
|
832
|
-
if (!this.prostgles.transactions)
|
|
894
|
+
if (!this.prostgles.opts.transactions)
|
|
833
895
|
txKey = "";
|
|
834
|
-
if (typeof this.prostgles.transactions === "string")
|
|
835
|
-
txKey = this.prostgles.transactions;
|
|
896
|
+
if (typeof this.prostgles.opts.transactions === "string")
|
|
897
|
+
txKey = this.prostgles.opts.transactions;
|
|
836
898
|
const tableNames = Object.keys(_publish).filter(k => !txKey || txKey !== k);
|
|
837
899
|
yield Promise.all(tableNames
|
|
838
900
|
.map((tableName) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -842,7 +904,7 @@ class PublishParser {
|
|
|
842
904
|
DBO tables: ${Object.keys(this.dbo).filter(k => this.dbo[k].find).join(", ")}
|
|
843
905
|
`;
|
|
844
906
|
}
|
|
845
|
-
const table_rules = yield this.getTableRules({ socket, tableName },
|
|
907
|
+
const table_rules = yield this.getTableRules({ localParams: { socket }, tableName }, clientInfo);
|
|
846
908
|
if (table_rules && Object.keys(table_rules).length) {
|
|
847
909
|
schema[tableName] = {};
|
|
848
910
|
let methods = [];
|
|
@@ -860,7 +922,7 @@ class PublishParser {
|
|
|
860
922
|
if (["update", "find", "findOne", "insert", "delete", "upsert"].includes(method)) {
|
|
861
923
|
let err = null;
|
|
862
924
|
try {
|
|
863
|
-
let valid_table_command_rules = yield this.getValidatedRequestRule({ tableName, command: method, socket },
|
|
925
|
+
let valid_table_command_rules = yield this.getValidatedRequestRule({ tableName, command: method, localParams: { socket } }, clientInfo);
|
|
864
926
|
yield this.dbo[tableName][method]({}, {}, {}, valid_table_command_rules, { socket, has_rules: true, testRule: true });
|
|
865
927
|
}
|
|
866
928
|
catch (e) {
|
|
@@ -880,7 +942,6 @@ class PublishParser {
|
|
|
880
942
|
console.error("Prostgles \nERRORS IN PUBLISH: ", JSON.stringify(e));
|
|
881
943
|
throw e;
|
|
882
944
|
}
|
|
883
|
-
// console.log(schema)
|
|
884
945
|
return schema;
|
|
885
946
|
});
|
|
886
947
|
}
|