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,37 +0,0 @@
1
- import pgPromise from "pg-promise";
2
- import { AnyObject, DeleteParams, FieldFilter, InsertParams, Select, UpdateParams } from "prostgles-types";
3
- import { DboBuilder, Filter, LocalParams, TableHandlers, TableSchema } from "../DboBuilder";
4
- import { DB } from "../Prostgles";
5
- import { TableRule } from "../PublishParser";
6
- import { insertDataParse } from "./insertDataParse";
7
- import { SelectItem } from "./QueryBuilder/QueryBuilder";
8
- import { JoinPaths, ViewHandler } from "./ViewHandler";
9
- type ValidatedParams = {
10
- row: AnyObject;
11
- forcedData?: AnyObject;
12
- allowedFields?: FieldFilter;
13
- tableRules?: TableRule;
14
- fixIssues: boolean;
15
- };
16
- export declare class TableHandler extends ViewHandler {
17
- constructor(db: DB, tableOrViewInfo: TableSchema, dboBuilder: DboBuilder, t?: pgPromise.ITask<{}>, dbTX?: TableHandlers, joinPaths?: JoinPaths);
18
- updateBatch(data: [Filter, AnyObject][], params?: UpdateParams, tableRules?: TableRule, localParams?: LocalParams): Promise<any>;
19
- parseUpdateRules: any;
20
- update: any;
21
- validateNewData({ row, forcedData, allowedFields, tableRules, fixIssues }: ValidatedParams): {
22
- data: any;
23
- allowedCols: string[];
24
- };
25
- insertDataParse: typeof insertDataParse;
26
- insert(rowOrRows: (AnyObject | AnyObject[]), param2?: InsertParams, param3_unused?: undefined, tableRules?: TableRule, _localParams?: LocalParams): Promise<any | any[] | boolean>;
27
- prepareReturning: (returning: Select | undefined, allowedFields: string[]) => Promise<SelectItem[]>;
28
- makeReturnQuery(items?: SelectItem[]): string;
29
- delete(filter?: Filter, params?: DeleteParams, param3_unused?: undefined, table_rules?: TableRule, localParams?: LocalParams): Promise<any>;
30
- remove(filter: Filter, params?: UpdateParams, param3_unused?: undefined, tableRules?: TableRule, localParams?: LocalParams): Promise<any>;
31
- upsert(filter: Filter, newData: AnyObject, params?: UpdateParams, table_rules?: TableRule, localParams?: LocalParams): Promise<any>;
32
- sync(filter: Filter, params: {
33
- select?: FieldFilter;
34
- }, param3_unused: undefined, table_rules: TableRule, localParams: LocalParams): Promise<any>;
35
- }
36
- export {};
37
- //# sourceMappingURL=TableHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableHandler.d.ts","sourceRoot":"","sources":["TableHandler.ts"],"names":[],"mappings":"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"}
@@ -1,213 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableHandler = void 0;
4
- const prostgles_types_1 = require("prostgles-types");
5
- const DboBuilder_1 = require("../DboBuilder");
6
- const delete_1 = require("./delete");
7
- const insert_1 = require("./insert");
8
- const insertDataParse_1 = require("./insertDataParse");
9
- const QueryBuilder_1 = require("./QueryBuilder/QueryBuilder");
10
- const update_1 = require("./update");
11
- const ViewHandler_1 = require("./ViewHandler");
12
- const parseUpdateRules_1 = require("./parseUpdateRules");
13
- const Functions_1 = require("./QueryBuilder/Functions");
14
- class TableHandler extends ViewHandler_1.ViewHandler {
15
- constructor(db, tableOrViewInfo, dboBuilder, t, dbTX, joinPaths) {
16
- super(db, tableOrViewInfo, dboBuilder, t, dbTX, joinPaths);
17
- this.remove = this.delete;
18
- this.is_view = false;
19
- this.is_media = dboBuilder.prostgles.isMedia(this.name);
20
- }
21
- async updateBatch(data, params, tableRules, localParams) {
22
- try {
23
- const updateQueries = await Promise.all(data.map(async ([filter, data]) => (await this.update(filter, data, { ...(params || {}), returning: undefined }, tableRules, { ...(localParams || {}), returnQuery: "noRLS" }))));
24
- const queries = [
25
- (0, DboBuilder_1.withUserRLS)(localParams, ""),
26
- ...updateQueries
27
- ];
28
- if (this.t) {
29
- const _queries = queries.map(q => this.t.none(q));
30
- return this.t.batch(_queries);
31
- }
32
- return this.db.tx(t => {
33
- const _queries = queries.map(q => t.none(q));
34
- return t.batch(_queries);
35
- }).catch(err => (0, DboBuilder_1.makeErrorFromPGError)(err, localParams, this, []));
36
- }
37
- catch (e) {
38
- if (localParams && localParams.testRule)
39
- throw e;
40
- throw (0, DboBuilder_1.parseError)(e, `dbo.${this.name}.update()`);
41
- }
42
- }
43
- parseUpdateRules = parseUpdateRules_1.parseUpdateRules.bind(this);
44
- update = update_1.update.bind(this);
45
- validateNewData({ row, forcedData, allowedFields, tableRules, fixIssues = false }) {
46
- const synced_field = (tableRules ?? {})?.sync?.synced_field;
47
- /* Update synced_field if sync is on and missing */
48
- if (synced_field && !row[synced_field]) {
49
- row[synced_field] = Date.now();
50
- }
51
- const data = this.prepareFieldValues(row, forcedData, allowedFields, fixIssues);
52
- const dataKeys = (0, prostgles_types_1.getKeys)(data);
53
- dataKeys.map(col => {
54
- this.dboBuilder.prostgles?.tableConfigurator?.checkColVal({ table: this.name, col, value: data[col] });
55
- const colConfig = this.dboBuilder.prostgles?.tableConfigurator?.getColumnConfig(this.name, col);
56
- if (colConfig && (0, prostgles_types_1.isObject)(colConfig) && "isText" in colConfig && data[col]) {
57
- if (colConfig.lowerCased) {
58
- data[col] = data[col].toString().toLowerCase();
59
- }
60
- if (colConfig.trimmed) {
61
- data[col] = data[col].toString().trim();
62
- }
63
- }
64
- });
65
- return { data, allowedCols: this.columns.filter(c => dataKeys.includes(c.name)).map(c => c.name) };
66
- }
67
- insertDataParse = insertDataParse_1.insertDataParse;
68
- async insert(rowOrRows, param2, param3_unused, tableRules, _localParams) {
69
- return insert_1.insert.bind(this)(rowOrRows, param2, param3_unused, tableRules, _localParams);
70
- }
71
- prepareReturning = async (returning, allowedFields) => {
72
- const result = [];
73
- if (returning) {
74
- const sBuilder = new QueryBuilder_1.SelectItemBuilder({
75
- allFields: this.column_names.slice(0),
76
- allowedFields,
77
- allowedOrderByFields: allowedFields,
78
- computedFields: Functions_1.COMPUTED_FIELDS,
79
- functions: Functions_1.FUNCTIONS.filter(f => f.type === "function" && f.singleColArg),
80
- isView: this.is_view,
81
- columns: this.columns,
82
- });
83
- await sBuilder.parseUserSelect(returning);
84
- return sBuilder.select;
85
- }
86
- return result;
87
- };
88
- makeReturnQuery(items) {
89
- if (items?.length)
90
- return " RETURNING " + items.map(s => s.getQuery() + " AS " + (0, prostgles_types_1.asName)(s.alias)).join(", ");
91
- return "";
92
- }
93
- async delete(filter, params, param3_unused, table_rules, localParams) {
94
- return delete_1._delete.bind(this)(filter, params, param3_unused, table_rules, localParams);
95
- }
96
- remove(filter, params, param3_unused, tableRules, localParams) {
97
- return this.delete(filter, params, param3_unused, tableRules, localParams);
98
- }
99
- async upsert(filter, newData, params, table_rules, localParams) {
100
- try {
101
- const _upsert = async function (tblH) {
102
- return tblH.find(filter, { select: "", limit: 1 }, undefined, table_rules, localParams)
103
- .then(exists => {
104
- if (exists && exists.length) {
105
- return tblH.update(filter, newData, params, table_rules, localParams);
106
- }
107
- else {
108
- return tblH.insert({ ...newData, ...filter }, params, undefined, table_rules, localParams);
109
- }
110
- });
111
- };
112
- /* Do it within a transaction to ensure consisency */
113
- if (!this.t) {
114
- return this.dboBuilder.getTX(dbTX => _upsert(dbTX[this.name]));
115
- }
116
- else {
117
- return _upsert(this);
118
- }
119
- }
120
- catch (e) {
121
- if (localParams && localParams.testRule)
122
- throw e;
123
- throw (0, DboBuilder_1.parseError)(e, `dbo.${this.name}.upsert()`);
124
- }
125
- }
126
- /* External request. Cannot sync from server */
127
- async sync(filter, params, param3_unused, table_rules, localParams) {
128
- if (!localParams)
129
- throw "Sync not allowed within the same server code";
130
- const { socket } = localParams;
131
- if (!socket)
132
- throw "INTERNAL ERROR: socket missing";
133
- if (!table_rules || !table_rules.sync || !table_rules.select)
134
- throw "INTERNAL ERROR: sync or select rules missing";
135
- if (this.t)
136
- throw "Sync not allowed within transactions";
137
- const ALLOWED_PARAMS = ["select"];
138
- const invalidParams = Object.keys(params || {}).filter(k => !ALLOWED_PARAMS.includes(k));
139
- if (invalidParams.length)
140
- throw "Invalid or dissallowed params found: " + invalidParams.join(", ");
141
- try {
142
- const { synced_field, allow_delete } = table_rules.sync;
143
- if (!table_rules.sync.id_fields.length || !synced_field) {
144
- const err = "INTERNAL ERROR: id_fields OR synced_field missing from publish";
145
- console.error(err);
146
- throw err;
147
- }
148
- const id_fields = this.parseFieldFilter(table_rules.sync.id_fields, false);
149
- const syncFields = [...id_fields, synced_field];
150
- const allowedSelect = this.parseFieldFilter(table_rules?.select.fields ?? false);
151
- if (syncFields.find(f => !allowedSelect.includes(f))) {
152
- throw `INTERNAL ERROR: sync field missing from publish.${this.name}.select.fields`;
153
- }
154
- const select = this.getAllowedSelectFields(params?.select ?? "*", allowedSelect, false);
155
- if (!select.length)
156
- throw "Empty select not allowed";
157
- /* Add sync fields if missing */
158
- syncFields.map(sf => {
159
- if (!select.includes(sf))
160
- select.push(sf);
161
- });
162
- /* Step 1: parse command and params */
163
- return this.find(filter, { select, limit: 0 }, undefined, table_rules, localParams)
164
- .then(async (_isValid) => {
165
- const { filterFields, forcedFilter } = table_rules?.select || {};
166
- const condition = (await this.prepareWhere({ filter, forcedFilter, filterFields, addKeywords: false, localParams, tableRule: table_rules })).where;
167
- // let final_filter = getFindFilter(filter, table_rules);
168
- const pubSubManager = await this.dboBuilder.getPubSubManager();
169
- return pubSubManager.addSync({
170
- table_info: this.tableOrViewInfo,
171
- condition,
172
- id_fields, synced_field,
173
- allow_delete,
174
- socket,
175
- table_rules,
176
- filter: { ...filter },
177
- params: { select }
178
- }).then(channelName => ({ channelName, id_fields, synced_field }));
179
- });
180
- }
181
- catch (e) {
182
- if (localParams && localParams.testRule)
183
- throw e;
184
- throw (0, DboBuilder_1.parseError)(e, `dbo.${this.name}.sync()`);
185
- }
186
- /*
187
- REPLICATION
188
-
189
- 1 Sync proccess (NO DELETES ALLOWED):
190
-
191
- Client sends:
192
- "sync-request"
193
- { min_id, max_id, count, max_synced }
194
-
195
- Server sends:
196
- "sync-pull"
197
- { from_synced }
198
-
199
- Client sends:
200
- "sync-push"
201
- { data } -> WHERE synced >= from_synced
202
-
203
- Server upserts:
204
- WHERE not exists synced = synced AND id = id
205
- UNTIL
206
-
207
- Server sends
208
- "sync-push"
209
- { data } -> WHERE synced >= from_synced
210
- */
211
- }
212
- }
213
- exports.TableHandler = TableHandler;
@@ -1,119 +0,0 @@
1
- import * as pgPromise from 'pg-promise';
2
- import { ColumnInfo, FieldFilter, SelectParams, OrderBy, TableInfo as TInfo, AnyObject, SubscribeParams } from "prostgles-types";
3
- import { DB, DBHandlerServer, Join } from "../Prostgles";
4
- import { DboBuilder, ExistsFilterConfig, Filter, JoinInfo, LocalParams, SortItem, TableHandlers, TableSchema, ValidatedTableRules } from "../DboBuilder";
5
- import { Graph } from "../shortestPath";
6
- import { TableRule, UpdateRule, ValidateRow } from "../PublishParser";
7
- import { SelectItem, SelectItemValidated } from "./QueryBuilder/QueryBuilder";
8
- import { LocalFuncs } from "./subscribe";
9
- export type JoinPaths = {
10
- t1: string;
11
- t2: string;
12
- path: string[];
13
- }[];
14
- type PrepareWhereParams = {
15
- filter?: Filter;
16
- select?: SelectItem[];
17
- forcedFilter?: AnyObject;
18
- filterFields?: FieldFilter;
19
- addKeywords?: boolean;
20
- tableAlias?: string;
21
- localParams: LocalParams | undefined;
22
- tableRule: TableRule | undefined;
23
- };
24
- declare class ColSet {
25
- opts: {
26
- columns: ColumnInfo[];
27
- tableName: string;
28
- colNames: string[];
29
- };
30
- constructor(columns: ColumnInfo[], tableName: string);
31
- private getRow;
32
- getInsertQuery(data: any[], allowedCols: string[], dbTx: DBHandlerServer, validate: ValidateRow | undefined): Promise<string>;
33
- getUpdateQuery(data: any[], allowedCols: string[], dbTx: DBHandlerServer, validate: ValidateRow | undefined): Promise<string>;
34
- }
35
- export declare class ViewHandler {
36
- db: DB;
37
- name: string;
38
- escapedName: string;
39
- columns: TableSchema["columns"];
40
- columnsForTypes: ColumnInfo[];
41
- column_names: string[];
42
- tableOrViewInfo: TableSchema;
43
- colSet: ColSet;
44
- tsColumnDefs: string[];
45
- joins: Join[];
46
- joinGraph?: Graph;
47
- joinPaths?: JoinPaths;
48
- dboBuilder: DboBuilder;
49
- t?: pgPromise.ITask<{}>;
50
- dbTX?: TableHandlers;
51
- is_view: boolean;
52
- filterDef: string;
53
- is_media: boolean;
54
- constructor(db: DB, tableOrViewInfo: TableSchema, dboBuilder: DboBuilder, t?: pgPromise.ITask<{}>, dbTX?: TableHandlers, joinPaths?: JoinPaths);
55
- getRowHashSelect(allowedFields: FieldFilter, alias?: string, tableAlias?: string): string;
56
- validateViewRules(args: {
57
- fields?: FieldFilter;
58
- filterFields?: FieldFilter;
59
- returningFields?: FieldFilter;
60
- forcedFilter?: AnyObject;
61
- dynamicFields?: UpdateRule["dynamicFields"];
62
- rule: "update" | "select" | "insert" | "delete";
63
- }): Promise<boolean>;
64
- getShortestJoin(table1: string, table2: string, startAlias: number, isInner?: boolean): {
65
- query: string;
66
- toOne: boolean;
67
- };
68
- getJoins(source: string, target: string, path?: string[], checkTableConfig?: boolean): JoinInfo;
69
- checkFilter(filter: any): void;
70
- getInfo(lang?: string, param2?: any, param3?: any, tableRules?: TableRule, localParams?: LocalParams): Promise<TInfo>;
71
- getColumns: any;
72
- getValidatedRules(tableRules?: TableRule, localParams?: LocalParams): ValidatedTableRules;
73
- find: any;
74
- findOne(filter?: Filter, selectParams?: SelectParams, param3_unused?: undefined, table_rules?: TableRule, localParams?: LocalParams): Promise<any>;
75
- subscribe(filter: Filter, params: SubscribeParams, localFuncs: LocalFuncs): Promise<{
76
- unsubscribe: () => any;
77
- }>;
78
- subscribe(filter: Filter, params: SubscribeParams, localFuncs: undefined, table_rules: TableRule | undefined, localParams: LocalParams): Promise<string>;
79
- subscribeOne(filter: Filter, params: SubscribeParams, localFunc: (item: AnyObject) => any): Promise<{
80
- unsubscribe: () => any;
81
- }>;
82
- subscribeOne(filter: Filter, params: SubscribeParams, localFunc: undefined, table_rules: TableRule, localParams: LocalParams): Promise<string>;
83
- count(filter?: Filter, param2_unused?: undefined, param3_unused?: undefined, table_rules?: TableRule, localParams?: LocalParams): Promise<number>;
84
- size(filter?: Filter, selectParams?: SelectParams, param3_unused?: undefined, table_rules?: TableRule, localParams?: LocalParams): Promise<string>;
85
- getAllowedSelectFields(selectParams: FieldFilter, allowed_cols: FieldFilter, allow_empty?: boolean): string[];
86
- /**
87
- * Parses group or simple filter
88
- */
89
- prepareWhere(params: PrepareWhereParams): Promise<{
90
- where: string;
91
- filter: AnyObject;
92
- exists: ExistsFilterConfig[];
93
- }>;
94
- prepareExistCondition(eConfig: ExistsFilterConfig, localParams: LocalParams | undefined): Promise<string>;
95
- getCondition: any;
96
- prepareSortItems(orderBy: OrderBy | undefined, allowed_cols: string[], tableAlias: string | undefined, select: SelectItemValidated[]): SortItem[];
97
- prepareLimitQuery(limit: number, p: ValidatedTableRules): number;
98
- prepareOffsetQuery(offset?: number): number;
99
- intersectColumns(allowedFields: FieldFilter, dissallowedFields: FieldFilter, fixIssues?: boolean): string[];
100
- /**
101
- * Prepare and validate field object:
102
- * @example ({ item_id: 1 }, { user_id: 32 }) => { item_id: 1, user_id: 32 }
103
- * OR
104
- * ({ a: 1 }, { b: 32 }, ["c", "d"]) => throw "a field is not allowed"
105
- * @param {Object} obj - initial data
106
- * @param {Object} forcedData - set/override property
107
- * @param {string[]} allowed_cols - allowed columns (excluding forcedData) from table rules
108
- */
109
- prepareFieldValues(obj: Record<string, any>, forcedData: object, allowed_cols: FieldFilter | undefined, fixIssues?: boolean): AnyObject;
110
- parseFieldFilter(fieldParams?: FieldFilter, allow_empty?: boolean, allowed_cols?: string[]): string[];
111
- /**
112
- * Filter string array
113
- * @param {FieldFilter} fieldParams - { col1: 0, col2: 0 } | { col1: true, col2: true } | "*" | ["key1", "key2"] | []
114
- * @param {boolean} allow_empty - allow empty select. defaults to true
115
- */
116
- static _parseFieldFilter<AllowedKeys extends string[]>(fieldParams: FieldFilter<Record<AllowedKeys[number], any>>, allow_empty: boolean, all_cols: AllowedKeys): AllowedKeys | [""];
117
- }
118
- export {};
119
- //# sourceMappingURL=ViewHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewHandler.d.ts","sourceRoot":"","sources":["ViewHandler.ts"],"names":[],"mappings":"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"}