@steedos/objectql 3.0.13-beta.3 → 3.0.13-beta.32

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 (136) hide show
  1. package/lib/actions/field_updates.js +84 -153
  2. package/lib/actions/field_updates.js.map +1 -1
  3. package/lib/actions/index.js +1 -1
  4. package/lib/actions/workflow_notifications.js +50 -111
  5. package/lib/actions/workflow_notifications.js.map +1 -1
  6. package/lib/actions/workflow_outbound_messages.js +43 -94
  7. package/lib/actions/workflow_outbound_messages.js.map +1 -1
  8. package/lib/actions/workflow_rule.js +80 -177
  9. package/lib/actions/workflow_rule.js.map +1 -1
  10. package/lib/broker.js +19 -49
  11. package/lib/broker.js.map +1 -1
  12. package/lib/driver/field-encrytion/index.js +1 -1
  13. package/lib/driver/field-encrytion/mongosharedconst.js +17 -17
  14. package/lib/driver/field-encrytion/mongosharedconst.js.map +1 -1
  15. package/lib/driver/format.js +3 -3
  16. package/lib/driver/format.js.map +1 -1
  17. package/lib/driver/index.js +1 -1
  18. package/lib/driver/metadata.js +283 -387
  19. package/lib/driver/metadata.js.map +1 -1
  20. package/lib/driver/metadataOld.js +104 -105
  21. package/lib/driver/metadataOld.js.map +1 -1
  22. package/lib/driver/meteorMongo.js +5 -8
  23. package/lib/driver/meteorMongo.js.map +1 -1
  24. package/lib/driver/mongo.js +321 -506
  25. package/lib/driver/mongo.js.map +1 -1
  26. package/lib/driver/mysql.js +16 -20
  27. package/lib/driver/mysql.js.map +1 -1
  28. package/lib/driver/oracle.js +25 -38
  29. package/lib/driver/oracle.js.map +1 -1
  30. package/lib/driver/postgres.js +16 -20
  31. package/lib/driver/postgres.js.map +1 -1
  32. package/lib/driver/sqlite3.js +15 -19
  33. package/lib/driver/sqlite3.js.map +1 -1
  34. package/lib/driver/sqlserver.js +20 -33
  35. package/lib/driver/sqlserver.js.map +1 -1
  36. package/lib/errors/index.js +10 -11
  37. package/lib/errors/index.js.map +1 -1
  38. package/lib/formula/core.js +307 -594
  39. package/lib/formula/core.js.map +1 -1
  40. package/lib/formula/field_formula.js +80 -126
  41. package/lib/formula/field_formula.js.map +1 -1
  42. package/lib/formula/index.js +56 -97
  43. package/lib/formula/index.js.map +1 -1
  44. package/lib/formula/params.js +11 -11
  45. package/lib/formula/params.js.map +1 -1
  46. package/lib/formula/recompute.js +41 -166
  47. package/lib/formula/recompute.js.map +1 -1
  48. package/lib/formula/simple_params.js +12 -12
  49. package/lib/formula/simple_params.js.map +1 -1
  50. package/lib/formula/util.js +43 -67
  51. package/lib/formula/util.js.map +1 -1
  52. package/lib/functions/function.js +62 -87
  53. package/lib/functions/function.js.map +1 -1
  54. package/lib/index.js +3 -3
  55. package/lib/index.js.map +1 -1
  56. package/lib/services/datasourceServiceFactory.js +77 -111
  57. package/lib/services/datasourceServiceFactory.js.map +1 -1
  58. package/lib/services/index.js +3 -3
  59. package/lib/services/index.js.map +1 -1
  60. package/lib/summary/core.js +162 -355
  61. package/lib/summary/core.js.map +1 -1
  62. package/lib/summary/field_summary.js +44 -71
  63. package/lib/summary/field_summary.js.map +1 -1
  64. package/lib/summary/index.js +65 -80
  65. package/lib/summary/index.js.map +1 -1
  66. package/lib/summary/recompute.js +19 -47
  67. package/lib/summary/recompute.js.map +1 -1
  68. package/lib/triggers/trigger.js +101 -142
  69. package/lib/triggers/trigger.js.map +1 -1
  70. package/lib/ts-types/index.js +1 -1
  71. package/lib/typeorm/driver.js +250 -450
  72. package/lib/typeorm/driver.js.map +1 -1
  73. package/lib/typeorm/index.js +1 -1
  74. package/lib/typeorm/util.js +28 -28
  75. package/lib/typeorm/util.js.map +1 -1
  76. package/lib/types/action.js +24 -33
  77. package/lib/types/action.js.map +1 -1
  78. package/lib/types/app.js +210 -355
  79. package/lib/types/app.js.map +1 -1
  80. package/lib/types/connection.js +42 -78
  81. package/lib/types/connection.js.map +1 -1
  82. package/lib/types/dashboard.js +56 -77
  83. package/lib/types/dashboard.js.map +1 -1
  84. package/lib/types/datasource.js +359 -705
  85. package/lib/types/datasource.js.map +1 -1
  86. package/lib/types/defaultValue.js +53 -65
  87. package/lib/types/defaultValue.js.map +1 -1
  88. package/lib/types/field.js +165 -137
  89. package/lib/types/field.js.map +1 -1
  90. package/lib/types/field_permission.js +35 -66
  91. package/lib/types/field_permission.js.map +1 -1
  92. package/lib/types/index.js +1 -1
  93. package/lib/types/list_view.js +36 -43
  94. package/lib/types/list_view.js.map +1 -1
  95. package/lib/types/metadata.js +6 -6
  96. package/lib/types/metadata.js.map +1 -1
  97. package/lib/types/method_base.js +95 -128
  98. package/lib/types/method_base.js.map +1 -1
  99. package/lib/types/object.js +2005 -3015
  100. package/lib/types/object.js.map +1 -1
  101. package/lib/types/object_events.js +24 -37
  102. package/lib/types/object_events.js.map +1 -1
  103. package/lib/types/object_layouts.js +15 -38
  104. package/lib/types/object_layouts.js.map +1 -1
  105. package/lib/types/object_permission.js +99 -85
  106. package/lib/types/object_permission.js.map +1 -1
  107. package/lib/types/report.js +70 -98
  108. package/lib/types/report.js.map +1 -1
  109. package/lib/types/restrictionRule.js +47 -96
  110. package/lib/types/restrictionRule.js.map +1 -1
  111. package/lib/types/schema.js +115 -177
  112. package/lib/types/schema.js.map +1 -1
  113. package/lib/types/shareRule.js +53 -102
  114. package/lib/types/shareRule.js.map +1 -1
  115. package/lib/types/trigger.js +43 -56
  116. package/lib/types/trigger.js.map +1 -1
  117. package/lib/types/validation_rules.js +18 -56
  118. package/lib/types/validation_rules.js.map +1 -1
  119. package/lib/util/convert.js +24 -24
  120. package/lib/util/convert.js.map +1 -1
  121. package/lib/util/field.js +16 -28
  122. package/lib/util/field.js.map +1 -1
  123. package/lib/util/function_expression.js +7 -8
  124. package/lib/util/function_expression.js.map +1 -1
  125. package/lib/util/index.js +79 -97
  126. package/lib/util/index.js.map +1 -1
  127. package/lib/util/locale.js +4 -4
  128. package/lib/util/locale.js.map +1 -1
  129. package/lib/util/permission_shares.js +7 -7
  130. package/lib/util/permission_shares.js.map +1 -1
  131. package/lib/util/suffix.js +19 -19
  132. package/lib/util/suffix.js.map +1 -1
  133. package/lib/util/transform.js +1 -1
  134. package/lib/validators/index.js +10 -10
  135. package/lib/validators/index.js.map +1 -1
  136. package/package.json +12 -12
