diff --git a/changelog/20.0/20.0.0/summary.md b/changelog/20.0/20.0.0/summary.md index 1bf7b16d296..69231f104e5 100644 --- a/changelog/20.0/20.0.0/summary.md +++ b/changelog/20.0/20.0.0/summary.md @@ -42,6 +42,7 @@ - **[`SIGHUP` reload of gRPC client static auth creds](#sighup-reload-of-grpc-client-auth-creds)** - **[VTAdmin](#vtadmin)** - [Updated to node v20.12.2](#updated-node) + - [Replaced highcharts with d3](#replaced-highcharts) ## Major Changes @@ -377,3 +378,7 @@ The internal gRPC client now caches the static auth credentials and supports rel Building `vtadmin-web` now requires node >= v20.12.0 (LTS). Breaking changes from v18 to v20 can be found at https://nodejs.org/en/blog/release/v20.12.0 -- with no known issues that apply to VTAdmin. Full details on the node v20.12.2 release can be found at https://nodejs.org/en/blog/release/v20.12.2. + +#### Replaced highcharts with d3 + +The vtadmin-web UI no longer has a dependency on highcharts for licensing reasons. The tablet QPS, tablet VReplication QPS, and workflow streams lag charts have all been replaced by d3. We'll be iteratively improving the d3 charts until they reach feature parity with the original highcharts charts. diff --git a/web/vtadmin/package-lock.json b/web/vtadmin/package-lock.json index 2257ad058f8..acf6d52cff7 100644 --- a/web/vtadmin/package-lock.json +++ b/web/vtadmin/package-lock.json @@ -10,13 +10,14 @@ "dependencies": { "@bugsnag/js": "^7.20.0", "@headlessui/react": "^1.7.8", + "@types/d3": "^7.4.3", "@types/jest": "^29.4.0", "@types/node": "^16.11.7", "@types/react-router-dom": "^5.3.3", "classnames": "^2.3.2", + "d3": "^7.9.0", "dayjs": "^1.11.7", "downshift": "^7.2.0", - "highcharts": "^10.3.3", "highcharts-react-official": "^3.1.0", "history": "^5.3.0", "lodash-es": "^4.17.21", @@ -51,7 +52,7 @@ "i": "^0.3.7", "jsdom": "^21.1.1", "msw": "^0.36.8", - "npm": "^9.6.3", + "npm": "^10.8.0", "postcss": "^8.4.31", "prettier": "^2.2.1", "protobufjs-cli": "^1.1.1", @@ -4388,6 +4389,7 @@ "version": "7.4.3", "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", @@ -7017,6 +7019,91 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/d3-color": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", @@ -7025,6 +7112,28 @@ "node": ">=12" } }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/d3-dispatch": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", @@ -7045,6 +7154,41 @@ "node": ">=12" } }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/d3-ease": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", @@ -7053,6 +7197,57 @@ "node": ">=12" } }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } + }, "node_modules/d3-interpolate": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", @@ -7064,6 +7259,65 @@ "node": ">=12" } }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/d3-selection": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", @@ -7072,6 +7326,39 @@ "node": ">=12" } }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/d3-timer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", @@ -7327,6 +7614,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -8949,7 +9244,8 @@ "node_modules/highcharts": { "version": "10.3.3", "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-10.3.3.tgz", - "integrity": "sha512-r7wgUPQI9tr3jFDn3XT36qsNwEIZYcfgz4mkKEA6E4nn5p86y+u1EZjazIG4TRkl5/gmGRtkBUiZW81g029RIw==" + "integrity": "sha512-r7wgUPQI9tr3jFDn3XT36qsNwEIZYcfgz4mkKEA6E4nn5p86y+u1EZjazIG4TRkl5/gmGRtkBUiZW81g029RIw==", + "peer": true }, "node_modules/highcharts-react-official": { "version": "3.2.1", @@ -9229,6 +9525,14 @@ "node": ">= 0.4" } }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -10825,9 +11129,9 @@ } }, "node_modules/npm": { - "version": "9.9.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.9.3.tgz", - "integrity": "sha512-Z1l+rcQ5kYb17F3hHtO601arEpvdRYnCLtg8xo3AGtyj3IthwaraEOexI9903uANkifFbqHC8hT53KIrozWg8A==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.0.tgz", + "integrity": "sha512-wh93uRczgp7HDnPMiLXcCkv2hagdJS0zJ9KT/31d0FoXP02+qgN2AOwpaW85fxRWkinl2rELfPw+CjBXW48/jQ==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -10836,15 +11140,15 @@ "@npmcli/map-workspaces", "@npmcli/package-json", "@npmcli/promise-spawn", + "@npmcli/redact", "@npmcli/run-script", + "@sigstore/tuf", "abbrev", "archy", "cacache", "chalk", "ci-info", "cli-columns", - "cli-table3", - "columnify", "fastest-levenshtein", "fs-minipass", "glob", @@ -10880,7 +11184,6 @@ "npm-profile", "npm-registry-fetch", "npm-user-validate", - "npmlog", "p-map", "pacote", "parse-conflict-json", @@ -10888,7 +11191,6 @@ "qrcode-terminal", "read", "semver", - "sigstore", "spdx-expression-parse", "ssri", "supports-color", @@ -10901,83 +11203,74 @@ "write-file-atomic" ], "dev": true, - "workspaces": [ - "docs", - "smoke-tests", - "mock-globals", - "mock-registry", - "workspaces/*" - ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.5.0", - "@npmcli/config": "^6.4.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/map-workspaces": "^3.0.4", - "@npmcli/package-json": "^4.0.1", - "@npmcli/promise-spawn": "^6.0.2", - "@npmcli/run-script": "^6.0.2", + "@npmcli/arborist": "^7.5.2", + "@npmcli/config": "^8.3.2", + "@npmcli/fs": "^3.1.1", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.2", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "@sigstore/tuf": "^2.3.3", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^17.1.4", + "cacache": "^18.0.3", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", - "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^10.3.10", + "glob": "^10.3.15", "graceful-fs": "^4.2.11", - "hosted-git-info": "^6.1.1", - "ini": "^4.1.1", - "init-package-json": "^5.0.0", - "is-cidr": "^4.0.2", - "json-parse-even-better-errors": "^3.0.1", - "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.20", - "libnpmexec": "^6.0.4", - "libnpmfund": "^4.2.1", - "libnpmhook": "^9.0.3", - "libnpmorg": "^5.0.4", - "libnpmpack": "^5.0.20", - "libnpmpublish": "^7.5.1", - "libnpmsearch": "^6.0.2", - "libnpmteam": "^5.0.3", - "libnpmversion": "^4.0.2", - "make-fetch-happen": "^11.1.1", - "minimatch": "^9.0.3", - "minipass": "^7.0.4", + "hosted-git-info": "^7.0.2", + "ini": "^4.1.2", + "init-package-json": "^6.0.3", + "is-cidr": "^5.0.5", + "json-parse-even-better-errors": "^3.0.2", + "libnpmaccess": "^8.0.6", + "libnpmdiff": "^6.1.2", + "libnpmexec": "^8.1.1", + "libnpmfund": "^5.0.10", + "libnpmhook": "^10.0.5", + "libnpmorg": "^6.0.6", + "libnpmpack": "^7.0.2", + "libnpmpublish": "^9.0.8", + "libnpmsearch": "^7.0.5", + "libnpmteam": "^6.0.5", + "libnpmversion": "^6.0.2", + "make-fetch-happen": "^13.0.1", + "minimatch": "^9.0.4", + "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^9.4.1", - "nopt": "^7.2.0", - "normalize-package-data": "^5.0.0", + "node-gyp": "^10.1.0", + "nopt": "^7.2.1", + "normalize-package-data": "^6.0.1", "npm-audit-report": "^5.0.0", "npm-install-checks": "^6.3.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.2", - "npm-profile": "^7.0.1", - "npm-registry-fetch": "^14.0.5", - "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-profile": "^10.0.0", + "npm-registry-fetch": "^17.0.1", + "npm-user-validate": "^2.0.1", "p-map": "^4.0.0", - "pacote": "^15.2.0", + "pacote": "^18.0.6", "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", "qrcode-terminal": "^0.12.0", - "read": "^2.1.0", - "semver": "^7.6.0", - "sigstore": "^1.9.0", - "spdx-expression-parse": "^3.0.1", - "ssri": "^10.0.5", + "read": "^3.0.1", + "semver": "^7.6.2", + "spdx-expression-parse": "^4.0.0", + "ssri": "^10.0.6", "supports-color": "^9.4.0", - "tar": "^6.2.0", + "tar": "^6.2.1", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.0", - "which": "^3.0.1", + "validate-npm-package-name": "^5.0.1", + "which": "^4.0.0", "write-file-atomic": "^5.0.1" }, "bin": { @@ -10985,7 +11278,7 @@ "npx": "bin/npx-cli.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-run-path": { @@ -11000,22 +11293,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/@colors/colors": { - "version": "1.5.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/npm/node_modules/@gar/promisify": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", "dev": true, @@ -11089,43 +11366,61 @@ "inBundle": true, "license": "ISC" }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "6.5.1", + "version": "7.5.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/fs": "^3.1.1", + "@npmcli/installed-package-contents": "^2.1.0", "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^5.0.0", + "@npmcli/metavuln-calculator": "^7.1.1", "@npmcli/name-from-folder": "^2.0.0", "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^4.0.0", + "@npmcli/package-json": "^5.1.0", "@npmcli/query": "^3.1.0", - "@npmcli/run-script": "^6.0.0", - "bin-links": "^4.0.1", - "cacache": "^17.0.4", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "bin-links": "^4.0.4", + "cacache": "^18.0.3", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", + "hosted-git-info": "^7.0.2", + "json-parse-even-better-errors": "^3.0.2", "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", - "nopt": "^7.0.0", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^7.2.1", "npm-install-checks": "^6.2.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-registry-fetch": "^14.0.3", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-registry-fetch": "^17.0.1", + "pacote": "^18.0.6", "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.2", + "promise-call-limit": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "ssri": "^10.0.1", + "ssri": "^10.0.6", "treeverse": "^3.0.0", "walk-up-path": "^3.0.1" }, @@ -11133,42 +11428,30 @@ "arborist": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "6.4.1", + "version": "8.3.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", "ci-info": "^4.0.0", - "ini": "^4.1.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "ini": "^4.1.2", + "nopt": "^7.2.1", + "proc-log": "^4.2.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", "walk-up-path": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ansi-styles": "^4.3.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/fs": { - "version": "3.1.0", + "version": "3.1.1", "dev": true, "inBundle": true, "license": "ISC", @@ -11180,26 +11463,26 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "4.1.0", + "version": "5.0.7", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", + "version": "2.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -11208,14 +11491,14 @@ "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.4", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -11230,31 +11513,19 @@ } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "5.0.1", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "cacache": "^17.0.0", + "cacache": "^18.0.0", "json-parse-even-better-errors": "^3.0.0", - "pacote": "^15.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { @@ -11276,33 +11547,33 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "4.0.1", + "version": "5.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^4.1.0", + "@npmcli/git": "^5.0.0", "glob": "^10.2.2", - "hosted-git-info": "^6.1.1", + "hosted-git-info": "^7.0.0", "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "proc-log": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", "semver": "^7.5.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/query": { @@ -11317,20 +11588,30 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "6.0.2", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@pkgjs/parseargs": { @@ -11344,82 +11625,99 @@ } }, "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "1.1.0", + "version": "2.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0" + "@sigstore/protobuf-specs": "^0.3.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", + "version": "0.3.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "1.0.0", + "version": "2.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "make-fetch-happen": "^11.0.1" + "@sigstore/bundle": "^2.3.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "1.0.3", + "version": "2.3.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0", - "tuf-js": "^1.1.7" + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/@tootallnate/once": { - "version": "2.0.0", + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.2.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.1" + }, "engines": { - "node": ">= 10" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@tufjs/canonical-json": { - "version": "1.0.0", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@tufjs/models": { - "version": "1.0.4", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/abbrev": { @@ -11432,27 +11730,15 @@ } }, "node_modules/npm/node_modules/agent-base": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/npm/node_modules/agentkeepalive": { - "version": "4.5.0", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "humanize-ms": "^1.2.1" + "debug": "^4.3.4" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 14" } }, "node_modules/npm/node_modules/aggregate-error": { @@ -11478,15 +11764,12 @@ } }, "node_modules/npm/node_modules/ansi-styles": { - "version": "4.3.0", + "version": "6.2.1", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -11504,15 +11787,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", "dev": true, @@ -11520,7 +11794,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { - "version": "4.0.3", + "version": "4.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -11535,12 +11809,15 @@ } }, "node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/brace-expansion": { @@ -11552,17 +11829,8 @@ "balanced-match": "^1.0.0" } }, - "node_modules/npm/node_modules/builtins": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/npm/node_modules/cacache": { - "version": "17.1.4", + "version": "18.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -11570,9 +11838,9 @@ "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", - "lru-cache": "^7.7.1", + "lru-cache": "^10.0.1", "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", + "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", @@ -11581,7 +11849,7 @@ "unique-filename": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/chalk": { @@ -11621,15 +11889,15 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "3.1.1", + "version": "4.0.5", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "ip-regex": "^4.1.0" + "ip-regex": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/npm/node_modules/clean-stack": { @@ -11654,32 +11922,8 @@ "node": ">= 10" } }, - "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.2", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -11705,46 +11949,12 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/npm/node_modules/columnify": { - "version": "1.6.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", "dev": true, "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.3", "dev": true, @@ -11809,24 +12019,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/defaults": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/diff": { "version": "5.2.0", "dev": true, @@ -11916,12 +12108,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -11931,42 +12117,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/gauge": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/glob": { - "version": "10.3.10", + "version": "10.3.15", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -11978,14 +12145,8 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/hasown": { - "version": "2.0.1", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -11997,15 +12158,15 @@ } }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "6.1.1", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/http-cache-semantics": { @@ -12015,39 +12176,29 @@ "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { - "version": "5.0.0", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/npm/node_modules/https-proxy-agent": { - "version": "5.0.1", + "version": "7.0.4", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/humanize-ms": { - "version": "1.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" + "node": ">= 14" } }, "node_modules/npm/node_modules/iconv-lite": { @@ -12064,7 +12215,7 @@ } }, "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.4", + "version": "6.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -12093,30 +12244,8 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/infer-owner": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/npm/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/ini": { - "version": "4.1.1", + "version": "4.1.2", "dev": true, "inBundle": true, "license": "ISC", @@ -12125,21 +12254,21 @@ } }, "node_modules/npm/node_modules/init-package-json": { - "version": "5.0.0", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^10.0.0", + "@npmcli/package-json": "^5.0.0", + "npm-package-arg": "^11.0.0", "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^6.0.0", + "read": "^3.0.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/ip-address": { @@ -12155,31 +12284,28 @@ "node": ">= 12" } }, - "node_modules/npm/node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause" - }, "node_modules/npm/node_modules/ip-regex": { - "version": "4.3.0", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/is-cidr": { - "version": "4.0.2", + "version": "5.0.5", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "^3.1.1" + "cidr-regex": "^4.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/npm/node_modules/is-core-module": { @@ -12240,7 +12366,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.1", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -12279,219 +12405,205 @@ "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "7.0.3", + "version": "8.0.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3" + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "5.0.21", + "version": "6.1.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.5.0", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", + "@npmcli/arborist": "^7.5.2", + "@npmcli/installed-package-contents": "^2.1.0", + "binary-extensions": "^2.3.0", "diff": "^5.1.0", - "minimatch": "^9.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8", - "tar": "^6.1.13" + "minimatch": "^9.0.4", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "tar": "^6.2.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "6.0.5", + "version": "8.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.5.0", - "@npmcli/run-script": "^6.0.0", + "@npmcli/arborist": "^7.5.2", + "@npmcli/run-script": "^8.1.0", "ci-info": "^4.0.0", - "npm-package-arg": "^10.1.0", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "proc-log": "^3.0.0", - "read": "^2.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "proc-log": "^4.2.0", + "read": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "walk-up-path": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "4.2.2", + "version": "5.0.10", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.5.0" + "@npmcli/arborist": "^7.5.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "9.0.4", + "version": "10.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^17.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "5.0.5", + "version": "6.0.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^17.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "5.0.21", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.5.0", - "@npmcli/run-script": "^6.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8" + "@npmcli/arborist": "^7.5.2", + "@npmcli/run-script": "^8.1.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "7.5.2", + "version": "9.0.8", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "ci-info": "^4.0.0", - "normalize-package-data": "^5.0.0", - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3", - "proc-log": "^3.0.0", + "normalize-package-data": "^6.0.1", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.2.0", "semver": "^7.3.7", - "sigstore": "^1.4.0", - "ssri": "^10.0.1" + "sigstore": "^2.2.0", + "ssri": "^10.0.6" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "6.0.3", + "version": "7.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^17.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "5.0.4", + "version": "6.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^17.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "4.0.3", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^4.0.1", - "@npmcli/run-script": "^6.0.0", - "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", + "@npmcli/git": "^5.0.7", + "@npmcli/run-script": "^8.1.0", + "json-parse-even-better-errors": "^3.0.2", + "proc-log": "^4.2.0", "semver": "^7.3.7" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/lru-cache": { - "version": "7.18.3", + "version": "10.2.2", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "11.1.1", + "version": "13.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", + "proc-log": "^4.2.0", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", "ssri": "^10.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/make-fetch-happen/node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/minimatch": { - "version": "9.0.3", + "version": "9.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -12506,7 +12618,7 @@ } }, "node_modules/npm/node_modules/minipass": { - "version": "7.0.4", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "ISC", @@ -12515,31 +12627,19 @@ } }, "node_modules/npm/node_modules/minipass-collect": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.4", + "version": "3.0.5", "dev": true, "inBundle": true, "license": "MIT", @@ -12711,349 +12811,40 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "9.4.1", + "version": "10.1.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", + "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.5", "tar": "^6.1.2", - "which": "^2.0.2" + "which": "^4.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { - "version": "16.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/fs-minipass": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "10.2.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { - "version": "9.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { + "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/nopt": { - "version": "7.2.0", + "version": "7.2.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13068,18 +12859,18 @@ } }, "node_modules/npm/node_modules/normalize-package-data": { - "version": "5.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-audit-report": { @@ -13092,7 +12883,7 @@ } }, "node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13125,89 +12916,81 @@ } }, "node_modules/npm/node_modules/npm-package-arg": { - "version": "10.1.0", + "version": "11.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-packlist": { - "version": "7.0.4", + "version": "8.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "ignore-walk": "^6.0.0" + "ignore-walk": "^6.0.4" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "8.0.2", + "version": "9.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-profile": { - "version": "7.0.1", + "version": "10.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0" + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18.0.0" } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "14.0.5", + "version": "17.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", + "@npmcli/redact": "^2.0.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-user-validate": { - "version": "2.0.0", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -13215,30 +12998,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npmlog": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/once": { - "version": "1.4.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", "dev": true, @@ -13255,44 +13014,34 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "15.2.0", + "version": "18.0.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^4.0.0", + "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", + "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, "bin": { - "pacote": "lib/bin.js" + "pacote": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/pacote/node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/parse-conflict-json": { @@ -13309,15 +13058,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", "dev": true, @@ -13328,32 +13068,23 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.10.1", + "version": "1.11.1", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.15", + "version": "6.0.16", "dev": true, "inBundle": true, "license": "MIT", @@ -13366,7 +13097,16 @@ } }, "node_modules/npm/node_modules/proc-log": { - "version": "3.0.0", + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -13384,7 +13124,7 @@ } }, "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.2", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13412,12 +13152,12 @@ } }, "node_modules/npm/node_modules/promzard": { - "version": "1.0.0", + "version": "1.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "read": "^2.0.0" + "read": "^3.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -13432,12 +13172,12 @@ } }, "node_modules/npm/node_modules/read": { - "version": "2.1.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "mute-stream": "~1.0.0" + "mute-stream": "^1.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -13452,21 +13192,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/read-package-json": { - "version": "6.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/read-package-json-fast": { "version": "3.0.2", "dev": true, @@ -13480,20 +13205,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/readable-stream": { - "version": "3.6.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", "dev": true, @@ -13503,83 +13214,6 @@ "node": ">= 4" } }, - "node_modules/npm/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", "dev": true, @@ -13588,13 +13222,10 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.6.0", + "version": "7.6.2", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -13602,24 +13233,6 @@ "node": ">=10" } }, - "node_modules/npm/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", "dev": true, @@ -13654,22 +13267,20 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "1.9.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "@sigstore/sign": "^1.0.0", - "@sigstore/tuf": "^1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "bin": { - "sigstore": "bin/sigstore.js" + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/sign": "^2.3.0", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/smart-buffer": { @@ -13683,7 +13294,7 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.8.1", + "version": "2.8.3", "dev": true, "inBundle": true, "license": "MIT", @@ -13697,17 +13308,17 @@ } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "7.0.0", + "version": "8.0.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/npm/node_modules/spdx-correct": { @@ -13720,6 +13331,16 @@ "spdx-license-ids": "^3.0.0" } }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", "dev": true, @@ -13727,7 +13348,7 @@ "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "MIT", @@ -13742,8 +13363,14 @@ "inBundle": true, "license": "CC0-1.0" }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, "node_modules/npm/node_modules/ssri": { - "version": "10.0.5", + "version": "10.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -13754,15 +13381,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", "dev": true, @@ -13830,7 +13448,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "6.2.0", + "version": "6.2.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13901,17 +13519,17 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "1.1.7", + "version": "2.2.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tufjs/models": "1.0.4", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" + "make-fetch-happen": "^13.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/unique-filename": { @@ -13954,14 +13572,21 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "5.0.0", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -13972,37 +13597,28 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/npm/node_modules/which": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/wide-align": { - "version": "1.1.5", + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "engines": { + "node": ">=16" } }, "node_modules/npm/node_modules/wrap-ansi": { @@ -14040,20 +13656,23 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "inBundle": true, "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -14061,7 +13680,7 @@ "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { @@ -14102,12 +13721,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/write-file-atomic": { "version": "5.0.1", "dev": true, @@ -16387,6 +16000,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -16441,6 +16059,11 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -16494,8 +16117,7 @@ "node_modules/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==" }, "node_modules/sass": { "version": "1.75.0", diff --git a/web/vtadmin/package.json b/web/vtadmin/package.json index 93c363128f1..52029ddd9e4 100644 --- a/web/vtadmin/package.json +++ b/web/vtadmin/package.json @@ -9,13 +9,14 @@ "dependencies": { "@bugsnag/js": "^7.20.0", "@headlessui/react": "^1.7.8", + "@types/d3": "^7.4.3", "@types/jest": "^29.4.0", "@types/node": "^16.11.7", "@types/react-router-dom": "^5.3.3", "classnames": "^2.3.2", + "d3": "^7.9.0", "dayjs": "^1.11.7", "downshift": "^7.2.0", - "highcharts": "^10.3.3", "highcharts-react-official": "^3.1.0", "history": "^5.3.0", "lodash-es": "^4.17.21", @@ -88,7 +89,7 @@ "i": "^0.3.7", "jsdom": "^21.1.1", "msw": "^0.36.8", - "npm": "^9.6.3", + "npm": "^10.8.0", "postcss": "^8.4.31", "prettier": "^2.2.1", "protobufjs-cli": "^1.1.1", diff --git a/web/vtadmin/src/components/charts/D3Timeseries.tsx b/web/vtadmin/src/components/charts/D3Timeseries.tsx new file mode 100644 index 00000000000..c8b7587f402 --- /dev/null +++ b/web/vtadmin/src/components/charts/D3Timeseries.tsx @@ -0,0 +1,145 @@ +/** + * Copyright 2024 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as d3 from 'd3'; +import { useEffect, useMemo, useRef } from 'react'; +import { TimeseriesMap, TimeseriesPoint } from '../../util/tabletDebugVars'; + +const MARGIN = { top: 30, right: 30, bottom: 50, left: 50 }; +const width = 1000; +const height = 500; + +type LineChartProps = { + isLoading: boolean; + timeseriesMap: TimeseriesMap; +}; + +export const D3Timeseries = ({ isLoading, timeseriesMap }: LineChartProps) => { + // bounds = area inside the graph axis = calculated by substracting the margins + const axesRef = useRef(null); + const boundsWidth = width - MARGIN.right - MARGIN.left; + const boundsHeight = height - MARGIN.top - MARGIN.bottom; + + const [xRanges, yRanges] = axisMinsAndMaxes(timeseriesMap, boundsWidth); + const yMax = yRanges[1]; + const yScale = useMemo(() => { + return d3 + .scaleLinear() + .domain([0, yMax || 0]) + .range([boundsHeight, 0]); + }, [boundsHeight, yMax]); + + const xScale = useMemo(() => { + return d3.scaleTime().domain(xRanges).range([0, boundsWidth]); + }, [boundsWidth, xRanges]); + + // Render the X and Y axis using d3.js, not react + useEffect(() => { + const svgElement = d3.select(axesRef.current); + svgElement.selectAll('*').remove(); + + // Render X Axis + const xAxisGenerator = d3.axisBottom(xScale); + xAxisGenerator.tickFormat(d3.timeFormat('%H:%M')); + svgElement + .append('g') + .attr('transform', 'translate(0,' + boundsHeight + ')') + .call(xAxisGenerator) + .selectAll('text') + .attr('class', 'fill-gray-500 font-mono text-medium'); + + // Render Y Axis + const yAxisGenerator = d3.axisLeft(yScale); + svgElement + .append('g') + .call(yAxisGenerator) + .selectAll('text') + .attr('class', 'fill-gray-500 font-mono text-medium'); + svgElement.selectAll('path').attr('class', '!stroke-gray-200'); + svgElement.selectAll('line').attr('class', '!stroke-gray-200 z-10'); + }, [xScale, yScale, boundsHeight]); + + // Build the line + const lineBuilder = d3 + .line() + .x((d) => xScale(d.x)) + .y((d) => yScale(d.y)); + + const colors = d3.scaleOrdinal(d3.schemePiYG[11]); + + return ( +
+ + + {Object.entries(timeseriesMap).map(([name, ts], i) => ( + + ))} + + + + +
+ ); +}; + +const Legend: React.FC<{ names: string[]; colors: d3.ScaleOrdinal }> = ({ names, colors }) => { + return ( +
+ {names.map((name) => ( +
+
+ {name} +
+ ))} +
+ ); +}; + +type LineProps = { + color: string; + timeseriesPoints: TimeseriesPoint[]; + lineBuilder: d3.Line; +}; + +const Line: React.FC = ({ color, timeseriesPoints, lineBuilder }) => { + const linePath = lineBuilder(timeseriesPoints); + if (!linePath) { + return null; + } + + return ; +}; + +const axisMinsAndMaxes = (timeseriesMap: TimeseriesMap, boundsWidth: number): [[Date, Date], [number, number]] => { + const x_values: number[] = Object.values(timeseriesMap) + .map((points) => points.map((point) => point.x)) + .flat(); + const y_values = Object.values(timeseriesMap) + .map((points) => points.map((point) => point.y)) + .flat(); + const y_max = d3.max(y_values) as number; + const x_ranges = d3.extent(x_values.map((x) => new Date(x))) as [Date, Date]; + return [x_ranges, [0, y_max || 1]]; +}; diff --git a/web/vtadmin/src/components/charts/TabletQPSChart.tsx b/web/vtadmin/src/components/charts/TabletQPSChart.tsx index 154e2f32602..b064a0365c0 100644 --- a/web/vtadmin/src/components/charts/TabletQPSChart.tsx +++ b/web/vtadmin/src/components/charts/TabletQPSChart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2021 The Vitess Authors. + * Copyright 2024 The Vitess Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,13 +14,11 @@ * limitations under the License. */ -import Highcharts from 'highcharts'; import { useMemo } from 'react'; import { useExperimentalTabletDebugVars } from '../../hooks/api'; import { getQPSTimeseries, QPS_REFETCH_INTERVAL } from '../../util/tabletDebugVars'; -import { mergeOptions } from './chartOptions'; -import { Timeseries } from './Timeseries'; +import { D3Timeseries } from './D3Timeseries'; interface Props { alias: string; @@ -36,17 +34,8 @@ export const TabletQPSChart = ({ alias, clusterID }: Props) => { } ); - const options = useMemo(() => { - const tsdata = getQPSTimeseries(debugVars?.data, query.dataUpdatedAt); - - const series: Highcharts.SeriesOptionsType[] = Object.entries(tsdata).map(([name, data]) => ({ - data, - name, - type: 'line', - })); - - return mergeOptions({ series }); + const tsdata = useMemo(() => { + return getQPSTimeseries(debugVars?.data, query.dataUpdatedAt); }, [debugVars, query.dataUpdatedAt]); - - return ; + return ; }; diff --git a/web/vtadmin/src/components/charts/TabletVReplicationQPSChart.tsx b/web/vtadmin/src/components/charts/TabletVReplicationQPSChart.tsx index 8f11818e56f..26cae2845af 100644 --- a/web/vtadmin/src/components/charts/TabletVReplicationQPSChart.tsx +++ b/web/vtadmin/src/components/charts/TabletVReplicationQPSChart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2021 The Vitess Authors. + * Copyright 2024 The Vitess Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,13 +14,11 @@ * limitations under the License. */ -import Highcharts from 'highcharts'; import { useMemo } from 'react'; import { useExperimentalTabletDebugVars } from '../../hooks/api'; import { getVReplicationQPSTimeseries, QPS_REFETCH_INTERVAL } from '../../util/tabletDebugVars'; -import { mergeOptions } from './chartOptions'; -import { Timeseries } from './Timeseries'; +import { D3Timeseries } from './D3Timeseries'; interface Props { alias: string; @@ -36,17 +34,8 @@ export const TabletVReplicationQPSChart = ({ alias, clusterID }: Props) => { } ); - const options = useMemo(() => { - const tsdata = getVReplicationQPSTimeseries(debugVars?.data, query.dataUpdatedAt); - - const series: Highcharts.SeriesOptionsType[] = Object.entries(tsdata).map(([name, data]) => ({ - data, - name, - type: 'line', - })); - - return mergeOptions({ series }); + const tsdata = useMemo(() => { + return getVReplicationQPSTimeseries(debugVars?.data, query.dataUpdatedAt); }, [debugVars, query.dataUpdatedAt]); - - return ; + return ; }; diff --git a/web/vtadmin/src/components/charts/Timeseries.tsx b/web/vtadmin/src/components/charts/Timeseries.tsx deleted file mode 100644 index 8168de62c35..00000000000 --- a/web/vtadmin/src/components/charts/Timeseries.tsx +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright 2021 The Vitess Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Highcharts from 'highcharts'; -import HighchartsReact from 'highcharts-react-official'; -import { useEffect, useMemo, useRef } from 'react'; -import { mergeOptions } from './chartOptions'; - -interface Props { - isLoading?: boolean; - options: Highcharts.Options | undefined; -} - -export const Timeseries = ({ isLoading, options }: Props) => { - // See https://github.com/highcharts/highcharts-react/issues/290#issuecomment-802914598 - const ref = useRef<{ - chart: Highcharts.Chart; - container: React.RefObject; - }>(null); - - useEffect(() => { - if (!ref.current) { - return; - } - - if (isLoading) { - ref.current.chart.showLoading(); - } else { - ref.current.chart.hideLoading(); - } - }, [isLoading]); - - const _options = useMemo(() => { - return mergeOptions( - { - tooltip: { - hideDelay: 0, - shared: true, - }, - xAxis: { - crosshair: true, - type: 'datetime', - }, - yAxis: { - crosshair: true, - // Setting `softMax` to any positive integer will anchor the y=0 gridline - // at the bottom of the chart even when there is no data to show. - softMax: 1, - softMin: 0, - title: { - text: undefined, - }, - }, - }, - options - ); - }, [options]); - - return ; -}; diff --git a/web/vtadmin/src/components/charts/WorkflowStreamsLagChart.test.tsx b/web/vtadmin/src/components/charts/WorkflowStreamsLagChart.test.tsx index 948b3e0b624..feec9c2ac7c 100644 --- a/web/vtadmin/src/components/charts/WorkflowStreamsLagChart.test.tsx +++ b/web/vtadmin/src/components/charts/WorkflowStreamsLagChart.test.tsx @@ -17,7 +17,7 @@ import { UseQueryResult } from 'react-query'; import { TabletDebugVarsResponse } from '../../api/http'; import { vtadmin as pb } from '../../proto/vtadmin'; -import { formatSeries } from './WorkflowStreamsLagChart'; +import { getWorkflowTimeseries } from './WorkflowStreamsLagChart'; describe('WorkflowStreamsLagChart', () => { describe('formatSeries', () => { @@ -75,23 +75,19 @@ describe('WorkflowStreamsLagChart', () => { // A sneaky cast to UseQueryResult since otherwise enumerating the many fields // UseQueryResult (most of which we don't use) is pointlessly verbose. - const result = formatSeries(workflow, queries as UseQueryResult[]); + const result = getWorkflowTimeseries(workflow, queries as UseQueryResult[]); // Use snapshot matching since defining expected values for arrays of 180 data points is... annoying. expect(result).toMatchSnapshot(); // ...but! Add additional validation so that failing tests are easier to debug. // (And because it can be tempting to not examine snapshot changes in detail...) :) - expect(result.length).toEqual(3); - - expect(result[0].name).toEqual('us_east_1a-123456/1'); - expect(result[1].name).toEqual('us_east_1a-123456/2'); - expect(result[2].name).toEqual('us_east_1a-789012/1'); + expect(Object.keys(result).length).toEqual(3); }); it('should handle empty input', () => { - const result = formatSeries(null, []); - expect(result).toEqual([]); + const result = getWorkflowTimeseries(null, []); + expect(result).toEqual({}); }); }); }); diff --git a/web/vtadmin/src/components/charts/WorkflowStreamsLagChart.tsx b/web/vtadmin/src/components/charts/WorkflowStreamsLagChart.tsx index 2cfb6491952..09106db5c23 100644 --- a/web/vtadmin/src/components/charts/WorkflowStreamsLagChart.tsx +++ b/web/vtadmin/src/components/charts/WorkflowStreamsLagChart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2021 The Vitess Authors. + * Copyright 2024 The Vitess Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,9 +18,9 @@ import { useMemo } from 'react'; import { useManyExperimentalTabletDebugVars, useWorkflow } from '../../hooks/api'; import { vtadmin } from '../../proto/vtadmin'; -import { getStreamVReplicationLagTimeseries, QPS_REFETCH_INTERVAL } from '../../util/tabletDebugVars'; +import { getStreamVReplicationLagTimeseries, QPS_REFETCH_INTERVAL, TimeseriesMap } from '../../util/tabletDebugVars'; import { formatStreamKey, getStreams, getStreamTablets } from '../../util/workflows'; -import { Timeseries } from './Timeseries'; +import { D3Timeseries } from './D3Timeseries'; interface Props { clusterID: string; @@ -28,10 +28,6 @@ interface Props { workflowName: string; } -// Default min/max values (in seconds) for the y-axis when there is no data to show. -const DEFAULT_Y_MAX = 5; -const DEFAULT_Y_MIN = 0; - export const WorkflowStreamsLagChart = ({ clusterID, keyspace, workflowName }: Props) => { const { data: workflow, ...wq } = useWorkflow({ clusterID, keyspace, name: workflowName }); @@ -48,37 +44,19 @@ export const WorkflowStreamsLagChart = ({ clusterID, keyspace, workflowName }: P const anyLoading = wq.isLoading || tabletQueries.some((q) => q.isLoading); - const chartOptions: Highcharts.Options = useMemo(() => { - const series = formatSeries(workflow, tabletQueries); - const allSeriesEmpty = series.every((s) => !s.data?.length); - - return { - series, - yAxis: { - labels: { - format: '{text} s', - }, - // The desired behaviour is to show axes + grid lines - // even when there is no data to show. Unfortunately, setting - // softMin/softMax (which is more flexible) doesn't work with showEmpty. - // Instead, we must set explicit min/max, but only when all series are empty. - // If at least one series has data, allow min/max to be automatically calculated. - max: allSeriesEmpty ? DEFAULT_Y_MAX : null, - min: allSeriesEmpty ? DEFAULT_Y_MIN : null, - }, - }; + const timeseries = useMemo(() => { + return getWorkflowTimeseries(workflow, tabletQueries); }, [tabletQueries, workflow]); - return ; + return ; }; -// Internal function, exported only for testing. -export const formatSeries = ( +export const getWorkflowTimeseries = ( workflow: vtadmin.Workflow | null | undefined, tabletQueries: ReturnType -): Highcharts.SeriesLineOptions[] => { +): TimeseriesMap => { if (!workflow) { - return []; + return {} as TimeseriesMap; } // Get streamKeys for streams in this workflow. @@ -86,11 +64,10 @@ export const formatSeries = ( // Initialize the timeseries from the workflow, so that every stream in the workflow // is shown in the legend, even if the /debug/vars data isn't (yet) available. - const seriesByStreamKey: { [streamKey: string]: Highcharts.SeriesLineOptions } = {}; - + const seriesByStreamKey: TimeseriesMap = {}; streamKeys.forEach((streamKey) => { if (streamKey) { - seriesByStreamKey[streamKey] = { data: [], name: streamKey, type: 'line' }; + seriesByStreamKey[streamKey] = []; } }); @@ -117,9 +94,9 @@ export const formatSeries = ( return; } - seriesByStreamKey[streamKey].data = streamLagData; + seriesByStreamKey[streamKey] = streamLagData; }); }); - return Object.values(seriesByStreamKey); + return seriesByStreamKey; }; diff --git a/web/vtadmin/src/components/charts/__snapshots__/WorkflowStreamsLagChart.test.tsx.snap b/web/vtadmin/src/components/charts/__snapshots__/WorkflowStreamsLagChart.test.tsx.snap index d6dc49711f9..59126ed9dbf 100644 --- a/web/vtadmin/src/components/charts/__snapshots__/WorkflowStreamsLagChart.test.tsx.snap +++ b/web/vtadmin/src/components/charts/__snapshots__/WorkflowStreamsLagChart.test.tsx.snap @@ -1,4367 +1,4343 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`WorkflowStreamsLagChart > formatSeries > should return series for all streams in the workflow 1`] = ` -[ - { - "data": [ - { - "x": 999997852000, - "y": 0, - }, - { - "x": 999997864000, - "y": 0, - }, - { - "x": 999997876000, - "y": 0, - }, - { - "x": 999997888000, - "y": 0, - }, - { - "x": 999997900000, - "y": 0, - }, - { - "x": 999997912000, - "y": 0, - }, - { - "x": 999997924000, - "y": 0, - }, - { - "x": 999997936000, - "y": 0, - }, - { - "x": 999997948000, - "y": 0, - }, - { - "x": 999997960000, - "y": 0, - }, - { - "x": 999997972000, - "y": 0, - }, - { - "x": 999997984000, - "y": 0, - }, - { - "x": 999997996000, - "y": 0, - }, - { - "x": 999998008000, - "y": 0, - }, - { - "x": 999998020000, - "y": 0, - }, - { - "x": 999998032000, - "y": 0, - }, - { - "x": 999998044000, - "y": 0, - }, - { - "x": 999998056000, - "y": 0, - }, - { - "x": 999998068000, - "y": 0, - }, - { - "x": 999998080000, - "y": 0, - }, - { - "x": 999998092000, - "y": 0, - }, - { - "x": 999998104000, - "y": 0, - }, - { - "x": 999998116000, - "y": 0, - }, - { - "x": 999998128000, - "y": 0, - }, - { - "x": 999998140000, - "y": 0, - }, - { - "x": 999998152000, - "y": 0, - }, - { - "x": 999998164000, - "y": 0, - }, - { - "x": 999998176000, - "y": 0, - }, - { - "x": 999998188000, - "y": 0, - }, - { - "x": 999998200000, - "y": 0, - }, - { - "x": 999998212000, - "y": 0, - }, - { - "x": 999998224000, - "y": 0, - }, - { - "x": 999998236000, - "y": 0, - }, - { - "x": 999998248000, - "y": 0, - }, - { - "x": 999998260000, - "y": 0, - }, - { - "x": 999998272000, - "y": 0, - }, - { - "x": 999998284000, - "y": 0, - }, - { - "x": 999998296000, - "y": 0, - }, - { - "x": 999998308000, - "y": 0, - }, - { - "x": 999998320000, - "y": 0, - }, - { - "x": 999998332000, - "y": 0, - }, - { - "x": 999998344000, - "y": 0, - }, - { - "x": 999998356000, - "y": 0, - }, - { - "x": 999998368000, - "y": 0, - }, - { - "x": 999998380000, - "y": 0, - }, - { - "x": 999998392000, - "y": 0, - }, - { - "x": 999998404000, - "y": 0, - }, - { - "x": 999998416000, - "y": 0, - }, - { - "x": 999998428000, - "y": 0, - }, - { - "x": 999998440000, - "y": 0, - }, - { - "x": 999998452000, - "y": 0, - }, - { - "x": 999998464000, - "y": 0, - }, - { - "x": 999998476000, - "y": 0, - }, - { - "x": 999998488000, - "y": 0, - }, - { - "x": 999998500000, - "y": 0, - }, - { - "x": 999998512000, - "y": 0, - }, - { - "x": 999998524000, - "y": 0, - }, - { - "x": 999998536000, - "y": 0, - }, - { - "x": 999998548000, - "y": 0, - }, - { - "x": 999998560000, - "y": 0, - }, - { - "x": 999998572000, - "y": 0, - }, - { - "x": 999998584000, - "y": 0, - }, - { - "x": 999998596000, - "y": 0, - }, - { - "x": 999998608000, - "y": 0, - }, - { - "x": 999998620000, - "y": 0, - }, - { - "x": 999998632000, - "y": 0, - }, - { - "x": 999998644000, - "y": 0, - }, - { - "x": 999998656000, - "y": 0, - }, - { - "x": 999998668000, - "y": 0, - }, - { - "x": 999998680000, - "y": 0, - }, - { - "x": 999998692000, - "y": 0, - }, - { - "x": 999998704000, - "y": 0, - }, - { - "x": 999998716000, - "y": 0, - }, - { - "x": 999998728000, - "y": 0, - }, - { - "x": 999998740000, - "y": 0, - }, - { - "x": 999998752000, - "y": 0, - }, - { - "x": 999998764000, - "y": 0, - }, - { - "x": 999998776000, - "y": 0, - }, - { - "x": 999998788000, - "y": 0, - }, - { - "x": 999998800000, - "y": 0, - }, - { - "x": 999998812000, - "y": 0, - }, - { - "x": 999998824000, - "y": 0, - }, - { - "x": 999998836000, - "y": 0, - }, - { - "x": 999998848000, - "y": 0, - }, - { - "x": 999998860000, - "y": 0, - }, - { - "x": 999998872000, - "y": 0, - }, - { - "x": 999998884000, - "y": 0, - }, - { - "x": 999998896000, - "y": 0, - }, - { - "x": 999998908000, - "y": 0, - }, - { - "x": 999998920000, - "y": 0, - }, - { - "x": 999998932000, - "y": 0, - }, - { - "x": 999998944000, - "y": 0, - }, - { - "x": 999998956000, - "y": 0, - }, - { - "x": 999998968000, - "y": 0, - }, - { - "x": 999998980000, - "y": 0, - }, - { - "x": 999998992000, - "y": 0, - }, - { - "x": 999999004000, - "y": 0, - }, - { - "x": 999999016000, - "y": 0, - }, - { - "x": 999999028000, - "y": 0, - }, - { - "x": 999999040000, - "y": 0, - }, - { - "x": 999999052000, - "y": 0, - }, - { - "x": 999999064000, - "y": 0, - }, - { - "x": 999999076000, - "y": 0, - }, - { - "x": 999999088000, - "y": 0, - }, - { - "x": 999999100000, - "y": 0, - }, - { - "x": 999999112000, - "y": 0, - }, - { - "x": 999999124000, - "y": 0, - }, - { - "x": 999999136000, - "y": 0, - }, - { - "x": 999999148000, - "y": 0, - }, - { - "x": 999999160000, - "y": 0, - }, - { - "x": 999999172000, - "y": 0, - }, - { - "x": 999999184000, - "y": 0, - }, - { - "x": 999999196000, - "y": 0, - }, - { - "x": 999999208000, - "y": 0, - }, - { - "x": 999999220000, - "y": 0, - }, - { - "x": 999999232000, - "y": 0, - }, - { - "x": 999999244000, - "y": 0, - }, - { - "x": 999999256000, - "y": 0, - }, - { - "x": 999999268000, - "y": 0, - }, - { - "x": 999999280000, - "y": 0, - }, - { - "x": 999999292000, - "y": 0, - }, - { - "x": 999999304000, - "y": 0, - }, - { - "x": 999999316000, - "y": 0, - }, - { - "x": 999999328000, - "y": 0, - }, - { - "x": 999999340000, - "y": 0, - }, - { - "x": 999999352000, - "y": 0, - }, - { - "x": 999999364000, - "y": 0, - }, - { - "x": 999999376000, - "y": 0, - }, - { - "x": 999999388000, - "y": 0, - }, - { - "x": 999999400000, - "y": 0, - }, - { - "x": 999999412000, - "y": 0, - }, - { - "x": 999999424000, - "y": 0, - }, - { - "x": 999999436000, - "y": 0, - }, - { - "x": 999999448000, - "y": 0, - }, - { - "x": 999999460000, - "y": 0, - }, - { - "x": 999999472000, - "y": 0, - }, - { - "x": 999999484000, - "y": 0, - }, - { - "x": 999999496000, - "y": 0, - }, - { - "x": 999999508000, - "y": 0, - }, - { - "x": 999999520000, - "y": 0, - }, - { - "x": 999999532000, - "y": 0, - }, - { - "x": 999999544000, - "y": 0, - }, - { - "x": 999999556000, - "y": 0, - }, - { - "x": 999999568000, - "y": 0, - }, - { - "x": 999999580000, - "y": 0, - }, - { - "x": 999999592000, - "y": 0, - }, - { - "x": 999999604000, - "y": 0, - }, - { - "x": 999999616000, - "y": 0, - }, - { - "x": 999999628000, - "y": 0, - }, - { - "x": 999999640000, - "y": 0, - }, - { - "x": 999999652000, - "y": 0, - }, - { - "x": 999999664000, - "y": 0, - }, - { - "x": 999999676000, - "y": 0, - }, - { - "x": 999999688000, - "y": 0, - }, - { - "x": 999999700000, - "y": 0, - }, - { - "x": 999999712000, - "y": 0, - }, - { - "x": 999999724000, - "y": 0, - }, - { - "x": 999999736000, - "y": 0, - }, - { - "x": 999999748000, - "y": 0, - }, - { - "x": 999999760000, - "y": 0, - }, - { - "x": 999999772000, - "y": 0, - }, - { - "x": 999999784000, - "y": 0, - }, - { - "x": 999999796000, - "y": 0, - }, - { - "x": 999999808000, - "y": 0, - }, - { - "x": 999999820000, - "y": 0, - }, - { - "x": 999999832000, - "y": 0, - }, - { - "x": 999999844000, - "y": 0, - }, - { - "x": 999999856000, - "y": 0, - }, - { - "x": 999999868000, - "y": 0, - }, - { - "x": 999999880000, - "y": 0, - }, - { - "x": 999999892000, - "y": 0, - }, - { - "x": 999999904000, - "y": 0, - }, - { - "x": 999999916000, - "y": 0, - }, - { - "x": 999999928000, - "y": 0, - }, - { - "x": 999999940000, - "y": 0, - }, - { - "x": 999999952000, - "y": 0, - }, - { - "x": 999999964000, - "y": 0, - }, - { - "x": 999999976000, - "y": 1, - }, - { - "x": 999999988000, - "y": 1, - }, - { - "x": 1000000000000, - "y": 1, - }, - ], - "name": "us_east_1a-123456/1", - "type": "line", - }, - { - "data": [ - { - "x": 999997852000, - "y": 0, - }, - { - "x": 999997864000, - "y": 0, - }, - { - "x": 999997876000, - "y": 0, - }, - { - "x": 999997888000, - "y": 0, - }, - { - "x": 999997900000, - "y": 0, - }, - { - "x": 999997912000, - "y": 0, - }, - { - "x": 999997924000, - "y": 0, - }, - { - "x": 999997936000, - "y": 0, - }, - { - "x": 999997948000, - "y": 0, - }, - { - "x": 999997960000, - "y": 0, - }, - { - "x": 999997972000, - "y": 0, - }, - { - "x": 999997984000, - "y": 0, - }, - { - "x": 999997996000, - "y": 0, - }, - { - "x": 999998008000, - "y": 0, - }, - { - "x": 999998020000, - "y": 0, - }, - { - "x": 999998032000, - "y": 0, - }, - { - "x": 999998044000, - "y": 0, - }, - { - "x": 999998056000, - "y": 0, - }, - { - "x": 999998068000, - "y": 0, - }, - { - "x": 999998080000, - "y": 0, - }, - { - "x": 999998092000, - "y": 0, - }, - { - "x": 999998104000, - "y": 0, - }, - { - "x": 999998116000, - "y": 0, - }, - { - "x": 999998128000, - "y": 0, - }, - { - "x": 999998140000, - "y": 0, - }, - { - "x": 999998152000, - "y": 0, - }, - { - "x": 999998164000, - "y": 0, - }, - { - "x": 999998176000, - "y": 0, - }, - { - "x": 999998188000, - "y": 0, - }, - { - "x": 999998200000, - "y": 0, - }, - { - "x": 999998212000, - "y": 0, - }, - { - "x": 999998224000, - "y": 0, - }, - { - "x": 999998236000, - "y": 0, - }, - { - "x": 999998248000, - "y": 0, - }, - { - "x": 999998260000, - "y": 0, - }, - { - "x": 999998272000, - "y": 0, - }, - { - "x": 999998284000, - "y": 0, - }, - { - "x": 999998296000, - "y": 0, - }, - { - "x": 999998308000, - "y": 0, - }, - { - "x": 999998320000, - "y": 0, - }, - { - "x": 999998332000, - "y": 0, - }, - { - "x": 999998344000, - "y": 0, - }, - { - "x": 999998356000, - "y": 0, - }, - { - "x": 999998368000, - "y": 0, - }, - { - "x": 999998380000, - "y": 0, - }, - { - "x": 999998392000, - "y": 0, - }, - { - "x": 999998404000, - "y": 0, - }, - { - "x": 999998416000, - "y": 0, - }, - { - "x": 999998428000, - "y": 0, - }, - { - "x": 999998440000, - "y": 0, - }, - { - "x": 999998452000, - "y": 0, - }, - { - "x": 999998464000, - "y": 0, - }, - { - "x": 999998476000, - "y": 0, - }, - { - "x": 999998488000, - "y": 0, - }, - { - "x": 999998500000, - "y": 0, - }, - { - "x": 999998512000, - "y": 0, - }, - { - "x": 999998524000, - "y": 0, - }, - { - "x": 999998536000, - "y": 0, - }, - { - "x": 999998548000, - "y": 0, - }, - { - "x": 999998560000, - "y": 0, - }, - { - "x": 999998572000, - "y": 0, - }, - { - "x": 999998584000, - "y": 0, - }, - { - "x": 999998596000, - "y": 0, - }, - { - "x": 999998608000, - "y": 0, - }, - { - "x": 999998620000, - "y": 0, - }, - { - "x": 999998632000, - "y": 0, - }, - { - "x": 999998644000, - "y": 0, - }, - { - "x": 999998656000, - "y": 0, - }, - { - "x": 999998668000, - "y": 0, - }, - { - "x": 999998680000, - "y": 0, - }, - { - "x": 999998692000, - "y": 0, - }, - { - "x": 999998704000, - "y": 0, - }, - { - "x": 999998716000, - "y": 0, - }, - { - "x": 999998728000, - "y": 0, - }, - { - "x": 999998740000, - "y": 0, - }, - { - "x": 999998752000, - "y": 0, - }, - { - "x": 999998764000, - "y": 0, - }, - { - "x": 999998776000, - "y": 0, - }, - { - "x": 999998788000, - "y": 0, - }, - { - "x": 999998800000, - "y": 0, - }, - { - "x": 999998812000, - "y": 0, - }, - { - "x": 999998824000, - "y": 0, - }, - { - "x": 999998836000, - "y": 0, - }, - { - "x": 999998848000, - "y": 0, - }, - { - "x": 999998860000, - "y": 0, - }, - { - "x": 999998872000, - "y": 0, - }, - { - "x": 999998884000, - "y": 0, - }, - { - "x": 999998896000, - "y": 0, - }, - { - "x": 999998908000, - "y": 0, - }, - { - "x": 999998920000, - "y": 0, - }, - { - "x": 999998932000, - "y": 0, - }, - { - "x": 999998944000, - "y": 0, - }, - { - "x": 999998956000, - "y": 0, - }, - { - "x": 999998968000, - "y": 0, - }, - { - "x": 999998980000, - "y": 0, - }, - { - "x": 999998992000, - "y": 0, - }, - { - "x": 999999004000, - "y": 0, - }, - { - "x": 999999016000, - "y": 0, - }, - { - "x": 999999028000, - "y": 0, - }, - { - "x": 999999040000, - "y": 0, - }, - { - "x": 999999052000, - "y": 0, - }, - { - "x": 999999064000, - "y": 0, - }, - { - "x": 999999076000, - "y": 0, - }, - { - "x": 999999088000, - "y": 0, - }, - { - "x": 999999100000, - "y": 0, - }, - { - "x": 999999112000, - "y": 0, - }, - { - "x": 999999124000, - "y": 0, - }, - { - "x": 999999136000, - "y": 0, - }, - { - "x": 999999148000, - "y": 0, - }, - { - "x": 999999160000, - "y": 0, - }, - { - "x": 999999172000, - "y": 0, - }, - { - "x": 999999184000, - "y": 0, - }, - { - "x": 999999196000, - "y": 0, - }, - { - "x": 999999208000, - "y": 0, - }, - { - "x": 999999220000, - "y": 0, - }, - { - "x": 999999232000, - "y": 0, - }, - { - "x": 999999244000, - "y": 0, - }, - { - "x": 999999256000, - "y": 0, - }, - { - "x": 999999268000, - "y": 0, - }, - { - "x": 999999280000, - "y": 0, - }, - { - "x": 999999292000, - "y": 0, - }, - { - "x": 999999304000, - "y": 0, - }, - { - "x": 999999316000, - "y": 0, - }, - { - "x": 999999328000, - "y": 0, - }, - { - "x": 999999340000, - "y": 0, - }, - { - "x": 999999352000, - "y": 0, - }, - { - "x": 999999364000, - "y": 0, - }, - { - "x": 999999376000, - "y": 0, - }, - { - "x": 999999388000, - "y": 0, - }, - { - "x": 999999400000, - "y": 0, - }, - { - "x": 999999412000, - "y": 0, - }, - { - "x": 999999424000, - "y": 0, - }, - { - "x": 999999436000, - "y": 0, - }, - { - "x": 999999448000, - "y": 0, - }, - { - "x": 999999460000, - "y": 0, - }, - { - "x": 999999472000, - "y": 0, - }, - { - "x": 999999484000, - "y": 0, - }, - { - "x": 999999496000, - "y": 0, - }, - { - "x": 999999508000, - "y": 0, - }, - { - "x": 999999520000, - "y": 0, - }, - { - "x": 999999532000, - "y": 0, - }, - { - "x": 999999544000, - "y": 0, - }, - { - "x": 999999556000, - "y": 0, - }, - { - "x": 999999568000, - "y": 0, - }, - { - "x": 999999580000, - "y": 0, - }, - { - "x": 999999592000, - "y": 0, - }, - { - "x": 999999604000, - "y": 0, - }, - { - "x": 999999616000, - "y": 0, - }, - { - "x": 999999628000, - "y": 0, - }, - { - "x": 999999640000, - "y": 0, - }, - { - "x": 999999652000, - "y": 0, - }, - { - "x": 999999664000, - "y": 0, - }, - { - "x": 999999676000, - "y": 0, - }, - { - "x": 999999688000, - "y": 0, - }, - { - "x": 999999700000, - "y": 0, - }, - { - "x": 999999712000, - "y": 0, - }, - { - "x": 999999724000, - "y": 0, - }, - { - "x": 999999736000, - "y": 0, - }, - { - "x": 999999748000, - "y": 0, - }, - { - "x": 999999760000, - "y": 0, - }, - { - "x": 999999772000, - "y": 0, - }, - { - "x": 999999784000, - "y": 0, - }, - { - "x": 999999796000, - "y": 0, - }, - { - "x": 999999808000, - "y": 0, - }, - { - "x": 999999820000, - "y": 0, - }, - { - "x": 999999832000, - "y": 0, - }, - { - "x": 999999844000, - "y": 0, - }, - { - "x": 999999856000, - "y": 0, - }, - { - "x": 999999868000, - "y": 0, - }, - { - "x": 999999880000, - "y": 0, - }, - { - "x": 999999892000, - "y": 0, - }, - { - "x": 999999904000, - "y": 0, - }, - { - "x": 999999916000, - "y": 0, - }, - { - "x": 999999928000, - "y": 0, - }, - { - "x": 999999940000, - "y": 0, - }, - { - "x": 999999952000, - "y": 0, - }, - { - "x": 999999964000, - "y": 0, - }, - { - "x": 999999976000, - "y": 2, - }, - { - "x": 999999988000, - "y": 2, - }, - { - "x": 1000000000000, - "y": 2, - }, - ], - "name": "us_east_1a-123456/2", - "type": "line", - }, - { - "data": [ - { - "x": 999997852000, - "y": 0, - }, - { - "x": 999997864000, - "y": 0, - }, - { - "x": 999997876000, - "y": 0, - }, - { - "x": 999997888000, - "y": 0, - }, - { - "x": 999997900000, - "y": 0, - }, - { - "x": 999997912000, - "y": 0, - }, - { - "x": 999997924000, - "y": 0, - }, - { - "x": 999997936000, - "y": 0, - }, - { - "x": 999997948000, - "y": 0, - }, - { - "x": 999997960000, - "y": 0, - }, - { - "x": 999997972000, - "y": 0, - }, - { - "x": 999997984000, - "y": 0, - }, - { - "x": 999997996000, - "y": 0, - }, - { - "x": 999998008000, - "y": 0, - }, - { - "x": 999998020000, - "y": 0, - }, - { - "x": 999998032000, - "y": 0, - }, - { - "x": 999998044000, - "y": 0, - }, - { - "x": 999998056000, - "y": 0, - }, - { - "x": 999998068000, - "y": 0, - }, - { - "x": 999998080000, - "y": 0, - }, - { - "x": 999998092000, - "y": 0, - }, - { - "x": 999998104000, - "y": 0, - }, - { - "x": 999998116000, - "y": 0, - }, - { - "x": 999998128000, - "y": 0, - }, - { - "x": 999998140000, - "y": 0, - }, - { - "x": 999998152000, - "y": 0, - }, - { - "x": 999998164000, - "y": 0, - }, - { - "x": 999998176000, - "y": 0, - }, - { - "x": 999998188000, - "y": 0, - }, - { - "x": 999998200000, - "y": 0, - }, - { - "x": 999998212000, - "y": 0, - }, - { - "x": 999998224000, - "y": 0, - }, - { - "x": 999998236000, - "y": 0, - }, - { - "x": 999998248000, - "y": 0, - }, - { - "x": 999998260000, - "y": 0, - }, - { - "x": 999998272000, - "y": 0, - }, - { - "x": 999998284000, - "y": 0, - }, - { - "x": 999998296000, - "y": 0, - }, - { - "x": 999998308000, - "y": 0, - }, - { - "x": 999998320000, - "y": 0, - }, - { - "x": 999998332000, - "y": 0, - }, - { - "x": 999998344000, - "y": 0, - }, - { - "x": 999998356000, - "y": 0, - }, - { - "x": 999998368000, - "y": 0, - }, - { - "x": 999998380000, - "y": 0, - }, - { - "x": 999998392000, - "y": 0, - }, - { - "x": 999998404000, - "y": 0, - }, - { - "x": 999998416000, - "y": 0, - }, - { - "x": 999998428000, - "y": 0, - }, - { - "x": 999998440000, - "y": 0, - }, - { - "x": 999998452000, - "y": 0, - }, - { - "x": 999998464000, - "y": 0, - }, - { - "x": 999998476000, - "y": 0, - }, - { - "x": 999998488000, - "y": 0, - }, - { - "x": 999998500000, - "y": 0, - }, - { - "x": 999998512000, - "y": 0, - }, - { - "x": 999998524000, - "y": 0, - }, - { - "x": 999998536000, - "y": 0, - }, - { - "x": 999998548000, - "y": 0, - }, - { - "x": 999998560000, - "y": 0, - }, - { - "x": 999998572000, - "y": 0, - }, - { - "x": 999998584000, - "y": 0, - }, - { - "x": 999998596000, - "y": 0, - }, - { - "x": 999998608000, - "y": 0, - }, - { - "x": 999998620000, - "y": 0, - }, - { - "x": 999998632000, - "y": 0, - }, - { - "x": 999998644000, - "y": 0, - }, - { - "x": 999998656000, - "y": 0, - }, - { - "x": 999998668000, - "y": 0, - }, - { - "x": 999998680000, - "y": 0, - }, - { - "x": 999998692000, - "y": 0, - }, - { - "x": 999998704000, - "y": 0, - }, - { - "x": 999998716000, - "y": 0, - }, - { - "x": 999998728000, - "y": 0, - }, - { - "x": 999998740000, - "y": 0, - }, - { - "x": 999998752000, - "y": 0, - }, - { - "x": 999998764000, - "y": 0, - }, - { - "x": 999998776000, - "y": 0, - }, - { - "x": 999998788000, - "y": 0, - }, - { - "x": 999998800000, - "y": 0, - }, - { - "x": 999998812000, - "y": 0, - }, - { - "x": 999998824000, - "y": 0, - }, - { - "x": 999998836000, - "y": 0, - }, - { - "x": 999998848000, - "y": 0, - }, - { - "x": 999998860000, - "y": 0, - }, - { - "x": 999998872000, - "y": 0, - }, - { - "x": 999998884000, - "y": 0, - }, - { - "x": 999998896000, - "y": 0, - }, - { - "x": 999998908000, - "y": 0, - }, - { - "x": 999998920000, - "y": 0, - }, - { - "x": 999998932000, - "y": 0, - }, - { - "x": 999998944000, - "y": 0, - }, - { - "x": 999998956000, - "y": 0, - }, - { - "x": 999998968000, - "y": 0, - }, - { - "x": 999998980000, - "y": 0, - }, - { - "x": 999998992000, - "y": 0, - }, - { - "x": 999999004000, - "y": 0, - }, - { - "x": 999999016000, - "y": 0, - }, - { - "x": 999999028000, - "y": 0, - }, - { - "x": 999999040000, - "y": 0, - }, - { - "x": 999999052000, - "y": 0, - }, - { - "x": 999999064000, - "y": 0, - }, - { - "x": 999999076000, - "y": 0, - }, - { - "x": 999999088000, - "y": 0, - }, - { - "x": 999999100000, - "y": 0, - }, - { - "x": 999999112000, - "y": 0, - }, - { - "x": 999999124000, - "y": 0, - }, - { - "x": 999999136000, - "y": 0, - }, - { - "x": 999999148000, - "y": 0, - }, - { - "x": 999999160000, - "y": 0, - }, - { - "x": 999999172000, - "y": 0, - }, - { - "x": 999999184000, - "y": 0, - }, - { - "x": 999999196000, - "y": 0, - }, - { - "x": 999999208000, - "y": 0, - }, - { - "x": 999999220000, - "y": 0, - }, - { - "x": 999999232000, - "y": 0, - }, - { - "x": 999999244000, - "y": 0, - }, - { - "x": 999999256000, - "y": 0, - }, - { - "x": 999999268000, - "y": 0, - }, - { - "x": 999999280000, - "y": 0, - }, - { - "x": 999999292000, - "y": 0, - }, - { - "x": 999999304000, - "y": 0, - }, - { - "x": 999999316000, - "y": 0, - }, - { - "x": 999999328000, - "y": 0, - }, - { - "x": 999999340000, - "y": 0, - }, - { - "x": 999999352000, - "y": 0, - }, - { - "x": 999999364000, - "y": 0, - }, - { - "x": 999999376000, - "y": 0, - }, - { - "x": 999999388000, - "y": 0, - }, - { - "x": 999999400000, - "y": 0, - }, - { - "x": 999999412000, - "y": 0, - }, - { - "x": 999999424000, - "y": 0, - }, - { - "x": 999999436000, - "y": 0, - }, - { - "x": 999999448000, - "y": 0, - }, - { - "x": 999999460000, - "y": 0, - }, - { - "x": 999999472000, - "y": 0, - }, - { - "x": 999999484000, - "y": 0, - }, - { - "x": 999999496000, - "y": 0, - }, - { - "x": 999999508000, - "y": 0, - }, - { - "x": 999999520000, - "y": 0, - }, - { - "x": 999999532000, - "y": 0, - }, - { - "x": 999999544000, - "y": 0, - }, - { - "x": 999999556000, - "y": 0, - }, - { - "x": 999999568000, - "y": 0, - }, - { - "x": 999999580000, - "y": 0, - }, - { - "x": 999999592000, - "y": 0, - }, - { - "x": 999999604000, - "y": 0, - }, - { - "x": 999999616000, - "y": 0, - }, - { - "x": 999999628000, - "y": 0, - }, - { - "x": 999999640000, - "y": 0, - }, - { - "x": 999999652000, - "y": 0, - }, - { - "x": 999999664000, - "y": 0, - }, - { - "x": 999999676000, - "y": 0, - }, - { - "x": 999999688000, - "y": 0, - }, - { - "x": 999999700000, - "y": 0, - }, - { - "x": 999999712000, - "y": 0, - }, - { - "x": 999999724000, - "y": 0, - }, - { - "x": 999999736000, - "y": 0, - }, - { - "x": 999999748000, - "y": 0, - }, - { - "x": 999999760000, - "y": 0, - }, - { - "x": 999999772000, - "y": 0, - }, - { - "x": 999999784000, - "y": 0, - }, - { - "x": 999999796000, - "y": 0, - }, - { - "x": 999999808000, - "y": 0, - }, - { - "x": 999999820000, - "y": 0, - }, - { - "x": 999999832000, - "y": 0, - }, - { - "x": 999999844000, - "y": 0, - }, - { - "x": 999999856000, - "y": 0, - }, - { - "x": 999999868000, - "y": 0, - }, - { - "x": 999999880000, - "y": 0, - }, - { - "x": 999999892000, - "y": 0, - }, - { - "x": 999999904000, - "y": 0, - }, - { - "x": 999999916000, - "y": 0, - }, - { - "x": 999999928000, - "y": 0, - }, - { - "x": 999999940000, - "y": 0, - }, - { - "x": 999999952000, - "y": 0, - }, - { - "x": 999999964000, - "y": 0, - }, - { - "x": 999999976000, - "y": 1, - }, - { - "x": 999999988000, - "y": 1, - }, - { - "x": 1000000000000, - "y": 1, - }, - ], - "name": "us_east_1a-789012/1", - "type": "line", - }, -] +{ + "us_east_1a-123456/1": [ + { + "x": 999997852000, + "y": 0, + }, + { + "x": 999997864000, + "y": 0, + }, + { + "x": 999997876000, + "y": 0, + }, + { + "x": 999997888000, + "y": 0, + }, + { + "x": 999997900000, + "y": 0, + }, + { + "x": 999997912000, + "y": 0, + }, + { + "x": 999997924000, + "y": 0, + }, + { + "x": 999997936000, + "y": 0, + }, + { + "x": 999997948000, + "y": 0, + }, + { + "x": 999997960000, + "y": 0, + }, + { + "x": 999997972000, + "y": 0, + }, + { + "x": 999997984000, + "y": 0, + }, + { + "x": 999997996000, + "y": 0, + }, + { + "x": 999998008000, + "y": 0, + }, + { + "x": 999998020000, + "y": 0, + }, + { + "x": 999998032000, + "y": 0, + }, + { + "x": 999998044000, + "y": 0, + }, + { + "x": 999998056000, + "y": 0, + }, + { + "x": 999998068000, + "y": 0, + }, + { + "x": 999998080000, + "y": 0, + }, + { + "x": 999998092000, + "y": 0, + }, + { + "x": 999998104000, + "y": 0, + }, + { + "x": 999998116000, + "y": 0, + }, + { + "x": 999998128000, + "y": 0, + }, + { + "x": 999998140000, + "y": 0, + }, + { + "x": 999998152000, + "y": 0, + }, + { + "x": 999998164000, + "y": 0, + }, + { + "x": 999998176000, + "y": 0, + }, + { + "x": 999998188000, + "y": 0, + }, + { + "x": 999998200000, + "y": 0, + }, + { + "x": 999998212000, + "y": 0, + }, + { + "x": 999998224000, + "y": 0, + }, + { + "x": 999998236000, + "y": 0, + }, + { + "x": 999998248000, + "y": 0, + }, + { + "x": 999998260000, + "y": 0, + }, + { + "x": 999998272000, + "y": 0, + }, + { + "x": 999998284000, + "y": 0, + }, + { + "x": 999998296000, + "y": 0, + }, + { + "x": 999998308000, + "y": 0, + }, + { + "x": 999998320000, + "y": 0, + }, + { + "x": 999998332000, + "y": 0, + }, + { + "x": 999998344000, + "y": 0, + }, + { + "x": 999998356000, + "y": 0, + }, + { + "x": 999998368000, + "y": 0, + }, + { + "x": 999998380000, + "y": 0, + }, + { + "x": 999998392000, + "y": 0, + }, + { + "x": 999998404000, + "y": 0, + }, + { + "x": 999998416000, + "y": 0, + }, + { + "x": 999998428000, + "y": 0, + }, + { + "x": 999998440000, + "y": 0, + }, + { + "x": 999998452000, + "y": 0, + }, + { + "x": 999998464000, + "y": 0, + }, + { + "x": 999998476000, + "y": 0, + }, + { + "x": 999998488000, + "y": 0, + }, + { + "x": 999998500000, + "y": 0, + }, + { + "x": 999998512000, + "y": 0, + }, + { + "x": 999998524000, + "y": 0, + }, + { + "x": 999998536000, + "y": 0, + }, + { + "x": 999998548000, + "y": 0, + }, + { + "x": 999998560000, + "y": 0, + }, + { + "x": 999998572000, + "y": 0, + }, + { + "x": 999998584000, + "y": 0, + }, + { + "x": 999998596000, + "y": 0, + }, + { + "x": 999998608000, + "y": 0, + }, + { + "x": 999998620000, + "y": 0, + }, + { + "x": 999998632000, + "y": 0, + }, + { + "x": 999998644000, + "y": 0, + }, + { + "x": 999998656000, + "y": 0, + }, + { + "x": 999998668000, + "y": 0, + }, + { + "x": 999998680000, + "y": 0, + }, + { + "x": 999998692000, + "y": 0, + }, + { + "x": 999998704000, + "y": 0, + }, + { + "x": 999998716000, + "y": 0, + }, + { + "x": 999998728000, + "y": 0, + }, + { + "x": 999998740000, + "y": 0, + }, + { + "x": 999998752000, + "y": 0, + }, + { + "x": 999998764000, + "y": 0, + }, + { + "x": 999998776000, + "y": 0, + }, + { + "x": 999998788000, + "y": 0, + }, + { + "x": 999998800000, + "y": 0, + }, + { + "x": 999998812000, + "y": 0, + }, + { + "x": 999998824000, + "y": 0, + }, + { + "x": 999998836000, + "y": 0, + }, + { + "x": 999998848000, + "y": 0, + }, + { + "x": 999998860000, + "y": 0, + }, + { + "x": 999998872000, + "y": 0, + }, + { + "x": 999998884000, + "y": 0, + }, + { + "x": 999998896000, + "y": 0, + }, + { + "x": 999998908000, + "y": 0, + }, + { + "x": 999998920000, + "y": 0, + }, + { + "x": 999998932000, + "y": 0, + }, + { + "x": 999998944000, + "y": 0, + }, + { + "x": 999998956000, + "y": 0, + }, + { + "x": 999998968000, + "y": 0, + }, + { + "x": 999998980000, + "y": 0, + }, + { + "x": 999998992000, + "y": 0, + }, + { + "x": 999999004000, + "y": 0, + }, + { + "x": 999999016000, + "y": 0, + }, + { + "x": 999999028000, + "y": 0, + }, + { + "x": 999999040000, + "y": 0, + }, + { + "x": 999999052000, + "y": 0, + }, + { + "x": 999999064000, + "y": 0, + }, + { + "x": 999999076000, + "y": 0, + }, + { + "x": 999999088000, + "y": 0, + }, + { + "x": 999999100000, + "y": 0, + }, + { + "x": 999999112000, + "y": 0, + }, + { + "x": 999999124000, + "y": 0, + }, + { + "x": 999999136000, + "y": 0, + }, + { + "x": 999999148000, + "y": 0, + }, + { + "x": 999999160000, + "y": 0, + }, + { + "x": 999999172000, + "y": 0, + }, + { + "x": 999999184000, + "y": 0, + }, + { + "x": 999999196000, + "y": 0, + }, + { + "x": 999999208000, + "y": 0, + }, + { + "x": 999999220000, + "y": 0, + }, + { + "x": 999999232000, + "y": 0, + }, + { + "x": 999999244000, + "y": 0, + }, + { + "x": 999999256000, + "y": 0, + }, + { + "x": 999999268000, + "y": 0, + }, + { + "x": 999999280000, + "y": 0, + }, + { + "x": 999999292000, + "y": 0, + }, + { + "x": 999999304000, + "y": 0, + }, + { + "x": 999999316000, + "y": 0, + }, + { + "x": 999999328000, + "y": 0, + }, + { + "x": 999999340000, + "y": 0, + }, + { + "x": 999999352000, + "y": 0, + }, + { + "x": 999999364000, + "y": 0, + }, + { + "x": 999999376000, + "y": 0, + }, + { + "x": 999999388000, + "y": 0, + }, + { + "x": 999999400000, + "y": 0, + }, + { + "x": 999999412000, + "y": 0, + }, + { + "x": 999999424000, + "y": 0, + }, + { + "x": 999999436000, + "y": 0, + }, + { + "x": 999999448000, + "y": 0, + }, + { + "x": 999999460000, + "y": 0, + }, + { + "x": 999999472000, + "y": 0, + }, + { + "x": 999999484000, + "y": 0, + }, + { + "x": 999999496000, + "y": 0, + }, + { + "x": 999999508000, + "y": 0, + }, + { + "x": 999999520000, + "y": 0, + }, + { + "x": 999999532000, + "y": 0, + }, + { + "x": 999999544000, + "y": 0, + }, + { + "x": 999999556000, + "y": 0, + }, + { + "x": 999999568000, + "y": 0, + }, + { + "x": 999999580000, + "y": 0, + }, + { + "x": 999999592000, + "y": 0, + }, + { + "x": 999999604000, + "y": 0, + }, + { + "x": 999999616000, + "y": 0, + }, + { + "x": 999999628000, + "y": 0, + }, + { + "x": 999999640000, + "y": 0, + }, + { + "x": 999999652000, + "y": 0, + }, + { + "x": 999999664000, + "y": 0, + }, + { + "x": 999999676000, + "y": 0, + }, + { + "x": 999999688000, + "y": 0, + }, + { + "x": 999999700000, + "y": 0, + }, + { + "x": 999999712000, + "y": 0, + }, + { + "x": 999999724000, + "y": 0, + }, + { + "x": 999999736000, + "y": 0, + }, + { + "x": 999999748000, + "y": 0, + }, + { + "x": 999999760000, + "y": 0, + }, + { + "x": 999999772000, + "y": 0, + }, + { + "x": 999999784000, + "y": 0, + }, + { + "x": 999999796000, + "y": 0, + }, + { + "x": 999999808000, + "y": 0, + }, + { + "x": 999999820000, + "y": 0, + }, + { + "x": 999999832000, + "y": 0, + }, + { + "x": 999999844000, + "y": 0, + }, + { + "x": 999999856000, + "y": 0, + }, + { + "x": 999999868000, + "y": 0, + }, + { + "x": 999999880000, + "y": 0, + }, + { + "x": 999999892000, + "y": 0, + }, + { + "x": 999999904000, + "y": 0, + }, + { + "x": 999999916000, + "y": 0, + }, + { + "x": 999999928000, + "y": 0, + }, + { + "x": 999999940000, + "y": 0, + }, + { + "x": 999999952000, + "y": 0, + }, + { + "x": 999999964000, + "y": 0, + }, + { + "x": 999999976000, + "y": 1, + }, + { + "x": 999999988000, + "y": 1, + }, + { + "x": 1000000000000, + "y": 1, + }, + ], + "us_east_1a-123456/2": [ + { + "x": 999997852000, + "y": 0, + }, + { + "x": 999997864000, + "y": 0, + }, + { + "x": 999997876000, + "y": 0, + }, + { + "x": 999997888000, + "y": 0, + }, + { + "x": 999997900000, + "y": 0, + }, + { + "x": 999997912000, + "y": 0, + }, + { + "x": 999997924000, + "y": 0, + }, + { + "x": 999997936000, + "y": 0, + }, + { + "x": 999997948000, + "y": 0, + }, + { + "x": 999997960000, + "y": 0, + }, + { + "x": 999997972000, + "y": 0, + }, + { + "x": 999997984000, + "y": 0, + }, + { + "x": 999997996000, + "y": 0, + }, + { + "x": 999998008000, + "y": 0, + }, + { + "x": 999998020000, + "y": 0, + }, + { + "x": 999998032000, + "y": 0, + }, + { + "x": 999998044000, + "y": 0, + }, + { + "x": 999998056000, + "y": 0, + }, + { + "x": 999998068000, + "y": 0, + }, + { + "x": 999998080000, + "y": 0, + }, + { + "x": 999998092000, + "y": 0, + }, + { + "x": 999998104000, + "y": 0, + }, + { + "x": 999998116000, + "y": 0, + }, + { + "x": 999998128000, + "y": 0, + }, + { + "x": 999998140000, + "y": 0, + }, + { + "x": 999998152000, + "y": 0, + }, + { + "x": 999998164000, + "y": 0, + }, + { + "x": 999998176000, + "y": 0, + }, + { + "x": 999998188000, + "y": 0, + }, + { + "x": 999998200000, + "y": 0, + }, + { + "x": 999998212000, + "y": 0, + }, + { + "x": 999998224000, + "y": 0, + }, + { + "x": 999998236000, + "y": 0, + }, + { + "x": 999998248000, + "y": 0, + }, + { + "x": 999998260000, + "y": 0, + }, + { + "x": 999998272000, + "y": 0, + }, + { + "x": 999998284000, + "y": 0, + }, + { + "x": 999998296000, + "y": 0, + }, + { + "x": 999998308000, + "y": 0, + }, + { + "x": 999998320000, + "y": 0, + }, + { + "x": 999998332000, + "y": 0, + }, + { + "x": 999998344000, + "y": 0, + }, + { + "x": 999998356000, + "y": 0, + }, + { + "x": 999998368000, + "y": 0, + }, + { + "x": 999998380000, + "y": 0, + }, + { + "x": 999998392000, + "y": 0, + }, + { + "x": 999998404000, + "y": 0, + }, + { + "x": 999998416000, + "y": 0, + }, + { + "x": 999998428000, + "y": 0, + }, + { + "x": 999998440000, + "y": 0, + }, + { + "x": 999998452000, + "y": 0, + }, + { + "x": 999998464000, + "y": 0, + }, + { + "x": 999998476000, + "y": 0, + }, + { + "x": 999998488000, + "y": 0, + }, + { + "x": 999998500000, + "y": 0, + }, + { + "x": 999998512000, + "y": 0, + }, + { + "x": 999998524000, + "y": 0, + }, + { + "x": 999998536000, + "y": 0, + }, + { + "x": 999998548000, + "y": 0, + }, + { + "x": 999998560000, + "y": 0, + }, + { + "x": 999998572000, + "y": 0, + }, + { + "x": 999998584000, + "y": 0, + }, + { + "x": 999998596000, + "y": 0, + }, + { + "x": 999998608000, + "y": 0, + }, + { + "x": 999998620000, + "y": 0, + }, + { + "x": 999998632000, + "y": 0, + }, + { + "x": 999998644000, + "y": 0, + }, + { + "x": 999998656000, + "y": 0, + }, + { + "x": 999998668000, + "y": 0, + }, + { + "x": 999998680000, + "y": 0, + }, + { + "x": 999998692000, + "y": 0, + }, + { + "x": 999998704000, + "y": 0, + }, + { + "x": 999998716000, + "y": 0, + }, + { + "x": 999998728000, + "y": 0, + }, + { + "x": 999998740000, + "y": 0, + }, + { + "x": 999998752000, + "y": 0, + }, + { + "x": 999998764000, + "y": 0, + }, + { + "x": 999998776000, + "y": 0, + }, + { + "x": 999998788000, + "y": 0, + }, + { + "x": 999998800000, + "y": 0, + }, + { + "x": 999998812000, + "y": 0, + }, + { + "x": 999998824000, + "y": 0, + }, + { + "x": 999998836000, + "y": 0, + }, + { + "x": 999998848000, + "y": 0, + }, + { + "x": 999998860000, + "y": 0, + }, + { + "x": 999998872000, + "y": 0, + }, + { + "x": 999998884000, + "y": 0, + }, + { + "x": 999998896000, + "y": 0, + }, + { + "x": 999998908000, + "y": 0, + }, + { + "x": 999998920000, + "y": 0, + }, + { + "x": 999998932000, + "y": 0, + }, + { + "x": 999998944000, + "y": 0, + }, + { + "x": 999998956000, + "y": 0, + }, + { + "x": 999998968000, + "y": 0, + }, + { + "x": 999998980000, + "y": 0, + }, + { + "x": 999998992000, + "y": 0, + }, + { + "x": 999999004000, + "y": 0, + }, + { + "x": 999999016000, + "y": 0, + }, + { + "x": 999999028000, + "y": 0, + }, + { + "x": 999999040000, + "y": 0, + }, + { + "x": 999999052000, + "y": 0, + }, + { + "x": 999999064000, + "y": 0, + }, + { + "x": 999999076000, + "y": 0, + }, + { + "x": 999999088000, + "y": 0, + }, + { + "x": 999999100000, + "y": 0, + }, + { + "x": 999999112000, + "y": 0, + }, + { + "x": 999999124000, + "y": 0, + }, + { + "x": 999999136000, + "y": 0, + }, + { + "x": 999999148000, + "y": 0, + }, + { + "x": 999999160000, + "y": 0, + }, + { + "x": 999999172000, + "y": 0, + }, + { + "x": 999999184000, + "y": 0, + }, + { + "x": 999999196000, + "y": 0, + }, + { + "x": 999999208000, + "y": 0, + }, + { + "x": 999999220000, + "y": 0, + }, + { + "x": 999999232000, + "y": 0, + }, + { + "x": 999999244000, + "y": 0, + }, + { + "x": 999999256000, + "y": 0, + }, + { + "x": 999999268000, + "y": 0, + }, + { + "x": 999999280000, + "y": 0, + }, + { + "x": 999999292000, + "y": 0, + }, + { + "x": 999999304000, + "y": 0, + }, + { + "x": 999999316000, + "y": 0, + }, + { + "x": 999999328000, + "y": 0, + }, + { + "x": 999999340000, + "y": 0, + }, + { + "x": 999999352000, + "y": 0, + }, + { + "x": 999999364000, + "y": 0, + }, + { + "x": 999999376000, + "y": 0, + }, + { + "x": 999999388000, + "y": 0, + }, + { + "x": 999999400000, + "y": 0, + }, + { + "x": 999999412000, + "y": 0, + }, + { + "x": 999999424000, + "y": 0, + }, + { + "x": 999999436000, + "y": 0, + }, + { + "x": 999999448000, + "y": 0, + }, + { + "x": 999999460000, + "y": 0, + }, + { + "x": 999999472000, + "y": 0, + }, + { + "x": 999999484000, + "y": 0, + }, + { + "x": 999999496000, + "y": 0, + }, + { + "x": 999999508000, + "y": 0, + }, + { + "x": 999999520000, + "y": 0, + }, + { + "x": 999999532000, + "y": 0, + }, + { + "x": 999999544000, + "y": 0, + }, + { + "x": 999999556000, + "y": 0, + }, + { + "x": 999999568000, + "y": 0, + }, + { + "x": 999999580000, + "y": 0, + }, + { + "x": 999999592000, + "y": 0, + }, + { + "x": 999999604000, + "y": 0, + }, + { + "x": 999999616000, + "y": 0, + }, + { + "x": 999999628000, + "y": 0, + }, + { + "x": 999999640000, + "y": 0, + }, + { + "x": 999999652000, + "y": 0, + }, + { + "x": 999999664000, + "y": 0, + }, + { + "x": 999999676000, + "y": 0, + }, + { + "x": 999999688000, + "y": 0, + }, + { + "x": 999999700000, + "y": 0, + }, + { + "x": 999999712000, + "y": 0, + }, + { + "x": 999999724000, + "y": 0, + }, + { + "x": 999999736000, + "y": 0, + }, + { + "x": 999999748000, + "y": 0, + }, + { + "x": 999999760000, + "y": 0, + }, + { + "x": 999999772000, + "y": 0, + }, + { + "x": 999999784000, + "y": 0, + }, + { + "x": 999999796000, + "y": 0, + }, + { + "x": 999999808000, + "y": 0, + }, + { + "x": 999999820000, + "y": 0, + }, + { + "x": 999999832000, + "y": 0, + }, + { + "x": 999999844000, + "y": 0, + }, + { + "x": 999999856000, + "y": 0, + }, + { + "x": 999999868000, + "y": 0, + }, + { + "x": 999999880000, + "y": 0, + }, + { + "x": 999999892000, + "y": 0, + }, + { + "x": 999999904000, + "y": 0, + }, + { + "x": 999999916000, + "y": 0, + }, + { + "x": 999999928000, + "y": 0, + }, + { + "x": 999999940000, + "y": 0, + }, + { + "x": 999999952000, + "y": 0, + }, + { + "x": 999999964000, + "y": 0, + }, + { + "x": 999999976000, + "y": 2, + }, + { + "x": 999999988000, + "y": 2, + }, + { + "x": 1000000000000, + "y": 2, + }, + ], + "us_east_1a-789012/1": [ + { + "x": 999997852000, + "y": 0, + }, + { + "x": 999997864000, + "y": 0, + }, + { + "x": 999997876000, + "y": 0, + }, + { + "x": 999997888000, + "y": 0, + }, + { + "x": 999997900000, + "y": 0, + }, + { + "x": 999997912000, + "y": 0, + }, + { + "x": 999997924000, + "y": 0, + }, + { + "x": 999997936000, + "y": 0, + }, + { + "x": 999997948000, + "y": 0, + }, + { + "x": 999997960000, + "y": 0, + }, + { + "x": 999997972000, + "y": 0, + }, + { + "x": 999997984000, + "y": 0, + }, + { + "x": 999997996000, + "y": 0, + }, + { + "x": 999998008000, + "y": 0, + }, + { + "x": 999998020000, + "y": 0, + }, + { + "x": 999998032000, + "y": 0, + }, + { + "x": 999998044000, + "y": 0, + }, + { + "x": 999998056000, + "y": 0, + }, + { + "x": 999998068000, + "y": 0, + }, + { + "x": 999998080000, + "y": 0, + }, + { + "x": 999998092000, + "y": 0, + }, + { + "x": 999998104000, + "y": 0, + }, + { + "x": 999998116000, + "y": 0, + }, + { + "x": 999998128000, + "y": 0, + }, + { + "x": 999998140000, + "y": 0, + }, + { + "x": 999998152000, + "y": 0, + }, + { + "x": 999998164000, + "y": 0, + }, + { + "x": 999998176000, + "y": 0, + }, + { + "x": 999998188000, + "y": 0, + }, + { + "x": 999998200000, + "y": 0, + }, + { + "x": 999998212000, + "y": 0, + }, + { + "x": 999998224000, + "y": 0, + }, + { + "x": 999998236000, + "y": 0, + }, + { + "x": 999998248000, + "y": 0, + }, + { + "x": 999998260000, + "y": 0, + }, + { + "x": 999998272000, + "y": 0, + }, + { + "x": 999998284000, + "y": 0, + }, + { + "x": 999998296000, + "y": 0, + }, + { + "x": 999998308000, + "y": 0, + }, + { + "x": 999998320000, + "y": 0, + }, + { + "x": 999998332000, + "y": 0, + }, + { + "x": 999998344000, + "y": 0, + }, + { + "x": 999998356000, + "y": 0, + }, + { + "x": 999998368000, + "y": 0, + }, + { + "x": 999998380000, + "y": 0, + }, + { + "x": 999998392000, + "y": 0, + }, + { + "x": 999998404000, + "y": 0, + }, + { + "x": 999998416000, + "y": 0, + }, + { + "x": 999998428000, + "y": 0, + }, + { + "x": 999998440000, + "y": 0, + }, + { + "x": 999998452000, + "y": 0, + }, + { + "x": 999998464000, + "y": 0, + }, + { + "x": 999998476000, + "y": 0, + }, + { + "x": 999998488000, + "y": 0, + }, + { + "x": 999998500000, + "y": 0, + }, + { + "x": 999998512000, + "y": 0, + }, + { + "x": 999998524000, + "y": 0, + }, + { + "x": 999998536000, + "y": 0, + }, + { + "x": 999998548000, + "y": 0, + }, + { + "x": 999998560000, + "y": 0, + }, + { + "x": 999998572000, + "y": 0, + }, + { + "x": 999998584000, + "y": 0, + }, + { + "x": 999998596000, + "y": 0, + }, + { + "x": 999998608000, + "y": 0, + }, + { + "x": 999998620000, + "y": 0, + }, + { + "x": 999998632000, + "y": 0, + }, + { + "x": 999998644000, + "y": 0, + }, + { + "x": 999998656000, + "y": 0, + }, + { + "x": 999998668000, + "y": 0, + }, + { + "x": 999998680000, + "y": 0, + }, + { + "x": 999998692000, + "y": 0, + }, + { + "x": 999998704000, + "y": 0, + }, + { + "x": 999998716000, + "y": 0, + }, + { + "x": 999998728000, + "y": 0, + }, + { + "x": 999998740000, + "y": 0, + }, + { + "x": 999998752000, + "y": 0, + }, + { + "x": 999998764000, + "y": 0, + }, + { + "x": 999998776000, + "y": 0, + }, + { + "x": 999998788000, + "y": 0, + }, + { + "x": 999998800000, + "y": 0, + }, + { + "x": 999998812000, + "y": 0, + }, + { + "x": 999998824000, + "y": 0, + }, + { + "x": 999998836000, + "y": 0, + }, + { + "x": 999998848000, + "y": 0, + }, + { + "x": 999998860000, + "y": 0, + }, + { + "x": 999998872000, + "y": 0, + }, + { + "x": 999998884000, + "y": 0, + }, + { + "x": 999998896000, + "y": 0, + }, + { + "x": 999998908000, + "y": 0, + }, + { + "x": 999998920000, + "y": 0, + }, + { + "x": 999998932000, + "y": 0, + }, + { + "x": 999998944000, + "y": 0, + }, + { + "x": 999998956000, + "y": 0, + }, + { + "x": 999998968000, + "y": 0, + }, + { + "x": 999998980000, + "y": 0, + }, + { + "x": 999998992000, + "y": 0, + }, + { + "x": 999999004000, + "y": 0, + }, + { + "x": 999999016000, + "y": 0, + }, + { + "x": 999999028000, + "y": 0, + }, + { + "x": 999999040000, + "y": 0, + }, + { + "x": 999999052000, + "y": 0, + }, + { + "x": 999999064000, + "y": 0, + }, + { + "x": 999999076000, + "y": 0, + }, + { + "x": 999999088000, + "y": 0, + }, + { + "x": 999999100000, + "y": 0, + }, + { + "x": 999999112000, + "y": 0, + }, + { + "x": 999999124000, + "y": 0, + }, + { + "x": 999999136000, + "y": 0, + }, + { + "x": 999999148000, + "y": 0, + }, + { + "x": 999999160000, + "y": 0, + }, + { + "x": 999999172000, + "y": 0, + }, + { + "x": 999999184000, + "y": 0, + }, + { + "x": 999999196000, + "y": 0, + }, + { + "x": 999999208000, + "y": 0, + }, + { + "x": 999999220000, + "y": 0, + }, + { + "x": 999999232000, + "y": 0, + }, + { + "x": 999999244000, + "y": 0, + }, + { + "x": 999999256000, + "y": 0, + }, + { + "x": 999999268000, + "y": 0, + }, + { + "x": 999999280000, + "y": 0, + }, + { + "x": 999999292000, + "y": 0, + }, + { + "x": 999999304000, + "y": 0, + }, + { + "x": 999999316000, + "y": 0, + }, + { + "x": 999999328000, + "y": 0, + }, + { + "x": 999999340000, + "y": 0, + }, + { + "x": 999999352000, + "y": 0, + }, + { + "x": 999999364000, + "y": 0, + }, + { + "x": 999999376000, + "y": 0, + }, + { + "x": 999999388000, + "y": 0, + }, + { + "x": 999999400000, + "y": 0, + }, + { + "x": 999999412000, + "y": 0, + }, + { + "x": 999999424000, + "y": 0, + }, + { + "x": 999999436000, + "y": 0, + }, + { + "x": 999999448000, + "y": 0, + }, + { + "x": 999999460000, + "y": 0, + }, + { + "x": 999999472000, + "y": 0, + }, + { + "x": 999999484000, + "y": 0, + }, + { + "x": 999999496000, + "y": 0, + }, + { + "x": 999999508000, + "y": 0, + }, + { + "x": 999999520000, + "y": 0, + }, + { + "x": 999999532000, + "y": 0, + }, + { + "x": 999999544000, + "y": 0, + }, + { + "x": 999999556000, + "y": 0, + }, + { + "x": 999999568000, + "y": 0, + }, + { + "x": 999999580000, + "y": 0, + }, + { + "x": 999999592000, + "y": 0, + }, + { + "x": 999999604000, + "y": 0, + }, + { + "x": 999999616000, + "y": 0, + }, + { + "x": 999999628000, + "y": 0, + }, + { + "x": 999999640000, + "y": 0, + }, + { + "x": 999999652000, + "y": 0, + }, + { + "x": 999999664000, + "y": 0, + }, + { + "x": 999999676000, + "y": 0, + }, + { + "x": 999999688000, + "y": 0, + }, + { + "x": 999999700000, + "y": 0, + }, + { + "x": 999999712000, + "y": 0, + }, + { + "x": 999999724000, + "y": 0, + }, + { + "x": 999999736000, + "y": 0, + }, + { + "x": 999999748000, + "y": 0, + }, + { + "x": 999999760000, + "y": 0, + }, + { + "x": 999999772000, + "y": 0, + }, + { + "x": 999999784000, + "y": 0, + }, + { + "x": 999999796000, + "y": 0, + }, + { + "x": 999999808000, + "y": 0, + }, + { + "x": 999999820000, + "y": 0, + }, + { + "x": 999999832000, + "y": 0, + }, + { + "x": 999999844000, + "y": 0, + }, + { + "x": 999999856000, + "y": 0, + }, + { + "x": 999999868000, + "y": 0, + }, + { + "x": 999999880000, + "y": 0, + }, + { + "x": 999999892000, + "y": 0, + }, + { + "x": 999999904000, + "y": 0, + }, + { + "x": 999999916000, + "y": 0, + }, + { + "x": 999999928000, + "y": 0, + }, + { + "x": 999999940000, + "y": 0, + }, + { + "x": 999999952000, + "y": 0, + }, + { + "x": 999999964000, + "y": 0, + }, + { + "x": 999999976000, + "y": 1, + }, + { + "x": 999999988000, + "y": 1, + }, + { + "x": 1000000000000, + "y": 1, + }, + ], +} `; exports[`WorkflowStreamsLagChart formatSeries should return series for all streams in the workflow 1`] = ` -Array [ - Object { - "data": Array [ - Object { - "x": 999997852000, - "y": 0, - }, - Object { - "x": 999997864000, - "y": 0, - }, - Object { - "x": 999997876000, - "y": 0, - }, - Object { - "x": 999997888000, - "y": 0, - }, - Object { - "x": 999997900000, - "y": 0, - }, - Object { - "x": 999997912000, - "y": 0, - }, - Object { - "x": 999997924000, - "y": 0, - }, - Object { - "x": 999997936000, - "y": 0, - }, - Object { - "x": 999997948000, - "y": 0, - }, - Object { - "x": 999997960000, - "y": 0, - }, - Object { - "x": 999997972000, - "y": 0, - }, - Object { - "x": 999997984000, - "y": 0, - }, - Object { - "x": 999997996000, - "y": 0, - }, - Object { - "x": 999998008000, - "y": 0, - }, - Object { - "x": 999998020000, - "y": 0, - }, - Object { - "x": 999998032000, - "y": 0, - }, - Object { - "x": 999998044000, - "y": 0, - }, - Object { - "x": 999998056000, - "y": 0, - }, - Object { - "x": 999998068000, - "y": 0, - }, - Object { - "x": 999998080000, - "y": 0, - }, - Object { - "x": 999998092000, - "y": 0, - }, - Object { - "x": 999998104000, - "y": 0, - }, - Object { - "x": 999998116000, - "y": 0, - }, - Object { - "x": 999998128000, - "y": 0, - }, - Object { - "x": 999998140000, - "y": 0, - }, - Object { - "x": 999998152000, - "y": 0, - }, - Object { - "x": 999998164000, - "y": 0, - }, - Object { - "x": 999998176000, - "y": 0, - }, - Object { - "x": 999998188000, - "y": 0, - }, - Object { - "x": 999998200000, - "y": 0, - }, - Object { - "x": 999998212000, - "y": 0, - }, - Object { - "x": 999998224000, - "y": 0, - }, - Object { - "x": 999998236000, - "y": 0, - }, - Object { - "x": 999998248000, - "y": 0, - }, - Object { - "x": 999998260000, - "y": 0, - }, - Object { - "x": 999998272000, - "y": 0, - }, - Object { - "x": 999998284000, - "y": 0, - }, - Object { - "x": 999998296000, - "y": 0, - }, - Object { - "x": 999998308000, - "y": 0, - }, - Object { - "x": 999998320000, - "y": 0, - }, - Object { - "x": 999998332000, - "y": 0, - }, - Object { - "x": 999998344000, - "y": 0, - }, - Object { - "x": 999998356000, - "y": 0, - }, - Object { - "x": 999998368000, - "y": 0, - }, - Object { - "x": 999998380000, - "y": 0, - }, - Object { - "x": 999998392000, - "y": 0, - }, - Object { - "x": 999998404000, - "y": 0, - }, - Object { - "x": 999998416000, - "y": 0, - }, - Object { - "x": 999998428000, - "y": 0, - }, - Object { - "x": 999998440000, - "y": 0, - }, - Object { - "x": 999998452000, - "y": 0, - }, - Object { - "x": 999998464000, - "y": 0, - }, - Object { - "x": 999998476000, - "y": 0, - }, - Object { - "x": 999998488000, - "y": 0, - }, - Object { - "x": 999998500000, - "y": 0, - }, - Object { - "x": 999998512000, - "y": 0, - }, - Object { - "x": 999998524000, - "y": 0, - }, - Object { - "x": 999998536000, - "y": 0, - }, - Object { - "x": 999998548000, - "y": 0, - }, - Object { - "x": 999998560000, - "y": 0, - }, - Object { - "x": 999998572000, - "y": 0, - }, - Object { - "x": 999998584000, - "y": 0, - }, - Object { - "x": 999998596000, - "y": 0, - }, - Object { - "x": 999998608000, - "y": 0, - }, - Object { - "x": 999998620000, - "y": 0, - }, - Object { - "x": 999998632000, - "y": 0, - }, - Object { - "x": 999998644000, - "y": 0, - }, - Object { - "x": 999998656000, - "y": 0, - }, - Object { - "x": 999998668000, - "y": 0, - }, - Object { - "x": 999998680000, - "y": 0, - }, - Object { - "x": 999998692000, - "y": 0, - }, - Object { - "x": 999998704000, - "y": 0, - }, - Object { - "x": 999998716000, - "y": 0, - }, - Object { - "x": 999998728000, - "y": 0, - }, - Object { - "x": 999998740000, - "y": 0, - }, - Object { - "x": 999998752000, - "y": 0, - }, - Object { - "x": 999998764000, - "y": 0, - }, - Object { - "x": 999998776000, - "y": 0, - }, - Object { - "x": 999998788000, - "y": 0, - }, - Object { - "x": 999998800000, - "y": 0, - }, - Object { - "x": 999998812000, - "y": 0, - }, - Object { - "x": 999998824000, - "y": 0, - }, - Object { - "x": 999998836000, - "y": 0, - }, - Object { - "x": 999998848000, - "y": 0, - }, - Object { - "x": 999998860000, - "y": 0, - }, - Object { - "x": 999998872000, - "y": 0, - }, - Object { - "x": 999998884000, - "y": 0, - }, - Object { - "x": 999998896000, - "y": 0, - }, - Object { - "x": 999998908000, - "y": 0, - }, - Object { - "x": 999998920000, - "y": 0, - }, - Object { - "x": 999998932000, - "y": 0, - }, - Object { - "x": 999998944000, - "y": 0, - }, - Object { - "x": 999998956000, - "y": 0, - }, - Object { - "x": 999998968000, - "y": 0, - }, - Object { - "x": 999998980000, - "y": 0, - }, - Object { - "x": 999998992000, - "y": 0, - }, - Object { - "x": 999999004000, - "y": 0, - }, - Object { - "x": 999999016000, - "y": 0, - }, - Object { - "x": 999999028000, - "y": 0, - }, - Object { - "x": 999999040000, - "y": 0, - }, - Object { - "x": 999999052000, - "y": 0, - }, - Object { - "x": 999999064000, - "y": 0, - }, - Object { - "x": 999999076000, - "y": 0, - }, - Object { - "x": 999999088000, - "y": 0, - }, - Object { - "x": 999999100000, - "y": 0, - }, - Object { - "x": 999999112000, - "y": 0, - }, - Object { - "x": 999999124000, - "y": 0, - }, - Object { - "x": 999999136000, - "y": 0, - }, - Object { - "x": 999999148000, - "y": 0, - }, - Object { - "x": 999999160000, - "y": 0, - }, - Object { - "x": 999999172000, - "y": 0, - }, - Object { - "x": 999999184000, - "y": 0, - }, - Object { - "x": 999999196000, - "y": 0, - }, - Object { - "x": 999999208000, - "y": 0, - }, - Object { - "x": 999999220000, - "y": 0, - }, - Object { - "x": 999999232000, - "y": 0, - }, - Object { - "x": 999999244000, - "y": 0, - }, - Object { - "x": 999999256000, - "y": 0, - }, - Object { - "x": 999999268000, - "y": 0, - }, - Object { - "x": 999999280000, - "y": 0, - }, - Object { - "x": 999999292000, - "y": 0, - }, - Object { - "x": 999999304000, - "y": 0, - }, - Object { - "x": 999999316000, - "y": 0, - }, - Object { - "x": 999999328000, - "y": 0, - }, - Object { - "x": 999999340000, - "y": 0, - }, - Object { - "x": 999999352000, - "y": 0, - }, - Object { - "x": 999999364000, - "y": 0, - }, - Object { - "x": 999999376000, - "y": 0, - }, - Object { - "x": 999999388000, - "y": 0, - }, - Object { - "x": 999999400000, - "y": 0, - }, - Object { - "x": 999999412000, - "y": 0, - }, - Object { - "x": 999999424000, - "y": 0, - }, - Object { - "x": 999999436000, - "y": 0, - }, - Object { - "x": 999999448000, - "y": 0, - }, - Object { - "x": 999999460000, - "y": 0, - }, - Object { - "x": 999999472000, - "y": 0, - }, - Object { - "x": 999999484000, - "y": 0, - }, - Object { - "x": 999999496000, - "y": 0, - }, - Object { - "x": 999999508000, - "y": 0, - }, - Object { - "x": 999999520000, - "y": 0, - }, - Object { - "x": 999999532000, - "y": 0, - }, - Object { - "x": 999999544000, - "y": 0, - }, - Object { - "x": 999999556000, - "y": 0, - }, - Object { - "x": 999999568000, - "y": 0, - }, - Object { - "x": 999999580000, - "y": 0, - }, - Object { - "x": 999999592000, - "y": 0, - }, - Object { - "x": 999999604000, - "y": 0, - }, - Object { - "x": 999999616000, - "y": 0, - }, - Object { - "x": 999999628000, - "y": 0, - }, - Object { - "x": 999999640000, - "y": 0, - }, - Object { - "x": 999999652000, - "y": 0, - }, - Object { - "x": 999999664000, - "y": 0, - }, - Object { - "x": 999999676000, - "y": 0, - }, - Object { - "x": 999999688000, - "y": 0, - }, - Object { - "x": 999999700000, - "y": 0, - }, - Object { - "x": 999999712000, - "y": 0, - }, - Object { - "x": 999999724000, - "y": 0, - }, - Object { - "x": 999999736000, - "y": 0, - }, - Object { - "x": 999999748000, - "y": 0, - }, - Object { - "x": 999999760000, - "y": 0, - }, - Object { - "x": 999999772000, - "y": 0, - }, - Object { - "x": 999999784000, - "y": 0, - }, - Object { - "x": 999999796000, - "y": 0, - }, - Object { - "x": 999999808000, - "y": 0, - }, - Object { - "x": 999999820000, - "y": 0, - }, - Object { - "x": 999999832000, - "y": 0, - }, - Object { - "x": 999999844000, - "y": 0, - }, - Object { - "x": 999999856000, - "y": 0, - }, - Object { - "x": 999999868000, - "y": 0, - }, - Object { - "x": 999999880000, - "y": 0, - }, - Object { - "x": 999999892000, - "y": 0, - }, - Object { - "x": 999999904000, - "y": 0, - }, - Object { - "x": 999999916000, - "y": 0, - }, - Object { - "x": 999999928000, - "y": 0, - }, - Object { - "x": 999999940000, - "y": 0, - }, - Object { - "x": 999999952000, - "y": 0, - }, - Object { - "x": 999999964000, - "y": 0, - }, - Object { - "x": 999999976000, - "y": 1, - }, - Object { - "x": 999999988000, - "y": 1, - }, - Object { - "x": 1000000000000, - "y": 1, - }, - ], - "name": "us_east_1a-123456/1", - "type": "line", - }, - Object { - "data": Array [ - Object { - "x": 999997852000, - "y": 0, - }, - Object { - "x": 999997864000, - "y": 0, - }, - Object { - "x": 999997876000, - "y": 0, - }, - Object { - "x": 999997888000, - "y": 0, - }, - Object { - "x": 999997900000, - "y": 0, - }, - Object { - "x": 999997912000, - "y": 0, - }, - Object { - "x": 999997924000, - "y": 0, - }, - Object { - "x": 999997936000, - "y": 0, - }, - Object { - "x": 999997948000, - "y": 0, - }, - Object { - "x": 999997960000, - "y": 0, - }, - Object { - "x": 999997972000, - "y": 0, - }, - Object { - "x": 999997984000, - "y": 0, - }, - Object { - "x": 999997996000, - "y": 0, - }, - Object { - "x": 999998008000, - "y": 0, - }, - Object { - "x": 999998020000, - "y": 0, - }, - Object { - "x": 999998032000, - "y": 0, - }, - Object { - "x": 999998044000, - "y": 0, - }, - Object { - "x": 999998056000, - "y": 0, - }, - Object { - "x": 999998068000, - "y": 0, - }, - Object { - "x": 999998080000, - "y": 0, - }, - Object { - "x": 999998092000, - "y": 0, - }, - Object { - "x": 999998104000, - "y": 0, - }, - Object { - "x": 999998116000, - "y": 0, - }, - Object { - "x": 999998128000, - "y": 0, - }, - Object { - "x": 999998140000, - "y": 0, - }, - Object { - "x": 999998152000, - "y": 0, - }, - Object { - "x": 999998164000, - "y": 0, - }, - Object { - "x": 999998176000, - "y": 0, - }, - Object { - "x": 999998188000, - "y": 0, - }, - Object { - "x": 999998200000, - "y": 0, - }, - Object { - "x": 999998212000, - "y": 0, - }, - Object { - "x": 999998224000, - "y": 0, - }, - Object { - "x": 999998236000, - "y": 0, - }, - Object { - "x": 999998248000, - "y": 0, - }, - Object { - "x": 999998260000, - "y": 0, - }, - Object { - "x": 999998272000, - "y": 0, - }, - Object { - "x": 999998284000, - "y": 0, - }, - Object { - "x": 999998296000, - "y": 0, - }, - Object { - "x": 999998308000, - "y": 0, - }, - Object { - "x": 999998320000, - "y": 0, - }, - Object { - "x": 999998332000, - "y": 0, - }, - Object { - "x": 999998344000, - "y": 0, - }, - Object { - "x": 999998356000, - "y": 0, - }, - Object { - "x": 999998368000, - "y": 0, - }, - Object { - "x": 999998380000, - "y": 0, - }, - Object { - "x": 999998392000, - "y": 0, - }, - Object { - "x": 999998404000, - "y": 0, - }, - Object { - "x": 999998416000, - "y": 0, - }, - Object { - "x": 999998428000, - "y": 0, - }, - Object { - "x": 999998440000, - "y": 0, - }, - Object { - "x": 999998452000, - "y": 0, - }, - Object { - "x": 999998464000, - "y": 0, - }, - Object { - "x": 999998476000, - "y": 0, - }, - Object { - "x": 999998488000, - "y": 0, - }, - Object { - "x": 999998500000, - "y": 0, - }, - Object { - "x": 999998512000, - "y": 0, - }, - Object { - "x": 999998524000, - "y": 0, - }, - Object { - "x": 999998536000, - "y": 0, - }, - Object { - "x": 999998548000, - "y": 0, - }, - Object { - "x": 999998560000, - "y": 0, - }, - Object { - "x": 999998572000, - "y": 0, - }, - Object { - "x": 999998584000, - "y": 0, - }, - Object { - "x": 999998596000, - "y": 0, - }, - Object { - "x": 999998608000, - "y": 0, - }, - Object { - "x": 999998620000, - "y": 0, - }, - Object { - "x": 999998632000, - "y": 0, - }, - Object { - "x": 999998644000, - "y": 0, - }, - Object { - "x": 999998656000, - "y": 0, - }, - Object { - "x": 999998668000, - "y": 0, - }, - Object { - "x": 999998680000, - "y": 0, - }, - Object { - "x": 999998692000, - "y": 0, - }, - Object { - "x": 999998704000, - "y": 0, - }, - Object { - "x": 999998716000, - "y": 0, - }, - Object { - "x": 999998728000, - "y": 0, - }, - Object { - "x": 999998740000, - "y": 0, - }, - Object { - "x": 999998752000, - "y": 0, - }, - Object { - "x": 999998764000, - "y": 0, - }, - Object { - "x": 999998776000, - "y": 0, - }, - Object { - "x": 999998788000, - "y": 0, - }, - Object { - "x": 999998800000, - "y": 0, - }, - Object { - "x": 999998812000, - "y": 0, - }, - Object { - "x": 999998824000, - "y": 0, - }, - Object { - "x": 999998836000, - "y": 0, - }, - Object { - "x": 999998848000, - "y": 0, - }, - Object { - "x": 999998860000, - "y": 0, - }, - Object { - "x": 999998872000, - "y": 0, - }, - Object { - "x": 999998884000, - "y": 0, - }, - Object { - "x": 999998896000, - "y": 0, - }, - Object { - "x": 999998908000, - "y": 0, - }, - Object { - "x": 999998920000, - "y": 0, - }, - Object { - "x": 999998932000, - "y": 0, - }, - Object { - "x": 999998944000, - "y": 0, - }, - Object { - "x": 999998956000, - "y": 0, - }, - Object { - "x": 999998968000, - "y": 0, - }, - Object { - "x": 999998980000, - "y": 0, - }, - Object { - "x": 999998992000, - "y": 0, - }, - Object { - "x": 999999004000, - "y": 0, - }, - Object { - "x": 999999016000, - "y": 0, - }, - Object { - "x": 999999028000, - "y": 0, - }, - Object { - "x": 999999040000, - "y": 0, - }, - Object { - "x": 999999052000, - "y": 0, - }, - Object { - "x": 999999064000, - "y": 0, - }, - Object { - "x": 999999076000, - "y": 0, - }, - Object { - "x": 999999088000, - "y": 0, - }, - Object { - "x": 999999100000, - "y": 0, - }, - Object { - "x": 999999112000, - "y": 0, - }, - Object { - "x": 999999124000, - "y": 0, - }, - Object { - "x": 999999136000, - "y": 0, - }, - Object { - "x": 999999148000, - "y": 0, - }, - Object { - "x": 999999160000, - "y": 0, - }, - Object { - "x": 999999172000, - "y": 0, - }, - Object { - "x": 999999184000, - "y": 0, - }, - Object { - "x": 999999196000, - "y": 0, - }, - Object { - "x": 999999208000, - "y": 0, - }, - Object { - "x": 999999220000, - "y": 0, - }, - Object { - "x": 999999232000, - "y": 0, - }, - Object { - "x": 999999244000, - "y": 0, - }, - Object { - "x": 999999256000, - "y": 0, - }, - Object { - "x": 999999268000, - "y": 0, - }, - Object { - "x": 999999280000, - "y": 0, - }, - Object { - "x": 999999292000, - "y": 0, - }, - Object { - "x": 999999304000, - "y": 0, - }, - Object { - "x": 999999316000, - "y": 0, - }, - Object { - "x": 999999328000, - "y": 0, - }, - Object { - "x": 999999340000, - "y": 0, - }, - Object { - "x": 999999352000, - "y": 0, - }, - Object { - "x": 999999364000, - "y": 0, - }, - Object { - "x": 999999376000, - "y": 0, - }, - Object { - "x": 999999388000, - "y": 0, - }, - Object { - "x": 999999400000, - "y": 0, - }, - Object { - "x": 999999412000, - "y": 0, - }, - Object { - "x": 999999424000, - "y": 0, - }, - Object { - "x": 999999436000, - "y": 0, - }, - Object { - "x": 999999448000, - "y": 0, - }, - Object { - "x": 999999460000, - "y": 0, - }, - Object { - "x": 999999472000, - "y": 0, - }, - Object { - "x": 999999484000, - "y": 0, - }, - Object { - "x": 999999496000, - "y": 0, - }, - Object { - "x": 999999508000, - "y": 0, - }, - Object { - "x": 999999520000, - "y": 0, - }, - Object { - "x": 999999532000, - "y": 0, - }, - Object { - "x": 999999544000, - "y": 0, - }, - Object { - "x": 999999556000, - "y": 0, - }, - Object { - "x": 999999568000, - "y": 0, - }, - Object { - "x": 999999580000, - "y": 0, - }, - Object { - "x": 999999592000, - "y": 0, - }, - Object { - "x": 999999604000, - "y": 0, - }, - Object { - "x": 999999616000, - "y": 0, - }, - Object { - "x": 999999628000, - "y": 0, - }, - Object { - "x": 999999640000, - "y": 0, - }, - Object { - "x": 999999652000, - "y": 0, - }, - Object { - "x": 999999664000, - "y": 0, - }, - Object { - "x": 999999676000, - "y": 0, - }, - Object { - "x": 999999688000, - "y": 0, - }, - Object { - "x": 999999700000, - "y": 0, - }, - Object { - "x": 999999712000, - "y": 0, - }, - Object { - "x": 999999724000, - "y": 0, - }, - Object { - "x": 999999736000, - "y": 0, - }, - Object { - "x": 999999748000, - "y": 0, - }, - Object { - "x": 999999760000, - "y": 0, - }, - Object { - "x": 999999772000, - "y": 0, - }, - Object { - "x": 999999784000, - "y": 0, - }, - Object { - "x": 999999796000, - "y": 0, - }, - Object { - "x": 999999808000, - "y": 0, - }, - Object { - "x": 999999820000, - "y": 0, - }, - Object { - "x": 999999832000, - "y": 0, - }, - Object { - "x": 999999844000, - "y": 0, - }, - Object { - "x": 999999856000, - "y": 0, - }, - Object { - "x": 999999868000, - "y": 0, - }, - Object { - "x": 999999880000, - "y": 0, - }, - Object { - "x": 999999892000, - "y": 0, - }, - Object { - "x": 999999904000, - "y": 0, - }, - Object { - "x": 999999916000, - "y": 0, - }, - Object { - "x": 999999928000, - "y": 0, - }, - Object { - "x": 999999940000, - "y": 0, - }, - Object { - "x": 999999952000, - "y": 0, - }, - Object { - "x": 999999964000, - "y": 0, - }, - Object { - "x": 999999976000, - "y": 2, - }, - Object { - "x": 999999988000, - "y": 2, - }, - Object { - "x": 1000000000000, - "y": 2, - }, - ], - "name": "us_east_1a-123456/2", - "type": "line", - }, - Object { - "data": Array [ - Object { - "x": 999997852000, - "y": 0, - }, - Object { - "x": 999997864000, - "y": 0, - }, - Object { - "x": 999997876000, - "y": 0, - }, - Object { - "x": 999997888000, - "y": 0, - }, - Object { - "x": 999997900000, - "y": 0, - }, - Object { - "x": 999997912000, - "y": 0, - }, - Object { - "x": 999997924000, - "y": 0, - }, - Object { - "x": 999997936000, - "y": 0, - }, - Object { - "x": 999997948000, - "y": 0, - }, - Object { - "x": 999997960000, - "y": 0, - }, - Object { - "x": 999997972000, - "y": 0, - }, - Object { - "x": 999997984000, - "y": 0, - }, - Object { - "x": 999997996000, - "y": 0, - }, - Object { - "x": 999998008000, - "y": 0, - }, - Object { - "x": 999998020000, - "y": 0, - }, - Object { - "x": 999998032000, - "y": 0, - }, - Object { - "x": 999998044000, - "y": 0, - }, - Object { - "x": 999998056000, - "y": 0, - }, - Object { - "x": 999998068000, - "y": 0, - }, - Object { - "x": 999998080000, - "y": 0, - }, - Object { - "x": 999998092000, - "y": 0, - }, - Object { - "x": 999998104000, - "y": 0, - }, - Object { - "x": 999998116000, - "y": 0, - }, - Object { - "x": 999998128000, - "y": 0, - }, - Object { - "x": 999998140000, - "y": 0, - }, - Object { - "x": 999998152000, - "y": 0, - }, - Object { - "x": 999998164000, - "y": 0, - }, - Object { - "x": 999998176000, - "y": 0, - }, - Object { - "x": 999998188000, - "y": 0, - }, - Object { - "x": 999998200000, - "y": 0, - }, - Object { - "x": 999998212000, - "y": 0, - }, - Object { - "x": 999998224000, - "y": 0, - }, - Object { - "x": 999998236000, - "y": 0, - }, - Object { - "x": 999998248000, - "y": 0, - }, - Object { - "x": 999998260000, - "y": 0, - }, - Object { - "x": 999998272000, - "y": 0, - }, - Object { - "x": 999998284000, - "y": 0, - }, - Object { - "x": 999998296000, - "y": 0, - }, - Object { - "x": 999998308000, - "y": 0, - }, - Object { - "x": 999998320000, - "y": 0, - }, - Object { - "x": 999998332000, - "y": 0, - }, - Object { - "x": 999998344000, - "y": 0, - }, - Object { - "x": 999998356000, - "y": 0, - }, - Object { - "x": 999998368000, - "y": 0, - }, - Object { - "x": 999998380000, - "y": 0, - }, - Object { - "x": 999998392000, - "y": 0, - }, - Object { - "x": 999998404000, - "y": 0, - }, - Object { - "x": 999998416000, - "y": 0, - }, - Object { - "x": 999998428000, - "y": 0, - }, - Object { - "x": 999998440000, - "y": 0, - }, - Object { - "x": 999998452000, - "y": 0, - }, - Object { - "x": 999998464000, - "y": 0, - }, - Object { - "x": 999998476000, - "y": 0, - }, - Object { - "x": 999998488000, - "y": 0, - }, - Object { - "x": 999998500000, - "y": 0, - }, - Object { - "x": 999998512000, - "y": 0, - }, - Object { - "x": 999998524000, - "y": 0, - }, - Object { - "x": 999998536000, - "y": 0, - }, - Object { - "x": 999998548000, - "y": 0, - }, - Object { - "x": 999998560000, - "y": 0, - }, - Object { - "x": 999998572000, - "y": 0, - }, - Object { - "x": 999998584000, - "y": 0, - }, - Object { - "x": 999998596000, - "y": 0, - }, - Object { - "x": 999998608000, - "y": 0, - }, - Object { - "x": 999998620000, - "y": 0, - }, - Object { - "x": 999998632000, - "y": 0, - }, - Object { - "x": 999998644000, - "y": 0, - }, - Object { - "x": 999998656000, - "y": 0, - }, - Object { - "x": 999998668000, - "y": 0, - }, - Object { - "x": 999998680000, - "y": 0, - }, - Object { - "x": 999998692000, - "y": 0, - }, - Object { - "x": 999998704000, - "y": 0, - }, - Object { - "x": 999998716000, - "y": 0, - }, - Object { - "x": 999998728000, - "y": 0, - }, - Object { - "x": 999998740000, - "y": 0, - }, - Object { - "x": 999998752000, - "y": 0, - }, - Object { - "x": 999998764000, - "y": 0, - }, - Object { - "x": 999998776000, - "y": 0, - }, - Object { - "x": 999998788000, - "y": 0, - }, - Object { - "x": 999998800000, - "y": 0, - }, - Object { - "x": 999998812000, - "y": 0, - }, - Object { - "x": 999998824000, - "y": 0, - }, - Object { - "x": 999998836000, - "y": 0, - }, - Object { - "x": 999998848000, - "y": 0, - }, - Object { - "x": 999998860000, - "y": 0, - }, - Object { - "x": 999998872000, - "y": 0, - }, - Object { - "x": 999998884000, - "y": 0, - }, - Object { - "x": 999998896000, - "y": 0, - }, - Object { - "x": 999998908000, - "y": 0, - }, - Object { - "x": 999998920000, - "y": 0, - }, - Object { - "x": 999998932000, - "y": 0, - }, - Object { - "x": 999998944000, - "y": 0, - }, - Object { - "x": 999998956000, - "y": 0, - }, - Object { - "x": 999998968000, - "y": 0, - }, - Object { - "x": 999998980000, - "y": 0, - }, - Object { - "x": 999998992000, - "y": 0, - }, - Object { - "x": 999999004000, - "y": 0, - }, - Object { - "x": 999999016000, - "y": 0, - }, - Object { - "x": 999999028000, - "y": 0, - }, - Object { - "x": 999999040000, - "y": 0, - }, - Object { - "x": 999999052000, - "y": 0, - }, - Object { - "x": 999999064000, - "y": 0, - }, - Object { - "x": 999999076000, - "y": 0, - }, - Object { - "x": 999999088000, - "y": 0, - }, - Object { - "x": 999999100000, - "y": 0, - }, - Object { - "x": 999999112000, - "y": 0, - }, - Object { - "x": 999999124000, - "y": 0, - }, - Object { - "x": 999999136000, - "y": 0, - }, - Object { - "x": 999999148000, - "y": 0, - }, - Object { - "x": 999999160000, - "y": 0, - }, - Object { - "x": 999999172000, - "y": 0, - }, - Object { - "x": 999999184000, - "y": 0, - }, - Object { - "x": 999999196000, - "y": 0, - }, - Object { - "x": 999999208000, - "y": 0, - }, - Object { - "x": 999999220000, - "y": 0, - }, - Object { - "x": 999999232000, - "y": 0, - }, - Object { - "x": 999999244000, - "y": 0, - }, - Object { - "x": 999999256000, - "y": 0, - }, - Object { - "x": 999999268000, - "y": 0, - }, - Object { - "x": 999999280000, - "y": 0, - }, - Object { - "x": 999999292000, - "y": 0, - }, - Object { - "x": 999999304000, - "y": 0, - }, - Object { - "x": 999999316000, - "y": 0, - }, - Object { - "x": 999999328000, - "y": 0, - }, - Object { - "x": 999999340000, - "y": 0, - }, - Object { - "x": 999999352000, - "y": 0, - }, - Object { - "x": 999999364000, - "y": 0, - }, - Object { - "x": 999999376000, - "y": 0, - }, - Object { - "x": 999999388000, - "y": 0, - }, - Object { - "x": 999999400000, - "y": 0, - }, - Object { - "x": 999999412000, - "y": 0, - }, - Object { - "x": 999999424000, - "y": 0, - }, - Object { - "x": 999999436000, - "y": 0, - }, - Object { - "x": 999999448000, - "y": 0, - }, - Object { - "x": 999999460000, - "y": 0, - }, - Object { - "x": 999999472000, - "y": 0, - }, - Object { - "x": 999999484000, - "y": 0, - }, - Object { - "x": 999999496000, - "y": 0, - }, - Object { - "x": 999999508000, - "y": 0, - }, - Object { - "x": 999999520000, - "y": 0, - }, - Object { - "x": 999999532000, - "y": 0, - }, - Object { - "x": 999999544000, - "y": 0, - }, - Object { - "x": 999999556000, - "y": 0, - }, - Object { - "x": 999999568000, - "y": 0, - }, - Object { - "x": 999999580000, - "y": 0, - }, - Object { - "x": 999999592000, - "y": 0, - }, - Object { - "x": 999999604000, - "y": 0, - }, - Object { - "x": 999999616000, - "y": 0, - }, - Object { - "x": 999999628000, - "y": 0, - }, - Object { - "x": 999999640000, - "y": 0, - }, - Object { - "x": 999999652000, - "y": 0, - }, - Object { - "x": 999999664000, - "y": 0, - }, - Object { - "x": 999999676000, - "y": 0, - }, - Object { - "x": 999999688000, - "y": 0, - }, - Object { - "x": 999999700000, - "y": 0, - }, - Object { - "x": 999999712000, - "y": 0, - }, - Object { - "x": 999999724000, - "y": 0, - }, - Object { - "x": 999999736000, - "y": 0, - }, - Object { - "x": 999999748000, - "y": 0, - }, - Object { - "x": 999999760000, - "y": 0, - }, - Object { - "x": 999999772000, - "y": 0, - }, - Object { - "x": 999999784000, - "y": 0, - }, - Object { - "x": 999999796000, - "y": 0, - }, - Object { - "x": 999999808000, - "y": 0, - }, - Object { - "x": 999999820000, - "y": 0, - }, - Object { - "x": 999999832000, - "y": 0, - }, - Object { - "x": 999999844000, - "y": 0, - }, - Object { - "x": 999999856000, - "y": 0, - }, - Object { - "x": 999999868000, - "y": 0, - }, - Object { - "x": 999999880000, - "y": 0, - }, - Object { - "x": 999999892000, - "y": 0, - }, - Object { - "x": 999999904000, - "y": 0, - }, - Object { - "x": 999999916000, - "y": 0, - }, - Object { - "x": 999999928000, - "y": 0, - }, - Object { - "x": 999999940000, - "y": 0, - }, - Object { - "x": 999999952000, - "y": 0, - }, - Object { - "x": 999999964000, - "y": 0, - }, - Object { - "x": 999999976000, - "y": 1, - }, - Object { - "x": 999999988000, - "y": 1, - }, - Object { - "x": 1000000000000, - "y": 1, - }, - ], - "name": "us_east_1a-789012/1", - "type": "line", - }, -] +Object { + "us_east_1a-123456/1": Array [ + Object { + "x": 999997852000, + "y": 0, + }, + Object { + "x": 999997864000, + "y": 0, + }, + Object { + "x": 999997876000, + "y": 0, + }, + Object { + "x": 999997888000, + "y": 0, + }, + Object { + "x": 999997900000, + "y": 0, + }, + Object { + "x": 999997912000, + "y": 0, + }, + Object { + "x": 999997924000, + "y": 0, + }, + Object { + "x": 999997936000, + "y": 0, + }, + Object { + "x": 999997948000, + "y": 0, + }, + Object { + "x": 999997960000, + "y": 0, + }, + Object { + "x": 999997972000, + "y": 0, + }, + Object { + "x": 999997984000, + "y": 0, + }, + Object { + "x": 999997996000, + "y": 0, + }, + Object { + "x": 999998008000, + "y": 0, + }, + Object { + "x": 999998020000, + "y": 0, + }, + Object { + "x": 999998032000, + "y": 0, + }, + Object { + "x": 999998044000, + "y": 0, + }, + Object { + "x": 999998056000, + "y": 0, + }, + Object { + "x": 999998068000, + "y": 0, + }, + Object { + "x": 999998080000, + "y": 0, + }, + Object { + "x": 999998092000, + "y": 0, + }, + Object { + "x": 999998104000, + "y": 0, + }, + Object { + "x": 999998116000, + "y": 0, + }, + Object { + "x": 999998128000, + "y": 0, + }, + Object { + "x": 999998140000, + "y": 0, + }, + Object { + "x": 999998152000, + "y": 0, + }, + Object { + "x": 999998164000, + "y": 0, + }, + Object { + "x": 999998176000, + "y": 0, + }, + Object { + "x": 999998188000, + "y": 0, + }, + Object { + "x": 999998200000, + "y": 0, + }, + Object { + "x": 999998212000, + "y": 0, + }, + Object { + "x": 999998224000, + "y": 0, + }, + Object { + "x": 999998236000, + "y": 0, + }, + Object { + "x": 999998248000, + "y": 0, + }, + Object { + "x": 999998260000, + "y": 0, + }, + Object { + "x": 999998272000, + "y": 0, + }, + Object { + "x": 999998284000, + "y": 0, + }, + Object { + "x": 999998296000, + "y": 0, + }, + Object { + "x": 999998308000, + "y": 0, + }, + Object { + "x": 999998320000, + "y": 0, + }, + Object { + "x": 999998332000, + "y": 0, + }, + Object { + "x": 999998344000, + "y": 0, + }, + Object { + "x": 999998356000, + "y": 0, + }, + Object { + "x": 999998368000, + "y": 0, + }, + Object { + "x": 999998380000, + "y": 0, + }, + Object { + "x": 999998392000, + "y": 0, + }, + Object { + "x": 999998404000, + "y": 0, + }, + Object { + "x": 999998416000, + "y": 0, + }, + Object { + "x": 999998428000, + "y": 0, + }, + Object { + "x": 999998440000, + "y": 0, + }, + Object { + "x": 999998452000, + "y": 0, + }, + Object { + "x": 999998464000, + "y": 0, + }, + Object { + "x": 999998476000, + "y": 0, + }, + Object { + "x": 999998488000, + "y": 0, + }, + Object { + "x": 999998500000, + "y": 0, + }, + Object { + "x": 999998512000, + "y": 0, + }, + Object { + "x": 999998524000, + "y": 0, + }, + Object { + "x": 999998536000, + "y": 0, + }, + Object { + "x": 999998548000, + "y": 0, + }, + Object { + "x": 999998560000, + "y": 0, + }, + Object { + "x": 999998572000, + "y": 0, + }, + Object { + "x": 999998584000, + "y": 0, + }, + Object { + "x": 999998596000, + "y": 0, + }, + Object { + "x": 999998608000, + "y": 0, + }, + Object { + "x": 999998620000, + "y": 0, + }, + Object { + "x": 999998632000, + "y": 0, + }, + Object { + "x": 999998644000, + "y": 0, + }, + Object { + "x": 999998656000, + "y": 0, + }, + Object { + "x": 999998668000, + "y": 0, + }, + Object { + "x": 999998680000, + "y": 0, + }, + Object { + "x": 999998692000, + "y": 0, + }, + Object { + "x": 999998704000, + "y": 0, + }, + Object { + "x": 999998716000, + "y": 0, + }, + Object { + "x": 999998728000, + "y": 0, + }, + Object { + "x": 999998740000, + "y": 0, + }, + Object { + "x": 999998752000, + "y": 0, + }, + Object { + "x": 999998764000, + "y": 0, + }, + Object { + "x": 999998776000, + "y": 0, + }, + Object { + "x": 999998788000, + "y": 0, + }, + Object { + "x": 999998800000, + "y": 0, + }, + Object { + "x": 999998812000, + "y": 0, + }, + Object { + "x": 999998824000, + "y": 0, + }, + Object { + "x": 999998836000, + "y": 0, + }, + Object { + "x": 999998848000, + "y": 0, + }, + Object { + "x": 999998860000, + "y": 0, + }, + Object { + "x": 999998872000, + "y": 0, + }, + Object { + "x": 999998884000, + "y": 0, + }, + Object { + "x": 999998896000, + "y": 0, + }, + Object { + "x": 999998908000, + "y": 0, + }, + Object { + "x": 999998920000, + "y": 0, + }, + Object { + "x": 999998932000, + "y": 0, + }, + Object { + "x": 999998944000, + "y": 0, + }, + Object { + "x": 999998956000, + "y": 0, + }, + Object { + "x": 999998968000, + "y": 0, + }, + Object { + "x": 999998980000, + "y": 0, + }, + Object { + "x": 999998992000, + "y": 0, + }, + Object { + "x": 999999004000, + "y": 0, + }, + Object { + "x": 999999016000, + "y": 0, + }, + Object { + "x": 999999028000, + "y": 0, + }, + Object { + "x": 999999040000, + "y": 0, + }, + Object { + "x": 999999052000, + "y": 0, + }, + Object { + "x": 999999064000, + "y": 0, + }, + Object { + "x": 999999076000, + "y": 0, + }, + Object { + "x": 999999088000, + "y": 0, + }, + Object { + "x": 999999100000, + "y": 0, + }, + Object { + "x": 999999112000, + "y": 0, + }, + Object { + "x": 999999124000, + "y": 0, + }, + Object { + "x": 999999136000, + "y": 0, + }, + Object { + "x": 999999148000, + "y": 0, + }, + Object { + "x": 999999160000, + "y": 0, + }, + Object { + "x": 999999172000, + "y": 0, + }, + Object { + "x": 999999184000, + "y": 0, + }, + Object { + "x": 999999196000, + "y": 0, + }, + Object { + "x": 999999208000, + "y": 0, + }, + Object { + "x": 999999220000, + "y": 0, + }, + Object { + "x": 999999232000, + "y": 0, + }, + Object { + "x": 999999244000, + "y": 0, + }, + Object { + "x": 999999256000, + "y": 0, + }, + Object { + "x": 999999268000, + "y": 0, + }, + Object { + "x": 999999280000, + "y": 0, + }, + Object { + "x": 999999292000, + "y": 0, + }, + Object { + "x": 999999304000, + "y": 0, + }, + Object { + "x": 999999316000, + "y": 0, + }, + Object { + "x": 999999328000, + "y": 0, + }, + Object { + "x": 999999340000, + "y": 0, + }, + Object { + "x": 999999352000, + "y": 0, + }, + Object { + "x": 999999364000, + "y": 0, + }, + Object { + "x": 999999376000, + "y": 0, + }, + Object { + "x": 999999388000, + "y": 0, + }, + Object { + "x": 999999400000, + "y": 0, + }, + Object { + "x": 999999412000, + "y": 0, + }, + Object { + "x": 999999424000, + "y": 0, + }, + Object { + "x": 999999436000, + "y": 0, + }, + Object { + "x": 999999448000, + "y": 0, + }, + Object { + "x": 999999460000, + "y": 0, + }, + Object { + "x": 999999472000, + "y": 0, + }, + Object { + "x": 999999484000, + "y": 0, + }, + Object { + "x": 999999496000, + "y": 0, + }, + Object { + "x": 999999508000, + "y": 0, + }, + Object { + "x": 999999520000, + "y": 0, + }, + Object { + "x": 999999532000, + "y": 0, + }, + Object { + "x": 999999544000, + "y": 0, + }, + Object { + "x": 999999556000, + "y": 0, + }, + Object { + "x": 999999568000, + "y": 0, + }, + Object { + "x": 999999580000, + "y": 0, + }, + Object { + "x": 999999592000, + "y": 0, + }, + Object { + "x": 999999604000, + "y": 0, + }, + Object { + "x": 999999616000, + "y": 0, + }, + Object { + "x": 999999628000, + "y": 0, + }, + Object { + "x": 999999640000, + "y": 0, + }, + Object { + "x": 999999652000, + "y": 0, + }, + Object { + "x": 999999664000, + "y": 0, + }, + Object { + "x": 999999676000, + "y": 0, + }, + Object { + "x": 999999688000, + "y": 0, + }, + Object { + "x": 999999700000, + "y": 0, + }, + Object { + "x": 999999712000, + "y": 0, + }, + Object { + "x": 999999724000, + "y": 0, + }, + Object { + "x": 999999736000, + "y": 0, + }, + Object { + "x": 999999748000, + "y": 0, + }, + Object { + "x": 999999760000, + "y": 0, + }, + Object { + "x": 999999772000, + "y": 0, + }, + Object { + "x": 999999784000, + "y": 0, + }, + Object { + "x": 999999796000, + "y": 0, + }, + Object { + "x": 999999808000, + "y": 0, + }, + Object { + "x": 999999820000, + "y": 0, + }, + Object { + "x": 999999832000, + "y": 0, + }, + Object { + "x": 999999844000, + "y": 0, + }, + Object { + "x": 999999856000, + "y": 0, + }, + Object { + "x": 999999868000, + "y": 0, + }, + Object { + "x": 999999880000, + "y": 0, + }, + Object { + "x": 999999892000, + "y": 0, + }, + Object { + "x": 999999904000, + "y": 0, + }, + Object { + "x": 999999916000, + "y": 0, + }, + Object { + "x": 999999928000, + "y": 0, + }, + Object { + "x": 999999940000, + "y": 0, + }, + Object { + "x": 999999952000, + "y": 0, + }, + Object { + "x": 999999964000, + "y": 0, + }, + Object { + "x": 999999976000, + "y": 1, + }, + Object { + "x": 999999988000, + "y": 1, + }, + Object { + "x": 1000000000000, + "y": 1, + }, + ], + "us_east_1a-123456/2": Array [ + Object { + "x": 999997852000, + "y": 0, + }, + Object { + "x": 999997864000, + "y": 0, + }, + Object { + "x": 999997876000, + "y": 0, + }, + Object { + "x": 999997888000, + "y": 0, + }, + Object { + "x": 999997900000, + "y": 0, + }, + Object { + "x": 999997912000, + "y": 0, + }, + Object { + "x": 999997924000, + "y": 0, + }, + Object { + "x": 999997936000, + "y": 0, + }, + Object { + "x": 999997948000, + "y": 0, + }, + Object { + "x": 999997960000, + "y": 0, + }, + Object { + "x": 999997972000, + "y": 0, + }, + Object { + "x": 999997984000, + "y": 0, + }, + Object { + "x": 999997996000, + "y": 0, + }, + Object { + "x": 999998008000, + "y": 0, + }, + Object { + "x": 999998020000, + "y": 0, + }, + Object { + "x": 999998032000, + "y": 0, + }, + Object { + "x": 999998044000, + "y": 0, + }, + Object { + "x": 999998056000, + "y": 0, + }, + Object { + "x": 999998068000, + "y": 0, + }, + Object { + "x": 999998080000, + "y": 0, + }, + Object { + "x": 999998092000, + "y": 0, + }, + Object { + "x": 999998104000, + "y": 0, + }, + Object { + "x": 999998116000, + "y": 0, + }, + Object { + "x": 999998128000, + "y": 0, + }, + Object { + "x": 999998140000, + "y": 0, + }, + Object { + "x": 999998152000, + "y": 0, + }, + Object { + "x": 999998164000, + "y": 0, + }, + Object { + "x": 999998176000, + "y": 0, + }, + Object { + "x": 999998188000, + "y": 0, + }, + Object { + "x": 999998200000, + "y": 0, + }, + Object { + "x": 999998212000, + "y": 0, + }, + Object { + "x": 999998224000, + "y": 0, + }, + Object { + "x": 999998236000, + "y": 0, + }, + Object { + "x": 999998248000, + "y": 0, + }, + Object { + "x": 999998260000, + "y": 0, + }, + Object { + "x": 999998272000, + "y": 0, + }, + Object { + "x": 999998284000, + "y": 0, + }, + Object { + "x": 999998296000, + "y": 0, + }, + Object { + "x": 999998308000, + "y": 0, + }, + Object { + "x": 999998320000, + "y": 0, + }, + Object { + "x": 999998332000, + "y": 0, + }, + Object { + "x": 999998344000, + "y": 0, + }, + Object { + "x": 999998356000, + "y": 0, + }, + Object { + "x": 999998368000, + "y": 0, + }, + Object { + "x": 999998380000, + "y": 0, + }, + Object { + "x": 999998392000, + "y": 0, + }, + Object { + "x": 999998404000, + "y": 0, + }, + Object { + "x": 999998416000, + "y": 0, + }, + Object { + "x": 999998428000, + "y": 0, + }, + Object { + "x": 999998440000, + "y": 0, + }, + Object { + "x": 999998452000, + "y": 0, + }, + Object { + "x": 999998464000, + "y": 0, + }, + Object { + "x": 999998476000, + "y": 0, + }, + Object { + "x": 999998488000, + "y": 0, + }, + Object { + "x": 999998500000, + "y": 0, + }, + Object { + "x": 999998512000, + "y": 0, + }, + Object { + "x": 999998524000, + "y": 0, + }, + Object { + "x": 999998536000, + "y": 0, + }, + Object { + "x": 999998548000, + "y": 0, + }, + Object { + "x": 999998560000, + "y": 0, + }, + Object { + "x": 999998572000, + "y": 0, + }, + Object { + "x": 999998584000, + "y": 0, + }, + Object { + "x": 999998596000, + "y": 0, + }, + Object { + "x": 999998608000, + "y": 0, + }, + Object { + "x": 999998620000, + "y": 0, + }, + Object { + "x": 999998632000, + "y": 0, + }, + Object { + "x": 999998644000, + "y": 0, + }, + Object { + "x": 999998656000, + "y": 0, + }, + Object { + "x": 999998668000, + "y": 0, + }, + Object { + "x": 999998680000, + "y": 0, + }, + Object { + "x": 999998692000, + "y": 0, + }, + Object { + "x": 999998704000, + "y": 0, + }, + Object { + "x": 999998716000, + "y": 0, + }, + Object { + "x": 999998728000, + "y": 0, + }, + Object { + "x": 999998740000, + "y": 0, + }, + Object { + "x": 999998752000, + "y": 0, + }, + Object { + "x": 999998764000, + "y": 0, + }, + Object { + "x": 999998776000, + "y": 0, + }, + Object { + "x": 999998788000, + "y": 0, + }, + Object { + "x": 999998800000, + "y": 0, + }, + Object { + "x": 999998812000, + "y": 0, + }, + Object { + "x": 999998824000, + "y": 0, + }, + Object { + "x": 999998836000, + "y": 0, + }, + Object { + "x": 999998848000, + "y": 0, + }, + Object { + "x": 999998860000, + "y": 0, + }, + Object { + "x": 999998872000, + "y": 0, + }, + Object { + "x": 999998884000, + "y": 0, + }, + Object { + "x": 999998896000, + "y": 0, + }, + Object { + "x": 999998908000, + "y": 0, + }, + Object { + "x": 999998920000, + "y": 0, + }, + Object { + "x": 999998932000, + "y": 0, + }, + Object { + "x": 999998944000, + "y": 0, + }, + Object { + "x": 999998956000, + "y": 0, + }, + Object { + "x": 999998968000, + "y": 0, + }, + Object { + "x": 999998980000, + "y": 0, + }, + Object { + "x": 999998992000, + "y": 0, + }, + Object { + "x": 999999004000, + "y": 0, + }, + Object { + "x": 999999016000, + "y": 0, + }, + Object { + "x": 999999028000, + "y": 0, + }, + Object { + "x": 999999040000, + "y": 0, + }, + Object { + "x": 999999052000, + "y": 0, + }, + Object { + "x": 999999064000, + "y": 0, + }, + Object { + "x": 999999076000, + "y": 0, + }, + Object { + "x": 999999088000, + "y": 0, + }, + Object { + "x": 999999100000, + "y": 0, + }, + Object { + "x": 999999112000, + "y": 0, + }, + Object { + "x": 999999124000, + "y": 0, + }, + Object { + "x": 999999136000, + "y": 0, + }, + Object { + "x": 999999148000, + "y": 0, + }, + Object { + "x": 999999160000, + "y": 0, + }, + Object { + "x": 999999172000, + "y": 0, + }, + Object { + "x": 999999184000, + "y": 0, + }, + Object { + "x": 999999196000, + "y": 0, + }, + Object { + "x": 999999208000, + "y": 0, + }, + Object { + "x": 999999220000, + "y": 0, + }, + Object { + "x": 999999232000, + "y": 0, + }, + Object { + "x": 999999244000, + "y": 0, + }, + Object { + "x": 999999256000, + "y": 0, + }, + Object { + "x": 999999268000, + "y": 0, + }, + Object { + "x": 999999280000, + "y": 0, + }, + Object { + "x": 999999292000, + "y": 0, + }, + Object { + "x": 999999304000, + "y": 0, + }, + Object { + "x": 999999316000, + "y": 0, + }, + Object { + "x": 999999328000, + "y": 0, + }, + Object { + "x": 999999340000, + "y": 0, + }, + Object { + "x": 999999352000, + "y": 0, + }, + Object { + "x": 999999364000, + "y": 0, + }, + Object { + "x": 999999376000, + "y": 0, + }, + Object { + "x": 999999388000, + "y": 0, + }, + Object { + "x": 999999400000, + "y": 0, + }, + Object { + "x": 999999412000, + "y": 0, + }, + Object { + "x": 999999424000, + "y": 0, + }, + Object { + "x": 999999436000, + "y": 0, + }, + Object { + "x": 999999448000, + "y": 0, + }, + Object { + "x": 999999460000, + "y": 0, + }, + Object { + "x": 999999472000, + "y": 0, + }, + Object { + "x": 999999484000, + "y": 0, + }, + Object { + "x": 999999496000, + "y": 0, + }, + Object { + "x": 999999508000, + "y": 0, + }, + Object { + "x": 999999520000, + "y": 0, + }, + Object { + "x": 999999532000, + "y": 0, + }, + Object { + "x": 999999544000, + "y": 0, + }, + Object { + "x": 999999556000, + "y": 0, + }, + Object { + "x": 999999568000, + "y": 0, + }, + Object { + "x": 999999580000, + "y": 0, + }, + Object { + "x": 999999592000, + "y": 0, + }, + Object { + "x": 999999604000, + "y": 0, + }, + Object { + "x": 999999616000, + "y": 0, + }, + Object { + "x": 999999628000, + "y": 0, + }, + Object { + "x": 999999640000, + "y": 0, + }, + Object { + "x": 999999652000, + "y": 0, + }, + Object { + "x": 999999664000, + "y": 0, + }, + Object { + "x": 999999676000, + "y": 0, + }, + Object { + "x": 999999688000, + "y": 0, + }, + Object { + "x": 999999700000, + "y": 0, + }, + Object { + "x": 999999712000, + "y": 0, + }, + Object { + "x": 999999724000, + "y": 0, + }, + Object { + "x": 999999736000, + "y": 0, + }, + Object { + "x": 999999748000, + "y": 0, + }, + Object { + "x": 999999760000, + "y": 0, + }, + Object { + "x": 999999772000, + "y": 0, + }, + Object { + "x": 999999784000, + "y": 0, + }, + Object { + "x": 999999796000, + "y": 0, + }, + Object { + "x": 999999808000, + "y": 0, + }, + Object { + "x": 999999820000, + "y": 0, + }, + Object { + "x": 999999832000, + "y": 0, + }, + Object { + "x": 999999844000, + "y": 0, + }, + Object { + "x": 999999856000, + "y": 0, + }, + Object { + "x": 999999868000, + "y": 0, + }, + Object { + "x": 999999880000, + "y": 0, + }, + Object { + "x": 999999892000, + "y": 0, + }, + Object { + "x": 999999904000, + "y": 0, + }, + Object { + "x": 999999916000, + "y": 0, + }, + Object { + "x": 999999928000, + "y": 0, + }, + Object { + "x": 999999940000, + "y": 0, + }, + Object { + "x": 999999952000, + "y": 0, + }, + Object { + "x": 999999964000, + "y": 0, + }, + Object { + "x": 999999976000, + "y": 2, + }, + Object { + "x": 999999988000, + "y": 2, + }, + Object { + "x": 1000000000000, + "y": 2, + }, + ], + "us_east_1a-789012/1": Array [ + Object { + "x": 999997852000, + "y": 0, + }, + Object { + "x": 999997864000, + "y": 0, + }, + Object { + "x": 999997876000, + "y": 0, + }, + Object { + "x": 999997888000, + "y": 0, + }, + Object { + "x": 999997900000, + "y": 0, + }, + Object { + "x": 999997912000, + "y": 0, + }, + Object { + "x": 999997924000, + "y": 0, + }, + Object { + "x": 999997936000, + "y": 0, + }, + Object { + "x": 999997948000, + "y": 0, + }, + Object { + "x": 999997960000, + "y": 0, + }, + Object { + "x": 999997972000, + "y": 0, + }, + Object { + "x": 999997984000, + "y": 0, + }, + Object { + "x": 999997996000, + "y": 0, + }, + Object { + "x": 999998008000, + "y": 0, + }, + Object { + "x": 999998020000, + "y": 0, + }, + Object { + "x": 999998032000, + "y": 0, + }, + Object { + "x": 999998044000, + "y": 0, + }, + Object { + "x": 999998056000, + "y": 0, + }, + Object { + "x": 999998068000, + "y": 0, + }, + Object { + "x": 999998080000, + "y": 0, + }, + Object { + "x": 999998092000, + "y": 0, + }, + Object { + "x": 999998104000, + "y": 0, + }, + Object { + "x": 999998116000, + "y": 0, + }, + Object { + "x": 999998128000, + "y": 0, + }, + Object { + "x": 999998140000, + "y": 0, + }, + Object { + "x": 999998152000, + "y": 0, + }, + Object { + "x": 999998164000, + "y": 0, + }, + Object { + "x": 999998176000, + "y": 0, + }, + Object { + "x": 999998188000, + "y": 0, + }, + Object { + "x": 999998200000, + "y": 0, + }, + Object { + "x": 999998212000, + "y": 0, + }, + Object { + "x": 999998224000, + "y": 0, + }, + Object { + "x": 999998236000, + "y": 0, + }, + Object { + "x": 999998248000, + "y": 0, + }, + Object { + "x": 999998260000, + "y": 0, + }, + Object { + "x": 999998272000, + "y": 0, + }, + Object { + "x": 999998284000, + "y": 0, + }, + Object { + "x": 999998296000, + "y": 0, + }, + Object { + "x": 999998308000, + "y": 0, + }, + Object { + "x": 999998320000, + "y": 0, + }, + Object { + "x": 999998332000, + "y": 0, + }, + Object { + "x": 999998344000, + "y": 0, + }, + Object { + "x": 999998356000, + "y": 0, + }, + Object { + "x": 999998368000, + "y": 0, + }, + Object { + "x": 999998380000, + "y": 0, + }, + Object { + "x": 999998392000, + "y": 0, + }, + Object { + "x": 999998404000, + "y": 0, + }, + Object { + "x": 999998416000, + "y": 0, + }, + Object { + "x": 999998428000, + "y": 0, + }, + Object { + "x": 999998440000, + "y": 0, + }, + Object { + "x": 999998452000, + "y": 0, + }, + Object { + "x": 999998464000, + "y": 0, + }, + Object { + "x": 999998476000, + "y": 0, + }, + Object { + "x": 999998488000, + "y": 0, + }, + Object { + "x": 999998500000, + "y": 0, + }, + Object { + "x": 999998512000, + "y": 0, + }, + Object { + "x": 999998524000, + "y": 0, + }, + Object { + "x": 999998536000, + "y": 0, + }, + Object { + "x": 999998548000, + "y": 0, + }, + Object { + "x": 999998560000, + "y": 0, + }, + Object { + "x": 999998572000, + "y": 0, + }, + Object { + "x": 999998584000, + "y": 0, + }, + Object { + "x": 999998596000, + "y": 0, + }, + Object { + "x": 999998608000, + "y": 0, + }, + Object { + "x": 999998620000, + "y": 0, + }, + Object { + "x": 999998632000, + "y": 0, + }, + Object { + "x": 999998644000, + "y": 0, + }, + Object { + "x": 999998656000, + "y": 0, + }, + Object { + "x": 999998668000, + "y": 0, + }, + Object { + "x": 999998680000, + "y": 0, + }, + Object { + "x": 999998692000, + "y": 0, + }, + Object { + "x": 999998704000, + "y": 0, + }, + Object { + "x": 999998716000, + "y": 0, + }, + Object { + "x": 999998728000, + "y": 0, + }, + Object { + "x": 999998740000, + "y": 0, + }, + Object { + "x": 999998752000, + "y": 0, + }, + Object { + "x": 999998764000, + "y": 0, + }, + Object { + "x": 999998776000, + "y": 0, + }, + Object { + "x": 999998788000, + "y": 0, + }, + Object { + "x": 999998800000, + "y": 0, + }, + Object { + "x": 999998812000, + "y": 0, + }, + Object { + "x": 999998824000, + "y": 0, + }, + Object { + "x": 999998836000, + "y": 0, + }, + Object { + "x": 999998848000, + "y": 0, + }, + Object { + "x": 999998860000, + "y": 0, + }, + Object { + "x": 999998872000, + "y": 0, + }, + Object { + "x": 999998884000, + "y": 0, + }, + Object { + "x": 999998896000, + "y": 0, + }, + Object { + "x": 999998908000, + "y": 0, + }, + Object { + "x": 999998920000, + "y": 0, + }, + Object { + "x": 999998932000, + "y": 0, + }, + Object { + "x": 999998944000, + "y": 0, + }, + Object { + "x": 999998956000, + "y": 0, + }, + Object { + "x": 999998968000, + "y": 0, + }, + Object { + "x": 999998980000, + "y": 0, + }, + Object { + "x": 999998992000, + "y": 0, + }, + Object { + "x": 999999004000, + "y": 0, + }, + Object { + "x": 999999016000, + "y": 0, + }, + Object { + "x": 999999028000, + "y": 0, + }, + Object { + "x": 999999040000, + "y": 0, + }, + Object { + "x": 999999052000, + "y": 0, + }, + Object { + "x": 999999064000, + "y": 0, + }, + Object { + "x": 999999076000, + "y": 0, + }, + Object { + "x": 999999088000, + "y": 0, + }, + Object { + "x": 999999100000, + "y": 0, + }, + Object { + "x": 999999112000, + "y": 0, + }, + Object { + "x": 999999124000, + "y": 0, + }, + Object { + "x": 999999136000, + "y": 0, + }, + Object { + "x": 999999148000, + "y": 0, + }, + Object { + "x": 999999160000, + "y": 0, + }, + Object { + "x": 999999172000, + "y": 0, + }, + Object { + "x": 999999184000, + "y": 0, + }, + Object { + "x": 999999196000, + "y": 0, + }, + Object { + "x": 999999208000, + "y": 0, + }, + Object { + "x": 999999220000, + "y": 0, + }, + Object { + "x": 999999232000, + "y": 0, + }, + Object { + "x": 999999244000, + "y": 0, + }, + Object { + "x": 999999256000, + "y": 0, + }, + Object { + "x": 999999268000, + "y": 0, + }, + Object { + "x": 999999280000, + "y": 0, + }, + Object { + "x": 999999292000, + "y": 0, + }, + Object { + "x": 999999304000, + "y": 0, + }, + Object { + "x": 999999316000, + "y": 0, + }, + Object { + "x": 999999328000, + "y": 0, + }, + Object { + "x": 999999340000, + "y": 0, + }, + Object { + "x": 999999352000, + "y": 0, + }, + Object { + "x": 999999364000, + "y": 0, + }, + Object { + "x": 999999376000, + "y": 0, + }, + Object { + "x": 999999388000, + "y": 0, + }, + Object { + "x": 999999400000, + "y": 0, + }, + Object { + "x": 999999412000, + "y": 0, + }, + Object { + "x": 999999424000, + "y": 0, + }, + Object { + "x": 999999436000, + "y": 0, + }, + Object { + "x": 999999448000, + "y": 0, + }, + Object { + "x": 999999460000, + "y": 0, + }, + Object { + "x": 999999472000, + "y": 0, + }, + Object { + "x": 999999484000, + "y": 0, + }, + Object { + "x": 999999496000, + "y": 0, + }, + Object { + "x": 999999508000, + "y": 0, + }, + Object { + "x": 999999520000, + "y": 0, + }, + Object { + "x": 999999532000, + "y": 0, + }, + Object { + "x": 999999544000, + "y": 0, + }, + Object { + "x": 999999556000, + "y": 0, + }, + Object { + "x": 999999568000, + "y": 0, + }, + Object { + "x": 999999580000, + "y": 0, + }, + Object { + "x": 999999592000, + "y": 0, + }, + Object { + "x": 999999604000, + "y": 0, + }, + Object { + "x": 999999616000, + "y": 0, + }, + Object { + "x": 999999628000, + "y": 0, + }, + Object { + "x": 999999640000, + "y": 0, + }, + Object { + "x": 999999652000, + "y": 0, + }, + Object { + "x": 999999664000, + "y": 0, + }, + Object { + "x": 999999676000, + "y": 0, + }, + Object { + "x": 999999688000, + "y": 0, + }, + Object { + "x": 999999700000, + "y": 0, + }, + Object { + "x": 999999712000, + "y": 0, + }, + Object { + "x": 999999724000, + "y": 0, + }, + Object { + "x": 999999736000, + "y": 0, + }, + Object { + "x": 999999748000, + "y": 0, + }, + Object { + "x": 999999760000, + "y": 0, + }, + Object { + "x": 999999772000, + "y": 0, + }, + Object { + "x": 999999784000, + "y": 0, + }, + Object { + "x": 999999796000, + "y": 0, + }, + Object { + "x": 999999808000, + "y": 0, + }, + Object { + "x": 999999820000, + "y": 0, + }, + Object { + "x": 999999832000, + "y": 0, + }, + Object { + "x": 999999844000, + "y": 0, + }, + Object { + "x": 999999856000, + "y": 0, + }, + Object { + "x": 999999868000, + "y": 0, + }, + Object { + "x": 999999880000, + "y": 0, + }, + Object { + "x": 999999892000, + "y": 0, + }, + Object { + "x": 999999904000, + "y": 0, + }, + Object { + "x": 999999916000, + "y": 0, + }, + Object { + "x": 999999928000, + "y": 0, + }, + Object { + "x": 999999940000, + "y": 0, + }, + Object { + "x": 999999952000, + "y": 0, + }, + Object { + "x": 999999964000, + "y": 0, + }, + Object { + "x": 999999976000, + "y": 1, + }, + Object { + "x": 999999988000, + "y": 1, + }, + Object { + "x": 1000000000000, + "y": 1, + }, + ], +} `; diff --git a/web/vtadmin/src/components/charts/chartOptions.ts b/web/vtadmin/src/components/charts/chartOptions.ts deleted file mode 100644 index a6bcf2a7632..00000000000 --- a/web/vtadmin/src/components/charts/chartOptions.ts +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright 2021 The Vitess Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Highcharts from 'highcharts'; - -export const mergeOptions = ( - o: Highcharts.Options | undefined, - ...opts: (Highcharts.Options | undefined)[] -): Highcharts.Options => { - return Highcharts.merge({}, DEFAULT_OPTIONS, o, ...opts); -}; - -/** - * Default options applicable to all Highcharts charts. - * Individual chart instances can override any/all of these - * default options with `mergeOptions`. - */ -export const DEFAULT_OPTIONS: Highcharts.Options = { - chart: { - animation: false, - // Enable styled mode by default, so we can use our existing CSS variables. - // See https://www.highcharts.com/docs/chart-design-and-style/style-by-css - styledMode: true, - }, - credits: { - enabled: false, - }, - plotOptions: { - series: { - animation: false, - }, - }, - time: { - useUTC: false, - }, - // Using Highcharts' built in `title` property is not recommended. - // In most cases, using a regular heading element like

- // adjacent to the chart is more flexible and consistent, - // since we can't apply layout-type rules like line-height or margin. - title: { - text: undefined, - }, -}; diff --git a/web/vtadmin/src/components/charts/charts.scss b/web/vtadmin/src/components/charts/charts.scss deleted file mode 100644 index 887146965eb..00000000000 --- a/web/vtadmin/src/components/charts/charts.scss +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Copyright 2021 The Vitess Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Note that the $colors definition needs to go before the highcharts.scss import. - * This is the easiest way to override the Highcharts colour palette when using styled mode; - * see https://www.highcharts.com/docs/chart-design-and-style/custom-themes-in-styled-mode - * - * The limitation here is that we can't really toggle Highcharts palettes between - * dark/light/other themes, which is not a huge deal, but worth mentioning in case - * it matters later on. - * - * Gradient generated with the very useful https://colordesigner.io/gradient-generator - */ -$colors: #8187ff #b17ff5 #d676e5 #f26fd1 #ff6bbb #ff6ca3 #ff738c #ff7e75 #ff8c60 #ff9b4e #ffab40; - -/* -* We use Highcharts' "styled mode" to style chart components -* (SVGs under the hood) with CSS. This lets us rely on our -* standard CSS variables for consistent theming. -* -* See https://www.highcharts.com/docs/chart-design-and-style/style-by-css -*/ -@import 'highcharts/css/highcharts.scss'; - -.highcharts-axis-labels { - fill: var(--textColorSecondary); -} - -.highcharts-axis-title { - fill: var(--textColorSecondary); -} - -.highcharts-background { - fill: none; -} - -.highcharts-grid-line { - stroke: var(--backgroundPrimaryHighlight); -} - -.highcharts-legend-item text { - fill: var(--textColorPrimary); -} - -.highcharts-line-series .highcharts-graph { - stroke-width: 1px; - transition: stroke-width 200ms; /* slow out */ -} - -.highcharts-loading-inner { - color: var(--textColorSecondary); - font-family: var(--fontFamilyPrimary); - font-size: theme('fontSize.lg'); - font-weight: 500; -} - -.highcharts-series-hover .highcharts-graph { - transition: stroke-width 50ms ease-in-out; /* quick in */ -} - -.highcharts-line-series.highcharts-series-hover .highcharts-graph { - stroke-width: 2px; -} - -// Matches the root svg element of the chart. Use this to set styles -// that should be inherited by all elements, like font-family or other text styles. -.highcharts-root { - font-family: var(--fontFamilyMonospace); -} - -// Using Highcharts' built in `title` property is not recommended. -// In most cases, using a regular heading element like

-// adjacent to the chart is more flexible and consistent, -// since we can't apply layout-type rules like line-height or margin. -.highcharts-title { - font-family: var(--fontFamilyPrimary); - font-weight: 700; -} - -.highcharts-tooltip { - stroke: none; - - text { - fill: #fff; - } -} - -.highcharts-tooltip-box { - fill: rgba(0, 0, 0, 0.85); - fill-opacity: 0.95; -} - -.highcharts-yaxis-grid .highcharts-grid-line { - stroke-width: 1px; -} - -.highcharts-xaxis-grid .highcharts-grid-line { - stroke-width: 1px; -} diff --git a/web/vtadmin/src/index.tsx b/web/vtadmin/src/index.tsx index 79cd308915d..af839031d40 100644 --- a/web/vtadmin/src/index.tsx +++ b/web/vtadmin/src/index.tsx @@ -18,7 +18,6 @@ import ReactDOM from 'react-dom'; import { QueryClient, QueryClientProvider } from 'react-query'; import './index.css'; -import './components/charts/charts.scss'; import { App } from './components/App'; import * as errorHandler from './errors/errorHandler'; diff --git a/web/vtadmin/src/util/tabletDebugVars.ts b/web/vtadmin/src/util/tabletDebugVars.ts index 1d01ec16bee..dbef7f3d7ac 100644 --- a/web/vtadmin/src/util/tabletDebugVars.ts +++ b/web/vtadmin/src/util/tabletDebugVars.ts @@ -91,7 +91,7 @@ export const formatTimeseriesMap = (rates: { [k: string]: number[] }, endAt?: nu // (a) be empty, or // (b) contain a minimum of two series, one of them named "All". // In the first case, inserting an empty "All" series renders more nicely - // on a Highcharts graph since it will include the axes, etc. So, we add it here. + // on a graph since it will include the axes, etc. So, we add it here. const _rates = !!Object.keys(rates).length ? rates : { All: [] }; const planTypes = Object.keys(_rates);