@ruleflow-ts/dsl-core 0.1.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/LICENSE +21 -0
- package/README.md +290 -0
- package/dist/debug.d.ts +11 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +30 -0
- package/dist/debug.js.map +1 -0
- package/dist/errors/PropertyNotFoundError.d.ts +5 -0
- package/dist/errors/PropertyNotFoundError.d.ts.map +1 -0
- package/dist/errors/PropertyNotFoundError.js +17 -0
- package/dist/errors/PropertyNotFoundError.js.map +1 -0
- package/dist/evaluator/AggregationEvaluator.d.ts +9 -0
- package/dist/evaluator/AggregationEvaluator.d.ts.map +1 -0
- package/dist/evaluator/AggregationEvaluator.js +74 -0
- package/dist/evaluator/AggregationEvaluator.js.map +1 -0
- package/dist/evaluator/BinaryAndEvaluator.d.ts +6 -0
- package/dist/evaluator/BinaryAndEvaluator.d.ts.map +1 -0
- package/dist/evaluator/BinaryAndEvaluator.js +14 -0
- package/dist/evaluator/BinaryAndEvaluator.js.map +1 -0
- package/dist/evaluator/BinaryOrEvaluator.d.ts +6 -0
- package/dist/evaluator/BinaryOrEvaluator.d.ts.map +1 -0
- package/dist/evaluator/BinaryOrEvaluator.js +14 -0
- package/dist/evaluator/BinaryOrEvaluator.js.map +1 -0
- package/dist/evaluator/ComparatorEvaluator.d.ts +9 -0
- package/dist/evaluator/ComparatorEvaluator.d.ts.map +1 -0
- package/dist/evaluator/ComparatorEvaluator.js +95 -0
- package/dist/evaluator/ComparatorEvaluator.js.map +1 -0
- package/dist/evaluator/ListEvaluator.d.ts +10 -0
- package/dist/evaluator/ListEvaluator.d.ts.map +1 -0
- package/dist/evaluator/ListEvaluator.js +71 -0
- package/dist/evaluator/ListEvaluator.js.map +1 -0
- package/dist/evaluator/MathAddEvaluator.d.ts +5 -0
- package/dist/evaluator/MathAddEvaluator.d.ts.map +1 -0
- package/dist/evaluator/MathAddEvaluator.js +20 -0
- package/dist/evaluator/MathAddEvaluator.js.map +1 -0
- package/dist/evaluator/MathMulEvaluator.d.ts +5 -0
- package/dist/evaluator/MathMulEvaluator.d.ts.map +1 -0
- package/dist/evaluator/MathMulEvaluator.js +23 -0
- package/dist/evaluator/MathMulEvaluator.js.map +1 -0
- package/dist/evaluator/ParenthesisEvaluator.d.ts +5 -0
- package/dist/evaluator/ParenthesisEvaluator.d.ts.map +1 -0
- package/dist/evaluator/ParenthesisEvaluator.js +10 -0
- package/dist/evaluator/ParenthesisEvaluator.js.map +1 -0
- package/dist/evaluator/RegexlikeEvaluator.d.ts +6 -0
- package/dist/evaluator/RegexlikeEvaluator.d.ts.map +1 -0
- package/dist/evaluator/RegexlikeEvaluator.js +23 -0
- package/dist/evaluator/RegexlikeEvaluator.js.map +1 -0
- package/dist/evaluator/TupleListEvaluator.d.ts +11 -0
- package/dist/evaluator/TupleListEvaluator.d.ts.map +1 -0
- package/dist/evaluator/TupleListEvaluator.js +121 -0
- package/dist/evaluator/TupleListEvaluator.js.map +1 -0
- package/dist/evaluator/UnaryEvaluator.d.ts +6 -0
- package/dist/evaluator/UnaryEvaluator.d.ts.map +1 -0
- package/dist/evaluator/UnaryEvaluator.js +12 -0
- package/dist/evaluator/UnaryEvaluator.js.map +1 -0
- package/dist/evaluator/ValidPropertyEvaluator.d.ts +6 -0
- package/dist/evaluator/ValidPropertyEvaluator.d.ts.map +1 -0
- package/dist/evaluator/ValidPropertyEvaluator.js +32 -0
- package/dist/evaluator/ValidPropertyEvaluator.js.map +1 -0
- package/dist/evaluator/ValueEvaluator.d.ts +8 -0
- package/dist/evaluator/ValueEvaluator.d.ts.map +1 -0
- package/dist/evaluator/ValueEvaluator.js +43 -0
- package/dist/evaluator/ValueEvaluator.js.map +1 -0
- package/dist/evaluator/date/DateAddEvaluator.d.ts +7 -0
- package/dist/evaluator/date/DateAddEvaluator.d.ts.map +1 -0
- package/dist/evaluator/date/DateAddEvaluator.js +36 -0
- package/dist/evaluator/date/DateAddEvaluator.js.map +1 -0
- package/dist/evaluator/date/DateDiffEvaluator.d.ts +7 -0
- package/dist/evaluator/date/DateDiffEvaluator.d.ts.map +1 -0
- package/dist/evaluator/date/DateDiffEvaluator.js +31 -0
- package/dist/evaluator/date/DateDiffEvaluator.js.map +1 -0
- package/dist/evaluator/date/DateOperationEvaluator.d.ts +6 -0
- package/dist/evaluator/date/DateOperationEvaluator.d.ts.map +1 -0
- package/dist/evaluator/date/DateOperationEvaluator.js +13 -0
- package/dist/evaluator/date/DateOperationEvaluator.js.map +1 -0
- package/dist/evaluator/date/DateParseExprEvaluator.d.ts +7 -0
- package/dist/evaluator/date/DateParseExprEvaluator.d.ts.map +1 -0
- package/dist/evaluator/date/DateParseExprEvaluator.js +44 -0
- package/dist/evaluator/date/DateParseExprEvaluator.js.map +1 -0
- package/dist/evaluator/date/DateSubtractEvaluator.d.ts +7 -0
- package/dist/evaluator/date/DateSubtractEvaluator.d.ts.map +1 -0
- package/dist/evaluator/date/DateSubtractEvaluator.js +36 -0
- package/dist/evaluator/date/DateSubtractEvaluator.js.map +1 -0
- package/dist/evaluator/date/DateValueEvaluator.d.ts +7 -0
- package/dist/evaluator/date/DateValueEvaluator.d.ts.map +1 -0
- package/dist/evaluator/date/DateValueEvaluator.js +44 -0
- package/dist/evaluator/date/DateValueEvaluator.js.map +1 -0
- package/dist/evaluator/date/DayOfWeekEvaluator.d.ts +7 -0
- package/dist/evaluator/date/DayOfWeekEvaluator.d.ts.map +1 -0
- package/dist/evaluator/date/DayOfWeekEvaluator.js +21 -0
- package/dist/evaluator/date/DayOfWeekEvaluator.js.map +1 -0
- package/dist/evaluator/date/NowEvaluator.d.ts +6 -0
- package/dist/evaluator/date/NowEvaluator.d.ts.map +1 -0
- package/dist/evaluator/date/NowEvaluator.js +10 -0
- package/dist/evaluator/date/NowEvaluator.js.map +1 -0
- package/dist/evaluator/geo/DistanceEvaluator.d.ts +6 -0
- package/dist/evaluator/geo/DistanceEvaluator.d.ts.map +1 -0
- package/dist/evaluator/geo/DistanceEvaluator.js +15 -0
- package/dist/evaluator/geo/DistanceEvaluator.js.map +1 -0
- package/dist/evaluator/geo/DistanceGeohashEvaluator.d.ts +6 -0
- package/dist/evaluator/geo/DistanceGeohashEvaluator.d.ts.map +1 -0
- package/dist/evaluator/geo/DistanceGeohashEvaluator.js +15 -0
- package/dist/evaluator/geo/DistanceGeohashEvaluator.js.map +1 -0
- package/dist/evaluator/geo/GeoOperationEvaluator.d.ts +6 -0
- package/dist/evaluator/geo/GeoOperationEvaluator.d.ts.map +1 -0
- package/dist/evaluator/geo/GeoOperationEvaluator.js +11 -0
- package/dist/evaluator/geo/GeoOperationEvaluator.js.map +1 -0
- package/dist/evaluator/geo/GeohashDecodeEvaluator.d.ts +6 -0
- package/dist/evaluator/geo/GeohashDecodeEvaluator.d.ts.map +1 -0
- package/dist/evaluator/geo/GeohashDecodeEvaluator.js +12 -0
- package/dist/evaluator/geo/GeohashDecodeEvaluator.js.map +1 -0
- package/dist/evaluator/geo/GeohashEncodeEvaluator.d.ts +6 -0
- package/dist/evaluator/geo/GeohashEncodeEvaluator.d.ts.map +1 -0
- package/dist/evaluator/geo/GeohashEncodeEvaluator.js +15 -0
- package/dist/evaluator/geo/GeohashEncodeEvaluator.js.map +1 -0
- package/dist/evaluator/geo/WithinRadiusEvaluator.d.ts +6 -0
- package/dist/evaluator/geo/WithinRadiusEvaluator.d.ts.map +1 -0
- package/dist/evaluator/geo/WithinRadiusEvaluator.js +17 -0
- package/dist/evaluator/geo/WithinRadiusEvaluator.js.map +1 -0
- package/dist/evaluator/geo/geohash.d.ts +4 -0
- package/dist/evaluator/geo/geohash.d.ts.map +1 -0
- package/dist/evaluator/geo/geohash.js +91 -0
- package/dist/evaluator/geo/geohash.js.map +1 -0
- package/dist/evaluator/string/PartialRatioEvaluator.d.ts +6 -0
- package/dist/evaluator/string/PartialRatioEvaluator.d.ts.map +1 -0
- package/dist/evaluator/string/PartialRatioEvaluator.js +13 -0
- package/dist/evaluator/string/PartialRatioEvaluator.js.map +1 -0
- package/dist/evaluator/string/StringDistanceEvaluator.d.ts +6 -0
- package/dist/evaluator/string/StringDistanceEvaluator.d.ts.map +1 -0
- package/dist/evaluator/string/StringDistanceEvaluator.js +13 -0
- package/dist/evaluator/string/StringDistanceEvaluator.js.map +1 -0
- package/dist/evaluator/string/StringSimilarityScoreEvaluator.d.ts +6 -0
- package/dist/evaluator/string/StringSimilarityScoreEvaluator.d.ts.map +1 -0
- package/dist/evaluator/string/StringSimilarityScoreEvaluator.js +13 -0
- package/dist/evaluator/string/StringSimilarityScoreEvaluator.js.map +1 -0
- package/dist/evaluator/string/TokenSetRatioEvaluator.d.ts +6 -0
- package/dist/evaluator/string/TokenSetRatioEvaluator.d.ts.map +1 -0
- package/dist/evaluator/string/TokenSetRatioEvaluator.js +15 -0
- package/dist/evaluator/string/TokenSetRatioEvaluator.js.map +1 -0
- package/dist/evaluator/string/TokenSortRatioEvaluator.d.ts +6 -0
- package/dist/evaluator/string/TokenSortRatioEvaluator.d.ts.map +1 -0
- package/dist/evaluator/string/TokenSortRatioEvaluator.js +15 -0
- package/dist/evaluator/string/TokenSortRatioEvaluator.js.map +1 -0
- package/dist/evaluator/string/levenshtein.d.ts +7 -0
- package/dist/evaluator/string/levenshtein.d.ts.map +1 -0
- package/dist/evaluator/string/levenshtein.js +81 -0
- package/dist/evaluator/string/levenshtein.js.map +1 -0
- package/dist/generated/RuleFlowLanguageLexer.d.ts +4 -0
- package/dist/generated/RuleFlowLanguageLexer.d.ts.map +1 -0
- package/dist/generated/RuleFlowLanguageLexer.js +9 -0
- package/dist/generated/RuleFlowLanguageLexer.js.map +1 -0
- package/dist/generated/RuleFlowLanguageParser.d.ts +8 -0
- package/dist/generated/RuleFlowLanguageParser.d.ts.map +1 -0
- package/dist/generated/RuleFlowLanguageParser.js +13 -0
- package/dist/generated/RuleFlowLanguageParser.js.map +1 -0
- package/dist/generated/src/grammar/RuleFlowLanguageLexer.d.ts +106 -0
- package/dist/generated/src/grammar/RuleFlowLanguageLexer.d.ts.map +1 -0
- package/dist/generated/src/grammar/RuleFlowLanguageLexer.js +1128 -0
- package/dist/generated/src/grammar/RuleFlowLanguageLexer.js.map +1 -0
- package/dist/generated/src/grammar/RuleFlowLanguageListener.d.ts +752 -0
- package/dist/generated/src/grammar/RuleFlowLanguageListener.d.ts.map +1 -0
- package/dist/generated/src/grammar/RuleFlowLanguageListener.js +4 -0
- package/dist/generated/src/grammar/RuleFlowLanguageListener.js.map +1 -0
- package/dist/generated/src/grammar/RuleFlowLanguageParser.d.ts +936 -0
- package/dist/generated/src/grammar/RuleFlowLanguageParser.d.ts.map +1 -0
- package/dist/generated/src/grammar/RuleFlowLanguageParser.js +6080 -0
- package/dist/generated/src/grammar/RuleFlowLanguageParser.js.map +1 -0
- package/dist/generated/src/grammar/RuleFlowLanguageVisitor.d.ts +476 -0
- package/dist/generated/src/grammar/RuleFlowLanguageVisitor.d.ts.map +1 -0
- package/dist/generated/src/grammar/RuleFlowLanguageVisitor.js +4 -0
- package/dist/generated/src/grammar/RuleFlowLanguageVisitor.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/listeners/ErrorListener.d.ts +5 -0
- package/dist/listeners/ErrorListener.d.ts.map +1 -0
- package/dist/listeners/ErrorListener.js +10 -0
- package/dist/listeners/ErrorListener.js.map +1 -0
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/visitors/ActionsVisitor.d.ts +12 -0
- package/dist/visitors/ActionsVisitor.d.ts.map +1 -0
- package/dist/visitors/ActionsVisitor.js +82 -0
- package/dist/visitors/ActionsVisitor.js.map +1 -0
- package/dist/visitors/RulesetVisitor.d.ts +18 -0
- package/dist/visitors/RulesetVisitor.d.ts.map +1 -0
- package/dist/visitors/RulesetVisitor.js +190 -0
- package/dist/visitors/RulesetVisitor.js.map +1 -0
- package/dist/visitors/Visitor.d.ts +13 -0
- package/dist/visitors/Visitor.d.ts.map +1 -0
- package/dist/visitors/Visitor.js +169 -0
- package/dist/visitors/Visitor.js.map +1 -0
- package/dist/workflow.d.ts +9 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +56 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DateAddContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DateAddEvaluator {
|
|
4
|
+
private dv;
|
|
5
|
+
evaluate(ctx: DateAddContext, visitor: Visitor): Date;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DateAddEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateAddEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/date/DateAddEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAGzF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAA4B;IAEtC,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAqBtD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateAddEvaluator = void 0;
|
|
4
|
+
const DateValueEvaluator_1 = require("./DateValueEvaluator");
|
|
5
|
+
class DateAddEvaluator {
|
|
6
|
+
constructor() {
|
|
7
|
+
Object.defineProperty(this, "dv", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: new DateValueEvaluator_1.DateValueEvaluator()
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
evaluate(ctx, visitor) {
|
|
15
|
+
const base = this.dv.evaluate(ctx.dateValue(), visitor);
|
|
16
|
+
const amount = Number(visitor.visit(ctx.expr()));
|
|
17
|
+
const unitText = (ctx.timeUnit().text || '').toLowerCase();
|
|
18
|
+
const d = new Date(base.getTime());
|
|
19
|
+
switch (unitText) {
|
|
20
|
+
case 'day':
|
|
21
|
+
d.setDate(d.getDate() + amount);
|
|
22
|
+
break;
|
|
23
|
+
case 'hour':
|
|
24
|
+
d.setHours(d.getHours() + amount);
|
|
25
|
+
break;
|
|
26
|
+
case 'minute':
|
|
27
|
+
d.setMinutes(d.getMinutes() + amount);
|
|
28
|
+
break;
|
|
29
|
+
default:
|
|
30
|
+
throw new Error(`Unsupported time unit: ${unitText}`);
|
|
31
|
+
}
|
|
32
|
+
return d;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.DateAddEvaluator = DateAddEvaluator;
|
|
36
|
+
//# sourceMappingURL=DateAddEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateAddEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/date/DateAddEvaluator.ts"],"names":[],"mappings":";;;AAEA,6DAA0D;AAE1D,MAAa,gBAAgB;IAA7B;QACU;;;;mBAAK,IAAI,uCAAkB,EAAE;WAAC;IAuBxC,CAAC;IArBC,QAAQ,CAAC,GAAmB,EAAE,OAAgB;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3D,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,KAAK;gBACR,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,MAAM;gBACT,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,QAAQ;gBACX,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC;gBACtC,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAxBD,4CAwBC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DateDiffContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DateDiffEvaluator {
|
|
4
|
+
private dv;
|
|
5
|
+
evaluate(ctx: DateDiffContext, visitor: Visitor): number;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DateDiffEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateDiffEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/date/DateDiffEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAI1F,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAA4B;IAEtC,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CAczD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateDiffEvaluator = void 0;
|
|
4
|
+
const DateValueEvaluator_1 = require("./DateValueEvaluator");
|
|
5
|
+
class DateDiffEvaluator {
|
|
6
|
+
constructor() {
|
|
7
|
+
Object.defineProperty(this, "dv", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: new DateValueEvaluator_1.DateValueEvaluator()
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
evaluate(ctx, visitor) {
|
|
15
|
+
const left = this.dv.evaluate(ctx.dateValue(0), visitor);
|
|
16
|
+
const right = this.dv.evaluate(ctx.dateValue(1), visitor);
|
|
17
|
+
const ms = Math.abs(right.getTime() - left.getTime());
|
|
18
|
+
if (ctx.MINUTE()) {
|
|
19
|
+
return Math.floor(ms / 60000);
|
|
20
|
+
}
|
|
21
|
+
else if (ctx.HOUR()) {
|
|
22
|
+
return Math.floor(ms / 3600000);
|
|
23
|
+
}
|
|
24
|
+
else if (ctx.DAY()) {
|
|
25
|
+
return Math.floor(ms / 86400000);
|
|
26
|
+
}
|
|
27
|
+
throw new Error(`Interval not supported in ${ctx.text}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.DateDiffEvaluator = DateDiffEvaluator;
|
|
31
|
+
//# sourceMappingURL=DateDiffEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateDiffEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/date/DateDiffEvaluator.ts"],"names":[],"mappings":";;;AAGA,6DAA0D;AAE1D,MAAa,iBAAiB;IAA9B;QACU;;;;mBAAK,IAAI,uCAAkB,EAAE;WAAC;IAgBxC,CAAC;IAdC,QAAQ,CAAC,GAAoB,EAAE,OAAgB;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEtD,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;CACF;AAjBD,8CAiBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DateOperationContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DateOperationEvaluator {
|
|
4
|
+
evaluate(ctx: DateOperationContext, visitor: Visitor): any;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=DateOperationEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateOperationEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/date/DateOperationEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAE/F,qBAAa,sBAAsB;IACjC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,GAAG,GAAG;CAK3D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateOperationEvaluator = void 0;
|
|
4
|
+
class DateOperationEvaluator {
|
|
5
|
+
evaluate(ctx, visitor) {
|
|
6
|
+
const de = ctx.dateExpr?.();
|
|
7
|
+
if (de)
|
|
8
|
+
return visitor.visit(de);
|
|
9
|
+
throw new Error(`Unexpected symbol ${ctx.text}`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.DateOperationEvaluator = DateOperationEvaluator;
|
|
13
|
+
//# sourceMappingURL=DateOperationEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateOperationEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/date/DateOperationEvaluator.ts"],"names":[],"mappings":";;;AAGA,MAAa,sBAAsB;IACjC,QAAQ,CAAC,GAAyB,EAAE,OAAgB;QAClD,MAAM,EAAE,GAAI,GAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrC,IAAI,EAAE;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AAND,wDAMC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DateParseExprContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DateParseExprEvaluator {
|
|
4
|
+
private dv;
|
|
5
|
+
evaluate(ctx: DateParseExprContext, visitor: Visitor): Date;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DateParseExprEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateParseExprEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/date/DateParseExprEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAG/F,qBAAa,sBAAsB;IACjC,OAAO,CAAC,EAAE,CAA4B;IAEtC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CA+B5D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateParseExprEvaluator = void 0;
|
|
4
|
+
const DateValueEvaluator_1 = require("./DateValueEvaluator");
|
|
5
|
+
class DateParseExprEvaluator {
|
|
6
|
+
constructor() {
|
|
7
|
+
Object.defineProperty(this, "dv", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: new DateValueEvaluator_1.DateValueEvaluator()
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
evaluate(ctx, visitor) {
|
|
15
|
+
const dp = ctx.dateParse();
|
|
16
|
+
const isDate = !!dp.K_DATE?.();
|
|
17
|
+
const isDateTime = !!dp.K_DATETIME?.();
|
|
18
|
+
// dateValue can be string, property or NOW
|
|
19
|
+
const dvCtx = dp.dateValue();
|
|
20
|
+
const hasNow = !!dvCtx.K_NOW?.();
|
|
21
|
+
if (isDate) {
|
|
22
|
+
let base;
|
|
23
|
+
if (hasNow) {
|
|
24
|
+
base = new Date();
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
base = this.dv.evaluate(dvCtx, visitor);
|
|
28
|
+
}
|
|
29
|
+
// Truncate to local midnight to emulate LocalDate
|
|
30
|
+
const d = new Date(base.getTime());
|
|
31
|
+
d.setHours(0, 0, 0, 0);
|
|
32
|
+
return d;
|
|
33
|
+
}
|
|
34
|
+
if (isDateTime) {
|
|
35
|
+
if (hasNow) {
|
|
36
|
+
return new Date();
|
|
37
|
+
}
|
|
38
|
+
return this.dv.evaluate(dvCtx, visitor);
|
|
39
|
+
}
|
|
40
|
+
throw new Error(`Date not supported: ${ctx.text}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.DateParseExprEvaluator = DateParseExprEvaluator;
|
|
44
|
+
//# sourceMappingURL=DateParseExprEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateParseExprEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/date/DateParseExprEvaluator.ts"],"names":[],"mappings":";;;AAEA,6DAA0D;AAE1D,MAAa,sBAAsB;IAAnC;QACU;;;;mBAAK,IAAI,uCAAkB,EAAE;WAAC;IAiCxC,CAAC;IA/BC,QAAQ,CAAC,GAAyB,EAAE,OAAgB;QAClD,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAE,EAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,CAAC,CAAE,EAAU,CAAC,UAAU,EAAE,EAAE,CAAC;QAEhD,2CAA2C;QAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,CAAC,CAAE,KAAa,CAAC,KAAK,EAAE,EAAE,CAAC;QAE1C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,IAAU,CAAC;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,kDAAkD;YAClD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,CAAC;YACD,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;CACF;AAlCD,wDAkCC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DateSubtractContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DateSubtractEvaluator {
|
|
4
|
+
private dv;
|
|
5
|
+
evaluate(ctx: DateSubtractContext, visitor: Visitor): Date;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DateSubtractEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateSubtractEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/date/DateSubtractEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AAG9F,qBAAa,qBAAqB;IAChC,OAAO,CAAC,EAAE,CAA4B;IAEtC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAqB3D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateSubtractEvaluator = void 0;
|
|
4
|
+
const DateValueEvaluator_1 = require("./DateValueEvaluator");
|
|
5
|
+
class DateSubtractEvaluator {
|
|
6
|
+
constructor() {
|
|
7
|
+
Object.defineProperty(this, "dv", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: new DateValueEvaluator_1.DateValueEvaluator()
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
evaluate(ctx, visitor) {
|
|
15
|
+
const base = this.dv.evaluate(ctx.dateValue(), visitor);
|
|
16
|
+
const amount = Number(visitor.visit(ctx.expr()));
|
|
17
|
+
const unitText = (ctx.timeUnit().text || '').toLowerCase();
|
|
18
|
+
const d = new Date(base.getTime());
|
|
19
|
+
switch (unitText) {
|
|
20
|
+
case 'day':
|
|
21
|
+
d.setDate(d.getDate() - amount);
|
|
22
|
+
break;
|
|
23
|
+
case 'hour':
|
|
24
|
+
d.setHours(d.getHours() - amount);
|
|
25
|
+
break;
|
|
26
|
+
case 'minute':
|
|
27
|
+
d.setMinutes(d.getMinutes() - amount);
|
|
28
|
+
break;
|
|
29
|
+
default:
|
|
30
|
+
throw new Error(`Unsupported time unit: ${unitText}`);
|
|
31
|
+
}
|
|
32
|
+
return d;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.DateSubtractEvaluator = DateSubtractEvaluator;
|
|
36
|
+
//# sourceMappingURL=DateSubtractEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateSubtractEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/date/DateSubtractEvaluator.ts"],"names":[],"mappings":";;;AAEA,6DAA0D;AAE1D,MAAa,qBAAqB;IAAlC;QACU;;;;mBAAK,IAAI,uCAAkB,EAAE;WAAC;IAuBxC,CAAC;IArBC,QAAQ,CAAC,GAAwB,EAAE,OAAgB;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3D,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,KAAK;gBACR,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,MAAM;gBACT,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,QAAQ;gBACX,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC;gBACtC,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAxBD,sDAwBC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DateValueContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DateValueEvaluator {
|
|
4
|
+
evaluate(ctx: DateValueContext, visitor: Visitor): Date;
|
|
5
|
+
private stripQuotes;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DateValueEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateValueEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/date/DateValueEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAE3F,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAiCvD,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateValueEvaluator = void 0;
|
|
4
|
+
class DateValueEvaluator {
|
|
5
|
+
evaluate(ctx, visitor) {
|
|
6
|
+
// K_NOW()
|
|
7
|
+
const hasNow = ctx.K_NOW?.();
|
|
8
|
+
if (hasNow) {
|
|
9
|
+
return new Date();
|
|
10
|
+
}
|
|
11
|
+
// string_literal
|
|
12
|
+
const strLit = ctx.string_literal?.();
|
|
13
|
+
if (strLit) {
|
|
14
|
+
const raw = strLit.text || '';
|
|
15
|
+
const value = this.stripQuotes(raw);
|
|
16
|
+
const d = new Date(value);
|
|
17
|
+
if (isNaN(d.getTime())) {
|
|
18
|
+
throw new Error(`Invalid date string: ${value}`);
|
|
19
|
+
}
|
|
20
|
+
return d;
|
|
21
|
+
}
|
|
22
|
+
// validProperty
|
|
23
|
+
const vp = ctx.validProperty?.();
|
|
24
|
+
if (vp) {
|
|
25
|
+
const v = visitor.visit(vp);
|
|
26
|
+
const d = new Date(String(v));
|
|
27
|
+
if (isNaN(d.getTime())) {
|
|
28
|
+
throw new Error(`Invalid date from property: ${String(v)}`);
|
|
29
|
+
}
|
|
30
|
+
return d;
|
|
31
|
+
}
|
|
32
|
+
throw new Error(`Date not supported: ${ctx.text}`);
|
|
33
|
+
}
|
|
34
|
+
stripQuotes(s) {
|
|
35
|
+
if (!s)
|
|
36
|
+
return s;
|
|
37
|
+
if ((s.startsWith("'") && s.endsWith("'")) || (s.startsWith('"') && s.endsWith('"'))) {
|
|
38
|
+
return s.substring(1, s.length - 1);
|
|
39
|
+
}
|
|
40
|
+
return s;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.DateValueEvaluator = DateValueEvaluator;
|
|
44
|
+
//# sourceMappingURL=DateValueEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateValueEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/date/DateValueEvaluator.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IAC7B,QAAQ,CAAC,GAAqB,EAAE,OAAgB;QAC9C,UAAU;QACV,MAAM,MAAM,GAAI,GAAW,CAAC,KAAK,EAAE,EAAE,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,gBAAgB;QAChB,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;QACjC,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,WAAW,CAAC,CAAS;QAC3B,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrF,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAzCD,gDAyCC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DayOfWeekContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DayOfWeekEvaluator {
|
|
4
|
+
private dv;
|
|
5
|
+
evaluate(ctx: DayOfWeekContext, visitor: Visitor): string;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DayOfWeekEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayOfWeekEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/date/DayOfWeekEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAK3F,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAA4B;IACtC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CAI1D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DayOfWeekEvaluator = void 0;
|
|
4
|
+
const DateValueEvaluator_1 = require("./DateValueEvaluator");
|
|
5
|
+
const DAY_NAMES = ['SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY'];
|
|
6
|
+
class DayOfWeekEvaluator {
|
|
7
|
+
constructor() {
|
|
8
|
+
Object.defineProperty(this, "dv", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: new DateValueEvaluator_1.DateValueEvaluator()
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
evaluate(ctx, visitor) {
|
|
16
|
+
const d = this.dv.evaluate(ctx.dateValue(), visitor);
|
|
17
|
+
return DAY_NAMES[d.getUTCDay()];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.DayOfWeekEvaluator = DayOfWeekEvaluator;
|
|
21
|
+
//# sourceMappingURL=DayOfWeekEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayOfWeekEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/date/DayOfWeekEvaluator.ts"],"names":[],"mappings":";;;AAEA,6DAA0D;AAE1D,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,UAAU,EAAC,QAAQ,EAAC,UAAU,CAAC,CAAC;AAE3F,MAAa,kBAAkB;IAA/B;QACU;;;;mBAAK,IAAI,uCAAkB,EAAE;WAAC;IAKxC,CAAC;IAJC,QAAQ,CAAC,GAAqB,EAAE,OAAgB;QAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAClC,CAAC;CACF;AAND,gDAMC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { NowContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class NowEvaluator {
|
|
4
|
+
evaluate(_ctx: NowContext, _visitor: Visitor): Date;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=NowEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NowEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/date/NowEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAErF,qBAAa,YAAY;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;CAGpD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NowEvaluator = void 0;
|
|
4
|
+
class NowEvaluator {
|
|
5
|
+
evaluate(_ctx, _visitor) {
|
|
6
|
+
return new Date();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.NowEvaluator = NowEvaluator;
|
|
10
|
+
//# sourceMappingURL=NowEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NowEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/date/NowEvaluator.ts"],"names":[],"mappings":";;;AAGA,MAAa,YAAY;IACvB,QAAQ,CAAC,IAAgB,EAAE,QAAiB;QAC1C,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;CACF;AAJD,oCAIC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DistanceContext as GeoDistanceContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DistanceEvaluator {
|
|
4
|
+
evaluate(ctx: GeoDistanceContext, visitor: Visitor): number;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=DistanceEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistanceEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/geo/DistanceEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAGhH,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CAO5D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DistanceEvaluator = void 0;
|
|
4
|
+
const geohash_1 = require("./geohash");
|
|
5
|
+
class DistanceEvaluator {
|
|
6
|
+
evaluate(ctx, visitor) {
|
|
7
|
+
const lat1 = Number(visitor.visit(ctx.expr(0)));
|
|
8
|
+
const lon1 = Number(visitor.visit(ctx.expr(1)));
|
|
9
|
+
const lat2 = Number(visitor.visit(ctx.expr(2)));
|
|
10
|
+
const lon2 = Number(visitor.visit(ctx.expr(3)));
|
|
11
|
+
return (0, geohash_1.haversineKm)(lat1, lon1, lat2, lon2);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.DistanceEvaluator = DistanceEvaluator;
|
|
15
|
+
//# sourceMappingURL=DistanceEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistanceEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/geo/DistanceEvaluator.ts"],"names":[],"mappings":";;;AAEA,uCAAwC;AAExC,MAAa,iBAAiB;IAC5B,QAAQ,CAAC,GAAuB,EAAE,OAAgB;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,IAAA,qBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AARD,8CAQC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { DistanceGeohashContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class DistanceGeohashEvaluator {
|
|
4
|
+
evaluate(ctx: DistanceGeohashContext, visitor: Visitor): number;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=DistanceGeohashEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistanceGeohashEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/geo/DistanceGeohashEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAGjG,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CAOhE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DistanceGeohashEvaluator = void 0;
|
|
4
|
+
const geohash_1 = require("./geohash");
|
|
5
|
+
class DistanceGeohashEvaluator {
|
|
6
|
+
evaluate(ctx, visitor) {
|
|
7
|
+
const gh1 = String(visitor.visit(ctx.expr(0)));
|
|
8
|
+
const gh2 = String(visitor.visit(ctx.expr(1)));
|
|
9
|
+
const [lat1, lon1] = (0, geohash_1.geohashDecode)(gh1);
|
|
10
|
+
const [lat2, lon2] = (0, geohash_1.geohashDecode)(gh2);
|
|
11
|
+
return (0, geohash_1.haversineKm)(lat1, lon1, lat2, lon2);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.DistanceGeohashEvaluator = DistanceGeohashEvaluator;
|
|
15
|
+
//# sourceMappingURL=DistanceGeohashEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistanceGeohashEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/geo/DistanceGeohashEvaluator.ts"],"names":[],"mappings":";;;AAEA,uCAAuD;AAEvD,MAAa,wBAAwB;IACnC,QAAQ,CAAC,GAA2B,EAAE,OAAgB;QACpD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAC;QACxC,OAAO,IAAA,qBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AARD,4DAQC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { GeoOperationContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class GeoOperationEvaluator {
|
|
4
|
+
evaluate(ctx: GeoOperationContext, visitor: Visitor): any;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=GeoOperationEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoOperationEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/geo/GeoOperationEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AAE9F,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,GAAG;CAI1D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeoOperationEvaluator = void 0;
|
|
4
|
+
class GeoOperationEvaluator {
|
|
5
|
+
evaluate(ctx, visitor) {
|
|
6
|
+
const g = ctx.geoExpr();
|
|
7
|
+
return visitor.visit(g);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.GeoOperationEvaluator = GeoOperationEvaluator;
|
|
11
|
+
//# sourceMappingURL=GeoOperationEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoOperationEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/geo/GeoOperationEvaluator.ts"],"names":[],"mappings":";;;AAGA,MAAa,qBAAqB;IAChC,QAAQ,CAAC,GAAwB,EAAE,OAAgB;QACjD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF;AALD,sDAKC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { GeohashDecodeContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class GeohashDecodeEvaluator {
|
|
4
|
+
evaluate(ctx: GeohashDecodeContext, visitor: Visitor): [number, number];
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=GeohashDecodeEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeohashDecodeEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/geo/GeohashDecodeEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAG/F,qBAAa,sBAAsB;IACjC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAIxE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeohashDecodeEvaluator = void 0;
|
|
4
|
+
const geohash_1 = require("./geohash");
|
|
5
|
+
class GeohashDecodeEvaluator {
|
|
6
|
+
evaluate(ctx, visitor) {
|
|
7
|
+
const geohash = String(visitor.visit(ctx.expr()));
|
|
8
|
+
return (0, geohash_1.geohashDecode)(geohash);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.GeohashDecodeEvaluator = GeohashDecodeEvaluator;
|
|
12
|
+
//# sourceMappingURL=GeohashDecodeEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeohashDecodeEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/geo/GeohashDecodeEvaluator.ts"],"names":[],"mappings":";;;AAEA,uCAA0C;AAE1C,MAAa,sBAAsB;IACjC,QAAQ,CAAC,GAAyB,EAAE,OAAgB;QAClD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AALD,wDAKC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { GeohashEncodeContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class GeohashEncodeEvaluator {
|
|
4
|
+
evaluate(ctx: GeohashEncodeContext, visitor: Visitor): string;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=GeohashEncodeEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeohashEncodeEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/geo/GeohashEncodeEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAG/F,qBAAa,sBAAsB;IACjC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CAO9D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeohashEncodeEvaluator = void 0;
|
|
4
|
+
const geohash_1 = require("./geohash");
|
|
5
|
+
class GeohashEncodeEvaluator {
|
|
6
|
+
evaluate(ctx, visitor) {
|
|
7
|
+
const lat = Number(visitor.visit(ctx.expr(0)));
|
|
8
|
+
const lon = Number(visitor.visit(ctx.expr(1)));
|
|
9
|
+
const hasPrecision = ctx.expr().length > 2;
|
|
10
|
+
const precision = hasPrecision ? Number(visitor.visit(ctx.expr(2))) : 12;
|
|
11
|
+
return (0, geohash_1.geohashEncode)(lat, lon, precision);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.GeohashEncodeEvaluator = GeohashEncodeEvaluator;
|
|
15
|
+
//# sourceMappingURL=GeohashEncodeEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeohashEncodeEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/geo/GeohashEncodeEvaluator.ts"],"names":[],"mappings":";;;AAEA,uCAA0C;AAE1C,MAAa,sBAAsB;IACjC,QAAQ,CAAC,GAAyB,EAAE,OAAgB;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,IAAA,uBAAa,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;CACF;AARD,wDAQC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Visitor } from '../../visitors/Visitor';
|
|
2
|
+
import type { WithinRadiusContext } from '../../generated/src/grammar/RuleFlowLanguageParser';
|
|
3
|
+
export declare class WithinRadiusEvaluator {
|
|
4
|
+
evaluate(ctx: WithinRadiusContext, visitor: Visitor): boolean;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=WithinRadiusEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WithinRadiusEvaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/geo/WithinRadiusEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AAG9F,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;CAS9D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WithinRadiusEvaluator = void 0;
|
|
4
|
+
const geohash_1 = require("./geohash");
|
|
5
|
+
class WithinRadiusEvaluator {
|
|
6
|
+
evaluate(ctx, visitor) {
|
|
7
|
+
const lat1 = Number(visitor.visit(ctx.expr(0)));
|
|
8
|
+
const lon1 = Number(visitor.visit(ctx.expr(1)));
|
|
9
|
+
const lat2 = Number(visitor.visit(ctx.expr(2)));
|
|
10
|
+
const lon2 = Number(visitor.visit(ctx.expr(3)));
|
|
11
|
+
const radius = Number(visitor.visit(ctx.expr(4)));
|
|
12
|
+
const d = (0, geohash_1.haversineKm)(lat1, lon1, lat2, lon2);
|
|
13
|
+
return d <= radius;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.WithinRadiusEvaluator = WithinRadiusEvaluator;
|
|
17
|
+
//# sourceMappingURL=WithinRadiusEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WithinRadiusEvaluator.js","sourceRoot":"","sources":["../../../src/evaluator/geo/WithinRadiusEvaluator.ts"],"names":[],"mappings":";;;AAEA,uCAAwC;AAExC,MAAa,qBAAqB;IAChC,QAAQ,CAAC,GAAwB,EAAE,OAAgB;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,IAAA,qBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,MAAM,CAAC;IACrB,CAAC;CACF;AAVD,sDAUC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function geohashEncode(lat: number, lon: number, precision?: number): string;
|
|
2
|
+
export declare function geohashDecode(hash: string): [number, number];
|
|
3
|
+
export declare function haversineKm(lat1: number, lon1: number, lat2: number, lon2: number): number;
|
|
4
|
+
//# sourceMappingURL=geohash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geohash.d.ts","sourceRoot":"","sources":["../../../src/evaluator/geo/geohash.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,SAAK,GAAG,MAAM,CAsC9E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA0B5D;AAGD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAU1F"}
|