Compare commits

...

40 Commits

Author SHA1 Message Date
f6b71043d3 Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-09-16 13:33:51 -04:00
95c9a4629c Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-09-16 11:57:27 -04:00
a0b7510887 Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-09-16 11:19:50 -04:00
331f5fd810 Include the damn hidden files... 2024-09-16 10:15:34 -04:00
77a339bffe try again 2024-09-16 09:21:14 -04:00
a5c34ff667 Try with quotes 2024-09-16 07:57:56 -04:00
24b9aa3a8f tweak again 2024-09-16 12:07:13 +10:00
91c4018314 tweak upload 2024-09-16 11:48:22 +10:00
6259954527 debug 2024-09-16 11:34:05 +10:00
50ebd6bd60 turn on coverage always 2024-09-16 11:11:31 +10:00
2ec268cdd1 quick fix 2024-09-16 09:52:02 +10:00
7f6d992df1 one more attempt 2024-09-16 09:48:10 +10:00
b5e19bc066 some more debug 2024-09-16 09:15:50 +10:00
df10fd303c debug artifacts 2024-09-16 08:08:59 +10:00
0c1135f706 Merge remote-tracking branch 'origin' into ryanrosello-og/playwright-test-coverage 2024-09-16 08:04:25 +10:00
f75701900d tweak pattern 2024-09-16 07:12:07 +10:00
c0c47665b4 make sure coverage dir exists 2024-09-16 06:20:37 +10:00
9ffd971c33 remove electron artifact upload as well 2024-09-15 08:39:38 +10:00
6f28abd0b4 tweak again 2024-09-15 07:53:05 +10:00
8eff9709ee turn off coverage on electron tests 2024-09-15 07:26:46 +10:00
be107ec1ab dependency 2024-09-15 06:43:09 +10:00
bfacd89ad6 Merge remote-tracking branch 'origin' into ryanrosello-og/playwright-test-coverage 2024-09-14 20:49:51 +10:00
92da01f515 yarn again 2024-08-22 20:58:49 +10:00
19a001a08a update yarn.lock 2024-08-22 20:57:08 +10:00
0839f5e95c Merge remote-tracking branch 'origin' into ryanrosello-og/playwright-test-coverage 2024-08-22 20:32:51 +10:00
3340069459 remove vite-plugin-istanbul 2024-08-17 21:46:50 +10:00
5d3a0b9b52 update job dependancy name 2024-08-17 21:32:29 +10:00
a95473fb87 Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-08-17 21:30:19 +10:00
23e7b5b6f9 revert on push back to main 2024-08-13 19:46:28 +10:00
7236fb0add fix for Error: ver] ✘ [ERROR] Failed to resolve "vite-plugin-istanbul". This package is ESM only but it was tried to load by require. See https://vitejs.dev/guide/troubleshooting.html#this-package-is-esm-only for more details. [plugin externalize-deps] 2024-08-13 19:17:09 +10:00
459053dce9 re-instate vite.config.ts 2024-08-13 19:03:44 +10:00
85e7719ca3 only report coverage based on Google chrome exec 2024-08-13 19:02:09 +10:00
fd4edcb0f0 Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-08-13 18:55:42 +10:00
0654bcbe5a test on GH workflow 2024-08-11 20:30:17 +10:00
d85bfa39e1 don't use base fixture 2024-08-11 20:15:19 +10:00
235f39717e add pw coverage report to gh 2024-08-11 11:29:42 +10:00
11cfb54487 use baseFixture for all spec files 2024-08-11 08:50:48 +10:00
d97a4d27b2 enable vite istanbul coverage 2024-08-11 07:46:29 +10:00
f0f0778ee6 ignore nyc_output folder 2024-08-11 07:44:58 +10:00
9a85bd06bd add custom base test fixture 2024-08-11 07:44:40 +10:00
10 changed files with 259 additions and 12 deletions

View File

