diff --git a/index.html b/index.html
index 40a1306fe59..2799b014075 100644
--- a/index.html
+++ b/index.html
@@ -1,32 +1,13 @@
-
+
STL Status Chart
-
-
+
-
+
- More History
- Less History
+ More History
+ Less History
Explanation
This tracks the progress of the microsoft/STL repo.
@@ -54,45 +35,50 @@
Explanation
Right axis:
Left axis:
- ( )
+
Active "old bugs" in our Microsoft-internal database. We're keeping them active while
porting them to GitHub, unless they're discovered to be duplicates or already fixed.
- ( )
+
- Open GitHub bugs. That is, only GitHub issues that have bug labels.
+ Open GitHub bugs. That is, only GitHub issues that have
+ bug labels.
- ( )
- Open GitHub issues. That is, all GitHub issues including bug ,
- documentation , enhancement , performance , throughput , etc.
- and excluding only cxx20 , cxx23 , and LWG to avoid double-counting.
+ Open GitHub issues. That is, all GitHub issues including
+ bug ,
+ performance ,
+ throughput , etc. and excluding only
+ cxx20 ,
+ cxx23 , and
+ LWG to avoid double-counting.
- ( )
+
Skipped/failing tests in the libcxx test suite. There are many reasons for such tests:
STL bugs, test bugs, compiler bugs, missing STL features, missing compiler features, etc.
@@ -116,19 +102,19 @@ Explanation
Left axis:
- ( )
+
The average age of open pull requests, in days.
- ( )
+
The average "waiting time" of open pull requests, in days. This measures how long it's been since a
maintainer submitted a review requesting changes. Any other activity doesn't reset this clock.
Right axis:
- ( )
+
The combined age of open pull requests. The unit is PR-months (like kilowatt-hours);
for example, 5 PRs that were all opened 2 months ago have a combined age of 10 PR-months.
- ( )
+
The combined "waiting time" of open pull requests, in PR-months.
@@ -143,7 +129,7 @@ Explanation
and excludes PRs that were closed without being merged, which are rare.
- ( )
+
Line: How many PRs have been merged over the past month.
This uses a "30 day" sliding window, with some smoothing:
diff --git a/package-lock.json b/package-lock.json
index ea2acc189ab..2f28dac9390 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,9 +16,9 @@
"@types/yargs": "^17.0.10",
"chart.js": "^3.8.0",
"chartjs-adapter-luxon": "^1.1.0",
- "cli-progress": "^3.11.1",
+ "cli-progress": "^3.11.2",
"dotenv": "^16.0.1",
- "esbuild": "^0.14.46",
+ "esbuild": "^0.14.48",
"http-server": "^14.1.1",
"luxon": "^2.4.0",
"typescript": "^4.7.4",
@@ -46,9 +46,9 @@
}
},
"node_modules/@octokit/openapi-types": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.1.0.tgz",
- "integrity": "sha512-kQzJh3ZUv3lDpi6M+uekMRHULvf9DlWoI1XgKN6nPeGDzkSgtkhVq1MMz3bFKQ6H6GbdC3ZqG/a6VzKhIx0VeA=="
+ "version": "12.5.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.5.0.tgz",
+ "integrity": "sha512-VatvE5wtRkJq6hAWGTBZ62WkrdlCiy0G0u27cVOYTfAWVZi7QqTurVcjpsyc5+9hXLPRP5O/DaNEs4TgAp4Mqg=="
},
"node_modules/@octokit/request": {
"version": "5.6.3",
@@ -74,11 +74,11 @@
}
},
"node_modules/@octokit/types": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.35.0.tgz",
- "integrity": "sha512-DhLfdUuv3H37u6jBDfkwamypx3HflHg29b26nbA6iVFYkAlZ5cMEtu/9pQoihGnQE5M7jJFnNo25Rr1UwQNF8Q==",
+ "version": "6.38.1",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.38.1.tgz",
+ "integrity": "sha512-kWMohLCIvnwApRmxRFDOqve7puiNNdtVfgwdDOm6QyJNorWOgKv2/AodCcGqx63o28kF7Dr4/nJCatrwwqhULg==",
"dependencies": {
- "@octokit/openapi-types": "^12.1.0"
+ "@octokit/openapi-types": "^12.5.0"
}
},
"node_modules/@types/cli-progress": {
@@ -195,9 +195,9 @@
}
},
"node_modules/cli-progress": {
- "version": "3.11.1",
- "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.1.tgz",
- "integrity": "sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ==",
+ "version": "3.11.2",
+ "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz",
+ "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==",
"dependencies": {
"string-width": "^4.2.3"
},
@@ -266,9 +266,9 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/esbuild": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.46.tgz",
- "integrity": "sha512-vdm5G1JdZBktva8dwQci/s44VbeBUg8g907xoZx77mqFZ4gU5GlMULNsdGeID+qXCXocsfYSGtE0LvqH3eiNQg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.48.tgz",
+ "integrity": "sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==",
"hasInstallScript": true,
"bin": {
"esbuild": "bin/esbuild"
@@ -277,32 +277,32 @@
"node": ">=12"
},
"optionalDependencies": {
- "esbuild-android-64": "0.14.46",
- "esbuild-android-arm64": "0.14.46",
- "esbuild-darwin-64": "0.14.46",
- "esbuild-darwin-arm64": "0.14.46",
- "esbuild-freebsd-64": "0.14.46",
- "esbuild-freebsd-arm64": "0.14.46",
- "esbuild-linux-32": "0.14.46",
- "esbuild-linux-64": "0.14.46",
- "esbuild-linux-arm": "0.14.46",
- "esbuild-linux-arm64": "0.14.46",
- "esbuild-linux-mips64le": "0.14.46",
- "esbuild-linux-ppc64le": "0.14.46",
- "esbuild-linux-riscv64": "0.14.46",
- "esbuild-linux-s390x": "0.14.46",
- "esbuild-netbsd-64": "0.14.46",
- "esbuild-openbsd-64": "0.14.46",
- "esbuild-sunos-64": "0.14.46",
- "esbuild-windows-32": "0.14.46",
- "esbuild-windows-64": "0.14.46",
- "esbuild-windows-arm64": "0.14.46"
+ "esbuild-android-64": "0.14.48",
+ "esbuild-android-arm64": "0.14.48",
+ "esbuild-darwin-64": "0.14.48",
+ "esbuild-darwin-arm64": "0.14.48",
+ "esbuild-freebsd-64": "0.14.48",
+ "esbuild-freebsd-arm64": "0.14.48",
+ "esbuild-linux-32": "0.14.48",
+ "esbuild-linux-64": "0.14.48",
+ "esbuild-linux-arm": "0.14.48",
+ "esbuild-linux-arm64": "0.14.48",
+ "esbuild-linux-mips64le": "0.14.48",
+ "esbuild-linux-ppc64le": "0.14.48",
+ "esbuild-linux-riscv64": "0.14.48",
+ "esbuild-linux-s390x": "0.14.48",
+ "esbuild-netbsd-64": "0.14.48",
+ "esbuild-openbsd-64": "0.14.48",
+ "esbuild-sunos-64": "0.14.48",
+ "esbuild-windows-32": "0.14.48",
+ "esbuild-windows-64": "0.14.48",
+ "esbuild-windows-arm64": "0.14.48"
}
},
"node_modules/esbuild-android-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.46.tgz",
- "integrity": "sha512-ZyJqwAcjNbZprs0ZAxnUAOhEhdE5kTKwz+CZuLmZYNLAPyRgBtaC8pT2PCuPifNvV8Cl3yLlrQPaOCjovoyb5g==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.48.tgz",
+ "integrity": "sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==",
"cpu": [
"x64"
],
@@ -315,9 +315,9 @@
}
},
"node_modules/esbuild-android-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.46.tgz",
- "integrity": "sha512-BKcnUksvCijO9ONv6b4SikZE/OZftwJvX91XROODZGQmuwGVg97jmLDVu3lxuHdFlMNNzxh8taJ2mbCWZzH/Iw==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.48.tgz",
+ "integrity": "sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==",
"cpu": [
"arm64"
],
@@ -330,9 +330,9 @@
}
},
"node_modules/esbuild-darwin-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.46.tgz",
- "integrity": "sha512-/ss2kO92sUJ9/1nHnMb3+oab8w6dyqKrMtPMvSYJ9KZIYGAZxz/WYxfFprY7Xk+ZxWnnlASSyZlG+If1nVmFYg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.48.tgz",
+ "integrity": "sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==",
"cpu": [
"x64"
],
@@ -345,9 +345,9 @@
}
},
"node_modules/esbuild-darwin-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.46.tgz",
- "integrity": "sha512-WX0JOaEFf6t+rIjXO6THsf/0fhQAt2Zb0/PSYlvXnuQQAmOmFAfPsuRNocp5ME0NGaUqZd4FxqqmLEVK3RzPAg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.48.tgz",
+ "integrity": "sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==",
"cpu": [
"arm64"
],
@@ -360,9 +360,9 @@
}
},
"node_modules/esbuild-freebsd-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.46.tgz",
- "integrity": "sha512-o+ozPFuHRCAGCVWU2bLurOUgVkT0jcPEu082VBUY2Q/yLf+B+/3nXzh4Fjp5O21tOvJRTn7hUVydG9j5+vYE6A==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.48.tgz",
+ "integrity": "sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==",
"cpu": [
"x64"
],
@@ -375,9 +375,9 @@
}
},
"node_modules/esbuild-freebsd-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.46.tgz",
- "integrity": "sha512-9zicZ0X43WDKz3sjNfcqYO38xbfJpSWYXB+FxvYYkmBwGA52K0SAu4oKuTTLi8od8X2IIo1x5C5TUNvKDSVJww==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.48.tgz",
+ "integrity": "sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==",
"cpu": [
"arm64"
],
@@ -390,9 +390,9 @@
}
},
"node_modules/esbuild-linux-32": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.46.tgz",
- "integrity": "sha512-ZnTpZMVb0VGvL99R5eh4OrJwbUyvpM6M88VAMuHP4LvFjuvZrhgefjKqEGuWZZW7JRnAjKqjXLjWdhdSjwMFnQ==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.48.tgz",
+ "integrity": "sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==",
"cpu": [
"ia32"
],
@@ -405,9 +405,9 @@
}
},
"node_modules/esbuild-linux-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.46.tgz",
- "integrity": "sha512-ECCRRZtX6l4ubeVhHhiVoK/uYAkvzNqfmR4gP4N/9H9RPu+b8YCcN4bQGp7xCuYIV6Xd41WpOMyO+xpcQvjtQQ==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.48.tgz",
+ "integrity": "sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==",
"cpu": [
"x64"
],
@@ -420,9 +420,9 @@
}
},
"node_modules/esbuild-linux-arm": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.46.tgz",
- "integrity": "sha512-RvTJEi4vj13c5FP9YPp+8Y6x6HK1E7uSqfy3y9UoeaNAzNZWA7fN1U3hQjTL/dy5zTJH5KE64mrt5k5+he+CQA==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.48.tgz",
+ "integrity": "sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==",
"cpu": [
"arm"
],
@@ -435,9 +435,9 @@
}
},
"node_modules/esbuild-linux-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.46.tgz",
- "integrity": "sha512-HX0TXCHyI0NEWG4jg8LlW1PbZQbnz+PUH56yjx996cgM5pC90u32drKs/tyJiyyQmNk9OXOogjKw7LEdp/Qc1w==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.48.tgz",
+ "integrity": "sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==",
"cpu": [
"arm64"
],
@@ -450,9 +450,9 @@
}
},
"node_modules/esbuild-linux-mips64le": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.46.tgz",
- "integrity": "sha512-jnb2NDwGqJUVmxn1v0f7seNdDm0nRNWHP9Z3MrWAGnBCdnnDlsjqRFDnbKoaQvWONEa+rOOr/giK+VL0hgQExA==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz",
+ "integrity": "sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==",
"cpu": [
"mips64el"
],
@@ -465,9 +465,9 @@
}
},
"node_modules/esbuild-linux-ppc64le": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.46.tgz",
- "integrity": "sha512-uu3JTQUrwwauKY9z8yq5MnDyOlT3f2DNOzBcYz4dB78HqwEqilCsifoBGd0WcbED5n57dc59X+LZMTZ8Ose44w==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz",
+ "integrity": "sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==",
"cpu": [
"ppc64"
],
@@ -480,9 +480,9 @@
}
},
"node_modules/esbuild-linux-riscv64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.46.tgz",
- "integrity": "sha512-OB29r1EG44ZY34JnXCRERxo7k4pRKoQdaoRg2HIeCavatsXZwW4LCakpLnMQ72vXT1HtpBUABEjHkKkn5JyrUg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz",
+ "integrity": "sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==",
"cpu": [
"riscv64"
],
@@ -495,9 +495,9 @@
}
},
"node_modules/esbuild-linux-s390x": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.46.tgz",
- "integrity": "sha512-XQ/U9TueMSGYyPTKyZsJVraiuvxhwCDIMn/QwFXCRCJ6H/Cy/Rq33u9qhpeSziinHKfzJROGx5A8mQY6aYamdQ==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz",
+ "integrity": "sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==",
"cpu": [
"s390x"
],
@@ -510,9 +510,9 @@
}
},
"node_modules/esbuild-netbsd-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.46.tgz",
- "integrity": "sha512-i15BwqHaAIFp1vBJkitAbHtwXcLk9TdHs/Ia1xGIAutQYXSJNPLM3Z4B4hyfHNEFl2yBqBIYpglMohv2ClNdOQ==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz",
+ "integrity": "sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==",
"cpu": [
"x64"
],
@@ -525,9 +525,9 @@
}
},
"node_modules/esbuild-openbsd-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.46.tgz",
- "integrity": "sha512-XwOIFCE140Y/PvjrwjFfa/QLWBuvhR1mPCOa35mKx02jt++wPNgf0qhn6HfdVC3vQe7R46RwTp4q2cp99fepEg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz",
+ "integrity": "sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==",
"cpu": [
"x64"
],
@@ -540,9 +540,9 @@
}
},
"node_modules/esbuild-sunos-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.46.tgz",
- "integrity": "sha512-+kV3JnmfdxBVpHyFvuGXWtu6tXxXApOLPkSrVkMJf6+ns/3PLtPndpzwCzHjD+qYUEk8ln4MA+ufQ2qmjW5mZg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz",
+ "integrity": "sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==",
"cpu": [
"x64"
],
@@ -555,9 +555,9 @@
}
},
"node_modules/esbuild-windows-32": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.46.tgz",
- "integrity": "sha512-gzGC1Q11B/Bo5A2EX4N22oigWmhL7Z0eDyc8kbSoJjqSrGQuRE7B0uMpluO+q0O/gZ1S3zdw+M4PCWlqOIeXLA==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz",
+ "integrity": "sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==",
"cpu": [
"ia32"
],
@@ -570,9 +570,9 @@
}
},
"node_modules/esbuild-windows-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.46.tgz",
- "integrity": "sha512-Do2daaskfOjmCB7o3ygz6fD3K6SPjZLERiZLktzHz2oUCwsebKu/gmop0+j/XdrVIXC32wFzHzDS+9CTu9OShw==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz",
+ "integrity": "sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==",
"cpu": [
"x64"
],
@@ -585,9 +585,9 @@
}
},
"node_modules/esbuild-windows-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.46.tgz",
- "integrity": "sha512-VEzMy6bM60/HT/URTDElyhfi2Pk0quCCrEhRlI4MRno/AIqYUGw0rZwkPl6PeoqVI6BgoBHGY576GWTiPmshCA==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz",
+ "integrity": "sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==",
"cpu": [
"arm64"
],
@@ -874,9 +874,9 @@
}
},
"node_modules/qs": {
- "version": "6.10.5",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.5.tgz",
- "integrity": "sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ==",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dependencies": {
"side-channel": "^1.0.4"
},
@@ -1103,9 +1103,9 @@
}
},
"@octokit/openapi-types": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.1.0.tgz",
- "integrity": "sha512-kQzJh3ZUv3lDpi6M+uekMRHULvf9DlWoI1XgKN6nPeGDzkSgtkhVq1MMz3bFKQ6H6GbdC3ZqG/a6VzKhIx0VeA=="
+ "version": "12.5.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.5.0.tgz",
+ "integrity": "sha512-VatvE5wtRkJq6hAWGTBZ62WkrdlCiy0G0u27cVOYTfAWVZi7QqTurVcjpsyc5+9hXLPRP5O/DaNEs4TgAp4Mqg=="
},
"@octokit/request": {
"version": "5.6.3",
@@ -1131,11 +1131,11 @@
}
},
"@octokit/types": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.35.0.tgz",
- "integrity": "sha512-DhLfdUuv3H37u6jBDfkwamypx3HflHg29b26nbA6iVFYkAlZ5cMEtu/9pQoihGnQE5M7jJFnNo25Rr1UwQNF8Q==",
+ "version": "6.38.1",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.38.1.tgz",
+ "integrity": "sha512-kWMohLCIvnwApRmxRFDOqve7puiNNdtVfgwdDOm6QyJNorWOgKv2/AodCcGqx63o28kF7Dr4/nJCatrwwqhULg==",
"requires": {
- "@octokit/openapi-types": "^12.1.0"
+ "@octokit/openapi-types": "^12.5.0"
}
},
"@types/cli-progress": {
@@ -1228,9 +1228,9 @@
"requires": {}
},
"cli-progress": {
- "version": "3.11.1",
- "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.1.tgz",
- "integrity": "sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ==",
+ "version": "3.11.2",
+ "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz",
+ "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==",
"requires": {
"string-width": "^4.2.3"
}
@@ -1287,150 +1287,150 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"esbuild": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.46.tgz",
- "integrity": "sha512-vdm5G1JdZBktva8dwQci/s44VbeBUg8g907xoZx77mqFZ4gU5GlMULNsdGeID+qXCXocsfYSGtE0LvqH3eiNQg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.48.tgz",
+ "integrity": "sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==",
"requires": {
- "esbuild-android-64": "0.14.46",
- "esbuild-android-arm64": "0.14.46",
- "esbuild-darwin-64": "0.14.46",
- "esbuild-darwin-arm64": "0.14.46",
- "esbuild-freebsd-64": "0.14.46",
- "esbuild-freebsd-arm64": "0.14.46",
- "esbuild-linux-32": "0.14.46",
- "esbuild-linux-64": "0.14.46",
- "esbuild-linux-arm": "0.14.46",
- "esbuild-linux-arm64": "0.14.46",
- "esbuild-linux-mips64le": "0.14.46",
- "esbuild-linux-ppc64le": "0.14.46",
- "esbuild-linux-riscv64": "0.14.46",
- "esbuild-linux-s390x": "0.14.46",
- "esbuild-netbsd-64": "0.14.46",
- "esbuild-openbsd-64": "0.14.46",
- "esbuild-sunos-64": "0.14.46",
- "esbuild-windows-32": "0.14.46",
- "esbuild-windows-64": "0.14.46",
- "esbuild-windows-arm64": "0.14.46"
+ "esbuild-android-64": "0.14.48",
+ "esbuild-android-arm64": "0.14.48",
+ "esbuild-darwin-64": "0.14.48",
+ "esbuild-darwin-arm64": "0.14.48",
+ "esbuild-freebsd-64": "0.14.48",
+ "esbuild-freebsd-arm64": "0.14.48",
+ "esbuild-linux-32": "0.14.48",
+ "esbuild-linux-64": "0.14.48",
+ "esbuild-linux-arm": "0.14.48",
+ "esbuild-linux-arm64": "0.14.48",
+ "esbuild-linux-mips64le": "0.14.48",
+ "esbuild-linux-ppc64le": "0.14.48",
+ "esbuild-linux-riscv64": "0.14.48",
+ "esbuild-linux-s390x": "0.14.48",
+ "esbuild-netbsd-64": "0.14.48",
+ "esbuild-openbsd-64": "0.14.48",
+ "esbuild-sunos-64": "0.14.48",
+ "esbuild-windows-32": "0.14.48",
+ "esbuild-windows-64": "0.14.48",
+ "esbuild-windows-arm64": "0.14.48"
}
},
"esbuild-android-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.46.tgz",
- "integrity": "sha512-ZyJqwAcjNbZprs0ZAxnUAOhEhdE5kTKwz+CZuLmZYNLAPyRgBtaC8pT2PCuPifNvV8Cl3yLlrQPaOCjovoyb5g==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.48.tgz",
+ "integrity": "sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==",
"optional": true
},
"esbuild-android-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.46.tgz",
- "integrity": "sha512-BKcnUksvCijO9ONv6b4SikZE/OZftwJvX91XROODZGQmuwGVg97jmLDVu3lxuHdFlMNNzxh8taJ2mbCWZzH/Iw==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.48.tgz",
+ "integrity": "sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==",
"optional": true
},
"esbuild-darwin-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.46.tgz",
- "integrity": "sha512-/ss2kO92sUJ9/1nHnMb3+oab8w6dyqKrMtPMvSYJ9KZIYGAZxz/WYxfFprY7Xk+ZxWnnlASSyZlG+If1nVmFYg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.48.tgz",
+ "integrity": "sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==",
"optional": true
},
"esbuild-darwin-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.46.tgz",
- "integrity": "sha512-WX0JOaEFf6t+rIjXO6THsf/0fhQAt2Zb0/PSYlvXnuQQAmOmFAfPsuRNocp5ME0NGaUqZd4FxqqmLEVK3RzPAg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.48.tgz",
+ "integrity": "sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==",
"optional": true
},
"esbuild-freebsd-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.46.tgz",
- "integrity": "sha512-o+ozPFuHRCAGCVWU2bLurOUgVkT0jcPEu082VBUY2Q/yLf+B+/3nXzh4Fjp5O21tOvJRTn7hUVydG9j5+vYE6A==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.48.tgz",
+ "integrity": "sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==",
"optional": true
},
"esbuild-freebsd-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.46.tgz",
- "integrity": "sha512-9zicZ0X43WDKz3sjNfcqYO38xbfJpSWYXB+FxvYYkmBwGA52K0SAu4oKuTTLi8od8X2IIo1x5C5TUNvKDSVJww==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.48.tgz",
+ "integrity": "sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==",
"optional": true
},
"esbuild-linux-32": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.46.tgz",
- "integrity": "sha512-ZnTpZMVb0VGvL99R5eh4OrJwbUyvpM6M88VAMuHP4LvFjuvZrhgefjKqEGuWZZW7JRnAjKqjXLjWdhdSjwMFnQ==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.48.tgz",
+ "integrity": "sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==",
"optional": true
},
"esbuild-linux-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.46.tgz",
- "integrity": "sha512-ECCRRZtX6l4ubeVhHhiVoK/uYAkvzNqfmR4gP4N/9H9RPu+b8YCcN4bQGp7xCuYIV6Xd41WpOMyO+xpcQvjtQQ==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.48.tgz",
+ "integrity": "sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==",
"optional": true
},
"esbuild-linux-arm": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.46.tgz",
- "integrity": "sha512-RvTJEi4vj13c5FP9YPp+8Y6x6HK1E7uSqfy3y9UoeaNAzNZWA7fN1U3hQjTL/dy5zTJH5KE64mrt5k5+he+CQA==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.48.tgz",
+ "integrity": "sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==",
"optional": true
},
"esbuild-linux-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.46.tgz",
- "integrity": "sha512-HX0TXCHyI0NEWG4jg8LlW1PbZQbnz+PUH56yjx996cgM5pC90u32drKs/tyJiyyQmNk9OXOogjKw7LEdp/Qc1w==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.48.tgz",
+ "integrity": "sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==",
"optional": true
},
"esbuild-linux-mips64le": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.46.tgz",
- "integrity": "sha512-jnb2NDwGqJUVmxn1v0f7seNdDm0nRNWHP9Z3MrWAGnBCdnnDlsjqRFDnbKoaQvWONEa+rOOr/giK+VL0hgQExA==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz",
+ "integrity": "sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==",
"optional": true
},
"esbuild-linux-ppc64le": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.46.tgz",
- "integrity": "sha512-uu3JTQUrwwauKY9z8yq5MnDyOlT3f2DNOzBcYz4dB78HqwEqilCsifoBGd0WcbED5n57dc59X+LZMTZ8Ose44w==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz",
+ "integrity": "sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==",
"optional": true
},
"esbuild-linux-riscv64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.46.tgz",
- "integrity": "sha512-OB29r1EG44ZY34JnXCRERxo7k4pRKoQdaoRg2HIeCavatsXZwW4LCakpLnMQ72vXT1HtpBUABEjHkKkn5JyrUg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz",
+ "integrity": "sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==",
"optional": true
},
"esbuild-linux-s390x": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.46.tgz",
- "integrity": "sha512-XQ/U9TueMSGYyPTKyZsJVraiuvxhwCDIMn/QwFXCRCJ6H/Cy/Rq33u9qhpeSziinHKfzJROGx5A8mQY6aYamdQ==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz",
+ "integrity": "sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==",
"optional": true
},
"esbuild-netbsd-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.46.tgz",
- "integrity": "sha512-i15BwqHaAIFp1vBJkitAbHtwXcLk9TdHs/Ia1xGIAutQYXSJNPLM3Z4B4hyfHNEFl2yBqBIYpglMohv2ClNdOQ==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz",
+ "integrity": "sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==",
"optional": true
},
"esbuild-openbsd-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.46.tgz",
- "integrity": "sha512-XwOIFCE140Y/PvjrwjFfa/QLWBuvhR1mPCOa35mKx02jt++wPNgf0qhn6HfdVC3vQe7R46RwTp4q2cp99fepEg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz",
+ "integrity": "sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==",
"optional": true
},
"esbuild-sunos-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.46.tgz",
- "integrity": "sha512-+kV3JnmfdxBVpHyFvuGXWtu6tXxXApOLPkSrVkMJf6+ns/3PLtPndpzwCzHjD+qYUEk8ln4MA+ufQ2qmjW5mZg==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz",
+ "integrity": "sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==",
"optional": true
},
"esbuild-windows-32": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.46.tgz",
- "integrity": "sha512-gzGC1Q11B/Bo5A2EX4N22oigWmhL7Z0eDyc8kbSoJjqSrGQuRE7B0uMpluO+q0O/gZ1S3zdw+M4PCWlqOIeXLA==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz",
+ "integrity": "sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==",
"optional": true
},
"esbuild-windows-64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.46.tgz",
- "integrity": "sha512-Do2daaskfOjmCB7o3ygz6fD3K6SPjZLERiZLktzHz2oUCwsebKu/gmop0+j/XdrVIXC32wFzHzDS+9CTu9OShw==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz",
+ "integrity": "sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==",
"optional": true
},
"esbuild-windows-arm64": {
- "version": "0.14.46",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.46.tgz",
- "integrity": "sha512-VEzMy6bM60/HT/URTDElyhfi2Pk0quCCrEhRlI4MRno/AIqYUGw0rZwkPl6PeoqVI6BgoBHGY576GWTiPmshCA==",
+ "version": "0.14.48",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz",
+ "integrity": "sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==",
"optional": true
},
"escalade": {
@@ -1617,9 +1617,9 @@
}
},
"qs": {
- "version": "6.10.5",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.5.tgz",
- "integrity": "sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ==",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"requires": {
"side-channel": "^1.0.4"
}
diff --git a/package.json b/package.json
index f63541c8c10..2a372ed8a50 100644
--- a/package.json
+++ b/package.json
@@ -37,9 +37,9 @@
"@types/yargs": "^17.0.10",
"chart.js": "^3.8.0",
"chartjs-adapter-luxon": "^1.1.0",
- "cli-progress": "^3.11.1",
+ "cli-progress": "^3.11.2",
"dotenv": "^16.0.1",
- "esbuild": "^0.14.46",
+ "esbuild": "^0.14.48",
"http-server": "^14.1.1",
"luxon": "^2.4.0",
"typescript": "^4.7.4",
diff --git a/src/status_chart.ts b/src/status_chart.ts
index 47a2ab2f5e4..f9782892093 100644
--- a/src/status_chart.ts
+++ b/src/status_chart.ts
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-import { Chart, ChartEvent, ChartType, LegendElement, LegendItem, TimeUnit, registerables } from 'chart.js';
+import { Chart, ChartEvent, LegendElement, LegendItem, TimeUnit, registerables } from 'chart.js';
Chart.register(...registerables);
import 'chartjs-adapter-luxon';
@@ -40,41 +40,55 @@ function get_monthly_values(key: Exclude) {
return get_values(monthly_table, row => row[key]);
}
-class HiddenInfo {
+type AxisID = `${string}Axis`;
+
+type ColorName = `--color-${string}`;
+
+class DatasetInfo {
url_key: string;
chart_label: string;
+ yAxisID: AxisID;
+ color_name: ColorName;
default_hidden: boolean;
- constructor(url_key: string, chart_label: string, default_hidden: boolean = false) {
+ constructor(
+ url_key: string,
+ chart_label: string,
+ yAxisID: AxisID,
+ color_name: ColorName,
+ default_hidden: boolean = false
+ ) {
this.url_key = url_key;
this.chart_label = chart_label;
+ this.yAxisID = yAxisID;
+ this.color_name = color_name;
this.default_hidden = default_hidden;
}
}
-class HiddenInfoMaps {
- static url_key = new Map();
- static chart_label = new Map();
+class DatasetInfoMaps {
+ static url_key = new Map();
+ static chart_label = new Map();
static {
const arr = [
- new HiddenInfo('cxx17', 'C++17 Features'),
- new HiddenInfo('cxx20', 'C++20 Features'),
- new HiddenInfo('cxx23', 'C++23 Features'),
- new HiddenInfo('lwg', 'LWG Resolutions'),
- new HiddenInfo('pr', 'Pull Requests'),
- new HiddenInfo('vso', 'Old Bugs'),
- new HiddenInfo('bug', 'GitHub Bugs'),
- new HiddenInfo('issue', 'GitHub Issues'),
- new HiddenInfo('libcxx', 'Skipped Libcxx Tests'),
-
- new HiddenInfo('avg_age', 'Average Age', true),
- new HiddenInfo('avg_wait', 'Average Wait', true),
- new HiddenInfo('sum_age', 'Combined Age'),
- new HiddenInfo('sum_wait', 'Combined Wait'),
-
- new HiddenInfo('merged', 'Line: Sliding Window'),
- new HiddenInfo('merge_bar', 'Bars: Calendar Months'),
+ new DatasetInfo('cxx17', 'C++17 Features', 'smallAxis', '--color-severe-emphasis'),
+ new DatasetInfo('cxx20', 'C++20 Features', 'smallAxis', '--color-sponsors-emphasis'),
+ new DatasetInfo('cxx23', 'C++23 Features', 'smallAxis', '--color-done-emphasis'),
+ new DatasetInfo('lwg', 'LWG Resolutions', 'smallAxis', '--color-success-emphasis'),
+ new DatasetInfo('pr', 'Pull Requests', 'smallAxis', '--color-accent-emphasis'),
+ new DatasetInfo('vso', 'Old Bugs', 'largeAxis', '--color-scale-red-7'),
+ new DatasetInfo('bug', 'GitHub Bugs', 'largeAxis', '--color-danger-emphasis'),
+ new DatasetInfo('issue', 'GitHub Issues', 'largeAxis', '--color-neutral-emphasis'),
+ new DatasetInfo('libcxx', 'Skipped Libcxx Tests', 'largeAxis', '--color-attention-emphasis'),
+
+ new DatasetInfo('avg_age', 'Average Age', 'leftAxis', '--color-neutral-emphasis', true),
+ new DatasetInfo('avg_wait', 'Average Wait', 'leftAxis', '--color-sponsors-emphasis', true),
+ new DatasetInfo('sum_age', 'Combined Age', 'rightAxis', '--color-fg-default'),
+ new DatasetInfo('sum_wait', 'Combined Wait', 'rightAxis', '--color-done-emphasis'),
+
+ new DatasetInfo('merged', 'Line: Sliding Window', 'mergeAxis', '--color-accent-emphasis'),
+ new DatasetInfo('merge_bar', 'Bars: Calendar Months', 'mergeAxis', '--color-border-default'),
];
for (const elem of arr) {
@@ -87,7 +101,7 @@ class HiddenInfoMaps {
const ret = this[field].get(value);
if (ret === undefined) {
- throw new Error('HiddenInfoMaps.lookup() should always find the value.');
+ throw new Error('DatasetInfoMaps.lookup() should always find the value.');
}
return ret;
@@ -98,8 +112,14 @@ const url_search_params = new URLSearchParams(window.location.search);
const hide_string = 'n';
const show_string = 'y';
-function get_label_and_hidden(url_key: string) {
- const { chart_label, default_hidden } = HiddenInfoMaps.lookup('url_key', url_key);
+const css_style_declaration = window.getComputedStyle(document.documentElement);
+
+function get_css_property(property_name: string) {
+ return css_style_declaration.getPropertyValue(property_name);
+}
+
+function get_dataset_properties(url_key: string) {
+ const { chart_label, yAxisID, color_name, default_hidden } = DatasetInfoMaps.lookup('url_key', url_key);
let hidden: boolean;
@@ -113,8 +133,13 @@ function get_label_and_hidden(url_key: string) {
hidden = default_hidden;
}
+ const color = get_css_property(color_name);
+
return {
label: chart_label,
+ yAxisID: yAxisID,
+ borderColor: color,
+ backgroundColor: color,
hidden: hidden,
};
}
@@ -135,67 +160,39 @@ const status_data = {
datasets: [
{
data: get_weekly_values('cxx17'),
- borderColor: '#9966FF',
- backgroundColor: '#9966FF',
- borderDash: [10, 5],
- yAxisID: 'smallAxis',
- ...get_label_and_hidden('cxx17'),
+ ...get_dataset_properties('cxx17'),
},
{
data: get_weekly_values('cxx20').concat(get_daily_values('cxx20')),
- borderColor: '#7030A0',
- backgroundColor: '#7030A0',
- yAxisID: 'smallAxis',
- ...get_label_and_hidden('cxx20'),
+ ...get_dataset_properties('cxx20'),
},
{
data: get_daily_values('cxx23'),
- borderColor: '#9966FF',
- backgroundColor: '#9966FF',
- yAxisID: 'smallAxis',
- ...get_label_and_hidden('cxx23'),
+ ...get_dataset_properties('cxx23'),
},
{
data: get_weekly_values('lwg').concat(get_daily_values('lwg')),
- borderColor: '#0070C0',
- backgroundColor: '#0070C0',
- yAxisID: 'smallAxis',
- ...get_label_and_hidden('lwg'),
+ ...get_dataset_properties('lwg'),
},
{
data: get_daily_values('pr'),
- borderColor: '#00B050',
- backgroundColor: '#00B050',
- yAxisID: 'smallAxis',
- ...get_label_and_hidden('pr'),
+ ...get_dataset_properties('pr'),
},
{
data: get_weekly_values('vso'),
- borderColor: '#900000',
- backgroundColor: '#900000',
- yAxisID: 'largeAxis',
- ...get_label_and_hidden('vso'),
+ ...get_dataset_properties('vso'),
},
{
data: get_daily_values('bug'),
- borderColor: '#FF0000',
- backgroundColor: '#FF0000',
- yAxisID: 'largeAxis',
- ...get_label_and_hidden('bug'),
+ ...get_dataset_properties('bug'),
},
{
data: get_daily_values('issue'),
- borderColor: '#909090',
- backgroundColor: '#909090',
- yAxisID: 'largeAxis',
- ...get_label_and_hidden('issue'),
+ ...get_dataset_properties('issue'),
},
{
data: get_weekly_values('libcxx'),
- borderColor: '#FFC000',
- backgroundColor: '#FFC000',
- yAxisID: 'largeAxis',
- ...get_label_and_hidden('libcxx'),
+ ...get_dataset_properties('libcxx'),
},
],
};
@@ -204,31 +201,19 @@ const age_data = {
datasets: [
{
data: get_daily_values('avg_age'),
- borderColor: '#909090',
- backgroundColor: '#909090',
- yAxisID: 'leftAxis',
- ...get_label_and_hidden('avg_age'),
+ ...get_dataset_properties('avg_age'),
},
{
data: get_daily_values('avg_wait'),
- borderColor: '#FF9090',
- backgroundColor: '#FF9090',
- yAxisID: 'leftAxis',
- ...get_label_and_hidden('avg_wait'),
+ ...get_dataset_properties('avg_wait'),
},
{
data: get_daily_values('sum_age'),
- borderColor: '#000000',
- backgroundColor: '#000000',
- yAxisID: 'rightAxis',
- ...get_label_and_hidden('sum_age'),
+ ...get_dataset_properties('sum_age'),
},
{
data: get_daily_values('sum_wait'),
- borderColor: '#FF0000',
- backgroundColor: '#FF0000',
- yAxisID: 'rightAxis',
- ...get_label_and_hidden('sum_wait'),
+ ...get_dataset_properties('sum_wait'),
},
],
};
@@ -237,18 +222,12 @@ const merge_data = {
datasets: [
{
data: get_daily_values('merged'),
- borderColor: '#00B050',
- backgroundColor: '#00B050',
- yAxisID: 'mergeAxis',
- ...get_label_and_hidden('merged'),
+ ...get_dataset_properties('merged'),
},
{
type: 'bar' as const,
data: get_monthly_values('merge_bar'),
- borderColor: '#CCCCCC',
- borderWidth: 1,
- yAxisID: 'mergeAxis',
- ...get_label_and_hidden('merge_bar'),
+ ...get_dataset_properties('merge_bar'),
},
],
};
@@ -274,27 +253,7 @@ const timeframes = [timeframe_all, timeframe_github, timeframe_2021];
const timeframe_github_idx = 1;
let timeframe_idx = timeframe_github_idx;
-const common_options = {
- animation: {
- duration: 0,
- },
- elements: {
- line: {
- borderCapStyle: 'round' as const,
- borderJoinStyle: 'round' as const,
- fill: false,
- spanGaps: false,
- },
- point: {
- radius: 0,
- },
- },
- hover: {
- mode: 'nearest' as const,
- },
-};
-
-function legend_click_handler(_event: ChartEvent, legend_item: LegendItem, legend: LegendElement) {
+function legend_click_handler(_event: ChartEvent, legend_item: LegendItem, legend: LegendElement<'bar' | 'line'>) {
const ch = legend.chart;
const index = legend_item.datasetIndex;
@@ -308,7 +267,7 @@ function legend_click_handler(_event: ChartEvent, legend_item: LegendItem, legen
legend_item.hidden = becoming_hidden;
- const { url_key, default_hidden } = HiddenInfoMaps.lookup('chart_label', legend_item.text);
+ const { url_key, default_hidden } = DatasetInfoMaps.lookup('chart_label', legend_item.text);
if (becoming_hidden === default_hidden) {
url_search_params.delete(url_key);
@@ -320,22 +279,47 @@ function legend_click_handler(_event: ChartEvent, legend_item: LegendItem, legen
update_url();
}
-const common_plugins = {
- legend: {
- onClick: legend_click_handler,
- },
- tooltip: {
- mode: 'nearest' as const,
- intersect: false,
- },
-};
-
-const common_title = {
- display: true,
- font: {
- size: 24,
- },
-};
+function make_common_options(title_text: string) {
+ return {
+ animation: {
+ duration: 0,
+ },
+ elements: {
+ line: {
+ borderCapStyle: 'round' as const,
+ borderJoinStyle: 'round' as const,
+ fill: false,
+ spanGaps: false,
+ },
+ point: {
+ radius: 0,
+ },
+ },
+ hover: {
+ mode: 'nearest' as const,
+ },
+ plugins: {
+ legend: {
+ labels: {
+ color: get_css_property('--color-fg-default'),
+ },
+ onClick: legend_click_handler,
+ },
+ tooltip: {
+ mode: 'nearest' as const,
+ intersect: false,
+ },
+ title: {
+ color: get_css_property('--color-fg-default'),
+ display: true,
+ font: {
+ size: 24,
+ },
+ text: title_text,
+ },
+ },
+ };
+}
function make_xAxis(timeframe: Timeframe) {
return {
@@ -343,9 +327,17 @@ function make_xAxis(timeframe: Timeframe) {
min: timeframe.min,
max: daily_table[daily_table.length - 1].date,
grid: {
+ borderColor: get_css_property('--color-border-default'),
+ color: get_css_property('--color-border-default'),
offset: false,
},
offset: false,
+ title: {
+ color: get_css_property('--color-fg-default'),
+ },
+ ticks: {
+ color: get_css_property('--color-fg-default'),
+ },
time: {
parser: 'yyyy-MM-dd',
tooltipFormat: 'MMM d, yyyy',
@@ -357,115 +349,52 @@ function make_xAxis(timeframe: Timeframe) {
};
}
-const status_options = {
- ...common_options,
- plugins: {
- ...common_plugins,
+function make_yAxis(position: 'left' | 'right', title_text: string, min: number, max: number, stepSize: number) {
+ return {
+ type: 'linear' as const,
+ display: 'auto' as const,
+ position: position,
title: {
- ...common_title,
- text: 'STL Status Chart',
+ color: get_css_property('--color-fg-default'),
+ display: true,
+ text: title_text,
},
- },
- scales: {
- x: make_xAxis(timeframes[timeframe_idx]),
- largeAxis: {
- type: 'linear' as const,
- display: 'auto' as const,
- position: 'left' as const,
- title: {
- display: true,
- text: 'Bugs, Issues, Skipped Libcxx Tests',
- },
- min: 0,
- max: 900,
- ticks: {
- stepSize: 100,
- },
+ min: min,
+ max: max,
+ grid: {
+ borderColor: get_css_property('--color-border-default'),
+ color: get_css_property('--color-border-default'),
},
- smallAxis: {
- type: 'linear' as const,
- display: 'auto' as const,
- position: 'right' as const,
- title: {
- display: true,
- text: 'Features, LWG Resolutions, Pull Requests',
- },
- min: 0,
- max: 90,
- ticks: {
- stepSize: 10,
- },
+ ticks: {
+ color: get_css_property('--color-fg-default'),
+ stepSize: stepSize,
},
+ };
+}
+
+const status_options = {
+ ...make_common_options('STL Status Chart'),
+ scales: {
+ x: make_xAxis(timeframes[timeframe_idx]),
+ largeAxis: make_yAxis('left', 'Bugs, Issues, Skipped Libcxx Tests', 0, 900, 100),
+ smallAxis: make_yAxis('right', 'Features, LWG Resolutions, Pull Requests', 0, 90, 10),
},
};
const age_options = {
- ...common_options,
- plugins: {
- ...common_plugins,
- title: {
- ...common_title,
- text: 'Pull Request Age',
- },
- },
+ ...make_common_options('Pull Request Age'),
scales: {
x: make_xAxis(timeframe_github),
- leftAxis: {
- type: 'linear' as const,
- display: 'auto' as const,
- position: 'left' as const,
- title: {
- display: true,
- text: 'Average Age, Average Wait (days)',
- },
- min: 0,
- max: 600,
- ticks: {
- stepSize: 100,
- },
- },
- rightAxis: {
- type: 'linear' as const,
- display: 'auto' as const,
- position: 'right' as const,
- title: {
- display: true,
- text: 'Combined Age, Combined Wait (PR-months)',
- },
- min: 0,
- max: 600,
- ticks: {
- stepSize: 100,
- },
- },
+ leftAxis: make_yAxis('left', 'Average Age, Average Wait (days)', 0, 600, 100),
+ rightAxis: make_yAxis('right', 'Combined Age, Combined Wait (PR-months)', 0, 600, 100),
},
};
const merge_options = {
- ...common_options,
- plugins: {
- ...common_plugins,
- title: {
- ...common_title,
- text: 'Monthly Merged PRs',
- },
- },
+ ...make_common_options('Monthly Merged PRs'),
scales: {
x: make_xAxis(timeframe_github),
- mergeAxis: {
- type: 'linear' as const,
- display: 'auto' as const,
- position: 'right' as const,
- title: {
- display: true,
- text: 'PRs / month',
- },
- min: 0,
- max: 80,
- ticks: {
- stepSize: 10,
- },
- },
+ mergeAxis: make_yAxis('right', 'PRs / month', 0, 80, 10),
},
};
@@ -502,6 +431,54 @@ function load_charts() {
options: merge_options,
});
+ function update_dark_mode(_event: MediaQueryListEvent) {
+ const color_fg_default = get_css_property('--color-fg-default');
+ const color_border_default = get_css_property('--color-border-default');
+
+ for (const chart of [status_chart, age_chart, merge_chart]) {
+ if (
+ chart.options.plugins?.legend?.labels === undefined ||
+ chart.options.plugins?.title === undefined ||
+ chart.options.scales === undefined
+ ) {
+ throw new Error('update_dark_mode() was surprised by chart.options.');
+ }
+
+ chart.options.plugins.legend.labels.color = color_fg_default;
+ chart.options.plugins.title.color = color_fg_default;
+
+ for (const [scaleId, scale] of Object.entries(chart.options.scales)) {
+ if (scale?.title === undefined || scale?.ticks === undefined || scale?.grid === undefined) {
+ throw new Error(`update_dark_mode() was surprised by chart.options.scales[${scaleId}].`);
+ }
+
+ scale.title.color = color_fg_default;
+ scale.ticks.color = color_fg_default;
+
+ scale.grid.borderColor = color_border_default;
+ scale.grid.color = color_border_default;
+ }
+
+ for (const dataset of chart.data.datasets) {
+ if (dataset.label === undefined) {
+ throw new Error('update_dark_mode() was surprised by dataset.label.');
+ }
+
+ const { color_name } = DatasetInfoMaps.lookup('chart_label', dataset.label);
+
+ const color = get_css_property(color_name);
+
+ dataset.borderColor = color;
+ dataset.backgroundColor = color;
+ }
+
+ chart.update();
+ }
+ }
+
+ const media_query_list = window.matchMedia('(prefers-color-scheme: dark)');
+ media_query_list.addEventListener('change', update_dark_mode);
+
function update_chart_timeframe(chart: typeof status_chart, idx: number) {
if (!('scales' in chart.options)) {
throw new Error('update_chart_timeframe() expected chart.options.scales to exist.');
diff --git a/src/weekly_table.ts b/src/weekly_table.ts
index 4691c190d7a..8a13cd1698d 100644
--- a/src/weekly_table.ts
+++ b/src/weekly_table.ts
@@ -272,4 +272,5 @@ export const weekly_table: WeeklyRow[] = [
{ date: '2022-06-03', vso: 179, libcxx: 614 },
{ date: '2022-06-10', vso: 172, libcxx: 614 },
{ date: '2022-06-17', vso: 173, libcxx: 614 },
+ { date: '2022-06-24', vso: 177, libcxx: 614 },
];