mirror of
https://github.com/sourcegraph/sourcegraph.git
synced 2026-02-06 13:31:54 +00:00
disable frontend code coverage tracking (#57820)
Our tracking of frontend (TypeScript) code coverage has decayed and was no longer being used. The Codecov report at https://app.codecov.io/gh/sourcegraph/sourcegraph significantly under-counts coverage, and what coverage tasks we did have were flaky in CI and relied on old libraries that have not been updated recently to keep with modern practices (such as `@storybook/addon-storyshots` only supporting Jest with `injectGlobals`). From https://sourcegraph.slack.com/archives/C04MYFW01NV/p1698059032863009?thread_ts=1698054092.709309&cid=C04MYFW01NV, the proposal is to remove coverage tracking for now and prioritize getting tests to run really fast and smooth locally first, including upgrading our testing infra, and then reenable code coverage tracking.
This commit is contained in:
parent
d8da82f5c1
commit
59c82bcfb1
@ -1,13 +0,0 @@
|
||||
env:
|
||||
ENTERPRISE: '1'
|
||||
MINIFY: '1'
|
||||
FORCE_COLOR: '3'
|
||||
NODE_OPTIONS: --max_old_space_size=8192
|
||||
|
||||
steps:
|
||||
- command:
|
||||
- COVERAGE_INSTRUMENT=true dev/ci/pnpm-run.sh storybook:build
|
||||
- pnpm cover-storybook
|
||||
- pnpm nyc report -r json
|
||||
- bash <(curl -s https://codecov.io/bash) -c -F typescript -F storybook
|
||||
label: ':storybook::codecov: Storybook coverage'
|
||||
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -6,7 +6,6 @@
|
||||
"ui/assets/": true,
|
||||
"ui/assets/*.go": false,
|
||||
"client/browser/build": true,
|
||||
"**/coverage": true,
|
||||
"**/out": true,
|
||||
"**/__fixtures__/**": true,
|
||||
"**/.cache": true,
|
||||
@ -39,7 +38,6 @@
|
||||
"local": "github.com/sourcegraph/sourcegraph"
|
||||
},
|
||||
"jest.jestCommandLine": "pnpm run test",
|
||||
"jest.showCoverageOnLoad": false,
|
||||
"gulp.autoDetect": "off",
|
||||
"npm.packageManager": "pnpm",
|
||||
"npm.runSilent": true,
|
||||
|
||||
@ -1,12 +1,9 @@
|
||||
// @ts-check
|
||||
const path = require('path')
|
||||
|
||||
// A minimal babel config only for jest transformations.
|
||||
// All typescript and react transformations are done by previous
|
||||
// bazel build rules, so we only need to do jest transformations here.
|
||||
|
||||
const logger = require('signale')
|
||||
|
||||
// TODO(bazel): drop when non-bazel removed.
|
||||
if (!(process.env.JS_BINARY__TARGET || process.env.BAZEL_BINDIR || process.env.BAZEL_TEST)) {
|
||||
throw new Error(__filename + ' is only for use with Bazel')
|
||||
@ -16,19 +13,8 @@ if (!(process.env.JS_BINARY__TARGET || process.env.BAZEL_BINDIR || process.env.B
|
||||
module.exports = api => {
|
||||
api.cache.forever()
|
||||
|
||||
/**
|
||||
* Whether to instrument files with istanbul for code coverage.
|
||||
* This is needed for e2e test coverage.
|
||||
*/
|
||||
const instrument = Boolean(process.env.COVERAGE_INSTRUMENT && JSON.parse(process.env.COVERAGE_INSTRUMENT))
|
||||
if (instrument) {
|
||||
logger.info('Instrumenting code for coverage tracking')
|
||||
}
|
||||
|
||||
return {
|
||||
presets: [
|
||||
// Can't put this in plugins because it needs to run as the last plugin.
|
||||
...(instrument ? [{ plugins: [['babel-plugin-istanbul', { cwd: path.resolve(__dirname) }]] }] : []),
|
||||
[
|
||||
'@babel/preset-env',
|
||||
{
|
||||
|
||||
@ -1,22 +1,10 @@
|
||||
// @ts-check
|
||||
const path = require('path')
|
||||
|
||||
const logger = require('signale')
|
||||
|
||||
/** @type {import('@babel/core').ConfigFunction} */
|
||||
module.exports = api => {
|
||||
const isTest = api.env('test')
|
||||
api.cache.forever()
|
||||
|
||||
/**
|
||||
* Whether to instrument files with istanbul for code coverage.
|
||||
* This is needed for e2e test coverage.
|
||||
*/
|
||||
const instrument = Boolean(process.env.COVERAGE_INSTRUMENT && JSON.parse(process.env.COVERAGE_INSTRUMENT))
|
||||
if (instrument) {
|
||||
logger.info('Instrumenting code for coverage tracking')
|
||||
}
|
||||
|
||||
/**
|
||||
* Do no use babel-preset-env for mocha tests transpilation in Bazel.
|
||||
* This is temporary workaround to allow us to use modern language featurs in `drive.page.evaluate` calls.
|
||||
@ -25,8 +13,6 @@ module.exports = api => {
|
||||
|
||||
return {
|
||||
presets: [
|
||||
// Can't put this in plugins because it needs to run as the last plugin.
|
||||
...(instrument ? [{ plugins: [['babel-plugin-istanbul', { cwd: path.resolve(__dirname) }]] }] : []),
|
||||
...(disablePresetEnv
|
||||
? []
|
||||
: [
|
||||
|
||||
@ -17,7 +17,6 @@
|
||||
"node_modules",
|
||||
"../../node_modules",
|
||||
"./build/**/*",
|
||||
"coverage",
|
||||
"stories", // TODO fix type errors and include
|
||||
"src/end-to-end",
|
||||
],
|
||||
|
||||
@ -1,7 +1,3 @@
|
||||
# Sourcegraph extension API
|
||||
|
||||
[](https://codecov.io/gh/sourcegraph/sourcegraph/tree/main/packages/extension-api/src)
|
||||
[](https://github.com/prettier/prettier)
|
||||
[](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/tree/packages/extension-api)
|
||||
|
||||
This package contains only the types for the [Sourcegraph extension API](https://unpkg.com/sourcegraph/dist/docs/index.html) ([`sourcegraph.d.ts`](https://github.com/sourcegraph/sourcegraph/blob/main/packages/extension-api/src/sourcegraph.d.ts)).
|
||||
This package contains only the types for the DEPRECATED [Sourcegraph extension API](https://unpkg.com/sourcegraph/dist/docs/index.html) ([`sourcegraph.d.ts`](https://github.com/sourcegraph/sourcegraph/blob/main/packages/extension-api/src/sourcegraph.d.ts)).
|
||||
|
||||
@ -42,7 +42,6 @@ ts_project(
|
||||
"batches.ts",
|
||||
"config.ts",
|
||||
"console.ts",
|
||||
"coverage.ts",
|
||||
"dom-test-helpers.ts",
|
||||
"dom-utils.ts",
|
||||
"driver.ts",
|
||||
@ -81,7 +80,6 @@ ts_project(
|
||||
"//:node_modules/@types/puppeteer",
|
||||
"//:node_modules/@types/react",
|
||||
"//:node_modules/@types/sinon",
|
||||
"//:node_modules/@types/uuid",
|
||||
"//:node_modules/axe-core",
|
||||
"//:node_modules/chalk",
|
||||
"//:node_modules/comlink",
|
||||
@ -108,7 +106,6 @@ ts_project(
|
||||
"//:node_modules/term-size",
|
||||
"//:node_modules/ts-key-enum",
|
||||
"//:node_modules/util",
|
||||
"//:node_modules/uuid",
|
||||
"//client/shared:graphql_operations",
|
||||
"//client/shared:node_modules/@sourcegraph/build-config",
|
||||
"//client/shared:node_modules/@sourcegraph/client-api",
|
||||
|
||||
@ -1,67 +0,0 @@
|
||||
import { writeFile, mkdir } from 'mz/fs'
|
||||
import pTimeout from 'p-timeout'
|
||||
import type { Browser, WebWorker } from 'puppeteer'
|
||||
import * as uuid from 'uuid'
|
||||
|
||||
import { logger } from '@sourcegraph/common'
|
||||
|
||||
import type { Driver } from './driver'
|
||||
|
||||
declare global {
|
||||
interface FileCoverage {
|
||||
/** Absolute path. */
|
||||
path: string
|
||||
hash: string
|
||||
// fnMap, branchMap, statementMap, s, f, b, _coverageSchema
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-var
|
||||
var __coverage__: Record<string, FileCoverage> | undefined
|
||||
}
|
||||
|
||||
let warnedNoCoverage = false
|
||||
|
||||
/**
|
||||
* Saves coverage recorded by the instrumented code in `.nyc_output` after each test.
|
||||
*/
|
||||
export function afterEachRecordCoverage(getDriver: () => Driver): void {
|
||||
afterEach(() => recordCoverage(getDriver().browser))
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves coverage recorded by the instrumented code in `.nyc_output`.
|
||||
*/
|
||||
export async function recordCoverage(browser: Browser): Promise<void> {
|
||||
await mkdir('.nyc_output', { recursive: true })
|
||||
// Get pages, web workers, background pages, etc.
|
||||
const targets = browser.targets()
|
||||
|
||||
await Promise.all(
|
||||
targets.map(async target => {
|
||||
if (target.url() === 'about:blank') {
|
||||
return
|
||||
}
|
||||
const executionContext = (await target.worker()) ?? (await target.page())
|
||||
if (!executionContext) {
|
||||
return
|
||||
}
|
||||
const coverage: typeof __coverage__ | void = await pTimeout(
|
||||
(executionContext as WebWorker).evaluate(() => globalThis.__coverage__),
|
||||
2000,
|
||||
() => {
|
||||
if (!warnedNoCoverage) {
|
||||
logger.error(
|
||||
`No coverage found in target ${target.url()}\n` +
|
||||
'Run the dev Sourcegraph instance with COVERAGE_INSTRUMENT=true to track coverage.'
|
||||
)
|
||||
warnedNoCoverage = true
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
if (coverage) {
|
||||
await writeFile(`.nyc_output/${uuid.v4()}.json`, JSON.stringify(coverage), { flag: 'wx' })
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
@ -18,7 +18,6 @@ import { logger, asError, keyExistsIn } from '@sourcegraph/common'
|
||||
import type { ErrorGraphQLResult, GraphQLResult } from '@sourcegraph/http-client'
|
||||
|
||||
import { getConfig } from '../config'
|
||||
import { recordCoverage } from '../coverage'
|
||||
import type { Driver } from '../driver'
|
||||
import { readEnvironmentString } from '../utils'
|
||||
|
||||
@ -308,11 +307,6 @@ export const createSharedIntegrationTestContext = async <
|
||||
}
|
||||
|
||||
subscriptions.unsubscribe()
|
||||
await pTimeout(
|
||||
recordCoverage(driver.browser),
|
||||
DISPOSE_ACTION_TIMEOUT,
|
||||
new Error('Recording coverage timed out')
|
||||
)
|
||||
|
||||
if (driver.page.url() !== 'about:blank') {
|
||||
await pTimeout(
|
||||
|
||||
@ -71,20 +71,6 @@ ts_project(
|
||||
],
|
||||
)
|
||||
|
||||
ts_project(
|
||||
name = "storybook_tests",
|
||||
testonly = True,
|
||||
srcs = ["src/coverage.test.ts"],
|
||||
tsconfig = ":tsconfig",
|
||||
deps = [
|
||||
":node_modules/@sourcegraph/shared",
|
||||
"//:node_modules/@storybook/addon-storyshots",
|
||||
"//:node_modules/@storybook/addon-storyshots-puppeteer",
|
||||
"//:node_modules/@types/node",
|
||||
"//:node_modules/url",
|
||||
],
|
||||
)
|
||||
|
||||
npm_package(
|
||||
name = "storybook_pkg",
|
||||
srcs = [
|
||||
|
||||
@ -6,7 +6,6 @@ const exportedConfig = {
|
||||
...config,
|
||||
displayName: 'storybooks',
|
||||
rootDir: __dirname,
|
||||
collectCoverage: false, // Collected through Puppeteer
|
||||
roots: ['<rootDir>'],
|
||||
verbose: true,
|
||||
}
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
import path from 'path'
|
||||
import { pathToFileURL } from 'url'
|
||||
|
||||
import initStoryshots from '@storybook/addon-storyshots'
|
||||
import { puppeteerTest } from '@storybook/addon-storyshots-puppeteer'
|
||||
|
||||
import { recordCoverage } from '@sourcegraph/shared/src/testing/coverage'
|
||||
|
||||
// This test suite does not actually test anything.
|
||||
// It just loads up the storybook in Puppeteer and records its coverage,
|
||||
// so it can be tracked in Codecov.
|
||||
|
||||
initStoryshots({
|
||||
configPath: __dirname,
|
||||
suite: 'Storybook',
|
||||
test: puppeteerTest({
|
||||
storybookUrl: pathToFileURL(path.resolve(__dirname, '../storybook-static')).href,
|
||||
testBody: async page => {
|
||||
await recordCoverage(page.browser())
|
||||
},
|
||||
}),
|
||||
})
|
||||
BIN
client/web/dist/img/codecov.png
vendored
BIN
client/web/dist/img/codecov.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 5.6 KiB |
@ -3,7 +3,6 @@ import { sortBy } from 'lodash'
|
||||
import { describe, test, before, beforeEach, after } from 'mocha'
|
||||
|
||||
import { getConfig } from '@sourcegraph/shared/src/testing/config'
|
||||
import { afterEachRecordCoverage } from '@sourcegraph/shared/src/testing/coverage'
|
||||
import type { Driver } from '@sourcegraph/shared/src/testing/driver'
|
||||
import { afterEachSaveScreenshotIfFailed } from '@sourcegraph/shared/src/testing/screenshotReporter'
|
||||
import { retry } from '@sourcegraph/shared/src/testing/utils'
|
||||
@ -36,7 +35,6 @@ describe('Repository component', () => {
|
||||
after('Close browser', () => driver?.close())
|
||||
|
||||
afterEachSaveScreenshotIfFailed(() => driver.page)
|
||||
afterEachRecordCoverage(() => driver)
|
||||
|
||||
beforeEach(async () => {
|
||||
if (driver) {
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import { describe, test, before, after } from 'mocha'
|
||||
|
||||
import { getConfig } from '@sourcegraph/shared/src/testing/config'
|
||||
import { afterEachRecordCoverage } from '@sourcegraph/shared/src/testing/coverage'
|
||||
import type { Driver } from '@sourcegraph/shared/src/testing/driver'
|
||||
import { afterEachSaveScreenshotIfFailed } from '@sourcegraph/shared/src/testing/screenshotReporter'
|
||||
|
||||
@ -26,7 +25,6 @@ describe('Site Admin', () => {
|
||||
after('Close browser', () => driver?.close())
|
||||
|
||||
afterEachSaveScreenshotIfFailed(() => driver.page)
|
||||
afterEachRecordCoverage(() => driver)
|
||||
|
||||
// Flaky https://github.com/sourcegraph/sourcegraph/issues/45531
|
||||
test.skip('Overview', async () => {
|
||||
|
||||
@ -2,7 +2,6 @@ import expect from 'expect'
|
||||
import { describe, test, before, after } from 'mocha'
|
||||
|
||||
import { getConfig } from '@sourcegraph/shared/src/testing/config'
|
||||
import { afterEachRecordCoverage } from '@sourcegraph/shared/src/testing/coverage'
|
||||
import type { Driver } from '@sourcegraph/shared/src/testing/driver'
|
||||
import { afterEachSaveScreenshotIfFailed } from '@sourcegraph/shared/src/testing/screenshotReporter'
|
||||
|
||||
@ -20,7 +19,6 @@ describe('Theme switcher', () => {
|
||||
after('Close browser', () => driver?.close())
|
||||
|
||||
afterEachSaveScreenshotIfFailed(() => driver.page)
|
||||
afterEachRecordCoverage(() => driver)
|
||||
|
||||
const getActiveThemeClasses = (): Promise<string[]> =>
|
||||
driver.page.evaluate(() => {
|
||||
|
||||
@ -201,7 +201,7 @@ func TestResolverTo(t *testing.T) {
|
||||
// This test exists purely to remove some non determinism in our tests
|
||||
// run. The To* resolvers are stored in a map in our graphql
|
||||
// implementation => the order we call them is non deterministic =>
|
||||
// codecov coverage reports are noisy.
|
||||
// code coverage reports are noisy.
|
||||
resolvers := []any{
|
||||
&FileMatchResolver{db: db},
|
||||
&NamespaceResolver{},
|
||||
|
||||
1899
dev/ci/codecov.sh
1899
dev/ci/codecov.sh
File diff suppressed because it is too large
Load Diff
@ -12,9 +12,3 @@ bazel \
|
||||
--bazelrc=.aspect/bazelrc/ci.sourcegraph.bazelrc \
|
||||
test \
|
||||
//client/web/src/end-to-end:e2e
|
||||
# env SOURCEGRAPH_BASE_URL="$URL" pnpm run cover-e2e
|
||||
|
||||
# echo "--- coverage"
|
||||
# pnpm nyc report -r json
|
||||
# # Upload the coverage under the "e2e" flag (toggleable in the CodeCov UI)
|
||||
# ./dev/ci/codecov.sh -F e2e
|
||||
|
||||
@ -136,8 +136,7 @@ func addWebAppTests(opts CoreTestOperationsOptions) operations.Operation {
|
||||
TestReports: &bk.TestReportOpts{
|
||||
TestSuiteKeyVariableName: "BUILDKITE_ANALYTICS_FRONTEND_UNIT_TEST_SUITE_API_KEY",
|
||||
},
|
||||
}),
|
||||
bk.Cmd("dev/ci/codecov.sh -c -F typescript -F unit"))
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
@ -201,9 +200,7 @@ func addBrowserExtensionIntegrationTests(parallelTestCount int) operations.Opera
|
||||
bk.Env("PERCY_PARALLEL_TOTAL", strconv.Itoa(testCount)),
|
||||
bk.Cmd("pnpm install --frozen-lockfile --fetch-timeout 60000"),
|
||||
bk.Cmd("pnpm --filter @sourcegraph/browser run build"),
|
||||
bk.Cmd("pnpm run cover-browser-integration"),
|
||||
bk.Cmd("pnpm nyc report -r json"),
|
||||
bk.Cmd("dev/ci/codecov.sh -c -F typescript -F integration"),
|
||||
bk.Cmd("pnpm run test-browser-integration"),
|
||||
bk.ArtifactPaths("./puppeteer/*.png"),
|
||||
)
|
||||
}
|
||||
@ -237,8 +234,7 @@ func addBrowserExtensionUnitTests(pipeline *bk.Pipeline) {
|
||||
TestReports: &bk.TestReportOpts{
|
||||
TestSuiteKeyVariableName: "BUILDKITE_ANALYTICS_FRONTEND_UNIT_TEST_SUITE_API_KEY",
|
||||
},
|
||||
}),
|
||||
bk.Cmd("dev/ci/codecov.sh -c -F typescript -F unit"))
|
||||
}))
|
||||
}
|
||||
|
||||
func addJetBrainsUnitTests(pipeline *bk.Pipeline) {
|
||||
@ -264,7 +260,6 @@ func clientIntegrationTests(pipeline *bk.Pipeline) {
|
||||
bk.Key(prepStepKey),
|
||||
bk.Env("NODE_ENV", "production"),
|
||||
bk.Env("INTEGRATION_TESTS", "true"),
|
||||
bk.Env("COVERAGE_INSTRUMENT", "true"),
|
||||
bk.Cmd("dev/ci/pnpm-build.sh client/web"),
|
||||
bk.Cmd("dev/ci/create-client-artifact.sh"))
|
||||
|
||||
@ -327,8 +322,7 @@ func frontendTests(pipeline *bk.Pipeline) {
|
||||
TestReports: &bk.TestReportOpts{
|
||||
TestSuiteKeyVariableName: "BUILDKITE_ANALYTICS_FRONTEND_UNIT_TEST_SUITE_API_KEY",
|
||||
},
|
||||
}),
|
||||
bk.Cmd("dev/ci/codecov.sh -c -F typescript -F unit"))
|
||||
}))
|
||||
}
|
||||
|
||||
func addBrowserExtensionE2ESteps(pipeline *bk.Pipeline) {
|
||||
@ -389,17 +383,6 @@ func wait(pipeline *bk.Pipeline) {
|
||||
pipeline.AddWait()
|
||||
}
|
||||
|
||||
// Trigger the async pipeline to run. See pipeline.async.yaml.
|
||||
func triggerAsync(buildOptions bk.BuildOptions) operations.Operation {
|
||||
return func(pipeline *bk.Pipeline) {
|
||||
pipeline.AddTrigger(":snail: Trigger async", "sourcegraph-async",
|
||||
bk.Key("trigger:async"),
|
||||
bk.Async(true),
|
||||
bk.Build(buildOptions),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
func triggerReleaseBranchHealthchecks(minimumUpgradeableVersion string) operations.Operation {
|
||||
return func(pipeline *bk.Pipeline) {
|
||||
version := semver.MustParse(minimumUpgradeableVersion)
|
||||
|
||||
@ -151,14 +151,6 @@ func GeneratePipeline(c Config) (*bk.Pipeline, error) {
|
||||
ops.Merge(baseImageOps)
|
||||
}
|
||||
|
||||
// Now we set up conditional operations that only apply to pull requests.
|
||||
if c.Diff.Has(changed.Client) {
|
||||
// triggers a slow pipeline, currently only affects web. It's optional so we
|
||||
// set it up separately from CoreTestOperations
|
||||
ops.Merge(operations.NewNamedSet(operations.PipelineSetupSetName,
|
||||
triggerAsync(buildOptions)))
|
||||
}
|
||||
|
||||
if c.Diff.Has(changed.ClientBrowserExtensions) {
|
||||
ops.Merge(operations.NewNamedSet("Browser Extensions",
|
||||
addBrowserExtensionUnitTests,
|
||||
@ -279,10 +271,6 @@ func GeneratePipeline(c Config) (*bk.Pipeline, error) {
|
||||
)
|
||||
|
||||
default:
|
||||
// Slow async pipeline
|
||||
ops.Merge(operations.NewNamedSet(operations.PipelineSetupSetName,
|
||||
triggerAsync(buildOptions)))
|
||||
|
||||
// Executor VM image
|
||||
skipHashCompare := c.MessageFlags.SkipHashCompare || c.RunType.Is(runtype.ReleaseBranch, runtype.TaggedRelease) || c.Diff.Has(changed.ExecutorVMImage)
|
||||
// Slow image builds
|
||||
|
||||
@ -10,10 +10,4 @@ echo "--- Pnpm install in root"
|
||||
./dev/ci/pnpm-install-with-retry.sh
|
||||
|
||||
echo "--- Run integration test suite"
|
||||
pnpm percy exec --quiet -- pnpm _cover-integration "$@"
|
||||
|
||||
echo "--- Process NYC report"
|
||||
pnpm nyc report -r json
|
||||
|
||||
echo "--- Upload coverage report"
|
||||
dev/ci/codecov.sh -c -F typescript -F integration
|
||||
pnpm percy exec --quiet -- pnpm _test-integration "$@"
|
||||
|
||||
@ -1,59 +0,0 @@
|
||||
coverage:
|
||||
range: 50...75
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
informational: true
|
||||
codeintel:
|
||||
informational: true
|
||||
paths:
|
||||
- cmd/symbols
|
||||
- cmd/precise-code-intel-*
|
||||
- internal/codeintel
|
||||
batches:
|
||||
informational: true
|
||||
paths:
|
||||
- cmd/frontend/graphqlbackend/batches.go
|
||||
- internal/usagestats/batches.go
|
||||
- cmd/frontend/internal/batches
|
||||
- internal/batches
|
||||
- client/web/src/enterprise/batches
|
||||
insights:
|
||||
informational: true
|
||||
paths:
|
||||
- client/web/src/insights
|
||||
- client/web/src/views
|
||||
search:
|
||||
informational: true
|
||||
paths:
|
||||
- client/shared/src/search
|
||||
- client/web/src/enterprise/search
|
||||
- client/web/src/search
|
||||
- cmd/frontend/graphqlbackend/*search*
|
||||
- cmd/frontend/internal/search
|
||||
- cmd/searcher
|
||||
- internal/search
|
||||
typescript:
|
||||
informational: true
|
||||
flags:
|
||||
- typescript
|
||||
go:
|
||||
informational: true
|
||||
flags:
|
||||
- go
|
||||
patch:
|
||||
default:
|
||||
informational: true
|
||||
only_pulls: true
|
||||
target: 5%
|
||||
comment: false
|
||||
ignore:
|
||||
- '**/bindata.go'
|
||||
- 'client/vscode/**/*'
|
||||
|
||||
flags:
|
||||
typescript:
|
||||
carryforward: true
|
||||
|
||||
github_checks:
|
||||
annotations: false
|
||||
@ -156,7 +156,7 @@ func bazelTest(name, target string) *linter {
|
||||
// pnpmInstallFilter is a pipeline that filters out all the warning junk that pnpm install
|
||||
// emits that seem inconsequential, for example:
|
||||
//
|
||||
// warning "@storybook/addon-storyshots > react-test-renderer@16.14.0" has incorrect peer dependency "react@^16.14.0".
|
||||
// warning "@storybook/addon-foo > react-test-renderer@16.14.0" has incorrect peer dependency "react@^16.14.0".
|
||||
// warning " > @storybook/react@6.5.9" has unmet peer dependency "require-from-string@^2.0.2".
|
||||
// warning "@storybook/react > react-element-to-jsx-string@14.3.4" has incorrect peer dependency "react@^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1".
|
||||
// warning " > @testing-library/react-hooks@8.0.0" has incorrect peer dependency "react@^16.9.0 || ^17.0.0".
|
||||
|
||||
@ -112,7 +112,7 @@ If you want to learn more about batch changes:
|
||||
## Code insights
|
||||
|
||||
Code insights surface higher-level, aggregated information to leaders in engineering organizations in dashboards.
|
||||
For example, code insights can track the number of matches of a search query over time, the number of code navigation diagnostic warnings in a code base, usage of different programming languages, or even data from external services, like test coverage from Codecov.
|
||||
For example, code insights can track the number of matches of a search query over time, the number of code navigation diagnostic warnings in a code base or usage of different programming languages.
|
||||
Sample use cases for this are for tracking migrations, usage of libraries across an organization, tech debt, code base health, and much more.
|
||||
|
||||
Code Insights are persisted in a separate databased called `codeinsights-db`. The web application interacts with the backend through a [GraphQL API](../../../api/graphql/managing-code-insights-with-api.md).
|
||||
|
||||
@ -144,9 +144,6 @@ Will result in a single trace span for the `./dev/check/docsite.sh` script. But
|
||||
// ...
|
||||
bk.Cmd("pnpm install --frozen-lockfile --fetch-timeout 60000"),
|
||||
bk.Cmd("pnpm --filter @sourcegraph/browser -s run build"),
|
||||
bk.Cmd("pnpm run cover-browser-integration"),
|
||||
bk.Cmd("pnpm nyc report -r json"),
|
||||
bk.Cmd("dev/ci/codecov.sh -c -F typescript -F integration"),
|
||||
```
|
||||
|
||||
Therefore, it's beneficial for tracing purposes to split the step in multiple commands, if possible.
|
||||
|
||||
@ -36,7 +36,6 @@ pipeline.AddStep(":jest::chrome: Test browser extension",
|
||||
Paths: []string{"node_modules", ".pnpm/cache"},
|
||||
}),
|
||||
bk.Cmd("dev/ci/pnpm-test.sh client/browser"),
|
||||
bk.Cmd("dev/ci/codecov.sh -c -F typescript -F unit"))
|
||||
```
|
||||
|
||||
The important part here are:
|
||||
|
||||
@ -18,14 +18,12 @@ Also see [testing Go code](../background-information/languages/testing_go_code.m
|
||||
- First run `pnpm install` in the Sourcegraph root directory if it is a fresh clone.
|
||||
- To run all unit tests, run `pnpm test` from the root directory.
|
||||
- To run unit tests in development (only running the tests related to uncommitted code), run `pnpm test --watch`.
|
||||
- And/or use [vscode-jest](https://github.com/jest-community/vscode-jest) with `jest.autoEnable: true` (and, if you want, `jest.showCoverageOnLoad: true`)
|
||||
- And/or use [vscode-jest](https://github.com/jest-community/vscode-jest) with `jest.autoEnable: true`
|
||||
- To debug tests in VS Code, use [vscode-jest](https://github.com/jest-community/vscode-jest) and click the **Debug** code lens next to any `test('name ...', ...)` definition in your test file (be sure to set a breakpoint or break on uncaught exceptions by clicking in the left gutter).
|
||||
- You can also run `pnpm test` from any of the individual project dirs (`client/shared/`, `client/web/`, `client/browser/`).
|
||||
|
||||
Usually while developing you will either have `pnpm test --watch` running in a terminal or you will use vscode-jest.
|
||||
|
||||
Test coverage from unit tests is tracked in [Codecov](https://codecov.io/gh/sourcegraph/sourcegraph) under the `unit` flag.
|
||||
|
||||
### React component snapshot tests
|
||||
|
||||
[React component snapshot tests](https://jestjs.io/docs/en/tutorial-react) are one way of testing React components. They make it easy to see when changes to a React component result in different output. Snapshots are files at `__snapshots__/MyComponent.test.tsx.snap` relative to the component's file, and they are committed (so that you can see the changes in `git diff` or when reviewing a PR).
|
||||
@ -197,8 +195,6 @@ The role of these integration tests is to provide in-browser testing of complex
|
||||
All backend interactions are stubbed or recorded and replayed.
|
||||
The integration test suite for the webapp can be found in [`web/src/integration`](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/tree/web/src/integration).
|
||||
|
||||
Test coverage from integration tests is tracked in [Codecov](https://codecov.io/gh/sourcegraph/sourcegraph) under the flag `integration`.
|
||||
|
||||
#### Running integration tests
|
||||
|
||||
To run integration tests for the web app:
|
||||
@ -255,8 +251,6 @@ They can be found in [`web/src/end-to-end`](https://sourcegraph.com/github.com/s
|
||||
|
||||
The **regression test suite** is a special end-to-end test suite, which was created specifically for release testing and also contains some manual verification steps. As part of moving most of our current end-to-end tests to client & backend integration tests, the regression test suite will gradually be trimmed and phased out.
|
||||
|
||||
Test coverage by end-to-end tests is tracked in [Codecov](https://codecov.io/gh/sourcegraph/sourcegraph) under the flag `e2e`.
|
||||
|
||||
#### Running end-to-end tests
|
||||
|
||||
##### Starting a local instance
|
||||
|
||||
@ -49,10 +49,6 @@ const config = {
|
||||
// for example to change the URL in window.location
|
||||
testEnvironment: toPackagePath(path.join(rootDir, 'client/shared/dev/jest-environment.js')),
|
||||
|
||||
collectCoverage: !!process.env.CI,
|
||||
collectCoverageFrom: [`<rootDir>/src/**/*.{${SRC_EXT},${SRC_EXT}x}`],
|
||||
coverageDirectory: '<rootDir>/coverage',
|
||||
coveragePathIgnorePatterns: [/\/node_modules\//.source, /\.(test|story)\.[jt]sx?$/.source, /\.d\.ts$/.source],
|
||||
roots: ['<rootDir>/src'],
|
||||
snapshotResolver: path.join(rootDir, 'jest.snapshot-resolver.js'),
|
||||
|
||||
@ -94,10 +90,6 @@ const config = {
|
||||
},
|
||||
modulePaths: ['node_modules', '<rootDir>/src'],
|
||||
|
||||
// By default, don't clutter `pnpm run test --watch` output with the full coverage table. To see it, use the
|
||||
// `--coverageReporters text` jest option.
|
||||
coverageReporters: ['json', 'lcov', 'text-summary'],
|
||||
|
||||
setupFiles: [
|
||||
path.join(rootDir, 'client/shared/dev/mockDate.js'),
|
||||
// Needed for reusing API functions that use fetch
|
||||
|
||||
28
package.json
28
package.json
@ -34,11 +34,7 @@
|
||||
"test-integration": "NODE_ENV=production pnpm _test-integration \"./client/web/src/integration/**/*.test.ts\"",
|
||||
"test-integration:debug": "BROWSER=chrome KEEP_BROWSER=true DEVTOOLS=true DISABLE_APP_ASSETS_MOCKING=true WINDOW_WIDTH=1920 WINDOW_HEIGHT=1080 pnpm _test-integration --retries=0 --jobs=1",
|
||||
"test-browser-integration": "pnpm --filter @sourcegraph/browser run test-integration",
|
||||
"_cover-integration": "nyc --hook-require=false --silent pnpm _test-integration",
|
||||
"cover-integration": "nyc --hook-require=false --silent pnpm test-integration",
|
||||
"cover-browser-integration": "nyc --hook-require=false --silent pnpm --filter @sourcegraph/browser test-integration",
|
||||
"test-e2e": "TS_NODE_PROJECT=client/web/src/end-to-end/tsconfig.json mocha ./client/web/src/end-to-end/**/*.test.ts",
|
||||
"cover-e2e": "nyc --hook-require=false --silent pnpm test-e2e",
|
||||
"test-regression": "pnpm --filter @sourcegraph/web run test:regression",
|
||||
"storybook": "pnpm --filter @sourcegraph/storybook run start",
|
||||
"storybook:dll": "pnpm --filter @sourcegraph/storybook run start:dll",
|
||||
@ -49,7 +45,6 @@
|
||||
"storybook:web": "pnpm --filter @sourcegraph/web run storybook",
|
||||
"storybook:wildcard": "pnpm --filter @sourcegraph/wildcard run storybook",
|
||||
"storybook:build": "pnpm --filter @sourcegraph/storybook run build",
|
||||
"cover-storybook": "nyc --hook-require=false --silent pnpm jest client/storybook/src/coverage",
|
||||
"release": "cd dev/release && pnpm run release",
|
||||
"docsite:serve": "./dev/docsite.sh -config doc/docsite.json serve -http=localhost:5080",
|
||||
"build-browser-extension": "pnpm --filter @sourcegraph/browser run build",
|
||||
@ -57,24 +52,6 @@
|
||||
"chromatic": "CHROMATIC=true pnpm run _chromatic --storybook-config-dir client/storybook/src --build-script-name=storybook:build",
|
||||
"_chromatic": "chromatic"
|
||||
},
|
||||
"nyc": {
|
||||
"extends": "@istanbuljs/nyc-config-typescript",
|
||||
"all": true,
|
||||
"extension": [
|
||||
".tsx",
|
||||
".ts"
|
||||
],
|
||||
"include": [
|
||||
"client/*/src/**/*.ts?(x)"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"**/*.d.ts",
|
||||
"**/*.@(test|story).ts?(x)",
|
||||
"client/storybook",
|
||||
"client/shared/src/testing"
|
||||
]
|
||||
},
|
||||
"jscpd": {
|
||||
"gitignore": true,
|
||||
"ignore": [
|
||||
@ -103,7 +80,6 @@
|
||||
"@graphql-codegen/typescript-apollo-client-helpers": "^2.2.6",
|
||||
"@graphql-codegen/typescript-operations": "2.5.10",
|
||||
"@ianvs/prettier-plugin-sort-imports": "^3.7.1",
|
||||
"@istanbuljs/nyc-config-typescript": "^1.0.1",
|
||||
"@jest/types": "^28.1.0",
|
||||
"@mermaid-js/mermaid-cli": "^8.13.10",
|
||||
"@octokit/rest": "^16.36.0",
|
||||
@ -130,8 +106,6 @@
|
||||
"@storybook/addon-controls": "^7.4.6",
|
||||
"@storybook/addon-designs": "^7.0.5",
|
||||
"@storybook/addon-links": "^7.4.6",
|
||||
"@storybook/addon-storyshots": "^7.4.6",
|
||||
"@storybook/addon-storyshots-puppeteer": "^7.4.6",
|
||||
"@storybook/addon-storysource": "^7.4.6",
|
||||
"@storybook/addon-toolbars": "^7.4.6",
|
||||
"@storybook/addons": "^7.4.6",
|
||||
@ -223,7 +197,6 @@
|
||||
"autoprefixer": "^10.2.1",
|
||||
"axe-core": "^4.4.1",
|
||||
"babel-jest": "^28.1.0",
|
||||
"babel-plugin-istanbul": "6.1.1",
|
||||
"bundlesize2": "^0.0.31",
|
||||
"chalk": "^4.1.0",
|
||||
"chokidar-cli": "^2.1.0",
|
||||
@ -275,7 +248,6 @@
|
||||
"mz": "^2.7.0",
|
||||
"node-fetch": "^2.6.7",
|
||||
"nodemon": "^2.0.20",
|
||||
"nyc": "^15.1.0",
|
||||
"octokit": "^2.0.7",
|
||||
"open": "^7.0.4",
|
||||
"p-retry": "^4.2.0",
|
||||
|
||||
514
pnpm-lock.yaml
514
pnpm-lock.yaml
@ -505,9 +505,6 @@ importers:
|
||||
'@ianvs/prettier-plugin-sort-imports':
|
||||
specifier: ^3.7.1
|
||||
version: 3.7.1(prettier@2.8.1)
|
||||
'@istanbuljs/nyc-config-typescript':
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1(nyc@15.1.0)(source-map-support@0.5.21)(ts-node@10.9.1)
|
||||
'@jest/types':
|
||||
specifier: ^28.1.0
|
||||
version: 28.1.3
|
||||
@ -586,12 +583,6 @@ importers:
|
||||
'@storybook/addon-links':
|
||||
specifier: ^7.4.6
|
||||
version: 7.4.6(react-dom@18.1.0)(react@18.1.0)
|
||||
'@storybook/addon-storyshots':
|
||||
specifier: ^7.4.6
|
||||
version: 7.4.6(@storybook/react@7.4.6)(jest@28.1.3)(preact@10.18.1)(react-dom@18.1.0)(react@18.1.0)(rxjs@6.6.7)(svelte@3.59.2)
|
||||
'@storybook/addon-storyshots-puppeteer':
|
||||
specifier: ^7.4.6
|
||||
version: 7.4.6(@storybook/addon-storyshots@7.4.6)(jest@28.1.3)(puppeteer@13.7.0)
|
||||
'@storybook/addon-storysource':
|
||||
specifier: ^7.4.6
|
||||
version: 7.4.6(@types/react-dom@18.0.2)(@types/react@18.0.8)(react-dom@18.1.0)(react@18.1.0)
|
||||
@ -865,9 +856,6 @@ importers:
|
||||
babel-jest:
|
||||
specifier: ^28.1.0
|
||||
version: 28.1.3(@babel/core@7.21.0)
|
||||
babel-plugin-istanbul:
|
||||
specifier: 6.1.1
|
||||
version: 6.1.1
|
||||
bundlesize2:
|
||||
specifier: ^0.0.31
|
||||
version: 0.0.31
|
||||
@ -1018,9 +1006,6 @@ importers:
|
||||
nodemon:
|
||||
specifier: ^2.0.20
|
||||
version: 2.0.21
|
||||
nyc:
|
||||
specifier: ^15.1.0
|
||||
version: 15.1.0
|
||||
octokit:
|
||||
specifier: ^2.0.7
|
||||
version: 2.0.7
|
||||
@ -5920,20 +5905,6 @@ packages:
|
||||
resolve-from: 5.0.0
|
||||
dev: true
|
||||
|
||||
/@istanbuljs/nyc-config-typescript@1.0.1(nyc@15.1.0)(source-map-support@0.5.21)(ts-node@10.9.1):
|
||||
resolution: {integrity: sha512-/gz6LgVpky205LuoOfwEZmnUtaSmdk0QIMcNFj9OvxhiMhPpKftMgZmGN7jNj7jR+lr8IB1Yks3QSSSNSxfoaQ==}
|
||||
engines: {node: '>=8'}
|
||||
peerDependencies:
|
||||
nyc: '>=15'
|
||||
source-map-support: '*'
|
||||
ts-node: '*'
|
||||
dependencies:
|
||||
'@istanbuljs/schema': 0.1.3
|
||||
nyc: 15.1.0
|
||||
source-map-support: 0.5.21
|
||||
ts-node: 10.9.1(@types/node@18.17.15)(typescript@5.0.2)
|
||||
dev: true
|
||||
|
||||
/@istanbuljs/schema@0.1.3:
|
||||
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
|
||||
engines: {node: '>=8'}
|
||||
@ -6027,13 +5998,6 @@ packages:
|
||||
jest-get-type: 28.0.2
|
||||
dev: true
|
||||
|
||||
/@jest/expect-utils@29.7.0:
|
||||
resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
dependencies:
|
||||
jest-get-type: 29.6.3
|
||||
dev: true
|
||||
|
||||
/@jest/expect@28.1.3:
|
||||
resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==}
|
||||
engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
|
||||
@ -10011,106 +9975,6 @@ packages:
|
||||
- '@types/react-dom'
|
||||
dev: true
|
||||
|
||||
/@storybook/addon-storyshots-puppeteer@7.4.6(@storybook/addon-storyshots@7.4.6)(jest@28.1.3)(puppeteer@13.7.0):
|
||||
resolution: {integrity: sha512-7BM33QPBigp7CCUBh7rL5WxWsB7f1ZvzB1j6H43vXfHsDYKwvPrPoJEIiVdUaeGgrpJOihrOAprmsnjme2wEcg==}
|
||||
peerDependencies:
|
||||
'@storybook/addon-storyshots': 7.4.6
|
||||
puppeteer: '>=2.0.0'
|
||||
peerDependenciesMeta:
|
||||
puppeteer:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@axe-core/puppeteer': 4.4.2(puppeteer@13.7.0)
|
||||
'@storybook/addon-storyshots': 7.4.6(@storybook/react@7.4.6)(jest@28.1.3)(preact@10.18.1)(react-dom@18.1.0)(react@18.1.0)(rxjs@6.6.7)(svelte@3.59.2)
|
||||
'@storybook/csf': 0.1.1
|
||||
'@storybook/node-logger': 7.4.6
|
||||
'@storybook/types': 7.4.6
|
||||
'@types/jest-image-snapshot': 6.2.1
|
||||
jest-image-snapshot: 6.2.0(jest@28.1.3)
|
||||
puppeteer: 13.7.0
|
||||
transitivePeerDependencies:
|
||||
- jest
|
||||
dev: true
|
||||
|
||||
/@storybook/addon-storyshots@7.4.6(@storybook/react@7.4.6)(jest@28.1.3)(preact@10.18.1)(react-dom@18.1.0)(react@18.1.0)(rxjs@6.6.7)(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-HT2c1xi66emt91VfPJQIGx0mNZNg4RnNSKLXFtKhyu3uPXFkcUIQUdV2wj88b1SdyIofdsJdCcvVMWZgNKnHfg==}
|
||||
peerDependencies:
|
||||
'@angular/core': '>=13.0.0'
|
||||
'@angular/platform-browser-dynamic': '>=13.0.0'
|
||||
'@storybook/angular': '*'
|
||||
'@storybook/react': '*'
|
||||
'@storybook/vue': '*'
|
||||
'@storybook/vue3': '*'
|
||||
jest: '*'
|
||||
jest-preset-angular: ' >= 12.2.3'
|
||||
jest-vue-preprocessor: '*'
|
||||
preact: ^10.5.13
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
rxjs: '*'
|
||||
svelte: '*'
|
||||
vue: '*'
|
||||
vue-jest: '*'
|
||||
peerDependenciesMeta:
|
||||
'@angular/core':
|
||||
optional: true
|
||||
'@angular/platform-browser-dynamic':
|
||||
optional: true
|
||||
'@storybook/angular':
|
||||
optional: true
|
||||
'@storybook/react':
|
||||
optional: true
|
||||
'@storybook/vue':
|
||||
optional: true
|
||||
'@storybook/vue3':
|
||||
optional: true
|
||||
jest-preset-angular:
|
||||
optional: true
|
||||
jest-vue-preprocessor:
|
||||
optional: true
|
||||
preact:
|
||||
optional: true
|
||||
react:
|
||||
optional: true
|
||||
react-dom:
|
||||
optional: true
|
||||
rxjs:
|
||||
optional: true
|
||||
svelte:
|
||||
optional: true
|
||||
vue:
|
||||
optional: true
|
||||
vue-jest:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@jest/transform': 29.7.0
|
||||
'@storybook/babel-plugin-require-context-hook': 1.0.1
|
||||
'@storybook/client-api': 7.4.6
|
||||
'@storybook/core-common': 7.4.6
|
||||
'@storybook/core-webpack': 7.4.6
|
||||
'@storybook/global': 5.0.0
|
||||
'@storybook/preview-api': 7.4.6
|
||||
'@storybook/react': 7.4.6(react-dom@18.1.0)(react@18.1.0)(typescript@5.0.2)
|
||||
'@storybook/types': 7.4.6
|
||||
'@types/jest-specific-snapshot': 0.5.7
|
||||
glob: 10.3.3
|
||||
jest: 28.1.3(@types/node@18.17.15)(ts-node@10.9.1)
|
||||
jest-specific-snapshot: 8.0.0(jest@28.1.3)
|
||||
preact: 10.18.1
|
||||
preact-render-to-string: 5.1.19(preact@10.18.1)
|
||||
pretty-format: 29.7.0
|
||||
react: 18.1.0
|
||||
react-dom: 18.1.0(react@18.1.0)
|
||||
react-test-renderer: 17.0.2(react@18.1.0)
|
||||
read-pkg-up: 7.0.1
|
||||
rxjs: 6.6.7
|
||||
svelte: 3.59.2
|
||||
ts-dedent: 2.2.0
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@storybook/addon-storysource@7.4.6(@types/react-dom@18.0.2)(@types/react@18.0.8)(react-dom@18.1.0)(react@18.1.0):
|
||||
resolution: {integrity: sha512-qkfwvh/pgVBReuWqO25WyaD7jd6LVqhoIJ6rBWnmx+NBpTds+h3Yt3UJCHgvweIrfSF8J3IqzaTxmmNjnkcrRw==}
|
||||
peerDependencies:
|
||||
@ -10303,10 +10167,6 @@ packages:
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
dev: true
|
||||
|
||||
/@storybook/babel-plugin-require-context-hook@1.0.1:
|
||||
resolution: {integrity: sha512-WM4vjgSVi8epvGiYfru7BtC3f0tGwNs7QK3Uc4xQn4t5hHQvISnCqbNrHdDYmNW56Do+bBztE8SwP6NGUvd7ww==}
|
||||
dev: true
|
||||
|
||||
/@storybook/blocks@7.2.0(@types/react-dom@18.0.2)(@types/react@18.0.8)(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-QbRw4lszmkxD86+murh0rJWa2rf9fEhI3vP3BSD+Ta6YgLHt+T94l0K5uQpESs8DRWHFGe5kT33hcAXHIpBqPA==}
|
||||
peerDependencies:
|
||||
@ -10955,19 +10815,6 @@ packages:
|
||||
- utf-8-validate
|
||||
dev: true
|
||||
|
||||
/@storybook/core-webpack@7.4.6:
|
||||
resolution: {integrity: sha512-EqQDmd+vKAWOAjoe539LsfP8WvQG9V9i1priMA53u1FOEged8o0NBtRiRy2+JDdUSiGUdpe/X5+V/TyyQw/KWw==}
|
||||
dependencies:
|
||||
'@storybook/core-common': 7.4.6
|
||||
'@storybook/node-logger': 7.4.6
|
||||
'@storybook/types': 7.4.6
|
||||
'@types/node': 16.18.11
|
||||
ts-dedent: 2.2.0
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@storybook/csf-plugin@7.2.0:
|
||||
resolution: {integrity: sha512-UwRclUzBLQU6vhfR56QNOZZPz0d94rnMw9nRT62XZiYIFbBPOpHEDpU5iRk+liM2Uj4LaicV2mFpycTwW0oHsg==}
|
||||
dependencies:
|
||||
@ -12237,20 +12084,6 @@ packages:
|
||||
dependencies:
|
||||
'@types/istanbul-lib-report': 3.0.0
|
||||
|
||||
/@types/jest-image-snapshot@6.2.1:
|
||||
resolution: {integrity: sha512-lq+nenXshw04WT22KhR3jlafeLWiA9FRGNAc7cD/IdDvjGo2OPvnKPFDIA7qFKy5oaY2pyBnWeyOaEkRIiE5FQ==}
|
||||
dependencies:
|
||||
'@types/jest': 28.1.0
|
||||
'@types/pixelmatch': 5.2.3
|
||||
ssim.js: 3.3.2
|
||||
dev: true
|
||||
|
||||
/@types/jest-specific-snapshot@0.5.7:
|
||||
resolution: {integrity: sha512-N/ugOQIiAnTdb/OJcNiDoZ4Q27sQFpv96hIojX4+F3UlOu80wy20PFD2xBE0W3slIeXl1x6JRu9KG1MtHvolCg==}
|
||||
dependencies:
|
||||
'@types/jest': 28.1.0
|
||||
dev: true
|
||||
|
||||
/@types/jest@28.1.0:
|
||||
resolution: {integrity: sha512-ITfF6JJIl9zbEi2k6NmhNE/BiDqfsI/ceqfvdaWaPbcrCpYyyRq4KtDQIWh6vQUru6SqwppODiom/Zhid+np6A==}
|
||||
dependencies:
|
||||
@ -12416,12 +12249,6 @@ packages:
|
||||
resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
|
||||
dev: false
|
||||
|
||||
/@types/pixelmatch@5.2.3:
|
||||
resolution: {integrity: sha512-p+nAQVYK/DUx7+s1Xyu9dqAg0gobf7VmJ+iDA4lljg1o4XRgQHr7R2h1NwFt3gdNOZiftxWB11+0TuZqXYf19w==}
|
||||
dependencies:
|
||||
'@types/node': 18.17.15
|
||||
dev: true
|
||||
|
||||
/@types/pollyjs__adapter@4.3.0:
|
||||
resolution: {integrity: sha512-aJ4+ianTKgbdZRnBjcB9D1Kn4ALn3YatGlAzgEdGHyv63aV+gzukKH8xqdrRB76pwrXXCQwLosNBFNTSEmRA9A==}
|
||||
dependencies:
|
||||
@ -13787,13 +13614,6 @@ packages:
|
||||
buffer-equal: 1.0.0
|
||||
dev: true
|
||||
|
||||
/append-transform@2.0.0:
|
||||
resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
default-require-extensions: 3.0.0
|
||||
dev: true
|
||||
|
||||
/aproba@1.2.0:
|
||||
resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
|
||||
dev: true
|
||||
@ -14878,16 +14698,6 @@ packages:
|
||||
responselike: 2.0.0
|
||||
dev: false
|
||||
|
||||
/caching-transform@4.0.0:
|
||||
resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
hasha: 5.2.0
|
||||
make-dir: 3.1.0
|
||||
package-hash: 4.0.0
|
||||
write-file-atomic: 3.0.3
|
||||
dev: true
|
||||
|
||||
/call-bind@1.0.5:
|
||||
resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
|
||||
dependencies:
|
||||
@ -16768,13 +16578,6 @@ packages:
|
||||
kind-of: 5.1.0
|
||||
dev: true
|
||||
|
||||
/default-require-extensions@3.0.0:
|
||||
resolution: {integrity: sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
strip-bom: 4.0.0
|
||||
dev: true
|
||||
|
||||
/default-resolution@2.0.0:
|
||||
resolution: {integrity: sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==}
|
||||
engines: {node: '>= 0.10'}
|
||||
@ -17416,10 +17219,6 @@ packages:
|
||||
next-tick: 1.0.0
|
||||
dev: true
|
||||
|
||||
/es6-error@4.1.1:
|
||||
resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
|
||||
dev: true
|
||||
|
||||
/es6-iterator@2.0.3:
|
||||
resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
|
||||
dependencies:
|
||||
@ -18254,17 +18053,6 @@ packages:
|
||||
jest-util: 28.1.3
|
||||
dev: true
|
||||
|
||||
/expect@29.7.0:
|
||||
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
dependencies:
|
||||
'@jest/expect-utils': 29.7.0
|
||||
jest-get-type: 29.6.3
|
||||
jest-matcher-utils: 29.7.0
|
||||
jest-message-util: 29.7.0
|
||||
jest-util: 29.7.0
|
||||
dev: true
|
||||
|
||||
/express-static-gzip@2.1.1:
|
||||
resolution: {integrity: sha512-J+xSzdr5lj1cIuZey0ac6nUv22VE7GrdwTERqE8DsrqSXLm1zjeYWTVbK37t8exGwobxBXeWU2bM7eSMjBR4YA==}
|
||||
dependencies:
|
||||
@ -19032,11 +18820,6 @@ packages:
|
||||
engines: {node: '>=12.17'}
|
||||
dev: true
|
||||
|
||||
/get-package-type@0.1.0:
|
||||
resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
dev: true
|
||||
|
||||
/get-port@5.1.1:
|
||||
resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==}
|
||||
engines: {node: '>=8'}
|
||||
@ -19047,11 +18830,6 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/get-stdin@5.0.1:
|
||||
resolution: {integrity: sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==}
|
||||
engines: {node: '>=0.12.0'}
|
||||
dev: true
|
||||
|
||||
/get-stdin@6.0.0:
|
||||
resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==}
|
||||
engines: {node: '>=4'}
|
||||
@ -19355,10 +19133,6 @@ packages:
|
||||
sparkles: 1.0.1
|
||||
dev: true
|
||||
|
||||
/glur@1.1.2:
|
||||
resolution: {integrity: sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==}
|
||||
dev: true
|
||||
|
||||
/google-auth-library@5.7.0:
|
||||
resolution: {integrity: sha512-uclMldsQNf64Qr67O8TINdnqbU/Ixv81WryX+sF9g7uP0igJ98aCR/uU399u1ABLa53LNsyji+bo+bP8/iL9dA==}
|
||||
engines: {node: '>=8.10.0'}
|
||||
@ -19840,14 +19614,6 @@ packages:
|
||||
dependencies:
|
||||
function-bind: 1.1.2
|
||||
|
||||
/hasha@5.2.0:
|
||||
resolution: {integrity: sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
is-stream: 2.0.0
|
||||
type-fest: 0.8.1
|
||||
dev: true
|
||||
|
||||
/hasown@2.0.0:
|
||||
resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@ -20754,10 +20520,6 @@ packages:
|
||||
dependencies:
|
||||
which-typed-array: 1.1.13
|
||||
|
||||
/is-typedarray@1.0.0:
|
||||
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
|
||||
dev: true
|
||||
|
||||
/is-unc-path@1.0.0:
|
||||
resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -20860,25 +20622,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/istanbul-lib-hook@3.0.0:
|
||||
resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
append-transform: 2.0.0
|
||||
dev: true
|
||||
|
||||
/istanbul-lib-instrument@4.0.3:
|
||||
resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
'@babel/core': 7.23.0
|
||||
'@istanbuljs/schema': 0.1.3
|
||||
istanbul-lib-coverage: 3.2.0
|
||||
semver: 6.3.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/istanbul-lib-instrument@5.1.0:
|
||||
resolution: {integrity: sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==}
|
||||
engines: {node: '>=8'}
|
||||
@ -20892,19 +20635,6 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/istanbul-lib-processinfo@2.0.2:
|
||||
resolution: {integrity: sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
archy: 1.0.0
|
||||
cross-spawn: 7.0.3
|
||||
istanbul-lib-coverage: 3.2.0
|
||||
make-dir: 3.1.0
|
||||
p-map: 3.0.0
|
||||
rimraf: 3.0.2
|
||||
uuid: 3.4.0
|
||||
dev: true
|
||||
|
||||
/istanbul-lib-report@3.0.0:
|
||||
resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
|
||||
engines: {node: '>=8'}
|
||||
@ -21114,16 +20844,6 @@ packages:
|
||||
pretty-format: 28.1.3
|
||||
dev: true
|
||||
|
||||
/jest-diff@29.7.0:
|
||||
resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
dependencies:
|
||||
chalk: 4.1.2
|
||||
diff-sequences: 29.6.3
|
||||
jest-get-type: 29.6.3
|
||||
pretty-format: 29.7.0
|
||||
dev: true
|
||||
|
||||
/jest-docblock@28.1.1:
|
||||
resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==}
|
||||
engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
|
||||
@ -21207,6 +20927,7 @@ packages:
|
||||
/jest-get-type@29.6.3:
|
||||
resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
dev: false
|
||||
|
||||
/jest-haste-map@28.1.3:
|
||||
resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==}
|
||||
@ -21246,26 +20967,6 @@ packages:
|
||||
fsevents: 2.3.3
|
||||
dev: true
|
||||
|
||||
/jest-image-snapshot@6.2.0(jest@28.1.3):
|
||||
resolution: {integrity: sha512-9mTHBKiiSIZ26csbLmjKyN+SrVypM93S5y+jULCvn6YItgepvcrJIKGNeSyt9d2EZiutOroLs/UjtrWiBzpHbA==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
jest: '>=20 <=29'
|
||||
peerDependenciesMeta:
|
||||
jest:
|
||||
optional: true
|
||||
dependencies:
|
||||
chalk: 4.1.2
|
||||
get-stdin: 5.0.1
|
||||
glur: 1.1.2
|
||||
jest: 28.1.3(@types/node@18.17.15)(ts-node@10.9.1)
|
||||
lodash: 4.17.21
|
||||
pixelmatch: 5.2.1
|
||||
pngjs: 3.4.0
|
||||
rimraf: 2.7.1
|
||||
ssim.js: 3.3.2
|
||||
dev: true
|
||||
|
||||
/jest-junit@13.0.0:
|
||||
resolution: {integrity: sha512-JSHR+Dhb32FGJaiKkqsB7AR3OqWKtldLd6ZH2+FJ8D4tsweb8Id8zEVReU4+OlrRO1ZluqJLQEETm+Q6/KilBg==}
|
||||
engines: {node: '>=10.12.0'}
|
||||
@ -21304,16 +21005,6 @@ packages:
|
||||
pretty-format: 28.1.3
|
||||
dev: true
|
||||
|
||||
/jest-matcher-utils@29.7.0:
|
||||
resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
dependencies:
|
||||
chalk: 4.1.2
|
||||
jest-diff: 29.7.0
|
||||
jest-get-type: 29.6.3
|
||||
pretty-format: 29.7.0
|
||||
dev: true
|
||||
|
||||
/jest-message-util@27.5.1:
|
||||
resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==}
|
||||
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
|
||||
@ -21356,6 +21047,7 @@ packages:
|
||||
pretty-format: 29.7.0
|
||||
slash: 3.0.0
|
||||
stack-utils: 2.0.6
|
||||
dev: false
|
||||
|
||||
/jest-mock-extended@2.0.2-beta2(jest@28.1.3)(typescript@5.0.2):
|
||||
resolution: {integrity: sha512-56zcpgRPs3YxQP0ejcaaNFxUinPyRxQCbuk7GGORZqEbAFuQVXWAAtru2tI1N4qcLBoDWEJ/hwUxwbEGY5hdyw==}
|
||||
@ -21534,45 +21226,6 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/jest-snapshot@29.7.0:
|
||||
resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
dependencies:
|
||||
'@babel/core': 7.23.0
|
||||
'@babel/generator': 7.23.0
|
||||
'@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0)
|
||||
'@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.23.0)
|
||||
'@babel/types': 7.23.0
|
||||
'@jest/expect-utils': 29.7.0
|
||||
'@jest/transform': 29.7.0
|
||||
'@jest/types': 29.6.3
|
||||
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0)
|
||||
chalk: 4.1.2
|
||||
expect: 29.7.0
|
||||
graceful-fs: 4.2.11
|
||||
jest-diff: 29.7.0
|
||||
jest-get-type: 29.6.3
|
||||
jest-matcher-utils: 29.7.0
|
||||
jest-message-util: 29.7.0
|
||||
jest-util: 29.7.0
|
||||
natural-compare: 1.4.0
|
||||
pretty-format: 29.7.0
|
||||
semver: 7.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/jest-specific-snapshot@8.0.0(jest@28.1.3):
|
||||
resolution: {integrity: sha512-PjK0cqPbN3ZGU1pdP78YBEFMsS1AsV28hIHg249E0v/bTtGAJqDm7lNDLj0Cs0O26P2sulbXbgEQU9xLm34WmA==}
|
||||
peerDependencies:
|
||||
jest: '>= 29.0.0'
|
||||
dependencies:
|
||||
jest: 28.1.3(@types/node@18.17.15)(ts-node@10.9.1)
|
||||
jest-snapshot: 29.7.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/jest-util@27.5.1:
|
||||
resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==}
|
||||
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
|
||||
@ -22448,10 +22101,6 @@ packages:
|
||||
resolution: {integrity: sha512-/OcpcAGWlrZyoHGeHh3cAoa6nGdX6QYtmzNP84Jqol6UEQQ2gIaU3H+0eICcjcKGl0/XF8LWOujNn9lffsnaOg==}
|
||||
dev: true
|
||||
|
||||
/lodash.flattendeep@4.4.0:
|
||||
resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==}
|
||||
dev: true
|
||||
|
||||
/lodash.get@4.4.2:
|
||||
resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
|
||||
dev: true
|
||||
@ -23833,13 +23482,6 @@ packages:
|
||||
/node-int64@0.4.0:
|
||||
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
|
||||
|
||||
/node-preload@0.2.1:
|
||||
resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
process-on-spawn: 1.0.0
|
||||
dev: true
|
||||
|
||||
/node-releases@2.0.13:
|
||||
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
|
||||
|
||||
@ -23986,42 +23628,6 @@ packages:
|
||||
/nwsapi@2.2.2:
|
||||
resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==}
|
||||
|
||||
/nyc@15.1.0:
|
||||
resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==}
|
||||
engines: {node: '>=8.9'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@istanbuljs/load-nyc-config': 1.0.0
|
||||
'@istanbuljs/schema': 0.1.3
|
||||
caching-transform: 4.0.0
|
||||
convert-source-map: 1.7.0
|
||||
decamelize: 1.2.0
|
||||
find-cache-dir: 3.3.2
|
||||
find-up: 4.1.0
|
||||
foreground-child: 2.0.0
|
||||
get-package-type: 0.1.0
|
||||
glob: 7.2.3
|
||||
istanbul-lib-coverage: 3.2.0
|
||||
istanbul-lib-hook: 3.0.0
|
||||
istanbul-lib-instrument: 4.0.3
|
||||
istanbul-lib-processinfo: 2.0.2
|
||||
istanbul-lib-report: 3.0.0
|
||||
istanbul-lib-source-maps: 4.0.0
|
||||
istanbul-reports: 3.1.4
|
||||
make-dir: 3.1.0
|
||||
node-preload: 0.2.1
|
||||
p-map: 3.0.0
|
||||
process-on-spawn: 1.0.0
|
||||
resolve-from: 5.0.0
|
||||
rimraf: 3.0.2
|
||||
signal-exit: 3.0.7
|
||||
spawn-wrap: 2.0.0
|
||||
test-exclude: 6.0.0
|
||||
yargs: 15.4.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/ob1@0.76.8:
|
||||
resolution: {integrity: sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g==}
|
||||
engines: {node: '>=16'}
|
||||
@ -24424,13 +24030,6 @@ packages:
|
||||
dependencies:
|
||||
p-limit: 3.1.0
|
||||
|
||||
/p-map@3.0.0:
|
||||
resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
aggregate-error: 3.1.0
|
||||
dev: true
|
||||
|
||||
/p-map@4.0.0:
|
||||
resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
|
||||
engines: {node: '>=10'}
|
||||
@ -24500,16 +24099,6 @@ packages:
|
||||
netmask: 2.0.2
|
||||
dev: true
|
||||
|
||||
/package-hash@4.0.0:
|
||||
resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
graceful-fs: 4.2.11
|
||||
hasha: 5.2.0
|
||||
lodash.flattendeep: 4.4.0
|
||||
release-zalgo: 1.0.0
|
||||
dev: true
|
||||
|
||||
/package-json@6.5.0:
|
||||
resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==}
|
||||
engines: {node: '>=8'}
|
||||
@ -24822,13 +24411,6 @@ packages:
|
||||
resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
/pixelmatch@5.2.1:
|
||||
resolution: {integrity: sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
pngjs: 4.0.1
|
||||
dev: true
|
||||
|
||||
/pkg-conf@2.1.0:
|
||||
resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==}
|
||||
engines: {node: '>=4'}
|
||||
@ -24882,16 +24464,6 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/pngjs@3.4.0:
|
||||
resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
dev: true
|
||||
|
||||
/pngjs@4.0.1:
|
||||
resolution: {integrity: sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
dev: true
|
||||
|
||||
/polished@4.2.2:
|
||||
resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==}
|
||||
engines: {node: '>=10'}
|
||||
@ -25183,19 +24755,6 @@ packages:
|
||||
source-map-js: 1.0.2
|
||||
dev: true
|
||||
|
||||
/preact-render-to-string@5.1.19(preact@10.18.1):
|
||||
resolution: {integrity: sha512-bj8sn/oytIKO6RtOGSS/1+5CrQyRSC99eLUnEVbqUa6MzJX5dYh7wu9bmT0d6lm/Vea21k9KhCQwvr2sYN3rrQ==}
|
||||
peerDependencies:
|
||||
preact: '>=10'
|
||||
dependencies:
|
||||
preact: 10.18.1
|
||||
pretty-format: 3.8.0
|
||||
dev: true
|
||||
|
||||
/preact@10.18.1:
|
||||
resolution: {integrity: sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==}
|
||||
dev: true
|
||||
|
||||
/prebuild-install@7.1.1:
|
||||
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
|
||||
engines: {node: '>=10'}
|
||||
@ -25311,10 +24870,6 @@ packages:
|
||||
ansi-styles: 5.2.0
|
||||
react-is: 18.2.0
|
||||
|
||||
/pretty-format@3.8.0:
|
||||
resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==}
|
||||
dev: true
|
||||
|
||||
/pretty-hrtime@1.0.3:
|
||||
resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
|
||||
engines: {node: '>= 0.8'}
|
||||
@ -25335,13 +24890,6 @@ packages:
|
||||
/process-nextick-args@2.0.1:
|
||||
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||
|
||||
/process-on-spawn@1.0.0:
|
||||
resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
fromentries: 1.3.2
|
||||
dev: true
|
||||
|
||||
/process@0.11.10:
|
||||
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
|
||||
engines: {node: '>= 0.6.0'}
|
||||
@ -26035,6 +25583,7 @@ packages:
|
||||
object-assign: 4.1.1
|
||||
react: 18.1.0
|
||||
react-is: 18.2.0
|
||||
dev: false
|
||||
|
||||
/react-smooth@1.0.5(react-dom@18.1.0)(react@18.1.0):
|
||||
resolution: {integrity: sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w==}
|
||||
@ -26126,18 +25675,6 @@ packages:
|
||||
refractor: 3.6.0
|
||||
dev: true
|
||||
|
||||
/react-test-renderer@17.0.2(react@18.1.0):
|
||||
resolution: {integrity: sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==}
|
||||
peerDependencies:
|
||||
react: 17.0.2
|
||||
dependencies:
|
||||
object-assign: 4.1.1
|
||||
react: 18.1.0
|
||||
react-is: 17.0.2
|
||||
react-shallow-renderer: 16.15.0(react@18.1.0)
|
||||
scheduler: 0.20.2
|
||||
dev: true
|
||||
|
||||
/react-transition-group@2.9.0(react-dom@18.1.0)(react@18.1.0):
|
||||
resolution: {integrity: sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==}
|
||||
peerDependencies:
|
||||
@ -26534,13 +26071,6 @@ packages:
|
||||
- encoding
|
||||
dev: true
|
||||
|
||||
/release-zalgo@1.0.0:
|
||||
resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
es6-error: 4.1.1
|
||||
dev: true
|
||||
|
||||
/remark-external-links@8.0.0:
|
||||
resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==}
|
||||
dependencies:
|
||||
@ -26950,13 +26480,6 @@ packages:
|
||||
object-assign: 4.1.1
|
||||
dev: false
|
||||
|
||||
/scheduler@0.20.2:
|
||||
resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==}
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
object-assign: 4.1.1
|
||||
dev: true
|
||||
|
||||
/scheduler@0.21.0:
|
||||
resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==}
|
||||
dependencies:
|
||||
@ -27515,18 +27038,6 @@ packages:
|
||||
resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==}
|
||||
dev: true
|
||||
|
||||
/spawn-wrap@2.0.0:
|
||||
resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
foreground-child: 2.0.0
|
||||
is-windows: 1.0.2
|
||||
make-dir: 3.1.0
|
||||
rimraf: 3.0.2
|
||||
signal-exit: 3.0.7
|
||||
which: 2.0.2
|
||||
dev: true
|
||||
|
||||
/spdx-compare@1.0.0:
|
||||
resolution: {integrity: sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==}
|
||||
dependencies:
|
||||
@ -27590,10 +27101,6 @@ packages:
|
||||
/sprintf-js@1.0.3:
|
||||
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||
|
||||
/ssim.js@3.3.2:
|
||||
resolution: {integrity: sha512-MUVEvxBwOT1xMtOEmLF7NxtbwS5JuOnbr1Lj0sa/rXEh/75Ao7AjdQDjO6Tidl97Ml6O6Br8q7rx6MDvDU7pRg==}
|
||||
dev: true
|
||||
|
||||
/stable@0.1.8:
|
||||
resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
|
||||
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
|
||||
@ -29032,12 +28539,6 @@ packages:
|
||||
slash: 3.0.0
|
||||
yargs: 15.4.1
|
||||
|
||||
/typedarray-to-buffer@3.1.5:
|
||||
resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
|
||||
dependencies:
|
||||
is-typedarray: 1.0.0
|
||||
dev: true
|
||||
|
||||
/typedarray@0.0.6:
|
||||
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
|
||||
dev: true
|
||||
@ -30293,15 +29794,6 @@ packages:
|
||||
imurmurhash: 0.1.4
|
||||
signal-exit: 3.0.7
|
||||
|
||||
/write-file-atomic@3.0.3:
|
||||
resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
|
||||
dependencies:
|
||||
imurmurhash: 0.1.4
|
||||
is-typedarray: 1.0.0
|
||||
signal-exit: 3.0.7
|
||||
typedarray-to-buffer: 3.1.5
|
||||
dev: true
|
||||
|
||||
/write-file-atomic@4.0.2:
|
||||
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
|
||||
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user