@data7expressions/3xpr 5.0.0

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 (213) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/LICENSE +201 -0
  3. package/README.md +144 -0
  4. package/expression/application/expressions.d.ts +69 -0
  5. package/expression/application/expressions.d.ts.map +1 -0
  6. package/expression/application/expressions.js +157 -0
  7. package/expression/application/expressions.js.map +1 -0
  8. package/expression/application/index.d.ts +4 -0
  9. package/expression/application/index.d.ts.map +1 -0
  10. package/expression/application/index.js +20 -0
  11. package/expression/application/index.js.map +1 -0
  12. package/expression/application/useCases/convert.d.ts +8 -0
  13. package/expression/application/useCases/convert.d.ts.map +1 -0
  14. package/expression/application/useCases/convert.js +25 -0
  15. package/expression/application/useCases/convert.js.map +1 -0
  16. package/expression/application/useCases/executor.d.ts +11 -0
  17. package/expression/application/useCases/executor.d.ts.map +1 -0
  18. package/expression/application/useCases/executor.js +23 -0
  19. package/expression/application/useCases/executor.js.map +1 -0
  20. package/expression/application/useCases/executorObserveDecorator.d.ts +16 -0
  21. package/expression/application/useCases/executorObserveDecorator.d.ts.map +1 -0
  22. package/expression/application/useCases/executorObserveDecorator.js +98 -0
  23. package/expression/application/useCases/executorObserveDecorator.js.map +1 -0
  24. package/expression/domain/expressions.d.ts +29 -0
  25. package/expression/domain/expressions.d.ts.map +1 -0
  26. package/expression/domain/expressions.js +3 -0
  27. package/expression/domain/expressions.js.map +1 -0
  28. package/expression/domain/index.d.ts +2 -0
  29. package/expression/domain/index.d.ts.map +1 -0
  30. package/expression/domain/index.js +18 -0
  31. package/expression/domain/index.js.map +1 -0
  32. package/expression/infrastructure/convertFrom/convertFromFunction.d.ts +15 -0
  33. package/expression/infrastructure/convertFrom/convertFromFunction.d.ts.map +1 -0
  34. package/expression/infrastructure/convertFrom/convertFromFunction.js +45 -0
  35. package/expression/infrastructure/convertFrom/convertFromFunction.js.map +1 -0
  36. package/expression/infrastructure/convertFrom/convertFromGraphql.d.ts +5 -0
  37. package/expression/infrastructure/convertFrom/convertFromGraphql.d.ts.map +1 -0
  38. package/expression/infrastructure/convertFrom/convertFromGraphql.js +96 -0
  39. package/expression/infrastructure/convertFrom/convertFromGraphql.js.map +1 -0
  40. package/expression/infrastructure/expressionsBuilder.d.ts +8 -0
  41. package/expression/infrastructure/expressionsBuilder.d.ts.map +1 -0
  42. package/expression/infrastructure/expressionsBuilder.js +28 -0
  43. package/expression/infrastructure/expressionsBuilder.js.map +1 -0
  44. package/expression/infrastructure/helper.d.ts +7 -0
  45. package/expression/infrastructure/helper.d.ts.map +1 -0
  46. package/expression/infrastructure/helper.js +34 -0
  47. package/expression/infrastructure/helper.js.map +1 -0
  48. package/expression/infrastructure/index.d.ts +2 -0
  49. package/expression/infrastructure/index.d.ts.map +1 -0
  50. package/expression/infrastructure/index.js +18 -0
  51. package/expression/infrastructure/index.js.map +1 -0
  52. package/expression/infrastructure/library.d.ts +30 -0
  53. package/expression/infrastructure/library.d.ts.map +1 -0
  54. package/expression/infrastructure/library.js +1813 -0
  55. package/expression/infrastructure/library.js.map +1 -0
  56. package/index.d.ts +31 -0
  57. package/index.d.ts.map +1 -0
  58. package/index.js +64 -0
  59. package/index.js.map +1 -0
  60. package/jest-unit-config.json +15 -0
  61. package/model/application/index.d.ts +2 -0
  62. package/model/application/index.d.ts.map +1 -0
  63. package/model/application/index.js +18 -0
  64. package/model/application/index.js.map +1 -0
  65. package/model/application/modelService.d.ts +42 -0
  66. package/model/application/modelService.d.ts.map +1 -0
  67. package/model/application/modelService.js +329 -0
  68. package/model/application/modelService.js.map +1 -0
  69. package/model/domain/index.d.ts +3 -0
  70. package/model/domain/index.d.ts.map +1 -0
  71. package/model/domain/index.js +19 -0
  72. package/model/domain/index.js.map +1 -0
  73. package/model/domain/library.d.ts +5 -0
  74. package/model/domain/library.d.ts.map +1 -0
  75. package/model/domain/library.js +3 -0
  76. package/model/domain/library.js.map +1 -0
  77. package/model/domain/services.d.ts +32 -0
  78. package/model/domain/services.d.ts.map +1 -0
  79. package/model/domain/services.js +3 -0
  80. package/model/domain/services.js.map +1 -0
  81. package/operand/application/facade.d.ts +27 -0
  82. package/operand/application/facade.d.ts.map +1 -0
  83. package/operand/application/facade.js +42 -0
  84. package/operand/application/facade.js.map +1 -0
  85. package/operand/application/index.d.ts +15 -0
  86. package/operand/application/index.d.ts.map +1 -0
  87. package/operand/application/index.js +31 -0
  88. package/operand/application/index.js.map +1 -0
  89. package/operand/application/services/builder.d.ts +17 -0
  90. package/operand/application/services/builder.d.ts.map +1 -0
  91. package/operand/application/services/builder.js +30 -0
  92. package/operand/application/services/builder.js.map +1 -0
  93. package/operand/application/services/builderCacheDecorator.d.ts +14 -0
  94. package/operand/application/services/builderCacheDecorator.d.ts.map +1 -0
  95. package/operand/application/services/builderCacheDecorator.js +29 -0
  96. package/operand/application/services/builderCacheDecorator.js.map +1 -0
  97. package/operand/application/services/factory.d.ts +10 -0
  98. package/operand/application/services/factory.d.ts.map +1 -0
  99. package/operand/application/services/factory.js +24 -0
  100. package/operand/application/services/factory.js.map +1 -0
  101. package/operand/application/services/normalizer.d.ts +4 -0
  102. package/operand/application/services/normalizer.d.ts.map +1 -0
  103. package/operand/application/services/normalizer.js +51 -0
  104. package/operand/application/services/normalizer.js.map +1 -0
  105. package/operand/application/services/parameterService.d.ts +6 -0
  106. package/operand/application/services/parameterService.d.ts.map +1 -0
  107. package/operand/application/services/parameterService.js +23 -0
  108. package/operand/application/services/parameterService.js.map +1 -0
  109. package/operand/application/services/parser.d.ts +49 -0
  110. package/operand/application/services/parser.d.ts.map +1 -0
  111. package/operand/application/services/parser.js +751 -0
  112. package/operand/application/services/parser.js.map +1 -0
  113. package/operand/application/services/serializer.d.ts +10 -0
  114. package/operand/application/services/serializer.d.ts.map +1 -0
  115. package/operand/application/services/serializer.js +40 -0
  116. package/operand/application/services/serializer.js.map +1 -0
  117. package/operand/application/services/typeService.d.ts +37 -0
  118. package/operand/application/services/typeService.d.ts.map +1 -0
  119. package/operand/application/services/typeService.js +392 -0
  120. package/operand/application/services/typeService.js.map +1 -0
  121. package/operand/application/useCases/build.d.ts +10 -0
  122. package/operand/application/useCases/build.d.ts.map +1 -0
  123. package/operand/application/useCases/build.js +25 -0
  124. package/operand/application/useCases/build.js.map +1 -0
  125. package/operand/application/useCases/clone.d.ts +10 -0
  126. package/operand/application/useCases/clone.d.ts.map +1 -0
  127. package/operand/application/useCases/clone.js +34 -0
  128. package/operand/application/useCases/clone.js.map +1 -0
  129. package/operand/application/useCases/complete.d.ts +9 -0
  130. package/operand/application/useCases/complete.d.ts.map +1 -0
  131. package/operand/application/useCases/complete.js +26 -0
  132. package/operand/application/useCases/complete.js.map +1 -0
  133. package/operand/application/useCases/normalize.d.ts +9 -0
  134. package/operand/application/useCases/normalize.d.ts.map +1 -0
  135. package/operand/application/useCases/normalize.js +43 -0
  136. package/operand/application/useCases/normalize.js.map +1 -0
  137. package/operand/application/useCases/reduce.d.ts +11 -0
  138. package/operand/application/useCases/reduce.d.ts.map +1 -0
  139. package/operand/application/useCases/reduce.js +57 -0
  140. package/operand/application/useCases/reduce.js.map +1 -0
  141. package/operand/domain/constBuilder.d.ts +5 -0
  142. package/operand/domain/constBuilder.d.ts.map +1 -0
  143. package/operand/domain/constBuilder.js +3 -0
  144. package/operand/domain/constBuilder.js.map +1 -0
  145. package/operand/domain/entities.d.ts +60 -0
  146. package/operand/domain/entities.d.ts.map +1 -0
  147. package/operand/domain/entities.js +38 -0
  148. package/operand/domain/entities.js.map +1 -0
  149. package/operand/domain/index.d.ts +4 -0
  150. package/operand/domain/index.d.ts.map +1 -0
  151. package/operand/domain/index.js +20 -0
  152. package/operand/domain/index.js.map +1 -0
  153. package/operand/domain/services.d.ts +39 -0
  154. package/operand/domain/services.d.ts.map +1 -0
  155. package/operand/domain/services.js +3 -0
  156. package/operand/domain/services.js.map +1 -0
  157. package/operand/infrastructure/constBuilder.d.ts +6 -0
  158. package/operand/infrastructure/constBuilder.d.ts.map +1 -0
  159. package/operand/infrastructure/constBuilder.js +15 -0
  160. package/operand/infrastructure/constBuilder.js.map +1 -0
  161. package/operand/infrastructure/executors/expression.d.ts +34 -0
  162. package/operand/infrastructure/executors/expression.d.ts.map +1 -0
  163. package/operand/infrastructure/executors/expression.js +534 -0
  164. package/operand/infrastructure/executors/expression.js.map +1 -0
  165. package/operand/infrastructure/executors/task.d.ts +8 -0
  166. package/operand/infrastructure/executors/task.d.ts.map +1 -0
  167. package/operand/infrastructure/executors/task.js +492 -0
  168. package/operand/infrastructure/executors/task.js.map +1 -0
  169. package/operand/infrastructure/facadeBuilder.d.ts +10 -0
  170. package/operand/infrastructure/facadeBuilder.d.ts.map +1 -0
  171. package/operand/infrastructure/facadeBuilder.js +35 -0
  172. package/operand/infrastructure/facadeBuilder.js.map +1 -0
  173. package/operand/infrastructure/helper.d.ts +20 -0
  174. package/operand/infrastructure/helper.d.ts.map +1 -0
  175. package/operand/infrastructure/helper.js +272 -0
  176. package/operand/infrastructure/helper.js.map +1 -0
  177. package/operand/infrastructure/index.d.ts +4 -0
  178. package/operand/infrastructure/index.d.ts.map +1 -0
  179. package/operand/infrastructure/index.js +20 -0
  180. package/operand/infrastructure/index.js.map +1 -0
  181. package/package.json +39 -0
  182. package/shared/domain/base.d.ts +32 -0
  183. package/shared/domain/base.d.ts.map +1 -0
  184. package/shared/domain/base.js +12 -0
  185. package/shared/domain/base.js.map +1 -0
  186. package/shared/domain/context.d.ts +37 -0
  187. package/shared/domain/context.d.ts.map +1 -0
  188. package/shared/domain/context.js +93 -0
  189. package/shared/domain/context.js.map +1 -0
  190. package/shared/domain/index.d.ts +6 -0
  191. package/shared/domain/index.d.ts.map +1 -0
  192. package/shared/domain/index.js +22 -0
  193. package/shared/domain/index.js.map +1 -0
  194. package/shared/domain/observer.d.ts +15 -0
  195. package/shared/domain/observer.d.ts.map +1 -0
  196. package/shared/domain/observer.js +11 -0
  197. package/shared/domain/observer.js.map +1 -0
  198. package/shared/domain/operand.d.ts +55 -0
  199. package/shared/domain/operand.d.ts.map +1 -0
  200. package/shared/domain/operand.js +69 -0
  201. package/shared/domain/operand.js.map +1 -0
  202. package/shared/domain/signals.d.ts +8 -0
  203. package/shared/domain/signals.d.ts.map +1 -0
  204. package/shared/domain/signals.js +3 -0
  205. package/shared/domain/signals.js.map +1 -0
  206. package/shared/infrastructure/helper.d.ts +9 -0
  207. package/shared/infrastructure/helper.d.ts.map +1 -0
  208. package/shared/infrastructure/helper.js +16 -0
  209. package/shared/infrastructure/helper.js.map +1 -0
  210. package/shared/infrastructure/index.d.ts +2 -0
  211. package/shared/infrastructure/index.d.ts.map +1 -0
  212. package/shared/infrastructure/index.js +18 -0
  213. package/shared/infrastructure/index.js.map +1 -0
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModelServiceImpl = void 0;
4
+ /* eslint-disable @typescript-eslint/ban-types */
5
+ const domain_1 = require("../../operand/domain");
6
+ class ModelServiceImpl {
7
+ constructor() {
8
+ this._enums = {};
9
+ this._constants = {};
10
+ this._formats = {};
11
+ this._operators = {};
12
+ this._functions = {};
13
+ this._operatorAlias = {};
14
+ this._functionAlias = {};
15
+ }
16
+ get operatorAlias() {
17
+ return Object.entries(this._operatorAlias);
18
+ }
19
+ get functionAlias() {
20
+ return Object.entries(this._functionAlias);
21
+ }
22
+ get constants() {
23
+ return Object.entries(this._constants);
24
+ }
25
+ get formats() {
26
+ return Object.entries(this._formats);
27
+ }
28
+ get enums() {
29
+ return Object.entries(this._enums);
30
+ }
31
+ get operators() {
32
+ const operators = [];
33
+ for (const entry of Object.entries(this._operators)) {
34
+ for (const q of Object.values(entry[1])) {
35
+ operators.push([entry[0], q]);
36
+ }
37
+ }
38
+ for (const entry of Object.entries(this._operatorAlias)) {
39
+ const key = entry[1];
40
+ for (const q of Object.values(this._operators[key])) {
41
+ operators.push([entry[0], q]);
42
+ }
43
+ }
44
+ return operators;
45
+ }
46
+ get functions() {
47
+ let list = [];
48
+ list = Object.entries(this._functions);
49
+ for (const entry of Object.entries(this._functionAlias)) {
50
+ const key = entry[1];
51
+ list.push([entry[0], this._functions[key]]);
52
+ }
53
+ return list;
54
+ }
55
+ addEnum(name, values) {
56
+ if (Array.isArray(values)) {
57
+ if (values.length > 0) {
58
+ this._enums[name] = values;
59
+ }
60
+ }
61
+ else if (typeof values === 'object') {
62
+ const _values = [];
63
+ for (const entry of Object.entries(values)) {
64
+ _values.push([entry[0], entry[1]]);
65
+ }
66
+ this._enums[name] = _values;
67
+ }
68
+ else {
69
+ throw new Error(`enum ${name} invalid values`);
70
+ }
71
+ }
72
+ addFormat(key, pattern) {
73
+ this._formats[key] = { name: key, pattern, regExp: new RegExp(pattern) };
74
+ }
75
+ addConstant(key, value) {
76
+ this._constants[key] = value;
77
+ }
78
+ addOperatorAlias(alias, reference) {
79
+ this._operatorAlias[alias] = reference;
80
+ }
81
+ addFunctionAlias(alias, reference) {
82
+ this._functionAlias[alias] = reference;
83
+ }
84
+ addLibrary(library) {
85
+ library.load(this);
86
+ }
87
+ addOperator(sing, source, additionalInfo) {
88
+ const singInfo = this.getSing(sing);
89
+ const metadata = {
90
+ priority: additionalInfo.priority,
91
+ deterministic: false,
92
+ operands: singInfo.params.length,
93
+ doc: additionalInfo.doc ? additionalInfo.doc : { description: additionalInfo.description || sing },
94
+ params: singInfo.params,
95
+ returnType: singInfo.returnType,
96
+ async: additionalInfo.async || false
97
+ };
98
+ if (source instanceof domain_1.PrototypeEvaluator) {
99
+ metadata.custom = source;
100
+ }
101
+ else if (typeof source === 'function') {
102
+ metadata.function = source;
103
+ }
104
+ else {
105
+ throw new Error(`operator ${singInfo.name} source not supported`);
106
+ }
107
+ if (additionalInfo && additionalInfo.doc) {
108
+ metadata.doc = additionalInfo.doc;
109
+ }
110
+ if (this._operators[singInfo.name] === undefined) {
111
+ this._operators[singInfo.name] = {};
112
+ }
113
+ this._operators[singInfo.name][metadata.operands] = metadata;
114
+ }
115
+ addFunction(sing, source, additionalInfo) {
116
+ const singInfo = this.getSing(sing);
117
+ const metadata = {
118
+ deterministic: (additionalInfo === null || additionalInfo === void 0 ? void 0 : additionalInfo.deterministic) !== false,
119
+ operands: singInfo.params.length,
120
+ params: singInfo.params,
121
+ returnType: singInfo.returnType,
122
+ doc: additionalInfo.doc ? additionalInfo.doc : { description: additionalInfo.description || sing },
123
+ async: additionalInfo && additionalInfo.async ? additionalInfo.async : false
124
+ };
125
+ if (source instanceof domain_1.PrototypeEvaluator) {
126
+ metadata.custom = source;
127
+ }
128
+ else if (typeof source === 'function') {
129
+ metadata.function = source;
130
+ }
131
+ else {
132
+ throw new Error(`function ${singInfo.name} source not supported`);
133
+ }
134
+ if (additionalInfo && additionalInfo.doc) {
135
+ metadata.doc = additionalInfo.doc;
136
+ }
137
+ this._functions[singInfo.name] = metadata;
138
+ }
139
+ getEnumValue(name, option) {
140
+ if (this._enums[name] === undefined) {
141
+ throw new Error(`enum: ${name} not found `);
142
+ }
143
+ const values = this._enums[name];
144
+ const value = values.find(p => p[0] === option);
145
+ if (value === undefined) {
146
+ throw new Error(`option ${option} in enum: ${name} not found `);
147
+ }
148
+ return value[1];
149
+ }
150
+ getEnum(name) {
151
+ return this._enums[name];
152
+ }
153
+ getConstantValue(name) {
154
+ return this._constants[name];
155
+ }
156
+ getFormat(name) {
157
+ return this._formats[name];
158
+ }
159
+ getOperator(name, operands) {
160
+ let operators = this._operators[name];
161
+ if (operators === undefined) {
162
+ const key = this._operatorAlias[name];
163
+ if (key) {
164
+ operators = this._operators[key];
165
+ }
166
+ else {
167
+ throw new Error(`operator: ${name} not found `);
168
+ }
169
+ }
170
+ if (operands !== undefined) {
171
+ const operator = operators[operands];
172
+ if (operator === undefined) {
173
+ throw new Error(`operator ${name} with ${operands} operands not found `);
174
+ }
175
+ return operator;
176
+ }
177
+ else if (Object.keys(operators).length === 1) {
178
+ return Object.values(operators)[0];
179
+ }
180
+ else if (operators[2] !== undefined) {
181
+ return operators[2];
182
+ }
183
+ throw new Error(`it is necessary to determine the number of operands for the operator ${name}`);
184
+ }
185
+ getFunction(name) {
186
+ let metadata = this._functions[name];
187
+ if (metadata === undefined) {
188
+ const key = this._functionAlias[name];
189
+ if (key) {
190
+ metadata = this._functions[key];
191
+ }
192
+ else {
193
+ throw new Error(`function: ${name} not found `);
194
+ }
195
+ }
196
+ return metadata;
197
+ }
198
+ isEnum(name) {
199
+ const names = name.split('.');
200
+ return this._enums[names[0]] !== undefined;
201
+ }
202
+ isConstant(name) {
203
+ return this._constants[name] !== undefined;
204
+ }
205
+ isOperator(name, operands) {
206
+ let operators = this._operators[name];
207
+ if (operators === undefined) {
208
+ const key = this._operatorAlias[name];
209
+ if (key) {
210
+ operators = this._operators[key];
211
+ }
212
+ else {
213
+ return false;
214
+ }
215
+ }
216
+ if (operands !== undefined) {
217
+ return operators && operators[operands] !== undefined;
218
+ }
219
+ return true;
220
+ }
221
+ isFunction(name) {
222
+ return this._functions[name] !== undefined || this._functionAlias[name] !== undefined;
223
+ }
224
+ priority(name, cardinality) {
225
+ const metadata = this.getOperator(name, cardinality);
226
+ return metadata && metadata.priority ? metadata.priority : -1;
227
+ }
228
+ getSing(sing) {
229
+ const buffer = Array.from(sing);
230
+ const length = buffer.length;
231
+ let index = 0;
232
+ let functionName = '';
233
+ let prefix = '';
234
+ let _return = '';
235
+ let chars = [];
236
+ // Clear begin spaces
237
+ while (buffer[index] === ' ') {
238
+ index++;
239
+ }
240
+ for (; buffer[index] !== '('; index++) {
241
+ if (buffer[index] === ' ' && buffer[index + 1] !== ' ' && buffer[index + 1] !== '(') {
242
+ prefix = chars.join('');
243
+ chars = [];
244
+ }
245
+ else if (buffer[index] !== ' ') {
246
+ chars.push(buffer[index]);
247
+ }
248
+ }
249
+ functionName = chars.join('');
250
+ chars = [];
251
+ const params = [];
252
+ let name = '';
253
+ let type = '';
254
+ let _default = '';
255
+ let hadDefault = false;
256
+ let multiple = false;
257
+ for (index++; index < length; index++) {
258
+ if (buffer[index] === ',' || buffer[index] === ')') {
259
+ if (hadDefault) {
260
+ _default = chars.join('');
261
+ if (type === '') {
262
+ type = this.getTypeFromValue(_default);
263
+ }
264
+ }
265
+ else {
266
+ type = chars.join('');
267
+ }
268
+ if (name.startsWith('...')) {
269
+ multiple = true;
270
+ name = name.replace('...', '');
271
+ }
272
+ // Add Param
273
+ params.push({ name, type: type !== '' ? type : 'any', default: _default !== '' ? _default : undefined, multiple });
274
+ if (buffer[index] === ')') {
275
+ break;
276
+ }
277
+ chars = [];
278
+ name = '';
279
+ type = '';
280
+ _default = '';
281
+ hadDefault = false;
282
+ multiple = false;
283
+ }
284
+ else if (buffer[index] === ':') {
285
+ name = chars.join('');
286
+ chars = [];
287
+ }
288
+ else if (buffer[index] === '=') {
289
+ hadDefault = true;
290
+ if (name === '') {
291
+ name = chars.join('');
292
+ }
293
+ else {
294
+ type = chars.join('');
295
+ }
296
+ chars = [];
297
+ }
298
+ else if (buffer[index] !== ' ') {
299
+ chars.push(buffer[index]);
300
+ }
301
+ }
302
+ chars = [];
303
+ let hadReturn = false;
304
+ for (index++; index < length; index++) {
305
+ if (buffer[index] === ':') {
306
+ hadReturn = true;
307
+ continue;
308
+ }
309
+ else if (buffer[index] !== ' ') {
310
+ chars.push(buffer[index]);
311
+ }
312
+ }
313
+ if (hadReturn) {
314
+ _return = chars.join('');
315
+ }
316
+ return {
317
+ name: functionName,
318
+ returnType: _return !== '' ? _return : 'void',
319
+ params,
320
+ isAsync: prefix === 'async'
321
+ };
322
+ }
323
+ getTypeFromValue(type) {
324
+ // TODO:
325
+ return type;
326
+ }
327
+ }
328
+ exports.ModelServiceImpl = ModelServiceImpl;
329
+ //# sourceMappingURL=modelService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelService.js","sourceRoot":"","sources":["../../../../../src/lib/model/application/modelService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './services';
2
+ export * from './library';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/model/domain/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./services"), exports);
18
+ __exportStar(require("./library"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/model/domain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,4CAAyB"}
@@ -0,0 +1,5 @@
1
+ import { ModelService } from '.';
2
+ export interface Library {
3
+ load(model: ModelService): void;
4
+ }
5
+ //# sourceMappingURL=library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../../../src/lib/model/domain/library.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAA;AAEhC,MAAM,WAAW,OAAO;IACvB,IAAI,CAAE,KAAK,EAAE,YAAY,GAAE,IAAI,CAAA;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../../src/lib/model/domain/library.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { Format } from '../../shared/domain';
2
+ import { OperatorAdditionalInfo, FunctionAdditionalInfo, OperatorMetadata } from '../../operand/domain/entities';
3
+ import { Library } from './library';
4
+ export interface ModelService {
5
+ get operatorAlias(): [string, any][];
6
+ get functionAlias(): [string, any][];
7
+ get enums(): [string, [string, any][]][];
8
+ get formats(): [string, Format][];
9
+ get constants(): [string, any][];
10
+ get operators(): [string, OperatorMetadata][];
11
+ get functions(): [string, OperatorMetadata][];
12
+ addEnum(name: string, values: [string, any][] | any): void;
13
+ addConstant(key: string, value: any): void;
14
+ addFormat(key: string, pattern: string): void;
15
+ addOperator(sing: string, source: any, additionalInfo: OperatorAdditionalInfo): void;
16
+ addFunction(sing: string, source: any, additionalInfo: FunctionAdditionalInfo): void;
17
+ addOperatorAlias(alias: string, reference: string): void;
18
+ addFunctionAlias(alias: string, reference: string): void;
19
+ addLibrary(library: Library): void;
20
+ getConstantValue(name: string): any | undefined;
21
+ getEnumValue(name: string, option: string): any;
22
+ getEnum(name: string): any;
23
+ getFormat(name: string): Format | undefined;
24
+ getOperator(operator: string, operands?: number): OperatorMetadata;
25
+ getFunction(name: string): OperatorMetadata;
26
+ priority(name: string, cardinality?: number): number;
27
+ isEnum(name: string): boolean;
28
+ isConstant(name: string): boolean;
29
+ isOperator(name: string, operands?: number): boolean;
30
+ isFunction(name: string): boolean;
31
+ }
32
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../../src/lib/model/domain/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,MAAM,WAAW,YAAY;IAC5B,IAAI,aAAa,IAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;IACnC,IAAI,aAAa,IAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;IACnC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAA;IACxC,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACjC,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;IAChC,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAA;IAC7C,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAA;IAE7C,OAAO,CAAE,IAAI,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAE,IAAI,CAAA;IACxD,WAAW,CAAE,GAAG,EAAC,MAAM,EAAE,KAAK,EAAC,GAAG,GAAE,IAAI,CAAA;IACxC,SAAS,CAAE,GAAG,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,GAAE,IAAI,CAAA;IAC3C,WAAW,CAAE,IAAI,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,EAAE,cAAc,EAAE,sBAAsB,GAAE,IAAI,CAAA;IAClF,WAAW,CAAE,IAAI,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,EAAE,cAAc,EAAE,sBAAsB,GAAE,IAAI,CAAA;IAClF,gBAAgB,CAAE,KAAK,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,GAAE,IAAI,CAAA;IACtD,gBAAgB,CAAE,KAAK,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,GAAE,IAAI,CAAA;IAEtD,UAAU,CAAE,OAAO,EAAC,OAAO,GAAE,IAAI,CAAA;IACjC,gBAAgB,CAAE,IAAI,EAAC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAA;IAC/C,YAAY,CAAE,IAAI,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,GAAE,GAAG,CAAA;IAC7C,OAAO,CAAE,IAAI,EAAC,MAAM,GAAE,GAAG,CAAA;IACzB,SAAS,CAAE,IAAI,EAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC3C,WAAW,CAAE,QAAQ,EAAC,MAAM,EAAE,QAAQ,CAAC,EAAC,MAAM,GAAG,gBAAgB,CAAA;IACjE,WAAW,CAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;IAC5C,QAAQ,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAC,MAAM,GAAG,MAAM,CAAA;IACpD,MAAM,CAAE,IAAI,EAAC,MAAM,GAAE,OAAO,CAAA;IAC5B,UAAU,CAAE,IAAI,EAAC,MAAM,GAAE,OAAO,CAAA;IAChC,UAAU,CAAE,IAAI,EAAC,MAAM,EAAE,QAAQ,CAAC,EAAC,MAAM,GAAE,OAAO,CAAA;IAClD,UAAU,CAAE,IAAI,EAAC,MAAM,GAAE,OAAO,CAAA;CAEhC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../../../src/lib/model/domain/services.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { ConstBuilder, OperandBuilder, OperandFacade, ParameterService } from '../domain';
2
+ import { OperandBuild } from '../application/useCases/build';
3
+ import { OperandClone } from '../application/useCases/clone';
4
+ import { Operand, Parameter } from '../../shared/domain';
5
+ export declare class OperandFacadeImpl implements OperandFacade {
6
+ readonly constBuilder: ConstBuilder;
7
+ private readonly parameterService;
8
+ private readonly operandBuild;
9
+ private readonly operandClone;
10
+ constructor(constBuilder: ConstBuilder, parameterService: ParameterService, operandBuild: OperandBuild, operandClone: OperandClone);
11
+ getBuilder(key: string): OperandBuilder;
12
+ /**
13
+ * Get parameters of expression
14
+ * @param expression expression
15
+ * @returns Parameters of expression
16
+ */
17
+ parameters(expression: string): Parameter[];
18
+ /**
19
+ * Get type of expression
20
+ * @param expression expression
21
+ * @returns Type of expression
22
+ */
23
+ type(expression: string): string;
24
+ build(expression: string, key?: string): Operand;
25
+ clone(source: Operand, key?: string): Operand;
26
+ }
27
+ //# sourceMappingURL=facade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../../../../src/lib/operand/application/facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAGxD,qBAAa,iBAAkB,YAAW,aAAa;aAEzB,YAAY,EAAE,YAAY;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAHA,YAAY,EAAE,YAAY,EACtC,gBAAgB,EAAC,gBAAgB,EACjC,YAAY,EAAC,YAAY,EACzB,YAAY,EAAC,YAAY;IAEnC,UAAU,CAAE,GAAG,EAAC,MAAM,GAAE,cAAc;IAI7C;;;;OAIG;IACI,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE;IAKnD;;;;OAIG;IACI,IAAI,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAKjC,KAAK,CAAE,UAAU,EAAE,MAAM,EAAE,GAAG,SAAe,GAAG,OAAO;IAIvD,KAAK,CAAE,MAAM,EAAC,OAAO,EAAE,GAAG,SAAe,GAAE,OAAO;CAGzD"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandFacadeImpl = void 0;
4
+ const typ3s_1 = require("@data7expressions/typ3s");
5
+ class OperandFacadeImpl {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(constBuilder, parameterService, operandBuild, operandClone) {
8
+ this.constBuilder = constBuilder;
9
+ this.parameterService = parameterService;
10
+ this.operandBuild = operandBuild;
11
+ this.operandClone = operandClone;
12
+ }
13
+ getBuilder(key) {
14
+ return this.operandBuild.get(key);
15
+ }
16
+ /**
17
+ * Get parameters of expression
18
+ * @param expression expression
19
+ * @returns Parameters of expression
20
+ */
21
+ parameters(expression) {
22
+ const operand = this.operandBuild.build(expression, 'expression');
23
+ return this.parameterService.parameters(operand);
24
+ }
25
+ /**
26
+ * Get type of expression
27
+ * @param expression expression
28
+ * @returns Type of expression
29
+ */
30
+ type(expression) {
31
+ const operand = this.operandBuild.build(expression, 'expression');
32
+ return typ3s_1.Type.stringify(operand.returnType);
33
+ }
34
+ build(expression, key = 'expression') {
35
+ return this.operandBuild.build(expression, key);
36
+ }
37
+ clone(source, key = 'expression') {
38
+ return this.operandClone.clone(source, key);
39
+ }
40
+ }
41
+ exports.OperandFacadeImpl = OperandFacadeImpl;
42
+ //# sourceMappingURL=facade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facade.js","sourceRoot":"","sources":["../../../../../src/lib/operand/application/facade.ts"],"names":[],"mappings":";;;AAIA,mDAA8C;AAE9C,MAAa,iBAAiB;IAC7B,kDAAkD;IAClD,YAA6B,YAA0B,EACtC,gBAAiC,EACjC,YAAyB,EACzB,YAAyB;QAHb,iBAAY,GAAZ,YAAY,CAAc;QACtC,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,iBAAY,GAAZ,YAAY,CAAa;QACzB,iBAAY,GAAZ,YAAY,CAAa;IAAG,CAAC;IAEvC,UAAU,CAAE,GAAU;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAE,UAAkB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QACjE,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAE,UAAkB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QACjE,OAAO,YAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC1C,CAAC;IAEM,KAAK,CAAE,UAAkB,EAAE,GAAG,GAAG,YAAY;QACnD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChD,CAAC;IAEM,KAAK,CAAE,MAAc,EAAE,GAAG,GAAG,YAAY;QAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5C,CAAC;CACD;AAtCD,8CAsCC"}
@@ -0,0 +1,15 @@
1
+ export * from './services/factory';
2
+ export * from './useCases/reduce';
3
+ export * from './useCases/normalize';
4
+ export * from './useCases/complete';
5
+ export * from './useCases/clone';
6
+ export * from './services/serializer';
7
+ export * from './services/typeService';
8
+ export * from './useCases/build';
9
+ export * from './services/parameterService';
10
+ export * from './services/parser';
11
+ export * from './services/builder';
12
+ export * from './services/builderCacheDecorator';
13
+ export * from './services/normalizer';
14
+ export * from './facade';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/operand/application/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./services/factory"), exports);
18
+ __exportStar(require("./useCases/reduce"), exports);
19
+ __exportStar(require("./useCases/normalize"), exports);
20
+ __exportStar(require("./useCases/complete"), exports);
21
+ __exportStar(require("./useCases/clone"), exports);
22
+ __exportStar(require("./services/serializer"), exports);
23
+ __exportStar(require("./services/typeService"), exports);
24
+ __exportStar(require("./useCases/build"), exports);
25
+ __exportStar(require("./services/parameterService"), exports);
26
+ __exportStar(require("./services/parser"), exports);
27
+ __exportStar(require("./services/builder"), exports);
28
+ __exportStar(require("./services/builderCacheDecorator"), exports);
29
+ __exportStar(require("./services/normalizer"), exports);
30
+ __exportStar(require("./facade"), exports);
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/operand/application/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,oDAAiC;AACjC,uDAAoC;AACpC,sDAAmC;AACnC,mDAAgC;AAChC,wDAAqC;AACrC,yDAAsC;AACtC,mDAAgC;AAChC,8DAA2C;AAC3C,oDAAiC;AACjC,qDAAkC;AAClC,mEAAgD;AAChD,wDAAqC;AACrC,2CAAwB"}
@@ -0,0 +1,17 @@
1
+ import { Operand } from '../../../shared/domain';
2
+ import { ConstBuilder, EvaluatorFactory, OperandBuilder } from '../../domain';
3
+ import { ModelService } from '../../../model/domain';
4
+ export declare class OperandBuilderImpl implements OperandBuilder {
5
+ readonly evaluatorFactory: EvaluatorFactory;
6
+ private readonly model;
7
+ private readonly constBuilder;
8
+ private parse;
9
+ private normalize;
10
+ private operandNormalize;
11
+ private operandComplete;
12
+ private operandReduce;
13
+ private typeService;
14
+ constructor(evaluatorFactory: EvaluatorFactory, model: ModelService, constBuilder: ConstBuilder);
15
+ build(expression: string): Operand;
16
+ }
17
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAGhD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAe,MAAM,cAAc,CAAA;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,qBAAa,kBAAmB,YAAW,cAAc;aAO3B,gBAAgB,EAAC,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAR9B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,WAAW,CAAY;gBACF,gBAAgB,EAAC,gBAAgB,EAC5C,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,YAAY;IAUrC,KAAK,CAAE,UAAU,EAAE,MAAM,GAAG,OAAO;CAS1C"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperandBuilderImpl = void 0;
4
+ const parser_1 = require("./parser");
5
+ const normalizer_1 = require("./normalizer");
6
+ const __1 = require("..");
7
+ class OperandBuilderImpl {
8
+ constructor(evaluatorFactory, model, constBuilder) {
9
+ this.evaluatorFactory = evaluatorFactory;
10
+ this.model = model;
11
+ this.constBuilder = constBuilder;
12
+ this.parse = new parser_1.ExpressionParse(this.model);
13
+ this.normalize = new normalizer_1.ExpressionNormalizer();
14
+ this.operandNormalize = new __1.OperandNormalize(this.model);
15
+ this.operandComplete = new __1.OperandComplete(this.evaluatorFactory);
16
+ this.operandReduce = new __1.OperandReduce(this.model, this.constBuilder);
17
+ this.typeService = new __1.TypeServiceImpl(this.model);
18
+ }
19
+ build(expression) {
20
+ const expressionNormalized = this.normalize.normalize(expression);
21
+ const operand = this.parse.parse(expressionNormalized);
22
+ const normalized = this.operandNormalize.normalize(operand);
23
+ const completed = this.operandComplete.complete(normalized);
24
+ const reduced = this.operandReduce.reduce(completed);
25
+ reduced.returnType = this.typeService.getType(reduced);
26
+ return reduced;
27
+ }
28
+ }
29
+ exports.OperandBuilderImpl = OperandBuilderImpl;
30
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/builder.ts"],"names":[],"mappings":";;;AAEA,qCAA0C;AAC1C,6CAAmD;AAEnD,0BAAsF;AAGtF,MAAa,kBAAkB;IAO9B,YAA6B,gBAAiC,EAC5C,KAAmB,EACnB,YAA0B;QAFf,qBAAgB,GAAhB,gBAAgB,CAAiB;QAC5C,UAAK,GAAL,KAAK,CAAc;QACnB,iBAAY,GAAZ,YAAY,CAAc;QAE3C,IAAI,CAAC,KAAK,GAAG,IAAI,wBAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,iCAAoB,EAAE,CAAA;QAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,oBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxD,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACjE,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;IAEM,KAAK,CAAE,UAAkB;QAC/B,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACpD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACtD,OAAO,OAAO,CAAA;IACf,CAAC;CACD;AA5BD,gDA4BC"}