prostgles-server 4.2.646 → 4.2.648

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 (113) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/debug/after-commit-fix-build.log +4 -0
  3. package/debug/after-commit-fix-client-build.log +0 -0
  4. package/debug/after-commit-fix-client.log +674 -0
  5. package/debug/after-commit-fix-lint.log +4 -0
  6. package/debug/after-commit-fix-server.log +542 -0
  7. package/debug/after-commit-fix-test-build.log +0 -0
  8. package/debug/after-commit-fix-typecheck.log +8 -0
  9. package/debug/after-commit-review-build.log +4 -0
  10. package/debug/after-commit-review-regressions.log +604 -0
  11. package/debug/after-commit-review-reproductions.patch +62 -0
  12. package/debug/after-commit-review-restored-build.log +0 -0
  13. package/debug/after-commit-review-server.log +3249 -0
  14. package/debug/after-commit-review-test-build.log +0 -0
  15. package/debug/after-commit-review-typecheck.log +8 -0
  16. package/debug/after-commit-review-withUserRLS.original.ts +554 -0
  17. package/debug/after-commit-shared-query-build.log +4 -0
  18. package/debug/after-commit-shared-query-lint.log +4 -0
  19. package/debug/after-commit-shared-query-server.log +3253 -0
  20. package/debug/inspect-ui-sync.cjs +24 -0
  21. package/debug/subscription-cleanup-repro.log +662 -0
  22. package/debug/subscription-cleanup-trace.log +7230 -0
  23. package/debug/sync-bigint-DBGeneratedSchema.backup +489 -0
  24. package/debug/sync-bigint-build.log +4 -0
  25. package/debug/sync-bigint-client-build.log +0 -0
  26. package/debug/sync-bigint-lint.log +4 -0
  27. package/debug/sync-bigint-server-build.log +0 -0
  28. package/debug/sync-comment-DBGeneratedSchema.backup +489 -0
  29. package/debug/sync-delay-gate-DBGeneratedSchema.backup +489 -0
  30. package/debug/sync-delay-gate-build.log +0 -0
  31. package/debug/sync-diff-review-test.log +132 -0
  32. package/debug/sync-followup-build.log +4 -0
  33. package/debug/sync-notification-before.log +121 -0
  34. package/debug/sync-trigger-cleanup-before.log +134 -0
  35. package/debug/sync-trigger-fix-e2e.log +1758 -0
  36. package/debug/sync-trigger-fix-npm-test.log +1815 -0
  37. package/debug/sync-trigger-lint.log +4 -0
  38. package/debug/trace-subscription-cleanup.cjs +19 -0
  39. package/debug/ui-sync-database-snapshot.log +8 -0
  40. package/debug/ui-sync-investigation.md +30 -0
  41. package/debug/ui-sync-server-tests.log +553 -0
  42. package/dist/DboBuilder/TableHandler/TableHandler.d.ts +13 -0
  43. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  44. package/dist/DboBuilder/TableHandler/TableHandler.js +13 -0
  45. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  46. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.d.ts.map +1 -1
  47. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js +12 -0
  48. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js.map +1 -1
  49. package/dist/DboBuilder/TableHandler/isApplicableHook.js +1 -1
  50. package/dist/DboBuilder/TableHandler/isApplicableHook.js.map +1 -1
  51. package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
  52. package/dist/DboBuilder/TableHandler/updateBatch.js +18 -0
  53. package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
  54. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts +1 -0
  55. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts.map +1 -1
  56. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js +6 -4
  57. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js.map +1 -1
  58. package/dist/Prostgles.d.ts +2 -0
  59. package/dist/Prostgles.d.ts.map +1 -1
  60. package/dist/Prostgles.js +2 -0
  61. package/dist/Prostgles.js.map +1 -1
  62. package/dist/PubSubManager/PubSubManager.d.ts +8 -25
  63. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  64. package/dist/PubSubManager/PubSubManager.js +27 -23
  65. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  66. package/dist/PubSubManager/deleteOrphanedTriggers.d.ts.map +1 -1
  67. package/dist/PubSubManager/deleteOrphanedTriggers.js +5 -3
  68. package/dist/PubSubManager/deleteOrphanedTriggers.js.map +1 -1
  69. package/dist/PubSubManager/init/getDataWatchFunctionQuery.d.ts.map +1 -1
  70. package/dist/PubSubManager/init/getDataWatchFunctionQuery.js +1 -2
  71. package/dist/PubSubManager/init/getDataWatchFunctionQuery.js.map +1 -1
  72. package/dist/PubSubManager/init/getPubSubManagerInitQuery.d.ts.map +1 -1
  73. package/dist/PubSubManager/init/getPubSubManagerInitQuery.js +3 -2
  74. package/dist/PubSubManager/init/getPubSubManagerInitQuery.js.map +1 -1
  75. package/dist/PubSubManager/notifListener.js +2 -2
  76. package/dist/PubSubManager/notifListener.js.map +1 -1
  77. package/dist/PubSubManager/refreshTriggers.d.ts.map +1 -1
  78. package/dist/PubSubManager/refreshTriggers.js +5 -3
  79. package/dist/PubSubManager/refreshTriggers.js.map +1 -1
  80. package/dist/PublishParser/publishTypesAndUtils.d.ts +15 -1
  81. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  82. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  83. package/dist/TableHooks/TableHooks.d.ts +12 -4
  84. package/dist/TableHooks/TableHooks.d.ts.map +1 -1
  85. package/dist/WebsocketAPI/getClientHandlers.d.ts +9 -0
  86. package/dist/WebsocketAPI/getClientHandlers.d.ts.map +1 -1
  87. package/dist/WebsocketAPI/getClientHandlers.js +12 -1
  88. package/dist/WebsocketAPI/getClientHandlers.js.map +1 -1
  89. package/dist/index.d.ts +2 -1
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/initProstgles.d.ts +3 -11
  93. package/dist/initProstgles.d.ts.map +1 -1
  94. package/dist/initProstgles.js +1 -11
  95. package/dist/initProstgles.js.map +1 -1
  96. package/lib/DboBuilder/TableHandler/TableHandler.ts +13 -0
  97. package/lib/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.ts +13 -0
  98. package/lib/DboBuilder/TableHandler/isApplicableHook.ts +1 -1
  99. package/lib/DboBuilder/TableHandler/updateBatch.ts +28 -1
  100. package/lib/DboBuilder/ViewHandler/getReturnTypeQuery.ts +8 -3
  101. package/lib/Prostgles.ts +7 -0
  102. package/lib/PubSubManager/PubSubManager.ts +31 -28
  103. package/lib/PubSubManager/deleteOrphanedTriggers.ts +5 -3
  104. package/lib/PubSubManager/init/getDataWatchFunctionQuery.ts +1 -2
  105. package/lib/PubSubManager/init/getPubSubManagerInitQuery.ts +3 -2
  106. package/lib/PubSubManager/notifListener.ts +2 -2
  107. package/lib/PubSubManager/refreshTriggers.ts +7 -5
  108. package/lib/PublishParser/publishTypesAndUtils.ts +16 -1
  109. package/lib/TableHooks/TableHooks.ts +14 -2
  110. package/lib/WebsocketAPI/getClientHandlers.ts +37 -0
  111. package/lib/index.ts +5 -0
  112. package/lib/initProstgles.ts +7 -30
  113. 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