diff --git a/.gitignore b/.gitignore index 34e0d77..c942b3c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *~ +.vscode node_modules dist src/css/*.css diff --git a/README.md b/README.md index 760a994..f7b2e97 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,16 @@ Chargy is a transparency software for secure and transparent e-mobility charging ## Versions and Milestones -The current version of the Chargy Transparency Software is 1.0.x. This version is *feature complete* and currently under review by the [Physikalisch-Technische Bundesanstalt](https://www.ptb.de) and other regulators. If you are a charge point vendor and want to use this software to verify your compliance to the German Eichrecht you can talk to your partner [chargeIT mobility](https://www.chargeit-mobility.com) and obtain the required legal documents. If you need help with the Chargy software, talk to us. +Version 1.0.x of the Chargy Transparency Software was reviewed and certified by [Physikalisch-Technische Bundesanstalt (PTB)](https://www.ptb.de). If you are a charge point vendor and want to use this software to verify the compliance with the German Eichrecht you can talk to our partner [chargeIT mobility](https://www.chargeit-mobility.com) and obtain the required legal documents. -The development of version [v1.1](https://github.com/OpenChargingCloud/ChargyDesktopApp/tree/v1.1) already started and will focus on a better seperation of core software and the chargeIT edition (white labeling), better security concepts and more digital certificates. +Version 1.2.x of the Chargy Transparency Software was reviewed and certified by [Verband der Elektrotechnik Elektronik Informationstechnik e.V. (VDE)](https://www.vde.com/de). If you are a charge point vendor and want to use this software to verify the compliance with the German Eichrecht you can talk to our partner [ChargePoint](https://www.chargepoint.com/de-de/) and obtain the required legal documents. +If you need help with the Chargy Transparency Software or want to include your smarty energy meter or transparency data format, talk to [us](https://open.charging.cloud). +The development of version [v1.3](https://github.com/OpenChargingCloud/ChargyDesktopApp/tree/v1.3) already started and will focus on enhanced security concepts, more digital certificates and pricing information. + +## Awards + +The Chargy Transparency Software is one of the winners of the [1. Thuringia's Open-Source Prize](https://www.it-leistungsschau.de/programm/TOSP2019/) in March 2019. This prize was awarded by [Wolfgang Tiefensee](https://de.wikipedia.org/wiki/Wolfgang_Tiefensee), [Thuringia’s Secretary of Commerce](https://www.thueringen.de/th6/tmwwdg/), in conjunction with the board of directors of the IT industry network [ITNet Thuringia](https://www.itnet-th.de). + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-01_SAFEContainer_Fails.xml b/documentation/Alfen/ALFEN-Testdatensatz-01_SAFEContainer_Fails.xml new file mode 100644 index 0000000..d47092f --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-01_SAFEContainer_Fails.xml @@ -0,0 +1,12 @@ + + + + + AP;0;3;AJ2J7LYMGCIWT4AHUJPPFIIVB3FGRV2JQ2HVZG2I;BIHEIWSHAAA2WZUZOYYDCNWTWAFACRC2I4ADGAEDQ4AAAABASMBFSAHY2JWF2AIAAEEAB7Y6ABUVEAAAAAAAAABQGQ2EMNCFIVATANRVII4DAAAAAAAAAAADAAAAABIAAAAA====;S27J5BHL22ZBNFYTHTK433G7VU7Z6NN4JKO5DNPE7FNMT3SM3ZJGVWJ6ZKUOKE2LK4W63JYP4E6CY===; + + + + AP;1;3;AJ2J7LYMGCIWT4AHUJPPFIIVB3FGRV2JQ2HVZG2I;BIHEIWSHAAA2WZUZOYYDCNWTWAFACRC2I4ADGAEDQ4AAAAAQEMWVSAASAAAAAAIAAEEAB7Y6ABXFEAAAAAAAAABQGQ2EMNCFIVATANRVII4DAAAAAAAAAAADAAAAABQAAAAA====;MVYFHY24SFHI35DSXBSXRFMQP4OLYVO77TIQ6REROGCPWHY36AXIU4FD4W4Q2AHBZSNJXWCIRXAGS===; + + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-02_SAFEContainer_Fails.xml b/documentation/Alfen/ALFEN-Testdatensatz-02_SAFEContainer_Fails.xml new file mode 100644 index 0000000..216af00 --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-02_SAFEContainer_Fails.xml @@ -0,0 +1,14 @@ + + + + + AP;0;3;AJB42AIR7NC5W5MCFWZHMIQD7SSYVIUCHYEJ7Z2E;BIHEIWSHAAA2WZUSOYYDCNWTWAFACRC2I4ADGAEFAYAAAABA6SLUQAB2NSTVYAIAAEEAB7Y6ACJVQAAAAAAAAABQGQ3UCN2BIJAUKMBVIM4DCAAAAAAAAAATAAAAAIYAAAAA====;X736PV2AD3IVH5LQJ4SPMZLMYNZNGOUBNLF23B7UBYAFOV6KXVPIMIVZJLKBNLJVSQAN7DJLMTWL2===; + + + + + AP;1;3;AJB42AIR7NC5W5MCFWZHMIQD7SSYVIUCHYEJ7Z2E;BIHEIWSHAAA2WZUSOYYDCNWTWAFACRC2I4ADGAEFAYAAAAAQA6EEQACPLSTVYAIAAEEAB7Y6AD6VOAAAAAAAAABQGQ3UCN2BIJAUKMBVIM4DCAAAAAAAAAALAAAAAFAAAAAA====;AD5RV74PJ5NCCONJFIHFA6ZGO5DDY6YK72W6MV427B7T26VSIU6WBNBMPNXTFLB7RD35QYRAN2TQY===; + + + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-03_SAFEContainer.xml b/documentation/Alfen/ALFEN-Testdatensatz-03_SAFEContainer.xml new file mode 100644 index 0000000..ae5b5b3 --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-03_SAFEContainer.xml @@ -0,0 +1,39 @@ + + + + + + DE*GEF*STATION*CI*TESTS*1*A + + GraphDefined Charging Station - CI-Tests Pool 1 / Station A + + 3.0.25.2089 + + + 50.387945 + 10.4304 + + + + + DE*GEF*EVSE*CI*TESTS*1*A*1 + + GraphDefined EVSE - CI-Tests Pool 1 / Station A / EVSE 1 + + Type-2 + + + + + + + AP;0;3;AJB42AIR7NC5W5MCFWZHMIQD7SSYVIUCHYEJ7Z2E;BIHEIWSHAAA2WZUSOYYDCNWTWAFACRC2I4ADGAEFAYAAAABA6SLUQAB2NSTVYAIAAEEAB7Y6ACJVQAAAAAAAAABQGQ3UCN2BIJAUKMBVIM4DCAAAAAAAAAATAAAAAIYAAAAA====;X736PV2AD3IVH5LQJ4SPMZLMYNZNGOUBNLF23B7UBYAFOV6KXVPIMIVZJLKBNLJVSQAN7DJLMTWL2===; + + + + + AP;0;3;AJB42AIR7NC5W5MCFWZHMIQD7SSYVIUCHYEJ7Z2E;BIHEIWSHAAA2WZUSOYYDCNWTWAFACRC2I4ADGAEFAYAAAABA6SLUQAB2NSTVYAIAAEEAB7Y6ACJVQAAAAAAAAABQGQ3UCN2BIJAUKMBVIM4DCAAAAAAAAAATAAAAAIYAAAAA====;X736PV2AD3IVH5LQJ4SPMZLMYNZNGOUBNLF23B7UBYAFOV6KXVPIMIVZJLKBNLJVSQAN7DJLMTWL2===; + + + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-04_SAFEContainer.xml b/documentation/Alfen/ALFEN-Testdatensatz-04_SAFEContainer.xml new file mode 100644 index 0000000..be4597b --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-04_SAFEContainer.xml @@ -0,0 +1,9 @@ + + + + AP;0;3;AJB42AIR7NC5W5MCFWZHMIQD7SSYVIUCHYEJ7Z2E;BIHEIWSHAAA2WZUSOYYDCNEYHYFACRC2I4ADGAEFAYAAAABAGAECOAHX7RJFYAIAAEEAB7Y6ACLVOAAAAAAAAABTIQYTQQRWGQZAAAAAAAAAAAAAAAAAAAAIAAAAADIAAAAA====;TQ3U6KVA7TYKFPFQQI25EMVCKY7YG7YOJA3AUSPKEJBX7SLBFDSBP2TZ3PVCQZWENVIUIUPNREFF4=== + + + AP;1;3;AJB42AIR7NC5W5MCFWZHMIQD7SSYVIUCHYEJ7Z2E;BIHEIWSHAAA2WZUSOYYDCNEYHYFACRC2I4ADGAEFAYAAAAAQG4ESOAH77VJFYAIAAEEAB7Y6ADIVOAAAAAAAAABTIQYTQQRWGQZAAAAAAAAAAAAAAAAAAAAIAAAAADQAAAAA====;FXDWHV4NPWTV42APKNWPZB23RD7LOZKYOMYO3V6NYWD5BNN6JYFY6BND6T22GM4QD27UBA3EOY3IC=== + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-05_SAFEContainer.xml b/documentation/Alfen/ALFEN-Testdatensatz-05_SAFEContainer.xml new file mode 100644 index 0000000..b8825cb --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-05_SAFEContainer.xml @@ -0,0 +1,9 @@ + + + + AP;0;3;ANLPXGFCJ3QTKQFNHQKXIZNU2CRFXIGK7IJZ5X7R;BIHEIWSHAAA2WZUXOYYDCNJ7GEFACRC2I4ADGAEFDEAAAABAUWGXWAFCTOKFYAIAAEEAB7Y6ABSFOAAAAAAAAABQGU4DSOCBIJBAAAAAAAAAAAAAAAAAAAENAAAAAFYBAAAA====;IWIPHSS43FJM3XTGOQTXVLMDQ7YDF46FCK2USPEGJTHL6ABNHSZIBW4CPY4BGOA2RERHF7TVBPTXY===; + + + AP;1;3;ANLPXGFCJ3QTKQFNHQKXIZNU2CRFXIGK7IJZ5X7R;BIHEIWSHAAA2WZUXOYYDCNJ7GEFACRC2I4ADGAEFDEAAAAAQ4OGXWAHATOKFYAIAAEEAB7Y6AB5VOAAAAAAAAABQGU4DSOCBIJBAAAAAAAAAAAAAAAAAAAENAAAAAGABAAAA====;NQ2K6RS422VN2FEYJ2K7J2M52VP3FXAKRQ7SFX7PEXB7ZFRBVKBDMT4VB4PJ5J2JAFSQKLN745HWE===; + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-06_SAFEContainer.xml b/documentation/Alfen/ALFEN-Testdatensatz-06_SAFEContainer.xml new file mode 100644 index 0000000..dbc8ca9 --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-06_SAFEContainer.xml @@ -0,0 +1,9 @@ + + + + AP;0;3;ANLPXGFCJ3QTKQFNHQKXIZNU2CRFXIGK7IJZ5X7R;BIHEIWSHAAA2WZUXOYYDCNJ7GEFACRC2I4ADGAEFDEAAAABA4OFXWAHATGKFYAIAAEEAB7Y6ABAFOAAAAAAAAABQGU4DSOCBIJBAAAAAAAAAAAAAAAAAAAEMAAAAAFIBAAAA====;MGDQOD7XBMND3IKFBM52WJMLSF75S2M7RBTFIMO3XEONF3V67NGWMZ5ZEMHQQKF7OSUDFT5HKFEW4===; + + + AP;1;3;ANLPXGFCJ3QTKQFNHQKXIZNU2CRFXIGK7IJZ5X7R;BIHEIWSHAAA2WZUXOYYDCNJ7GEFACRC2I4ADGAEFDEAAAAAQPSGHWAD2TKKFYAIAAEEAB7Y6ABSFOAAAAAAAAABQGU4DSOCBIJBAAAAAAAAAAAAAAAAAAAEMAAAAAFQBAAAA====;AAJLUJOP7EKXVOPZOGVL4L7FTZ5NKVYHKOHQBXO3HEBOPSJWZTEXFU4XPUWX2IT4DCG3CJLZWFZKQ===; + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-07_SAFEContainer.xml b/documentation/Alfen/ALFEN-Testdatensatz-07_SAFEContainer.xml new file mode 100644 index 0000000..c880012 --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-07_SAFEContainer.xml @@ -0,0 +1,9 @@ + + + + AP;0;3;AL4SOT2BZ24G5RIIY7QA43BBFLBAWOZWEITEIEKP;BIHEIWSHAAA2WZUWOYYDCNJ7GEFACRC2I4ADGAEFEIAAAABAH7EGOAA5TOKFYAIAAEEAB7Y6ACLVKAAAAAAAAABTIQYTQQRWGQZAAAAAAAAAAAAAAAAAAABPAAAAAXIAAAAA====;EFY2P26WPM3X7R5NSCPESF7NXVGH2DQNKNJ53N42OCMOQIS6ZZPHYU4P6WNDBFNXNF6LYCBFA46E6===; + + + AP;1;3;AL4SOT2BZ24G5RIIY7QA43BBFLBAWOZWEITEIEKP;BIHEIWSHAAA2WZUWOYYDCNJ7GEFACRC2I4ADGAEFEIAAQAAQZXEGOAFMTOKFYAIAAEEAB7Y6ADGVKAAAAAAAAABTIQYTQQRWGQZAAAAAAAAAAAAAAAAAAABPAAAAAXQAAAAA====;GGU6KGHWSIBRHWUBKN26UBZXUV5SVGAKKGRGYNHEE2MICFUJK67KBP3KUH6ZL57F5DGLM5KBNYIBK===; + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-08_SAFEContainer.xml b/documentation/Alfen/ALFEN-Testdatensatz-08_SAFEContainer.xml new file mode 100644 index 0000000..b367e10 --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-08_SAFEContainer.xml @@ -0,0 +1,9 @@ + + + + AP;0;3;AL4SOT2BZ24G5RIIY7QA43BBFLBAWOZWEITEIEKP;BIHEIWSHAAA2WZUWOYYDCNJ7GEFACRC2I4ADGAEFEIAAAABAQXDGOADFTGKFYAIAAEEAB7Y6ABTFKAAAAAAAAABQGU4DSOCBIJBAAAAAAAAAAAAAAAAAAABNAAAAAWIAAAAA====;JD2FSPWSXL5GXMRHDWSUICXNIKWUBRIFNDQN27C5ICBXA67WO2N3BS7V2X7XZ3INWSEG6QYWGCD6O===; + + + AP;1;3;AL4SOT2BZ24G5RIIY7QA43BBFLBAWOZWEITEIEKP;BIHEIWSHAAA2WZUWOYYDCNJ7GEFACRC2I4ADGAEFEIAAQAAQZHDGOAFITGKFYAIAAEEAB7Y6AB7VKAAAAAAAAABQGU4DSOCBIJBAAAAAAAAAAAAAAAAAAABNAAAAAWQAAAAA====;SCE5LY6WLHCADM2YERQ6BCBPN5DJ6Y3GKS3B27SYRIEOLA3A7SKGXZN2LUGXGVWVY7JQQUWLNNU72===; + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-09_SAFEContainer.xml b/documentation/Alfen/ALFEN-Testdatensatz-09_SAFEContainer.xml new file mode 100644 index 0000000..6a65722 --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-09_SAFEContainer.xml @@ -0,0 +1,9 @@ + + + + AP;0;3;AL4SOT2BZ24G5RIIY7QA43BBFLBAWOZWEITEIEKP;BIHEIWSHAAA2WZUWOYYDCNJ7GEFACRC2I4ADGAEFEIAAAABABPDGOAHJTCKFYAIAAEEAB7Y6ABFFKAAAAAAAAABTIQYTQQRWGQZAAAAAAAAAAAAAAAAAAABMAAAAAVYAAAAA====;J5HFEZIIQBCZXKT72DIGU7YUVEWNOKYEMNMEBM6LNEV2LBVVVEC3NZLBVYWZFCMCBTNBU2URJNSQ2===; + + + AP;1;3;AL4SOT2BZ24G5RIIY7QA43BBFLBAWOZWEITEIEKP;BIHEIWSHAAA2WZUWOYYDCNJ7GEFACRC2I4ADGAEFEIAAAAAQKLDGOABPTGKFYAIAAEEAB7Y6ABTFKAAAAAAAAABTIQYTQQRWGQZAAAAAAAAAAAAAAAAAAABMAAAAAWAAAAAA====;VBNJJ74MM5XHUGZFB7ELQS6MPUH6CULPMOJOVDHKD2NYRFXGL2SPWQDJQI5UEGJYDGU3VQAKKADFU===; + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-10_SAFEContainer.xml b/documentation/Alfen/ALFEN-Testdatensatz-10_SAFEContainer.xml new file mode 100644 index 0000000..fe38e5f --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-10_SAFEContainer.xml @@ -0,0 +1,9 @@ + + + + AP;0;3;AJ2J7LYMGCIWT4AHUJPPFIIVB3FGRV2JQ2HVZG2I;BIHEIWSHAAA2WZUZOYYDCNWTWAFACRC2I4ADGAEDQ4AAAABABMI5UAEVRZFV4AIAAEEAB7Y6AD4N2AIAAAAAAABQGQ3DKNCGIZATKOJVGU4DAAAAAAAAAAAWAAAAAKYAAAAA====;X7KCDU5IJHGUW64LDYHYR7IXRPPSKCMWAMQOVZVRNGRX6BEIHX3TFKUDJGEMUI5W5CJFTPDEWR7F6===; + + + AP;1;3;AJ2J7LYMGCIWT4AHUJPPFIIVB3FGRV2JQ2HVZG2I;BIHEIWSHAAA2WZUZOYYDCNWTWAFACRC2I4ADGAEDQ4AAAAAQFRGNUAFWZFFV4AIAAEEAB7Y6AA7ASAQAAAAAAABQGQ3DKNCGIZATKOJVGU4DAAAAAAAAAAAWAAAAALAAAAAA====;FXINYN5UF2LKAS633476F7V2GQGBP22KBCZD3TOSJCFLCFGYAAYTVJFIA7637NKQ22CZSEB2AOJJO===; + + diff --git a/documentation/Alfen/ALFEN-Testdatensatz-10_chargeITContainer.chargy b/documentation/Alfen/ALFEN-Testdatensatz-10_chargeITContainer.chargy new file mode 100644 index 0000000..2f1e8ff --- /dev/null +++ b/documentation/Alfen/ALFEN-Testdatensatz-10_chargeITContainer.chargy @@ -0,0 +1,27 @@ +{ + "placeInfo" : { + "geoLocation" : { + "lat" : 49.731421, + "lon" : 10.147718 + }, + "address" : { + "street" : "Steigweg 24", + "town" : "Kitzingen", + "zipCode" : "97318" + }, + "evseId" : "DE*BDO*E2323234064*1" + }, + "signedMeterValues" : [ { + "payload" : "AP;0;3;AJ2J7LYMGCIWT4AHUJPPFIIVB3FGRV2JQ2HVZG2I;BIHEIWSHAAA2WZUZOYYDCNWTWAFACRC2I4ADGAEDQ4AAAABABMI5UAEVRZFV4AIAAEEAB7Y6AD4N2AIAAAAAAABQGQ3DKNCGIZATKOJVGU4DAAAAAAAAAAAWAAAAAKYAAAAA====;X7KCDU5IJHGUW64LDYHYR7IXRPPSKCMWAMQOVZVRNGRX6BEIHX3TFKUDJGEMUI5W5CJFTPDEWR7F6===;", + "format" : "ALFEN", + "formatVersion" : "0", + "encoding" : "HEX", + "manufacturer" : "Alfen BV" + }, { + "payload" : "AP;1;3;AJ2J7LYMGCIWT4AHUJPPFIIVB3FGRV2JQ2HVZG2I;BIHEIWSHAAA2WZUZOYYDCNWTWAFACRC2I4ADGAEDQ4AAAAAQFRGNUAFWZFFV4AIAAEEAB7Y6AA7ASAQAAAAAAABQGQ3DKNCGIZATKOJVGU4DAAAAAAAAAAAWAAAAALAAAAAA====;FXINYN5UF2LKAS633476F7V2GQGBP22KBCZD3TOSJCFLCFGYAAYTVJFIA7637NKQ22CZSEB2AOJJO===;", + "format" : "ALFEN", + "formatVersion" : "0", + "encoding" : "HEX", + "manufacturer" : "Alfen BV" + } ] +} diff --git a/documentation/CLI.md b/documentation/CLI.md new file mode 100644 index 0000000..32a7fe5 --- /dev/null +++ b/documentation/CLI.md @@ -0,0 +1,30 @@ +# Command Line Interface + +If you want to use Chargy within automatic tests or within scripts you can use the command line interface mode: + +``` +C:\Program Files\Chargy Transparenzsoftware ChargePoint Edition> +Chargy Transparenzsoftware ChargePoint Edition v1.2.0 +(c) 2018-2020 GraphDefined GmbH + +Usage: Chargy Transparenzsoftware ChargePoint Edition.exe [switches] file1, file2, ... + +Switches: + --help Show this information + --debug Run in debug modus and open development tools + --nogui Run in command line modus (cli mode) +``` + +A simple example how to validate a single charging session: + +``` +C:\Program Files\Chargy Transparenzsoftware>"Chargy Transparenzsoftware.exe" --nogui documentation\Alfen\ALFEN-Testdatensatz-10_chargeITContainer.chargy +Valid signature +``` + +If you need to use more than one file: + +``` +C:\Program Files\Chargy Transparenzsoftware>"Chargy Transparenzsoftware.exe" --nogui documentation\ChargePoint\Testdata-2020-02\0024b1000002e300_2_123017065_payload.tar.bz2 documentation\ChargePoint\Testdata-2020-02\0024b1000002e300_2.pem +Valid signature +``` diff --git a/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2-publicKey.chargy b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2-publicKey.chargy new file mode 100644 index 0000000..6dc0578 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2-publicKey.chargy @@ -0,0 +1,47 @@ +{ + "@context": "https://open.charging.cloud/contexts/publicKey+json", + "subject": { + "EVSEId": "0024b1000002e300_2" + }, + "type": { + "oid": "1.2.840.10045.2.1", + "name": "ecPublicKey" + }, + "algorithm": { + "oid": "1.3.132.0.32", + "name": "secp224k1" + }, + "format": "DER", + "encoding": "HEX", + "value": "04d4c176108baa683125247c8af51eb84858c9e50d8753a745e3fd299aa044826c9c9d49ce3904cd9bdc68b3b09fb39ebeaac0b9ec0ab9ad76", + "signatures": [ + { + "@context": "https://open.charging.cloud/contexts/signature+json", + "timestamp": "2020-06-21T07:28:45.130Z", + "issuer": "Open Charging Cloud - Energy Metering Public Key Certification #1", + "notBefore": "2019-11-04T16:47:01Z", + "notAfter": "2029-03-12T13:54:12Z", + "algorithm": { + "oid": "1.3.132.0.35", + "name": "secp521r1", + "description": "NIST / ANSI X9.62 named 521 - bit elliptic curve used with SHA512" + }, + "publicKey": { + "format": "DER", + "encoding": "HEX", + "value": "040182c740a82d0d9e34168e4ee9c81d535983e48383678de1011659182e5446ee71e30babe389d2c8a29498cde15b2d959ed8f63409896ca2bcdc05588e210323961e01ccb785a29b14cda193be82354091445d86ada3b5390632b19d38f57cf3d9c43f8dc3fcd02848788bedc0b17e0ca073b72c03344daf9cbc004fb1b6f5ce2fa0bd1e" + }, + "operations": { + "signMeterValues": true + }, + "signature": { + "format": "DER", + "encoding": "HEX", + "value": "30818502416c4b1d59f1f7923327618d241dc8d0847da9a92764f4b8963ada20e3ad24f5563aad2f9fc8f11925e391f091b5b21ed8f45e4bb733a620fa95a3ceb66764bb98ba02402c84be1d6bbe30612f628a06caf29e76cdc70aeca10360f2dae59249d2de0da4e63bd232be2b50f2345861ad684aeff5149f0445e5106353e994ddf61e0b447b" + }, + "comment": { + "en": "A really useful service!" + } + } + ] +} diff --git a/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2-publicKey_minimal.chargy b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2-publicKey_minimal.chargy new file mode 100644 index 0000000..fed0f91 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2-publicKey_minimal.chargy @@ -0,0 +1,23 @@ +{ + "@context": "https://open.charging.cloud/contexts/publicKey+json", + "subject": { + "EVSEId": "0024b1000002e300_2" + }, + "algorithm": "secp224k1", + "value": "04d4c176108baa683125247c8af51eb84858c9e50d8753a745e3fd299aa044826c9c9d49ce3904cd9bdc68b3b09fb39ebeaac0b9ec0ab9ad76", + "signatures": [ + { + "@context": "https://open.charging.cloud/contexts/signature+json", + "timestamp": "2020-06-21T07:59:07.456Z", + "issuer": "Open Charging Cloud - Energy Metering Public Key Certification #1", + "notBefore": "2019-11-04T16:47:01Z", + "notAfter": "2029-03-12T13:54:12Z", + "algorithm": "secp521r1", + "publicKey": "040182c740a82d0d9e34168e4ee9c81d535983e48383678de1011659182e5446ee71e30babe389d2c8a29498cde15b2d959ed8f63409896ca2bcdc05588e210323961e01ccb785a29b14cda193be82354091445d86ada3b5390632b19d38f57cf3d9c43f8dc3fcd02848788bedc0b17e0ca073b72c03344daf9cbc004fb1b6f5ce2fa0bd1e", + "operations": { + "signMeterValues": true + }, + "signature": "30818702415fb497701ea9066eaa37d9a5217397fbced09499189764c1930e24b2261dc6b8bd0bf2f36a91b3f5a6bf655fdec69d03d3bb023f6a1177f6f48408004daaf9ebf3024201c4f894ae21d1ec2d29a491abd39826fb514dce390e5050e3181198d5a64e3c88a743c6c7907b7a0357312ac7d8580e6372a01fd58012a8479b064b1c4257ec42a6" + } + ] +} diff --git a/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2.chargy b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2.chargy new file mode 100644 index 0000000..60d8ad4 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2.chargy @@ -0,0 +1,114 @@ +{ + "@id": "chargepoint-0024b1000002e300-2-55", + "@context": "https://open.charging.cloud/contexts/CTR+json", + "publicKeys": [ + { + "@id": "0024b1000002e300_2", + "type": { + "oid": "1.2.840.10045.2.1", + "description": "ecPublicKey" + }, + "curve": { + "oid": "1.3.132.0.32", + "description": "secp224k1" + }, + "value": "04d4c176108baa683125247c8af51eb84858c9e50d8753a745e3fd299aa044826c9c9d49ce3904cd9bdc68b3b09fb39ebeaac0b9ec0ab9ad76" + } + ], + "begin": "2020-02-15T10:49:18Z", + "end": "2020-02-15T13:20:02Z", + "description": { + "de": "Alle Ladevorgänge" + }, + "contract": { + "@id": "b2dd852e99433cab70ccd45dad5aff55", + "type": "userId" + }, + "chargingStationOperators": [ + { + "@id": "ChargePoint", + "description": { + "de": "Charge Point - Charging Station Operator Services" + }, + "contact": { + "email": "sales@chargepoint.com", + "web": "https://www.chargepoint.com", + "logoUrl": "https://www.chargepoint.com/themes/chargepoint/logo.svg" + }, + "support": { + "hotline": "+49(69) 95307383", + "email": "support.eu@chargepoint.com", + "web": "https://chargepoint.charging.cloud/issues" + }, + "privacy": { + "contact": "ChargePoint, Attn: Data Protection Officer, ChargePoint Network (Netherlands) B.V., Hoogoorddreef 56E, 1101BE Amsterdam", + "email": "privacy.eu@chargepoint.com ", + "web": "https://de.chargepoint.com/privacy_policy" + }, + "chargingStations": [ + { + "@id": "0024b1000002e300", + "firmwareVersion": "", + "geoLocation": null, + "address": null, + "EVSEs": [ + { + "@id": "0024b1000002e300-2", + "sockets": [ + {} + ], + "meters": [ + { + "@id": "240008S", + "vendor": "Carlo Gavazzi", + "model": "EM340-DIN.AV2.3.X.S1.X" + } + ] + } + ] + } + ] + } + ], + "chargingSessions": [ + { + "original": "ewogIm91dGxldCI6IDIsCiAic2Vzc2lvbl9pZCI6IDU1LAogInN0YXRpb25fbWFjIjogIjAwMjRiMTAwMDAwMmUzMDAiLAogImRyaXZlcl9pbmZvIjogImIyZGQ4NTJlOTk0MzNjYWI3MGNjZDQ1ZGFkNWFmZjU1IiwKICJtZXRlcl9zZXJpYWwiOiAiMjQwMDA4UyIsCiAibWV0ZXJfc3RhcnRyZWFkaW5nIjogNzQuNiwKICJtZXRlcl9lbmRyZWFkaW5nIjogODYuNiwKICJ0b3RhbF9lbmVyZ3kiOiAxMi4wLAogImVuZXJneV91bml0cyI6ICJrV2giLAogInN0YXJ0X3RpbWUiOiAxNTgxNzYzNzU4LAogImVuZF90aW1lIjogMTU4MTc3MjgwMgp9", + "signature": "303c021c2340aa91eca87ab5eb31ecfcbfec657f008a08579fa3fa4af1fbdd1b021c46122b7b1baac16fd33f51efd9ba4379e69e610758a103edcc57dc0d", + "@id": "0024b1000002e300-2-55", + "@context": "https://open.charging.cloud/contexts/SessionSignatureFormats/ChargePointCrypt01+json", + "begin": "2020-02-15T10:49:18Z", + "end": "2020-02-15T13:20:02Z", + "EVSEId": "0024b1000002e300-2", + "authorizationStart": { + "@id": "b2dd852e99433cab70ccd45dad5aff55", + "type": "userId" + }, + "chargingProductRelevance": { + "time": 2, + "energy": 3, + "parking": 2, + "sessionFee": 2 + }, + "measurements": [ + { + "energyMeterId": "240008S", + "@context": "https://open.charging.cloud/contexts/EnergyMeterSignatureFormats/ChargePointCrypt01+json", + "name": "Bezogene Energiemenge", + "obis": "1-0:1.8.0", + "unit": "kWh", + "scale": 0, + "values": [ + { + "timestamp": "2020-02-15T10:49:18Z", + "value": 74.6 + }, + { + "timestamp": "2020-02-15T13:20:02Z", + "value": 86.6 + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2.pem b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2.pem new file mode 100644 index 0000000..9ab0f62 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2.pem @@ -0,0 +1,3 @@ +-----BEGIN PUBLIC KEY----- +ME4wEAYHKoZIzj0CAQYFK4EEACADOgAE1MF2EIuqaDElJHyK9R64SFjJ5Q2HU6dF4/0pmqBEgmycnUnOOQTNm9xos7Cfs56+qsC57Aq5rXY= +-----END PUBLIC KEY----- diff --git a/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar.bz2 b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar.bz2 new file mode 100644 index 0000000..b753d5a Binary files /dev/null and b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar/secrrct b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar/secrrct new file mode 100644 index 0000000..fe16466 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar/secrrct @@ -0,0 +1,13 @@ +{ + "outlet": 2, + "session_id": 55, + "station_mac": "0024b1000002e300", + "driver_info": "b2dd852e99433cab70ccd45dad5aff55", + "meter_serial": "240008S", + "meter_startreading": 74.6, + "meter_endreading": 86.6, + "total_energy": 12.0, + "energy_units": "kWh", + "start_time": 1581763758, + "end_time": 1581772802 +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar/secrrct.sign b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar/secrrct.sign new file mode 100644 index 0000000..a7c84f7 Binary files /dev/null and b/documentation/ChargePoint/Testdata-2020-02/0024b1000002e300_2_123017065_payload.tar/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-2020-02/0124a500402e1300_2-publicKey.pem b/documentation/ChargePoint/Testdata-2020-02/0124a500402e1300_2-publicKey.pem new file mode 100644 index 0000000..b9be515 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02/0124a500402e1300_2-publicKey.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEw4TdYIkJ0f9NR5FiiS+jH6rRiju8 +aTBJnYQKMbvl+5gdYrdaLO+kSwGZl/Nhz+mUh/Zi9kn5xjMY14/41Xc6JA== +-----END PUBLIC KEY----- diff --git a/documentation/ChargePoint/Testdata-2020-02/like_0024b1000002e300_2_butWrongFileName.pem b/documentation/ChargePoint/Testdata-2020-02/like_0024b1000002e300_2_butWrongFileName.pem new file mode 100644 index 0000000..9ab0f62 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02/like_0024b1000002e300_2_butWrongFileName.pem @@ -0,0 +1,3 @@ +-----BEGIN PUBLIC KEY----- +ME4wEAYHKoZIzj0CAQYFK4EEACADOgAE1MF2EIuqaDElJHyK9R64SFjJ5Q2HU6dF4/0pmqBEgmycnUnOOQTNm9xos7Cfs56+qsC57Aq5rXY= +-----END PUBLIC KEY----- diff --git a/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-privateKey.pem b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-privateKey.pem new file mode 100644 index 0000000..1e3e41f --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-privateKey.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIMqm8LW7wkj5IllH7Dox6tGc0o4tF6ifIyqZ+WDRc19xoAoGCCqGSM49 +AwEHoUQDQgAEhPaA1TxBxFzyP9xN/iM0MpxvLwobD3YLuhtRZl0E8CtFTND0iWxq +dvL+L31zAcFLGDHe50SjLuX8yXM/CtEMqA== +-----END EC PRIVATE KEY----- diff --git a/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey.chargy b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey.chargy new file mode 100644 index 0000000..dcbd320 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey.chargy @@ -0,0 +1,47 @@ +{ + "@context": "https://open.charging.cloud/contexts/publicKey+json", + "subject": { + "EVSEId": "DE*CPI*74778874*1" + }, + "type": { + "oid": "1.2.840.10045.2.1", + "name": "ecPublicKey" + }, + "algorithm": { + "oid": "1.2.840.10045.3.1.7", + "name": "secp256r1" + }, + "format": "DER", + "encoding": "HEX", + "value": "0484f680d53c41c45cf23fdc4dfe2334329c6f2f0a1b0f760bba1b51665d04f02b454cd0f4896c6a76f2fe2f7d7301c14b1831dee744a32ee5fcc9733f0ad10ca8", + "signatures": [ + { + "@context": "https://open.charging.cloud/contexts/signature+json", + "timestamp": "2020-06-21T07:28:45.130Z", + "issuer": "Open Charging Cloud - Energy Metering Public Key Certification #1", + "notBefore": "2019-11-04T16:47:01Z", + "notAfter": "2029-03-12T13:54:12Z", + "algorithm": { + "oid": "1.3.132.0.35", + "name": "secp521r1", + "description": "NIST / ANSI X9.62 named 521 - bit elliptic curve used with SHA512" + }, + "publicKey": { + "format": "DER", + "encoding": "HEX", + "value": "040182c740a82d0d9e34168e4ee9c81d535983e48383678de1011659182e5446ee71e30babe389d2c8a29498cde15b2d959ed8f63409896ca2bcdc05588e210323961e01ccb785a29b14cda193be82354091445d86ada3b5390632b19d38f57cf3d9c43f8dc3fcd02848788bedc0b17e0ca073b72c03344daf9cbc004fb1b6f5ce2fa0bd1e" + }, + "operations": { + "signMeterValues": true + }, + "signature": { + "format": "DER", + "encoding": "HEX", + "value": "30818502416c4b1d59f1f7923327618d241dc8d0847da9a92764f4b8963ada20e3ad24f5563aad2f9fc8f11925e391f091b5b21ed8f45e4bb733a620fa95a3ceb66764bb98ba02402c84be1d6bbe30612f628a06caf29e76cdc70aeca10360f2dae59249d2de0da4e63bd232be2b50f2345861ad684aeff5149f0445e5106353e994ddf61e0b447b" + }, + "comment": { + "en": "A really useful service!" + } + } + ] +} diff --git a/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey.pem b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey.pem new file mode 100644 index 0000000..4951119 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhPaA1TxBxFzyP9xN/iM0MpxvLwob +D3YLuhtRZl0E8CtFTND0iWxqdvL+L31zAcFLGDHe50SjLuX8yXM/CtEMqA== +-----END PUBLIC KEY----- diff --git a/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey_minimal.chargy b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey_minimal.chargy new file mode 100644 index 0000000..572a319 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2-publicKey_minimal.chargy @@ -0,0 +1,23 @@ +{ + "@context": "https://open.charging.cloud/contexts/publicKey+json", + "subject": { + "EVSEId": "DE*CPI*74778874*1" + }, + "algorithm": "secp256r1", + "value": "0484f680d53c41c45cf23fdc4dfe2334329c6f2f0a1b0f760bba1b51665d04f02b454cd0f4896c6a76f2fe2f7d7301c14b1831dee744a32ee5fcc9733f0ad10ca8", + "signatures": [ + { + "@context": "https://open.charging.cloud/contexts/signature+json", + "timestamp": "2020-06-21T07:59:07.456Z", + "issuer": "Open Charging Cloud - Energy Metering Public Key Certification #1", + "notBefore": "2019-11-04T16:47:01Z", + "notAfter": "2029-03-12T13:54:12Z", + "algorithm": "secp521r1", + "publicKey": "040182c740a82d0d9e34168e4ee9c81d535983e48383678de1011659182e5446ee71e30babe389d2c8a29498cde15b2d959ed8f63409896ca2bcdc05588e210323961e01ccb785a29b14cda193be82354091445d86ada3b5390632b19d38f57cf3d9c43f8dc3fcd02848788bedc0b17e0ca073b72c03344daf9cbc004fb1b6f5ce2fa0bd1e", + "operations": { + "signMeterValues": true + }, + "signature": "30818702415fb497701ea9066eaa37d9a5217397fbced09499189764c1930e24b2261dc6b8bd0bf2f36a91b3f5a6bf655fdec69d03d3bb023f6a1177f6f48408004daaf9ebf3024201c4f894ae21d1ec2d29a491abd39826fb514dce390e5050e3181198d5a64e3c88a743c6c7907b7a0357312ac7d8580e6372a01fd58012a8479b064b1c4257ec42a6" + } + ] +} diff --git a/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload.tar b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload.tar new file mode 100644 index 0000000..ffda4a9 Binary files /dev/null and b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload.tar differ diff --git a/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload/secrrct b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload/secrrct new file mode 100644 index 0000000..c28a352 --- /dev/null +++ b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload/secrrct @@ -0,0 +1,23 @@ +{ + "outlet": 2, + "session_id": 55, + "station_mac": "0024b1000002e300", + "driver_info": "b2dd852e99433cab70ccd45dad5aff55", + "meter_serial": "240008S", + "meter_startreading": 74.6, + "meter_endreading": 86.6, + "total_energy": 12.0, + "energy_units": "kWh", + "start_time": 1581763758, + "end_time": 1581772802, + "EVSEId": "DE*CPI*74778874*1", + "address": { + "street": "Breitenbergstr. 2", + "postalCode": "87719", + "city": "Mindelheim" + }, + "geoLocation": { + "lat": 48.035131, + "lng": 10.50635 + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload/secrrct.sign b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload/secrrct.sign new file mode 100644 index 0000000..c779026 Binary files /dev/null and b/documentation/ChargePoint/Testdata-2020-02extended/0024b1000002e300_2_123017065_payload/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.pem b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.pem new file mode 100644 index 0000000..c78f3d0 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +ME4wEAYHKoZIzj0CAQYFK4EEACADOgAE9rlNHQ1MlSRBuUQ0rEE7DD2X7ufxGTac +rDoHougSmPQv9uvxLd4W4bV9oRITRXAhHcep80ia4aQ= +-----END PUBLIC KEY----- diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.verify.sh b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.verify.sh new file mode 100644 index 0000000..8f096ce --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.verify.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +openssl dgst -sha256 -verify 0024b10000027b29_1.pem -signature 0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct.sign 0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.zip b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.zip new file mode 100644 index 0000000..88d5e99 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1.zip differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION.tar.bz2 b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION.tar.bz2 new file mode 100644 index 0000000..916bdbc Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct new file mode 100644 index 0000000..6d8d61f --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "flat": [ + { + "flat_fee": 0.98999999999999999, + "flat_fee_subtotal": 0.98999999999999999, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "parking": [ + { + "duration": 222, + "end_time": 1570088781, + "end_time_utc": 1570088781, + "line_item_cost": 0, + "overstay": 0, + "seq_num": 1, + "start_time": 1570088559, + "start_time_utc": 1570088559, + "type": "PARKING", + "unit_price": 0, + "units": 222 + }, + { + "duration": 222, + "parking_subtotal": 0, + "seq_num": "SUBTOTAL", + "type": "PARKING", + "units": 222 + } + ], + "subtotal": 0.98999999999999999, + "subtotal_before_adjustment": 0.98999999999999999, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.98999999999999999, + "additional_info": { + "outlet": 1, + "session_id": 600, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 800, + "meter_endreading": 800, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct.sign b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct.sign new file mode 100644 index 0000000..fb666c4 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min.tar.bz2 b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min.tar.bz2 new file mode 100644 index 0000000..3652e65 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct new file mode 100644 index 0000000..def3ad2 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 60, + "energy": [ + { + "active_charging": 1, + "duration": 233, + "end_time": 1570097981, + "end_time_utc": 1570090781, + "line_item_cost": 0.81000000000000005, + "seq_num": 1, + "start_time": 1570097748, + "start_time_utc": 1570090548, + "type": "ENERGY", + "unit_price": "39.60", + "units": 74 + }, + { + "duration": 233, + "energy_subtotal": 0.81000000000000005, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 74 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "subtotal": 0.81000000000000005, + "subtotal_before_adjustment": 0.81000000000000005, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.81000000000000005, + "additional_info": { + "outlet": 1, + "session_id": 604, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 900, + "meter_endreading": 900, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct.sign b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct.sign new file mode 100644 index 0000000..bd54f4e Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh.tar.bz2 b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh.tar.bz2 new file mode 100644 index 0000000..1fffbbf Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct new file mode 100644 index 0000000..f4789cc --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "energy": [ + { + "active_charging": 0, + "duration": 238, + "end_time": 1570169657, + "end_time_utc": 1570162457, + "line_item_cost": 0.10000000000000001, + "seq_num": 1, + "start_time": 1570169419, + "start_time_utc": 1570162219, + "type": "ENERGY", + "unit_price": "0.99000", + "units": 0.10000000000000001 + }, + { + "duration": 238, + "energy_subtotal": 0.10000000000000001, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 0.10000000000000001 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "subtotal": 0.10000000000000001, + "subtotal_before_adjustment": 0.10000000000000001, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.10000000000000001, + "additional_info": { + "outlet": 1, + "session_id": 614, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 1000, + "meter_endreading": 1100, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct.sign b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct.sign new file mode 100644 index 0000000..7f21164 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_.tar.bz2 b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_.tar.bz2 new file mode 100644 index 0000000..1b6b4c4 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct new file mode 100644 index 0000000..afdb32b --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct @@ -0,0 +1,86 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "energy": [ + { + "active_charging": 0, + "duration": 255, + "end_time": 1570170383, + "end_time_utc": 1570163183, + "line_item_cost": 0.080000000000000002, + "seq_num": 1, + "start_time": 1570170128, + "start_time_utc": 1570162928, + "type": "ENERGY", + "unit_price": "0.77000", + "units": 0.10000000000000001 + }, + { + "duration": 255, + "energy_subtotal": 0.080000000000000002, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 0.10000000000000001 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [ + { + "session_length": 0, + "session_min": 20, + "session_min_adjustment": 19.210000000000001, + "session_total": 0.79000000000000004, + "type": "SESS_MIN_ADJ" + } + ], + "parking": [ + { + "duration": 255, + "end_time": 1570170383, + "end_time_utc": 1570163183, + "line_item_cost": 0.70999999999999996, + "overstay": 0, + "seq_num": 1, + "start_time": 1570170128, + "start_time_utc": 1570162928, + "type": "PARKING", + "unit_price": "10.00", + "units": 255 + }, + { + "duration": 255, + "parking_subtotal": 0.70999999999999996, + "seq_num": "SUBTOTAL", + "type": "PARKING", + "units": 255 + } + ], + "subtotal": 20, + "subtotal_before_adjustment": 0.79000000000000004, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 20, + "additional_info": { + "outlet": 1, + "session_id": 616, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 1100, + "meter_endreading": 1200, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct.sign b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct.sign new file mode 100644 index 0000000..f27a3a7 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct.sign @@ -0,0 +1 @@ +0<&Bad$HOwGohߏR"#?CSEw(v+M ۻ{= \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_.tar.bz2 b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_.tar.bz2 new file mode 100644 index 0000000..d85a399 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_/secrrct b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_/secrrct new file mode 100644 index 0000000..eea5866 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "energy": [ + { + "active_charging": 0, + "duration": 400, + "end_time": 1570171332, + "end_time_utc": 1570164132, + "line_item_cost": 0.02, + "seq_num": 1, + "start_time": 1570170932, + "start_time_utc": 1570163732, + "type": "ENERGY", + "unit_price": "0.11000", + "units": 0.20000000000000001 + }, + { + "duration": 400, + "energy_subtotal": 0.02, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 0.20000000000000001 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "subtotal": 0.02, + "subtotal_before_adjustment": 0.02, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.02, + "additional_info": { + "outlet": 1, + "session_id": 617, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 1200, + "meter_endreading": 1400, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_/secrrct.sign b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_/secrrct.sign new file mode 100644 index 0000000..7adcebe Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709415_payload._TOU_/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge.tar.bz2 b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge.tar.bz2 new file mode 100644 index 0000000..d16332f Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct new file mode 100644 index 0000000..826ebc1 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "parking": [ + { + "duration": 316, + "end_time": 1570177531, + "end_time_utc": 1570170331, + "line_item_cost": 0.080000000000000002, + "overstay": 0, + "seq_num": 1, + "start_time": 1570177215, + "start_time_utc": 1570170015, + "type": "PARKING", + "unit_price": "0.89", + "units": 316 + }, + { + "duration": 316, + "parking_subtotal": 0.080000000000000002, + "seq_num": "SUBTOTAL", + "type": "PARKING", + "units": 316 + } + ], + "subtotal": 0.080000000000000002, + "subtotal_before_adjustment": 0.080000000000000002, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.080000000000000002, + "additional_info": { + "outlet": 1, + "session_id": 621, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:hce5294254791722", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 1400, + "meter_endreading": 1500, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct.sign b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct.sign new file mode 100644 index 0000000..9e0a7e6 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct.sign @@ -0,0 +1 @@ +0< (M)}b;#P~S|z){ o\Ys>2) \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2.pem b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2.pem new file mode 100644 index 0000000..05532bf --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +ME4wEAYHKoZIzj0CAQYFK4EEACADOgAE1MF2EIuqaDElJHyK9R64SFjJ5Q2HU6dF +4/0pmqBEgmycnUnOOQTNm9xos7Cfs56+qsC57Aq5rXY= +-----END PUBLIC KEY----- \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2.zip b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2.zip new file mode 100644 index 0000000..e50854a Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2.zip differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload.tar.bz2 b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload.tar.bz2 new file mode 100644 index 0000000..37c8142 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload/secrrct b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload/secrrct new file mode 100644 index 0000000..58ad017 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload/secrrct @@ -0,0 +1,92 @@ +{ + "company_name": "ChargePoint EU QA EUR", + "display_unit": 3600, + "energy": [ + { + "active_charging": 0, + "duration": 421, + "end_time": 1543841929, + "end_time_utc": 1543838329, + "line_item_cost": 0, + "seq_num": 1, + "start_time": 1543841508, + "start_time_utc": 1543837908, + "type": "ENERGY", + "unit_price": "0.05000", + "units": 0.058999999999999997 + }, + { + "duration": 421, + "energy_subtotal": 0, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 0.058999999999999997 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [ + { + "session_length": 0, + "session_min": 0.070000000000000007, + "session_min_adjustment": 0.059999999999999998, + "session_total": 0.01, + "type": "SESS_MIN_ADJ" + } + ], + "parking": [ + { + "duration": 421, + "end_time": 1543841929, + "end_time_utc": 1543838329, + "line_item_cost": 0.01, + "overstay": 0, + "seq_num": 1, + "start_time": 1543841508, + "start_time_utc": 1543837908, + "type": "PARKING", + "unit_price": "0.10", + "units": 421 + }, + { + "duration": 421, + "parking_subtotal": 0.01, + "seq_num": "SUBTOTAL", + "type": "PARKING", + "units": 421 + } + ], + "subtotal": 0.070000000000000007, + "subtotal_before_adjustment": 0.01, + "tax": [ + { + "tax": 0.01, + "taxPercent": "19.0000", + "taxRuleName": "MwSt.", + "type": "TAX" + }, + { + "seq_num": "SUBTOTAL", + "total_tax": 0.01, + "type": "TAX" + } + ], + "totalAmount": 0.080000000000000002, + "additional_info": { + "outlet": 2, + "session_id": 2, + "station_mac": "0024:b100:0002:e300", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp000009afd2", + "meter_serial": "240008S", + "currency_code": "EUR", + "meter_startreading": 3078, + "meter_endreading": 3137, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload/secrrct.sign b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload/secrrct.sign new file mode 100644 index 0000000..2222a67 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp224k1/0024b1000002e300_2_119693895_payload/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp224k1/verifyAll.sh b/documentation/ChargePoint/Testdata-secp224k1/verifyAll.sh new file mode 100644 index 0000000..c2c7dbb --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp224k1/verifyAll.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +openssl dgst -sha256 -verify 0024b1000002e300_2.pem -signature 0024b1000002e300_2_119693895_payload/secrrct.sign 0024b1000002e300_2_119693895_payload/secrrct + +openssl dgst -sha256 -verify 0024b10000027b29_1.pem -signature 0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct.sign 0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct + +openssl dgst -sha256 -verify 0024b10000027b29_1.pem -signature 0024b10000027b29_1_121708845_payload.Per_Min/secrrct.sign 0024b10000027b29_1_121708845_payload.Per_Min/secrrct + +openssl dgst -sha256 -verify 0024b10000027b29_1.pem -signature 0024b10000027b29_1_121709375_payload._Per_KWh/secrrct.sign 0024b10000027b29_1_121709375_payload._Per_KWh/secrrct + +openssl dgst -sha256 -verify 0024b10000027b29_1.pem -signature 0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct.sign 0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct + +openssl dgst -sha256 -verify 0024b10000027b29_1.pem -signature 0024b10000027b29_1_121709415_payload._TOU_/secrrct.sign 0024b10000027b29_1_121709415_payload._TOU_/secrrct + +openssl dgst -sha256 -verify 0024b10000027b29_1.pem -signature 0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct.sign 0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct + + + diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-parameters.pem b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-parameters.pem new file mode 100644 index 0000000..a76e47d --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-parameters.pem @@ -0,0 +1,3 @@ +-----BEGIN EC PARAMETERS----- +BggqhkjOPQMBBw== +-----END EC PARAMETERS----- diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-privateKey.pem b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-privateKey.pem new file mode 100644 index 0000000..1e3e41f --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-privateKey.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIMqm8LW7wkj5IllH7Dox6tGc0o4tF6ifIyqZ+WDRc19xoAoGCCqGSM49 +AwEHoUQDQgAEhPaA1TxBxFzyP9xN/iM0MpxvLwobD3YLuhtRZl0E8CtFTND0iWxq +dvL+L31zAcFLGDHe50SjLuX8yXM/CtEMqA== +-----END EC PRIVATE KEY----- diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-publicKey.pem b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-publicKey.pem new file mode 100644 index 0000000..4951119 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1-publicKey.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhPaA1TxBxFzyP9xN/iM0MpxvLwob +D3YLuhtRZl0E8CtFTND0iWxqdvL+L31zAcFLGDHe50SjLuX8yXM/CtEMqA== +-----END PUBLIC KEY----- diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION.tar.bz2 b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION.tar.bz2 new file mode 100644 index 0000000..2cfd4df Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct new file mode 100644 index 0000000..6d8d61f --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "flat": [ + { + "flat_fee": 0.98999999999999999, + "flat_fee_subtotal": 0.98999999999999999, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "parking": [ + { + "duration": 222, + "end_time": 1570088781, + "end_time_utc": 1570088781, + "line_item_cost": 0, + "overstay": 0, + "seq_num": 1, + "start_time": 1570088559, + "start_time_utc": 1570088559, + "type": "PARKING", + "unit_price": 0, + "units": 222 + }, + { + "duration": 222, + "parking_subtotal": 0, + "seq_num": "SUBTOTAL", + "type": "PARKING", + "units": 222 + } + ], + "subtotal": 0.98999999999999999, + "subtotal_before_adjustment": 0.98999999999999999, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.98999999999999999, + "additional_info": { + "outlet": 1, + "session_id": 600, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 800, + "meter_endreading": 800, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct.sign b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct.sign new file mode 100644 index 0000000..33f9b0c Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708795_payload.FLAT_SESSION/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min.tar.bz2 b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min.tar.bz2 new file mode 100644 index 0000000..33a9eb5 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct new file mode 100644 index 0000000..def3ad2 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 60, + "energy": [ + { + "active_charging": 1, + "duration": 233, + "end_time": 1570097981, + "end_time_utc": 1570090781, + "line_item_cost": 0.81000000000000005, + "seq_num": 1, + "start_time": 1570097748, + "start_time_utc": 1570090548, + "type": "ENERGY", + "unit_price": "39.60", + "units": 74 + }, + { + "duration": 233, + "energy_subtotal": 0.81000000000000005, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 74 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "subtotal": 0.81000000000000005, + "subtotal_before_adjustment": 0.81000000000000005, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.81000000000000005, + "additional_info": { + "outlet": 1, + "session_id": 604, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 900, + "meter_endreading": 900, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct.sign b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct.sign new file mode 100644 index 0000000..f26f6ab Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121708845_payload.Per_Min/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375.zip b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375.zip new file mode 100644 index 0000000..caf6043 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375.zip differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh.tar.bz2 b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh.tar.bz2 new file mode 100644 index 0000000..81529ef Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct new file mode 100644 index 0000000..f4789cc --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "energy": [ + { + "active_charging": 0, + "duration": 238, + "end_time": 1570169657, + "end_time_utc": 1570162457, + "line_item_cost": 0.10000000000000001, + "seq_num": 1, + "start_time": 1570169419, + "start_time_utc": 1570162219, + "type": "ENERGY", + "unit_price": "0.99000", + "units": 0.10000000000000001 + }, + { + "duration": 238, + "energy_subtotal": 0.10000000000000001, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 0.10000000000000001 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "subtotal": 0.10000000000000001, + "subtotal_before_adjustment": 0.10000000000000001, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.10000000000000001, + "additional_info": { + "outlet": 1, + "session_id": 614, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 1000, + "meter_endreading": 1100, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct.sign b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct.sign new file mode 100644 index 0000000..0db1940 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709375_payload._Per_KWh/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_.tar.bz2 b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_.tar.bz2 new file mode 100644 index 0000000..d61572b Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct new file mode 100644 index 0000000..afdb32b --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct @@ -0,0 +1,86 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "energy": [ + { + "active_charging": 0, + "duration": 255, + "end_time": 1570170383, + "end_time_utc": 1570163183, + "line_item_cost": 0.080000000000000002, + "seq_num": 1, + "start_time": 1570170128, + "start_time_utc": 1570162928, + "type": "ENERGY", + "unit_price": "0.77000", + "units": 0.10000000000000001 + }, + { + "duration": 255, + "energy_subtotal": 0.080000000000000002, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 0.10000000000000001 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [ + { + "session_length": 0, + "session_min": 20, + "session_min_adjustment": 19.210000000000001, + "session_total": 0.79000000000000004, + "type": "SESS_MIN_ADJ" + } + ], + "parking": [ + { + "duration": 255, + "end_time": 1570170383, + "end_time_utc": 1570163183, + "line_item_cost": 0.70999999999999996, + "overstay": 0, + "seq_num": 1, + "start_time": 1570170128, + "start_time_utc": 1570162928, + "type": "PARKING", + "unit_price": "10.00", + "units": 255 + }, + { + "duration": 255, + "parking_subtotal": 0.70999999999999996, + "seq_num": "SUBTOTAL", + "type": "PARKING", + "units": 255 + } + ], + "subtotal": 20, + "subtotal_before_adjustment": 0.79000000000000004, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 20, + "additional_info": { + "outlet": 1, + "session_id": 616, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 1100, + "meter_endreading": 1200, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct.sign b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct.sign new file mode 100644 index 0000000..bba3a35 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709405_payload_Min_Variation_/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_.tar.bz2 b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_.tar.bz2 new file mode 100644 index 0000000..2c5c6a4 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_/secrrct b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_/secrrct new file mode 100644 index 0000000..eea5866 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "energy": [ + { + "active_charging": 0, + "duration": 400, + "end_time": 1570171332, + "end_time_utc": 1570164132, + "line_item_cost": 0.02, + "seq_num": 1, + "start_time": 1570170932, + "start_time_utc": 1570163732, + "type": "ENERGY", + "unit_price": "0.11000", + "units": 0.20000000000000001 + }, + { + "duration": 400, + "energy_subtotal": 0.02, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 0.20000000000000001 + } + ], + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "subtotal": 0.02, + "subtotal_before_adjustment": 0.02, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.02, + "additional_info": { + "outlet": 1, + "session_id": 617, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp00000c35d9", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 1200, + "meter_endreading": 1400, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_/secrrct.sign b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_/secrrct.sign new file mode 100644 index 0000000..3a95d52 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709415_payload._TOU_/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge.tar.bz2 b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge.tar.bz2 new file mode 100644 index 0000000..e317179 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct new file mode 100644 index 0000000..826ebc1 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct @@ -0,0 +1,56 @@ +{ + "company_name": "Chargepoint QA UK", + "display_unit": 3600, + "flat": [ + { + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + } + ], + "minMaxAdj": [], + "parking": [ + { + "duration": 316, + "end_time": 1570177531, + "end_time_utc": 1570170331, + "line_item_cost": 0.080000000000000002, + "overstay": 0, + "seq_num": 1, + "start_time": 1570177215, + "start_time_utc": 1570170015, + "type": "PARKING", + "unit_price": "0.89", + "units": 316 + }, + { + "duration": 316, + "parking_subtotal": 0.080000000000000002, + "seq_num": "SUBTOTAL", + "type": "PARKING", + "units": 316 + } + ], + "subtotal": 0.080000000000000002, + "subtotal_before_adjustment": 0.080000000000000002, + "tax": [ + { + "seq_num": "SUBTOTAL", + "total_tax": 0, + "type": "TAX" + } + ], + "totalAmount": 0.080000000000000002, + "additional_info": { + "outlet": 1, + "session_id": 621, + "station_mac": "0024:b100:0002:7b29", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:hce5294254791722", + "meter_serial": "160160T", + "currency_code": "GBP", + "meter_startreading": 1400, + "meter_endreading": 1500, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct.sign b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct.sign new file mode 100644 index 0000000..ad87b9a Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b10000027b29_1_121709465_payload_Parking_Tap_ToCharge/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-parameters.pem b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-parameters.pem new file mode 100644 index 0000000..a76e47d --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-parameters.pem @@ -0,0 +1,3 @@ +-----BEGIN EC PARAMETERS----- +BggqhkjOPQMBBw== +-----END EC PARAMETERS----- diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-privateKey.pem b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-privateKey.pem new file mode 100644 index 0000000..c83438c --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-privateKey.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIPSG8elLLqPyWLoOwMx/juCEbiQe2vJziGjDyQ3xt7tNoAoGCCqGSM49 +AwEHoUQDQgAEw4TdYIkJ0f9NR5FiiS+jH6rRiju8aTBJnYQKMbvl+5gdYrdaLO+k +SwGZl/Nhz+mUh/Zi9kn5xjMY14/41Xc6JA== +-----END EC PRIVATE KEY----- diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-publicKey.pem b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-publicKey.pem new file mode 100644 index 0000000..b9be515 --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2-publicKey.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEw4TdYIkJ0f9NR5FiiS+jH6rRiju8 +aTBJnYQKMbvl+5gdYrdaLO+kSwGZl/Nhz+mUh/Zi9kn5xjMY14/41Xc6JA== +-----END PUBLIC KEY----- diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2.zip b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2.zip new file mode 100644 index 0000000..31086d4 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2.zip differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload.tar.bz2 b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload.tar.bz2 new file mode 100644 index 0000000..44ab690 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload.tar.bz2 differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload/secrrct b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload/secrrct new file mode 100644 index 0000000..a630e3c --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload/secrrct @@ -0,0 +1,85 @@ +{ + "company_name": "ChargePoint EU QA EUR", + "display_unit": 3600, + "energy": [{ + "active_charging": 0, + "duration": 421, + "end_time": 1543841929, + "end_time_utc": 1543838329, + "line_item_cost": 0, + "seq_num": 1, + "start_time": 1543841508, + "start_time_utc": 1543837908, + "type": "ENERGY", + "unit_price": "0.05000", + "units": 0.058999999999999997 + }, + { + "duration": 421, + "energy_subtotal": 0, + "seq_num": "SUBTOTAL", + "type": "ENERGY", + "units": 0.058999999999999997 + } + ], + "flat": [{ + "flat_fee": 0, + "flat_fee_subtotal": 0, + "numSubSessions": 1, + "type": "FLAT" + }], + "minMaxAdj": [{ + "session_length": 0, + "session_min": 0.070000000000000007, + "session_min_adjustment": 0.059999999999999998, + "session_total": 0.01, + "type": "SESS_MIN_ADJ" + }], + "parking": [{ + "duration": 421, + "end_time": 1543841929, + "end_time_utc": 1543838329, + "line_item_cost": 0.01, + "overstay": 0, + "seq_num": 1, + "start_time": 1543841508, + "start_time_utc": 1543837908, + "type": "PARKING", + "unit_price": "0.10", + "units": 421 + }, + { + "duration": 421, + "parking_subtotal": 0.01, + "seq_num": "SUBTOTAL", + "type": "PARKING", + "units": 421 + } + ], + "subtotal": 0.070000000000000007, + "subtotal_before_adjustment": 0.01, + "tax": [{ + "tax": 0.01, + "taxPercent": "19.0000", + "taxRuleName": "MwSt.", + "type": "TAX" + }, + { + "seq_num": "SUBTOTAL", + "total_tax": 0.01, + "type": "TAX" + } + ], + "totalAmount": 0.080000000000000002, + "additional_info": { + "outlet": 2, + "session_id": 2, + "station_mac": "0024:b100:0002:e300", + "driver_info": "urn:nema:5evse:dn:v1:chargepoint.com:cdid:cncp000009afd2", + "meter_serial": "240008S", + "currency_code": "EUR", + "meter_startreading": 3078, + "meter_endreading": 3137, + "energy_units": "Wh" + } +} \ No newline at end of file diff --git a/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload/secrrct.sign b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload/secrrct.sign new file mode 100644 index 0000000..196f234 Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/0024b1000002e300_2_119693895_payload/secrrct.sign differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/Testdata-secp256r1.zip b/documentation/ChargePoint/Testdata-secp256r1/Testdata-secp256r1.zip new file mode 100644 index 0000000..802a88a Binary files /dev/null and b/documentation/ChargePoint/Testdata-secp256r1/Testdata-secp256r1.zip differ diff --git a/documentation/ChargePoint/Testdata-secp256r1/test.txt b/documentation/ChargePoint/Testdata-secp256r1/test.txt new file mode 100644 index 0000000..2447e8a --- /dev/null +++ b/documentation/ChargePoint/Testdata-secp256r1/test.txt @@ -0,0 +1,8 @@ +Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test +Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test +Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test +Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test +Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test +Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test +Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test +Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test diff --git a/documentation/ChargePoint/genKeys.sh b/documentation/ChargePoint/genKeys.sh new file mode 100644 index 0000000..16fd0c0 --- /dev/null +++ b/documentation/ChargePoint/genKeys.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +#openssl ecparam -list_curves + +echo "Generating a private/public key for $1 using SECG secp256r1/ANSI prime256v1/NIST P-256" +openssl ecparam -name secp256r1 -out $1-parameters.pem +openssl ecparam -in $1-parameters.pem -text -param_enc explicit -noout +openssl ecparam -name secp256r1 -genkey -noout -out $1-privateKey.pem +openssl ec -in $1-privateKey.pem -text -noout +openssl ec -in $1-privateKey.pem -pubout -out $1-publicKey.pem diff --git a/documentation/ChargePoint/showPublicKeyInfos.sh b/documentation/ChargePoint/showPublicKeyInfos.sh new file mode 100644 index 0000000..ce41cda --- /dev/null +++ b/documentation/ChargePoint/showPublicKeyInfos.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +openssl pkey -inform PEM -pubin -in $1 -text -noout diff --git a/documentation/ChargePoint/sign.sh b/documentation/ChargePoint/sign.sh new file mode 100644 index 0000000..5cd82f5 --- /dev/null +++ b/documentation/ChargePoint/sign.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +if [ ! -f $1 ]; then + echo "File '$1' not found!"; + exit 1; +fi + +if [ ! -f $2 ]; then + echo "File '$2' not found!"; + exit 2; +fi + +if [ ! -z "$1" ] && [ ! -z "$2" ]; then + echo "'$1' -> '$1.sign' using private key file '$2'" + openssl dgst -sha256 -sign $2 $1 > $1.sign +else + echo "Usage: ./sign.sh [plaintext file] [private key file]" + exit 3; +fi diff --git a/documentation/ChargePoint/tar.sh b/documentation/ChargePoint/tar.sh new file mode 100644 index 0000000..7e993a1 --- /dev/null +++ b/documentation/ChargePoint/tar.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +echo "Compressing $1 -> $1.tar.bz2" +cd $1 +tar -cjf ../$1.tar.bz2 * +cd .. diff --git a/documentation/ChargePoint/verify.sh b/documentation/ChargePoint/verify.sh new file mode 100644 index 0000000..ae767dc --- /dev/null +++ b/documentation/ChargePoint/verify.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +if [ ! -f $1 ]; then + echo "File '$1' not found!"; + exit 1; +fi + +if [ ! -f $2 ]; then + echo "File '$2' not found!"; + exit 2; +fi + +if [ ! -z "$1" ] && [ ! -z "$2" ]; then + echo "Trying to verify $1 via signature $1.sign and public key file $2" + openssl dgst -sha256 -verify $2 -signature $1.sign $1 +else + echo "Usage: ./verify [signature file] [public key file]" +fi diff --git a/documentation/DEBUGGING.md b/documentation/DEBUGGING.md new file mode 100644 index 0000000..73ebaa1 --- /dev/null +++ b/documentation/DEBUGGING.md @@ -0,0 +1,22 @@ + +# Looking into the app.asar file +``` +npm install -g asar +``` + +Extract the whole archive: +``` +npx asar extract app.asar destfolder +``` + +Extract a particular file: +``` +npx asar extract-file app.asar main.js +``` + + +# Windows Explorer open .chargy files with Chargy fails + +- Chargy registers the file extention ".chargy" and the mime type "application/x-chargy" to be opened with Chargy. +- Check if Chargy will be in the task manager. If yes, it "just" failed before opening its application window. +- Open a command line and start Chargy with a transparency file as command line parameter from a directory different to its application folder. By this you should see error Node JS messages. diff --git a/documentation/EDL40plus/edl40plus-sml-within-safe-xml-container-01.xml b/documentation/EDL40plus/edl40plus-sml-within-safe-xml-container-01.xml new file mode 100644 index 0000000..49d4d34 --- /dev/null +++ b/documentation/EDL40plus/edl40plus-sml-within-safe-xml-container-01.xml @@ -0,0 +1,11 @@ + + + + 1b1b1b1b01010101760500000001620062007263010176010431323303000f0b0901454d4800008f7ea00101637f4400760500000002620062007263070177010b0901454d4800008f7ea0078180817103ff72620165000acf9f7477078182815401ff0172620373655ebb9c1a53003c53003c01010b9110105ebb9be85c0dd80177070100011100ff6400000872620373655ebb9c3853003c53003c621e52ff56000001e9d40177078100600800010101010172620172620165000acf750177078180817101ff0101010165000000dd018304d2c65603b2f620c8553508721c782b0ffea6aab9a12b8e37ff2fe01a2081d24151ea9f3d057a934043c79996f16fd751011001639e97007605000000036200620072630201710163a8e60000001b1b1b1b1a028188 + 8c5e765f2f03847381d4f4b893a4d3caf6e28a67b86ca660adaf22be99e29b79fb99027143966303b1f15ab944ba7bd1 + + + 1b1b1b1b01010101760500000001620062007263010176010431323303007f0b0901454d4800008f7ea0010163787400760500000002620062007263070177010b0901454d4800008f7ea0078180817103ff72620165000ad0297477078182815401ff0172620373655ebb9c1a53003c53003c01010b9110105ebb9be85c0dd80177070100011100ff6400000872620373655ebb9cc153003c53003c621e52ff56000001e9d40177078100600800010101010172620172620165000acffe0177078180817101ff0101010165000000de018304cc92a5fa65b7db0162d7ea5b0fd7cf44aad152f50ea6559da395d5d550253bbd90365829e83e816d378c00859f66e67f011001638c8c007605000000036200620072630201710163a8e60000001b1b1b1b1a02afc6 + 8c5e765f2f03847381d4f4b893a4d3caf6e28a67b86ca660adaf22be99e29b79fb99027143966303b1f15ab944ba7bd1 + + diff --git a/documentation/EDL40plus/sml-decoded.txt b/documentation/EDL40plus/sml-decoded.txt new file mode 100644 index 0000000..5b80c0f --- /dev/null +++ b/documentation/EDL40plus/sml-decoded.txt @@ -0,0 +1,116 @@ +ESCAPE 1b1b1b1b +START 01010101 #Start Version 1.0 + +76 #Liste mit 6 Einträgen (1. SML Nachricht in diesem Telegramm) + 0500000001 #transactionID + 6200 #groupNo + 6200 #abortOnError + 72 #Liste mit 2 Einträgen + 63 0101 #Nachricht 0101 = SML_PublicOpen.Res + 76 #Liste mit 6 Einträgen + 01 #codepage (leer) + 04 313233 #??? + 03 007f #??? + 0b 0901454d4800008f7ea0 #Server ID + 01 #username (leer) + 01 #password (leer) + 637874 #CRC + 00 #Ende der Nachricht + +76 + 0500000002 #transactionID + 6200 #groupNo + 6200 #abortOnError + 72 #Liste mit 2 Einträgen + 63 0701 #Nachricht 0701 = SML_GetList.Res + 77 #Liste mit 7 Einträgen + 01 #clientID (leer) + 0b 0901454d4800008f7ea0 #ServerId + 07 8180817103ff #listName + 72 # Liste mit 2 Einträgen + 62 01 # Typ = Sekundenindex + 65 000ad029 # Sekunden-Index als unsigned 32 + + 74 # Liste mit 4 Einträgen + + 77 + 07 8182815401ff # TYPE_CONTRACT_ID + 01 #status + 72 #value time + 62 03 + 73 + 65 5ebb9c1a + 53 003c + 53 003c + 01 + 01 + 0b 9110105ebb9be85c0dd8 #Contract-ID + 01 #valueSignature + + + 77 + 07 0100011100ff # TYPE_SIGNED_VALUE + 64 000008 #status + 72 #value time + 62 03 + 73 + 65 5ebb9cc1 + 53 003c + 53 003c + 62 1e #unit (TL[1] + unsigned[1]), 1e = Wh + 52 ff #scaler (TL[1] + signed[1]), -1 = *10^-1 = /10 + 56 000001e9d4 #value (e.g. 56 00 01 29 71 4F => value 19493967/10 = 1949396,7 Wh = 1949,3967 kWh) + 01 #valueSignature + + + 77 + 07 810060080001 # TYPE_SECONDS_INDEX + 01 #status + 01 #value time + 01 #unit + 01 #scaler + 72 + 62 01 + 72 + 62 01 + 65 000acffe #Sekunden-Index + 01 #valueSignature + + + 77 + 07 8180817101ff # TYPE_PAGINATION + 01 #status + 01 #value time + 01 #unit + 01 #scaler + 65 000000de #value == 222 + 01 #valueSignature + + 83 04 Signatur: cc92a5fa65b7db0162d7ea5b0fd7cf44aad152f50ea6559da395d5d550253bbd90365829e83e816d378c00859f66e67f0110 #listSignature "83 04" => "0x34" == 52 dez (2 length bytes + 50 bytes signature) + 01 #actGatewayTime (leer) + 63 8c8c #CRC Prüfsumme + 00 #Ende Nachricht + +76 #7=Liste 6=Anzahl der Einträge + 05 00000003 #transactionId: + 6200 #groupNo + 6200 #abortOnError + 72 + 63 0201 #Nachricht 0201 = SML_PublicClose.Res + 71 + 01 #Signature (leer) + 63 a8e6 #CRC Prüfsumme + 00 #Ende + +0000 #Ende + +ESCAPE 1b1b1b1b1 +Prüfsumme a02afc6 + + + + + + +OBIS "8181C78205FF" => Public Key des Zählers + diff --git a/documentation/GDF-ChargingSession-01.chargy b/documentation/GraphDefined/GDF-ChargingSession-01.chargy similarity index 100% rename from documentation/GDF-ChargingSession-01.chargy rename to documentation/GraphDefined/GDF-ChargingSession-01.chargy diff --git a/documentation/GDF-TestChargingSessions-01.chargy b/documentation/GraphDefined/GDF-TestChargingSessions-01.chargy similarity index 100% rename from documentation/GDF-TestChargingSessions-01.chargy rename to documentation/GraphDefined/GDF-TestChargingSessions-01.chargy diff --git a/documentation/OCMF/OCMF-Testdatensatz-01.json b/documentation/OCMF/OCMF-Testdatensatz-01.json new file mode 100644 index 0000000..496d570 --- /dev/null +++ b/documentation/OCMF/OCMF-Testdatensatz-01.json @@ -0,0 +1 @@ +OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9289","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:44,337+0000 U","TX":"B","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"304402201455BF1082C9EB8B1272D7FA838EB44286B03AC96E8BAFC5E79E30C5B3E1B872022006286CA81AEE0FAFCB1D6A137FFB2C0DD014727E2AEC149F30CD5A7E87619139"} diff --git a/documentation/OCMF/OCMF-Testdatensatz-01_publicKey.json b/documentation/OCMF/OCMF-Testdatensatz-01_publicKey.json new file mode 100644 index 0000000..23b1750 --- /dev/null +++ b/documentation/OCMF/OCMF-Testdatensatz-01_publicKey.json @@ -0,0 +1 @@ +3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 diff --git a/documentation/OCMF/SAFE-Testdatensatz-01_OCMFv0.1.xml b/documentation/OCMF/SAFE-Testdatensatz-01_OCMFv0.1.xml new file mode 100644 index 0000000..edb9711 --- /dev/null +++ b/documentation/OCMF/SAFE-Testdatensatz-01_OCMFv0.1.xml @@ -0,0 +1,7 @@ + + + + OCMF|{"FV":"0.1","VI":"ABL","VV":"1.4p3","PG":"T12345","MV":"Phoenix Contact","MM":"EEM-350-D-MCB","MS":"BQ27400330016","MF":"1.0","IS":"VERIFIED","IF":["RFID_PLAIN","OCPP_RS_TLS"],"IT":"ISO14443","ID":"1F2D3A4F5506C7","RD":[{"TM":"2018-07-24T13:22:04,000+0200 S","TX":"B","RV":2935.6,"RI":"1-b:1.8.e","RU":"kWh","EI":567,"ST":"G"}]}|{"SA":"ECDSA-secp256k1-SHA256","SD":"3046022100A7F1FD39278A88432E1AB81229C34CE1066885D0EAD8810DB900018A4960888302210089004420623749BF75561F29685CD87D6853EC08E83BD1A15C5DAFF9F03F4115"} + 3056301006072A8648CE3D020106052B8104000A034200044E4970098EEFF5E0E286E3A38552679771B89315A49DDDF66EBAC6F176FB02DF9841091010E6850510540DAD0CF967FD8DE0AB25198282B39597DDCE09EDF459 + + \ No newline at end of file diff --git a/documentation/OCMF/SAFE-Testdatensatz-01_singleMeasurement_ShouldFail.xml b/documentation/OCMF/SAFE-Testdatensatz-01_singleMeasurement_ShouldFail.xml new file mode 100644 index 0000000..721b30a --- /dev/null +++ b/documentation/OCMF/SAFE-Testdatensatz-01_singleMeasurement_ShouldFail.xml @@ -0,0 +1,9 @@ + + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9289","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:44,337+0000 U","TX":"B","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"304402201455BF1082C9EB8B1272D7FA838EB44286B03AC96E8BAFC5E79E30C5B3E1B872022006286CA81AEE0FAFCB1D6A137FFB2C0DD014727E2AEC149F30CD5A7E87619139"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + diff --git a/documentation/OCMF/SAFE-Testdatensatz-02_emptyXMLNamespace.xml b/documentation/OCMF/SAFE-Testdatensatz-02_emptyXMLNamespace.xml new file mode 100644 index 0000000..26d1dfc --- /dev/null +++ b/documentation/OCMF/SAFE-Testdatensatz-02_emptyXMLNamespace.xml @@ -0,0 +1,19 @@ + + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9289","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:44,337+0000 U","TX":"B","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"304402201455BF1082C9EB8B1272D7FA838EB44286B03AC96E8BAFC5E79E30C5B3E1B872022006286CA81AEE0FAFCB1D6A137FFB2C0DD014727E2AEC149F30CD5A7E87619139"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9290","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:54,344+0000 U","TX":"C","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"3045022100A8E8A17A6173C1FDBE13A7CF073A99EEFF67C72F6C69F9510A75F4BB6098EC560220725D20DCDA2775A4B5181BB7C08F7705ECA77BB8FD1AEB206B8F6D9BC50F2681"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9291","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:58,310+0000 U","TX":"E","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"3045022100F973981A4914A16F65BC58BB15B85054AED4DE3834D89AA90BE1C12A2A15E52F02202969796E2D4D737000819B8E25D814675FEE850B9A7A540515373D41DDB5341B"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + diff --git a/documentation/OCMF/SAFE-Testdatensatz-02_withXMLNamespace.xml b/documentation/OCMF/SAFE-Testdatensatz-02_withXMLNamespace.xml new file mode 100644 index 0000000..8e31a7d --- /dev/null +++ b/documentation/OCMF/SAFE-Testdatensatz-02_withXMLNamespace.xml @@ -0,0 +1,19 @@ + + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9289","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:44,337+0000 U","TX":"B","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"304402201455BF1082C9EB8B1272D7FA838EB44286B03AC96E8BAFC5E79E30C5B3E1B872022006286CA81AEE0FAFCB1D6A137FFB2C0DD014727E2AEC149F30CD5A7E87619139"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9290","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:54,344+0000 U","TX":"C","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"3045022100A8E8A17A6173C1FDBE13A7CF073A99EEFF67C72F6C69F9510A75F4BB6098EC560220725D20DCDA2775A4B5181BB7C08F7705ECA77BB8FD1AEB206B8F6D9BC50F2681"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9291","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:58,310+0000 U","TX":"E","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"3045022100F973981A4914A16F65BC58BB15B85054AED4DE3834D89AA90BE1C12A2A15E52F02202969796E2D4D737000819B8E25D814675FEE850B9A7A540515373D41DDB5341B"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + diff --git a/documentation/OCMF/SAFE-Testdatensatz-02_withoutXMLNamespace.xml b/documentation/OCMF/SAFE-Testdatensatz-02_withoutXMLNamespace.xml new file mode 100644 index 0000000..0e55888 --- /dev/null +++ b/documentation/OCMF/SAFE-Testdatensatz-02_withoutXMLNamespace.xml @@ -0,0 +1,19 @@ + + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9289","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:44,337+0000 U","TX":"B","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"304402201455BF1082C9EB8B1272D7FA838EB44286B03AC96E8BAFC5E79E30C5B3E1B872022006286CA81AEE0FAFCB1D6A137FFB2C0DD014727E2AEC149F30CD5A7E87619139"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9290","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:54,344+0000 U","TX":"C","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"3045022100A8E8A17A6173C1FDBE13A7CF073A99EEFF67C72F6C69F9510A75F4BB6098EC560220725D20DCDA2775A4B5181BB7C08F7705ECA77BB8FD1AEB206B8F6D9BC50F2681"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + + OCMF|{"FV":"1.0","GI":"SEAL AG","GS":"1850006a","GV":"1.34","PG":"T9291","MV":"Carlo Gavazzi","MM":"EM340-DIN.AV2.3.X.S1.PF","MS":"******240084S","MF":"B4","IS":true,"IL":"TRUSTED","IF":["OCCP_AUTH"],"IT":"ISO14443","ID":"56213C05","RD":[{"TM":"2019-06-26T08:57:58,310+0000 U","TX":"E","RV":268.978,"RI":"1-b:1.8.0","RU":"kWh","RT":"AC","EF":"","ST":"G"}]}|{"SD":"3045022100F973981A4914A16F65BC58BB15B85054AED4DE3834D89AA90BE1C12A2A15E52F02202969796E2D4D737000819B8E25D814675FEE850B9A7A540515373D41DDB5341B"} + 3059301306072A8648CE3D020106082A8648CE3D030107034200044171CAB628050A228DA1D33129696D9ECA50FD50AFF04ABA2CE1E5EBBB1F457963B06A6A2D39175AB7C5B25685BEA3072197D00444C9DCE194817C21F35A4AC3 + + + diff --git a/documentation/OCMF/SAFE-TransparencySoftware.xsd b/documentation/OCMF/SAFE-TransparencySoftware.xsd new file mode 100644 index 0000000..0448293 --- /dev/null +++ b/documentation/OCMF/SAFE-TransparencySoftware.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/REBUILD.md b/documentation/REBUILD.md index 50d0e6a..d1f8ed6 100644 --- a/documentation/REBUILD.md +++ b/documentation/REBUILD.md @@ -16,26 +16,68 @@ $ npm install electron-builder@latest --save-dev + electron-builder@20.44.4 $ npm install typescript@latest --save-dev -+ typescript@3.5.2 ++ typescript@3.7.2 $ npm install sass@latest --save-dev -+ sass@1.22.1 ++ sass@1.23.6 $ npm install @types/node@latest --save-dev -+ @types/node@12.0.10 ++ @types/node@12.12.8 $ npm install elliptic@latest -+ elliptic@6.5.0 ++ elliptic@6.5.1 $ npm install @types/elliptic@latest --save-dev -+ @types/elliptic@6.4.9 ++ @types/elliptic@6.4.10 + +$ npm install asn1.js@latest ++ asn1.js@5.2.0 $ npm install moment@latest + moment@2.24.0 -``` +$ npm install base32-decode ++ base32-decode@1.0.0 + +$ npm install file-type@latest ++ file-type@12.4.0 + +$ npm install decompress@latest ++ decompress@4.2.0 + +$ npm install @types/decompress --save-dev ++ @types/decompress@4.2.3 + +//$ npm install decompress-tarxz@latest +//+ decompress-tarxz@3.0.0 + +$ npm install decompress-bzip2@latest ++ decompress-bzip2@4.0.0 +$ npm install decompress-gz@latest ++ decompress-gz@0.0.1 +$ npm install chart.js@latest ++ chart.js@2.9.3 + +$ npm install @types/chart.js@latest --save-dev ++ @types/chart.js@2.9.0 + +$ npm install electron-localshortcut --save ++ electron-localshortcut@3.2.1 + +$ npm install leaflet@latest --save ++ leaflet@1.6.0 + +$ npm install @types/leaflet@latest --save-dev ++ @types/leaflet@1.5.12 + +$ npm install leaflet.awesome-markers@latest --save ++ leaflet.awesome-markers@2.0.5 + +$ npm install safe-stable-stringify --save ++ safe-stable-stringify@1.1.1 +``` diff --git a/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar b/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar new file mode 100644 index 0000000..a4a6fd8 Binary files /dev/null and b/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar differ diff --git a/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar.bz2 b/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar.bz2 new file mode 100644 index 0000000..c8602bd Binary files /dev/null and b/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar.bz2 differ diff --git a/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar.gz b/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar.gz new file mode 100644 index 0000000..0b9cb0c Binary files /dev/null and b/documentation/chargeIT/chargeIT-Testdatensatz-01+02.tar.gz differ diff --git a/documentation/chargeIT/chargeIT-Testdatensatz-01+02.zip b/documentation/chargeIT/chargeIT-Testdatensatz-01+02.zip new file mode 100644 index 0000000..0efaad2 Binary files /dev/null and b/documentation/chargeIT/chargeIT-Testdatensatz-01+02.zip differ diff --git a/documentation/chargeIT-Testdatensatz-01.chargy b/documentation/chargeIT/chargeIT-Testdatensatz-01.chargy similarity index 99% rename from documentation/chargeIT-Testdatensatz-01.chargy rename to documentation/chargeIT/chargeIT-Testdatensatz-01.chargy index 56a4670..d46b545 100644 --- a/documentation/chargeIT-Testdatensatz-01.chargy +++ b/documentation/chargeIT/chargeIT-Testdatensatz-01.chargy @@ -145,4 +145,4 @@ "signature": "6DF01D7603CB49BB76141F8E67B371351BF1F87C1F8D38AEB3600A9432B8CE0A378126D4FB9D9581457651A5D208AD9E" } ] -} \ No newline at end of file +} diff --git a/documentation/chargeIT/chargeIT-Testdatensatz-01.zip b/documentation/chargeIT/chargeIT-Testdatensatz-01.zip new file mode 100644 index 0000000..5530e07 Binary files /dev/null and b/documentation/chargeIT/chargeIT-Testdatensatz-01.zip differ diff --git a/documentation/chargeIT/chargeIT-Testdatensatz-02.chargy b/documentation/chargeIT/chargeIT-Testdatensatz-02.chargy new file mode 100644 index 0000000..6ae563c --- /dev/null +++ b/documentation/chargeIT/chargeIT-Testdatensatz-02.chargy @@ -0,0 +1,177 @@ +{ + "@id": "1554181214441:-1965658344385548683:2", + "@context": "https://open.charging.cloud/contexts/CTR+json", + "begin": "2019-04-02T05:00:19Z", + "end": "2019-04-02T05:13:52Z", + "description": { + "de": "Alle Ladevorgänge" + }, + "contract": { + "@id": "8057F5AA592904", + "type": "RFID_TAG_ID", + "username": "", + "email": "" + }, + "chargingStationOperators": [{ + "@id": "chargeITmobilityCSO", + "eMobilityIds": ["DE*BDO", "DE*LVF", "+49*822"], + "description": { + "de": "chargeIT mobility GmbH - Charging Station Operator Services" + }, + "contact": { + "email": "info@chargeit-mobility.com", + "web": "https://www.chargeit-mobility.com", + "logoUrl": "http://www.chargeit-mobility.com/fileadmin/BELECTRIC_Drive/templates/pics/chargeit_logo_408x70.png", + "publicKeys": [{ + "algorithm": "secp192r1", + "format": "DER", + "value": "042313b9e469612b4ca06981bfdecb226e234632b01d84b6a814f63a114b7762c34ddce2e6853395b7a0f87275f63ffe3c", + "signatures": [{ + "keyId": "...", + "algorithm": "secp192r1", + "format": "DER", + "value": "????" + }] + }, { + "algorithm": "secp256k1", + "format": "DER", + "value": "04a8ff0d82107922522e004a167cc658f0eef408c5020f98e7a2615be326e61852666877335f4f8d9a0a756c26f0c9fb3f401431416abb5317cc0f5d714d3026fe", + "signatures": [] + }] + }, + "support": { + "hotline": "+49 9321 / 2680 - 700", + "email": "service@chargeit-mobility.com", + "web": "https://cso.chargeit.charging.cloud/issues" + }, + "privacy": { + "contact": "Dr. iur. Christian Borchers, datenschutz süd GmbH", + "email": "datenschutz@chargeit-mobility.com", + "web": "http://www.chargeit-mobility.com/de/datenschutz/" + }, + "chargingStations": [{ + "@id": "DE*BDO*E8025334492", + "firmwareVersion": "3.0.25.2089", + "geoLocation": { + "lat": 48.035131, + "lng": 10.50635 + }, + "address": { + "street": "Breitenbergstr. 2", + "postalCode": "87719", + "city": "Mindelheim" + }, + "EVSEs": [{ + "@id": "DE*BDO*E8025334492*2", + "sockets": [{}], + "meters": [{ + "@id": "0901454D48000083E076", + "vendor": "EMH", + "vendorURL": "http://www.emh-metering.de", + "model": "eHZ IW8E EMH", + "hardwareVersion": "1.0", + "firmwareVersion": "123", + "signatureFormat": "https://open.charging.cloud/contexts/EnergyMeterSignatureFormats/EMHCrypt01", + "publicKeys": [{ + "@context": "https://open.charging.cloud/contexts/signature+json", + "algorithm": "secp192r1", + "format": "DER", + "value": "049EA8697F5C3126E86A37295566D560DE8EA690325791C9CBA79D30612B8EA8E00908FBAD5374812D55DCC3D809C3A36C", + "signatures": [{ + "@context": "https://open.charging.cloud/contexts/signature+json", + "timestamp": "2019-06-30T00:00:00Z", + "issuer": "Open Charging Cloud", + "notBefore": "2018-11-04T16:47:01Z", + "notAfter": "2023-03-12T13:54:12Z", + "algorithm": "secp521r1", + "format": "DER", + "publicKey": "040182c740a82d0d9e34168e4ee9c81d535983e48383678de1011659182e5446ee71e30babe389d2c8a29498cde15b2d959ed8f63409896ca2bcdc05588e210323961e01ccb785a29b14cda193be82354091445d86ada3b5390632b19d38f57cf3d9c43f8dc3fcd02848788bedc0b17e0ca073b72c03344daf9cbc004fb1b6f5ce2fa0bd1e", + "operations": { + "signMeterValues": true + }, + "signature": "303502181dce9223416d64e5362bc8eb46eddf23adcb74382b602e1f021900eca85b1a48bc1f64d25951e947c7e48fa0b070b82e2cae41", + "comment": { + "en": "Hello world!" + } + }, { + "@context": "https://open.charging.cloud/contexts/signature+json", + "timestamp": "2019-06-30T00:00:00Z", + "issuer": "chargeIT mobility", + "notBefore": "2018-11-04T16:47:01Z", + "notAfter": "2023-03-12T13:54:12Z", + "algorithm": "secp256k1", + "format": "DER", + "publicKey": "04a8ff0d82107922522e004a167cc658f0eef408c5020f98e7a2615be326e61852666877335f4f8d9a0a756c26f0c9fb3f401431416abb5317cc0f5d714d3026fe", + "operations": { + "signMeterValues": true + }, + "signature": "303502181dce9223416d64e5362bc8eb46eddf23adcb74382b602e1f021900eca85b1a48bc1f64d25951e947c7e48fa0b070b82e2cae41", + "comment": { + "en": "Hello world!" + } + }] + }] + }] + }] + }] + }], + "chargingSessions": [{ + "@id": "1554181214441:-1965658344385548683:2", + "@context": "https://open.charging.cloud/contexts/SessionSignatureFormats/EMHCrypt01+json", + "begin": "2019-04-02T05:00:19Z", + "end": "2019-04-02T05:13:52Z", + "EVSEId": "DE*BDO*E8025334492*2", + "authorizationStart": { + "@id": "8057F5AA592904", + "type": "RFID_TAG_ID", + "timestamp": "2019-04-02T07:00:19+02:00" + }, + "signatureInfos": { + "hash": "SHA512", + "hashTruncation": "24", + "algorithm": "ECC", + "curve": "secp192r1", + "format": "rs" + }, + "measurements": [{ + "energyMeterId": "0901454D48000083E076", + "@context": "https://open.charging.cloud/contexts/EnergyMeterSignatureFormats/EMHCrypt01+json", + "name": "ENERGY_TOTAL", + "obis": "1-0:1.17.0*255", + "unit": "WATT_HOUR", + "unitEncoded": 30, + "valueType": "Integer64", + "scale": -1, + "signatureInfos": { + "hash": "SHA512", + "hashTruncation": "24", + "algorithm": "ECC", + "curve": "secp192r1", + "format": "rs" + }, + "values": [{ + "timestamp": "2019-04-02T07:00:19+02:00", + "value": "66260", + "infoStatus": "08", + "secondsIndex": 65058, + "paginationId": "00000012", + "logBookIndex": "0006", + "signatures": [{ + "r": "71F76A80F170F87675AAEB19606BBD298355FDA7B0851700", + "s": "2FAD322FA073255BD8B971BD69BFF051BCA9330703172E3C" + }] + }, { + "timestamp": "2019-04-02T07:13:52+02:00", + "value": "67327", + "infoStatus": "08", + "secondsIndex": 65871, + "paginationId": "00000013", + "logBookIndex": "0006", + "signatures": [{ + "r": "6DF01D7603CB49BB76141F8E67B371351BF1F87C1F8D38AE", + "s": "B3600A9432B8CE0A378126D4FB9D9581457651A5D208AD9E" + }] + }] + }] + }] +} diff --git a/documentation/chargeIT/chargeIT-Testdatensatz-02.zip b/documentation/chargeIT/chargeIT-Testdatensatz-02.zip new file mode 100644 index 0000000..3152e39 Binary files /dev/null and b/documentation/chargeIT/chargeIT-Testdatensatz-02.zip differ diff --git a/package-lock.json b/package-lock.json index 28f2c4a..e54fc4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,42 @@ { "name": "chargytransparenzsoftware", - "version": "1.0.0", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { "7zip-bin": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-4.1.0.tgz", - "integrity": "sha512-AsnBZN3a8/JcNt+KPkGGODaA4c7l3W5+WpeKgGSbstSLxqWtTXqd1ieJGBQ8IFCtRg8DmmKUcSkIkUc0A4p3YA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", + "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", "dev": true }, + "@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + }, + "@electron/get": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", + "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^2.0.2", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "progress": "^2.0.3", + "sanitize-filename": "^1.6.2", + "sumchecker": "^3.0.1" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -25,67 +52,119 @@ "defer-to-connect": "^1.0.1" } }, + "@tokenizer/token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz", + "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==" + }, "@types/bn.js": { - "version": "4.11.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.5.tgz", - "integrity": "sha512-AEAZcIZga0JgVMHNtl1CprA/hXX7/wPt79AgR4XqaDt7jyj3QWYw6LPoOiznPtugDmlubUnAahMs2PFxGcQrng==", + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "requires": { "@types/node": "*" } }, "@types/chart.js": { - "version": "2.7.54", - "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.7.54.tgz", - "integrity": "sha512-BxIUR4mfk0zOqOPEu4gxLP5herra6INQLyFmgVE6JVRNNB+r36g2cd67nDUEEdD/EShZvaR33xausxOGv1+nbw==" + "version": "2.9.21", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.21.tgz", + "integrity": "sha512-bjwdC+SvE/c3rHYYcX8UbRmTvjEUP9Dhuk/iWXygH6EFDYf4OcofnwxBpJx+A4qU3YBr54a7wtPdswfg9Yt3rg==", + "dev": true, + "requires": { + "moment": "^2.10.2" + } }, - "@types/debug": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.4.tgz", - "integrity": "sha512-D9MyoQFI7iP5VdpEyPZyjjqIJ8Y8EDNQFIFVLOmeg1rI1xiHOChyUPMPRUVfqFCerxfE+yS3vMyj37F6IdtOoQ==", + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/debug": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", + "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" + }, + "@types/decompress": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.3.tgz", + "integrity": "sha512-W24e3Ycz1UZPgr1ZEDHlK4XnvOr+CpJH3qNsFeqXwwlW/9END9gxn3oJSsp7gYdiQxrXUHwUUd3xuzVz37MrZQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/elliptic": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.9.tgz", - "integrity": "sha512-Mn+OyENd6YHwJKgUSyCTUDunEDFMaFpCXt52JCA00sxtzEa1ji6H0doZHL3iXhqMTo1Ob53X+Dv0s4PAJ+IVlA==", + "version": "6.4.12", + "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.12.tgz", + "integrity": "sha512-gP1KsqoouLJGH6IJa28x7PXb3cRqh83X8HCLezd2dF+XcAIMKYv53KV+9Zn6QA561E120uOqZBQ+Jy/cl+fviw==", + "dev": true, "requires": { "@types/bn.js": "*" } }, + "@types/fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/geojson": { "version": "7946.0.7", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", - "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==" + "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", + "dev": true }, "@types/leaflet": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.4.4.tgz", - "integrity": "sha512-CROxHvsRDFyR1OQKZv/WJsCVFv8Wj6wFF/FOI/yiGwX7GMivyvF8Ks5AT3/JYk269pGiE43wP9JOgcr7EK2eUw==", + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.5.12.tgz", + "integrity": "sha512-61HRMIng+bWvnnAIqUWLBlrd/TQZc4gU+gN1JL4K47EDtwIrcMEhWgi7PdcpbG1YmpH4F0EfOimkvV82gJIl9w==", + "dev": true, "requires": { "@types/geojson": "*" } }, "@types/node": { - "version": "12.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.10.tgz", - "integrity": "sha512-LcsGbPomWsad6wmMNv7nBLw7YYYyfdYcz6xryKYQhx89c3XXan+8Q6AJ43G5XDIaklaVkK3mE4fCb0SBvMiPSQ==" + "version": "14.0.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.11.tgz", + "integrity": "sha512-lCvvI24L21ZVeIiyIUHZ5Oflv1hhHQ5E1S25IRlKIXaRkVgmXpJMI3wUJkmym2bTbCe+WoIibQnMVAU3FguaOg==", + "dev": true + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "dev": true }, "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true }, "ansi-align": { @@ -97,18 +176,6 @@ "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -119,54 +186,40 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } } } }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" }, "dependencies": { "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true } } }, "anymatch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.2.tgz", - "integrity": "sha512-rUe9SxpRQlVg4EM8It7JMNWWYHAirTPpbTuvaSKybb5IejNgWB3PGBBX9rrPKDx2pM/p3Wh+7+ASaWRyyAbxmQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -174,56 +227,76 @@ } }, "app-builder-bin": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.7.1.tgz", - "integrity": "sha512-ubIBeiL9XysjMW4HETBKxj3DC8ika6dGyC0vftPc0kZwGh1iXQ5bycsjoAqY/3t3BBEEIg0VruicvBaUl1pOSQ==", + "version": "3.5.9", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.9.tgz", + "integrity": "sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg==", "dev": true }, "app-builder-lib": { - "version": "20.44.4", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.44.4.tgz", - "integrity": "sha512-1K1xfrhyqDgnibwyuYMgvfwGilGLMF31YwOUJ8IXreyjRef9lUjWW+BZuBXqk4Uqd0C0EYPjhofgpuN0WoAQ+A==", + "version": "22.7.0", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.7.0.tgz", + "integrity": "sha512-blRKwV8h0ztualXS50ciCTo39tbuDGNS+ldcy8+KLvKXuT6OpYnSJ7M6MSfPT+xWatshMHJV1rJx3Tl+k/Sn/g==", "dev": true, "requires": { - "7zip-bin": "~4.1.0", - "app-builder-bin": "2.7.1", + "7zip-bin": "~5.0.3", + "@develar/schema-utils": "~2.6.5", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "10.1.2", - "builder-util-runtime": "8.2.5", + "builder-util": "22.7.0", + "builder-util-runtime": "8.7.1", "chromium-pickle-js": "^0.2.0", - "debug": "^4.1.1", - "ejs": "^2.6.2", - "electron-osx-sign": "0.4.11", - "electron-publish": "20.44.4", - "fs-extra-p": "^8.0.2", - "hosted-git-info": "^2.7.1", + "debug": "^4.2.0", + "ejs": "^3.1.3", + "electron-publish": "22.7.0", + "fs-extra": "^9.0.0", + "hosted-git-info": "^3.0.4", "is-ci": "^2.0.0", - "isbinaryfile": "^4.0.1", - "js-yaml": "^3.13.1", + "isbinaryfile": "^4.0.6", + "js-yaml": "^3.14.0", "lazy-val": "^1.0.4", "minimatch": "^3.0.4", "normalize-package-data": "^2.5.0", - "plist": "^3.0.1", - "read-config-file": "3.2.2", - "sanitize-filename": "^1.6.1", - "semver": "^6.1.1", - "temp-file": "^3.3.3" + "read-config-file": "6.0.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.2", + "temp-file": "^3.3.7" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, - "semver": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.2.tgz", - "integrity": "sha512-z4PqiCpomGtWj8633oeAdXm1Kn1W++3T8epkZYnwiVgIYIJ0QHszhInYSJTYxebByQH7KVCEAn8R9duzZW2PhQ==", + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } @@ -235,33 +308,31 @@ "dev": true, "requires": { "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } } }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, + "asn1.js": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.3.0.tgz", + "integrity": "sha512-WHnQJFcOrIWT1RLOkFFBQkFVvyt9BPOOrH+Dp152Zk4R993rSzXUGPmkybIcUFhHE2d/iHH+nCaOWVCDbO8fgA==", "requires": { - "safer-buffer": "~2.1.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", "dev": true }, "async-exit-hook": { @@ -270,22 +341,10 @@ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", "dev": true }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true }, "balanced-match": { @@ -294,20 +353,15 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true + "base32-decode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base32-decode/-/base32-decode-1.0.0.tgz", + "integrity": "sha512-KNWUX/R7wKenwE/G/qFMzGScOgVntOmbE27vvc6GrniDGYb6a5+qWcuoXl8WIOQL7q0TpK7nZDm1Y04Yi3Yn5g==" }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "binary-extensions": { "version": "2.0.0", @@ -315,10 +369,19 @@ "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "dev": true }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bluebird-lst": { @@ -331,62 +394,41 @@ } }, "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "boolean": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", + "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", + "dev": true, + "optional": true }, "boxen": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", - "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dev": true, "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", - "chalk": "^2.4.2", + "chalk": "^3.0.0", "cli-boxes": "^2.2.0", - "string-width": "^3.0.0", - "term-size": "^1.2.0", - "type-fest": "^0.3.0", - "widest-line": "^2.0.0" + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } @@ -415,11 +457,19 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, "buffer-alloc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -428,14 +478,17 @@ "buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { "version": "1.1.1", @@ -444,56 +497,83 @@ "dev": true }, "builder-util": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-10.1.2.tgz", - "integrity": "sha512-LQMh36Cg0r4ZfKqNlaUclndS/IXxZ3OdCgmXvw1vdP3QwYT2NkyE7LfMikAFIHpXOs6zsVH+iW+Fe/AX1jfFag==", + "version": "22.7.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.7.0.tgz", + "integrity": "sha512-UV3MKL0mwjMq2y9JlBf28Cegpj0CrIXcjGkO0TXn+QZ6Yy9rY6lHOuUvpQ19ct2Qh1o+QSwH3Q1nKUf5viJBBg==", "dev": true, "requires": { - "7zip-bin": "~4.1.0", - "@types/debug": "^4.1.4", - "app-builder-bin": "2.7.1", + "7zip-bin": "~5.0.3", + "@types/debug": "^4.1.5", + "@types/fs-extra": "^9.0.1", + "app-builder-bin": "3.5.9", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "^8.2.5", - "chalk": "^2.4.2", - "debug": "^4.1.1", - "fs-extra-p": "^8.0.2", + "builder-util-runtime": "8.7.1", + "chalk": "^4.0.0", + "debug": "^4.2.0", + "fs-extra": "^9.0.0", "is-ci": "^2.0.0", - "js-yaml": "^3.13.1", - "source-map-support": "^0.5.12", - "stat-mode": "^0.3.0", - "temp-file": "^3.3.3" + "js-yaml": "^3.14.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.3.7" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", "dev": true, "requires": { - "ms": "^2.1.1" + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true } } }, "builder-util-runtime": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.2.5.tgz", - "integrity": "sha512-YILT+YUlxrE3yNB6mDC1tF+Q24mr1LSYdjP5U861jbBeDZfvy1/VPDzW3boMVrDtzYnDnvkYrzLJnoh6TXA75w==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz", + "integrity": "sha512-uEBH1nAnTvzjcsrh2XI3qOzJ39h0+9kuIuwj+kCc3a07TZNGShfJcai8fFzL3mNgGjEFxoq+XMssR11r+FOFSg==", "dev": true, "requires": { - "bluebird-lst": "^1.0.9", - "debug": "^4.1.1", - "fs-extra-p": "^8.0.2", + "debug": "^4.2.0", "sax": "^1.2.4" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } @@ -531,54 +611,37 @@ } }, "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "chart.js": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.8.0.tgz", - "integrity": "sha512-Di3wUL4BFvqI5FB5K26aQ+hvWh8wnP9A3DWGvXHVkO13D3DSnaSsdZx29cXlEsYKVkn1E2az+ZYFS4t0zi8x0w==", + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.3.tgz", + "integrity": "sha512-+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw==", "requires": { "chartjs-color": "^2.1.0", "moment": "^2.10.2" } }, "chartjs-color": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.3.0.tgz", - "integrity": "sha512-hEvVheqczsoHD+fZ+tfPUE+1+RbV6b+eksp2LwAhwRTVXEjCSEavvk+Hg3H6SZfGlPh/UfmWKGIvZbtobOEm3g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", + "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", "requires": { "chartjs-color-string": "^0.6.0", - "color-convert": "^0.5.3" + "color-convert": "^1.9.3" } }, "chartjs-color-string": { @@ -590,20 +653,19 @@ } }, "chokidar": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.1.tgz", - "integrity": "sha512-2ww34sJWehnbpV0Q4k4V5Hh7juo7po6z7LUWkcIQnSGN1lHOL8GGtLtfwabKvLFQw/hbSUQ0u6V7OgGYgBzlkQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", "dev": true, "requires": { - "anymatch": "^3.0.1", - "async-each": "^1.0.3", - "braces": "^3.0.2", - "fsevents": "^2.0.6", - "glob-parent": "^5.0.0", - "is-binary-path": "^2.1.0", - "is-glob": "^4.0.1", - "normalize-path": "^3.0.0", - "readdirp": "^3.0.2" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" } }, "chromium-pickle-js": { @@ -625,46 +687,29 @@ "dev": true }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" } } } @@ -678,37 +723,34 @@ "mimic-response": "^1.0.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, "color-convert": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=" + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + }, + "dependencies": { + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + } + } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "requires": { - "delayed-stream": "~1.0.0" + "graceful-readlink": ">= 1.0.0" } }, - "compare-version": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", - "dev": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -725,110 +767,135 @@ "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "semver": "^6.0.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } + "optional": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "ms": "^2.1.1" } }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, + "decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", "requires": { - "array-find-index": "^1.0.1" - } + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, + "decompress-bzip2": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decompress-bzip2/-/decompress-bzip2-4.0.0.tgz", + "integrity": "sha1-0SVMlJ4F6vYol1QoawY/3Hz/AT8=", "requires": { - "assert-plus": "^1.0.0" + "file-type": "^4.3.0", + "seek-bzip": "^1.0.5" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" + } } }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, + "decompress-gz": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/decompress-gz/-/decompress-gz-0.0.1.tgz", + "integrity": "sha512-YMdCWdxHvPplsTbV1tvr2oFJOtAFNxqVMFnKWEmePBXl+LKG5z5bFrowzc12Jzd7O29nnzI/D1M95Asx0Qa1fg==", "requires": { - "ms": "^2.1.1" + "file-type": "^5.2.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + } } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -838,6 +905,91 @@ "mimic-response": "^1.0.0" } }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + } + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + } + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -845,52 +997,91 @@ "dev": true }, "defer-to-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz", - "integrity": "sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "optional": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true, + "optional": true }, "dmg-builder": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.7.2.tgz", - "integrity": "sha512-xfYOwhHjOSOIqkk8A0h8zcaio/WyzrAWpMTu9hzV3Z5PI4tOG0Pq6a9Lh/mHr1r3bydif8R21qGvKU1Re9CpUg==", + "version": "22.7.0", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.7.0.tgz", + "integrity": "sha512-5Ea2YEz6zSNbyGzZD+O9/MzmaXb6oa15cSKWo4JQ1xP4rorOpte7IOj2jcwYjtc+Los2gu1lvT314OC1OZIWgg==", "dev": true, "requires": { - "app-builder-lib": "~20.44.4", - "bluebird-lst": "^1.0.9", - "builder-util": "~10.1.2", - "fs-extra-p": "^8.0.2", - "iconv-lite": "^0.4.24", - "js-yaml": "^3.13.1", - "parse-color": "^1.0.0", - "sanitize-filename": "^1.6.1" + "app-builder-lib": "22.7.0", + "builder-util": "22.7.0", + "fs-extra": "^9.0.0", + "iconv-lite": "^0.5.1", + "js-yaml": "^3.14.0", + "sanitize-filename": "^1.6.3" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } } }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" } }, "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", "dev": true }, "dotenv-expand": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", - "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", "dev": true }, "duplexer3": { @@ -899,138 +1090,152 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "ejs": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz", + "integrity": "sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jake": "^10.6.1" } }, - "ejs": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.2.tgz", - "integrity": "sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q==", - "dev": true - }, "electron": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/electron/-/electron-5.0.6.tgz", - "integrity": "sha512-0L53lv26eDhaaNxL6DqXGQrQOEAYbrQg40stRSb2pzrY06kwPbABzXEiaCvEsBuKUQ+9OQBbVyyvXRbLJlun/A==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/electron/-/electron-9.0.2.tgz", + "integrity": "sha512-+a3KegLvQXVjC3b6yBWwZmtWp3tHf9ut27yORAWHO9JRFtKfNf88fi1UvTPJSW8R0sUH7ZEdzN6A95T22KGtlA==", "dev": true, "requires": { - "@types/node": "^10.12.18", - "electron-download": "^4.1.0", + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", "extract-zip": "^1.0.3" }, "dependencies": { "@types/node": { - "version": "10.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.10.tgz", - "integrity": "sha512-V8wj+w2YMNvGuhgl/MA5fmTxgjmVHVoasfIaxMMZJV6Y8Kk+Ydpi1z2whoShDCJ2BuNVoqH/h1hrygnBxkrw/Q==", + "version": "12.12.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.44.tgz", + "integrity": "sha512-jM6QVv0Sm5d3nW+nUD5jSzPcO6oPqboitSNcwgBay9hifVq/Rauq1PYnROnsmuw45JMBiTnsPAno0bKu2e2xrg==", "dev": true } } }, "electron-builder": { - "version": "20.44.4", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.44.4.tgz", - "integrity": "sha512-H8zzP01albkKh2Ec1zc0A7RGriUkHb5M99NJskaYtgKtGATTAGH+r9OIWVk5Hk9c1dLMVudbqEeaSlygMF2asw==", + "version": "22.7.0", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.7.0.tgz", + "integrity": "sha512-t6E3oMutpST64YWbZCg7HodEwJOsnjUF1vnDIHm2MW6CFZPX8tlCK6efqaV66LU0E0Nkp/JH6TE5bCqQ1+VdPQ==", "dev": true, "requires": { - "app-builder-lib": "20.44.4", + "@types/yargs": "^15.0.5", + "app-builder-lib": "22.7.0", "bluebird-lst": "^1.0.9", - "builder-util": "10.1.2", - "builder-util-runtime": "8.2.5", - "chalk": "^2.4.2", - "dmg-builder": "6.7.2", - "fs-extra-p": "^8.0.2", + "builder-util": "22.7.0", + "builder-util-runtime": "8.7.1", + "chalk": "^4.0.0", + "dmg-builder": "22.7.0", + "fs-extra": "^9.0.0", "is-ci": "^2.0.0", "lazy-val": "^1.0.4", - "read-config-file": "3.2.2", - "sanitize-filename": "^1.6.1", - "update-notifier": "^3.0.0", - "yargs": "^13.2.4" - } - }, - "electron-download": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz", - "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==", - "dev": true, - "requires": { - "debug": "^3.0.0", - "env-paths": "^1.0.0", - "fs-extra": "^4.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.1", - "path-exists": "^3.0.0", - "rc": "^1.2.1", - "semver": "^5.4.1", - "sumchecker": "^2.0.2" - } - }, - "electron-osx-sign": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz", - "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "compare-version": "^0.1.2", - "debug": "^2.6.8", - "isbinaryfile": "^3.0.2", - "minimist": "^1.2.0", - "plist": "^3.0.1" + "read-config-file": "6.0.0", + "sanitize-filename": "^1.6.3", + "update-notifier": "^4.1.0", + "yargs": "^15.3.1" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { - "ms": "2.0.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" } }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", "dev": true, "requires": { - "buffer-alloc": "^1.2.0" + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, + "electron-is-accelerator": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz", + "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" + }, + "electron-localshortcut": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz", + "integrity": "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==", + "requires": { + "debug": "^4.0.1", + "electron-is-accelerator": "^0.1.0", + "keyboardevent-from-electron-accelerator": "^2.0.0", + "keyboardevents-areequal": "^0.2.1" + } + }, "electron-publish": { - "version": "20.44.4", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.44.4.tgz", - "integrity": "sha512-50NzsKOnNqOpGJzPl04vMyitdguUvp15FWKWtu4KISsHfgdLMWGgxHGZwfMphc/vf364zXvPHsYQza3MASgaEQ==", + "version": "22.7.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.7.0.tgz", + "integrity": "sha512-hmU69xlb6vvAV3QfpHYDlkdZMFdBAgDbptoxbLFrnTq5bOkcL8AaDbvxeoZ4+lvqgs29NwqGpkHo2oN+p/hCfg==", "dev": true, "requires": { + "@types/fs-extra": "^9.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "~10.1.2", - "builder-util-runtime": "^8.2.5", - "chalk": "^2.4.2", - "fs-extra-p": "^8.0.2", + "builder-util": "22.7.0", + "builder-util-runtime": "8.7.1", + "chalk": "^4.0.0", + "fs-extra": "^9.0.0", "lazy-val": "^1.0.4", - "mime": "^2.4.4" + "mime": "^2.4.5" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } } }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -1047,73 +1252,63 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true, + "optional": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } }, "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } + "optional": true }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", "dev": true }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" }, "dependencies": { "debug": { @@ -1133,31 +1328,44 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "file-type": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-14.6.0.tgz", + "integrity": "sha512-/Lg6yw7NtOVBe4wynSTDGyL32Jm+mqjYA7wZScjnEjYN1a68fhFhE75V2YEQPAfCoVtq6Mi02thUEYiOfTgLnQ==", + "requires": { + "readable-web-to-node-stream": "^2.0.0", + "strtok3": "^6.0.0", + "token-types": "^2.0.0", + "typedarray-to-buffer": "^3.1.5" + } + }, + "filelist": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", + "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==", "dev": true, "requires": { - "pend": "~1.2.0" + "minimatch": "^3.0.4" } }, "fill-range": { @@ -1170,81 +1378,35 @@ } }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, - "fs-extra-p": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-8.0.2.tgz", - "integrity": "sha512-dpWboLA/OlyuqGQdsTjC2PKNkise3O4ptcMpXoyfeM/VXrthkEape3I+drWLI0JAW46r1D3eb6QBSPkSyXPXzA==", - "dev": true, - "requires": { - "bluebird-lst": "^1.0.9", - "fs-extra": "^8.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.0.1.tgz", - "integrity": "sha512-W+XLrggcDzlle47X/XnS7FXrXu9sDo+Ze9zpndeBxdgv88FHLm1HtmkhEwavruS6koanBjp098rUpHs65EmG7A==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, "fsevents": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz", - "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, @@ -1254,43 +1416,70 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "pump": "^3.0.0" } }, "glob-parent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", - "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, + "global-agent": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", + "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.1", + "core-js": "^3.6.5", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + } + }, "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "dev": true, + "requires": { + "ini": "^1.3.5" + } + }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", "dev": true, + "optional": true, "requires": { - "ini": "^1.3.4" + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", + "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "dev": true, + "optional": true, + "requires": { + "define-properties": "^1.1.3" } }, "got": { @@ -1310,45 +1499,22 @@ "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } } }, "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", - "dev": true + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-yarn": { @@ -1377,37 +1543,34 @@ } }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", - "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "lru-cache": "^5.1.1" } }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz", + "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -1420,19 +1583,10 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", @@ -1440,18 +1594,6 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1476,23 +1618,11 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { "version": "4.0.1", @@ -1504,19 +1634,24 @@ } }, "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, "is-npm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", - "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true }, "is-number": { @@ -1526,37 +1661,26 @@ "dev": true }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-yarn-global": { "version": "0.3.0", @@ -1565,57 +1689,87 @@ "dev": true }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.1.tgz", - "integrity": "sha512-bvJxbNWm72dy/1+qeBm9F8wUM4siDnlzid7NN5Ib4nQcc0tNIx/YWgEih1ZRHXr8xVbpGk1ccLlA9gOSlyx3gw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", "dev": true }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "jake": { + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.1.tgz", + "integrity": "sha512-eSp5h9S7UFzKdQERTyF+KuPLjDZa1Tbw8gCVUn98n4PbIkLEDGe4zl7vF4Qge9kQj06HcymnksPk8jznPZeKsA==", + "dev": true, + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -1626,15 +1780,16 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "dev": true, + "optional": true }, "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } }, "jsonfile": { @@ -1646,17 +1801,15 @@ "graceful-fs": "^4.1.6" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } + "keyboardevent-from-electron-accelerator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz", + "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==" + }, + "keyboardevents-areequal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz", + "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==" }, "keyv": { "version": "3.1.0", @@ -1682,57 +1835,31 @@ "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, "leaflet": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.5.1.tgz", - "integrity": "sha512-ekM9KAeG99tYisNBg0IzEywAlp0hYI5XRipsqRXyRTeuU8jcuntilpp+eFf5gaE0xubc9RuSNIVtByEKwqFV0w==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.6.0.tgz", + "integrity": "sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ==" }, "leaflet.awesome-markers": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/leaflet.awesome-markers/-/leaflet.awesome-markers-2.0.5.tgz", "integrity": "sha512-Ne/xDjkGyaujwNVVkv2tyXQUV0ZW7gZ0Mo0FuQY4jp2qWrvXi0hwDBvmZyF/8YOvybyMabTMM/mFWCTd1jZIQA==" }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } + "optional": true }, "lowercase-keys": { "version": "1.0.1", @@ -1741,101 +1868,36 @@ "dev": true }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "yallist": "^3.0.2" } }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, "requires": { "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" } }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", "dev": true, + "optional": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "escape-string-regexp": "^4.0.0" } }, "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dev": true, - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true }, "mimic-response": { @@ -1864,44 +1926,29 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } + "minimist": "^1.2.5" } }, "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", + "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==" }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "normalize-package-data": { "version": "2.5.0", @@ -1913,6 +1960,20 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "normalize-path": { @@ -1922,175 +1983,64 @@ "dev": true }, "normalize-url": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz", - "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", "dev": true, + "optional": true, "requires": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "config-chain": "^1.1.11", + "pify": "^3.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "optional": true }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -2100,59 +2050,29 @@ "dev": true }, "package-json": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.4.0.tgz", - "integrity": "sha512-bd1T8OBG7hcvMd9c/udgv6u5v9wISP3Oyl9Cm7Weop8EFwrtcQDnS2sb6zhwqus2WslSr5wSTIPiTTpxxmPm7Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { "got": "^9.6.0", - "registry-auth-token": "^3.4.0", + "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", - "semver": "^6.1.1" + "semver": "^6.2.0" }, "dependencies": { "semver": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.2.tgz", - "integrity": "sha512-z4PqiCpomGtWj8633oeAdXm1Kn1W++3T8epkZYnwiVgIYIJ0QHszhInYSJTYxebByQH7KVCEAn8R9duzZW2PhQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, - "parse-color": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", - "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=", - "dev": true, - "requires": { - "color-convert": "~0.5.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-parse": { @@ -2161,110 +2081,63 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } + "peek-readable": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.0.tgz", + "integrity": "sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA==" }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "picomatch": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", - "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { "pinkie": "^2.0.0" } }, - "plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", - "dev": true, - "requires": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" - } - }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - } - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", - "dev": true, - "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - } + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "psl": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.33.tgz", - "integrity": "sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw==", - "dev": true + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true }, "pump": { "version": "3.0.0", @@ -2282,11 +2155,14 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } }, "rc": { "version": "1.2.8", @@ -2301,105 +2177,53 @@ } }, "read-config-file": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.2.tgz", - "integrity": "sha512-PuFpMgZF01VB0ydH1dfitAxCP/fh+qnfbA9cYNIPoxPbz0SMngsrafCtaHDWfER7MwlDz4fmrNBhPkakxxFpTg==", - "dev": true, - "requires": { - "ajv": "^6.9.2", - "ajv-keywords": "^3.4.0", - "bluebird-lst": "^1.0.7", - "dotenv": "^6.2.0", - "dotenv-expand": "^4.2.0", - "fs-extra-p": "^7.0.1", - "js-yaml": "^3.12.1", - "json5": "^2.1.0", - "lazy-val": "^1.0.4" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-extra-p": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz", - "integrity": "sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==", - "dev": true, - "requires": { - "bluebird-lst": "^1.0.7", - "fs-extra": "^7.0.1" - } - } - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz", + "integrity": "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "js-yaml": "^3.13.1", + "json5": "^2.1.2", + "lazy-val": "^1.0.4" } }, "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "readdirp": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.0.2.tgz", - "integrity": "sha512-LbyJYv48eywrhOlScq16H/VkCiGKGPC2TpOdZCJ7QXnYEjn3NN/Oblh8QEU3vqfSRBB7OGvh5x45NKiVeNujIQ==", - "dev": true, - "requires": { - "picomatch": "^2.0.4" - } + "readable-web-to-node-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-2.0.0.tgz", + "integrity": "sha512-+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==" }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "picomatch": "^2.2.1" } }, "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "^1.2.8" } }, "registry-url": { @@ -2411,43 +2235,6 @@ "rc": "^1.2.8" } }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -2461,9 +2248,9 @@ "dev": true }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -2478,31 +2265,49 @@ "lowercase-keys": "^1.0.0" } }, + "roarr": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", + "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.0", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", + "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==" }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sanitize-filename": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", - "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", "dev": true, "requires": { "truncate-utf8-bytes": "^1.0.0" } }, "sass": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.1.tgz", - "integrity": "sha512-VsWrNdfIzCLbD2TO2bq9tCaUzEE0UUSGtP3r9IhHi8ypAPCb3FOVP99kMRil+ZROEcTnKReZcQP9vk6ArV2eLw==", + "version": "1.26.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.8.tgz", + "integrity": "sha512-yvtzyrKLGiXQu7H12ekXqsfoGT/aTKeMDyVzCB675k1HYuaj0py63i8Uf4SI9CHXj6apDhpfwbUr3gGOjdpu2Q==", "dev": true, "requires": { "chokidar": ">=2.0.0 <4.0.0" @@ -2514,57 +2319,75 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "requires": { + "commander": "~2.8.1" + } + }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "optional": true + }, "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", "dev": true, + "optional": true, "requires": { - "shebang-regex": "^1.0.0" + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true + } } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "dev": true, - "requires": { - "string-width": "^1.0.1" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2572,9 +2395,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -2582,9 +2405,9 @@ } }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -2592,15 +2415,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -2608,94 +2431,87 @@ } }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", - "dev": true - }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } + "optional": true }, "stat-mode": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.3.0.tgz", - "integrity": "sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", "dev": true }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "ansi-regex": "^2.0.0" + "safe-buffer": "~5.1.0" } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "ansi-regex": "^4.1.0" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", "requires": { - "get-stdin": "^4.0.1" + "is-natural-number": "^4.0.1" } }, "strip-json-comments": { @@ -2704,76 +2520,74 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strtok3": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.0.tgz", + "integrity": "sha512-ZXlmE22LZnIBvEU3n/kZGdh770fYFie65u5+2hLK9s74DoFtpkQIdBZVeYEzlolpGa+52G5IkzjUWn+iXynOEQ==", + "requires": { + "@tokenizer/token": "^0.1.1", + "@types/debug": "^4.1.5", + "debug": "^4.1.1", + "peek-readable": "^3.1.0" + } + }, "sumchecker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", - "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", "dev": true, "requires": { - "debug": "^2.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "debug": "^4.1.0" } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, - "temp-file": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.3.tgz", - "integrity": "sha512-ErWJ0vfZwkozaH7dn/5QtYdrGwy6fWID0GG3PEzNb9Vmt6urL4mQ3lKz7NWVi1/kmZsWQzgjTL7/P4mwGx5jqg==", - "dev": true, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", "requires": { - "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "fs-extra-p": "^8.0.2" + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" } }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "temp-file": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz", + "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==", "dev": true, "requires": { - "execa": "^0.7.0" + "async-exit-hook": "^2.0.1", + "fs-extra": "^8.1.0" } }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", "dev": true }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" }, "to-readable-stream": { "version": "1.0.0", @@ -2790,30 +2604,15 @@ "is-number": "^7.0.0" } }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, + "token-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-2.0.0.tgz", + "integrity": "sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==", "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "@tokenizer/token": "^0.1.0", + "ieee754": "^1.1.13" } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -2823,25 +2622,17 @@ "utf8-byte-length": "^1.0.1" } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "optional": true }, "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray": { @@ -2850,19 +2641,36 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", - "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", + "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", "dev": true }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "^2.0.0" } }, "universalify": { @@ -2872,23 +2680,36 @@ "dev": true }, "update-notifier": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.0.tgz", - "integrity": "sha512-6Xe3oF2bvuoj4YECUc52yxVs94yWrxwqHbzyveDktTS1WhnlTRpNcQMxUshcB7nRVGi1jEXiqL5cW1S5WSyzKg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", + "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", "dev": true, "requires": { - "boxen": "^3.0.0", - "chalk": "^2.0.1", - "configstore": "^4.0.0", + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.1.0", - "is-npm": "^3.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", "is-yarn-global": "^0.3.0", "latest-version": "^5.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "uri-js": { @@ -2918,14 +2739,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "validate-npm-package-license": { "version": "3.0.4", @@ -2937,26 +2751,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -2964,88 +2758,38 @@ "dev": true }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^4.0.0" } }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" } } } @@ -3053,46 +2797,30 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true - }, - "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { "version": "4.0.0", @@ -3101,98 +2829,47 @@ "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^3.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "yargs-parser": "^18.1.1" } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } } }, "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "dev": true, + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "requires": { - "fd-slicer": "~1.0.1" + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" } } } diff --git a/package.json b/package.json index 80b3f0a..36f92df 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chargytransparenzsoftware", - "version": "1.0.0", + "version": "1.2.0", "description": "Chargy ist eine Transparenzsoftware für das Eichrecht in der Elektromobilität. Hiermit können Endkunden und E-Mobilitäts-Anbieter die Plausibilitäts und Validität von Ladevorgängen überprüfen.", "main": "src/main.js", "scripts": { @@ -20,34 +20,43 @@ "E-Mobility", "Ladestationen", "charging stations", - "PTB" + "PTB", + "VDE" ], - "author": "Achim Friedland ", + "author": "GraphDefined GmbH ", "license": "AGPL-3.0-or-later", "homepage": "https://github.com/OpenChargingCloud/ChargyDesktopApp", + "devDependencies": { + "@types/chart.js": "^2.9.21", + "@types/decompress": "^4.2.3", + "@types/elliptic": "^6.4.12", + "@types/leaflet": "^1.5.12", + "@types/node": "^14.0.11", + "electron": "^9.0.2", + "electron-builder": "^22.7.0", + "sass": "^1.26.8", + "typescript": "^3.9.5" + }, "dependencies": { - "@types/chart.js": "^2.7.54", - "@types/elliptic": "^6.4.9", - "@types/leaflet": "^1.4.4", - "chart.js": "^2.8.0", - "elliptic": "^6.5.0", - "leaflet": "^1.5.1", + "asn1.js": "^5.3.0", + "base32-decode": "^1.0.0", + "chart.js": "^2.9.3", + "decompress": "^4.2.1", + "decompress-bzip2": "^4.0.0", + "decompress-gz": "0.0.1", + "electron-localshortcut": "^3.2.1", + "elliptic": "^6.5.2", + "file-type": "^14.6.0", + "leaflet": "^1.6.0", "leaflet.awesome-markers": "^2.0.5", - "moment": "^2.24.0" - }, - "devDependencies": { - "@types/node": "^12.0.10", - "electron": "^5.0.6", - "electron-builder": "^20.44.4", - "sass": "^1.22.1", - "typescript": "^3.5.2" + "moment": "^2.26.0", + "safe-stable-stringify": "^1.1.1" }, "build": { - "appId": "cloud.charging.open.chargy.desktop", - "productName": "Chargy Transparenzsoftware", - "copyright": "Copyright © 2018-2019 GraphDefined GmbH", + "appId": "cloud.charging.chargepoint.chargy.desktop", + "productName": "Chargy Transparenzsoftware ChargePoint Edition", + "copyright": "Copyright © 2018-2020 GraphDefined GmbH", "extraFiles": [ - "build", "documentation", "versions" ], @@ -63,11 +72,11 @@ "target": [ "nsis" ], - "icon": "build/chargy.ico" + "icon": "src/icons/chargepoint2.ico" }, "nsis": { "perMachine": true, - "installerIcon": "build/chargy.ico", + "installerIcon": "src/icons/chargepoint2.ico", "deleteAppDataOnUninstall": true, "runAfterFinish": true }, @@ -75,7 +84,11 @@ "target": [ "deb" ], - "icon": "build/chargy_icon.png" + "icon": "src/icons/chargepoint2.png" + }, + "mac": { + "category": "public.app-category.business", + "type": "distribution" } } } diff --git a/run.sh b/run.sh index 84bd77a..647da53 100755 --- a/run.sh +++ b/run.sh @@ -3,4 +3,4 @@ tsc -p tsconfig.json sass src/css/chargy.scss src/css/chargy.css -npm start +npm start --silent -- --debug "$@" diff --git a/src/css/_custom.scss b/src/css/_custom.scss index c3ee1a2..06ba23a 100644 --- a/src/css/_custom.scss +++ b/src/css/_custom.scss @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 GraphDefined GmbH + * Copyright (c) 2018-2020 GraphDefined GmbH * This file is part of Chargy Desktop App * * Licensed under the Affero GPL license, Version 3.0 (the "License"); @@ -17,7 +17,7 @@ body { - // #outerframe { + #app { background-color: #ffffff; @@ -25,44 +25,41 @@ body { #logo { background-color: #ffffff; - background-image: url('../images/chargeIT-logo.jpg'); + background-image: url('../images/ChargePoint_logo_HEX.png'); } #windowButtons { button:hover { - color: #b7b7b7; + color: #b7b7b7; } } } - + #verifyframe { #leftbar { #input { - background-color: #f1f1f1; + background-color: #f1f1f1; #inputInfos { #buttonsDiv { button { - color: #8d420e; - background: linear-gradient(to right, rgb(236,96,57) 0%,rgb(247,164,36) 100%); - // font-size: 1.5vw; - // width: 12vw; - // height: 12vw; + color: #8d420e; + background: linear-gradient(to right, rgb(236,96,57) 0%,rgb(247,164,36) 100%); i { - font-size: 120%; + font-size: 120%; } } - + button:hover { - color: #fff2ee; - background: linear-gradient(to right, rgb(239, 136, 107) 0%,rgb(240, 182, 93) 100%); + color: #fff2ee; + background: linear-gradient(to right, rgb(239, 136, 107) 0%,rgb(240, 182, 93) 100%); } } @@ -70,14 +67,15 @@ body { #chargingSessionReport { #chargingSessions { - .chargingSessions { - - background-color: #dbdbdb; + .chargingSessions { + background-color: #dbdbdb; } + .activated { - background-color: #c4c4c4; + background-color: #c4c4c4; } + } } @@ -89,7 +87,7 @@ body { background-color: #f1f1f1; // width: calc(50% - 15px); // border-radius: 8px 8px 8px 8px; - // height: calc(100% - 15px); + // height: calc(100% - 15px); #feedback { @@ -107,6 +105,6 @@ body { } - // } + } } diff --git a/src/css/chargy.scss b/src/css/chargy.scss index 56d9e78..7f43a28 100644 --- a/src/css/chargy.scss +++ b/src/css/chargy.scss @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 GraphDefined GmbH + * Copyright (c) 2018-2020 GraphDefined GmbH * This file is part of Chargy Desktop App * * Licensed under the Affero GPL license, Version 3.0 (the "License"); @@ -19,310 +19,323 @@ body { margin: 0; padding: 0; - background-color: #bac5ce; - overflow: hidden; width: 100vw; height: 100vh; - margin: auto; - background-color: #87cafa; - display: flex; - flex-direction: column; + max-width: 100vw; + max-height: 100vh; + background-color: #bac5ce; + overflow: hidden; - #headline { + #app { - padding: 4px 8px 2px 8px; - font-family: Arial; - font-size: 110%; + width: 100vw; + height: 100vh; + max-width: 100vw; + max-height: 100vh; display: flex; + flex-direction: column; + overflow-y: hidden; + flex: 1; - #logo { - background-size: contain; - background-repeat: no-repeat; - line-height: 8.2vh; - font-size: 130%; - width: 100%; - text-align: center; - } - - #logo::before { - content: "Chargy - Transparenzsoftware für die Elektromobilität"; - padding-left: 5vw; - } - - #windowButtons { + #headline { + padding: 4px 8px 2px 8px; + font-family: Arial; + font-size: 110%; display: flex; - justify-content: flex-end; - flex-grow: 1; - button { - padding: 0px 5px; - border: 0; - background: 0; - outline: 0; - font-size: 110%; + #logo { + background-size: contain; + background-repeat: no-repeat; + line-height: 8.2vh; + font-size: 130%; + width: 100%; + text-align: center; } - button:hover { - color: #f7f7f7; - } + #logo::before { + content: "Chargy - Transparenzsoftware für die Elektromobilität"; + padding-left: 5vw; + } - #updateAvailableButton { - display: none; - color: #ac3b3b; - } + #windowButtons { - #updateAvailableButton:hover { - color: #ce5b5b; - } + display: flex; + justify-content: flex-end; + flex-grow: 1; - } + button { + padding: 0px 5px; + border: 0; + background: 0; + outline: 0; + font-size: 110%; + } - } + button:hover { + color: #f7f7f7; + } + + #updateAvailableButton { + display: none; + color: #ac3b3b; + } - #verifyframe { + #updateAvailableButton:hover { + color: #ce5b5b; + } - height: 100%; - display: flex; + } + + } - #leftbar { + #verifyframe { - width: 50%; display: flex; - flex-direction: column; - height: 100%; - overflow-y: scroll; + flex-grow: 1; - #input { + #leftbar { + width: 50%; display: flex; - position: relative; - margin: 0px 15px 15px 15px; - padding: 10px 15px; - border: 0; - border-radius: 6px; - background-color: rgb(231, 245, 255); - font-family: Arial; - //font-family: sans-serif; - font-size: 95%; - width: calc(100% - 60px); - flex-grow: 1; + flex-direction: column; + overflow-y: scroll; - #inputInfos { + #input { display: flex; - flex-direction: column; - justify-content: space-evenly; - width: 100%; - - #text { - text-align: center; - font-size: 110%; - line-height: 130%; - } + flex-grow: 1; + //flex-direction: column; + position: relative; + margin: 0px 15px 15px 15px; + padding: 10px 15px; + border: 0; + border-radius: 6px; + background-color: rgb(231, 245, 255); + font-family: Arial; + font-size: 95%; + width: calc(100% - 60px); - #buttonsDiv { + #inputInfos { - padding: 8px 0px 15px 0px; display: flex; - width: 100%; + flex-direction: column; justify-content: space-evenly; - - button { + width: 100%; - font-size: 1.1vw; - line-height: 125%; - width: 10vw; - height: 10vw; - padding: 0; - margin: 0; - outline: 0; - border: 0; - border-radius: 50%; - background-color: #aeddff; - box-shadow: none; - align-self: center; + #text { + text-align: center; + font-size: 110%; + line-height: 130%; + user-select: none; + } - i { - font-size: 150%; - padding-bottom: 7px; - } + #buttonsDiv { - } + padding: 8px 0px 15px 0px; + display: flex; + width: 100%; + justify-content: space-evenly; + + button { + + font-size: 1.1vw; + line-height: 125%; + width: 10vw; + height: 10vw; + padding: 0; + margin: 0; + outline: 0; + border: 0; + border-radius: 50%; + background-color: #aeddff; + box-shadow: none; + align-self: center; + user-select: none; - button:hover { - color: #f7f7f7; - background-color: #519ad0; - } + i { + font-size: 150%; + padding-bottom: 7px; + } - } + } - #loadingErrors { - - min-height: 7vh; - font-family: Arial; - font-size: 120%; - text-align: center; + button:hover { + color: #f7f7f7; + background-color: #519ad0; + } - #errorText { + } + + #loadingErrors { - display: none; - padding: 10px 30px 17px 30px; - background-color: #e46464a6; - border-radius: 6px; + min-height: 7vh; + font-family: Arial; + font-size: 120%; + text-align: center; + + #errorText { + + display: none; + padding: 10px 30px 17px 30px; + background-color: #e46464a6; + border-radius: 6px; + + i { + position: relative; + font-size: 160%; + top: 5px; + padding-right: 3px; + } - i { - position: relative; - font-size: 160%; - top: 5px; - padding-right: 3px; } } } - } - - #aboutScreen { + #aboutScreen { - display: none; - width: 100%; - margin-top: 10px; - overflow-y: scroll; - overflow-x: hidden; + display: none; + width: 100%; + margin-top: 10px; + overflow-y: scroll; + overflow-x: hidden; - #softwareInfos { + #softwareInfos { - margin: 5px 0px 20px 0px; - font-size: 110%; + margin: 5px 0px 20px 0px; + font-size: 110%; + + #product { + font-weight: bold; + } + #copyright { + font-size: 80%; + } - #product { - font-weight: bold; - } - #copyright { - font-size: 80%; } - } + #openSourceLibs { - #OpenSourceLibs { + display: table; + margin: 10px 20px; + border-spacing: 2px; - display: table; - margin: 10px 20px; - border-spacing: 2px; + .lib { - .lib { + display: table-row; - display: table-row; + .name { + display: table-cell; + vertical-align: middle; + } - .name { - display: table-cell; - vertical-align: middle; - } + .license { + display: table-cell; + vertical-align: middle; + padding-left: 12px; + } - .license { - display: table-cell; - vertical-align: middle; - padding-left: 12px; } } - } + .linkButton { + border: 0; + border-radius: 4px; + padding: 3px 7px; + background-color: #b9dbf5; + font-size: 75%; + text-align: left; + } - .linkButton { - border: 0; - border-radius: 4px; - padding: 3px 7px; - background-color: #b9dbf5; - font-size: 75%; - text-align: left; - } + .linkButton:hover { + color: #aad0ec; + background-color: #3c75a0; + } - .linkButton:hover { - color: #aad0ec; - background-color: #3c75a0; - } + #applicationHash { - #chargySHA512 { + margin: 1em 0 1em 0; - margin: 1em 0 1em 0; + #value { + font-family: monospace; + font-size: 110%; + margin-top: 3px; + } - #value { - font-family: monospace; - font-size: 110%; - margin-top: 3px; - } + #sigHead { + padding-top: 5px; + font-size: 80%; + } - #sigHead { - padding-top: 5px; - font-size: 80%; - } + #signatures { - #signatures { + padding: 3px 0px 0px 5px; + font-size: 80%; - padding: 3px 0px 0px 5px; - font-size: 80%; + i { + // position: relative; + // top: 1px; + padding-right: 3px; + } - i { - // position: relative; - // top: 1px; - padding-right: 3px; } - + } - } + #applicationSignatures { - #chargySignature { + display: none; + margin: 1em 0 1em 0; - margin: 1em 0 1em 0; + #value { + font-family: monospace; + font-size: 110%; + margin-top: 3px; + } - #value { - font-family: monospace; - font-size: 110%; - margin-top: 3px; } - } + #TOSP { - #TOSP { + margin-top: 3vh; + font-size: 80%; - margin-top: 3vh; - font-size: 80%; + a { + color: #517692; + font-weight: bold; + text-decoration: none; + } - a { - color: #517692; - font-weight: bold; - text-decoration: none; - } + #logos { - #logos { + display: flex; + justify-content: space-evenly; + align-items: center; + margin-top: 0.5vh; + margin-bottom: 40px; - display: flex; - justify-content: space-evenly; - align-items: center; - margin-top: 0.5vh; - margin-bottom: 40px; + #TMWWDG { - #TMWWDG { + margin: 2vh 7% 3vh 7%; - margin: 2vh 7% 3vh 7%; + img { + width: 100%; + } - img { - width: 100%; } - } + #ITnet { - #ITnet { + width: 50%; + margin: 2vh 9% 3vh 1%; - width: 50%; - margin: 2vh 9% 3vh 1%; + img { + width: 100%; + } - img { - width: 100%; } } @@ -331,187 +344,187 @@ body { } - } + #aboutScreen::-webkit-scrollbar { + display: none; + } - #aboutScreen::-webkit-scrollbar { - display: none; - } + #updateAvailableScreen { - #updateAvailableScreen { + display: none; + width: 100%; + overflow-y: scroll; + overflow-x: hidden; - display: none; - width: 100%; - overflow-y: scroll; - overflow-x: hidden; + #versions { - #versions { + margin-bottom: 60px; - margin-bottom: 60px; + .version { - .version { + background-color: #d8d8d8; + border-radius: 6px; + padding: 1vh 1vw 1vh 1vw; + margin-bottom: 10px; - background-color: #d8d8d8; - border-radius: 6px; - padding: 1vh 1vw 1vh 1vw; - margin-bottom: 10px; + .headline { - .headline { + display: flex; - display: flex; + .versionnumber { + flex-grow: 1; + font-weight: bold; + } - .versionnumber { - flex-grow: 1; - font-weight: bold; - } + .releaseDate { + font-size: 90%; + } - .releaseDate { - font-size: 90%; } - } + .description { + display: inline-block; + padding: 10px 0px 5px 0px; + } - .description { - display: inline-block; - padding: 10px 0px 5px 0px; - } + .tags { - .tags { + margin-left: -2px; + display: flex; + justify-content: flex-start; - margin-left: -2px; - display: flex; - justify-content: flex-start; + .tag { + //display: inline-block; + font-size: 70%; + padding: 2px 5px; + margin: 2px; + color: #ddddf3; + background-color: #4040A0; + border-radius: 6px; + } - .tag { - //display: inline-block; - font-size: 70%; - padding: 2px 5px; - margin: 2px; - color: #ddddf3; - background-color: #4040A0; - border-radius: 6px; } - } + .packages { - .packages { + .package { - .package { + margin-top: 20px; - margin-top: 20px; + .name { + font-size: 95%; + font-weight: bold; + } - .name { - font-size: 95%; - font-weight: bold; - } + .description { + font-size: 80%; + padding: 5px 0px 5px 0px; + } - .description { - font-size: 80%; - padding: 5px 0px 5px 0px; - } + .additionalInfo { - .additionalInfo { + font-size: 80%; + padding: 5px 0px 5px 0px; - font-size: 80%; - padding: 5px 0px 5px 0px; + i { + font-style: inherit; + font-family: monospace; + font-size: 120%; + } - i { - font-style: inherit; - font-family: monospace; - font-size: 120%; } - } + .cryptoHashes { - .cryptoHashes { + display: table; + border-collapse: collapse; + width: 100%; + font-size: 80%; - display: table; - border-collapse: collapse; - width: 100%; - font-size: 80%; + .cryptoHash { - .cryptoHash { + display: table-row; + background-color: #d0d0d0; - display: table-row; - background-color: #d0d0d0; + .name { + display: table-cell; + padding: 2px 2px 2px 5px; + vertical-align: middle; + } + .value { + display: table-cell; + width: 100%; + padding: 2px 5px 2px 3px; + vertical-align: middle; + font-family: monospace; + font-size: 135%; + overflow-wrap: break-word; + word-wrap: break-word; + word-break: break-word; + } - .name { - display: table-cell; - padding: 2px 2px 2px 5px; - vertical-align: middle; } - .value { - display: table-cell; - width: 100%; - padding: 2px 5px 2px 3px; - vertical-align: middle; - font-family: monospace; - font-size: 135%; - overflow-wrap: break-word; - word-wrap: break-word; - word-break: break-word; - } - } - } - .signaturesText { - margin: 8px 0px 5px 0px; - font-size: 80%; - } + .signaturesText { + margin: 8px 0px 5px 0px; + font-size: 80%; + } - .signatures { + .signatures { - display: table; - border-collapse: collapse; + display: table; + border-collapse: collapse; - .signature { + .signature { - display: table-row; + display: table-row; - .signatureCheck { - display: table-cell; - padding: 2px 0px 2px 5px; - vertical-align: middle; - } + .signatureCheck { + display: table-cell; + padding: 2px 0px 2px 5px; + vertical-align: middle; + } + + .signer { + display: table-cell; + padding: 2px 0px 2px 5px; + vertical-align: middle; + font-size: 85%; + } - .signer { - display: table-cell; - padding: 2px 0px 2px 5px; - vertical-align: middle; - font-size: 85%; } } - } + .downloadURLsText { + margin: 8px 0px 1px 0px; + font-size: 80%; + } - .downloadURLsText { - margin: 8px 0px 1px 0px; - font-size: 80%; - } + .downloadURLs { - .downloadURLs { + margin: 0px 0px 10px 0px; - margin: 0px 0px 10px 0px; + .downloadURL { - .downloadURL { + padding: 2px 0px 2px 5px; + font-size: 85%; - padding: 2px 0px 2px 5px; - font-size: 85%; + a { - a { + text-decoration: none; + color: black; - text-decoration: none; - color: black; + i { + font-size: 117.647%; + padding-right: 7px; + position: relative; + top: 1px; + } - i { - font-size: 117.647%; - padding-right: 7px; - position: relative; - top: 1px; } } @@ -528,896 +541,1037 @@ body { } - } + #updateAvailableScreen::-webkit-scrollbar { + display: none; + } - #updateAvailableScreen::-webkit-scrollbar { - display: none; - } + #chargingSessionScreen { - #chargingSessionScreen { + display: none; + flex-direction: column; + width: 100%; - display: none; - flex-direction: column; - width: 100%; + #description { + padding: 0px 0px 5px 0px; + font-size: 120%; + font-weight: bold; + } - #description { - padding: 0px 0px 5px 0px; - font-size: 120%; - font-weight: bold; - } + #chargingSessions { - #chargingSessions { + padding: 0px 0px 0px 10px; + height: 100%; + margin: 10px 0px 50px 0px; - padding: 0px 0px 0px 10px; - height: 100%; - // overflow-y: scroll; - margin: 10px 0px 50px 0px; + .chargingSession { - .chargingSessions { + position: relative; + margin-bottom: 4px; + padding: 7px 11px; + background-color: #d6e4ef; + border-radius: 6px; + cursor: pointer; - position: relative; - margin-bottom: 4px; - padding: 7px 11px; - background-color: #d6e4ef; - border-radius: 6px; - cursor: pointer; + .date { + font-weight: bold; + padding: 2px 0px 3px 0px; + font-size: 105%; + } - .date { - font-weight: bold; - padding: 2px 0px 3px 0px; - font-size: 105%; - } + .table { - .table { + display: table; + border-collapse: separate; + border-spacing: 4px 4px; - display: table; - border-collapse: separate; - border-spacing: 4px 4px; + .productInfos { - .productInfos { + display: table-row; - display: table-row; + .icon { + display: table-cell; + padding: 6px 7px 0px 3px; + text-align: center; + vertical-align: top; + } - .icon { - display: table-cell; - padding: 6px 7px 0px 3px; - text-align: center; - vertical-align: top; - } + .text { + display: table-cell; + color: #212427; + } + + .relevance { + //padding-left: 1em; + font-size: 90%; + color: #6e8195; + } - .text { - display: table-cell; - color: #212427; } - } + .parkingInfos { - .authorizationStart { + display: table-row; - display: table-row; + .icon { + display: table-cell; + padding: 0px 7px 0px 3px; + text-align: center; + vertical-align: top; + } - .icon { - display: table-cell; - padding: 0px 7px 0px 3px; - text-align: center; - vertical-align: top; - } + .text { + display: table-cell; + color: #212427; + } + + .relevance { + //padding-left: 1em; + font-size: 90%; + color: #6e8195; + } - .id { - display: table-cell; } - } - .authorizationStop { + .authorizationStart { - display: table-row; + display: table-row; + + .icon { + display: table-cell; + padding: 0px 7px 0px 3px; + text-align: center; + vertical-align: top; + } + + .id { + display: table-cell; + } - .icon { - display: table-cell; - padding: 0px 7px 0px 3px; - text-align: center; - vertical-align: top; } - .id { - display: table-cell; + .authorizationStop { + + display: table-row; + + .icon { + display: table-cell; + padding: 0px 7px 0px 3px; + text-align: center; + vertical-align: top; + } + + .id { + display: table-cell; + } + } - } - .locationInfos { + .chargingStationInfos { - display: table-row; + display: table-row; + + .icon { + display: table-cell; + padding: 0px 7px 0px 3px; + text-align: center; + vertical-align: top; + } + + .text { + display: table-cell; + color: #212427; + } - .icon { - display: table-cell; - padding: 6px 7px 0px 3px; - text-align: center; - vertical-align: top; } - .text { - display: table-cell; - color: #212427; - } + .locationInfos { + + display: table-row; + + .icon { + display: table-cell; + padding: 0px 7px 0px 3px; + text-align: center; + vertical-align: top; + } + + .text { + display: table-cell; + color: #212427; + } + + } } - } + .verificationStatus { - .verificationStatus { + position: absolute; + top: 10px; + right: 12px; + text-align: center; + font-size: 80%; - position: absolute; - top: 10px; - right: 12px; - text-align: center; - font-size: 80%; + i { + display: block; + font-size: 250%; + padding-bottom: 4px; + } - i { - display: block; - font-size: 250%; - padding-bottom: 4px; } } - } + .chargingSessions:hover { + background-color: #b8cdde; + } + + .activated { + background-color: #b5d4ec; + } - .chargingSessions:hover { - background-color: #b8cdde; } - .activated { - background-color: #b5d4ec; + #chargingSessions::-webkit-scrollbar { + display: none; } } - #chargingSessions::-webkit-scrollbar { + #invalidDataSetsScreen { + display: none; - } + flex-direction: column; + width: 100%; + margin: 0px 0px 75px 0px; - } + #description { + padding: 0px 0px 7px 0px; + font-size: 120%; + font-weight: bold; + } - #backButtonDiv { + #invalidDataSets { - display: none; - position: absolute; - left: 0px; - bottom: 0px; + padding: 0px 0px 0px 10px; - #backButton { - border: 0; - // background-color: #cce5f7; - // padding: 7px 14px 8px 13px; - // border-radius: 50%; - background-color: transparent; - color: #b6d8f1; - margin: 4px; - font-size: 280%; - } + .invalidDataSet { - #backButton:hover { - // background-color: #519ad0; - color: #519ad0; - } + display: table; + margin-bottom: 4px; + padding: 7px 11px; + color: #5d1f1f; + background-color: #e68388; + border-radius: 6px; + width: calc(100% - 22px); + cursor: pointer; - } + .row { - } + display: table-row; - #input::-webkit-scrollbar { - display: none; - } + .key { + display: table-cell; + padding-right: 20px; + } - .over { - background-color: cornflowerblue !important; - /*border: 1px solid #2c4a60 !important;*/ - } + .value { + display: table-cell; + } - #buttonsDiv { + } - padding: 8px 17px 15px 15px; - text-align: right; - button { - border: 0; - padding: 8px 15px; - /*font-size: 120%;*/ - border-radius: 4px; - box-shadow: 2px 2px 6px #999; - } + } - } + } - } + } - #leftbar::-webkit-scrollbar { - display: none; - } - #rightbar { + #inputButtons { - width: 50%; - background-color: #c7e1f3; - border-radius: 8px 0px 0px 0px; + display: none; + position: absolute; + left: 0px; + bottom: 0px; + width: 100%; + + #backButton { + border: 0; + outline: 0; + background-color: transparent; + color: #b6d8f1; + margin: 4px; + font-size: 280%; + } + + #backButton:hover { + color: #519ad0; + } + + #exportButtonDiv { + + flex-grow: 2; + display: none; + flex-direction: row-reverse; + margin-right: 25px; + + #exportButton { + + color: #b6d8f1; + background-color: transparent; + font-size: 90%; + border: 0; + outline: 0; + position: relative; + top: -2px; + margin-right: 2px; + + i { + font-size: 120%; + position: relative; + top: 1px; + } + + } + + #exportButton:hover { + color: #519ad0; + } + + } + + } + + } + + #input::-webkit-scrollbar { + display: none; + } + + .over { + background-color: cornflowerblue !important; + } - #map { - width: 100%; - min-height: 33%; - border-radius: 8px 0px 0px 0px; } - #evseTarifInfos { + #leftbar::-webkit-scrollbar { + display: none; + } - width: 100%; - height: 38%; - padding: 20px 20px; - width: calc(100% - 40px); - font-family: Arial; - font-size: 95%; - color: #2c4a60; - overflow-y: scroll; + #rightbar { - #headline { - color: #2e71a2; - font-weight: bold; - padding: 2px 10px 12px 0px; + display: flex; + flex-direction: column; + width: 50%; + background-color: #c7e1f3; + border-radius: 8px 0px 0px 0px; + + #map { + width: 100%; + min-height: 33%; + border-radius: 8px 0px 0px 0px; } - .measurementInfos { + #evseTarifInfos { - display: table; + width: 100%; + flex-grow: 1; + padding: 20px 20px; + width: calc(100% - 40px); + font-family: Arial; + font-size: 95%; + color: #2c4a60; + overflow-y: scroll; - .chargingStation { + #headline { + color: #2e71a2; + font-weight: bold; + padding: 2px 10px 12px 0px; + } - display: table-row-group; + .measurementInfos { - .chargingStationHeadline { - font-weight: bold - } + display: table; - .chargingStationId { + .chargingStation { - display: table-row; + display: table-row-group; - .chargingStationIdId { - display: table-cell; - padding-left: 12px; - padding-right: 2vw; - white-space: nowrap; + .chargingStationHeadline { + font-weight: bold } - .chargingStationIdValue { - display: table-cell; - } + .chargingStationId { - } + display: table-row; - .firmwareVersion { + .chargingStationIdId { + display: table-cell; + padding-left: 12px; + padding-right: 2vw; + white-space: nowrap; + } - display: table-row; + .chargingStationIdValue { + display: table-cell; + } - .firmwareVersionId { - display: table-cell; - padding-left: 12px; - padding-right: 2vw; - white-space: nowrap; } - .firmwareVersionValue { - display: table-cell; - } + .firmwareVersion { - } + display: table-row; - } + .firmwareVersionId { + display: table-cell; + padding-left: 12px; + padding-right: 2vw; + white-space: nowrap; + } - .meter { + .firmwareVersionValue { + display: table-cell; + } - display: table-row-group; + } - .meterHeadline { - margin-top: .6vh; - font-weight: bold; } - .meterId { + .meter { - display: table-row; + display: table-row-group; - .meterIdId { - display: table-cell; - padding-left: 12px; - padding-right: 2vw; - white-space: nowrap; + .meterHeadline { + margin-top: .6vh; + font-weight: bold; } - .meterIdValue { - display: table-cell; + .meterId { + + display: table-row; + + .meterIdId { + display: table-cell; + padding-left: 12px; + padding-right: 2vw; + white-space: nowrap; + } + + .meterIdValue { + display: table-cell; + } + } - } + .meterVendor { - .meterVendor { + display: table-row; - display: table-row; + .meterVendorId { + display: table-cell; + padding-left: 12px; + padding-right: 2vw; + white-space: nowrap; + } + + .meterVendorValue { + display: table-cell; + } - .meterVendorId { - display: table-cell; - padding-left: 12px; - padding-right: 2vw; - white-space: nowrap; } - .meterVendorValue { - display: table-cell; + .meterModel { + + display: table-row; + + .meterModelId { + display: table-cell; + padding-left: 12px; + padding-right: 2vw; + white-space: nowrap; + } + + .meterModelValue { + display: table-cell; + } + } - } + .measurement { - .meterModel { + display: table-row; - display: table-row; + .measurementId { + display: table-cell; + padding-left: 12px; + padding-right: 2vw; + white-space: nowrap; + } + + .measurementIdValue { + display: table-cell; + } - .meterModelId { - display: table-cell; - padding-left: 12px; - padding-right: 2vw; - white-space: nowrap; } - .meterModelValue { - display: table-cell; + .OBIS { + + display: table-row; + + .OBISId { + display: table-cell; + padding-left: 12px; + padding-right: 2vw; + white-space: nowrap; + } + + .OBISValue { + display: table-cell; + } + } } - .measurement { + } + + #measurementValues-headline { + margin-top: 0.6vh; + font-weight: bold; + } + + .measurementValues { + + display: table; + width: 100%; + cursor: zoom-in; + + .measurementValue { display: table-row; + padding: 3px 4px; + border-radius: 3px; - .measurementId { + .timestamp { display: table-cell; - padding-left: 12px; - padding-right: 2vw; + padding: 2px 16px 2px 12px; + border-radius: 4px 0px 0px 4px; white-space: nowrap; } - .measurementIdValue { + .value1 { display: table-cell; + text-align: right; + padding-right: 5px; + white-space: nowrap; } - } - - .OBIS { + .unit1 { + display: table-cell; + padding-right: 10px; + white-space: nowrap; + } - display: table-row; + .value2 { + display: table-cell; + text-align: right; + padding-right: 5px; + white-space: nowrap; + } - .OBISId { + .unit2 { display: table-cell; - padding-left: 12px; - padding-right: 2vw; + padding-right: 10px; white-space: nowrap; } - .OBISValue { + .verificationStatus { + display: table-cell; + padding: 2px 6px; + border-radius: 0px 4px 4px 0px; + width: 100%; + white-space: nowrap; + + .noValidation { + position: relative; + top: -1px; + font-size: 85%; + font-style: italic; + color: rgba(44, 74, 96, 0.5); + } + } } + .measurementValue:hover { + background-color: #72b3e2; + } + + .measurementValue:first-child { + .value2, .unit2 { + color: rgba(44, 74, 96, 0.5); + } + } + } } - #measurementValues-headline { - margin-top: 0.6vh; - font-weight: bold; + #evseTarifInfos::-webkit-scrollbar { + display: none; } - .measurementValues { + #feedback { - display: table; width: 100%; - cursor: zoom-in; + padding: 20px 20px 40px 20px; + width: calc(100% - 40px); + font-family: Arial; + font-size: 90%; + font-weight: bold; + color: #6488a3; + line-height: 130%; - .measurementValue { + #feedbackMethods { - display: table-row; - padding: 3px 4px; - border-radius: 3px; + display: flex; + flex-direction: column; + margin: 0.8vh 0 0 15px; + color: #34668a; - .timestamp { - display: table-cell; - padding: 2px 16px 2px 12px; - border-radius: 4px 0px 0px 4px; - white-space: nowrap + i { + width: 22px; } - .value1 { - display: table-cell; - text-align: right; - padding-right: 5px; - white-space: nowrap + a { + text-decoration: none; + color: #34668a; + margin-bottom: 3px; } - .unit1 { - display: table-cell; - padding-right: 10px; - white-space: nowrap + button { + background-color: transparent; + padding: 0; + outline: 0; + font-weight: bold; + font-size: 100%; + color: #34668a; + border: 0; + text-align: left; + margin-bottom: 3px; } - .value2 { - display: table-cell; - text-align: right; - padding-right: 5px; - white-space: nowrap + button:hover, a:hover { + color: rgba(52, 102, 138, 0.6); } - .unit2 { - display: table-cell; - padding-right: 10px; - white-space: nowrap + #eMail { + i { + position: relative; + top: 1px; + } } - .verificationStatus { - display: table-cell; - padding: 2px 6px; - border-radius: 0px 4px 4px 0px; - width: 100%; - white-space: nowrap + #hotline { + i { + position: relative; + top: 2px; + left: -2px; + } } } - .measurementValue:hover { - background-color: #72b3e2; - } - - .measurementValue:first-child { - .value2, .unit2 { - color: rgba(44, 74, 96, 0.5); - } - } - } } - #evseTarifInfos::-webkit-scrollbar { - display: none; - } - - #feedback { - - width: 100%; - min-height: 34%; - padding: 20px 20px; - width: calc(100% - 40px); - font-family: Arial; - font-size: 90%; - font-weight: bold; - color: #6488a3; - line-height: 130%; - - #feedbackMethods { + } - display: flex; - flex-direction: column; - margin: 0.8vh 0 0 15px; - color: #34668a; + #overlay { - i { - width: 22px; - } + position: absolute; + font-family: sans-serif; + font-size: 90%; + background-color: rgba(0, 0, 0, 0.3); + width: 100vw; + height: 100vh; + margin: auto; + //border-radius: 8px; - a { - text-decoration: none; - color: #34668a; - margin-bottom: 3px; - } + #overlayText { - button { - background-color: transparent; - padding: 0px; - font-weight: bold; - font-size: 100%; - color: #34668a; - border: 0; - text-align: left; - margin-bottom: 3px; - } + position: relative; + top: 5%; + width: calc(90% - 40px); + height: calc(90% - 50px); + margin: auto; + padding: 1px; + background-color: #f5f5f5; + border: 20px solid #f5f5f5; + border-radius: 6px; + box-shadow: 2px 0 16px 0 rgba(0,0,0,.3); + overflow-y: scroll; + z-index: 9000; - button:hover, a:hover { - color: rgba(52, 102, 138, 0.6); - } + #intro { - #eMail { - i { - position: relative; - top: 1px; - } - } + margin: 5px 0px 10px 0px; + font-size: 105%; - #phone { - i { - position: relative; - top: 2px; - left: -2px; - } + .important { + font-weight: bold; } } - } + #cryptoData { - } + display: table; + margin-bottom: 5px; - } - - #overlay { - - position: absolute; - font-family: sans-serif; - font-size: 90%; - background-color: rgba(0, 0, 0, 0.3); - width: 100vw; - height: 100vh; - margin: auto; - //border-radius: 8px; + .row { - #overlayText { + display: table-row; - position: relative; - top: 5%; - width: calc(90% - 40px); - height: calc(90% - 50px); - margin: auto; - padding: 1px; - background-color: #f5f5f5; - border: 20px solid #f5f5f5; - border-radius: 6px; - box-shadow: 2px 0 16px 0 rgba(0,0,0,.3); - overflow-y: scroll; - z-index: 9000; + .id { + display: table-cell; + padding: 2px 10px 1px 8px; + font-weight: bold; + border-radius: 4px 0px 0px 4px; + } - #intro { + .value { - margin: 5px 0px 10px 0px; - font-size: 105%; + display: table-cell; + padding: 2px 8px 1px 0px; + border-radius: 0px 4px 4px 0px; - .important { - font-weight: bold; - } + .statusInfos { + font-style: italic; + font-size: 90%; + } - } + } - #cryptoData { + } - display: table; - margin-bottom: 5px; + .row:hover { + background-color: orange; + } - .row { + .overEntry { + background-color: orange; + } - display: table-row; + } - .id { - display: table-cell; - padding: 2px 10px 1px 8px; - font-weight: bold; - border-radius: 4px 0px 0px 4px; + .infoblock { + + font-family: monospace; + font-size: 110%; + margin-bottom: 10px; + + .description { + position: relative; + top: 8px; + left: 10px; + background-color: #98c3e2; + display: inline-block; + padding: 1px 6px; + border-radius: 4px; + font-size: 85%; } .value { + overflow-wrap: break-word; + background-color: #E1E1E1; + border-radius: 4px; + padding: 11px 10px 6px 10px; + width: calc(100% - 20px); + } + + } - display: table-cell; - padding: 2px 8px 1px 0px; - border-radius: 0px 4px 4px 0px; + .errorblock { - .statusInfos { - font-style: italic; - font-size: 90%; - } + display: none; + .description { + background-color: #980000; } + .value { + background-color: #dfbcbc; + } + } - .row:hover { - background-color: orange; - } + #buffer { + .value { - .overEntry { - background-color: orange; - } + .entry { + display: inline; + padding: 1px 4px 1px 4px; + margin-left: -4px; + border-radius: 4px; + word-break: break-all; + } - } + .entry:hover { + background-color: orange; + } - .infoblock { - - font-family: monospace; - font-size: 110%; - margin-bottom: 10px; - - .description { - position: relative; - top: 8px; - left: 10px; - background-color: #98c3e2; - display: inline-block; - padding: 1px 6px; - border-radius: 4px; - font-size: 85%; - } + .overEntry { + background-color: orange; + } - .value { - overflow-wrap: break-word; - background-color: #E1E1E1; - border-radius: 4px; - padding: 11px 10px 6px 10px; - width: calc(100% - 20px); + } } - - } - #buffer { - .value { + #publicKey { - .entry { - display: inline-block; - padding: 1px 4px 1px 4px; - margin-left: -4px; - border-radius: 4px; - word-break: break-all; + .value { + .leadingFour { + color: #969696; + } } - .entry:hover { - background-color: orange; + .sigHead { + display: none; + padding: 5px 10px 0px 10px; + font-size: 80%; } - .overEntry { - background-color: orange; - } + .signatures { - } - } + display: flex; + padding: 3px 0px 0px 0px; + font-family: sans-serif; + font-size: 70%; + color: #6d6d6d; - #publicKey { + i { + padding: 0px 3px 0px 10px; + } - .value { - .leadingFour { - color: #969696; } - } - .sigHead { - display: none; - padding: 5px 10px 0px 10px; - font-size: 80%; } - .signatures { - - display: flex; - padding: 3px 0px 0px 0px; - font-family: sans-serif; - font-size: 70%; - color: #6d6d6d; + #signatureCheck { + margin-top: 30px; + text-align: center; + font-size: 150%; + i { - // position: relative; - // top: 0px; - padding: 0px 3px 0px 10px; + font-size: 200%; } + #description { + position: relative; + line-height: 200%; + } + } - } - - #signatureCheck { - - margin-top: 30px; - text-align: center; - font-size: 150%; - - i { - font-size: 200%; - } - - #description { - position: relative; - line-height: 200%; - } - - } + #overlayOkButtonDiv { - #overlayOkButtonDiv { + position: absolute; + left: 0px; + bottom: 0px; - position: absolute; - left: 0px; - bottom: 0px; + #overlayOkButton { + border: 0; + outline: 0; + background-color: transparent; + color: #b6d8f1; + margin: 4px; + font-size: 280%; + } - #overlayOkButton { - border: 0; - background-color: transparent; - color: #b6d8f1; - margin: 4px; - font-size: 280%; - } + #overlayOkButton:hover { + color: #519ad0; + } - #overlayOkButton:hover { - color: #519ad0; } } - } + #overlayText::-webkit-scrollbar { + display: none; + } - #overlayText::-webkit-scrollbar { - display: none; } - } + #issueTracker { - #issueTracker { + position: absolute; + font-family: sans-serif; + font-size: 90%; + background-color: rgba(0, 0, 0, 0.3); + width: 100vw; + height: 100vh; + margin: auto; + //border-radius: 8px; + + #issueTrackerText { + + position: relative; + top: 5%; + width: calc(90% - 20px); + height: calc(90% - 50px); + margin: auto; + padding: 1px; + background-color: #f5f5f5; + border: 10px solid #f5f5f5; + border-radius: 6px; + box-shadow: 2px 0 16px 0 rgba(0,0,0,.3); + overflow-y: scroll; + z-index: 9000; - position: absolute; - font-family: sans-serif; - font-size: 90%; - background-color: rgba(0, 0, 0, 0.3); - width: 100vw; - height: 100vh; - margin: auto; - //border-radius: 8px; + #headline { + padding: 8px 8px 0px 8px; + } - #issueTrackerText { + form { - position: relative; - top: 5%; - width: calc(90% - 20px); - height: calc(90% - 50px); - margin: auto; - padding: 1px; - background-color: #f5f5f5; - border: 10px solid #f5f5f5; - border-radius: 6px; - box-shadow: 2px 0 16px 0 rgba(0,0,0,.3); - overflow-y: scroll; - z-index: 9000; - - #headline { - padding: 8px 8px 0px 8px; - } + padding: 5px 20px 20px 20px; - form { - - padding: 5px 20px 20px 20px; + .label { + margin: 15px 0px 5px 0px; + } - .label { - margin: 15px 0px 5px 0px; - } + input[type="checkbox"] { + transform: scale(1.2); + position: relative; + top: 2px; + margin: 3px 3px 3px 10px; + } - input[type="checkbox"] { - transform: scale(1.2); - position: relative; - top: 2px; - margin: 3px 3px 3px 10px; - } + #includeCTR { + border-radius: 4px; + margin: 0px 0px 3px 10px; + } - #includeCTR { - border-radius: 4px; - margin: 0px 0px 3px 10px; - } + textarea { + width: calc(100% - 10px); + min-height: 20vh; + resize: vertical; + border: 0; + border-radius: 4px; + margin: 0px 0px 3px 10px; + } - textarea { - width: calc(100% - 10px); - min-height: 20vh; - resize: vertical; - border: 0; - border-radius: 4px; - margin: 0px 0px 3px 10px; - } + input[type="text"] { + padding: 3px 5px; + border: 0; + border-radius: 3px; + margin: 0px 0px 3px 10px; + } - input[type="text"] { - padding: 3px 5px; - border: 0; - border-radius: 3px; - margin: 0px 0px 3px 10px; - } + #privacyStatement { - #privacyStatement { + display: none; + width: 100%; + height: 23vh; + font-size: 80%; + margin-top: 20px; + overflow-y: scroll; + background-color: #e8e8e8; + border-radius: 4px; + padding: 5px 10px; + width: calc(100% - 10px); - display: none; - width: 100%; - height: 23vh; - font-size: 80%; - margin-top: 20px; - overflow-y: scroll; - background-color: #e8e8e8; - border-radius: 4px; - padding: 5px 10px; - width: calc(100% - 10px); - - h1 { - font-size: 1.25em; - margin: 10px 0 0 0; - } + h1 { + font-size: 1.25em; + margin: 10px 0 0 0; + } - p { - a { - text-decoration: none; - color: #4b83d0 + p { + a { + text-decoration: none; + color: #4b83d0 + } } + } - } + #sendIssueBox { - #sendIssueBox { + margin-top: 25px; + text-align: center; - margin-top: 25px; - text-align: center; + #privacyStatementAccepted { + transform: scale(1.3); + position: relative; + top: 2px; + } - #privacyStatementAccepted { - transform: scale(1.3); - position: relative; - top: 2px; - } + #showPrivacyStatement { + border: 0; + background-color: transparent; + color: #4b83d0; + font-size: 100%; + padding: 0px 1px 0px 6px; + outline: none; + } - #showPrivacyStatement { - border: 0; - background-color: transparent; - color: #4b83d0; - font-size: 100%; - padding: 0px 1px 0px 6px; - } + #sendIssueButton { + margin-top: 10px; + padding: 8px 15px; + border: 0; + border-radius: 4px; + background-color: #b6d8f1; + } - #sendIssueButton { - margin-top: 10px; - padding: 8px 15px; - border: 0; - border-radius: 4px; - background-color: #b6d8f1; - } + #sendIssueButton:hover { + background-color: #519ad0; + } - #sendIssueButton:hover { - background-color: #519ad0; - } + #sendIssueButton:disabled, + #sendIssueButton[disabled]{ + background-color: #cccccc; + color: #999999; + } - #sendIssueButton:disabled, - #sendIssueButton[disabled]{ - background-color: #cccccc; - color: #999999; } } - } + #issueBackButtonDiv { - #issueBackButtonDiv { + // position: fixed; + // left: 6%; + // bottom: 10%; - // position: fixed; - // left: 6%; - // bottom: 10%; + #issueBackButton { + border: 0; + outline: 0; + background-color: transparent; + color: #b6d8f1; + margin: 4px; + font-size: 280%; + } - #issueBackButton { - border: 0; - background-color: transparent; - color: #b6d8f1; - margin: 4px; - font-size: 280%; - } + #issueBackButton:hover { + color: #519ad0; + } - #issueBackButton:hover { - color: #519ad0; } } - } + #issueTrackerText::-webkit-scrollbar { + display: none; + } - #issueTrackerText::-webkit-scrollbar { - display: none; } } diff --git a/src/icons/chargepoint.ico b/src/icons/chargepoint.ico new file mode 100644 index 0000000..405c094 Binary files /dev/null and b/src/icons/chargepoint.ico differ diff --git a/src/icons/chargepoint.png b/src/icons/chargepoint.png new file mode 100644 index 0000000..57ff2bb Binary files /dev/null and b/src/icons/chargepoint.png differ diff --git a/src/icons/chargepoint2.ico b/src/icons/chargepoint2.ico new file mode 100644 index 0000000..a7b424d Binary files /dev/null and b/src/icons/chargepoint2.ico differ diff --git a/src/icons/chargepoint2.png b/src/icons/chargepoint2.png new file mode 100644 index 0000000..c2efd26 Binary files /dev/null and b/src/icons/chargepoint2.png differ diff --git a/build/chargy.ico b/src/icons/chargy.ico similarity index 100% rename from build/chargy.ico rename to src/icons/chargy.ico diff --git a/build/chargy_Ladebildschirm_V4.gif b/src/icons/chargy_Ladebildschirm_V4.gif similarity index 100% rename from build/chargy_Ladebildschirm_V4.gif rename to src/icons/chargy_Ladebildschirm_V4.gif diff --git a/build/chargy_icon.png b/src/icons/chargy_icon.png similarity index 100% rename from build/chargy_icon.png rename to src/icons/chargy_icon.png diff --git a/build/icon.icns b/src/icons/icon.icns similarity index 100% rename from build/icon.icns rename to src/icons/icon.icns diff --git a/src/images/ChargePoint_logo_HEX.png b/src/images/ChargePoint_logo_HEX.png new file mode 100644 index 0000000..5dafadd Binary files /dev/null and b/src/images/ChargePoint_logo_HEX.png differ diff --git a/src/index.html b/src/index.html index 9d514bf..f24051e 100644 --- a/src/index.html +++ b/src/index.html @@ -1,6 +1,6 @@ - + - + Chargy - Transparenzsoftware für die Elektromobilität @@ -26,7 +26,7 @@ - + @@ -41,338 +41,414 @@ + + + + + + + + + + -
- -
- - - - -
-
+
-
- -
+
+ +
+ + + + +
+
-
- -
+
-
Sie können den Transparenzdatensatz zu Ihren Ladevorgängen entweder aus - einer Datei laden, über die Zwischenablage einfügen oder Drag'n'Drop - verwenden...
+
-
- - - -
+
-
-
-
+
-
+
Sie können einen oder mehrere Transparenzdatensätze und deren dazugehörige Public Keys + zu Ihren Ladevorgängen entweder aus einer Datei laden, + über die Zwischenablage einfügen oder Drag'n'Drop verwenden...
-
- -
-
- Chargy Transparenzsoftware - chargeIT mobility Edition v +
+ + +
- -

