From 46538df183e4d982a20a856f489b1e649ac92e76 Mon Sep 17 00:00:00 2001 From: Jason Dent Date: Fri, 6 Nov 2026 14:49:25 +0100 Subject: [PATCH] dev: Remove the unused SVG chart and @observablehq/plot from perf-chart --- cspell-dict.txt | 1 - pnpm-lock.yaml | 639 ++----------------- tools/perf-chart/package.json | 5 - tools/perf-chart/src/app.ts | 3 +- tools/perf-chart/src/experimental/plotPng.ts | 1 - tools/perf-chart/src/experimental/plotSvg.ts | 30 - tools/perf-chart/src/options.ts | 5 +- tools/perf-chart/src/perfChart.ts | 12 - tools/perf-chart/tsconfig.json | 2 +- 9 files changed, 44 insertions(+), 654 deletions(-) delete mode 100644 tools/perf-chart/src/experimental/plotSvg.ts diff --git a/cspell-dict.txt b/cspell-dict.txt index 98b8a216fb74..ae1fd2c6288d 100644 --- a/cspell-dict.txt +++ b/cspell-dict.txt @@ -41,7 +41,6 @@ monkeyc mshick mutex noreply -observablehq Openbase pagekit pluginutils diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7042a1189a4..f331fa50f2e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1641,24 +1641,9 @@ importers: specifier: ^2.0.0 version: 2.0.0 devDependencies: - '@observablehq/plot': - specifier: ^0.6.17 - version: 0.6.17 - '@types/d3': - specifier: ^7.4.3 - version: 7.4.3 - '@types/jsdom': - specifier: ^30.0.0 - version: 30.0.0 chart.js: specifier: ^4.6.1 version: 4.6.1 - d3: - specifier: ^7.9.0 - version: 7.9.0 - jsdom: - specifier: ^30.1.3 - version: 30.1.3(@noble/hashes@1.8.0) skia-canvas: specifier: ^4.0.0 version: 4.0.0(debug@4.4.3(supports-color@9.4.0))(supports-color@9.4.0) @@ -4073,10 +4058,6 @@ packages: resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} engines: {node: ^20.17.0 || >=22.9.0} - '@observablehq/plot@0.6.17': - resolution: {integrity: sha512-/qaXP/7mc4MUS0s4cPPFASDRjtsWp85/TbfsciqDgU1HwYixbSbbytNuInD8AcTYC3xaxACgVX06agdfQy9W+g==} - engines: {node: '>=12'} - '@octokit/auth-token@6.0.0': resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} @@ -5077,99 +5058,6 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/d3-array@3.2.2': - resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} - - '@types/d3-axis@3.0.6': - resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} - - '@types/d3-brush@3.0.6': - resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} - - '@types/d3-chord@3.0.6': - resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} - - '@types/d3-color@3.1.3': - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} - - '@types/d3-contour@3.0.6': - resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} - - '@types/d3-delaunay@6.0.4': - resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} - - '@types/d3-dispatch@3.0.7': - resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} - - '@types/d3-drag@3.0.7': - resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} - - '@types/d3-dsv@3.0.7': - resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} - - '@types/d3-ease@3.0.2': - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} - - '@types/d3-fetch@3.0.7': - resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} - - '@types/d3-force@3.0.10': - resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} - - '@types/d3-format@3.0.4': - resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} - - '@types/d3-geo@3.1.1': - resolution: {integrity: sha512-65Emv9fQiQQqphLlRkuQ5ypPsOmWPhtBGCMv61JDPEPMvsx+gzhGf74yw1a78xFKPj6zw4AgQICJoQv0vK9M2w==} - - '@types/d3-hierarchy@3.1.7': - resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} - - '@types/d3-interpolate@3.0.4': - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} - - '@types/d3-path@3.1.1': - resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} - - '@types/d3-polygon@3.0.2': - resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} - - '@types/d3-quadtree@3.0.6': - resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} - - '@types/d3-random@3.0.4': - resolution: {integrity: sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA==} - - '@types/d3-scale-chromatic@3.1.0': - resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} - - '@types/d3-scale@4.0.9': - resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} - - '@types/d3-selection@3.0.12': - resolution: {integrity: sha512-Qe/KWYhEiIIxGs7HrAAjMfShxKldx19SJtr5zu53f3afPsdZNz7HHtdTLXo/kqeiWNXVycI24kSnfzBYkTzpgw==} - - '@types/d3-shape@3.2.0': - resolution: {integrity: sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw==} - - '@types/d3-time-format@4.0.3': - resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} - - '@types/d3-time@3.0.4': - resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} - - '@types/d3-timer@3.0.2': - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - - '@types/d3-transition@3.0.9': - resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} - - '@types/d3-zoom@3.0.9': - resolution: {integrity: sha512-0sE1406XBYJGiqD3AusTl9ZqC//2mIXix51tbom25gDCA8ri4xnSZg28CaSE8Srl6FClqABUKfsn0qghgdepMA==} - - '@types/d3@7.4.3': - resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} - '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} @@ -5191,9 +5079,6 @@ packages: '@types/express@4.17.25': resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} - '@types/geojson@7946.0.16': - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - '@types/hast@3.0.5': resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==} @@ -5224,9 +5109,6 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jsdom@30.0.0': - resolution: {integrity: sha512-uAHGxujGE0cDaKGdK28zgDotFtNA7MKq5DXl8LrfdxdCI8VHcg15oJz+amHTChPNI5JpgEPQWc2xFdrw3em/nQ==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -5314,9 +5196,6 @@ packages: '@types/supports-color@8.1.3': resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==} - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -5925,9 +5804,6 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - binary-search-bounds@2.0.5: - resolution: {integrity: sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==} - body-parser@1.20.9: resolution: {integrity: sha512-FISIQxV5u91Y9gvuFq3q/tA/qTqLJn3AhRcEvyozyhJTh5OBFFtv827AdHU7Rbyct4r+Ba1/99oFa1Y3yuFsdw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -6560,133 +6436,6 @@ packages: csv-stringify@6.9.0: resolution: {integrity: sha512-6b3e29CILFfSQ2nDRuZMRROzQOpPuJ+s8zPB5H7eK5ncXBbFOyVuRLU5Sx/zAUmVri3Ly49GyC8NEme4SVSAbA==} - d3-array@3.2.5: - resolution: {integrity: sha512-Th8qGXoBalmWsstpkuhmBuTsBQIFqYOJtjlBvNVvBfJ8E3uYusBUwUR8HU20U0qKKQkgCvKyR1YjiozWadk5QA==} - engines: {node: '>=12'} - - d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} - - d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} - - d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} - - d3-color@3.1.1: - resolution: {integrity: sha512-lfab8x0Bj0UO7SNsY8dZSbNIA6ipbkE3X0NG9nqjCu6CfCHZseuDnOSJY7hidKrjpP++i1M2qT+FlAdPKYRilA==} - engines: {node: '>=12'} - - d3-contour@4.0.3: - resolution: {integrity: sha512-5DYURc8KwXPOhSUBblU0P9rVcArsSPxPOxsfO0Eud0s28oU0sB2e80aRHRL9AZW3usT8ikFKyIHpHHLNWLdRVA==} - engines: {node: '>=12'} - - d3-delaunay@6.0.5: - resolution: {integrity: sha512-6n1ZJb1+6RYJJfyAmLW4ERKGHRSCK2bNM+hu7Zxc2XLhzFLHWGqltjr3znBS7lZ9Vg3syUxNMnebBZUxpvjqqQ==} - engines: {node: '>=12'} - - d3-dispatch@3.0.2: - resolution: {integrity: sha512-sAzH4Y4nsLo8eSqw5jKiZt+LU2wZmL/qS+OkxQGjhwazB/D7TY34R/QK1eshfGr7cZEKymKZ/Haem7m+lu98Sg==} - engines: {node: '>=12'} - - d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} - - d3-dsv@3.0.2: - resolution: {integrity: sha512-FUnXhX7I4/AXyRCZzwfZTDGSq8PGZ4oR0tiCBqNGOZMsDrQ+6sIWNQnBzcCGhzJKZ6uCvCezTwflUqI209RRiQ==} - engines: {node: '>=12'} - hasBin: true - - d3-ease@3.0.2: - resolution: {integrity: sha512-B5znKqRmKROAN4oHWQ50W/qisVjA9GXh2WMsVKdFVp4DxWmcrOsweqgUOUVsv5th96kwaZlokU6SlV4J3gak1w==} - engines: {node: '>=12'} - - d3-fetch@3.0.2: - resolution: {integrity: sha512-1wGF62bgjMRbF6mqbD+6rRWBL2hwWVYQjFO2UP3Wm1nIAvJZKaQxXM5caVY7athoCa8wIq9lCf7g44lPWFk50g==} - engines: {node: '>=12'} - - d3-force@3.0.1: - resolution: {integrity: sha512-kAaaHLFebBYwgi5cYBXAI8vKrQFMCD2MEswj2QuPKKbdU1wYLc8WXtS7O8F/b6POCIe3gJjY6hkDstHi1yMETQ==} - engines: {node: '>=12'} - - d3-format@3.1.3: - resolution: {integrity: sha512-+F+/49swqmGuQJmSKnVMIDH/QkEFV5li9QRj0xm/KhyAUBv099O5PrvpQFxBp24PYph17Mnvt9mjKQV0ii0nMA==} - engines: {node: '>=12'} - - d3-geo@3.1.2: - resolution: {integrity: sha512-5R8ZgDQorIxmauv7R6gpE/ndz+Z0qAZssigq0aXFdvPHdY41RqtW02jrRUQAL724NdPABYXo1+gQEGBBr7uKNg==} - engines: {node: '>=12'} - - d3-hierarchy@3.1.3: - resolution: {integrity: sha512-GRajN5ZcnEwYFWqqdzhG1qJ3+fDg6WWzk47TJg7ePY7yvYAgRfD2r1mUx+wviBOWuCwamCUzjwMSdato43jbGA==} - engines: {node: '>=12'} - - d3-interpolate@3.0.2: - resolution: {integrity: sha512-IRzGU62DtxhvsnSTWMQIdnoZ6gA+BCWwBon1EJI6SjoN595799b6z/QRBzXfFhE8iupUPp3042yBNo0STPqnzQ==} - engines: {node: '>=12'} - - d3-path@3.1.1: - resolution: {integrity: sha512-jsbgV8zIT38ReB9O7X7gcLndTQRONSqNNd+oGIaTBdUug4r5jFmp0N6RY9R5GWbdUDucn0qoTGyfjapT4tDhcg==} - engines: {node: '>=12'} - - d3-polygon@3.0.2: - resolution: {integrity: sha512-WAUvPudGU1Dn4mDPfb6+JnnbeVEV53hG/BoT+bxts6AkZsOpTEiV1jHYX+2vtwCICNFG9Wxv8QS+eW1zE/Dwfg==} - engines: {node: '>=12'} - - d3-quadtree@3.0.2: - resolution: {integrity: sha512-9Lu9mqJKRbIk0d6mKDjpvPURaPdwHVK5CYbcdd0/4vBgz4ldz/7TIOse3kNERsByGNfld58KEco507AztJWyTQ==} - engines: {node: '>=12'} - - d3-random@3.0.2: - resolution: {integrity: sha512-PxJi9LNV+7mulaYO77nd+oGurXGL1fhedXjHnB3pWLUcqDnQtF4VASoqnQGHgoXLByVdv5QJ/2kfwkGn5HTS8g==} - engines: {node: '>=12'} - - d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} - - d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} - - d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - - d3-shape@3.2.1: - resolution: {integrity: sha512-dm2o+lbKdzg9tY7GEag/dB9hcbodLfwkE/DkvqbELJXaMz0yKzWWhZqhbI7CKubukA7HnRyz0avdtvi7EPxPvw==} - engines: {node: '>=12'} - - d3-time-format@4.1.1: - resolution: {integrity: sha512-22XaqjyCjpqgda20erhsOjGmC3vvYwTNYniKAd45W5UWLDF43moeOuV9qYpRqobIlsnK0UhnKZjUUJm3VgORUA==} - engines: {node: '>=12'} - - d3-time@3.1.1: - resolution: {integrity: sha512-Ze7rjrhMzdeulh0/hjcfFj7XLAHOfowtEMfsoG6DU866HPynQNW7Wfen6hzXcqKTv8XzxvF6Hzr5XD6bMHr2ug==} - engines: {node: '>=12'} - - d3-timer@3.0.2: - resolution: {integrity: sha512-1Il1aliroVSErrv5aulRBxAY+7+DnaoLIWGd1C6SsBTWDeobWiP/V69vwb8vT6abR1kKwaNe1196pmaQ1fK90A==} - engines: {node: '>=12'} - - d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 - - d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - - d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} - data-urls@8.0.0: resolution: {integrity: sha512-JQUCCK+/CAGbGGx618PlFZMXH81Jtj7t73CHv9dd/zVWvxgGT2zLFRjnKb+Ng46GIwcy+f7f88qd4duqllK+WQ==} engines: {node: ^22.14.0 || >=24.0.0} @@ -6783,9 +6532,6 @@ packages: defu@6.1.7: resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} - delaunator@5.1.0: - resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} - depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -7910,10 +7656,6 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - iconv-lite@0.7.3: resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} @@ -8029,17 +7771,10 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - interpret@1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} - interval-tree-1d@1.0.4: - resolution: {integrity: sha512-wY8QJH+6wNI0uh4pDQzMvl+478Qh7Rl4qLmqiluxALlNvl+I+o5x38Pw3/z7mDPTPS1dQalZJXsmbvxx5gclhQ==} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -8328,9 +8063,6 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - isoformat@0.2.1: - resolution: {integrity: sha512-tFLRAygk9NqrRPhJSnNGh7g7oaVWDwR0wKh/GM2LgmPa50Eg4UfyaCO4I8k6EqJHl1/uh2RAD6g06n5ygEnrjQ==} - istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -10328,9 +10060,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - robust-predicates@3.0.3: - resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} - rolldown-plugin-dts@0.28.8: resolution: {integrity: sha512-FVhfqxorCWcc20BVT5eVRfRjzLLl6mgzjcMR4gSBf0K4oQMXT0qoHhhzfXy0L7y83fQy7Ug5ZDNk90xM3/LiCQ==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} @@ -10375,9 +10104,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - safe-array-concat@1.1.4: resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} engines: {node: '>=0.4'} @@ -11208,9 +10934,6 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@8.12.3: - resolution: {integrity: sha512-EXE4ydL3S76dFb27UFjNVZHTyv/TLdATj/KUe29ptdcg6qXL48J2tZ3126E5kICj5jn781OR+XlVH1N6Mz8jbA==} - undici@6.29.1: resolution: {integrity: sha512-EvRlUt/QqAEvXdQeRMYUfwOQsfzpDztykrG2owGEE/rBOBoYv9uF39ZzsNDh4lTFHhTr2XOZjKkYgueD12ZmGA==} engines: {node: '>=18.17'} @@ -11981,6 +11704,7 @@ snapshots: '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2) '@csstools/css-tokenizer': 4.0.2 lru-cache: 11.5.3 + optional: true '@asamuzakjp/dom-selector@10.0.5': dependencies: @@ -11988,6 +11712,7 @@ snapshots: css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 lru-cache: 11.5.3 + optional: true '@babel/code-frame@7.29.7': dependencies: @@ -12750,6 +12475,7 @@ snapshots: '@bramus/specificity@2.4.3': dependencies: css-tree: 3.2.1 + optional: true '@cacheable/memory@2.2.0': dependencies: @@ -13035,7 +12761,8 @@ snapshots: '@csstools/color-helpers@5.1.0': {} - '@csstools/color-helpers@6.1.2': {} + '@csstools/color-helpers@6.1.2': + optional: true '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: @@ -13046,6 +12773,7 @@ snapshots: dependencies: '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2) '@csstools/css-tokenizer': 4.0.2 + optional: true '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: @@ -13060,6 +12788,7 @@ snapshots: '@csstools/css-calc': 3.4.3(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2) '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2) '@csstools/css-tokenizer': 4.0.2 + optional: true '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: @@ -13068,14 +12797,17 @@ snapshots: '@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2)': dependencies: '@csstools/css-tokenizer': 4.0.2 + optional: true '@csstools/css-syntax-patches-for-csstree@1.1.16(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 + optional: true '@csstools/css-tokenizer@3.0.4': {} - '@csstools/css-tokenizer@4.0.2': {} + '@csstools/css-tokenizer@4.0.2': + optional: true '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: @@ -14649,6 +14381,7 @@ snapshots: '@exodus/bytes@1.16.0(@noble/hashes@1.8.0)': optionalDependencies: '@noble/hashes': 1.8.0 + optional: true '@gar/promise-retry@1.0.3': {} @@ -15324,12 +15057,6 @@ snapshots: node-gyp: 12.4.0 proc-log: 6.1.0 - '@observablehq/plot@0.6.17': - dependencies: - d3: 7.9.0 - interval-tree-1d: 1.0.4 - isoformat: 0.2.1 - '@octokit/auth-token@6.0.0': {} '@octokit/core@7.0.8': @@ -16166,123 +15893,6 @@ snapshots: dependencies: '@types/node': 22.20.5 - '@types/d3-array@3.2.2': {} - - '@types/d3-axis@3.0.6': - dependencies: - '@types/d3-selection': 3.0.12 - - '@types/d3-brush@3.0.6': - dependencies: - '@types/d3-selection': 3.0.12 - - '@types/d3-chord@3.0.6': {} - - '@types/d3-color@3.1.3': {} - - '@types/d3-contour@3.0.6': - dependencies: - '@types/d3-array': 3.2.2 - '@types/geojson': 7946.0.16 - - '@types/d3-delaunay@6.0.4': {} - - '@types/d3-dispatch@3.0.7': {} - - '@types/d3-drag@3.0.7': - dependencies: - '@types/d3-selection': 3.0.12 - - '@types/d3-dsv@3.0.7': {} - - '@types/d3-ease@3.0.2': {} - - '@types/d3-fetch@3.0.7': - dependencies: - '@types/d3-dsv': 3.0.7 - - '@types/d3-force@3.0.10': {} - - '@types/d3-format@3.0.4': {} - - '@types/d3-geo@3.1.1': - dependencies: - '@types/geojson': 7946.0.16 - - '@types/d3-hierarchy@3.1.7': {} - - '@types/d3-interpolate@3.0.4': - dependencies: - '@types/d3-color': 3.1.3 - - '@types/d3-path@3.1.1': {} - - '@types/d3-polygon@3.0.2': {} - - '@types/d3-quadtree@3.0.6': {} - - '@types/d3-random@3.0.4': {} - - '@types/d3-scale-chromatic@3.1.0': {} - - '@types/d3-scale@4.0.9': - dependencies: - '@types/d3-time': 3.0.4 - - '@types/d3-selection@3.0.12': {} - - '@types/d3-shape@3.2.0': - dependencies: - '@types/d3-path': 3.1.1 - - '@types/d3-time-format@4.0.3': {} - - '@types/d3-time@3.0.4': {} - - '@types/d3-timer@3.0.2': {} - - '@types/d3-transition@3.0.9': - dependencies: - '@types/d3-selection': 3.0.12 - - '@types/d3-zoom@3.0.9': - dependencies: - '@types/d3-interpolate': 3.0.4 - '@types/d3-selection': 3.0.12 - - '@types/d3@7.4.3': - dependencies: - '@types/d3-array': 3.2.2 - '@types/d3-axis': 3.0.6 - '@types/d3-brush': 3.0.6 - '@types/d3-chord': 3.0.6 - '@types/d3-color': 3.1.3 - '@types/d3-contour': 3.0.6 - '@types/d3-delaunay': 6.0.4 - '@types/d3-dispatch': 3.0.7 - '@types/d3-drag': 3.0.7 - '@types/d3-dsv': 3.0.7 - '@types/d3-ease': 3.0.2 - '@types/d3-fetch': 3.0.7 - '@types/d3-force': 3.0.10 - '@types/d3-format': 3.0.4 - '@types/d3-geo': 3.1.1 - '@types/d3-hierarchy': 3.1.7 - '@types/d3-interpolate': 3.0.4 - '@types/d3-path': 3.1.1 - '@types/d3-polygon': 3.0.2 - '@types/d3-quadtree': 3.0.6 - '@types/d3-random': 3.0.4 - '@types/d3-scale': 4.0.9 - '@types/d3-scale-chromatic': 3.1.0 - '@types/d3-selection': 3.0.12 - '@types/d3-shape': 3.2.0 - '@types/d3-time': 3.0.4 - '@types/d3-time-format': 4.0.3 - '@types/d3-timer': 3.0.2 - '@types/d3-transition': 3.0.9 - '@types/d3-zoom': 3.0.9 - '@types/debug@4.1.13': dependencies: '@types/ms': 2.1.0 @@ -16311,8 +15921,6 @@ snapshots: '@types/qs': 6.15.1 '@types/serve-static': 1.15.10 - '@types/geojson@7946.0.16': {} - '@types/hast@3.0.5': dependencies: '@types/unist': 3.0.3 @@ -16341,13 +15949,6 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jsdom@30.0.0': - dependencies: - '@types/node': 22.20.5 - '@types/tough-cookie': 4.0.5 - parse5: 8.1.0 - undici-types: 8.12.3 - '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -16443,8 +16044,6 @@ snapshots: '@types/supports-color@8.1.3': {} - '@types/tough-cookie@4.0.5': {} - '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} @@ -17197,6 +16796,7 @@ snapshots: bidi-js@1.1.0: dependencies: require-from-string: 2.0.2 + optional: true big.js@5.2.2: {} @@ -17210,8 +16810,6 @@ snapshots: binary-extensions@2.3.0: {} - binary-search-bounds@2.0.5: {} - body-parser@1.20.9(supports-color@9.4.0): dependencies: bytes: 3.1.2 @@ -17883,6 +17481,7 @@ snapshots: dependencies: mdn-data: 2.27.1 source-map-js: 1.2.2 + optional: true css-what@6.2.2: {} @@ -17955,164 +17554,13 @@ snapshots: csv-stringify@6.9.0: {} - d3-array@3.2.5: - dependencies: - internmap: 2.0.3 - - d3-axis@3.0.0: {} - - d3-brush@3.0.0: - dependencies: - d3-dispatch: 3.0.2 - d3-drag: 3.0.0 - d3-interpolate: 3.0.2 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3-chord@3.0.1: - dependencies: - d3-path: 3.1.1 - - d3-color@3.1.1: {} - - d3-contour@4.0.3: - dependencies: - d3-array: 3.2.5 - - d3-delaunay@6.0.5: - dependencies: - delaunator: 5.1.0 - - d3-dispatch@3.0.2: {} - - d3-drag@3.0.0: - dependencies: - d3-dispatch: 3.0.2 - d3-selection: 3.0.0 - - d3-dsv@3.0.2: - dependencies: - commander: 7.2.0 - iconv-lite: 0.6.3 - rw: 1.3.3 - - d3-ease@3.0.2: {} - - d3-fetch@3.0.2: - dependencies: - d3-dsv: 3.0.2 - - d3-force@3.0.1: - dependencies: - d3-dispatch: 3.0.2 - d3-quadtree: 3.0.2 - d3-timer: 3.0.2 - - d3-format@3.1.3: {} - - d3-geo@3.1.2: - dependencies: - d3-array: 3.2.5 - - d3-hierarchy@3.1.3: {} - - d3-interpolate@3.0.2: - dependencies: - d3-color: 3.1.1 - - d3-path@3.1.1: {} - - d3-polygon@3.0.2: {} - - d3-quadtree@3.0.2: {} - - d3-random@3.0.2: {} - - d3-scale-chromatic@3.1.0: - dependencies: - d3-color: 3.1.1 - d3-interpolate: 3.0.2 - - d3-scale@4.0.2: - dependencies: - d3-array: 3.2.5 - d3-format: 3.1.3 - d3-interpolate: 3.0.2 - d3-time: 3.1.1 - d3-time-format: 4.1.1 - - d3-selection@3.0.0: {} - - d3-shape@3.2.1: - dependencies: - d3-path: 3.1.1 - - d3-time-format@4.1.1: - dependencies: - d3-time: 3.1.1 - - d3-time@3.1.1: - dependencies: - d3-array: 3.2.5 - - d3-timer@3.0.2: {} - - d3-transition@3.0.1(d3-selection@3.0.0): - dependencies: - d3-color: 3.1.1 - d3-dispatch: 3.0.2 - d3-ease: 3.0.2 - d3-interpolate: 3.0.2 - d3-selection: 3.0.0 - d3-timer: 3.0.2 - - d3-zoom@3.0.0: - dependencies: - d3-dispatch: 3.0.2 - d3-drag: 3.0.0 - d3-interpolate: 3.0.2 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3@7.9.0: - dependencies: - d3-array: 3.2.5 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.1 - d3-contour: 4.0.3 - d3-delaunay: 6.0.5 - d3-dispatch: 3.0.2 - d3-drag: 3.0.0 - d3-dsv: 3.0.2 - d3-ease: 3.0.2 - d3-fetch: 3.0.2 - d3-force: 3.0.1 - d3-format: 3.1.3 - d3-geo: 3.1.2 - d3-hierarchy: 3.1.3 - d3-interpolate: 3.0.2 - d3-path: 3.1.1 - d3-polygon: 3.0.2 - d3-quadtree: 3.0.2 - d3-random: 3.0.2 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.1.0 - d3-selection: 3.0.0 - d3-shape: 3.2.1 - d3-time: 3.1.1 - d3-time-format: 4.1.1 - d3-timer: 3.0.2 - d3-transition: 3.0.1(d3-selection@3.0.0) - d3-zoom: 3.0.0 - data-urls@8.0.0(@noble/hashes@1.8.0): dependencies: whatwg-mimetype: 5.0.0 whatwg-url: 17.3.0(@noble/hashes@1.8.0) transitivePeerDependencies: - '@noble/hashes' + optional: true data-view-buffer@1.0.2: dependencies: @@ -18158,7 +17606,8 @@ snapshots: optionalDependencies: supports-color: 9.4.0 - decimal.js@10.6.0: {} + decimal.js@10.6.0: + optional: true decode-named-character-reference@1.3.0: dependencies: @@ -18201,10 +17650,6 @@ snapshots: defu@6.1.7: {} - delaunator@5.1.0: - dependencies: - robust-predicates: 3.0.3 - depd@1.1.2: {} depd@2.0.0: {} @@ -19669,6 +19114,7 @@ snapshots: '@exodus/bytes': 1.16.0(@noble/hashes@1.8.0) transitivePeerDependencies: - '@noble/hashes' + optional: true html-entities@2.6.0: {} @@ -19800,10 +19246,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - iconv-lite@0.7.3: dependencies: safer-buffer: 2.1.2 @@ -19897,14 +19339,8 @@ snapshots: hasown: 2.0.4 side-channel: 1.1.1 - internmap@2.0.3: {} - interpret@1.4.0: {} - interval-tree-1d@1.0.4: - dependencies: - binary-search-bounds: 2.0.5 - invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -20058,7 +19494,8 @@ snapshots: dependencies: isobject: 3.0.1 - is-potential-custom-element-name@1.0.1: {} + is-potential-custom-element-name@1.0.1: + optional: true is-regex@1.2.1: dependencies: @@ -20141,8 +19578,6 @@ snapshots: isobject@3.0.1: {} - isoformat@0.2.1: {} - istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -20244,6 +19679,7 @@ snapshots: xml-name-validator: 5.0.0 transitivePeerDependencies: - '@noble/hashes' + optional: true jsesc@3.1.0: {} @@ -20785,7 +20221,8 @@ snapshots: mdn-data@2.0.30: {} - mdn-data@2.27.1: {} + mdn-data@2.27.1: + optional: true mdn-data@2.37.2: {} @@ -22718,8 +22155,6 @@ snapshots: reusify@1.1.0: {} - robust-predicates@3.0.3: {} - rolldown-plugin-dts@0.28.8(oxc-resolver@11.24.2)(rolldown@1.2.16)(typescript@6.0.3): dependencies: dts-resolver: 3.0.0(oxc-resolver@11.24.2) @@ -22801,8 +22236,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - rw@1.3.3: {} - safe-array-concat@1.1.4: dependencies: call-bind: 1.0.9 @@ -22852,6 +22285,7 @@ snapshots: saxes@6.0.0: dependencies: xmlchars: 2.2.0 + optional: true scheduler@0.28.0: {} @@ -23473,11 +22907,13 @@ snapshots: tinyrainbow@3.2.0: {} - tldts-core@7.4.20: {} + tldts-core@7.4.20: + optional: true tldts@7.4.19: dependencies: tldts-core: 7.4.20 + optional: true to-regex-range@5.0.1: dependencies: @@ -23490,10 +22926,12 @@ snapshots: tough-cookie@6.0.2: dependencies: tldts: 7.4.19 + optional: true tr46@7.0.0: dependencies: punycode: 2.3.1 + optional: true tree-dump@1.1.0(tslib@2.9.1): dependencies: @@ -23706,11 +23144,10 @@ snapshots: undici-types@6.21.0: {} - undici-types@8.12.3: {} - undici@6.29.1: {} - undici@8.12.3: {} + undici@8.12.3: + optional: true unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -24016,6 +23453,7 @@ snapshots: w3c-xmlserializer@6.0.0: dependencies: xml-name-validator: 5.0.0 + optional: true walk-up-path@3.0.1: {} @@ -24033,7 +23471,8 @@ snapshots: web-namespaces@2.0.1: {} - webidl-conversions@8.0.1: {} + webidl-conversions@8.0.1: + optional: true webpack-bundle-analyzer@4.10.2: dependencies: @@ -24172,7 +23611,8 @@ snapshots: websocket-extensions@0.1.4: {} - whatwg-mimetype@5.0.0: {} + whatwg-mimetype@5.0.0: + optional: true whatwg-url@17.3.0(@noble/hashes@1.8.0): dependencies: @@ -24181,6 +23621,7 @@ snapshots: webidl-conversions: 8.0.1 transitivePeerDependencies: - '@noble/hashes' + optional: true when-exit@2.1.5: {} @@ -24317,9 +23758,11 @@ snapshots: dependencies: sax: 1.6.1 - xml-name-validator@5.0.0: {} + xml-name-validator@5.0.0: + optional: true - xmlchars@2.2.0: {} + xmlchars@2.2.0: + optional: true xtend@4.0.2: {} diff --git a/tools/perf-chart/package.json b/tools/perf-chart/package.json index 7f99fb3a7a56..21c0b22b5965 100644 --- a/tools/perf-chart/package.json +++ b/tools/perf-chart/package.json @@ -24,12 +24,7 @@ "bin.ts" ], "devDependencies": { - "@observablehq/plot": "^0.6.17", - "@types/d3": "^7.4.3", - "@types/jsdom": "^30.0.0", "chart.js": "^4.6.1", - "d3": "^7.9.0", - "jsdom": "^30.1.3", "skia-canvas": "^4.0.0" }, "dependencies": { diff --git a/tools/perf-chart/src/app.ts b/tools/perf-chart/src/app.ts index 4c42db916c23..d228f4515835 100644 --- a/tools/perf-chart/src/app.ts +++ b/tools/perf-chart/src/app.ts @@ -6,9 +6,8 @@ program .argument('', 'path to perf data file') .description('Generate a min/max chart of the perf data') .option('-o, --output ', 'Path to the output the Markdown file.') - .option('-g, --svg ', 'Path to SVG file to generate.') .option('-p, --png ', 'Path to PNG file to generate.') - .option('-u, --site-url ', 'The url to prefix svg/png path when adding it to the markdown.') + .option('-u, --site-url ', 'The url to prefix png path when adding it to the markdown.') .option('--daily-csv ', 'Path out output the daily csv') .option( '-d, --days ', diff --git a/tools/perf-chart/src/experimental/plotPng.ts b/tools/perf-chart/src/experimental/plotPng.ts index ae7788aeb84e..6c53a1c0af2e 100644 --- a/tools/perf-chart/src/experimental/plotPng.ts +++ b/tools/perf-chart/src/experimental/plotPng.ts @@ -1,4 +1,3 @@ -// import * as Plot from '@observablehq/plot'; import { BarController, BarElement, diff --git a/tools/perf-chart/src/experimental/plotSvg.ts b/tools/perf-chart/src/experimental/plotSvg.ts deleted file mode 100644 index a5b3cb85fc20..000000000000 --- a/tools/perf-chart/src/experimental/plotSvg.ts +++ /dev/null @@ -1,30 +0,0 @@ -// import * as Plot from '@observablehq/plot'; -import * as Plot from '@observablehq/plot'; -import { JSDOM } from 'jsdom'; - -import type { CsvRecordsRO } from '../CsvRecord.ts'; -import { createDailyStats } from '../dailyStats.ts'; -import type { Options } from '../options.ts'; - -const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - -export function plotSvg(records: CsvRecordsRO, _options: Options): string { - const dailyStats = createDailyStats(records); - - const data = dailyStats.map((row) => ({ - date: `${monthNames[row.date.getUTCMonth()]}-${row.date.getUTCDate()}`, - kps: row.kps, - })); - - const plot = Plot.plot({ - document: new JSDOM('').window.document, - marks: [Plot.dot(data, { x: 'date', y: 'kps' })], - }); - - plot.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns', 'http://www.w3.org/2000/svg'); - plot.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink'); - - return plot.outerHTML; -} - -// cspell:dictionaries html diff --git a/tools/perf-chart/src/options.ts b/tools/perf-chart/src/options.ts index 39c5acaefc50..c36c29f1d5e4 100644 --- a/tools/perf-chart/src/options.ts +++ b/tools/perf-chart/src/options.ts @@ -1,14 +1,11 @@ export interface Options { - /** Path to SVG file to generate. */ - svg?: string; - /** Path to PNG file to generate. */ png?: string; /** Path to the output the Markdown file. */ output?: string; - /** The url to prefix svg / png path when adding it to the markdown */ + /** The url to prefix png path when adding it to the markdown */ siteUrl?: string; /** The number of days in the past to plot. */ diff --git a/tools/perf-chart/src/perfChart.ts b/tools/perf-chart/src/perfChart.ts index 1fd27a8a7123..ce9c316fb425 100644 --- a/tools/perf-chart/src/perfChart.ts +++ b/tools/perf-chart/src/perfChart.ts @@ -31,8 +31,6 @@ export async function perfReport(csvFile: string | URL, options: Options): Promi await outputDailyCsv(recordsGraph, options); - await generateSvg(recordsGraph, options); - await generatePng(recordsGraph, options); } @@ -56,16 +54,6 @@ async function outputReport(markdown: string, options: Options): Promise { await outputFile(options.output, markdown + '\n'); } -async function generateSvg(records: CsvRecord[], options: Options): Promise { - if (!options.svg) return; - - // Delay the import until needed - not actively used. - const { plotSvg } = await import('./experimental/plotSvg.ts'); - - const svg = plotSvg(records, options); - await outputFile(options.svg, svg); -} - async function outputDailyCsv(records: CsvRecord[], options: Options): Promise { if (!options.dailyCsv) return; diff --git a/tools/perf-chart/tsconfig.json b/tools/perf-chart/tsconfig.json index edec153c796f..d7f8f32d6d8a 100644 --- a/tools/perf-chart/tsconfig.json +++ b/tools/perf-chart/tsconfig.json @@ -4,7 +4,7 @@ "noEmit": true, "module": "NodeNext", "moduleResolution": "NodeNext", - // `@observablehq/plot` and `skia-canvas` ship type declarations with errors. + // `skia-canvas` ships type declarations with errors. "skipLibCheck": true, "allowImportingTsExtensions": true, "types": ["node"],