prostgles-server 4.2.613 → 4.2.615
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/DBSchemaBuilder/DBSchemaBuilder.d.ts +2 -2
- package/dist/DBSchemaBuilder/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.d.ts +2 -0
- package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.js +17 -3
- package/dist/DboBuilder/DboBuilder.js.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts +5 -5
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +17 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js +1 -0
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insert.js +22 -2
- package/dist/DboBuilder/TableHandler/insert/insert.js.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +3 -5
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +13 -26
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
- package/dist/DboBuilder/TableHandler/prepareBeforeHookData.d.ts +4 -0
- package/dist/DboBuilder/TableHandler/prepareBeforeHookData.d.ts.map +1 -0
- package/dist/DboBuilder/TableHandler/prepareBeforeHookData.js +20 -0
- package/dist/DboBuilder/TableHandler/prepareBeforeHookData.js.map +1 -0
- package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/update.js +36 -10
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.d.ts +5 -2
- package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateFile.js +17 -11
- package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
- package/dist/DboBuilder/TableHandler/uploadFile.d.ts +3 -2
- package/dist/DboBuilder/TableHandler/uploadFile.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/uploadFile.js +15 -4
- package/dist/DboBuilder/TableHandler/uploadFile.js.map +1 -1
- package/dist/DboBuilder/runSql/getAdminClient.d.ts +3 -0
- package/dist/DboBuilder/runSql/getAdminClient.d.ts.map +1 -1
- package/dist/Logging.d.ts +1 -1
- package/dist/Logging.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts +12 -5
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/StorageClient/deleteUnreferencedFile.d.ts +4 -0
- package/dist/StorageClient/deleteUnreferencedFile.d.ts.map +1 -0
- package/dist/StorageClient/deleteUnreferencedFile.js +15 -0
- package/dist/StorageClient/deleteUnreferencedFile.js.map +1 -0
- package/dist/StorageClient/getFileStorageKey.d.ts +4 -0
- package/dist/StorageClient/getFileStorageKey.d.ts.map +1 -0
- package/dist/StorageClient/getFileStorageKey.js +7 -0
- package/dist/StorageClient/getFileStorageKey.js.map +1 -0
- package/dist/StorageClient/getFileTableConfig.d.ts +1 -0
- package/dist/StorageClient/getFileTableConfig.d.ts.map +1 -1
- package/dist/StorageClient/getFileTableConfig.js +9 -4
- package/dist/StorageClient/getFileTableConfig.js.map +1 -1
- package/dist/StorageClient/getFileType.d.ts.map +1 -1
- package/dist/StorageClient/getFileType.js +8 -10
- package/dist/StorageClient/getFileType.js.map +1 -1
- package/dist/StorageClient/getLocalStorageClient.d.ts.map +1 -1
- package/dist/StorageClient/getLocalStorageClient.js +20 -37
- package/dist/StorageClient/getLocalStorageClient.js.map +1 -1
- package/dist/StorageClient/getValidatedFileType.d.ts.map +1 -1
- package/dist/StorageClient/getValidatedFileType.js +4 -2
- package/dist/StorageClient/getValidatedFileType.js.map +1 -1
- package/dist/StorageClient/setupFileServeHandler.d.ts.map +1 -1
- package/dist/StorageClient/setupFileServeHandler.js +6 -3
- package/dist/StorageClient/setupFileServeHandler.js.map +1 -1
- package/dist/TableHooks/TableHooks.d.ts +10 -3
- package/dist/TableHooks/TableHooks.d.ts.map +1 -1
- package/lib/DBSchemaBuilder/DBSchemaBuilder.ts +3 -2
- package/lib/DboBuilder/DboBuilder.ts +18 -3
- package/lib/DboBuilder/TableHandler/TableHandler.ts +19 -1
- package/lib/DboBuilder/TableHandler/delete.ts +1 -0
- package/lib/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.ts +1 -2
- package/lib/DboBuilder/TableHandler/insert/insert.ts +31 -3
- package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +17 -33
- package/lib/DboBuilder/TableHandler/prepareBeforeHookData.ts +27 -0
- package/lib/DboBuilder/TableHandler/update.ts +40 -11
- package/lib/DboBuilder/TableHandler/updateFile.ts +25 -19
- package/lib/DboBuilder/TableHandler/uploadFile.ts +32 -7
- package/lib/Logging.ts +1 -0
- package/lib/PublishParser/publishTypesAndUtils.ts +26 -15
- package/lib/StorageClient/deleteUnreferencedFile.ts +19 -0
- package/lib/StorageClient/getFileStorageKey.ts +5 -0
- package/lib/StorageClient/getFileTableConfig.ts +19 -5
- package/lib/StorageClient/getFileType.ts +11 -14
- package/lib/StorageClient/getLocalStorageClient.ts +20 -43
- package/lib/StorageClient/getValidatedFileType.ts +4 -1
- package/lib/StorageClient/setupFileServeHandler.ts +6 -3
- package/lib/TableHooks/TableHooks.ts +23 -13
- package/package.json +8 -8
|
@@ -8,6 +8,7 @@ import type { FileTableConfig } from "../ProstglesTypes";
|
|
|
8
8
|
import { runClientRequest } from "../runClientRequest";
|
|
9
9
|
import type { StorageClient } from "./StorageClientTypes";
|
|
10
10
|
import type { FileTableRow } from "./getFileTableConfig";
|
|
11
|
+
import { getFileStorageKey } from "./getFileStorageKey";
|
|
11
12
|
|
|
12
13
|
export const getFileServeRoute = (config: FileTableConfig) => {
|
|
13
14
|
const fileTableName = config.tableName;
|
|
@@ -39,6 +40,7 @@ export const setupFileServeHandler = (
|
|
|
39
40
|
const selectParams = {
|
|
40
41
|
select: {
|
|
41
42
|
id: 1,
|
|
43
|
+
storage_key: 1,
|
|
42
44
|
signed_url: 1,
|
|
43
45
|
signed_url_expires: 1,
|
|
44
46
|
content_type: 1,
|
|
@@ -71,13 +73,14 @@ export const setupFileServeHandler = (
|
|
|
71
73
|
const HOUR = 3600 * 1000;
|
|
72
74
|
const EXPIRES = Date.now() + HOUR;
|
|
73
75
|
if (!url || expires < EXPIRES) {
|
|
74
|
-
url = await storageClient.getSignedUrlForDownload(file
|
|
76
|
+
url = await storageClient.getSignedUrlForDownload(getFileStorageKey(file), 60 * 60);
|
|
75
77
|
|
|
76
78
|
await db.any(
|
|
77
|
-
"UPDATE ${fileTableName:name} SET signed_url = ${signed_url}, signed_url_expires = ${signed_url_expires} WHERE id = ${id}",
|
|
79
|
+
"UPDATE ${fileTableName:name} SET signed_url = ${signed_url}, signed_url_expires = ${signed_url_expires} WHERE id = ${id} AND storage_key IS NOT DISTINCT FROM ${storage_key}::uuid",
|
|
78
80
|
{
|
|
79
81
|
fileTableName,
|
|
80
82
|
id: file.id,
|
|
83
|
+
storage_key: file.storage_key,
|
|
81
84
|
signed_url: url,
|
|
82
85
|
signed_url_expires: EXPIRES,
|
|
83
86
|
},
|
|
@@ -86,7 +89,7 @@ export const setupFileServeHandler = (
|
|
|
86
89
|
|
|
87
90
|
res.redirect(url);
|
|
88
91
|
} else {
|
|
89
|
-
const localFilePath = join(storageClient.localFolderPath, file
|
|
92
|
+
const localFilePath = join(storageClient.localFolderPath, getFileStorageKey(file));
|
|
90
93
|
if (!fs.existsSync(localFilePath)) {
|
|
91
94
|
throw new Error("File not found");
|
|
92
95
|
}
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
AfterAllTsTrigger,
|
|
8
8
|
AfterEachTsTrigger,
|
|
9
9
|
BeforeEachTsTrigger,
|
|
10
|
+
TransactionCallbacks,
|
|
10
11
|
} from "../PublishParser/PublishParser";
|
|
11
12
|
|
|
12
13
|
export type TableHooks<S = void, Context = undefined> =
|
|
@@ -26,9 +27,15 @@ export type TableHooksDefinition<
|
|
|
26
27
|
Context = undefined,
|
|
27
28
|
> = {
|
|
28
29
|
/**
|
|
29
|
-
* Runs
|
|
30
|
+
* Runs after input field permissions are checked, before row validation and mutation SQL.
|
|
31
|
+
* Runs for each insert row, or once per update request with permitted matching rows.
|
|
32
|
+
* The update filter includes the publish forcedFilter. Matching rows are locked before hooks.
|
|
33
|
+
* SQL-only requests (including updateBatch) cannot run applicable beforeEach hooks.
|
|
30
34
|
* May replace the pending data and pass `hookContext` to the next hook.
|
|
31
35
|
* `onInserted` also runs for updates, is not awaited, and runs before the transaction commits.
|
|
36
|
+
* Register `onCommit`/`onRollback` before starting external work so cleanup also runs if the
|
|
37
|
+
* hook throws. These callbacks are awaited after the outer transaction finishes and receive
|
|
38
|
+
* the non-transactional `db` and `dbo` objects.
|
|
32
39
|
*/
|
|
33
40
|
beforeEach?: BeforeEachTsTrigger<RowDataType, DBX, Context>[];
|
|
34
41
|
|
|
@@ -52,17 +59,20 @@ export type TableHooksDefinition<
|
|
|
52
59
|
/**
|
|
53
60
|
* Replaces the generated DELETE. Must perform the mutation and shape its return value using
|
|
54
61
|
* the prepared filter and returning arguments. Delete `afterEach`/`afterAll` hooks do not run.
|
|
62
|
+
* Use `onCommit`/`onRollback` for external side effects after the outer transaction finishes.
|
|
55
63
|
*/
|
|
56
|
-
onInsteadOfDelete?: (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
onInsteadOfDelete?: (
|
|
65
|
+
args: {
|
|
66
|
+
context: Context;
|
|
67
|
+
dbx: DBX;
|
|
68
|
+
tx: pgPromise.ITask<{}>;
|
|
69
|
+
returningQuery: string;
|
|
70
|
+
isOneOrNone: boolean;
|
|
71
|
+
queryType: "any" | "none";
|
|
72
|
+
filterOpts: {
|
|
73
|
+
where: string;
|
|
74
|
+
filter: AnyObject;
|
|
75
|
+
};
|
|
76
|
+
} & TransactionCallbacks<DBX>,
|
|
77
|
+
) => Promise<AnyObject[] | undefined>;
|
|
68
78
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prostgles-server",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.615",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
],
|
|
39
39
|
"homepage": "https://prostgles.com",
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@aws-sdk/client-sesv2": "^3.
|
|
42
|
-
"@aws-sdk/credential-provider-node": "^3.972.
|
|
41
|
+
"@aws-sdk/client-sesv2": "^3.1128.0",
|
|
42
|
+
"@aws-sdk/credential-provider-node": "^3.972.82",
|
|
43
43
|
"@types/passport": "^1.0.17",
|
|
44
44
|
"@types/passport-facebook": "^3.0.4",
|
|
45
45
|
"@types/passport-github2": "^1.2.9",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@types/passport-microsoft": "^1.0.3",
|
|
48
48
|
"check-disk-space": "^3.4.0",
|
|
49
49
|
"file-type": "^18.7.0",
|
|
50
|
-
"nodemailer": "^9.
|
|
50
|
+
"nodemailer": "^9.1.1",
|
|
51
51
|
"passport": "^0.7.0",
|
|
52
52
|
"passport-facebook": "^3.0.0",
|
|
53
53
|
"passport-github2": "^0.1.12",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"passport-oauth2": "^1.8.0",
|
|
57
57
|
"pg": "^8.23.0",
|
|
58
58
|
"pg-cursor": "^2.22.0",
|
|
59
|
-
"pg-promise": "^12.7.
|
|
60
|
-
"prostgles-types": "^4.0.
|
|
59
|
+
"pg-promise": "^12.7.1",
|
|
60
|
+
"prostgles-types": "^4.0.281"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@eslint/js": "^9.22.0",
|
|
@@ -65,13 +65,13 @@
|
|
|
65
65
|
"@types/json-schema": "^7.0.15",
|
|
66
66
|
"@types/node": "^22.20.1",
|
|
67
67
|
"@types/nodemailer": "^8.0.1",
|
|
68
|
-
"@types/pg": "^8.
|
|
68
|
+
"@types/pg": "^8.23.1",
|
|
69
69
|
"@types/pg-cursor": "^2.7.2",
|
|
70
70
|
"@types/sharp": "^0.30.5",
|
|
71
71
|
"eslint": "^9.39.5",
|
|
72
72
|
"prettier": "^3.9.6",
|
|
73
73
|
"socket.io": "^4.8.3",
|
|
74
74
|
"typescript": "^5.9.3",
|
|
75
|
-
"typescript-eslint": "^8.
|
|
75
|
+
"typescript-eslint": "^8.70.0"
|
|
76
76
|
}
|
|
77
77
|
}
|