From 01b9a6c817b2ccd28c5764b049cfbede8261235d Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Fri, 4 Sep 2026 20:51:03 +0000 Subject: [PATCH 01/12] ci: add advisory CSpell check Co-authored-by: Amp Amp-Thread-ID: https://ampcode.com/threads/T-01a06e27-8097-7461-8d90-eef25db09feb --- .github/workflows/spellcheck.yml | 33 + README.md | 2 + cspell-project-words.txt | 1127 ++++++++++++++++++++++++++++++ cspell.json | 141 ++++ package.json | 2 + pnpm-lock.yaml | 755 +++++++++++++++++++- 6 files changed, 2045 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/spellcheck.yml create mode 100644 cspell-project-words.txt create mode 100644 cspell.json diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml new file mode 100644 index 000000000..a7694b745 --- /dev/null +++ b/.github/workflows/spellcheck.yml @@ -0,0 +1,33 @@ +name: Spell check + +on: + pull_request: + +permissions: + contents: read + +jobs: + spellcheck: + name: CSpell (advisory) + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.25.0 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.19.6 + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Check spelling (advisory) + continue-on-error: true + run: pnpm spellcheck diff --git a/README.md b/README.md index e2b1eea27..f6c2b391a 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,8 @@ Now that the base requirements of the project have been satisfied, we can instal pnpm install ``` +This also installs the CSpell development dependency. It has no special impact on normal local development and does not run automatically; run `pnpm spellcheck` explicitly when you want to check spelling. + Next, run the development server: ```sh diff --git a/cspell-project-words.txt b/cspell-project-words.txt new file mode 100644 index 000000000..51c507c63 --- /dev/null +++ b/cspell-project-words.txt @@ -0,0 +1,1127 @@ +# Sourcegraph products, projects, APIs, configuration identifiers, and example terms. +Sourcegraph +Cody +Codeintel +CodeInsights +CodeSearch +Executors +src +abacabadabacaba +Abulating +Accessrequest +Accessrequests +accomodate +Acepted +acmeco +activites +actr +addresseses +ADFS +administrationservice +advisements +airgapped +Aiven +Alexjean +algoliasearch +alignemnt +allkeys +amcheck +amname +ampcode +anish +anotherproject +anotherrepo +apiclient +apidocs +APIURL +apiworker +apko +appcode +appendonly +appengine +appgw +arafatkatze +arent +ARGF +asbasdfgasd +ated +atoburl +Atoi +attnum +attrelid +ature +auditlog +auditlogs +authentitcation +authroized +autocompletions +autoedit +Autoedits +Autoindexing +autoiondex +autol +autoscalers +autoscrolling +autoupgrade +autoupgrades +autoupgrading +autovacuum +avgqu +Awais +awscli +awsrepos +azuredevops +azureopenai +backcompat +Backfiller +baseai +batchchange +batchchanges +batcheshelper +batchignore +batchutils +bazelignore +bazelisk +bazelrc +bclj +behaviour +behaviours +beyang +Bgkqh +bgwriter +binutils +bitbucketcloud +bitbucketserver +bitmapscan +Bitwarden +Blackhole +blkid +Blobstore +Blocklists +blurple +braindot +broadcastmessages +browsable +buildchecker +buildconfig +buildifier +Buildtracker +Burkina +burndown +BYOK +BYOLLM +bytesize +bzlmod +Cabo +cacerts +Cachix +cadvisor +callsign +callsigns +callsite +callsites +camdentest +camino +cancelation +CAROOT +Categorise +CDKTF +centralise +certains +Certbot +certonly +changese +changesettemplate +changesettemplatebody +changesettemplatebranch +changesettemplatecommit +changesettemplatecommitauthor +changesettemplatecommitmessage +changesettemplatefork +changesettemplatepublished +changesettemplatetitle +Changs +chargeback +chargebacks +chatbots +cheatsheet +checkhealth +checkins +chunker +citext +Citus +clickjacking +clientauthconfig +clientside +clion +cloneproxy +cloneurl +Cloudapi +cloudasset +cloudkms +cloudnotifications +cloudrun +cloudsql +cloudsqladmin +cloudsqlproxy +cloudtrace +clusterrole +clusterrolebinding +cmdline +codecompletions +codegen +codegraph +Codehost +codehosts +codeintellify +codellama +codemod +codemonitor +codemonitoring +Codemonitors +codenav +CODENOTIFY +CODENOTIFYs +codyaccess +Codyapi +Codyauditlog +Codygateway +Codygatewayevents +codypcw's +Codyplg +codyplgsunset +codyprosunset +collatable +colordiff +combinatorially +comby +commandset +commandsets +commitgraph +committerdate +commitmap +compatability +comphrensive +Completioncredits +composit +condeintel +conection +configmap +configuredimageimage +conftypes +connectrpc +Connectutil +conntrack +Consolas +consule +contentlayer +contiainer +contraint +couldn +coursier +Crashloop +crashloopbackoff +createdat +creds +Crtl +cstring +ctid +ctstate +CUDA +custmoize +customcert +customising +Côte +d'Ivoire +daemonset +darkhold +dasharray +databasetest +Databaseutil +databse +datalake +datcollversion +datname +dbanalyze +dbbacked +dbconn +dbname +dbperms +dbstore +dbtest +dbug +dbworker +debugserver +Decorrelate +decrypter +dedupliacte +deepsearch +deepseek +defininition +Deglobalize +deleter +demopasswordchangeme +depdendencies +deprec +determinstic +DEVMINOR +DEVPATCH +devrel +devx +dgjhfomjieaadpoljlnidmbgkdffpack +dgrijalva +diffstat +dind +DINF +diskcache +Distros +dmsetup +Dockerfiles +docsite +docstrings +documenta +dogfood +Dont +doombot +dotcomdb +Dotcomgating +Dotcomuser +downto +dport +DQVRFLS +drilldown +Drilldowns +drwxr +dshm +dumpall +duplicatable +duplicative +dvcmtmb +eastus +Eclispe +eksctl +ELEC +elkjs +emailaddress +embeeddings +emidoots +emtpy +encrypter +Endable +Enry +enterpriseportal +entitlementstelemetry +entrycommand +envsubst +ephemerals +eror +errcode +errgroup +Errorf +ERRROS +esbenp +esbuild +Eswatini +etcdctl +euxo +evals +evenodd +EVICTEDPOD +execlog +exector +executon +executorqueue +exernal +exfiltration +exhaustruct +exisiting +explictly +explorable +externalapi +externalhttp +extsvc +Falco +Faso +favorited +favoriting +favourite +featureflag +Fede +federationmetadata +fetchinig +FHMQ +filegroup +Filippo +finetuned +finetuning +finishedat +fmtlib +footguns +forrester +Frontmatter +fsext +FSTYPE +fulfiill +fulfuill +fullchain +fullpath +functio +gatway +Gemin +generalise +genrules +Getenv +GHAS +ghauth +gifs +Gitab +Gitaly +Gitaly's +gitcli +gitdir +gitea's +gitgnore +githost +githubapp +Gitolite +Gitserver +gitserver's +gitservers +Gitservice +Glicm +globaldbtenant +Globalstate +gnachman +gobwas +gofmt +GOGIT +goimports +goldmark +GOMAXPROCS +gomft +Gomod +googlecloud +gopkg +gorelaser +goreleaser +gorm +Goroutines +gosyntect +gotmpl +GOTOOLCHAIN +GOWORK +gqlutil +graphbook +graphd +graphqlbackend +groundtruth +gsuite +guarauntees +Hackathon +healthcheck +healthz +HELO +hhbmdlc +Hitesh +homescreen +hopefull +horizonal +horsegraph +horsten +hostmatcher +hostpath +hoverables +hovercards +HSTS +httpapi +httpcache +httpserver +httptest +huggingface +IAAAAAAAAA +IBAAKCAQEA +IBATAN +Ibdki +Iconify +idelta +identitfier +IDPSSO +ified +iles +imageimage +imagepullsecrets +importchangesets +importchangesetsexternalids +importchangesetsrepository +incidentio +inconshreveable +indclass +indcollation +indexability +indexrelid +indexroot +indexscan +indisready +indisvalid +indkey +indnkeyatts +indrelid +inferencing +Ingore +initcontainer +Initialise +Inkscape +insufficent +intarray +inte +integrationtest +Intelli +internalapi +internaldoer +intterupt +invididual +invitable +iptable +isopen +istari +itable +iterext +iterm +Itoa +jaegerexporter +JCEF +jeager +jemalloc +jiapantw +journalctl +Jscontext +Jsonnet +jsonschemadoc +Kaspersky +kbar +keegancsmith +Keymap +keymappings +keypair +keyspace +khroma +killall +Kitts +kswapd +kubeconfig +kubelet +kustomization +Langbase +languagemodels +Laravel +latencytest +latveria +lefthand +Leste +letsencrypt +lgkt +libsecret +Licensecheck +licenseinfo +lightmode +limitting +Linearhooks +linecap +linejoin +linkify +linkifying +listworkspaces +llmapitelemetry +Llms +lobal +Localdev +localenv +lockfiles +logfmt +loghandlers +loginservice +logpush +logspam +logtost +logurl +lookarounds +losetup +lsif +lsifstore +Luasandbox +Luhansk +maedahbatool +Magik +managedservicesplatform +managementv +managmeent +Marino +marketingtracking +matadata +maxage +maxmemory +maxpages +megarepo +memcmd +Memorystore +Menlo +menulink +meteringexporter +meteringservice +migops +migtrator +MIIC +Minimise +miscategorize +miterlimit +mixtral +mktemp +mmap +mockgen +Mockrequire +modelconfig +modelcost +modelref +modtime +monolithsams +mountpoint +mpim +mtok +Mulitenant +multiplicatively +multiqueue +multitenancy +Multitenant +multitenantenv +Multiversion +mycompany +myconfig +mydockerhub +myext +myextension +mygroup +mykey +myorg +myotherrepo +mypassword +myproject +myregistry +myrepo +mysqli +mystring +mytag +myteam +myvalue +nameid +nameopt +necesarily +NETRC +Nlcjo +Nlcjox +nobl +nobundle +nodename +nodeport +noeviction +nofail +noheadings +nonexistenturl +nonprivileged +noout +NOSYSTEM +notifs +nowrap +NRQU +nslookup +nspname +NTLM +nulltime +numpy +nums +nvim +objectname +oauthconfig +occured +occurence +occuring +oidvectorin +oldtbl +Ollama +Omnibox +onconflict +onebox +oneclick +oneclickexport +oneclickexporter +onelogin +onrepositoriesmatchingquery +onrepository +OOBMIGRATION +ooks +oomkill +opclass +opcmethod +Opean +openaicompatible +opencode +openctx +opengrok +openidconnect +opentracing +Operationdocs +operatorwrite +Optim +optimisitic +optimizated +optin +orderedmap +ordererd +organisation +organisations +ORGID +orgpolicy +Otelcollector +overcounted +Owernship +oyaml +pagelen +pagure +paramter +Parsely +parsewithclaims +pathspec +patterntype +PCIW +PCRE +peforce +pekko +percaution +permanant +permanentaly +permisisons +permissioning +persistentvolumeclaims +pgaudit +pgbouncer +pgcrypto +PGDATABASE +PGDATASOURCE +PGDSN +PGHOST +pgmajfault +PGPASSWORD +PGPORT +pgscan +pgsql +PGSSLMODE +pgsteal +PGUSER +pgvector +pgxpool +phpdoc +pipefail +PKCE +PKEY +plpgsql +PODNAME +polysans +pooler +Postgresdsn +postgresqlroles +postgress +postrepoactions +pousr +prechecks +PREEMPTIBLE +preg +premade +prerequisit +printlns +privileized +privisioning +privkey +problemfix +productsubscription +productsubscriptions +projectname +promotheus +protips +protobufjs +protoc +protojson +Príncipe +publishusermetadata +pubout +pubsubemulator +Pugins +pullrequest +pumbling +puslishing +pvcs +pykafka +Queuemetrics +quicklink +Quicklinks +Qwen +randomisation +raph +rapidext +ratelimits +rbacs +rcache +rder +readwrite +reapplyed +reblame +reclone +recloning +Redict +redirections +redispool +Redocly +reexecuting +refreshable +refspecoverrides +registryurl +rehttp +reindexdb +reindexing +releaseplatform +releaseregistry +releaseworker +relid +relkind +relname +relnamespace +relpages +relpersistence +relreg +repliacas +repoferee +repogroup +repohasfile +reponame +reposcheduler +repositorypermissions +repositoryservice +repoupdater +reqps +requestclient +requestinteraction +requirepass +rerank +reranker +rerankers +reranking +Rermoved +rescope +resharding +resizeable +resourcemanager +reveiver +rgba +riazanovskiy +Rica +Rlbn +Rockskip +Rockskip's +rockskipintegration +rollouts +rootfs +roundtripper +routerreconciler +rstrip +runfile +runllm +runset +runtype +runtypes +ruplacer +Rvcnkx +safedetails +samltool +sams +Sandboxing +santizes +sboms +sched +SCIM +scip +SCIW +screeen +scret +seach +searcg +Searchplatform +Searchs +searhces +seccomp +secretmanager +secretname +Sectigo +seeklogo +Semgrep +Sendgrid +Sensitivemetadataallowlist +seperate +sequencenumber +Serch +serde +serilog +sers +serverside +servicetenant +setext +settingscasacde +settingsjson +setx +sfixed +sgdev +sggray +sghttp +sgquery +sgtest +sguqery +sgviolet +Shadcn +shellcheck +shellsession +shiki +showcerts +SIEM +sigalg +simiply +Simpify +Singleflight +Siteadmin +siteconfig +sitiched +skylib +SLES +Snek +snekpm +somerandom +Sorucegraph +SOTA +Soucegraph +Sourceg +sourcegr +Sourcegraphaccounts +sourcegraphcloud +sourcegraphcom +Sourcegraphs +soureces +Spacebar +spammy +spaservice +specialised +specifiy +spectaql +SPLF +SQLSTATE +srcgql +srcgraph +SRCH +ssbc +sshuttle +sslmode +SSVZBVE +stabili +Stablechore +stablility +stackexchange +standardised +standardly +starcoder +Starlark +startedat +statefulsets +statesyncer +staticcheck +stepscontainer +stepsenv +stepsfiles +stepsif +stepsmount +stepsoutputs +stepsoutputsnameformat +stepsoutputsnamevalue +stepsrun +stiched +stockout +stopwords +storageaccounttype +STORAGECLASS +Strato +strconv +subchart +Subcharts +subdirs +subexpression +subnetworks +subpackages +subrepo +subrepoperms +subsubgroup +subteam +subteams +subwords +sufficiantly +sunsetting +suspiciousnames +Syft +Symbos +symf +syncer +syncers +syncher +synchronised +synchronizzation +Syntect +tailling +Talkhouse +TARGETGROUP +targetting +teamates +teestore +teewrite +tele +Telemetery +telemetryevents +telemetrygateway +telemetrygatewayexporter +telemetrystore +Telemetrytest +testdata +testdomains +testroute +testsourcegraph +testusers +testutil +Tetsted +Textualize +tfvars +theirrepo +theyre +thorsten +thorstens +threadcreate +threadsafe +threadsafety +tidyups +timedout +timemachine +timescaledb +timespan +tini +tion +tjdevries +toggleable +toid +tolerations +Tomé +toolcall +topk +topsecretorg +topsecretproject +transactionally +transformchanges +transformchangesgroup +transformchangesgroupbranch +transformchangesgroupdirectory +transformchangesgrouprepository +trgm +triaging +trialling +ttimedout +Txemail +typebox +typesafe +typescriptjavascript +TZXJ +Türkiye +ukey +unarchived +Unarchiving +unauthorised +uncloned +unconfigured +uncordon +underallocated +undercount +undercounted +underprovisioned +underprovisioning +unibeautify +Unindexed +unioned +uniquing +unmarsha +unmarshal +unmarshalling +unmarshals +unmigrated +unparam +unredaction +unrevert +unrs +unstar +unsued +untar +updatecheck +upgradetest +upgradetests +uploadhandler +Uploadpack +Upperand +upsell +upsells +urlencode +urlsafe +userauth +usermetadata +userpasswd +userprincipalname +USERTRUST +Valsorda +Varun +vcssyncer +vegeta +vercel +verdana +Verilog +Vhcm +VHDL +vmeff +vmem +vscodesourcegraph +VZLS +waitforupdate +waitlist +warmstart +Wdlbn +Weaveworks +webh +webp +Winsize +Wofli +wolfi +workerutil +workpsaces +workspacesin +workspacesonlyfetchworkspace +Workspacesreconciler +workspacesrootatlocationof +xattrs +xdomain +xdomainlogin +xdomainloginservice +XGET +xlarge +xlink +yourorgname +YOURUSERNAME +Zaporizhzhia +Zoekt +Zoekt's +Zoomable diff --git a/cspell.json b/cspell.json new file mode 100644 index 000000000..536d9e126 --- /dev/null +++ b/cspell.json @@ -0,0 +1,141 @@ +{ + "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", + "version": "0.2", + "useGitignore": true, + "dictionaryDefinitions": [ + { + "name": "sourcegraph-docs", + "path": "./cspell-project-words.txt", + "addWords": true + } + ], + "dictionaries": ["sourcegraph-docs"], + "flagWords": [ + "accomodate", + "Acepted", + "activites", + "alignemnt", + "authentitcation", + "authroized", + "autoiondex", + "compatability", + "comphrensive", + "composit", + "conection", + "configuredimageimage", + "consule", + "contiainer", + "contraint", + "Crtl", + "custmoize", + "databse", + "dedupliacte", + "defininition", + "depdendencies", + "determinstic", + "documenta", + "Eclispe", + "embeeddings", + "emtpy", + "Endable", + "eror", + "exector", + "executon", + "exernal", + "exisiting", + "explictly", + "fetchinig", + "fulfiill", + "fulfuill", + "functio", + "gatway", + "Gemin", + "Gitab", + "gitgnore", + "gomft", + "guarauntees", + "hopefull", + "horizonal", + "identitfier", + "Ingore", + "insufficent", + "intterupt", + "invididual", + "jeager", + "limitting", + "managmeent", + "matadata", + "migtrator", + "Mulitenant", + "necesarily", + "occured", + "occurence", + "occuring", + "Opean", + "optimisitic", + "optimizated", + "ordererd", + "Owernship", + "paramter", + "peforce", + "percaution", + "permanant", + "permanentaly", + "permisisons", + "postgress", + "prerequisit", + "privileized", + "privisioning", + "promotheus", + "Pugins", + "pumbling", + "puslishing", + "reapplyed", + "Rermoved", + "repliacas", + "reveiver", + "santizes", + "screeen", + "scret", + "seach", + "searcg", + "Searchs", + "searhces", + "seperate", + "Serch", + "simiply", + "Simpify", + "sitiched", + "Sorucegraph", + "Soucegraph", + "soureces", + "specifiy", + "stabili", + "stablility", + "stiched", + "sufficiantly", + "Symbos", + "synchronizzation", + "tailling", + "targetting", + "teamates", + "Telemetery", + "Tetsted", + "ttimedout", + "unmarsha", + "unsued", + "Upperand", + "workpsaces" + ], + "ignorePaths": [ + ".git/**", + "cspell.json", + "cspell-project-words.txt", + "pnpm-lock.yaml", + "docs/technical-changelog.mdx", + "docs/self-hosted/observability/alerts.mdx", + "docs/self-hosted/observability/dashboards.mdx", + "src/images/logos/aws/icons.generated.ts", + "**/*.{gif,jpeg,jpg,png,webp,woff,woff2}" + ] +} diff --git a/package.json b/package.json index 93900c805..e1c47846b 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "build": "next build", "start": "next start", "lint": "next lint", + "spellcheck": "cspell --no-progress --dot '**/*'", "check-links": "node dev/check-links.mjs", "check-filenames": "node dev/check-filenames.mjs", "check-images": "node dev/check-images.mjs", @@ -72,6 +73,7 @@ }, "devDependencies": { "baseai": "^0.9.41", + "cspell": "^9.8.0", "dotenv": "^16.4.7", "eslint": "8.45.0", "eslint-config-next": "13.4.16", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26f546597..dd8c93482 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,7 +46,7 @@ importers: version: 1.2.4(@types/react@18.2.20)(react@18.3.1) '@tailwindcss/typography': specifier: ^0.5.10 - version: 0.5.19(tailwindcss@3.4.19(yaml@2.8.2)) + version: 0.5.19(tailwindcss@3.4.19(yaml@2.9.0)) '@types/node': specifier: 20.4.9 version: 20.4.9 @@ -154,10 +154,10 @@ importers: version: 2.6.1 tailwindcss: specifier: ^3.4.0 - version: 3.4.19(yaml@2.8.2) + version: 3.4.19(yaml@2.9.0) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.19(yaml@2.8.2)) + version: 1.0.7(tailwindcss@3.4.19(yaml@2.9.0)) typescript: specifier: 5.1.6 version: 5.1.6 @@ -168,6 +168,9 @@ importers: baseai: specifier: ^0.9.41 version: 0.9.44(@types/node@20.4.9)(react@18.3.1)(typescript@5.1.6) + cspell: + specifier: ^9.8.0 + version: 9.8.0 dotenv: specifier: ^16.4.7 version: 16.6.1 @@ -428,6 +431,240 @@ packages: '@effect-ts/otel-node': optional: true + '@cspell/cspell-bundled-dicts@9.8.0': + resolution: {integrity: sha512-MpXFpVyBPfJQ1YuVotljqUaGf6lWuf+fuWBBgs0PHFYTSjRPWuIxviAaCDnup/CJLLH60xQL4IlcQe4TOjzljw==} + engines: {node: '>=20'} + + '@cspell/cspell-json-reporter@9.8.0': + resolution: {integrity: sha512-nqUaSo9T7l8KrE22gc7ZIs+zvP7ak1i7JqGdRs8sGvh2Ijqj43qYQLePgb1b/vm8a1bavnc51m+vf05hpd3g3Q==} + engines: {node: '>=20'} + + '@cspell/cspell-performance-monitor@9.8.0': + resolution: {integrity: sha512-IsrXYzn23yJICIQ915ACdf+2lNEcFNTu5BIQt3khHOsGVvZ9/AZYpu9Dk825vUyZG7RHg2Oi6dYNiJtULG4ouQ==} + engines: {node: '>=20.18'} + + '@cspell/cspell-pipe@9.8.0': + resolution: {integrity: sha512-ISEUD8PHYkd2Ktafc6hFfIXdGKYUvthA09NbwwZsWmOqYyk4wWKHZKqyyxD+BcrFwOyMOJcD8OEvIjkRQp2SJw==} + engines: {node: '>=20'} + + '@cspell/cspell-resolver@9.8.0': + resolution: {integrity: sha512-PZJj56BZpKfMxOzWkyt7b+aIXObe+8Ku/zLI4xDXPSuQPENbHBFHfPIZx68CyGEkanKxZ1ewKVx/FT1FUy+wDA==} + engines: {node: '>=20'} + + '@cspell/cspell-service-bus@9.8.0': + resolution: {integrity: sha512-P45sd2nqwcqhulBBbQnZB/JNcobecTrP4Ky3vmEq0cprsvavc+ZoHF9U2Ql5ghMSUzjrF2n1aNzZ8cH4IlsnKg==} + engines: {node: '>=20'} + + '@cspell/cspell-types@9.8.0': + resolution: {integrity: sha512-7Ge4UD6SCA49Tcc3+GTlz3Xn4cqVUAXtDO0u9IeHvJgkN3Me2Rw2GB/CtGmhKST3YeEeZMX7ww09TdHMUJlehw==} + engines: {node: '>=20'} + + '@cspell/cspell-worker@9.8.0': + resolution: {integrity: sha512-W8FLdE3MXPLbWtAXciILQhk9CHd6Mt+HRjZHM8m+dwE1Bc2TAjUai8kIxsdhHUq58p7gYY2ekr5sg1uYOUgTAA==} + engines: {node: '>=20.18'} + + '@cspell/dict-ada@4.1.1': + resolution: {integrity: sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==} + + '@cspell/dict-al@1.1.1': + resolution: {integrity: sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==} + + '@cspell/dict-aws@4.0.17': + resolution: {integrity: sha512-ORcblTWcdlGjIbWrgKF+8CNEBQiLVKdUOFoTn0KPNkAYnFcdPP0muT4892h7H4Xafh3j72wqB4/loQ6Nti9E/w==} + + '@cspell/dict-bash@4.2.3': + resolution: {integrity: sha512-ljUZoKHbDqw5Sx0qpL2qTUlmkmr+vhZH/sCNrNaBZKTbdgiswErSnIF1jRbGmEitJNxHRHWsuZyVgnTGfVO1Yw==} + + '@cspell/dict-companies@3.2.12': + resolution: {integrity: sha512-mjiz/N3zWOCsz5VfwMUydSl7uW0OU9H2PnbCNc3RV44Vj6Q59CSp6EYGSGZQxrXU1gpsuZUrwr6QCjNjFOOg5A==} + + '@cspell/dict-cpp@7.1.0': + resolution: {integrity: sha512-rcjycobioQUd9Jm/Y1n8U+sq6ytpZ0iV8AYIo+vyEFfutC5x7g6hL6Fh3bCdh6IporGHRqfEutGK/4sfopD2ZA==} + + '@cspell/dict-cryptocurrencies@5.0.5': + resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} + + '@cspell/dict-csharp@4.0.8': + resolution: {integrity: sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==} + + '@cspell/dict-css@4.1.2': + resolution: {integrity: sha512-+ylGoKdwZ2sVOCOnU2Eq5wDZx+RaVX3HoKyNHGGsFvhSw6IidQ6tH/mAPKBDofViHJoWCPNlklE0lTr6MDG3QA==} + + '@cspell/dict-dart@2.3.2': + resolution: {integrity: sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==} + + '@cspell/dict-data-science@2.0.16': + resolution: {integrity: sha512-M72mxv5asuAnORurz4iXRJ+Tw9XBq6eu7D2Ne7biP0Z1RciKGNxXWu9JycA/KlVvK1hAlKj/fANlXhuEWpXKFg==} + + '@cspell/dict-django@4.1.6': + resolution: {integrity: sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==} + + '@cspell/dict-docker@1.1.17': + resolution: {integrity: sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==} + + '@cspell/dict-dotnet@5.0.13': + resolution: {integrity: sha512-xPp7jMnFpOri7tzmqmm/dXMolXz1t2bhNqxYkOyMqXhvs08oc7BFs+EsbDY0X7hqiISgeFZGNqn0dOCr+ncPYw==} + + '@cspell/dict-elixir@4.0.8': + resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} + + '@cspell/dict-en-common-misspellings@2.2.0': + resolution: {integrity: sha512-5PmCHv+AhY0LVNo3bE1FdRKMmw1esKj83GPwLymnVPYNtlI2Jf6y27EjC0azg4zny5keWmku0GQiMf55Fi+qeA==} + + '@cspell/dict-en-gb-mit@3.1.26': + resolution: {integrity: sha512-F9Y/45+1oIPzfL/pyWLp4kzX+vddHPAYpIpIF+45bdc65AebeEiQHKzSmKgGGTd3qbQc3fATw2kAFdLryiQpjQ==} + + '@cspell/dict-en_us@4.4.37': + resolution: {integrity: sha512-rMKyPrk2SKmDU+Bj0U0ixsv4Du93oijwovc8XlUin0zwKOJZb0/PFG5Df4P8CrM2CrLeovpaFvhoI98DigxBLw==} + + '@cspell/dict-filetypes@3.0.18': + resolution: {integrity: sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==} + + '@cspell/dict-flutter@1.1.1': + resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} + + '@cspell/dict-fonts@4.0.6': + resolution: {integrity: sha512-aR/0csY01dNb0A1tw/UmN9rKgHruUxsYsvXu6YlSBJFu60s26SKr/k1o4LavpHTQ+lznlYMqAvuxGkE4Flliqw==} + + '@cspell/dict-fsharp@1.1.1': + resolution: {integrity: sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==} + + '@cspell/dict-fullstack@3.2.9': + resolution: {integrity: sha512-diZX+usW5aZ4/b2T0QM/H/Wl9aNMbdODa1Jq0ReBr/jazmNeWjd+PyqeVgzd1joEaHY+SAnjrf/i9CwKd2ZtWQ==} + + '@cspell/dict-gaming-terms@1.1.2': + resolution: {integrity: sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==} + + '@cspell/dict-git@3.1.0': + resolution: {integrity: sha512-KEt9zGkxqGy2q1nwH4CbyqTSv5nadpn8BAlDnzlRcnL0Xb3LX9xTgSGShKvzb0bw35lHoYyLWN2ZKAqbC4pgGQ==} + + '@cspell/dict-golang@6.0.27': + resolution: {integrity: sha512-rRDb2JL8EefaezHGTEclKXCs4eMOS0q/datk94Lm7KQOhlGlzS9FDVZiR1/guh0o+iJCmejQuf5NR2FQeQSWsg==} + + '@cspell/dict-google@1.0.9': + resolution: {integrity: sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==} + + '@cspell/dict-haskell@4.0.6': + resolution: {integrity: sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==} + + '@cspell/dict-html-symbol-entities@4.0.5': + resolution: {integrity: sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==} + + '@cspell/dict-html@4.0.16': + resolution: {integrity: sha512-9B6/Cpb5YVcYgsEAlKudun1yd4ONllYS/ZibKLYea2apPR+l2vQdARnPrP9kTqa7NUNfRKl7m9Fb6k9rjimnow==} + + '@cspell/dict-java@5.0.12': + resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} + + '@cspell/dict-julia@1.1.1': + resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} + + '@cspell/dict-k8s@1.0.13': + resolution: {integrity: sha512-ELGkS13k7K/NEfVimBSrxVTfqXvOF/Kvxj4I62YxRm8bvHbfoXgrGaOx28lPiNRz+dmu+yYtvuXbnURKtYbC6g==} + + '@cspell/dict-kotlin@1.1.1': + resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} + + '@cspell/dict-latex@5.1.0': + resolution: {integrity: sha512-qxT4guhysyBt0gzoliXYEBYinkAdEtR2M7goRaUH0a7ltCsoqqAeEV8aXYRIdZGcV77gYSobvu3jJL038tlPAw==} + + '@cspell/dict-lorem-ipsum@4.0.5': + resolution: {integrity: sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==} + + '@cspell/dict-lua@4.0.8': + resolution: {integrity: sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==} + + '@cspell/dict-makefile@1.0.5': + resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} + + '@cspell/dict-markdown@2.0.18': + resolution: {integrity: sha512-KLRSwVrwKDz4n7bl2XQjzvaBZbGgx5QKkP5Ok1b24xaO3TpXsLhAbAn1mItvFlI2tF6Rkt83iYjQcYppywuf5Q==} + peerDependencies: + '@cspell/dict-css': ^4.1.2 + '@cspell/dict-html': ^4.0.16 + '@cspell/dict-html-symbol-entities': ^4.0.5 + '@cspell/dict-typescript': ^3.2.3 + + '@cspell/dict-monkeyc@1.1.0': + resolution: {integrity: sha512-mc/hgvSy/emOIYtc8kuVEaLUlnaERunfAubfJ5plUXq6s0A69bcukJzUzSt9C0UTCwS28641ILRPv80m3L9QbA==} + + '@cspell/dict-node@5.0.9': + resolution: {integrity: sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==} + + '@cspell/dict-npm@5.2.48': + resolution: {integrity: sha512-R5dDnXTxZFOdb/4XSugCjsb3gXTHcEURGFAVOThg5QVu2YRI+yYj5vGgj9gSNffbgoQsNnaukPoB5v1tjF+tRA==} + + '@cspell/dict-php@4.1.1': + resolution: {integrity: sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==} + + '@cspell/dict-powershell@5.0.15': + resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} + + '@cspell/dict-public-licenses@2.0.16': + resolution: {integrity: sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==} + + '@cspell/dict-python@4.5.0': + resolution: {integrity: sha512-O1lSuFXoX8p+4hvJMbqvg3blbn0Zx8LHqdPQSNaOxFZGf7hmq6pc8sfta+98E7Q/WtDooAnU3XpBxBXcn0r94g==} + + '@cspell/dict-r@2.1.1': + resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} + + '@cspell/dict-ruby@5.1.2': + resolution: {integrity: sha512-f6Slf11N91ittf71AWlfVVG9GZPezVRBfcMPCTNTWhUsY/VEspkBRZYDhPXjV4df3jqHy5YJs8nlsFcFVF/bMA==} + + '@cspell/dict-rust@4.1.2': + resolution: {integrity: sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==} + + '@cspell/dict-scala@5.0.9': + resolution: {integrity: sha512-AjVcVAELgllybr1zk93CJ5wSUNu/Zb5kIubymR/GAYkMyBdYFCZ3Zbwn4Zz8GJlFFAbazABGOu0JPVbeY59vGg==} + + '@cspell/dict-shell@1.2.0': + resolution: {integrity: sha512-PVctvT22lJ49niMiakO8xieY7ELCAzjSqhejWR7bAMb5AZ9F4WDEs+XdGMnoVHWeXq7K5rcepLPmEJb+37zzIw==} + + '@cspell/dict-software-terms@5.4.2': + resolution: {integrity: sha512-C2tS1JjxqHef9TpPRm08a6n+PJCrKrD6FsmPEyXb2J6TFef4FFnKRcGOf3pFnd+a6/oyQgXZWeKiECH6lBFjQA==} + + '@cspell/dict-sql@2.2.1': + resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} + + '@cspell/dict-svelte@1.0.7': + resolution: {integrity: sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==} + + '@cspell/dict-swift@2.0.6': + resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} + + '@cspell/dict-terraform@1.1.4': + resolution: {integrity: sha512-Ere42ilvMFvQA4GlcN0OKlruMPR6EsvaB+iTHzj2xc+NJGRK64V7yApUcWrOrSgTiM/vhWXPIsK3OMfiAiNdmA==} + + '@cspell/dict-typescript@3.2.3': + resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==} + + '@cspell/dict-vue@3.0.5': + resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} + + '@cspell/dict-zig@1.0.0': + resolution: {integrity: sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==} + + '@cspell/dynamic-import@9.8.0': + resolution: {integrity: sha512-wMgb32lqG9g6lCipUQsY9Bk5idXPDz7wvzOqEsU1M2HmNYmdE1wfPoRpfQfsVL965iG3+6h8QLr2+8FKpweFEQ==} + engines: {node: '>=20'} + + '@cspell/filetypes@9.8.0': + resolution: {integrity: sha512-yHvtYn9qt6zykua77sNzTcf7HrG/dpo/+2pCMGSrfSrQypSNT6FUFvMS04W7kwhP86U1GkCjppNykXuoH3cqug==} + engines: {node: '>=20'} + + '@cspell/rpc@9.8.0': + resolution: {integrity: sha512-t4lHEa254W+PePXNQ1noW7QhQxz/mhsJ9X8LEt0ILzBbPWCJzN+JuaM7EiolIPiwxtfxpMwKx9482kt4eTja7A==} + engines: {node: '>=20.18'} + + '@cspell/strong-weak-map@9.8.0': + resolution: {integrity: sha512-HocksAqZ0JcWA5oWO7TIlOCftXVGkPGzbeFlCRRrjJpZmYQH+4NdeEXyQC6T89NGocp45td/CgyBcAaFMy1N9w==} + engines: {node: '>=20'} + + '@cspell/url@9.8.0': + resolution: {integrity: sha512-LY1lFiZLTQF/ma1ilfKmRmFmEOw0RfYhyl0UMhY7/d93b+kiDMhxP/9Qir4+5LyiRncaE3++ZcWno9Hya+ssRg==} + engines: {node: '>=20'} + '@docsearch/css@3.9.0': resolution: {integrity: sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==} @@ -1568,6 +1805,7 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@unrs/resolver-binding-android-arm-eabi@1.11.1': resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} @@ -1707,6 +1945,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.3.0: + resolution: {integrity: sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==} + engines: {node: '>=12'} + ansi-sequence-parser@1.1.3: resolution: {integrity: sha512-+fksAx9eG3Ab6LDnLs3ZqZa8KVJ/jYnX+D4Qe1azX+LFGFAXqynCQLOdLpNYN/l9e7l6hMWwZbrnctqr6eSQSw==} @@ -1997,6 +2239,10 @@ packages: resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -2043,6 +2289,10 @@ packages: clear-any-console@1.16.3: resolution: {integrity: sha512-x174l55a86DGVU0KvnLITsXhRgqwd/xNDTy16OyKKOiJU+1pXF9DrV9YvlepfMc/JuJ3a7CMNLEF4O7qwk0mEw==} + clear-module@4.1.3: + resolution: {integrity: sha512-XdLrg7BnbXKntyrbs2dNjDN9CVoTQ+WV0i7jT5/r9ahzAaSDSzC9e2OVZB/QVwbxBb1/1AeObzjlxsYk5HFvww==} + engines: {node: '>=8'} + cli-alerts@2.0.0: resolution: {integrity: sha512-/ji87OdmThQfNeHo2VSh40/qllw/UN58l5M7JwsGPVt7KfHvyazpy/LRSWuMQ4S7OpCdcTT03JsFXYCtnkJKKA==} @@ -2123,6 +2373,10 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} + engines: {node: '>=20'} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -2139,6 +2393,10 @@ packages: resolution: {integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==} engines: {node: '>= 6'} + comment-json@4.6.2: + resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} + engines: {node: '>= 6'} + compute-cosine-similarity@1.1.0: resolution: {integrity: sha512-FXhNx0ILLjGi9Z9+lglLzM12+0uoTnYkHm7GiadXDAr0HGVLm25OivUS1B/LPkbzzvlcXz/1EvWg9ZYyJSdhTw==} @@ -2197,6 +2455,47 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + cspell-config-lib@9.8.0: + resolution: {integrity: sha512-gMJBAgYPvvO+uDFLUcGWaTu6/e+r8mm4GD4rQfWa/yV4F9fj+yOYLIMZqLWRvT1moHZX1FxyVvUbJcmZ1gfebg==} + engines: {node: '>=20'} + + cspell-dictionary@9.8.0: + resolution: {integrity: sha512-QW4hdkWcrxZA1QNqi26U0S/U3/V+tKCm7JaaesEJW2F6Ao+23AbHVwidyAVtXaEhGkn6PxB+epKrrAa6nE69qA==} + engines: {node: '>=20'} + + cspell-gitignore@9.8.0: + resolution: {integrity: sha512-SDUa1DmSfT20+JH7XtyzcEL9KfurneoR/XbmlrtPQZP/LUHXh3yz4x/0vFIkEFXNWdSckY0QdWTz8DaxClCf4Q==} + engines: {node: '>=20'} + hasBin: true + + cspell-glob@9.8.0: + resolution: {integrity: sha512-Uvj/iHXs+jpsJyIEnhEoJTWXb1GVyZ9T05L5JFtZfsQNXrh8SRDQPscjxbg4okKr63N7WevfioQum/snHNYvmw==} + engines: {node: '>=20'} + + cspell-grammar@9.8.0: + resolution: {integrity: sha512-01XMq2vhPS0Gvxnfed9uvOwH+3cXddHYxW0PwCE+SZdcC6TN8yM6glByuLt1qFustAmQVE5GSr7uAY9o4pZQRg==} + engines: {node: '>=20'} + hasBin: true + + cspell-io@9.8.0: + resolution: {integrity: sha512-JINaEWQEzR4f2upwdZOFcft+nBvQgizJfrOLszxG3p+BIzljnGklqE/nUtLFZpBu0oMJvuM/Fd+GsWor0yP7Xw==} + engines: {node: '>=20'} + + cspell-lib@9.8.0: + resolution: {integrity: sha512-G2TtPcye5QE5ev3YgWq42UOJLpTZ6naO/47oIm+jmeSYbgnbcOSThnEE7uMycx+TTNOz/vJVFpZmQyt0bWCftw==} + engines: {node: '>=20'} + + cspell-trie-lib@9.8.0: + resolution: {integrity: sha512-GXIyqxya8QLp6SjKsAN9w3apvt1Ww7GKcZvTBaP76OfLoyb1QC6unwmObY2cZs1manCntGwHrgU6vFNuXnTzpw==} + engines: {node: '>=20'} + peerDependencies: + '@cspell/cspell-types': 9.8.0 + + cspell@9.8.0: + resolution: {integrity: sha512-qL0VErMSn8BDxaPxcV+9uenffgjPS+5Jfz+m4rCsvYjzLwr7AaaJBWWSV2UiAe/4cturae8n8qzxiGnbbazkRw==} + engines: {node: '>=20.18'} + hasBin: true + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -2523,6 +2822,10 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + env-paths@4.0.0: + resolution: {integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==} + engines: {node: '>=20'} + error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} @@ -2769,6 +3072,10 @@ packages: fast-equals@2.0.4: resolution: {integrity: sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w==} + fast-equals@6.0.3: + resolution: {integrity: sha512-IECu4C0fFZFoUC2cA2rDaNUuVIfWIZMwh3tY+ng924vOuD9OaUFFrcIrVwCKbV7TJDkGmrHfhwZ7R0AnHfVhyw==} + engines: {node: '>=6.0.0'} + fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -2835,6 +3142,9 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -2910,6 +3220,10 @@ packages: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} + gensequence@8.0.8: + resolution: {integrity: sha512-omMVniXEXpdx/vKxGnPRoO2394Otlze28TyxECbFVyoSpZ9H3EO7lemjcB12OpQJzRW4e5tt/dL1rOxry6aMHg==} + engines: {node: '>=20'} + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2972,6 +3286,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + global-directory@5.0.0: + resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} + engines: {node: '>=20'} + globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -3142,6 +3460,9 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -3164,6 +3485,10 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} @@ -3331,6 +3656,10 @@ packages: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} + is-safe-filename@0.1.1: + resolution: {integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==} + engines: {node: '>=20'} + is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -4183,6 +4512,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parent-module@2.0.0: + resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} + engines: {node: '>=8'} + parse-entities@2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} @@ -4265,6 +4598,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -4352,6 +4689,7 @@ packages: prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true prelude-ls@1.2.1: @@ -4635,6 +4973,10 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -4796,6 +5138,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + smol-toml@1.8.0: + resolution: {integrity: sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ==} + engines: {node: '>= 18'} + sort-keys@5.1.0: resolution: {integrity: sha512-aSbHV0DaBcr7u0PVHXzM6NbZNAtrr9sF6+Qfs9UUVG7Ll3jQ6hHi8F/xqIIcn2rvIVbr0v/2zyjSdwSV47AgLQ==} engines: {node: '>=12'} @@ -5211,6 +5557,7 @@ packages: uuid@10.0.0: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@11.1.0: @@ -5219,6 +5566,7 @@ packages: uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uvu@0.5.6: @@ -5276,6 +5624,9 @@ packages: vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vscode-uri@3.2.0: + resolution: {integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==} + web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} @@ -5340,6 +5691,10 @@ packages: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + xlsx@0.18.5: resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} engines: {node: '>=0.8'} @@ -5365,6 +5720,11 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -5768,6 +6128,228 @@ snapshots: ts-pattern: 4.3.0 type-fest: 3.13.1 + '@cspell/cspell-bundled-dicts@9.8.0': + dependencies: + '@cspell/dict-ada': 4.1.1 + '@cspell/dict-al': 1.1.1 + '@cspell/dict-aws': 4.0.17 + '@cspell/dict-bash': 4.2.3 + '@cspell/dict-companies': 3.2.12 + '@cspell/dict-cpp': 7.1.0 + '@cspell/dict-cryptocurrencies': 5.0.5 + '@cspell/dict-csharp': 4.0.8 + '@cspell/dict-css': 4.1.2 + '@cspell/dict-dart': 2.3.2 + '@cspell/dict-data-science': 2.0.16 + '@cspell/dict-django': 4.1.6 + '@cspell/dict-docker': 1.1.17 + '@cspell/dict-dotnet': 5.0.13 + '@cspell/dict-elixir': 4.0.8 + '@cspell/dict-en-common-misspellings': 2.2.0 + '@cspell/dict-en-gb-mit': 3.1.26 + '@cspell/dict-en_us': 4.4.37 + '@cspell/dict-filetypes': 3.0.18 + '@cspell/dict-flutter': 1.1.1 + '@cspell/dict-fonts': 4.0.6 + '@cspell/dict-fsharp': 1.1.1 + '@cspell/dict-fullstack': 3.2.9 + '@cspell/dict-gaming-terms': 1.1.2 + '@cspell/dict-git': 3.1.0 + '@cspell/dict-golang': 6.0.27 + '@cspell/dict-google': 1.0.9 + '@cspell/dict-haskell': 4.0.6 + '@cspell/dict-html': 4.0.16 + '@cspell/dict-html-symbol-entities': 4.0.5 + '@cspell/dict-java': 5.0.12 + '@cspell/dict-julia': 1.1.1 + '@cspell/dict-k8s': 1.0.13 + '@cspell/dict-kotlin': 1.1.1 + '@cspell/dict-latex': 5.1.0 + '@cspell/dict-lorem-ipsum': 4.0.5 + '@cspell/dict-lua': 4.0.8 + '@cspell/dict-makefile': 1.0.5 + '@cspell/dict-markdown': 2.0.18(@cspell/dict-css@4.1.2)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.16)(@cspell/dict-typescript@3.2.3) + '@cspell/dict-monkeyc': 1.1.0 + '@cspell/dict-node': 5.0.9 + '@cspell/dict-npm': 5.2.48 + '@cspell/dict-php': 4.1.1 + '@cspell/dict-powershell': 5.0.15 + '@cspell/dict-public-licenses': 2.0.16 + '@cspell/dict-python': 4.5.0 + '@cspell/dict-r': 2.1.1 + '@cspell/dict-ruby': 5.1.2 + '@cspell/dict-rust': 4.1.2 + '@cspell/dict-scala': 5.0.9 + '@cspell/dict-shell': 1.2.0 + '@cspell/dict-software-terms': 5.4.2 + '@cspell/dict-sql': 2.2.1 + '@cspell/dict-svelte': 1.0.7 + '@cspell/dict-swift': 2.0.6 + '@cspell/dict-terraform': 1.1.4 + '@cspell/dict-typescript': 3.2.3 + '@cspell/dict-vue': 3.0.5 + '@cspell/dict-zig': 1.0.0 + + '@cspell/cspell-json-reporter@9.8.0': + dependencies: + '@cspell/cspell-types': 9.8.0 + + '@cspell/cspell-performance-monitor@9.8.0': {} + + '@cspell/cspell-pipe@9.8.0': {} + + '@cspell/cspell-resolver@9.8.0': + dependencies: + global-directory: 5.0.0 + + '@cspell/cspell-service-bus@9.8.0': {} + + '@cspell/cspell-types@9.8.0': {} + + '@cspell/cspell-worker@9.8.0': + dependencies: + cspell-lib: 9.8.0 + + '@cspell/dict-ada@4.1.1': {} + + '@cspell/dict-al@1.1.1': {} + + '@cspell/dict-aws@4.0.17': {} + + '@cspell/dict-bash@4.2.3': + dependencies: + '@cspell/dict-shell': 1.2.0 + + '@cspell/dict-companies@3.2.12': {} + + '@cspell/dict-cpp@7.1.0': {} + + '@cspell/dict-cryptocurrencies@5.0.5': {} + + '@cspell/dict-csharp@4.0.8': {} + + '@cspell/dict-css@4.1.2': {} + + '@cspell/dict-dart@2.3.2': {} + + '@cspell/dict-data-science@2.0.16': {} + + '@cspell/dict-django@4.1.6': {} + + '@cspell/dict-docker@1.1.17': {} + + '@cspell/dict-dotnet@5.0.13': {} + + '@cspell/dict-elixir@4.0.8': {} + + '@cspell/dict-en-common-misspellings@2.2.0': {} + + '@cspell/dict-en-gb-mit@3.1.26': {} + + '@cspell/dict-en_us@4.4.37': {} + + '@cspell/dict-filetypes@3.0.18': {} + + '@cspell/dict-flutter@1.1.1': {} + + '@cspell/dict-fonts@4.0.6': {} + + '@cspell/dict-fsharp@1.1.1': {} + + '@cspell/dict-fullstack@3.2.9': {} + + '@cspell/dict-gaming-terms@1.1.2': {} + + '@cspell/dict-git@3.1.0': {} + + '@cspell/dict-golang@6.0.27': {} + + '@cspell/dict-google@1.0.9': {} + + '@cspell/dict-haskell@4.0.6': {} + + '@cspell/dict-html-symbol-entities@4.0.5': {} + + '@cspell/dict-html@4.0.16': {} + + '@cspell/dict-java@5.0.12': {} + + '@cspell/dict-julia@1.1.1': {} + + '@cspell/dict-k8s@1.0.13': {} + + '@cspell/dict-kotlin@1.1.1': {} + + '@cspell/dict-latex@5.1.0': {} + + '@cspell/dict-lorem-ipsum@4.0.5': {} + + '@cspell/dict-lua@4.0.8': {} + + '@cspell/dict-makefile@1.0.5': {} + + '@cspell/dict-markdown@2.0.18(@cspell/dict-css@4.1.2)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.16)(@cspell/dict-typescript@3.2.3)': + dependencies: + '@cspell/dict-css': 4.1.2 + '@cspell/dict-html': 4.0.16 + '@cspell/dict-html-symbol-entities': 4.0.5 + '@cspell/dict-typescript': 3.2.3 + + '@cspell/dict-monkeyc@1.1.0': {} + + '@cspell/dict-node@5.0.9': {} + + '@cspell/dict-npm@5.2.48': {} + + '@cspell/dict-php@4.1.1': {} + + '@cspell/dict-powershell@5.0.15': {} + + '@cspell/dict-public-licenses@2.0.16': {} + + '@cspell/dict-python@4.5.0': + dependencies: + '@cspell/dict-data-science': 2.0.16 + + '@cspell/dict-r@2.1.1': {} + + '@cspell/dict-ruby@5.1.2': {} + + '@cspell/dict-rust@4.1.2': {} + + '@cspell/dict-scala@5.0.9': {} + + '@cspell/dict-shell@1.2.0': {} + + '@cspell/dict-software-terms@5.4.2': {} + + '@cspell/dict-sql@2.2.1': {} + + '@cspell/dict-svelte@1.0.7': {} + + '@cspell/dict-swift@2.0.6': {} + + '@cspell/dict-terraform@1.1.4': {} + + '@cspell/dict-typescript@3.2.3': {} + + '@cspell/dict-vue@3.0.5': {} + + '@cspell/dict-zig@1.0.0': {} + + '@cspell/dynamic-import@9.8.0': + dependencies: + '@cspell/url': 9.8.0 + import-meta-resolve: 4.2.0 + + '@cspell/filetypes@9.8.0': {} + + '@cspell/rpc@9.8.0': {} + + '@cspell/strong-weak-map@9.8.0': {} + + '@cspell/url@9.8.0': {} + '@docsearch/css@3.9.0': {} '@docsearch/react@3.9.0(@algolia/client-search@4.25.3)(@types/react@18.2.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': @@ -6617,10 +7199,10 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.8.1 - '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(yaml@2.8.2))': + '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(yaml@2.9.0))': dependencies: postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.19(yaml@2.8.2) + tailwindcss: 3.4.19(yaml@2.9.0) '@tanstack/react-virtual@3.13.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -7003,6 +7585,8 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.3.0: {} + ansi-sequence-parser@1.1.3: {} ansi-styles@3.2.1: @@ -7340,7 +7924,7 @@ snapshots: chalk-template@1.1.2: dependencies: - chalk: 5.6.0 + chalk: 5.6.2 chalk@2.4.2: dependencies: @@ -7360,6 +7944,8 @@ snapshots: chalk@5.6.0: {} + chalk@5.6.2: {} + character-entities-html4@2.1.0: {} character-entities-legacy@1.1.4: {} @@ -7417,6 +8003,11 @@ snapshots: - react - ws + clear-module@4.1.3: + dependencies: + parent-module: 2.0.0 + resolve-from: 5.0.0 + cli-alerts@2.0.0: dependencies: chalk: 4.1.2 @@ -7516,6 +8107,8 @@ snapshots: comma-separated-tokens@2.0.3: {} + commander@14.0.3: {} + commander@4.1.1: {} commander@7.2.0: {} @@ -7528,6 +8121,11 @@ snapshots: core-util-is: 1.0.3 esprima: 4.0.1 + comment-json@4.6.2: + dependencies: + array-timsort: 1.0.3 + esprima: 4.0.1 + compute-cosine-similarity@1.1.0: dependencies: compute-dot: 1.1.0 @@ -7600,6 +8198,97 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cspell-config-lib@9.8.0: + dependencies: + '@cspell/cspell-types': 9.8.0 + comment-json: 4.6.2 + smol-toml: 1.8.0 + yaml: 2.9.0 + + cspell-dictionary@9.8.0: + dependencies: + '@cspell/cspell-performance-monitor': 9.8.0 + '@cspell/cspell-pipe': 9.8.0 + '@cspell/cspell-types': 9.8.0 + cspell-trie-lib: 9.8.0(@cspell/cspell-types@9.8.0) + fast-equals: 6.0.3 + + cspell-gitignore@9.8.0: + dependencies: + '@cspell/url': 9.8.0 + cspell-glob: 9.8.0 + cspell-io: 9.8.0 + + cspell-glob@9.8.0: + dependencies: + '@cspell/url': 9.8.0 + picomatch: 4.0.7 + + cspell-grammar@9.8.0: + dependencies: + '@cspell/cspell-pipe': 9.8.0 + '@cspell/cspell-types': 9.8.0 + + cspell-io@9.8.0: + dependencies: + '@cspell/cspell-service-bus': 9.8.0 + '@cspell/url': 9.8.0 + + cspell-lib@9.8.0: + dependencies: + '@cspell/cspell-bundled-dicts': 9.8.0 + '@cspell/cspell-performance-monitor': 9.8.0 + '@cspell/cspell-pipe': 9.8.0 + '@cspell/cspell-resolver': 9.8.0 + '@cspell/cspell-types': 9.8.0 + '@cspell/dynamic-import': 9.8.0 + '@cspell/filetypes': 9.8.0 + '@cspell/rpc': 9.8.0 + '@cspell/strong-weak-map': 9.8.0 + '@cspell/url': 9.8.0 + clear-module: 4.1.3 + cspell-config-lib: 9.8.0 + cspell-dictionary: 9.8.0 + cspell-glob: 9.8.0 + cspell-grammar: 9.8.0 + cspell-io: 9.8.0 + cspell-trie-lib: 9.8.0(@cspell/cspell-types@9.8.0) + env-paths: 4.0.0 + gensequence: 8.0.8 + import-fresh: 3.3.1 + resolve-from: 5.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.2.0 + xdg-basedir: 5.1.0 + + cspell-trie-lib@9.8.0(@cspell/cspell-types@9.8.0): + dependencies: + '@cspell/cspell-types': 9.8.0 + + cspell@9.8.0: + dependencies: + '@cspell/cspell-json-reporter': 9.8.0 + '@cspell/cspell-performance-monitor': 9.8.0 + '@cspell/cspell-pipe': 9.8.0 + '@cspell/cspell-types': 9.8.0 + '@cspell/cspell-worker': 9.8.0 + '@cspell/dynamic-import': 9.8.0 + '@cspell/url': 9.8.0 + ansi-regex: 6.3.0 + chalk: 5.6.2 + chalk-template: 1.1.2 + commander: 14.0.3 + cspell-config-lib: 9.8.0 + cspell-dictionary: 9.8.0 + cspell-gitignore: 9.8.0 + cspell-glob: 9.8.0 + cspell-io: 9.8.0 + cspell-lib: 9.8.0 + fast-json-stable-stringify: 2.1.0 + flatted: 3.4.4 + semver: 7.7.4 + tinyglobby: 0.2.15 + cssesc@3.0.0: {} csstype@3.2.3: {} @@ -7929,6 +8618,10 @@ snapshots: env-paths@2.2.1: {} + env-paths@4.0.0: + dependencies: + is-safe-filename: 0.1.1 + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -8089,7 +8782,7 @@ snapshots: eslint: 8.45.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@8.45.0))(eslint@8.45.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1)(eslint@8.45.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.45.0) eslint-plugin-react: 7.37.5(eslint@8.45.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0) @@ -8119,7 +8812,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1)(eslint@8.45.0) transitivePeerDependencies: - supports-color @@ -8134,7 +8827,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1)(eslint@8.45.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8374,6 +9067,8 @@ snapshots: fast-equals@2.0.4: {} + fast-equals@6.0.3: {} + fast-fifo@1.3.2: {} fast-glob@3.3.3: @@ -8443,6 +9138,8 @@ snapshots: flatted@3.3.3: {} + flatted@3.4.4: {} + for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -8521,6 +9218,8 @@ snapshots: generator-function@2.0.1: {} + gensequence@8.0.8: {} + get-caller-file@2.0.5: {} get-intrinsic@1.3.0: @@ -8601,6 +9300,10 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-directory@5.0.0: + dependencies: + ini: 6.0.0 + globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -8862,6 +9565,8 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + import-meta-resolve@4.2.0: {} + imurmurhash@0.1.4: {} indent-string@2.1.0: @@ -8879,6 +9584,8 @@ snapshots: ini@1.3.8: {} + ini@6.0.0: {} + inline-style-parser@0.1.1: {} inline-style-parser@0.2.7: {} @@ -9029,6 +9736,8 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + is-safe-filename@0.1.1: {} + is-set@2.0.3: {} is-shared-array-buffer@1.0.4: @@ -10376,6 +11085,10 @@ snapshots: dependencies: callsites: 3.1.0 + parent-module@2.0.0: + dependencies: + callsites: 3.1.0 + parse-entities@2.0.0: dependencies: character-entities: 1.2.4 @@ -10460,6 +11173,8 @@ snapshots: picomatch@4.0.3: {} + picomatch@4.0.7: {} + pify@2.3.0: {} pinkie-promise@2.0.1: @@ -10497,13 +11212,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.9.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.6 - yaml: 2.8.2 + yaml: 2.9.0 postcss-nested@6.2.0(postcss@8.5.6): dependencies: @@ -10893,6 +11608,8 @@ snapshots: resolve-from@4.0.0: {} + resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} resolve@1.22.11: @@ -11088,6 +11805,8 @@ snapshots: slash@3.0.0: {} + smol-toml@1.8.0: {} + sort-keys@5.1.0: dependencies: is-plain-obj: 4.1.0 @@ -11277,11 +11996,11 @@ snapshots: tailwind-merge@2.6.1: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.19(yaml@2.8.2)): + tailwindcss-animate@1.0.7(tailwindcss@3.4.19(yaml@2.9.0)): dependencies: - tailwindcss: 3.4.19(yaml@2.8.2) + tailwindcss: 3.4.19(yaml@2.9.0) - tailwindcss@3.4.19(yaml@2.8.2): + tailwindcss@3.4.19(yaml@2.9.0): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -11300,7 +12019,7 @@ snapshots: postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.9.0) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.11 @@ -11686,6 +12405,8 @@ snapshots: vscode-uri@3.0.8: {} + vscode-uri@3.2.0: {} + web-namespaces@2.0.1: {} web-streams-polyfill@3.3.3: {} @@ -11767,6 +12488,8 @@ snapshots: dependencies: is-wsl: 3.1.0 + xdg-basedir@5.1.0: {} + xlsx@0.18.5: dependencies: adler-32: 1.3.1 @@ -11790,6 +12513,8 @@ snapshots: yaml@2.8.2: {} + yaml@2.9.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: From 114477cbad4c1942e11ff20093b2bf398ed3e105 Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Sun, 6 Sep 2026 10:34:02 +0000 Subject: [PATCH 02/12] ci: report CSpell findings on pull request diffs Amp-Thread-ID: https://ampcode.com/threads/T-01a06e27-8097-7461-8d90-eef25db09feb Co-authored-by: Amp --- .github/workflows/spellcheck.yml | 59 ++++++++++- cspell-project-words.txt | 2 + dev/check-spelling.mjs | 173 +++++++++++++++++++++++++++++++ package.json | 1 + 4 files changed, 231 insertions(+), 4 deletions(-) create mode 100644 dev/check-spelling.mjs diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index a7694b745..d808f0c43 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -1,18 +1,25 @@ name: Spell check +# Reports spelling errors on lines added by a pull request. Existing spelling +# errors and errors on unchanged lines are not included. + on: pull_request: permissions: contents: read + pull-requests: write jobs: spellcheck: name: CSpell (advisory) runs-on: ubuntu-latest steps: - - name: Check out repository + - name: Check out pull request head uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 - name: Install pnpm uses: pnpm/action-setup@v4 @@ -28,6 +35,50 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile - - name: Check spelling (advisory) - continue-on-error: true - run: pnpm spellcheck + - name: Find spelling errors introduced by this PR + id: check + env: + BASE_SHA: ${{ github.event.pull_request.base.sha }} + run: | + base=$(git merge-base "$BASE_SHA" HEAD) + if pnpm --silent spellcheck:diff -- --base "$base" --format markdown \ + > "$RUNNER_TEMP/spelling-report.md"; then + echo "errors=false" >> "$GITHUB_OUTPUT" + else + status=$? + if [ "$status" -ne 1 ]; then + exit "$status" + fi + echo "errors=true" >> "$GITHUB_OUTPUT" + fi + cat "$RUNNER_TEMP/spelling-report.md" + + - name: Comment on the pull request + # Fork PRs get a read-only token; the report is still in the job log + if: github.event.pull_request.head.repo.full_name == github.repository + env: + GH_TOKEN: ${{ github.token }} + PR_NUMBER: ${{ github.event.pull_request.number }} + ERRORS: ${{ steps.check.outputs.errors }} + run: | + marker='' + existing_comment=$(gh api "repos/$GITHUB_REPOSITORY/issues/$PR_NUMBER/comments" \ + --paginate --jq ".[] | select(.body | startswith(\"$marker\")) | .id" | head -n 1) + + # Comment only when there is something to report, or an earlier report to resolve + if [ "$ERRORS" = true ]; then + { echo "$marker"; cat "$RUNNER_TEMP/spelling-report.md"; } \ + > "$RUNNER_TEMP/comment.md" + elif [ -n "$existing_comment" ]; then + printf '%s\n### ✅ The spelling errors reported on an earlier revision are fixed\n' \ + "$marker" > "$RUNNER_TEMP/comment.md" + else + exit 0 + fi + + if [ -n "$existing_comment" ]; then + gh api --method PATCH "repos/$GITHUB_REPOSITORY/issues/comments/$existing_comment" \ + --field body=@"$RUNNER_TEMP/comment.md" + else + gh pr comment "$PR_NUMBER" --body-file "$RUNNER_TEMP/comment.md" + fi diff --git a/cspell-project-words.txt b/cspell-project-words.txt index 51c507c63..cc509c961 100644 --- a/cspell-project-words.txt +++ b/cspell-project-words.txt @@ -306,6 +306,7 @@ emailaddress embeeddings emidoots emtpy +elif encrypter Endable Enry @@ -935,6 +936,7 @@ standardly starcoder Starlark startedat +startswith statefulsets statesyncer staticcheck diff --git a/dev/check-spelling.mjs b/dev/check-spelling.mjs new file mode 100644 index 000000000..12b88705b --- /dev/null +++ b/dev/check-spelling.mjs @@ -0,0 +1,173 @@ +#!/usr/bin/env node + +/** + * Reports CSpell findings on lines added by a Git diff. + * + * Usage: node dev/check-spelling.mjs --base [--format text|markdown] + * + * Exits 1 when spelling issues are found and 2 for operational errors. + */ + +import {execFileSync, spawnSync} from 'child_process'; +import path from 'path'; +import {fileURLToPath} from 'url'; + +const args = process.argv.slice(2); +const BASE = flagValue('--base'); +const FORMAT = flagValue('--format') ?? 'text'; + +function flagValue(name) { + const index = args.indexOf(name); + return index === -1 ? undefined : args[index + 1]; +} + +function addedLineRanges(base) { + const diff = execFileSync( + 'git', + ['diff', '--unified=0', '--no-color', '--find-renames', base, '--'], + {encoding: 'utf8', maxBuffer: 50 * 1024 * 1024} + ); + const ranges = new Map(); + let file; + + for (const line of diff.split('\n')) { + const fileMatch = line.match(/^\+\+\+ b\/(.+)$/); + if (fileMatch) { + file = fileMatch[1]; + if (!ranges.has(file)) { + ranges.set(file, []); + } + continue; + } + + const hunkMatch = line.match(/^@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@/); + if (file && hunkMatch) { + const start = Number(hunkMatch[1]); + const count = hunkMatch[2] === undefined ? 1 : Number(hunkMatch[2]); + if (count > 0) { + ranges.get(file).push([start, start + count - 1]); + } + } + } + + return ranges; +} + +function runCSpell(files) { + if (files.length === 0) { + return []; + } + + const result = spawnSync( + 'cspell', + [ + '--no-progress', + '--reporter', + '@cspell/cspell-json-reporter', + '--file', + ...files + ], + {encoding: 'utf8', maxBuffer: 50 * 1024 * 1024} + ); + + if (result.error) { + throw result.error; + } + + const report = JSON.parse(result.stdout); + if (![0, 1].includes(result.status) || report.error.length > 0) { + throw new Error(result.stderr || JSON.stringify(report.error)); + } + + return report.issues.map(issue => ({ + file: path.relative(process.cwd(), fileURLToPath(issue.uri)), + line: issue.row, + column: issue.col, + word: issue.text, + context: issue.context?.text.trim() ?? issue.line.text.trim() + })); +} + +function findingsOnAddedLines(ranges, issues) { + return issues.filter(issue => + (ranges.get(issue.file) ?? []).some( + ([start, end]) => issue.line >= start && issue.line <= end + ) + ); +} + +function groupByFile(findings) { + const grouped = new Map(); + for (const finding of findings) { + if (!grouped.has(finding.file)) { + grouped.set(finding.file, []); + } + grouped.get(finding.file).push(finding); + } + return grouped; +} + +function formatText(findings) { + if (findings.length === 0) { + return 'No spelling errors found in added lines.\n'; + } + + const lines = [ + `Found ${findings.length} spelling error(s) in added lines:` + ]; + for (const finding of findings) { + lines.push( + `${finding.file}:${finding.line}:${finding.column} - Unknown word (${finding.word})` + ); + } + return lines.join('\n') + '\n'; +} + +function formatMarkdown(findings) { + if (findings.length === 0) { + return '### ✅ No spelling errors found in this PR\n'; + } + + const lines = [ + `### ⚠️ CSpell found ${findings.length} spelling error(s) in this PR`, + '', + 'Only findings on lines added by this PR are shown.', + '' + ]; + for (const [file, fileFindings] of groupByFile(findings)) { + lines.push(`**\`${file}\`**`); + for (const {line, column, word, context} of fileFindings) { + const excerpt = context.replaceAll('`', "'").slice(0, 160); + lines.push( + `- line ${line}, column ${column}: \`${word}\` — \`${excerpt}\`` + ); + } + lines.push(''); + } + lines.push('Run `pnpm spellcheck` locally to check the full repository.'); + return lines.join('\n') + '\n'; +} + +async function main() { + if (!BASE) { + throw new Error('Missing required --base '); + } + if (!['text', 'markdown'].includes(FORMAT)) { + throw new Error(`Unknown --format "${FORMAT}"; use text or markdown`); + } + + const ranges = addedLineRanges(BASE); + const findings = findingsOnAddedLines( + ranges, + runCSpell([...ranges.keys()]) + ); + process.stdout.write( + FORMAT === 'markdown' ? formatMarkdown(findings) : formatText(findings) + ); + process.exit(findings.length === 0 ? 0 : 1); +} + +main().catch(error => { + console.error(error); + process.exit(2); +}); diff --git a/package.json b/package.json index e1c47846b..d131f863c 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "start": "next start", "lint": "next lint", "spellcheck": "cspell --no-progress --dot '**/*'", + "spellcheck:diff": "node dev/check-spelling.mjs", "check-links": "node dev/check-links.mjs", "check-filenames": "node dev/check-filenames.mjs", "check-images": "node dev/check-images.mjs", From 0e80ba21f164722a65637398d335b0753d632097 Mon Sep 17 00:00:00 2001 From: Marc <7050295+marcleblanc2@users.noreply.github.com> Date: Tue, 8 Sep 2026 00:33:13 +0000 Subject: [PATCH 03/12] ci: drop misspellings from the CSpell project dictionary Remove the 126 misspelled words from cspell-project-words.txt: the 112 words already listed in flagWords, plus 14 more found while reviewing the dictionary (addresseses, Changs, certains, condeintel, ERRROS, gorelaser, lobal, Redict, settingscasacde, sguqery, Sourcegraphs, Stablechore, theyre, Wofli). The words that still appear in non-generated docs are fixed in #1855 and #1873; the rest only occur in generated files that cspell.json already ignores. Keep eror, functio, and stabili in the dictionary and stop flagging them: eror is Sourcegraph's log level token (lvl=eror), and functio and stabili are truncation artifacts in verbatim command output, not misspellings. Co-authored-by: Amp Amp-Thread-ID: https://ampcode.com/threads/T-01a07e67-73b3-779f-8880-7ba770fe7ade --- cspell-project-words.txt | 126 --------------------------------------- cspell.json | 3 - 2 files changed, 129 deletions(-) diff --git a/cspell-project-words.txt b/cspell-project-words.txt index cc509c961..d4f991f22 100644 --- a/cspell-project-words.txt +++ b/cspell-project-words.txt @@ -10,12 +10,8 @@ abacabadabacaba Abulating Accessrequest Accessrequests -accomodate -Acepted acmeco -activites actr -addresseses ADFS administrationservice advisements @@ -23,7 +19,6 @@ airgapped Aiven Alexjean algoliasearch -alignemnt allkeys amcheck amname @@ -52,13 +47,10 @@ attrelid ature auditlog auditlogs -authentitcation -authroized autocompletions autoedit Autoedits Autoindexing -autoiondex autol autoscalers autoscrolling @@ -127,7 +119,6 @@ CAROOT Categorise CDKTF centralise -certains Certbot certonly changese @@ -140,7 +131,6 @@ changesettemplatecommitmessage changesettemplatefork changesettemplatepublished changesettemplatetitle -Changs chargeback chargebacks chatbots @@ -200,35 +190,24 @@ commandsets commitgraph committerdate commitmap -compatability -comphrensive Completioncredits -composit -condeintel -conection configmap -configuredimageimage conftypes connectrpc Connectutil conntrack Consolas -consule contentlayer -contiainer -contraint couldn coursier Crashloop crashloopbackoff createdat creds -Crtl cstring ctid ctstate CUDA -custmoize customcert customising Côte @@ -238,7 +217,6 @@ darkhold dasharray databasetest Databaseutil -databse datalake datcollversion datname @@ -254,16 +232,12 @@ dbworker debugserver Decorrelate decrypter -dedupliacte deepsearch deepseek -defininition Deglobalize deleter demopasswordchangeme -depdendencies deprec -determinstic DEVMINOR DEVPATCH devrel @@ -279,7 +253,6 @@ dmsetup Dockerfiles docsite docstrings -documenta dogfood Dont doombot @@ -298,17 +271,13 @@ duplicatable duplicative dvcmtmb eastus -Eclispe eksctl ELEC elkjs emailaddress -embeeddings emidoots -emtpy elif encrypter -Endable Enry enterpriseportal entitlementstelemetry @@ -319,7 +288,6 @@ eror errcode errgroup Errorf -ERRROS esbenp esbuild Eswatini @@ -329,14 +297,9 @@ evals evenodd EVICTEDPOD execlog -exector -executon executorqueue -exernal exfiltration exhaustruct -exisiting -explictly explorable externalapi externalhttp @@ -349,7 +312,6 @@ favourite featureflag Fede federationmetadata -fetchinig FHMQ filegroup Filippo @@ -362,26 +324,20 @@ forrester Frontmatter fsext FSTYPE -fulfiill -fulfuill fullchain fullpath functio -gatway -Gemin generalise genrules Getenv GHAS ghauth gifs -Gitab Gitaly Gitaly's gitcli gitdir gitea's -gitgnore githost githubapp Gitolite @@ -399,11 +355,9 @@ GOGIT goimports goldmark GOMAXPROCS -gomft Gomod googlecloud gopkg -gorelaser goreleaser gorm Goroutines @@ -417,7 +371,6 @@ graphd graphqlbackend groundtruth gsuite -guarauntees Hackathon healthcheck healthz @@ -425,8 +378,6 @@ HELO hhbmdlc Hitesh homescreen -hopefull -horizonal horsegraph horsten hostmatcher @@ -445,7 +396,6 @@ IBATAN Ibdki Iconify idelta -identitfier IDPSSO ified iles @@ -468,19 +418,15 @@ indkey indnkeyatts indrelid inferencing -Ingore initcontainer Initialise Inkscape -insufficent intarray inte integrationtest Intelli internalapi internaldoer -intterupt -invididual invitable iptable isopen @@ -491,7 +437,6 @@ iterm Itoa jaegerexporter JCEF -jeager jemalloc jiapantw journalctl @@ -525,7 +470,6 @@ libsecret Licensecheck licenseinfo lightmode -limitting Linearhooks linecap linejoin @@ -534,7 +478,6 @@ linkifying listworkspaces llmapitelemetry Llms -lobal Localdev localenv lockfiles @@ -555,10 +498,8 @@ maedahbatool Magik managedservicesplatform managementv -managmeent Marino marketingtracking -matadata maxage maxmemory maxpages @@ -570,7 +511,6 @@ menulink meteringexporter meteringservice migops -migtrator MIIC Minimise miscategorize @@ -588,7 +528,6 @@ monolithsams mountpoint mpim mtok -Mulitenant multiplicatively multiqueue multitenancy @@ -615,7 +554,6 @@ myteam myvalue nameid nameopt -necesarily NETRC Nlcjo Nlcjox @@ -642,9 +580,6 @@ nums nvim objectname oauthconfig -occured -occurence -occuring oidvectorin oldtbl Ollama @@ -662,7 +597,6 @@ ooks oomkill opclass opcmethod -Opean openaicompatible opencode openctx @@ -672,34 +606,24 @@ opentracing Operationdocs operatorwrite Optim -optimisitic -optimizated optin orderedmap -ordererd organisation organisations ORGID orgpolicy Otelcollector overcounted -Owernship oyaml pagelen pagure -paramter Parsely parsewithclaims pathspec patterntype PCIW PCRE -peforce pekko -percaution -permanant -permanentaly -permisisons permissioning persistentvolumeclaims pgaudit @@ -729,23 +653,18 @@ polysans pooler Postgresdsn postgresqlroles -postgress postrepoactions pousr prechecks PREEMPTIBLE preg premade -prerequisit printlns -privileized -privisioning privkey problemfix productsubscription productsubscriptions projectname -promotheus protips protobufjs protoc @@ -754,10 +673,7 @@ Príncipe publishusermetadata pubout pubsubemulator -Pugins pullrequest -pumbling -puslishing pvcs pykafka Queuemetrics @@ -772,11 +688,9 @@ rbacs rcache rder readwrite -reapplyed reblame reclone recloning -Redict redirections redispool Redocly @@ -797,7 +711,6 @@ relnamespace relpages relpersistence relreg -repliacas repoferee repogroup repohasfile @@ -814,12 +727,10 @@ rerank reranker rerankers reranking -Rermoved rescope resharding resizeable resourcemanager -reveiver rgba riazanovskiy Rica @@ -843,19 +754,12 @@ safedetails samltool sams Sandboxing -santizes sboms sched SCIM scip SCIW -screeen -scret -seach -searcg Searchplatform -Searchs -searhces seccomp secretmanager secretname @@ -864,16 +768,13 @@ seeklogo Semgrep Sendgrid Sensitivemetadataallowlist -seperate sequencenumber -Serch serde serilog sers serverside servicetenant setext -settingscasacde settingsjson setx sfixed @@ -882,7 +783,6 @@ sggray sghttp sgquery sgtest -sguqery sgviolet Shadcn shellcheck @@ -891,32 +791,24 @@ shiki showcerts SIEM sigalg -simiply -Simpify Singleflight Siteadmin siteconfig -sitiched skylib SLES Snek snekpm somerandom -Sorucegraph SOTA -Soucegraph Sourceg sourcegr Sourcegraphaccounts sourcegraphcloud sourcegraphcom -Sourcegraphs -soureces Spacebar spammy spaservice specialised -specifiy spectaql SPLF SQLSTATE @@ -928,8 +820,6 @@ sshuttle sslmode SSVZBVE stabili -Stablechore -stablility stackexchange standardised standardly @@ -949,7 +839,6 @@ stepsoutputs stepsoutputsnameformat stepsoutputsnamevalue stepsrun -stiched stockout stopwords storageaccounttype @@ -968,27 +857,20 @@ subsubgroup subteam subteams subwords -sufficiantly sunsetting suspiciousnames Syft -Symbos symf syncer syncers syncher synchronised -synchronizzation Syntect -tailling Talkhouse TARGETGROUP -targetting -teamates teestore teewrite tele -Telemetery telemetryevents telemetrygateway telemetrygatewayexporter @@ -1000,11 +882,9 @@ testroute testsourcegraph testusers testutil -Tetsted Textualize tfvars theirrepo -theyre thorsten thorstens threadcreate @@ -1035,7 +915,6 @@ transformchangesgrouprepository trgm triaging trialling -ttimedout Txemail typebox typesafe @@ -1058,7 +937,6 @@ unibeautify Unindexed unioned uniquing -unmarsha unmarshal unmarshalling unmarshals @@ -1068,14 +946,12 @@ unredaction unrevert unrs unstar -unsued untar updatecheck upgradetest upgradetests uploadhandler Uploadpack -Upperand upsell upsells urlencode @@ -1106,10 +982,8 @@ Weaveworks webh webp Winsize -Wofli wolfi workerutil -workpsaces workspacesin workspacesonlyfetchworkspace Workspacesreconciler diff --git a/cspell.json b/cspell.json index 536d9e126..7111afb8a 100644 --- a/cspell.json +++ b/cspell.json @@ -38,7 +38,6 @@ "embeeddings", "emtpy", "Endable", - "eror", "exector", "executon", "exernal", @@ -47,7 +46,6 @@ "fetchinig", "fulfiill", "fulfuill", - "functio", "gatway", "Gemin", "Gitab", @@ -110,7 +108,6 @@ "Soucegraph", "soureces", "specifiy", - "stabili", "stablility", "stiched", "sufficiantly", From 137d7f786c65480c108cbf69ffd80c81d43345ce Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Tue, 8 Sep 2026 18:34:06 -0600 Subject: [PATCH 04/12] ci: post CSpell findings as inline pull request review comments check-spelling.mjs gains --format json (with cspell suggestions) and loses the markdown formatter. post-spelling-review.mjs owns all GitHub posting: the existing summary comment, plus one COMMENT review per run with an inline comment on each newly flagged line. Comments for findings that are still present are kept; stale ones are deleted. Capped at 25 inline per run. Amp-Thread-ID: https://ampcode.com/threads/T-01a0837b-04dc-7559-831d-ba3b35c75489 Co-authored-by: Amp --- .github/workflows/spellcheck.yml | 50 ++----- dev/check-spelling.mjs | 49 ++----- dev/post-spelling-review.mjs | 231 +++++++++++++++++++++++++++++++ 3 files changed, 251 insertions(+), 79 deletions(-) create mode 100644 dev/post-spelling-review.mjs diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index d808f0c43..fee105b73 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -1,7 +1,8 @@ name: Spell check -# Reports spelling errors on lines added by a pull request. Existing spelling -# errors and errors on unchanged lines are not included. +# Reports spelling errors on lines added by a pull request, as a summary comment +# plus inline review comments on the flagged lines. Existing spelling errors and +# errors on unchanged lines are not included. on: pull_request: @@ -36,49 +37,20 @@ jobs: run: pnpm install --frozen-lockfile - name: Find spelling errors introduced by this PR - id: check env: BASE_SHA: ${{ github.event.pull_request.base.sha }} run: | base=$(git merge-base "$BASE_SHA" HEAD) - if pnpm --silent spellcheck:diff -- --base "$base" --format markdown \ - > "$RUNNER_TEMP/spelling-report.md"; then - echo "errors=false" >> "$GITHUB_OUTPUT" - else - status=$? - if [ "$status" -ne 1 ]; then - exit "$status" - fi - echo "errors=true" >> "$GITHUB_OUTPUT" - fi - cat "$RUNNER_TEMP/spelling-report.md" + # Exit 1 means findings; anything else is an operational error + pnpm --silent spellcheck:diff -- --base "$base" --format json \ + > "$RUNNER_TEMP/spelling.json" || [ "$?" -eq 1 ] + cat "$RUNNER_TEMP/spelling.json" - - name: Comment on the pull request - # Fork PRs get a read-only token; the report is still in the job log + - name: Report on the pull request + # Fork PRs get a read-only token; the findings are still in the job log if: github.event.pull_request.head.repo.full_name == github.repository env: GH_TOKEN: ${{ github.token }} PR_NUMBER: ${{ github.event.pull_request.number }} - ERRORS: ${{ steps.check.outputs.errors }} - run: | - marker='' - existing_comment=$(gh api "repos/$GITHUB_REPOSITORY/issues/$PR_NUMBER/comments" \ - --paginate --jq ".[] | select(.body | startswith(\"$marker\")) | .id" | head -n 1) - - # Comment only when there is something to report, or an earlier report to resolve - if [ "$ERRORS" = true ]; then - { echo "$marker"; cat "$RUNNER_TEMP/spelling-report.md"; } \ - > "$RUNNER_TEMP/comment.md" - elif [ -n "$existing_comment" ]; then - printf '%s\n### ✅ The spelling errors reported on an earlier revision are fixed\n' \ - "$marker" > "$RUNNER_TEMP/comment.md" - else - exit 0 - fi - - if [ -n "$existing_comment" ]; then - gh api --method PATCH "repos/$GITHUB_REPOSITORY/issues/comments/$existing_comment" \ - --field body=@"$RUNNER_TEMP/comment.md" - else - gh pr comment "$PR_NUMBER" --body-file "$RUNNER_TEMP/comment.md" - fi + HEAD_SHA: ${{ github.event.pull_request.head.sha }} + run: node dev/post-spelling-review.mjs --findings "$RUNNER_TEMP/spelling.json" diff --git a/dev/check-spelling.mjs b/dev/check-spelling.mjs index 12b88705b..f13b228a9 100644 --- a/dev/check-spelling.mjs +++ b/dev/check-spelling.mjs @@ -3,8 +3,9 @@ /** * Reports CSpell findings on lines added by a Git diff. * - * Usage: node dev/check-spelling.mjs --base [--format text|markdown] + * Usage: node dev/check-spelling.mjs --base [--format text|json] * + * The json format feeds dev/post-spelling-review.mjs. * Exits 1 when spelling issues are found and 2 for operational errors. */ @@ -62,6 +63,7 @@ function runCSpell(files) { 'cspell', [ '--no-progress', + '--show-suggestions', '--reporter', '@cspell/cspell-json-reporter', '--file', @@ -84,6 +86,7 @@ function runCSpell(files) { line: issue.row, column: issue.col, word: issue.text, + suggestions: issue.suggestions?.slice(0, 3) ?? [], context: issue.context?.text.trim() ?? issue.line.text.trim() })); } @@ -96,17 +99,6 @@ function findingsOnAddedLines(ranges, issues) { ); } -function groupByFile(findings) { - const grouped = new Map(); - for (const finding of findings) { - if (!grouped.has(finding.file)) { - grouped.set(finding.file, []); - } - grouped.get(finding.file).push(finding); - } - return grouped; -} - function formatText(findings) { if (findings.length === 0) { return 'No spelling errors found in added lines.\n'; @@ -123,37 +115,12 @@ function formatText(findings) { return lines.join('\n') + '\n'; } -function formatMarkdown(findings) { - if (findings.length === 0) { - return '### ✅ No spelling errors found in this PR\n'; - } - - const lines = [ - `### ⚠️ CSpell found ${findings.length} spelling error(s) in this PR`, - '', - 'Only findings on lines added by this PR are shown.', - '' - ]; - for (const [file, fileFindings] of groupByFile(findings)) { - lines.push(`**\`${file}\`**`); - for (const {line, column, word, context} of fileFindings) { - const excerpt = context.replaceAll('`', "'").slice(0, 160); - lines.push( - `- line ${line}, column ${column}: \`${word}\` — \`${excerpt}\`` - ); - } - lines.push(''); - } - lines.push('Run `pnpm spellcheck` locally to check the full repository.'); - return lines.join('\n') + '\n'; -} - async function main() { if (!BASE) { throw new Error('Missing required --base '); } - if (!['text', 'markdown'].includes(FORMAT)) { - throw new Error(`Unknown --format "${FORMAT}"; use text or markdown`); + if (!['text', 'json'].includes(FORMAT)) { + throw new Error(`Unknown --format "${FORMAT}"; use text or json`); } const ranges = addedLineRanges(BASE); @@ -162,7 +129,9 @@ async function main() { runCSpell([...ranges.keys()]) ); process.stdout.write( - FORMAT === 'markdown' ? formatMarkdown(findings) : formatText(findings) + FORMAT === 'json' + ? JSON.stringify(findings, null, '\t') + '\n' + : formatText(findings) ); process.exit(findings.length === 0 ? 0 : 1); } diff --git a/dev/post-spelling-review.mjs b/dev/post-spelling-review.mjs new file mode 100644 index 000000000..d87fca28d --- /dev/null +++ b/dev/post-spelling-review.mjs @@ -0,0 +1,231 @@ +#!/usr/bin/env node + +/** + * Reports CSpell findings on a pull request: one summary comment in the + * discussion, plus an inline review comment on each flagged line. + * + * Usage: node dev/post-spelling-review.mjs --findings [--dry-run] + * + * Reads the JSON written by `dev/check-spelling.mjs --format json`. + * Requires GH_TOKEN, GITHUB_REPOSITORY, PR_NUMBER and HEAD_SHA. + */ + +import {readFileSync} from 'fs'; + +const args = process.argv.slice(2); +const FINDINGS_FILE = args[args.indexOf('--findings') + 1]; +const DRY_RUN = args.includes('--dry-run'); +const MAX_INLINE_COMMENTS = 25; + +const API_URL = process.env.GITHUB_API_URL ?? 'https://api.github.com'; +const REPOSITORY = process.env.GITHUB_REPOSITORY; +const PR_NUMBER = process.env.PR_NUMBER; +const HEAD_SHA = process.env.HEAD_SHA; + +const SUMMARY_MARKER = ''; +const INLINE_MARKER = '/)?.[1]; + return word && findingKey({file: comment.path, line: comment.line, word}); +} + +function inlineBody({word, suggestions}) { + const hint = + suggestions.length > 0 + ? ` Did you mean ${suggestions.map(suggestion => `\`${suggestion}\``).join(', ')}?` + : ''; + return [ + `${INLINE_MARKER} ${word} -->`, + `\`${word}\` is not in the dictionary.${hint}`, + '', + 'Please correct the spelling, or add the word to `cspell-allow-list.txt` if it is correct.' + ].join('\n'); +} + +function reviewBody(shown, total) { + const summary = `CSpell found ${total} spelling error(s) on lines added by this PR. Please correct them, or add them to \`cspell-allow-list.txt\` if they are correct.`; + return shown < total + ? `${summary} The first ${shown} are commented inline; the summary comment lists them all.` + : summary; +} + +async function syncInlineComments(findings) { + const wanted = new Map( + findings.map(finding => [findingKey(finding), finding]) + ); + const comments = await githubList( + `/repos/${REPOSITORY}/pulls/${PR_NUMBER}/comments` + ); + + for (const comment of comments) { + const key = existingCommentKey(comment); + if (!key) { + continue; + } + if (wanted.has(key)) { + wanted.delete(key); + } else { + await githubWrite( + 'DELETE', + `/repos/${REPOSITORY}/pulls/comments/${comment.id}` + ); + } + } + + const fresh = [...wanted.values()]; + if (fresh.length === 0) { + return; + } + const shown = fresh.slice(0, MAX_INLINE_COMMENTS); + await githubWrite( + 'POST', + `/repos/${REPOSITORY}/pulls/${PR_NUMBER}/reviews`, + { + commit_id: HEAD_SHA, + event: 'COMMENT', + body: reviewBody(shown.length, fresh.length), + comments: shown.map(finding => ({ + path: finding.file, + line: finding.line, + side: 'RIGHT', + body: inlineBody(finding) + })) + } + ); +} + +async function main() { + for (const name of [ + 'GH_TOKEN', + 'GITHUB_REPOSITORY', + 'PR_NUMBER', + 'HEAD_SHA' + ]) { + if (!process.env[name]) { + throw new Error(`Missing required environment variable ${name}`); + } + } + if (!FINDINGS_FILE) { + throw new Error('Missing required --findings '); + } + + const findings = JSON.parse(readFileSync(FINDINGS_FILE, 'utf8')); + console.log(`${findings.length} finding(s) to report`); + await upsertSummaryComment(findings); + await syncInlineComments(findings); +} + +main().catch(error => { + console.error(error); + process.exit(2); +}); From bad0fac4662dd0c2a3b80784075ae064a0c5ad54 Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Tue, 8 Sep 2026 18:34:06 -0600 Subject: [PATCH 05/12] ci: offer one-click GitHub suggestions in CSpell inline comments check-spelling.mjs emits the full source line. Each inline comment carries a suggestion block per cspell candidate (up to 3), with candidates matching the flagged word's initial capitalization listed first. Amp-Thread-ID: https://ampcode.com/threads/T-01a0837b-04dc-7559-831d-ba3b35c75489 Co-authored-by: Amp --- dev/check-spelling.mjs | 1 + dev/post-spelling-review.mjs | 38 ++++++++++++++++++++++++++++++------ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/dev/check-spelling.mjs b/dev/check-spelling.mjs index f13b228a9..733949636 100644 --- a/dev/check-spelling.mjs +++ b/dev/check-spelling.mjs @@ -87,6 +87,7 @@ function runCSpell(files) { column: issue.col, word: issue.text, suggestions: issue.suggestions?.slice(0, 3) ?? [], + text: issue.line.text.replace(/\r?\n$/, ''), context: issue.context?.text.trim() ?? issue.line.text.trim() })); } diff --git a/dev/post-spelling-review.mjs b/dev/post-spelling-review.mjs index d87fca28d..b6ef60c43 100644 --- a/dev/post-spelling-review.mjs +++ b/dev/post-spelling-review.mjs @@ -139,15 +139,41 @@ function existingCommentKey(comment) { return word && findingKey({file: comment.path, line: comment.line, word}); } -function inlineBody({word, suggestions}) { - const hint = - suggestions.length > 0 - ? ` Did you mean ${suggestions.map(suggestion => `\`${suggestion}\``).join(', ')}?` - : ''; +// CSpell suggests case-insensitively, so list suggestions whose first letter +// matches the case of the flagged word first. +function orderedSuggestions({word, suggestions}) { + const isUpper = letter => letter === letter.toUpperCase(); + const matchesCase = suggestion => + isUpper(suggestion[0]) === isUpper(word[0]); + return [ + ...suggestions.filter(matchesCase), + ...suggestions.filter(suggestion => !matchesCase(suggestion)) + ]; +} + +// One GitHub suggestion block per candidate, each with its own apply button. +// A four-backtick fence so lines containing ``` cannot break out of the block. +function suggestionBlocks(finding) { + const {text, column, word} = finding; + const start = column - 1; + return orderedSuggestions(finding).map(suggestion => + [ + `\`${suggestion}\`:`, + '````suggestion', + text.slice(0, start) + suggestion + text.slice(start + word.length), + '````', + '' + ].join('\n') + ); +} + +function inlineBody(finding) { + const {word, suggestions} = finding; return [ `${INLINE_MARKER} ${word} -->`, - `\`${word}\` is not in the dictionary.${hint}`, + `\`${word}\` is not in the dictionary.${suggestions.length > 0 ? ' Did you mean:' : ''}`, '', + ...suggestionBlocks(finding), 'Please correct the spelling, or add the word to `cspell-allow-list.txt` if it is correct.' ].join('\n'); } From baea66a697b70030736473bf8041a2e8cca48a4b Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Wed, 9 Sep 2026 00:50:48 -0600 Subject: [PATCH 06/12] Update CSpell to v10 to separate block list from cspell.json, and fix more typos --- .github/workflows/spellcheck.yml | 17 +- .gitignore | 2 + README.md | 2 +- ...project-words.txt => cspell-allow-list.txt | 551 ++----------- cspell-block-list.txt | 112 +++ cspell.json | 131 +-- dev/post-spelling-review.mjs | 2 +- docs/admin/config/batch-changes.mdx | 6 +- docs/batch-changes/batch-spec-templating.mdx | 4 +- docs/batch-changes/troubleshooting.mdx | 2 +- docs/cli/explanations/env.mdx | 2 +- .../search-aggregations-use-cases.mdx | 4 +- docs/code-monitoring/index.mdx | 4 +- docs/code-navigation/auto-indexing.mdx | 2 +- docs/code-search/compare-file-filtering.mdx | 2 +- .../cody/enterprise/model-config-examples.mdx | 2 +- docs/self-hosted/advanced-config-file.mdx | 2 +- docs/self-hosted/deploy/kubernetes/index.mdx | 8 +- package.json | 3 - pnpm-lock.yaml | 755 +----------------- src/data/redirects.ts | 2 + 21 files changed, 246 insertions(+), 1369 deletions(-) rename cspell-project-words.txt => cspell-allow-list.txt (53%) create mode 100644 cspell-block-list.txt diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index fee105b73..773ab359c 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -22,19 +22,16 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 - - name: Install pnpm - uses: pnpm/action-setup@v4 - with: - version: 10.25.0 - + # CSpell is installed on its own, not as a project dependency, so it + # can use the latest Node.js without moving the site build off the + # version pinned in .tool-versions. - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: 20.19.6 - cache: pnpm + node-version: latest - - name: Install dependencies - run: pnpm install --frozen-lockfile + - name: Install CSpell + run: npm install --global cspell@10 - name: Find spelling errors introduced by this PR env: @@ -42,7 +39,7 @@ jobs: run: | base=$(git merge-base "$BASE_SHA" HEAD) # Exit 1 means findings; anything else is an operational error - pnpm --silent spellcheck:diff -- --base "$base" --format json \ + node dev/check-spelling.mjs --base "$base" --format json \ > "$RUNNER_TEMP/spelling.json" || [ "$?" -eq 1 ] cat "$RUNNER_TEMP/spelling.json" diff --git a/.gitignore b/.gitignore index ff9bc8266..7ad682477 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,5 @@ public/changelog.rss .amp/portals/ public/technical-changelog.rss + +logs/ diff --git a/README.md b/README.md index f6c2b391a..3323b01e0 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Now that the base requirements of the project have been satisfied, we can instal pnpm install ``` -This also installs the CSpell development dependency. It has no special impact on normal local development and does not run automatically; run `pnpm spellcheck` explicitly when you want to check spelling. +Spell checking is not part of the project dependencies. To run it locally: `npx cspell@10 --no-progress --dot '**/*'` Next, run the development server: diff --git a/cspell-project-words.txt b/cspell-allow-list.txt similarity index 53% rename from cspell-project-words.txt rename to cspell-allow-list.txt index d4f991f22..e5d99ffcd 100644 --- a/cspell-project-words.txt +++ b/cspell-allow-list.txt @@ -1,127 +1,104 @@ -# Sourcegraph products, projects, APIs, configuration identifiers, and example terms. -Sourcegraph -Cody -Codeintel -CodeInsights -CodeSearch -Executors -src -abacabadabacaba -Abulating -Accessrequest -Accessrequests -acmeco +# Words CSpell should accept +# Matching is case- and accent-insensitive + +# Sourcegraph Chrome extension ID +dgjhfomjieaadpoljlnidmbgkdffpack + +# Base64-encoded GraphQL ID "User:1" +VXNlcjox + +# Algolia application ID +0EBA2NRQU3 + +# Base64-encoded GraphQL ID "SearchJob:1" +U2VhcmNoSm9iOjY5 + +# base64 for `RegistryExtension:` in synced / generated file `docs/cli/references/extensions/delete.mdx` +# The twist is that the command it documents doesn't exist anymore +# TODO: Delete docs for commands which no longer exist +# TODO: Remove after merging +UmVnaXN0cnlFeHRlbnNpb246 + +# Fragments of truncated shell output in examples actr +autol +eror # TODO: Remove after merging 1884 +functio # TODO: Remove after merging 1885 +ified +mtok +pousr +sourcegr +stabili + +# Words +acmeco ADFS -administrationservice advisements airgapped Aiven -Alexjean algoliasearch allkeys amcheck amname ampcode -anish anotherproject anotherrepo -apiclient apidocs -APIURL -apiworker -apko -appcode appendonly appengine appgw -arafatkatze -arent ARGF -asbasdfgasd -ated atoburl -Atoi +atoi attnum attrelid -ature -auditlog -auditlogs autocompletions autoedit -Autoedits -Autoindexing -autol +autoedits +autoindexing +automations autoscalers -autoscrolling autoupgrade -autoupgrades -autoupgrading autovacuum -avgqu Awais awscli awsrepos azuredevops -azureopenai -backcompat -Backfiller +backfiller baseai batchchange batchchanges batcheshelper batchignore batchutils -bazelignore -bazelisk -bazelrc -bclj behaviour behaviours beyang -Bgkqh bgwriter binutils bitbucketcloud bitbucketserver bitmapscan Bitwarden -Blackhole blkid -Blobstore -Blocklists +blobstore blurple -braindot -broadcastmessages browsable -buildchecker buildconfig -buildifier -Buildtracker Burkina burndown BYOK BYOLLM -bytesize -bzlmod Cabo cacerts -Cachix cadvisor callsign callsigns -callsite callsites camdentest -camino -cancelation CAROOT -Categorise -CDKTF -centralise Certbot certonly -changese changesettemplate changesettemplatebody changesettemplatebranch @@ -131,275 +108,148 @@ changesettemplatecommitmessage changesettemplatefork changesettemplatepublished changesettemplatetitle -chargeback -chargebacks chatbots cheatsheet checkhealth -checkins -chunker citext Citus clickjacking clientauthconfig -clientside -clion cloneproxy -cloneurl -Cloudapi cloudasset cloudkms cloudnotifications -cloudrun -cloudsql -cloudsqladmin -cloudsqlproxy cloudtrace clusterrole clusterrolebinding cmdline codecompletions -codegen codegraph -Codehost +codehost codehosts -codeintellify +codeinsights +codeintel codellama codemod -codemonitor -codemonitoring -Codemonitors -codenav -CODENOTIFY -CODENOTIFYs -codyaccess -Codyapi -Codyauditlog -Codygateway -Codygatewayevents -codypcw's -Codyplg -codyplgsunset -codyprosunset +codemonitors +codesearch collatable colordiff combinatorially comby -commandset -commandsets commitgraph committerdate -commitmap -Completioncredits configmap -conftypes -connectrpc -Connectutil conntrack Consolas contentlayer -couldn -coursier -Crashloop +Côte +crashloop crashloopbackoff createdat -creds cstring ctid ctstate CUDA customcert customising -Côte d'Ivoire daemonset darkhold -dasharray -databasetest -Databaseutil datalake datcollversion datname -dbanalyze -dbbacked -dbconn dbname -dbperms dbstore -dbtest dbug -dbworker -debugserver -Decorrelate decrypter deepsearch deepseek -Deglobalize -deleter demopasswordchangeme -deprec DEVMINOR DEVPATCH devrel -devx -dgjhfomjieaadpoljlnidmbgkdffpack dgrijalva diffstat dind -DINF -diskcache -Distros +distros dmsetup -Dockerfiles +dockerfiles docsite docstrings -dogfood -Dont doombot -dotcomdb -Dotcomgating -Dotcomuser downto dport -DQVRFLS drilldown -Drilldowns +drilldowns drwxr dshm dumpall -duplicatable -duplicative -dvcmtmb eastus eksctl ELEC -elkjs emailaddress -emidoots -elif encrypter Enry -enterpriseportal -entitlementstelemetry entrycommand envsubst -ephemerals -eror -errcode errgroup -Errorf +errorf esbenp -esbuild Eswatini etcdctl euxo -evals -evenodd EVICTEDPOD -execlog -executorqueue exfiltration -exhaustruct explorable externalapi -externalhttp extsvc Falco Faso favorited favoriting favourite -featureflag -Fede federationmetadata -FHMQ -filegroup Filippo -finetuned finetuning finishedat fmtlib -footguns forrester -Frontmatter -fsext +frontmatter FSTYPE fullchain fullpath -functio -generalise -genrules -Getenv -GHAS -ghauth gifs -Gitaly -Gitaly's -gitcli gitdir -gitea's +gitea githost -githubapp Gitolite -Gitserver -gitserver's -gitservers -Gitservice -Glicm -globaldbtenant -Globalstate +gitserver gnachman gobwas gofmt -GOGIT goimports -goldmark GOMAXPROCS -Gomod googlecloud gopkg goreleaser -gorm -Goroutines -gosyntect -gotmpl -GOTOOLCHAIN -GOWORK -gqlutil +goroutines graphbook graphd graphqlbackend -groundtruth gsuite -Hackathon healthcheck healthz HELO -hhbmdlc -Hitesh -homescreen horsegraph horsten hostmatcher hostpath -hoverables -hovercards HSTS -httpapi -httpcache -httpserver httptest huggingface -IAAAAAAAAA -IBAAKCAQEA -IBATAN -Ibdki Iconify -idelta IDPSSO -ified -iles -imageimage imagepullsecrets importchangesets importchangesetsexternalids @@ -417,43 +267,26 @@ indisvalid indkey indnkeyatts indrelid -inferencing -initcontainer -Initialise -Inkscape intarray -inte -integrationtest -Intelli -internalapi -internaldoer -invitable -iptable +intelli isopen istari itable -iterext iterm -Itoa -jaegerexporter +itoa JCEF -jemalloc jiapantw journalctl -Jscontext Jsonnet jsonschemadoc Kaspersky kbar keegancsmith -Keymap +keymap keymappings keypair -keyspace -khroma killall Kitts -kswapd kubeconfig kubelet kustomization @@ -465,75 +298,33 @@ latveria lefthand Leste letsencrypt -lgkt libsecret -Licensecheck -licenseinfo -lightmode -Linearhooks -linecap -linejoin -linkify -linkifying -listworkspaces -llmapitelemetry -Llms -Localdev -localenv -lockfiles logfmt -loghandlers -loginservice logpush -logspam logtost logurl lookarounds losetup lsif -lsifstore -Luasandbox Luhansk maedahbatool -Magik -managedservicesplatform -managementv Marino -marketingtracking maxage maxmemory maxpages megarepo -memcmd Memorystore Menlo -menulink -meteringexporter -meteringservice migops -MIIC -Minimise -miscategorize -miterlimit mixtral mktemp mmap -mockgen -Mockrequire modelconfig -modelcost -modelref -modtime -monolithsams mountpoint mpim -mtok multiplicatively multiqueue -multitenancy -Multitenant -multitenantenv -Multiversion +multiversion mycompany myconfig mydockerhub @@ -555,11 +346,6 @@ myvalue nameid nameopt NETRC -Nlcjo -Nlcjox -nobl -nobundle -nodename nodeport noeviction nofail @@ -568,33 +354,21 @@ nonexistenturl nonprivileged noout NOSYSTEM -notifs -nowrap -NRQU nslookup nspname -NTLM -nulltime numpy -nums nvim -objectname oauthconfig +objectname oidvectorin oldtbl Ollama -Omnibox -onconflict -onebox +omnibox oneclick -oneclickexport -oneclickexporter onelogin onrepositoriesmatchingquery onrepository OOBMIGRATION -ooks -oomkill opclass opcmethod openaicompatible @@ -602,47 +376,31 @@ opencode openctx opengrok openidconnect -opentracing -Operationdocs -operatorwrite -Optim -optin -orderedmap +optim organisation organisations ORGID orgpolicy -Otelcollector overcounted oyaml -pagelen pagure Parsely parsewithclaims -pathspec patterntype PCIW PCRE pekko -permissioning persistentvolumeclaims -pgaudit pgbouncer pgcrypto PGDATABASE PGDATASOURCE -PGDSN PGHOST -pgmajfault PGPASSWORD PGPORT -pgscan pgsql PGSSLMODE -pgsteal PGUSER -pgvector -pgxpool phpdoc pipefail PKCE @@ -651,185 +409,96 @@ plpgsql PODNAME polysans pooler -Postgresdsn -postgresqlroles -postrepoactions -pousr -prechecks PREEMPTIBLE preg premade -printlns +Príncipe privkey -problemfix -productsubscription -productsubscriptions projectname -protips -protobufjs protoc -protojson -Príncipe -publishusermetadata pubout -pubsubemulator pullrequest pvcs pykafka -Queuemetrics -quicklink -Quicklinks +quicklinks Qwen -randomisation -raph -rapidext -ratelimits rbacs -rcache -rder readwrite -reblame reclone recloning -redirections -redispool -Redocly reexecuting refreshable -refspecoverrides registryurl -rehttp reindexdb reindexing -releaseplatform -releaseregistry -releaseworker relid relkind relname relnamespace relpages relpersistence -relreg -repoferee repogroup repohasfile reponame -reposcheduler -repositorypermissions -repositoryservice -repoupdater -reqps requestclient -requestinteraction requirepass -rerank -reranker -rerankers -reranking rescope -resharding -resizeable resourcemanager -rgba -riazanovskiy Rica -Rlbn Rockskip -Rockskip's -rockskipintegration -rollouts rootfs -roundtripper -routerreconciler rstrip -runfile runllm -runset -runtype -runtypes ruplacer -Rvcnkx -safedetails samltool sams -Sandboxing +sandboxing sboms -sched SCIM scip SCIW -Searchplatform seccomp secretmanager secretname Sectigo -seeklogo -Semgrep Sendgrid -Sensitivemetadataallowlist -sequencenumber serde serilog -sers -serverside -servicetenant setext settingsjson setx -sfixed sgdev sggray -sghttp sgquery sgtest sgviolet Shadcn -shellcheck shellsession shiki showcerts SIEM sigalg -Singleflight -Siteadmin -siteconfig -skylib SLES Snek snekpm somerandom -SOTA -Sourceg -sourcegr -Sourcegraphaccounts +Sourcegraph sourcegraphcloud sourcegraphcom -Spacebar -spammy -spaservice +spacebar specialised spectaql -SPLF SQLSTATE -srcgql srcgraph -SRCH ssbc sshuttle sslmode -SSVZBVE -stabili stackexchange -standardised standardly starcoder Starlark startedat -startswith statefulsets -statesyncer -staticcheck stepscontainer stepsenv stepsfiles @@ -839,67 +508,39 @@ stepsoutputs stepsoutputsnameformat stepsoutputsnamevalue stepsrun -stockout -stopwords storageaccounttype STORAGECLASS Strato strconv subchart -Subcharts -subdirs +subcharts subexpression subnetworks subpackages -subrepo -subrepoperms subsubgroup subteam subteams subwords sunsetting -suspiciousnames -Syft symf syncer syncers -syncher synchronised Syntect Talkhouse TARGETGROUP -teestore -teewrite -tele -telemetryevents -telemetrygateway -telemetrygatewayexporter -telemetrystore -Telemetrytest -testdata -testdomains testroute testsourcegraph testusers -testutil Textualize -tfvars theirrepo thorsten thorstens threadcreate -threadsafe -threadsafety -tidyups timedout timemachine -timescaledb -timespan tini -tion tjdevries -toggleable -toid tolerations Tomé toolcall @@ -915,89 +556,43 @@ transformchangesgrouprepository trgm triaging trialling -Txemail -typebox +Türkiye typesafe typescriptjavascript -TZXJ -Türkiye -ukey unarchived -Unarchiving -unauthorised -uncloned -unconfigured +unarchiving uncordon underallocated undercount undercounted underprovisioned -underprovisioning unibeautify -Unindexed +unindexed unioned -uniquing -unmarshal -unmarshalling -unmarshals unmigrated -unparam -unredaction -unrevert -unrs -unstar untar updatecheck -upgradetest -upgradetests -uploadhandler -Uploadpack -upsell -upsells +upperand urlencode urlsafe -userauth -usermetadata -userpasswd userprincipalname USERTRUST Valsorda -Varun -vcssyncer vegeta vercel -verdana Verilog -Vhcm VHDL -vmeff -vmem vscodesourcegraph -VZLS -waitforupdate waitlist -warmstart -Wdlbn Weaveworks -webh -webp -Winsize -wolfi -workerutil +winsize workspacesin workspacesonlyfetchworkspace -Workspacesreconciler workspacesrootatlocationof -xattrs -xdomain -xdomainlogin -xdomainloginservice XGET xlarge -xlink yourorgname YOURUSERNAME Zaporizhzhia Zoekt -Zoekt's -Zoomable +zoomable diff --git a/cspell-block-list.txt b/cspell-block-list.txt new file mode 100644 index 000000000..a21c45e61 --- /dev/null +++ b/cspell-block-list.txt @@ -0,0 +1,112 @@ +# Words CSpell should flag +# Matching is case- and accent-insensitive +accomodate +acepted +activites +alignemnt +authentitcation +authroized +autoiondex +compatability +comphrensive +composit +conection +configuredimageimage +consule +contiainer +contraint +crtl +custmoize +databse +dedupliacte +defininition +depdendencies +determinstic +documenta +eclispe +embeeddings +emtpy +endable +exector +executon +exernal +exisiting +explictly +fetchinig +fulfiill +fulfuill +gatway +gemin +gitab +gitgnore +gomft +guarauntees +hopefull +horizonal +identitfier +ingore +insufficent +intterupt +invididual +jeager +limitting +managmeent +matadata +migtrator +mulitenant +necesarily +occured +occurence +occuring +opean +optimisitic +optimizated +ordererd +owernship +paramter +peforce +percaution +permanant +permanentaly +permisisons +postgress +prerequisit +privileized +privisioning +promotheus +pugins +pumbling +puslishing +reapplyed +repliacas +rermoved +reveiver +santizes +screeen +scret +seach +searcg +searchs +searhces +seperate +serch +simiply +simpify +sitiched +sorucegraph +soucegraph +soureces +specifiy +stablility +stiched +sufficiantly +symbos +synchronizzation +tailling +targetting +teamates +telemetery +tetsted +unmarsha +unsued +workpsaces diff --git a/cspell.json b/cspell.json index 7111afb8a..37c1e753a 100644 --- a/cspell.json +++ b/cspell.json @@ -5,134 +5,31 @@ "dictionaryDefinitions": [ { "name": "sourcegraph-docs", - "path": "./cspell-project-words.txt", + "path": "./cspell-allow-list.txt", "addWords": true + }, + { + "name": "sourcegraph-docs-block-list", + "path": "./cspell-block-list.txt", + "kind": "flag-words" } ], - "dictionaries": ["sourcegraph-docs"], - "flagWords": [ - "accomodate", - "Acepted", - "activites", - "alignemnt", - "authentitcation", - "authroized", - "autoiondex", - "compatability", - "comphrensive", - "composit", - "conection", - "configuredimageimage", - "consule", - "contiainer", - "contraint", - "Crtl", - "custmoize", - "databse", - "dedupliacte", - "defininition", - "depdendencies", - "determinstic", - "documenta", - "Eclispe", - "embeeddings", - "emtpy", - "Endable", - "exector", - "executon", - "exernal", - "exisiting", - "explictly", - "fetchinig", - "fulfiill", - "fulfuill", - "gatway", - "Gemin", - "Gitab", - "gitgnore", - "gomft", - "guarauntees", - "hopefull", - "horizonal", - "identitfier", - "Ingore", - "insufficent", - "intterupt", - "invididual", - "jeager", - "limitting", - "managmeent", - "matadata", - "migtrator", - "Mulitenant", - "necesarily", - "occured", - "occurence", - "occuring", - "Opean", - "optimisitic", - "optimizated", - "ordererd", - "Owernship", - "paramter", - "peforce", - "percaution", - "permanant", - "permanentaly", - "permisisons", - "postgress", - "prerequisit", - "privileized", - "privisioning", - "promotheus", - "Pugins", - "pumbling", - "puslishing", - "reapplyed", - "Rermoved", - "repliacas", - "reveiver", - "santizes", - "screeen", - "scret", - "seach", - "searcg", - "Searchs", - "searhces", - "seperate", - "Serch", - "simiply", - "Simpify", - "sitiched", - "Sorucegraph", - "Soucegraph", - "soureces", - "specifiy", - "stablility", - "stiched", - "sufficiantly", - "Symbos", - "synchronizzation", - "tailling", - "targetting", - "teamates", - "Telemetery", - "Tetsted", - "ttimedout", - "unmarsha", - "unsued", - "Upperand", - "workpsaces" + "dictionaries": ["sourcegraph-docs", "sourcegraph-docs-block-list"], + "ignoreRegExpList": [ + "/\\\\[nrt]/g", + "/(?> linter_errors.txt + - run: echo $LINTER_ERRORS >> linter_errors.txt container: alpine:3 env: LINTER_ERRORS: ${{ previous_step.stdout }} @@ -240,7 +240,7 @@ changesetTemplate: # Since templating fields use Go's `text/template` and `goreleaserConfig` was # parsed as YAML we can iterate over every field: body: | - This repository has a `gorelaserConfig`: ${{ outputs.goreleaserConfigExists.exists }}. + This repository has a `goreleaserConfig`: ${{ outputs.goreleaserConfigExists.exists }}. The `goreleaser.yml` defines the following `before.hooks`: diff --git a/docs/batch-changes/troubleshooting.mdx b/docs/batch-changes/troubleshooting.mdx index f87b6d79d..69c3981d2 100644 --- a/docs/batch-changes/troubleshooting.mdx +++ b/docs/batch-changes/troubleshooting.mdx @@ -151,7 +151,7 @@ Make sure that you put your `steps.run` command in `/tmp-script` (or any other l If executing the `steps` in the batch spec fails with a message that looks similar to this one (i.e., permission error). ```bash -/bin/sh: can't open '/tmp/tmp.IbdkiA': Permission denied +/bin/sh: can't open '/tmp/tmp.X9k2Tq': Permission denied ``` Or if you are in a locked-down environment, it's possible that Docker bind mounts won't work. diff --git a/docs/cli/explanations/env.mdx b/docs/cli/explanations/env.mdx index 574ed609c..3e8add5bd 100644 --- a/docs/cli/explanations/env.mdx +++ b/docs/cli/explanations/env.mdx @@ -93,6 +93,6 @@ src search -get-curl 'repogroup:swarm' curl \ -H 'Authorization: token ' \ -H 'authorization: Bearer What did the judge say to the dentist? Do you swear to pull the tooth, the whole tooth and nothing but the tooth?' \ - -d '{"query":"fragment FileMatchFields on FileMatch {\n\t\t\t\trepository {\n\t\t\t\t\tname\n\t\t\t\t\turl\n\t\t\t\t}\n\t\t\t\tfile {\n\t\t\t\t\tname\n\t\t\t\t\tpath\n\t\t\t\t\turl\n\t\t\t\t\tcontent\n\t\t\t\t\tcommit {\n\t\t\t\t\t\toid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlineMatches {\n\t\t\t\t\tpreview\n\t\t\t\t\tlineNumber\n\t\t\t\t\toffsetAndLengths\n\t\t\t\t\tlimitHit\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfragment CommitSearchResultFields on CommitSearchResult {\n\t\t\t\tmessagePreview {\n\t\t\t\t\tvalue\n\t\t\t\t\thighlights{\n\t\t\t\t\t\tline\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdiffPreview {\n\t\t\t\t\tvalue\n\t\t\t\t\thighlights {\n\t\t\t\t\t\tline\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlabel {\n\t\t\t\t\thtml\n\t\t\t\t}\n\t\t\t\turl\n\t\t\t\tmatches {\n\t\t\t\t\turl\n\t\t\t\t\tbody {\n\t\t\t\t\t\thtml\n\t\t\t\t\t\ttext\n\t\t\t\t\t}\n\t\t\t\t\thighlights {\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tline\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcommit {\n\t\t\t\t\trepository {\n\t\t\t\t\t\tname\n\t\t\t\t\t}\n\t\t\t\t\toid\n\t\t\t\t\turl\n\t\t\t\t\tsubject\n\t\t\t\t\tauthor {\n\t\t\t\t\t\tdate\n\t\t\t\t\t\tperson {\n\t\t\t\t\t\t\tdisplayName\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t fragment RepositoryFields on Repository {\n\t\t\tname\n\t\t\turl\n\t\t\texternalURLs {\n\t\t\t serviceType\n\t\t\t url\n\t\t\t}\n\t\t\tlabel {\n\t\t\t\thtml\n\t\t\t}\n\t\t }\n\n\t\t query ($query: String!) {\n\t\t\tsite {\n\t\t\t\tbuildVersion\n\t\t\t}\n\t\t\tsearch(query: $query) {\n\t\t\t results {\n\t\t\t\tresults{\n\t\t\t\t __typename\n\t\t\t\t ... on FileMatch {\n\t\t\t\t\t...FileMatchFields\n\t\t\t\t }\n\t\t\t\t ... on CommitSearchResult {\n\t\t\t\t\t...CommitSearchResultFields\n\t\t\t\t }\n\t\t\t\t ... on Repository {\n\t\t\t\t\t...RepositoryFields\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\tlimitHit\n\t\t\t\tcloning {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\tmissing {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\timedout {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\tmatchCount\n\t\t\t\telapsedMilliseconds\n\t\t\t\t...SearchResultsAlertFields\n\t\t\t }\n\t\t\t}\n\t\t }\n\t\t\n\tfragment SearchResultsAlertFields on SearchResults {\n\t\talert {\n\t\t\ttitle\n\t\t\tdescription\n\t\t\tproposedQueries {\n\t\t\t\tdescription\n\t\t\t\tquery\n\t\t\t}\n\t\t}\n\t}\n","variables":{"query":"repogroup:swarm"}}' \ + -d '{"query":"fragment FileMatchFields on FileMatch {\n\t\t\t\trepository {\n\t\t\t\t\tname\n\t\t\t\t\turl\n\t\t\t\t}\n\t\t\t\tfile {\n\t\t\t\t\tname\n\t\t\t\t\tpath\n\t\t\t\t\turl\n\t\t\t\t\tcontent\n\t\t\t\t\tcommit {\n\t\t\t\t\t\toid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlineMatches {\n\t\t\t\t\tpreview\n\t\t\t\t\tlineNumber\n\t\t\t\t\toffsetAndLengths\n\t\t\t\t\tlimitHit\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfragment CommitSearchResultFields on CommitSearchResult {\n\t\t\t\tmessagePreview {\n\t\t\t\t\tvalue\n\t\t\t\t\thighlights{\n\t\t\t\t\t\tline\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdiffPreview {\n\t\t\t\t\tvalue\n\t\t\t\t\thighlights {\n\t\t\t\t\t\tline\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlabel {\n\t\t\t\t\thtml\n\t\t\t\t}\n\t\t\t\turl\n\t\t\t\tmatches {\n\t\t\t\t\turl\n\t\t\t\t\tbody {\n\t\t\t\t\t\thtml\n\t\t\t\t\t\ttext\n\t\t\t\t\t}\n\t\t\t\t\thighlights {\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tline\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcommit {\n\t\t\t\t\trepository {\n\t\t\t\t\t\tname\n\t\t\t\t\t}\n\t\t\t\t\toid\n\t\t\t\t\turl\n\t\t\t\t\tsubject\n\t\t\t\t\tauthor {\n\t\t\t\t\t\tdate\n\t\t\t\t\t\tperson {\n\t\t\t\t\t\t\tdisplayName\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t fragment RepositoryFields on Repository {\n\t\t\tname\n\t\t\turl\n\t\t\texternalURLs {\n\t\t\t serviceType\n\t\t\t url\n\t\t\t}\n\t\t\tlabel {\n\t\t\t\thtml\n\t\t\t}\n\t\t }\n\n\t\t query ($query: String!) {\n\t\t\tsite {\n\t\t\t\tbuildVersion\n\t\t\t}\n\t\t\tsearch(query: $query) {\n\t\t\t results {\n\t\t\t\tresults{\n\t\t\t\t __typename\n\t\t\t\t ... on FileMatch {\n\t\t\t\t\t...FileMatchFields\n\t\t\t\t }\n\t\t\t\t ... on CommitSearchResult {\n\t\t\t\t\t...CommitSearchResultFields\n\t\t\t\t }\n\t\t\t\t ... on Repository {\n\t\t\t\t\t...RepositoryFields\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\tlimitHit\n\t\t\t\tcloning {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\tmissing {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\ttimedout {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\tmatchCount\n\t\t\t\telapsedMilliseconds\n\t\t\t\t...SearchResultsAlertFields\n\t\t\t }\n\t\t\t}\n\t\t }\n\t\t\n\tfragment SearchResultsAlertFields on SearchResults {\n\t\talert {\n\t\t\ttitle\n\t\t\tdescription\n\t\t\tproposedQueries {\n\t\t\t\tdescription\n\t\t\t\tquery\n\t\t\t}\n\t\t}\n\t}\n","variables":{"query":"repogroup:swarm"}}' \ https://cse-k8s.sgdev.org/.api/graphql ``` diff --git a/docs/code-insights/references/search-aggregations-use-cases.mdx b/docs/code-insights/references/search-aggregations-use-cases.mdx index a5be72370..0aa10928e 100644 --- a/docs/code-insights/references/search-aggregations-use-cases.mdx +++ b/docs/code-insights/references/search-aggregations-use-cases.mdx @@ -24,7 +24,7 @@ file:package.json /"license":\s(.*),/ See which repositories import a library (group by repository) -```sguqery +```sgquery from '@sourcegraph/wildcard' ``` @@ -84,7 +84,7 @@ See all your tracer calls to track the growth of, or minimize spend on, tools li See which repositories import a library -```sguqery +```sgquery /from\s'\@sourcegraph\/wildcard/ ``` diff --git a/docs/code-monitoring/index.mdx b/docs/code-monitoring/index.mdx index c811b4faf..9e98b3d4d 100644 --- a/docs/code-monitoring/index.mdx +++ b/docs/code-monitoring/index.mdx @@ -145,7 +145,7 @@ The HTTP POST request sent to the receiver will have a JSON-encoded body with th "results": [ { "repository": "github.com/test/test", - "commit": "7815187511872asbasdfgasd", + "commit": "7815187511872f3a6c9e0b4d2a8f1c5e7b9d3a01", "diff": "file1.go file2.go\n@ -97,5 +97,5 @ func Test() {\n leading context\n+matched added\n-matched removed\n trailing context\n", "matchedDiffRanges": [ [66, 73], @@ -154,7 +154,7 @@ The HTTP POST request sent to the receiver will have a JSON-encoded body with th }, { "repository": "github.com/test/test", - "commit": "7815187511872asbasdfgasd", + "commit": "7815187511872f3a6c9e0b4d2a8f1c5e7b9d3a01", "message": "summary line\n\nsample\ncommit\nmessage\n", "matchedMessageRanges": [[15, 19]] } diff --git a/docs/code-navigation/auto-indexing.mdx b/docs/code-navigation/auto-indexing.mdx index 25647f9c8..2a2fe0b28 100644 --- a/docs/code-navigation/auto-indexing.mdx +++ b/docs/code-navigation/auto-indexing.mdx @@ -86,7 +86,7 @@ New policies can also be created to apply to the HEAD of the default branch, or ![Global auto-indexing policy configuration edit page](https://storage.googleapis.com/sourcegraph-assets/docs/images/code-intelligence/renamed/global-create-indexing.png) -![lobal auto-indexing policy configuration created confirmation](https://storage.googleapis.com/sourcegraph-assets/docs/images/code-intelligence/renamed/post-create.png) +![Global auto-indexing policy configuration created confirmation](https://storage.googleapis.com/sourcegraph-assets/docs/images/code-intelligence/renamed/post-create.png) New policies can be created to apply to a set of repositories that are matched by name. For example, you may want to enable indexing for a particular set of repositories (in this example, repositories in the `sourcegraph` organization). diff --git a/docs/code-search/compare-file-filtering.mdx b/docs/code-search/compare-file-filtering.mdx index c49056d4f..b456b213c 100644 --- a/docs/code-search/compare-file-filtering.mdx +++ b/docs/code-search/compare-file-filtering.mdx @@ -114,7 +114,7 @@ The file filtering system uses a specialized file metadata query that is faster 3. Use a compressed file list for many files: ```bash - ?compressedFileList=H4sIAAAAAAAAA2NgYGBg... + ?compressedFileList=eJwrLkrW... ``` This flexible filtering system allows you to create customized views of repository comparisons, making reviewing changes in large projects easier. diff --git a/docs/cody/enterprise/model-config-examples.mdx b/docs/cody/enterprise/model-config-examples.mdx index 3a4735f69..3d51f7ead 100644 --- a/docs/cody/enterprise/model-config-examples.mdx +++ b/docs/cody/enterprise/model-config-examples.mdx @@ -696,7 +696,7 @@ In the configuration above, "modelName": "anthropic.claude-3-7-sonnet-20250219-v1:0", "serverSideConfig": { "type": "awsBedrockProvisionedThroughput", - "arn": "" // e.g., arn:aws:bedrock:us-west-2:537452198621:provisioned-model/57z3lgkt1cx2 + "arn": "" // e.g., arn:aws:bedrock:us-west-2:537452198621:provisioned-model/2k4z7m9x3q8t }, "contextWindow": { "maxInputTokens": 132000, diff --git a/docs/self-hosted/advanced-config-file.mdx b/docs/self-hosted/advanced-config-file.mdx index 010ef7fa5..6a88d343b 100644 --- a/docs/self-hosted/advanced-config-file.mdx +++ b/docs/self-hosted/advanced-config-file.mdx @@ -241,7 +241,7 @@ And similarly under the `volume` section: Now upon re-running `kubectl-apply-all.sh` Kubernetes should mount your `ConfigMap` into the container as files on disk and you should see them: ``` -$ kubectl exec -it sourcegraph-frontend-57dcb4d7db-6bclj -- ls /mnt/ +$ kubectl exec -it sourcegraph-frontend-57dcb4d7db-9tk4z -- ls /mnt/ global-settings.json extsvc.json site.json diff --git a/docs/self-hosted/deploy/kubernetes/index.mdx b/docs/self-hosted/deploy/kubernetes/index.mdx index a517c408d..433bdc8fb 100644 --- a/docs/self-hosted/deploy/kubernetes/index.mdx +++ b/docs/self-hosted/deploy/kubernetes/index.mdx @@ -586,9 +586,9 @@ type: kubernetes.io/tls data: # the data is abbreviated in this example tls.crt: | - MIIC2DCCAcCgAwIBAgIBATANBgkqh ... + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCg== ... tls.key: | - MIIEpgIBAAKCAQEA7yn3bRHQ5FHMQ ... + LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQo= ... ``` ```sh @@ -912,9 +912,9 @@ type: kubernetes.io/tls data: # the data is abbreviated in this example tls.crt: | - MIIC2DCCAcCgAwIBAgIBATANBgkqh ... + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCg== ... tls.key: | - MIIEpgIBAAKCAQEA7yn3bRHQ5FHMQ ... + LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQo= ... ``` ```sh diff --git a/package.json b/package.json index d131f863c..93900c805 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,6 @@ "build": "next build", "start": "next start", "lint": "next lint", - "spellcheck": "cspell --no-progress --dot '**/*'", - "spellcheck:diff": "node dev/check-spelling.mjs", "check-links": "node dev/check-links.mjs", "check-filenames": "node dev/check-filenames.mjs", "check-images": "node dev/check-images.mjs", @@ -74,7 +72,6 @@ }, "devDependencies": { "baseai": "^0.9.41", - "cspell": "^9.8.0", "dotenv": "^16.4.7", "eslint": "8.45.0", "eslint-config-next": "13.4.16", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd8c93482..26f546597 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,7 +46,7 @@ importers: version: 1.2.4(@types/react@18.2.20)(react@18.3.1) '@tailwindcss/typography': specifier: ^0.5.10 - version: 0.5.19(tailwindcss@3.4.19(yaml@2.9.0)) + version: 0.5.19(tailwindcss@3.4.19(yaml@2.8.2)) '@types/node': specifier: 20.4.9 version: 20.4.9 @@ -154,10 +154,10 @@ importers: version: 2.6.1 tailwindcss: specifier: ^3.4.0 - version: 3.4.19(yaml@2.9.0) + version: 3.4.19(yaml@2.8.2) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.19(yaml@2.9.0)) + version: 1.0.7(tailwindcss@3.4.19(yaml@2.8.2)) typescript: specifier: 5.1.6 version: 5.1.6 @@ -168,9 +168,6 @@ importers: baseai: specifier: ^0.9.41 version: 0.9.44(@types/node@20.4.9)(react@18.3.1)(typescript@5.1.6) - cspell: - specifier: ^9.8.0 - version: 9.8.0 dotenv: specifier: ^16.4.7 version: 16.6.1 @@ -431,240 +428,6 @@ packages: '@effect-ts/otel-node': optional: true - '@cspell/cspell-bundled-dicts@9.8.0': - resolution: {integrity: sha512-MpXFpVyBPfJQ1YuVotljqUaGf6lWuf+fuWBBgs0PHFYTSjRPWuIxviAaCDnup/CJLLH60xQL4IlcQe4TOjzljw==} - engines: {node: '>=20'} - - '@cspell/cspell-json-reporter@9.8.0': - resolution: {integrity: sha512-nqUaSo9T7l8KrE22gc7ZIs+zvP7ak1i7JqGdRs8sGvh2Ijqj43qYQLePgb1b/vm8a1bavnc51m+vf05hpd3g3Q==} - engines: {node: '>=20'} - - '@cspell/cspell-performance-monitor@9.8.0': - resolution: {integrity: sha512-IsrXYzn23yJICIQ915ACdf+2lNEcFNTu5BIQt3khHOsGVvZ9/AZYpu9Dk825vUyZG7RHg2Oi6dYNiJtULG4ouQ==} - engines: {node: '>=20.18'} - - '@cspell/cspell-pipe@9.8.0': - resolution: {integrity: sha512-ISEUD8PHYkd2Ktafc6hFfIXdGKYUvthA09NbwwZsWmOqYyk4wWKHZKqyyxD+BcrFwOyMOJcD8OEvIjkRQp2SJw==} - engines: {node: '>=20'} - - '@cspell/cspell-resolver@9.8.0': - resolution: {integrity: sha512-PZJj56BZpKfMxOzWkyt7b+aIXObe+8Ku/zLI4xDXPSuQPENbHBFHfPIZx68CyGEkanKxZ1ewKVx/FT1FUy+wDA==} - engines: {node: '>=20'} - - '@cspell/cspell-service-bus@9.8.0': - resolution: {integrity: sha512-P45sd2nqwcqhulBBbQnZB/JNcobecTrP4Ky3vmEq0cprsvavc+ZoHF9U2Ql5ghMSUzjrF2n1aNzZ8cH4IlsnKg==} - engines: {node: '>=20'} - - '@cspell/cspell-types@9.8.0': - resolution: {integrity: sha512-7Ge4UD6SCA49Tcc3+GTlz3Xn4cqVUAXtDO0u9IeHvJgkN3Me2Rw2GB/CtGmhKST3YeEeZMX7ww09TdHMUJlehw==} - engines: {node: '>=20'} - - '@cspell/cspell-worker@9.8.0': - resolution: {integrity: sha512-W8FLdE3MXPLbWtAXciILQhk9CHd6Mt+HRjZHM8m+dwE1Bc2TAjUai8kIxsdhHUq58p7gYY2ekr5sg1uYOUgTAA==} - engines: {node: '>=20.18'} - - '@cspell/dict-ada@4.1.1': - resolution: {integrity: sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==} - - '@cspell/dict-al@1.1.1': - resolution: {integrity: sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==} - - '@cspell/dict-aws@4.0.17': - resolution: {integrity: sha512-ORcblTWcdlGjIbWrgKF+8CNEBQiLVKdUOFoTn0KPNkAYnFcdPP0muT4892h7H4Xafh3j72wqB4/loQ6Nti9E/w==} - - '@cspell/dict-bash@4.2.3': - resolution: {integrity: sha512-ljUZoKHbDqw5Sx0qpL2qTUlmkmr+vhZH/sCNrNaBZKTbdgiswErSnIF1jRbGmEitJNxHRHWsuZyVgnTGfVO1Yw==} - - '@cspell/dict-companies@3.2.12': - resolution: {integrity: sha512-mjiz/N3zWOCsz5VfwMUydSl7uW0OU9H2PnbCNc3RV44Vj6Q59CSp6EYGSGZQxrXU1gpsuZUrwr6QCjNjFOOg5A==} - - '@cspell/dict-cpp@7.1.0': - resolution: {integrity: sha512-rcjycobioQUd9Jm/Y1n8U+sq6ytpZ0iV8AYIo+vyEFfutC5x7g6hL6Fh3bCdh6IporGHRqfEutGK/4sfopD2ZA==} - - '@cspell/dict-cryptocurrencies@5.0.5': - resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} - - '@cspell/dict-csharp@4.0.8': - resolution: {integrity: sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==} - - '@cspell/dict-css@4.1.2': - resolution: {integrity: sha512-+ylGoKdwZ2sVOCOnU2Eq5wDZx+RaVX3HoKyNHGGsFvhSw6IidQ6tH/mAPKBDofViHJoWCPNlklE0lTr6MDG3QA==} - - '@cspell/dict-dart@2.3.2': - resolution: {integrity: sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==} - - '@cspell/dict-data-science@2.0.16': - resolution: {integrity: sha512-M72mxv5asuAnORurz4iXRJ+Tw9XBq6eu7D2Ne7biP0Z1RciKGNxXWu9JycA/KlVvK1hAlKj/fANlXhuEWpXKFg==} - - '@cspell/dict-django@4.1.6': - resolution: {integrity: sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==} - - '@cspell/dict-docker@1.1.17': - resolution: {integrity: sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==} - - '@cspell/dict-dotnet@5.0.13': - resolution: {integrity: sha512-xPp7jMnFpOri7tzmqmm/dXMolXz1t2bhNqxYkOyMqXhvs08oc7BFs+EsbDY0X7hqiISgeFZGNqn0dOCr+ncPYw==} - - '@cspell/dict-elixir@4.0.8': - resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} - - '@cspell/dict-en-common-misspellings@2.2.0': - resolution: {integrity: sha512-5PmCHv+AhY0LVNo3bE1FdRKMmw1esKj83GPwLymnVPYNtlI2Jf6y27EjC0azg4zny5keWmku0GQiMf55Fi+qeA==} - - '@cspell/dict-en-gb-mit@3.1.26': - resolution: {integrity: sha512-F9Y/45+1oIPzfL/pyWLp4kzX+vddHPAYpIpIF+45bdc65AebeEiQHKzSmKgGGTd3qbQc3fATw2kAFdLryiQpjQ==} - - '@cspell/dict-en_us@4.4.37': - resolution: {integrity: sha512-rMKyPrk2SKmDU+Bj0U0ixsv4Du93oijwovc8XlUin0zwKOJZb0/PFG5Df4P8CrM2CrLeovpaFvhoI98DigxBLw==} - - '@cspell/dict-filetypes@3.0.18': - resolution: {integrity: sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==} - - '@cspell/dict-flutter@1.1.1': - resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} - - '@cspell/dict-fonts@4.0.6': - resolution: {integrity: sha512-aR/0csY01dNb0A1tw/UmN9rKgHruUxsYsvXu6YlSBJFu60s26SKr/k1o4LavpHTQ+lznlYMqAvuxGkE4Flliqw==} - - '@cspell/dict-fsharp@1.1.1': - resolution: {integrity: sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==} - - '@cspell/dict-fullstack@3.2.9': - resolution: {integrity: sha512-diZX+usW5aZ4/b2T0QM/H/Wl9aNMbdODa1Jq0ReBr/jazmNeWjd+PyqeVgzd1joEaHY+SAnjrf/i9CwKd2ZtWQ==} - - '@cspell/dict-gaming-terms@1.1.2': - resolution: {integrity: sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==} - - '@cspell/dict-git@3.1.0': - resolution: {integrity: sha512-KEt9zGkxqGy2q1nwH4CbyqTSv5nadpn8BAlDnzlRcnL0Xb3LX9xTgSGShKvzb0bw35lHoYyLWN2ZKAqbC4pgGQ==} - - '@cspell/dict-golang@6.0.27': - resolution: {integrity: sha512-rRDb2JL8EefaezHGTEclKXCs4eMOS0q/datk94Lm7KQOhlGlzS9FDVZiR1/guh0o+iJCmejQuf5NR2FQeQSWsg==} - - '@cspell/dict-google@1.0.9': - resolution: {integrity: sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==} - - '@cspell/dict-haskell@4.0.6': - resolution: {integrity: sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==} - - '@cspell/dict-html-symbol-entities@4.0.5': - resolution: {integrity: sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==} - - '@cspell/dict-html@4.0.16': - resolution: {integrity: sha512-9B6/Cpb5YVcYgsEAlKudun1yd4ONllYS/ZibKLYea2apPR+l2vQdARnPrP9kTqa7NUNfRKl7m9Fb6k9rjimnow==} - - '@cspell/dict-java@5.0.12': - resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} - - '@cspell/dict-julia@1.1.1': - resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} - - '@cspell/dict-k8s@1.0.13': - resolution: {integrity: sha512-ELGkS13k7K/NEfVimBSrxVTfqXvOF/Kvxj4I62YxRm8bvHbfoXgrGaOx28lPiNRz+dmu+yYtvuXbnURKtYbC6g==} - - '@cspell/dict-kotlin@1.1.1': - resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} - - '@cspell/dict-latex@5.1.0': - resolution: {integrity: sha512-qxT4guhysyBt0gzoliXYEBYinkAdEtR2M7goRaUH0a7ltCsoqqAeEV8aXYRIdZGcV77gYSobvu3jJL038tlPAw==} - - '@cspell/dict-lorem-ipsum@4.0.5': - resolution: {integrity: sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==} - - '@cspell/dict-lua@4.0.8': - resolution: {integrity: sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==} - - '@cspell/dict-makefile@1.0.5': - resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} - - '@cspell/dict-markdown@2.0.18': - resolution: {integrity: sha512-KLRSwVrwKDz4n7bl2XQjzvaBZbGgx5QKkP5Ok1b24xaO3TpXsLhAbAn1mItvFlI2tF6Rkt83iYjQcYppywuf5Q==} - peerDependencies: - '@cspell/dict-css': ^4.1.2 - '@cspell/dict-html': ^4.0.16 - '@cspell/dict-html-symbol-entities': ^4.0.5 - '@cspell/dict-typescript': ^3.2.3 - - '@cspell/dict-monkeyc@1.1.0': - resolution: {integrity: sha512-mc/hgvSy/emOIYtc8kuVEaLUlnaERunfAubfJ5plUXq6s0A69bcukJzUzSt9C0UTCwS28641ILRPv80m3L9QbA==} - - '@cspell/dict-node@5.0.9': - resolution: {integrity: sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==} - - '@cspell/dict-npm@5.2.48': - resolution: {integrity: sha512-R5dDnXTxZFOdb/4XSugCjsb3gXTHcEURGFAVOThg5QVu2YRI+yYj5vGgj9gSNffbgoQsNnaukPoB5v1tjF+tRA==} - - '@cspell/dict-php@4.1.1': - resolution: {integrity: sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==} - - '@cspell/dict-powershell@5.0.15': - resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} - - '@cspell/dict-public-licenses@2.0.16': - resolution: {integrity: sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==} - - '@cspell/dict-python@4.5.0': - resolution: {integrity: sha512-O1lSuFXoX8p+4hvJMbqvg3blbn0Zx8LHqdPQSNaOxFZGf7hmq6pc8sfta+98E7Q/WtDooAnU3XpBxBXcn0r94g==} - - '@cspell/dict-r@2.1.1': - resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} - - '@cspell/dict-ruby@5.1.2': - resolution: {integrity: sha512-f6Slf11N91ittf71AWlfVVG9GZPezVRBfcMPCTNTWhUsY/VEspkBRZYDhPXjV4df3jqHy5YJs8nlsFcFVF/bMA==} - - '@cspell/dict-rust@4.1.2': - resolution: {integrity: sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==} - - '@cspell/dict-scala@5.0.9': - resolution: {integrity: sha512-AjVcVAELgllybr1zk93CJ5wSUNu/Zb5kIubymR/GAYkMyBdYFCZ3Zbwn4Zz8GJlFFAbazABGOu0JPVbeY59vGg==} - - '@cspell/dict-shell@1.2.0': - resolution: {integrity: sha512-PVctvT22lJ49niMiakO8xieY7ELCAzjSqhejWR7bAMb5AZ9F4WDEs+XdGMnoVHWeXq7K5rcepLPmEJb+37zzIw==} - - '@cspell/dict-software-terms@5.4.2': - resolution: {integrity: sha512-C2tS1JjxqHef9TpPRm08a6n+PJCrKrD6FsmPEyXb2J6TFef4FFnKRcGOf3pFnd+a6/oyQgXZWeKiECH6lBFjQA==} - - '@cspell/dict-sql@2.2.1': - resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} - - '@cspell/dict-svelte@1.0.7': - resolution: {integrity: sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==} - - '@cspell/dict-swift@2.0.6': - resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} - - '@cspell/dict-terraform@1.1.4': - resolution: {integrity: sha512-Ere42ilvMFvQA4GlcN0OKlruMPR6EsvaB+iTHzj2xc+NJGRK64V7yApUcWrOrSgTiM/vhWXPIsK3OMfiAiNdmA==} - - '@cspell/dict-typescript@3.2.3': - resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==} - - '@cspell/dict-vue@3.0.5': - resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} - - '@cspell/dict-zig@1.0.0': - resolution: {integrity: sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==} - - '@cspell/dynamic-import@9.8.0': - resolution: {integrity: sha512-wMgb32lqG9g6lCipUQsY9Bk5idXPDz7wvzOqEsU1M2HmNYmdE1wfPoRpfQfsVL965iG3+6h8QLr2+8FKpweFEQ==} - engines: {node: '>=20'} - - '@cspell/filetypes@9.8.0': - resolution: {integrity: sha512-yHvtYn9qt6zykua77sNzTcf7HrG/dpo/+2pCMGSrfSrQypSNT6FUFvMS04W7kwhP86U1GkCjppNykXuoH3cqug==} - engines: {node: '>=20'} - - '@cspell/rpc@9.8.0': - resolution: {integrity: sha512-t4lHEa254W+PePXNQ1noW7QhQxz/mhsJ9X8LEt0ILzBbPWCJzN+JuaM7EiolIPiwxtfxpMwKx9482kt4eTja7A==} - engines: {node: '>=20.18'} - - '@cspell/strong-weak-map@9.8.0': - resolution: {integrity: sha512-HocksAqZ0JcWA5oWO7TIlOCftXVGkPGzbeFlCRRrjJpZmYQH+4NdeEXyQC6T89NGocp45td/CgyBcAaFMy1N9w==} - engines: {node: '>=20'} - - '@cspell/url@9.8.0': - resolution: {integrity: sha512-LY1lFiZLTQF/ma1ilfKmRmFmEOw0RfYhyl0UMhY7/d93b+kiDMhxP/9Qir4+5LyiRncaE3++ZcWno9Hya+ssRg==} - engines: {node: '>=20'} - '@docsearch/css@3.9.0': resolution: {integrity: sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==} @@ -1805,7 +1568,6 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@unrs/resolver-binding-android-arm-eabi@1.11.1': resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} @@ -1945,10 +1707,6 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.3.0: - resolution: {integrity: sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==} - engines: {node: '>=12'} - ansi-sequence-parser@1.1.3: resolution: {integrity: sha512-+fksAx9eG3Ab6LDnLs3ZqZa8KVJ/jYnX+D4Qe1azX+LFGFAXqynCQLOdLpNYN/l9e7l6hMWwZbrnctqr6eSQSw==} @@ -2239,10 +1997,6 @@ packages: resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -2289,10 +2043,6 @@ packages: clear-any-console@1.16.3: resolution: {integrity: sha512-x174l55a86DGVU0KvnLITsXhRgqwd/xNDTy16OyKKOiJU+1pXF9DrV9YvlepfMc/JuJ3a7CMNLEF4O7qwk0mEw==} - clear-module@4.1.3: - resolution: {integrity: sha512-XdLrg7BnbXKntyrbs2dNjDN9CVoTQ+WV0i7jT5/r9ahzAaSDSzC9e2OVZB/QVwbxBb1/1AeObzjlxsYk5HFvww==} - engines: {node: '>=8'} - cli-alerts@2.0.0: resolution: {integrity: sha512-/ji87OdmThQfNeHo2VSh40/qllw/UN58l5M7JwsGPVt7KfHvyazpy/LRSWuMQ4S7OpCdcTT03JsFXYCtnkJKKA==} @@ -2373,10 +2123,6 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@14.0.3: - resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} - engines: {node: '>=20'} - commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -2393,10 +2139,6 @@ packages: resolution: {integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==} engines: {node: '>= 6'} - comment-json@4.6.2: - resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} - engines: {node: '>= 6'} - compute-cosine-similarity@1.1.0: resolution: {integrity: sha512-FXhNx0ILLjGi9Z9+lglLzM12+0uoTnYkHm7GiadXDAr0HGVLm25OivUS1B/LPkbzzvlcXz/1EvWg9ZYyJSdhTw==} @@ -2455,47 +2197,6 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - cspell-config-lib@9.8.0: - resolution: {integrity: sha512-gMJBAgYPvvO+uDFLUcGWaTu6/e+r8mm4GD4rQfWa/yV4F9fj+yOYLIMZqLWRvT1moHZX1FxyVvUbJcmZ1gfebg==} - engines: {node: '>=20'} - - cspell-dictionary@9.8.0: - resolution: {integrity: sha512-QW4hdkWcrxZA1QNqi26U0S/U3/V+tKCm7JaaesEJW2F6Ao+23AbHVwidyAVtXaEhGkn6PxB+epKrrAa6nE69qA==} - engines: {node: '>=20'} - - cspell-gitignore@9.8.0: - resolution: {integrity: sha512-SDUa1DmSfT20+JH7XtyzcEL9KfurneoR/XbmlrtPQZP/LUHXh3yz4x/0vFIkEFXNWdSckY0QdWTz8DaxClCf4Q==} - engines: {node: '>=20'} - hasBin: true - - cspell-glob@9.8.0: - resolution: {integrity: sha512-Uvj/iHXs+jpsJyIEnhEoJTWXb1GVyZ9T05L5JFtZfsQNXrh8SRDQPscjxbg4okKr63N7WevfioQum/snHNYvmw==} - engines: {node: '>=20'} - - cspell-grammar@9.8.0: - resolution: {integrity: sha512-01XMq2vhPS0Gvxnfed9uvOwH+3cXddHYxW0PwCE+SZdcC6TN8yM6glByuLt1qFustAmQVE5GSr7uAY9o4pZQRg==} - engines: {node: '>=20'} - hasBin: true - - cspell-io@9.8.0: - resolution: {integrity: sha512-JINaEWQEzR4f2upwdZOFcft+nBvQgizJfrOLszxG3p+BIzljnGklqE/nUtLFZpBu0oMJvuM/Fd+GsWor0yP7Xw==} - engines: {node: '>=20'} - - cspell-lib@9.8.0: - resolution: {integrity: sha512-G2TtPcye5QE5ev3YgWq42UOJLpTZ6naO/47oIm+jmeSYbgnbcOSThnEE7uMycx+TTNOz/vJVFpZmQyt0bWCftw==} - engines: {node: '>=20'} - - cspell-trie-lib@9.8.0: - resolution: {integrity: sha512-GXIyqxya8QLp6SjKsAN9w3apvt1Ww7GKcZvTBaP76OfLoyb1QC6unwmObY2cZs1manCntGwHrgU6vFNuXnTzpw==} - engines: {node: '>=20'} - peerDependencies: - '@cspell/cspell-types': 9.8.0 - - cspell@9.8.0: - resolution: {integrity: sha512-qL0VErMSn8BDxaPxcV+9uenffgjPS+5Jfz+m4rCsvYjzLwr7AaaJBWWSV2UiAe/4cturae8n8qzxiGnbbazkRw==} - engines: {node: '>=20.18'} - hasBin: true - cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -2822,10 +2523,6 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - env-paths@4.0.0: - resolution: {integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==} - engines: {node: '>=20'} - error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} @@ -3072,10 +2769,6 @@ packages: fast-equals@2.0.4: resolution: {integrity: sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w==} - fast-equals@6.0.3: - resolution: {integrity: sha512-IECu4C0fFZFoUC2cA2rDaNUuVIfWIZMwh3tY+ng924vOuD9OaUFFrcIrVwCKbV7TJDkGmrHfhwZ7R0AnHfVhyw==} - engines: {node: '>=6.0.0'} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -3142,9 +2835,6 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - flatted@3.4.4: - resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -3220,10 +2910,6 @@ packages: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} - gensequence@8.0.8: - resolution: {integrity: sha512-omMVniXEXpdx/vKxGnPRoO2394Otlze28TyxECbFVyoSpZ9H3EO7lemjcB12OpQJzRW4e5tt/dL1rOxry6aMHg==} - engines: {node: '>=20'} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -3286,10 +2972,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-directory@5.0.0: - resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} - engines: {node: '>=20'} - globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -3460,9 +3142,6 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -3485,10 +3164,6 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@6.0.0: - resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} - engines: {node: ^20.17.0 || >=22.9.0} - inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} @@ -3656,10 +3331,6 @@ packages: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} - is-safe-filename@0.1.1: - resolution: {integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==} - engines: {node: '>=20'} - is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -4512,10 +4183,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parent-module@2.0.0: - resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} - engines: {node: '>=8'} - parse-entities@2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} @@ -4598,10 +4265,6 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} - picomatch@4.0.7: - resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} - engines: {node: '>=12'} - pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -4689,7 +4352,6 @@ packages: prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} - deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true prelude-ls@1.2.1: @@ -4973,10 +4635,6 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -5138,10 +4796,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - smol-toml@1.8.0: - resolution: {integrity: sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ==} - engines: {node: '>= 18'} - sort-keys@5.1.0: resolution: {integrity: sha512-aSbHV0DaBcr7u0PVHXzM6NbZNAtrr9sF6+Qfs9UUVG7Ll3jQ6hHi8F/xqIIcn2rvIVbr0v/2zyjSdwSV47AgLQ==} engines: {node: '>=12'} @@ -5557,7 +5211,6 @@ packages: uuid@10.0.0: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} - deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@11.1.0: @@ -5566,7 +5219,6 @@ packages: uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uvu@0.5.6: @@ -5624,9 +5276,6 @@ packages: vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - vscode-uri@3.2.0: - resolution: {integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==} - web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} @@ -5691,10 +5340,6 @@ packages: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - xlsx@0.18.5: resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} engines: {node: '>=0.8'} @@ -5720,11 +5365,6 @@ packages: engines: {node: '>= 14.6'} hasBin: true - yaml@2.9.0: - resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} - engines: {node: '>= 14.6'} - hasBin: true - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -6128,228 +5768,6 @@ snapshots: ts-pattern: 4.3.0 type-fest: 3.13.1 - '@cspell/cspell-bundled-dicts@9.8.0': - dependencies: - '@cspell/dict-ada': 4.1.1 - '@cspell/dict-al': 1.1.1 - '@cspell/dict-aws': 4.0.17 - '@cspell/dict-bash': 4.2.3 - '@cspell/dict-companies': 3.2.12 - '@cspell/dict-cpp': 7.1.0 - '@cspell/dict-cryptocurrencies': 5.0.5 - '@cspell/dict-csharp': 4.0.8 - '@cspell/dict-css': 4.1.2 - '@cspell/dict-dart': 2.3.2 - '@cspell/dict-data-science': 2.0.16 - '@cspell/dict-django': 4.1.6 - '@cspell/dict-docker': 1.1.17 - '@cspell/dict-dotnet': 5.0.13 - '@cspell/dict-elixir': 4.0.8 - '@cspell/dict-en-common-misspellings': 2.2.0 - '@cspell/dict-en-gb-mit': 3.1.26 - '@cspell/dict-en_us': 4.4.37 - '@cspell/dict-filetypes': 3.0.18 - '@cspell/dict-flutter': 1.1.1 - '@cspell/dict-fonts': 4.0.6 - '@cspell/dict-fsharp': 1.1.1 - '@cspell/dict-fullstack': 3.2.9 - '@cspell/dict-gaming-terms': 1.1.2 - '@cspell/dict-git': 3.1.0 - '@cspell/dict-golang': 6.0.27 - '@cspell/dict-google': 1.0.9 - '@cspell/dict-haskell': 4.0.6 - '@cspell/dict-html': 4.0.16 - '@cspell/dict-html-symbol-entities': 4.0.5 - '@cspell/dict-java': 5.0.12 - '@cspell/dict-julia': 1.1.1 - '@cspell/dict-k8s': 1.0.13 - '@cspell/dict-kotlin': 1.1.1 - '@cspell/dict-latex': 5.1.0 - '@cspell/dict-lorem-ipsum': 4.0.5 - '@cspell/dict-lua': 4.0.8 - '@cspell/dict-makefile': 1.0.5 - '@cspell/dict-markdown': 2.0.18(@cspell/dict-css@4.1.2)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.16)(@cspell/dict-typescript@3.2.3) - '@cspell/dict-monkeyc': 1.1.0 - '@cspell/dict-node': 5.0.9 - '@cspell/dict-npm': 5.2.48 - '@cspell/dict-php': 4.1.1 - '@cspell/dict-powershell': 5.0.15 - '@cspell/dict-public-licenses': 2.0.16 - '@cspell/dict-python': 4.5.0 - '@cspell/dict-r': 2.1.1 - '@cspell/dict-ruby': 5.1.2 - '@cspell/dict-rust': 4.1.2 - '@cspell/dict-scala': 5.0.9 - '@cspell/dict-shell': 1.2.0 - '@cspell/dict-software-terms': 5.4.2 - '@cspell/dict-sql': 2.2.1 - '@cspell/dict-svelte': 1.0.7 - '@cspell/dict-swift': 2.0.6 - '@cspell/dict-terraform': 1.1.4 - '@cspell/dict-typescript': 3.2.3 - '@cspell/dict-vue': 3.0.5 - '@cspell/dict-zig': 1.0.0 - - '@cspell/cspell-json-reporter@9.8.0': - dependencies: - '@cspell/cspell-types': 9.8.0 - - '@cspell/cspell-performance-monitor@9.8.0': {} - - '@cspell/cspell-pipe@9.8.0': {} - - '@cspell/cspell-resolver@9.8.0': - dependencies: - global-directory: 5.0.0 - - '@cspell/cspell-service-bus@9.8.0': {} - - '@cspell/cspell-types@9.8.0': {} - - '@cspell/cspell-worker@9.8.0': - dependencies: - cspell-lib: 9.8.0 - - '@cspell/dict-ada@4.1.1': {} - - '@cspell/dict-al@1.1.1': {} - - '@cspell/dict-aws@4.0.17': {} - - '@cspell/dict-bash@4.2.3': - dependencies: - '@cspell/dict-shell': 1.2.0 - - '@cspell/dict-companies@3.2.12': {} - - '@cspell/dict-cpp@7.1.0': {} - - '@cspell/dict-cryptocurrencies@5.0.5': {} - - '@cspell/dict-csharp@4.0.8': {} - - '@cspell/dict-css@4.1.2': {} - - '@cspell/dict-dart@2.3.2': {} - - '@cspell/dict-data-science@2.0.16': {} - - '@cspell/dict-django@4.1.6': {} - - '@cspell/dict-docker@1.1.17': {} - - '@cspell/dict-dotnet@5.0.13': {} - - '@cspell/dict-elixir@4.0.8': {} - - '@cspell/dict-en-common-misspellings@2.2.0': {} - - '@cspell/dict-en-gb-mit@3.1.26': {} - - '@cspell/dict-en_us@4.4.37': {} - - '@cspell/dict-filetypes@3.0.18': {} - - '@cspell/dict-flutter@1.1.1': {} - - '@cspell/dict-fonts@4.0.6': {} - - '@cspell/dict-fsharp@1.1.1': {} - - '@cspell/dict-fullstack@3.2.9': {} - - '@cspell/dict-gaming-terms@1.1.2': {} - - '@cspell/dict-git@3.1.0': {} - - '@cspell/dict-golang@6.0.27': {} - - '@cspell/dict-google@1.0.9': {} - - '@cspell/dict-haskell@4.0.6': {} - - '@cspell/dict-html-symbol-entities@4.0.5': {} - - '@cspell/dict-html@4.0.16': {} - - '@cspell/dict-java@5.0.12': {} - - '@cspell/dict-julia@1.1.1': {} - - '@cspell/dict-k8s@1.0.13': {} - - '@cspell/dict-kotlin@1.1.1': {} - - '@cspell/dict-latex@5.1.0': {} - - '@cspell/dict-lorem-ipsum@4.0.5': {} - - '@cspell/dict-lua@4.0.8': {} - - '@cspell/dict-makefile@1.0.5': {} - - '@cspell/dict-markdown@2.0.18(@cspell/dict-css@4.1.2)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.16)(@cspell/dict-typescript@3.2.3)': - dependencies: - '@cspell/dict-css': 4.1.2 - '@cspell/dict-html': 4.0.16 - '@cspell/dict-html-symbol-entities': 4.0.5 - '@cspell/dict-typescript': 3.2.3 - - '@cspell/dict-monkeyc@1.1.0': {} - - '@cspell/dict-node@5.0.9': {} - - '@cspell/dict-npm@5.2.48': {} - - '@cspell/dict-php@4.1.1': {} - - '@cspell/dict-powershell@5.0.15': {} - - '@cspell/dict-public-licenses@2.0.16': {} - - '@cspell/dict-python@4.5.0': - dependencies: - '@cspell/dict-data-science': 2.0.16 - - '@cspell/dict-r@2.1.1': {} - - '@cspell/dict-ruby@5.1.2': {} - - '@cspell/dict-rust@4.1.2': {} - - '@cspell/dict-scala@5.0.9': {} - - '@cspell/dict-shell@1.2.0': {} - - '@cspell/dict-software-terms@5.4.2': {} - - '@cspell/dict-sql@2.2.1': {} - - '@cspell/dict-svelte@1.0.7': {} - - '@cspell/dict-swift@2.0.6': {} - - '@cspell/dict-terraform@1.1.4': {} - - '@cspell/dict-typescript@3.2.3': {} - - '@cspell/dict-vue@3.0.5': {} - - '@cspell/dict-zig@1.0.0': {} - - '@cspell/dynamic-import@9.8.0': - dependencies: - '@cspell/url': 9.8.0 - import-meta-resolve: 4.2.0 - - '@cspell/filetypes@9.8.0': {} - - '@cspell/rpc@9.8.0': {} - - '@cspell/strong-weak-map@9.8.0': {} - - '@cspell/url@9.8.0': {} - '@docsearch/css@3.9.0': {} '@docsearch/react@3.9.0(@algolia/client-search@4.25.3)(@types/react@18.2.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': @@ -7199,10 +6617,10 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.8.1 - '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(yaml@2.9.0))': + '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(yaml@2.8.2))': dependencies: postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.19(yaml@2.9.0) + tailwindcss: 3.4.19(yaml@2.8.2) '@tanstack/react-virtual@3.13.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -7585,8 +7003,6 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.3.0: {} - ansi-sequence-parser@1.1.3: {} ansi-styles@3.2.1: @@ -7924,7 +7340,7 @@ snapshots: chalk-template@1.1.2: dependencies: - chalk: 5.6.2 + chalk: 5.6.0 chalk@2.4.2: dependencies: @@ -7944,8 +7360,6 @@ snapshots: chalk@5.6.0: {} - chalk@5.6.2: {} - character-entities-html4@2.1.0: {} character-entities-legacy@1.1.4: {} @@ -8003,11 +7417,6 @@ snapshots: - react - ws - clear-module@4.1.3: - dependencies: - parent-module: 2.0.0 - resolve-from: 5.0.0 - cli-alerts@2.0.0: dependencies: chalk: 4.1.2 @@ -8107,8 +7516,6 @@ snapshots: comma-separated-tokens@2.0.3: {} - commander@14.0.3: {} - commander@4.1.1: {} commander@7.2.0: {} @@ -8121,11 +7528,6 @@ snapshots: core-util-is: 1.0.3 esprima: 4.0.1 - comment-json@4.6.2: - dependencies: - array-timsort: 1.0.3 - esprima: 4.0.1 - compute-cosine-similarity@1.1.0: dependencies: compute-dot: 1.1.0 @@ -8198,97 +7600,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - cspell-config-lib@9.8.0: - dependencies: - '@cspell/cspell-types': 9.8.0 - comment-json: 4.6.2 - smol-toml: 1.8.0 - yaml: 2.9.0 - - cspell-dictionary@9.8.0: - dependencies: - '@cspell/cspell-performance-monitor': 9.8.0 - '@cspell/cspell-pipe': 9.8.0 - '@cspell/cspell-types': 9.8.0 - cspell-trie-lib: 9.8.0(@cspell/cspell-types@9.8.0) - fast-equals: 6.0.3 - - cspell-gitignore@9.8.0: - dependencies: - '@cspell/url': 9.8.0 - cspell-glob: 9.8.0 - cspell-io: 9.8.0 - - cspell-glob@9.8.0: - dependencies: - '@cspell/url': 9.8.0 - picomatch: 4.0.7 - - cspell-grammar@9.8.0: - dependencies: - '@cspell/cspell-pipe': 9.8.0 - '@cspell/cspell-types': 9.8.0 - - cspell-io@9.8.0: - dependencies: - '@cspell/cspell-service-bus': 9.8.0 - '@cspell/url': 9.8.0 - - cspell-lib@9.8.0: - dependencies: - '@cspell/cspell-bundled-dicts': 9.8.0 - '@cspell/cspell-performance-monitor': 9.8.0 - '@cspell/cspell-pipe': 9.8.0 - '@cspell/cspell-resolver': 9.8.0 - '@cspell/cspell-types': 9.8.0 - '@cspell/dynamic-import': 9.8.0 - '@cspell/filetypes': 9.8.0 - '@cspell/rpc': 9.8.0 - '@cspell/strong-weak-map': 9.8.0 - '@cspell/url': 9.8.0 - clear-module: 4.1.3 - cspell-config-lib: 9.8.0 - cspell-dictionary: 9.8.0 - cspell-glob: 9.8.0 - cspell-grammar: 9.8.0 - cspell-io: 9.8.0 - cspell-trie-lib: 9.8.0(@cspell/cspell-types@9.8.0) - env-paths: 4.0.0 - gensequence: 8.0.8 - import-fresh: 3.3.1 - resolve-from: 5.0.0 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.2.0 - xdg-basedir: 5.1.0 - - cspell-trie-lib@9.8.0(@cspell/cspell-types@9.8.0): - dependencies: - '@cspell/cspell-types': 9.8.0 - - cspell@9.8.0: - dependencies: - '@cspell/cspell-json-reporter': 9.8.0 - '@cspell/cspell-performance-monitor': 9.8.0 - '@cspell/cspell-pipe': 9.8.0 - '@cspell/cspell-types': 9.8.0 - '@cspell/cspell-worker': 9.8.0 - '@cspell/dynamic-import': 9.8.0 - '@cspell/url': 9.8.0 - ansi-regex: 6.3.0 - chalk: 5.6.2 - chalk-template: 1.1.2 - commander: 14.0.3 - cspell-config-lib: 9.8.0 - cspell-dictionary: 9.8.0 - cspell-gitignore: 9.8.0 - cspell-glob: 9.8.0 - cspell-io: 9.8.0 - cspell-lib: 9.8.0 - fast-json-stable-stringify: 2.1.0 - flatted: 3.4.4 - semver: 7.7.4 - tinyglobby: 0.2.15 - cssesc@3.0.0: {} csstype@3.2.3: {} @@ -8618,10 +7929,6 @@ snapshots: env-paths@2.2.1: {} - env-paths@4.0.0: - dependencies: - is-safe-filename: 0.1.1 - error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -8782,7 +8089,7 @@ snapshots: eslint: 8.45.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@8.45.0))(eslint@8.45.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1)(eslint@8.45.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.45.0) eslint-plugin-react: 7.37.5(eslint@8.45.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0) @@ -8812,7 +8119,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1)(eslint@8.45.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0) transitivePeerDependencies: - supports-color @@ -8827,7 +8134,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1)(eslint@8.45.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -9067,8 +8374,6 @@ snapshots: fast-equals@2.0.4: {} - fast-equals@6.0.3: {} - fast-fifo@1.3.2: {} fast-glob@3.3.3: @@ -9138,8 +8443,6 @@ snapshots: flatted@3.3.3: {} - flatted@3.4.4: {} - for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -9218,8 +8521,6 @@ snapshots: generator-function@2.0.1: {} - gensequence@8.0.8: {} - get-caller-file@2.0.5: {} get-intrinsic@1.3.0: @@ -9300,10 +8601,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - global-directory@5.0.0: - dependencies: - ini: 6.0.0 - globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -9565,8 +8862,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-meta-resolve@4.2.0: {} - imurmurhash@0.1.4: {} indent-string@2.1.0: @@ -9584,8 +8879,6 @@ snapshots: ini@1.3.8: {} - ini@6.0.0: {} - inline-style-parser@0.1.1: {} inline-style-parser@0.2.7: {} @@ -9736,8 +9029,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - is-safe-filename@0.1.1: {} - is-set@2.0.3: {} is-shared-array-buffer@1.0.4: @@ -11085,10 +10376,6 @@ snapshots: dependencies: callsites: 3.1.0 - parent-module@2.0.0: - dependencies: - callsites: 3.1.0 - parse-entities@2.0.0: dependencies: character-entities: 1.2.4 @@ -11173,8 +10460,6 @@ snapshots: picomatch@4.0.3: {} - picomatch@4.0.7: {} - pify@2.3.0: {} pinkie-promise@2.0.1: @@ -11212,13 +10497,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.9.0): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.6 - yaml: 2.9.0 + yaml: 2.8.2 postcss-nested@6.2.0(postcss@8.5.6): dependencies: @@ -11608,8 +10893,6 @@ snapshots: resolve-from@4.0.0: {} - resolve-from@5.0.0: {} - resolve-pkg-maps@1.0.0: {} resolve@1.22.11: @@ -11805,8 +11088,6 @@ snapshots: slash@3.0.0: {} - smol-toml@1.8.0: {} - sort-keys@5.1.0: dependencies: is-plain-obj: 4.1.0 @@ -11996,11 +11277,11 @@ snapshots: tailwind-merge@2.6.1: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.19(yaml@2.9.0)): + tailwindcss-animate@1.0.7(tailwindcss@3.4.19(yaml@2.8.2)): dependencies: - tailwindcss: 3.4.19(yaml@2.9.0) + tailwindcss: 3.4.19(yaml@2.8.2) - tailwindcss@3.4.19(yaml@2.9.0): + tailwindcss@3.4.19(yaml@2.8.2): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -12019,7 +11300,7 @@ snapshots: postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.9.0) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.11 @@ -12405,8 +11686,6 @@ snapshots: vscode-uri@3.0.8: {} - vscode-uri@3.2.0: {} - web-namespaces@2.0.1: {} web-streams-polyfill@3.3.3: {} @@ -12488,8 +11767,6 @@ snapshots: dependencies: is-wsl: 3.1.0 - xdg-basedir@5.1.0: {} - xlsx@0.18.5: dependencies: adler-32: 1.3.1 @@ -12513,8 +11790,6 @@ snapshots: yaml@2.8.2: {} - yaml@2.9.0: {} - yargs-parser@21.1.1: {} yargs@17.7.2: diff --git a/src/data/redirects.ts b/src/data/redirects.ts index e480a4195..c1a548241 100644 --- a/src/data/redirects.ts +++ b/src/data/redirects.ts @@ -1670,6 +1670,7 @@ const redirectsData = [ '/cody/embeddings/usage-and-limits#configure-global-policy-match-limit' }, { + // cspell:disable-next-line source: '/cody/explanations/code_graph_context#limitting-the-number-of-embeddings-that-can-be-generated', destination: '/cody/embeddings/usage-and-limits#limit-the-number-of-embeddings-that-can-be-generated' @@ -3771,6 +3772,7 @@ const redirectsData = [ '/cody/embeddings/usage-and-limits#configure-global-policy-match-limit' }, { + // cspell:disable-next-line source: '/cody/explanations/code_graph_context#limitting-the-number-of-embeddings-that-can-be-generated', destination: '/cody/embeddings/usage-and-limits#limit-the-number-of-embeddings-that-can-be-generated' From 459f0bd43b18895a886a086a849db6a2ca69dc12 Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Wed, 9 Sep 2026 04:10:46 -0600 Subject: [PATCH 07/12] ci/spelling: Move doc spelling corrections to #1873 Keep this PR to the CSpell check and dictionary. The LINTER_ERRROS, gorelaserConfig, sguqery, lobal, and imedout fixes now live in #1873. --- docs/batch-changes/batch-spec-templating.mdx | 4 ++-- docs/cli/explanations/env.mdx | 2 +- .../references/search-aggregations-use-cases.mdx | 4 ++-- docs/code-navigation/auto-indexing.mdx | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/batch-changes/batch-spec-templating.mdx b/docs/batch-changes/batch-spec-templating.mdx index c0cec5a32..09c6e3fe7 100644 --- a/docs/batch-changes/batch-spec-templating.mdx +++ b/docs/batch-changes/batch-spec-templating.mdx @@ -179,7 +179,7 @@ Put information in environment variables, based on the output of previous step ` ```yaml steps: - - run: echo $LINTER_ERRORS >> linter_errors.txt + - run: echo $LINTER_ERRROS >> linter_errors.txt container: alpine:3 env: LINTER_ERRORS: ${{ previous_step.stdout }} @@ -240,7 +240,7 @@ changesetTemplate: # Since templating fields use Go's `text/template` and `goreleaserConfig` was # parsed as YAML we can iterate over every field: body: | - This repository has a `goreleaserConfig`: ${{ outputs.goreleaserConfigExists.exists }}. + This repository has a `gorelaserConfig`: ${{ outputs.goreleaserConfigExists.exists }}. The `goreleaser.yml` defines the following `before.hooks`: diff --git a/docs/cli/explanations/env.mdx b/docs/cli/explanations/env.mdx index 3e8add5bd..574ed609c 100644 --- a/docs/cli/explanations/env.mdx +++ b/docs/cli/explanations/env.mdx @@ -93,6 +93,6 @@ src search -get-curl 'repogroup:swarm' curl \ -H 'Authorization: token ' \ -H 'authorization: Bearer What did the judge say to the dentist? Do you swear to pull the tooth, the whole tooth and nothing but the tooth?' \ - -d '{"query":"fragment FileMatchFields on FileMatch {\n\t\t\t\trepository {\n\t\t\t\t\tname\n\t\t\t\t\turl\n\t\t\t\t}\n\t\t\t\tfile {\n\t\t\t\t\tname\n\t\t\t\t\tpath\n\t\t\t\t\turl\n\t\t\t\t\tcontent\n\t\t\t\t\tcommit {\n\t\t\t\t\t\toid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlineMatches {\n\t\t\t\t\tpreview\n\t\t\t\t\tlineNumber\n\t\t\t\t\toffsetAndLengths\n\t\t\t\t\tlimitHit\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfragment CommitSearchResultFields on CommitSearchResult {\n\t\t\t\tmessagePreview {\n\t\t\t\t\tvalue\n\t\t\t\t\thighlights{\n\t\t\t\t\t\tline\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdiffPreview {\n\t\t\t\t\tvalue\n\t\t\t\t\thighlights {\n\t\t\t\t\t\tline\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlabel {\n\t\t\t\t\thtml\n\t\t\t\t}\n\t\t\t\turl\n\t\t\t\tmatches {\n\t\t\t\t\turl\n\t\t\t\t\tbody {\n\t\t\t\t\t\thtml\n\t\t\t\t\t\ttext\n\t\t\t\t\t}\n\t\t\t\t\thighlights {\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tline\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcommit {\n\t\t\t\t\trepository {\n\t\t\t\t\t\tname\n\t\t\t\t\t}\n\t\t\t\t\toid\n\t\t\t\t\turl\n\t\t\t\t\tsubject\n\t\t\t\t\tauthor {\n\t\t\t\t\t\tdate\n\t\t\t\t\t\tperson {\n\t\t\t\t\t\t\tdisplayName\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t fragment RepositoryFields on Repository {\n\t\t\tname\n\t\t\turl\n\t\t\texternalURLs {\n\t\t\t serviceType\n\t\t\t url\n\t\t\t}\n\t\t\tlabel {\n\t\t\t\thtml\n\t\t\t}\n\t\t }\n\n\t\t query ($query: String!) {\n\t\t\tsite {\n\t\t\t\tbuildVersion\n\t\t\t}\n\t\t\tsearch(query: $query) {\n\t\t\t results {\n\t\t\t\tresults{\n\t\t\t\t __typename\n\t\t\t\t ... on FileMatch {\n\t\t\t\t\t...FileMatchFields\n\t\t\t\t }\n\t\t\t\t ... on CommitSearchResult {\n\t\t\t\t\t...CommitSearchResultFields\n\t\t\t\t }\n\t\t\t\t ... on Repository {\n\t\t\t\t\t...RepositoryFields\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\tlimitHit\n\t\t\t\tcloning {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\tmissing {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\ttimedout {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\tmatchCount\n\t\t\t\telapsedMilliseconds\n\t\t\t\t...SearchResultsAlertFields\n\t\t\t }\n\t\t\t}\n\t\t }\n\t\t\n\tfragment SearchResultsAlertFields on SearchResults {\n\t\talert {\n\t\t\ttitle\n\t\t\tdescription\n\t\t\tproposedQueries {\n\t\t\t\tdescription\n\t\t\t\tquery\n\t\t\t}\n\t\t}\n\t}\n","variables":{"query":"repogroup:swarm"}}' \ + -d '{"query":"fragment FileMatchFields on FileMatch {\n\t\t\t\trepository {\n\t\t\t\t\tname\n\t\t\t\t\turl\n\t\t\t\t}\n\t\t\t\tfile {\n\t\t\t\t\tname\n\t\t\t\t\tpath\n\t\t\t\t\turl\n\t\t\t\t\tcontent\n\t\t\t\t\tcommit {\n\t\t\t\t\t\toid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlineMatches {\n\t\t\t\t\tpreview\n\t\t\t\t\tlineNumber\n\t\t\t\t\toffsetAndLengths\n\t\t\t\t\tlimitHit\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfragment CommitSearchResultFields on CommitSearchResult {\n\t\t\t\tmessagePreview {\n\t\t\t\t\tvalue\n\t\t\t\t\thighlights{\n\t\t\t\t\t\tline\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdiffPreview {\n\t\t\t\t\tvalue\n\t\t\t\t\thighlights {\n\t\t\t\t\t\tline\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlabel {\n\t\t\t\t\thtml\n\t\t\t\t}\n\t\t\t\turl\n\t\t\t\tmatches {\n\t\t\t\t\turl\n\t\t\t\t\tbody {\n\t\t\t\t\t\thtml\n\t\t\t\t\t\ttext\n\t\t\t\t\t}\n\t\t\t\t\thighlights {\n\t\t\t\t\t\tcharacter\n\t\t\t\t\t\tline\n\t\t\t\t\t\tlength\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcommit {\n\t\t\t\t\trepository {\n\t\t\t\t\t\tname\n\t\t\t\t\t}\n\t\t\t\t\toid\n\t\t\t\t\turl\n\t\t\t\t\tsubject\n\t\t\t\t\tauthor {\n\t\t\t\t\t\tdate\n\t\t\t\t\t\tperson {\n\t\t\t\t\t\t\tdisplayName\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t fragment RepositoryFields on Repository {\n\t\t\tname\n\t\t\turl\n\t\t\texternalURLs {\n\t\t\t serviceType\n\t\t\t url\n\t\t\t}\n\t\t\tlabel {\n\t\t\t\thtml\n\t\t\t}\n\t\t }\n\n\t\t query ($query: String!) {\n\t\t\tsite {\n\t\t\t\tbuildVersion\n\t\t\t}\n\t\t\tsearch(query: $query) {\n\t\t\t results {\n\t\t\t\tresults{\n\t\t\t\t __typename\n\t\t\t\t ... on FileMatch {\n\t\t\t\t\t...FileMatchFields\n\t\t\t\t }\n\t\t\t\t ... on CommitSearchResult {\n\t\t\t\t\t...CommitSearchResultFields\n\t\t\t\t }\n\t\t\t\t ... on Repository {\n\t\t\t\t\t...RepositoryFields\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\tlimitHit\n\t\t\t\tcloning {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\tmissing {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\timedout {\n\t\t\t\t name\n\t\t\t\t}\n\t\t\t\tmatchCount\n\t\t\t\telapsedMilliseconds\n\t\t\t\t...SearchResultsAlertFields\n\t\t\t }\n\t\t\t}\n\t\t }\n\t\t\n\tfragment SearchResultsAlertFields on SearchResults {\n\t\talert {\n\t\t\ttitle\n\t\t\tdescription\n\t\t\tproposedQueries {\n\t\t\t\tdescription\n\t\t\t\tquery\n\t\t\t}\n\t\t}\n\t}\n","variables":{"query":"repogroup:swarm"}}' \ https://cse-k8s.sgdev.org/.api/graphql ``` diff --git a/docs/code-insights/references/search-aggregations-use-cases.mdx b/docs/code-insights/references/search-aggregations-use-cases.mdx index 0aa10928e..a5be72370 100644 --- a/docs/code-insights/references/search-aggregations-use-cases.mdx +++ b/docs/code-insights/references/search-aggregations-use-cases.mdx @@ -24,7 +24,7 @@ file:package.json /"license":\s(.*),/ See which repositories import a library (group by repository) -```sgquery +```sguqery from '@sourcegraph/wildcard' ``` @@ -84,7 +84,7 @@ See all your tracer calls to track the growth of, or minimize spend on, tools li See which repositories import a library -```sgquery +```sguqery /from\s'\@sourcegraph\/wildcard/ ``` diff --git a/docs/code-navigation/auto-indexing.mdx b/docs/code-navigation/auto-indexing.mdx index 2a2fe0b28..25647f9c8 100644 --- a/docs/code-navigation/auto-indexing.mdx +++ b/docs/code-navigation/auto-indexing.mdx @@ -86,7 +86,7 @@ New policies can also be created to apply to the HEAD of the default branch, or ![Global auto-indexing policy configuration edit page](https://storage.googleapis.com/sourcegraph-assets/docs/images/code-intelligence/renamed/global-create-indexing.png) -![Global auto-indexing policy configuration created confirmation](https://storage.googleapis.com/sourcegraph-assets/docs/images/code-intelligence/renamed/post-create.png) +![lobal auto-indexing policy configuration created confirmation](https://storage.googleapis.com/sourcegraph-assets/docs/images/code-intelligence/renamed/post-create.png) New policies can be created to apply to a set of repositories that are matched by name. For example, you may want to enable indexing for a particular set of repositories (in this example, repositories in the `sourcegraph` organization). From 7c39fec33679ecec40fabb74def7eaf07e8a46cd Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Wed, 9 Sep 2026 04:16:44 -0600 Subject: [PATCH 08/12] ci/spelling: Link to cspell-allow-list.txt in PR comments Amp-Thread-ID: https://ampcode.com/threads/T-01a085a6-bee2-73a7-a3d4-49683789fc84 Co-authored-by: Amp --- .github/workflows/spellcheck.yml | 1 + dev/post-spelling-review.mjs | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 773ab359c..5626522c7 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -50,4 +50,5 @@ jobs: GH_TOKEN: ${{ github.token }} PR_NUMBER: ${{ github.event.pull_request.number }} HEAD_SHA: ${{ github.event.pull_request.head.sha }} + HEAD_REF: ${{ github.event.pull_request.head.ref }} run: node dev/post-spelling-review.mjs --findings "$RUNNER_TEMP/spelling.json" diff --git a/dev/post-spelling-review.mjs b/dev/post-spelling-review.mjs index 809b5871b..9eadda990 100644 --- a/dev/post-spelling-review.mjs +++ b/dev/post-spelling-review.mjs @@ -7,7 +7,7 @@ * Usage: node dev/post-spelling-review.mjs --findings [--dry-run] * * Reads the JSON written by `dev/check-spelling.mjs --format json`. - * Requires GH_TOKEN, GITHUB_REPOSITORY, PR_NUMBER and HEAD_SHA. + * Requires GH_TOKEN, GITHUB_REPOSITORY, PR_NUMBER, HEAD_SHA and HEAD_REF. */ import {readFileSync} from 'fs'; @@ -21,6 +21,10 @@ const API_URL = process.env.GITHUB_API_URL ?? 'https://api.github.com'; const REPOSITORY = process.env.GITHUB_REPOSITORY; const PR_NUMBER = process.env.PR_NUMBER; const HEAD_SHA = process.env.HEAD_SHA; +const HEAD_REF = process.env.HEAD_REF; + +// Link to the PR branch, not the commit, so GitHub's edit button works from it +const ALLOW_LIST_LINK = `[\`cspell-allow-list.txt\`](https://github.com/${REPOSITORY}/blob/${HEAD_REF}/cspell-allow-list.txt)`; const SUMMARY_MARKER = ''; const INLINE_MARKER = '`, - `\`${word}\` is not in the dictionary.${suggestions.length > 0 ? ' Did you mean:' : ''}`, + `${INLINE_MARKER} ${finding.word} -->`, + `\`${finding.word}\` is not in the dictionary.`, '', - ...suggestionBlocks(finding), + ...suggestionBlock(finding), `Please correct the spelling, or add the word to ${ALLOW_LIST_LINK} if it is correct.` ].join('\n'); } From d2422f2e0a0118691288fb46c71f77b0c70bde84 Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Thu, 10 Sep 2026 05:39:38 +0000 Subject: [PATCH 11/12] ci: use runner Node for spelling check Co-authored-by: Amp Amp-Thread-ID: https://ampcode.com/threads/T-01a06e27-8097-7461-8d90-eef25db09feb --- .github/workflows/spellcheck.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 5626522c7..5aa080ff4 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -22,14 +22,8 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 - # CSpell is installed on its own, not as a project dependency, so it - # can use the latest Node.js without moving the site build off the - # version pinned in .tool-versions. - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: latest - + # Install only CSpell instead of the site's full dependency tree. + # ubuntu-latest includes a CSpell-compatible Node.js version. - name: Install CSpell run: npm install --global cspell@10 From 57f1ce346a9fd4162ffcf1208af3b8d62acab63e Mon Sep 17 00:00:00 2001 From: Marc LeBlanc <7050295+marcleblanc2@users.noreply.github.com> Date: Thu, 10 Sep 2026 05:41:00 +0000 Subject: [PATCH 12/12] ci: use cached Node version for spelling check Amp-Thread-ID: https://ampcode.com/threads/T-01a06e27-8097-7461-8d90-eef25db09feb Co-authored-by: Amp --- .github/workflows/spellcheck.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 5aa080ff4..5e67db872 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -22,8 +22,14 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 + # Node 24 is pre-cached on ubuntu-latest, avoiding the download + # incurred by node-version: latest. + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + # Install only CSpell instead of the site's full dependency tree. - # ubuntu-latest includes a CSpell-compatible Node.js version. - name: Install CSpell run: npm install --global cspell@10