prostgles-server 4.2.636 → 4.2.638

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.
@@ -0,0 +1,102 @@
1
+ /* Schema definition generated by prostgles-server */
2
+
3
+ export type DBGeneratedSchema = {
4
+ correspondence: {
5
+ columns: {
6
+ body: string;
7
+ created_by: string;
8
+ id?: number;
9
+ internal?: string;
10
+ note?: null | string;
11
+ synced: number | string;
12
+ };
13
+
14
+ };
15
+ files: {
16
+ columns: {
17
+ added?: string;
18
+ cloud_url?: null | string;
19
+ content_length?: number | string;
20
+ content_type?: string;
21
+ data: Uint8Array;
22
+ deleted?: null | string;
23
+ deleted_from_storage?: null | string;
24
+ description?: null | string;
25
+ etag?: string;
26
+ extension?: string;
27
+ id?: string;
28
+ original_last_modified?: null | string;
29
+ original_name: string;
30
+ signed_url?: null | string;
31
+ signed_url_expires?: null | number | string;
32
+ storage_key?: null | string;
33
+ updated?: string;
34
+ url?: string;
35
+ };
36
+
37
+ };
38
+ private_table: {
39
+ columns: {
40
+ id?: number;
41
+ };
42
+
43
+ };
44
+
45
+ }
46
+
47
+ type CollapseNumberIfStringPresent<T> =
48
+ [Extract<T, string>] extends [never] ? T : Exclude<T, number>;
49
+
50
+ /**
51
+ * Numeric columns that serialize to strings keep the numeric type as well to allow:
52
+ * - inserting numeric values as either numbers or strings
53
+ * - reading numeric values as strings
54
+ */
55
+ export type NormalizedRow<T extends Record<string, unknown>> = Required<{
56
+ [K in keyof T]: CollapseNumberIfStringPresent<T[K]>;
57
+ }>;
58
+
59
+ /**
60
+ * Data types as expected when selecting from the database
61
+ * */
62
+ export type DBSchema = {
63
+ [K in keyof DBGeneratedSchema]: NormalizedRow<DBGeneratedSchema[K]["columns"]>;
64
+ };
65
+
66
+ /**
67
+ * Data types as expected when inserting into the database (optional fields might be nullable/with defaults)
68
+ * */
69
+ export type DBSchemaForInsert = {
70
+ [K in keyof DBGeneratedSchema]: DBGeneratedSchema[K]["columns"];
71
+ };
72
+ /** Publish access profiles. Row types retain the database schema; runtime permissions still apply. */
73
+
74
+ export type AdminDBSchema = {
75
+ "correspondence": DBGeneratedSchema["correspondence"] & { insertColumns: Pick<DBGeneratedSchema["correspondence"]["columns"], "body" | "created_by" | "id" | "internal" | "note"> & Partial<Pick<DBGeneratedSchema["correspondence"]["columns"], "synced">>; updateColumns: Partial<Pick<DBGeneratedSchema["correspondence"]["columns"], "body" | "created_by" | "id" | "internal" | "note" | "synced">>; };
76
+ "private_table": DBGeneratedSchema["private_table"] & { insertColumns: never; updateColumns: never; };
77
+ };
78
+
79
+ export type GuestDBSchema = {
80
+ "correspondence": DBGeneratedSchema["correspondence"] & { insertColumns: Pick<DBGeneratedSchema["correspondence"]["columns"], "body" | "id" | "note"> & Partial<Pick<DBGeneratedSchema["correspondence"]["columns"], "synced">> & { "created_by"?: never; "internal"?: never }; updateColumns: Partial<Pick<DBGeneratedSchema["correspondence"]["columns"], "body" | "note" | "synced">> & { "created_by"?: never; "id"?: never; "internal"?: never }; };
81
+ "files": DBGeneratedSchema["files"] & { insertColumns: Pick<DBGeneratedSchema["files"]["columns"], "id" | "original_name" | "original_last_modified" | "data"> & { "added"?: never; "cloud_url"?: never; "content_length"?: never; "content_type"?: never; "deleted"?: never; "deleted_from_storage"?: never; "description"?: never; "etag"?: never; "extension"?: never; "signed_url"?: never; "signed_url_expires"?: never; "storage_key"?: never; "updated"?: never; "url"?: never }; updateColumns: Pick<DBGeneratedSchema["files"]["columns"], "id" | "original_name" | "original_last_modified" | "data"> & { "added"?: never; "cloud_url"?: never; "content_length"?: never; "content_type"?: never; "deleted"?: never; "deleted_from_storage"?: never; "description"?: never; "etag"?: never; "extension"?: never; "signed_url"?: never; "signed_url_expires"?: never; "storage_key"?: never; "updated"?: never; "url"?: never }; };
82
+ };
83
+
84
+ export type ViewerDBSchema = {
85
+ "correspondence": DBGeneratedSchema["correspondence"] & { insertColumns: never; updateColumns: never; };
86
+ };
87
+
88
+ export type ClientSchemas = [
89
+ { userType: "admin"; schema: AdminDBSchema },
90
+ { userType: "guest" | "member"; schema: GuestDBSchema },
91
+ { userType: "viewer"; schema: ViewerDBSchema },
92
+ ];
93
+
94
+ /** Permissive write inputs across all supplied profiles; tables missing from a profile are optional. */
95
+
96
+ export type ClientDBSchema = {
97
+ "correspondence": DBGeneratedSchema["correspondence"] & { insertColumns: Pick<DBGeneratedSchema["correspondence"]["columns"], "body" | "id" | "note"> & Partial<Pick<DBGeneratedSchema["correspondence"]["columns"], "created_by" | "internal" | "synced">>; updateColumns: Partial<Pick<DBGeneratedSchema["correspondence"]["columns"], "body" | "created_by" | "id" | "internal" | "note" | "synced">>; };
98
+ "files": DBGeneratedSchema["files"] & { insertColumns: Pick<DBGeneratedSchema["files"]["columns"], "id" | "original_name" | "original_last_modified" | "data"> & { "added"?: never; "cloud_url"?: never; "content_length"?: never; "content_type"?: never; "deleted"?: never; "deleted_from_storage"?: never; "description"?: never; "etag"?: never; "extension"?: never; "signed_url"?: never; "signed_url_expires"?: never; "storage_key"?: never; "updated"?: never; "url"?: never }; updateColumns: Pick<DBGeneratedSchema["files"]["columns"], "id" | "original_name" | "original_last_modified" | "data"> & { "added"?: never; "cloud_url"?: never; "content_length"?: never; "content_type"?: never; "deleted"?: never; "deleted_from_storage"?: never; "description"?: never; "etag"?: never; "extension"?: never; "signed_url"?: never; "signed_url_expires"?: never; "storage_key"?: never; "updated"?: never; "url"?: never }; optional: true; };
99
+ "private_table": DBGeneratedSchema["private_table"] & { insertColumns: never; updateColumns: never; optional: true; };
100
+ };
101
+
102
+ export type GeneratedFunctionSchema = Record<string, never>;
@@ -1,4 +1,4 @@
1
- import type { AnyObject, ColumnInfo, OrderBy, PG_COLUMN_UDT_DATA_TYPE, Select, ValidatedColumnInfo } from "prostgles-types";
1
+ import type { AnyObject, CaseSelect, ColumnInfo, OrderBy, PG_COLUMN_UDT_DATA_TYPE, Select, ValidatedColumnInfo } from "prostgles-types";
2
2
  import type { ExistsFilterConfig, PGIdentifier, SortItem } from "../DboBuilder";
