From 3ebb117334e9f16f491073982146eb7dbcdbb58a Mon Sep 17 00:00:00 2001 From: Jason Dent Date: Sat, 30 Sep 2023 08:54:30 +0200 Subject: [PATCH] test: Work on test runner (#739) --- .github/workflows/test.yml | 13 + .gitignore | 5 + CONTRIBUTING.md | 29 +- custom-words.txt | 1 + dict-extensions.code-workspace | 3 + extensions/arabic/package.json | 6 +- extensions/arabic/samples/cspell.json | 1 + extensions/arabic/src/extension.ts | 2 +- extensions/arabic/test/extension.test.ts | 23 - extensions/arabic/test/index.ts | 22 - extensions/arabic/vsc-extension-quickstart.md | 38 - extensions/australian-english/package.json | 6 +- .../australian-english/samples/seattle.md | 2 + .../australian-english/src/extension.ts | 2 +- .../australian-english/test/extension.test.ts | 23 - extensions/australian-english/test/index.ts | 22 - extensions/austrian-german/package.json | 6 +- extensions/austrian-german/samples/sample1.md | 1 + extensions/austrian-german/samples/seattle.md | 3 + extensions/austrian-german/src/extension.ts | 2 +- .../austrian-german/test/extension.test.ts | 23 - extensions/austrian-german/test/index.ts | 22 - extensions/basque/package.json | 6 +- extensions/basque/samples/cspell.json | 3 +- extensions/basque/src/extension.ts | 2 +- extensions/basque/test/extension.test.ts | 23 - extensions/basque/test/index.ts | 22 - extensions/british-english/package.json | 8 +- extensions/british-english/src/extension.ts | 2 +- .../british-english/test/extension.test.ts | 23 - extensions/british-english/test/index.ts | 22 - extensions/bulgarian/package.json | 6 +- extensions/bulgarian/src/extension.ts | 2 +- extensions/bulgarian/test/extension.test.ts | 23 - extensions/bulgarian/test/index.ts | 22 - .../bulgarian/vsc-extension-quickstart.md | 38 - extensions/canadian-english/package.json | 6 +- extensions/canadian-english/src/extension.ts | 2 +- .../canadian-english/test/extension.test.ts | 23 - extensions/canadian-english/test/index.ts | 22 - extensions/catalan/package.json | 6 +- extensions/catalan/samples/seattle.md | 4 + extensions/catalan/src/extension.ts | 2 +- extensions/catalan/test/extension.test.ts | 23 - extensions/catalan/test/index.ts | 22 - .../catalan/vsc-extension-quickstart.md | 38 - extensions/croatian/package.json | 6 +- extensions/croatian/src/extension.ts | 2 +- extensions/croatian/test/extension.test.ts | 23 - extensions/croatian/test/index.ts | 22 - .../croatian/vsc-extension-quickstart.md | 38 - extensions/czech/package.json | 6 +- extensions/czech/samples/seattle.md | 5 +- extensions/czech/src/extension.ts | 2 +- extensions/czech/test/extension.test.ts | 23 - extensions/czech/test/index.ts | 22 - extensions/czech/vsc-extension-quickstart.md | 38 - extensions/danish/package.json | 6 +- extensions/danish/samples/seattle.md | 5 +- extensions/danish/src/extension.ts | 2 +- extensions/danish/test/extension.test.ts | 23 - extensions/danish/test/index.ts | 22 - extensions/danish/vsc-extension-quickstart.md | 38 - extensions/dutch/cSpell.json | 7 + extensions/dutch/package.json | 6 +- extensions/dutch/src/extension.ts | 2 +- extensions/dutch/test/extension.test.ts | 23 - extensions/dutch/test/index.ts | 22 - extensions/dutch/vsc-extension-quickstart.md | 38 - extensions/esperanto/package.json | 6 +- extensions/esperanto/samples/seattle.md | 5 +- extensions/esperanto/src/extension.ts | 2 +- extensions/esperanto/test/extension.test.ts | 23 - extensions/esperanto/test/index.ts | 22 - .../esperanto/vsc-extension-quickstart.md | 38 - extensions/estonian/package.json | 6 +- extensions/estonian/samples/seattle.md | 3 +- extensions/estonian/src/extension.ts | 2 +- extensions/estonian/test/extension.test.ts | 23 - extensions/estonian/test/index.ts | 22 - .../estonian/vsc-extension-quickstart.md | 38 - extensions/french-reforme/cspell.json | 1 + extensions/french-reforme/package.json | 6 +- extensions/french-reforme/src/extension.ts | 2 +- .../french-reforme/test/extension.test.ts | 23 - extensions/french-reforme/test/index.ts | 22 - .../vsc-extension-quickstart.md | 38 - extensions/french/package.json | 6 +- extensions/french/src/extension.ts | 2 +- extensions/french/test/extension.test.ts | 23 - extensions/french/test/index.ts | 22 - extensions/french/vsc-extension-quickstart.md | 38 - extensions/german/package.json | 6 +- extensions/german/src/extension.ts | 2 +- extensions/german/test/extension.test.ts | 23 - extensions/german/test/index.ts | 22 - extensions/german/vsc-extension-quickstart.md | 38 - extensions/greek/package.json | 6 +- extensions/greek/samples/seattle.md | 4 +- extensions/greek/src/extension.ts | 2 +- extensions/greek/test/extension.test.ts | 23 - extensions/greek/test/index.ts | 22 - extensions/greek/vsc-extension-quickstart.md | 38 - extensions/hebrew/cspell-ext.json | 2 +- extensions/hebrew/package-lock.json | 147 +- extensions/hebrew/package.json | 8 +- extensions/hebrew/samples/seattle.md | 4 + extensions/hebrew/src/extension.ts | 2 +- extensions/hebrew/test/extension.test.ts | 23 - extensions/hebrew/test/index.ts | 22 - extensions/hebrew/vsc-extension-quickstart.md | 38 - .../hunspell-syntax/.vscode/launch.json | 4 +- extensions/hunspell-syntax/cspell.json | 2 +- .../language-configuration.json | 10 +- extensions/hunspell-syntax/package.json | 4 +- .../hunspell-syntax/samples/example.aff | 13 + .../hunspell-syntax/samples/example.dic | 4 + .../syntaxes/aff.tmLanguage.json | 458 ++-- .../syntaxes/dic.tmLanguage.json | 10 +- extensions/italian/package.json | 6 +- extensions/italian/samples/seattle.md | 1 + extensions/italian/src/extension.ts | 2 +- extensions/italian/test/extension.test.ts | 23 - extensions/italian/test/index.ts | 22 - .../italian/vsc-extension-quickstart.md | 38 - extensions/latvian/package.json | 8 +- extensions/latvian/test/extension.test.ts | 23 - extensions/latvian/test/index.ts | 22 - extensions/lithuanian/package.json | 6 +- extensions/lithuanian/samples/seattle.md | 4 + extensions/lithuanian/src/extension.ts | 2 +- extensions/lithuanian/test/extension.test.ts | 23 - extensions/lithuanian/test/index.ts | 22 - extensions/medical-terms/package.json | 6 +- .../medical-terms/test/extension.test.ts | 23 - extensions/medical-terms/test/index.ts | 22 - extensions/medical-terms/test/sample.md | 26 - .../medical-terms/vsc-extension-quickstart.md | 38 - extensions/norwegian-bokmal/package.json | 8 +- extensions/norwegian-bokmal/src/extension.ts | 2 +- .../norwegian-bokmal/test/extension.test.ts | 23 - extensions/norwegian-bokmal/test/index.ts | 22 - extensions/persian/package.json | 6 +- extensions/persian/samples/seattle.md | 4 + extensions/persian/src/extension.ts | 2 +- extensions/persian/test/extension.test.ts | 23 - extensions/persian/test/index.ts | 22 - .../persian/vsc-extension-quickstart.md | 38 - extensions/polish/package.json | 6 +- extensions/polish/samples/seattle.md | 2 +- extensions/polish/src/extension.ts | 2 +- extensions/polish/test/extension.test.ts | 23 - extensions/polish/test/index.ts | 22 - extensions/portuguese-brazilian/package.json | 6 +- .../portuguese-brazilian/src/extension.ts | 10 +- .../test/extension.test.ts | 23 - extensions/portuguese-brazilian/test/index.ts | 22 - .../vsc-extension-quickstart.md | 38 - extensions/portuguese/package.json | 6 +- extensions/portuguese/samples/seattle.md | 3 + extensions/portuguese/src/extension.ts | 2 +- extensions/portuguese/test/extension.test.ts | 23 - extensions/portuguese/test/index.ts | 22 - .../portuguese/vsc-extension-quickstart.md | 38 - extensions/romanian/package.json | 8 +- extensions/romanian/test/extension.test.ts | 23 - extensions/romanian/test/index.ts | 22 - extensions/russian/package.json | 6 +- extensions/russian/src/extension.ts | 2 +- extensions/russian/test/extension.test.ts | 23 - extensions/russian/test/index.ts | 22 - .../russian/vsc-extension-quickstart.md | 38 - extensions/scientific-terms/package.json | 6 +- extensions/scientific-terms/samples/README.md | 43 + .../scientific-terms/samples/cspell.json | 1 + .../scientific-terms/test/extension.test.ts | 23 - extensions/scientific-terms/test/index.ts | 22 - .../vsc-extension-quickstart.md | 38 - extensions/serbian/cspell.json | 5 + extensions/serbian/package.json | 6 +- extensions/serbian/src/extension.ts | 2 +- extensions/serbian/test/extension.test.ts | 23 - extensions/serbian/test/index.ts | 22 - extensions/slovak/package.json | 6 +- extensions/slovak/samples/seattle.md | 4 +- extensions/slovak/src/extension.ts | 2 +- extensions/slovak/test/extension.test.ts | 23 - extensions/slovak/test/index.ts | 22 - extensions/slovak/vsc-extension-quickstart.md | 38 - extensions/slovenian/package.json | 6 +- extensions/slovenian/src/extension.ts | 2 +- extensions/slovenian/test/extension.test.ts | 23 - extensions/slovenian/test/index.ts | 22 - .../slovenian/vsc-extension-quickstart.md | 38 - extensions/spanish/package.json | 6 +- extensions/spanish/src/extension.ts | 2 +- extensions/spanish/test/cspell.json | 18 - extensions/spanish/test/example-es.ts | 38 - extensions/spanish/test/extension.test.ts | 23 - extensions/spanish/test/index.ts | 22 - extensions/spanish/test/sample.md | 13 - extensions/spanish/test/seattle.md | 21 - .../spanish/vsc-extension-quickstart.md | 38 - extensions/swedish/package.json | 6 +- extensions/swedish/src/extension.ts | 2 +- extensions/swedish/test/extension.test.ts | 23 - extensions/swedish/test/index.ts | 22 - .../swedish/vsc-extension-quickstart.md | 38 - extensions/swiss-german/package.json | 6 +- extensions/swiss-german/src/extension.ts | 2 +- .../swiss-german/test/extension.test.ts | 23 - extensions/swiss-german/test/index.ts | 22 - extensions/turkish/package.json | 8 +- extensions/turkish/src/extension.ts | 2 +- extensions/turkish/test/extension.test.ts | 23 - extensions/turkish/test/index.ts | 22 - extensions/ukrainian/package.json | 6 +- extensions/ukrainian/samples/seattle.md | 4 + extensions/ukrainian/src/extension.ts | 2 +- extensions/ukrainian/test/extension.test.ts | 23 - extensions/ukrainian/test/index.ts | 22 - .../ukrainian/vsc-extension-quickstart.md | 38 - extensions/vietnamese/package.json | 8 +- extensions/vietnamese/src/extension.ts | 2 +- extensions/vietnamese/test/extension.test.ts | 23 - extensions/vietnamese/test/index.ts | 22 - .../vietnamese/vsc-extension-quickstart.md | 38 - .../generators/app/templates/package.json | 8 +- .../app/templates/test/extension.test.ts | 24 - .../generators/app/templates/test/index.ts | 22 - lerna.json | 2 + package-lock.json | 2186 +++++++++++------ package.json | 16 +- scripts/package-lock.json | 260 ++ scripts/package.json | 20 + test-runner/bin.mjs | 1 + test-runner/lib/esmImport.cjs | 10 + test-runner/lib/helper.cjs | 152 ++ test-runner/lib/initEsmImports.mjs | 7 + test-runner/lib/logger.cjs | 16 + test-runner/lib/runner.mjs | 34 + test-runner/package-lock.json | 1500 +++++++++++ test-runner/package.json | 28 + test-runner/suite/index.cjs | 8 + test-runner/suite/tests/extension.test.cjs | 151 ++ test-runner/suite/types.d.ts | 48 + test-runner/test-runner.mjs | 112 + 247 files changed, 4437 insertions(+), 4268 deletions(-) delete mode 100644 extensions/arabic/test/extension.test.ts delete mode 100644 extensions/arabic/test/index.ts delete mode 100644 extensions/arabic/vsc-extension-quickstart.md delete mode 100644 extensions/australian-english/test/extension.test.ts delete mode 100644 extensions/australian-english/test/index.ts delete mode 100644 extensions/austrian-german/test/extension.test.ts delete mode 100644 extensions/austrian-german/test/index.ts delete mode 100644 extensions/basque/test/extension.test.ts delete mode 100644 extensions/basque/test/index.ts delete mode 100644 extensions/british-english/test/extension.test.ts delete mode 100644 extensions/british-english/test/index.ts delete mode 100644 extensions/bulgarian/test/extension.test.ts delete mode 100644 extensions/bulgarian/test/index.ts delete mode 100644 extensions/bulgarian/vsc-extension-quickstart.md delete mode 100644 extensions/canadian-english/test/extension.test.ts delete mode 100644 extensions/canadian-english/test/index.ts delete mode 100644 extensions/catalan/test/extension.test.ts delete mode 100644 extensions/catalan/test/index.ts delete mode 100644 extensions/catalan/vsc-extension-quickstart.md delete mode 100644 extensions/croatian/test/extension.test.ts delete mode 100644 extensions/croatian/test/index.ts delete mode 100644 extensions/croatian/vsc-extension-quickstart.md delete mode 100644 extensions/czech/test/extension.test.ts delete mode 100644 extensions/czech/test/index.ts delete mode 100644 extensions/czech/vsc-extension-quickstart.md delete mode 100644 extensions/danish/test/extension.test.ts delete mode 100644 extensions/danish/test/index.ts delete mode 100644 extensions/danish/vsc-extension-quickstart.md delete mode 100644 extensions/dutch/test/extension.test.ts delete mode 100644 extensions/dutch/test/index.ts delete mode 100644 extensions/dutch/vsc-extension-quickstart.md delete mode 100644 extensions/esperanto/test/extension.test.ts delete mode 100644 extensions/esperanto/test/index.ts delete mode 100644 extensions/esperanto/vsc-extension-quickstart.md delete mode 100644 extensions/estonian/test/extension.test.ts delete mode 100644 extensions/estonian/test/index.ts delete mode 100644 extensions/estonian/vsc-extension-quickstart.md delete mode 100644 extensions/french-reforme/test/extension.test.ts delete mode 100644 extensions/french-reforme/test/index.ts delete mode 100644 extensions/french-reforme/vsc-extension-quickstart.md delete mode 100644 extensions/french/test/extension.test.ts delete mode 100644 extensions/french/test/index.ts delete mode 100644 extensions/french/vsc-extension-quickstart.md delete mode 100644 extensions/german/test/extension.test.ts delete mode 100644 extensions/german/test/index.ts delete mode 100644 extensions/german/vsc-extension-quickstart.md delete mode 100644 extensions/greek/test/extension.test.ts delete mode 100644 extensions/greek/test/index.ts delete mode 100644 extensions/greek/vsc-extension-quickstart.md delete mode 100644 extensions/hebrew/test/extension.test.ts delete mode 100644 extensions/hebrew/test/index.ts delete mode 100644 extensions/hebrew/vsc-extension-quickstart.md create mode 100644 extensions/hunspell-syntax/samples/example.aff create mode 100644 extensions/hunspell-syntax/samples/example.dic delete mode 100644 extensions/italian/test/extension.test.ts delete mode 100644 extensions/italian/test/index.ts delete mode 100644 extensions/italian/vsc-extension-quickstart.md delete mode 100644 extensions/latvian/test/extension.test.ts delete mode 100644 extensions/latvian/test/index.ts delete mode 100644 extensions/lithuanian/test/extension.test.ts delete mode 100644 extensions/lithuanian/test/index.ts delete mode 100644 extensions/medical-terms/test/extension.test.ts delete mode 100644 extensions/medical-terms/test/index.ts delete mode 100644 extensions/medical-terms/test/sample.md delete mode 100644 extensions/medical-terms/vsc-extension-quickstart.md delete mode 100644 extensions/norwegian-bokmal/test/extension.test.ts delete mode 100644 extensions/norwegian-bokmal/test/index.ts delete mode 100644 extensions/persian/test/extension.test.ts delete mode 100644 extensions/persian/test/index.ts delete mode 100644 extensions/persian/vsc-extension-quickstart.md delete mode 100644 extensions/polish/test/extension.test.ts delete mode 100644 extensions/polish/test/index.ts delete mode 100644 extensions/portuguese-brazilian/test/extension.test.ts delete mode 100644 extensions/portuguese-brazilian/test/index.ts delete mode 100644 extensions/portuguese-brazilian/vsc-extension-quickstart.md delete mode 100644 extensions/portuguese/test/extension.test.ts delete mode 100644 extensions/portuguese/test/index.ts delete mode 100644 extensions/portuguese/vsc-extension-quickstart.md delete mode 100644 extensions/romanian/test/extension.test.ts delete mode 100644 extensions/romanian/test/index.ts delete mode 100644 extensions/russian/test/extension.test.ts delete mode 100644 extensions/russian/test/index.ts delete mode 100644 extensions/russian/vsc-extension-quickstart.md create mode 100644 extensions/scientific-terms/samples/README.md create mode 100644 extensions/scientific-terms/samples/cspell.json delete mode 100644 extensions/scientific-terms/test/extension.test.ts delete mode 100644 extensions/scientific-terms/test/index.ts delete mode 100644 extensions/scientific-terms/vsc-extension-quickstart.md create mode 100644 extensions/serbian/cspell.json delete mode 100644 extensions/serbian/test/extension.test.ts delete mode 100644 extensions/serbian/test/index.ts delete mode 100644 extensions/slovak/test/extension.test.ts delete mode 100644 extensions/slovak/test/index.ts delete mode 100644 extensions/slovak/vsc-extension-quickstart.md delete mode 100644 extensions/slovenian/test/extension.test.ts delete mode 100644 extensions/slovenian/test/index.ts delete mode 100644 extensions/slovenian/vsc-extension-quickstart.md delete mode 100644 extensions/spanish/test/cspell.json delete mode 100644 extensions/spanish/test/example-es.ts delete mode 100644 extensions/spanish/test/extension.test.ts delete mode 100644 extensions/spanish/test/index.ts delete mode 100644 extensions/spanish/test/sample.md delete mode 100644 extensions/spanish/test/seattle.md delete mode 100644 extensions/spanish/vsc-extension-quickstart.md delete mode 100644 extensions/swedish/test/extension.test.ts delete mode 100644 extensions/swedish/test/index.ts delete mode 100644 extensions/swedish/vsc-extension-quickstart.md delete mode 100644 extensions/swiss-german/test/extension.test.ts delete mode 100644 extensions/swiss-german/test/index.ts delete mode 100644 extensions/turkish/test/extension.test.ts delete mode 100644 extensions/turkish/test/index.ts delete mode 100644 extensions/ukrainian/test/extension.test.ts delete mode 100644 extensions/ukrainian/test/index.ts delete mode 100644 extensions/ukrainian/vsc-extension-quickstart.md delete mode 100644 extensions/vietnamese/test/extension.test.ts delete mode 100644 extensions/vietnamese/test/index.ts delete mode 100644 extensions/vietnamese/vsc-extension-quickstart.md delete mode 100644 generator-cspell-dicts-extensions/generators/app/templates/test/extension.test.ts delete mode 100644 generator-cspell-dicts-extensions/generators/app/templates/test/index.ts create mode 100644 scripts/package-lock.json create mode 100644 scripts/package.json create mode 100644 test-runner/bin.mjs create mode 100644 test-runner/lib/esmImport.cjs create mode 100644 test-runner/lib/helper.cjs create mode 100644 test-runner/lib/initEsmImports.mjs create mode 100644 test-runner/lib/logger.cjs create mode 100644 test-runner/lib/runner.mjs create mode 100644 test-runner/package-lock.json create mode 100644 test-runner/package.json create mode 100644 test-runner/suite/index.cjs create mode 100644 test-runner/suite/tests/extension.test.cjs create mode 100644 test-runner/suite/types.d.ts create mode 100755 test-runner/test-runner.mjs diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 385e3724..28441086 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,3 +42,16 @@ jobs: - run: | cd ${{ matrix.extension_dir }} npm run pack-extension + npm run test:cspell + + - name: Run Linux + if: runner.os == 'Linux' + run: | + cd ${{ matrix.extension_dir }} + xvfb-run -a npm run test + + - name: Run Windows and MacOS + if: runner.os != 'Linux' + run: | + cd ${{ matrix.extension_dir }} + npm run test diff --git a/.gitignore b/.gitignore index 2f2e05a4..bc9c1d1b 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,8 @@ typings/ *.vsix extensions/*/out + +temp +.cache +.vscode-* +.vscode-test diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 211579cf..5ea710fd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -46,18 +46,18 @@ yo cspell-dict-extensions Yeoman will ask you a series of questions most of which default suggestion is ok (to select default suggestion press enter without typing): -| Field | Description | -| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **name** | this is the dictionary. i.e. `swedish`, `ruby`, or `rust` | -| friendly name | this is the friendly name, like `Swedish` | -| display name | this is the name shown on the VS Code Extensions page. | -| description | short description of the extension. | -| **Source Dictionary** | This is the NPM install name of the source eg. dictionary `@cspell/dict-sv` (@ is needed). Available dictionaries could be found here [https://github.com/streetsidesoftware/cspell-dicts#all-dictionaries](https://github.com/streetsidesoftware/cspell-dicts#all-dictionaries) | -| Add Enable / Disable Commands | This is used for adding helper commands for human language locals like `fr` for French or `fr,fr_CA` for Canadian French. This option is not necessary for word lists like `companies` or programming languages. | -| Base Name For Commands | This is added as a suffix onto the command names. | -| Language Locale | This is the two letter language code supported by the dictionary included in the `Source Dictionary` step. | -| Target Directory | Where to create the extension | -| NPM Package Name | name added to the `package.json` | +| Field | Description | +| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **name** | this is the dictionary. i.e. `swedish`, `ruby`, or `rust` | +| friendly name | this is the friendly name, like `Swedish` | +| display name | this is the name shown on the VS Code Extensions page. | +| description | short description of the extension. | +| **Source Dictionary** | This is the NPM install name of the source eg. dictionary `@cspell/dict-sv` (@ is needed). Available dictionaries could be found here [https://github.com/streetsidesoftware/cspell-dicts#all-dictionaries](https://github.com/streetsidesoftware/cspell-dicts#all-dictionaries) | +| Add Enable / Disable Commands | This is used for adding helper commands for human language locals like `fr` for French or `fr,fr_CA` for Canadian French. This option is not necessary for word lists like `companies` or programming languages. | +| Base Name For Commands | This is added as a suffix onto the command names. | +| Language Locale | This is the two letter language code supported by the dictionary included in the `Source Dictionary` step. | +| Target Directory | Where to create the extension | +| NPM Package Name | name added to the `package.json` | After all the information is entered, the extension should be generated. @@ -70,7 +70,9 @@ npm run build ``` Please update files: + - `README.md` + - Add yourself as contributor under `## Contributors` header ```txt @@ -79,7 +81,7 @@ Please update files: - `extensions//samples/seattle.md` - Go to Seattle wikipedia page translated to your language and copy some content to `seattle.md`. It's later used to test if plugin recognizes words - + Please update files if necessary (leave it as unless you know why you're changing it): - `extensions//README.md` @@ -121,4 +123,3 @@ Shortly after pull request is merged extension will appear in vscode extensions - diff --git a/custom-words.txt b/custom-words.txt index 7e0a45f5..9250773c 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -20,3 +20,4 @@ vsix WIPO yosay Yoyodyne +xvfb diff --git a/dict-extensions.code-workspace b/dict-extensions.code-workspace index 7ad3c58f..41db56f0 100644 --- a/dict-extensions.code-workspace +++ b/dict-extensions.code-workspace @@ -3,6 +3,9 @@ { "path": "." }, + { + "path": "test-runner" + }, { "path": "extensions/arabic" }, diff --git a/extensions/arabic/package.json b/extensions/arabic/package.json index 988931ec..ef833cd8 100644 --- a/extensions/arabic/package.json +++ b/extensions/arabic/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/README-ar.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-ar": "^1.1.0" diff --git a/extensions/arabic/samples/cspell.json b/extensions/arabic/samples/cspell.json index e500636b..3e115002 100644 --- a/extensions/arabic/samples/cspell.json +++ b/extensions/arabic/samples/cspell.json @@ -1,4 +1,5 @@ { + "language": "ar,en", "words": [ "Ayaspell", "myspell" diff --git a/extensions/arabic/src/extension.ts b/extensions/arabic/src/extension.ts index 87b21ee9..e9bd8175 100644 --- a/extensions/arabic/src/extension.ts +++ b/extensions/arabic/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_arabic.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_arabic.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_arabic.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_arabic.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_arabic.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/arabic/test/extension.test.ts b/extensions/arabic/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/arabic/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/arabic/test/index.ts b/extensions/arabic/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/arabic/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/arabic/vsc-extension-quickstart.md b/extensions/arabic/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/arabic/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/australian-english/package.json b/extensions/australian-english/package.json index a2262c1f..2a242d3e 100644 --- a/extensions/australian-english/package.json +++ b/extensions/australian-english/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs .", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-en-au": "^1.0.3" diff --git a/extensions/australian-english/samples/seattle.md b/extensions/australian-english/samples/seattle.md index b333a6d5..bc69a6ee 100644 --- a/extensions/australian-english/samples/seattle.md +++ b/extensions/australian-english/samples/seattle.md @@ -8,4 +8,6 @@ The Seattle area was inhabited by Native Americans for at least 4,000 years befo diff --git a/extensions/australian-english/src/extension.ts b/extensions/australian-english/src/extension.ts index e7951ebf..0a3af4c4 100644 --- a/extensions/australian-english/src/extension.ts +++ b/extensions/australian-english/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_australian-english.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_australian-english.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_australian-english.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_australian-english.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_australian-english.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/australian-english/test/extension.test.ts b/extensions/australian-english/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/australian-english/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/australian-english/test/index.ts b/extensions/australian-english/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/australian-english/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/austrian-german/package.json b/extensions/austrian-german/package.json index fec9ca99..123743b9 100644 --- a/extensions/austrian-german/package.json +++ b/extensions/austrian-german/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs .", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-de-at": "^1.0.0" diff --git a/extensions/austrian-german/samples/sample1.md b/extensions/austrian-german/samples/sample1.md index 35ff2886..2d77658d 100644 --- a/extensions/austrian-german/samples/sample1.md +++ b/extensions/austrian-german/samples/sample1.md @@ -8,4 +8,5 @@ Verantwortlich für den Betrieb und die Unterhaltung des gesamten Kanals ist Rij diff --git a/extensions/austrian-german/samples/seattle.md b/extensions/austrian-german/samples/seattle.md index 3860993d..5533dcbd 100644 --- a/extensions/austrian-german/samples/seattle.md +++ b/extensions/austrian-german/samples/seattle.md @@ -26,4 +26,7 @@ Im Dezember 1999 kam es am Rande der WTO-Konferenz in Seattle in der Stadt zu he diff --git a/extensions/austrian-german/src/extension.ts b/extensions/austrian-german/src/extension.ts index 949989a8..918688e0 100644 --- a/extensions/austrian-german/src/extension.ts +++ b/extensions/austrian-german/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_austrian-german.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_austrian-german.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_austrian-german.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_austrian-german.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_austrian-german.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/austrian-german/test/extension.test.ts b/extensions/austrian-german/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/austrian-german/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/austrian-german/test/index.ts b/extensions/austrian-german/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/austrian-german/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/basque/package.json b/extensions/basque/package.json index 864be41e..a98e6186 100644 --- a/extensions/basque/package.json +++ b/extensions/basque/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-eu": "^1.0.0" diff --git a/extensions/basque/samples/cspell.json b/extensions/basque/samples/cspell.json index 6c34411d..7dd1dd49 100644 --- a/extensions/basque/samples/cspell.json +++ b/extensions/basque/samples/cspell.json @@ -1,4 +1,5 @@ { "language": "eu", - "minWordLength": 2 + "minWordLength": 2, + "ignorePaths": ["cspell.json"] } diff --git a/extensions/basque/src/extension.ts b/extensions/basque/src/extension.ts index ef7c207c..bcc55216 100644 --- a/extensions/basque/src/extension.ts +++ b/extensions/basque/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_basque.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_basque.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_basque.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_basque.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_basque.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/basque/test/extension.test.ts b/extensions/basque/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/basque/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/basque/test/index.ts b/extensions/basque/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/basque/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/british-english/package.json b/extensions/british-english/package.json index 8ffc6e8b..ec1c15cc 100644 --- a/extensions/british-english/package.json +++ b/extensions/british-english/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,9 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "npm run test:samples", - "test:samples": "cspell samples", - "test:bin": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs .", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-en-gb": "^4.1.21" diff --git a/extensions/british-english/src/extension.ts b/extensions/british-english/src/extension.ts index b6facfce..e099c628 100644 --- a/extensions/british-english/src/extension.ts +++ b/extensions/british-english/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_british-english.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_british-english.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_british-english.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_british-english.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_british-english.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/british-english/test/extension.test.ts b/extensions/british-english/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/british-english/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/british-english/test/index.ts b/extensions/british-english/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/british-english/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/bulgarian/package.json b/extensions/bulgarian/package.json index adcdf9a9..38d0df8c 100644 --- a/extensions/bulgarian/package.json +++ b/extensions/bulgarian/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle-bg.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-bg-bg": "^3.0.2" diff --git a/extensions/bulgarian/src/extension.ts b/extensions/bulgarian/src/extension.ts index d4249928..cefbb971 100644 --- a/extensions/bulgarian/src/extension.ts +++ b/extensions/bulgarian/src/extension.ts @@ -44,7 +44,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_bulgarian.enableBulgarian', () => enableBulgarian(true)), vscode.commands.registerCommand('cSpellExt_bulgarian.disableBulgarian', () => disableBulgarian(true)), vscode.commands.registerCommand('cSpellExt_bulgarian.enableBulgarianWorkspace', () => enableBulgarian(false)), - vscode.commands.registerCommand('cSpellExt_bulgarian.disableBulgarianWorkspace', () => disableBulgarian(false)) + vscode.commands.registerCommand('cSpellExt_bulgarian.disableBulgarianWorkspace', () => disableBulgarian(false)), ); } diff --git a/extensions/bulgarian/test/extension.test.ts b/extensions/bulgarian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/bulgarian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/bulgarian/test/index.ts b/extensions/bulgarian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/bulgarian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/bulgarian/vsc-extension-quickstart.md b/extensions/bulgarian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/bulgarian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/canadian-english/package.json b/extensions/canadian-english/package.json index 5ef448c7..4715a329 100644 --- a/extensions/canadian-english/package.json +++ b/extensions/canadian-english/package.json @@ -35,7 +35,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -74,7 +74,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-en-ca": "^1.0.3" diff --git a/extensions/canadian-english/src/extension.ts b/extensions/canadian-english/src/extension.ts index 6dc17cef..950852c1 100644 --- a/extensions/canadian-english/src/extension.ts +++ b/extensions/canadian-english/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_canadian-english.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_canadian-english.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_canadian-english.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_canadian-english.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_canadian-english.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/canadian-english/test/extension.test.ts b/extensions/canadian-english/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/canadian-english/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/canadian-english/test/index.ts b/extensions/canadian-english/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/canadian-english/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/catalan/package.json b/extensions/catalan/package.json index e3ea43be..a3e518fe 100644 --- a/extensions/catalan/package.json +++ b/extensions/catalan/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-ca": "^3.0.1" diff --git a/extensions/catalan/samples/seattle.md b/extensions/catalan/samples/seattle.md index 62b02254..bdf328d1 100644 --- a/extensions/catalan/samples/seattle.md +++ b/extensions/catalan/samples/seattle.md @@ -1,3 +1,7 @@ Seattle (pronunciació pronunciació (?·pàg.) | IPA: [siːˈætəl]) és la ciutat més gran de l'estat de Washington, al nord-oest dels Estats Units d'Amèrica, i la més gran de la costa oest al nord de San Francisco. La ciutat està situada en un istme estret que separa el llac Washington i un braç de l'oceà Pacífic conegut com a Puget Sound. Es troba a 155 quilòmetres al sud de la frontera entre els Estats Units i el Canadà i dins de Washington s'ubica al Comtat de King. Va ser fundada en la dècada de 1850, en territoris del cap indígena Seath'tl, a qui deu el seu nom. Seattle està en el centre econòmic de la regió coneguda com a "Greater Puget Sound". El seu sobrenom oficial és "La Ciutat Maragda" a causa dels boscos exuberants de la regió que l'envolta. Seattle és coneguda com a "Rainy City" (La Ciutat de la Pluja), encara que en realitat té menys pluja que moltes altres ciutats nord-americanes. La ciutat també és anomenada "Jet City", a causa de la gran influència del fabricant d'aeronaus Boeing. Econòmicament la ciutat destaca per les indústries punta i pel seu dinamisme. És considerada un dels millors llocs del país per iniciar negocis i un pol de desenvolupament sostenible. + + diff --git a/extensions/catalan/src/extension.ts b/extensions/catalan/src/extension.ts index 19d6c29e..1c1cb857 100644 --- a/extensions/catalan/src/extension.ts +++ b/extensions/catalan/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_catalan.enableCatalan', () => enable(true)), vscode.commands.registerCommand('cSpellExt_catalan.disableCatalan', () => disable(true)), vscode.commands.registerCommand('cSpellExt_catalan.enableCatalanWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_catalan.disableCatalanWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_catalan.disableCatalanWorkspace', () => disable(false)), ); // } diff --git a/extensions/catalan/test/extension.test.ts b/extensions/catalan/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/catalan/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/catalan/test/index.ts b/extensions/catalan/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/catalan/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/catalan/vsc-extension-quickstart.md b/extensions/catalan/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/catalan/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/croatian/package.json b/extensions/croatian/package.json index d7531564..229ccacb 100644 --- a/extensions/croatian/package.json +++ b/extensions/croatian/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/amsterdam.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-hr-hr": "^3.0.0" diff --git a/extensions/croatian/src/extension.ts b/extensions/croatian/src/extension.ts index 9c163a06..453208c6 100644 --- a/extensions/croatian/src/extension.ts +++ b/extensions/croatian/src/extension.ts @@ -44,7 +44,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_croatian.enableCroatian', () => enableCroatian(true)), vscode.commands.registerCommand('cSpellExt_croatian.disableCroatian', () => disableCroatian(true)), vscode.commands.registerCommand('cSpellExt_croatian.enableCroatianWorkspace', () => enableCroatian(false)), - vscode.commands.registerCommand('cSpellExt_croatian.disableCroatianWorkspace', () => disableCroatian(false)) + vscode.commands.registerCommand('cSpellExt_croatian.disableCroatianWorkspace', () => disableCroatian(false)), ); } diff --git a/extensions/croatian/test/extension.test.ts b/extensions/croatian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/croatian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/croatian/test/index.ts b/extensions/croatian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/croatian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/croatian/vsc-extension-quickstart.md b/extensions/croatian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/croatian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/czech/package.json b/extensions/czech/package.json index 818146ae..ce6cda40 100644 --- a/extensions/czech/package.json +++ b/extensions/czech/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-cs-cz": "^3.0.1" diff --git a/extensions/czech/samples/seattle.md b/extensions/czech/samples/seattle.md index 7ea6d003..4ea9490a 100644 --- a/extensions/czech/samples/seattle.md +++ b/extensions/czech/samples/seattle.md @@ -6,4 +6,7 @@ Seattlu se přezdívá Smaragdové město. Toto přízvisko vzniklo na počátku Město je považováno za kolébku hudebního stylu grunge a je rovněž pověstné velkou konzumací kávy.[8][9] Vznikly zde společnosti zabývající se prodejem kávy jako Starbucks, Seattle's Best Coffee či Tully's. V roce 1916 zde byla založena společnost Boeing, v současnosti jeden ze dvou největších výrobců letecké techniky na světě. Mezi další úspěšné společnosti ze Seattlu patří například Amazon.com nebo Microsoft. - + diff --git a/extensions/czech/src/extension.ts b/extensions/czech/src/extension.ts index a5c845f6..47946e75 100644 --- a/extensions/czech/src/extension.ts +++ b/extensions/czech/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_czech.enableCzech', () => enable(true)), vscode.commands.registerCommand('cSpellExt_czech.disableCzech', () => disable(true)), vscode.commands.registerCommand('cSpellExt_czech.enableCzechWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_czech.disableCzechWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_czech.disableCzechWorkspace', () => disable(false)), ); // } diff --git a/extensions/czech/test/extension.test.ts b/extensions/czech/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/czech/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/czech/test/index.ts b/extensions/czech/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/czech/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/czech/vsc-extension-quickstart.md b/extensions/czech/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/czech/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/danish/package.json b/extensions/danish/package.json index 3b0308e4..8daa41eb 100644 --- a/extensions/danish/package.json +++ b/extensions/danish/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-da-dk": "^3.0.0" diff --git a/extensions/danish/samples/seattle.md b/extensions/danish/samples/seattle.md index c8b46bcb..c269bb96 100644 --- a/extensions/danish/samples/seattle.md +++ b/extensions/danish/samples/seattle.md @@ -4,4 +4,7 @@ Byen har en stor og alsidig industri med nogle af USA's førende firmaer inden f Seattle er en velbesøgt turistby og med bl.a. University of Washington (1861) et stort uddannelsescenter. Byen er især kendt for sine mange kaffebarer og sin imponerende musikhistorie. Jazzmusikere som Quincy Jones og Ray Charles fik deres gennembrud mens de boede i byen. Byen er også fødested for Jimi Hendrix og den musikalske genre kaldet grunge, med bands som Pearl Jam, Nirvana og Soundgarden kommer fra Seattle. - + diff --git a/extensions/danish/src/extension.ts b/extensions/danish/src/extension.ts index 2d7977af..54a1796d 100644 --- a/extensions/danish/src/extension.ts +++ b/extensions/danish/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_danish.enableDanish', () => enable(true)), vscode.commands.registerCommand('cSpellExt_danish.disableDanish', () => disable(true)), vscode.commands.registerCommand('cSpellExt_danish.enableDanishWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_danish.disableDanishWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_danish.disableDanishWorkspace', () => disable(false)), ); // } diff --git a/extensions/danish/test/extension.test.ts b/extensions/danish/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/danish/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/danish/test/index.ts b/extensions/danish/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/danish/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/danish/vsc-extension-quickstart.md b/extensions/danish/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/danish/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/dutch/cSpell.json b/extensions/dutch/cSpell.json index 9e9363ec..14c7021a 100644 --- a/extensions/dutch/cSpell.json +++ b/extensions/dutch/cSpell.json @@ -11,5 +11,12 @@ ], "import": [ "./cspell-ext.json" + ], + "languageSettings": [ + { + "locale": "*", + "languageId": "*", + "caseSensitive": false + } ] } diff --git a/extensions/dutch/package.json b/extensions/dutch/package.json index 0b7950cd..7bd240ef 100644 --- a/extensions/dutch/package.json +++ b/extensions/dutch/package.json @@ -31,7 +31,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -71,7 +71,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-nl-nl": "^2.2.9" diff --git a/extensions/dutch/src/extension.ts b/extensions/dutch/src/extension.ts index 773d018d..9ec025a1 100644 --- a/extensions/dutch/src/extension.ts +++ b/extensions/dutch/src/extension.ts @@ -53,7 +53,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_dutch.enableDutch', () => enable(true)), vscode.commands.registerCommand('cSpellExt_dutch.disableDutch', () => disable(true)), vscode.commands.registerCommand('cSpellExt_dutch.enableDutchWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_dutch.disableDutchWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_dutch.disableDutchWorkspace', () => disable(false)), ); // } diff --git a/extensions/dutch/test/extension.test.ts b/extensions/dutch/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/dutch/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/dutch/test/index.ts b/extensions/dutch/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/dutch/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/dutch/vsc-extension-quickstart.md b/extensions/dutch/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/dutch/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/esperanto/package.json b/extensions/esperanto/package.json index f651a13e..2d43899d 100644 --- a/extensions/esperanto/package.json +++ b/extensions/esperanto/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-eo": "^3.0.1" diff --git a/extensions/esperanto/samples/seattle.md b/extensions/esperanto/samples/seattle.md index e9cde745..61c59890 100644 --- a/extensions/esperanto/samples/seattle.md +++ b/extensions/esperanto/samples/seattle.md @@ -6,4 +6,7 @@ Seatlo estas la plej multnombre loĝata urbo en nordokcidenta Usono, kaj la admi Kromnomata la “smeralda urbo”, Seatlo estas la sidejo de mondfamaj kompanioj kiel Starbucks kaj Amazon.com (kaj, ĝis 2001, Boeing). Cetere, la sidejo de Microsoft estas en Redmond apud Seatlo. Seatlo estas ankaŭ konata kiel hejmo de alternativa muziko kaj bona kafo. La plej rekonebla konstruaĵo de Seatlo estas la Spacnadlo (Space Needle), konstruita pro la Internacia ekspozicio de 1962, Ekspozicio Jarcento 21. La profesiaj sportteamoj estas la Mariners (bazpilko), Seahawks (usona futbalo), Storm (korbopilko (ina)), kaj Sounders (asocia futbalo). - + diff --git a/extensions/esperanto/src/extension.ts b/extensions/esperanto/src/extension.ts index 3c515626..d9aeabf0 100644 --- a/extensions/esperanto/src/extension.ts +++ b/extensions/esperanto/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_esperanto.enableEsperanto', () => enable(true)), vscode.commands.registerCommand('cSpellExt_esperanto.disableEsperanto', () => disable(true)), vscode.commands.registerCommand('cSpellExt_esperanto.enableEsperantoWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_esperanto.disableEsperantoWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_esperanto.disableEsperantoWorkspace', () => disable(false)), ); // } diff --git a/extensions/esperanto/test/extension.test.ts b/extensions/esperanto/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/esperanto/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/esperanto/test/index.ts b/extensions/esperanto/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/esperanto/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/esperanto/vsc-extension-quickstart.md b/extensions/esperanto/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/esperanto/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/estonian/package.json b/extensions/estonian/package.json index de2f0425..e7319aa8 100644 --- a/extensions/estonian/package.json +++ b/extensions/estonian/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -71,7 +71,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-et-ee": "^2.0.9" diff --git a/extensions/estonian/samples/seattle.md b/extensions/estonian/samples/seattle.md index f6c2cea9..270b9a5a 100644 --- a/extensions/estonian/samples/seattle.md +++ b/extensions/estonian/samples/seattle.md @@ -17,6 +17,7 @@ Seattle'i ajaloo suuremateks sündmusteks on olnud 1889. aaasta tuleekahju, 1909 diff --git a/extensions/estonian/src/extension.ts b/extensions/estonian/src/extension.ts index 731044c8..56dd37fa 100644 --- a/extensions/estonian/src/extension.ts +++ b/extensions/estonian/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_estonian.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_estonian.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_estonian.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_estonian.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_estonian.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/estonian/test/extension.test.ts b/extensions/estonian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/estonian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/estonian/test/index.ts b/extensions/estonian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/estonian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/estonian/vsc-extension-quickstart.md b/extensions/estonian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/estonian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/french-reforme/cspell.json b/extensions/french-reforme/cspell.json index 050954f0..60f71b5a 100644 --- a/extensions/french-reforme/cspell.json +++ b/extensions/french-reforme/cspell.json @@ -4,6 +4,7 @@ "language": "en,fr", "noConfigSearch": true, "import": ["./cspell-ext.json"], + "ignoreWords": ["seattle"], "overrides": [ { "filename": "*.md", diff --git a/extensions/french-reforme/package.json b/extensions/french-reforme/package.json index 683670c9..057862b1 100644 --- a/extensions/french-reforme/package.json +++ b/extensions/french-reforme/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-fr-reforme": "^2.2.2" diff --git a/extensions/french-reforme/src/extension.ts b/extensions/french-reforme/src/extension.ts index d520116c..e0657675 100644 --- a/extensions/french-reforme/src/extension.ts +++ b/extensions/french-reforme/src/extension.ts @@ -48,7 +48,7 @@ export async function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand(commandEnable, () => enable(true)), vscode.commands.registerCommand(commandDisable, () => disable(true)), vscode.commands.registerCommand(commandEnableWorkspace, () => enable(false)), - vscode.commands.registerCommand(commandDisableWorkspace, () => disable(false)) + vscode.commands.registerCommand(commandDisableWorkspace, () => disable(false)), ); } diff --git a/extensions/french-reforme/test/extension.test.ts b/extensions/french-reforme/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/french-reforme/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/french-reforme/test/index.ts b/extensions/french-reforme/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/french-reforme/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/french-reforme/vsc-extension-quickstart.md b/extensions/french-reforme/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/french-reforme/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/french/package.json b/extensions/french/package.json index 872effbf..7aed1258 100644 --- a/extensions/french/package.json +++ b/extensions/french/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-fr-fr": "^2.2.2" diff --git a/extensions/french/src/extension.ts b/extensions/french/src/extension.ts index 23c58ef6..87a1ff15 100644 --- a/extensions/french/src/extension.ts +++ b/extensions/french/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_french.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_french.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_french.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_french.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_french.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/french/test/extension.test.ts b/extensions/french/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/french/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/french/test/index.ts b/extensions/french/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/french/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/french/vsc-extension-quickstart.md b/extensions/french/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/french/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/german/package.json b/extensions/german/package.json index 2e0a7ad8..5b365674 100644 --- a/extensions/german/package.json +++ b/extensions/german/package.json @@ -31,7 +31,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -71,7 +71,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-de-de": "^3.1.0" diff --git a/extensions/german/src/extension.ts b/extensions/german/src/extension.ts index 586a9ba7..db58b129 100644 --- a/extensions/german/src/extension.ts +++ b/extensions/german/src/extension.ts @@ -47,7 +47,7 @@ export async function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand(commandEnable, () => enable(true)), vscode.commands.registerCommand(commandDisable, () => disable(true)), vscode.commands.registerCommand(commandEnableWorkspace, () => enable(false)), - vscode.commands.registerCommand(commandDisableWorkspace, () => disable(false)) + vscode.commands.registerCommand(commandDisableWorkspace, () => disable(false)), ); } diff --git a/extensions/german/test/extension.test.ts b/extensions/german/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/german/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/german/test/index.ts b/extensions/german/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/german/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/german/vsc-extension-quickstart.md b/extensions/german/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/german/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/greek/package.json b/extensions/greek/package.json index 67dec1bb..6ae0a210 100644 --- a/extensions/greek/package.json +++ b/extensions/greek/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-el": "^3.0.0" diff --git a/extensions/greek/samples/seattle.md b/extensions/greek/samples/seattle.md index 53da6a7f..422d0781 100644 --- a/extensions/greek/samples/seattle.md +++ b/extensions/greek/samples/seattle.md @@ -11,4 +11,6 @@ Μητροπολιτική περιοχή Το Σιάτλ είναι το κέντρο μιας μεγάλης μητροπολιτικής περιοχής που εκτείνεται στις πυκνοκατοικημένες ακτές του Πιούτζετ Σάουντ. Ο συνολικός πληθυσμός ξεπερνά τα 3 εκατομμύρια.[8] Άλλες σημαντικές πόλεις είναι οι Τακόμα, Μπελέβ, Έβερετ, Ρέντμοντ και Ολύμπια (η πρωτεύουσα της πολιτείας). - + diff --git a/extensions/greek/src/extension.ts b/extensions/greek/src/extension.ts index ce4331cf..0984bb43 100644 --- a/extensions/greek/src/extension.ts +++ b/extensions/greek/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_greek.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_greek.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_greek.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_greek.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_greek.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/greek/test/extension.test.ts b/extensions/greek/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/greek/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/greek/test/index.ts b/extensions/greek/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/greek/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/greek/vsc-extension-quickstart.md b/extensions/greek/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/greek/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/hebrew/cspell-ext.json b/extensions/hebrew/cspell-ext.json index 2a54fa5f..fb7174d9 100644 --- a/extensions/hebrew/cspell-ext.json +++ b/extensions/hebrew/cspell-ext.json @@ -1,3 +1,3 @@ { - "import": ["cspell-dict-he/cspell-ext.json"] + "import": ["@cspell/dict-he/cspell-ext.json"] } diff --git a/extensions/hebrew/package-lock.json b/extensions/hebrew/package-lock.json index 228c23f5..67834869 100644 --- a/extensions/hebrew/package-lock.json +++ b/extensions/hebrew/package-lock.json @@ -9,155 +9,16 @@ "version": "1.0.4", "license": "GPL-3.0-or-later", "dependencies": { - "cspell-dict-he": "^1.1.0" + "@cspell/dict-he": "^3.0.0" }, "engines": { "vscode": "^1.67.0" } }, "node_modules/@cspell/dict-he": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/@cspell/dict-he/-/dict-he-1.0.20.tgz", - "integrity": "sha512-DvH0uNNl35BUrSVoAXwtS//p+u0IqspqTpCPvkAzH+xY/sNJPAlpyHUbW0OQ9fUFYIn4P7VoATi9SuR/wuYLLw==" - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cspell-dict-he": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cspell-dict-he/-/cspell-dict-he-1.1.0.tgz", - "integrity": "sha512-bIpAsdVHmecJb08MO1LjcVnVoMQwlfgVIHWv5IVX9aTFBe1J3QsdN7dx2BHwvizQcJT55jY/eNHfNVsD8/r96w==", - "dependencies": { - "@cspell/dict-he": "^1.0.20", - "configstore": "^5.0.1" - }, - "bin": { - "cspell-dict-he-link": "link.js", - "cspell-dict-he-unlink": "unlink.js" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-he/-/dict-he-3.0.0.tgz", + "integrity": "sha512-5Vd/aZ+S2OFR8BO2x211gZvxJ7GtLE2vcCi4yh+H6pJSFLlqvVJ92OGPKtlh1lrNqLabKFa/nSVvh1cucNo8qQ==" } } } diff --git a/extensions/hebrew/package.json b/extensions/hebrew/package.json index 23f6a2ba..f4a8fc27 100644 --- a/extensions/hebrew/package.json +++ b/extensions/hebrew/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,9 +72,11 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { - "cspell-dict-he": "^1.1.0" + "@cspell/dict-he": "^3.0.0" } } diff --git a/extensions/hebrew/samples/seattle.md b/extensions/hebrew/samples/seattle.md index 69c3f042..59c48665 100644 --- a/extensions/hebrew/samples/seattle.md +++ b/extensions/hebrew/samples/seattle.md @@ -18,3 +18,7 @@ בסביבות 1860 הגיעו לסיאטל לראשונה אוכלוסייה סינית. לאחר השלמת פרויקט הרכבת המחברת בין ימת סופיריור לטקומה ב-1883 נותרו רבים מהעובדים הסינים מובטלים. בחורף 1885 היה מחסור במקומות עבודה באזור, ובעקבות זאת התפתח מתח בין העובדים המקומיים לאוכלוסייה הסינית בשל כוח העבודה הזול שלהם. מתחים אלו הביאו אף להתפרצויות אלימות (אנ') נגד האוכלוסייה הסינית כמו טבח ב-7 בספטמבר 1885 סמוך לאיסקווה (אנ') והצתת מבנים ברובע הסיני ב-24 באוקטובר. ב-1900 היוותה האוכלוסייה האסייתית 4.2% מתוך האוכלוסייה. ב-1889 אירעה השריפה הגדולה של סיאטל (אנ') שכילתה אזור העסקים של סיאטל. זמן קצר לאחר השריפה צמחו במקום עסקים חדשים, כדוגמת חברת הכספים וושינגטון מיוצ'ואל (אנ'). בשנים 1893 עד 1897 חוותה ארצות הברית משבר כלכלי שנודע כהפאניקה של 1893 שפגע קשה בסיאטל. בסוף המאה ה-19 ותחילת המאה ה-20 שימשה סיאטל מרכז תחבורתי ונקודת אספקה לכורי הזהב באלסקה ויוקון. בעקבות זאת היא נהנתה מפריחה מחודשת ובתקופה זו קמו עסקים רבים. ב-1907 יסד ג'יימס קסיי את חברת אמריקן מסנג'ר שנודעה בהמשך כ-UPS. חברות נוספות שהוקמו בתקופה זו היו נורדסטרום ואדי באואר. סיאטל שכרה את שירותיה של חברת אדריכלות הנוף האחים אולמסטד לתכנון מערכת פארקים ושדרות בעיר. + + diff --git a/extensions/hebrew/src/extension.ts b/extensions/hebrew/src/extension.ts index 6b214cd2..b03be750 100644 --- a/extensions/hebrew/src/extension.ts +++ b/extensions/hebrew/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_hebrew.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_hebrew.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_hebrew.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_hebrew.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_hebrew.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/hebrew/test/extension.test.ts b/extensions/hebrew/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/hebrew/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/hebrew/test/index.ts b/extensions/hebrew/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/hebrew/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/hebrew/vsc-extension-quickstart.md b/extensions/hebrew/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/hebrew/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/hunspell-syntax/.vscode/launch.json b/extensions/hunspell-syntax/.vscode/launch.json index 8384213d..1890a9af 100644 --- a/extensions/hunspell-syntax/.vscode/launch.json +++ b/extensions/hunspell-syntax/.vscode/launch.json @@ -7,7 +7,7 @@ "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", - "args": ["--extensionDevelopmentPath=${workspaceRoot}" ] + "args": ["--extensionDevelopmentPath=${workspaceRoot}"] } ] -} \ No newline at end of file +} diff --git a/extensions/hunspell-syntax/cspell.json b/extensions/hunspell-syntax/cspell.json index c93be37d..8a847855 100644 --- a/extensions/hunspell-syntax/cspell.json +++ b/extensions/hunspell-syntax/cspell.json @@ -12,6 +12,6 @@ "custom-dictionary" ], "words": [], - "ignoreWords": [], + "ignoreWords": ["esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ"], "import": [] } diff --git a/extensions/hunspell-syntax/language-configuration.json b/extensions/hunspell-syntax/language-configuration.json index d3a0288b..3b6c81b3 100644 --- a/extensions/hunspell-syntax/language-configuration.json +++ b/extensions/hunspell-syntax/language-configuration.json @@ -4,11 +4,7 @@ "lineComment": "#" }, // symbols used as brackets - "brackets": [ - ["[", "]"] - ], + "brackets": [["[", "]"]], // symbols that are auto closed when typing - "autoClosingPairs": [ - ["[", "]"] - ] -} \ No newline at end of file + "autoClosingPairs": [["[", "]"]] +} diff --git a/extensions/hunspell-syntax/package.json b/extensions/hunspell-syntax/package.json index d1af71e7..4d78eb9c 100644 --- a/extensions/hunspell-syntax/package.json +++ b/extensions/hunspell-syntax/package.json @@ -68,6 +68,8 @@ "vscode:prepublish": "echo prepublish", "build": "echo build", "watch": "echo watch", - "test": "echo test" + "test:cspell": "cspell -c cspell.json samples", + "test:vscode": "echo OK - no code here.", + "test": "npm run test:cspell && npm run test:vscode" } } diff --git a/extensions/hunspell-syntax/samples/example.aff b/extensions/hunspell-syntax/samples/example.aff new file mode 100644 index 00000000..632751d1 --- /dev/null +++ b/extensions/hunspell-syntax/samples/example.aff @@ -0,0 +1,13 @@ +SET UTF-8 +TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ' + +REP 2 +REP f ph +REP ph f + +PFX A Y 1 +PFX A 0 re . + +SFX B Y 2 +SFX B 0 ed [^y] +SFX B y ied y diff --git a/extensions/hunspell-syntax/samples/example.dic b/extensions/hunspell-syntax/samples/example.dic new file mode 100644 index 00000000..e228043e --- /dev/null +++ b/extensions/hunspell-syntax/samples/example.dic @@ -0,0 +1,4 @@ +3 +hello +try/B +work/AB diff --git a/extensions/hunspell-syntax/syntaxes/aff.tmLanguage.json b/extensions/hunspell-syntax/syntaxes/aff.tmLanguage.json index 26275489..45f63d48 100644 --- a/extensions/hunspell-syntax/syntaxes/aff.tmLanguage.json +++ b/extensions/hunspell-syntax/syntaxes/aff.tmLanguage.json @@ -1,233 +1,231 @@ { - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "hunspell", - "patterns": [ - { "include": "#commands" }, - { "include": "#comments" }, - { "include": "#keywords" } - ], - "repository": { - "comments": { - "patterns": [ - { - "name": "comment.line", - "match": "#.*\\n" - } - ] - }, - "keywords": { - "patterns": [{ - "name": "keyword", - "comment": "Flags", - "match": "^\\s*(CHECKCOMPOUNDTRIPLE|SIMPLIFIEDTRIPLE|CHECKCOMPOUNDREP|FULLSTRIP|NOSPLITSUGS|MAXCPDSUGS|ONLYMAXDIFF|MAXDIFF|WARN|FORCEUCASE|FORBIDDENWORD|NOSUGGEST|COMPOUNDRULE|CHECKCOMPOUNDCASE|CHECKCOMPOUNDDUP)\\b" - }] - }, - "commands": { - "patterns": [ - { "include": "#command-string-string" }, - { "include": "#command-string" }, - { "include": "#command-regex" }, - { "include": "#command-variable" }, - { "include": "#FX" }, - { "include": "#AM" }, - { "include": "#flag-variable" }, - { "include": "#flag-number" }, - { "include": "#flag-string" }, - { "include": "#CHECKCOMPOUNDPATTERN" } - ] - }, - "command-string-string": { - "patterns": [ - { - "match": "^\\s*(REP|ICONV|OCONV)\\s+(\\S+)\\s+(\\S+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "string" }, - "3": { "name": "string" } - } - }, - { - "match": "^\\s*(REP|ICONV|OCONV)\\s+(\\d+)\\b", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "constant.numeric" } - } - } - ] - }, - "command-string": { - "patterns": [ - { - "match": "^\\s*(MAP)\\s+(\\d+)\\b", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "constant.numeric" } - } - }, - { - "match": "^\\s*(MAP)\\s+(\\S+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "string" } - } - } - ] - }, - "command-regex": { - "patterns": [ - { - "match": "^\\s*(BREAK)\\s+(\\d+)\\b", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "constant.numeric" } - } - }, - { - "match": "^\\s*(BREAK)\\s+(\\S+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "constant.regexp" } - } - } - ] - }, - "command-variable": { - "patterns": [ - { - "match": "^\\s*(AF)\\s+(\\d+)\\b", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "constant.numeric" } - } - }, - { - "match": "^\\s*(AF)\\s+(\\S+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "variable" } - } - } - ] - }, - "flag-variable": { - "patterns": [ - { - "match": "^\\s*(COMPOUNDBEGIN|COMPOUNDMIDDLE|COMPOUNDEND|COMPOUNDPERMITFLAG|ONLYINCOMPOUND|COMPOUNDFLAG|COMPOUNDFORBIDFLAG|SUBSTANDARD|WARN|KEEPCASE|FORBIDDENWORD|NOSUGGEST|NEEDAFFIX|CIRCUMFIX)\\s+(\\S+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "variable" } - } - } - ] - }, - "flag-number": { - "patterns": [ - { - "match": "^\\s*(COMPOUNDMIN|MAXNGRAMSUGS|COMPOUNDWORDMAX)\\s+(\\d+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "constant.numeric" } - } - } - ] - }, - "flag-string": { - "patterns": [ - { - "match": "^\\s*(SET|TRY|WORDCHARS|KEY|FLAG|LANG|IGNORE)\\s+(\\S+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "string" } - } - } - ] - }, + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "hunspell", + "patterns": [{ "include": "#commands" }, { "include": "#comments" }, { "include": "#keywords" }], + "repository": { + "comments": { + "patterns": [ + { + "name": "comment.line", + "match": "#.*\\n" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword", + "comment": "Flags", + "match": "^\\s*(CHECKCOMPOUNDTRIPLE|SIMPLIFIEDTRIPLE|CHECKCOMPOUNDREP|FULLSTRIP|NOSPLITSUGS|MAXCPDSUGS|ONLYMAXDIFF|MAXDIFF|WARN|FORCEUCASE|FORBIDDENWORD|NOSUGGEST|COMPOUNDRULE|CHECKCOMPOUNDCASE|CHECKCOMPOUNDDUP)\\b" + } + ] + }, + "commands": { + "patterns": [ + { "include": "#command-string-string" }, + { "include": "#command-string" }, + { "include": "#command-regex" }, + { "include": "#command-variable" }, + { "include": "#FX" }, + { "include": "#AM" }, + { "include": "#flag-variable" }, + { "include": "#flag-number" }, + { "include": "#flag-string" }, + { "include": "#CHECKCOMPOUNDPATTERN" } + ] + }, + "command-string-string": { + "patterns": [ + { + "match": "^\\s*(REP|ICONV|OCONV)\\s+(\\S+)\\s+(\\S+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "string" }, + "3": { "name": "string" } + } + }, + { + "match": "^\\s*(REP|ICONV|OCONV)\\s+(\\d+)\\b", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "constant.numeric" } + } + } + ] + }, + "command-string": { + "patterns": [ + { + "match": "^\\s*(MAP)\\s+(\\d+)\\b", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "constant.numeric" } + } + }, + { + "match": "^\\s*(MAP)\\s+(\\S+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "string" } + } + } + ] + }, + "command-regex": { + "patterns": [ + { + "match": "^\\s*(BREAK)\\s+(\\d+)\\b", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "constant.numeric" } + } + }, + { + "match": "^\\s*(BREAK)\\s+(\\S+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "constant.regexp" } + } + } + ] + }, + "command-variable": { + "patterns": [ + { + "match": "^\\s*(AF)\\s+(\\d+)\\b", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "constant.numeric" } + } + }, + { + "match": "^\\s*(AF)\\s+(\\S+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "variable" } + } + } + ] + }, + "flag-variable": { + "patterns": [ + { + "match": "^\\s*(COMPOUNDBEGIN|COMPOUNDMIDDLE|COMPOUNDEND|COMPOUNDPERMITFLAG|ONLYINCOMPOUND|COMPOUNDFLAG|COMPOUNDFORBIDFLAG|SUBSTANDARD|WARN|KEEPCASE|FORBIDDENWORD|NOSUGGEST|NEEDAFFIX|CIRCUMFIX)\\s+(\\S+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "variable" } + } + } + ] + }, + "flag-number": { + "patterns": [ + { + "match": "^\\s*(COMPOUNDMIN|MAXNGRAMSUGS|COMPOUNDWORDMAX)\\s+(\\d+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "constant.numeric" } + } + } + ] + }, + "flag-string": { + "patterns": [ + { + "match": "^\\s*(SET|TRY|WORDCHARS|KEY|FLAG|LANG|IGNORE)\\s+(\\S+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "string" } + } + } + ] + }, - "FX": { - "patterns": [ - { - "match": "^\\s*(SFX|PFX)\\s+(\\S+)\\s+(Y|N)\\s+(\\d+)\\b", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "variable" }, - "3": { "name": "constant" }, - "4": { "name": "constant.numeric" } - } - }, - { - "match": "^\\s*(SFX|PFX)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)(?:\\s+(\\S+))?", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "variable" }, - "3": { "name": "string" }, - "4": { "patterns": [{"include": "#sub"}]}, - "5": { "name": "constant.regexp"} - } - } - ] - }, - "CHECKCOMPOUNDPATTERN": { - "patterns": [ - { - "match": "^\\s*(CHECKCOMPOUNDPATTERN)\\s+(\\d+)\\b", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "constant.numeric" } - } - }, - { - "match": "^\\s*(CHECKCOMPOUNDPATTERN)\\s+(\\S+)\\s+(\\S+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "patterns": [{"include": "#sub"}]}, - "3": { "patterns": [{"include": "#sub"}]} - } - } - ] - }, - "AM": { - "patterns": [ - { - "match": "^\\s*(AM)\\s+(\\d+)\\b", - "captures": { - "1": { "name": "keyword" }, - "2": { "name": "constant.numeric" } - } - }, - { - "match": "^\\s*(AM)\\s+([^#]+)", - "captures": { - "1": { "name": "keyword" }, - "2": { "patterns": [{"include": "#AM-POS"}]} - } - } - ] - }, - "AM-POS": { - "patterns": [ - { - "match": "\\s*([^\\s:]+)([:])(\\S+)([^#]+)?", - "captures": { - "1": { "name": "keyword.control" }, - "2": { "name": "keyword.operator" }, - "3": { "name": "string" }, - "4": { "patterns": [{"include": "#AM-POS"}]} - } - } - ] - }, - "sub": { - "patterns": [ - { - "match": "([^/]+)?(?:([/])(.*))?", - "captures": { - "1": { "name": "string" }, - "2": { "name": "keyword.operator" }, - "3": { "name": "variable" } - } - } - ] - } - }, - "scopeName": "source.hunspell.aff" + "FX": { + "patterns": [ + { + "match": "^\\s*(SFX|PFX)\\s+(\\S+)\\s+(Y|N)\\s+(\\d+)\\b", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "variable" }, + "3": { "name": "constant" }, + "4": { "name": "constant.numeric" } + } + }, + { + "match": "^\\s*(SFX|PFX)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)(?:\\s+(\\S+))?", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "variable" }, + "3": { "name": "string" }, + "4": { "patterns": [{ "include": "#sub" }] }, + "5": { "name": "constant.regexp" } + } + } + ] + }, + "CHECKCOMPOUNDPATTERN": { + "patterns": [ + { + "match": "^\\s*(CHECKCOMPOUNDPATTERN)\\s+(\\d+)\\b", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "constant.numeric" } + } + }, + { + "match": "^\\s*(CHECKCOMPOUNDPATTERN)\\s+(\\S+)\\s+(\\S+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "patterns": [{ "include": "#sub" }] }, + "3": { "patterns": [{ "include": "#sub" }] } + } + } + ] + }, + "AM": { + "patterns": [ + { + "match": "^\\s*(AM)\\s+(\\d+)\\b", + "captures": { + "1": { "name": "keyword" }, + "2": { "name": "constant.numeric" } + } + }, + { + "match": "^\\s*(AM)\\s+([^#]+)", + "captures": { + "1": { "name": "keyword" }, + "2": { "patterns": [{ "include": "#AM-POS" }] } + } + } + ] + }, + "AM-POS": { + "patterns": [ + { + "match": "\\s*([^\\s:]+)([:])(\\S+)([^#]+)?", + "captures": { + "1": { "name": "keyword.control" }, + "2": { "name": "keyword.operator" }, + "3": { "name": "string" }, + "4": { "patterns": [{ "include": "#AM-POS" }] } + } + } + ] + }, + "sub": { + "patterns": [ + { + "match": "([^/]+)?(?:([/])(.*))?", + "captures": { + "1": { "name": "string" }, + "2": { "name": "keyword.operator" }, + "3": { "name": "variable" } + } + } + ] + } + }, + "scopeName": "source.hunspell.aff" } diff --git a/extensions/hunspell-syntax/syntaxes/dic.tmLanguage.json b/extensions/hunspell-syntax/syntaxes/dic.tmLanguage.json index 5b4fe781..d05d6f0b 100644 --- a/extensions/hunspell-syntax/syntaxes/dic.tmLanguage.json +++ b/extensions/hunspell-syntax/syntaxes/dic.tmLanguage.json @@ -1,7 +1,7 @@ { - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "hunspell", - "patterns": [ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "hunspell", + "patterns": [ { "match": "^\\s*\\d+\\s*$", "name": "constant.numeric" @@ -15,5 +15,5 @@ } } ], - "scopeName": "source.hunspell.dic" -} \ No newline at end of file + "scopeName": "source.hunspell.dic" +} diff --git a/extensions/italian/package.json b/extensions/italian/package.json index 474cf1a1..bf31926f 100644 --- a/extensions/italian/package.json +++ b/extensions/italian/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-it-it": "^3.0.1" diff --git a/extensions/italian/samples/seattle.md b/extensions/italian/samples/seattle.md index 4bbbfe61..e68a21aa 100644 --- a/extensions/italian/samples/seattle.md +++ b/extensions/italian/samples/seattle.md @@ -9,4 +9,5 @@ La lavorazione del legno è stata la prima grande industria di Seattle, ma verso Seattle ha una storia musicale degna di nota. Dal 1918 al 1951 esistevano quasi due dozzine di locali notturni jazz lungo Jackson Street, dall'attuale Chinatown / Distretto Internazionale al Distretto Centrale. La scena jazz sviluppò le prime carriere di Ray Charles, Quincy Jones, Ernestine Anderson ed altri. Seattle è anche la città natale del musicista rock Jimi Hendrix, così come i gruppi Nirvana, Pearl Jam, Soundgarden, Alice in Chains, Foo Fighters ed il movimento rock alternativo grunge.[5] diff --git a/extensions/italian/src/extension.ts b/extensions/italian/src/extension.ts index 9e23e402..7f428a6a 100644 --- a/extensions/italian/src/extension.ts +++ b/extensions/italian/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_italian.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_italian.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_italian.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_italian.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_italian.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/italian/test/extension.test.ts b/extensions/italian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/italian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/italian/test/index.ts b/extensions/italian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/italian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/italian/vsc-extension-quickstart.md b/extensions/italian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/italian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/latvian/package.json b/extensions/latvian/package.json index f4ff7ce7..0c5fa3f9 100644 --- a/extensions/latvian/package.json +++ b/extensions/latvian/package.json @@ -31,7 +31,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -70,9 +70,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "npm run test:samples", - "test:samples": "cspell samples", - "test:bin": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-lv": "^1.0.0" diff --git a/extensions/latvian/test/extension.test.ts b/extensions/latvian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/latvian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/latvian/test/index.ts b/extensions/latvian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/latvian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/lithuanian/package.json b/extensions/lithuanian/package.json index 13aa4358..0c3b36ab 100644 --- a/extensions/lithuanian/package.json +++ b/extensions/lithuanian/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-lt-lt": "^3.0.0" diff --git a/extensions/lithuanian/samples/seattle.md b/extensions/lithuanian/samples/seattle.md index 48610c8d..a8594dd3 100644 --- a/extensions/lithuanian/samples/seattle.md +++ b/extensions/lithuanian/samples/seattle.md @@ -5,3 +5,7 @@ Sietlas (angl. Seattle) – miestas šiaurės vakarų JAV, priklauso Vašingtono 1960 ir 1962 m. čia vyko Pasaulinė paroda. Sietlo priemiestyje Redmonde yra „Microsoft“ kompanijos būstinė. + + diff --git a/extensions/lithuanian/src/extension.ts b/extensions/lithuanian/src/extension.ts index a6d598b7..17186dfb 100644 --- a/extensions/lithuanian/src/extension.ts +++ b/extensions/lithuanian/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_lithuanian.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_lithuanian.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_lithuanian.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_lithuanian.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_lithuanian.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/lithuanian/test/extension.test.ts b/extensions/lithuanian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/lithuanian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/lithuanian/test/index.ts b/extensions/lithuanian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/lithuanian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/medical-terms/package.json b/extensions/medical-terms/package.json index e6638139..b31e0678 100644 --- a/extensions/medical-terms/package.json +++ b/extensions/medical-terms/package.json @@ -26,7 +26,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": {}, "extensionDependencies": [ "streetsidesoftware.code-spell-checker" @@ -47,7 +47,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/README.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-medicalterms": "^4.1.0" diff --git a/extensions/medical-terms/test/extension.test.ts b/extensions/medical-terms/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/medical-terms/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/medical-terms/test/index.ts b/extensions/medical-terms/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/medical-terms/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/medical-terms/test/sample.md b/extensions/medical-terms/test/sample.md deleted file mode 100644 index f93c4e9c..00000000 --- a/extensions/medical-terms/test/sample.md +++ /dev/null @@ -1,26 +0,0 @@ -# Medical Terms - -## Random terms - -abdominal -abdominale -abdominales -abdominalia -abdominalis -abdominally -abdominals -abdominis -abdominocardiac -abdominocentesis -abdominocystic -abdominogenital -abdominohysterectomy -abdominohysterotomy -abdominojugular -abdominopelvic -abdominoperineal -abdominoperitoneal -abdominoperitoneum -abdominoplasties - - diff --git a/extensions/medical-terms/vsc-extension-quickstart.md b/extensions/medical-terms/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/medical-terms/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/norwegian-bokmal/package.json b/extensions/norwegian-bokmal/package.json index d0a7b5f3..37ca0e59 100644 --- a/extensions/norwegian-bokmal/package.json +++ b/extensions/norwegian-bokmal/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,9 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "npm run test:samples", - "test:samples": "cspell samples", - "test:bin": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/norge.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-nb-no": "^2.0.0" diff --git a/extensions/norwegian-bokmal/src/extension.ts b/extensions/norwegian-bokmal/src/extension.ts index ad7f276b..8e68ba08 100644 --- a/extensions/norwegian-bokmal/src/extension.ts +++ b/extensions/norwegian-bokmal/src/extension.ts @@ -44,7 +44,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_norwegian-bokmal.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_norwegian-bokmal.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_norwegian-bokmal.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_norwegian-bokmal.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_norwegian-bokmal.disableWorkspace', () => disable(false)), ); } diff --git a/extensions/norwegian-bokmal/test/extension.test.ts b/extensions/norwegian-bokmal/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/norwegian-bokmal/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/norwegian-bokmal/test/index.ts b/extensions/norwegian-bokmal/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/norwegian-bokmal/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/persian/package.json b/extensions/persian/package.json index e39dcceb..0e318527 100644 --- a/extensions/persian/package.json +++ b/extensions/persian/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-fa-ir": "^3.0.0" diff --git a/extensions/persian/samples/seattle.md b/extensions/persian/samples/seattle.md index 2f9faf68..6493effd 100644 --- a/extensions/persian/samples/seattle.md +++ b/extensions/persian/samples/seattle.md @@ -3,3 +3,7 @@ [سیاتل - ویکی‌پدیا، دانشنامهٔ آزاد](https://fa.wikipedia.org/wiki/%D8%B3%DB%8C%D8%A7%D8%AA%D9%84) سیاتل (انگلیسی: Seattle) یک شهر ساحلی در شمال غربی ایالات متحده آمریکا است. سیاتل در شهرستان کینگ ایالت واشینگتن قرار دارد. این شهر با جمعیت ۷۳۷۰۱۵ نفر در سال ۲۰۲۰، بزرگترین شهر در ایالت واشینگتن و منطقه شمال غربی اقیانوس آرام در آمریکای شمالی است. جمعیت منطقه شهری سیاتل ۴٫۰۲ میلیون نفر است که پانزدهمین منطقه بزرگ در ایالات متحده است. نرخ رشد جمعیتی ۲۱٫۱ درصدی آن بین سال‌های ۲۰۱۰ تا ۲۰۲۰، آن را به یکی از پرشتاب‌ترین شهرهای بزرگ آمریکا تبدیل کرده‌است. سیاتل یک باریکه خاکی است که بین دریاراه پیوجت ساند (یک ورودی اقیانوس آرام) و دریاچه واشینگتن واقع شده‌است. این شمالی‌ترین شهر بزرگ ایالات متحده است که در حدود ۱۶۰ کیلومتری جنوب مرز کانادا قرار دارد. سیاتل یک دروازه بزرگ برای تجارت با شرق آسیا، چهارمین بندر بزرگ در آمریکای شمالی از نظر جابجایی کانتینر از سال ۲۰۲۱ است. منطقه سیاتل برای حداقل ۴۰۰۰ سال قبل از اولین ورود مهاجران دائمی اروپایی، توسط بومیان آمریکا به عنوان محل زندگی انتخاب شده بود. آرتور ای. دنی و گروه مسافرانش که متعاقباً به عنوان حزب دنی شناخته می‌شوند، از ایلینوی از طریق پورتلند وارد این منطقه شدند. این شهرک به ساحل شرقی خلیج الیوت منتقل شد و در سال ۱۸۵۲ به افتخار رئیس سیاحل قبایل محلی دوامیش و سوکوامیش، «سیاتل» نامگذاری شد. امروزه، سیاتل دارای جمعیت بالایی از بومیان، اسکاندیناوی‌ها، آسیایی-آمریکایی‌ها و آفریقایی-آمریکایی‌ها، و همچنین جامعه دگرباشان جنسی پر رونق است که از نظر جمعیت در رتبه ششم ایالات متحده قرار دارد. + + diff --git a/extensions/persian/src/extension.ts b/extensions/persian/src/extension.ts index c490a0e1..c3b75e61 100644 --- a/extensions/persian/src/extension.ts +++ b/extensions/persian/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_persian.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_persian.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_persian.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_persian.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_persian.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/persian/test/extension.test.ts b/extensions/persian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/persian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/persian/test/index.ts b/extensions/persian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/persian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/persian/vsc-extension-quickstart.md b/extensions/persian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/persian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/polish/package.json b/extensions/polish/package.json index 7454eb56..7c801f37 100644 --- a/extensions/polish/package.json +++ b/extensions/polish/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-pl_pl": "^3.0.0" diff --git a/extensions/polish/samples/seattle.md b/extensions/polish/samples/seattle.md index 106ca81c..b617c656 100644 --- a/extensions/polish/samples/seattle.md +++ b/extensions/polish/samples/seattle.md @@ -10,5 +10,5 @@ Nazwa miasta pochodzi od zniekształcenia imienia Si’ahl, wodza okolicznych pl W czerwcu 1889 centrum miasta uległo pożarowi nazwanemu The Great Seattle Fire. Władze miasta podjęły dwie ważne decyzje związane z odbudową[4]. Po pierwsze wszystkie nowe budynki musiały powstać z kamienia lub cegły, po drugie powinny one być wyższe przynajmniej o jedno piętro niż poprzednie. W ciągu kolejnych lat nowe drogi budowano od 3,7 do nawet 9 metrów wyżej niż poprzednie, było to podyktowane wysokim poziomem wód gruntowych. Tak właśnie w Seattle powstały charakterystyczne piwnice. Spacerując obecnie po centrum Seattle, przechodzień znajdzie się często na zewnątrz na poziomie drugiego piętra. Żaden z budynków Seattle pierwotnie nie posiadał piwnic. Jeszcze do dziś w „piwnicach” istnieją dawne witryny sklepów i widoczne są okna instytucji i mieszkań. diff --git a/extensions/polish/src/extension.ts b/extensions/polish/src/extension.ts index 2fb35477..30648515 100644 --- a/extensions/polish/src/extension.ts +++ b/extensions/polish/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_polish.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_polish.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_polish.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_polish.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_polish.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/polish/test/extension.test.ts b/extensions/polish/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/polish/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/polish/test/index.ts b/extensions/polish/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/polish/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/portuguese-brazilian/package.json b/extensions/portuguese-brazilian/package.json index ba01ad45..a22c1095 100644 --- a/extensions/portuguese-brazilian/package.json +++ b/extensions/portuguese-brazilian/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/Seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-pt-br": "^2.2.0" diff --git a/extensions/portuguese-brazilian/src/extension.ts b/extensions/portuguese-brazilian/src/extension.ts index 4239c9b6..7a980285 100644 --- a/extensions/portuguese-brazilian/src/extension.ts +++ b/extensions/portuguese-brazilian/src/extension.ts @@ -43,17 +43,17 @@ export function activate(context: vscode.ExtensionContext) { // client can be deactivated on extension deactivation context.subscriptions.push( vscode.commands.registerCommand('cSpellExt_portuguese-brazilian.enablePortuguese_brazilian', () => - enable(true) + enable(true), ), vscode.commands.registerCommand('cSpellExt_portuguese-brazilian.disablePortuguese_brazilian', () => - disable(true) + disable(true), ), vscode.commands.registerCommand('cSpellExt_portuguese-brazilian.enablePortuguese_brazilianWorkspace', () => - enable(false) + enable(false), ), vscode.commands.registerCommand('cSpellExt_portuguese-brazilian.disablePortuguese_brazilianWorkspace', () => - disable(false) - ) + disable(false), + ), ); } diff --git a/extensions/portuguese-brazilian/test/extension.test.ts b/extensions/portuguese-brazilian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/portuguese-brazilian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/portuguese-brazilian/test/index.ts b/extensions/portuguese-brazilian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/portuguese-brazilian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/portuguese-brazilian/vsc-extension-quickstart.md b/extensions/portuguese-brazilian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/portuguese-brazilian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/portuguese/package.json b/extensions/portuguese/package.json index 36d16f7f..77265c48 100644 --- a/extensions/portuguese/package.json +++ b/extensions/portuguese/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-pt-pt": "^3.0.0" diff --git a/extensions/portuguese/samples/seattle.md b/extensions/portuguese/samples/seattle.md index 3c419a6f..cb434878 100644 --- a/extensions/portuguese/samples/seattle.md +++ b/extensions/portuguese/samples/seattle.md @@ -5,3 +5,6 @@ A área metropolitana de Seattle, com um pouco mais de quatro milhões de habita A área de Seattle foi habitada por nativos americanos por, pelo menos, quatro mil anos antes do primeiro assentamento permanente de colonizadores.[3] O assentamento foi movido para o local atual e nomeado "Seattle", em 1853, em homenagem ao chefe Seattle. Seattle, por si, tem um histórico musical notável. Foi na cidade que surgiram artistas de jazz, como Ray Charles, Quincy Jones, Ernestine Anderson, entre outros. Seattle também é cidade natal do guitarrista Jimi Hendrix, e do estilo musical "grunge", que ficou famoso pelas bandas locais Nirvana, Pearl Jam, Soundgarden e Alice in Chains. A cidade também é famosa pelos seus artistas de hip hop, como os rappers Sir Mix-A-Lot e Macklemore. + diff --git a/extensions/portuguese/src/extension.ts b/extensions/portuguese/src/extension.ts index 4593bd45..eb85d37a 100644 --- a/extensions/portuguese/src/extension.ts +++ b/extensions/portuguese/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_portuguese.enablePortuguese', () => enable(true)), vscode.commands.registerCommand('cSpellExt_portuguese.disablePortuguese', () => disable(true)), vscode.commands.registerCommand('cSpellExt_portuguese.enablePortugueseWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_portuguese.disablePortugueseWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_portuguese.disablePortugueseWorkspace', () => disable(false)), ); // } diff --git a/extensions/portuguese/test/extension.test.ts b/extensions/portuguese/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/portuguese/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/portuguese/test/index.ts b/extensions/portuguese/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/portuguese/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/portuguese/vsc-extension-quickstart.md b/extensions/portuguese/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/portuguese/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/romanian/package.json b/extensions/romanian/package.json index 87dc9cbb..365d1f98 100644 --- a/extensions/romanian/package.json +++ b/extensions/romanian/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -71,9 +71,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "npm run test:samples", - "test:samples": "cspell samples", - "test:bin": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-ro-ro": "^1.0.0" diff --git a/extensions/romanian/test/extension.test.ts b/extensions/romanian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/romanian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/romanian/test/index.ts b/extensions/romanian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/romanian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/russian/package.json b/extensions/russian/package.json index 7de1527e..478042da 100644 --- a/extensions/russian/package.json +++ b/extensions/russian/package.json @@ -24,7 +24,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -64,7 +64,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/portland.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-ru_ru": "^2.1.0" diff --git a/extensions/russian/src/extension.ts b/extensions/russian/src/extension.ts index 20247d4c..1d254616 100644 --- a/extensions/russian/src/extension.ts +++ b/extensions/russian/src/extension.ts @@ -47,7 +47,7 @@ export async function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand(commandEnable, () => enable(true)), vscode.commands.registerCommand(commandDisable, () => disable(true)), vscode.commands.registerCommand(commandEnableWorkspace, () => enable(false)), - vscode.commands.registerCommand(commandDisableWorkspace, () => disable(false)) + vscode.commands.registerCommand(commandDisableWorkspace, () => disable(false)), ); } diff --git a/extensions/russian/test/extension.test.ts b/extensions/russian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/russian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/russian/test/index.ts b/extensions/russian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/russian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/russian/vsc-extension-quickstart.md b/extensions/russian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/russian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/scientific-terms/package.json b/extensions/scientific-terms/package.json index 156c5ea9..af223935 100644 --- a/extensions/scientific-terms/package.json +++ b/extensions/scientific-terms/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [] }, @@ -55,7 +55,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/README.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-scientific-terms-us": "^3.0.0" diff --git a/extensions/scientific-terms/samples/README.md b/extensions/scientific-terms/samples/README.md new file mode 100644 index 00000000..5d8c5b36 --- /dev/null +++ b/extensions/scientific-terms/samples/README.md @@ -0,0 +1,43 @@ +# Sample words + +Aachnoideus +Aades +aagaardi +Aagaardia +aageodonta +Aages +aagilis +aaiunense +Aaka +Aalatettix +aalborgi +Aalbu +aalbui +aalge +aaliensis +aana +aanafizzga +Aancistroger +aaptis +Aaptolasma +Aaptos +Aaptosyax +aaptus +aar +aardahli +aarhusense +aaron +aaron-rossii +aaronalis +aaroni +Aaroniella +aaronii +aaronis +Aaronsohnia +aaronsohnii +Aarskog +Aarskog's +aartseni +aasa +Aase +aaseae diff --git a/extensions/scientific-terms/samples/cspell.json b/extensions/scientific-terms/samples/cspell.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/extensions/scientific-terms/samples/cspell.json @@ -0,0 +1 @@ +{} diff --git a/extensions/scientific-terms/test/extension.test.ts b/extensions/scientific-terms/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/scientific-terms/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/scientific-terms/test/index.ts b/extensions/scientific-terms/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/scientific-terms/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/scientific-terms/vsc-extension-quickstart.md b/extensions/scientific-terms/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/scientific-terms/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/serbian/cspell.json b/extensions/serbian/cspell.json new file mode 100644 index 00000000..ceeb0608 --- /dev/null +++ b/extensions/serbian/cspell.json @@ -0,0 +1,5 @@ +{ + "words": [ + "Београд" + ] +} diff --git a/extensions/serbian/package.json b/extensions/serbian/package.json index 854af334..5eba7306 100644 --- a/extensions/serbian/package.json +++ b/extensions/serbian/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -87,7 +87,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/Београд.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-sr-cyrl": "^1.1.0", diff --git a/extensions/serbian/src/extension.ts b/extensions/serbian/src/extension.ts index 9c5743df..f1cd70cf 100644 --- a/extensions/serbian/src/extension.ts +++ b/extensions/serbian/src/extension.ts @@ -53,7 +53,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_serbian.disableCyrl', () => disable(true, localeCyrl)), vscode.commands.registerCommand('cSpellExt_serbian.disableLatn', () => disable(true, localeLatn)), vscode.commands.registerCommand('cSpellExt_serbian.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_serbian.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_serbian.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/serbian/test/extension.test.ts b/extensions/serbian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/serbian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/serbian/test/index.ts b/extensions/serbian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/serbian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/slovak/package.json b/extensions/slovak/package.json index 05d660fa..f5d8f170 100644 --- a/extensions/slovak/package.json +++ b/extensions/slovak/package.json @@ -32,7 +32,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-sk-sk": "^1.1.0" diff --git a/extensions/slovak/samples/seattle.md b/extensions/slovak/samples/seattle.md index 021a681f..dadc4131 100644 --- a/extensions/slovak/samples/seattle.md +++ b/extensions/slovak/samples/seattle.md @@ -2,8 +2,8 @@ Seattle je najväčšie mesto na severozápadnom pobreží Spojených štátov amerických. Nachádza sa v štáte Washington v King County, 174 km južne od štátnej hranice s Kanadou. S rozlohou 369,2 km² a počtom obyvateľov 574-tisíc má podobnú veľkosť ako Bratislava, ale tvorí metropolitnú oblasť, v ktorej žije až 3,8 milióna obyvateľov. -Seattle je považované za rodisko hudobného a životného štýlu grunge. Je tu aj rokenrolová sieň slávy. +Seattle je považované za rodisko hudobného a životného štýlu grunge. Je tu aj rokenrolová sieň slávy. diff --git a/extensions/slovak/src/extension.ts b/extensions/slovak/src/extension.ts index 3b941d31..bd5fe038 100644 --- a/extensions/slovak/src/extension.ts +++ b/extensions/slovak/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_slovak.enableSlovak', () => enable(true)), vscode.commands.registerCommand('cSpellExt_slovak.disableSlovak', () => disable(true)), vscode.commands.registerCommand('cSpellExt_slovak.enableSlovakWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_slovak.disableSlovakWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_slovak.disableSlovakWorkspace', () => disable(false)), ); // } diff --git a/extensions/slovak/test/extension.test.ts b/extensions/slovak/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/slovak/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/slovak/test/index.ts b/extensions/slovak/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/slovak/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/slovak/vsc-extension-quickstart.md b/extensions/slovak/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/slovak/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/slovenian/package.json b/extensions/slovenian/package.json index f96f283f..b4a664b8 100644 --- a/extensions/slovenian/package.json +++ b/extensions/slovenian/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/Ljubljana.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-sl-si": "^1.0.4" diff --git a/extensions/slovenian/src/extension.ts b/extensions/slovenian/src/extension.ts index c3d1958a..e6ba1921 100644 --- a/extensions/slovenian/src/extension.ts +++ b/extensions/slovenian/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_slovenian.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_slovenian.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_slovenian.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_slovenian.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_slovenian.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/slovenian/test/extension.test.ts b/extensions/slovenian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/slovenian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/slovenian/test/index.ts b/extensions/slovenian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/slovenian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/slovenian/vsc-extension-quickstart.md b/extensions/slovenian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/slovenian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/spanish/package.json b/extensions/spanish/package.json index 4f3444dd..a87dd78a 100644 --- a/extensions/spanish/package.json +++ b/extensions/spanish/package.json @@ -25,7 +25,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -64,7 +64,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-es-es": "^2.2.6" diff --git a/extensions/spanish/src/extension.ts b/extensions/spanish/src/extension.ts index 6524ddca..e3d4da53 100644 --- a/extensions/spanish/src/extension.ts +++ b/extensions/spanish/src/extension.ts @@ -45,7 +45,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpell.enableSpanish', () => enable(true)), vscode.commands.registerCommand('cSpell.disableSpanish', () => disable(true)), vscode.commands.registerCommand('cSpell.enableSpanishWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpell.disableSpanishWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpell.disableSpanishWorkspace', () => disable(false)), ); } diff --git a/extensions/spanish/test/cspell.json b/extensions/spanish/test/cspell.json deleted file mode 100644 index c2f64454..00000000 --- a/extensions/spanish/test/cspell.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "language": "en,es-ES", - "import": [ - "../cspell-ext.json" - ], - "languageSettings": [ - { - "languageId": "markdown", - "caseSensitive": true - } - ], - "overrides": [ - { - "filename": "example-es.ts", - "caseSensitive": false - } - ] -} diff --git a/extensions/spanish/test/example-es.ts b/extensions/spanish/test/example-es.ts deleted file mode 100644 index f919785a..00000000 --- a/extensions/spanish/test/example-es.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * this is a TypeScript file with both Spanish and English words. - * It verifies that accents are not needed. - */ - -const seattleMd = ` -[Seattle - Wikipedia, la enciclopedia libre](https://es.wikipedia.org/wiki/Seattle) - -Seattle (/siːˈætəl/) es la ciudad más grande del estado de Washington, en el noroeste de los Estados Unidos de América. -El área metropolitana de la ciudad comprende Seattle-Tacoma-Bellevue, es la 15.ª más poblada del país y la mayor del Noroeste del Pacífico.​ -La ciudad esta situada entre el lago Washington y la bahía conocida como Puget Sound, junto al océano Pacífico. Se encuentra a 155 kilómetros al sur de la frontera entre Estados Unidos y Canadá. -Importante centro cultural, educativo y económico de la region, Seattle es sede del condado de King. -En el censo estimado de 2018, la ciudad contaba con una población municipal de 744,955 habitantes,​ por lo que es la vigésimo cuarta ciudad más poblada de los Estados Unidos, y con un área metropolitana de 3,263,497 habitantes. - -El área de Seattle lleva siendo habitada desde, al menos, 4.000 años,​ pero los primeros asentamientos europeos no llegaron hasta mediados del siglo XIX. -Los primeros colonos blancos permanentes fueron Arthur A. Denny y aquellos que posteriormente fueron conocidos como el Partido de Denny, que llegaron el 13 de noviembre de 1851. -Los primeros colonos de la zona fueron denominados "New York-Alki" y "Duwamps". En 1853, Doc Maynard sugirió que el asentamiento fuese renombrado a "Seattle", nombre del jefe de las dos tribus locales. -Desde 1869 hasta 1982, Seattle fue conocida como "Queen City" (La ciudad reina, en español). -El apodo actual y oficial de la ciudad es "Emerald City" (La ciudad esmeralda), como resultado de un concurso que tuvo lugar a comienzo de los años 1980,​ haciendo referencia con ello a los frondosos árboles de los alrededores. -Seattle es también conocida como "Gateway to Alaska" (La puerta a Alaska), "Rain City" (La ciudad de la lluvia)28​ y "Jet City", debido a la influencia de la multinacional Boeing, originaria y fundada en la ciudad. -`; - -/** - * cspell:locale es - * cspell:words seattle Tacoma Bellevue Puget Sound King kilometros - * cspell:words Denny Maynard tribus Alki Duwamps Queen Emerald - * cspell:ignore locale words siːˈætəl XIX - * cspell:words accents English Spanish verifies - */ - -const pacifico = 'Pacífico'; -const anos = 5; -const kilometros = 22; - -console.log(seattleMd); -console.log(pacifico); -console.log(anos); -console.log(kilometros); diff --git a/extensions/spanish/test/extension.test.ts b/extensions/spanish/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/spanish/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/spanish/test/index.ts b/extensions/spanish/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/spanish/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/spanish/test/sample.md b/extensions/spanish/test/sample.md deleted file mode 100644 index e7377398..00000000 --- a/extensions/spanish/test/sample.md +++ /dev/null @@ -1,13 +0,0 @@ -"¿Que si yo les envidio por estar allí arriba, en un palco para gente importante? -¡Para nada! Son ellos los que nos envidian a nosotros, que estamos aquí abajo. -Esto de aquí es Sanlúcar y esa zona VIP son gente de fuera. -Es así y ya estamos acostumbrados". -Entre la reivindicación y la resignación, el discurso de Carmen Roldán —una vivaracha sanluqueña de 57 años— se llena de 'aquí y allí', -de 'ellos y nosotros' cuando se le pregunta por los contrastes que se viven en plena playa de Bajo de Guía, durante el segundo día de la 172ª -edición de las Carreras de Caballos. El ambiente del lujo y la exclusividad que mueve este clásico deporte se cita en estos días, -juntos pero no revueltos, con la segunda ciudad más pobre de España. - - diff --git a/extensions/spanish/test/seattle.md b/extensions/spanish/test/seattle.md deleted file mode 100644 index a2006e68..00000000 --- a/extensions/spanish/test/seattle.md +++ /dev/null @@ -1,21 +0,0 @@ -[Seattle - Wikipedia, la enciclopedia libre](https://es.wikipedia.org/wiki/Seattle) - -Seattle (/siːˈætəl/) es la ciudad más grande del estado de Washington, en el noroeste de los Estados Unidos de América. -El área metropolitana de la ciudad comprende Seattle-Tacoma-Bellevue, es la 15.ª más poblada del país y la mayor del Noroeste del Pacífico.​ -La ciudad esta situada entre el lago Washington y la bahía conocida como Puget Sound, junto al océano Pacífico. Se encuentra a 155 kilómetros al sur de la frontera entre Estados Unidos y Canadá. -Importante centro cultural, educativo y económico de la region, Seattle es sede del condado de King. -En el censo estimado de 2018, la ciudad contaba con una población municipal de 744,955 habitantes,​ por lo que es la vigésimo cuarta ciudad más poblada de los Estados Unidos, y con un área metropolitana de 3,263,497 habitantes. - -El área de Seattle lleva siendo habitada desde, al menos, 4.000 años,​ pero los primeros asentamientos europeos no llegaron hasta mediados del siglo XIX. -Los primeros colonos blancos permanentes fueron Arthur A. Denny y aquellos que posteriormente fueron conocidos como el Partido de Denny, que llegaron el 13 de noviembre de 1851. -Los primeros colonos de la zona fueron denominados "New York-Alki" y "Duwamps". En 1853, Doc Maynard sugirió que el asentamiento fuese renombrado a "Seattle", nombre del jefe de las dos tribus locales. -Desde 1869 hasta 1982, Seattle fue conocida como "Queen City" (La ciudad reina, en español). -El apodo actual y oficial de la ciudad es "Emerald City" (La ciudad esmeralda), como resultado de un concurso que tuvo lugar a comienzo de los años 1980,​ haciendo referencia con ello a los frondosos árboles de los alrededores. -Seattle es también conocida como "Gateway to Alaska" (La puerta a Alaska), "Rain City" (La ciudad de la lluvia)28​ y "Jet City", debido a la influencia de la multinacional Boeing, originaria y fundada en la ciudad. - - diff --git a/extensions/spanish/vsc-extension-quickstart.md b/extensions/spanish/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/spanish/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/swedish/package.json b/extensions/swedish/package.json index 3fea4ae1..d1c7f620 100644 --- a/extensions/swedish/package.json +++ b/extensions/swedish/package.json @@ -31,7 +31,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -71,7 +71,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/Seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-sv": "^2.1.0" diff --git a/extensions/swedish/src/extension.ts b/extensions/swedish/src/extension.ts index c900a49c..03c58d13 100644 --- a/extensions/swedish/src/extension.ts +++ b/extensions/swedish/src/extension.ts @@ -52,7 +52,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand(commandEnable, () => enable(true)), vscode.commands.registerCommand(commandDisable, () => disable(true)), vscode.commands.registerCommand(commandEnableWorkspace, () => enable(false)), - vscode.commands.registerCommand(commandDisableWorkspace, () => disable(false)) + vscode.commands.registerCommand(commandDisableWorkspace, () => disable(false)), ); } diff --git a/extensions/swedish/test/extension.test.ts b/extensions/swedish/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/swedish/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/swedish/test/index.ts b/extensions/swedish/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/swedish/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/swedish/vsc-extension-quickstart.md b/extensions/swedish/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/swedish/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/swiss-german/package.json b/extensions/swiss-german/package.json index 590744a7..58980fc0 100644 --- a/extensions/swiss-german/package.json +++ b/extensions/swiss-german/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-de-ch": "^1.1.0" diff --git a/extensions/swiss-german/src/extension.ts b/extensions/swiss-german/src/extension.ts index 5fb6638a..f5256378 100644 --- a/extensions/swiss-german/src/extension.ts +++ b/extensions/swiss-german/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_swiss-german.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_swiss-german.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_swiss-german.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_swiss-german.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_swiss-german.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/swiss-german/test/extension.test.ts b/extensions/swiss-german/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/swiss-german/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/swiss-german/test/index.ts b/extensions/swiss-german/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/swiss-german/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/turkish/package.json b/extensions/turkish/package.json index 19f5f9aa..ce8662b6 100644 --- a/extensions/turkish/package.json +++ b/extensions/turkish/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,9 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "npm run test:samples", - "test:samples": "cspell samples", - "test:bin": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-tr-tr": "^3.0.0" diff --git a/extensions/turkish/src/extension.ts b/extensions/turkish/src/extension.ts index 75f53c93..fed30bf7 100644 --- a/extensions/turkish/src/extension.ts +++ b/extensions/turkish/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_turkish.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_turkish.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_turkish.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_turkish.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_turkish.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/turkish/test/extension.test.ts b/extensions/turkish/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/turkish/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/turkish/test/index.ts b/extensions/turkish/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/turkish/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/ukrainian/package.json b/extensions/ukrainian/package.json index b8b46c95..6e4546f0 100644 --- a/extensions/ukrainian/package.json +++ b/extensions/ukrainian/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,7 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-uk-ua": "^3.0.0" diff --git a/extensions/ukrainian/samples/seattle.md b/extensions/ukrainian/samples/seattle.md index dad8ab8f..37033ec5 100644 --- a/extensions/ukrainian/samples/seattle.md +++ b/extensions/ukrainian/samples/seattle.md @@ -13,3 +13,7 @@ Мешканці Сіетла відомі любов'ю до кави. Завдяки цьому в місті відкрились кавові компанії «Starbucks», «Seattle's Best Coffee», «Tully's Coffee». Також мається багато успішних незалежних кав'ярень. 1990 року в місті проводились Ігри Доброї волі. + + diff --git a/extensions/ukrainian/src/extension.ts b/extensions/ukrainian/src/extension.ts index 30ea05db..85f5df72 100644 --- a/extensions/ukrainian/src/extension.ts +++ b/extensions/ukrainian/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_ukrainian.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_ukrainian.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_ukrainian.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_ukrainian.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_ukrainian.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/ukrainian/test/extension.test.ts b/extensions/ukrainian/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/ukrainian/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/ukrainian/test/index.ts b/extensions/ukrainian/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/ukrainian/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/ukrainian/vsc-extension-quickstart.md b/extensions/ukrainian/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/ukrainian/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/extensions/vietnamese/package.json b/extensions/vietnamese/package.json index 561ef98b..1f54f473 100644 --- a/extensions/vietnamese/package.json +++ b/extensions/vietnamese/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { "commands": [ { @@ -72,9 +72,9 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "npm run test:samples", - "test:samples": "cspell samples", - "test:bin": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" }, "dependencies": { "@cspell/dict-vi-vn": "^3.0.0" diff --git a/extensions/vietnamese/src/extension.ts b/extensions/vietnamese/src/extension.ts index 77d3c523..242bce50 100644 --- a/extensions/vietnamese/src/extension.ts +++ b/extensions/vietnamese/src/extension.ts @@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('cSpellExt_vietnamese.enable', () => enable(true)), vscode.commands.registerCommand('cSpellExt_vietnamese.disable', () => disable(true)), vscode.commands.registerCommand('cSpellExt_vietnamese.enableWorkspace', () => enable(false)), - vscode.commands.registerCommand('cSpellExt_vietnamese.disableWorkspace', () => disable(false)) + vscode.commands.registerCommand('cSpellExt_vietnamese.disableWorkspace', () => disable(false)), ); // } diff --git a/extensions/vietnamese/test/extension.test.ts b/extensions/vietnamese/test/extension.test.ts deleted file mode 100644 index 19335427..00000000 --- a/extensions/vietnamese/test/extension.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite('Extension Tests', () => { - // Defines a Mocha unit test - test('Something 1', () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); diff --git a/extensions/vietnamese/test/index.ts b/extensions/vietnamese/test/index.ts deleted file mode 100644 index 8224e34c..00000000 --- a/extensions/vietnamese/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true, // colored output from test results -}); - -module.exports = testRunner; diff --git a/extensions/vietnamese/vsc-extension-quickstart.md b/extensions/vietnamese/vsc-extension-quickstart.md deleted file mode 100644 index 1932aabc..00000000 --- a/extensions/vietnamese/vsc-extension-quickstart.md +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to your first VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension -- `package.json` - this is the manifest file in which you declare your extension and command. - The sample plugin registers a command and defines its title and command name. With this information - VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - The file exports one function, `activate`, which is called the very first time your extension is - activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - We pass the function containing the implementation of the command as the second parameter to - `registerCommand`. - -## Get up and running straight away - -- press `F5` to open a new window with your extension loaded -- run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World` -- set breakpoints in your code inside `src/extension.ts` to debug your extension -- find output from your extension in the debug console - -## Make changes - -- you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts` -- you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes - -## Explore the API - -- you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts` - -## Run tests - -- open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests` -- press `F5` to run the tests in a new window with your extension loaded -- see the output of the test result in the debug console -- make changes to `test/extension.test.ts` or create new test files inside the `test` folder - - by convention, the test runner will only consider files matching the name pattern `**.test.ts` - - you can create folders inside the `test` folder to structure your tests any way you want diff --git a/generator-cspell-dicts-extensions/generators/app/templates/package.json b/generator-cspell-dicts-extensions/generators/app/templates/package.json index a87b5bb0..3f11bec2 100644 --- a/generator-cspell-dicts-extensions/generators/app/templates/package.json +++ b/generator-cspell-dicts-extensions/generators/app/templates/package.json @@ -33,7 +33,7 @@ "onStartupFinished" ], "qna": "marketplace", - "main": "./out/src/extension", + "main": "./out/extension.js", "contributes": { <% if (addCommands) { %> "commands": [ @@ -75,8 +75,8 @@ "vscode:prepublish": "npm run build", "build": "tsc -p ./", "watch": "tsc -watch -p ./", - "test": "npm run test:samples", - "test:samples": "cspell samples", - "test:bin": "node ../../node_modules/vscode/bin/test" + "test:cspell": "cspell -c cspell-ext.json samples", + "test:vscode": "node ../../test-runner/bin.mjs . --sample samples/seattle.md", + "test": "npm run test:cspell && npm run test:vscode" } } diff --git a/generator-cspell-dicts-extensions/generators/app/templates/test/extension.test.ts b/generator-cspell-dicts-extensions/generators/app/templates/test/extension.test.ts deleted file mode 100644 index 6695cb4c..00000000 --- a/generator-cspell-dicts-extensions/generators/app/templates/test/extension.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -// -// Note: This example test is leveraging the Mocha test framework. -// Please refer to their documentation on https://mochajs.org/ for help. -// - -// The module 'assert' provides assertion methods from node -import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -/* -import * as vscode from 'vscode'; -import * as myExtension from '../src/extension'; -*/ - -// Defines a Mocha test suite to group tests of similar kind together -suite("Extension Tests", () => { - - // Defines a Mocha unit test - test("Something 1", () => { - assert.equal(-1, [1, 2, 3].indexOf(5)); - assert.equal(-1, [1, 2, 3].indexOf(0)); - }); -}); \ No newline at end of file diff --git a/generator-cspell-dicts-extensions/generators/app/templates/test/index.ts b/generator-cspell-dicts-extensions/generators/app/templates/test/index.ts deleted file mode 100644 index 50bae456..00000000 --- a/generator-cspell-dicts-extensions/generators/app/templates/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -var testRunner = require('vscode/lib/testrunner'); - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true // colored output from test results -}); - -module.exports = testRunner; \ No newline at end of file diff --git a/lerna.json b/lerna.json index 22594a02..6382a1fe 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,7 @@ { "packages": [ + "scripts", + "test-runner", "extensions/*", "generator-cspell-dicts-extensions" ], diff --git a/package-lock.json b/package-lock.json index c1b150b1..3b0363bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,14 +18,14 @@ "@types/vscode": "^1.82.0", "@vscode/test-electron": "^2.3.4", "@vscode/vsce": "^2.21.0", + "cspell": "^7.3.7", "inject-markdown": "^2.0.0", - "mdast": "^3.0.0", - "mdast-builder": "^1.1.1", - "mdast-util-to-markdown": "^2.1.0", "mocha": "^10.2.0", "ovsx": "^0.8.3", "prettier": "^3.0.3", "rimraf": "^5.0.1", + "scripts": "file:scripts", + "test-extensions": "file:test-runner", "typescript": "^5.2.2", "yaml": "^2.3.2" }, @@ -211,6 +211,427 @@ "node": ">=4" } }, + "node_modules/@cspell/cspell-bundled-dicts": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-7.3.7.tgz", + "integrity": "sha512-Mw7J0RAWGpEup/+eIePw3wi+OlMGNicrD1r9OhdgIgO6sHEi01ibS/RzNNbC7UziLaYEHi8+WfLyGzmp1ZISrQ==", + "dev": true, + "dependencies": { + "@cspell/dict-ada": "^4.0.2", + "@cspell/dict-aws": "^4.0.0", + "@cspell/dict-bash": "^4.1.2", + "@cspell/dict-companies": "^3.0.24", + "@cspell/dict-cpp": "^5.0.5", + "@cspell/dict-cryptocurrencies": "^4.0.0", + "@cspell/dict-csharp": "^4.0.2", + "@cspell/dict-css": "^4.0.10", + "@cspell/dict-dart": "^2.0.3", + "@cspell/dict-django": "^4.1.0", + "@cspell/dict-docker": "^1.1.7", + "@cspell/dict-dotnet": "^5.0.0", + "@cspell/dict-elixir": "^4.0.3", + "@cspell/dict-en_us": "^4.3.8", + "@cspell/dict-en-common-misspellings": "^1.0.2", + "@cspell/dict-en-gb": "1.1.33", + "@cspell/dict-filetypes": "^3.0.1", + "@cspell/dict-fonts": "^4.0.0", + "@cspell/dict-fsharp": "^1.0.0", + "@cspell/dict-fullstack": "^3.1.5", + "@cspell/dict-gaming-terms": "^1.0.4", + "@cspell/dict-git": "^2.0.0", + "@cspell/dict-golang": "^6.0.3", + "@cspell/dict-haskell": "^4.0.1", + "@cspell/dict-html": "^4.0.5", + "@cspell/dict-html-symbol-entities": "^4.0.0", + "@cspell/dict-java": "^5.0.6", + "@cspell/dict-k8s": "^1.0.1", + "@cspell/dict-latex": "^4.0.0", + "@cspell/dict-lorem-ipsum": "^4.0.0", + "@cspell/dict-lua": "^4.0.1", + "@cspell/dict-node": "^4.0.3", + "@cspell/dict-npm": "^5.0.10", + "@cspell/dict-php": "^4.0.3", + "@cspell/dict-powershell": "^5.0.2", + "@cspell/dict-public-licenses": "^2.0.4", + "@cspell/dict-python": "^4.1.9", + "@cspell/dict-r": "^2.0.1", + "@cspell/dict-ruby": "^5.0.0", + "@cspell/dict-rust": "^4.0.1", + "@cspell/dict-scala": "^5.0.0", + "@cspell/dict-software-terms": "^3.3.2", + "@cspell/dict-sql": "^2.1.1", + "@cspell/dict-svelte": "^1.0.2", + "@cspell/dict-swift": "^2.0.1", + "@cspell/dict-typescript": "^3.1.2", + "@cspell/dict-vue": "^3.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspell/cspell-json-reporter": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-7.3.7.tgz", + "integrity": "sha512-bogUQKKZWLttZtxFKjpzHuliIha/ByV2km18gm8dA2uB3IrzD1UJy4sCE8lnaodm6n3VtjnViSkQ5XIVU3gAKQ==", + "dev": true, + "dependencies": { + "@cspell/cspell-types": "7.3.7" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspell/cspell-pipe": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-7.3.7.tgz", + "integrity": "sha512-ZO8v3EwGhjUvhPo1S48+CKv7EPXMoYF7LGERB34K8EXFByb9+J74ojMYj9UgLRV68lFTrDFde3bHoZPPVS1FsA==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspell/cspell-resolver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-7.3.7.tgz", + "integrity": "sha512-WWZcTI5f2cCjr1yRDTMkcVg7Meil3s+0aaKcLCDTGQf9J2UWWjpqDJ6M6keYei3paAjxW2Pk03IRNNwdA3+igQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspell/cspell-service-bus": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-7.3.7.tgz", + "integrity": "sha512-pnDOFpjht7dZYydMygcf0brCSk5BGRvbeWRH6MaMhd+3CdyzyEvtZG3IbBQVNyVvDTA2c/K3rljOAo8y3/lpnw==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspell/cspell-types": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-7.3.7.tgz", + "integrity": "sha512-zM2BuZJ3UUgPwF78bssggi8X20nmW3a95EmbNJKfbO6Zf2ui7UMzeP3BwpCZk30A/EixGlFhLf6Xd+eBT/DQqw==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspell/dict-ada": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.2.tgz", + "integrity": "sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==", + "dev": true + }, + "node_modules/@cspell/dict-aws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.0.tgz", + "integrity": "sha512-1YkCMWuna/EGIDN/zKkW+j98/55mxigftrSFgsehXhPld+ZMJM5J9UuBA88YfL7+/ETvBdd7mwW6IwWsC+/ltQ==", + "dev": true + }, + "node_modules/@cspell/dict-bash": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.2.tgz", + "integrity": "sha512-AEBWjbaMaJEyAjOHW0F15P2izBjli2cNerG3NjuVH7xX/HUUeNoTj8FF1nwpMufKwGQCvuyO2hCmkVxhJ0y55Q==", + "dev": true + }, + "node_modules/@cspell/dict-companies": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.24.tgz", + "integrity": "sha512-zn9QN99yIvhpGl6fZwt0mvHYcsV2w6XDdK2XWA86A0s9A94U1LCCUsvA4wijUclbZEj9ewsNMlidHcV/D329eQ==", + "dev": true + }, + "node_modules/@cspell/dict-cpp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.5.tgz", + "integrity": "sha512-ojCpQ4z+sHHLJYfvA3SApqQ1BjO/k3TUdDgqR3sVhFl5qjT9yz1/srBNzqCaBBSz/fiO5A8NKdSA9+IFrUHcig==", + "dev": true + }, + "node_modules/@cspell/dict-cryptocurrencies": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-4.0.0.tgz", + "integrity": "sha512-EiZp91ATyRxTmauIQfOX9adLYCunKjHEh092rrM7o2eMXP9n7zpXAL9BK7LviL+LbB8VDOm21q+s83cKrrRrsg==", + "dev": true + }, + "node_modules/@cspell/dict-csharp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz", + "integrity": "sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==", + "dev": true + }, + "node_modules/@cspell/dict-css": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.10.tgz", + "integrity": "sha512-3W5rBoOJQDs3pty0TxRd2xDolTYaOk7rdsWVv3rs8YpyyHNEJIfI/zXGjYECmCAmZiUVvCnorNawUSComOo5uQ==", + "dev": true + }, + "node_modules/@cspell/dict-dart": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.3.tgz", + "integrity": "sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==", + "dev": true + }, + "node_modules/@cspell/dict-data-science": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz", + "integrity": "sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ==", + "dev": true + }, + "node_modules/@cspell/dict-django": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.0.tgz", + "integrity": "sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==", + "dev": true + }, + "node_modules/@cspell/dict-docker": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.7.tgz", + "integrity": "sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==", + "dev": true + }, + "node_modules/@cspell/dict-dotnet": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz", + "integrity": "sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==", + "dev": true + }, + "node_modules/@cspell/dict-elixir": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz", + "integrity": "sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==", + "dev": true + }, + "node_modules/@cspell/dict-en_us": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.8.tgz", + "integrity": "sha512-rCPsbDHuRnFUbzWAY6O1H9+cLZt5FNQwjPVw2TdQZfipdb0lim984aLGY+nupi1iKC3lfjyd5SVUgmSZEG1QNA==", + "dev": true + }, + "node_modules/@cspell/dict-en-common-misspellings": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz", + "integrity": "sha512-jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw==", + "dev": true + }, + "node_modules/@cspell/dict-en-gb": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz", + "integrity": "sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==", + "dev": true + }, + "node_modules/@cspell/dict-filetypes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.1.tgz", + "integrity": "sha512-8z8mY1IbrTyTRumx2vvD9yzRhNMk9SajM/GtI5hdMM2pPpNSp25bnuauzjRf300eqlqPY2MNb5MmhBFO014DJw==", + "dev": true + }, + "node_modules/@cspell/dict-fonts": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.0.tgz", + "integrity": "sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==", + "dev": true + }, + "node_modules/@cspell/dict-fsharp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-fsharp/-/dict-fsharp-1.0.0.tgz", + "integrity": "sha512-dHPkMHwW4dWv3Lv9VWxHuVm4IylqvcfRBSnZ7usJTRThraetSVrOPIJwr6UJh7F5un/lGJx2lxWVApf2WQaB/A==", + "dev": true + }, + "node_modules/@cspell/dict-fullstack": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz", + "integrity": "sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==", + "dev": true + }, + "node_modules/@cspell/dict-gaming-terms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz", + "integrity": "sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==", + "dev": true + }, + "node_modules/@cspell/dict-git": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz", + "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==", + "dev": true + }, + "node_modules/@cspell/dict-golang": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.3.tgz", + "integrity": "sha512-KiNnjAeqDBq6zH4s46hzBrKgqIrkSZ9bbHzQ54PbHfe+jurZkSZ4lXz6E+315RNh2TkRLcNppFvaZqJvKZXomA==", + "dev": true + }, + "node_modules/@cspell/dict-haskell": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz", + "integrity": "sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==", + "dev": true + }, + "node_modules/@cspell/dict-html": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.5.tgz", + "integrity": "sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==", + "dev": true + }, + "node_modules/@cspell/dict-html-symbol-entities": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz", + "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==", + "dev": true + }, + "node_modules/@cspell/dict-java": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.6.tgz", + "integrity": "sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==", + "dev": true + }, + "node_modules/@cspell/dict-k8s": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.1.tgz", + "integrity": "sha512-gc5y4Nm3hVdMZNBZfU2M1AsAmObZsRWjCUk01NFPfGhFBXyVne41T7E62rpnzu5330FV/6b/TnFcPgRmak9lLw==", + "dev": true + }, + "node_modules/@cspell/dict-latex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-4.0.0.tgz", + "integrity": "sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==", + "dev": true + }, + "node_modules/@cspell/dict-lorem-ipsum": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.0.tgz", + "integrity": "sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==", + "dev": true + }, + "node_modules/@cspell/dict-lua": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.1.tgz", + "integrity": "sha512-j0MFmeCouSoC6EdZTbvGe1sJ9V+ruwKSeF+zRkNNNload7R72Co5kX1haW2xLHGdlq0kqSy1ODRZKdVl0e+7hg==", + "dev": true + }, + "node_modules/@cspell/dict-node": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.3.tgz", + "integrity": "sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg==", + "dev": true + }, + "node_modules/@cspell/dict-npm": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.10.tgz", + "integrity": "sha512-idwEgqP6Rgxr6W9UFCfS4E8gIpM1cwEz24+VOnMc/0hFztu9MTtAu8wkdKcBuHG2mQuplqbLLcL0e1cy68ecOQ==", + "dev": true + }, + "node_modules/@cspell/dict-php": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.3.tgz", + "integrity": "sha512-PxtSmWJCDEB4M8R9ER9ijxBum/tvUqYT26QeuV58q2IFs5IrPZ6hocQKvnFGXItjCWH4oYXyAEAAzINlBC4Opg==", + "dev": true + }, + "node_modules/@cspell/dict-powershell": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz", + "integrity": "sha512-IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw==", + "dev": true + }, + "node_modules/@cspell/dict-public-licenses": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.4.tgz", + "integrity": "sha512-KjsfuGwMWvPkp6s0nR+s4mZc9SQhh1tHDOyQZfEVRwi+2ev7f8l7R6ts9sP2Mplb8UcxwO6YmKwxHjN+XHoMoA==", + "dev": true + }, + "node_modules/@cspell/dict-python": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.9.tgz", + "integrity": "sha512-JMA4v/ZPJWuDt3PPFz+23VIY3iDIB+xOTQ6nw+WkcJU5yr6FUl5zMU9ModKrgujg3jGRuuJqofErZVPqHNHYAA==", + "dev": true, + "dependencies": { + "@cspell/dict-data-science": "^1.0.11" + } + }, + "node_modules/@cspell/dict-r": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.1.tgz", + "integrity": "sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==", + "dev": true + }, + "node_modules/@cspell/dict-ruby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.0.tgz", + "integrity": "sha512-ssb96QxLZ76yPqFrikWxItnCbUKhYXJ2owkoIYzUGNFl2CHSoHCb5a6Zetum9mQ/oUA3gNeUhd28ZUlXs0la2A==", + "dev": true + }, + "node_modules/@cspell/dict-rust": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.1.tgz", + "integrity": "sha512-xJSSzHDK2z6lSVaOmMxl3PTOtfoffaxMo7fTcbZUF+SCJzfKbO6vnN9TCGX2sx1RHFDz66Js6goz6SAZQdOwaw==", + "dev": true + }, + "node_modules/@cspell/dict-scala": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.0.tgz", + "integrity": "sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==", + "dev": true + }, + "node_modules/@cspell/dict-software-terms": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.2.tgz", + "integrity": "sha512-OLyBo9IBB2w8m98OI75npY+Q3tdUdhtarXTj+fKKlwP7I2lXZcphNO3v1WxZvkpQF9z+39bWud4VvFozIdLMcg==", + "dev": true + }, + "node_modules/@cspell/dict-sql": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.1.tgz", + "integrity": "sha512-v1mswi9NF40+UDUMuI148YQPEQvWjac72P6ZsjlRdLjEiQEEMEsTQ+zlkIdnzC9QCNyJaqD5Liq9Mn78/8Zxtw==", + "dev": true + }, + "node_modules/@cspell/dict-svelte": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz", + "integrity": "sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==", + "dev": true + }, + "node_modules/@cspell/dict-swift": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.1.tgz", + "integrity": "sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==", + "dev": true + }, + "node_modules/@cspell/dict-typescript": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.2.tgz", + "integrity": "sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA==", + "dev": true + }, + "node_modules/@cspell/dict-vue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz", + "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", + "dev": true + }, + "node_modules/@cspell/dynamic-import": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-7.3.7.tgz", + "integrity": "sha512-ac52OLDMYBHkRQ8XzihOWnyfqri3M84ELTZdqBhR5YGcHW/mxKhsmXqudA980SdRRKaicD39yhX4idAFb4AsDg==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^3.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspell/strong-weak-map": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-7.3.7.tgz", + "integrity": "sha512-n+jRgwH0wU+HsfqgCGVzPmWnZl4SyhtvPxusKwXj6L/STGdt8IP2rYl1PFOtyvgjPjh8xXe/jRrq7zH07btiKA==", + "dev": true, + "engines": { + "node": ">=16" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1084,6 +1505,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true + }, "node_modules/array-union": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", @@ -1096,6 +1523,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/azure-devops-node-api": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", @@ -1373,6 +1809,24 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", @@ -1385,6 +1839,21 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-template": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-1.1.0.tgz", + "integrity": "sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==", + "dev": true, + "dependencies": { + "chalk": "^5.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -1431,6 +1900,18 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", @@ -1541,6 +2022,34 @@ "node": ">=6" } }, + "node_modules/clear-module": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz", + "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==", + "dev": true, + "dependencies": { + "parent-module": "^2.0.0", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clear-module/node_modules/parent-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", + "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", + "dev": true, + "dependencies": { + "callsites": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -1664,6 +2173,22 @@ "node": ">= 6" } }, + "node_modules/comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "dev": true, + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1680,13 +2205,50 @@ "proto-list": "~1.2.1" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/core-util-is": { + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "dev": true, + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/configstore/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/configstore/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", @@ -1753,6 +2315,348 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-7.3.7.tgz", + "integrity": "sha512-p23EuTu+7b2qioRxC7sV1TVfxIPm7928BtT4jYBHGeONiYP0EOOWNP8ynaksMYLTifQBzH1Q0LO4L5ogHiQsfw==", + "dev": true, + "dependencies": { + "@cspell/cspell-json-reporter": "7.3.7", + "@cspell/cspell-pipe": "7.3.7", + "@cspell/cspell-types": "7.3.7", + "@cspell/dynamic-import": "7.3.7", + "chalk": "^5.3.0", + "chalk-template": "^1.1.0", + "commander": "^11.0.0", + "cspell-gitignore": "7.3.7", + "cspell-glob": "7.3.7", + "cspell-io": "7.3.7", + "cspell-lib": "7.3.7", + "fast-glob": "^3.3.1", + "fast-json-stable-stringify": "^2.1.0", + "file-entry-cache": "^7.0.0", + "get-stdin": "^9.0.0", + "semver": "^7.5.4", + "strip-ansi": "^7.1.0", + "vscode-uri": "^3.0.7" + }, + "bin": { + "cspell": "bin.mjs", + "cspell-esm": "bin.mjs" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/streetsidesoftware/cspell?sponsor=1" + } + }, + "node_modules/cspell-dictionary": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-7.3.7.tgz", + "integrity": "sha512-mJ0h2BGxYEqb/1FxKD50WuufKhDaCaIk8pwZQryqazXQCvoTpla0yud3KO61Cke92za8z37Rfb+5xATlywEfaw==", + "dev": true, + "dependencies": { + "@cspell/cspell-pipe": "7.3.7", + "@cspell/cspell-types": "7.3.7", + "cspell-trie-lib": "7.3.7", + "fast-equals": "^4.0.3", + "gensequence": "^6.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cspell-dictionary/node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", + "dev": true + }, + "node_modules/cspell-gitignore": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-7.3.7.tgz", + "integrity": "sha512-nP4Gg+zq5y0njzhiNYTLvaJIMAponBhJoTMzkXCOOKYEHJmiRQocfa3gO4t2s8iZ4YVhscbrB2h+dYvo3MLQqg==", + "dev": true, + "dependencies": { + "cspell-glob": "7.3.7", + "find-up": "^5.0.0" + }, + "bin": { + "cspell-gitignore": "bin.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cspell-glob": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-7.3.7.tgz", + "integrity": "sha512-DJX5wJ5dhcNzyycukZst+WtbIdpCLTL7DaKS0EKW/57QjzMwwMBgpsF89ufnreGHB8dHrPF85epF9qyOI1SRNg==", + "dev": true, + "dependencies": { + "micromatch": "^4.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cspell-grammar": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-7.3.7.tgz", + "integrity": "sha512-4cyJ4Alq/wBGTctH7fNTbY9EZCihm11fbrGSYVe8w+msRNx6W8rugsMX009aHiw9zlvGrMAeTD08YFPnBVdfpA==", + "dev": true, + "dependencies": { + "@cspell/cspell-pipe": "7.3.7", + "@cspell/cspell-types": "7.3.7" + }, + "bin": { + "cspell-grammar": "bin.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cspell-io": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-7.3.7.tgz", + "integrity": "sha512-zqGGllG/OM3Of7zaOELdrSoBpCyG9nJuSRCzLfKgnCG4g2zpoMfDZknJaY9VjZODHP99PvYWooF8E6kVxT34Fw==", + "dev": true, + "dependencies": { + "@cspell/cspell-service-bus": "7.3.7", + "node-fetch": "^2.7.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cspell-io/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/cspell-lib": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-7.3.7.tgz", + "integrity": "sha512-KuFn0WTwmK50Ij1KVaXVuheleSOfv3oFIO3PfMuFg7llkfPfaRawF0b61da/EFGckU/hUc8uHRbBuGELlDo3tA==", + "dev": true, + "dependencies": { + "@cspell/cspell-bundled-dicts": "7.3.7", + "@cspell/cspell-pipe": "7.3.7", + "@cspell/cspell-resolver": "7.3.7", + "@cspell/cspell-types": "7.3.7", + "@cspell/dynamic-import": "7.3.7", + "@cspell/strong-weak-map": "7.3.7", + "clear-module": "^4.1.2", + "comment-json": "^4.2.3", + "configstore": "^6.0.0", + "cosmiconfig": "8.0.0", + "cspell-dictionary": "7.3.7", + "cspell-glob": "7.3.7", + "cspell-grammar": "7.3.7", + "cspell-io": "7.3.7", + "cspell-trie-lib": "7.3.7", + "fast-equals": "^5.0.1", + "find-up": "^6.3.0", + "gensequence": "^6.0.0", + "import-fresh": "^3.3.0", + "resolve-from": "^5.0.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.7" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cspell-lib/node_modules/cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/cspell-lib/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell-lib/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell-lib/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell-lib/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell-lib/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/cspell-lib/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell-trie-lib": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-7.3.7.tgz", + "integrity": "sha512-Vv8TdTMZD3DE79SorTwn5NoWj8JD7DnYMeUK+5S6JDNLy4Ck+kTEPN6Ic9hvLAxuDmQjmoZI3TizrWvuCG66aA==", + "dev": true, + "dependencies": { + "@cspell/cspell-pipe": "7.3.7", + "@cspell/cspell-types": "7.3.7", + "gensequence": "^6.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cspell/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cspell/node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/cspell/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -1862,6 +2766,18 @@ } } }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -2003,6 +2919,21 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dotenv": { "version": "16.3.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", @@ -2123,6 +3054,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/estree-util-is-identifier-name": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz", @@ -2242,6 +3186,15 @@ "node": ">=0.6.0" } }, + "node_modules/fast-equals": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", + "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/fast-glob": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", @@ -2270,6 +3223,12 @@ "node": ">= 6" } }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -2327,6 +3286,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/file-entry-cache": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.0.tgz", + "integrity": "sha512-OWhoO9dvvwspdI7YjGrs5wD7bPggVHc5b1NFAdyd1fEPIeno3Fj70fjBhklAqzUefgX7KCNDBnvrT8rZhS8Shw==", + "dev": true, + "dependencies": { + "flat-cache": "^3.1.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -2364,6 +3335,41 @@ "flat": "cli.js" } }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, "node_modules/follow-redirects": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", @@ -2499,6 +3505,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/gensequence": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-6.0.0.tgz", + "integrity": "sha512-8WwuywE9pokJRAcg2QFR/plk3cVPebSUqRPzpGQh3WQ0wIiHAw+HyOQj5IuHyUTQBHpBKFoB2JUMu9zT3vJ16Q==", + "dev": true, + "engines": { + "node": ">=16" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -2508,6 +3523,15 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -2523,6 +3547,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stream": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", @@ -2596,6 +3632,30 @@ "node": "*" } }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/globby": { "version": "13.2.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", @@ -2654,6 +3714,15 @@ "node": ">=8" } }, + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", @@ -2866,6 +3935,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz", + "integrity": "sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -3139,6 +4218,15 @@ "node": ">=0.12.0" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -3218,9 +4306,9 @@ } }, "node_modules/jackspeak": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", - "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -3253,6 +4341,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -3301,6 +4395,12 @@ "setimmediate": "^1.0.5" } }, + "node_modules/kefir": { + "version": "3.8.8", + "resolved": "https://registry.npmjs.org/kefir/-/kefir-3.8.8.tgz", + "integrity": "sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA==", + "dev": true + }, "node_modules/keytar": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", @@ -3313,6 +4413,15 @@ "prebuild-install": "^7.0.1" } }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -3463,6 +4572,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3674,55 +4792,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-footnote/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-gfm-strikethrough": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", @@ -3737,685 +4806,159 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-strikethrough/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "node_modules/mdast-util-gfm-table": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", + "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-strikethrough/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", + "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" + "mdast-util-to-markdown": "^1.3.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-strikethrough/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/mdast-util-mdx": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz", + "integrity": "sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-mdx-expression": "^1.0.0", + "mdast-util-mdx-jsx": "^2.0.0", + "mdast-util-mdxjs-esm": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "node_modules/mdast-util-mdx-expression": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz", + "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==", "dev": true, "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" + "mdast-util-to-markdown": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-table/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "node_modules/mdast-util-mdx-jsx": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz", + "integrity": "sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==", "dev": true, "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^2.0.0", + "ccount": "^2.0.0", + "mdast-util-from-markdown": "^1.1.0", + "mdast-util-to-markdown": "^1.3.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-table/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "node_modules/mdast-util-mdxjs-esm": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz", + "integrity": "sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==", "dev": true, "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-table/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz", - "integrity": "sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==", - "dev": true, - "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-mdx-expression": "^1.0.0", - "mdast-util-mdx-jsx": "^2.0.0", - "mdast-util-mdxjs-esm": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz", - "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==", - "dev": true, - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz", - "integrity": "sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==", - "dev": true, - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "ccount": "^2.0.0", - "mdast-util-from-markdown": "^1.1.0", - "mdast-util-to-markdown": "^1.3.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-remove-position": "^4.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz", - "integrity": "sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==", - "dev": true, - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm/node_modules/mdast-util-phrasing": { + "node_modules/mdast-util-phrasing": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.0.0.tgz", - "integrity": "sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==", - "dev": true, - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing/node_modules/@types/mdast": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.0.tgz", - "integrity": "sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==", - "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/mdast-util-phrasing/node_modules/@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "node_modules/mdast-util-phrasing/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", - "dev": true, - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/@types/mdast": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.0.tgz", - "integrity": "sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==", - "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "dev": true, - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.0.tgz", - "integrity": "sha512-pIgcsGxpHEtTG/rPJRz/HOLSqp5VTuIIjXlPI+6JSDlK2oljApusG6KzpS8AF0ENUMCHlC/IBb5B9xdFiVlm5Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/mdast-util-to-string": { "version": "3.2.0", @@ -6394,6 +6937,15 @@ "node": ">=8" } }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -6864,53 +7416,13 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-stringify/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=0.10" } }, "node_modules/require-directory": { @@ -7116,6 +7628,10 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "node_modules/scripts": { + "resolved": "scripts", + "link": true + }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -7602,6 +8118,10 @@ "node": ">=8" } }, + "node_modules/test-extensions": { + "resolved": "test-runner", + "link": true + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -7647,6 +8167,12 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, "node_modules/trough": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", @@ -7685,6 +8211,15 @@ "node": "*" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -7785,6 +8320,21 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "dev": true, + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unist-util-is": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", @@ -8141,6 +8691,18 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", + "dev": true + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -8159,6 +8721,22 @@ "node": ">= 8" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -8307,6 +8885,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xml2js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", @@ -8453,6 +9043,156 @@ "type": "github", "url": "https://github.com/sponsors/wooorm" } + }, + "scripts": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast": "^3.0.0", + "mdast-builder": "^1.1.1", + "mdast-util-to-markdown": "^1.5.0" + }, + "bin": { + "gen-extension-list": "gen-extension-list.mjs", + "update-manual-pub-list": "update-manual-pub-list.mjs" + }, + "devDependencies": {} + }, + "test-runner": { + "name": "test-extensions", + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@vscode/test-electron": "^2.3.4", + "chai": "^4.3.10", + "chalk": "^5.3.0", + "commander": "^11.0.0", + "find-up": "^6.3.0", + "glob": "^10.3.10", + "kefir": "^3.8.8", + "mocha": "^10.2.0" + }, + "bin": { + "test-runner": "test-runner.mjs" + }, + "devDependencies": { + "@types/vscode": "^1.82.0" + } + }, + "test-runner/node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "test-runner/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "test-runner/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "test-runner/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "test-runner/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "test-runner/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "test-runner/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "test-runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 8fb56b0b..6ed2d885 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,9 @@ "pub-version": "lerna version --conventional-commits", "publish-all": "lerna exec --no-bail \"vsce publish\"", "publish-all-ovsx": "lerna exec --no-bail \"ovsx publish --pat \\$OVSX_TOKEN\"", - "gen:readme": "./scripts/update-code-workspace.sh", - "gen:release-please": "./scripts/gen-release-please-config.sh", - "gen:workflow": "./scripts/update-workflows.sh", + "gen:readme": "bash ./scripts/update-code-workspace.sh", + "gen:release-please": "bash ./scripts/gen-release-please-config.sh", + "gen:workflow": "bash ./scripts/update-workflows.sh", "echo": "echo $OVSX_TOKEN", "build": "lerna run build", "test-pack": "lerna run pack-extension", @@ -21,8 +21,10 @@ "X-lint-ci": "eslint . && prettier -c \"**/*.{md,yaml,yml,json}\"", "prettier:fix": "prettier -w \"**/*.{ts,md,yaml,yml,json}\"", "prettier:lint": "prettier \"**/*.{ts,md,yaml,yml,json}\"", + "test:all": "lerna run --concurrency=1 --stream \"--scope=code-spell-checker-*\" test", + "test:cspell": "lerna run --concurrency=4 --stream \"--scope=code-spell-checker-*\" test:cspell", "lint": "npm run cspell", - "update-packages": "npm ci && npx npm-check-updates -t minor -u && npm i && lerna exec \"npx npm-check-updates -t minor -u && rm -rf node_modules package-lock.json && npm i\" && npm i" + "update-packages": "npm ci && npx npm-check-updates -t semver -u && npm i && lerna exec \"npx npm-check-updates -t semver -u && rm -rf node_modules package-lock.json && npm i\" && npm i" }, "type": "commonjs", "engines": { @@ -38,14 +40,14 @@ "@types/vscode": "^1.82.0", "@vscode/test-electron": "^2.3.4", "@vscode/vsce": "^2.21.0", + "cspell": "^7.3.7", "inject-markdown": "^2.0.0", - "mdast": "^3.0.0", - "mdast-builder": "^1.1.1", - "mdast-util-to-markdown": "^2.1.0", "mocha": "^10.2.0", "ovsx": "^0.8.3", "prettier": "^3.0.3", "rimraf": "^5.0.1", + "scripts": "file:scripts", + "test-extensions": "file:test-runner", "typescript": "^5.2.2", "yaml": "^2.3.2" } diff --git a/scripts/package-lock.json b/scripts/package-lock.json new file mode 100644 index 00000000..d0dd001a --- /dev/null +++ b/scripts/package-lock.json @@ -0,0 +1,260 @@ +{ + "name": "scripts", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "scripts", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "mdast": "^3.0.0", + "mdast-builder": "^1.1.1", + "mdast-util-to-markdown": "^1.5.0" + }, + "bin": { + "gen-extension-list": "gen-extension-list.mjs", + "update-manual-pub-list": "update-manual-pub-list.mjs" + }, + "devDependencies": {} + }, + "node_modules/@types/mdast": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.13.tgz", + "integrity": "sha512-HjiGiWedR0DVFkeNljpa6Lv4/IZU1+30VY5d747K7lBudFc3R0Ibr6yJ9lN3BE28VnZyDfLF/VB1Ql1ZIbKrmg==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/unist": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.8.tgz", + "integrity": "sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==" + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast/-/mdast-3.0.0.tgz", + "integrity": "sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==", + "deprecated": "`mdast` was renamed to `remark`" + }, + "node_modules/mdast-builder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-builder/-/mdast-builder-1.1.1.tgz", + "integrity": "sha512-a3KBk/LmYD6wKsWi8WJrGU/rXR4yuF4Men0JO0z6dSZCm5FrXXWTRDjqK0vGSqa+1M6p9edeuypZAZAzSehTUw==", + "dependencies": { + "@types/unist": "^2.0.3" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/scripts/package.json b/scripts/package.json new file mode 100644 index 00000000..75ec1031 --- /dev/null +++ b/scripts/package.json @@ -0,0 +1,20 @@ +{ + "name": "scripts", + "version": "1.0.0", + "description": "Useful scripts", + "bin": { + "gen-extension-list": "./gen-extension-list.mjs", + "update-manual-pub-list": "./update-manual-pub-list.mjs" + }, + "dependencies": { + "mdast": "^3.0.0", + "mdast-builder": "^1.1.1", + "mdast-util-to-markdown": "^1.5.0" + }, + "devDependencies": {}, + "scripts": { + "test": "echo OK" + }, + "author": "", + "license": "MIT" +} diff --git a/test-runner/bin.mjs b/test-runner/bin.mjs new file mode 100644 index 00000000..76418492 --- /dev/null +++ b/test-runner/bin.mjs @@ -0,0 +1 @@ +import './test-runner.mjs'; diff --git a/test-runner/lib/esmImport.cjs b/test-runner/lib/esmImport.cjs new file mode 100644 index 00000000..0957bb87 --- /dev/null +++ b/test-runner/lib/esmImport.cjs @@ -0,0 +1,10 @@ +const esmImports = { + /** @type {import('chalk').Chalk} */ + Chalk: undefined, + /** @type {import('find-up').findUp} */ + findUp: undefined, +}; + +module.exports = { + esmImports, +}; diff --git a/test-runner/lib/helper.cjs b/test-runner/lib/helper.cjs new file mode 100644 index 00000000..45858821 --- /dev/null +++ b/test-runner/lib/helper.cjs @@ -0,0 +1,152 @@ +const path = require('path'); +const vscode = require('vscode'); +const assert = require('assert'); +const fs = require('fs/promises'); + +const { esmImports } = require('./esmImport.cjs'); +const { chalk, log } = require('./logger.cjs'); + +const { findUp } = esmImports; + +const repoRoot = path.join(__dirname, '../..'); + +/** + * @typedef {import('vscode').Extension} Extension + * @typedef {import('vscode').TextDocument} TextDocument + * @typedef {import('vscode').TextEditor} TextEditor + * @typedef {import('vscode').Uri} Uri + * @typedef {{doc: TextDocument, editor: TextEditor}} DocumentContext + */ + +// export interface ExtensionActivation { +// ext: vscode.Extension; +// extActivate: ExtensionApi; +// extApi: ExtensionApi; +// } + +/** + * Activates the spell checker extension + * @param {string | undefined} extId + * @returns {Promise<{ ext: Extension, extActivate: any, extApi: any }>} + */ +async function activateExtension(extId) { + const extensionId = extId || (await getExtensionId()); + await log(`Activate: ${extensionId}`); + try { + const ext = vscode.extensions.getExtension(extensionId); + assert(ext); + const extActivate = await ext.activate(); + const extApi = vscode.extensions.getExtension(extensionId)?.exports; + return { + ext, + extActivate, + extApi, + }; + } catch (e) { + console.error(e); + throw e; + } +} + +/** + * Activates the spell checker extension + */ + +/** + * + * @param {Uri} docUri + * @returns {Promise} + */ +async function sleep(ms) { + return new Promise((resolve) => setTimeout(() => resolve(undefined), ms)); +} + +/** + * + * @param {DocumentContext} context + * @param {string} content + * @returns {Promise} + */ +async function setTestContent(context, content) { + const { doc, editor } = context; + const all = new vscode.Range(doc.positionAt(0), doc.positionAt(doc.getText().length)); + return editor.edit((eb) => eb.replace(all, content)); +} + +/** + * Get the extension id from `package.json` + * @returns {Promise} + */ +async function getExtensionId() { + const extensionPackage = await readPackageJson(); + // The extensionId is `publisher.name` from package.json + const { name = '', publisher = '' } = extensionPackage; + return `${publisher}.${name}`; +} + +const samplesDirUri = vscode.Uri.file('./samples'); + +/** + * + * @param {string[]} pathSegments + * @returns {Uri} + */ +function sampleWorkspaceUri(...pathSegments) { + return vscode.Uri.joinPath(samplesDirUri, ...pathSegments); +} + +function logYellow(...params) { + const [message, ...rest] = params; + if (!message) return log(''); + return log(chalk.yellow(message), ...rest); +} + +/** + * + * @param {string} cwd + * @returns {{name: string, publisher: string, version: string, [field: string]: unknown}} + */ +async function readPackageJson(cwd = process.cwd()) { + const pkgFile = await findUp('package.json', { cwd, stopAt: repoRoot }); + log('readPackageJson %o', { cwd, pkgFile }); + if ( + !pkgFile || + !path.relative(path.dirname(pkgFile), repoRoot) || + path.basename(path.dirname(path.dirname(pkgFile))) !== 'extensions' + ) { + throw Error('Extension package.json not found.'); + } + return JSON.parse(await fs.readFile(pkgFile, 'utf8')); +} + +module.exports = { + activateExtension, + getExtensionId, + loadDocument, + log, + logYellow, + readPackageJson, + repoRoot, + samplesDirUri, + sampleWorkspaceUri, + setTestContent, + sleep, +}; diff --git a/test-runner/lib/initEsmImports.mjs b/test-runner/lib/initEsmImports.mjs new file mode 100644 index 00000000..9417d757 --- /dev/null +++ b/test-runner/lib/initEsmImports.mjs @@ -0,0 +1,7 @@ +import { Chalk } from 'chalk'; +import { findUp } from 'find-up'; + +import { esmImports } from './esmImport.cjs'; + +esmImports.Chalk = Chalk; +esmImports.findUp = findUp; diff --git a/test-runner/lib/logger.cjs b/test-runner/lib/logger.cjs new file mode 100644 index 00000000..18141656 --- /dev/null +++ b/test-runner/lib/logger.cjs @@ -0,0 +1,16 @@ +const { format } = require('util'); +const { esmImports } = require('./esmImport.cjs'); + +const { Chalk } = esmImports; + +const chalk = new Chalk({ level: 1 }); + +function log(...params) { + const dt = new Date(); + console.log('%s', `${chalk.cyan(dt.toISOString())} ${format(...params)}`); +} + +module.exports = { + chalk, + log, +}; diff --git a/test-runner/lib/runner.mjs b/test-runner/lib/runner.mjs new file mode 100644 index 00000000..4b6093ba --- /dev/null +++ b/test-runner/lib/runner.mjs @@ -0,0 +1,34 @@ +import * as path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { glob } from 'glob'; +import Mocha from 'mocha'; + +// Import side effects from initEsmImports to setup esmImports. +import './initEsmImports.mjs'; + +export async function run(testGlob, cwd) { + // Create the mocha test + const mocha = new Mocha({ + ui: 'bdd', + color: true, + }); + + const files = await glob('**/**.test.?(c)js', { cwd, absolute: true }); + + console.log('files: %o', files); + + // Add files to the test suite + files.forEach((f) => mocha.addFile(f)); + + return new Promise((resolve, reject) => { + // Run the mocha test + mocha.run((failures) => { + if (failures > 0) { + reject(Error(`${failures} tests failed.`)); + } else { + resolve(); + } + }); + }); +} diff --git a/test-runner/package-lock.json b/test-runner/package-lock.json new file mode 100644 index 00000000..acb0fba9 --- /dev/null +++ b/test-runner/package-lock.json @@ -0,0 +1,1500 @@ +{ + "name": "test-extensions", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "test-extensions", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@vscode/test-electron": "^2.3.4", + "chai": "^4.3.10", + "chalk": "^5.3.0", + "commander": "^11.0.0", + "find-up": "^6.3.0", + "glob": "^10.3.10", + "kefir": "^3.8.8", + "mocha": "^10.2.0" + }, + "bin": { + "test-runner": "test-runner.mjs" + }, + "devDependencies": { + "@types/vscode": "^1.82.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/vscode": { + "version": "1.82.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.82.0.tgz", + "integrity": "sha512-VSHV+VnpF8DEm8LNrn8OJ8VuUNcBzN3tMvKrNpbhhfuVjFm82+6v44AbDhLvVFgCzn6vs94EJNTp7w8S6+Q1Rw==", + "dev": true + }, + "node_modules/@vscode/test-electron": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.4.tgz", + "integrity": "sha512-eWzIqXMhvlcoXfEFNWrVu/yYT5w6De+WZXR/bafUQhAp8+8GkQo95Oe14phwiRUPv8L+geAKl/QM2+PoT3YW3g==", + "dependencies": { + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "jszip": "^3.10.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/kefir": { + "version": "3.8.8", + "resolved": "https://registry.npmjs.org/kefir/-/kefir-3.8.8.tgz", + "integrity": "sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA==" + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/test-runner/package.json b/test-runner/package.json new file mode 100644 index 00000000..cb6402fc --- /dev/null +++ b/test-runner/package.json @@ -0,0 +1,28 @@ +{ + "name": "test-extensions", + "private": true, + "version": "1.0.0", + "description": "Test framework for testing the extensions", + "bin": { + "test-runner": "./test-runner.mjs" + }, + "type": "module", + "scripts": { + "test": "mocha" + }, + "author": "", + "license": "MIT", + "dependencies": { + "@vscode/test-electron": "^2.3.4", + "chai": "^4.3.10", + "chalk": "^5.3.0", + "commander": "^11.0.0", + "find-up": "^6.3.0", + "glob": "^10.3.10", + "kefir": "^3.8.8", + "mocha": "^10.2.0" + }, + "devDependencies": { + "@types/vscode": "^1.82.0" + } +} diff --git a/test-runner/suite/index.cjs b/test-runner/suite/index.cjs new file mode 100644 index 00000000..052b5641 --- /dev/null +++ b/test-runner/suite/index.cjs @@ -0,0 +1,8 @@ +async function run() { + const { run: runRunner } = await import('../lib/runner.mjs'); + await runRunner('**/**.test.?(c)js', __dirname); +} + +module.exports = { + run, +}; diff --git a/test-runner/suite/tests/extension.test.cjs b/test-runner/suite/tests/extension.test.cjs new file mode 100644 index 00000000..f5e0c976 --- /dev/null +++ b/test-runner/suite/tests/extension.test.cjs @@ -0,0 +1,151 @@ +const { suite, test, beforeAll } = require('mocha'); +const { expect, assert } = require('chai'); +const vscode = require('vscode'); +const { stream } = require('kefir'); +const helper = require('../../lib/helper.cjs'); +const path = require('path'); + +const { loadDocument, logYellow, log, sleep, activateExtension } = helper; + +const sampleDoc = process.env['SAMPLE_TEST_DOCUMENT']; +const uriSampleDoc = vscode.Uri.file(path.resolve(sampleDoc)); + +/** + * @typedef {import('../types').OnSpellCheckDocumentStep} OnSpellCheckDocumentStep + * @typedef {import('vscode').Uri} Uri + */ + +const timeoutInSeconds = 120; + +suite('Extension Test Suite 1', function () { + this.timeout(timeoutInSeconds * 1000); + + vscode.window.showInformationMessage('Start all tests.'); + + this.beforeAll(async () => { + // await helper.activateExtension('streetsidesoftware.code-spell-checker'); + // await helper.activateExtension(); + }); + + test('loading the spell checker extension', async () => { + const ext = await activateExtension('streetsidesoftware.code-spell-checker'); + assert(ext, 'Spell Checker Extension has loaded.'); + }); + + test('loading the dictionary extension', async () => { + const ext = await activateExtension(); + assert(ext, 'Dictionary Extension has loaded.'); + }); + + test('reading the sample file.', async () => { + logYellow('Verifies reading the sample file: %s.', sampleDoc); + const result = await loadDocument(uriSampleDoc); + const urlDoc = result?.doc.uri.toString(true); + assert(result?.doc, 'Must be able to load the document.'); + assert(urlDoc.endsWith(path.basename(sampleDoc)), 'matches sample doc'); + }); + + test('Opening the sample document and making sure there are no errors.', async () => { + logYellow('Opening the sample document and making sure there are no errors.'); + const docContext = await loadDocument(uriSampleDoc); + expect(docContext).to.not.be.undefined; + await sleep(500); + // Force a spell check by making an edit, no errors are expected. + const pEdit0 = docContext.editor.edit((edit) => edit.insert(new vscode.Position(0, 0), '\n')); + const pWait0 = waitForSpellComplete(uriSampleDoc, 5000); + await pEdit0; + const found0 = await pWait0; + log('found %o', found0); + expect(found0.numIssues).to.equal(0); + + // Force a spelling error + log('doc: %o', { uri: docContext.doc.uri.toString(), version: docContext.doc.version }); + await docContext.editor.edit((edit) => edit.insert(new vscode.Position(0, 0), 'spellling\n')); + log('doc: %o', { uri: docContext.doc.uri.toString(), version: docContext.doc.version }); + await sleep(500); + log('doc: %o', { uri: docContext.doc.uri.toString(), version: docContext.doc.version }); + const pEdit1 = docContext.editor.edit((edit) => edit.insert(new vscode.Position(0, 0), '\n')); + log('doc: %o', { uri: docContext.doc.uri.toString(), version: docContext.doc.version }); + const pWait1 = waitForSpellComplete(uriSampleDoc, 5000); + await pEdit1; + const found1 = await pWait1; + log('found %o', found1); + log('doc: %o', { uri: docContext.doc.uri.toString(), version: docContext.doc.version }); + expect(found1.numIssues).to.equal(1); + + const diags = await getDiagsFromVsCode(uriSampleDoc, 2000); + + // if (diags.length) { + // log('all diags: %o', vscode.languages.getDiagnostics()); + // } + + // await sleep(5 * 1000); + const msgs = diags.map(({ source, message }) => ({ source, message })); + log(`Diag Messages: size(${diags.length}) msg: %o`, msgs); + // log('diags: %o', diags); + + // cspell:ignore spellling + expect(JSON.stringify(msgs)).contains('spellling'); + logYellow('Done: Verifies that some spelling errors were found'); + }); + + it('Wait a bit', async () => { + // This is useful for debugging and you want to see the VS Code UI. + // Set `secondsToWait` to 30 or more. + const secondsToWait = 1; + await sleep(secondsToWait * 1000); + expect(true).to.be.true; + }); +}); + +/** + * + * @param {CSpellClient} cSpellClient + * @returns {import('kefir').Stream} + */ +function streamOnSpellCheckDocumentNotification(cSpellClient) { + return stream((emitter) => { + const d = cSpellClient.onSpellCheckDocumentNotification(emitter.value); + return () => d.dispose(); + }); +} + +/** + * + * @param {Uri} uri + * @param {number} timeout + * @returns {Promise} + */ +async function waitForSpellComplete(uri, timeout) { + const matchUri = uri.toString(); + const ext = await activateExtension('streetsidesoftware.code-spell-checker'); + const s = streamOnSpellCheckDocumentNotification(ext.extApi.cSpellClient()) + .filter((v) => v.uri === matchUri) + .filter((v) => !!v.done) + // .map((a) => (log('waitFor 1 %o', a), a)) + .debounce(100) + // .map((a) => (log('waitFor 2 %o', a), a)) + .take(1); + return Promise.race([s.toPromise(), sleep(timeout)]); +} + +/** + * + * @param {Uri} uri + * @param {number} waitInMs + * @returns {Promise} + */ +async function getDiagsFromVsCode(uri, waitInMs) { + let stop = false; + const h = setInterval(() => (stop = true), waitInMs); + try { + let diag = vscode.languages.getDiagnostics(uri); + while (!stop && !diag.length) { + await sleep(5); + diag = vscode.languages.getDiagnostics(uri); + } + return diag; + } finally { + clearInterval(h); + } +} diff --git a/test-runner/suite/types.d.ts b/test-runner/suite/types.d.ts new file mode 100644 index 00000000..cc364787 --- /dev/null +++ b/test-runner/suite/types.d.ts @@ -0,0 +1,48 @@ +export type UriString = string; +export type DocumentUri = UriString; + +export interface OnSpellCheckDocumentStep extends NotificationInfo { + /** + * uri of the text document + */ + uri: DocumentUri; + + /** + * + */ + version: number; + + /** + * name of step. + */ + step: string; + + /** + * Number of issues found + */ + numIssues?: number; + + /** + * true if it is finished + */ + done?: boolean; +} + +export interface NotificationInfo { + /** + * Sequence number. + * Notifications can be sorted based upon the sequence number to give the order + * in which the Notification was generated. + * It should be unique between Notifications of the same type. + */ + seq: number; + + /** + * timestamp in ms. + */ + ts: number; +} + +export interface WorkspaceConfigForDocumentRequest { + uri: DocumentUri; +} diff --git a/test-runner/test-runner.mjs b/test-runner/test-runner.mjs new file mode 100755 index 00000000..0cf2e68d --- /dev/null +++ b/test-runner/test-runner.mjs @@ -0,0 +1,112 @@ +#!/usr/bin/env node + +import * as cp from 'child_process'; +import * as path from 'path'; +import { promises as fs } from 'node:fs'; +import { downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath, runTests } from '@vscode/test-electron'; +import { Command, CommanderError } from 'commander'; +import { fileURLToPath } from 'url'; +import chalk from 'chalk'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const root = path.join(__dirname, '..'); +const cacheDirVscodeTest = '.vscode-test'; +const cachePath = path.join(root, cacheDirVscodeTest); + +async function main() { + const program = new Command(); + + program + .name('test-runner') + .description('VSCode test running for testing CSpell addon extensions.') + .arguments('', 'Directory of the extension to test.') + .option('--vscode-version', `The version of VSCode to use.`, 'stable') + .option('--sample ', 'Specify a sample document', 'samples/seattle.md') + .showHelpAfterError(true) + .action(testRunner); + + try { + await program.parseAsync(); + } catch (err) { + if (err instanceof CommanderError) { + console.error('%s', chalk.red(err.message)); + } else { + console.error(err); + } + process.exitCode = 1; + } +} + +async function testRunner(extensionDevelopmentPath, options) { + extensionDevelopmentPath = path.resolve(extensionDevelopmentPath); + + const hasPackage = await fileExists(path.join(extensionDevelopmentPath, 'package.json')); + const hasSample = await fileExists(path.join(extensionDevelopmentPath, options.sample)); + + if (!hasPackage) { + throw new CommanderError(1, 'ENOENT', 'Extension "package.json" is missing.'); + } + + if (!hasSample) { + throw new CommanderError(1, 'ENOENT', `Sample "${options.sample}" is missing.`); + } + + const { vscodeVersion: version = 'stable' } = options; + const extensionTestsPath = path.resolve(__dirname, './suite/index.cjs'); + + await fs.mkdir(cachePath, { recursive: true }); + + const vscodeExecutablePath = await downloadAndUnzipVSCode({ cachePath, version }); + const [cliPath, ...args] = resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath); + + // Delete `.vscode-test` to prevent socket issues (based upon the current directory) + await fs.rm(cacheDirVscodeTest, { recursive: true, force: true }); + + // Use cp.spawn / cp.exec for custom setup + cp.spawnSync(cliPath, [...args, '--install-extension', 'streetsidesoftware.code-spell-checker'], { + encoding: 'utf-8', + stdio: 'inherit', + }); + + const extensionTestsEnv = { + SAMPLE_TEST_DOCUMENT: options.sample, + }; + + const tempDir = path.join(root, 'temp/.vscode-test/'); + await fs.mkdir(tempDir, { recursive: true }); + const userDataDir = await fs.mkdtemp(tempDir); + + console.log('runner info: %o', { + vscodeExecutablePath, + extensionDevelopmentPath, + extensionTestsPath, + extensionTestsEnv, + userDataDir, + }); + + try { + // Run the extension test + await runTests({ + // Use the specified `code` executable + vscodeExecutablePath, + extensionDevelopmentPath, + extensionTestsPath, + extensionTestsEnv, + launchArgs: ['--user-data-dir', userDataDir], + }); + } finally { + await fs.rm(userDataDir, { recursive: true, force: true }); + } +} + +async function fileExists(filePath) { + try { + const s = await fs.stat(filePath); + return s.isFile(); + } catch (e) { + return false; + } +} + +main();