- Diese Software ist Open Source und basiert auf den folgenden Open-Source-Software-Bibliotheken: -

- -
-
-
Chargy
-
-
-
-
Electron
-
-
-
-
Electron Builder 20.44.4
-
-
-
-
Chromium
-
-
-
-
Node.js
-
-
-
-
OpenSSL
-
-
-
-
TypeScript 3.5.2
-
-
-
-
elliptic 6.5.0
-
-
-
-
moment 2.24.0
-
+
+ +
+
+ Chargy Transparenzsoftware - v +
+
-
-
leaflet 1.5.1
-
+ +

+ Diese Software ist Open Source und basiert auf den folgenden Open-Source-Software-Bibliotheken: +

+ +
+ +
+
Chargy
+
+
+
+
Electron
+
+
+
+
Electron Builder 22.7.0
+
+
+
+
Electron Local Shortcut
+
+
+
+
Chromium
+
+
+
+
Node.js
+
+
+
+
OpenSSL
+
+
+
+
TypeScript 3.9.5
+
+
+
+
SASS 1.26.8
+
+
+ +
+
moment
+
+
+
+
elliptic
+
+
+
+
secp224k1 1.0.0
+
+
+ +
+
decompress
+
+
+
+
decompress BZIP2
+
+
+
+
decompress GZ
+
+
+
+
File Type
+
+
+
+
asn1.js
+
+
+
+
base32-decode
+
+
+
+
safe-stable-stringify
+
+
+ +
+
leaflet
+
+
+
+
leaflet Awesome Markers
+
+
+
+
chart.js
+
+
+
+
FontAwesome 5.9.0
+
+
+
-
-
chart.js 2.8.0
-
+ +