@ -237,6 +237,7 @@ jobs:
VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
VITE_KC_SKIP_AUTH: true
token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
GENERATE_PLAYWRIGHT_COVERAGE: true
- name: send to axiom
if: always()
shell: bash
@ -256,6 +257,18 @@ jobs:
path: playwright-report/
retention-days: 30
overwrite: true
- name: Debug artifact name
if: ${{ !cancelled() && (success() || failure()) }}
run: |
echo "Artifact name: playwright-coverage-${{ runner.os }}-${{ matrix.shardIndex }}-${{ github.sha }}"
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() && (success() || failure()) }}
with:
name: playwright-coverage-${{ runner.os }}-${{ matrix.shardIndex }}-${{ github.sha }}
path: "./.nyc_output/*.json"
retention-days: 30
overwrite: true
include-hidden-files: true
playwright-electron:
@ -416,6 +429,8 @@ jobs:
VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
VITE_KC_SKIP_AUTH: true
IS_UBUNTU: ${{ startsWith(matrix.os, 'ubuntu') && 'true' || 'false' }}
# TODO set to true, see: https://github.com/KittyCAD/modeling-app/issues/3885
GENERATE_PLAYWRIGHT_COVERAGE: false
#DEBUG: 'pw:browser*'
- name: send to axiom
if: ${{ !cancelled() && (success() || failure()) && !startsWith(matrix.os, 'windows') }}
@ -436,3 +451,59 @@ jobs:
path: playwright-report/
retention-days: 30
overwrite: true
# TODO uncomment the following, see: https://github.com/KittyCAD/modeling-app/issues/3885
# - uses: actions/upload-artifact@v4
# if: ${{ always() }}
# with:
# name: playwright-coverage-${{ runner.os }}-${{ github.sha }}
# path: .nyc_output/
# retention-days: 30
# overwrite: true
# only run this job after all shards above have completed
# TBC: do we want to separate coverage reports by OS?
# the Job below combines both chrome and webkit coverage reports
merge-coverage-reports:
# Merge reports after playwright-tests, even if some shards have failed
if: ${{ !cancelled() }}
needs: [playwright-chrome]
# only report on ubuntu (Google chrome) for now
# needs: [playwright-ubuntu, playwright-macos]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
run: yarn
- name: Ensure .all_coverage_reports directory exists
run: mkdir -p .all_coverage_reports
- name: List all artifacts
run: |
echo "Available artifacts:"
gh api -H "Accept: application/vnd.github+json" /repos/${{ github.repository }}/actions/artifacts --jq '.artifacts[].name'
env:
GH_TOKEN: ${{ github.token }}
- name: Download coverage reports from GitHub Actions Artifacts
uses: actions/download-artifact@v4
with:
path: .all_coverage_reports
pattern: playwright-coverage-*
merge-multiple: true
- name: Merge all coverage reports from all shards into a single json report
run: npx nyc merge .all_coverage_reports ./.nyc_output/coverage.json
- name: Generate HTML coverage report
run: npx nyc report --reporter=html || true
- name: Upload Convertage HTML report
uses: actions/upload-artifact@v4
with:
name: coverage-report-${{ github.sha }}
path: coverage
retention-days: 14

2
.gitignore vendored
View File

