@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.
- package/CHANGELOG.md +78 -0
- package/LICENSE +201 -0
- package/README.md +144 -0
- package/expression/application/expressions.d.ts +69 -0
- package/expression/application/expressions.d.ts.map +1 -0
- package/expression/application/expressions.js +157 -0
- package/expression/application/expressions.js.map +1 -0
- package/expression/application/index.d.ts +4 -0
- package/expression/application/index.d.ts.map +1 -0
- package/expression/application/index.js +20 -0
- package/expression/application/index.js.map +1 -0
- package/expression/application/useCases/convert.d.ts +8 -0
- package/expression/application/useCases/convert.d.ts.map +1 -0
- package/expression/application/useCases/convert.js +25 -0
- package/expression/application/useCases/convert.js.map +1 -0
- package/expression/application/useCases/executor.d.ts +11 -0
- package/expression/application/useCases/executor.d.ts.map +1 -0
- package/expression/application/useCases/executor.js +23 -0
- package/expression/application/useCases/executor.js.map +1 -0
- package/expression/application/useCases/executorObserveDecorator.d.ts +16 -0
- package/expression/application/useCases/executorObserveDecorator.d.ts.map +1 -0
- package/expression/application/useCases/executorObserveDecorator.js +98 -0
- package/expression/application/useCases/executorObserveDecorator.js.map +1 -0
- package/expression/domain/expressions.d.ts +29 -0
- package/expression/domain/expressions.d.ts.map +1 -0
- package/expression/domain/expressions.js +3 -0
- package/expression/domain/expressions.js.map +1 -0
- package/expression/domain/index.d.ts +2 -0
- package/expression/domain/index.d.ts.map +1 -0
- package/expression/domain/index.js +18 -0
- package/expression/domain/index.js.map +1 -0
- package/expression/infrastructure/convertFrom/convertFromFunction.d.ts +15 -0
- package/expression/infrastructure/convertFrom/convertFromFunction.d.ts.map +1 -0
- package/expression/infrastructure/convertFrom/convertFromFunction.js +45 -0
- package/expression/infrastructure/convertFrom/convertFromFunction.js.map +1 -0
- package/expression/infrastructure/convertFrom/convertFromGraphql.d.ts +5 -0
- package/expression/infrastructure/convertFrom/convertFromGraphql.d.ts.map +1 -0
- package/expression/infrastructure/convertFrom/convertFromGraphql.js +96 -0
- package/expression/infrastructure/convertFrom/convertFromGraphql.js.map +1 -0
- package/expression/infrastructure/expressionsBuilder.d.ts +8 -0
- package/expression/infrastructure/expressionsBuilder.d.ts.map +1 -0
- package/expression/infrastructure/expressionsBuilder.js +28 -0
- package/expression/infrastructure/expressionsBuilder.js.map +1 -0
- package/expression/infrastructure/helper.d.ts +7 -0
- package/expression/infrastructure/helper.d.ts.map +1 -0
- package/expression/infrastructure/helper.js +34 -0
- package/expression/infrastructure/helper.js.map +1 -0
- package/expression/infrastructure/index.d.ts +2 -0
- package/expression/infrastructure/index.d.ts.map +1 -0
- package/expression/infrastructure/index.js +18 -0
- package/expression/infrastructure/index.js.map +1 -0
- package/expression/infrastructure/library.d.ts +30 -0
- package/expression/infrastructure/library.d.ts.map +1 -0
- package/expression/infrastructure/library.js +1813 -0
- package/expression/infrastructure/library.js.map +1 -0
- package/index.d.ts +31 -0
- package/index.d.ts.map +1 -0
- package/index.js +64 -0
- package/index.js.map +1 -0
- package/jest-unit-config.json +15 -0
- package/model/application/index.d.ts +2 -0
- package/model/application/index.d.ts.map +1 -0
- package/model/application/index.js +18 -0
- package/model/application/index.js.map +1 -0
- package/model/application/modelService.d.ts +42 -0
- package/model/application/modelService.d.ts.map +1 -0
- package/model/application/modelService.js +329 -0
- package/model/application/modelService.js.map +1 -0
- package/model/domain/index.d.ts +3 -0
- package/model/domain/index.d.ts.map +1 -0
- package/model/domain/index.js +19 -0
- package/model/domain/index.js.map +1 -0
- package/model/domain/library.d.ts +5 -0
- package/model/domain/library.d.ts.map +1 -0
- package/model/domain/library.js +3 -0
- package/model/domain/library.js.map +1 -0
- package/model/domain/services.d.ts +32 -0
- package/model/domain/services.d.ts.map +1 -0
- package/model/domain/services.js +3 -0
- package/model/domain/services.js.map +1 -0
- package/operand/application/facade.d.ts +27 -0
- package/operand/application/facade.d.ts.map +1 -0
- package/operand/application/facade.js +42 -0
- package/operand/application/facade.js.map +1 -0
- package/operand/application/index.d.ts +15 -0
- package/operand/application/index.d.ts.map +1 -0
- package/operand/application/index.js +31 -0
- package/operand/application/index.js.map +1 -0
- package/operand/application/services/builder.d.ts +17 -0
- package/operand/application/services/builder.d.ts.map +1 -0
- package/operand/application/services/builder.js +30 -0
- package/operand/application/services/builder.js.map +1 -0
- package/operand/application/services/builderCacheDecorator.d.ts +14 -0
- package/operand/application/services/builderCacheDecorator.d.ts.map +1 -0
- package/operand/application/services/builderCacheDecorator.js +29 -0
- package/operand/application/services/builderCacheDecorator.js.map +1 -0
- package/operand/application/services/factory.d.ts +10 -0
- package/operand/application/services/factory.d.ts.map +1 -0
- package/operand/application/services/factory.js +24 -0
- package/operand/application/services/factory.js.map +1 -0
- package/operand/application/services/normalizer.d.ts +4 -0
- package/operand/application/services/normalizer.d.ts.map +1 -0
- package/operand/application/services/normalizer.js +51 -0
- package/operand/application/services/normalizer.js.map +1 -0
- package/operand/application/services/parameterService.d.ts +6 -0
- package/operand/application/services/parameterService.d.ts.map +1 -0
- package/operand/application/services/parameterService.js +23 -0
- package/operand/application/services/parameterService.js.map +1 -0
- package/operand/application/services/parser.d.ts +49 -0
- package/operand/application/services/parser.d.ts.map +1 -0
- package/operand/application/services/parser.js +751 -0
- package/operand/application/services/parser.js.map +1 -0
- package/operand/application/services/serializer.d.ts +10 -0
- package/operand/application/services/serializer.d.ts.map +1 -0
- package/operand/application/services/serializer.js +40 -0
- package/operand/application/services/serializer.js.map +1 -0
- package/operand/application/services/typeService.d.ts +37 -0
- package/operand/application/services/typeService.d.ts.map +1 -0
- package/operand/application/services/typeService.js +392 -0
- package/operand/application/services/typeService.js.map +1 -0
- package/operand/application/useCases/build.d.ts +10 -0
- package/operand/application/useCases/build.d.ts.map +1 -0
- package/operand/application/useCases/build.js +25 -0
- package/operand/application/useCases/build.js.map +1 -0
- package/operand/application/useCases/clone.d.ts +10 -0
- package/operand/application/useCases/clone.d.ts.map +1 -0
- package/operand/application/useCases/clone.js +34 -0
- package/operand/application/useCases/clone.js.map +1 -0
- package/operand/application/useCases/complete.d.ts +9 -0
- package/operand/application/useCases/complete.d.ts.map +1 -0
- package/operand/application/useCases/complete.js +26 -0
- package/operand/application/useCases/complete.js.map +1 -0
- package/operand/application/useCases/normalize.d.ts +9 -0
- package/operand/application/useCases/normalize.d.ts.map +1 -0
- package/operand/application/useCases/normalize.js +43 -0
- package/operand/application/useCases/normalize.js.map +1 -0
- package/operand/application/useCases/reduce.d.ts +11 -0
- package/operand/application/useCases/reduce.d.ts.map +1 -0
- package/operand/application/useCases/reduce.js +57 -0
- package/operand/application/useCases/reduce.js.map +1 -0
- package/operand/domain/constBuilder.d.ts +5 -0
- package/operand/domain/constBuilder.d.ts.map +1 -0
- package/operand/domain/constBuilder.js +3 -0
- package/operand/domain/constBuilder.js.map +1 -0
- package/operand/domain/entities.d.ts +60 -0
- package/operand/domain/entities.d.ts.map +1 -0
- package/operand/domain/entities.js +38 -0
- package/operand/domain/entities.js.map +1 -0
- package/operand/domain/index.d.ts +4 -0
- package/operand/domain/index.d.ts.map +1 -0
- package/operand/domain/index.js +20 -0
- package/operand/domain/index.js.map +1 -0
- package/operand/domain/services.d.ts +39 -0
- package/operand/domain/services.d.ts.map +1 -0
- package/operand/domain/services.js +3 -0
- package/operand/domain/services.js.map +1 -0
- package/operand/infrastructure/constBuilder.d.ts +6 -0
- package/operand/infrastructure/constBuilder.d.ts.map +1 -0
- package/operand/infrastructure/constBuilder.js +15 -0
- package/operand/infrastructure/constBuilder.js.map +1 -0
- package/operand/infrastructure/executors/expression.d.ts +34 -0
- package/operand/infrastructure/executors/expression.d.ts.map +1 -0
- package/operand/infrastructure/executors/expression.js +534 -0
- package/operand/infrastructure/executors/expression.js.map +1 -0
- package/operand/infrastructure/executors/task.d.ts +8 -0
- package/operand/infrastructure/executors/task.d.ts.map +1 -0
- package/operand/infrastructure/executors/task.js +492 -0
- package/operand/infrastructure/executors/task.js.map +1 -0
- package/operand/infrastructure/facadeBuilder.d.ts +10 -0
- package/operand/infrastructure/facadeBuilder.d.ts.map +1 -0
- package/operand/infrastructure/facadeBuilder.js +35 -0
- package/operand/infrastructure/facadeBuilder.js.map +1 -0
- package/operand/infrastructure/helper.d.ts +20 -0
- package/operand/infrastructure/helper.d.ts.map +1 -0
- package/operand/infrastructure/helper.js +272 -0
- package/operand/infrastructure/helper.js.map +1 -0
- package/operand/infrastructure/index.d.ts +4 -0
- package/operand/infrastructure/index.d.ts.map +1 -0
- package/operand/infrastructure/index.js +20 -0
- package/operand/infrastructure/index.js.map +1 -0
- package/package.json +39 -0
- package/shared/domain/base.d.ts +32 -0
- package/shared/domain/base.d.ts.map +1 -0
- package/shared/domain/base.js +12 -0
- package/shared/domain/base.js.map +1 -0
- package/shared/domain/context.d.ts +37 -0
- package/shared/domain/context.d.ts.map +1 -0
- package/shared/domain/context.js +93 -0
- package/shared/domain/context.js.map +1 -0
- package/shared/domain/index.d.ts +6 -0
- package/shared/domain/index.d.ts.map +1 -0
- package/shared/domain/index.js +22 -0
- package/shared/domain/index.js.map +1 -0
- package/shared/domain/observer.d.ts +15 -0
- package/shared/domain/observer.d.ts.map +1 -0
- package/shared/domain/observer.js +11 -0
- package/shared/domain/observer.js.map +1 -0
- package/shared/domain/operand.d.ts +55 -0
- package/shared/domain/operand.d.ts.map +1 -0
- package/shared/domain/operand.js +69 -0
- package/shared/domain/operand.js.map +1 -0
- package/shared/domain/signals.d.ts +8 -0
- package/shared/domain/signals.d.ts.map +1 -0
- package/shared/domain/signals.js +3 -0
- package/shared/domain/signals.js.map +1 -0
- package/shared/infrastructure/helper.d.ts +9 -0
- package/shared/infrastructure/helper.d.ts.map +1 -0
- package/shared/infrastructure/helper.js +16 -0
- package/shared/infrastructure/helper.js.map +1 -0
- package/shared/infrastructure/index.d.ts +2 -0
- package/shared/infrastructure/index.d.ts.map +1 -0
- package/shared/infrastructure/index.js +18 -0
- package/shared/infrastructure/index.js.map +1 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Operand } from '../../../shared/domain';
|
|
2
|
+
import { OperandBuilder, OperandSerializer } from '../../domain';
|
|
3
|
+
import { ICache, IUtils } from '@data7expressions/h3lp';
|
|
4
|
+
export declare class OperandBuilderCacheDecorator implements OperandBuilder {
|
|
5
|
+
private readonly builder;
|
|
6
|
+
private readonly cache;
|
|
7
|
+
private readonly serializer;
|
|
8
|
+
private readonly utils;
|
|
9
|
+
private operandComplete;
|
|
10
|
+
constructor(builder: OperandBuilder, cache: ICache<string, string>, serializer: OperandSerializer, utils: IUtils);
|
|
11
|
+
get evaluatorFactory(): import("../../domain").EvaluatorFactory;
|
|
12
|
+
build(expression: string): Operand;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=builderCacheDecorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builderCacheDecorator.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/builderCacheDecorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAGvD,qBAAa,4BAA6B,YAAW,cAAc;IAErD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJvB,OAAO,CAAC,eAAe,CAAgB;gBACT,OAAO,EAAC,cAAc,EAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,UAAU,EAAC,iBAAiB,EAC5B,KAAK,EAAE,MAAM;IAI/B,IAAW,gBAAgB,4CAE1B;IAEM,KAAK,CAAE,UAAU,EAAE,MAAM,GAAG,OAAO;CAW1C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OperandBuilderCacheDecorator = void 0;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
class OperandBuilderCacheDecorator {
|
|
6
|
+
constructor(builder, cache, serializer, utils) {
|
|
7
|
+
this.builder = builder;
|
|
8
|
+
this.cache = cache;
|
|
9
|
+
this.serializer = serializer;
|
|
10
|
+
this.utils = utils;
|
|
11
|
+
this.operandComplete = new __1.OperandComplete(builder.evaluatorFactory);
|
|
12
|
+
}
|
|
13
|
+
get evaluatorFactory() {
|
|
14
|
+
return this.builder.evaluatorFactory;
|
|
15
|
+
}
|
|
16
|
+
build(expression) {
|
|
17
|
+
const key = this.utils.hashCode(expression).toString();
|
|
18
|
+
const value = this.cache.get(key);
|
|
19
|
+
if (value) {
|
|
20
|
+
const operand = this.serializer.deserialize(value);
|
|
21
|
+
return this.operandComplete.complete(operand);
|
|
22
|
+
}
|
|
23
|
+
const operand = this.builder.build(expression);
|
|
24
|
+
this.cache.set(key, this.serializer.serialize(operand));
|
|
25
|
+
return operand;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.OperandBuilderCacheDecorator = OperandBuilderCacheDecorator;
|
|
29
|
+
//# sourceMappingURL=builderCacheDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builderCacheDecorator.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/builderCacheDecorator.ts"],"names":[],"mappings":";;;AAIA,0BAAoC;AAEpC,MAAa,4BAA4B;IAExC,YAA8B,OAAsB,EAClC,KAA6B,EAC7B,UAA4B,EAC5B,KAAa;QAHD,YAAO,GAAP,OAAO,CAAe;QAClC,UAAK,GAAL,KAAK,CAAwB;QAC7B,eAAU,GAAV,UAAU,CAAkB;QAC5B,UAAK,GAAL,KAAK,CAAQ;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrE,CAAC;IAED,IAAW,gBAAgB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;IACrC,CAAC;IAEM,KAAK,CAAE,UAAkB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAA;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAClD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QACvD,OAAO,OAAO,CAAA;IACf,CAAC;CACD;AAxBD,oEAwBC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EvaluatorBuilder, EvaluatorFactory } from '../../domain';
|
|
2
|
+
import { Operand, IEvaluator } from '../../../shared/domain';
|
|
3
|
+
export declare class EvaluatorFactoryImpl implements EvaluatorFactory {
|
|
4
|
+
private evaluators;
|
|
5
|
+
constructor();
|
|
6
|
+
add(key: string, evaluator: EvaluatorBuilder): EvaluatorFactory;
|
|
7
|
+
get(key: string): EvaluatorBuilder | undefined;
|
|
8
|
+
create(operand: Operand): IEvaluator | undefined;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE5D,qBAAa,oBAAqB,YAAW,gBAAgB;IAC5D,OAAO,CAAC,UAAU,CAAK;;IAKhB,GAAG,CAAE,GAAG,EAAC,MAAM,EAAE,SAAS,EAAC,gBAAgB,GAAE,gBAAgB;IAK7D,GAAG,CAAE,GAAG,EAAC,MAAM,GAAE,gBAAgB,GAAC,SAAS;IAI3C,MAAM,CAAE,OAAO,EAAC,OAAO,GAAG,UAAU,GAAC,SAAS;CAOrD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvaluatorFactoryImpl = void 0;
|
|
4
|
+
class EvaluatorFactoryImpl {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.evaluators = {};
|
|
7
|
+
}
|
|
8
|
+
add(key, evaluator) {
|
|
9
|
+
this.evaluators[key] = evaluator;
|
|
10
|
+
return this;
|
|
11
|
+
}
|
|
12
|
+
get(key) {
|
|
13
|
+
return this.evaluators[key];
|
|
14
|
+
}
|
|
15
|
+
create(operand) {
|
|
16
|
+
const evaluatorBuilder = this.get(operand.type);
|
|
17
|
+
if (evaluatorBuilder === undefined) {
|
|
18
|
+
throw new Error(`Evaluator for ${operand.type} ${operand.name} not found`);
|
|
19
|
+
}
|
|
20
|
+
return evaluatorBuilder.build(operand);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.EvaluatorFactoryImpl = EvaluatorFactoryImpl;
|
|
24
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/factory.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAEhC;QACC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACrB,CAAC;IAEM,GAAG,CAAE,GAAU,EAAE,SAA0B;QACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QAChC,OAAO,IAAI,CAAA;IACZ,CAAC;IAEM,GAAG,CAAE,GAAU;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAqB,CAAA;IAChD,CAAC;IAEM,MAAM,CAAE,OAAe;QAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,YAAY,CAAC,CAAA;QAC3E,CAAC;QACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;CACD;AAtBD,oDAsBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/normalizer.ts"],"names":[],"mappings":"AAEA,qBAAa,oBAAoB;IACzB,SAAS,CAAE,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;CAuCjE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpressionNormalizer = void 0;
|
|
4
|
+
const h3lp_1 = require("@data7expressions/h3lp");
|
|
5
|
+
class ExpressionNormalizer {
|
|
6
|
+
normalize(expression) {
|
|
7
|
+
let isString = false;
|
|
8
|
+
let quotes = '';
|
|
9
|
+
const buffer = expression.split('');
|
|
10
|
+
const length = buffer.length;
|
|
11
|
+
const result = [];
|
|
12
|
+
let line = 0;
|
|
13
|
+
let col = 0;
|
|
14
|
+
let i = 0;
|
|
15
|
+
while (i < length) {
|
|
16
|
+
const p = buffer[i];
|
|
17
|
+
if (isString && p === quotes) {
|
|
18
|
+
isString = false;
|
|
19
|
+
}
|
|
20
|
+
else if (!isString && (p === '\'' || p === '"' || p === '`')) {
|
|
21
|
+
isString = true;
|
|
22
|
+
quotes = p;
|
|
23
|
+
}
|
|
24
|
+
if (isString) {
|
|
25
|
+
result.push([p, line, col]);
|
|
26
|
+
}
|
|
27
|
+
else if (p === ' ') {
|
|
28
|
+
// Only leave spaces when it's between alphanumeric characters.
|
|
29
|
+
// for example in the case of "} if" there should not be a space
|
|
30
|
+
if (i + 1 < length && i - 1 >= 0 && h3lp_1.h3lp.val.isAlphanumeric(buffer[i - 1]) && h3lp_1.h3lp.val.isAlphanumeric(buffer[i + 1])) {
|
|
31
|
+
result.push([p, line, col]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (p === '\n') {
|
|
35
|
+
line++;
|
|
36
|
+
col = 0;
|
|
37
|
+
}
|
|
38
|
+
else if (p !== '\r' && p !== '\t') {
|
|
39
|
+
result.push([p, line, col]);
|
|
40
|
+
}
|
|
41
|
+
i++;
|
|
42
|
+
col++;
|
|
43
|
+
}
|
|
44
|
+
if (result[result.length - 1][0] === ';') {
|
|
45
|
+
result.splice(-1);
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.ExpressionNormalizer = ExpressionNormalizer;
|
|
51
|
+
//# sourceMappingURL=normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/normalizer.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,MAAa,oBAAoB;IACzB,SAAS,CAAE,UAAkB;QACnC,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC5B,MAAM,MAAM,GAA8B,EAAE,CAAA;QAC5C,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACnB,IAAI,QAAQ,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC9B,QAAQ,GAAG,KAAK,CAAA;YACjB,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAChE,QAAQ,GAAG,IAAI,CAAA;gBACf,MAAM,GAAG,CAAC,CAAA;YACX,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAC5B,CAAC;iBAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtB,+DAA+D;gBAC/D,gEAAgE;gBAChE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,WAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;gBAC5B,CAAC;YACF,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,EAAE,CAAA;gBACN,GAAG,GAAG,CAAC,CAAA;YACR,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;YAC5B,CAAC;YACD,CAAC,EAAE,CAAA;YACH,GAAG,EAAE,CAAA;QACN,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AAxCD,oDAwCC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Operand, Parameter } from '../../../shared/domain';
|
|
2
|
+
import { ParameterService } from '../../domain';
|
|
3
|
+
export declare class ParameterServiceImpl implements ParameterService {
|
|
4
|
+
parameters(operand: Operand): Parameter[];
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=parameterService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameterService.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/parameterService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAe,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,qBAAa,oBAAqB,YAAW,gBAAgB;IACrD,UAAU,CAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE;CAcjD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParameterServiceImpl = void 0;
|
|
4
|
+
const domain_1 = require("../../../shared/domain");
|
|
5
|
+
const typ3s_1 = require("@data7expressions/typ3s");
|
|
6
|
+
class ParameterServiceImpl {
|
|
7
|
+
parameters(operand) {
|
|
8
|
+
const parameters = [];
|
|
9
|
+
if (operand.type === domain_1.OperandType.Var) {
|
|
10
|
+
parameters.push({ name: operand.name, type: typ3s_1.Type.stringify(operand.returnType) });
|
|
11
|
+
}
|
|
12
|
+
for (const child of operand.children) {
|
|
13
|
+
const childParameters = this.parameters(child);
|
|
14
|
+
const newParameters = childParameters.filter((p) => !parameters.map((p) => p.name).includes(p.name));
|
|
15
|
+
if (newParameters.length > 0) {
|
|
16
|
+
parameters.push(...newParameters);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return parameters;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ParameterServiceImpl = ParameterServiceImpl;
|
|
23
|
+
//# sourceMappingURL=parameterService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameterService.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/parameterService.ts"],"names":[],"mappings":";;;AAAA,mDAAwE;AAExE,mDAA8C;AAE9C,MAAa,oBAAoB;IACzB,UAAU,CAAE,OAAgB;QAClC,MAAM,UAAU,GAAgB,EAAE,CAAA;QAClC,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAW,CAAC,GAAG,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACxH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;YAClC,CAAC;QACF,CAAC;QACD,OAAO,UAAU,CAAA;IAClB,CAAC;CACD;AAfD,oDAeC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Operand } from '../../../shared/domain';
|
|
2
|
+
import { ModelService } from '../../../model/domain';
|
|
3
|
+
export declare class Parser {
|
|
4
|
+
private readonly model;
|
|
5
|
+
private readonly expression;
|
|
6
|
+
private buffer;
|
|
7
|
+
private length;
|
|
8
|
+
private index;
|
|
9
|
+
private singleOperators;
|
|
10
|
+
private doubleOperators;
|
|
11
|
+
private tripleOperators;
|
|
12
|
+
private assignmentOperators;
|
|
13
|
+
constructor(model: ModelService, expression: [string, number, number][]);
|
|
14
|
+
parse(): Operand;
|
|
15
|
+
private getExpression;
|
|
16
|
+
private getOperand;
|
|
17
|
+
private solveChain;
|
|
18
|
+
private getOperator;
|
|
19
|
+
private normalize;
|
|
20
|
+
private get end();
|
|
21
|
+
private get current();
|
|
22
|
+
private offset;
|
|
23
|
+
private pos;
|
|
24
|
+
private nextIs;
|
|
25
|
+
private getValue;
|
|
26
|
+
private getString;
|
|
27
|
+
private getTemplate;
|
|
28
|
+
private getArgs;
|
|
29
|
+
private getObject;
|
|
30
|
+
private getBlock;
|
|
31
|
+
private getControlBlock;
|
|
32
|
+
private getReturn;
|
|
33
|
+
private getTryCatchBlock;
|
|
34
|
+
private getThrow;
|
|
35
|
+
private getIfBlock;
|
|
36
|
+
private getSwitchBlock;
|
|
37
|
+
private getWhileBlock;
|
|
38
|
+
private getForBlock;
|
|
39
|
+
private getFunctionBlock;
|
|
40
|
+
private getChildFunc;
|
|
41
|
+
private getIndexOperand;
|
|
42
|
+
private getEnum;
|
|
43
|
+
}
|
|
44
|
+
export declare class ExpressionParse {
|
|
45
|
+
private readonly model;
|
|
46
|
+
constructor(model: ModelService);
|
|
47
|
+
parse(expression: [string, number, number][]): Operand;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAyB,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,qBAAa,MAAM;IASL,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAgB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR9E,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,mBAAmB,CAAU;gBAEP,KAAK,EAAE,YAAY,EAAmB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IA0BnG,KAAK,IAAM,OAAO;IAUzB,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,UAAU;IA6IlB,OAAO,CAAC,UAAU;IA+ClB,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,SAAS;IA4CjB,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,cAAc;IAyDtB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,OAAO;CAkBf;AAED,qBAAa,eAAe;IAEd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,KAAK,CAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO;CAG9D"}
|