prostgles-server 4.0.57 → 4.0.59

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 (221) hide show
  1. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  2. package/dist/DboBuilder/getColumns.js +1 -13
  3. package/dist/DboBuilder/getColumns.js.map +1 -1
  4. package/dist/DboBuilder/runSQL.js +2 -2
  5. package/dist/DboBuilder/runSQL.js.map +1 -1
  6. package/dist/Prostgles.d.ts.map +1 -1
  7. package/dist/PubSubManager/PubSubManager.d.ts +1 -1
  8. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  9. package/dist/PubSubManager/PubSubManager.js +14 -1
  10. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  11. package/lib/DboBuilder/getColumns.ts +1 -18
  12. package/lib/DboBuilder/runSQL.ts +2 -2
  13. package/lib/Prostgles.ts +3 -3
  14. package/lib/PubSubManager/PubSubManager.ts +14 -1
  15. package/package.json +2 -2
  16. package/tests/client/PID.txt +1 -1
  17. package/tests/client/package.json +2 -2
  18. package/tests/client/tsconfig.json +2 -1
  19. package/tests/isomorphic_queries.ts +11 -9
  20. package/tests/server/DBoGenerated.d.ts +1 -1
  21. package/tests/server/dboTypeCheck.ts +3 -3
  22. package/tests/server/index.ts +7 -6
  23. package/tests/server/package-lock.json +1 -1
  24. package/tests/server/package.json +3 -3
  25. package/tests/server/publishTypeCheck.ts +1 -1
  26. package/tests/server/tsconfig.json +3 -2
  27. package/tests/test.sh +2 -0
  28. package/dist/FileManager.d.ts +0 -143
  29. package/dist/FileManager.d.ts.map +0 -1
  30. package/dist/FileManager.js +0 -646
  31. package/dist/FileManager.js.map +0 -1
  32. package/dist/TableConfig.d.ts +0 -267
  33. package/dist/TableConfig.d.ts.map +0 -1
  34. package/dist/TableConfig.js +0 -463
  35. package/dist/TableConfig.js.map +0 -1
  36. package/dist/validation.d.ts +0 -126
  37. package/dist/validation.d.ts.map +0 -1
  38. package/dist/validation.js +0 -405
  39. package/dist/validation.js.map +0 -1
  40. package/lib/AuthHandler.d.ts +0 -187
  41. package/lib/AuthHandler.d.ts.map +0 -1
  42. package/lib/AuthHandler.js +0 -478
  43. package/lib/DBEventsManager.d.ts +0 -38
  44. package/lib/DBEventsManager.d.ts.map +0 -1
  45. package/lib/DBEventsManager.js +0 -140
  46. package/lib/DBSchemaBuilder.d.ts +0 -13
  47. package/lib/DBSchemaBuilder.d.ts.map +0 -1
  48. package/lib/DBSchemaBuilder.js +0 -145
  49. package/lib/DboBuilder/QueryBuilder/Functions.d.ts +0 -64
  50. package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +0 -1
  51. package/lib/DboBuilder/QueryBuilder/Functions.js +0 -984
  52. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +0 -73
  53. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +0 -1
  54. package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +0 -335
  55. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +0 -8
  56. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +0 -1
  57. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +0 -227
  58. package/lib/DboBuilder/TableHandler.d.ts +0 -37
  59. package/lib/DboBuilder/TableHandler.d.ts.map +0 -1
  60. package/lib/DboBuilder/TableHandler.js +0 -213
  61. package/lib/DboBuilder/ViewHandler.d.ts +0 -119
  62. package/lib/DboBuilder/ViewHandler.d.ts.map +0 -1
  63. package/lib/DboBuilder/ViewHandler.js +0 -1023
  64. package/lib/DboBuilder/delete.d.ts +0 -6
  65. package/lib/DboBuilder/delete.d.ts.map +0 -1
  66. package/lib/DboBuilder/delete.js +0 -128
  67. package/lib/DboBuilder/find.d.ts +0 -8
  68. package/lib/DboBuilder/find.d.ts.map +0 -1
  69. package/lib/DboBuilder/find.js +0 -91
  70. package/lib/DboBuilder/getColumns.d.ts +0 -12
  71. package/lib/DboBuilder/getColumns.d.ts.map +0 -1
  72. package/lib/DboBuilder/getColumns.js +0 -92
  73. package/lib/DboBuilder/getCondition.d.ts +0 -22
  74. package/lib/DboBuilder/getCondition.d.ts.map +0 -1
  75. package/lib/DboBuilder/getCondition.js +0 -236
  76. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts +0 -20
  77. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts.map +0 -1
  78. package/lib/DboBuilder/getSubscribeRelatedTables.js +0 -152
  79. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts +0 -3
  80. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +0 -1
  81. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.js +0 -207
  82. package/lib/DboBuilder/insert.d.ts +0 -6
  83. package/lib/DboBuilder/insert.d.ts.map +0 -1
  84. package/lib/DboBuilder/insert.js +0 -180
  85. package/lib/DboBuilder/insertDataParse.d.ts +0 -12
  86. package/lib/DboBuilder/insertDataParse.d.ts.map +0 -1
  87. package/lib/DboBuilder/insertDataParse.js +0 -253
  88. package/lib/DboBuilder/parseUpdateRules.d.ts +0 -18
  89. package/lib/DboBuilder/parseUpdateRules.d.ts.map +0 -1
  90. package/lib/DboBuilder/parseUpdateRules.js +0 -123
  91. package/lib/DboBuilder/runSQL.d.ts +0 -7
  92. package/lib/DboBuilder/runSQL.d.ts.map +0 -1
  93. package/lib/DboBuilder/runSQL.js +0 -135
  94. package/lib/DboBuilder/subscribe.d.ts +0 -20
  95. package/lib/DboBuilder/subscribe.d.ts.map +0 -1
  96. package/lib/DboBuilder/subscribe.js +0 -90
  97. package/lib/DboBuilder/update.d.ts +0 -6
  98. package/lib/DboBuilder/update.d.ts.map +0 -1
  99. package/lib/DboBuilder/update.js +0 -151
  100. package/lib/DboBuilder/uploadFile.d.ts +0 -7
  101. package/lib/DboBuilder/uploadFile.d.ts.map +0 -1
  102. package/lib/DboBuilder/uploadFile.js +0 -53
  103. package/lib/DboBuilder.d.ts +0 -306
  104. package/lib/DboBuilder.d.ts.map +0 -1
  105. package/lib/DboBuilder.js +0 -745
  106. package/lib/Event_Trigger_Tags.d.ts +0 -4
  107. package/lib/Event_Trigger_Tags.d.ts.map +0 -1
  108. package/lib/Event_Trigger_Tags.js +0 -116
  109. package/lib/FileManager/FileManager.d.ts +0 -135
  110. package/lib/FileManager/FileManager.d.ts.map +0 -1
  111. package/lib/FileManager/FileManager.js +0 -303
  112. package/lib/FileManager/initFileManager.d.ts +0 -4
  113. package/lib/FileManager/initFileManager.d.ts.map +0 -1
  114. package/lib/FileManager/initFileManager.js +0 -231
  115. package/lib/FileManager/parseFile.d.ts +0 -15
  116. package/lib/FileManager/parseFile.d.ts.map +0 -1
  117. package/lib/FileManager/parseFile.js +0 -58
  118. package/lib/FileManager/upload.d.ts +0 -6
  119. package/lib/FileManager/upload.d.ts.map +0 -1
  120. package/lib/FileManager/upload.js +0 -98
  121. package/lib/FileManager/uploadStream.d.ts +0 -5
  122. package/lib/FileManager/uploadStream.d.ts.map +0 -1
  123. package/lib/FileManager/uploadStream.js +0 -92
  124. package/lib/Filtering.d.ts +0 -15
  125. package/lib/Filtering.d.ts.map +0 -1
  126. package/lib/Filtering.js +0 -336
  127. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +0 -4
  128. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +0 -1
  129. package/lib/JSONBValidation/validate_jsonb_schema_sql.js +0 -500
  130. package/lib/JSONBValidation/validation.d.ts +0 -9
  131. package/lib/JSONBValidation/validation.d.ts.map +0 -1
  132. package/lib/JSONBValidation/validation.js +0 -131
  133. package/lib/PostgresNotifListenManager.d.ts +0 -28
  134. package/lib/PostgresNotifListenManager.d.ts.map +0 -1
  135. package/lib/PostgresNotifListenManager.js +0 -134
  136. package/lib/Prostgles.d.ts +0 -289
  137. package/lib/Prostgles.d.ts.map +0 -1
  138. package/lib/Prostgles.js +0 -685
  139. package/lib/PubSubManager/PubSubManager.d.ts +0 -175
  140. package/lib/PubSubManager/PubSubManager.d.ts.map +0 -1
  141. package/lib/PubSubManager/PubSubManager.js +0 -452
  142. package/lib/PubSubManager/addSub.d.ts +0 -8
  143. package/lib/PubSubManager/addSub.d.ts.map +0 -1
  144. package/lib/PubSubManager/addSub.js +0 -166
  145. package/lib/PubSubManager/addSync.d.ts +0 -8
  146. package/lib/PubSubManager/addSync.d.ts.map +0 -1
  147. package/lib/PubSubManager/addSync.js +0 -109
  148. package/lib/PubSubManager/getInitQuery.d.ts +0 -9
  149. package/lib/PubSubManager/getInitQuery.d.ts.map +0 -1
  150. package/lib/PubSubManager/getInitQuery.js +0 -552
  151. package/lib/PubSubManager/initPubSubManager.d.ts +0 -3
  152. package/lib/PubSubManager/initPubSubManager.d.ts.map +0 -1
  153. package/lib/PubSubManager/initPubSubManager.js +0 -116
  154. package/lib/PubSubManager/notifListener.d.ts +0 -5
  155. package/lib/PubSubManager/notifListener.d.ts.map +0 -1
  156. package/lib/PubSubManager/notifListener.js +0 -100
  157. package/lib/PubSubManager/pushSubData.d.ts +0 -3
  158. package/lib/PubSubManager/pushSubData.d.ts.map +0 -1
  159. package/lib/PubSubManager/pushSubData.js +0 -51
  160. package/lib/PublishParser.d.ts +0 -284
  161. package/lib/PublishParser.d.ts.map +0 -1
  162. package/lib/PublishParser.js +0 -421
  163. package/lib/SchemaWatch.d.ts +0 -13
  164. package/lib/SchemaWatch.d.ts.map +0 -1
  165. package/lib/SchemaWatch.js +0 -35
  166. package/lib/SyncReplication.d.ts +0 -34
  167. package/lib/SyncReplication.d.ts.map +0 -1
  168. package/lib/SyncReplication.js +0 -412
  169. package/lib/TableConfig/TableConfig.d.ts +0 -284
  170. package/lib/TableConfig/TableConfig.d.ts.map +0 -1
  171. package/lib/TableConfig/TableConfig.js +0 -437
  172. package/lib/TableConfig/getColumnDefinitionQuery.d.ts +0 -27
  173. package/lib/TableConfig/getColumnDefinitionQuery.d.ts.map +0 -1
  174. package/lib/TableConfig/getColumnDefinitionQuery.js +0 -87
  175. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts +0 -34
  176. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts.map +0 -1
  177. package/lib/TableConfig/getConstraintDefinitionQueries.js +0 -65
  178. package/lib/TableConfig/getFutureTableSchema.d.ts +0 -15
  179. package/lib/TableConfig/getFutureTableSchema.d.ts.map +0 -1
  180. package/lib/TableConfig/getFutureTableSchema.js +0 -43
  181. package/lib/TableConfig/getTableColumnQueries.d.ts +0 -16
  182. package/lib/TableConfig/getTableColumnQueries.d.ts.map +0 -1
  183. package/lib/TableConfig/getTableColumnQueries.js +0 -107
  184. package/lib/index.d.ts +0 -5
  185. package/lib/index.d.ts.map +0 -1
  186. package/lib/index.js +0 -7
  187. package/lib/shortestPath.d.ts +0 -10
  188. package/lib/shortestPath.d.ts.map +0 -1
  189. package/lib/shortestPath.js +0 -111
  190. package/lib/utils.d.ts +0 -3
  191. package/lib/utils.d.ts.map +0 -1
  192. package/lib/utils.js +0 -12
  193. package/tests/client/index.d.ts +0 -2
  194. package/tests/client/index.d.ts.map +0 -1
  195. package/tests/client/index.js +0 -80
  196. package/tests/client/index.js.map +0 -1
  197. package/tests/client_only_queries.d.ts +0 -4
  198. package/tests/client_only_queries.d.ts.map +0 -1
  199. package/tests/client_only_queries.js +0 -282
  200. package/tests/config_test/DBoGenerated.d.ts +0 -388
  201. package/tests/config_test/index.js +0 -174
  202. package/tests/config_test/index.js.map +0 -1
  203. package/tests/isomorphic_queries.d.ts +0 -9
  204. package/tests/isomorphic_queries.d.ts.map +0 -1
  205. package/tests/isomorphic_queries.js +0 -773
  206. package/tests/manual_test/DBoGenerated.d.ts +0 -398
  207. package/tests/manual_test/index.d.ts +0 -2
  208. package/tests/manual_test/index.d.ts.map +0 -1
  209. package/tests/manual_test/index.js +0 -65
  210. package/tests/server/dboTypeCheck.d.ts +0 -2
  211. package/tests/server/dboTypeCheck.d.ts.map +0 -1
  212. package/tests/server/dboTypeCheck.js +0 -27
  213. package/tests/server/index.d.ts +0 -2
  214. package/tests/server/index.d.ts.map +0 -1
  215. package/tests/server/index.js +0 -507
  216. package/tests/server/publishTypeCheck.d.ts +0 -2
  217. package/tests/server/publishTypeCheck.d.ts.map +0 -1
  218. package/tests/server/publishTypeCheck.js +0 -130
  219. package/tests/server_only_queries.d.ts +0 -2
  220. package/tests/server_only_queries.d.ts.map +0 -1
  221. package/tests/server_only_queries.js +0 -19
