sportident.js 1.0.0 → 1.0.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/README.md +20 -24
- package/SiCard/BaseSiCard.d.ts +35 -0
- package/SiCard/BaseSiCard.d.ts.map +1 -0
- package/SiCard/BaseSiCard.js +99 -0
- package/SiCard/BaseSiCard.js.map +1 -0
- package/SiCard/BaseSiCard.test.d.ts +2 -0
- package/SiCard/BaseSiCard.test.d.ts.map +1 -0
- package/SiCard/BaseSiCard.test.js +190 -0
- package/SiCard/BaseSiCard.test.js.map +1 -0
- package/SiCard/IRaceResultData.d.ts +17 -0
- package/SiCard/IRaceResultData.d.ts.map +1 -0
- package/SiCard/IRaceResultData.js +3 -0
- package/SiCard/IRaceResultData.js.map +1 -0
- package/SiCard/ISiCard.d.ts +24 -0
- package/SiCard/ISiCard.d.ts.map +1 -0
- package/SiCard/ISiCard.js +3 -0
- package/SiCard/ISiCard.js.map +1 -0
- package/SiCard/ISiCardExamples.d.ts +9 -0
- package/SiCard/ISiCardExamples.d.ts.map +1 -0
- package/SiCard/ISiCardExamples.js +3 -0
- package/SiCard/ISiCardExamples.js.map +1 -0
- package/{src/SiCard/index.ts → SiCard/index.d.ts} +1 -0
- package/SiCard/index.d.ts.map +1 -0
- package/SiCard/index.js +21 -0
- package/SiCard/index.js.map +1 -0
- package/SiCard/raceResultTools.d.ts +25 -0
- package/SiCard/raceResultTools.d.ts.map +1 -0
- package/SiCard/raceResultTools.js +155 -0
- package/SiCard/raceResultTools.js.map +1 -0
- package/SiCard/raceResultTools.test.d.ts +2 -0
- package/SiCard/raceResultTools.test.d.ts.map +1 -0
- package/SiCard/raceResultTools.test.js +255 -0
- package/SiCard/raceResultTools.test.js.map +1 -0
- package/SiCard/types/FCard.d.ts +7 -0
- package/SiCard/types/FCard.d.ts.map +1 -0
- package/SiCard/types/FCard.js +49 -0
- package/SiCard/types/FCard.js.map +1 -0
- package/SiCard/types/FCard.test.d.ts +2 -0
- package/SiCard/types/FCard.test.d.ts.map +1 -0
- package/SiCard/types/FCard.test.js +18 -0
- package/SiCard/types/FCard.test.js.map +1 -0
- package/SiCard/types/ModernSiCard.d.ts +48 -0
- package/SiCard/types/ModernSiCard.d.ts.map +1 -0
- package/SiCard/types/ModernSiCard.js +238 -0
- package/SiCard/types/ModernSiCard.js.map +1 -0
- package/SiCard/types/ModernSiCard.test.d.ts +2 -0
- package/SiCard/types/ModernSiCard.test.d.ts.map +1 -0
- package/SiCard/types/ModernSiCard.test.js +214 -0
- package/SiCard/types/ModernSiCard.test.js.map +1 -0
- package/SiCard/types/PCard.d.ts +7 -0
- package/SiCard/types/PCard.d.ts.map +1 -0
- package/SiCard/types/PCard.js +49 -0
- package/SiCard/types/PCard.js.map +1 -0
- package/SiCard/types/PCard.test.d.ts +2 -0
- package/SiCard/types/PCard.test.d.ts.map +1 -0
- package/SiCard/types/PCard.test.js +18 -0
- package/SiCard/types/PCard.test.js.map +1 -0
- package/SiCard/types/SIAC.d.ts +6 -0
- package/SiCard/types/SIAC.d.ts.map +1 -0
- package/SiCard/types/SIAC.js +22 -0
- package/SiCard/types/SIAC.js.map +1 -0
- package/SiCard/types/SIAC.test.d.ts +2 -0
- package/SiCard/types/SIAC.test.d.ts.map +1 -0
- package/SiCard/types/SIAC.test.js +113 -0
- package/SiCard/types/SIAC.test.js.map +1 -0
- package/SiCard/types/SiCard10.d.ts +6 -0
- package/SiCard/types/SiCard10.d.ts.map +1 -0
- package/SiCard/types/SiCard10.js +20 -0
- package/SiCard/types/SiCard10.js.map +1 -0
- package/SiCard/types/SiCard10.test.d.ts +2 -0
- package/SiCard/types/SiCard10.test.d.ts.map +1 -0
- package/SiCard/types/SiCard10.test.js +114 -0
- package/SiCard/types/SiCard10.test.js.map +1 -0
- package/SiCard/types/SiCard11.d.ts +6 -0
- package/SiCard/types/SiCard11.d.ts.map +1 -0
- package/SiCard/types/SiCard11.js +22 -0
- package/SiCard/types/SiCard11.js.map +1 -0
- package/SiCard/types/SiCard11.test.d.ts +2 -0
- package/SiCard/types/SiCard11.test.d.ts.map +1 -0
- package/SiCard/types/SiCard11.test.js +113 -0
- package/SiCard/types/SiCard11.test.js.map +1 -0
- package/SiCard/types/SiCard5.d.ts +31 -0
- package/SiCard/types/SiCard5.d.ts.map +1 -0
- package/SiCard/types/SiCard5.js +128 -0
- package/SiCard/types/SiCard5.js.map +1 -0
- package/SiCard/types/SiCard5.test.d.ts +2 -0
- package/SiCard/types/SiCard5.test.d.ts.map +1 -0
- package/SiCard/types/SiCard5.test.js +170 -0
- package/SiCard/types/SiCard5.test.js.map +1 -0
- package/SiCard/types/SiCard6.d.ts +49 -0
- package/SiCard/types/SiCard6.d.ts.map +1 -0
- package/SiCard/types/SiCard6.js +203 -0
- package/SiCard/types/SiCard6.js.map +1 -0
- package/SiCard/types/SiCard6.test.d.ts +2 -0
- package/SiCard/types/SiCard6.test.d.ts.map +1 -0
- package/SiCard/types/SiCard6.test.js +202 -0
- package/SiCard/types/SiCard6.test.js.map +1 -0
- package/SiCard/types/SiCard8.d.ts +20 -0
- package/SiCard/types/SiCard8.d.ts.map +1 -0
- package/SiCard/types/SiCard8.js +140 -0
- package/SiCard/types/SiCard8.js.map +1 -0
- package/SiCard/types/SiCard8.test.d.ts +2 -0
- package/SiCard/types/SiCard8.test.d.ts.map +1 -0
- package/SiCard/types/SiCard8.test.js +159 -0
- package/SiCard/types/SiCard8.test.js.map +1 -0
- package/SiCard/types/SiCard9.d.ts +20 -0
- package/SiCard/types/SiCard9.d.ts.map +1 -0
- package/SiCard/types/SiCard9.js +139 -0
- package/SiCard/types/SiCard9.js.map +1 -0
- package/SiCard/types/SiCard9.test.d.ts +2 -0
- package/SiCard/types/SiCard9.test.d.ts.map +1 -0
- package/SiCard/types/SiCard9.test.js +155 -0
- package/SiCard/types/SiCard9.test.js.map +1 -0
- package/SiCard/types/TCard.d.ts +7 -0
- package/SiCard/types/TCard.d.ts.map +1 -0
- package/SiCard/types/TCard.js +49 -0
- package/SiCard/types/TCard.js.map +1 -0
- package/SiCard/types/TCard.test.d.ts +2 -0
- package/SiCard/types/TCard.test.d.ts.map +1 -0
- package/SiCard/types/TCard.test.js +18 -0
- package/SiCard/types/TCard.test.js.map +1 -0
- package/{src/SiCard/types/index.ts → SiCard/types/index.d.ts} +1 -0
- package/SiCard/types/index.d.ts.map +1 -0
- package/SiCard/types/index.js +34 -0
- package/SiCard/types/index.js.map +1 -0
- package/SiCard/types/index.test.d.ts +2 -0
- package/SiCard/types/index.test.d.ts.map +1 -0
- package/SiCard/types/index.test.js +65 -0
- package/SiCard/types/index.test.js.map +1 -0
- package/SiCard/types/modernSiCardExamples.d.ts +254 -0
- package/SiCard/types/modernSiCardExamples.d.ts.map +1 -0
- package/SiCard/types/modernSiCardExamples.js +389 -0
- package/SiCard/types/modernSiCardExamples.js.map +1 -0
- package/SiCard/types/siCard5Examples.d.ts +50 -0
- package/SiCard/types/siCard5Examples.d.ts.map +1 -0
- package/SiCard/types/siCard5Examples.js +109 -0
- package/SiCard/types/siCard5Examples.js.map +1 -0
- package/SiCard/types/siCard6Examples.d.ts +190 -0
- package/SiCard/types/siCard6Examples.d.ts.map +1 -0
- package/SiCard/types/siCard6Examples.js +289 -0
- package/SiCard/types/siCard6Examples.js.map +1 -0
- package/SiCard/types/siCard8Examples.d.ts +98 -0
- package/SiCard/types/siCard8Examples.d.ts.map +1 -0
- package/SiCard/types/siCard8Examples.js +182 -0
- package/SiCard/types/siCard8Examples.js.map +1 -0
- package/SiCard/types/siCard9Examples.d.ts +98 -0
- package/SiCard/types/siCard9Examples.d.ts.map +1 -0
- package/SiCard/types/siCard9Examples.js +173 -0
- package/SiCard/types/siCard9Examples.js.map +1 -0
- package/SiDevice/INavigatorWebSerial.d.ts +62 -0
- package/SiDevice/INavigatorWebSerial.d.ts.map +1 -0
- package/SiDevice/INavigatorWebSerial.js +3 -0
- package/SiDevice/INavigatorWebSerial.js.map +1 -0
- package/SiDevice/INavigatorWebUsb.d.ts +55 -0
- package/SiDevice/INavigatorWebUsb.d.ts.map +1 -0
- package/SiDevice/INavigatorWebUsb.js +3 -0
- package/SiDevice/INavigatorWebUsb.js.map +1 -0
- package/SiDevice/ISiDevice.d.ts +42 -0
- package/SiDevice/ISiDevice.d.ts.map +1 -0
- package/SiDevice/ISiDevice.js +65 -0
- package/SiDevice/ISiDevice.js.map +1 -0
- package/SiDevice/ISiDeviceDriver.d.ts +29 -0
- package/SiDevice/ISiDeviceDriver.d.ts.map +1 -0
- package/SiDevice/ISiDeviceDriver.js +52 -0
- package/SiDevice/ISiDeviceDriver.js.map +1 -0
- package/SiDevice/SiDevice.d.ts +21 -0
- package/SiDevice/SiDevice.d.ts.map +1 -0
- package/SiDevice/SiDevice.js +156 -0
- package/SiDevice/SiDevice.js.map +1 -0
- package/SiDevice/SiDevice.test.d.ts +2 -0
- package/SiDevice/SiDevice.test.d.ts.map +1 -0
- package/SiDevice/SiDevice.test.js +366 -0
- package/SiDevice/SiDevice.test.js.map +1 -0
- package/SiDevice/WebSerialSiDeviceDriver.d.ts +31 -0
- package/SiDevice/WebSerialSiDeviceDriver.d.ts.map +1 -0
- package/SiDevice/WebSerialSiDeviceDriver.js +175 -0
- package/SiDevice/WebSerialSiDeviceDriver.js.map +1 -0
- package/SiDevice/WebUsbSiDeviceDriver.d.ts +39 -0
- package/SiDevice/WebUsbSiDeviceDriver.d.ts.map +1 -0
- package/SiDevice/WebUsbSiDeviceDriver.js +359 -0
- package/SiDevice/WebUsbSiDeviceDriver.js.map +1 -0
- package/{src/SiDevice/index.ts → SiDevice/index.d.ts} +1 -0
- package/SiDevice/index.d.ts.map +1 -0
- package/SiDevice/index.js +6 -0
- package/SiDevice/index.js.map +1 -0
- package/{src/SiDevice/testUtils/index.ts → SiDevice/testUtils/index.d.ts} +1 -0
- package/SiDevice/testUtils/index.d.ts.map +1 -0
- package/SiDevice/testUtils/index.js +8 -0
- package/SiDevice/testUtils/index.js.map +1 -0
- package/SiDevice/testUtils/testISiDeviceDriver.d.ts +8 -0
- package/SiDevice/testUtils/testISiDeviceDriver.d.ts.map +1 -0
- package/SiDevice/testUtils/testISiDeviceDriver.js +94 -0
- package/SiDevice/testUtils/testISiDeviceDriver.js.map +1 -0
- package/SiDevice/testUtils/testISiDeviceDriverWithAutodetection.d.ts +8 -0
- package/SiDevice/testUtils/testISiDeviceDriverWithAutodetection.d.ts.map +1 -0
- package/SiDevice/testUtils/testISiDeviceDriverWithAutodetection.js +95 -0
- package/SiDevice/testUtils/testISiDeviceDriverWithAutodetection.js.map +1 -0
- package/SiStation/BaseSiStation.d.ts +61 -0
- package/SiStation/BaseSiStation.d.ts.map +1 -0
- package/SiStation/BaseSiStation.js +217 -0
- package/SiStation/BaseSiStation.js.map +1 -0
- package/SiStation/BaseSiStation.test.d.ts +2 -0
- package/SiStation/BaseSiStation.test.d.ts.map +1 -0
- package/SiStation/BaseSiStation.test.js +242 -0
- package/SiStation/BaseSiStation.test.js.map +1 -0
- package/SiStation/CoupledSiStation.d.ts +14 -0
- package/SiStation/CoupledSiStation.d.ts.map +1 -0
- package/SiStation/CoupledSiStation.js +170 -0
- package/SiStation/CoupledSiStation.js.map +1 -0
- package/SiStation/CoupledSiStation.test.d.ts +2 -0
- package/SiStation/CoupledSiStation.test.d.ts.map +1 -0
- package/SiStation/CoupledSiStation.test.js +72 -0
- package/SiStation/CoupledSiStation.test.js.map +1 -0
- package/SiStation/ISiMainStation.d.ts +25 -0
- package/SiStation/ISiMainStation.d.ts.map +1 -0
- package/SiStation/ISiMainStation.js +62 -0
- package/SiStation/ISiMainStation.js.map +1 -0
- package/SiStation/ISiSendTask.d.ts +8 -0
- package/SiStation/ISiSendTask.d.ts.map +1 -0
- package/SiStation/ISiSendTask.js +14 -0
- package/SiStation/ISiSendTask.js.map +1 -0
- package/SiStation/ISiStation.d.ts +62 -0
- package/SiStation/ISiStation.d.ts.map +1 -0
- package/SiStation/ISiStation.js +76 -0
- package/SiStation/ISiStation.js.map +1 -0
- package/SiStation/ISiTargetMultiplexer.d.ts +47 -0
- package/SiStation/ISiTargetMultiplexer.d.ts.map +1 -0
- package/SiStation/ISiTargetMultiplexer.js +71 -0
- package/SiStation/ISiTargetMultiplexer.js.map +1 -0
- package/SiStation/SiMainStation.d.ts +24 -0
- package/SiStation/SiMainStation.d.ts.map +1 -0
- package/SiStation/SiMainStation.js +142 -0
- package/SiStation/SiMainStation.js.map +1 -0
- package/SiStation/SiMainStation.test.d.ts +2 -0
- package/SiStation/SiMainStation.test.d.ts.map +1 -0
- package/SiStation/SiMainStation.test.js +235 -0
- package/SiStation/SiMainStation.test.js.map +1 -0
- package/SiStation/SiSendTask.d.ts +17 -0
- package/SiStation/SiSendTask.d.ts.map +1 -0
- package/SiStation/SiSendTask.js +81 -0
- package/SiStation/SiSendTask.js.map +1 -0
- package/SiStation/SiTargetMultiplexer.d.ts +34 -0
- package/SiStation/SiTargetMultiplexer.d.ts.map +1 -0
- package/SiStation/SiTargetMultiplexer.js +252 -0
- package/SiStation/SiTargetMultiplexer.js.map +1 -0
- package/SiStation/SiTargetMultiplexer.targeting.test.d.ts +2 -0
- package/SiStation/SiTargetMultiplexer.targeting.test.d.ts.map +1 -0
- package/SiStation/SiTargetMultiplexer.targeting.test.js +138 -0
- package/SiStation/SiTargetMultiplexer.targeting.test.js.map +1 -0
- package/SiStation/SiTargetMultiplexer.test.d.ts +2 -0
- package/SiStation/SiTargetMultiplexer.test.d.ts.map +1 -0
- package/SiStation/SiTargetMultiplexer.test.js +588 -0
- package/SiStation/SiTargetMultiplexer.test.js.map +1 -0
- package/{src/SiStation/index.ts → SiStation/index.d.ts} +1 -0
- package/SiStation/index.d.ts.map +1 -0
- package/SiStation/index.js +14 -0
- package/SiStation/index.js.map +1 -0
- package/SiStation/siStationExamples.d.ts +76 -0
- package/SiStation/siStationExamples.d.ts.map +1 -0
- package/SiStation/siStationExamples.js +132 -0
- package/SiStation/siStationExamples.js.map +1 -0
- package/constants.d.ts +76 -0
- package/constants.d.ts.map +1 -0
- package/constants.js +88 -0
- package/constants.js.map +1 -0
- package/constants.test.d.ts +2 -0
- package/constants.test.d.ts.map +1 -0
- package/constants.test.js +52 -0
- package/constants.test.js.map +1 -0
- package/fakes/FakeSiCard/BaseFakeSiCard.d.ts +8 -0
- package/fakes/FakeSiCard/BaseFakeSiCard.d.ts.map +1 -0
- package/fakes/FakeSiCard/BaseFakeSiCard.js +10 -0
- package/fakes/FakeSiCard/BaseFakeSiCard.js.map +1 -0
- package/fakes/FakeSiCard/BaseFakeSiCard.test.d.ts +2 -0
- package/fakes/FakeSiCard/BaseFakeSiCard.test.d.ts.map +1 -0
- package/fakes/FakeSiCard/BaseFakeSiCard.test.js +45 -0
- package/fakes/FakeSiCard/BaseFakeSiCard.test.js.map +1 -0
- package/fakes/FakeSiCard/IFakeSiCard.d.ts +6 -0
- package/fakes/FakeSiCard/IFakeSiCard.d.ts.map +1 -0
- package/fakes/FakeSiCard/IFakeSiCard.js +3 -0
- package/fakes/FakeSiCard/IFakeSiCard.js.map +1 -0
- package/{src/fakes/FakeSiCard/index.ts → fakes/FakeSiCard/index.d.ts} +1 -0
- package/fakes/FakeSiCard/index.d.ts.map +1 -0
- package/fakes/FakeSiCard/index.js +21 -0
- package/fakes/FakeSiCard/index.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeModernSiCard.d.ts +15 -0
- package/fakes/FakeSiCard/types/FakeModernSiCard.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeModernSiCard.js +73 -0
- package/fakes/FakeSiCard/types/FakeModernSiCard.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeModernSiCard.test.d.ts +2 -0
- package/fakes/FakeSiCard/types/FakeModernSiCard.test.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeModernSiCard.test.js +88 -0
- package/fakes/FakeSiCard/types/FakeModernSiCard.test.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSIAC.d.ts +13 -0
- package/fakes/FakeSiCard/types/FakeSIAC.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSIAC.js +17 -0
- package/fakes/FakeSiCard/types/FakeSIAC.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard10.d.ts +13 -0
- package/fakes/FakeSiCard/types/FakeSiCard10.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard10.js +17 -0
- package/fakes/FakeSiCard/types/FakeSiCard10.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard11.d.ts +13 -0
- package/fakes/FakeSiCard/types/FakeSiCard11.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard11.js +17 -0
- package/fakes/FakeSiCard/types/FakeSiCard11.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard5.d.ts +15 -0
- package/fakes/FakeSiCard/types/FakeSiCard5.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard5.js +70 -0
- package/fakes/FakeSiCard/types/FakeSiCard5.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard5.test.d.ts +2 -0
- package/fakes/FakeSiCard/types/FakeSiCard5.test.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard5.test.js +71 -0
- package/fakes/FakeSiCard/types/FakeSiCard5.test.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard6.d.ts +15 -0
- package/fakes/FakeSiCard/types/FakeSiCard6.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard6.js +73 -0
- package/fakes/FakeSiCard/types/FakeSiCard6.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard6.test.d.ts +2 -0
- package/fakes/FakeSiCard/types/FakeSiCard6.test.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard6.test.js +88 -0
- package/fakes/FakeSiCard/types/FakeSiCard6.test.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard8.d.ts +12 -0
- package/fakes/FakeSiCard/types/FakeSiCard8.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard8.js +16 -0
- package/fakes/FakeSiCard/types/FakeSiCard8.js.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard9.d.ts +12 -0
- package/fakes/FakeSiCard/types/FakeSiCard9.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakeSiCard9.js +16 -0
- package/fakes/FakeSiCard/types/FakeSiCard9.js.map +1 -0
- package/{src/fakes/FakeSiCard/types/index.ts → fakes/FakeSiCard/types/index.d.ts} +1 -0
- package/fakes/FakeSiCard/types/index.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/index.js +18 -0
- package/fakes/FakeSiCard/types/index.js.map +1 -0
- package/fakes/FakeSiDeviceDriver.d.ts +42 -0
- package/fakes/FakeSiDeviceDriver.d.ts.map +1 -0
- package/fakes/FakeSiDeviceDriver.js +163 -0
- package/fakes/FakeSiDeviceDriver.js.map +1 -0
- package/fakes/FakeSiMainStation.d.ts +22 -0
- package/fakes/FakeSiMainStation.d.ts.map +1 -0
- package/fakes/FakeSiMainStation.js +150 -0
- package/fakes/FakeSiMainStation.js.map +1 -0
- package/fakes/FakeSiMainStation.test.d.ts +2 -0
- package/fakes/FakeSiMainStation.test.d.ts.map +1 -0
- package/fakes/FakeSiMainStation.test.js +150 -0
- package/fakes/FakeSiMainStation.test.js.map +1 -0
- package/fakes/IFakeSiMainStation.d.ts +14 -0
- package/fakes/IFakeSiMainStation.d.ts.map +1 -0
- package/fakes/IFakeSiMainStation.js +46 -0
- package/fakes/IFakeSiMainStation.js.map +1 -0
- package/{src/fakes/index.ts → fakes/index.d.ts} +1 -0
- package/fakes/index.d.ts.map +1 -0
- package/fakes/index.js +21 -0
- package/fakes/index.js.map +1 -0
- package/index.d.ts +72 -0
- package/index.d.ts.map +1 -0
- package/index.js +49 -0
- package/index.js.map +1 -0
- package/package.json +4 -6
- package/siProtocol.d.ts +58 -0
- package/siProtocol.d.ts.map +1 -0
- package/siProtocol.js +413 -0
- package/siProtocol.js.map +1 -0
- package/siProtocol.test.d.ts +2 -0
- package/siProtocol.test.d.ts.map +1 -0
- package/siProtocol.test.js +524 -0
- package/siProtocol.test.js.map +1 -0
- package/storage/SiArray.d.ts +14 -0
- package/storage/SiArray.d.ts.map +1 -0
- package/storage/SiArray.js +58 -0
- package/storage/SiArray.js.map +1 -0
- package/storage/SiArray.test.d.ts +2 -0
- package/storage/SiArray.test.d.ts.map +1 -0
- package/storage/SiArray.test.js +100 -0
- package/storage/SiArray.test.js.map +1 -0
- package/storage/SiBool.d.ts +13 -0
- package/storage/SiBool.d.ts.map +1 -0
- package/storage/SiBool.js +47 -0
- package/storage/SiBool.js.map +1 -0
- package/storage/SiBool.test.d.ts +2 -0
- package/storage/SiBool.test.d.ts.map +1 -0
- package/storage/SiBool.test.js +80 -0
- package/storage/SiBool.test.js.map +1 -0
- package/storage/SiDataType.d.ts +19 -0
- package/storage/SiDataType.d.ts.map +1 -0
- package/storage/SiDataType.js +50 -0
- package/storage/SiDataType.js.map +1 -0
- package/storage/SiDataType.test.d.ts +2 -0
- package/storage/SiDataType.test.d.ts.map +1 -0
- package/storage/SiDataType.test.js +80 -0
- package/storage/SiDataType.test.js.map +1 -0
- package/storage/SiDict.d.ts +23 -0
- package/storage/SiDict.d.ts.map +1 -0
- package/storage/SiDict.js +56 -0
- package/storage/SiDict.js.map +1 -0
- package/storage/SiDict.test.d.ts +2 -0
- package/storage/SiDict.test.d.ts.map +1 -0
- package/storage/SiDict.test.js +107 -0
- package/storage/SiDict.test.js.map +1 -0
- package/storage/SiEnum.d.ts +21 -0
- package/storage/SiEnum.d.ts.map +1 -0
- package/storage/SiEnum.js +76 -0
- package/storage/SiEnum.js.map +1 -0
- package/storage/SiEnum.test.d.ts +2 -0
- package/storage/SiEnum.test.d.ts.map +1 -0
- package/storage/SiEnum.test.js +75 -0
- package/storage/SiEnum.test.js.map +1 -0
- package/storage/SiFieldValue.d.ts +10 -0
- package/storage/SiFieldValue.d.ts.map +1 -0
- package/storage/SiFieldValue.js +25 -0
- package/storage/SiFieldValue.js.map +1 -0
- package/storage/SiFieldValue.test.d.ts +2 -0
- package/storage/SiFieldValue.test.d.ts.map +1 -0
- package/storage/SiFieldValue.test.js +59 -0
- package/storage/SiFieldValue.test.js.map +1 -0
- package/storage/SiInt.d.ts +20 -0
- package/storage/SiInt.d.ts.map +1 -0
- package/storage/SiInt.js +73 -0
- package/storage/SiInt.js.map +1 -0
- package/storage/SiInt.test.d.ts +2 -0
- package/storage/SiInt.test.d.ts.map +1 -0
- package/storage/SiInt.test.js +79 -0
- package/storage/SiInt.test.js.map +1 -0
- package/storage/SiModified.d.ts +18 -0
- package/storage/SiModified.d.ts.map +1 -0
- package/storage/SiModified.js +56 -0
- package/storage/SiModified.js.map +1 -0
- package/storage/SiModified.test.d.ts +2 -0
- package/storage/SiModified.test.d.ts.map +1 -0
- package/storage/SiModified.test.js +122 -0
- package/storage/SiModified.test.js.map +1 -0
- package/storage/SiStorage.d.ts +14 -0
- package/storage/SiStorage.d.ts.map +1 -0
- package/storage/SiStorage.js +43 -0
- package/storage/SiStorage.js.map +1 -0
- package/storage/SiStorage.test.d.ts +2 -0
- package/storage/SiStorage.test.d.ts.map +1 -0
- package/storage/SiStorage.test.js +86 -0
- package/storage/SiStorage.test.js.map +1 -0
- package/{src/storage/index.ts → storage/index.d.ts} +2 -1
- package/storage/index.d.ts.map +1 -0
- package/storage/index.js +29 -0
- package/storage/index.js.map +1 -0
- package/storage/index.test.d.ts +2 -0
- package/storage/index.test.d.ts.map +1 -0
- package/storage/index.test.js +222 -0
- package/storage/index.test.js.map +1 -0
- package/storage/interfaces.d.ts +38 -0
- package/storage/interfaces.d.ts.map +1 -0
- package/storage/interfaces.js +44 -0
- package/storage/interfaces.js.map +1 -0
- package/storage/siStringEncoding.d.ts +2 -0
- package/storage/siStringEncoding.d.ts.map +1 -0
- package/storage/siStringEncoding.js +1365 -0
- package/storage/siStringEncoding.js.map +1 -0
- package/testUtils.d.ts +25 -0
- package/testUtils.d.ts.map +1 -0
- package/testUtils.js +79 -0
- package/testUtils.js.map +1 -0
- package/testUtils.test.d.ts +2 -0
- package/testUtils.test.d.ts.map +1 -0
- package/testUtils.test.js +307 -0
- package/testUtils.test.js.map +1 -0
- package/utils/NumberRange.d.ts +15 -0
- package/utils/NumberRange.d.ts.map +1 -0
- package/utils/NumberRange.js +48 -0
- package/utils/NumberRange.js.map +1 -0
- package/utils/NumberRange.test.d.ts +2 -0
- package/utils/NumberRange.test.d.ts.map +1 -0
- package/utils/NumberRange.test.js +68 -0
- package/utils/NumberRange.test.js.map +1 -0
- package/utils/NumberRangeRegistry.d.ts +9 -0
- package/utils/NumberRangeRegistry.d.ts.map +1 -0
- package/utils/NumberRangeRegistry.js +82 -0
- package/utils/NumberRangeRegistry.js.map +1 -0
- package/utils/NumberRangeRegistry.test.d.ts +2 -0
- package/utils/NumberRangeRegistry.test.d.ts.map +1 -0
- package/utils/NumberRangeRegistry.test.js +51 -0
- package/utils/NumberRangeRegistry.test.js.map +1 -0
- package/utils/bytes.d.ts +9 -0
- package/utils/bytes.d.ts.map +1 -0
- package/utils/bytes.js +74 -0
- package/utils/bytes.js.map +1 -0
- package/utils/bytes.test.d.ts +2 -0
- package/utils/bytes.test.d.ts.map +1 -0
- package/utils/bytes.test.js +159 -0
- package/utils/bytes.test.js.map +1 -0
- package/utils/errors.d.ts +10 -0
- package/utils/errors.d.ts.map +1 -0
- package/utils/errors.js +27 -0
- package/utils/errors.js.map +1 -0
- package/utils/errors.test.d.ts +2 -0
- package/utils/errors.test.d.ts.map +1 -0
- package/utils/errors.test.js +63 -0
- package/utils/errors.test.js.map +1 -0
- package/utils/events.d.ts +30 -0
- package/utils/events.d.ts.map +1 -0
- package/utils/events.js +81 -0
- package/utils/events.js.map +1 -0
- package/utils/events.test.d.ts +2 -0
- package/utils/events.test.d.ts.map +1 -0
- package/utils/events.test.js +130 -0
- package/utils/events.test.js.map +1 -0
- package/utils/general.d.ts +19 -0
- package/utils/general.d.ts.map +1 -0
- package/utils/general.js +63 -0
- package/utils/general.js.map +1 -0
- package/utils/general.test.d.ts +2 -0
- package/utils/general.test.d.ts.map +1 -0
- package/utils/general.test.js +182 -0
- package/utils/general.test.js.map +1 -0
- package/{src/utils/index.ts → utils/index.d.ts} +1 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +25 -0
- package/utils/index.js.map +1 -0
- package/utils/mixins.d.ts +2 -0
- package/utils/mixins.d.ts.map +1 -0
- package/utils/mixins.js +15 -0
- package/utils/mixins.js.map +1 -0
- package/utils/mixins.test.d.ts +2 -0
- package/utils/mixins.test.d.ts.map +1 -0
- package/utils/mixins.test.js +74 -0
- package/utils/mixins.test.js.map +1 -0
- package/utils/typed.d.ts +2 -0
- package/utils/typed.d.ts.map +1 -0
- package/utils/typed.js +7 -0
- package/utils/typed.js.map +1 -0
- package/.dependency-cruiser.js +0 -233
- package/.editorconfig +0 -12
- package/.eslintignore +0 -6
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
- package/.github/workflows/npm.yml +0 -17
- package/babel.config.js +0 -21
- package/build-docs.sh +0 -25
- package/docs/index.md +0 -9
- package/docs/typedoc/index.md +0 -11
- package/eslint.base.js +0 -232
- package/install.sh +0 -6
- package/jest.config.ts +0 -49
- package/nx.json +0 -39
- package/src/SiCard/BaseSiCard.test.ts +0 -187
- package/src/SiCard/BaseSiCard.ts +0 -101
- package/src/SiCard/IRaceResultData.ts +0 -16
- package/src/SiCard/ISiCard.ts +0 -23
- package/src/SiCard/ISiCardExamples.ts +0 -4
- package/src/SiCard/raceResultTools.test.ts +0 -260
- package/src/SiCard/raceResultTools.ts +0 -150
- package/src/SiCard/types/FCard.test.ts +0 -19
- package/src/SiCard/types/FCard.ts +0 -14
- package/src/SiCard/types/ModernSiCard.test.ts +0 -186
- package/src/SiCard/types/ModernSiCard.ts +0 -241
- package/src/SiCard/types/PCard.test.ts +0 -19
- package/src/SiCard/types/PCard.ts +0 -14
- package/src/SiCard/types/SIAC.test.ts +0 -84
- package/src/SiCard/types/SIAC.ts +0 -19
- package/src/SiCard/types/SiCard10.test.ts +0 -85
- package/src/SiCard/types/SiCard10.ts +0 -17
- package/src/SiCard/types/SiCard11.test.ts +0 -84
- package/src/SiCard/types/SiCard11.ts +0 -19
- package/src/SiCard/types/SiCard5.test.ts +0 -149
- package/src/SiCard/types/SiCard5.ts +0 -129
- package/src/SiCard/types/SiCard6.test.ts +0 -179
- package/src/SiCard/types/SiCard6.ts +0 -222
- package/src/SiCard/types/SiCard8.test.ts +0 -137
- package/src/SiCard/types/SiCard8.ts +0 -129
- package/src/SiCard/types/SiCard9.test.ts +0 -132
- package/src/SiCard/types/SiCard9.ts +0 -128
- package/src/SiCard/types/TCard.test.ts +0 -19
- package/src/SiCard/types/TCard.ts +0 -14
- package/src/SiCard/types/index.test.ts +0 -26
- package/src/SiCard/types/modernSiCardExamples.ts +0 -364
- package/src/SiCard/types/siCard5Examples.ts +0 -73
- package/src/SiCard/types/siCard6Examples.ts +0 -262
- package/src/SiCard/types/siCard8Examples.ts +0 -152
- package/src/SiCard/types/siCard9Examples.ts +0 -143
- package/src/SiDevice/INavigatorWebSerial.ts +0 -78
- package/src/SiDevice/INavigatorWebUsb.ts +0 -62
- package/src/SiDevice/ISiDevice.ts +0 -48
- package/src/SiDevice/ISiDeviceDriver.ts +0 -35
- package/src/SiDevice/README.md +0 -13
- package/src/SiDevice/SiDevice.test.ts +0 -354
- package/src/SiDevice/SiDevice.ts +0 -132
- package/src/SiDevice/WebSerialSiDeviceDriver.ts +0 -146
- package/src/SiDevice/WebUsbSiDeviceDriver.ts +0 -343
- package/src/SiDevice/testUtils/testISiDeviceDriver.ts +0 -63
- package/src/SiDevice/testUtils/testISiDeviceDriverWithAutodetection.ts +0 -72
- package/src/SiStation/BaseSiStation.test.ts +0 -221
- package/src/SiStation/BaseSiStation.ts +0 -253
- package/src/SiStation/CoupledSiStation.test.ts +0 -41
- package/src/SiStation/CoupledSiStation.ts +0 -130
- package/src/SiStation/ISiMainStation.ts +0 -29
- package/src/SiStation/ISiSendTask.ts +0 -9
- package/src/SiStation/ISiStation.ts +0 -88
- package/src/SiStation/ISiTargetMultiplexer.ts +0 -51
- package/src/SiStation/SiMainStation.test.ts +0 -222
- package/src/SiStation/SiMainStation.ts +0 -133
- package/src/SiStation/SiSendTask.ts +0 -50
- package/src/SiStation/SiTargetMultiplexer.targeting.test.ts +0 -112
- package/src/SiStation/SiTargetMultiplexer.test.ts +0 -605
- package/src/SiStation/SiTargetMultiplexer.ts +0 -241
- package/src/SiStation/siStationExamples.ts +0 -103
- package/src/constants.test.ts +0 -17
- package/src/constants.ts +0 -92
- package/src/fakes/FakeSiCard/BaseFakeSiCard.test.ts +0 -11
- package/src/fakes/FakeSiCard/BaseFakeSiCard.ts +0 -10
- package/src/fakes/FakeSiCard/IFakeSiCard.ts +0 -6
- package/src/fakes/FakeSiCard/types/FakeModernSiCard.test.ts +0 -62
- package/src/fakes/FakeSiCard/types/FakeModernSiCard.ts +0 -43
- package/src/fakes/FakeSiCard/types/FakeSIAC.ts +0 -17
- package/src/fakes/FakeSiCard/types/FakeSiCard10.ts +0 -17
- package/src/fakes/FakeSiCard/types/FakeSiCard11.ts +0 -17
- package/src/fakes/FakeSiCard/types/FakeSiCard5.test.ts +0 -42
- package/src/fakes/FakeSiCard/types/FakeSiCard5.ts +0 -40
- package/src/fakes/FakeSiCard/types/FakeSiCard6.test.ts +0 -62
- package/src/fakes/FakeSiCard/types/FakeSiCard6.ts +0 -44
- package/src/fakes/FakeSiCard/types/FakeSiCard8.ts +0 -16
- package/src/fakes/FakeSiCard/types/FakeSiCard9.ts +0 -16
- package/src/fakes/FakeSiDeviceDriver.ts +0 -148
- package/src/fakes/FakeSiMainStation.test.ts +0 -141
- package/src/fakes/FakeSiMainStation.ts +0 -118
- package/src/fakes/IFakeSiMainStation.ts +0 -15
- package/src/index.ts +0 -24
- package/src/siProtocol.test.ts +0 -509
- package/src/siProtocol.ts +0 -417
- package/src/storage/SiArray.test.ts +0 -103
- package/src/storage/SiArray.ts +0 -56
- package/src/storage/SiBool.test.ts +0 -81
- package/src/storage/SiBool.ts +0 -47
- package/src/storage/SiDataType.test.ts +0 -81
- package/src/storage/SiDataType.ts +0 -60
- package/src/storage/SiDict.test.ts +0 -115
- package/src/storage/SiDict.ts +0 -60
- package/src/storage/SiEnum.test.ts +0 -77
- package/src/storage/SiEnum.ts +0 -48
- package/src/storage/SiFieldValue.test.ts +0 -58
- package/src/storage/SiFieldValue.ts +0 -23
- package/src/storage/SiInt.test.ts +0 -80
- package/src/storage/SiInt.ts +0 -84
- package/src/storage/SiModified.test.ts +0 -135
- package/src/storage/SiModified.ts +0 -59
- package/src/storage/SiStorage.test.ts +0 -51
- package/src/storage/SiStorage.ts +0 -44
- package/src/storage/index.test.ts +0 -222
- package/src/storage/interfaces.ts +0 -41
- package/src/storage/siStringEncoding.ts +0 -1361
- package/src/testUtils.test.ts +0 -266
- package/src/testUtils.ts +0 -75
- package/src/utils/NumberRange.test.ts +0 -66
- package/src/utils/NumberRange.ts +0 -46
- package/src/utils/NumberRangeRegistry.test.ts +0 -49
- package/src/utils/NumberRangeRegistry.ts +0 -43
- package/src/utils/bytes.test.ts +0 -126
- package/src/utils/bytes.ts +0 -69
- package/src/utils/errors.test.ts +0 -29
- package/src/utils/errors.ts +0 -20
- package/src/utils/events.test.ts +0 -112
- package/src/utils/events.ts +0 -68
- package/src/utils/general.test.ts +0 -139
- package/src/utils/general.ts +0 -69
- package/src/utils/mixins.test.ts +0 -40
- package/src/utils/mixins.ts +0 -13
- package/src/utils/typed.ts +0 -3
- package/tsconfig.base.json +0 -22
- package/tsconfig.json +0 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiArray.d.ts","sourceRoot":"","sources":["../../src/storage/SiArray.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;AAEhD,qBAAa,OAAO,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,EAAE,MAAM;IAAS,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;gBAA9E,MAAM,EAAE,MAAM,EAAS,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;IAIjG,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI1D,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;IAYzD,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;IAIlE,2BAA2B,CAAC,IAAI,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS;IAY9E,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc;CAYvF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SiArray = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const interfaces_1 = require("./interfaces");
|
|
9
|
+
const SiDataType_1 = require("./SiDataType");
|
|
10
|
+
class SiArray extends SiDataType_1.SiDataType {
|
|
11
|
+
constructor(length, getDefinitionAtIndex) {
|
|
12
|
+
super();
|
|
13
|
+
this.length = length;
|
|
14
|
+
this.getDefinitionAtIndex = getDefinitionAtIndex;
|
|
15
|
+
}
|
|
16
|
+
typeSpecificIsValueValid(_value) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
typeSpecificValueToString(value) {
|
|
20
|
+
return value
|
|
21
|
+
.map((itemValue, index) => {
|
|
22
|
+
if (itemValue === undefined) {
|
|
23
|
+
return '?';
|
|
24
|
+
}
|
|
25
|
+
const definition = this.getDefinitionAtIndex(index);
|
|
26
|
+
return definition.valueToString(itemValue);
|
|
27
|
+
})
|
|
28
|
+
.join(', ');
|
|
29
|
+
}
|
|
30
|
+
typeSpecificValueFromString(_string) {
|
|
31
|
+
return new interfaces_1.ValueFromStringError(`${this.constructor.name} does not support string parsing`);
|
|
32
|
+
}
|
|
33
|
+
typeSpecificExtractFromData(data) {
|
|
34
|
+
const arrayValue = lodash_1.default.range(this.length).map((index) => {
|
|
35
|
+
const definition = this.getDefinitionAtIndex(index);
|
|
36
|
+
const itemFieldValue = definition.extractFromData(data);
|
|
37
|
+
if (itemFieldValue === undefined) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
return itemFieldValue.value;
|
|
41
|
+
});
|
|
42
|
+
return arrayValue;
|
|
43
|
+
}
|
|
44
|
+
typeSpecificUpdateData(data, newValue) {
|
|
45
|
+
const updateLength = Math.min(newValue.length, this.length);
|
|
46
|
+
let tempData = data;
|
|
47
|
+
lodash_1.default.range(updateLength).forEach((index) => {
|
|
48
|
+
const definition = this.getDefinitionAtIndex(index);
|
|
49
|
+
const newItemValue = newValue[index];
|
|
50
|
+
if (newItemValue !== undefined) {
|
|
51
|
+
tempData = definition.updateData(tempData, newItemValue);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return tempData;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.SiArray = SiArray;
|
|
58
|
+
//# sourceMappingURL=SiArray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiArray.js","sourceRoot":"","sources":["../../src/storage/SiArray.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,6CAA2F;AAC3F,6CAA0C;AAI1C,MAAa,OAAW,SAAQ,uBAA2B;IAC1D,YAAmB,MAAc,EAAS,oBAAuD;QAChG,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAQ;QAAS,yBAAoB,GAApB,oBAAoB,CAAmC;IAEjG,CAAC;IAED,wBAAwB,CAAC,MAAuB;QAC/C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yBAAyB,CAAC,KAAsB;QAC/C,OAAO,KAAK;aACV,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACzB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,OAAe;QAC1C,OAAO,IAAI,iCAAoB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,kCAAkC,CAAC,CAAC;IAC7F,CAAC;IAED,2BAA2B,CAAC,IAAoB;QAC/C,MAAM,UAAU,GAAG,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,OAAO,cAAc,CAAC,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,sBAAsB,CAAC,IAAoB,EAAE,QAAyB;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAChC,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD;AAjDD,0BAiDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiArray.test.d.ts","sourceRoot":"","sources":["../../src/storage/SiArray.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const globals_1 = require("@jest/globals");
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const interfaces_1 = require("./interfaces");
|
|
9
|
+
const SiDataType_1 = require("./SiDataType");
|
|
10
|
+
const SiFieldValue_1 = require("./SiFieldValue");
|
|
11
|
+
const SiArray_1 = require("./SiArray");
|
|
12
|
+
(0, globals_1.describe)('SiArray', () => {
|
|
13
|
+
class FakeDataType extends SiDataType_1.SiDataType {
|
|
14
|
+
constructor(index) {
|
|
15
|
+
super();
|
|
16
|
+
this.index = index;
|
|
17
|
+
}
|
|
18
|
+
typeSpecificIsValueValid(_value) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
typeSpecificValueFromString(str) {
|
|
22
|
+
return str.substr(2, str.length - 2);
|
|
23
|
+
}
|
|
24
|
+
typeSpecificValueToString(value) {
|
|
25
|
+
return `->${value}<-`;
|
|
26
|
+
}
|
|
27
|
+
typeSpecificExtractFromData(data) {
|
|
28
|
+
const byte = data.get(this.index);
|
|
29
|
+
if (byte === undefined) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
return String.fromCharCode(byte);
|
|
33
|
+
}
|
|
34
|
+
typeSpecificUpdateData(data, newValue) {
|
|
35
|
+
const byte = data.get(this.index);
|
|
36
|
+
if (byte === undefined) {
|
|
37
|
+
throw new SiDataType_1.ModifyUndefinedException();
|
|
38
|
+
}
|
|
39
|
+
return data.set(this.index, newValue.charCodeAt(0));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const mySiArray = new SiArray_1.SiArray(3, (i) => new FakeDataType(i));
|
|
43
|
+
const fieldValueOf = (arrayValue) => new SiFieldValue_1.SiFieldValue(mySiArray, arrayValue);
|
|
44
|
+
(0, globals_1.test)('typeSpecificIsValueValid', () => {
|
|
45
|
+
(0, globals_1.expect)(mySiArray.isValueValid([])).toBe(true);
|
|
46
|
+
(0, globals_1.expect)(mySiArray.isValueValid([''])).toBe(true);
|
|
47
|
+
});
|
|
48
|
+
(0, globals_1.test)('valueToString', () => {
|
|
49
|
+
(0, globals_1.expect)(mySiArray.valueToString([])).toBe('');
|
|
50
|
+
(0, globals_1.expect)(mySiArray.valueToString(['test'])).toBe('->test<-');
|
|
51
|
+
(0, globals_1.expect)(mySiArray.valueToString(['test', '1234'])).toBe('->test<-, ->1234<-');
|
|
52
|
+
(0, globals_1.expect)(mySiArray.valueToString(['test', undefined])).toBe('->test<-, ?');
|
|
53
|
+
});
|
|
54
|
+
(0, globals_1.test)('valueFromString', () => {
|
|
55
|
+
(0, globals_1.expect)(mySiArray.valueFromString('->test<-') instanceof interfaces_1.ValueFromStringError).toBe(true);
|
|
56
|
+
(0, globals_1.expect)(mySiArray.valueFromString('->test<-, ->1234<-') instanceof interfaces_1.ValueFromStringError).toBe(true);
|
|
57
|
+
(0, globals_1.expect)(mySiArray.valueFromString('test') instanceof interfaces_1.ValueFromStringError).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
(0, globals_1.test)('extractFromData gives field value', () => {
|
|
60
|
+
const data = immutable_1.default.List([0x41, 0x42, 0x43]);
|
|
61
|
+
const fieldValue = mySiArray.extractFromData(data);
|
|
62
|
+
(0, globals_1.expect)(fieldValue instanceof SiFieldValue_1.SiFieldValue).toBe(true);
|
|
63
|
+
(0, globals_1.expect)(fieldValue.field).toBe(mySiArray);
|
|
64
|
+
(0, globals_1.expect)(fieldValue.value).toEqual(['A', 'B', 'C']);
|
|
65
|
+
});
|
|
66
|
+
(0, globals_1.test)('extractFromData', () => {
|
|
67
|
+
const getExtractedFieldValue = (bytes) => mySiArray.extractFromData(immutable_1.default.List(bytes));
|
|
68
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x61, 0x62, 0x63]).value).toEqual(['a', 'b', 'c']);
|
|
69
|
+
(0, globals_1.expect)(getExtractedFieldValue([undefined, 0x62, 0x63]).value).toEqual([undefined, 'b', 'c']);
|
|
70
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x61, undefined, 0x63]).value).toEqual(['a', undefined, 'c']);
|
|
71
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x61, 0x62, undefined]).value).toEqual(['a', 'b', undefined]);
|
|
72
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x61, 0x62]).value).toEqual(['a', 'b', undefined]);
|
|
73
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x61]).value).toEqual(['a', undefined, undefined]);
|
|
74
|
+
(0, globals_1.expect)(getExtractedFieldValue([]).value).toEqual([undefined, undefined, undefined]);
|
|
75
|
+
});
|
|
76
|
+
(0, globals_1.test)('updateData', () => {
|
|
77
|
+
const initialData = immutable_1.default.List([0x00, 0x00, 0x00]);
|
|
78
|
+
const updateInitialData = (newValue) => mySiArray.updateData(initialData, newValue).toJS();
|
|
79
|
+
(0, globals_1.expect)(updateInitialData(['x', 'y', 'z'])).toEqual([0x78, 0x79, 0x7a]);
|
|
80
|
+
(0, globals_1.expect)(updateInitialData(['x', 'y'])).toEqual([0x78, 0x79, 0x00]);
|
|
81
|
+
(0, globals_1.expect)(updateInitialData(['x'])).toEqual([0x78, 0x00, 0x00]);
|
|
82
|
+
(0, globals_1.expect)(updateInitialData([])).toEqual([0x00, 0x00, 0x00]);
|
|
83
|
+
(0, globals_1.expect)(updateInitialData(['x', 'y', 'z', 'a'])).toEqual([0x78, 0x79, 0x7a]);
|
|
84
|
+
(0, globals_1.expect)(updateInitialData(fieldValueOf(['x', 'y', 'z']))).toEqual([0x78, 0x79, 0x7a]);
|
|
85
|
+
});
|
|
86
|
+
const updateData = (data, newValue) => mySiArray.updateData(immutable_1.default.List(data), newValue).toJS();
|
|
87
|
+
(0, globals_1.test)('updateData modify undefined', () => {
|
|
88
|
+
(0, globals_1.expect)(() => updateData([], ['x', 'y', 'z'])).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
89
|
+
(0, globals_1.expect)(() => updateData([], ['x'])).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
90
|
+
(0, globals_1.expect)(() => updateData([], fieldValueOf(['x']))).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
91
|
+
(0, globals_1.expect)(() => updateData([undefined, 0x00, 0x00], ['x', 'y', 'z'])).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
92
|
+
(0, globals_1.expect)(() => updateData([0x00, undefined, 0x00], ['x', 'y', 'z'])).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
93
|
+
(0, globals_1.expect)(() => updateData([0x00, 0x00, undefined], ['x', 'y', 'z'])).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
94
|
+
(0, globals_1.expect)(() => updateData([0x78, undefined, undefined], ['x', 'y'])).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
95
|
+
});
|
|
96
|
+
(0, globals_1.test)('updateData with undefined data', () => {
|
|
97
|
+
(0, globals_1.expect)(updateData([0x00, 0x00, 0x00], ['x', undefined, 'z'])).toEqual([0x78, 0x00, 0x7a]);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=SiArray.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiArray.test.js","sourceRoot":"","sources":["../../src/storage/SiArray.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ISiDataType, type ISiStorageData, ValueFromStringError } from './interfaces';
|
|
2
|
+
import { SiDataType } from './SiDataType';
|
|
3
|
+
export declare class SiBool extends SiDataType<boolean> implements ISiDataType<boolean> {
|
|
4
|
+
private byteOffset;
|
|
5
|
+
private bitOffset;
|
|
6
|
+
constructor(byteOffset: number, bitOffset?: number);
|
|
7
|
+
typeSpecificIsValueValid(_value: boolean): boolean;
|
|
8
|
+
typeSpecificValueToString(value: boolean): string;
|
|
9
|
+
typeSpecificValueFromString(string: string): boolean | ValueFromStringError;
|
|
10
|
+
typeSpecificExtractFromData(data: ISiStorageData): boolean | undefined;
|
|
11
|
+
typeSpecificUpdateData(data: ISiStorageData, newValue: boolean): ISiStorageData;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=SiBool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiBool.d.ts","sourceRoot":"","sources":["../../src/storage/SiBool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAA4B,UAAU,EAAE,MAAM,cAAc,CAAC;AAEpE,qBAAa,MAAO,SAAQ,UAAU,CAAC,OAAO,CAAE,YAAW,WAAW,CAAC,OAAO,CAAC;IAClE,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,SAAS;gBAArC,UAAU,EAAE,MAAM,EAAU,SAAS,GAAE,MAAU;IAIrE,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAIlD,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAIjD,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,oBAAoB;IAW3E,2BAA2B,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS;IAQtE,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,GAAG,cAAc;CAU/E"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SiBool = void 0;
|
|
4
|
+
const interfaces_1 = require("./interfaces");
|
|
5
|
+
const SiDataType_1 = require("./SiDataType");
|
|
6
|
+
class SiBool extends SiDataType_1.SiDataType {
|
|
7
|
+
constructor(byteOffset, bitOffset = 0) {
|
|
8
|
+
super();
|
|
9
|
+
this.byteOffset = byteOffset;
|
|
10
|
+
this.bitOffset = bitOffset;
|
|
11
|
+
}
|
|
12
|
+
typeSpecificIsValueValid(_value) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
typeSpecificValueToString(value) {
|
|
16
|
+
return value ? 'true' : 'false';
|
|
17
|
+
}
|
|
18
|
+
typeSpecificValueFromString(string) {
|
|
19
|
+
const valueByString = {
|
|
20
|
+
true: true,
|
|
21
|
+
false: false
|
|
22
|
+
};
|
|
23
|
+
if (valueByString[string] === undefined) {
|
|
24
|
+
return new interfaces_1.ValueFromStringError(`Value for ${this.constructor.name} must be "true" or "false", not "${string}"`);
|
|
25
|
+
}
|
|
26
|
+
return valueByString[string];
|
|
27
|
+
}
|
|
28
|
+
typeSpecificExtractFromData(data) {
|
|
29
|
+
const existingByte = data.get(this.byteOffset);
|
|
30
|
+
if (existingByte === undefined) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
return ((existingByte >> this.bitOffset) & 0x01) === 0x01;
|
|
34
|
+
}
|
|
35
|
+
typeSpecificUpdateData(data, newValue) {
|
|
36
|
+
const boolAsInt = newValue ? 0x01 : 0x00;
|
|
37
|
+
const preservationMask = (0x01 << this.bitOffset) ^ 0xff;
|
|
38
|
+
const existingByte = data.get(this.byteOffset);
|
|
39
|
+
if (existingByte === undefined) {
|
|
40
|
+
throw new SiDataType_1.ModifyUndefinedException();
|
|
41
|
+
}
|
|
42
|
+
const newByte = (existingByte & preservationMask) | (boolAsInt << this.bitOffset);
|
|
43
|
+
return data.set(this.byteOffset, newByte);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.SiBool = SiBool;
|
|
47
|
+
//# sourceMappingURL=SiBool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiBool.js","sourceRoot":"","sources":["../../src/storage/SiBool.ts"],"names":[],"mappings":";;;AACA,6CAA2F;AAC3F,6CAAoE;AAEpE,MAAa,MAAO,SAAQ,uBAAmB;IAC9C,YAAoB,UAAkB,EAAU,YAAoB,CAAC;QACpE,KAAK,EAAE,CAAC;QADW,eAAU,GAAV,UAAU,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAY;IAErE,CAAC;IAED,wBAAwB,CAAC,MAAe;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yBAAyB,CAAC,KAAc;QACvC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,2BAA2B,CAAC,MAAc;QACzC,MAAM,aAAa,GAA+B;YACjD,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;SACZ,CAAC;QACF,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,IAAI,iCAAoB,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,IAAI,oCAAoC,MAAM,GAAG,CAAC,CAAC;QAClH,CAAC;QACD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,2BAA2B,CAAC,IAAoB;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3D,CAAC;IAED,sBAAsB,CAAC,IAAoB,EAAE,QAAiB;QAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,MAAM,gBAAgB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,qCAAwB,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;CACD;AA1CD,wBA0CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiBool.test.d.ts","sourceRoot":"","sources":["../../src/storage/SiBool.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const globals_1 = require("@jest/globals");
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const interfaces_1 = require("./interfaces");
|
|
9
|
+
const SiDataType_1 = require("./SiDataType");
|
|
10
|
+
const SiFieldValue_1 = require("./SiFieldValue");
|
|
11
|
+
const SiBool_1 = require("./SiBool");
|
|
12
|
+
(0, globals_1.describe)('SiBool', () => {
|
|
13
|
+
const mySiBool = new SiBool_1.SiBool(0x00, 4);
|
|
14
|
+
const myOtherSiBool = new SiBool_1.SiBool(0x00);
|
|
15
|
+
const fieldValueOf = (boolValue) => new SiFieldValue_1.SiFieldValue(mySiBool, boolValue);
|
|
16
|
+
(0, globals_1.test)('typeCheckValue', () => {
|
|
17
|
+
(0, globals_1.expect)(mySiBool.isValueValid(false)).toBe(true);
|
|
18
|
+
(0, globals_1.expect)(mySiBool.isValueValid(true)).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
(0, globals_1.test)('valueToString', () => {
|
|
21
|
+
(0, globals_1.expect)(mySiBool.valueToString(false)).toBe('false');
|
|
22
|
+
(0, globals_1.expect)(mySiBool.valueToString(true)).toBe('true');
|
|
23
|
+
});
|
|
24
|
+
(0, globals_1.test)('valueFromString', () => {
|
|
25
|
+
(0, globals_1.expect)(mySiBool.valueFromString('false')).toBe(false);
|
|
26
|
+
(0, globals_1.expect)(mySiBool.valueFromString('true')).toBe(true);
|
|
27
|
+
(0, globals_1.expect)(mySiBool.valueFromString('test') instanceof interfaces_1.ValueFromStringError).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
(0, globals_1.test)('extractFromData gives field value', () => {
|
|
30
|
+
const data = immutable_1.default.List([0x00]);
|
|
31
|
+
const fieldValue = mySiBool.extractFromData(data);
|
|
32
|
+
(0, globals_1.expect)(fieldValue instanceof SiFieldValue_1.SiFieldValue).toBe(true);
|
|
33
|
+
(0, globals_1.expect)(fieldValue.field).toBe(mySiBool);
|
|
34
|
+
(0, globals_1.expect)(fieldValue.value).toBe(false);
|
|
35
|
+
});
|
|
36
|
+
(0, globals_1.test)('extractFromData', () => {
|
|
37
|
+
const getExtractedFieldValue = (bytes) => mySiBool.extractFromData(immutable_1.default.List(bytes));
|
|
38
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x00]).value).toBe(false);
|
|
39
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x10]).value).toBe(true);
|
|
40
|
+
(0, globals_1.expect)(getExtractedFieldValue([0xff]).value).toBe(true);
|
|
41
|
+
(0, globals_1.expect)(getExtractedFieldValue([undefined])).toBe(undefined);
|
|
42
|
+
(0, globals_1.expect)(getExtractedFieldValue([])).toBe(undefined);
|
|
43
|
+
});
|
|
44
|
+
(0, globals_1.test)('extractFromData other', () => {
|
|
45
|
+
const getExtractedFieldValue = (bytes) => myOtherSiBool.extractFromData(immutable_1.default.List(bytes));
|
|
46
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x00]).value).toBe(false);
|
|
47
|
+
(0, globals_1.expect)(getExtractedFieldValue([0x01]).value).toBe(true);
|
|
48
|
+
(0, globals_1.expect)(getExtractedFieldValue([0xff]).value).toBe(true);
|
|
49
|
+
(0, globals_1.expect)(getExtractedFieldValue([undefined])).toBe(undefined);
|
|
50
|
+
(0, globals_1.expect)(getExtractedFieldValue([])).toBe(undefined);
|
|
51
|
+
});
|
|
52
|
+
(0, globals_1.test)('updateData', () => {
|
|
53
|
+
const updateData = (data, newValue) => mySiBool.updateData(immutable_1.default.List(data), newValue).toJS();
|
|
54
|
+
(0, globals_1.expect)(updateData([0x10], false)).toEqual([0x00]);
|
|
55
|
+
(0, globals_1.expect)(updateData([0xff], false)).toEqual([0xef]);
|
|
56
|
+
(0, globals_1.expect)(updateData([0x00], true)).toEqual([0x10]);
|
|
57
|
+
(0, globals_1.expect)(updateData([0xef], true)).toEqual([0xff]);
|
|
58
|
+
(0, globals_1.expect)(updateData([0x10], fieldValueOf(false))).toEqual([0x00]);
|
|
59
|
+
(0, globals_1.expect)(updateData([0x00], fieldValueOf(true))).toEqual([0x10]);
|
|
60
|
+
});
|
|
61
|
+
(0, globals_1.test)('updateData other', () => {
|
|
62
|
+
const updateData = (data, newValue) => myOtherSiBool.updateData(immutable_1.default.List(data), newValue).toJS();
|
|
63
|
+
(0, globals_1.expect)(updateData([0x01], false)).toEqual([0x00]);
|
|
64
|
+
(0, globals_1.expect)(updateData([0xff], false)).toEqual([0xfe]);
|
|
65
|
+
(0, globals_1.expect)(updateData([0x00], true)).toEqual([0x01]);
|
|
66
|
+
(0, globals_1.expect)(updateData([0xfe], true)).toEqual([0xff]);
|
|
67
|
+
(0, globals_1.expect)(updateData([0x01], fieldValueOf(false))).toEqual([0x00]);
|
|
68
|
+
(0, globals_1.expect)(updateData([0x00], fieldValueOf(true))).toEqual([0x01]);
|
|
69
|
+
});
|
|
70
|
+
(0, globals_1.test)('updateData modify undefined', () => {
|
|
71
|
+
const updateData = (data, newValue) => mySiBool.updateData(immutable_1.default.List(data), newValue).toJS();
|
|
72
|
+
(0, globals_1.expect)(() => updateData([], false)).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
73
|
+
(0, globals_1.expect)(() => updateData([], true)).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
74
|
+
(0, globals_1.expect)(() => updateData([], fieldValueOf(false))).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
75
|
+
(0, globals_1.expect)(() => updateData([], fieldValueOf(true))).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
76
|
+
(0, globals_1.expect)(() => updateData([undefined], false)).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
77
|
+
(0, globals_1.expect)(() => updateData([undefined], true)).toThrow(SiDataType_1.ModifyUndefinedException);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=SiBool.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiBool.test.js","sourceRoot":"","sources":["../../src/storage/SiBool.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ISiStorageData, ValueToStringError, ValueFromStringError } from './interfaces';
|
|
2
|
+
import { SiFieldValue } from './SiFieldValue';
|
|
3
|
+
export declare class ModifyUndefinedException {
|
|
4
|
+
message: string;
|
|
5
|
+
constructor(message?: string);
|
|
6
|
+
}
|
|
7
|
+
export declare abstract class SiDataType<T> {
|
|
8
|
+
isValueValid(value: T): boolean;
|
|
9
|
+
abstract typeSpecificIsValueValid(_value: T): boolean | never;
|
|
10
|
+
valueToString(value: T): string | ValueToStringError;
|
|
11
|
+
abstract typeSpecificValueToString(_value: T): string | ValueToStringError | never;
|
|
12
|
+
valueFromString(string: string): T | ValueFromStringError;
|
|
13
|
+
abstract typeSpecificValueFromString(_string: string): T | ValueFromStringError | never;
|
|
14
|
+
extractFromData(data: ISiStorageData): SiFieldValue<T> | undefined;
|
|
15
|
+
abstract typeSpecificExtractFromData(_data: ISiStorageData): T | undefined | never;
|
|
16
|
+
updateData(data: ISiStorageData, newValue: T | SiFieldValue<T>): ISiStorageData;
|
|
17
|
+
abstract typeSpecificUpdateData(data: ISiStorageData, _newValue: T): ISiStorageData | never;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=SiDataType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiDataType.d.ts","sourceRoot":"","sources":["../../src/storage/SiDataType.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,wBAAwB;IAG5B,OAAO,EAAE,MAAM;gBAAf,OAAO,GAAE,MAAW;CAE5B;AAED,8BAAsB,UAAU,CAAC,CAAC;IACjC,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAI/B,QAAQ,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,KAAK;IAE7D,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,kBAAkB;IAOpD,QAAQ,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,kBAAkB,GAAG,KAAK;IAElF,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,oBAAoB;IAWzD,QAAQ,CAAC,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,oBAAoB,GAAG,KAAK;IAEvF,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS;IAQlE,QAAQ,CAAC,2BAA2B,CAAC,KAAK,EAAE,cAAc,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK;IAElF,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc;IAQ/E,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,GAAG,cAAc,GAAG,KAAK;CAC3F"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SiDataType = exports.ModifyUndefinedException = void 0;
|
|
4
|
+
const interfaces_1 = require("./interfaces");
|
|
5
|
+
const SiFieldValue_1 = require("./SiFieldValue");
|
|
6
|
+
class ModifyUndefinedException {
|
|
7
|
+
// eslint-disable-next-line no-useless-constructor
|
|
8
|
+
constructor(message = '' // eslint-disable-next-line no-empty-function
|
|
9
|
+
) {
|
|
10
|
+
this.message = message;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ModifyUndefinedException = ModifyUndefinedException;
|
|
14
|
+
class SiDataType {
|
|
15
|
+
isValueValid(value) {
|
|
16
|
+
return this.typeSpecificIsValueValid(value);
|
|
17
|
+
}
|
|
18
|
+
valueToString(value) {
|
|
19
|
+
if (!this.isValueValid(value)) {
|
|
20
|
+
return new interfaces_1.ValueToStringError(`Value "${value}" is invalid`);
|
|
21
|
+
}
|
|
22
|
+
return this.typeSpecificValueToString(value);
|
|
23
|
+
}
|
|
24
|
+
valueFromString(string) {
|
|
25
|
+
const value = this.typeSpecificValueFromString(string);
|
|
26
|
+
if (value instanceof interfaces_1.ValueFromStringError) {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
if (!this.isValueValid(value)) {
|
|
30
|
+
return new interfaces_1.ValueFromStringError(`Value "${value}" is invalid`);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
extractFromData(data) {
|
|
35
|
+
const extractedValue = this.typeSpecificExtractFromData(data);
|
|
36
|
+
if (extractedValue === undefined) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
return new SiFieldValue_1.SiFieldValue(this, extractedValue);
|
|
40
|
+
}
|
|
41
|
+
updateData(data, newValue) {
|
|
42
|
+
const valueForUpdate = newValue instanceof SiFieldValue_1.SiFieldValue ? newValue.value : newValue;
|
|
43
|
+
if (!this.typeSpecificIsValueValid(valueForUpdate)) {
|
|
44
|
+
throw new TypeError();
|
|
45
|
+
}
|
|
46
|
+
return this.typeSpecificUpdateData(data, valueForUpdate);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.SiDataType = SiDataType;
|
|
50
|
+
//# sourceMappingURL=SiDataType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiDataType.js","sourceRoot":"","sources":["../../src/storage/SiDataType.ts"],"names":[],"mappings":";;;AACA,6CAA6F;AAC7F,iDAA8C;AAE9C,MAAa,wBAAwB;IACpC,kDAAkD;IAClD,YACQ,UAAkB,EAAE,CAAC,6CAA6C;;QAAlE,YAAO,GAAP,OAAO,CAAa;IACzB,CAAC;CACJ;AALD,4DAKC;AAED,MAAsB,UAAU;IAC/B,YAAY,CAAC,KAAQ;QACpB,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAID,aAAa,CAAC,KAAQ;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,+BAAkB,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAID,eAAe,CAAC,MAAc;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,KAAK,YAAY,iCAAoB,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,iCAAoB,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAID,eAAe,CAAC,IAAoB;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,2BAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC;IAID,UAAU,CAAC,IAAoB,EAAE,QAA6B;QAC7D,MAAM,cAAc,GAAG,QAAQ,YAAY,2BAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,cAAmB,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,SAAS,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAmB,CAAC,CAAC;IAC/D,CAAC;CAGD;AAhDD,gCAgDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiDataType.test.d.ts","sourceRoot":"","sources":["../../src/storage/SiDataType.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const globals_1 = require("@jest/globals");
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
9
|
+
const interfaces_1 = require("./interfaces");
|
|
10
|
+
const SiFieldValue_1 = require("./SiFieldValue");
|
|
11
|
+
const SiDataType_1 = require("./SiDataType");
|
|
12
|
+
(0, globals_1.describe)('SiDataType', () => {
|
|
13
|
+
class MyType extends SiDataType_1.SiDataType {
|
|
14
|
+
typeSpecificIsValueValid(value) {
|
|
15
|
+
return lodash_1.default.isInteger(value);
|
|
16
|
+
}
|
|
17
|
+
typeSpecificValueToString(value) {
|
|
18
|
+
return `->${value}<-`;
|
|
19
|
+
}
|
|
20
|
+
typeSpecificValueFromString(string) {
|
|
21
|
+
const res = /^->(.*)<-$/.exec(string);
|
|
22
|
+
if (!res) {
|
|
23
|
+
return new interfaces_1.ValueFromStringError();
|
|
24
|
+
}
|
|
25
|
+
return parseInt(res[1], 10);
|
|
26
|
+
}
|
|
27
|
+
typeSpecificExtractFromData(data) {
|
|
28
|
+
const byte = data.get(0);
|
|
29
|
+
if (byte === undefined) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
return byte;
|
|
33
|
+
}
|
|
34
|
+
typeSpecificUpdateData(data, newValue) {
|
|
35
|
+
return data.set(0, newValue);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const myField = new MyType();
|
|
39
|
+
const fieldValueOf = (intValue) => new SiFieldValue_1.SiFieldValue(myField, intValue);
|
|
40
|
+
(0, globals_1.test)('valueToString', () => {
|
|
41
|
+
(0, globals_1.expect)(myField.valueToString(41)).toBe('->41<-');
|
|
42
|
+
});
|
|
43
|
+
(0, globals_1.test)('valueFromString', () => {
|
|
44
|
+
(0, globals_1.expect)(myField.valueFromString('->41<-')).toBe(41);
|
|
45
|
+
(0, globals_1.expect)(myField.valueFromString('41') instanceof interfaces_1.ValueFromStringError).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
(0, globals_1.test)('extractFromData', () => {
|
|
48
|
+
const getExtractedFieldValue = (field, bytes) => field.extractFromData(immutable_1.default.List(bytes));
|
|
49
|
+
(0, globals_1.expect)(getExtractedFieldValue(myField, [0x61]).value).toBe(0x61);
|
|
50
|
+
(0, globals_1.expect)(getExtractedFieldValue(myField, [undefined])).toBe(undefined);
|
|
51
|
+
(0, globals_1.expect)(getExtractedFieldValue(myField, [])).toBe(undefined);
|
|
52
|
+
});
|
|
53
|
+
(0, globals_1.test)('updateData', () => {
|
|
54
|
+
const updateData = (field, data, newValue) => field.updateData(immutable_1.default.List(data), newValue).toJS();
|
|
55
|
+
(0, globals_1.expect)(updateData(myField, [0x00], 0x61)).toEqual([0x61]);
|
|
56
|
+
(0, globals_1.expect)(updateData(myField, [0x00], fieldValueOf(0x61))).toEqual([0x61]);
|
|
57
|
+
});
|
|
58
|
+
//
|
|
59
|
+
// test('SiStorage plain SiDataType', () => {
|
|
60
|
+
// class WeirdStorage extends SiStorage {
|
|
61
|
+
// public static size = 0x01;
|
|
62
|
+
// public static definitions = {
|
|
63
|
+
// wtf: new MyType(),
|
|
64
|
+
// };
|
|
65
|
+
// }
|
|
66
|
+
//
|
|
67
|
+
// const myWeirdStorage = new WeirdStorage(
|
|
68
|
+
// utils.unPrettyHex('00'),
|
|
69
|
+
// );
|
|
70
|
+
//
|
|
71
|
+
// expect(() => myWeirdStorage.get('wtf')).toThrow();
|
|
72
|
+
// expect(() => myWeirdStorage.set('wtf', 0xFFFFFFFF)).toThrow();
|
|
73
|
+
// expect(myWeirdStorage.data.toJS()).toEqual(utils.unPrettyHex('00'));
|
|
74
|
+
//
|
|
75
|
+
// expect(myWeirdStorage.get('inexistent')).toBe(undefined);
|
|
76
|
+
// myWeirdStorage.set('inexistent', 0xFFFFFFFF);
|
|
77
|
+
// expect(myWeirdStorage.data.toJS()).toEqual(utils.unPrettyHex('00'));
|
|
78
|
+
// });
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=SiDataType.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiDataType.test.js","sourceRoot":"","sources":["../../src/storage/SiDataType.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ISiDataType, type ISiStorageData, ValueFromStringError } from './interfaces';
|
|
2
|
+
import { SiDataType } from './SiDataType';
|
|
3
|
+
export type SiDictValue<T> = {
|
|
4
|
+
[key in keyof T]: T[key] | undefined;
|
|
5
|
+
};
|
|
6
|
+
export type SiPartialDictValue<T> = {
|
|
7
|
+
[key in keyof T]?: T[key];
|
|
8
|
+
};
|
|
9
|
+
export declare class SiDict<T> extends SiDataType<SiDictValue<T>> implements ISiDataType<SiDictValue<T>> {
|
|
10
|
+
readonly definitionDict: {
|
|
11
|
+
[key in keyof T]: ISiDataType<T[key]>;
|
|
12
|
+
};
|
|
13
|
+
constructor(definitionDict: {
|
|
14
|
+
[key in keyof T]: ISiDataType<T[key]>;
|
|
15
|
+
});
|
|
16
|
+
typeSpecificIsValueValid(value: SiDictValue<T>): boolean;
|
|
17
|
+
typeSpecificValueToString(value: SiDictValue<T>): string;
|
|
18
|
+
typeSpecificValueFromString(_string: string): ValueFromStringError;
|
|
19
|
+
typeSpecificExtractFromData(data: ISiStorageData): SiDictValue<T>;
|
|
20
|
+
typeSpecificUpdateData(data: ISiStorageData, newValue: SiDictValue<T>): ISiStorageData;
|
|
21
|
+
get keysOfT(): (keyof T)[];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=SiDict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiDict.d.ts","sourceRoot":"","sources":["../../src/storage/SiDict.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;CAAE,CAAC;AACtE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;KAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;CAAE,CAAC;AAElE,qBAAa,MAAM,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aACnE,cAAc,EAAE;SAAG,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAAE;gBAAzD,cAAc,EAAE;SAAG,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAAE;IAIrF,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAIxD,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM;IAexD,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;IAIlE,2BAA2B,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC;IAajE,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc;IAStF,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAEzB;CACD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SiDict = void 0;
|
|
4
|
+
const interfaces_1 = require("./interfaces");
|
|
5
|
+
const SiDataType_1 = require("./SiDataType");
|
|
6
|
+
class SiDict extends SiDataType_1.SiDataType {
|
|
7
|
+
constructor(definitionDict) {
|
|
8
|
+
super();
|
|
9
|
+
this.definitionDict = definitionDict;
|
|
10
|
+
}
|
|
11
|
+
typeSpecificIsValueValid(value) {
|
|
12
|
+
return this.keysOfT.every((key) => value[key] !== undefined);
|
|
13
|
+
}
|
|
14
|
+
typeSpecificValueToString(value) {
|
|
15
|
+
return this.keysOfT
|
|
16
|
+
.map((key) => {
|
|
17
|
+
const definition = this.definitionDict[key];
|
|
18
|
+
const itemValue = value[key];
|
|
19
|
+
if (itemValue === undefined) {
|
|
20
|
+
return `${String(key)}: ?`;
|
|
21
|
+
}
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
const itemValueString = definition.valueToString(itemValue);
|
|
24
|
+
return `${String(key)}: ${itemValueString}`;
|
|
25
|
+
})
|
|
26
|
+
.join(', ');
|
|
27
|
+
}
|
|
28
|
+
typeSpecificValueFromString(_string) {
|
|
29
|
+
return new interfaces_1.ValueFromStringError(`${this.constructor.name} does not support string parsing`);
|
|
30
|
+
}
|
|
31
|
+
typeSpecificExtractFromData(data) {
|
|
32
|
+
const dictValue = {};
|
|
33
|
+
this.keysOfT.forEach((key) => {
|
|
34
|
+
const definition = this.definitionDict[key];
|
|
35
|
+
const itemFieldValue = definition.extractFromData(data);
|
|
36
|
+
if (itemFieldValue === undefined) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
dictValue[key] = itemFieldValue.value;
|
|
40
|
+
});
|
|
41
|
+
return dictValue;
|
|
42
|
+
}
|
|
43
|
+
typeSpecificUpdateData(data, newValue) {
|
|
44
|
+
let tempData = data;
|
|
45
|
+
this.keysOfT.forEach((key) => {
|
|
46
|
+
const definition = this.definitionDict[key];
|
|
47
|
+
tempData = definition.updateData(tempData, newValue[key]);
|
|
48
|
+
});
|
|
49
|
+
return tempData;
|
|
50
|
+
}
|
|
51
|
+
get keysOfT() {
|
|
52
|
+
return Object.keys(this.definitionDict);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.SiDict = SiDict;
|
|
56
|
+
//# sourceMappingURL=SiDict.js.map
|