@ -62,7 +62,7 @@ Mac_App_Distribution.provisionprofile
src/wasm-lib/pkg
venv
.vite/
.nyc_output/*.vite/
# electron
out/

View File

@ -12,6 +12,7 @@ import { EngineCommand } from 'lang/std/artifactGraph'
import fsp from 'fs/promises'
import fsSync from 'fs'
import { join } from 'path'
import * as fs from 'fs'
import pixelMatch from 'pixelmatch'
import { PNG } from 'pngjs'
import { Protocol } from 'playwright-core/types/protocol'
@ -26,6 +27,7 @@ import {
import * as TOML from '@iarna/toml'
import { SaveSettingsPayload } from 'lib/settings/settingsTypes'
import { SETTINGS_FILE_NAME } from 'lib/constants'
import { uuidv4 } from 'lib/utils'
import { isErrorWhitelisted } from './lib/console-error-whitelist'
import { isArray } from 'lib/utils'
import { reportRejection } from 'lib/trap'
@ -816,6 +818,16 @@ export async function tearDown(page: Page, testInfo: TestInfo) {
uploadThroughput: -1,
})
if (process.env.GENERATE_PLAYWRIGHT_COVERAGE) {
for (const activePage of page.context().pages()) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
await activePage.evaluate(() =>
(window as any)?.collectIstanbulCoverage?.(
JSON.stringify((window as any).__coverage__)
)
)
}
}
// It seems it's best to give the browser about 3s to close things
// It's not super reliable but we have no real other choice for now
await page.waitForTimeout(3000)
@ -864,6 +876,30 @@ export async function setup(
},
])
if (process.env.GENERATE_PLAYWRIGHT_COVERAGE) {
await context.addInitScript(() =>
window.addEventListener('beforeunload', () =>
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(window as any)?.collectIstanbulCoverage?.(
JSON.stringify((window as any).__coverage__)
)
)
)
const istanbulCLIOutput = join(process.cwd(), '.nyc_output')
await fsp.mkdir(istanbulCLIOutput, { recursive: true })
await context.exposeFunction(
'collectIstanbulCoverage',
(coverageJSON: string) => {
if (coverageJSON) {
fs.writeFileSync(
join(istanbulCLIOutput, `playwright_coverage_${uuidv4()}.json`),
coverageJSON
)
}
}
)
}
failOnConsoleErrors(page, testInfo)
// kill animations, speeds up tests and reduced flakiness
await page.emulateMedia({ reducedMotion: 'reduce' })

View File

@ -68,6 +68,9 @@
},
"scripts": {
"start": "vite",
"start:playwright-ci:unix": "GENERATE_PLAYWRIGHT_COVERAGE=true yarn start",
"start:playwright-ci:win": "set GENERATE_PLAYWRIGHT_COVERAGE=true && yarn start",
"start:playwright-ci": "sh -c 'if [ \"$OS\" = \"Windows_NT\" ]; then yarn start:playwright-ci:unix; else yarn start:playwright-ci:win; fi'",
"start:prod": "vite preview --port=3000",
"serve": "vite serve --port=3000",
"build": "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && source \"$HOME/.cargo/env\" && curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -s -- -y && yarn build:wasm && vite build",
@ -80,7 +83,7 @@
"test:rust": "(cd src/wasm-lib && cargo test --all && cargo clippy --all --tests --benches)",
"simpleserver": "yarn pretest && http-server ./public --cors -p 3000",
"simpleserver:ci": "yarn pretest && http-server ./public --cors -p 3000 &",
"fmt": "prettier --write ./src *.ts *.json *.js ./e2e ./packages",
"fmt": "prettier --write ./src *.ts *.mts *.json *.js ./e2e ./packages",
"fmt-check": "prettier --check ./src *.ts *.json *.js ./e2e ./packages",
"fetch:wasm": "./get-latest-wasm-bundle.sh",
"isomorphic-copy-wasm": "(copy src/wasm-lib/pkg/wasm_lib_bg.wasm public || cp src/wasm-lib/pkg/wasm_lib_bg.wasm public)",
@ -185,6 +188,7 @@
"typescript": "^5.0.0",
"vite": "^5.4.2",
"vite-plugin-eslint": "^1.8.1",
"vite-plugin-istanbul": "^6.0.2",
"vite-plugin-package-version": "^1.1.0",
"vite-tsconfig-paths": "^4.3.2",
"vitest": "^1.6.0",

View File

@ -93,7 +93,7 @@ export default defineConfig({
/* Run your local dev server before starting the tests */
webServer: {
command: 'yarn start',
command: 'yarn start:playwright-ci',
// url: 'http://127.0.0.1:3000',
reuseExistingServer: !process.env.CI,
},

View File

