@fincity/kirun-js 2.3.0 → 2.3.2

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 (45) hide show
  1. package/__tests__/engine/function/system/date/DateToEpochTest.ts +74 -0
  2. package/__tests__/engine/function/system/date/DifferenceOfTimestampsTest.ts +53 -0
  3. package/__tests__/engine/function/system/date/EpochToDateTest.ts +105 -0
  4. package/__tests__/engine/function/system/date/GetCurrentTimeStampTest.ts +35 -0
  5. package/__tests__/engine/function/system/date/GetDateTest.ts +85 -0
  6. package/__tests__/engine/function/system/date/GetDayTest.ts +85 -0
  7. package/__tests__/engine/function/system/date/GetFullYearTest.ts +85 -0
  8. package/__tests__/engine/function/system/date/GetHoursTest.ts +85 -0
  9. package/__tests__/engine/function/system/date/GetMilliSecondsTest.ts +85 -0
  10. package/__tests__/engine/function/system/date/GetMinutesTest.ts +85 -0
  11. package/__tests__/engine/function/system/date/GetMonthTest.ts +85 -0
  12. package/__tests__/engine/function/system/date/GetSecondsTest.ts +85 -0
  13. package/__tests__/engine/function/system/date/GetTimeAsArrayTest.ts +59 -0
  14. package/__tests__/engine/function/system/date/GetTimeAsObjectTest.ts +83 -0
  15. package/__tests__/engine/function/system/date/GetTimeTest.ts +86 -0
  16. package/__tests__/engine/function/system/date/IsLeapYearTest.ts +85 -0
  17. package/__tests__/engine/function/system/date/IsValidISODateTest.ts +79 -0
  18. package/__tests__/engine/function/system/date/MaximumTimestampTest.ts +55 -0
  19. package/__tests__/engine/function/system/date/MinimumTimestampTest.ts +54 -0
  20. package/__tests__/engine/runtime/expression/ExpressionEvaluationTest.ts +8 -0
  21. package/dist/index.js +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/module.js +1 -1
  24. package/dist/module.js.map +1 -1
  25. package/dist/types.d.ts +1 -0
  26. package/dist/types.d.ts.map +1 -1
  27. package/package.json +1 -1
  28. package/src/engine/function/system/array/ArrayFunctionRepository.ts +2 -0
  29. package/src/engine/function/system/date/AbstractDateFunction.ts +104 -0
  30. package/src/engine/function/system/date/DateFunctionRepository.ts +56 -0
  31. package/src/engine/function/system/date/DateToEpoch.ts +39 -0
  32. package/src/engine/function/system/date/DifferenceOfTimestamps.ts +45 -0
  33. package/src/engine/function/system/date/EpochToDate.ts +76 -0
  34. package/src/engine/function/system/date/GetCurrentTimeStamp.ts +36 -0
  35. package/src/engine/function/system/date/GetTimeAsArray.ts +48 -0
  36. package/src/engine/function/system/date/GetTimeAsObject.ts +66 -0
  37. package/src/engine/function/system/date/IsValidISODate.ts +43 -0
  38. package/src/engine/function/system/date/MaximumTimestamp.ts +73 -0
  39. package/src/engine/function/system/date/MinimumTimestamp.ts +74 -0
  40. package/src/engine/namespaces/Namespaces.ts +1 -0
  41. package/src/engine/repository/KIRunFunctionRepository.ts +4 -0
  42. package/src/engine/repository/KIRunSchemaRepository.ts +1 -0
  43. package/src/engine/runtime/expression/ExpressionEvaluator.ts +14 -15
  44. package/src/engine/runtime/expression/tokenextractor/TokenValueExtractor.ts +1 -1
  45. package/src/engine/util/ValidDateTimeUtil.ts +119 -0
