@steedos/metadata-registrar 2.5.1 → 2.5.3-beta.1

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 (160) hide show
  1. package/lib/config-register/actions.d.ts +4 -0
  2. package/lib/config-register/actions.js +165 -0
  3. package/lib/config-register/actions.js.map +1 -0
  4. package/lib/config-register/app.d.ts +1 -0
  5. package/lib/config-register/app.js +21 -0
  6. package/lib/config-register/app.js.map +1 -0
  7. package/lib/config-register/approval_process.d.ts +5 -0
  8. package/lib/config-register/approval_process.js +85 -0
  9. package/lib/config-register/approval_process.js.map +1 -0
  10. package/lib/config-register/button.d.ts +7 -0
  11. package/lib/config-register/button.js +89 -0
  12. package/lib/config-register/button.js.map +1 -0
  13. package/lib/config-register/chart.d.ts +1 -0
  14. package/lib/config-register/chart.js +26 -0
  15. package/lib/config-register/chart.js.map +1 -0
  16. package/lib/config-register/client_script.d.ts +3 -0
  17. package/lib/config-register/client_script.js +49 -0
  18. package/lib/config-register/client_script.js.map +1 -0
  19. package/lib/config-register/core.d.ts +32 -0
  20. package/lib/config-register/core.js +414 -0
  21. package/lib/config-register/core.js.map +1 -0
  22. package/lib/config-register/field.d.ts +5 -0
  23. package/lib/config-register/field.js +90 -0
  24. package/lib/config-register/field.js.map +1 -0
  25. package/lib/config-register/flow_role.d.ts +4 -0
  26. package/lib/config-register/flow_role.js +65 -0
  27. package/lib/config-register/flow_role.js.map +1 -0
  28. package/lib/config-register/index.d.ts +2 -0
  29. package/lib/config-register/index.js +40 -0
  30. package/lib/config-register/index.js.map +1 -0
  31. package/lib/config-register/layout.d.ts +5 -0
  32. package/lib/config-register/layout.js +68 -0
  33. package/lib/config-register/layout.js.map +1 -0
  34. package/lib/config-register/listview.d.ts +3 -0
  35. package/lib/config-register/listview.js +71 -0
  36. package/lib/config-register/listview.js.map +1 -0
  37. package/lib/config-register/method.d.ts +3 -0
  38. package/lib/config-register/method.js +83 -0
  39. package/lib/config-register/method.js.map +1 -0
  40. package/lib/config-register/object_translations.d.ts +2 -0
  41. package/lib/config-register/object_translations.js +41 -0
  42. package/lib/config-register/object_translations.js.map +1 -0
  43. package/lib/config-register/originalObject.d.ts +1 -0
  44. package/lib/config-register/originalObject.js +11 -0
  45. package/lib/config-register/originalObject.js.map +1 -0
  46. package/lib/config-register/package.d.ts +1 -0
  47. package/lib/config-register/package.js +357 -0
  48. package/lib/config-register/package.js.map +1 -0
  49. package/lib/config-register/page.d.ts +1 -0
  50. package/lib/config-register/page.js +26 -0
  51. package/lib/config-register/page.js.map +1 -0
  52. package/lib/config-register/permission.d.ts +4 -0
  53. package/lib/config-register/permission.js +102 -0
  54. package/lib/config-register/permission.js.map +1 -0
  55. package/lib/config-register/permissionset.d.ts +5 -0
  56. package/lib/config-register/permissionset.js +100 -0
  57. package/lib/config-register/permissionset.js.map +1 -0
  58. package/lib/config-register/preload_data.d.ts +8 -0
  59. package/lib/config-register/preload_data.js +172 -0
  60. package/lib/config-register/preload_data.js.map +1 -0
  61. package/lib/config-register/profile.d.ts +5 -0
  62. package/lib/config-register/profile.js +108 -0
  63. package/lib/config-register/profile.js.map +1 -0
  64. package/lib/config-register/query.d.ts +1 -0
  65. package/lib/config-register/query.js +26 -0
  66. package/lib/config-register/query.js.map +1 -0
  67. package/lib/config-register/restrictionRules.d.ts +1 -0
  68. package/lib/config-register/restrictionRules.js +26 -0
  69. package/lib/config-register/restrictionRules.js.map +1 -0
  70. package/lib/config-register/role.d.ts +4 -0
  71. package/lib/config-register/role.js +65 -0
  72. package/lib/config-register/role.js.map +1 -0
  73. package/lib/config-register/shareRules.d.ts +1 -0
  74. package/lib/config-register/shareRules.js +26 -0
  75. package/lib/config-register/shareRules.js.map +1 -0
  76. package/lib/config-register/tab.d.ts +1 -0
  77. package/lib/config-register/tab.js +20 -0
  78. package/lib/config-register/tab.js.map +1 -0
  79. package/lib/config-register/tabs.d.ts +2 -0
  80. package/lib/config-register/tabs.js +14 -0
  81. package/lib/config-register/tabs.js.map +1 -0
  82. package/lib/config-register/translations.d.ts +2 -0
  83. package/lib/config-register/translations.js +42 -0
  84. package/lib/config-register/translations.js.map +1 -0
  85. package/lib/config-register/trigger.d.ts +6 -0
  86. package/lib/config-register/trigger.js +231 -0
  87. package/lib/config-register/trigger.js.map +1 -0
  88. package/lib/config-register/validation_rule.d.ts +6 -0
  89. package/lib/config-register/validation_rule.js +88 -0
  90. package/lib/config-register/validation_rule.js.map +1 -0
  91. package/lib/config-register/workflow.d.ts +17 -0
  92. package/lib/config-register/workflow.js +158 -0
  93. package/lib/config-register/workflow.js.map +1 -0
  94. package/lib/config.d.ts +10 -0
  95. package/lib/config.js +124 -0
  96. package/lib/config.js.map +1 -0
  97. package/lib/index.d.ts +30 -1
  98. package/lib/index.js +30 -0
  99. package/lib/index.js.map +1 -1
  100. package/lib/metadata-register/_base.d.ts +12 -0
  101. package/lib/metadata-register/_base.js +92 -0
  102. package/lib/metadata-register/_base.js.map +1 -0
  103. package/lib/metadata-register/app.d.ts +4 -0
  104. package/lib/metadata-register/app.js +44 -0
  105. package/lib/metadata-register/app.js.map +1 -0
  106. package/lib/metadata-register/chart.d.ts +6 -0
  107. package/lib/metadata-register/chart.js +12 -0
  108. package/lib/metadata-register/chart.js.map +1 -0
  109. package/lib/metadata-register/index.d.ts +33 -0
  110. package/lib/metadata-register/index.js +142 -0
  111. package/lib/metadata-register/index.js.map +1 -0
  112. package/lib/metadata-register/layout.d.ts +5 -0
  113. package/lib/metadata-register/layout.js +54 -0
  114. package/lib/metadata-register/layout.js.map +1 -0
  115. package/lib/metadata-register/object.d.ts +5 -0
  116. package/lib/metadata-register/object.js +76 -0
  117. package/lib/metadata-register/object.js.map +1 -0
  118. package/lib/metadata-register/page.d.ts +6 -0
  119. package/lib/metadata-register/page.js +12 -0
  120. package/lib/metadata-register/page.js.map +1 -0
  121. package/lib/metadata-register/permissionFields.d.ts +7 -0
  122. package/lib/metadata-register/permissionFields.js +15 -0
  123. package/lib/metadata-register/permissionFields.js.map +1 -0
  124. package/lib/metadata-register/permissionset.d.ts +3 -0
  125. package/lib/metadata-register/permissionset.js +37 -0
  126. package/lib/metadata-register/permissionset.js.map +1 -0
  127. package/lib/metadata-register/process.d.ts +6 -0
  128. package/lib/metadata-register/process.js +12 -0
  129. package/lib/metadata-register/process.js.map +1 -0
  130. package/lib/metadata-register/processTrigger.d.ts +7 -0
  131. package/lib/metadata-register/processTrigger.js +15 -0
  132. package/lib/metadata-register/processTrigger.js.map +1 -0
  133. package/lib/metadata-register/profile.d.ts +3 -0
  134. package/lib/metadata-register/profile.js +37 -0
  135. package/lib/metadata-register/profile.js.map +1 -0
  136. package/lib/metadata-register/query.d.ts +6 -0
  137. package/lib/metadata-register/query.js +12 -0
  138. package/lib/metadata-register/query.js.map +1 -0
  139. package/lib/metadata-register/restrictionRules.d.ts +7 -0
  140. package/lib/metadata-register/restrictionRules.js +15 -0
  141. package/lib/metadata-register/restrictionRules.js.map +1 -0
  142. package/lib/metadata-register/shareRules.d.ts +7 -0
  143. package/lib/metadata-register/shareRules.js +15 -0
  144. package/lib/metadata-register/shareRules.js.map +1 -0
  145. package/lib/metadata-register/tab.d.ts +6 -0
  146. package/lib/metadata-register/tab.js +12 -0
  147. package/lib/metadata-register/tab.js.map +1 -0
  148. package/lib/metadata-register/tabs.d.ts +5 -0
  149. package/lib/metadata-register/tabs.js +54 -0
  150. package/lib/metadata-register/tabs.js.map +1 -0
  151. package/lib/utils/convert.d.ts +2 -0
  152. package/lib/utils/convert.js +130 -0
  153. package/lib/utils/convert.js.map +1 -0
  154. package/lib/utils/index.d.ts +19 -0
  155. package/lib/utils/index.js +409 -0
  156. package/lib/utils/index.js.map +1 -0
  157. package/lib/utils/transform.d.ts +2 -0
  158. package/lib/utils/transform.js +209 -0
  159. package/lib/utils/transform.js.map +1 -0
  160. package/package.json +5 -3
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPatternListeners = exports.loadObjectTriggers = exports.removePackageObjectTriggers = exports.addObjectListenerConfig = exports.loadObjectLazyListenners = exports.getLazyLoadListeners = void 0;
4
+ const metadata_core_1 = require("@steedos/metadata-core");
5
+ const utils_1 = require("../utils");
6
+ const transform_1 = require("../utils/transform");
7
+ const _ = require("lodash");
8
+ const utils_2 = require("../utils");
9
+ const core_1 = require("./core");
10
+ var clone = require('clone');
11
+ var path = require('path');
12
+ const _TRIGGERKEYS = ['beforeFind', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterFind', 'afterCount', 'afterFindOne', 'afterInsert', 'afterUpdate', 'afterDelete', 'beforeAggregate', 'afterAggregate'];
13
+ const _lazyLoadListeners = {};
14
+ const _patternListerners = {};
15
+ const addLazyLoadListeners = function (objectName, json) {
16
+ if (!_lazyLoadListeners[objectName]) {
17
+ _lazyLoadListeners[objectName] = [];
18
+ }
19
+ _lazyLoadListeners[objectName].push(json);
20
+ if (isPatternListener(json)) {
21
+ if (!_patternListerners[objectName]) {
22
+ _patternListerners[objectName] = [];
23
+ }
24
+ _patternListerners[objectName].push(json);
25
+ }
26
+ };
27
+ function getDataSource(datasourceApiName) {
28
+ try {
29
+ const objectql = require('@steedos/objectql');
30
+ return objectql.getDataSource(datasourceApiName);
31
+ }
32
+ catch (error) {
33
+ }
34
+ }
35
+ const getLazyLoadListeners = function (objectName) {
36
+ if (objectName) {
37
+ return _lazyLoadListeners[objectName];
38
+ }
39
+ else {
40
+ return _lazyLoadListeners;
41
+ }
42
+ };
43
+ exports.getLazyLoadListeners = getLazyLoadListeners;
44
+ const loadObjectLazyListenners = function (objectName) {
45
+ let listenners = (0, exports.getLazyLoadListeners)(objectName);
46
+ _.each(listenners, function (listenner) {
47
+ (0, exports.addObjectListenerConfig)(clone(listenner));
48
+ });
49
+ };
50
+ exports.loadObjectLazyListenners = loadObjectLazyListenners;
51
+ const addObjectListenerConfig = (json) => {
52
+ if (!json.listenTo) {
53
+ throw new Error('missing attribute listenTo');
54
+ }
55
+ if (!_.isString(json.listenTo) && !_.isFunction(json.listenTo) && !_.isArray(json.listenTo) && !_.isRegExp(json.listenTo)) {
56
+ throw new Error('listenTo must be a function or string or array or regExp');
57
+ }
58
+ let object_name = '';
59
+ if (typeof json.listenTo == 'string') {
60
+ object_name = json.listenTo;
61
+ }
62
+ else if (_.isFunction(json.listenTo)) {
63
+ object_name = json.listenTo();
64
+ }
65
+ if (object_name) {
66
+ let object = (0, core_1.getObjectConfig)(object_name);
67
+ if (object) {
68
+ if (!object.listeners) {
69
+ object.listeners = {};
70
+ }
71
+ delete json.listenTo;
72
+ delete json.name;
73
+ const listener = clone(json);
74
+ listener.name = json._id || (0, metadata_core_1.getMD5)((0, utils_2.JSONStringify)(json));
75
+ object.listeners[listener.name] = listener;
76
+ if (object.datasource === 'meteor') {
77
+ _.extend(object, { triggers: (0, transform_1.transformListenersToTriggers)(object, listener) });
78
+ }
79
+ try {
80
+ const localObject = getDataSource(object.datasource).getLocalObject(object_name);
81
+ if (localObject) {
82
+ localObject.setListener(listener.name, listener);
83
+ }
84
+ }
85
+ catch (error) {
86
+ }
87
+ }
88
+ addLazyLoadListeners(object_name, Object.assign({}, json, { listenTo: object_name, name: json._id || (0, metadata_core_1.getMD5)((0, utils_2.JSONStringify)(json)) }));
89
+ return Object.assign({}, json, { listenTo: object_name });
90
+ }
91
+ else {
92
+ if (_.isRegExp(json.listenTo)) {
93
+ return Object.assign({}, json, { listenTo: json.listenTo.toString() });
94
+ }
95
+ else {
96
+ return json;
97
+ }
98
+ }
99
+ };
100
+ exports.addObjectListenerConfig = addObjectListenerConfig;
101
+ const removePackageObjectTriggers = (serviceName) => {
102
+ _.each(_lazyLoadListeners, (listeners, objectName) => {
103
+ let objectConfig = (0, core_1.getObjectConfig)(objectName);
104
+ _lazyLoadListeners[objectName] = _.filter(listeners, function (listener) {
105
+ const drop = listener.metadataServiceName === serviceName;
106
+ if (drop) {
107
+ try {
108
+ if (objectConfig && objectConfig.listeners) {
109
+ delete objectConfig.listeners[listener.name];
110
+ }
111
+ }
112
+ catch (error) {
113
+ }
114
+ try {
115
+ const object = getDataSource(objectConfig.datasource).getLocalObject(objectName);
116
+ if (object) {
117
+ object.removeListener(listener.name, listener);
118
+ }
119
+ }
120
+ catch (error) {
121
+ }
122
+ }
123
+ return drop != true;
124
+ });
125
+ });
126
+ _.each(_patternListerners, (listeners, objectName) => {
127
+ let objectConfig = (0, core_1.getObjectConfig)(objectName);
128
+ _patternListerners[objectName] = _.filter(listeners, function (listener) {
129
+ const drop = listener.metadataServiceName === serviceName;
130
+ if (drop) {
131
+ try {
132
+ if (objectConfig && objectConfig.listeners) {
133
+ delete objectConfig.listeners[listener.name];
134
+ }
135
+ }
136
+ catch (error) {
137
+ }
138
+ }
139
+ return drop != true;
140
+ });
141
+ });
142
+ };
143
+ exports.removePackageObjectTriggers = removePackageObjectTriggers;
144
+ const loadTriggers = (filePath) => {
145
+ let results = [];
146
+ const filePatten = [
147
+ path.join(filePath, "*.trigger.js"),
148
+ "!" + path.join(filePath, "node_modules"),
149
+ ];
150
+ const matchedPaths = (0, metadata_core_1.syncMatchFiles)(filePatten);
151
+ _.each(matchedPaths, (matchedPath) => {
152
+ delete require.cache[require.resolve(matchedPath)];
153
+ let json = (0, utils_1.loadFile)(matchedPath);
154
+ if (!_.has(json, "listenTo")) {
155
+ json.listenTo = path.basename(matchedPath).split(".")[0];
156
+ }
157
+ results.push(json);
158
+ });
159
+ return results;
160
+ };
161
+ const loadObjectTriggers = function (filePath, serviceName) {
162
+ if (!serviceName) {
163
+ throw new Error("serviceName is null");
164
+ }
165
+ let triggerJsons = loadTriggers(filePath);
166
+ let triggers = [];
167
+ _.each(triggerJsons, (json) => {
168
+ triggers.push((0, exports.addObjectListenerConfig)(Object.assign(json, { metadataServiceName: serviceName })));
169
+ });
170
+ return triggers;
171
+ };
172
+ exports.loadObjectTriggers = loadObjectTriggers;
173
+ function isPatternListener(data) {
174
+ const { listenTo } = data;
175
+ if (listenTo === '*') {
176
+ return true;
177
+ }
178
+ else if (_.isRegExp(listenTo)) {
179
+ return true;
180
+ }
181
+ else if (_.isString(listenTo) && listenTo.startsWith("/")) {
182
+ try {
183
+ if (_.isRegExp(eval(listenTo))) {
184
+ return true;
185
+ }
186
+ }
187
+ catch (error) {
188
+ return false;
189
+ }
190
+ return false;
191
+ }
192
+ return false;
193
+ }
194
+ function getPatternListeners(objectApiName) {
195
+ let patternListeners = {};
196
+ const pushTrigger = (listeners) => {
197
+ for (const listener of listeners) {
198
+ _TRIGGERKEYS.forEach((key) => {
199
+ let event = listener[key];
200
+ if (_.isFunction(event)) {
201
+ patternListeners[listener.name] = listener;
202
+ }
203
+ });
204
+ }
205
+ };
206
+ _.each(_patternListerners, (listeners, objectName) => {
207
+ try {
208
+ if (objectName === '*') {
209
+ pushTrigger(listeners);
210
+ }
211
+ else if (_.isRegExp(objectName) && objectName.test(objectApiName)) {
212
+ pushTrigger(listeners);
213
+ }
214
+ else if (_.isString(objectName) && objectName.startsWith("/")) {
215
+ try {
216
+ if (_.isRegExp(eval(objectName)) && eval(objectName).test(objectApiName)) {
217
+ pushTrigger(listeners);
218
+ }
219
+ }
220
+ catch (error) {
221
+ }
222
+ }
223
+ }
224
+ catch (error) {
225
+ console.log(`[getPatternListeners] `, error);
226
+ }
227
+ });
228
+ return patternListeners;
229
+ }
230
+ exports.getPatternListeners = getPatternListeners;
231
+ //# sourceMappingURL=trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/config-register/trigger.ts"],"names":[],"mappings":";;;AAAA,0DAAgE;AAChE,oCAAoC;AACpC,kDAAiE;AACjE,4BAA6B;AAC7B,oCAAyC;AACzC,iCAAyC;AAEzC,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE3B,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;AAGhN,MAAM,kBAAkB,GAAQ,EAAE,CAAC;AAGnC,MAAM,kBAAkB,GAAQ,EAAE,CAAC;AAEnC,MAAM,oBAAoB,GAAG,UAAS,UAAkB,EAAE,IAAS;IAC/D,IAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAC;QAC/B,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;KACtC;IACD,kBAAkB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEzC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACzB,IAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAC;YAC/B,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;SACtC;QACD,kBAAkB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC5C;AACL,CAAC,CAAA;AAED,SAAS,aAAa,CAAC,iBAAiB;IACpC,IAAI;QACA,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC9C,OAAO,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;KACpD;IAAC,OAAO,KAAK,EAAE;KAEf;AACL,CAAC;AAEM,MAAM,oBAAoB,GAAG,UAAS,UAAmB;IAC5D,IAAI,UAAU,EAAE;QACZ,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAA;KACxC;SAAM;QACH,OAAO,kBAAkB,CAAC;KAC7B;AACL,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC;AAEM,MAAM,wBAAwB,GAAG,UAAS,UAAkB;IAC/D,IAAI,UAAU,GAAG,IAAA,4BAAoB,EAAC,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,UAAS,SAAS;QACjC,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AALY,QAAA,wBAAwB,4BAKpC;AAEM,MAAM,uBAAuB,GAAG,CAAC,IAAS,EAAE,EAAE;IACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;KAChD;IAED,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACvH,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;KAC9E;IAED,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;QAClC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAA;KAC9B;SAAM,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACpC,WAAW,GAAI,IAAI,CAAC,QAAgB,EAAE,CAAA;KACzC;IACD,IAAG,WAAW,EAAC;QACX,IAAI,MAAM,GAAG,IAAA,sBAAe,EAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE;YACR,IAAG,CAAC,MAAM,CAAC,SAAS,EAAC;gBACjB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAA;aACxB;YACD,OAAO,IAAI,CAAC,QAAQ,CAAA;YACpB,OAAO,IAAI,CAAC,IAAI,CAAA;YAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,IAAA,sBAAM,EAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;YAC1C,IAAG,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAC;gBAC9B,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,IAAA,wCAA4B,EAAC,MAAM,EAAE,QAAQ,CAAC,EAAC,CAAC,CAAA;aAC/E;YAED,IAAI;gBACA,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACjF,IAAG,WAAW,EAAC;oBACX,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;iBACpD;aACJ;YAAC,OAAO,KAAK,EAAE;aAEf;SAEJ;QACD,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,IAAA,sBAAM,EAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACnI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC,CAAC;KAC3D;SAAI;QACD,IAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC;YACzB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC;SACxE;aAAI;YACD,OAAO,IAAI,CAAC;SACf;KACJ;AACL,CAAC,CAAA;AAlDY,QAAA,uBAAuB,2BAkDnC;AAEM,MAAM,2BAA2B,GAAG,CAAC,WAAmB,EAAC,EAAE;IAC9D,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAC,EAAE;QAChD,IAAI,YAAY,GAAG,IAAA,sBAAe,EAAC,UAAU,CAAC,CAAC;QAC/C,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,UAAS,QAAa;YACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,mBAAmB,KAAK,WAAW,CAAC;YAC1D,IAAG,IAAI,EAAC;gBACJ,IAAI;oBACA,IAAG,YAAY,IAAI,YAAY,CAAC,SAAS,EAAC;wBACtC,OAAO,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;qBAC/C;iBACJ;gBAAC,OAAO,KAAK,EAAE;iBAEf;gBACD,IAAI;oBACA,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACjF,IAAG,MAAM,EAAC;wBACN,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;qBACjD;iBACJ;gBAAC,OAAO,KAAK,EAAE;iBAEf;aACJ;YACD,OAAO,IAAI,IAAI,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IAmBP,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAC,EAAE;QAChD,IAAI,YAAY,GAAG,IAAA,sBAAe,EAAC,UAAU,CAAC,CAAC;QAC/C,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,UAAS,QAAa;YACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,mBAAmB,KAAK,WAAW,CAAC;YAC1D,IAAG,IAAI,EAAC;gBACJ,IAAI;oBACA,IAAG,YAAY,IAAI,YAAY,CAAC,SAAS,EAAC;wBACtC,OAAO,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;qBAC/C;iBACJ;gBAAC,OAAO,KAAK,EAAE;iBAEf;aACJ;YACD,OAAO,IAAI,IAAI,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AA5DY,QAAA,2BAA2B,+BA4DvC;AAED,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IACtC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,UAAU,GAAG;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;QACnC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;KAC5C,CAAC;IACF,MAAM,YAAY,GAAa,IAAA,8BAAc,EAAC,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,WAAmB,EAAE,EAAE;QACzC,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,GAAQ,IAAA,gBAAQ,EAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACxD;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,UAAU,QAAgB,EAAE,WAAmB;IAC7E,IAAG,CAAC,WAAW,EAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;KAC1C;IACD,IAAI,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAS,EAAE,EAAE;QAC/B,QAAQ,CAAC,IAAI,CAAC,IAAA,+BAAuB,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC,mBAAmB,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC,CAAA;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA;AAVY,QAAA,kBAAkB,sBAU9B;AAOD,SAAS,iBAAiB,CAAC,IAAI;IAC3B,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;IACxB,IAAG,QAAQ,KAAK,GAAG,EAAC;QAChB,OAAO,IAAI,CAAC;KACf;SAAK,IAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAC;QAC1B,OAAO,IAAI,CAAC;KACf;SAAK,IAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAC;QACtD,IAAI;YACA,IAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC;gBAC1B,OAAO,IAAI,CAAC;aACf;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,KAAK,CAAA;SACf;QACD,OAAO,KAAK,CAAC;KAChB;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAOD,SAAgB,mBAAmB,CAAC,aAAqB;IACrD,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAE1B,MAAM,WAAW,GAAG,CAAC,SAAgB,EAAE,EAAE;QACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAC9B,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;iBAC9C;YACL,CAAC,CAAC,CAAA;SACL;IACL,CAAC,CAAA;IAED,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE;QACjD,IAAI;YACA,IAAI,UAAU,KAAK,GAAG,EAAE;gBACpB,WAAW,CAAC,SAAS,CAAC,CAAC;aAC1B;iBACI,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBAC/D,WAAW,CAAC,SAAS,CAAC,CAAC;aAC1B;iBACI,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC3D,IAAI;oBACA,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;wBACtE,WAAW,CAAC,SAAS,CAAC,CAAC;qBAC1B;iBACJ;gBAAC,OAAO,KAAK,EAAE;iBAEf;aACJ;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;SAChD;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AArCD,kDAqCC"}
@@ -0,0 +1,6 @@
1
+ export declare const getObjectValidationRules: (objectName: string) => any;
2
+ export declare const getAllObjectValidationRules: () => any[];
3
+ export declare const getObjectValidationRule: (objectName: string, validationRuleName: string) => any;
4
+ export declare const addObjectValidationRuleConfig: (objectName: string, json: any) => void;
5
+ export declare const removePackageValidationRules: (serviceName: string) => void;
6
+ export declare const loadObjectValidationRules: (filePath: string, serviceName: string) => void;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadObjectValidationRules = exports.removePackageValidationRules = exports.addObjectValidationRuleConfig = exports.getObjectValidationRule = exports.getAllObjectValidationRules = exports.getObjectValidationRules = void 0;
4
+ const metadata_core_1 = require("@steedos/metadata-core");
5
+ const _ = require('underscore');
6
+ const lodash = require('lodash');
7
+ const clone = require('clone');
8
+ const path = require('path');
9
+ const _ValidationRules = {};
10
+ const PERMISSIONS = {
11
+ allowEdit: false,
12
+ allowDelete: false,
13
+ allowRead: true,
14
+ };
15
+ const BASERECORD = {
16
+ is_system: true,
17
+ type: "validation_rule",
18
+ record_permissions: PERMISSIONS
19
+ };
20
+ const addObjectValidationRule = function (objectName, json) {
21
+ if (!_ValidationRules[objectName]) {
22
+ _ValidationRules[objectName] = [];
23
+ }
24
+ _ValidationRules[objectName].push(Object.assign({}, json, clone(BASERECORD), { _id: `${objectName}.${json.name}` }));
25
+ };
26
+ const getObjectValidationRules = function (objectName) {
27
+ return clone(_ValidationRules[objectName]);
28
+ };
29
+ exports.getObjectValidationRules = getObjectValidationRules;
30
+ const getAllObjectValidationRules = function () {
31
+ let result = [];
32
+ for (let objectName in _ValidationRules) {
33
+ let objectValidationRules = _ValidationRules[objectName];
34
+ result = result.concat(clone(objectValidationRules));
35
+ }
36
+ return result;
37
+ };
38
+ exports.getAllObjectValidationRules = getAllObjectValidationRules;
39
+ const getObjectValidationRule = function (objectName, validationRuleName) {
40
+ const objectValidationRules = (0, exports.getObjectValidationRules)(objectName);
41
+ if (objectValidationRules) {
42
+ return _.find(objectValidationRules, function (validationRule) {
43
+ return validationRule.name === validationRuleName;
44
+ });
45
+ }
46
+ };
47
+ exports.getObjectValidationRule = getObjectValidationRule;
48
+ const addObjectValidationRuleConfig = (objectName, json) => {
49
+ if (!json.name) {
50
+ throw new Error('missing attribute name');
51
+ }
52
+ addObjectValidationRule(objectName, json);
53
+ };
54
+ exports.addObjectValidationRuleConfig = addObjectValidationRuleConfig;
55
+ const removePackageValidationRules = (serviceName) => {
56
+ _.each(_ValidationRules, (roles, objectName) => {
57
+ _ValidationRules[objectName] = lodash.filter(roles, function (role) { return role.metadataServiceName != serviceName; });
58
+ });
59
+ };
60
+ exports.removePackageValidationRules = removePackageValidationRules;
61
+ const loadObjectValidationRules = function (filePath, serviceName) {
62
+ let validationRuleJsons = loadValidationRules(filePath);
63
+ validationRuleJsons.forEach(element => {
64
+ (0, exports.addObjectValidationRuleConfig)(element.object_name, Object.assign(element, { metadataServiceName: serviceName }));
65
+ });
66
+ };
67
+ exports.loadObjectValidationRules = loadObjectValidationRules;
68
+ const loadValidationRules = (filePath) => {
69
+ let results = [];
70
+ const filePatten = [
71
+ path.join(filePath, "*.validationRule.yml"),
72
+ "!" + path.join(filePath, "node_modules"),
73
+ ];
74
+ const matchedPaths = (0, metadata_core_1.syncMatchFiles)(filePatten);
75
+ _.each(matchedPaths, (matchedPath) => {
76
+ let json = (0, metadata_core_1.loadFile)(matchedPath);
77
+ let names = path.basename(matchedPath).split('.');
78
+ if (!json.name) {
79
+ json.name = names[1];
80
+ }
81
+ if (!json.object_name) {
82
+ json.object_name = path.parse(path.dirname(path.dirname(matchedPath))).name;
83
+ }
84
+ results.push(json);
85
+ });
86
+ return results;
87
+ };
88
+ //# sourceMappingURL=validation_rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation_rule.js","sourceRoot":"","sources":["../../src/config-register/validation_rule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const loadSourceWorkflows: (filePath: string) => void;
2
+ export declare const getWorkflowNotifications: () => any;
3
+ export declare const getWorkflowRules: () => any;
4
+ export declare const getActionFieldUpdates: () => any;
5
+ export declare const getAllWorkflowNotifications: () => any;
6
+ export declare const getAllWorkflowRules: () => any;
7
+ export declare const getAllActionFieldUpdates: () => any;
8
+ export declare const getObjectWorkflowNotifications: (objName: any) => any;
9
+ export declare const getObjectWorkflowRules: (objName: any) => any;
10
+ export declare const getObjectActionFieldUpdates: (objName: any) => any;
11
+ export declare const getWorkflowNotification: (name: any) => any;
12
+ export declare const getWorkflowRule: (name: any) => any;
13
+ export declare const getActionFieldUpdate: (name: any) => any;
14
+ export declare const getWorkflowOutboundMessage: (name: any) => any;
15
+ export declare const getWorkflowOutboundMessages: () => any;
16
+ export declare const getAllWorkflowOutboundMessages: () => any;
17
+ export declare const getObjectWorkflowOutboundMessages: (objName: any) => any;
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getObjectWorkflowOutboundMessages = exports.getAllWorkflowOutboundMessages = exports.getWorkflowOutboundMessages = exports.getWorkflowOutboundMessage = exports.getActionFieldUpdate = exports.getWorkflowRule = exports.getWorkflowNotification = exports.getObjectActionFieldUpdates = exports.getObjectWorkflowRules = exports.getObjectWorkflowNotifications = exports.getAllActionFieldUpdates = exports.getAllWorkflowRules = exports.getAllWorkflowNotifications = exports.getActionFieldUpdates = exports.getWorkflowRules = exports.getWorkflowNotifications = exports.loadSourceWorkflows = void 0;
4
+ const metadata_core_1 = require("@steedos/metadata-core");
5
+ const _ = require('underscore');
6
+ const clone = require('clone');
7
+ const path = require('path');
8
+ const PERMISSIONS = {
9
+ allowEdit: false,
10
+ allowDelete: false,
11
+ allowRead: true,
12
+ };
13
+ const BASERECORD = {
14
+ is_system: true,
15
+ record_permissions: PERMISSIONS
16
+ };
17
+ const _WorkflowNotifications = {};
18
+ const _WorkflowRules = {};
19
+ const _ActionFieldUpdates = {};
20
+ const _OutboundMessages = {};
21
+ const addWorkflow = function (json) {
22
+ if (!json.name) {
23
+ throw new Error('missing attribute name');
24
+ }
25
+ if (json.notifications) {
26
+ for (let notification of json.notifications) {
27
+ if (!notification.name) {
28
+ throw new Error('missing attribute notification.name');
29
+ }
30
+ _WorkflowNotifications[notification.name] = Object.assign({}, notification, clone(BASERECORD), { type: "workflow_notifications", _id: notification.name });
31
+ }
32
+ }
33
+ if (json.rules) {
34
+ for (let rule of json.rules) {
35
+ if (!rule.name) {
36
+ throw new Error('missing attribute rule.name');
37
+ }
38
+ _WorkflowRules[rule.name] = Object.assign({}, rule, clone(BASERECORD), { type: "workflow_rule", _id: rule.name });
39
+ }
40
+ }
41
+ if (json.fieldUpdates) {
42
+ for (let fieldUpdate of json.fieldUpdates) {
43
+ if (!fieldUpdate.name) {
44
+ throw new Error('missing attribute fieldUpdate.name');
45
+ }
46
+ _ActionFieldUpdates[fieldUpdate.name] = Object.assign({}, fieldUpdate, clone(BASERECORD), { type: "action_field_updates", _id: fieldUpdate.name });
47
+ }
48
+ }
49
+ if (json.outboundMessages) {
50
+ for (let outboundMessage of json.outboundMessages) {
51
+ if (!outboundMessage.name) {
52
+ throw new Error('missing attribute outboundMessage.name');
53
+ }
54
+ _OutboundMessages[outboundMessage.name] = Object.assign({}, outboundMessage, clone(BASERECORD), { type: "workflow_outbound_messages", _id: outboundMessage.name });
55
+ }
56
+ }
57
+ };
58
+ const loadWorkflows = (filePath) => {
59
+ let results = [];
60
+ const filePatten = [
61
+ path.join(filePath, "*.workflow.yml"),
62
+ "!" + path.join(filePath, "node_modules"),
63
+ ];
64
+ const matchedPaths = (0, metadata_core_1.syncMatchFiles)(filePatten);
65
+ _.each(matchedPaths, (matchedPath) => {
66
+ let json = (0, metadata_core_1.loadFile)(matchedPath);
67
+ let names = path.basename(matchedPath).split('.');
68
+ if (!json.name) {
69
+ json.name = names[0];
70
+ }
71
+ results.push(json);
72
+ });
73
+ return results;
74
+ };
75
+ const loadSourceWorkflows = function (filePath) {
76
+ let workflows = loadWorkflows(filePath);
77
+ workflows.forEach(element => {
78
+ addWorkflow(element);
79
+ });
80
+ };
81
+ exports.loadSourceWorkflows = loadSourceWorkflows;
82
+ const getWorkflowNotifications = function () {
83
+ return clone(_WorkflowNotifications) || [];
84
+ };
85
+ exports.getWorkflowNotifications = getWorkflowNotifications;
86
+ const getWorkflowRules = function () {
87
+ return clone(_WorkflowRules) || [];
88
+ };
89
+ exports.getWorkflowRules = getWorkflowRules;
90
+ const getActionFieldUpdates = function () {
91
+ return clone(_ActionFieldUpdates) || [];
92
+ };
93
+ exports.getActionFieldUpdates = getActionFieldUpdates;
94
+ const getAllWorkflowNotifications = function () {
95
+ let workflowNotifications = (0, exports.getWorkflowNotifications)();
96
+ return _.values(workflowNotifications);
97
+ };
98
+ exports.getAllWorkflowNotifications = getAllWorkflowNotifications;
99
+ const getAllWorkflowRules = function () {
100
+ let workflowRules = (0, exports.getWorkflowRules)();
101
+ return _.values(workflowRules);
102
+ };
103
+ exports.getAllWorkflowRules = getAllWorkflowRules;
104
+ const getAllActionFieldUpdates = function () {
105
+ let actionFieldUpdates = (0, exports.getActionFieldUpdates)();
106
+ return _.values(actionFieldUpdates);
107
+ };
108
+ exports.getAllActionFieldUpdates = getAllActionFieldUpdates;
109
+ const getObjectWorkflowNotifications = function (objName) {
110
+ return _.where((0, exports.getAllWorkflowNotifications)(), { object_name: objName });
111
+ };
112
+ exports.getObjectWorkflowNotifications = getObjectWorkflowNotifications;
113
+ const getObjectWorkflowRules = function (objName) {
114
+ return _.where((0, exports.getAllWorkflowRules)(), { object_name: objName });
115
+ };
116
+ exports.getObjectWorkflowRules = getObjectWorkflowRules;
117
+ const getObjectActionFieldUpdates = function (objName) {
118
+ return _.where((0, exports.getAllActionFieldUpdates)(), { object_name: objName });
119
+ };
120
+ exports.getObjectActionFieldUpdates = getObjectActionFieldUpdates;
121
+ const getWorkflowNotification = function (name) {
122
+ return _.find((0, exports.getAllWorkflowNotifications)(), function (item) {
123
+ return item.name === name;
124
+ });
125
+ };
126
+ exports.getWorkflowNotification = getWorkflowNotification;
127
+ const getWorkflowRule = function (name) {
128
+ return _.find((0, exports.getAllWorkflowRules)(), function (item) {
129
+ return item.name === name;
130
+ });
131
+ };
132
+ exports.getWorkflowRule = getWorkflowRule;
133
+ const getActionFieldUpdate = function (name) {
134
+ return _.find((0, exports.getAllActionFieldUpdates)(), function (item) {
135
+ return item.name === name;
136
+ });
137
+ };
138
+ exports.getActionFieldUpdate = getActionFieldUpdate;
139
+ const getWorkflowOutboundMessage = function (name) {
140
+ return _.find((0, exports.getAllWorkflowOutboundMessages)(), function (item) {
141
+ return item.name === name;
142
+ });
143
+ };
144
+ exports.getWorkflowOutboundMessage = getWorkflowOutboundMessage;
145
+ const getWorkflowOutboundMessages = function () {
146
+ return clone(_OutboundMessages) || [];
147
+ };
148
+ exports.getWorkflowOutboundMessages = getWorkflowOutboundMessages;
149
+ const getAllWorkflowOutboundMessages = function () {
150
+ let messages = (0, exports.getWorkflowOutboundMessages)();
151
+ return _.values(messages);
152
+ };
153
+ exports.getAllWorkflowOutboundMessages = getAllWorkflowOutboundMessages;
154
+ const getObjectWorkflowOutboundMessages = function (objName) {
155
+ return _.where((0, exports.getAllWorkflowOutboundMessages)(), { object_name: objName });
156
+ };
157
+ exports.getObjectWorkflowOutboundMessages = getObjectWorkflowOutboundMessages;
158
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/config-register/workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const LOADED_OBJECT_RECORDS: {};
2
+ export declare function addConfigDataFiles(filePath: string): void;
3
+ export declare function getConfigsFormFiles(objectName: string, filePath: string): any[];
4
+ export declare function addConfigFiles(objectName: string, filePath: string): void;
5
+ export declare const addConfig: (objectName: string, record: any) => void;
6
+ export declare const removeConfig: (objectName: string, record: any) => void;
7
+ export declare const removeManyConfigs: (objectName: string, query?: object) => void;
8
+ export declare const getConfigDatabase: (objectName: string) => {};
9
+ export declare const getConfigs: (objectName: string) => any;
10
+ export declare const getConfig: (objectName: string, _id: string) => any;