@@ -1,6 +0,0 @@
1
- import { AnyObject, UpdateParams } from "prostgles-types";
2
- import { Filter, LocalParams } from "../DboBuilder";
3
- import { TableRule } from "../PublishParser";
4
- import { TableHandler } from "./TableHandler";
5
- export declare function update(this: TableHandler, filter: Filter, _newData: AnyObject, params?: UpdateParams, tableRules?: TableRule, localParams?: LocalParams): Promise<AnyObject | void>;
6
- //# sourceMappingURL=update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAiB,WAAW,EAAwD,MAAM,eAAe,CAAC;AACzH,OAAO,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,wBAAsB,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAoKzL"}
@@ -1,151 +0,0 @@
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/PubSubManager");
7
- const uploadFile_1 = require("./uploadFile");
8
- const find_1 = require("./find");
9
- async function update(filter, _newData, params, tableRules, localParams) {
10
- const ACTION = "update";
11
- try {
12
- /** postValidate */
13
- const finalDBtx = localParams?.tx?.dbTX || this.dbTX;
14
- if (tableRules?.[ACTION]?.postValidate) {
15
- if (!finalDBtx) {
16
- return this.dboBuilder.getTX(_dbtx => _dbtx[this.name]?.[ACTION]?.(filter, _newData, params, tableRules, localParams));
17
- }
18
- }
19
- let newData = _newData;
20
- if (this.is_media && (0, uploadFile_1.isFile)(newData) && (!tableRules || tableRules.update)) {
21
- const existingMediaId = !(!filter || !(0, prostgles_types_1.isObject)(filter) || (0, prostgles_types_1.getKeys)(filter).join() !== "id" || typeof filter.id !== "string") ? filter.id : undefined;
22
- if (!existingMediaId) {
23
- 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"} `);
24
- }
25
- if (localParams?.testRule) {
26
- newData = {};
27
- }
28
- else {
29
- const fileManager = this.dboBuilder.prostgles.fileManager;
30
- if (!fileManager)
31
- throw new Error("fileManager missing");
32
- const validate = tableRules?.[ACTION]?.validate ? async (row) => {
33
- return tableRules?.[ACTION]?.validate({ update: row, filter }, this.dbTX || this.dboBuilder.dbo);
34
- } : undefined;
35
- const existingFile = await (localParams?.tx?.dbTX?.[this.name] || this).findOne({ id: existingMediaId });
36
- if (!existingFile?.name)
37
- throw new Error("Existing file record not found");
38
- // oldFileDelete = () => fileManager.deleteFile(existingFile!.name!)
39
- await fileManager.deleteFile(existingFile.name); //oldFileDelete();
40
- const newFile = await uploadFile_1.uploadFile.bind(this)(newData, validate, localParams, existingFile.id);
41
- newData = (0, PubSubManager_1.omitKeys)(newFile, ["id"]);
42
- }
43
- }
44
- else if (this.is_media && (0, prostgles_types_1.isObject)(newData) && typeof newData.name === "string") {
45
- throw new Error("Cannot update the 'name' field of the file. It is used in interacting with the file");
46
- }
47
- const parsedRules = await this.parseUpdateRules(filter, newData, params, tableRules, localParams);
48
- if (localParams?.testRule) {
49
- return parsedRules;
50
- }
51
- const { fields, validateRow, forcedData, returningFields, forcedFilter, filterFields } = parsedRules;
52
- const { returning, multi = true, onConflictDoNothing = false, fixIssues = false } = params || {};
53
- const { returnQuery = false } = localParams ?? {};
54
- if (params) {
55
- const good_paramsObj = { returning: 1, returnType: 1, fixIssues: 1, onConflictDoNothing: 1, multi: 1 };
56
- const good_params = Object.keys(good_paramsObj);
57
- const bad_params = Object.keys(params).filter(k => !good_params.includes(k));
58
- if (bad_params && bad_params.length)
59
- throw "Invalid params: " + bad_params.join(", ") + " \n Expecting: " + good_params.join(", ");
60
- }
61
- const { data, allowedCols } = this.validateNewData({ row: newData, forcedData, allowedFields: fields, tableRules, fixIssues });
62
- /* Patch data */
63
- const patchedTextData = [];
64
- this.columns.map(c => {
65
- const d = data[c.name];
66
- if (c.data_type === "text" && d && (0, DboBuilder_1.isPlainObject)(d) && !["from", "to"].find(key => typeof d[key] !== "number")) {
67
- const unrecProps = Object.keys(d).filter(k => !["from", "to", "text", "md5"].includes(k));
68
- if (unrecProps.length)
69
- throw "Unrecognised params in textPatch field: " + unrecProps.join(", ");
70
- patchedTextData.push({ ...d, fieldName: c.name });
71
- }
72
- });
73
- if (patchedTextData && patchedTextData.length) {
74
- if (tableRules && !tableRules.select)
75
- throw "Select needs to be permitted to patch data";
76
- const rows = await this.find(filter, { select: patchedTextData.reduce((a, v) => ({ ...a, [v.fieldName]: 1 }), {}) }, undefined, tableRules);
77
- if (rows.length !== 1) {
78
- throw "Cannot patch data within a filter that affects more/less than 1 row";
79
- }
80
- patchedTextData.map(p => {
81
- data[p.fieldName] = (0, prostgles_types_1.unpatchText)(rows[0][p.fieldName], p);
82
- });
83
- // https://w3resource.com/PostgreSQL/overlay-function.p hp
84
- // overlay(coalesce(status, '') placing 'hom' from 2 for 0)
85
- }
86
- const nData = { ...data };
87
- let query = await this.colSet.getUpdateQuery(nData, allowedCols, this.dbTX || this.dboBuilder.dbo, validateRow);
88
- query += (await this.prepareWhere({
89
- filter,
90
- forcedFilter,
91
- filterFields,
92
- localParams,
93
- tableRule: tableRules
94
- })).where;
95
- if (onConflictDoNothing)
96
- query += " ON CONFLICT DO NOTHING ";
97
- /** postValidate */
98
- const originalReturning = await this.prepareReturning(returning, this.parseFieldFilter(returningFields));
99
- const fullReturning = await this.prepareReturning(returning, this.parseFieldFilter("*"));
100
- /** Used for postValidate. Add any missing computed returning from original query */
101
- fullReturning.concat(originalReturning.filter(s => !fullReturning.some(f => f.alias === s.alias)));
102
- const finalSelect = tableRules?.insert?.postValidate ? fullReturning : originalReturning;
103
- const returningSelect = this.makeReturnQuery(finalSelect);
104
- let qType = "none";
105
- if (returningSelect) {
106
- qType = multi ? "any" : "one";
107
- query += returningSelect;
108
- }
109
- query = (0, DboBuilder_1.withUserRLS)(localParams, query);
110
- if (returnQuery)
111
- return query;
112
- if (params?.returnType) {
113
- return (0, find_1.runQueryReturnType)(query, params.returnType, this, localParams);
114
- }
115
- let result;
116
- if (this.t) {
117
- result = await (this.t)[qType](query).catch((err) => (0, DboBuilder_1.makeErrorFromPGError)(err, localParams, this, fields));
118
- }
119
- else {
120
- result = await this.db.tx(t => t[qType](query)).catch(err => (0, DboBuilder_1.makeErrorFromPGError)(err, localParams, this, fields));
121
- }
122
- /** TODO: Delete old file at the end in case new file update fails */
123
- // await oldFileDelete();
124
- /** postValidate */
125
- if (tableRules?.[ACTION]?.postValidate) {
126
- if (!finalDBtx)
127
- throw new Error("Unexpected: no dbTX for postValidate");
128
- const rows = Array.isArray(result) ? result : [result];
129
- for await (const row of rows) {
130
- await tableRules?.[ACTION]?.postValidate(row ?? {}, finalDBtx);
131
- }
132
- /* We used a full returning for postValidate. Now we must filter out dissallowed columns */
133
- if (returningSelect) {
134
- if (Array.isArray(result)) {
135
- return result.map(row => {
136
- (0, PubSubManager_1.pickKeys)(row, originalReturning.map(s => s.alias));
137
- });
138
- }
139
- return (0, PubSubManager_1.pickKeys)(result, originalReturning.map(s => s.alias));
140
- }
141
- return undefined;
142
- }
143
- return result;
144
- }
145
- catch (e) {
146
- if (localParams && localParams.testRule)
147
- throw e;
148
- throw (0, DboBuilder_1.parseError)(e, `dbo.${this.name}.${ACTION}(${JSON.stringify(filter || {}, null, 2)}, ${Array.isArray(_newData) ? "[{...}]" : "{...}"}, ${JSON.stringify(params || {}, null, 2)})`);
149
- }
150
- }
151
- exports.update = update;
@@ -1,7 +0,0 @@
1
- import { AnyObject } from "prostgles-types";
2
- import { LocalParams, Media } from "../DboBuilder";
3
- import { ValidateRow } from "../PublishParser";
4
- import { TableHandler } from "./TableHandler";
5
- export declare const isFile: (row: AnyObject) => boolean;
6
- export declare function uploadFile(this: TableHandler, row: AnyObject, validate: ValidateRow | undefined, localParams: LocalParams | undefined, mediaId?: string): Promise<Media>;
7
- //# sourceMappingURL=uploadFile.d.ts.map
@@ -1 +0,0 @@
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,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,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,CA+C9K"}
@@ -1,53 +0,0 @@
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
- const parsedMediaKeys = ["id", "name", "original_name", "extension", "content_type"];
20
- const media = {
21
- id: media_id,
22
- name: media_name,
23
- original_name: name,
24
- extension: type.ext,
25
- content_type: type.mime
26
- };
27
- if (validate) {
28
- const parsedMedia = await validate(media, this.dbTX || this.dboBuilder.dbo);
29
- const missingKeys = parsedMediaKeys.filter(k => !parsedMedia[k]);
30
- if (missingKeys.length) {
31
- throw `Some keys are missing from file insert validation: ${missingKeys}`;
32
- }
33
- }
34
- const _media = await this.dboBuilder.prostgles.fileManager.uploadAsMedia({
35
- item: {
36
- data,
37
- name: media.name ?? "????",
38
- content_type: media.content_type,
39
- extension: media.extension
40
- },
41
- // imageCompression: {
42
- // inside: {
43
- // width: 1100,
44
- // height: 630
45
- // }
46
- // }
47
- });
48
- return {
49
- ...media,
50
- ..._media,
51
- };
52
- }
53
- exports.uploadFile = uploadFile;
@@ -1,306 +0,0 @@
1
- import * as pgPromise from 'pg-promise';
2
- import pg = require('pg-promise/typescript/pg-subset');
3
- import { ColumnInfo, SQLOptions, DbJoinMaker, PG_COLUMN_UDT_DATA_TYPE, TS_PG_Types, TableInfo as TInfo, SQLHandler, AnyObject, ProstglesError, EXISTS_KEY } from "prostgles-types";
4
- export type SortItem = {
5
- asc: boolean;
6
- nulls?: "first" | "last";
7
- nullEmpty?: boolean;
8
- } & ({
9
- fieldQuery: string;
10
- } | {
11
- fieldPosition: number;
12
- });
13
- export type ParsedMedia = Required<Pick<Media, "extension" | "content_type">>;
14
- export type Media = {
15
- "id"?: string;
16
- "title"?: string;
17
- "extension"?: string;
18
- "content_type"?: string;
19
- "content_length"?: number;
20
- "url"?: string;
21
- "added"?: Date;
22
- "signed_url"?: string;
23
- "signed_url_expires"?: number;
24
- "name"?: string;
25
- "original_name"?: string;
26
- "etag"?: string;
27
- deleted?: string | null;
28
- deleted_from_storage?: string | null;
29
- };
30
- export type TxCB<TH = TableHandlers> = {
31
- (t: TH & Pick<DBHandlerServer, "sql">, _t: pgPromise.ITask<{}>): (any | void);
32
- };
33
- export type TX<TH = TableHandlers> = {
34
- (t: TxCB<TH>): Promise<(any | void)>;
35
- };
36
- export type TableHandlers = {
37
- [key: string]: Partial<TableHandler> | TableHandler;
38
- };
39
- export type DBHandlerServer<TH = TableHandlers> = TH & Partial<DbJoinMaker> & {
40
- sql?: SQLHandler;
41
- } & {
42
- tx?: TX<TH>;
43
- };
44
- import { FieldSpec } from "./DboBuilder/QueryBuilder/Functions";
45
- import { Join, Prostgles, DB } from "./Prostgles";
46
- import { PublishParser, PublishAllOrNothing } from "./PublishParser";
47
- import { PubSubManager, BasicCallback } from "./PubSubManager/PubSubManager";
48
- import { JoinPaths, ViewHandler } from "./DboBuilder/ViewHandler";
49
- type PGP = pgPromise.IMain<{}, pg.IClient>;
50
- export declare const pgp: PGP;
51
- export type TableInfo = TInfo & {
52
- schema: string;
53
- name: string;
54
- oid: number;
55
- comment: string;
56
- columns: ColumnInfo[];
57
- };
58
- export type ViewInfo = TableInfo & {
59
- parent_tables: string[];
60
- };
61
- export type TableOrViewInfo = TableInfo & ViewInfo & {
62
- is_view: boolean;
63
- };
64
- export type PRGLIOSocket = {
65
- readonly id: string;
66
- readonly handshake?: {
67
- query?: Record<string, string>;
68
- headers?: AnyObject & {
69
- cookie?: string;
70
- };
71
- auth?: Record<string, any>;
72
- };
73
- readonly on: (channel: string, params: any, cb?: (err: any, res?: any) => void) => Promise<void>;
74
- readonly emit: (channel: string, message: any, cb?: BasicCallback) => any;
75
- readonly once: (channel: string, cb: (_data: any, cb: BasicCallback) => void) => void;
76
- readonly removeAllListeners: (channel: string) => void;
77
- readonly disconnect: () => void;
78
- readonly request: {
79
- url: string;
80
- };
81
- /** Used for session caching */
82
- __prglCache?: {
83
- session: BasicSession;
84
- user: UserLike;
85
- clientUser: AnyObject;
86
- };
87
- _user?: AnyObject;
88
- /** Used for publish error caching */
89
- prostgles?: AnyObject;
90
- };
91
- export type LocalParams = {
92
- httpReq?: any;
93
- socket?: PRGLIOSocket;
94
- func?: () => any;
95
- isRemoteRequest?: {
96
- user?: UserLike | undefined;
97
- };
98
- testRule?: boolean;
99
- tableAlias?: string;
100
- tx?: {
101
- dbTX: TableHandlers;
102
- t: pgPromise.ITask<{}>;
103
- };
104
- returnQuery?: boolean | "noRLS";
105
- returnNewQuery?: boolean;
106
- nestedInsert?: {
107
- depth: number;
108
- previousData: AnyObject;
109
- previousTable: string;
110
- referencingColumn?: string;
111
- };
112
- };
113
- export declare function escapeTSNames(str: string, capitalize?: boolean): string;
114
- export type Aggregation = {
115
- field: string;
116
- query: string;
117
- alias: string;
118
- getQuery: (alias: string) => string;
119
- };
120
- export type Filter = AnyObject | {
121
- $and: Filter[];
122
- } | {
123
- $or: Filter[];
124
- };
125
- export type JoinInfo = {
126
- expectOne?: boolean;
127
- paths: {
128
- /**
129
- * The table that JOIN ON columns refer to.
130
- * columns in index = 1 refer to this table. index = 0 columns refer to previous JoinInfo.table
131
- */
132
- table: string;
133
- /**
134
- * Source and target JOIN ON columns
135
- * Each inner array group will be combined with AND and outer arrays with OR to allow multiple references to the same table
136
- * e.g.: [[source_table_column: string, table_column: string]]
137
- */
138
- on: [string, string][][];
139
- /**
140
- * Source table name
141
- */
142
- source: string;
143
- /**
144
- * Target table name
145
- */
146
- target: string;
147
- }[];
148
- };
149
- import { Graph } from "./shortestPath";
150
- export type CommonTableRules = {
151
- /**
152
- * True by default. Allows clients to get column information on any columns that are allowed in (select, insert, update) field rules.
153
- */
154
- getColumns?: PublishAllOrNothing;
155
- /**
156
- * True by default. Allows clients to get table information (oid, comment, label, has_media).
157
- */
158
- getInfo?: PublishAllOrNothing;
159
- };
160
- export type ValidatedTableRules = CommonTableRules & {
161
- allColumns: FieldSpec[];
162
- select: {
163
- fields: string[];
164
- orderByFields: string[];
165
- filterFields: string[];
166
- forcedFilter: any;
167
- maxLimit: number | null;
168
- };
169
- update: {
170
- fields: string[];
171
- returningFields: string[];
172
- filterFields: string[];
173
- forcedFilter: any;
174
- forcedData: any;
175
- };
176
- insert: {
177
- fields: string[];
178
- returningFields: string[];
179
- forcedData: any;
180
- };
181
- delete: {
182
- filterFields: string[];
183
- forcedFilter: any;
184
- returningFields: string[];
185
- };
186
- };
187
- export declare function makeErrorFromPGError(err: any, localParams?: LocalParams, view?: ViewHandler, allowedKeys?: string[]): Promise<never>;
188
- /**
189
- * Ensure the error is an Object and has
190
- */
191
- export declare function parseError(e: any, caller: string): ProstglesError;
192
- export type ExistsFilterConfig = {
193
- key: string;
194
- f2: Filter;
195
- existType: EXISTS_KEY;
196
- tables: string[];
197
- isJoined: boolean;
198
- shortestJoin: boolean;
199
- };
200
- import { BasicSession, UserLike } from "./AuthHandler";
201
- import { TableHandler } from "./DboBuilder/TableHandler";
202
- export declare class DboBuilder {
203
- tablesOrViews?: TableSchema[];
204
- /**
205
- * Used in obtaining column names for error messages
206
- */
207
- constraints?: PGConstraint[];
208
- db: DB;
209
- schema: string;
210
- dbo: DBHandlerServer;
211
- _pubSubManager?: PubSubManager;
212
- /**
213
- * Used for db.sql field type details
214
- */
215
- DATA_TYPES: {
216
- oid: string;
217
- typname: PG_COLUMN_UDT_DATA_TYPE;
218
- }[] | undefined;
219
- USER_TABLES: {
220
- /**
221
- * oid of the table
222
- */
223
- relid: number;
224
- relname: string;
225
- schemaname: string;
226
- pkey_columns: string[] | null;
227
- }[] | undefined;
228
- USER_TABLE_COLUMNS: {
229
- relid: number;
230
- schemaname: string;
231
- relname: string;
232
- column_name: string;
233
- udt_name: string;
234
- ordinal_position: number;
235
- }[] | undefined;
236
- getPubSubManager: () => Promise<PubSubManager>;
237
- pojoDefinitions?: string[];
238
- tsTypesDefinition?: string;
239
- joinGraph?: Graph;
240
- joinPaths: JoinPaths;
241
- prostgles: Prostgles;
242
- publishParser?: PublishParser;
243
- onSchemaChange?: (event: {
244
- command: string;
245
- query: string;
246
- }) => void;
247
- private constructor();
248
- private init;
249
- static create: (prostgles: Prostgles) => Promise<DboBuilder>;
250
- destroy(): void;
251
- _joins?: Join[];
252
- get joins(): Join[];
253
- set joins(j: Join[]);
254
- getJoinPaths(): JoinPaths;
255
- parseJoins(): Promise<JoinPaths>;
256
- runSQL: (query: string, params: any, options: SQLOptions | undefined, localParams?: LocalParams) => Promise<any>;
257
- build(): Promise<DBHandlerServer>;
258
- getTX: (cb: TxCB) => Promise<any>;
259
- }
260
- export type TableSchemaColumn = ColumnInfo & {
261
- privileges: {
262
- privilege_type: "INSERT" | "REFERENCES" | "SELECT" | "UPDATE";
263
- is_grantable: "YES" | "NO";
264
- }[];
265
- };
266
- export type TableSchema = {
267
- schema: string;
268
- name: string;
269
- oid: number;
270
- comment: string;
271
- columns: TableSchemaColumn[];
272
- is_view: boolean;
273
- view_definition: string | null;
274
- parent_tables: string[];
275
- privileges: {
276
- insert: boolean;
277
- select: boolean;
278
- update: boolean;
279
- delete: boolean;
280
- };
281
- };
282
- type PGConstraint = {
283
- /**
284
- * Constraint type
285
- */
286
- contype: "u" | "p" | "c";
287
- /**
288
- * Column ordinal positions
289
- */
290
- conkey: number[];
291
- /**
292
- * Constraint name
293
- */
294
- conname: string;
295
- /**
296
- * Table name
297
- */
298
- relname: string;
299
- };
300
- export declare function isPlainObject(o: any): o is Record<string, any>;
301
- export declare function postgresToTsType(udt_data_type: PG_COLUMN_UDT_DATA_TYPE): keyof typeof TS_PG_Types;
302
- export declare const prepareSort: (items: SortItem[], excludeOrder?: boolean) => string;
303
- export declare const canEXECUTE: (db: DB) => Promise<boolean>;
304
- export declare const withUserRLS: (localParams: LocalParams | undefined, query: string) => string;
305
- export {};
306
- //# sourceMappingURL=DboBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,GAAG,QAAQ,iCAAiC,CAAC,CAAC;AAEvD,OAAO,EACL,UAAU,EAAE,UAAU,EACtB,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,SAAS,IAAI,KAAK,EAClB,UAAU,EACV,SAAS,EAEU,cAAc,EAAiB,UAAU,EAC7D,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,CAAC;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG;IACF,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,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;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAA;AAED,MAAM,MAAM,IAAI,CAAC,EAAE,GAAG,aAAa,IAAI;IACrC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;CAC/E,CAAA;AACD,MAAM,MAAM,EAAE,CAAC,EAAE,GAAG,aAAa,IAAI;IACnC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;CACtC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;CACrD,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,EAAE,GAAG,aAAa,IAC5C,EAAE,GACF,OAAO,CAAC,WAAW,CAAC,GAAG;IACrB,GAAG,CAAC,EAAE,UAAU,CAAA;CACjB,GAAG;IACF,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;CACZ,CAAA;AAIH,OAAO,EAAE,SAAS,EAAG,MAAM,qCAAqC,CAAC;AACjE,OAAO,EACL,IAAI,EAAE,SAAS,EAAE,EAAE,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EAAE,mBAAmB,EACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAW,aAAa,EAAY,MAAM,+BAA+B,CAAC;AAEhG,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGlE,KAAK,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAC3C,eAAO,MAAM,GAAG,EAAE,GAGhB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,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;CACvB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG;IACjC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG;IACnD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,SAAS,GAAG;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;SAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC5B,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,QAAQ,CAAC,OAAO,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,CAAA;IAED,+BAA+B;IAC/B,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,YAAY,CAAC;QACtB,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,SAAS,CAAC;KACvB,CAAA;IAED,KAAK,CAAC,EAAE,SAAS,CAAA;IAEjB,qCAAqC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC;IACjB,eAAe,CAAC,EAAE;QAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,EAAE,CAAC,EAAE;QACH,IAAI,EAAE,aAAa,CAAC;QACpB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACxB,CAAA;IAID,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,SAAS,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAA;CACF,CAAA;AA4BD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAKrE;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE;QAEL;;;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;KACf,EAAE,CAAA;CACJ,CAAA;AAED,OAAO,EAAoB,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG;IAE7B;;OAEG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IAGnD,UAAU,EAAE,SAAS,EAAE,CAAC;IAExB,MAAM,EAAE;QAEN,MAAM,EAAE,MAAM,EAAE,CAAC;QAGjB,aAAa,EAAE,MAAM,EAAE,CAAC;QAGxB,YAAY,EAAE,MAAM,EAAE,CAAC;QAGvB,YAAY,EAAE,GAAG,CAAC;QAGlB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,MAAM,EAAE;QAEN,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;KACjB,CAAC;IACF,MAAM,EAAE;QAEN,MAAM,EAAE,MAAM,EAAE,CAAC;QAGjB,eAAe,EAAE,MAAM,EAAE,CAAC;QAG1B,UAAU,EAAE,GAAG,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QAEN,YAAY,EAAE,MAAM,EAAE,CAAC;QAGvB,YAAY,EAAE,GAAG,CAAC;QAGlB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAA;CACF,CAAA;AAGD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBA2BnH;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAejE;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,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;CACvB,CAAC;AAGF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,UAAU;IACrB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAE7B,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,SAAY;IAGlB,GAAG,EAAE,eAAe,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,CAAC;IAE/B;;OAEG;IACH,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,uBAAuB,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC;IAC5E,WAAW,EAAE;QACX;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KAC/B,EAAE,GAAG,SAAS,CAAC;IAChB,kBAAkB,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,EAAE,GAAG,SAAS,CAAC;IAEhB,gBAAgB,QAAa,QAAQ,aAAa,CAAC,CA4BlD;IAED,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,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;IASP,OAAO,CAAC,IAAI,CAcX;IAED,OAAc,MAAM,cAAqB,SAAS,KAAG,QAAQ,UAAU,CAAC,CAGvE;IAGD,OAAO;IAIP,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IAChB,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,EAElB;IAED,YAAY;IAIN,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAmHtC,MAAM,UAAiB,MAAM,UAAU,GAAG,WAAW,UAAU,GAAG,SAAS,gBAAgB,WAAW,kBAErG;IACK,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAiFvC,KAAK,OAAQ,IAAI,kBAgBhB;CACF;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,UAAU,EAAE;QACV,cAAc,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAC9D,YAAY,EAAE,KAAK,GAAG,IAAI,CAAA;KAC3B,EAAE,CAAC;CACL,CAAA;AAGD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE;QACV,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAA;CACF,CAAA;AAED,KAAK,YAAY,GAAG;IAElB;;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;CACjB,CAAC;AAgBF,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;AAiTD,eAAO,MAAM,WAAW,UAAW,QAAQ,EAAE,6BAAyB,MASrE,CAAA;AAED,eAAO,MAAM,UAAU,8BAUtB,CAAA;AAED,eAAO,MAAM,WAAW,gBAAiB,WAAW,GAAG,SAAS,SAAS,MAAM,WAU9E,CAAA"}