prostgles-server 4.2.631 → 4.2.632
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/DboBuilder/TableHandler/updateFile.js +2 -2
- package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
- package/dist/StorageClient/getFileTableConfig.d.ts.map +1 -1
- package/dist/StorageClient/getFileTableConfig.js +15 -5
- package/dist/StorageClient/getFileTableConfig.js.map +1 -1
- package/lib/DboBuilder/TableHandler/updateFile.ts +2 -2
- package/lib/StorageClient/getFileTableConfig.ts +18 -6
- package/package.json +1 -1
|
@@ -36,10 +36,10 @@ const lockFileForUpdate = async (tableHandler, filter, where, localParams) => {
|
|
|
36
36
|
};
|
|
37
37
|
exports.lockFileForUpdate = lockFileForUpdate;
|
|
38
38
|
const getFileUpdateId = (filter) => {
|
|
39
|
-
const { data: validFilter } = (0, prostgles_types_1.getJSONBObjectSchemaValidationError)({ id: { optional: true, type: "string" } }, filter, "filter", undefined, { allowExtraProperties:
|
|
39
|
+
const { data: validFilter } = (0, prostgles_types_1.getJSONBObjectSchemaValidationError)({ id: { optional: true, type: "string" } }, filter, "filter", undefined, { allowExtraProperties: true });
|
|
40
40
|
const existingMediaId = validFilter?.id;
|
|
41
41
|
if (!existingMediaId) {
|
|
42
|
-
throw new Error(`Updating the file table with file data can only be done by providing a
|
|
42
|
+
throw new Error(`Updating the file table with file data can only be done by providing a filter that contains "id" and targets a single row`);
|
|
43
43
|
}
|
|
44
44
|
return existingMediaId;
|
|
45
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateFile.js","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/updateFile.ts"],"names":[],"mappings":";;;AAAA,8CAA8D;AAE9D,qDAAgF;AAIhF,6CAA+D;AAC/D,uFAAoF;AACpF,6EAA0E;AAQnE,MAAM,UAAU,GAAG,KAAK,EAC7B,YAA0B,EAC1B,MAAuB,EACvB,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,sBAAsB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAQ,EAChG,EAAE;IACF,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAA6B,CAAC;IAEtF,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAA,+CAAsB,EAAC,EAAE,EAAE,MAAM,EAAE,IAAA,qCAAiB,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAU,EAAC,MAAM,EAAE;QACvC,QAAQ;QACR,UAAU;QACV,aAAa;QACb,IAAI;QACJ,WAAW;QACX,OAAO,EAAE,YAAY,CAAC,EAAE;QACxB,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;QAC9C,sBAAsB;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,IAAA,0BAAQ,EAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC,CAAC;AAvBW,QAAA,UAAU,cAuBrB;AAEK,MAAM,iBAAiB,GAAG,KAAK,EACpC,YAA0B,EAC1B,MAAiB,EACjB,KAAa,EACb,WAAoC,EACpC,EAAE;IACF,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxE,oEAAoE;IACpE,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,SAAS,CACvC,IAAA,wBAAW,EAAC,WAAW,EAAE,iBAAiB,YAAY,CAAC,WAAW,IAAI,KAAK,aAAa,EAAE,IAAI,CAAC,CAChG,CAAC;IACF,OAAO,CAAC,CAAC,GAAG,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,iBAAiB,qBAc5B;AAEF,MAAM,eAAe,GAAG,CAAC,MAAiB,EAAU,EAAE;IACpD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAA,qDAAmC,EAC/D,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAC1C,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"updateFile.js","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/updateFile.ts"],"names":[],"mappings":";;;AAAA,8CAA8D;AAE9D,qDAAgF;AAIhF,6CAA+D;AAC/D,uFAAoF;AACpF,6EAA0E;AAQnE,MAAM,UAAU,GAAG,KAAK,EAC7B,YAA0B,EAC1B,MAAuB,EACvB,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,sBAAsB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAQ,EAChG,EAAE;IACF,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAA6B,CAAC;IAEtF,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAA,+CAAsB,EAAC,EAAE,EAAE,MAAM,EAAE,IAAA,qCAAiB,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAU,EAAC,MAAM,EAAE;QACvC,QAAQ;QACR,UAAU;QACV,aAAa;QACb,IAAI;QACJ,WAAW;QACX,OAAO,EAAE,YAAY,CAAC,EAAE;QACxB,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;QAC9C,sBAAsB;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,IAAA,0BAAQ,EAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC,CAAC;AAvBW,QAAA,UAAU,cAuBrB;AAEK,MAAM,iBAAiB,GAAG,KAAK,EACpC,YAA0B,EAC1B,MAAiB,EACjB,KAAa,EACb,WAAoC,EACpC,EAAE;IACF,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxE,oEAAoE;IACpE,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,SAAS,CACvC,IAAA,wBAAW,EAAC,WAAW,EAAE,iBAAiB,YAAY,CAAC,WAAW,IAAI,KAAK,aAAa,EAAE,IAAI,CAAC,CAChG,CAAC;IACF,OAAO,CAAC,CAAC,GAAG,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,iBAAiB,qBAc5B;AAEF,MAAM,eAAe,GAAG,CAAC,MAAiB,EAAU,EAAE;IACpD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAA,qDAAmC,EAC/D,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAC1C,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAC/B,CAAC;IACF,MAAM,eAAe,GAAG,WAAW,EAAE,EAAE,CAAC;IACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileTableConfig.d.ts","sourceRoot":"","sources":["../../lib/StorageClient/getFileTableConfig.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAY3D,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE/E,eAAO,MAAM,kBAAkB,GAC7B,KAAK,SAAS,KACb;IAAE,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getFileTableConfig.d.ts","sourceRoot":"","sources":["../../lib/StorageClient/getFileTableConfig.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAY3D,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE/E,eAAO,MAAM,kBAAkB,GAC7B,KAAK,SAAS,KACb;IAAE,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;CAsNvF,CAAC"}
|
|
@@ -36,6 +36,7 @@ const getFileTableConfig = (prg) => {
|
|
|
36
36
|
...fileTableDefinitions_1.FILE_TABLE_COLUMN_DEFINITIONS,
|
|
37
37
|
...(fileTable.versioning && fileTableDefinitions_1.FILE_TABLE_VERSION_COLUMN_DEFINITIONS),
|
|
38
38
|
};
|
|
39
|
+
const fileColumnDefinitionsColumnNames = (0, prostgles_types_1.getKeys)(fileColumnDefinitions);
|
|
39
40
|
const userFileTableConfig = tableConfig?.[fileTableName];
|
|
40
41
|
if (userFileTableConfig) {
|
|
41
42
|
if ("isLookupTable" in userFileTableConfig) {
|
|
@@ -103,12 +104,21 @@ const getFileTableConfig = (prg) => {
|
|
|
103
104
|
insert: 1,
|
|
104
105
|
update: 1,
|
|
105
106
|
},
|
|
106
|
-
validate: async ({ data:
|
|
107
|
+
validate: async ({ data: insertOrUpdateData, localParams, command, filter, dbx, onCommit, onRollback, }) => {
|
|
107
108
|
const tableHandler = dbx[fileTableName];
|
|
108
109
|
if (!tableHandler)
|
|
109
110
|
throw "Storage tableHandler not found";
|
|
110
|
-
(0,
|
|
111
|
-
|
|
111
|
+
const fileData = (0, prostgles_types_1.pickKeys)(insertOrUpdateData, fileColumnDefinitionsColumnNames);
|
|
112
|
+
/**
|
|
113
|
+
* File table config can be extended with extra columns.
|
|
114
|
+
* Allow updates that only target those columns without affecting the core file data
|
|
115
|
+
*/
|
|
116
|
+
const extraData = (0, prostgles_types_1.omitKeys)(insertOrUpdateData, fileColumnDefinitionsColumnNames);
|
|
117
|
+
if (command === "update" && (0, prostgles_types_1.isEmpty)(fileData)) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
(0, uploadFile_1.assertFileObjectValid)(fileData);
|
|
121
|
+
const { data: dataBlob, original_name, id, original_last_modified = null } = fileData;
|
|
112
122
|
const data = dataBlob;
|
|
113
123
|
if (command === "update") {
|
|
114
124
|
const { newData } = await (0, updateFile_1.updateFile)(tableHandler, fileTable, {
|
|
@@ -121,7 +131,7 @@ const getFileTableConfig = (prg) => {
|
|
|
121
131
|
original_last_modified,
|
|
122
132
|
});
|
|
123
133
|
return {
|
|
124
|
-
row: newData,
|
|
134
|
+
row: { ...newData, ...extraData },
|
|
125
135
|
hookContext: {
|
|
126
136
|
data,
|
|
127
137
|
},
|
|
@@ -137,7 +147,7 @@ const getFileTableConfig = (prg) => {
|
|
|
137
147
|
original_last_modified,
|
|
138
148
|
});
|
|
139
149
|
return {
|
|
140
|
-
row: media,
|
|
150
|
+
row: { ...media, ...extraData },
|
|
141
151
|
hookContext: {
|
|
142
152
|
data,
|
|
143
153
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileTableConfig.js","sourceRoot":"","sources":["../../lib/StorageClient/getFileTableConfig.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"getFileTableConfig.js","sourceRoot":"","sources":["../../lib/StorageClient/getFileTableConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,12 +61,12 @@ const getFileUpdateId = (filter: AnyObject): string => {
|
|
|
61
61
|
filter,
|
|
62
62
|
"filter",
|
|
63
63
|
undefined,
|
|
64
|
-
{ allowExtraProperties:
|
|
64
|
+
{ allowExtraProperties: true },
|
|
65
65
|
);
|
|
66
66
|
const existingMediaId = validFilter?.id;
|
|
67
67
|
if (!existingMediaId) {
|
|
68
68
|
throw new Error(
|
|
69
|
-
`Updating the file table with file data can only be done by providing a
|
|
69
|
+
`Updating the file table with file data can only be done by providing a filter that contains "id" and targets a single row`,
|
|
70
70
|
);
|
|
71
71
|
}
|
|
72
72
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asName, omitKeys } from "prostgles-types";
|
|
1
|
+
import { asName, getKeys, isEmpty, omitKeys, pickKeys } from "prostgles-types";
|
|
2
2
|
import { md5 } from "prostgles-types/dist/md5";
|
|
3
3
|
import { onDeleteFromFileTable } from "../DboBuilder/TableHandler/onDeleteFromFileTable";
|
|
4
4
|
import { updateFile } from "../DboBuilder/TableHandler/updateFile";
|
|
@@ -58,6 +58,7 @@ export const getFileTableConfig = (
|
|
|
58
58
|
...FILE_TABLE_COLUMN_DEFINITIONS,
|
|
59
59
|
...(fileTable.versioning && FILE_TABLE_VERSION_COLUMN_DEFINITIONS),
|
|
60
60
|
};
|
|
61
|
+
const fileColumnDefinitionsColumnNames = getKeys(fileColumnDefinitions);
|
|
61
62
|
const userFileTableConfig = tableConfig?.[fileTableName];
|
|
62
63
|
if (userFileTableConfig) {
|
|
63
64
|
if ("isLookupTable" in userFileTableConfig) {
|
|
@@ -144,7 +145,7 @@ export const getFileTableConfig = (
|
|
|
144
145
|
update: 1,
|
|
145
146
|
},
|
|
146
147
|
validate: async ({
|
|
147
|
-
data:
|
|
148
|
+
data: insertOrUpdateData,
|
|
148
149
|
localParams,
|
|
149
150
|
command,
|
|
150
151
|
filter,
|
|
@@ -154,9 +155,20 @@ export const getFileTableConfig = (
|
|
|
154
155
|
}) => {
|
|
155
156
|
const tableHandler = dbx[fileTableName];
|
|
156
157
|
if (!tableHandler) throw "Storage tableHandler not found";
|
|
157
|
-
|
|
158
|
+
const fileData = pickKeys(insertOrUpdateData, fileColumnDefinitionsColumnNames);
|
|
158
159
|
|
|
159
|
-
|
|
160
|
+
/**
|
|
161
|
+
* File table config can be extended with extra columns.
|
|
162
|
+
* Allow updates that only target those columns without affecting the core file data
|
|
163
|
+
*/
|
|
164
|
+
const extraData = omitKeys(insertOrUpdateData, fileColumnDefinitionsColumnNames);
|
|
165
|
+
|
|
166
|
+
if (command === "update" && isEmpty(fileData)) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
assertFileObjectValid(fileData);
|
|
170
|
+
|
|
171
|
+
const { data: dataBlob, original_name, id, original_last_modified = null } = fileData;
|
|
160
172
|
const data = dataBlob as unknown as Buffer;
|
|
161
173
|
if (command === "update") {
|
|
162
174
|
const { newData } = await updateFile(tableHandler, fileTable, {
|
|
@@ -169,7 +181,7 @@ export const getFileTableConfig = (
|
|
|
169
181
|
original_last_modified,
|
|
170
182
|
});
|
|
171
183
|
return {
|
|
172
|
-
row: newData,
|
|
184
|
+
row: { ...newData, ...extraData },
|
|
173
185
|
hookContext: {
|
|
174
186
|
data,
|
|
175
187
|
},
|
|
@@ -187,7 +199,7 @@ export const getFileTableConfig = (
|
|
|
187
199
|
});
|
|
188
200
|
|
|
189
201
|
return {
|
|
190
|
-
row: media,
|
|
202
|
+
row: { ...media, ...extraData },
|
|
191
203
|
hookContext: {
|
|
192
204
|
data,
|
|
193
205
|
},
|