Merge branch 'development' into main
This commit is contained in:
239
package-lock.json
generated
239
package-lock.json
generated
@@ -1289,6 +1289,30 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@datadog/browser-logs": {
|
||||||
|
"version": "2.15.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@datadog/browser-logs/-/browser-logs-2.15.0.tgz",
|
||||||
|
"integrity": "sha512-kZb0nKx1XoZibs3nkBwcP2iff23kX11yUcQj0aXHLL4yulO5I0AqEhoZXwVFfG8KP82sflX+uyssdNIUwMr1cg==",
|
||||||
|
"requires": {
|
||||||
|
"@datadog/browser-core": "2.15.0",
|
||||||
|
"tslib": "^1.10.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@datadog/browser-core": {
|
||||||
|
"version": "2.15.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-2.15.0.tgz",
|
||||||
|
"integrity": "sha512-qWTAysGYQXVpM5FOdstaqIF6B99nyQ2N/rJsi1ruPgFmU9yMM9tRdvqiJ7NZcy+OOsZWiinvFRFUMv9SOsHeUA==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^1.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "1.14.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||||
|
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@datadog/browser-rum": {
|
"@datadog/browser-rum": {
|
||||||
"version": "2.8.1",
|
"version": "2.8.1",
|
||||||
"resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-2.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-2.8.1.tgz",
|
||||||
@@ -5060,9 +5084,9 @@
|
|||||||
"integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
|
"integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
|
||||||
},
|
},
|
||||||
"dns-packet": {
|
"dns-packet": {
|
||||||
"version": "1.3.1",
|
"version": "1.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz",
|
||||||
"integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
|
"integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ip": "^1.1.0",
|
"ip": "^1.1.0",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
@@ -5155,11 +5179,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"domhandler": {
|
"domhandler": {
|
||||||
"version": "2.4.2",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz",
|
||||||
"integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
|
"integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"domelementtype": "1"
|
"domelementtype": "^2.2.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"domelementtype": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"domutils": {
|
"domutils": {
|
||||||
@@ -7323,22 +7354,40 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"htmlparser2": {
|
"htmlparser2": {
|
||||||
"version": "3.10.1",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
|
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
|
||||||
"integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
|
"integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"domelementtype": "^1.3.1",
|
"domelementtype": "^2.0.1",
|
||||||
"domhandler": "^2.3.0",
|
"domhandler": "^4.0.0",
|
||||||
"domutils": "^1.5.1",
|
"domutils": "^2.5.2",
|
||||||
"entities": "^1.1.1",
|
"entities": "^2.0.0"
|
||||||
"inherits": "^2.0.1",
|
|
||||||
"readable-stream": "^3.1.1"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"entities": {
|
"dom-serializer": {
|
||||||
"version": "1.1.2",
|
"version": "1.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
|
||||||
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
|
"integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
|
||||||
|
"requires": {
|
||||||
|
"domelementtype": "^2.0.1",
|
||||||
|
"domhandler": "^4.2.0",
|
||||||
|
"entities": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"domelementtype": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
|
||||||
|
},
|
||||||
|
"domutils": {
|
||||||
|
"version": "2.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz",
|
||||||
|
"integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==",
|
||||||
|
"requires": {
|
||||||
|
"dom-serializer": "^1.0.1",
|
||||||
|
"domelementtype": "^2.2.0",
|
||||||
|
"domhandler": "^4.2.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -10622,9 +10671,9 @@
|
|||||||
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
|
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
|
||||||
},
|
},
|
||||||
"postcss": {
|
"postcss": {
|
||||||
"version": "7.0.35",
|
"version": "7.0.36",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
|
||||||
"integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
|
"integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "^2.4.2",
|
"chalk": "^2.4.2",
|
||||||
"source-map": "^0.6.1",
|
"source-map": "^0.6.1",
|
||||||
@@ -12472,15 +12521,15 @@
|
|||||||
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
|
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
|
||||||
},
|
},
|
||||||
"renderkid": {
|
"renderkid": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz",
|
||||||
"integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==",
|
"integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"css-select": "^2.0.2",
|
"css-select": "^4.1.3",
|
||||||
"dom-converter": "^0.2",
|
"dom-converter": "^0.2.0",
|
||||||
"htmlparser2": "^3.10.1",
|
"htmlparser2": "^6.1.0",
|
||||||
"lodash": "^4.17.20",
|
"lodash": "^4.17.21",
|
||||||
"strip-ansi": "^3.0.0"
|
"strip-ansi": "^3.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
@@ -12488,6 +12537,56 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||||
},
|
},
|
||||||
|
"css-select": {
|
||||||
|
"version": "4.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz",
|
||||||
|
"integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==",
|
||||||
|
"requires": {
|
||||||
|
"boolbase": "^1.0.0",
|
||||||
|
"css-what": "^5.0.0",
|
||||||
|
"domhandler": "^4.2.0",
|
||||||
|
"domutils": "^2.6.0",
|
||||||
|
"nth-check": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"css-what": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg=="
|
||||||
|
},
|
||||||
|
"dom-serializer": {
|
||||||
|
"version": "1.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
|
||||||
|
"integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
|
||||||
|
"requires": {
|
||||||
|
"domelementtype": "^2.0.1",
|
||||||
|
"domhandler": "^4.2.0",
|
||||||
|
"entities": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"domelementtype": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
|
||||||
|
},
|
||||||
|
"domutils": {
|
||||||
|
"version": "2.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz",
|
||||||
|
"integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==",
|
||||||
|
"requires": {
|
||||||
|
"dom-serializer": "^1.0.1",
|
||||||
|
"domelementtype": "^2.2.0",
|
||||||
|
"domhandler": "^4.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nth-check": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==",
|
||||||
|
"requires": {
|
||||||
|
"boolbase": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"strip-ansi": {
|
"strip-ansi": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||||
@@ -12640,9 +12739,9 @@
|
|||||||
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
|
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
|
||||||
},
|
},
|
||||||
"resolve-url-loader": {
|
"resolve-url-loader": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz",
|
||||||
"integrity": "sha512-WbDSNFiKPPLem1ln+EVTE+bFUBdTTytfQZWbmghroaFNFaAVmGq0Saqw6F/306CwgPXsGwXVxbODE+3xAo/YbA==",
|
"integrity": "sha512-D3sQ04o0eeQEySLrcz4DsX3saHfsr8/N6tfhblxgZKXxMT2Louargg12oGNfoTRLV09GXhVUe5/qgA5vdgNigg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"adjust-sourcemap-loader": "3.0.0",
|
"adjust-sourcemap-loader": "3.0.0",
|
||||||
"camelcase": "5.3.1",
|
"camelcase": "5.3.1",
|
||||||
@@ -12650,68 +12749,22 @@
|
|||||||
"convert-source-map": "1.7.0",
|
"convert-source-map": "1.7.0",
|
||||||
"es6-iterator": "2.0.3",
|
"es6-iterator": "2.0.3",
|
||||||
"loader-utils": "1.2.3",
|
"loader-utils": "1.2.3",
|
||||||
"postcss": "7.0.21",
|
"postcss": "7.0.36",
|
||||||
"rework": "1.0.1",
|
"rework": "1.0.1",
|
||||||
"rework-visit": "1.0.0",
|
"rework-visit": "1.0.0",
|
||||||
"source-map": "0.6.1"
|
"source-map": "0.6.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"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==",
|
|
||||||
"requires": {
|
|
||||||
"color-convert": "^1.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"camelcase": {
|
"camelcase": {
|
||||||
"version": "5.3.1",
|
"version": "5.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
|
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
|
||||||
},
|
},
|
||||||
"chalk": {
|
|
||||||
"version": "2.4.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
|
||||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
|
||||||
"requires": {
|
|
||||||
"ansi-styles": "^3.2.1",
|
|
||||||
"escape-string-regexp": "^1.0.5",
|
|
||||||
"supports-color": "^5.3.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"supports-color": {
|
|
||||||
"version": "5.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
|
||||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
|
||||||
"requires": {
|
|
||||||
"has-flag": "^3.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"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==",
|
|
||||||
"requires": {
|
|
||||||
"color-name": "1.1.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"color-name": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
|
||||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
|
||||||
},
|
|
||||||
"emojis-list": {
|
"emojis-list": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
|
||||||
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
|
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
|
||||||
},
|
},
|
||||||
"has-flag": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
|
||||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
|
||||||
},
|
|
||||||
"json5": {
|
"json5": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
|
||||||
@@ -12729,24 +12782,6 @@
|
|||||||
"emojis-list": "^2.0.0",
|
"emojis-list": "^2.0.0",
|
||||||
"json5": "^1.0.1"
|
"json5": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"postcss": {
|
|
||||||
"version": "7.0.21",
|
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
|
|
||||||
"integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
|
|
||||||
"requires": {
|
|
||||||
"chalk": "^2.4.2",
|
|
||||||
"source-map": "^0.6.1",
|
|
||||||
"supports-color": "^6.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"supports-color": {
|
|
||||||
"version": "6.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
|
|
||||||
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
|
|
||||||
"requires": {
|
|
||||||
"has-flag": "^3.0.0"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -16347,9 +16382,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ws": {
|
"ws": {
|
||||||
"version": "7.4.5",
|
"version": "7.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz",
|
||||||
"integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g=="
|
"integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw=="
|
||||||
},
|
},
|
||||||
"xml-name-validator": {
|
"xml-name-validator": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@datadog/browser-logs": "^2.15.0",
|
||||||
"@datadog/browser-rum": "^2.8.1",
|
"@datadog/browser-rum": "^2.8.1",
|
||||||
"@material-ui/core": "^4.11.4",
|
"@material-ui/core": "^4.11.4",
|
||||||
"@material-ui/icons": "^4.11.2",
|
"@material-ui/icons": "^4.11.2",
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import useStyles from "../../useStyles";
|
|||||||
import { tsLocalDateTimeString } from "../../../utils/dates";
|
import { tsLocalDateTimeString } from "../../../utils/dates";
|
||||||
import SearchField from "../../Controls/SearchField";
|
import SearchField from "../../Controls/SearchField";
|
||||||
import CarSelectionTable from "../../Cars/CarSelectionTable";
|
import CarSelectionTable from "../../Cars/CarSelectionTable";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const MainForm = () => {
|
const MainForm = () => {
|
||||||
const { packageid } = useParams();
|
const { packageid } = useParams();
|
||||||
@@ -41,14 +42,18 @@ const MainForm = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleSelect = (event, key) => {
|
const handleSelect = (event, key) => {
|
||||||
let newSelected;
|
try {
|
||||||
if (event.target.checked) {
|
let newSelected;
|
||||||
newSelected = [...selected];
|
if (event.target.checked) {
|
||||||
newSelected.push(key);
|
newSelected = [...selected];
|
||||||
} else {
|
newSelected.push(key);
|
||||||
newSelected = selected.filter((vin) => vin !== key);
|
} else {
|
||||||
|
newSelected = selected.filter((vin) => vin !== key);
|
||||||
|
}
|
||||||
|
setSelected(newSelected);
|
||||||
|
} catch (e) {
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
setSelected(newSelected);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const onSubmit = async (event) => {
|
const onSubmit = async (event) => {
|
||||||
@@ -65,13 +70,16 @@ const MainForm = () => {
|
|||||||
setRedirect(`/carupdate-status/${packageid}`);
|
setRedirect(`/carupdate-status/${packageid}`);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
try {
|
try {
|
||||||
getPackages({ id: parseInt(packageid) }, token);
|
getPackages({ id: parseInt(packageid) }, token);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -82,7 +90,7 @@ const MainForm = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle(`Deploy ${packageName} ${version}`);
|
setTitle(`Deploy ${packageName} ${version}`);
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [packageName, version]);
|
}, [packageName, version]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import { useUserContext } from "../../Contexts/UserContext";
|
|||||||
import { useStatusContext } from "../../Contexts/StatusContext";
|
import { useStatusContext } from "../../Contexts/StatusContext";
|
||||||
import useStyles from "../../useStyles";
|
import useStyles from "../../useStyles";
|
||||||
import { LocalDateTimeString } from "../../../utils/dates";
|
import { LocalDateTimeString } from "../../../utils/dates";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const MainForm = () => {
|
const MainForm = () => {
|
||||||
const { packageid } = useParams();
|
const { packageid } = useParams();
|
||||||
@@ -43,36 +44,41 @@ const MainForm = () => {
|
|||||||
} = useUserContext();
|
} = useUserContext();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
try {
|
(async () => {
|
||||||
getPackages({ id: packageid }, token);
|
try {
|
||||||
} catch (e) {
|
await getPackages({ id: packageid }, token);
|
||||||
setMessage(e.message);
|
} catch (e) {
|
||||||
}
|
setMessage(e.message);
|
||||||
// eslint-disable-next-line
|
logger.warn(e.stack);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [token]);
|
}, [token]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!packages || packages.length === 0) return;
|
if (!packages || packages.length === 0) return;
|
||||||
setTitle(`Package ${packages[0].package_name} ${packages[0].version}`);
|
setTitle(`Package ${packages[0].package_name} ${packages[0].version}`);
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
// eslint-disable-next-line
|
|
||||||
}, [packages]);
|
}, [packages]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
try {
|
(async () => {
|
||||||
stopMonitor();
|
try {
|
||||||
getCarUpdates(
|
stopMonitor();
|
||||||
{
|
await getCarUpdates(
|
||||||
packageid,
|
{
|
||||||
limit: pageSize,
|
packageid,
|
||||||
offset: pageSize * pageIndex,
|
limit: pageSize,
|
||||||
},
|
offset: pageSize * pageIndex,
|
||||||
token
|
},
|
||||||
);
|
token
|
||||||
} catch (e) {
|
);
|
||||||
setMessage(e.message);
|
} catch (e) {
|
||||||
}
|
setMessage(e.message);
|
||||||
// eslint-disable-next-line
|
logger.warn(e.stack);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [pageIndex, pageSize, token]);
|
}, [pageIndex, pageSize, token]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -81,11 +87,12 @@ const MainForm = () => {
|
|||||||
startMonitor(token);
|
startMonitor(token);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
return () => {
|
return () => {
|
||||||
stopMonitor();
|
stopMonitor();
|
||||||
};
|
};
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [carUpdates]);
|
}, [carUpdates]);
|
||||||
|
|
||||||
const handleChangePageIndex = (event, newIndex) => {
|
const handleChangePageIndex = (event, newIndex) => {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import {
|
|||||||
import { useStatusContext } from "../../Contexts/StatusContext";
|
import { useStatusContext } from "../../Contexts/StatusContext";
|
||||||
import { useUserContext } from "../../Contexts/UserContext";
|
import { useUserContext } from "../../Contexts/UserContext";
|
||||||
import { Button, TextField } from "@material-ui/core";
|
import { Button, TextField } from "@material-ui/core";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const MainForm = () => {
|
const MainForm = () => {
|
||||||
const { addVehicle, busy } = useVehicleContext();
|
const { addVehicle, busy } = useVehicleContext();
|
||||||
@@ -25,7 +26,7 @@ const MainForm = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle("Add Vehicle");
|
setTitle("Add Vehicle");
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
const onSubmit = async (event) => {
|
const onSubmit = async (event) => {
|
||||||
try {
|
try {
|
||||||
@@ -44,6 +45,7 @@ const MainForm = () => {
|
|||||||
vinEl.current.value = "";
|
vinEl.current.value = "";
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ const Control = (props) => {
|
|||||||
await getYears(token);
|
await getYears(token);
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
})();
|
})();
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [token]);
|
}, [token]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -56,14 +56,14 @@ const Control = (props) => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (model === null || year === -1) return;
|
if (model === null || year === -1) return;
|
||||||
getVehicles({ model, year, trim }, token);
|
getVehicles({ model, year, trim }, token);
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [model, year, trim]);
|
}, [model, year, trim]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!props.onSelection) return;
|
if (!props.onSelection) return;
|
||||||
const vins = vehicles.map((item) => item.vin);
|
const vins = vehicles.map((item) => item.vin);
|
||||||
props.onSelection(vins);
|
props.onSelection(vins);
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [vehicles]);
|
}, [vehicles]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import { useVehicleContext } from "../../Contexts/VehicleContext";
|
|||||||
import { useStatusContext } from "../../Contexts/StatusContext";
|
import { useStatusContext } from "../../Contexts/StatusContext";
|
||||||
import { LocalDateTimeString } from "../../../utils/dates";
|
import { LocalDateTimeString } from "../../../utils/dates";
|
||||||
import TableHeaderSortable from "../../Table/HeaderSortable";
|
import TableHeaderSortable from "../../Table/HeaderSortable";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const tableColumns = [
|
const tableColumns = [
|
||||||
{
|
{
|
||||||
@@ -100,12 +101,15 @@ const CarSelectionTable = (props) => {
|
|||||||
offset: pageSize * pageIndex,
|
offset: pageSize * pageIndex,
|
||||||
order: `${orderBy} ${order}`,
|
order: `${orderBy} ${order}`,
|
||||||
};
|
};
|
||||||
try {
|
(async () => {
|
||||||
getVehicles(Object.assign(options, search), token);
|
try {
|
||||||
} catch (e) {
|
await getVehicles(Object.assign(options, search), token);
|
||||||
setMessage(e.message);
|
} catch (e) {
|
||||||
}
|
setMessage(e.message);
|
||||||
// eslint-disable-next-line
|
logger.warn(e.stack);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [pageIndex, pageSize, orderBy, order, search, token]);
|
}, [pageIndex, pageSize, orderBy, order, search, token]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import useStyles from "../../useStyles";
|
|||||||
import { LocalDateTimeString } from "../../../utils/dates";
|
import { LocalDateTimeString } from "../../../utils/dates";
|
||||||
import TableHeaderSortable from "../../Table/HeaderSortable";
|
import TableHeaderSortable from "../../Table/HeaderSortable";
|
||||||
import SearchField from "../../Controls/SearchField";
|
import SearchField from "../../Controls/SearchField";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const tableColumns = [
|
const tableColumns = [
|
||||||
{
|
{
|
||||||
@@ -78,24 +79,27 @@ const MainForm = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle("Vehicles");
|
setTitle("Vehicles");
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
try {
|
(async () => {
|
||||||
getVehicles(
|
try {
|
||||||
{
|
await getVehicles(
|
||||||
limit: pageSize,
|
{
|
||||||
offset: pageSize * pageIndex,
|
limit: pageSize,
|
||||||
order: `${orderBy} ${order}`,
|
offset: pageSize * pageIndex,
|
||||||
search,
|
order: `${orderBy} ${order}`,
|
||||||
},
|
search,
|
||||||
token
|
},
|
||||||
);
|
token
|
||||||
} catch (e) {
|
);
|
||||||
setMessage(e.message);
|
} catch (e) {
|
||||||
}
|
setMessage(e.message);
|
||||||
// eslint-disable-next-line
|
logger.warn(e.stack);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [pageIndex, pageSize, token, orderBy, order, search]);
|
}, [pageIndex, pageSize, token, orderBy, order, search]);
|
||||||
|
|
||||||
const handleChangePageIndex = (event, newIndex) => {
|
const handleChangePageIndex = (event, newIndex) => {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import commands from "../../../services/commands";
|
|||||||
import useStyles from "../../useStyles";
|
import useStyles from "../../useStyles";
|
||||||
import { useUserContext } from "../../Contexts/UserContext";
|
import { useUserContext } from "../../Contexts/UserContext";
|
||||||
import { useStatusContext } from "../../Contexts/StatusContext";
|
import { useStatusContext } from "../../Contexts/StatusContext";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const SendCommand = ({ vins }) => {
|
const SendCommand = ({ vins }) => {
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
@@ -50,6 +51,7 @@ const SendCommand = ({ vins }) => {
|
|||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.error(e.stack);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -69,7 +71,7 @@ const SendCommand = ({ vins }) => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!commands || commands.length === 0) return;
|
if (!commands || commands.length === 0) return;
|
||||||
selectCommand(commands[0].value);
|
selectCommand(commands[0].value);
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import useStyles from "../../useStyles";
|
|||||||
import SendCommand from "../SendCommand";
|
import SendCommand from "../SendCommand";
|
||||||
import SearchField from "../../Controls/SearchField";
|
import SearchField from "../../Controls/SearchField";
|
||||||
import CarSelectionTable from "../CarSelectionTable";
|
import CarSelectionTable from "../CarSelectionTable";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const MainForm = () => {
|
const MainForm = () => {
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
@@ -30,19 +31,23 @@ const MainForm = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleSelect = (event, key) => {
|
const handleSelect = (event, key) => {
|
||||||
let newSelected;
|
try {
|
||||||
if (event.target.checked) {
|
let newSelected;
|
||||||
newSelected = [...selected];
|
if (event.target.checked) {
|
||||||
newSelected.push(key);
|
newSelected = [...selected];
|
||||||
} else {
|
newSelected.push(key);
|
||||||
newSelected = selected.filter((vin) => vin !== key);
|
} else {
|
||||||
|
newSelected = selected.filter((vin) => vin !== key);
|
||||||
|
}
|
||||||
|
setSelected(newSelected);
|
||||||
|
} catch (e) {
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
setSelected(newSelected);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle("Send Command");
|
setTitle("Send Command");
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import { useStatusContext } from "../../Contexts/StatusContext";
|
|||||||
import useStyles from "../../useStyles";
|
import useStyles from "../../useStyles";
|
||||||
import { LocalDateTimeString } from "../../../utils/dates";
|
import { LocalDateTimeString } from "../../../utils/dates";
|
||||||
import TableHeaderSortable from "../../Table/HeaderSortable";
|
import TableHeaderSortable from "../../Table/HeaderSortable";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const tableColumns = [
|
const tableColumns = [
|
||||||
{
|
{
|
||||||
@@ -60,23 +61,27 @@ const MainForm = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle(`Vehicle ${vin} Details`);
|
setTitle(`Vehicle ${vin} Details`);
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [vin]);
|
}, [vin]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
try {
|
(async () => {
|
||||||
getCarUpdates(
|
try {
|
||||||
{
|
await getCarUpdates(
|
||||||
vin,
|
{
|
||||||
limit: pageSize,
|
vin,
|
||||||
offset: pageSize * pageIndex,
|
limit: pageSize,
|
||||||
order: `${orderBy} ${order}`,
|
offset: pageSize * pageIndex,
|
||||||
},
|
order: `${orderBy} ${order}`,
|
||||||
token
|
},
|
||||||
);
|
token
|
||||||
} catch (e) {
|
);
|
||||||
setMessage(e.message);
|
} catch (e) {
|
||||||
}
|
setMessage(e.message);
|
||||||
// eslint-disable-next-line
|
logger.warn(e.stack);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [pageIndex, pageSize, token, orderBy, order]);
|
}, [pageIndex, pageSize, token, orderBy, order]);
|
||||||
|
|
||||||
const handleChangePageIndex = (event, newIndex) => {
|
const handleChangePageIndex = (event, newIndex) => {
|
||||||
@@ -89,15 +94,19 @@ const MainForm = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleSort = (event, property) => {
|
const handleSort = (event, property) => {
|
||||||
if (property === orderBy) {
|
try {
|
||||||
if (order === "asc") {
|
if (property === orderBy) {
|
||||||
setOrder("desc");
|
if (order === "asc") {
|
||||||
|
setOrder("desc");
|
||||||
|
} else {
|
||||||
|
setOrder("asc");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
setOrderBy(property);
|
||||||
setOrder("asc");
|
setOrder("asc");
|
||||||
}
|
}
|
||||||
} else {
|
} catch (e) {
|
||||||
setOrderBy(property);
|
logger.warn(e.stack);
|
||||||
setOrder("asc");
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export default function CarStatusModal(props) {
|
|||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [props.vin]);
|
}, [props.vin]);
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import React, { useContext, useState } from "react";
|
import React, { useContext, useState } from "react";
|
||||||
|
import { logger } from "../../services/monitoring";
|
||||||
import api from "../../services/vehicles";
|
import api from "../../services/vehicles";
|
||||||
|
|
||||||
const VehicleContext = React.createContext();
|
const VehicleContext = React.createContext();
|
||||||
@@ -97,15 +98,19 @@ export const VehicleProvider = ({ children }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const addConnections = async (cars, token) => {
|
const addConnections = async (cars, token) => {
|
||||||
const vins = cars.map((car) => car.vin);
|
try {
|
||||||
const result = await api.getConnections(vins, token);
|
const vins = cars.map((car) => car.vin);
|
||||||
|
const result = await api.getConnections(vins, token);
|
||||||
|
|
||||||
if (result.error) {
|
if (result.error) {
|
||||||
throw new Error(`Get connections error. ${result.message}`);
|
throw new Error(`Get connections error. ${result.message}`);
|
||||||
|
}
|
||||||
|
cars.forEach((car) => {
|
||||||
|
car.connected = result[car.vin] || false;
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
logger.error(e.stack);
|
||||||
}
|
}
|
||||||
cars.forEach((car) => {
|
|
||||||
car.connected = result[car.vin] || false;
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getConnections = async (vins, token) => {
|
const getConnections = async (vins, token) => {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const Dashboard = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle("Dashboard");
|
setTitle("Dashboard");
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ const Home = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle("");
|
setTitle("");
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import React, { useEffect, useRef, useState } from "react";
|
import React, { useEffect, useRef, useState } from "react";
|
||||||
|
import { Redirect } from "react-router";
|
||||||
import { Button, TextField } from "@material-ui/core";
|
import { Button, TextField } from "@material-ui/core";
|
||||||
import { DropzoneArea } from "material-ui-dropzone";
|
import { DropzoneArea } from "material-ui-dropzone";
|
||||||
|
|
||||||
import { useUserContext } from "../../Contexts/UserContext";
|
import { useUserContext } from "../../Contexts/UserContext";
|
||||||
import { useStatusContext } from "../../Contexts/StatusContext";
|
import { useStatusContext } from "../../Contexts/StatusContext";
|
||||||
import {
|
import {
|
||||||
@@ -9,7 +11,7 @@ import {
|
|||||||
} from "../../Contexts/FileUploadContext";
|
} from "../../Contexts/FileUploadContext";
|
||||||
import ModalProgressBar from "../../ModalProgressBar";
|
import ModalProgressBar from "../../ModalProgressBar";
|
||||||
import useStyles from "../../useStyles";
|
import useStyles from "../../useStyles";
|
||||||
import { Redirect } from "react-router";
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const FileUploadZone = ({ classes, token }) => {
|
const FileUploadZone = ({ classes, token }) => {
|
||||||
const { setFiles } = useFileUploadContext();
|
const { setFiles } = useFileUploadContext();
|
||||||
@@ -52,7 +54,7 @@ const MainForm = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle("Create Update Package");
|
setTitle("Create Update Package");
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const onSubmit = async (event) => {
|
const onSubmit = async (event) => {
|
||||||
@@ -76,6 +78,7 @@ const MainForm = () => {
|
|||||||
setRedirect(`/carupdate-deploy/${result.id}`);
|
setRedirect(`/carupdate-deploy/${result.id}`);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { useUserContext } from "../../Contexts/UserContext";
|
|||||||
import { useStatusContext } from "../../Contexts/StatusContext";
|
import { useStatusContext } from "../../Contexts/StatusContext";
|
||||||
import useStyles from "../../useStyles";
|
import useStyles from "../../useStyles";
|
||||||
import { tsLocalDateTimeString } from "../../../utils/dates";
|
import { tsLocalDateTimeString } from "../../../utils/dates";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const MainForm = () => {
|
const MainForm = () => {
|
||||||
const { id } = useParams();
|
const { id } = useParams();
|
||||||
@@ -42,6 +43,7 @@ const MainForm = () => {
|
|||||||
setMessage(`Updated ${packageName} ${version}`);
|
setMessage(`Updated ${packageName} ${version}`);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
@@ -49,6 +51,7 @@ const MainForm = () => {
|
|||||||
getPackages({ id: parseInt(id) }, token);
|
getPackages({ id: parseInt(id) }, token);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const handleChange = (event) => {
|
const handleChange = (event) => {
|
||||||
@@ -70,7 +73,7 @@ const MainForm = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle(`Edit Update Package ${id}`);
|
setTitle(`Edit Update Package ${id}`);
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import { LocalDateTimeString } from "../../../utils/dates";
|
|||||||
import { Roles, hasRole } from "../../../utils/roles";
|
import { Roles, hasRole } from "../../../utils/roles";
|
||||||
import TableHeaderSortable from "../../Table/HeaderSortable";
|
import TableHeaderSortable from "../../Table/HeaderSortable";
|
||||||
import SearchField from "../../Controls/SearchField";
|
import SearchField from "../../Controls/SearchField";
|
||||||
|
import { logger } from "../../../services/monitoring";
|
||||||
|
|
||||||
const tableColumns = [
|
const tableColumns = [
|
||||||
{
|
{
|
||||||
@@ -67,7 +68,7 @@ const UpdatePackagesList = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTitle("Deploy Packages");
|
setTitle("Deploy Packages");
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -80,7 +81,7 @@ const UpdatePackagesList = () => {
|
|||||||
},
|
},
|
||||||
token
|
token
|
||||||
);
|
);
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [pageIndex, pageSize, token, orderBy, order, search]);
|
}, [pageIndex, pageSize, token, orderBy, order, search]);
|
||||||
|
|
||||||
const handleChangePageIndex = (event, newIndex) => {
|
const handleChangePageIndex = (event, newIndex) => {
|
||||||
@@ -114,6 +115,7 @@ const UpdatePackagesList = () => {
|
|||||||
await deletePackage(parseInt(package_id), token);
|
await deletePackage(parseInt(package_id), token);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
|
logger.warn(e.stack);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,30 @@
|
|||||||
import { datadogRum } from '@datadog/browser-rum';
|
import { datadogRum } from '@datadog/browser-rum';
|
||||||
|
import { datadogLogs } from "@datadog/browser-logs";
|
||||||
|
|
||||||
|
const applicationId = '8ecd160c-ad5c-4e06-8d88-3a6b89833246';
|
||||||
|
const clientToken = 'pubeb25449bb91773fc993855c7378e375a';
|
||||||
|
const site = 'datadoghq.com';
|
||||||
|
const service = 'ota-portal';
|
||||||
|
|
||||||
datadogRum.init({
|
datadogRum.init({
|
||||||
applicationId: '8ecd160c-ad5c-4e06-8d88-3a6b89833246',
|
applicationId,
|
||||||
clientToken: 'pubeb25449bb91773fc993855c7378e375a',
|
clientToken,
|
||||||
site: 'datadoghq.com',
|
site,
|
||||||
service:'ota-portal',
|
service,
|
||||||
// Specify a version number to identify the deployed version of your application in Datadog
|
// Specify a version number to identify the deployed version of your application in Datadog
|
||||||
// version: '1.0.0',
|
// version: '1.0.0',
|
||||||
sampleRate: 100,
|
sampleRate: 100,
|
||||||
trackInteractions: true
|
trackInteractions: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
datadogLogs.init({
|
||||||
|
clientToken,
|
||||||
|
site,
|
||||||
|
service,
|
||||||
|
forwardErrorsToLogs: true,
|
||||||
|
sampleRate: 100,
|
||||||
|
});
|
||||||
|
|
||||||
|
const logger = datadogLogs.logger;
|
||||||
|
|
||||||
|
export { logger };
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { logger } from "../services/monitoring";
|
||||||
|
|
||||||
export const getAuthHeaderOptions = (token) => ({
|
export const getAuthHeaderOptions = (token) => ({
|
||||||
"Authorization": `Bearer ${token}`,
|
"Authorization": `Bearer ${token}`,
|
||||||
});
|
});
|
||||||
@@ -6,11 +8,17 @@ export const fetchRespHandler = (response) => {
|
|||||||
if (response.ok) return response.json();
|
if (response.ok) return response.json();
|
||||||
|
|
||||||
return response.text()
|
return response.text()
|
||||||
.then((text) => JSON.parse(text))
|
.then((text) => {
|
||||||
.catch((e) => ({
|
if (response.status >= 500) logger.error(text);
|
||||||
error: response.statusText,
|
return JSON.parse(text);
|
||||||
message: `${response.status} ${response.statusText}`,
|
})
|
||||||
}))
|
.catch((e) => {
|
||||||
|
logger.error(e.stack);
|
||||||
|
return {
|
||||||
|
error: response.statusText,
|
||||||
|
message: `${response.status} ${response.statusText}`,
|
||||||
|
};
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const addQueryParams = (url, params) => {
|
export const addQueryParams = (url, params) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user