@@ -1,26 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MetadataDriver = void 0;
4
- var tslib_1 = require("tslib");
5
- var _1 = require(".");
6
- var types_1 = require("../types");
7
- var mingo = require("mingo");
8
- var clone = require("clone");
9
- var _ = require("underscore");
10
- var i18n_1 = require("@steedos/i18n");
11
- var util_1 = require("../util");
12
- var metadata_registrar_1 = require("@steedos/metadata-registrar");
13
- var PERMISSIONS = {
4
+ const _1 = require(".");
5
+ const types_1 = require("../types");
6
+ const mingo = require("mingo");
7
+ const clone = require("clone");
8
+ const _ = require("underscore");
9
+ const i18n_1 = require("@steedos/i18n");
10
+ const util_1 = require("../util");
11
+ const metadata_registrar_1 = require("@steedos/metadata-registrar");
12
+ const PERMISSIONS = {
14
13
  allowEdit: false,
15
14
  allowDelete: false,
16
15
  allowRead: true,
17
16
  };
18
- var BASERECORD = {
17
+ const BASERECORD = {
19
18
  is_system: true,
20
19
  record_permissions: PERMISSIONS,
21
20
  };
22
- var isAPIName = function (apiName, tableName) {
23
- var reg = new RegExp("^[a-z]([a-z0-9]|_(?!_))*[a-z0-9]$");
21
+ const isAPIName = function (apiName, tableName) {
22
+ let reg = new RegExp("^[a-z]([a-z0-9]|_(?!_))*[a-z0-9]$");
24
23
  if (tableName == "permission_fields") {
25
24
  reg = new RegExp("^[a-z]([a-z0-9]|_(?!_)|\\.(?!\\.))*[a-z0-9]$");
26
25
  }
@@ -33,77 +32,69 @@ var isAPIName = function (apiName, tableName) {
33
32
  }
34
33
  return true;
35
34
  };
36
- var MetadataDriver = (function (_super) {
37
- tslib_1.__extends(MetadataDriver, _super);
38
- function MetadataDriver(config) {
39
- var _this = _super.call(this, config) || this;
40
- _this.getAllObjects = function () {
41
- var args_1 = [];
42
- for (var _i = 0; _i < arguments.length; _i++) {
43
- args_1[_i] = arguments[_i];
44
- }
45
- return tslib_1.__awaiter(_this, tslib_1.__spreadArray([], tslib_1.__read(args_1), false), void 0, function (skipDBObjects) {
46
- var objects, md5, result;
47
- var _this = this;
48
- if (skipDBObjects === void 0) { skipDBObjects = false; }
49
- return tslib_1.__generator(this, function (_a) {
50
- switch (_a.label) {
51
- case 0:
52
- if (this.cacher.objects &&
53
- this.cacher.objects.time > new Date().getTime()) {
54
- return [2, skipDBObjects
55
- ? this.cacher.objects.noDBData
56
- : this.cacher.objects.data];
57
- }
58
- return [4, (0, types_1.getAllObject)()];
59
- case 1:
60
- objects = _a.sent();
61
- md5 = (0, util_1.getMD5)(JSON.stringify(objects));
62
- if (this.cacher.objects.id === md5) {
63
- this.cacher.objects.time = new Date().getTime() + 1000;
64
- return [2, skipDBObjects
65
- ? this.cacher.objects.noDBData
66
- : this.cacher.objects.data];
67
- }
68
- result = _.compact(_.map(objects, function (metadataObject) {
69
- var metadata = _this.translationObjectMetadata(metadataObject.metadata);
70
- var obj = tslib_1.__assign({ __id: metadata._id, _id: metadata.name }, metadata);
71
- delete obj.__filename;
72
- delete obj.__timestamp;
73
- return obj;
74
- }));
75
- this.cacher.objects = {
76
- id: md5,
77
- data: result,
78
- noDBData: _.filter(result, function (item) {
79
- return !item.__id;
80
- }),
81
- time: new Date().getTime() + 1000,
82
- };
83
- return [2, result];
84
- }
85
- });
86
- });
87
- };
88
- _this.cacher = {
35
+ class MetadataDriver extends _1.SteedosMongoDriver {
36
+ databaseVersion;
37
+ config;
38
+ cacher;
39
+ constructor(config) {
40
+ super(config);
41
+ this.cacher = {
89
42
  objects: {},
90
43
  };
91
- return _this;
92
44
  }
93
- MetadataDriver.prototype.addDefaultProps = function (records) {
45
+ getAllObjects = async (skipDBObjects = false) => {
46
+ if (this.cacher.objects &&
47
+ this.cacher.objects.time > new Date().getTime()) {
48
+ return skipDBObjects
49
+ ? this.cacher.objects.noDBData
50
+ : this.cacher.objects.data;
51
+ }
52
+ const objects = await (0, types_1.getAllObject)();
53
+ const md5 = (0, util_1.getMD5)(JSON.stringify(objects));
54
+ if (this.cacher.objects.id === md5) {
55
+ this.cacher.objects.time = new Date().getTime() + 1000;
56
+ return skipDBObjects
57
+ ? this.cacher.objects.noDBData
58
+ : this.cacher.objects.data;
59
+ }
60
+ const result = _.compact(_.map(objects, (metadataObject) => {
61
+ const metadata = this.translationObjectMetadata(metadataObject.metadata);
62
+ const obj = {
63
+ __id: metadata._id,
64
+ _id: metadata.name,
65
+ ...metadata,
66
+ };
67
+ delete obj.__filename;
68
+ delete obj.__timestamp;
69
+ return obj;
70
+ }));
71
+ this.cacher.objects = {
72
+ id: md5,
73
+ data: result,
74
+ noDBData: _.filter(result, function (item) {
75
+ return !item.__id;
76
+ }),
77
+ time: new Date().getTime() + 1000,
78
+ };
79
+ return result;
80
+ };
81
+ addDefaultProps(records) {
94
82
  if (!records) {
95
83
  return records;
96
84
  }
97
- var results = records.map(function (obj) { return (tslib_1.__assign(tslib_1.__assign({}, obj), BASERECORD)); });
85
+ const results = records.map((obj) => ({
86
+ ...obj,
87
+ ...BASERECORD,
88
+ }));
98
89
  return results;
99
- };
100
- MetadataDriver.prototype.queryMetadata = function (collection, queryOptions, spaceId) {
101
- var mongoFilters = this.getMongoFilters(queryOptions.filters);
90
+ }
91
+ queryMetadata(collection, queryOptions, spaceId) {
92
+ const mongoFilters = this.getMongoFilters(queryOptions.filters);
102
93
  if (!spaceId) {
103
- var str = JSON.stringify(mongoFilters);
104
- var regex = /"space":"([^"]+)"/;
105
- var match = regex.exec(str);
106
- var space = match ? match[1] : null;
94
+ const str = JSON.stringify(mongoFilters);
95
+ const regex = /"space":"([^"]+)"/;
96
+ const match = regex.exec(str);
97
+ const space = match ? match[1] : null;
107
98
  if (space) {
108
99
  spaceId = space;
109
100
  }
@@ -115,348 +106,253 @@ var MetadataDriver = (function (_super) {
115
106
  }
116
107
  }
117
108
  catch (error) {
118
- console.error("metadata driver queryMetadata: ".concat(item, " is not json data"), error);
109
+ console.error(`metadata driver queryMetadata: ${item} is not json data`, error);
119
110
  }
120
111
  });
121
- var mongoOptions = this.getMongoOptions(queryOptions);
122
- var query = new mingo.Query(mongoFilters);
123
- var projection = queryOptions.projection
112
+ const mongoOptions = this.getMongoOptions(queryOptions);
113
+ const query = new mingo.Query(mongoFilters);
114
+ const projection = queryOptions.projection
124
115
  ? Object.assign({}, queryOptions.projection, {
125
116
  record_permissions: 1,
126
117
  is_system: 1,
127
118
  })
128
119
  : null;
129
- var cursor = query.find(collection, projection);
120
+ const cursor = query.find(collection, projection);
130
121
  if (mongoOptions.sort) {
131
122
  cursor.sort(mongoOptions.sort);
132
123
  }
133
124
  return cursor;
134
- };
135
- MetadataDriver.prototype.translationObjectMetadata = function (objectConfig, lng) {
125
+ }
126
+ translationObjectMetadata(objectConfig, lng) {
136
127
  if (!lng) {
137
128
  lng = process.env.STEEDOS_DEFAULT_LANGUAGE
138
129
  ? process.env.STEEDOS_DEFAULT_LANGUAGE
139
130
  : "zh-CN";
140
131
  }
141
- var metadata = clone(objectConfig, false);
132
+ const metadata = clone(objectConfig, false);
142
133
  (0, i18n_1.translationObject)(lng, metadata.name, metadata, true);
143
134
  return metadata;
144
- };
145
- MetadataDriver.prototype.getCachedSources = function (tableName) {
146
- return tslib_1.__awaiter(this, void 0, void 0, function () {
147
- var _a, objects2, fields_1, objects3, actions_1, objects3, list_views_1, allApps, _b, apps_1, configs, dataList, configs, dataList, configs, dataList, configs;
148
- return tslib_1.__generator(this, function (_c) {
149
- switch (_c.label) {
150
- case 0:
151
- _a = tableName;
152
- switch (_a) {
153
- case "objects": return [3, 1];
154
- case "object_fields": return [3, 3];
155
- case "object_actions": return [3, 5];
156
- case "object_listviews": return [3, 7];
157
- case "apps": return [3, 9];
158
- case "action_field_updates": return [3, 11];
159
- case "workflow_notifications": return [3, 13];
160
- case "workflow_outbound_messages": return [3, 15];
161
- case "workflow_rule": return [3, 17];
162
- case "queue_import": return [3, 19];
163
- case "share_rules": return [3, 21];
164
- case "restriction_rules": return [3, 23];
165
- case "roles": return [3, 25];
135
+ }
136
+ async getCachedSources(tableName) {
137
+ switch (tableName) {
138
+ case "objects": {
139
+ return await this.getAllObjects(true);
140
+ }
141
+ case "object_fields": {
142
+ const objects2 = await this.getAllObjects();
143
+ const fields = [];
144
+ _.each(objects2, (metadata) => {
145
+ _.each(metadata.fields, (field) => {
146
+ if (field.hidden == true || field._id) {
147
+ return;
166
148
  }
167
- return [3, 27];
168
- case 1: return [4, this.getAllObjects(true)];
169
- case 2: return [2, _c.sent()];
170
- case 3: return [4, this.getAllObjects()];
171
- case 4:
172
- objects2 = _c.sent();
173
- fields_1 = [];
174
- _.each(objects2, function (metadata) {
175
- _.each(metadata.fields, function (field) {
176
- if (field.hidden == true || field._id) {
177
- return;
178
- }
179
- fields_1.push(tslib_1.__assign({ _id: "".concat(metadata.name, ".").concat(field.name), object: metadata.name }, field));
180
- });
181
- });
182
- return [2, fields_1];
183
- case 5: return [4, this.getAllObjects()];
184
- case 6:
185
- objects3 = _c.sent();
186
- actions_1 = [];
187
- _.each(objects3, function (metadata) {
188
- _.each(metadata.actions, function (field) {
189
- if (field._id) {
190
- return;
191
- }
192
- actions_1.push(tslib_1.__assign({ _id: "".concat(metadata.name, ".").concat(field.name), object: metadata.name }, field));
193
- });
194
- });
195
- return [2, actions_1];
196
- case 7: return [4, this.getAllObjects()];
197
- case 8:
198
- objects3 = _c.sent();
199
- list_views_1 = [];
200
- _.each(objects3, function (metadata) {
201
- _.each(metadata.list_views, function (list_view) {
202
- if (list_view._id) {
203
- return;
204
- }
205
- list_views_1.push(tslib_1.__assign({ _id: "".concat(metadata.name, ".").concat(list_view.name), object_name: metadata.name }, list_view));
206
- });
207
- });
208
- return [2, list_views_1];
209
- case 9:
210
- _b = clone;
211
- return [4, (0, types_1.getAppConfigs)()];
212
- case 10:
213
- allApps = _b.apply(void 0, [_c.sent()]);
214
- apps_1 = [];
215
- _.each(allApps, function (app) {
216
- if (app.is_creator || app.mobile) {
217
- apps_1.push(app);
218
- }
219
- });
220
- (0, i18n_1.translationApps)("zh-CN", apps_1);
221
- return [2, apps_1];
222
- case 11: return [4, (0, metadata_registrar_1.getAllActionFieldUpdates)()];
223
- case 12: return [2, _c.sent()];
224
- case 13: return [4, (0, metadata_registrar_1.getAllWorkflowNotifications)()];
225
- case 14: return [2, _c.sent()];
226
- case 15: return [4, (0, metadata_registrar_1.getWorkflowOutboundMessages)()];
227
- case 16: return [2, _c.sent()];
228
- case 17: return [4, (0, metadata_registrar_1.getAllWorkflowRules)()];
229
- case 18: return [2, _c.sent()];
230
- case 19: return [4, metadata_registrar_1.registerImport.getAll(broker)];
231
- case 20:
232
- configs = _c.sent();
233
- dataList = _.pluck(configs, "metadata");
234
- _.each(dataList, function (item) {
235
- if (!item._id) {
236
- item._id = "".concat(item.name);
237
- }
149
+ fields.push({
150
+ _id: `${metadata.name}.${field.name}`,
151
+ object: metadata.name,
152
+ ...field,
238
153
  });
239
- return [2, dataList];
240
- case 21: return [4, metadata_registrar_1.registerShareRules.getAll(broker)];
241
- case 22:
242
- configs = _c.sent();
243
- dataList = _.pluck(configs, "metadata");
244
- _.each(dataList, function (item) {
245
- if (!item._id) {
246
- item._id = "".concat(item.object_name, ".").concat(item.name);
247
- }
154
+ });
155
+ });
156
+ return fields;
157
+ }
158
+ case "object_actions": {
159
+ const objects3 = await this.getAllObjects();
160
+ const actions = [];
161
+ _.each(objects3, (metadata) => {
162
+ _.each(metadata.actions, (field) => {
163
+ if (field._id) {
164
+ return;
165
+ }
166
+ actions.push({
167
+ _id: `${metadata.name}.${field.name}`,
168
+ object: metadata.name,
169
+ ...field,
248
170
  });
249
- return [2, dataList];
250
- case 23: return [4, metadata_registrar_1.registerRestrictionRules.getAll(broker)];
251
- case 24:
252
- configs = _c.sent();
253
- dataList = _.pluck(configs, "metadata");
254
- _.each(dataList, function (item) {
255
- if (!item._id) {
256
- item._id = "".concat(item.object_name, ".").concat(item.name);
257
- }
171
+ });
172
+ });
173
+ return actions;
174
+ }
175
+ case "object_listviews": {
176
+ const objects3 = await this.getAllObjects();
177
+ const list_views = [];
178
+ _.each(objects3, (metadata) => {
179
+ _.each(metadata.list_views, (list_view) => {
180
+ if (list_view._id) {
181
+ return;
182
+ }
183
+ list_views.push({
184
+ _id: `${metadata.name}.${list_view.name}`,
185
+ object_name: metadata.name,
186
+ ...list_view,
258
187
  });
259
- return [2, dataList];
260
- case 25: return [4, (0, metadata_registrar_1.getSourceRoles)()];
261
- case 26:
262
- configs = _c.sent();
263
- return [2, configs];
264
- case 27: return [3, 28];
265
- case 28: return [2];
266
- }
267
- });
268
- });
269
- };
270
- MetadataDriver.prototype.mixinSources = function (metaName_1) {
271
- return tslib_1.__awaiter(this, arguments, void 0, function (metaName, dbSources, codeSources) {
272
- var key, dbSIDMap, dbIdMap;
273
- if (dbSources === void 0) { dbSources = []; }
274
- if (codeSources === void 0) { codeSources = []; }
275
- return tslib_1.__generator(this, function (_a) {
276
- key = metaName === "apps" ? "_id" : "name";
277
- if (metaName === "roles") {
278
- key = "api_name";
279
- }
280
- dbSIDMap = new Map(dbSources.map(function (item) {
281
- var idValue = null;
282
- if (item.object || item.object_name) {
283
- idValue = "".concat(item.object || item.object_name, ".").concat(item[key]);
188
+ });
189
+ });
190
+ return list_views;
191
+ }
192
+ case "apps": {
193
+ const allApps = clone(await (0, types_1.getAppConfigs)());
194
+ const apps = [];
195
+ _.each(allApps, function (app) {
196
+ if (app.is_creator || app.mobile) {
197
+ apps.push(app);
284
198
  }
285
- else {
286
- idValue = item[key];
199
+ });
200
+ (0, i18n_1.translationApps)("zh-CN", apps);
201
+ return apps;
202
+ }
203
+ case "action_field_updates": {
204
+ return await (0, metadata_registrar_1.getAllActionFieldUpdates)();
205
+ }
206
+ case "workflow_notifications": {
207
+ return await (0, metadata_registrar_1.getAllWorkflowNotifications)();
208
+ }
209
+ case "workflow_outbound_messages": {
210
+ return await (0, metadata_registrar_1.getWorkflowOutboundMessages)();
211
+ }
212
+ case "workflow_rule": {
213
+ return await (0, metadata_registrar_1.getAllWorkflowRules)();
214
+ }
215
+ case "queue_import": {
216
+ const configs = await metadata_registrar_1.registerImport.getAll(broker);
217
+ const dataList = _.pluck(configs, "metadata");
218
+ _.each(dataList, function (item) {
219
+ if (!item._id) {
220
+ item._id = `${item.name}`;
287
221
  }
288
- return [idValue, item];
289
- }));
290
- dbIdMap = new Map(dbSources.map(function (item) {
291
- var idValue = item._id;
292
- return [idValue, item];
293
- }));
294
- codeSources.forEach(function (item) {
222
+ });
223
+ return dataList;
224
+ }
225
+ case "share_rules": {
226
+ const configs = await metadata_registrar_1.registerShareRules.getAll(broker);
227
+ const dataList = _.pluck(configs, "metadata");
228
+ _.each(dataList, function (item) {
295
229
  if (!item._id) {
296
- console.error("error: item._id is null");
230
+ item._id = `${item.object_name}.${item.name}`;
297
231
  }
298
- if (!dbSIDMap.has(item._id) && !dbIdMap.has(item._id)) {
299
- dbSIDMap.set(item._id, item);
232
+ });
233
+ return dataList;
234
+ }
235
+ case "restriction_rules": {
236
+ const configs = await metadata_registrar_1.registerRestrictionRules.getAll(broker);
237
+ const dataList = _.pluck(configs, "metadata");
238
+ _.each(dataList, function (item) {
239
+ if (!item._id) {
240
+ item._id = `${item.object_name}.${item.name}`;
300
241
  }
301
242
  });
302
- return [2, Array.from(dbSIDMap.values())];
303
- });
304
- });
305
- };
306
- MetadataDriver.prototype.find = function (tableName, query) {
307
- return tslib_1.__awaiter(this, void 0, void 0, function () {
308
- var result, spaceId, cachedSources, sources, data;
309
- return tslib_1.__generator(this, function (_a) {
310
- switch (_a.label) {
311
- case 0:
312
- delete query.fields;
313
- return [4, _super.prototype.find.call(this, tableName, query)];
314
- case 1:
315
- result = _a.sent();
316
- spaceId = result.length > 0 ? result[0].space || null : null;
317
- return [4, this.getCachedSources(tableName)];
318
- case 2:
319
- cachedSources = _a.sent();
320
- return [4, this.mixinSources(tableName, result, this.addDefaultProps(cachedSources))];
321
- case 3:
322
- sources = _a.sent();
323
- data = this.queryMetadata(sources, query, spaceId).all();
324
- return [2, data];
325
- }
326
- });
327
- });
328
- };
329
- MetadataDriver.prototype.directFind = function (tableName, query) {
330
- return tslib_1.__awaiter(this, void 0, void 0, function () {
331
- var result;
332
- return tslib_1.__generator(this, function (_a) {
333
- switch (_a.label) {
334
- case 0: return [4, _super.prototype.find.call(this, tableName, query)];
335
- case 1:
336
- result = _a.sent();
337
- return [2, result];
338
- }
339
- });
340
- });
341
- };
342
- MetadataDriver.prototype.count = function (tableName, query) {
343
- return tslib_1.__awaiter(this, void 0, void 0, function () {
344
- var result;
345
- return tslib_1.__generator(this, function (_a) {
346
- switch (_a.label) {
347
- case 0: return [4, this.find(tableName, query)];
348
- case 1:
349
- result = _a.sent();
350
- return [2, result.length];
351
- }
352
- });
353
- });
354
- };
355
- MetadataDriver.prototype.insert = function (tableName, doc) {
356
- return tslib_1.__awaiter(this, void 0, void 0, function () {
357
- var nameValue, result;
358
- return tslib_1.__generator(this, function (_a) {
359
- switch (_a.label) {
360
- case 0:
361
- nameValue = tableName === "apps" ? doc.code : doc.name;
362
- if (tableName === "roles") {
363
- nameValue = doc.api_name;
364
- }
365
- if (nameValue && tableName != "permission_objects") {
366
- isAPIName(nameValue, tableName);
367
- }
368
- return [4, _super.prototype.insert.call(this, tableName, doc)];
369
- case 1:
370
- result = _a.sent();
371
- return [4, broker.call("b6-metadata.inserted", {
372
- type: tableName,
373
- data: result,
374
- })];
375
- case 2:
376
- _a.sent();
377
- return [2, result];
378
- }
379
- });
243
+ return dataList;
244
+ }
245
+ case "roles": {
246
+ const configs = await (0, metadata_registrar_1.getSourceRoles)();
247
+ return configs;
248
+ }
249
+ default:
250
+ break;
251
+ }
252
+ }
253
+ async mixinSources(metaName, dbSources = [], codeSources = []) {
254
+ let key = metaName === "apps" ? "_id" : "name";
255
+ if (metaName === "roles") {
256
+ key = "api_name";
257
+ }
258
+ const dbSIDMap = new Map(dbSources.map((item) => {
259
+ let idValue = null;
260
+ if (item.object || item.object_name) {
261
+ idValue = `${item.object || item.object_name}.${item[key]}`;
262
+ }
263
+ else {
264
+ idValue = item[key];
265
+ }
266
+ return [idValue, item];
267
+ }));
268
+ const dbIdMap = new Map(dbSources.map((item) => {
269
+ const idValue = item._id;
270
+ return [idValue, item];
271
+ }));
272
+ codeSources.forEach((item) => {
273
+ if (!item._id) {
274
+ console.error("error: item._id is null");
275
+ }
276
+ if (!dbSIDMap.has(item._id) && !dbIdMap.has(item._id)) {
277
+ dbSIDMap.set(item._id, item);
278
+ }
380
279
  });
381
- };
382
- MetadataDriver.prototype.update = function (tableName, id, data) {
383
- return tslib_1.__awaiter(this, void 0, void 0, function () {
384
- var nameValue, result;
385
- return tslib_1.__generator(this, function (_a) {
386
- switch (_a.label) {
387
- case 0:
388
- nameValue = tableName === "apps" ? data.code : data.name;
389
- if (tableName === "roles") {
390
- nameValue = data.api_name;
391
- }
392
- if (nameValue && tableName != "permission_objects") {
393
- isAPIName(nameValue, tableName);
394
- }
395
- return [4, _super.prototype.update.call(this, tableName, id, data)];
396
- case 1:
397
- result = _a.sent();
398
- return [4, broker.call("b6-metadata.updated", {
399
- type: tableName,
400
- id: id,
401
- data: result,
402
- })];
403
- case 2:
404
- _a.sent();
405
- return [2, result];
406
- }
407
- });
280
+ return Array.from(dbSIDMap.values());
281
+ }
282
+ async find(tableName, query) {
283
+ delete query.fields;
284
+ const result = await super.find(tableName, query);
285
+ const spaceId = result.length > 0 ? result[0].space || null : null;
286
+ const cachedSources = await this.getCachedSources(tableName);
287
+ const sources = await this.mixinSources(tableName, result, this.addDefaultProps(cachedSources));
288
+ const data = this.queryMetadata(sources, query, spaceId).all();
289
+ return data;
290
+ }
291
+ async directFind(tableName, query) {
292
+ const result = await super.find(tableName, query);
293
+ return result;
294
+ }
295
+ async count(tableName, query) {
296
+ const result = await this.find(tableName, query);
297
+ return result.length;
298
+ }
299
+ async insert(tableName, doc) {
300
+ let nameValue = tableName === "apps" ? doc.code : doc.name;
301
+ if (tableName === "roles") {
302
+ nameValue = doc.api_name;
303
+ }
304
+ if (nameValue && tableName != "permission_objects") {
305
+ isAPIName(nameValue, tableName);
306
+ }
307
+ const result = await super.insert(tableName, doc);
308
+ await broker.call(`b6-metadata.inserted`, {
309
+ type: tableName,
310
+ data: result,
408
311
  });
409
- };
410
- MetadataDriver.prototype.delete = function (tableName, id) {
411
- return tslib_1.__awaiter(this, void 0, void 0, function () {
412
- var record, result;
413
- return tslib_1.__generator(this, function (_a) {
414
- switch (_a.label) {
415
- case 0: return [4, _super.prototype.findOne.call(this, tableName, id, {})];
416
- case 1:
417
- record = _a.sent();
418
- return [4, _super.prototype.delete.call(this, tableName, id)];
419
- case 2:
420
- result = _a.sent();
421
- if (!record) return [3, 4];
422
- return [4, broker.call("b6-metadata.deleted", {
423
- type: tableName,
424
- id: id,
425
- data: record,
426
- })];
427
- case 3:
428
- _a.sent();
429
- _a.label = 4;
430
- case 4: return [2, result];
431
- }
432
- });
312
+ return result;
313
+ }
314
+ async update(tableName, id, data) {
315
+ let nameValue = tableName === "apps" ? data.code : data.name;
316
+ if (tableName === "roles") {
317
+ nameValue = data.api_name;
318
+ }
319
+ if (nameValue && tableName != "permission_objects") {
320
+ isAPIName(nameValue, tableName);
321
+ }
322
+ const result = await super.update(tableName, id, data);
323
+ await broker.call(`b6-metadata.updated`, {
324
+ type: tableName,
325
+ id,
326
+ data: result,
433
327
  });
434
- };
435
- MetadataDriver.prototype.findOne = function (collection, id, query, spaceId) {
436
- return tslib_1.__awaiter(this, void 0, void 0, function () {
437
- var filters, records;
438
- return tslib_1.__generator(this, function (_a) {
439
- switch (_a.label) {
440
- case 0:
441
- filters = [];
442
- if (_.isString(id)) {
443
- filters = ["_id", "=", id];
444
- }
445
- else if (_.isArray(id)) {
446
- filters = id;
447
- }
448
- else if (_.has(id, "filters")) {
449
- filters = id.filters;
450
- }
451
- return [4, this.find(collection, { filters: filters })];
452
- case 1:
453
- records = _a.sent();
454
- return [2, records.length > 0 ? records[0] : null];
455
- }
328
+ return result;
329
+ }
330
+ async delete(tableName, id) {
331
+ const record = await super.findOne(tableName, id, {});
332
+ const result = await super.delete(tableName, id);
333
+ if (record) {
334
+ await broker.call(`b6-metadata.deleted`, {
335
+ type: tableName,
336
+ id,
337
+ data: record,
456
338
  });
457
- });
458
- };
459
- return MetadataDriver;
460
- }(_1.SteedosMongoDriver));
339
+ }
340
+ return result;
341
+ }
342
+ async findOne(collection, id, query, spaceId) {
343
+ let filters = [];
344
+ if (_.isString(id)) {
345
+ filters = ["_id", "=", id];
346
+ }
347
+ else if (_.isArray(id)) {
348
+ filters = id;
349
+ }
350
+ else if (_.has(id, "filters")) {
351
+ filters = id.filters;
352
+ }
353
+ const records = await this.find(collection, { filters: filters });
354
+ return records.length > 0 ? records[0] : null;
355
+ }
356
+ }
461
357
  exports.MetadataDriver = MetadataDriver;
462
358
  //# sourceMappingURL=metadata.js.map