prostgles-server 2.0.201 → 2.0.202

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.
Files changed (58) hide show
  1. package/dist/DboBuilder/delete.d.ts +5 -0
  2. package/dist/DboBuilder/delete.d.ts.map +1 -0
  3. package/dist/DboBuilder/delete.js +121 -0
  4. package/dist/DboBuilder/delete.js.map +1 -0
  5. package/dist/DboBuilder/insert.d.ts.map +1 -1
  6. package/dist/DboBuilder/insert.js +0 -4
  7. package/dist/DboBuilder/insert.js.map +1 -1
  8. package/dist/DboBuilder/insertDataParse.d.ts.map +1 -1
  9. package/dist/DboBuilder/insertDataParse.js +2 -43
  10. package/dist/DboBuilder/insertDataParse.js.map +1 -1
  11. package/dist/DboBuilder/update.d.ts +5 -0
  12. package/dist/DboBuilder/update.d.ts.map +1 -0
  13. package/dist/DboBuilder/update.js +111 -0
  14. package/dist/DboBuilder/update.js.map +1 -0
  15. package/dist/DboBuilder/uploadFile.d.ts +6 -0
  16. package/dist/DboBuilder/uploadFile.d.ts.map +1 -0
  17. package/dist/DboBuilder/uploadFile.js +48 -0
  18. package/dist/DboBuilder/uploadFile.js.map +1 -0
  19. package/dist/DboBuilder.d.ts +4 -2
  20. package/dist/DboBuilder.d.ts.map +1 -1
  21. package/dist/DboBuilder.js +12 -172
  22. package/dist/DboBuilder.js.map +1 -1
  23. package/dist/FileManager.d.ts.map +1 -1
  24. package/dist/FileManager.js +2 -0
  25. package/dist/FileManager.js.map +1 -1
  26. package/dist/QueryBuilder.d.ts +5 -1
  27. package/dist/QueryBuilder.d.ts.map +1 -1
  28. package/lib/DboBuilder/delete.d.ts +5 -0
  29. package/lib/DboBuilder/delete.d.ts.map +1 -0
  30. package/lib/DboBuilder/delete.js +120 -0
  31. package/lib/DboBuilder/delete.ts +127 -0
  32. package/lib/DboBuilder/insert.d.ts.map +1 -1
  33. package/lib/DboBuilder/insert.js +0 -4
  34. package/lib/DboBuilder/insert.ts +0 -4
  35. package/lib/DboBuilder/insertDataParse.d.ts.map +1 -1
  36. package/lib/DboBuilder/insertDataParse.js +2 -43
  37. package/lib/DboBuilder/insertDataParse.ts +2 -46
  38. package/lib/DboBuilder/update.d.ts +5 -0
  39. package/lib/DboBuilder/update.d.ts.map +1 -0
  40. package/lib/DboBuilder/update.js +110 -0
  41. package/lib/DboBuilder/update.ts +127 -0
  42. package/lib/DboBuilder/uploadFile.d.ts +6 -0
  43. package/lib/DboBuilder/uploadFile.d.ts.map +1 -0
  44. package/lib/DboBuilder/uploadFile.js +47 -0
  45. package/lib/DboBuilder/uploadFile.ts +50 -0
  46. package/lib/DboBuilder.d.ts +4 -2
  47. package/lib/DboBuilder.d.ts.map +1 -1
  48. package/lib/DboBuilder.js +12 -172
  49. package/lib/DboBuilder.ts +15 -198
  50. package/lib/FileManager.d.ts.map +1 -1
  51. package/lib/FileManager.js +2 -0
  52. package/lib/FileManager.ts +1 -0
  53. package/package.json +2 -2
  54. package/tests/client/PID.txt +1 -1
  55. package/tests/isomorphic_queries.d.ts.map +1 -1
  56. package/tests/isomorphic_queries.js +33 -1
  57. package/tests/isomorphic_queries.ts +39 -2
  58. package/tests/server/package-lock.json +3 -3
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.update = void 0;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const DboBuilder_1 = require("../DboBuilder");
6
+ const PubSubManager_1 = require("../PubSubManager");
7
+ const uploadFile_1 = require("./uploadFile");
8
+ async function update(filter, _newData, params, tableRules, localParams) {
9
+ try {
10
+ let oldFileDelete = () => { };
11
+ let newData = _newData;
12
+ if (this.is_media && (0, uploadFile_1.isFile)(newData) && (!tableRules || tableRules.insert)) {
13
+ let existingMediaId = !(!filter || !(0, prostgles_types_1.isObject)(filter) || (0, prostgles_types_1.getKeys)(filter).join() !== "id" || typeof filter.id !== "string") ? filter.id : undefined;
14
+ if (!existingMediaId) {
15
+ 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"} `);
16
+ }
17
+ if (localParams?.testRule) {
18
+ newData = {};
19
+ }
20
+ else {
21
+ const fileManager = this.dboBuilder.prostgles.fileManager;
22
+ if (!fileManager)
23
+ throw new Error("fileManager missing");
24
+ const validate = tableRules?.update?.validate ? async (row) => {
25
+ return tableRules?.update?.validate({ update: row, filter });
26
+ } : undefined;
27
+ let existingFile = await (localParams?.dbTX?.[this.name] || this).findOne({ id: existingMediaId });
28
+ if (!existingFile?.name)
29
+ throw new Error("Existing file record not found");
30
+ // oldFileDelete = () => fileManager.deleteFile(existingFile!.name!)
31
+ await fileManager.deleteFile(existingFile.name); //oldFileDelete();
32
+ const newFile = await uploadFile_1.uploadFile.bind(this)(newData, validate, localParams, existingFile.id);
33
+ newData = (0, PubSubManager_1.omitKeys)(newFile, ["id"]);
34
+ }
35
+ }
36
+ const parsedRules = await this.parseUpdateRules(filter, newData, params, tableRules, localParams);
37
+ if (localParams?.testRule) {
38
+ return parsedRules;
39
+ }
40
+ const { fields, validateRow, forcedData, finalUpdateFilter, returningFields, forcedFilter, filterFields } = parsedRules;
41
+ let { returning, multi = true, onConflictDoNothing = false, fixIssues = false } = params || {};
42
+ const { returnQuery = false } = localParams ?? {};
43
+ if (params) {
44
+ const good_params = ["returning", "multi", "onConflictDoNothing", "fixIssues"];
45
+ const bad_params = Object.keys(params).filter(k => !good_params.includes(k));
46
+ if (bad_params && bad_params.length)
47
+ throw "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ");
48
+ }
49
+ const { data, allowedCols } = this.validateNewData({ row: newData, forcedData, allowedFields: fields, tableRules, fixIssues });
50
+ /* Patch data */
51
+ let patchedTextData = [];
52
+ this.columns.map(c => {
53
+ const d = data[c.name];
54
+ if (c.data_type === "text" && d && (0, DboBuilder_1.isPlainObject)(d) && !["from", "to"].find(key => typeof d[key] !== "number")) {
55
+ const unrecProps = Object.keys(d).filter(k => !["from", "to", "text", "md5"].includes(k));
56
+ if (unrecProps.length)
57
+ throw "Unrecognised params in textPatch field: " + unrecProps.join(", ");
58
+ patchedTextData.push({ ...d, fieldName: c.name });
59
+ }
60
+ });
61
+ if (patchedTextData && patchedTextData.length) {
62
+ if (tableRules && !tableRules.select)
63
+ throw "Select needs to be permitted to patch data";
64
+ const rows = await this.find(filter, { select: patchedTextData.reduce((a, v) => ({ ...a, [v.fieldName]: 1 }), {}) }, undefined, tableRules);
65
+ if (rows.length !== 1) {
66
+ throw "Cannot patch data within a filter that affects more/less than 1 row";
67
+ }
68
+ patchedTextData.map(p => {
69
+ data[p.fieldName] = (0, prostgles_types_1.unpatchText)(rows[0][p.fieldName], p);
70
+ });
71
+ // https://w3resource.com/PostgreSQL/overlay-function.p hp
72
+ // overlay(coalesce(status, '') placing 'hom' from 2 for 0)
73
+ }
74
+ let nData = { ...data };
75
+ let query = await this.colSet.getUpdateQuery(nData, allowedCols, validateRow);
76
+ query += (await this.prepareWhere({
77
+ filter,
78
+ forcedFilter,
79
+ filterFields,
80
+ localParams,
81
+ tableRule: tableRules
82
+ })).where;
83
+ if (onConflictDoNothing)
84
+ query += " ON CONFLICT DO NOTHING ";
85
+ let qType = "none";
86
+ if (returning) {
87
+ qType = multi ? "any" : "one";
88
+ query += this.makeReturnQuery(await this.prepareReturning(returning, this.parseFieldFilter(returningFields)));
89
+ }
90
+ if (returnQuery)
91
+ return query;
92
+ let result;
93
+ if (this.t) {
94
+ result = await (this.t)[qType](query).catch((err) => (0, DboBuilder_1.makeErr)(err, localParams, this, fields));
95
+ }
96
+ else {
97
+ result = await this.db.tx(t => t[qType](query)).catch(err => (0, DboBuilder_1.makeErr)(err, localParams, this, fields));
98
+ }
99
+ /** Delete old file at the end in case new file update fails */
100
+ // await oldFileDelete();
101
+ return result;
102
+ }
103
+ catch (e) {
104
+ if (localParams && localParams.testRule)
105
+ throw e;
106
+ throw { err: (0, DboBuilder_1.parseError)(e), msg: `Issue with dbo.${this.name}.update(${JSON.stringify(filter || {}, null, 2)}, ${Array.isArray(_newData) ? "...DATA[]" : "...DATA"}, ${JSON.stringify(params || {}, null, 2)})` };
107
+ }
108
+ }
109
+ exports.update = update;
110
+ ;
@@ -0,0 +1,127 @@
1
+ import { AnyObject, getKeys, isObject, unpatchText, UpdateParams } from "prostgles-types";
2
+ import { Filter, isPlainObject, LocalParams, makeErr, Media, parseError, TableHandler } from "../DboBuilder";
3
+ import { TableRule, ValidateRow } from "../PublishParser";
4
+ import { omitKeys } from "../PubSubManager";
5
+ import { isFile, uploadFile } from "./uploadFile"
6
+
7
+ export async function update(this: TableHandler, filter: Filter, _newData: AnyObject, params?: UpdateParams, tableRules?: TableRule, localParams?: LocalParams): Promise<AnyObject | void> {
8
+ try {
9
+
10
+ let oldFileDelete = () => {};
11
+
12
+ let newData = _newData;
13
+ if(this.is_media && isFile(newData) && (!tableRules || tableRules.insert)){
14
+ let existingMediaId: string = !(!filter || !isObject(filter) || getKeys(filter).join() !== "id" || typeof (filter as any).id !== "string")? (filter as any).id : undefined
15
+ if(!existingMediaId){
16
+ 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"} `);
17
+ }
18
+ if(localParams?.testRule){
19
+ newData = {};
20
+ } else {
21
+ const fileManager = this.dboBuilder.prostgles.fileManager
22
+ if(!fileManager) throw new Error("fileManager missing");
23
+ const validate: ValidateRow | undefined = tableRules?.update?.validate? async (row) => {
24
+ return tableRules?.update?.validate!({ update: row, filter })
25
+ } : undefined;
26
+
27
+ let existingFile: Media | undefined = await (localParams?.dbTX?.[this.name] as TableHandler || this).findOne({ id: existingMediaId });
28
+
29
+ if(!existingFile?.name) throw new Error("Existing file record not found");
30
+
31
+ // oldFileDelete = () => fileManager.deleteFile(existingFile!.name!)
32
+ await fileManager.deleteFile(existingFile!.name!); //oldFileDelete();
33
+ const newFile = await uploadFile.bind(this)(newData, validate, localParams, existingFile.id)
34
+ newData = omitKeys(newFile, ["id"]);
35
+ }
36
+ }
37
+
38
+ const parsedRules = await this.parseUpdateRules(filter, newData, params, tableRules, localParams)
39
+ if (localParams?.testRule) {
40
+ return parsedRules;
41
+ }
42
+
43
+ const { fields, validateRow, forcedData, finalUpdateFilter, returningFields, forcedFilter, filterFields } = parsedRules;
44
+
45
+
46
+ let { returning, multi = true, onConflictDoNothing = false, fixIssues = false } = params || {};
47
+ const { returnQuery = false } = localParams ?? {};
48
+
49
+
50
+ if (params) {
51
+ const good_params = ["returning", "multi", "onConflictDoNothing", "fixIssues"];
52
+ const bad_params = Object.keys(params).filter(k => !good_params.includes(k));
53
+ if (bad_params && bad_params.length) throw "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ");
54
+ }
55
+
56
+ const { data, allowedCols } = this.validateNewData({ row: newData, forcedData, allowedFields: fields, tableRules, fixIssues });
57
+
58
+ /* Patch data */
59
+ let patchedTextData: {
60
+ fieldName: string;
61
+ from: number;
62
+ to: number;
63
+ text: string;
64
+ md5: string
65
+ }[] = [];
66
+ this.columns.map(c => {
67
+ const d = data[c.name];
68
+ if (c.data_type === "text" && d && isPlainObject(d) && !["from", "to"].find(key => typeof d[key] !== "number")) {
69
+ const unrecProps = Object.keys(d).filter(k => !["from", "to", "text", "md5"].includes(k));
70
+ if (unrecProps.length) throw "Unrecognised params in textPatch field: " + unrecProps.join(", ");
71
+ patchedTextData.push({ ...d, fieldName: c.name } as (typeof patchedTextData)[number]);
72
+ }
73
+ });
74
+
75
+ if (patchedTextData && patchedTextData.length) {
76
+ if (tableRules && !tableRules.select) throw "Select needs to be permitted to patch data";
77
+ const rows = await this.find(filter, { select: patchedTextData.reduce((a, v) => ({ ...a, [v.fieldName]: 1 }), {}) }, undefined, tableRules);
78
+
79
+ if (rows.length !== 1) {
80
+ throw "Cannot patch data within a filter that affects more/less than 1 row";
81
+ }
82
+ patchedTextData.map(p => {
83
+ data[p.fieldName] = unpatchText(rows[0][p.fieldName], p);
84
+ })
85
+
86
+ // https://w3resource.com/PostgreSQL/overlay-function.p hp
87
+ // overlay(coalesce(status, '') placing 'hom' from 2 for 0)
88
+ }
89
+
90
+ let nData = { ...data };
91
+
92
+
93
+ let query = await this.colSet.getUpdateQuery(nData, allowedCols, validateRow)
94
+ query += (await this.prepareWhere({
95
+ filter,
96
+ forcedFilter,
97
+ filterFields,
98
+ localParams,
99
+ tableRule: tableRules
100
+ })).where;
101
+ if (onConflictDoNothing) query += " ON CONFLICT DO NOTHING ";
102
+
103
+ let qType: "none" | "any" | "one" = "none";
104
+ if (returning) {
105
+ qType = multi ? "any" : "one";
106
+ query += this.makeReturnQuery(await this.prepareReturning(returning, this.parseFieldFilter(returningFields)));
107
+ }
108
+
109
+ if (returnQuery) return query as unknown as void;
110
+
111
+ let result;
112
+ if (this.t) {
113
+ result = await (this.t)[qType](query).catch((err: any) => makeErr(err, localParams, this, fields));
114
+ } else {
115
+ result = await this.db.tx(t => (t as any)[qType](query)).catch(err => makeErr(err, localParams, this, fields));
116
+ }
117
+
118
+ /** TODO: Delete old file at the end in case new file update fails */
119
+ // await oldFileDelete();
120
+
121
+ return result;
122
+
123
+ } catch (e) {
124
+ if (localParams && localParams.testRule) throw e;
125
+ throw { err: parseError(e), msg: `Issue with dbo.${this.name}.update(${JSON.stringify(filter || {}, null, 2)}, ${Array.isArray(_newData)? "...DATA[]": "...DATA"}, ${JSON.stringify(params || {}, null, 2)})` };
126
+ }
127
+ };
@@ -0,0 +1,6 @@
1
+ import { AnyObject } from "prostgles-types";
2
+ import { LocalParams, Media, TableHandler } from "../DboBuilder";
3
+ import { ValidateRow } from "../PublishParser";
4
+ export declare const isFile: (row: AnyObject) => boolean;
5
+ export declare function uploadFile(this: TableHandler, row: AnyObject, validate: ValidateRow | undefined, localParams: LocalParams | undefined, mediaId?: string): Promise<Media>;
6
+ //# sourceMappingURL=uploadFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadFile.d.ts","sourceRoot":"","sources":["uploadFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAC;AAElE,eAAO,MAAM,MAAM,QAAS,SAAS,YAEpC,CAAA;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,GAAG,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAyC9K"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uploadFile = exports.isFile = void 0;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const isFile = (row) => {
6
+ return Boolean(row && (0, prostgles_types_1.isObject)(row) && (0, prostgles_types_1.getKeys)(row).sort().join() === ["name", "data"].sort().join() && row.data && (typeof row.data === "string" || Buffer.isBuffer(row.data)) && typeof row.name === "string");
7
+ };
8
+ exports.isFile = isFile;
9
+ async function uploadFile(row, validate, localParams, mediaId) {
10
+ if (!this.dboBuilder.prostgles?.fileManager)
11
+ throw "fileManager not set up";
12
+ if (!(0, exports.isFile)(row))
13
+ throw "Expecting only two properties for file upload: { name: string; data: File | string | Buffer }; but got: " + (0, prostgles_types_1.getKeys)(row).map(k => `${k}: ${typeof data[k]}`).join(", ");
14
+ const { data, name } = row;
15
+ const media_id = mediaId ?? (await this.db.oneOrNone("SELECT gen_random_uuid() as name")).name;
16
+ const nestedInsert = localParams?.nestedInsert;
17
+ const type = await this.dboBuilder.prostgles.fileManager.parseFile({ file: data, fileName: name, tableName: nestedInsert?.previousTable, colName: nestedInsert?.referencingColumn });
18
+ const media_name = `${media_id}.${type.ext}`;
19
+ let media = {
20
+ id: media_id,
21
+ name: media_name,
22
+ original_name: name,
23
+ extension: type.ext,
24
+ content_type: type.mime
25
+ };
26
+ if (validate) {
27
+ media = await validate(media);
28
+ }
29
+ const _media = await this.dboBuilder.prostgles.fileManager.uploadAsMedia({
30
+ item: {
31
+ data,
32
+ name: media.name ?? "????",
33
+ content_type: media.content_type
34
+ },
35
+ // imageCompression: {
36
+ // inside: {
37
+ // width: 1100,
38
+ // height: 630
39
+ // }
40
+ // }
41
+ });
42
+ return {
43
+ ...media,
44
+ ..._media,
45
+ };
46
+ }
47
+ exports.uploadFile = uploadFile;
@@ -0,0 +1,50 @@
1
+ import { AnyObject, getKeys, isObject } from "prostgles-types"
2
+ import { LocalParams, Media, TableHandler } from "../DboBuilder";
3
+ import { ValidateRow, ValidateUpdateRow } from "../PublishParser";
4
+
5
+ export const isFile = (row: AnyObject) => {
6
+ return Boolean(row && isObject(row) && getKeys(row).sort().join() === ["name", "data"].sort().join() && row.data && (typeof row.data === "string" || Buffer.isBuffer(row.data)) && typeof row.name === "string")
7
+ }
8
+
9
+ export async function uploadFile(this: TableHandler, row: AnyObject, validate: ValidateRow | undefined, localParams: LocalParams | undefined, mediaId?: string): Promise<Media> {
10
+ if (!this.dboBuilder.prostgles?.fileManager) throw "fileManager not set up";
11
+
12
+ if (!isFile(row)) throw "Expecting only two properties for file upload: { name: string; data: File | string | Buffer }; but got: " + getKeys(row).map(k => `${k}: ${typeof data[k]}`).join(", ");
13
+ const { data, name } = row;
14
+
15
+ const media_id = mediaId ?? (await this.db.oneOrNone("SELECT gen_random_uuid() as name")).name;
16
+ const nestedInsert = localParams?.nestedInsert;
17
+ const type = await this.dboBuilder.prostgles.fileManager.parseFile({ file: data, fileName: name, tableName: nestedInsert?.previousTable, colName: nestedInsert?.referencingColumn });
18
+ const media_name = `${media_id}.${type.ext}`;
19
+ let media: Media = {
20
+ id: media_id,
21
+ name: media_name,
22
+ original_name: name,
23
+ extension: type.ext,
24
+ content_type: type.mime
25
+ }
26
+
27
+ if (validate) {
28
+ media = await validate(media);
29
+ }
30
+
31
+ const _media: Media = await this.dboBuilder.prostgles.fileManager.uploadAsMedia({
32
+ item: {
33
+ data,
34
+ name: media.name ?? "????",
35
+ content_type: media.content_type as any
36
+ },
37
+ // imageCompression: {
38
+ // inside: {
39
+ // width: 1100,
40
+ // height: 630
41
+ // }
42
+ // }
43
+ });
44
+
45
+ return {
46
+ ...media,
47
+ ..._media,
48
+ };
49
+
50
+ }
@@ -13,6 +13,8 @@ export declare type Media = {
13
13
  "name"?: string;
14
14
  "original_name"?: string;
15
15
  "etag"?: string;
16
+ deleted?: string | null;
17
+ deleted_from_storage?: string | null;
16
18
  };
