From 5b2874a3b0dc950046d2c316d2defc32557f56f1 Mon Sep 17 00:00:00 2001 From: Azanul Haque <42029519+Azanul@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:02:36 +0530 Subject: [PATCH 1/3] AWS cost explorer API integration (#1247) * feat: aws lambda integration Signed-off-by: Azanul * fix: go.mod Signed-off-by: Azanul * fix: go.mod Signed-off-by: Azanul * fix: incorrect costexplorerOutputList Signed-off-by: Azanul * refactor: util for reuse Signed-off-by: Azanul --------- Signed-off-by: Azanul --- go.mod | 1 + go.sum | 2 ++ providers/aws/aws.go | 46 +++++++++++++++++++++++++++++-- providers/aws/lambda/functions.go | 8 +++++- providers/aws/utils/utils.go | 38 ++++++++++++++++++++++--- 5 files changed, 88 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 2c25dbf41..40321bdee 100644 --- a/go.mod +++ b/go.mod @@ -26,6 +26,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.30.2 github.com/aws/aws-sdk-go-v2/service/codedeploy v1.20.3 github.com/aws/aws-sdk-go-v2/service/configservice v1.41.2 + github.com/aws/aws-sdk-go-v2/service/costexplorer v1.32.4 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.2 github.com/aws/aws-sdk-go-v2/service/ec2 v1.136.0 github.com/aws/aws-sdk-go-v2/service/ecr v1.23.0 diff --git a/go.sum b/go.sum index 96e5ba6b4..e528b712a 100644 --- a/go.sum +++ b/go.sum @@ -100,6 +100,8 @@ github.com/aws/aws-sdk-go-v2/service/codedeploy v1.20.3 h1:rGqIKTmugpZ7lEzXTmbiP github.com/aws/aws-sdk-go-v2/service/codedeploy v1.20.3/go.mod h1:A7i1lQClkFz09enKv5WYKb8a2lf9QeeI1s9dNiym3hg= github.com/aws/aws-sdk-go-v2/service/configservice v1.41.2 h1:WJt83aWld986AxwJpzE0eDqQi18a/PwZ36y7DqENYdk= github.com/aws/aws-sdk-go-v2/service/configservice v1.41.2/go.mod h1:wIuYBSC8G7HHXK/T6YO0t/m463ssur9aMLnycNvKXqQ= +github.com/aws/aws-sdk-go-v2/service/costexplorer v1.32.4 h1:ojxirFFJN39ar+tHiz84PuaeKA/Z3BiopdhxOGGQD4A= +github.com/aws/aws-sdk-go-v2/service/costexplorer v1.32.4/go.mod h1:1ujrFMokNtwDv3fwb9RBwdeXS+RonpIeV9uh19GJoH8= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.2 h1:O6ff5PwwgQ7QkL/XA0H+0U0mWwjkYaP9tHvbr0Ptqak= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.2/go.mod h1:kuVxCbsxbP/h6YTT2BfOj4s/bwXYsG3C/8Qn9gO5QJY= github.com/aws/aws-sdk-go-v2/service/ec2 v1.136.0 h1:nZPVFkGojUUJupKJzaCKE07LaFDO3Tto1U69F8JipsI= diff --git a/providers/aws/aws.go b/providers/aws/aws.go index 1e03cee43..2af4d122c 100644 --- a/providers/aws/aws.go +++ b/providers/aws/aws.go @@ -3,9 +3,12 @@ package aws import ( "context" "strings" + "time" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/costexplorer" + "github.com/aws/aws-sdk-go-v2/service/costexplorer/types" log "github.com/sirupsen/logrus" - "github.com/tailwarden/komiser/models" "github.com/tailwarden/komiser/providers" "github.com/tailwarden/komiser/providers/aws/apigateway" @@ -34,7 +37,9 @@ import ( "github.com/tailwarden/komiser/providers/aws/sns" "github.com/tailwarden/komiser/providers/aws/sqs" "github.com/tailwarden/komiser/providers/aws/systemsmanager" + awsUtils "github.com/tailwarden/komiser/providers/aws/utils" "github.com/tailwarden/komiser/utils" + "github.com/uptrace/bun" ) @@ -113,6 +118,43 @@ func FetchResources(ctx context.Context, client providers.ProviderClient, region listOfSupportedRegions = regions } + costexplorerClient := costexplorer.NewFromConfig(*client.AWSClient) + costexplorerOutputList := []*costexplorer.GetCostAndUsageOutput{} + var nextPageToken *string + for { + costexplorerOutput, err := costexplorerClient.GetCostAndUsage(ctx, &costexplorer.GetCostAndUsageInput{ + Granularity: "DAILY", + Metrics: []string{"UnblendedCost"}, + TimePeriod: &types.DateInterval{ + Start: aws.String(utils.BeginningOfMonth(time.Now()).Format("2006-01-02")), + End: aws.String(time.Now().Format("2006-01-02")), + }, + GroupBy: []types.GroupDefinition{ + { + Key: aws.String("SERVICE"), + Type: "DIMENSION", + }, + { + Key: aws.String("REGION"), + Type: "DIMENSION", + }, + }, + NextPageToken: nextPageToken, + }) + if err != nil { + log.Warn("Couldn't fetch cost and usage data:", err) + break + } + + costexplorerOutputList = append(costexplorerOutputList, costexplorerOutput) + + if aws.ToString(costexplorerOutput.NextPageToken) == "" { + break + } + + nextPageToken = costexplorerOutput.NextPageToken + } + ctxWithCostexplorerOutput := context.WithValue(ctx, awsUtils.CostexplorerKey, costexplorerOutputList) for _, region := range listOfSupportedRegions { c := client.AWSClient.Copy() c.Region = region @@ -123,7 +165,7 @@ func FetchResources(ctx context.Context, client providers.ProviderClient, region for _, fetchResources := range listOfSupportedServices() { fetchResources := fetchResources wp.SubmitTask(func() { - resources, err := fetchResources(ctx, client) + resources, err := fetchResources(ctxWithCostexplorerOutput, client) if err != nil { log.Warnf("[%s][AWS] %s", client.Name, err) } else { diff --git a/providers/aws/lambda/functions.go b/providers/aws/lambda/functions.go index 9bca7d517..7ab13e6e8 100644 --- a/providers/aws/lambda/functions.go +++ b/providers/aws/lambda/functions.go @@ -32,6 +32,11 @@ func Functions(ctx context.Context, client providers.ProviderClient) ([]models.R cloudwatchClient := cloudwatch.NewFromConfig(*client.AWSClient) lambdaClient := lambda.NewFromConfig(*client.AWSClient) + serviceCost, err := awsUtils.GetCostAndUsage(ctx, client.AWSClient.Region, "Lambda") + if err != nil { + log.Warnln("Couldn't fetch Lambda cost and usage:", err) + } + tempRegion := client.AWSClient.Region client.AWSClient.Region = "us-east-1" pricingClient := pricing.NewFromConfig(*client.AWSClient) @@ -157,7 +162,8 @@ func Functions(ctx context.Context, client providers.ProviderClient) ([]models.R Name: *o.FunctionName, Cost: monthlyCost, Metadata: map[string]string{ - "runtime": string(o.Runtime), + "runtime": string(o.Runtime), + "serviceCost": fmt.Sprint(serviceCost), }, Relations: relations, FetchedAt: time.Now(), diff --git a/providers/aws/utils/utils.go b/providers/aws/utils/utils.go index 5ed566701..bcec79e9a 100644 --- a/providers/aws/utils/utils.go +++ b/providers/aws/utils/utils.go @@ -1,13 +1,43 @@ package utils import ( + "context" "encoding/json" "fmt" "strconv" + "github.com/aws/aws-sdk-go-v2/service/costexplorer" "github.com/aws/aws-sdk-go-v2/service/pricing" ) +type AWSCtxKey uint8 + +const ( + CostexplorerKey AWSCtxKey = iota +) + +func GetCostAndUsage(ctx context.Context, region string, svcName string) (float64, error) { + total := 0.0 + costexplorerOutputList, ok := ctx.Value(CostexplorerKey).([]*costexplorer.GetCostAndUsageOutput) + if !ok || costexplorerOutputList == nil { + return 0, fmt.Errorf("incorrect costexplorerOutputList") + } + for _, costexplorerOutput := range costexplorerOutputList { + for _, group := range costexplorerOutput.ResultsByTime { + for _, v := range group.Groups { + if v.Keys[0] == svcName && v.Keys[1] == region { + amt, err := strconv.ParseFloat(*v.Metrics["UnblendedCost"].Amount, 64) + if err != nil { + return 0, err + } + total += amt + } + } + } + } + return total, nil +} + type ProductEntry struct { Product struct { Attributes struct { @@ -93,8 +123,8 @@ func GetPriceMap(pricingOutput *pricing.GetProductsOutput, field string) (map[st } func Int64PtrToFloat64(i *int64) float64 { - if i == nil { - return 0.0 // or any default value you prefer - } - return float64(*i) + if i == nil { + return 0.0 // or any default value you prefer + } + return float64(*i) } From 6a3112818f9afdd4b4c8772ea53ac7ac14c21ab8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:24:04 +0530 Subject: [PATCH 2/3] chore(deps-dev): bump @storybook/blocks in /dashboard (#1276) Bumps [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) from 7.4.6 to 7.6.4. - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.4/code/ui/blocks) --- updated-dependencies: - dependency-name: "@storybook/blocks" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dashboard/package-lock.json | 429 ++++++++++++++++++++++++++---------- dashboard/package.json | 2 +- 2 files changed, 319 insertions(+), 112 deletions(-) diff --git a/dashboard/package-lock.json b/dashboard/package-lock.json index 5247f8555..c074f2e0a 100644 --- a/dashboard/package-lock.json +++ b/dashboard/package-lock.json @@ -37,7 +37,7 @@ "@storybook/addon-interactions": "^7.5.3", "@storybook/addon-links": "^7.5.3", "@storybook/addons": "^7.4.6", - "@storybook/blocks": "^7.4.5", + "@storybook/blocks": "^7.6.4", "@storybook/nextjs": "^7.5.2", "@storybook/preview-api": "^7.4.6", "@storybook/react": "^7.4.6", @@ -102,7 +102,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -203,7 +202,6 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -212,7 +210,6 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz", "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", @@ -241,14 +238,12 @@ "node_modules/@babel/core/node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -294,7 +289,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, "dependencies": { "@babel/compat-data": "^7.22.9", "@babel/helper-validator-option": "^7.22.15", @@ -310,7 +304,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -447,7 +440,6 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", - "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -520,7 +512,6 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -571,7 +562,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -594,7 +584,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", - "dev": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/traverse": "^7.22.15", @@ -5072,6 +5061,45 @@ } } }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/blocks": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.4.6.tgz", + "integrity": "sha512-HxBSAeOiTZW2jbHQlo1upRWFgoMsaAyKijUFf5MwwMNIesXCuuTGZDJ3xTABwAVLK2qC9Ektfbo0CZCiPVuDRQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-events": "7.4.6", + "@storybook/csf": "^0.1.0", + "@storybook/docs-tools": "7.4.6", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", + "@types/lodash": "^4.14.167", + "color-convert": "^2.0.1", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.1.8", + "memoizerific": "^1.11.3", + "polished": "^4.2.2", + "react-colorful": "^5.1.2", + "telejson": "^7.2.0", + "tocbot": "^4.20.1", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@storybook/addon-controls/node_modules/@storybook/channels": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", @@ -5177,6 +5205,24 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/docs-tools": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.4.6.tgz", + "integrity": "sha512-nZj1L/8WwKWWJ41FW4MaKGajZUtrhnr9UwflRCkQJaWhAKmDfOb5M5TqI93uCOULpFPOm5wpoMBz2IHInQ2Lrg==", + "dev": true, + "dependencies": { + "@storybook/core-common": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/types": "7.4.6", + "@types/doctrine": "^0.0.3", + "doctrine": "^3.0.0", + "lodash": "^4.17.21" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, "node_modules/@storybook/addon-controls/node_modules/@storybook/manager-api": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", @@ -5314,6 +5360,45 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/blocks": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.4.6.tgz", + "integrity": "sha512-HxBSAeOiTZW2jbHQlo1upRWFgoMsaAyKijUFf5MwwMNIesXCuuTGZDJ3xTABwAVLK2qC9Ektfbo0CZCiPVuDRQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-events": "7.4.6", + "@storybook/csf": "^0.1.0", + "@storybook/docs-tools": "7.4.6", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", + "@types/lodash": "^4.14.167", + "color-convert": "^2.0.1", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.1.8", + "memoizerific": "^1.11.3", + "polished": "^4.2.2", + "react-colorful": "^5.1.2", + "telejson": "^7.2.0", + "tocbot": "^4.20.1", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@storybook/addon-docs/node_modules/@storybook/channels": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", @@ -5371,6 +5456,41 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/core-common": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.4.6.tgz", + "integrity": "sha512-05MJFmOM86qvTLtgDskokIFz9txe0Lbhq4L3by1FtF0GwgH+p+W6I94KI7c6ANER+kVZkXQZhiRzwBFnVTW+Cg==", + "dev": true, + "dependencies": { + "@storybook/core-events": "7.4.6", + "@storybook/node-logger": "7.4.6", + "@storybook/types": "7.4.6", + "@types/find-cache-dir": "^3.2.1", + "@types/node": "^16.0.0", + "@types/node-fetch": "^2.6.4", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.18.0", + "esbuild-register": "^3.4.0", + "file-system-cache": "2.3.0", + "find-cache-dir": "^3.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^10.0.0", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "node-fetch": "^2.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, "node_modules/@storybook/addon-docs/node_modules/@storybook/core-events": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", @@ -5384,6 +5504,55 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/docs-tools": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.4.6.tgz", + "integrity": "sha512-nZj1L/8WwKWWJ41FW4MaKGajZUtrhnr9UwflRCkQJaWhAKmDfOb5M5TqI93uCOULpFPOm5wpoMBz2IHInQ2Lrg==", + "dev": true, + "dependencies": { + "@storybook/core-common": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/types": "7.4.6", + "@types/doctrine": "^0.0.3", + "doctrine": "^3.0.0", + "lodash": "^4.17.21" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/manager-api": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.2.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@storybook/addon-docs/node_modules/@storybook/node-logger": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.4.6.tgz", @@ -5408,6 +5577,25 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/router": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.4.6", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@storybook/addon-docs/node_modules/@storybook/theming": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", @@ -5444,6 +5632,12 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/addon-docs/node_modules/@types/node": { + "version": "16.18.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.68.tgz", + "integrity": "sha512-sG3hPIQwJLoewrN7cr0dwEy+yF5nD4D/4FxtQpFciRD/xwUzgD+G05uxZHv5mhfXo4F9Jkp13jjn0CC2q325sg==", + "dev": true + }, "node_modules/@storybook/addon-essentials": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.4.6.tgz", @@ -6810,22 +7004,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.4.6.tgz", - "integrity": "sha512-HxBSAeOiTZW2jbHQlo1upRWFgoMsaAyKijUFf5MwwMNIesXCuuTGZDJ3xTABwAVLK2qC9Ektfbo0CZCiPVuDRQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.4.tgz", + "integrity": "sha512-iXinXXhTUBtReREP1Jifpu35DnGg7FidehjvCM8sM4E4aymfb8czdg9DdvG46T2UFUPUct36nnjIdMLWOya8Bw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.6", - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.4.6", + "@storybook/channels": "7.6.4", + "@storybook/client-logger": "7.6.4", + "@storybook/components": "7.6.4", + "@storybook/core-events": "7.6.4", + "@storybook/csf": "^0.1.2", + "@storybook/docs-tools": "7.6.4", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", + "@storybook/manager-api": "7.6.4", + "@storybook/preview-api": "7.6.4", + "@storybook/theming": "7.6.4", + "@storybook/types": "7.6.4", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -6849,13 +7043,13 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/channels": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", - "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.4.tgz", + "integrity": "sha512-Z4PY09/Czl70ap4ObmZ4bgin+EQhPaA3HdrEDNwpnH7A9ttfEO5u5KThytIjMq6kApCCihmEPDaYltoVrfYJJA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/core-events": "7.4.6", + "@storybook/client-logger": "7.6.4", + "@storybook/core-events": "7.6.4", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6867,9 +7061,9 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/client-logger": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", - "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.4.tgz", + "integrity": "sha512-vJwMShC98tcoFruRVQ4FphmFqvAZX1FqZqjFyk6IxtFumPKTVSnXJjlU1SnUIkSK2x97rgdUMqkdI+wAv/tugQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6880,18 +7074,18 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/components": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.4.6.tgz", - "integrity": "sha512-nIRBhewAgrJJVafyCzuaLx1l+YOfvvD5dOZ0JxZsxJsefOdw1jFpUqUZ5fIpQ2moyvrR0mAUFw378rBfMdHz5Q==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.4.tgz", + "integrity": "sha512-K5RvEObJAnX+SbGJbkM1qrZEk+VR2cUhRCSrFnlfMwsn8/60T3qoH7U8bCXf8krDgbquhMwqev5WzDB+T1VV8g==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.4.6", - "@storybook/csf": "^0.1.0", + "@storybook/client-logger": "7.6.4", + "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", + "@storybook/theming": "7.6.4", + "@storybook/types": "7.6.4", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -6906,21 +7100,21 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/core-common": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.4.6.tgz", - "integrity": "sha512-05MJFmOM86qvTLtgDskokIFz9txe0Lbhq4L3by1FtF0GwgH+p+W6I94KI7c6ANER+kVZkXQZhiRzwBFnVTW+Cg==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.4.tgz", + "integrity": "sha512-qes4+mXqINu0kCgSMFjk++GZokmYjb71esId0zyJsk0pcIPkAiEjnhbSEQkMhbUfcvO1lztoaQTBW2P7Rd1tag==", "dev": true, "dependencies": { - "@storybook/core-events": "7.4.6", - "@storybook/node-logger": "7.4.6", - "@storybook/types": "7.4.6", + "@storybook/core-events": "7.6.4", + "@storybook/node-logger": "7.6.4", + "@storybook/types": "7.6.4", "@types/find-cache-dir": "^3.2.1", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", "@types/pretty-hrtime": "^1.0.0", "chalk": "^4.1.0", "esbuild": "^0.18.0", - "esbuild-register": "^3.4.0", + "esbuild-register": "^3.5.0", "file-system-cache": "2.3.0", "find-cache-dir": "^3.0.0", "find-up": "^5.0.0", @@ -6941,9 +7135,9 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/core-events": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", - "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.4.tgz", + "integrity": "sha512-i3xzcJ19ILSy4oJL5Dz9y0IlyApynn5RsGhAMIsW+mcfri+hGfeakq1stNCo0o7jW4Y3A7oluFTtIoK8DOxQdQ==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6954,15 +7148,16 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/docs-tools": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.4.6.tgz", - "integrity": "sha512-nZj1L/8WwKWWJ41FW4MaKGajZUtrhnr9UwflRCkQJaWhAKmDfOb5M5TqI93uCOULpFPOm5wpoMBz2IHInQ2Lrg==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.4.tgz", + "integrity": "sha512-2eGam43aD7O3cocA72Z63kRi7t/ziMSpst0qB218QwBWAeZjT4EYDh8V6j/Xhv6zVQL3msW7AglrQP5kCKPvPA==", "dev": true, "dependencies": { - "@storybook/core-common": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/types": "7.4.6", + "@storybook/core-common": "7.6.4", + "@storybook/preview-api": "7.6.4", + "@storybook/types": "7.6.4", "@types/doctrine": "^0.0.3", + "assert": "^2.1.0", "doctrine": "^3.0.0", "lodash": "^4.17.21" }, @@ -6972,19 +7167,19 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/manager-api": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", - "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.4.tgz", + "integrity": "sha512-RFb/iaBJfXygSgXkINPRq8dXu7AxBicTGX7MxqKXbz5FU7ANwV7abH6ONBYURkSDOH9//TQhRlVkF5u8zWg3bw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.6", - "@storybook/client-logger": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/csf": "^0.1.0", + "@storybook/channels": "7.6.4", + "@storybook/client-logger": "7.6.4", + "@storybook/core-events": "7.6.4", + "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.6", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", + "@storybook/router": "7.6.4", + "@storybook/theming": "7.6.4", + "@storybook/types": "7.6.4", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6996,49 +7191,67 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@storybook/blocks/node_modules/@storybook/node-logger": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.4.6.tgz", - "integrity": "sha512-djZb310Q27GviDug1XBv0jOEDLCiwr4hhDE0aifCEKZpfNCi/EaP31nbWimFzZwxu4hE/YAPWExzScruR1zw9Q==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.4.tgz", + "integrity": "sha512-GDkEnnDj4Op+PExs8ZY/P6ox3wg453CdEIaR8PR9TxF/H/T2fBL6puzma3hN2CMam6yzfAL8U+VeIIDLQ5BZdQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/preview-api": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.4.tgz", + "integrity": "sha512-KhisNdQX5NdfAln+spLU4B82d804GJQp/CnI5M1mm/taTnjvMgs/wTH9AmR89OPoq+tFZVW0vhy2zgPS3ar71A==", "dev": true, + "dependencies": { + "@storybook/channels": "7.6.4", + "@storybook/client-logger": "7.6.4", + "@storybook/core-events": "7.6.4", + "@storybook/csf": "^0.1.2", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.6.4", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, "node_modules/@storybook/blocks/node_modules/@storybook/router": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", - "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.4.tgz", + "integrity": "sha512-5MQ7Z4D7XNPN2yhFgjey7hXOYd6s8CggUqeAwhzGTex90SMCkKHSz1hfkcXn1ZqBPaall2b53uK553OvPLp9KQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.6", + "@storybook/client-logger": "7.6.4", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@storybook/blocks/node_modules/@storybook/theming": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", - "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.4.tgz", + "integrity": "sha512-Z/dcC5EpkIXelYCkt9ojnX6D7qGOng8YHxV/OWlVE9TrEGYVGPOEfwQryR0RhmGpDha1TYESLYrsDb4A8nJ1EA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.6", + "@storybook/client-logger": "7.6.4", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -7052,12 +7265,12 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/types": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", - "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.4.tgz", + "integrity": "sha512-qyiiXPCvol5uVgfubcIMzJBA0awAyFPU+TyUP1mkPYyiTHnsHYel/mKlSdPjc8a97N3SlJXHOCx41Hde4IyJgg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.6", + "@storybook/channels": "7.6.4", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7068,10 +7281,13 @@ } }, "node_modules/@storybook/blocks/node_modules/@types/node": { - "version": "16.18.58", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.58.tgz", - "integrity": "sha512-YGncyA25/MaVtQkjWW9r0EFBukZ+JulsLcVZBlGUfIb96OBMjkoRWwQo5IEWJ8Fj06Go3GHw+bjYDitv6BaGsA==", - "dev": true + "version": "18.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz", + "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@storybook/builder-manager": { "version": "7.4.5", @@ -8308,9 +8524,9 @@ } }, "node_modules/@storybook/csf": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.1.tgz", - "integrity": "sha512-4hE3AlNVxR60Wc5KSC68ASYzUobjPqtSKyhV6G+ge0FIXU55N5nTY7dXGRZHQGDBPq+XqchMkIdlkHPRs8nTHg==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.2.tgz", + "integrity": "sha512-ePrvE/pS1vsKR9Xr+o+YwdqNgHUyXvg+1Xjx0h9LrVx7Zq4zNe06pd63F5EvzTbCbJsHj7GHr9tkiaqm7U8WRA==", "dev": true, "dependencies": { "type-fest": "^2.19.0" @@ -9752,7 +9968,7 @@ "version": "3.19.11", "resolved": "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.19.11.tgz", "integrity": "sha512-ny4i4BOoZxdc9DrSa9RrasXHPRFgt0PeINgj/CegzKu7CJO+UQP0KnjebYJ+KoLymyUbCX86vmqz5B3LK10w5Q==", - "dev": true + "devOptional": true }, "node_modules/@types/cytoscape-popper": { "version": "2.0.3", @@ -11830,7 +12046,6 @@ "version": "4.21.10", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -13988,8 +14203,7 @@ "node_modules/electron-to-chromium": { "version": "1.4.525", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.525.tgz", - "integrity": "sha512-GIZ620hDK4YmIqAWkscG4W6RwY6gOx1y5J6f4JUQwctiJrqH2oxZYU4mXHi35oV32tr630UcepBzSBGJ/WYcZA==", - "dev": true + "integrity": "sha512-GIZ620hDK4YmIqAWkscG4W6RwY6gOx1y5J6f4JUQwctiJrqH2oxZYU4mXHi35oV32tr630UcepBzSBGJ/WYcZA==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -14322,7 +14536,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, "engines": { "node": ">=6" } @@ -15832,7 +16045,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -18727,7 +18939,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -19038,7 +19249,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "dependencies": { "yallist": "^3.0.2" } @@ -19680,8 +19890,7 @@ "node_modules/node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/normalize-package-data": { "version": "3.0.3", @@ -24129,7 +24338,6 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, "funding": [ { "type": "opencollective", @@ -24877,8 +25085,7 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { "version": "2.3.2", diff --git a/dashboard/package.json b/dashboard/package.json index 6f96ea004..e07e1b6a2 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -44,7 +44,7 @@ "@storybook/addon-interactions": "^7.5.3", "@storybook/addon-links": "^7.5.3", "@storybook/addons": "^7.4.6", - "@storybook/blocks": "^7.4.5", + "@storybook/blocks": "^7.6.4", "@storybook/nextjs": "^7.5.2", "@storybook/preview-api": "^7.4.6", "@storybook/react": "^7.4.6", From 6cf6e968135bb6ad67753b290a89a0c2a878fc9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:30:18 +0530 Subject: [PATCH 3/3] chore(deps-dev): bump @testing-library/react in /dashboard (#1221) Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 14.0.0 to 14.1.2. - [Release notes](https://github.com/testing-library/react-testing-library/releases) - [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/react-testing-library/compare/v14.0.0...v14.1.2) --- updated-dependencies: - dependency-name: "@testing-library/react" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Azanul Haque <42029519+Azanul@users.noreply.github.com> --- dashboard/package-lock.json | 8 ++++---- dashboard/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dashboard/package-lock.json b/dashboard/package-lock.json index c074f2e0a..777fdc1f5 100644 --- a/dashboard/package-lock.json +++ b/dashboard/package-lock.json @@ -44,7 +44,7 @@ "@storybook/testing-library": "^0.2.2", "@storybook/theming": "^7.5.3", "@testing-library/jest-dom": "^6.1.4", - "@testing-library/react": "^14.0.0", + "@testing-library/react": "^14.1.2", "@types/cytoscape": "^3.19.11", "@types/cytoscape-popper": "^2.0.3", "@types/jest": "^29.5.6", @@ -9814,9 +9814,9 @@ } }, "node_modules/@testing-library/react": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.0.0.tgz", - "integrity": "sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==", + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.1.2.tgz", + "integrity": "sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.5", diff --git a/dashboard/package.json b/dashboard/package.json index e07e1b6a2..699a7acaa 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -51,7 +51,7 @@ "@storybook/testing-library": "^0.2.2", "@storybook/theming": "^7.5.3", "@testing-library/jest-dom": "^6.1.4", - "@testing-library/react": "^14.0.0", + "@testing-library/react": "^14.1.2", "@types/cytoscape": "^3.19.11", "@types/cytoscape-popper": "^2.0.3", "@types/jest": "^29.5.6",