@fincity/kirun-js 2.3.1 → 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.
- package/__tests__/engine/function/system/date/DateToEpochTest.ts +74 -0
- package/__tests__/engine/function/system/date/DifferenceOfTimestampsTest.ts +53 -0
- package/__tests__/engine/function/system/date/EpochToDateTest.ts +105 -0
- package/__tests__/engine/function/system/date/GetCurrentTimeStampTest.ts +35 -0
- package/__tests__/engine/function/system/date/GetDateTest.ts +85 -0
- package/__tests__/engine/function/system/date/GetDayTest.ts +85 -0
- package/__tests__/engine/function/system/date/GetFullYearTest.ts +85 -0
- package/__tests__/engine/function/system/date/GetHoursTest.ts +85 -0
- package/__tests__/engine/function/system/date/GetMilliSecondsTest.ts +85 -0
- package/__tests__/engine/function/system/date/GetMinutesTest.ts +85 -0
- package/__tests__/engine/function/system/date/GetMonthTest.ts +85 -0
- package/__tests__/engine/function/system/date/GetSecondsTest.ts +85 -0
- package/__tests__/engine/function/system/date/GetTimeAsArrayTest.ts +59 -0
- package/__tests__/engine/function/system/date/GetTimeAsObjectTest.ts +83 -0
- package/__tests__/engine/function/system/date/GetTimeTest.ts +86 -0
- package/__tests__/engine/function/system/date/IsLeapYearTest.ts +85 -0
- package/__tests__/engine/function/system/date/IsValidISODateTest.ts +79 -0
- package/__tests__/engine/function/system/date/MaximumTimestampTest.ts +55 -0
- package/__tests__/engine/function/system/date/MinimumTimestampTest.ts +54 -0
- package/__tests__/engine/runtime/expression/ExpressionEvaluationTest.ts +5 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/engine/function/system/array/ArrayFunctionRepository.ts +2 -0
- package/src/engine/function/system/date/AbstractDateFunction.ts +104 -0
- package/src/engine/function/system/date/DateFunctionRepository.ts +56 -0
- package/src/engine/function/system/date/DateToEpoch.ts +39 -0
- package/src/engine/function/system/date/DifferenceOfTimestamps.ts +45 -0
- package/src/engine/function/system/date/EpochToDate.ts +76 -0
- package/src/engine/function/system/date/GetCurrentTimeStamp.ts +36 -0
- package/src/engine/function/system/date/GetTimeAsArray.ts +48 -0
- package/src/engine/function/system/date/GetTimeAsObject.ts +66 -0
- package/src/engine/function/system/date/IsValidISODate.ts +43 -0
- package/src/engine/function/system/date/MaximumTimestamp.ts +73 -0
- package/src/engine/function/system/date/MinimumTimestamp.ts +74 -0
- package/src/engine/namespaces/Namespaces.ts +1 -0
- package/src/engine/repository/KIRunFunctionRepository.ts +4 -0
- package/src/engine/repository/KIRunSchemaRepository.ts +1 -0
- package/src/engine/runtime/expression/ExpressionEvaluator.ts +14 -15
- 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
|
+
});
|
|
@@ -473,3 +473,8 @@ test('index retrieval', () => {
|
|
|
473
473
|
ev = new ExpressionEvaluator('Test.x.c.__index');
|
|
474
474
|
expect(ev.evaluate(MapUtil.of(ttv.getPrefix(), ttv))).toBe('c');
|
|
475
475
|
});
|
|
476
|
+
|
|
477
|
+
test('backslash escape', () => {
|
|
478
|
+
let ev = new ExpressionEvaluator("'\\maza'");
|
|
479
|
+
expect(ev.evaluate(new Map())).toBe('\\maza');
|
|
480
|
+
});
|