@ -238,7 +238,7 @@ export const AllSettingsFields = forwardRef(
</h2>
<div className="text-sm mb-12">
<p>
{/* This uses a Vite plugin, set in vite.config.ts
{/* This uses a Vite plugin, set in vite.config.mts
to inject the version from package.json */}
App version {APP_VERSION}.{' '}
<a

View File

@ -32,6 +32,6 @@
"jsx": "react-jsx"
},
"include": ["src", "e2e", "packages", "*.ts"],
"exclude": ["node_modules", "./*.grammar", "vite.config.ts"],
"exclude": ["node_modules", "./*.grammar", "vite.config.mts"],
"references": [{ "path": "./tsconfig.node.json" }]
}

View File

@ -5,5 +5,5 @@
"moduleResolution": "Node",
"allowSyntheticDefaultImports": true
},
"include": ["vite.config.ts"]
"include": ["vite.config.mts"]
}

View File

@ -3,6 +3,8 @@ import viteTsconfigPaths from 'vite-tsconfig-paths'
import eslint from 'vite-plugin-eslint'
import { defineConfig, configDefaults } from 'vitest/config'
import version from 'vite-plugin-package-version'
import IstanbulPlugin from 'vite-plugin-istanbul'
// @ts-ignore: No types available
import { lezer } from '@lezer/generator/rollup'
@ -60,7 +62,18 @@ const config = defineConfig({
'@kittycad/codemirror-lsp-client': '/packages/codemirror-lsp-client/src',
},
},
plugins: [react(), viteTsconfigPaths(), eslint(), version(), lezer()],
plugins: [
react(),
viteTsconfigPaths(),
eslint(),
version(),
lezer(),
IstanbulPlugin({
include: 'src/*',
exclude: ['node_modules', 'test/'],
extension: ['.js', '.ts', '.tsx'],
}),
],
worker: {
plugins: () => [viteTsconfigPaths()],
},

133
yarn.lock
View File