3
3
  import type { Awaitable } from "../../PublishParser/publishTypesAndUtils";
4
4
  import type { ParsedJoinPath } from "../ViewHandler/parseJoinPath";
@@ -67,6 +67,11 @@ type ParsedAggregateOptions = {
67
67
  dependencyFields: string[];
68
68
  dependencyExists: ExistsFilterConfig[];
69
69
  };
70
+ type ParsedCaseExpression = {
71
+ query: string;
72
+ dependencyFields: string[];
73
+ dependencyExists: ExistsFilterConfig[];
74
+ };
70
75
  export declare class SelectItemBuilder {
71
76
  select: SelectItemValidated[];
72
77
  private allFields;
@@ -77,6 +82,7 @@ export declare class SelectItemBuilder {
77
82
  private allowedFieldsIncludingComputed;
78
83
  private columns;
79
84
  private parseAggregateOptions?;
85
+ private parseCaseExpression?;
80
86
  constructor(params: {
81
87
  allowedFields: string[];
82
88
  allowedOrderByFields: string[];
@@ -86,12 +92,14 @@ export declare class SelectItemBuilder {
86
92
  isView: boolean;
87
93
  columns: ColumnInfo[];
88
94
  parseAggregateOptions?: (options: AggregateOptions) => Promise<ParsedAggregateOptions>;
95
+ parseCaseExpression?: (expression: CaseSelect) => Promise<ParsedCaseExpression>;
89
96
  });
90
97
  private checkField;
91
98
  private addItem;
92
99
  private addFunction;
93
100
  private addFunctionItem;
94
101
  private addColumn;
102
+ private addCaseExpression;
95
103
  parse: (userSelect: Select, joinParse?: (key: string, parsedJoin: ParsedJoin) => Awaitable<void>) => Promise<void>;
96
104
  parseUserSelect: (userSelect: Select) => Promise<void>;
97
105
  parseUserSelectWithJoins: (userSelect: Select, joinParse?: (key: string, parsedJoin: ParsedJoin) => Awaitable<void>) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/QueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/QueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ const parseFunctionObject = (funcData) => {
25
25
  return { funcName, args };
26
26
  };
27
27
  exports.parseFunctionObject = parseFunctionObject;
28
+ const CASE_SELECT_KEYS = ["$case", "$else"];
29
+ const [CASE_KEY, ELSE_KEY] = CASE_SELECT_KEYS;
28
30
  const aggregateOptionKeys = ["$filter", "$orderBy"];
29
31
  const parseSelectFunctionObject = (funcData) => {
30
32
  const functionData = Object.fromEntries(Object.entries(funcData).filter(([key]) => !(0, prostgles_types_1.includes)(aggregateOptionKeys, key)));
@@ -50,6 +52,7 @@ class SelectItemBuilder {
50
52
  allowedFieldsIncludingComputed;
51
53
  columns;
52
54
  parseAggregateOptions;
55
+ parseCaseExpression;
53
56
  constructor(params) {
54
57
  this.allFields = params.allFields;
55
58
  this.allowedFields = params.allowedFields;
@@ -58,6 +61,7 @@ class SelectItemBuilder {
58
61
  this.functions = params.functions;
59
62
  this.columns = params.columns;
60
63
  this.parseAggregateOptions = params.parseAggregateOptions;
64
+ this.parseCaseExpression = params.parseCaseExpression;
61
65
  this.allowedFieldsIncludingComputed = this.allowedFields.concat(this.computedFields.map((cf) => cf.name));
62
66
  if (!this.allowedFields.length) {
63
67
  if (!this.columns.length) {
@@ -166,6 +170,39 @@ class SelectItemBuilder {
166
170
  selected,
167
171
  });
168
172
  };
173
+ addCaseExpression = async (value, alias) => {
174
+ if (!this.parseCaseExpression) {
175
+ throw "CASE expressions are not supported in this query";
176
+ }
177
+ const invalidKey = Object.keys(value).find((key) => !(0, prostgles_types_1.includes)(CASE_SELECT_KEYS, key));
178
+ if (invalidKey) {
179
+ throw `Invalid CASE expression option: ${invalidKey}`;
180
+ }
181
+ const caseBranches = value[CASE_KEY];
182
+ if (!Array.isArray(caseBranches) || !caseBranches.length) {
183
+ throw "A CASE expression must contain at least one [condition, result] branch";
184
+ }
185
+ const branches = caseBranches.map((branch) => {
186
+ if (!Array.isArray(branch) || branch.length !== 2 || !(0, prostgles_types_1.isObject)(branch[0])) {
187
+ throw "Each CASE branch must be a [condition, result] tuple";
188
+ }
189
+ return [branch[0], branch[1]];
190
+ });
191
+ const caseExpression = {
192
+ [CASE_KEY]: branches,
193
+ ...(Object.hasOwn(value, ELSE_KEY) ? { [ELSE_KEY]: value[ELSE_KEY] } : {}),
194
+ };
195
+ const parsed = await this.parseCaseExpression(caseExpression);
196
+ this.addItem({
197
+ type: "function",
198
+ alias,
199
+ fields: [],
200
+ getQuery: () => parsed.query,
201
+ selected: true,
202
+ dependencyFields: parsed.dependencyFields,
203
+ dependencyExists: parsed.dependencyExists,
204
+ });
205
+ };
169
206
  parse = async (userSelect, joinParse) => {
170
207
  if (userSelect === "") {
171
208
  return;
@@ -217,6 +254,10 @@ class SelectItemBuilder {
217
254
  /* Aggregations and functions */
218
255
  }
219
256
  else if (typeof userSelectValue === "string" || (0, prostgles_types_1.isObject)(userSelectValue)) {
257
+ if ((0, prostgles_types_1.isObject)(userSelectValue) && CASE_KEY in userSelectValue) {
258
+ await this.addCaseExpression(userSelectValue, key);
259
+ return;
260
+ }
220
261
  const functionEntries = (0, prostgles_types_1.isObject)(userSelectValue) ?
221
262
  Object.entries(userSelectValue).filter(([key]) => !(0, prostgles_types_1.includes)(aggregateOptionKeys, key))
222
263
  : [];
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/QueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/QueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getNewQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getNewQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EAElB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAM9D,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAI7D,eAAO,MAAM,WAAW,GACtB,aAAa,WAAW,EACxB,QAAQ,MAAM,EACd,eAAc,YAAY,GAAG;IAAE,mBAAmB,CAAC,EAAE,YAAY,CAAA;CAAE,aAAK,EACxE,YAAY,eAAe,GAAG,SAAS,EACvC,aAAa,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,QAAQ,CAkNlB,CAAC"}
1
+ {"version":3,"file":"getNewQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getNewQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EAElB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAM9D,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAI7D,eAAO,MAAM,WAAW,GACtB,aAAa,WAAW,EACxB,QAAQ,MAAM,EACd,eAAc,YAAY,GAAG;IAAE,mBAAmB,CAAC,EAAE,YAAY,CAAA;CAAE,aAAK,EACxE,YAAY,eAAe,GAAG,SAAS,EACvC,aAAa,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,QAAQ,CA6OlB,CAAC"}
@@ -28,8 +28,22 @@ const getNewQuery = async (viewHandler, filter, selectParams = {}, tableRules, l
28
28
  : viewHandler.parseFieldFilter(selectRule.filterFields);
29
29
  const joinQueries = [];
30
30
  const { select: userSelect = "*" } = selectParams;
31
- const aggregateTableAlias = selectParams.joinExpressionAlias ??
31
+ const selectExpressionAlias = selectParams.joinExpressionAlias ??
32
32
  { raw: getSelectQuery_1.ROOT_TABLE_ALIAS, escaped: getSelectQuery_1.ROOT_TABLE_ALIAS };
33
+ const parseExpressionFilter = (filter, errorPrefix) => {
34
+ if (!(0, prostgles_types_1.isObject)(filter)) {
35
+ throw `Invalid ${errorPrefix}. Expecting an object`;
36
+ }
37
+ return (0, prepareWhere_1.prepareWhere)(viewHandler, {
38
+ filter,
39
+ select: undefined,
40
+ filterFields: allowedFilterFields,
41
+ tableAlias: selectExpressionAlias,
42
+ localParams,
43
+ addWhere: false,
44
+ tableRule: tableRules,
45
+ });
46
+ };
33
47
  const selectItemBuilder = new QueryBuilder_1.SelectItemBuilder({
34
48
  allowedFields: allowedSelectFields,
35
49
  allowedOrderByFields,
@@ -39,22 +53,11 @@ const getNewQuery = async (viewHandler, filter, selectParams = {}, tableRules, l
39
53
  allFields: viewHandler.column_names.slice(0),
40
54
  columns,
41
55
  parseAggregateOptions: async ({ $filter, $orderBy }) => {
42
- if ($filter !== undefined && !(0, prostgles_types_1.isObject)($filter)) {
43
- throw `Invalid aggregate $filter. Expecting an object`;
44
- }
45
- const filterInfo = $filter === undefined ? undefined : (await (0, prepareWhere_1.prepareWhere)(viewHandler, {
46
- filter: $filter,
47
- select: undefined,
48
- filterFields: allowedFilterFields,
49
- tableAlias: aggregateTableAlias,
50
- localParams,
51
- addWhere: false,
52
- tableRule: tableRules,
53
- }));
54
- const orderByItems = (0, prepareSortItems_1.prepareSortItems)($orderBy, allowedOrderByFields, aggregateTableAlias, [], []);
56
+ const filterInfo = $filter === undefined ? undefined : (await parseExpressionFilter($filter, "aggregate $filter"));
57
+ const orderByItems = (0, prepareSortItems_1.prepareSortItems)($orderBy, allowedOrderByFields, selectExpressionAlias, [], []);
55
58
  return {
56
59
  filter: filterInfo?.condition,
57
- orderBy: (0, DboBuilder_1.prepareOrderByQuery)(orderByItems, aggregateTableAlias.raw)[0],
60
+ orderBy: (0, DboBuilder_1.prepareOrderByQuery)(orderByItems, selectExpressionAlias.raw)[0],
58
61
  dependencyFields: [
59
62
  ...(filterInfo?.columnsUsed ?? []),
60
63
  ...orderByItems.map(({ key }) => key),
@@ -62,6 +65,25 @@ const getNewQuery = async (viewHandler, filter, selectParams = {}, tableRules, l
62
65
  dependencyExists: filterInfo?.exists ?? [],
63
66
  };
64
67
  },
68
+ parseCaseExpression: async (caseExpression) => {
69
+ const parsedBranches = await Promise.all(caseExpression.$case.map(async ([condition, result]) => {
70
+ const filterInfo = await parseExpressionFilter(condition, "CASE condition");
71
+ if (!filterInfo.condition) {
72
+ throw "CASE conditions cannot be empty";
73
+ }
74
+ return {
75
+ query: `WHEN ${filterInfo.condition} THEN ${DboBuilder_1.pgp.as.format("$1", [result])}`,
76
+ filterInfo,
77
+ };
78
+ }));
79
+ return {
80
+ query: `CASE ${parsedBranches.map(({ query }) => query).join(" ")}${Object.hasOwn(caseExpression, "$else") ?
81
+ ` ELSE ${DboBuilder_1.pgp.as.format("$1", [caseExpression.$else])}`
82
+ : ""} END`,
83
+ dependencyFields: parsedBranches.flatMap(({ filterInfo }) => filterInfo.columnsUsed),
84
+ dependencyExists: parsedBranches.flatMap(({ filterInfo }) => filterInfo.exists),
85
+ };
86
+ },
65
87
  });
66
88
  await selectItemBuilder.parseUserSelectWithJoins(userSelect, async (joinColumnName, parsedJoin) => {
67
89
  const j_selectParams = {};
@@ -1 +1 @@
1
- {"version":3,"file":"getNewQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getNewQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getNewQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getNewQuery.ts"],"names":[],"mappings":";;;AACA,qDAAsE;AAEtE,8CAOuB;AAEvB,gEAA6D;AAC7D,sEAAmE;AACnE,8DAAoF;AACpF,iEAA8D;AAC9D,qDAAkD;AAElD,iDAAmD;AACnD,qDAAoD;AAE7C,MAAM,WAAW,GAAG,KAAK,EAC9B,WAAwB,EACxB,MAAc,EACd,eAAsE,EAAE,EACxE,UAAuC,EACvC,WAAoC,EACjB,EAAE;IACrB,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAEhC,MAAM,UAAU,GAAG,UAAU,EAAE,MAAM,CAAC;IACtC,IAAI,UAAU,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QACtC,MAAM,2BAA2B,WAAW,CAAC,IAAI,6BAA6B,CAAC;IACjF,CAAC;IAED,wEAAwE;IACxE,MAAM,oBAAoB,GACxB,CAAC,UAAU,CAAC,CAAC;QACX,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,mBAAmB,GACvB,CAAC,UAAU,CAAC,CAAC;QACX,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,mBAAmB,GACvB,CAAC,UAAU,CAAC,CAAC;QACX,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAE1D,MAAM,WAAW,GAAmB,EAAE,CAAC;IAEvC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC;IAClD,MAAM,qBAAqB,GACzB,YAAY,CAAC,mBAAmB;QAC/B,EAAE,GAAG,EAAE,iCAAgB,EAAE,OAAO,EAAE,iCAAgB,EAA0B,CAAC;IAEhF,MAAM,qBAAqB,GAAG,CAAC,MAAiB,EAAE,WAAmB,EAAE,EAAE;QACvE,IAAI,CAAC,IAAA,0BAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,WAAW,WAAW,uBAAuB,CAAC;QACtD,CAAC;QACD,OAAO,IAAA,2BAAY,EAAC,WAAW,EAAE;YAC/B,MAAM;YACN,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,mBAAmB;YACjC,UAAU,EAAE,qBAAqB;YACjC,WAAW;YACX,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,gCAAiB,CAAC;QAC9C,aAAa,EAAE,mBAAmB;QAClC,oBAAoB;QACpB,cAAc,EAAE,iCAAe;QAC/B,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,SAAS,EAAE,qBAAS;QACpB,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,OAAO;QACP,qBAAqB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;YACrD,MAAM,UAAU,GACd,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAClC,MAAM,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAC1D,CAAC;YACJ,MAAM,YAAY,GAAG,IAAA,mCAAgB,EACnC,QAAQ,EACR,oBAAoB,EACpB,qBAAqB,EACrB,EAAE,EACF,EAAE,CACH,CAAC;YACF,OAAO;gBACL,MAAM,EAAE,UAAU,EAAE,SAAS;gBAC7B,OAAO,EAAE,IAAA,gCAAmB,EAAC,YAAY,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxE,gBAAgB,EAAE;oBAChB,GAAG,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC;oBAClC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;iBACtC;gBACD,gBAAgB,EAAE,UAAU,EAAE,MAAM,IAAI,EAAE;aAC3C,CAAC;QACJ,CAAC;QACD,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC5C,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE;gBACrD,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAC5E,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;oBAC1B,MAAM,iCAAiC,CAAC;gBAC1C,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,QAAQ,UAAU,CAAC,SAAS,SAAS,gBAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;oBAC3E,UAAU;iBACX,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YACF,OAAO;gBACL,KAAK,EAAE,QAAQ,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAC/D,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;oBACtC,SAAS,gBAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;oBACxD,CAAC,CAAC,EACJ,MAAM;gBACN,gBAAgB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;gBACpF,gBAAgB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;aAChF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,iBAAiB,CAAC,wBAAwB,CAC9C,UAAU,EACV,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE;QACnC,MAAM,cAAc,GAAiB,EAAE,CAAC;QACxC,IAAI,QAAQ,GAAW,EAAE,EACvB,YAAY,GAAG,IAAI,CAAC;QAEtB,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,IAAA,wBAAM,EAAC,cAAc,CAAC,EAAE,CAAC;QACrF,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC;YAC3B,OAAO,EAAE,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;YAC/E,SAAS,EAAE,WAAW,CAAC,IAAI;YAC3B,WAAW,EAAE,WAAW;YACxB,gBAAgB,EAAE,IAAI;YACtB,wBAAwB,EAAE,IAAI;SAC/B,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC9B,cAAc,CAAC,MAAM,GAAG,GAAG,CAAC;QAC9B,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAErC,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;YAEtC,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;YACnC,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC;YACjD,cAAc,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YACxC,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAC1C,cAAc,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YAC5C,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC5C,CAAC;QAED,MAAM,aAAa,GACjB,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc;YAC7C,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM;gBACrC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,gBAAgB,CAAC;QACzB,CAAC;QACD,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,gBAAgB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,0FAA0F,CAAC;QAChJ,CAAC;QAED,IAAI,cAA2C,CAAC;QAChD,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,WAAW,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YACzC,OAAO,GAAG,KAAK,CAAC;YAChB,cAAc,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,2BAA2B,CACtF;gBACE,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,WAAW,CAAC,SAAS;aACjC,EACD,WAAW,CAAC,KAAK,CAClB,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,GAAG,OAAO,IAAI,cAAc,EAAE,MAAM,CAAC;QACjE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,MAAM,mBAAmB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,4BAA4B,CAAC;QACrF,CAAC;QACD,MAAM,SAAS,GAAa,MAAM,IAAA,mBAAW,EAC3C,gBAAgB,EAChB,QAAQ,EACR,EAAE,GAAG,cAAc,EAAE,mBAAmB,EAAE,EAC1C,cAAc,EACd,WAAW,CACZ,CAAC;QACF,SAAS,CAAC,UAAU,GAAG,YAAY,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC;YACf,GAAG,SAAS;YACZ,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,KAAK;SACnD,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAExC,MAAM,iBAAiB,GAAuB;QAC5C,MAAM;QACN,MAAM;QACN,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;QAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;QAC9C,UAAU,EAAE,YAAY,CAAC,mBAAmB;QAC5C,WAAW;QACX,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,KAAK;QACf,YAAY;KACb,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAY,EAAC,WAAW,EAAE;QACjD,GAAG,iBAAiB;QACpB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,UAAU,GACd,IAAA,yBAAO,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACzC,MAAM,IAAA,2BAAY,EAAC,WAAW,EAAE;QAC9B,GAAG,IAAA,0BAAQ,EAAC,iBAAiB,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,UAAU,EACR,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK;YACd,CAAC,CAAC,EAAE,GAAG,EAAE,iCAAgB,EAAE,OAAO,EAAE,iCAAgB,EAAE;QACxD,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAC;IACJ,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE9E,MAAM,QAAQ,GAAa;QACzB,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,MAAM;QACN,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE;QAC3D,UAAU,EAAE,YAAY,CAAC,mBAAmB;QAC5C,MAAM;QACN,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,SAAS,EAAE,UAAU;QACrB,MAAM,EAAE,UAAU,EAAE,SAAS,IAAI,EAAE;QACnC,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC;QAC5D,YAAY,EAAE,IAAA,mCAAgB,EAC5B,YAAY,CAAC,OAAO,EACpB,oBAAoB,EACpB,YAAY,CAAC,mBAAmB,EAChC,MAAM,EACN,WAAW,CACZ;QACD,MAAM,EAAE,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC;KAChD,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAnPW,QAAA,WAAW,eAmPtB;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAAe,EAAE,EAAE;IAC7C,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,QAAmC,IAAI,EACvC,CAAsB,EACP,EAAE;IACjB,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,8CAA8C,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,gBAAgB,CAAC;IACzB,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,2DAA2D;IAC3D,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC/E,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;IACvF,CAAC;SAAM,CAAC;QACN,2DAA2D;QAC3D,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,QAAS,EAAE,CAAC;YAC1F,MAAM,CACJ,oBAAoB,MAAM,8CAA8C,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAC7F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { TableHandlers } from "../DboBuilder/DboBuilder";
2
2
  import type { FileTableConfig } from "../ProstglesTypes";
3
3
  import type { OnCommit } from "../PublishParser/publishTypesAndUtils";
4
- import type { FileTableRow } from "./fileTableDefinitions";
4
+ import { type FileTableRow } from "./fileTableDefinitions";
5
5
  export declare const saveFileVersion: (config: FileTableConfig, row: FileTableRow, dbx: TableHandlers, onCommit: OnCommit) => Promise<void>;
6
6
  export declare const backfillFileVersions: (dbo: TableHandlers, config: FileTableConfig) => Promise<void>;
7
7
  //# sourceMappingURL=saveFileVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"saveFileVersion.d.ts","sourceRoot":"","sources":["../../lib/StorageClient/saveFileVersion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAA6B,MAAM,wBAAwB,CAAC;AAItF,eAAO,MAAM,eAAe,GAC1B,QAAQ,eAAe,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,UAAU,QAAQ,kBAkCnB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,KAAK,aAAa,EAAE,QAAQ,eAAe,kBAiBrF,CAAC"}
1
+ {"version":3,"file":"saveFileVersion.d.ts","sourceRoot":"","sources":["../../lib/StorageClient/saveFileVersion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAIhC,eAAO,MAAM,eAAe,GAC1B,QAAQ,eAAe,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,UAAU,QAAQ,kBA2CnB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,KAAK,aAAa,EAAE,QAAQ,eAAe,kBAiBrF,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.backfillFileVersions = exports.saveFileVersion = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
5
  const deleteUnreferencedFile_1 = require("./deleteUnreferencedFile");
6
+ const fileTableDefinitions_1 = require("./fileTableDefinitions");
6
7
  const fileVersionUtils_1 = require("./fileVersionUtils");
7
8
  const getFileStorageKey_1 = require("./getFileStorageKey");
8
9
  const saveFileVersion = async (config, row, dbx, onCommit) => {
@@ -20,6 +21,10 @@ const saveFileVersion = async (config, row, dbx, onCommit) => {
20
21
  conflictColumns: ["file_id", "version"],
21
22
  },
22
23
  });
24
+ const customColumns = versionColumns.filter((column) => !Object.hasOwn(fileTableDefinitions_1.FILE_VERSION_TABLE_COLUMN_DEFINITIONS, column));
25
+ if (customColumns.length) {
26
+ await versions.update({ file_id: row.id, version }, (0, prostgles_types_1.pickKeys)(row, customColumns));
27
+ }
23
28
  const { maxVersions } = config.versioning;
24
29
  if (maxVersions === undefined)
25
30
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"saveFileVersion.js","sourceRoot":"","sources":["../../lib/StorageClient/saveFileVersion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"saveFileVersion.js","sourceRoot":"","sources":["../../lib/StorageClient/saveFileVersion.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
 
6
6
  import type {
7
7
  AnyObject,
8
+ CaseSelect,
8
9
  ColumnInfo,
9
10
  OrderBy,
10
11
  PG_COLUMN_UDT_DATA_TYPE,
@@ -103,6 +104,15 @@ type ParsedAggregateOptions = {
103
104
  dependencyExists: ExistsFilterConfig[];
104
105
  };
105
106
 
107
+ const CASE_SELECT_KEYS = ["$case", "$else"] as const satisfies readonly (keyof CaseSelect)[];
108
+ const [CASE_KEY, ELSE_KEY] = CASE_SELECT_KEYS;
109
+
110
+ type ParsedCaseExpression = {
111
+ query: string;
112
+ dependencyFields: string[];
113
+ dependencyExists: ExistsFilterConfig[];
114
+ };
115
+
106
116
  const aggregateOptionKeys = ["$filter", "$orderBy"] as const;
107
117
  const parseSelectFunctionObject = (funcData: Record<string, unknown>) => {
108
118
  const functionData = Object.fromEntries(
@@ -132,6 +142,7 @@ export class SelectItemBuilder {
132
142
  private allowedFieldsIncludingComputed: string[];
133
143
  private columns: ColumnInfo[];
134
144
  private parseAggregateOptions?: (options: AggregateOptions) => Promise<ParsedAggregateOptions>;
145
+ private parseCaseExpression?: (expression: CaseSelect) => Promise<ParsedCaseExpression>;
135
146
 
136
147
  constructor(params: {
137
148
  allowedFields: string[];
@@ -142,6 +153,7 @@ export class SelectItemBuilder {
142
153
  isView: boolean;
143
154
  columns: ColumnInfo[];
144
155
  parseAggregateOptions?: (options: AggregateOptions) => Promise<ParsedAggregateOptions>;
156
+ parseCaseExpression?: (expression: CaseSelect) => Promise<ParsedCaseExpression>;
145
157
  }) {
146
158
  this.allFields = params.allFields;
147
159
  this.allowedFields = params.allowedFields;
@@ -150,6 +162,7 @@ export class SelectItemBuilder {
150
162
  this.functions = params.functions;
151
163
  this.columns = params.columns;
152
164
  this.parseAggregateOptions = params.parseAggregateOptions;
165
+ this.parseCaseExpression = params.parseCaseExpression;
153
166
  this.allowedFieldsIncludingComputed = this.allowedFields.concat(
154
167
  this.computedFields.map((cf) => cf.name),
155
168
  );
@@ -291,6 +304,43 @@ export class SelectItemBuilder {
291
304
  });
292
305
  };
293
306
 
307
+ private addCaseExpression = async (value: Record<string, unknown>, alias: string) => {
308
+ if (!this.parseCaseExpression) {
309
+ throw "CASE expressions are not supported in this query";
310
+ }
311
+
312
+ const invalidKey = Object.keys(value).find((key) => !includes(CASE_SELECT_KEYS, key));
313
+ if (invalidKey) {
314
+ throw `Invalid CASE expression option: ${invalidKey}`;
315
+ }
316
+
317
+ const caseBranches = value[CASE_KEY];
318
+ if (!Array.isArray(caseBranches) || !caseBranches.length) {
319
+ throw "A CASE expression must contain at least one [condition, result] branch";
320
+ }
321
+
322
+ const branches = caseBranches.map((branch) => {
323
+ if (!Array.isArray(branch) || branch.length !== 2 || !isObject(branch[0])) {
324
+ throw "Each CASE branch must be a [condition, result] tuple";
325
+ }
326
+ return [branch[0], branch[1]] satisfies CaseSelect[typeof CASE_KEY][number];
327
+ });
328
+ const caseExpression = {
329
+ [CASE_KEY]: branches,
330
+ ...(Object.hasOwn(value, ELSE_KEY) ? { [ELSE_KEY]: value[ELSE_KEY] } : {}),
331
+ } satisfies CaseSelect;
332
+ const parsed = await this.parseCaseExpression(caseExpression);
333
+ this.addItem({
334
+ type: "function",
335
+ alias,
336
+ fields: [],
337
+ getQuery: () => parsed.query,
338
+ selected: true,
339
+ dependencyFields: parsed.dependencyFields,
340
+ dependencyExists: parsed.dependencyExists,
341
+ });
342
+ };
343
+
294
344
  parse = async (
295
345
  userSelect: Select,
296
346
  joinParse?: (key: string, parsedJoin: ParsedJoin) => Awaitable<void>,
@@ -356,6 +406,11 @@ export class SelectItemBuilder {
356
406
 
357
407
  /* Aggregations and functions */
358
408
  } else if (typeof userSelectValue === "string" || isObject(userSelectValue)) {
409
+ if (isObject(userSelectValue) && CASE_KEY in userSelectValue) {
410
+ await this.addCaseExpression(userSelectValue, key);
411
+ return;
412
+ }
413
+
359
414
  const functionEntries =
360
415
  isObject(userSelectValue) ?
361
416
  Object.entries(userSelectValue).filter(
@@ -1,8 +1,9 @@
1
- import type { SelectParams } from "prostgles-types";
1
+ import type { AnyObject, SelectParams } from "prostgles-types";
2
2
  import { asName, isEmpty, isObject, omitKeys } from "prostgles-types";
3
3
  import type { ParsedTableRule } from "../../PublishParser/PublishParser";
4
4
  import {
5
5
  prepareOrderByQuery,
6
+ pgp,
6
7
  type Filter,
7
8
  type LocalParams,
8
9
  type PGIdentifier,
@@ -49,10 +50,25 @@ export const getNewQuery = async (
49
50
  const joinQueries: NewQueryJoin[] = [];
50
51
 
51
52
  const { select: userSelect = "*" } = selectParams;
52
- const aggregateTableAlias =
53
+ const selectExpressionAlias =
53
54
  selectParams.joinExpressionAlias ??
54
55
  ({ raw: ROOT_TABLE_ALIAS, escaped: ROOT_TABLE_ALIAS } satisfies PGIdentifier);
55
56
 
57
+ const parseExpressionFilter = (filter: AnyObject, errorPrefix: string) => {
58
+ if (!isObject(filter)) {
59
+ throw `Invalid ${errorPrefix}. Expecting an object`;
60
+ }
61
+ return prepareWhere(viewHandler, {
62
+ filter,
63
+ select: undefined,
64
+ filterFields: allowedFilterFields,
65
+ tableAlias: selectExpressionAlias,
66
+ localParams,
67
+ addWhere: false,
68
+ tableRule: tableRules,
69
+ });
70
+ };
71
+
56
72
  const selectItemBuilder = new SelectItemBuilder({
57
73
  allowedFields: allowedSelectFields,
58
74
  allowedOrderByFields,
@@ -62,31 +78,20 @@ export const getNewQuery = async (
62
78
  allFields: viewHandler.column_names.slice(0),
63
79
  columns,
64
80
  parseAggregateOptions: async ({ $filter, $orderBy }) => {
65
- if ($filter !== undefined && !isObject($filter)) {
66
- throw `Invalid aggregate $filter. Expecting an object`;
67
- }
68
81
  const filterInfo =
69
82
  $filter === undefined ? undefined : (
70
- await prepareWhere(viewHandler, {
71
- filter: $filter,
72
- select: undefined,
73
- filterFields: allowedFilterFields,
74
- tableAlias: aggregateTableAlias,
75
- localParams,
76
- addWhere: false,
77
- tableRule: tableRules,
78
- })
83
+ await parseExpressionFilter($filter, "aggregate $filter")
79
84
  );
80
85
  const orderByItems = prepareSortItems(
81
86
  $orderBy,
82
87
  allowedOrderByFields,
83
- aggregateTableAlias,
88
+ selectExpressionAlias,
84
89
  [],
85
90
  [],
86
91
  );
87
92
  return {
88
93
  filter: filterInfo?.condition,
89
- orderBy: prepareOrderByQuery(orderByItems, aggregateTableAlias.raw)[0],
94
+ orderBy: prepareOrderByQuery(orderByItems, selectExpressionAlias.raw)[0],
90
95
  dependencyFields: [
91
96
  ...(filterInfo?.columnsUsed ?? []),
92
97
  ...orderByItems.map(({ key }) => key),
@@ -94,6 +99,29 @@ export const getNewQuery = async (
94
99
  dependencyExists: filterInfo?.exists ?? [],
95
100
  };
96
101
  },
102
+ parseCaseExpression: async (caseExpression) => {
103
+ const parsedBranches = await Promise.all(
104
+ caseExpression.$case.map(async ([condition, result]) => {
105
+ const filterInfo = await parseExpressionFilter(condition, "CASE condition");
106
+ if (!filterInfo.condition) {
107
+ throw "CASE conditions cannot be empty";
108
+ }
109
+ return {
110
+ query: `WHEN ${filterInfo.condition} THEN ${pgp.as.format("$1", [result])}`,
111
+ filterInfo,
112
+ };
113
+ }),
114
+ );
115
+ return {
116
+ query: `CASE ${parsedBranches.map(({ query }) => query).join(" ")}${
117
+ Object.hasOwn(caseExpression, "$else") ?
118
+ ` ELSE ${pgp.as.format("$1", [caseExpression.$else])}`
119
+ : ""
120
+ } END`,
121
+ dependencyFields: parsedBranches.flatMap(({ filterInfo }) => filterInfo.columnsUsed),
122
+ dependencyExists: parsedBranches.flatMap(({ filterInfo }) => filterInfo.exists),
123
+ };
124
+ },
97
125
  });
98
126
 
99
127
  await selectItemBuilder.parseUserSelectWithJoins(
@@ -4,7 +4,11 @@ import type { TableHandler } from "../DboBuilder/TableHandler/TableHandler";
4
4
  import type { FileTableConfig } from "../ProstglesTypes";
5
5
  import type { OnCommit } from "../PublishParser/publishTypesAndUtils";
6
6
  import { deleteUnreferencedFile } from "./deleteUnreferencedFile";
7
- import type { FileTableRow, FileVersionTableInsertRow } from "./fileTableDefinitions";
7
+ import {
8
+ FILE_VERSION_TABLE_COLUMN_DEFINITIONS,
9
+ type FileTableRow,
10
+ type FileVersionTableInsertRow,
11
+ } from "./fileTableDefinitions";
8
12
  import { getFileRevisionsTableHandler, getFileTableHandler } from "./fileVersionUtils";
9
13
  import { getFileStorageKey } from "./getFileStorageKey";
10
14
 
@@ -28,6 +32,15 @@ export const saveFileVersion = async (
28
32
  conflictColumns: ["file_id", "version"],
29
33
  },
30
34
  });
35
+ const customColumns = versionColumns.filter(
36
+ (column) => !Object.hasOwn(FILE_VERSION_TABLE_COLUMN_DEFINITIONS, column),
37
+ );
38
+ if (customColumns.length) {
39
+ await (versions as TableHandler).update(
40
+ { file_id: row.id, version },
41
+ pickKeys(row, customColumns as (keyof FileTableRow)[]),
42
+ );
43
+ }
31
44
 
32
45
  const { maxVersions } = config.versioning;
33
46
  if (maxVersions === undefined) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.636",
3
+ "version": "4.2.638",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -57,7 +57,7 @@
57
57
  "pg": "^8.23.0",
58
58
  "pg-cursor": "^2.22.0",
59
59
  "pg-promise": "^12.7.1",
60
- "prostgles-types": "^4.0.292"
60
+ "prostgles-types": "^4.0.294"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@eslint/js": "^9.22.0",