+ Die SHA256/512-Hash-Funktionen werden durch die realisiert. Diese nutzen intern die des jeweils aktuellen Node.js-Frameworks. +

+

+ Elliptische Kurven Kryptographie wird durch realisiert. + Hierbei kommen je nach Verfahren und Ladestations- bzw. Smart-Meter-Hersteller unterschiedliche elliptische Kurven zum Einsatz. +

+

+ Weitere Details zu den internen Datenstrukturen und Abläufen von Chargy gibt es auf . +

+ +
+
SHA-512 Hashwert dieser Software:
+
Wird berechnet...
+
+
-
-
SASS 1.22.1
-
+ +
+
Digitale Signaturen dieser Software:
+
Werden berechnet...
-
-
FontAwesome 5.9.0
-
+ +
+ Diese Software ist einer der Gewinner des 1. + Thüringer Open Source Preises im März 2019. Der Preis wurde verliehen durch + ITnet Thüringen e.V. and the + Thüringer Ministerium für Wirtschaft, Wissenschaft und Digitale Gesellschaft + +
+ Thüringer Ministerium für Wirtschaft, Wissenschaft und Digitale Gesellschaft + ITnet Thüringen e.V. +
+
-

- Die SHA256/512-Hash-Funktionen werden durch die realisiert. Diese nutzen intern die des jeweils aktuellen Node.js-Frameworks. -

-

- Elliptische Kurven Kryptographie wird durch realisiert. - Hierbei kommen je nach Verfahren und Ladestations- bzw. Smart-Meter-Hersteller unterschiedliche elliptische Kurven zum Einsatz. -

-

- Weitere Details zu den internen Datenstrukturen und Abläufen von Chargy gibt es auf . -

- -
-
SHA-512 Hashwert dieser Software:
-
Wird berechnet...
-
-
+
+ +

+ Ein Update für diese Software ist verfügbar... +

+ +
+
- - -
- Diese Software ist einer der Gewinner des 1. - Thüringer Open Source Preises im März 2019. Der Preis wurde verliehen durch - ITnet Thüringen e.V. and the - Thüringer Ministerium für Wirtschaft, Wissenschaft und Digitale Gesellschaft - -
- Thuringian Ministry for Economic Affairs, Science and Digital Society - ITnet Thüringen e.V. +
+ +
+ +
+ +
+
-
+
-

- Ein Update für diese Software ist verfügbar... -

+
-
+
+
-
- -
- +
+ Falsche Daten, falsche Signaturen oder sonstige Fragen?
+ Treten Sie mit uns in Kontakt: +
+ + + +
-
+
-
+
-
+