@ -38,7 +38,7 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb"
integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==
"@babel/core@^7.16.0", "@babel/core@^7.21.4", "@babel/core@^7.24.5":
"@babel/core@^7.16.0", "@babel/core@^7.21.4", "@babel/core@^7.23.9", "@babel/core@^7.24.5":
version "7.25.2"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77"
integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==
@ -281,6 +281,13 @@
dependencies:
"@babel/types" "^7.25.2"
"@babel/parser@^7.23.9":
version "7.25.6"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f"
integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==
dependencies:
"@babel/types" "^7.25.6"
"@babel/parser@^7.25.4":
version "7.25.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.4.tgz#af4f2df7d02440286b7de57b1c21acfb2a6f257a"
@ -1204,6 +1211,15 @@
"@babel/helper-validator-identifier" "^7.24.7"
to-fast-properties "^2.0.0"
"@babel/types@^7.25.6":
version "7.25.6"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6"
integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==
dependencies:
"@babel/helper-string-parser" "^7.24.8"
"@babel/helper-validator-identifier" "^7.24.7"
to-fast-properties "^2.0.0"
"@bitdisaster/exe-icon-extractor@^1.0.10":
version "1.0.10"
resolved "https://registry.yarnpkg.com/@bitdisaster/exe-icon-extractor/-/exe-icon-extractor-1.0.10.tgz#3f5107864254c351db1db5c5922452d9d4154e8f"
@ -2009,6 +2025,22 @@
wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
"@istanbuljs/load-nyc-config@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
dependencies:
camelcase "^5.3.1"
find-up "^4.1.0"
get-package-type "^0.1.0"
js-yaml "^3.13.1"
resolve-from "^5.0.0"
"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
"@jest/expect-utils@^29.7.0":
version "29.7.0"
resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
@ -2992,7 +3024,7 @@ acorn-walk@^8.1.1, acorn-walk@^8.3.2:
dependencies:
acorn "^8.11.0"
acorn@^8.11.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.9.0:
acorn@^8.11.0, acorn@^8.11.3, acorn@^8.12.0, acorn@^8.4.1, acorn@^8.9.0:
version "8.12.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
@ -3149,6 +3181,13 @@ arg@^5.0.2:
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
@ -3710,6 +3749,11 @@ camelcase-css@^2.0.1:
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
caniuse-lite@^1.0.30001599, caniuse-lite@^1.0.30001640:
version "1.0.30001646"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz#d472f2882259ba032dd73ee069ff01bfd059b25d"
@ -5025,6 +5069,11 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint-visitor-keys@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb"
integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
eslint@^8.0.1:
version "8.57.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
@ -5069,6 +5118,15 @@ eslint@^8.0.1:
strip-ansi "^6.0.1"
text-table "^0.2.0"
espree@^10.0.1:
version "10.1.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56"
integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==
dependencies:
acorn "^8.12.0"
acorn-jsx "^5.3.2"
eslint-visitor-keys "^4.0.0"
espree@^9.6.0, espree@^9.6.1:
version "9.6.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
@ -5078,7 +5136,7 @@ espree@^9.6.0, espree@^9.6.1:
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.4.1"
esprima@~4.0.0:
esprima@^4.0.0, esprima@~4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
@ -5393,7 +5451,7 @@ find-up@^2.0.0:
dependencies:
locate-path "^2.0.0"
find-up@^4.0.0:
find-up@^4.0.0, find-up@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
@ -5662,6 +5720,11 @@ get-package-info@^1.0.0:
lodash.get "^4.0.0"
read-pkg-up "^2.0.0"
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
get-stream@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@ -6426,6 +6489,22 @@ isomorphic-fetch@^3.0.0:
node-fetch "^2.6.1"
whatwg-fetch "^3.4.1"
istanbul-lib-coverage@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
istanbul-lib-instrument@^6.0.2:
version "6.0.3"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765"
integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==
dependencies:
"@babel/core" "^7.23.9"
"@babel/parser" "^7.23.9"
"@istanbuljs/schema" "^0.1.3"
istanbul-lib-coverage "^3.2.0"
semver "^7.5.4"
iterator.prototype@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0"
@ -6528,6 +6607,14 @@ js-tokens@^9.0.0:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.0.tgz#0f893996d6f3ed46df7f0a3b12a03f5fd84223c1"
integrity sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==
js-yaml@^3.13.1:
version "3.14.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
@ -8278,6 +8365,11 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
resolve-from@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
resolve-package@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-package/-/resolve-package-1.0.1.tgz#686f70b188bd7d675f5bbc4282ccda060abb9d27"
@ -8479,7 +8571,7 @@ semver@^6.2.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.6.0:
semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0:
version "7.6.3"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
@ -8680,6 +8772,11 @@ source-map@^0.6.0, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
source-map@^0.7.4:
version "0.7.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
spdx-correct@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c"
@ -8711,6 +8808,11 @@ sprintf-js@^1.1.2, sprintf-js@^1.1.3:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
ssri@^9.0.0:
version "9.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057"
@ -9011,6 +9113,15 @@ temp@^0.9.0:
mkdirp "^0.5.1"
rimraf "~2.6.2"
test-exclude@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
dependencies:
"@istanbuljs/schema" "^0.1.2"
glob "^7.1.4"
minimatch "^3.0.4"
text-segmentation@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943"
@ -9483,6 +9594,18 @@ vite-plugin-eslint@^1.8.1:
"@types/eslint" "^8.4.5"
rollup "^2.77.2"
vite-plugin-istanbul@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/vite-plugin-istanbul/-/vite-plugin-istanbul-6.0.2.tgz#242a57b20d540adc49631f9e6c174a1c3559ece7"
integrity sha512-0/sKwjEEIwbEyl43xX7onX3dIbMJAsigNsKyyVPalG1oRFo5jn3qkJbS2PUfp9wrr3piy1eT6qRoeeum2p4B2A==
dependencies:
"@istanbuljs/load-nyc-config" "^1.1.0"
espree "^10.0.1"
istanbul-lib-instrument "^6.0.2"
picocolors "^1.0.0"
source-map "^0.7.4"
test-exclude "^6.0.0"
vite-plugin-package-version@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/vite-plugin-package-version/-/vite-plugin-package-version-1.1.0.tgz#7d8088955aa21e4ec93353c98992b3f58c4bf13c"