prostgles-server 4.2.646 → 4.2.647

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/debug/after-commit-fix-build.log +4 -0
  2. package/debug/after-commit-fix-client-build.log +0 -0
  3. package/debug/after-commit-fix-client.log +674 -0
  4. package/debug/after-commit-fix-lint.log +4 -0
  5. package/debug/after-commit-fix-server.log +542 -0
  6. package/debug/after-commit-fix-test-build.log +0 -0
  7. package/debug/after-commit-fix-typecheck.log +8 -0
  8. package/debug/after-commit-review-build.log +4 -0
  9. package/debug/after-commit-review-regressions.log +604 -0
  10. package/debug/after-commit-review-reproductions.patch +62 -0
  11. package/debug/after-commit-review-restored-build.log +0 -0
  12. package/debug/after-commit-review-server.log +3249 -0
  13. package/debug/after-commit-review-test-build.log +0 -0
  14. package/debug/after-commit-review-typecheck.log +8 -0
  15. package/debug/after-commit-review-withUserRLS.original.ts +554 -0
  16. package/debug/after-commit-shared-query-build.log +4 -0
  17. package/debug/after-commit-shared-query-lint.log +4 -0
  18. package/debug/after-commit-shared-query-server.log +3253 -0
  19. package/dist/DboBuilder/TableHandler/TableHandler.d.ts +13 -0
  20. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  21. package/dist/DboBuilder/TableHandler/TableHandler.js +13 -0
  22. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  23. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.d.ts.map +1 -1
  24. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js +12 -0
  25. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js.map +1 -1
  26. package/dist/DboBuilder/TableHandler/isApplicableHook.js +1 -1
  27. package/dist/DboBuilder/TableHandler/isApplicableHook.js.map +1 -1
  28. package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
  29. package/dist/DboBuilder/TableHandler/updateBatch.js +18 -0
  30. package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
  31. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts +1 -0
  32. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts.map +1 -1
  33. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js +6 -4
  34. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js.map +1 -1
  35. package/dist/Prostgles.d.ts +2 -0
  36. package/dist/Prostgles.d.ts.map +1 -1
  37. package/dist/Prostgles.js +2 -0
  38. package/dist/Prostgles.js.map +1 -1
  39. package/dist/PublishParser/publishTypesAndUtils.d.ts +15 -1
  40. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  41. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  42. package/dist/TableHooks/TableHooks.d.ts +12 -4
  43. package/dist/TableHooks/TableHooks.d.ts.map +1 -1
  44. package/dist/WebsocketAPI/getClientHandlers.d.ts +9 -0
  45. package/dist/WebsocketAPI/getClientHandlers.d.ts.map +1 -1
  46. package/dist/WebsocketAPI/getClientHandlers.js +12 -1
  47. package/dist/WebsocketAPI/getClientHandlers.js.map +1 -1
  48. package/dist/index.d.ts +2 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/initProstgles.d.ts +3 -11
  52. package/dist/initProstgles.d.ts.map +1 -1
  53. package/dist/initProstgles.js +1 -11
  54. package/dist/initProstgles.js.map +1 -1
  55. package/lib/DboBuilder/TableHandler/TableHandler.ts +13 -0
  56. package/lib/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.ts +13 -0
  57. package/lib/DboBuilder/TableHandler/isApplicableHook.ts +1 -1
  58. package/lib/DboBuilder/TableHandler/updateBatch.ts +28 -1
  59. package/lib/DboBuilder/ViewHandler/getReturnTypeQuery.ts +8 -3
  60. package/lib/Prostgles.ts +7 -0
  61. package/lib/PublishParser/publishTypesAndUtils.ts +16 -1
  62. package/lib/TableHooks/TableHooks.ts +14 -2
  63. package/lib/WebsocketAPI/getClientHandlers.ts +37 -0
  64. package/lib/index.ts +5 -0
  65. package/lib/initProstgles.ts +7 -30
  66. package/package.json +1 -1
@@ -0,0 +1,62 @@
1
+ --- tests/server/withUserRLS.spec.ts
2
+ +++ tests/server/withUserRLS.spec.ts
3
+ @@ -398,6 +398,7 @@
4
+ hasTransactionalHandlers: boolean;
5
+ context: unknown;
6
+ }[] = [];
7
+ + let rejectReviewUpdates = false;
8
+ app.use(express.json());
9
+
10
+ try {
11
+ @@ -420,6 +421,12 @@
12
+ publish: "*",
13
+ tableHooks: {
14
+ [tableName]: {
15
+ + afterEach: [{
16
+ + commands: { update: 1 },
17
+ + validate: async () => {
18
+ + if (rejectReviewUpdates) throw new Error("review validation rejection");
19
+ + },
20
+ + }],
21
+ afterCommit: [
22
+ {
23
+ commands: { insert: 1, update: 1 },
24
+ @@ -505,6 +512,38 @@
25
+ assert.equal(afterCommitResults.length, 2);
26
+ });
27
+
28
+ + await t.test("review: clearing a watched field must trigger afterCommit", async () => {
29
+ + assert(instance);
30
+ + const previousCalls = afterCommitResults.length;
31
+ + await instance.db[tableName]!.update!({ id: -44001 }, { value: null });
32
+ + assert.equal(afterCommitResults.length, previousCalls + 1);
33
+ + });
34
+ +
35
+ + await t.test("review: client updateBatch must trigger afterCommit", async () => {
36
+ + assert(instance);
37
+ + const { clientDb } = await instance.getClientDBHandlers(
38
+ + { userId: requestUser.id }, undefined,
39
+ + );
40
+ + const previousCalls = afterCommitResults.length;
41
+ + await clientDb[tableName]!.updateBatch!([[{ id: -44002 }, { value: "batch" }]]);
42
+ + assert.equal((await instance.db[tableName]!.findOne!({ id: -44002 }))!.value, "batch");
43
+ + assert.equal(afterCommitResults.length, previousCalls + 1);
44
+ + });
45
+ +
46
+ + await t.test("review: client updateBatch must enforce afterEach validation", async () => {
47
+ + assert(instance);
48
+ + const { clientDb } = await instance.getClientDBHandlers(
49
+ + { userId: requestUser.id }, undefined,
50
+ + );
51
+ + rejectReviewUpdates = true;
52
+ + try {
53
+ + await assert.rejects(clientDb[tableName]!.update!({ id: -44002 }, { value: "blocked" }));
54
+ + await assert.rejects(clientDb[tableName]!.updateBatch!([[{ id: -44002 }, { value: "bypass" }]]));
55
+ + } finally {
56
+ + rejectReviewUpdates = false;
57
+ + }
58
+ + });
59
+ +
60
+ const url = `http://127.0.0.1:${address.port}/rls-context/db/${tableName}/delete`;
61
+ const deleteRequest = async (sid?: string) => {
62
+ const response = await fetch(url, {
File without changes