17
19
  export declare type TxCB = {
18
20
  (t: TableHandlers, _t: pgPromise.ITask<{}>): (any | void);
@@ -95,11 +97,11 @@ export declare type Aggregation = {
95
97
  alias: string;
96
98
  getQuery: (alias: string) => string;
97
99
  };
98
- export declare type Filter = object | {
100
+ export declare type Filter = AnyObject | {
99
101
  $and: Filter[];
100
102
  } | {
101
103
  $or: Filter[];
102
- } | {};
104
+ };
103
105
  export declare type JoinInfo = {
104
106
  expectOne?: boolean;
105
107
  paths: {
@@ -1 +1 @@
1
- {"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,GAAG,QAAQ,iCAAiC,CAAC,CAAC;AACvD,OAAO,EACH,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAC3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EACjD,WAAW,EAIX,uBAAuB,EACvB,WAAW,EACX,SAAS,IAAI,KAAK,EAClB,UAAU,EACV,SAAS,EAET,MAAM,EAGT,MAAM,iBAAiB,CAAC;AAEzB,oBAAY,KAAK,GAAG;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,oBAAY,IAAI,GAAG;IACf,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;CAC7D,CAAA;AACD,oBAAY,EAAE,GAAG;IACb,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;CACpC,CAAA;AAED,oBAAY,aAAa,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;CACvD,CAAA;AAED,oBAAY,eAAe,GACzB,aAAa,GACb,OAAO,CAAC,WAAW,CAAC,GAAG;IACrB,GAAG,CAAC,EAAE,UAAU,CAAA;CACjB,GAAG;IACF,EAAE,CAAC,EAAE,EAAE,CAAA;CACR,CAAA;AAmBH,OAAO,EAA2C,UAAU,EAAE,SAAS,EAAiF,MAAM,gBAAgB,CAAC;AAC/K,OAAO,EACH,IAAI,EAAE,SAAS,EAAE,EAAE,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,SAAS,EAAE,UAAU,EAAY,aAAa,EAAE,WAAW,EAAqB,mBAAmB,EACnG,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAW,aAAa,EAAsB,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAK/D,aAAK,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAC3C,eAAO,MAAM,GAAG,EAAE,GAGhB,CAAC;AAEH,oBAAY,SAAS,GAAG,KAAK,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;CACzB,CAAA;AAED,oBAAY,QAAQ,GAAG,SAAS,GAAG;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAA;CAC1B,CAAA;AAED,oBAAY,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG;IACjD,OAAO,EAAE,OAAO,CAAC;CACpB,CAAA;AAED,oBAAY,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,SAAS,CAAC,EAAE;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;SAAE,CAAA;KACjC,CAAA;IAED,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,aAAa,KAAK,GAAG,CAAC;IAE1E,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,KAAK,IAAI,KAAK,IAAI,CAAC;IAEtF,QAAQ,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvD,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAEhC,+BAA+B;IAC/B,WAAW,CAAC,EAAE;QACV,OAAO,EAAE,YAAY,CAAC;QACtB,IAAI,EAAE,SAAS,CAAC;QAChB,UAAU,EAAE,SAAS,CAAC;KACzB,CAAA;IAED,KAAK,CAAC,EAAE,SAAS,CAAA;IAEjB,qCAAqC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACtB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,IAAI,CAAC,EAAE,aAAa,CAAC;IAGrB,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,YAAY,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,SAAS,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ,CAAA;AAoCD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAKrE;AAED,oBAAY,WAAW,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC,CAAC;AAEF,oBAAY,MAAM,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,EAAE,CAAC;AAuB1E,oBAAY,QAAQ,GAAG;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE;QAEH;;;WAGG;QACH,KAAK,EAAE,MAAM,CAAC;QAEd;;;;WAIG;QACH,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QAEzB;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,MAAM,EAAE,MAAM,CAAA;KACjB,EAAE,CAAA;CACN,CAAA;AACD,aAAK,SAAS,GAAG;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB,EAAE,CAAC;AAEJ,OAAO,EAAoB,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzD,oBAAY,gBAAgB,GAAG;IAE3B;;OAEG;IACF,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAChC,CAAA;AAED,oBAAY,mBAAmB,GAAG,gBAAgB,GAAG;IAGjD,UAAU,EAAE,SAAS,EAAE,CAAC;IAExB,MAAM,EAAE;QAEJ,MAAM,EAAE,MAAM,EAAE,CAAC;QAGjB,YAAY,EAAE,MAAM,EAAE,CAAC;QAGvB,YAAY,EAAE,GAAG,CAAC;QAGlB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;IACF,MAAM,EAAE;QAEJ,MAAM,EAAE,MAAM,EAAE,CAAC;QAGjB,eAAe,EAAE,MAAM,EAAE,CAAC;QAG1B,YAAY,EAAE,MAAM,EAAE,CAAC;QAGvB,YAAY,EAAE,GAAG,CAAC;QAGlB,UAAU,EAAE,GAAG,CAAC;KACnB,CAAC;IACF,MAAM,EAAE;QAEJ,MAAM,EAAE,MAAM,EAAE,CAAC;QAGjB,eAAe,EAAE,MAAM,EAAE,CAAC;QAG1B,UAAU,EAAE,GAAG,CAAC;KACnB,CAAC;IACF,MAAM,EAAE;QAEJ,YAAY,EAAE,MAAM,EAAE,CAAC;QAGvB,YAAY,EAAE,GAAG,CAAC;QAGlB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAA;CACJ,CAAA;AAGD,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBA0BtG;AACD,eAAO,MAAM,WAAW,yEAA0E,CAAC;AACnG,oBAAY,UAAU,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAIpD,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,OAMhC;AAED,cAAM,MAAM;IACR,IAAI,EAAE;QACF,OAAO,EAAE,UAAU,EAAE,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;gBAEU,OAAO,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM;YAItC,MAAM;IAoDd,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAUtG,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAO/G;AAED,oBAAY,kBAAkB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,qBAAa,WAAW;IACpB,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,WAAW,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IAEvB,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB,OAAO,EAAE,OAAO,CAAQ;IACxB,SAAS,EAAE,MAAM,CAAM;IAGvB,QAAQ,EAAE,OAAO,CAAS;gBACd,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,SAAS;IAuD9I,gBAAgB,CAAC,aAAa,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAcnF,iBAAiB,CAAC,IAAI,EAAE;QAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,YAAY,CAAC,EAAE,WAAW,CAAC;QAC3B,eAAe,CAAC,EAAE,WAAW,CAAC;QAC9B,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,aAAa,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAClD;IAyDD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE;IAsBhI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ;IAkF/F,WAAW,CAAC,MAAM,EAAE,GAAG;IAIjB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAiDrH,UAAU,CACZ,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAC/D,OAAO,CAAC,EAAE,SAAS,EACnB,UAAU,CAAC,EAAE,SAAS,EACtB,WAAW,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAsFjC,iBAAiB,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,mBAAmB;IA2InF,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,EAAG,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAwEvJ,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAgB5I,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,GAAE,GAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7I,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,GAAE,GAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BpJ,sBAAsB,CAAC,YAAY,EAAE,WAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,GAAE,OAAc,GAAG,MAAM,EAAE;IAmBzH,gBAAgB,CAAC,YAAY,EAAE,WAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,GAAE,OAAc,EAAE,SAAS,GAAE,OAAc,GAAG,MAAM,GAAG,SAAS,CAAC,SAAS;IAWlK,aAAa,CAAC,YAAY,EAAE,WAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,GAAE,OAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAS7H,aAAa,CAAC,MAAM,EAAE;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,WAAW,CAAC;QACzB,SAAS,EAAE,SAAS,CAAA;KACvB,GAAG,OAAO,CAAC,MAAM,CAAC;IAInB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;QACtB,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,YAAY,CAAC,EAAE,WAAW,CAAC;QAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;QACrC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;KACnC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC;KAAE,CAAC;IAkE5C,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAgH/G;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,UAAU,CAAC,EAAE,SAAS,CAAA;KAAE;IA8NrK,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,OAAe,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM;IAoHjK,iBAAiB,CAAC,KAAK,QAAO,EAAE,CAAC,EAAE,mBAAmB,GAAG,MAAM;IA4B/D,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAS3C,gBAAgB,CAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,GAAE,OAAe,GAAG,MAAM,EAAE;IAkBlH;;;;;;;;MAQE;IACF,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,UAAU,EAAE,MAAW,EAAE,YAAY,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,UAAQ,GAAG,SAAS;IAmC/I,gBAAgB,CAAC,WAAW,GAAE,WAAiB,EAAE,WAAW,GAAE,OAAc,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAIhH;;;;MAIE;IACF,MAAM,CAAC,iBAAiB,CAAC,WAAW,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAO,EAAE,WAAW,EAAE,OAAc,EAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;CA2FnM;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAKlE;AAGD,aAAK,eAAe,GAAG;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACrB,CAAA;AAED,qBAAa,YAAa,SAAQ,WAAW;IACzC,QAAQ,EAAE;QACN,wBAAwB,EAAE,MAAM,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;KAC5B,CAAA;gBAEW,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,SAAS;IAgB9I,SAAS,CAAC,KAAK,EAAE,MAAM;IAejB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,GAAG,CAAA;KAAE,CAAC;IAC/H,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IA6EtK,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,GAAG,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,GAAG,CAAA;KAAE,CAAC;IAC/H,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,GAAG,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IASzJ,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAwBhI,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAC1I,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,iBAAiB,EAAE,SAAS,CAAC;QAC7B,UAAU,CAAC,EAAE,SAAS,CAAC;QACvB,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,eAAe,EAAE,WAAW,CAAC;QAC7B,YAAY,CAAC,EAAE,WAAW,CAAC;KAC9B,CAAC;IA2GI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAyFrJ,eAAe,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,SAAiB,EAAE,EAAE,eAAe,GAAG;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE;IA2BzI,eAAe,yBAAmB;IAC5B,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAIxL,gBAAgB,cAAqB,MAAM,GAAG,SAAS,iBAAiB,MAAM,EAAE,KAAG,QAAQ,UAAU,EAAE,CAAC,CAiBvG;IAED,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE;IAK9B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IA+GjJ,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW;IAIpH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IA0BnI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW;;;;;CAiG9H;AAID,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,qBAAa,UAAU;IACnB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAE7B,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAY;IAG1B,GAAG,EAAE,eAAe,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,CAAC;IAE/B,gBAAgB,QAAc,QAAQ,aAAa,CAAC,CA8BnD;IAED,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,EAAE,SAAS,CAAM;IAE1B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAErE,OAAO;IAUP,OAAO,CAAC,IAAI,CASX;IAED,OAAc,MAAM,cAAqB,SAAS,KAAG,QAAQ,UAAU,CAAC,CAGvE;IAGD,OAAO;IAIP,QAAQ;IAGR,YAAY;IAIN,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IA2GhC,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAmLvC,KAAK,OAAQ,IAAI,kBAWhB;CACJ;AAKD,oBAAY,WAAW,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,UAAU,GAAG;QACnB,UAAU,EAAE;YACR,cAAc,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;YAC9D,YAAY,EAAE,KAAK,GAAG,IAAI,CAAA;SAC7B,EAAE,CAAC;KACP,CAAC,EAAE,CAAC;IACL,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE;QACR,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;KACnB,CAAA;CACJ,CAAA;AAED,aAAK,YAAY,GAAG;IAEhB;;OAEG;IACH,OAAO,EACL,GAAG,GACH,GAAG,GACH,GAAG,CAAA;IAEL;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAqKF,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,GAAG,MAAM,OAAO,WAAW,CAKjG"}
1
+ {"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"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"}
package/lib/DboBuilder.js CHANGED
@@ -52,6 +52,8 @@ const QueryBuilder_1 = require("./QueryBuilder");
52
52
  const PubSubManager_1 = require("./PubSubManager");
53
53
  const insertDataParse_1 = require("./DboBuilder/insertDataParse");
54
54
  const insert_1 = require("./DboBuilder/insert");
55
+ const update_1 = require("./DboBuilder/update");
56
+ const delete_1 = require("./DboBuilder/delete");
55
57
  const Filtering_1 = require("./Filtering");
56
58
  exports.pgp = pgPromise({
57
59
  promiseLib: Bluebird
@@ -127,10 +129,15 @@ exports.makeErr = makeErr;
127
129
  exports.EXISTS_KEYS = ["$exists", "$notExists", "$existsJoined", "$notExistsJoined"];
128
130
  const FILTER_FUNCS = QueryBuilder_1.FUNCTIONS.filter(f => f.canBeUsedForFilter);
129
131
  function parseError(e) {
130
- // console.trace("INTERNAL ERROR: ", e);
131
132
  let res = e instanceof Error ? e.message : (!Object.keys(e || {}).length ? e : (e && e.toString) ? e.toString() : e);
132
- if (isPlainObject(e))
133
- res = JSON.stringify(e, null, 2);
133
+ if (isPlainObject(e)) {
134
+ if (typeof e.err === "string") {
135
+ res = e.err;
136
+ }
137
+ else {
138
+ res = JSON.stringify(e, null, 2);
139
+ }
140
+ }
134
141
  return res;
135
142
  }
136
143
  exports.parseError = parseError;
@@ -1676,76 +1683,7 @@ class TableHandler extends ViewHandler {
1676
1683
  };
1677
1684
  }
1678
1685
  async update(filter, newData, params, tableRules, localParams) {
1679
- try {
1680
- const parsedRules = await this.parseUpdateRules(filter, newData, params, tableRules, localParams);
1681
- if (localParams?.testRule) {
1682
- return parsedRules;
1683
- }
1684
- const { fields, validateRow, forcedData, finalUpdateFilter, returningFields, forcedFilter, filterFields } = parsedRules;
1685
- let { returning, multi = true, onConflictDoNothing = false, fixIssues = false } = params || {};
1686
- const { returnQuery = false } = localParams ?? {};
1687
- if (params) {
1688
- const good_params = ["returning", "multi", "onConflictDoNothing", "fixIssues"];
1689
- const bad_params = Object.keys(params).filter(k => !good_params.includes(k));
1690
- if (bad_params && bad_params.length)
1691
- throw "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ");
1692
- }
1693
- const { data, allowedCols } = this.validateNewData({ row: newData, forcedData, allowedFields: fields, tableRules, fixIssues });
1694
- /* Patch data */
1695
- let patchedTextData = [];
1696
- this.columns.map(c => {
1697
- const d = data[c.name];
1698
- if (c.data_type === "text" && d && isPlainObject(d) && !["from", "to"].find(key => typeof d[key] !== "number")) {
1699
- const unrecProps = Object.keys(d).filter(k => !["from", "to", "text", "md5"].includes(k));
1700
- if (unrecProps.length)
1701
- throw "Unrecognised params in textPatch field: " + unrecProps.join(", ");
1702
- patchedTextData.push({ ...d, fieldName: c.name });
1703
- }
1704
- });
1705
- if (patchedTextData && patchedTextData.length) {
1706
- if (tableRules && !tableRules.select)
1707
- throw "Select needs to be permitted to patch data";
1708
- const rows = await this.find(filter, { select: patchedTextData.reduce((a, v) => ({ ...a, [v.fieldName]: 1 }), {}) }, undefined, tableRules);
1709
- if (rows.length !== 1) {
1710
- throw "Cannot patch data within a filter that affects more/less than 1 row";
1711
- }
1712
- patchedTextData.map(p => {
1713
- data[p.fieldName] = (0, prostgles_types_1.unpatchText)(rows[0][p.fieldName], p);
1714
- });
1715
- // https://w3resource.com/PostgreSQL/overlay-function.p hp
1716
- // overlay(coalesce(status, '') placing 'hom' from 2 for 0)
1717
- }
1718
- let nData = { ...data };
1719
- // if(tableRules && tableRules.update && tableRules?.update?.validate){
1720
- // nData = await tableRules.update.validate(nData);
1721
- // }
1722
- let query = await this.colSet.getUpdateQuery(nData, allowedCols, validateRow); //pgp.helpers.update(nData, columnSet) + " ";
1723
- query += (await this.prepareWhere({
1724
- filter,
1725
- forcedFilter,
1726
- filterFields,
1727
- localParams,
1728
- tableRule: tableRules
1729
- })).where;
1730
- if (onConflictDoNothing)
1731
- query += " ON CONFLICT DO NOTHING ";
1732
- let qType = "none";
1733
- if (returning) {
1734
- qType = multi ? "any" : "one";
1735
- query += this.makeReturnQuery(await this.prepareReturning(returning, this.parseFieldFilter(returningFields)));
1736
- }
1737
- if (returnQuery)
1738
- return query;
1739
- if (this.t) {
1740
- return this.t[qType](query).catch((err) => makeErr(err, localParams, this, fields));
1741
- }
1742
- return this.db.tx(t => t[qType](query)).catch(err => makeErr(err, localParams, this, fields));
1743
- }
1744
- catch (e) {
1745
- if (localParams && localParams.testRule)
1746
- throw e;
1747
- throw { err: parseError(e), msg: `Issue with dbo.${this.name}.update(${JSON.stringify(filter || {}, null, 2)}, ${JSON.stringify(newData || {}, null, 2)}, ${JSON.stringify(params || {}, null, 2)})` };
1748
- }
1686
+ return update_1.update.bind(this)(filter, newData, params, tableRules, localParams);
1749
1687
  }
1750
1688
  ;
1751
1689
  validateNewData({ row, forcedData, allowedFields, tableRules, fixIssues = false }) {
@@ -1779,105 +1717,7 @@ class TableHandler extends ViewHandler {
1779
1717
  return "";
1780
1718
  }
1781
1719
  async delete(filter, params, param3_unused, table_rules, localParams) {
1782
- try {
1783
- const { returning } = params || {};
1784
- filter = filter || {};
1785
- this.checkFilter(filter);
1786
- // table_rules = table_rules || {};
1787
- let forcedFilter = {}, filterFields = "*", returningFields = "*", validate;
1788
- const { testRule = false, returnQuery = false } = localParams || {};
1789
- if (table_rules) {
1790
- if (!table_rules.delete)
1791
- throw "delete rules missing";
1792
- forcedFilter = table_rules.delete.forcedFilter;
1793
- filterFields = table_rules.delete.filterFields;
1794
- returningFields = table_rules.delete.returningFields;
1795
- validate = table_rules.delete.validate;
1796
- if (!returningFields)
1797
- returningFields = (0, utils_1.get)(table_rules, "select.fields");
1798
- if (!returningFields)
1799
- returningFields = (0, utils_1.get)(table_rules, "delete.filterFields");
1800
- if (!filterFields)
1801
- throw ` Invalid delete rule for ${this.name}. filterFields missing `;
1802
- /* Safely test publish rules */
1803
- if (testRule) {
1804
- await this.validateViewRules({ filterFields, returningFields, forcedFilter, rule: "delete" });
1805
- return true;
1806
- }
1807
- }
1808
- if (params) {
1809
- const good_params = ["returning"];
1810
- const bad_params = Object.keys(params).filter(k => !good_params.includes(k));
1811
- if (bad_params && bad_params.length)
1812
- throw "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ");
1813
- }
1814
- let queryType = 'none';
1815
- let _query = "DELETE FROM " + this.escapedName;
1816
- const filterOpts = (await this.prepareWhere({
1817
- filter,
1818
- forcedFilter,
1819
- filterFields,
1820
- localParams,
1821
- tableRule: table_rules
1822
- }));
1823
- _query += filterOpts.where;
1824
- if (validate) {
1825
- const _filter = filterOpts.filter;
1826
- await validate(_filter);
1827
- }
1828
- let returningQuery = "";
1829
- if (returning) {
1830
- queryType = "any";
1831
- if (!returningFields) {
1832
- throw "Returning dissallowed";
1833
- }
1834
- returningQuery = this.makeReturnQuery(await this.prepareReturning(returning, this.parseFieldFilter(returningFields)));
1835
- _query += returningQuery;
1836
- }
1837
- if (returnQuery)
1838
- return _query;
1839
- /**
1840
- * Delete file
1841
- */
1842
- const dbHandler = (this.t || this.db);
1843
- if (this.is_media && this.dboBuilder.prostgles.fileManager) {
1844
- if (this.dboBuilder.prostgles.opts.fileTable?.delayedDelete) {
1845
- return dbHandler[queryType](`UPDATE ${(0, prostgles_types_1.asName)(this.name)} SET deleted = now() ${filterOpts.where} ${returningQuery};`);
1846
- }
1847
- else {
1848
- const txDelete = async (tbl) => {
1849
- if (!tbl.t)
1850
- throw new Error("Missing transaction object t");
1851
- const files = await this.find(filterOpts.filter);
1852
- for await (const file of files) {
1853
- await tbl.t?.any(`DELETE FROM ${(0, prostgles_types_1.asName)(this.name)} WHERE id = ` + "${id}", file);
1854
- await tbl.dboBuilder.prostgles.fileManager?.deleteFile(file.name);
1855
- }
1856
- if (returning) {
1857
- return files.map(f => (0, PubSubManager_1.pickKeys)(f, ["id", "name"]));
1858
- }
1859
- };
1860
- if (localParams?.dbTX) {
1861
- return txDelete(localParams.dbTX[this.name]);
1862
- }
1863
- else if (this.t) {
1864
- return txDelete(this);
1865
- }
1866
- else {
1867
- return this.dboBuilder.getTX(tx => {
1868
- return txDelete(tx[this.name]);
1869
- });
1870
- }
1871
- }
1872
- }
1873
- return dbHandler[queryType](_query).catch((err) => makeErr(err, localParams));
1874
- }
1875
- catch (e) {
1876
- // console.trace(e)
1877
- if (localParams && localParams.testRule)
1878
- throw e;
1879
- throw { err: parseError(e), msg: `Issue with dbo.${this.name}.delete(${JSON.stringify(filter || {}, null, 2)}, ${JSON.stringify(params || {}, null, 2)})` };
1880
- }
1720
+ return delete_1._delete.bind(this)(filter, params, param3_unused, table_rules, localParams);
1881
1721
  }
1882
1722
  ;
1883
1723
  remove(filter, params, param3_unused, tableRules, localParams) {