prostgles-server 4.2.637 → 4.2.639

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":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,OAAO,EACP,uBAAuB,EACvB,MAAM,EACN,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,CAAC;IAC3C,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,UAAU,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACzC,GAAG,CACA;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,CAAC;IAC/D,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CACJ,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAE9B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,YAAY,CAAC;IACxB,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG;IACpC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG;IACpC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,UAAU,OAAO,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAatF,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;CACxC,CAAC;AAKF,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;CACxC,CAAC;AAoBF,qBAAa,iBAAiB;IAC5B,MAAM,EAAE,mBAAmB,EAAE,CAAM;IACnC,OAAO,CAAC,SAAS,CAAW;IAE5B,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,oBAAoB,CAAW;IACvC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,8BAA8B,CAAW;IACjD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,qBAAqB,CAAC,CAAiE;IAC/F,OAAO,CAAC,mBAAmB,CAAC,CAA4D;gBAE5E,MAAM,EAAE;QAClB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,cAAc,EAAE,SAAS,EAAE,CAAC;QAC5B,SAAS,EAAE,YAAY,EAAE,CAAC;QAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,UAAU,EAAE,CAAC;QACtB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACvF,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;KACjF;IAgCD,OAAO,CAAC,UAAU,CAehB;IAEF,OAAO,CAAC,OAAO,CASb;IAEF,OAAO,CAAC,WAAW,CA0BjB;IAEF,OAAO,CAAC,eAAe,CA4BrB;IAEF,OAAO,CAAC,SAAS,CA8Bf;IAEF,OAAO,CAAC,iBAAiB,CAmCvB;IAEF,KAAK,GACH,YAAY,MAAM,EAClB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,KACnE,OAAO,CAAC,IAAI,CAAC,CAsId;IAEF,eAAe,GAAI,YAAY,MAAM,mBAA4B;IACjE,wBAAwB,eA3IV,MAAM,cACN,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,KACnE,OAAO,CAAC,IAAI,CAAC,CAyIsB;CACvC"}
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCreateSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,CAAC,oBAAoB,CAAC,EACvC,uBAAuB,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAChF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,IAAI,EAAE,EACN,wCAAwC,oBAAoB,EAC5D,mBAAmB,MAAM;;;;;;;;;;0BAqFH,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;0BAUb,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;;EA9DhD,CAAC"}
1
+ {"version":3,"file":"getCreateSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,CAAC,oBAAoB,CAAC,EACvC,uBAAuB,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAChF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,IAAI,EAAE,EACN,wCAAwC,oBAAoB,EAC5D,mBAAmB,MAAM;;;;;;;;;;0BAqFH,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;0BAUb,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;;EA9DhD,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tableConfigWithMigrations = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
5
  const fetchTableConstraints_1 = require("./fetchTableConstraints");
6
+ const getTableConfigVersion_1 = require("./getTableConfigVersion");
6
7
  const tableConfigWithMigrations = async (db, { tableConfig, tableConfigMigrations }, file_table_schema) => {
7
8
  if (!tableConfigMigrations)
8
9
  return { config: tableConfig };
@@ -33,8 +34,8 @@ exports.tableConfigWithMigrations = tableConfigWithMigrations;
33
34
  * THEN will return the migration function
34
35
  */
35
36
  const getMigration = async (db, versionTableName, tableConfig, { version, onMigrate }, file_table_queries) => {
36
- const maxVersion = Number((await db.oneOrNone(`SELECT MAX(id) as v FROM ${(0, prostgles_types_1.asName)(versionTableName)}`))?.v);
37
- const latestVersion = Number.isFinite(maxVersion) ? maxVersion : undefined;
37
+ const latestVersion = (0, getTableConfigVersion_1.getTableConfigVersion)((await db.oneOrNone(`SELECT MAX(id) as v FROM ${(0, prostgles_types_1.asName)(versionTableName)}`))
38
+ ?.v);
38
39
  if (latestVersion === version) {
39
40
  const isLatest = (await db.oneOrNone(`
40
41
  SELECT 1 as v
@@ -1 +1 @@
1
- {"version":3,"file":"getCreateSchemaQueries.js","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getCreateSchemaQueries.js","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":";;;AACA,qDAAyC;AAGzC,mEAAgE;AAEhE,mEAAgE;AASzD,MAAM,yBAAyB,GAAG,KAAK,EAC5C,EAAM,EACN,EAAE,WAAW,EAAE,qBAAqB,EAAwB,EAC5D,iBAAyB,EACzB,EAAE;IACF,IAAI,CAAC,qBAAqB;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC3D,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,CAAC;IAEtE,IAAI,WAAW,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,UAAU,gBAAgB,iFAAiF,CAC5G,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAgB;QAC7B,GAAG,WAAW;QACd,CAAC,gBAAgB,CAAC,EAAE;YAClB,OAAO,EAAE;gBACP,EAAE,EAAE,wBAAwB;gBAC5B,YAAY,EAAE,gBAAgB;gBAC9B,kBAAkB,EAAE,MAAM;gBAC1B,WAAW,EAAE,yBAAyB;aACvC;SACF;KACF,CAAC;IAEF,OAAO;QACL,SAAS;QACT,OAAO,EAAE,MAAM,YAAY,CACzB,EAAE,EACF,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,iBAAiB,CAClB;KACF,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,yBAAyB,6BAoCpC;AAEF;;;;GAIG;AACH,MAAM,YAAY,GAAG,KAAK,EACxB,EAAM,EACN,gBAAwB,EACxB,WAAwB,EACxB,EAAE,OAAO,EAAE,SAAS,EAAwD,EAC5E,kBAA0B,EAC1B,EAAE;IACF,MAAM,aAAa,GAAG,IAAA,6CAAqB,EACzC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAuB,4BAA4B,IAAA,wBAAM,EAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAChG,EAAE,CAAC,CACN,CAAC;IAEF,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CACf,MAAM,EAAE,CAAC,SAAS,CAChB;;iBAES,IAAA,wBAAM,EAAC,gBAAgB,CAAC;;;;SAIhC,EACD,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAC3D,CACF,EAAE,CAAC,CAAC;QAEL,IAAI,QAAQ,EAAE,CAAC;YACb;;eAEG;YACH,OAAO;gBACL,gBAAgB,EAAE,IAAI;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,EAAE,CAAsB,EAAE,EAAE;QACvD,MAAM,CAAC,CAAC,IAAI,CACV,eAAe,IAAA,wBAAM,EAAC,gBAAgB,CAAC,wGAAwG,EAC/I,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAC3D,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO;YACL,YAAY,EAAE,CAAC,CAAsB,EAAE,EAAE;gBACvC,OAAO;oBACL,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;iBAC1C,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,GAAG,OAAO,EAAE,CAAC;QAC5B,OAAO;YACL,YAAY,EAAE,KAAK,EAAE,CAAsB,EAAE,EAAE;gBAC7C,MAAM,SAAS,CAAC;oBACd,EAAE,EAAE,CAAC;oBACL,UAAU,EAAE,aAAa;oBACzB,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CACpC,IAAA,6CAAqB,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;iBAC9D,CAAC,CAAC;gBAEH,OAAO;oBACL,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;iBAC1C,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const getTableConfigVersion: (value: string | null | undefined) => number | undefined;
2
+ //# sourceMappingURL=getTableConfigVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTableConfigVersion.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getTableConfigVersion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,uBAKrE,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTableConfigVersion = void 0;
4
+ const getTableConfigVersion = (value) => {
5
+ if (value === null || value === undefined)
6
+ return;
7
+ const version = Number(value);
8
+ return Number.isFinite(version) ? version : undefined;
9
+ };
10
+ exports.getTableConfigVersion = getTableConfigVersion;
11
+ //# sourceMappingURL=getTableConfigVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTableConfigVersion.js","sourceRoot":"","sources":["../../lib/TableConfig/getTableConfigVersion.ts"],"names":[],"mappings":";;;AAAO,MAAM,qBAAqB,GAAG,CAAC,KAAgC,EAAE,EAAE;IACxE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAElD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runMigrations.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/runMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI9D,wBAAsB,aAAa,CACjC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EACtB,EACE,qBAAqB,EACrB,WAAW,GACZ,EAAE,IAAI,CAAC,oBAAoB,EAAE,uBAAuB,GAAG,aAAa,CAAC,EACtE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE;;;eAuCjD"}
1
+ {"version":3,"file":"runMigrations.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/runMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,wBAAsB,aAAa,CACjC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EACtB,EACE,qBAAqB,EACrB,WAAW,GACZ,EAAE,IAAI,CAAC,oBAAoB,EAAE,uBAAuB,GAAG,aAAa,CAAC,EACtE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE;;;eAgDjD"}
@@ -3,19 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runMigrations = runMigrations;
4
4
  const PubSubManagerUtils_1 = require("../PubSubManager/PubSubManagerUtils");
5
5
  const fetchTableConstraints_1 = require("./fetchTableConstraints");
6
+ const getTableConfigVersion_1 = require("./getTableConfigVersion");
6
7
  async function runMigrations(t, { tableConfigMigrations, tableConfig, }, { asName }) {
7
8
  if (!tableConfigMigrations)
8
9
  return;
9
10
  const { onMigrate, version, versionTableName = "schema_version" } = tableConfigMigrations;
10
11
  await t.any(`
11
- /* ${PubSubManagerUtils_1.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
12
- CREATE TABLE IF NOT EXISTS ${asName(versionTableName)}(id NUMERIC PRIMARY KEY, table_config JSONB NOT NULL)
13
- `);
12
+ /* ${PubSubManagerUtils_1.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
13
+ CREATE TABLE IF NOT EXISTS ${asName(versionTableName)}(
14
+ id NUMERIC PRIMARY KEY,
15
+ table_config JSONB NOT NULL
16
+ )
17
+ `);
14
18
  const migrations = { version, table: versionTableName };
15
- const maxVersion = Number((await t.oneOrNone(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`))?.v);
16
- const latestVersion = Number.isFinite(maxVersion) ? maxVersion : undefined;
19
+ const latestVersion = (0, getTableConfigVersion_1.getTableConfigVersion)((await t.oneOrNone(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`))?.v);
17
20
  if (latestVersion === version) {
18
- const isLatest = (await t.oneOrNone(`SELECT table_config = \${table_config} as v FROM ${asName(versionTableName)} WHERE id = \${version}`, { version, table_config: tableConfig }))?.v;
21
+ const isLatest = (await t.oneOrNone(`
22
+ SELECT table_config = \${tableConfig} as v
23
+ FROM ${asName(versionTableName)}
24
+ WHERE id = \${version}`, { version, tableConfig }))?.v;
19
25
  if (isLatest) {
20
26
  /**
21
27
  * If the table config is the same as the latest version then we can skip all schema checks and changes
@@ -1 +1 @@
1
- {"version":3,"file":"runMigrations.js","sourceRoot":"","sources":["../../lib/TableConfig/runMigrations.ts"],"names":[],"mappings":";;AAKA,sCA6CC;AAhDD,4EAAyF;AACzF,mEAAgE;AAEzD,KAAK,UAAU,aAAa,CACjC,CAAsB,EACtB,EACE,qBAAqB,EACrB,WAAW,GACyD,EACtE,EAAE,MAAM,EAAwC;IAEhD,IAAI,CAAC,qBAAqB;QAAE,OAAO;IAEnC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,CAAC;IAC1F,MAAM,CAAC,CAAC,GAAG,CAAC;WACH,uDAAkC;mCACV,MAAM,CAAC,gBAAgB,CAAC;KACtD,CAAC,CAAC;IACL,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,CACvB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAgB,4BAA4B,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAC9F,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3E,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CACf,MAAM,CAAC,CAAC,SAAS,CACf,oDAAoD,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,EACrG,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CACvC,CACF,EAAE,CAAC,CAAC;QACL,IAAI,QAAQ,EAAE,CAAC;YACb;;eAEG;YACH,OAAO;QACT,CAAC;IACH,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,GAAG,OAAO,EAAE,CAAC;QAC3D,MAAM,SAAS,CAAC;YACd,EAAE,EAAE,CAAC;YACL,UAAU,EAAE,aAAa;YACzB,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CACpC,IAAA,6CAAqB,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"runMigrations.js","sourceRoot":"","sources":["../../lib/TableConfig/runMigrations.ts"],"names":[],"mappings":";;AAMA,sCAsDC;AA1DD,4EAAyF;AACzF,mEAAgE;AAChE,mEAAgE;AAEzD,KAAK,UAAU,aAAa,CACjC,CAAsB,EACtB,EACE,qBAAqB,EACrB,WAAW,GACyD,EACtE,EAAE,MAAM,EAAwC;IAEhD,IAAI,CAAC,qBAAqB;QAAE,OAAO;IAEnC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,CAAC;IAC1F,MAAM,CAAC,CAAC,GAAG,CAAC;SACL,uDAAkC;iCACV,MAAM,CAAC,gBAAgB,CAAC;;;;GAItD,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IACxD,MAAM,aAAa,GAAG,IAAA,6CAAqB,EACzC,CACE,MAAM,CAAC,CAAC,SAAS,CACf,4BAA4B,MAAM,CAAC,gBAAgB,CAAC,EAAE,CACvD,CACF,EAAE,CAAC,CACL,CAAC;IAEF,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CACf,MAAM,CAAC,CAAC,SAAS,CACf;;eAEO,MAAM,CAAC,gBAAgB,CAAC;+BACR,EACvB,EAAE,OAAO,EAAE,WAAW,EAAE,CACzB,CACF,EAAE,CAAC,CAAC;QACL,IAAI,QAAQ,EAAE,CAAC;YACb;;eAEG;YACH,OAAO;QACT,CAAC;IACH,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,GAAG,OAAO,EAAE,CAAC;QAC3D,MAAM,SAAS,CAAC;YACd,EAAE,EAAE,CAAC;YACL,UAAU,EAAE,aAAa;YACzB,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CACpC,IAAA,6CAAqB,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -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,6 +4,7 @@ import type { DB } from "../initProstgles";
4
4
  import type { ProstglesInitOptions, TableConfigMigrations } from "../ProstglesTypes";
5
5
  import { fetchTableConstraints } from "./fetchTableConstraints";
6
6
  import type { TableConfig } from "./TableConfigTypes";
7
+ import { getTableConfigVersion } from "./getTableConfigVersion";
7
8
  export type RequiredUndefined<T> = {
8
9
  [K in keyof Required<T>]: T[K];
9
10
  };
@@ -62,10 +63,10 @@ const getMigration = async (
62
63
  { version, onMigrate }: Pick<TableConfigMigrations, "version" | "onMigrate">,
63
64
  file_table_queries: string,
64
65
  ) => {
65
- const maxVersion = Number(
66
- (await db.oneOrNone<{ v: string }>(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`))?.v,
66
+ const latestVersion = getTableConfigVersion(
67
+ (await db.oneOrNone<{ v: string | null }>(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`))
68
+ ?.v,
67
69
  );
68
- const latestVersion = Number.isFinite(maxVersion) ? maxVersion : undefined;
69
70
 
70
71
  if (latestVersion === version) {
71
72
  const isLatest = (
@@ -0,0 +1,6 @@
1
+ export const getTableConfigVersion = (value: string | null | undefined) => {
2
+ if (value === null || value === undefined) return;
3
+
4
+ const version = Number(value);
5
+ return Number.isFinite(version) ? version : undefined;
6
+ };
@@ -2,6 +2,7 @@ import type pgPromise from "pg-promise";
2
2
  import type { ProstglesInitOptions } from "../ProstglesTypes";
3
3
  import { EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID } from "../PubSubManager/PubSubManagerUtils";
4
4
  import { fetchTableConstraints } from "./fetchTableConstraints";
5
+ import { getTableConfigVersion } from "./getTableConfigVersion";
5
6
 
6
7
  export async function runMigrations(
7
8
  t: pgPromise.ITask<{}>,
@@ -9,26 +10,35 @@ export async function runMigrations(
9
10
  tableConfigMigrations,
10
11
  tableConfig,
11
12
  }: Pick<ProstglesInitOptions, "tableConfigMigrations" | "tableConfig">,
12
- { asName }: { asName: (name: string) => string }
13
+ { asName }: { asName: (name: string) => string },
13
14
  ) {
14
15
  if (!tableConfigMigrations) return;
15
16
 
16
17
  const { onMigrate, version, versionTableName = "schema_version" } = tableConfigMigrations;
17
18
  await t.any(`
18
- /* ${EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
19
- CREATE TABLE IF NOT EXISTS ${asName(versionTableName)}(id NUMERIC PRIMARY KEY, table_config JSONB NOT NULL)
20
- `);
19
+ /* ${EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
20
+ CREATE TABLE IF NOT EXISTS ${asName(versionTableName)}(
21
+ id NUMERIC PRIMARY KEY,
22
+ table_config JSONB NOT NULL
23
+ )
24
+ `);
21
25
  const migrations = { version, table: versionTableName };
22
- const maxVersion = Number(
23
- (await t.oneOrNone<{ v: string }>(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`))?.v
26
+ const latestVersion = getTableConfigVersion(
27
+ (
28
+ await t.oneOrNone<{ v: string | null }>(
29
+ `SELECT MAX(id) as v FROM ${asName(versionTableName)}`,
30
+ )
31
+ )?.v,
24
32
  );
25
- const latestVersion = Number.isFinite(maxVersion) ? maxVersion : undefined;
26
33
 
27
34
  if (latestVersion === version) {
28
35
  const isLatest = (
29
36
  await t.oneOrNone<{ v: string | null }>(
30
- `SELECT table_config = \${table_config} as v FROM ${asName(versionTableName)} WHERE id = \${version}`,
31
- { version, table_config: tableConfig }
37
+ `
38
+ SELECT table_config = \${tableConfig} as v
39
+ FROM ${asName(versionTableName)}
40
+ WHERE id = \${version}`,
41
+ { version, tableConfig },
32
42
  )
33
43
  )?.v;
34
44
  if (isLatest) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.637",
3
+ "version": "4.2.639",
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",