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.
@@ -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: false });
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 single id filter. E.g. { id: "9ea4e23c-2b1a-4e33-8ec0-c15919bb45ec" } `);
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,KAAK,EAAE,CAChC,CAAC;IACF,MAAM,eAAe,GAAG,WAAW,EAAE,EAAE,CAAC;IACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,+IAA+I,CAChJ,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
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;CA0MvF,CAAC"}
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: insertData, localParams, command, filter, dbx, onCommit, onRollback, }) => {
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, uploadFile_1.assertFileObjectValid)(insertData);
111
- const { data: dataBlob, original_name, id, original_last_modified = null } = insertData;
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":"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"}
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: false },
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 single id filter. E.g. { id: "9ea4e23c-2b1a-4e33-8ec0-c15919bb45ec" } `,
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: insertData,
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
- assertFileObjectValid(insertData);
158
+ const fileData = pickKeys(insertOrUpdateData, fileColumnDefinitionsColumnNames);
158
159
 
159
- const { data: dataBlob, original_name, id, original_last_modified = null } = insertData;
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
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.631",
3
+ "version": "4.2.632",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",