sportident.js 1.1.0 → 1.3.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 +1 -1
- package/SiCard/BaseSiCard.js +8 -45
- package/SiCard/BaseSiCard.js.map +1 -1
- package/SiCard/BaseSiCard.test.js +64 -66
- package/SiCard/BaseSiCard.test.js.map +1 -1
- package/SiCard/IRaceResultData.js +1 -2
- package/SiCard/ISiCard.js +1 -2
- package/SiCard/ISiCardExamples.js +1 -2
- package/SiCard/index.js +2 -20
- package/SiCard/index.js.map +1 -1
- package/SiCard/raceResultTools.js +10 -52
- package/SiCard/raceResultTools.js.map +1 -1
- package/SiCard/raceResultTools.test.js +49 -51
- package/SiCard/raceResultTools.test.js.map +1 -1
- package/SiCard/types/FCard.js +4 -41
- package/SiCard/types/FCard.js.map +1 -1
- package/SiCard/types/FCard.test.js +11 -13
- package/SiCard/types/FCard.test.js.map +1 -1
- package/SiCard/types/ModernSiCard.js +25 -67
- package/SiCard/types/ModernSiCard.js.map +1 -1
- package/SiCard/types/ModernSiCard.test.js +69 -104
- package/SiCard/types/ModernSiCard.test.js.map +1 -1
- package/SiCard/types/PCard.js +4 -41
- package/SiCard/types/PCard.js.map +1 -1
- package/SiCard/types/PCard.test.js +11 -13
- package/SiCard/types/PCard.test.js.map +1 -1
- package/SiCard/types/SIAC.js +4 -8
- package/SiCard/types/SIAC.js.map +1 -1
- package/SiCard/types/SIAC.test.js +38 -73
- package/SiCard/types/SIAC.test.js.map +1 -1
- package/SiCard/types/SiCard10.js +4 -8
- package/SiCard/types/SiCard10.js.map +1 -1
- package/SiCard/types/SiCard10.test.js +41 -76
- package/SiCard/types/SiCard10.test.js.map +1 -1
- package/SiCard/types/SiCard11.js +4 -8
- package/SiCard/types/SiCard11.js.map +1 -1
- package/SiCard/types/SiCard11.test.js +38 -73
- package/SiCard/types/SiCard11.test.js.map +1 -1
- package/SiCard/types/SiCard5.js +16 -55
- package/SiCard/types/SiCard5.js.map +1 -1
- package/SiCard/types/SiCard5.test.js +81 -116
- package/SiCard/types/SiCard5.test.js.map +1 -1
- package/SiCard/types/SiCard6.js +17 -56
- package/SiCard/types/SiCard6.js.map +1 -1
- package/SiCard/types/SiCard6.test.js +79 -114
- package/SiCard/types/SiCard6.test.js.map +1 -1
- package/SiCard/types/SiCard8.js +16 -54
- package/SiCard/types/SiCard8.js.map +1 -1
- package/SiCard/types/SiCard8.test.js +69 -104
- package/SiCard/types/SiCard8.test.js.map +1 -1
- package/SiCard/types/SiCard9.js +15 -53
- package/SiCard/types/SiCard9.js.map +1 -1
- package/SiCard/types/SiCard9.test.js +65 -100
- package/SiCard/types/SiCard9.test.js.map +1 -1
- package/SiCard/types/TCard.js +4 -41
- package/SiCard/types/TCard.js.map +1 -1
- package/SiCard/types/TCard.test.js +11 -13
- package/SiCard/types/TCard.test.js.map +1 -1
- package/SiCard/types/index.js +15 -33
- package/SiCard/types/index.js.map +1 -1
- package/SiCard/types/index.test.js +13 -48
- package/SiCard/types/index.test.js.map +1 -1
- package/SiCard/types/modernSiCardExamples.js +21 -58
- package/SiCard/types/modernSiCardExamples.js.map +1 -1
- package/SiCard/types/siCard5Examples.js +6 -43
- package/SiCard/types/siCard5Examples.js.map +1 -1
- package/SiCard/types/siCard6Examples.js +10 -47
- package/SiCard/types/siCard6Examples.js.map +1 -1
- package/SiCard/types/siCard8Examples.js +8 -45
- package/SiCard/types/siCard8Examples.js.map +1 -1
- package/SiCard/types/siCard9Examples.js +8 -45
- package/SiCard/types/siCard9Examples.js.map +1 -1
- package/SiDevice/ISiDevice.js +6 -45
- package/SiDevice/ISiDevice.js.map +1 -1
- package/SiDevice/ISiDeviceDriver.js +3 -41
- package/SiDevice/ISiDeviceDriver.js.map +1 -1
- package/SiDevice/SiDevice.js +20 -57
- package/SiDevice/SiDevice.js.map +1 -1
- package/SiDevice/SiDevice.test.js +103 -138
- package/SiDevice/SiDevice.test.js.map +1 -1
- package/SiDevice/WebSerialSiDeviceDriver.d.ts +8 -7
- package/SiDevice/WebSerialSiDeviceDriver.d.ts.map +1 -1
- package/SiDevice/WebSerialSiDeviceDriver.js +117 -77
- package/SiDevice/WebSerialSiDeviceDriver.js.map +1 -1
- package/SiDevice/WebUsbSiDeviceDriver.d.ts +5 -6
- package/SiDevice/WebUsbSiDeviceDriver.d.ts.map +1 -1
- package/SiDevice/WebUsbSiDeviceDriver.js +36 -89
- package/SiDevice/WebUsbSiDeviceDriver.js.map +1 -1
- package/SiDevice/index.js +1 -5
- package/SiDevice/index.js.map +1 -1
- package/SiDevice/testUtils/index.js +2 -7
- package/SiDevice/testUtils/index.js.map +1 -1
- package/SiDevice/testUtils/testISiDeviceDriver.js +10 -47
- package/SiDevice/testUtils/testISiDeviceDriver.js.map +1 -1
- package/SiDevice/testUtils/testISiDeviceDriverWithAutodetection.js +15 -52
- package/SiDevice/testUtils/testISiDeviceDriverWithAutodetection.js.map +1 -1
- package/SiStation/BaseSiStation.js +18 -55
- package/SiStation/BaseSiStation.js.map +1 -1
- package/SiStation/BaseSiStation.test.js +60 -95
- package/SiStation/BaseSiStation.test.js.map +1 -1
- package/SiStation/CoupledSiStation.js +16 -53
- package/SiStation/CoupledSiStation.js.map +1 -1
- package/SiStation/CoupledSiStation.test.js +27 -62
- package/SiStation/CoupledSiStation.test.js.map +1 -1
- package/SiStation/ISiMainStation.js +4 -43
- package/SiStation/ISiMainStation.js.map +1 -1
- package/SiStation/ISiSendTask.js +2 -5
- package/SiStation/ISiSendTask.js.map +1 -1
- package/SiStation/ISiStation.js +5 -8
- package/SiStation/ISiStation.js.map +1 -1
- package/SiStation/ISiTargetMultiplexer.js +6 -45
- package/SiStation/ISiTargetMultiplexer.js.map +1 -1
- package/SiStation/SiMainStation.js +19 -56
- package/SiStation/SiMainStation.js.map +1 -1
- package/SiStation/SiMainStation.test.js +88 -123
- package/SiStation/SiMainStation.test.js.map +1 -1
- package/SiStation/SiSendTask.js +11 -48
- package/SiStation/SiSendTask.js.map +1 -1
- package/SiStation/SiTargetMultiplexer.js +46 -83
- package/SiStation/SiTargetMultiplexer.js.map +1 -1
- package/SiStation/SiTargetMultiplexer.targeting.test.js +42 -77
- package/SiStation/SiTargetMultiplexer.targeting.test.js.map +1 -1
- package/SiStation/SiTargetMultiplexer.test.js +201 -236
- package/SiStation/SiTargetMultiplexer.test.js.map +1 -1
- package/SiStation/index.js +5 -13
- package/SiStation/index.js.map +1 -1
- package/SiStation/siStationExamples.js +6 -43
- package/SiStation/siStationExamples.js.map +1 -1
- package/constants.js +4 -7
- package/constants.js.map +1 -1
- package/constants.test.js +12 -47
- package/constants.test.js.map +1 -1
- package/fakes/FakeSiCard/BaseFakeSiCard.js +1 -5
- package/fakes/FakeSiCard/BaseFakeSiCard.js.map +1 -1
- package/fakes/FakeSiCard/BaseFakeSiCard.test.js +6 -41
- package/fakes/FakeSiCard/BaseFakeSiCard.test.js.map +1 -1
- package/fakes/FakeSiCard/IFakeSiCard.js +1 -2
- package/fakes/FakeSiCard/index.js +2 -20
- package/fakes/FakeSiCard/index.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeModernSiCard.js +12 -49
- package/fakes/FakeSiCard/types/FakeModernSiCard.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeModernSiCard.test.js +25 -60
- package/fakes/FakeSiCard/types/FakeModernSiCard.test.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSIAC.js +8 -12
- package/fakes/FakeSiCard/types/FakeSIAC.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSiCard10.js +8 -12
- package/fakes/FakeSiCard/types/FakeSiCard10.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSiCard11.js +8 -12
- package/fakes/FakeSiCard/types/FakeSiCard11.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSiCard5.js +12 -49
- package/fakes/FakeSiCard/types/FakeSiCard5.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSiCard5.test.js +20 -55
- package/fakes/FakeSiCard/types/FakeSiCard5.test.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSiCard6.js +12 -49
- package/fakes/FakeSiCard/types/FakeSiCard6.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSiCard6.test.js +25 -60
- package/fakes/FakeSiCard/types/FakeSiCard6.test.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSiCard8.js +7 -11
- package/fakes/FakeSiCard/types/FakeSiCard8.js.map +1 -1
- package/fakes/FakeSiCard/types/FakeSiCard9.js +7 -11
- package/fakes/FakeSiCard/types/FakeSiCard9.js.map +1 -1
- package/fakes/FakeSiCard/types/index.js +7 -17
- package/fakes/FakeSiCard/types/index.js.map +1 -1
- package/fakes/FakeSiDeviceDriver.js +10 -47
- package/fakes/FakeSiDeviceDriver.js.map +1 -1
- package/fakes/FakeSiMainStation.js +29 -66
- package/fakes/FakeSiMainStation.js.map +1 -1
- package/fakes/FakeSiMainStation.test.js +43 -78
- package/fakes/FakeSiMainStation.test.js.map +1 -1
- package/fakes/IFakeSiMainStation.js +2 -39
- package/fakes/IFakeSiMainStation.js.map +1 -1
- package/fakes/index.js +2 -20
- package/fakes/index.js.map +1 -1
- package/index.js +10 -46
- package/index.js.map +1 -1
- package/package.json +3 -2
- package/siProtocol.js +35 -82
- package/siProtocol.js.map +1 -1
- package/siProtocol.test.js +308 -345
- package/siProtocol.test.js.map +1 -1
- package/storage/SiArray.js +4 -8
- package/storage/SiArray.js.map +1 -1
- package/storage/SiArray.test.js +56 -58
- package/storage/SiArray.test.js.map +1 -1
- package/storage/SiBool.js +5 -9
- package/storage/SiBool.js.map +1 -1
- package/storage/SiBool.test.js +63 -65
- package/storage/SiBool.test.js.map +1 -1
- package/storage/SiDataType.js +9 -14
- package/storage/SiDataType.js.map +1 -1
- package/storage/SiDataType.test.js +23 -25
- package/storage/SiDataType.test.js.map +1 -1
- package/storage/SiDict.js +4 -8
- package/storage/SiDict.js.map +1 -1
- package/storage/SiDict.test.js +52 -54
- package/storage/SiDict.test.js.map +1 -1
- package/storage/SiEnum.js +7 -44
- package/storage/SiEnum.js.map +1 -1
- package/storage/SiEnum.test.js +59 -61
- package/storage/SiEnum.test.js.map +1 -1
- package/storage/SiFieldValue.js +4 -8
- package/storage/SiFieldValue.js.map +1 -1
- package/storage/SiFieldValue.test.js +25 -27
- package/storage/SiFieldValue.test.js.map +1 -1
- package/storage/SiInt.js +5 -9
- package/storage/SiInt.js.map +1 -1
- package/storage/SiInt.test.js +63 -65
- package/storage/SiInt.test.js.map +1 -1
- package/storage/SiModified.js +5 -9
- package/storage/SiModified.js.map +1 -1
- package/storage/SiModified.test.js +75 -77
- package/storage/SiModified.test.js.map +1 -1
- package/storage/SiStorage.js +4 -9
- package/storage/SiStorage.js.map +1 -1
- package/storage/SiStorage.test.js +32 -67
- package/storage/SiStorage.test.js.map +1 -1
- package/storage/index.js +11 -28
- package/storage/index.js.map +1 -1
- package/storage/index.test.js +93 -128
- package/storage/index.test.js.map +1 -1
- package/storage/interfaces.js +3 -41
- package/storage/interfaces.js.map +1 -1
- package/storage/siStringEncoding.js +1 -5
- package/storage/siStringEncoding.js.map +1 -1
- package/testUtils.js +16 -28
- package/testUtils.js.map +1 -1
- package/testUtils.test.js +65 -100
- package/testUtils.test.js.map +1 -1
- package/utils/NumberRange.js +2 -6
- package/utils/NumberRange.js.map +1 -1
- package/utils/NumberRange.test.js +54 -56
- package/utils/NumberRange.test.js.map +1 -1
- package/utils/NumberRangeRegistry.js +5 -42
- package/utils/NumberRangeRegistry.js.map +1 -1
- package/utils/NumberRangeRegistry.test.js +35 -37
- package/utils/NumberRangeRegistry.test.js.map +1 -1
- package/utils/bytes.js +11 -22
- package/utils/bytes.js.map +1 -1
- package/utils/bytes.test.js +98 -133
- package/utils/bytes.test.js.map +1 -1
- package/utils/errors.js +4 -11
- package/utils/errors.js.map +1 -1
- package/utils/errors.test.js +16 -51
- package/utils/errors.test.js.map +1 -1
- package/utils/events.js +3 -41
- package/utils/events.js.map +1 -1
- package/utils/events.test.js +21 -56
- package/utils/events.test.js.map +1 -1
- package/utils/general.js +4 -11
- package/utils/general.js.map +1 -1
- package/utils/general.test.js +77 -112
- package/utils/general.test.js.map +1 -1
- package/utils/index.js +8 -24
- package/utils/index.js.map +1 -1
- package/utils/mixins.js +1 -5
- package/utils/mixins.js.map +1 -1
- package/utils/mixins.test.js +13 -48
- package/utils/mixins.test.js.map +1 -1
- package/utils/typed.js +1 -4
- package/utils/typed.js.map +1 -1
- package/SiDevice/INavigatorWebSerial.d.ts +0 -62
- package/SiDevice/INavigatorWebSerial.d.ts.map +0 -1
- package/SiDevice/INavigatorWebSerial.js +0 -3
- package/SiDevice/INavigatorWebSerial.js.map +0 -1
- package/SiDevice/INavigatorWebUsb.d.ts +0 -55
- package/SiDevice/INavigatorWebUsb.d.ts.map +0 -1
- package/SiDevice/INavigatorWebUsb.js +0 -3
- package/SiDevice/INavigatorWebUsb.js.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,9 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const raceResultTools_1 = require("./raceResultTools");
|
|
10
|
+
import { describe, expect, test } from '@jest/globals';
|
|
11
|
+
import { getOrderedRaceResult, getRaceResultFromOrdered, makeStartZeroTime, monotonizeOrderedRaceResult, monotonizeRaceResult, prettyRaceResult } from './raceResultTools';
|
|
14
12
|
const EMPTY_RACE_RESULT = {};
|
|
15
13
|
const EMPTY_ORDERED_RACE_RESULT = {
|
|
16
14
|
orderedTimes: []
|
|
@@ -162,25 +160,25 @@ const WITHOUT_PUNCHES_START_ZEROED_RACE_RESULT = {
|
|
|
162
160
|
startTime: { time: 0 },
|
|
163
161
|
finishTime: { time: 3 }
|
|
164
162
|
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
163
|
+
describe('raceResultTools', () => {
|
|
164
|
+
describe('prettyRaceResult', () => {
|
|
165
|
+
test('works for empty race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
168
166
|
const emptyRaceResult = {};
|
|
169
|
-
|
|
167
|
+
expect(prettyRaceResult(emptyRaceResult)).toEqual('Card Number: ?\nClear: ?\nCheck: ?\nStart: ?\nFinish: ?\n? Punches\nCard Holder:\n?\n');
|
|
170
168
|
}));
|
|
171
|
-
|
|
169
|
+
test('works for race result with zero punches', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
172
170
|
const zeroPunchesRaceResult = {
|
|
173
171
|
punches: []
|
|
174
172
|
};
|
|
175
|
-
|
|
173
|
+
expect(prettyRaceResult(zeroPunchesRaceResult)).toEqual('Card Number: ?\nClear: ?\nCheck: ?\nStart: ?\nFinish: ?\nNo Punches\nCard Holder:\n?\n');
|
|
176
174
|
}));
|
|
177
|
-
|
|
175
|
+
test('works for race result with empty card holder', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
178
176
|
const emptyCardHolderRaceResult = {
|
|
179
177
|
cardHolder: {}
|
|
180
178
|
};
|
|
181
|
-
|
|
179
|
+
expect(prettyRaceResult(emptyCardHolderRaceResult)).toEqual('Card Number: ?\nClear: ?\nCheck: ?\nStart: ?\nFinish: ?\n? Punches\nCard Holder:\nEmpty Card Holder\n');
|
|
182
180
|
}));
|
|
183
|
-
|
|
181
|
+
test('works for complete race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
184
182
|
const completeRaceResult = {
|
|
185
183
|
cardNumber: 123,
|
|
186
184
|
cardHolder: { firstName: 'John' },
|
|
@@ -190,65 +188,65 @@ const WITHOUT_PUNCHES_START_ZEROED_RACE_RESULT = {
|
|
|
190
188
|
finishTime: { time: 5 },
|
|
191
189
|
punches: [{ code: 31, time: { time: 4 } }]
|
|
192
190
|
};
|
|
193
|
-
|
|
191
|
+
expect(prettyRaceResult(completeRaceResult)).toEqual('Card Number: 123\nClear: 1\nCheck: 2\nStart: 3\nFinish: 5\n31: 4\nCard Holder:\nfirstName: John\n');
|
|
194
192
|
}));
|
|
195
193
|
});
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
194
|
+
describe('getOrderedRaceResult', () => {
|
|
195
|
+
test('works for empty race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
196
|
+
expect(getOrderedRaceResult(EMPTY_RACE_RESULT)).toEqual(EMPTY_ORDERED_RACE_RESULT);
|
|
199
197
|
}));
|
|
200
|
-
|
|
201
|
-
|
|
198
|
+
test('works for race result with punches of unknown time', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
199
|
+
expect(getOrderedRaceResult(UNKNOWN_PUNCH_TIME_RACE_RESULT)).toEqual(UNKNOWN_PUNCH_TIME_ORDERED_RACE_RESULT);
|
|
202
200
|
}));
|
|
203
|
-
|
|
204
|
-
|
|
201
|
+
test('works for complete race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
202
|
+
expect(getOrderedRaceResult(COMPLETE_RACE_RESULT)).toEqual(COMPLETE_ORDERED_RACE_RESULT);
|
|
205
203
|
}));
|
|
206
|
-
|
|
207
|
-
|
|
204
|
+
test('works for race result without punches', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
205
|
+
expect(getOrderedRaceResult(WITHOUT_PUNCHES_RACE_RESULT)).toEqual(WITHOUT_PUNCHES_ORDERED_RACE_RESULT);
|
|
208
206
|
}));
|
|
209
|
-
|
|
210
|
-
|
|
207
|
+
test('works for race result without clearTime and startTime', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
208
|
+
expect(getOrderedRaceResult(UNKNOWN_TIMES_RACE_RESULT)).toEqual(UNKNOWN_TIMES_ORDERED_RACE_RESULT);
|
|
211
209
|
}));
|
|
212
210
|
});
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
211
|
+
describe('getRaceResultFromOrdered', () => {
|
|
212
|
+
test('works for empty race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
213
|
+
expect(getRaceResultFromOrdered(EMPTY_ORDERED_RACE_RESULT)).toEqual(EMPTY_RACE_RESULT);
|
|
216
214
|
}));
|
|
217
|
-
|
|
218
|
-
|
|
215
|
+
test('works for race result with punches of unknown time', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
216
|
+
expect(getRaceResultFromOrdered(UNKNOWN_PUNCH_TIME_ORDERED_RACE_RESULT)).toEqual(UNKNOWN_PUNCH_TIME_RACE_RESULT);
|
|
219
217
|
}));
|
|
220
|
-
|
|
221
|
-
|
|
218
|
+
test('works for complete race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
219
|
+
expect(getRaceResultFromOrdered(COMPLETE_ORDERED_RACE_RESULT)).toEqual(COMPLETE_RACE_RESULT);
|
|
222
220
|
}));
|
|
223
|
-
|
|
224
|
-
|
|
221
|
+
test('works for race result without punches', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
222
|
+
expect(getRaceResultFromOrdered(WITHOUT_PUNCHES_ORDERED_RACE_RESULT)).toEqual(WITHOUT_PUNCHES_RACE_RESULT);
|
|
225
223
|
}));
|
|
226
|
-
|
|
227
|
-
|
|
224
|
+
test('works for race result without clearTime and punch[0]', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
225
|
+
expect(getRaceResultFromOrdered(UNKNOWN_TIMES_ORDERED_RACE_RESULT)).toEqual(UNKNOWN_TIMES_RACE_RESULT);
|
|
228
226
|
}));
|
|
229
227
|
});
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
228
|
+
describe('monotonizeOrderedRaceResult', () => {
|
|
229
|
+
test('works for ordered race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
230
|
+
expect(monotonizeOrderedRaceResult(IMMONOTONE_ORDERED_RACE_RESULT)).toEqual(MONOTONE_ORDERED_RACE_RESULT);
|
|
233
231
|
}));
|
|
234
232
|
});
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
233
|
+
describe('monotonizeRaceResult', () => {
|
|
234
|
+
test('works for race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
235
|
+
expect(monotonizeRaceResult(IMMONOTONE_RACE_RESULT)).toEqual(MONOTONE_RACE_RESULT);
|
|
238
236
|
}));
|
|
239
237
|
});
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
238
|
+
describe('makeStartZeroTime', () => {
|
|
239
|
+
test('works for complete race result', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
240
|
+
expect(makeStartZeroTime(COMPLETE_RACE_RESULT)).toEqual(COMPLETE_START_ZEROED_RACE_RESULT);
|
|
243
241
|
}));
|
|
244
|
-
|
|
245
|
-
|
|
242
|
+
test('works for race result with unknown times', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
243
|
+
expect(makeStartZeroTime(UNKNOWN_TIMES_RACE_RESULT)).toEqual(UNKNOWN_TIMES_START_ZEROED_RACE_RESULT);
|
|
246
244
|
}));
|
|
247
|
-
|
|
248
|
-
|
|
245
|
+
test('works for race result without punches', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
246
|
+
expect(makeStartZeroTime(WITHOUT_PUNCHES_RACE_RESULT)).toEqual(WITHOUT_PUNCHES_START_ZEROED_RACE_RESULT);
|
|
249
247
|
}));
|
|
250
|
-
|
|
251
|
-
|
|
248
|
+
test('fails for race result without start time', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
249
|
+
expect(() => makeStartZeroTime(EMPTY_RACE_RESULT)).toThrow();
|
|
252
250
|
}));
|
|
253
251
|
});
|
|
254
252
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raceResultTools.test.js","sourceRoot":"","sources":["../../src/SiCard/raceResultTools.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"raceResultTools.test.js","sourceRoot":"","sources":["../../src/SiCard/raceResultTools.test.ts"],"names":[],"mappings":"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"}
|
package/SiCard/types/FCard.js
CHANGED
|
@@ -1,42 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.FCard = void 0;
|
|
37
|
-
const utils = __importStar(require("../../utils"));
|
|
38
|
-
const BaseSiCard_1 = require("../BaseSiCard");
|
|
39
|
-
class FCard extends BaseSiCard_1.BaseSiCard {
|
|
1
|
+
import * as utils from '../../utils';
|
|
2
|
+
import { BaseSiCard } from '../BaseSiCard';
|
|
3
|
+
export class FCard extends BaseSiCard {
|
|
40
4
|
static typeSpecificInstanceFromMessage(_message) {
|
|
41
5
|
return undefined;
|
|
42
6
|
}
|
|
@@ -44,6 +8,5 @@ class FCard extends BaseSiCard_1.BaseSiCard {
|
|
|
44
8
|
return Promise.reject(new utils.NotImplementedError());
|
|
45
9
|
}
|
|
46
10
|
}
|
|
47
|
-
|
|
48
|
-
BaseSiCard_1.BaseSiCard.registerNumberRange(14000000, 15000000, FCard);
|
|
11
|
+
BaseSiCard.registerNumberRange(14000000, 15000000, FCard);
|
|
49
12
|
//# sourceMappingURL=FCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FCard.js","sourceRoot":"","sources":["../../../src/SiCard/types/FCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FCard.js","sourceRoot":"","sources":["../../../src/SiCard/types/FCard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,KAAM,SAAQ,UAAU;IACpC,MAAM,CAAC,+BAA+B,CAAC,QAA8B;QACpE,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,gBAAgB;QACf,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACxD,CAAC;CACD;AACD,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
(0, globals_1.expect)(BaseSiCard_1.BaseSiCard.getTypeByCardNumber(14999999)).toEqual(FCard_1.FCard);
|
|
11
|
-
(0, globals_1.expect)(BaseSiCard_1.BaseSiCard.getTypeByCardNumber(15000000)).not.toEqual(FCard_1.FCard);
|
|
1
|
+
import { describe, expect, test } from '@jest/globals';
|
|
2
|
+
import { BaseSiCard } from '../BaseSiCard';
|
|
3
|
+
import { FCard } from './FCard';
|
|
4
|
+
describe('FCard', () => {
|
|
5
|
+
test('is registered', () => {
|
|
6
|
+
expect(BaseSiCard.getTypeByCardNumber(13999999)).not.toEqual(FCard);
|
|
7
|
+
expect(BaseSiCard.getTypeByCardNumber(14000000)).toEqual(FCard);
|
|
8
|
+
expect(BaseSiCard.getTypeByCardNumber(14999999)).toEqual(FCard);
|
|
9
|
+
expect(BaseSiCard.getTypeByCardNumber(15000000)).not.toEqual(FCard);
|
|
12
10
|
});
|
|
13
|
-
|
|
14
|
-
const fCard = new
|
|
11
|
+
test('is not implemented', (done) => {
|
|
12
|
+
const fCard = new FCard(14000000);
|
|
15
13
|
fCard.read().then(() => done(new Error('expect reject')), () => done());
|
|
16
14
|
});
|
|
17
15
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FCard.test.js","sourceRoot":"","sources":["../../../src/SiCard/types/FCard.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FCard.test.js","sourceRoot":"","sources":["../../../src/SiCard/types/FCard.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAChB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,EACtC,GAAG,EAAE,CAAC,IAAI,EAAE,CACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,50 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.ModernSiCard = exports.modernSiCardStorageDefinition = exports.modernSiCardStorageLocations = exports.parseCardHolder = exports.parseCardHolderString = exports.getCroppedString = exports.cropPunches = exports.getPunchOffset = exports.ModernSiCardSeries = void 0;
|
|
37
|
-
const constants_1 = require("../../constants");
|
|
38
|
-
const storage = __importStar(require("../../storage"));
|
|
39
|
-
const utils = __importStar(require("../../utils"));
|
|
40
|
-
const siProtocol = __importStar(require("../../siProtocol"));
|
|
41
|
-
const BaseSiCard_1 = require("../BaseSiCard");
|
|
1
|
+
import { proto } from '../../constants';
|
|
2
|
+
import * as storage from '../../storage';
|
|
3
|
+
import * as utils from '../../utils';
|
|
4
|
+
import * as siProtocol from '../../siProtocol';
|
|
5
|
+
import { BaseSiCard } from '../BaseSiCard';
|
|
42
6
|
class ReadFinishedException {
|
|
43
7
|
}
|
|
44
8
|
const punchesPerPage = 32;
|
|
45
9
|
const bytesPerPage = 128;
|
|
46
10
|
const MAX_NUM_PUNCHES = 128;
|
|
47
|
-
|
|
11
|
+
export const ModernSiCardSeries = {
|
|
48
12
|
SiCard8: 0x02,
|
|
49
13
|
SiCard9: 0x01,
|
|
50
14
|
SiCard10: 0x0f,
|
|
@@ -55,23 +19,20 @@ exports.ModernSiCardSeries = {
|
|
|
55
19
|
// SIAC: ?,
|
|
56
20
|
// FCard: ?,
|
|
57
21
|
};
|
|
58
|
-
const getPunchOffset = (i) => bytesPerPage * 4 + i * 4;
|
|
59
|
-
|
|
60
|
-
const cropPunches = (allPunches) => {
|
|
22
|
+
export const getPunchOffset = (i) => bytesPerPage * 4 + i * 4;
|
|
23
|
+
export const cropPunches = (allPunches) => {
|
|
61
24
|
const isPunchEntryValid = (punch) => punch !== undefined && punch.code !== undefined && punch.time !== undefined && punch.time !== null;
|
|
62
25
|
const firstInvalidIndex = allPunches.findIndex((punch) => !isPunchEntryValid(punch));
|
|
63
26
|
const punchesUntilInvalid = firstInvalidIndex === -1 ? allPunches : allPunches.slice(0, firstInvalidIndex);
|
|
64
27
|
return punchesUntilInvalid.filter(isPunchEntryValid);
|
|
65
28
|
};
|
|
66
|
-
|
|
67
|
-
const getCroppedString = (charCodes) => {
|
|
29
|
+
export const getCroppedString = (charCodes) => {
|
|
68
30
|
const isCharacterInvalid = (charCode) => charCode === undefined || charCode === 0xee;
|
|
69
31
|
const firstInvalidIndex = charCodes.findIndex(isCharacterInvalid);
|
|
70
32
|
const croppedCharCodes = (firstInvalidIndex === -1 ? charCodes : charCodes.slice(0, firstInvalidIndex));
|
|
71
33
|
return croppedCharCodes.map((charCode) => storage.siStringToUtf8(charCode)).join('');
|
|
72
34
|
};
|
|
73
|
-
|
|
74
|
-
const parseCardHolderString = (semicolonSeparatedString) => {
|
|
35
|
+
export const parseCardHolderString = (semicolonSeparatedString) => {
|
|
75
36
|
const informationComponents = semicolonSeparatedString.split(';');
|
|
76
37
|
return {
|
|
77
38
|
firstName: informationComponents.length > 1 ? informationComponents[0] : undefined,
|
|
@@ -88,15 +49,13 @@ const parseCardHolderString = (semicolonSeparatedString) => {
|
|
|
88
49
|
isComplete: informationComponents.length > 11
|
|
89
50
|
};
|
|
90
51
|
};
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
return (0, exports.parseCardHolderString)(semicolonSeparatedString || '');
|
|
52
|
+
export const parseCardHolder = (maybeCharCodes) => {
|
|
53
|
+
const semicolonSeparatedString = getCroppedString(maybeCharCodes);
|
|
54
|
+
return parseCardHolderString(semicolonSeparatedString || '');
|
|
95
55
|
};
|
|
96
|
-
|
|
97
|
-
exports.modernSiCardStorageLocations = {
|
|
56
|
+
export const modernSiCardStorageLocations = {
|
|
98
57
|
uid: new storage.SiInt([[0x03], [0x02], [0x01], [0x00]]),
|
|
99
|
-
cardSeries: new storage.SiEnum([[0x18]],
|
|
58
|
+
cardSeries: new storage.SiEnum([[0x18]], ModernSiCardSeries),
|
|
100
59
|
cardNumber: new storage.SiModified(new storage.SiArray(3, (i) => new storage.SiInt([[0x19 + (2 - i)]])), (extractedValue) => siProtocol.arr2cardNumber(extractedValue)
|
|
101
60
|
// (cardNumber) => siProtocol.cardNumber2arr(cardNumber),
|
|
102
61
|
// (cardNumber) => `${cardNumber}`,
|
|
@@ -108,18 +67,18 @@ exports.modernSiCardStorageLocations = {
|
|
|
108
67
|
checkTime: new siProtocol.SiTime([[0x0b], [0x0a], [0x08]]),
|
|
109
68
|
punchCount: new storage.SiInt([[0x16]]),
|
|
110
69
|
punches: new storage.SiModified(new storage.SiArray(MAX_NUM_PUNCHES, (i) => new storage.SiDict({
|
|
111
|
-
code: new storage.SiInt([[
|
|
112
|
-
time: new siProtocol.SiTime([[
|
|
113
|
-
})), (allPunches) =>
|
|
114
|
-
cardHolder: new storage.SiModified(new storage.SiArray(0x80, (i) => new storage.SiInt([[0x20 + i]])), (charCodes) =>
|
|
70
|
+
code: new storage.SiInt([[getPunchOffset(i) + 1]]),
|
|
71
|
+
time: new siProtocol.SiTime([[getPunchOffset(i) + 3], [getPunchOffset(i) + 2], [getPunchOffset(i) + 0]])
|
|
72
|
+
})), (allPunches) => cropPunches(allPunches)),
|
|
73
|
+
cardHolder: new storage.SiModified(new storage.SiArray(0x80, (i) => new storage.SiInt([[0x20 + i]])), (charCodes) => parseCardHolder(charCodes))
|
|
115
74
|
};
|
|
116
|
-
|
|
117
|
-
class ModernSiCard extends
|
|
75
|
+
export const modernSiCardStorageDefinition = storage.defineStorage(0x400, modernSiCardStorageLocations);
|
|
76
|
+
export class ModernSiCard extends BaseSiCard {
|
|
118
77
|
static parseModernSiCardDetectionMessage(message) {
|
|
119
78
|
if (message.mode !== undefined) {
|
|
120
79
|
return undefined;
|
|
121
80
|
}
|
|
122
|
-
if (message.command !==
|
|
81
|
+
if (message.command !== proto.cmd.SI8_DET) {
|
|
123
82
|
return undefined;
|
|
124
83
|
}
|
|
125
84
|
if (message.parameters.length < 6) {
|
|
@@ -131,7 +90,7 @@ class ModernSiCard extends BaseSiCard_1.BaseSiCard {
|
|
|
131
90
|
throw new Error('card number cannot be undefined');
|
|
132
91
|
}
|
|
133
92
|
const cardSeries = message.parameters[2];
|
|
134
|
-
const lookup = utils.getLookup(
|
|
93
|
+
const lookup = utils.getLookup(ModernSiCardSeries);
|
|
135
94
|
return {
|
|
136
95
|
cardNumber: cardNumber,
|
|
137
96
|
cardSeries: lookup[cardSeries]
|
|
@@ -139,7 +98,7 @@ class ModernSiCard extends BaseSiCard_1.BaseSiCard {
|
|
|
139
98
|
}
|
|
140
99
|
constructor(cardNumber) {
|
|
141
100
|
super(cardNumber);
|
|
142
|
-
this.storage =
|
|
101
|
+
this.storage = modernSiCardStorageDefinition();
|
|
143
102
|
}
|
|
144
103
|
typeSpecificGetPage(pageNumber) {
|
|
145
104
|
if (!this.mainStation) {
|
|
@@ -147,7 +106,7 @@ class ModernSiCard extends BaseSiCard_1.BaseSiCard {
|
|
|
147
106
|
}
|
|
148
107
|
return this.mainStation
|
|
149
108
|
.sendMessage({
|
|
150
|
-
command:
|
|
109
|
+
command: proto.cmd.GET_SI8,
|
|
151
110
|
parameters: [pageNumber]
|
|
152
111
|
}, 1)
|
|
153
112
|
.then((data) => {
|
|
@@ -233,6 +192,5 @@ class ModernSiCard extends BaseSiCard_1.BaseSiCard {
|
|
|
233
192
|
});
|
|
234
193
|
}
|
|
235
194
|
}
|
|
236
|
-
exports.ModernSiCard = ModernSiCard;
|
|
237
195
|
ModernSiCard.maxNumPunches = MAX_NUM_PUNCHES;
|
|
238
196
|
//# sourceMappingURL=ModernSiCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModernSiCard.js","sourceRoot":"","sources":["../../../src/SiCard/types/ModernSiCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModernSiCard.js","sourceRoot":"","sources":["../../../src/SiCard/types/ModernSiCard.ts"],"names":[],"mappings":"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"}
|