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.
- package/.github/workflows/main.yml +1 -1
- package/debug/after-commit-fix-build.log +4 -0
- package/debug/after-commit-fix-client-build.log +0 -0
- package/debug/after-commit-fix-client.log +674 -0
- package/debug/after-commit-fix-lint.log +4 -0
- package/debug/after-commit-fix-server.log +542 -0
- package/debug/after-commit-fix-test-build.log +0 -0
- package/debug/after-commit-fix-typecheck.log +8 -0
- package/debug/after-commit-review-build.log +4 -0
- package/debug/after-commit-review-regressions.log +604 -0
- package/debug/after-commit-review-reproductions.patch +62 -0
- package/debug/after-commit-review-restored-build.log +0 -0
- package/debug/after-commit-review-server.log +3249 -0
- package/debug/after-commit-review-test-build.log +0 -0
- package/debug/after-commit-review-typecheck.log +8 -0
- package/debug/after-commit-review-withUserRLS.original.ts +554 -0
- package/debug/after-commit-shared-query-build.log +4 -0
- package/debug/after-commit-shared-query-lint.log +4 -0
- package/debug/after-commit-shared-query-server.log +3253 -0
- package/debug/inspect-ui-sync.cjs +24 -0
- package/debug/subscription-cleanup-repro.log +662 -0
- package/debug/subscription-cleanup-trace.log +7230 -0
- package/debug/sync-bigint-DBGeneratedSchema.backup +489 -0
- package/debug/sync-bigint-build.log +4 -0
- package/debug/sync-bigint-client-build.log +0 -0
- package/debug/sync-bigint-lint.log +4 -0
- package/debug/sync-bigint-server-build.log +0 -0
- package/debug/sync-comment-DBGeneratedSchema.backup +489 -0
- package/debug/sync-delay-gate-DBGeneratedSchema.backup +489 -0
- package/debug/sync-delay-gate-build.log +0 -0
- package/debug/sync-diff-review-test.log +132 -0
- package/debug/sync-followup-build.log +4 -0
- package/debug/sync-notification-before.log +121 -0
- package/debug/sync-trigger-cleanup-before.log +134 -0
- package/debug/sync-trigger-fix-e2e.log +1758 -0
- package/debug/sync-trigger-fix-npm-test.log +1815 -0
- package/debug/sync-trigger-lint.log +4 -0
- package/debug/trace-subscription-cleanup.cjs +19 -0
- package/debug/ui-sync-database-snapshot.log +8 -0
- package/debug/ui-sync-investigation.md +30 -0
- package/debug/ui-sync-server-tests.log +553 -0
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts +13 -0
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +13 -0
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js +12 -0
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js.map +1 -1
- package/dist/DboBuilder/TableHandler/isApplicableHook.js +1 -1
- package/dist/DboBuilder/TableHandler/isApplicableHook.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.js +18 -0
- package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts +1 -0
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js +6 -4
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js.map +1 -1
- package/dist/Prostgles.d.ts +2 -0
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +2 -0
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts +8 -25
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +27 -23
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/deleteOrphanedTriggers.d.ts.map +1 -1
- package/dist/PubSubManager/deleteOrphanedTriggers.js +5 -3
- package/dist/PubSubManager/deleteOrphanedTriggers.js.map +1 -1
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.d.ts.map +1 -1
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.js +1 -2
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.js.map +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.d.ts.map +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.js +3 -2
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.js.map +1 -1
- package/dist/PubSubManager/notifListener.js +2 -2
- package/dist/PubSubManager/notifListener.js.map +1 -1
- package/dist/PubSubManager/refreshTriggers.d.ts.map +1 -1
- package/dist/PubSubManager/refreshTriggers.js +5 -3
- package/dist/PubSubManager/refreshTriggers.js.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts +15 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/TableHooks/TableHooks.d.ts +12 -4
- package/dist/TableHooks/TableHooks.d.ts.map +1 -1
- package/dist/WebsocketAPI/getClientHandlers.d.ts +9 -0
- package/dist/WebsocketAPI/getClientHandlers.d.ts.map +1 -1
- package/dist/WebsocketAPI/getClientHandlers.js +12 -1
- package/dist/WebsocketAPI/getClientHandlers.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/initProstgles.d.ts +3 -11
- package/dist/initProstgles.d.ts.map +1 -1
- package/dist/initProstgles.js +1 -11
- package/dist/initProstgles.js.map +1 -1
- package/lib/DboBuilder/TableHandler/TableHandler.ts +13 -0
- package/lib/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.ts +13 -0
- package/lib/DboBuilder/TableHandler/isApplicableHook.ts +1 -1
- package/lib/DboBuilder/TableHandler/updateBatch.ts +28 -1
- package/lib/DboBuilder/ViewHandler/getReturnTypeQuery.ts +8 -3
- package/lib/Prostgles.ts +7 -0
- package/lib/PubSubManager/PubSubManager.ts +31 -28
- package/lib/PubSubManager/deleteOrphanedTriggers.ts +5 -3
- package/lib/PubSubManager/init/getDataWatchFunctionQuery.ts +1 -2
- package/lib/PubSubManager/init/getPubSubManagerInitQuery.ts +3 -2
- package/lib/PubSubManager/notifListener.ts +2 -2
- package/lib/PubSubManager/refreshTriggers.ts +7 -5
- package/lib/PublishParser/publishTypesAndUtils.ts +16 -1
- package/lib/TableHooks/TableHooks.ts +14 -2
- package/lib/WebsocketAPI/getClientHandlers.ts +37 -0
- package/lib/index.ts +5 -0
- package/lib/initProstgles.ts +7 -30
- 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
|