@@ -0,0 +1,79 @@
1
+ import { FunctionExecutionParameters, KIRunFunctionRepository, KIRunSchemaRepository } from "../../../../../src";
2
+ import { IsValidISODate } from "../../../../../src/engine/function/system/date/IsValidISODate";
3
+
4
+
5
+ const validIso: IsValidISODate = new IsValidISODate();
6
+
7
+ describe('checking the validity for not string types ',() => {
8
+
9
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters(
10
+ new KIRunFunctionRepository(),
11
+ new KIRunSchemaRepository(),
12
+ );
13
+
14
+ test('number test' , async () => {
15
+
16
+ fep.setArguments(new Map([['isoDate',1234]]))
17
+ await expect( validIso.execute(fep)).rejects.toThrow();
18
+
19
+ });
20
+
21
+ test('boolean test' , async () => {
22
+
23
+ fep.setArguments(new Map([['isoDate',true]]))
24
+ await expect(validIso.execute(fep)).rejects.toThrow();
25
+
26
+ })
27
+ })
28
+
29
+ describe('checking validity for string date types' , () => {
30
+
31
+ test('Date1', async () => {
32
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters(
33
+ new KIRunFunctionRepository(),
34
+ new KIRunSchemaRepository(),
35
+ ).setArguments(new Map([['isoDate', "aws"]]));
36
+
37
+ expect((await validIso.execute(fep)).allResults()[0].getResult().get('output')).toBeFalsy();
38
+ });
39
+ });
40
+
41
+ describe('checking validity', () => {
42
+
43
+ test('Date1', async () => {
44
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters(
45
+ new KIRunFunctionRepository(),
46
+ new KIRunSchemaRepository(),
47
+ ).setArguments(new Map([['isoDate', "2023-10-04T11:45:38.939ss"]]));
48
+
49
+ expect((await validIso.execute(fep)).allResults()[0].getResult().get('output')).toBeFalsy();
50
+ });
51
+
52
+ test('Date2', async () => {
53
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters(
54
+ new KIRunFunctionRepository(),
55
+ new KIRunSchemaRepository(),
56
+ ).setArguments(new Map([['isoDate', "2023-10-04T11:45:38.939Z"]]));
57
+
58
+ expect((await validIso.execute(fep)).allResults()[0].getResult().get('output')).toBeTruthy();
59
+ });
60
+
61
+ test('Date3', async () => {
62
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters(
63
+ new KIRunFunctionRepository(),
64
+ new KIRunSchemaRepository(),
65
+ ).setArguments(new Map([['isoDate', "2023-10-10T10:02:54.959Z"]]));
66
+
67
+ expect((await validIso.execute(fep)).allResults()[0].getResult().get('output')).toBeTruthy();
68
+ });
69
+
70
+ test('Date4', async () => {
71
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters(
72
+ new KIRunFunctionRepository(),
73
+ new KIRunSchemaRepository(),
74
+ ).setArguments(new Map([['isoDate', "2023-10-10T10:02:54.959-12:12"]]));
75
+
76
+ expect((await validIso.execute(fep)).allResults()[0].getResult().get('output')).toBeTruthy();
77
+ });
78
+
79
+ })
@@ -0,0 +1,55 @@
1
+ import { FunctionExecutionParameters, KIRunFunctionRepository, KIRunSchemaRepository } from "../../../../../src";
2
+ import { MaximumTimestamp } from "../../../../../src/engine/function/system/date/MaximumTimestamp";
3
+
4
+
5
+ const mt : MaximumTimestamp = new MaximumTimestamp();
6
+
7
+ let fep : FunctionExecutionParameters = new FunctionExecutionParameters(
8
+ new KIRunFunctionRepository(),
9
+ new KIRunSchemaRepository(),
10
+ );
11
+
12
+ describe('MaximumTimestamp valid', () => {
13
+
14
+ test('test1', async () => {
15
+
16
+ const arr = ["2023-10-25T13:30:04.970+07:00","2023-10-25T12:30:04.970-1:00","2023-10-25T19:30:04.970Z"];
17
+ fep.setArguments(new Map([['isoDates', arr]]));
18
+
19
+ await expect(mt.execute(fep)).rejects.toThrow();
20
+ });
21
+
22
+ test('test2', async () => {
23
+
24
+ const arr = ["2023-10-25T13:30:04.970Z", "2023-10-25T12:30:04.970Z","2023-10-25T19:30:04.970Z"];
25
+ fep.setArguments(new Map([['isoDates', arr]]));
26
+
27
+ expect((await mt.execute(fep)).allResults()[0].getResult().get("result")).toBe("2023-10-25T19:30:04.970Z");
28
+ });
29
+
30
+ test('test3', async () => {
31
+
32
+ const arr = ["2023-10-25T12:30:04.970Z"];
33
+ fep.setArguments(new Map([['isoDates', arr]]));
34
+
35
+ expect((await mt.execute(fep)).allResults()[0].getResult().get("result")).toBe("2023-10-25T12:30:04.970Z");
36
+ });
37
+
38
+ test('test4', async () => {
39
+
40
+ const arr = ["2023-10-25T13:30:04.970+07:00","2023-10-25T12:30:04.970-11:00","2023-10-25T19:30:04.970Z","2023-10-25T13:30:04.970+09:00","2023-10-25T19:30:04.970+01:30"];
41
+ fep.setArguments(new Map([['isoDates', arr]]));
42
+
43
+ expect((await mt.execute(fep)).allResults()[0].getResult().get("result")).toBe("2023-10-25T12:30:04.970-11:00");
44
+ });
45
+
46
+ test('test5', async () => {
47
+
48
+ const arr = ["2023-10-25T13:30:04.100+01:00","2023-10-25T13:30:04.101+02:00","2023-10-25T13:30:04.102+03:00","2023-10-25T13:30:04.103+04:00","2023-10-25T13:30:04.104+05:00"];
49
+ fep.setArguments(new Map([['isoDates', arr]]));
50
+
51
+ expect((await mt.execute(fep)).allResults()[0].getResult().get("result")).toBe("2023-10-25T13:30:04.100+01:00");
52
+ });
53
+
54
+ });
55
+
@@ -0,0 +1,54 @@
1
+ import { FunctionExecutionParameters, KIRunFunctionRepository, KIRunSchemaRepository } from "../../../../../src";
2
+ import { MinimumTimestamp } from "../../../../../src/engine/function/system/date/MinimumTimestamp";
3
+
4
+
5
+ const mt: MinimumTimestamp = new MinimumTimestamp();
6
+
7
+ let fep : FunctionExecutionParameters = new FunctionExecutionParameters(
8
+ new KIRunFunctionRepository(),
9
+ new KIRunSchemaRepository(),
10
+ );
11
+
12
+ describe('MinimumTimestamp valid', () => {
13
+
14
+ test('test1', async () => {
15
+
16
+ const arr = ["2023-10-25T13:30:04.970Z","2023-10-25T12:30:04.970Z","2023-10-25T19:30:04.970Z"];
17
+ fep.setArguments(new Map([['isoDates', arr]]));
18
+
19
+ expect((await mt.execute(fep)).allResults()[0].getResult().get("result")).toBe("2023-10-25T12:30:04.970Z");
20
+ });
21
+
22
+ test('test2', async () => {
23
+
24
+ const arr = ["2023-10-25T12:30:04.970Z"];
25
+ fep.setArguments(new Map([['isoDates', arr]]));
26
+
27
+ expect((await mt.execute(fep)).allResults()[0].getResult().get("result")).toBe("2023-10-25T12:30:04.970Z");
28
+ });
29
+
30
+ test('test3', async () => {
31
+
32
+ const arr = ["2023-10-25T13:30:04.970+07:00","2023-10-25T12:30:04.970-1:00","2023-10-25T19:30:04.970Z"];
33
+ fep.setArguments(new Map([['isoDates', arr]]));
34
+
35
+ await expect(mt.execute(fep)).rejects.toThrow();
36
+ });
37
+
38
+ test('test4', async () => {
39
+
40
+ const arr = ["2023-10-25T13:30:04.970+07:00","2023-10-25T12:30:04.970-11:00","2023-10-25T19:30:04.970Z","2023-10-25T13:30:04.970+09:00","2023-10-25T19:30:04.970+01:30"];
41
+ fep.setArguments(new Map([['isoDates', arr]]));
42
+
43
+ expect((await mt.execute(fep)).allResults()[0].getResult().get("result")).toBe("2023-10-25T13:30:04.970+09:00");
44
+ });
45
+
46
+ test('test5', async () => {
47
+
48
+ const arr = ["2023-10-25T02:30:04.970Z","2023-10-25T03:30:04.970Z","2023-10-25T04:30:04.970Z","2023-10-25T05:30:04.970Z","2023-10-25T06:30:04.970Z","2023-10-25T07:30:04.970Z","2023-10-25T08:30:04.970Z","2023-10-25T09:30:04.970Z","2023-10-25T10:30:04.970Z","2023-10-25T11:30:04.970Z","2023-10-25T12:30:04.970Z","2023-10-25T13:30:04.970Z","2023-10-25T14:30:04.970Z","2023-10-25T15:30:04.970Z","2023-10-25T16:30:04.970Z","2023-10-25T17:30:04.970Z","2023-10-25T18:30:04.970Z","2023-10-25T19:30:04.970Z","2023-10-25T01:30:04.970Z"];
49
+ fep.setArguments(new Map([['isoDates', arr]]));
50
+
51
+ expect((await mt.execute(fep)).allResults()[0].getResult().get("result")).toBe("2023-10-25T01:30:04.970Z");
52
+ });
53
+
54
+ });
@@ -469,4 +469,12 @@ test('index retrieval', () => {
469
469
 
470
470
  ev = new ExpressionEvaluator('Test.c.b[1].__index');
471
471
  expect(ev.evaluate(MapUtil.of(ttv.getPrefix(), ttv))).toBe(1);
472
+
473
+ ev = new ExpressionEvaluator('Test.x.c.__index');
474
+ expect(ev.evaluate(MapUtil.of(ttv.getPrefix(), ttv))).toBe('c');
475
+ });
476
+
477
+ test('backslash escape', () => {
478
+ let ev = new ExpressionEvaluator("'\\maza'");
479
+ expect(ev.evaluate(new Map())).toBe('\\maza');
472
480
  });