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.
- 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/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/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/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
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getClientHandlers = void 0;
|
|
3
|
+
exports.getClientHandlers = exports.getClientDBHandlers = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
+
const serverSideRequest_1 = require("../Auth/utils/serverSideRequest");
|
|
5
6
|
const runClientRequest_1 = require("../runClientRequest");
|
|
6
7
|
const getClientSchema_1 = require("./getClientSchema");
|
|
8
|
+
const getClientDBHandlers = async (prostgles, clientReq, scope) => {
|
|
9
|
+
if ("userId" in clientReq) {
|
|
10
|
+
if ("socket" in clientReq || "httpReq" in clientReq || "res" in clientReq) {
|
|
11
|
+
throw new Error("userId cannot be combined with a client request");
|
|
12
|
+
}
|
|
13
|
+
return (0, exports.getClientHandlers)(prostgles, (0, serverSideRequest_1.createServerSideRequest)(prostgles, clientReq.userId), scope);
|
|
14
|
+
}
|
|
15
|
+
return (0, exports.getClientHandlers)(prostgles, clientReq, scope);
|
|
16
|
+
};
|
|
17
|
+
exports.getClientDBHandlers = getClientDBHandlers;
|
|
7
18
|
const getClientHandlers = async (prostgles, clientReq, scope) => {
|
|
8
19
|
prostgles.checkNotDestroyed();
|
|
9
20
|
const clientSchema = (scope ? undefined : clientReq.socket?.prostgles?.get(prostgles.appId)) ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClientHandlers.js","sourceRoot":"","sources":["../../lib/WebsocketAPI/getClientHandlers.ts"],"names":[],"mappings":";;;AAAA,qDAQyB;
|
|
1
|
+
{"version":3,"file":"getClientHandlers.js","sourceRoot":"","sources":["../../lib/WebsocketAPI/getClientHandlers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,8 @@ declare function prostgles<S = void, SUser extends SessionUser = SessionUser, Co
|
|
|
8
8
|
export declare const createProstgles: <S = void, SUser extends SessionUser = SessionUser, ClientSchema = S>() => <Context = undefined>(params: ProstglesInitOptions<S, SUser, Context>) => Promise<InitResult<S, SUser, Context, ClientSchema>>;
|
|
9
9
|
export * from "./PublishParser/defineServerFunction";
|
|
10
10
|
export * from "./Auth/AuthTypes";
|
|
11
|
-
export type { PublishContextValue, Publish, PublishObject, PublishAllTables, PublishedResult, BeforeEachTsTrigger, AfterAllTsTrigger, AfterEachTsTrigger, PublishProfile, PublishParams, } from "./PublishParser/publishTypesAndUtils";
|
|
11
|
+
export type { PublishContextValue, Publish, PublishObject, PublishAllTables, PublishedResult, BeforeEachTsTrigger, AfterAllTsTrigger, AfterCommitTsTrigger, AfterEachTsTrigger, PublishProfile, PublishParams, } from "./PublishParser/publishTypesAndUtils";
|
|
12
|
+
export type { ClientDBHandlerRequest, GetClientDBHandlers, } from "./WebsocketAPI/getClientHandlers";
|
|
12
13
|
export type { DBOFullyTyped, DBOFullyTypedClient } from "./DBSchemaBuilder/DBSchemaBuilder";
|
|
13
14
|
export type { DBHandlerServer } from "./Prostgles";
|
|
14
15
|
export type { StorageClient as CloudClient } from "./StorageClient/StorageClientTypes";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,iBAAS,SAAS,CAChB,CAAC,GAAG,IAAI,EACR,KAAK,SAAS,WAAW,GAAG,WAAW,EACvC,OAAO,GAAG,SAAS,EACnB,YAAY,GAAG,CAAC,EAChB,MAAM,EAAE,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAI9B,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CACtE;AAED,qFAAqF;AACrF,eAAO,MAAM,eAAe,GAC1B,CAAC,GAAG,IAAI,EACR,KAAK,SAAS,WAAW,GAAG,WAAW,EACvC,YAAY,GAAG,CAAC,QAER,OAAO,GAAG,SAAS,EAAE,QAAQ,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,yDAE7E,CAAC;AACF,cAAc,sCAAsC,CAAC;AACrD,cAAc,kBAAkB,CAAC;AAEjC,YAAY,EACV,mBAAmB,EACnB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvF,cAAc,uCAAuC,CAAC;AACtD,YAAY,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,EAAE,EACF,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,mBAAmB,gCAAgC,CAAC;AACpD,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,yBAAyB,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,eAAe,SAAS,CAAC;AACzB,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,iBAAS,SAAS,CAChB,CAAC,GAAG,IAAI,EACR,KAAK,SAAS,WAAW,GAAG,WAAW,EACvC,OAAO,GAAG,SAAS,EACnB,YAAY,GAAG,CAAC,EAChB,MAAM,EAAE,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAI9B,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CACtE;AAED,qFAAqF;AACrF,eAAO,MAAM,eAAe,GAC1B,CAAC,GAAG,IAAI,EACR,KAAK,SAAS,WAAW,GAAG,WAAW,EACvC,YAAY,GAAG,CAAC,QAER,OAAO,GAAG,SAAS,EAAE,QAAQ,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,yDAE7E,CAAC;AACF,cAAc,sCAAsC,CAAC;AACrD,cAAc,kBAAkB,CAAC;AAEjC,YAAY,EACV,mBAAmB,EACnB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvF,cAAc,uCAAuC,CAAC;AACtD,YAAY,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,EAAE,EACF,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,mBAAmB,gCAAgC,CAAC;AACpD,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,yBAAyB,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,eAAe,SAAS,CAAC;AACzB,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAA6C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAA6C;AAwEpC,2FAxEA,4BAAU,OAwEA;AArEnB,2CAAwC;AAExC,yDAAiE;AAAxD,+GAAA,kBAAkB,OAAA;AAE3B,SAAS,SAAS,CAKhB,MAA+C;IAC/C,MAAM,IAAI,GAAG,IAAI,qBAAS,CAAC,MAAiE,CAAC,CAAC;IAC9F,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0C,EAAE;QAClE,IAAI,EAAE,MAAM;KACb,CAAoE,CAAC;AACxE,CAAC;AAED,qFAAqF;AAC9E,MAAM,eAAe,GAAG,GAI3B,EAAE;IACJ,OAAO,CAAsB,MAA+C,EAAE,EAAE,CAC9E,SAAS,CAAkC,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B;AACF,uEAAqD;AACrD,mDAAiC;AAsBjC,wEAAsD;AAiBtD,4EAA0D;AAE1D,kBAAe,SAAS,CAAC;AAGzB,iDAM4B;AAL1B,4HAAA,8BAA8B,OAAA;AAC9B,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA"}
|
package/dist/initProstgles.d.ts
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
import type pgPromise from "pg-promise";
|
|
2
2
|
import type pg from "pg-promise/typescript/pg-subset";
|
|
3
3
|
import type { MaybePromise, SQLHandler, TableSchema } from "prostgles-types";
|
|
4
|
-
import type {
|
|
4
|
+
import type { SessionUser } from "./Auth/AuthTypes";
|
|
5
5
|
import type { DboBuilder } from "./DboBuilder/DboBuilder";
|
|
6
6
|
import type { DBOFullyTyped } from "./DBSchemaBuilder/DBSchemaBuilder";
|
|
7
7
|
import type { DBHandlerServer, Prostgles } from "./Prostgles";
|
|
8
8
|
import type { ProstglesInitOptions } from "./ProstglesTypes";
|
|
9
|
-
import type { PermissionScope } from "./PublishParser/PublishParser";
|
|
10
9
|
import { type clientOnlyUpdateKeys } from "./updateConfiguration";
|
|
11
|
-
import {
|
|
12
|
-
type ClientDBHandlerRequest = AuthClientRequest | {
|
|
13
|
-
/** Trusted server-only identity, resolved through auth.findUser on every operation. */
|
|
14
|
-
userId: string;
|
|
15
|
-
socket?: never;
|
|
16
|
-
httpReq?: never;
|
|
17
|
-
res?: never;
|
|
18
|
-
};
|
|
10
|
+
import type { GetClientDBHandlers } from "./WebsocketAPI/getClientHandlers";
|
|
19
11
|
/**
|
|
20
12
|
* Database connection details
|
|
21
13
|
*/
|
|
@@ -81,7 +73,7 @@ export type InitResult<S = void, SUser extends SessionUser = SessionUser, Contex
|
|
|
81
73
|
* Uses the configured client schema by default and accepts a publish-profile schema override.
|
|
82
74
|
* Only pass userId from trusted server code; never forward client-supplied input here.
|
|
83
75
|
*/
|
|
84
|
-
getClientDBHandlers: <
|
|
76
|
+
getClientDBHandlers: GetClientDBHandlers<ClientSchema>;
|
|
85
77
|
getFieldsWithTypes: typeof DboBuilder.prototype.getDetailedFieldInfo;
|
|
86
78
|
};
|
|
87
79
|
export declare const initProstgles: (this: Prostgles, onReady: OnReadyCallbackBasic, reason: OnInitReason) => Promise<InitResult<void, SessionUser, any>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initProstgles.d.ts","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"initProstgles.d.ts","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"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"}
|
package/dist/initProstgles.js
CHANGED
|
@@ -11,9 +11,7 @@ const SchemaWatch_1 = require("./SchemaWatch/SchemaWatch");
|
|
|
11
11
|
const runSQLFile_1 = require("./TableConfig/runSQLFile");
|
|
12
12
|
const updateConfiguration_1 = require("./updateConfiguration");
|
|
13
13
|
const utils_1 = require("./utils/utils");
|
|
14
|
-
const getClientHandlers_1 = require("./WebsocketAPI/getClientHandlers");
|
|
15
14
|
const getAdminClient_1 = require("./DboBuilder/runSql/getAdminClient");
|
|
16
|
-
const serverSideRequest_1 = require("./Auth/utils/serverSideRequest");
|
|
17
15
|
const initProstgles = async function (onReady, reason) {
|
|
18
16
|
this.checkNotDestroyed();
|
|
19
17
|
this.loaded = false;
|
|
@@ -191,15 +189,7 @@ const initProstgles = async function (onReady, reason) {
|
|
|
191
189
|
await (0, utils_1.sleep)(1000);
|
|
192
190
|
return true;
|
|
193
191
|
},
|
|
194
|
-
getClientDBHandlers: async (clientReq, scope) =>
|
|
195
|
-
if ("userId" in clientReq) {
|
|
196
|
-
if ("socket" in clientReq || "httpReq" in clientReq || "res" in clientReq) {
|
|
197
|
-
throw new Error("userId cannot be combined with a client request");
|
|
198
|
-
}
|
|
199
|
-
return (0, getClientHandlers_1.getClientHandlers)(this, (0, serverSideRequest_1.createServerSideRequest)(this, clientReq.userId), scope);
|
|
200
|
-
}
|
|
201
|
-
return (0, getClientHandlers_1.getClientHandlers)(this, clientReq, scope);
|
|
202
|
-
},
|
|
192
|
+
getClientDBHandlers: async (clientReq, scope) => this.getClientDBHandlers(clientReq, scope),
|
|
203
193
|
};
|
|
204
194
|
return initResult;
|
|
205
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initProstgles.js","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AACpE,qDAAkD;AAKlD,wEAA0E;AAC1E,uDAAoD;AAGpD,uDAAoD;AAEpD,2CAA6C;AAG7C,2DAAwD;AACxD,yDAAsD;AACtD,+DAAuF;AACvF,yCAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"initProstgles.js","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,6 +176,18 @@ export class TableHandler extends ViewHandler {
|
|
|
176
176
|
} as const;
|
|
177
177
|
})
|
|
178
178
|
.filter(isDefined);
|
|
179
|
+
const afterCommitHooks = this.hooks?.afterCommit
|
|
180
|
+
?.map((hook) => {
|
|
181
|
+
const { commands } = hook;
|
|
182
|
+
if (!commands[command.name]) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
type: "afterCommit",
|
|
187
|
+
...hook,
|
|
188
|
+
} as const;
|
|
189
|
+
})
|
|
190
|
+
.filter(isDefined);
|
|
179
191
|
return [
|
|
180
192
|
...(afterEachHooks ?? []),
|
|
181
193
|
...(postValidate ?
|
|
@@ -185,6 +197,7 @@ export class TableHandler extends ViewHandler {
|
|
|
185
197
|
[{ type: "checkFilter", checkFilter, changedFields: undefined } as const]
|
|
186
198
|
: []),
|
|
187
199
|
...(afterAllHooks ?? []),
|
|
200
|
+
...(afterCommitHooks ?? []),
|
|
188
201
|
];
|
|
189
202
|
};
|
|
190
203
|
shouldWrapInTx = (
|
|
@@ -125,6 +125,19 @@ export const executeAfterHooksCheckAndPostValidation = async ({
|
|
|
125
125
|
localParams,
|
|
126
126
|
context: tableHandler.dboBuilder.prostgles.context,
|
|
127
127
|
});
|
|
128
|
+
} else if (hook.type === "afterCommit" && applicableRows.length) {
|
|
129
|
+
const context = tableHandler.dboBuilder.prostgles.context;
|
|
130
|
+
txParams.onCommit(({ db, dbo }) =>
|
|
131
|
+
hook.run({
|
|
132
|
+
rows: applicableRows,
|
|
133
|
+
command,
|
|
134
|
+
context,
|
|
135
|
+
db,
|
|
136
|
+
dbo,
|
|
137
|
+
getClientDBHandlers: tableHandler.dboBuilder.prostgles.getClientDBHandlers,
|
|
138
|
+
localParams,
|
|
139
|
+
}),
|
|
140
|
+
);
|
|
128
141
|
}
|
|
129
142
|
}
|
|
130
143
|
} finally {
|
|
@@ -12,7 +12,7 @@ export const isApplicableHook = (
|
|
|
12
12
|
const getChangedFieldsSet = () => {
|
|
13
13
|
changedFieldsSet ??= new Set(
|
|
14
14
|
tableHandler.column_names.filter((col) =>
|
|
15
|
-
rows.some((row) => row[col] !== undefined
|
|
15
|
+
rows.some((row) => row[col] !== undefined),
|
|
16
16
|
),
|
|
17
17
|
);
|
|
18
18
|
return changedFieldsSet;
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
withUserRLS,
|
|
9
9
|
} from "../DboBuilder";
|
|
10
10
|
import type { TableHandler } from "./TableHandler";
|
|
11
|
-
import { getReturnTypeQuery } from "../ViewHandler/getReturnTypeQuery";
|
|
11
|
+
import { getReturnTypeQuery, isReturningQuery } from "../ViewHandler/getReturnTypeQuery";
|
|
12
12
|
|
|
13
13
|
export async function updateBatch(
|
|
14
14
|
this: TableHandler,
|
|
@@ -24,6 +24,33 @@ export async function updateBatch(
|
|
|
24
24
|
if (checkFilter || postValidate) {
|
|
25
25
|
throw `updateBatch not allowed for tables with checkFilter or postValidate rules`;
|
|
26
26
|
}
|
|
27
|
+
const hasHooks =
|
|
28
|
+
this.getAfterHooksAndChecks({ name: "update", rule: tableRules?.update }, localParams).length ||
|
|
29
|
+
this.hooks?.beforeEach?.some(({ commands }) => commands.update);
|
|
30
|
+
if (hasHooks && !isReturningQuery(params?.returnType, localParams)) {
|
|
31
|
+
if (!this.getTransaction(localParams)) {
|
|
32
|
+
return this.dboBuilder.getTX((dbx) =>
|
|
33
|
+
dbx[this.name]!.updateBatch(updates, params, undefined, tableRules, localParams),
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
// Run the full update pipeline so hooks share the batch transaction.
|
|
37
|
+
for (const [filter, data] of updates) {
|
|
38
|
+
await this.update(
|
|
39
|
+
filter,
|
|
40
|
+
data,
|
|
41
|
+
{ ...(params ?? {}), returning: undefined },
|
|
42
|
+
tableRules,
|
|
43
|
+
localParams,
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
await this._log({
|
|
47
|
+
command: "updateBatch",
|
|
48
|
+
localParams,
|
|
49
|
+
data: { data: updates, params },
|
|
50
|
+
duration: Date.now() - start,
|
|
51
|
+
});
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
27
54
|
const updateQueries: string[] = await Promise.all(
|
|
28
55
|
updates.map(async ([filter, data]) => {
|
|
29
56
|
const query = (await this.update(
|
|
@@ -26,6 +26,9 @@ export const getReturnTypeQuery = async ({
|
|
|
26
26
|
if (localParams?.returnNewQuery) {
|
|
27
27
|
return newQuery;
|
|
28
28
|
}
|
|
29
|
+
if (!isReturningQuery(returnType, localParams)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
29
32
|
|
|
30
33
|
if (returnType === "statement-where" || localParams?.returnQuery === "where-condition") {
|
|
31
34
|
if (!newQuery) {
|
|
@@ -37,9 +40,6 @@ export const getReturnTypeQuery = async ({
|
|
|
37
40
|
return localParams.returnQuery === "noRLS" ? queryWithoutRLS : queryWithRLS;
|
|
38
41
|
}
|
|
39
42
|
|
|
40
|
-
if (!sqlTypes.some((v) => v === returnType)) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
43
|
if (!(await canRunSQL(handler.dboBuilder.prostgles, localParams?.clientReq))) {
|
|
44
44
|
throw `Not allowed: { returnType: ${JSON.stringify(returnType)} } requires execute sql privileges `;
|
|
45
45
|
}
|
|
@@ -48,3 +48,8 @@ export const getReturnTypeQuery = async ({
|
|
|
48
48
|
}
|
|
49
49
|
return queryWithRLS as unknown as unknown[];
|
|
50
50
|
};
|
|
51
|
+
|
|
52
|
+
export const isReturningQuery = (
|
|
53
|
+
returnType: SelectParams["returnType"],
|
|
54
|
+
localParams: LocalParams | undefined,
|
|
55
|
+
) => Boolean(localParams?.returnQuery || sqlTypes.some((type) => type === returnType));
|
package/lib/Prostgles.ts
CHANGED
|
@@ -6,6 +6,10 @@ import type { ContextCleanup, OnInitReason } from "./initProstgles";
|
|
|
6
6
|
import { initProstgles } from "./initProstgles";
|
|
7
7
|
import type { SchemaWatch } from "./SchemaWatch/SchemaWatch";
|
|
8
8
|
import { getClientSchema } from "./WebsocketAPI/getClientSchema";
|
|
9
|
+
import {
|
|
10
|
+
getClientDBHandlers,
|
|
11
|
+
type GetClientDBHandlers,
|
|
12
|
+
} from "./WebsocketAPI/getClientHandlers";
|
|
9
13
|
import { onSocketConnected } from "./WebsocketAPI/onSocketConnected";
|
|
10
14
|
import pg = require("pg-promise/typescript/pg-subset");
|
|
11
15
|
|
|
@@ -107,6 +111,9 @@ export class Prostgles {
|
|
|
107
111
|
}
|
|
108
112
|
publishParser?: PublishParser;
|
|
109
113
|
|
|
114
|
+
getClientDBHandlers: GetClientDBHandlers = (clientReq, scope) =>
|
|
115
|
+
getClientDBHandlers(this, clientReq, scope);
|
|
116
|
+
|
|
110
117
|
authHandler = new AuthHandler(this);
|
|
111
118
|
|
|
112
119
|
schemaWatch?: SchemaWatch;
|
|
@@ -26,7 +26,7 @@ import type {
|
|
|
26
26
|
} from "prostgles-types";
|
|
27
27
|
import type { AuthClientRequest, LoginClientInfo, SessionUser } from "../Auth/AuthTypes";
|
|
28
28
|
import type { TableSchemaColumn } from "../DboBuilder/DboBuilderTypes";
|
|
29
|
-
import type { ClientHandlers } from "../WebsocketAPI/getClientHandlers";
|
|
29
|
+
import type { ClientHandlers, GetClientDBHandlers } from "../WebsocketAPI/getClientHandlers";
|
|
30
30
|
import { isArray } from "../utils/utils";
|
|
31
31
|
|
|
32
32
|
export type InsertRequestData = {
|
|
@@ -173,6 +173,21 @@ export type AfterAllTsTrigger<R, DBX, Context = undefined> = {
|
|
|
173
173
|
) => Promise<void>;
|
|
174
174
|
};
|
|
175
175
|
|
|
176
|
+
export type AfterCommitTsTrigger<R, DBO, Context = undefined, ClientSchema = void> = {
|
|
177
|
+
commands: Partial<Record<"insert" | "update" | "delete", 1>>;
|
|
178
|
+
changedFields?: (keyof R)[];
|
|
179
|
+
run: (params: {
|
|
180
|
+
/** Committed rows, or the deleted rows' pre-delete state. */
|
|
181
|
+
rows: R[];
|
|
182
|
+
command: "insert" | "update" | "delete";
|
|
183
|
+
context: Context;
|
|
184
|
+
db: DB;
|
|
185
|
+
dbo: DBO;
|
|
186
|
+
getClientDBHandlers: GetClientDBHandlers<ClientSchema>;
|
|
187
|
+
localParams: undefined | LocalParams;
|
|
188
|
+
}) => MaybePromise<unknown>;
|
|
189
|
+
};
|
|
190
|
+
|
|
176
191
|
export type ValidateRowArgs<R = AnyObject, DBX = DBHandlerServer> = ValidateRowArgsCommon<
|
|
177
192
|
R,
|
|
178
193
|
DBX
|
|
@@ -9,6 +9,7 @@ import type { DbTxTableHandlers } from "../DboBuilder/DboBuilderTypes";
|
|
|
9
9
|
import type { DBOFullyTyped } from "../DBSchemaBuilder/DBSchemaBuilder";
|
|
10
10
|
import type {
|
|
11
11
|
AfterAllTsTrigger,
|
|
12
|
+
AfterCommitTsTrigger,
|
|
12
13
|
AfterEachTsTrigger,
|
|
13
14
|
BeforeEachTsTrigger,
|
|
14
15
|
TransactionCallbacks,
|
|
@@ -20,7 +21,8 @@ export type TableHooks<S = void, Context = undefined> = S extends DBSchema
|
|
|
20
21
|
Required<S[tableName]["columns"]>,
|
|
21
22
|
DBOFullyTyped<S>,
|
|
22
23
|
Context,
|
|
23
|
-
InsertDataWithNested<S[tableName]["columns"], S, tableName
|
|
24
|
+
InsertDataWithNested<S[tableName]["columns"], S, tableName>,
|
|
25
|
+
S
|
|
24
26
|
>;
|
|
25
27
|
}>
|
|
26
28
|
: Record<string, TableHooksDefinition<AnyObject, DbTxTableHandlers, Context>>;
|
|
@@ -30,6 +32,7 @@ export type TableHooksDefinition<
|
|
|
30
32
|
DBX = DbTxTableHandlers,
|
|
31
33
|
Context = undefined,
|
|
32
34
|
InputDataType = RowDataType,
|
|
35
|
+
ClientSchema = void,
|
|
33
36
|
> = {
|
|
34
37
|
/**
|
|
35
38
|
* Runs sequentially before data validation and mutation SQL for each insert row,
|
|
@@ -63,9 +66,18 @@ export type TableHooksDefinition<
|
|
|
63
66
|
*/
|
|
64
67
|
afterAll?: AfterAllTsTrigger<RowDataType, DBX, Context>[];
|
|
65
68
|
|
|
69
|
+
/**
|
|
70
|
+
* Runs once after the outer transaction commits successfully with at least one affected row.
|
|
71
|
+
* Receives committed rows and non-transactional handlers; it cannot roll back the mutation.
|
|
72
|
+
* It is awaited before the mutation promise resolves. Errors are logged and do not change the
|
|
73
|
+
* mutation result.
|
|
74
|
+
*/
|
|
75
|
+
afterCommit?: AfterCommitTsTrigger<RowDataType, DBX, Context, ClientSchema>[];
|
|
76
|
+
|
|
66
77
|
/**
|
|
67
78
|
* Replaces the generated DELETE. Must perform the mutation and shape its return value using
|
|
68
|
-
* the prepared filter and returning arguments. Delete `afterEach`/`afterAll`
|
|
79
|
+
* the prepared filter and returning arguments. Delete `afterEach`/`afterAll`/`afterCommit`
|
|
80
|
+
* hooks do not run.
|
|
69
81
|
* Use `onCommit`/`onRollback` for external side effects after the outer transaction finishes.
|
|
70
82
|
*/
|
|
71
83
|
onInsteadOfDelete?: (
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
type TableHandler,
|
|
9
9
|
} from "prostgles-types";
|
|
10
10
|
import type { AuthClientRequest } from "../Auth/AuthTypes";
|
|
11
|
+
import { createServerSideRequest } from "../Auth/utils/serverSideRequest";
|
|
11
12
|
import type { DBOFullyTypedClient } from "../DBSchemaBuilder/DBSchemaBuilder";
|
|
12
13
|
import type { DbTxTableHandlers } from "../DboBuilder/DboBuilderTypes";
|
|
13
14
|
import type { Prostgles } from "../Prostgles";
|
|
@@ -27,6 +28,42 @@ export type ClientHandlers<S = void> = {
|
|
|
27
28
|
clientMethods: Record<string, ServerFunctionDefinition>;
|
|
28
29
|
clientSchema: ClientSchema;
|
|
29
30
|
};
|
|
31
|
+
|
|
32
|
+
export type ClientDBHandlerRequest =
|
|
33
|
+
| AuthClientRequest
|
|
34
|
+
| {
|
|
35
|
+
/** Trusted server-only identity, resolved through auth.findUser on every operation. */
|
|
36
|
+
userId: string;
|
|
37
|
+
socket?: never;
|
|
38
|
+
httpReq?: never;
|
|
39
|
+
res?: never;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export type GetClientDBHandlers<ClientSchema = void> = <
|
|
43
|
+
NarrowedClientSchema = ClientSchema,
|
|
44
|
+
>(
|
|
45
|
+
clientReq: ClientDBHandlerRequest,
|
|
46
|
+
scope: PermissionScope | undefined,
|
|
47
|
+
) => Promise<ClientHandlers<NarrowedClientSchema>>;
|
|
48
|
+
|
|
49
|
+
export const getClientDBHandlers = async <ClientSchema = void>(
|
|
50
|
+
prostgles: Prostgles,
|
|
51
|
+
clientReq: ClientDBHandlerRequest,
|
|
52
|
+
scope: PermissionScope | undefined,
|
|
53
|
+
) => {
|
|
54
|
+
if ("userId" in clientReq) {
|
|
55
|
+
if ("socket" in clientReq || "httpReq" in clientReq || "res" in clientReq) {
|
|
56
|
+
throw new Error("userId cannot be combined with a client request");
|
|
57
|
+
}
|
|
58
|
+
return getClientHandlers<ClientSchema>(
|
|
59
|
+
prostgles,
|
|
60
|
+
createServerSideRequest(prostgles, clientReq.userId),
|
|
61
|
+
scope,
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
return getClientHandlers<ClientSchema>(prostgles, clientReq, scope);
|
|
65
|
+
};
|
|
66
|
+
|
|
30
67
|
export const getClientHandlers = async <S = void>(
|
|
31
68
|
prostgles: Prostgles,
|
|
32
69
|
clientReq: AuthClientRequest,
|
package/lib/index.ts
CHANGED
|
@@ -37,10 +37,15 @@ export type {
|
|
|
37
37
|
PublishedResult,
|
|
38
38
|
BeforeEachTsTrigger,
|
|
39
39
|
AfterAllTsTrigger,
|
|
40
|
+
AfterCommitTsTrigger,
|
|
40
41
|
AfterEachTsTrigger,
|
|
41
42
|
PublishProfile,
|
|
42
43
|
PublishParams,
|
|
43
44
|
} from "./PublishParser/publishTypesAndUtils";
|
|
45
|
+
export type {
|
|
46
|
+
ClientDBHandlerRequest,
|
|
47
|
+
GetClientDBHandlers,
|
|
48
|
+
} from "./WebsocketAPI/getClientHandlers";
|
|
44
49
|
export type { DBOFullyTyped, DBOFullyTypedClient } from "./DBSchemaBuilder/DBSchemaBuilder";
|
|
45
50
|
export type { DBHandlerServer } from "./Prostgles";
|
|
46
51
|
export type { StorageClient as CloudClient } from "./StorageClient/StorageClientTypes";
|
package/lib/initProstgles.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { deferDbQueries } from "./deferDbQueries";
|
|
|
3
3
|
import type pgPromise from "pg-promise";
|
|
4
4
|
import type pg from "pg-promise/typescript/pg-subset";
|
|
5
5
|
import type { MaybePromise, SQLHandler, TableSchema } from "prostgles-types";
|
|
6
|
-
import type {
|
|
6
|
+
import type { SessionUser } from "./Auth/AuthTypes";
|
|
7
7
|
import { removeExpressRoutesTest } from "./Auth/utils/removeExpressRoute";
|
|
8
8
|
import { DBEventsManager } from "./DBEventsManager";
|
|
9
9
|
import type { DboBuilder } from "./DboBuilder/DboBuilder";
|
|
@@ -17,19 +17,11 @@ import { SchemaWatch } from "./SchemaWatch/SchemaWatch";
|
|
|
17
17
|
import { runSQLFile } from "./TableConfig/runSQLFile";
|
|
18
18
|
import { updateConfiguration, type clientOnlyUpdateKeys } from "./updateConfiguration";
|
|
19
19
|
import { sleep } from "./utils/utils";
|
|
20
|
-
import { getClientHandlers } from "./WebsocketAPI/getClientHandlers";
|
|
21
20
|
import { getAdminClient } from "./DboBuilder/runSql/getAdminClient";
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
| {
|
|
27
|
-
/** Trusted server-only identity, resolved through auth.findUser on every operation. */
|
|
28
|
-
userId: string;
|
|
29
|
-
socket?: never;
|
|
30
|
-
httpReq?: never;
|
|
31
|
-
res?: never;
|
|
32
|
-
};
|
|
21
|
+
import type {
|
|
22
|
+
ClientDBHandlerRequest,
|
|
23
|
+
GetClientDBHandlers,
|
|
24
|
+
} from "./WebsocketAPI/getClientHandlers";
|
|
33
25
|
|
|
34
26
|
/**
|
|
35
27
|
* Database connection details
|
|
@@ -140,10 +132,7 @@ export type InitResult<
|
|
|
140
132
|
* Uses the configured client schema by default and accepts a publish-profile schema override.
|
|
141
133
|
* Only pass userId from trusted server code; never forward client-supplied input here.
|
|
142
134
|
*/
|
|
143
|
-
getClientDBHandlers: <
|
|
144
|
-
clientReq: ClientDBHandlerRequest,
|
|
145
|
-
scope: PermissionScope | undefined,
|
|
146
|
-
) => ReturnType<typeof getClientHandlers<NarrowedClientSchema>>;
|
|
135
|
+
getClientDBHandlers: GetClientDBHandlers<ClientSchema>;
|
|
147
136
|
|
|
148
137
|
getFieldsWithTypes: typeof DboBuilder.prototype.getDetailedFieldInfo;
|
|
149
138
|
};
|
|
@@ -350,19 +339,7 @@ export const initProstgles = async function (
|
|
|
350
339
|
getClientDBHandlers: async <ClientSchema = void>(
|
|
351
340
|
clientReq: ClientDBHandlerRequest,
|
|
352
341
|
scope: PermissionScope | undefined,
|
|
353
|
-
) =>
|
|
354
|
-
if ("userId" in clientReq) {
|
|
355
|
-
if ("socket" in clientReq || "httpReq" in clientReq || "res" in clientReq) {
|
|
356
|
-
throw new Error("userId cannot be combined with a client request");
|
|
357
|
-
}
|
|
358
|
-
return getClientHandlers<ClientSchema>(
|
|
359
|
-
this,
|
|
360
|
-
createServerSideRequest(this, clientReq.userId),
|
|
361
|
-
scope,
|
|
362
|
-
);
|
|
363
|
-
}
|
|
364
|
-
return getClientHandlers<ClientSchema>(this, clientReq, scope);
|
|
365
|
-
},
|
|
342
|
+
) => this.getClientDBHandlers<ClientSchema>(clientReq, scope),
|
|
366
343
|
};
|
|
367
344
|
|
|
368
345
|
return initResult;
|