diff --git a/README.md b/README.md index b5d10f9b..b7559b76 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ This VS Code extension provides support for creating and editing XML documents, | enabled by default | requires additional configuration to enable | * [RelaxNG (experimental) support](https://github.com/redhat-developer/vscode-xml/blob/main/docs/Features/RelaxNGFeatures.md#relaxng-features) (since v0.22.0) + * [Surround with Tags, Comments, CDATA](https://github.com/redhat-developer/vscode-xml/blob/main/docs/Refactor.md#refactor) (since v0.23.0) * Syntax error reporting * General code completion * [Auto-close tags](https://github.com/redhat-developer/vscode-xml/blob/main/docs/Features/XMLFeatures.md#xml-tag-auto-close) diff --git a/docs/Refactor.md b/docs/Refactor.md new file mode 100644 index 00000000..8e611ca0 --- /dev/null +++ b/docs/Refactor.md @@ -0,0 +1,25 @@ +# Refactor + +## Surround with Tags (Wrap) + +This refactor command gives the capability to select an XML content and surround it with a given tag. To execute this command you can: + + * use command palette (`Ctrl+P`) and type `Surround` + +![Surround with Tags](images/Refactor/SurroundWithTags.gif) + + * use contextual menu + +If you prefer using keyboard to process `Surround with Tags (Wrap)`,you need to associate this command with a keybinding. See [Keyboard Shortcuts editor](https://code.visualstudio.com/docs/getstarted/keybindings#_keyboard-shortcuts-editor) for more informations. + +## Surround with Comments + +Similar to `Surround with Tags (Wrap)`, you can comment out the selected XML content: + +![Surround with Tags](images/Refactor/SurroundWithComments.gif) + +## Surround with CDATA + +Similar to `Surround with Tags (Wrap)`, you can surround the selected XML content with CDATA: + +![Surround with Tags](images/Refactor/SurroundWithCDATA.gif) \ No newline at end of file diff --git a/docs/images/Refactor/SurroundWithCDATA.gif b/docs/images/Refactor/SurroundWithCDATA.gif new file mode 100644 index 00000000..0a7364ed Binary files /dev/null and b/docs/images/Refactor/SurroundWithCDATA.gif differ diff --git a/docs/images/Refactor/SurroundWithComments.gif b/docs/images/Refactor/SurroundWithComments.gif new file mode 100644 index 00000000..9b310c67 Binary files /dev/null and b/docs/images/Refactor/SurroundWithComments.gif differ diff --git a/docs/images/Refactor/SurroundWithTags.gif b/docs/images/Refactor/SurroundWithTags.gif new file mode 100644 index 00000000..88bb48aa Binary files /dev/null and b/docs/images/Refactor/SurroundWithTags.gif differ diff --git a/package-lock.json b/package-lock.json index 9c57fb72..99996d45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ }, "@eslint/eslintrc": { "version": "1.3.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "requires": { @@ -29,13 +29,13 @@ "dependencies": { "argparse": { "version": "2.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "debug": { "version": "4.3.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { @@ -44,7 +44,7 @@ }, "js-yaml": { "version": "4.1.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { @@ -53,7 +53,7 @@ }, "minimatch": { "version": "3.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { @@ -62,7 +62,7 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } @@ -70,7 +70,7 @@ }, "@humanwhocodes/config-array": { "version": "0.9.5", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "requires": { @@ -81,7 +81,7 @@ "dependencies": { "debug": { "version": "4.3.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { @@ -90,7 +90,7 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } @@ -98,7 +98,7 @@ }, "@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, @@ -153,7 +153,7 @@ }, "@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { @@ -163,13 +163,13 @@ }, "@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { @@ -318,9 +318,9 @@ "dev": true }, "@types/vscode": { - "version": "1.69.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", - "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", + "version": "1.73.1", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.73.1.tgz", + "integrity": "sha512-eArfOrAoZVV+Ao9zQOCaFNaeXj4kTCD+bGS2gyNgIFZH9xVMuLMlRrEkhb22NyxycFWKV1UyTh03vhaVHmqVMg==", "dev": true }, "@types/yauzl": { @@ -334,7 +334,7 @@ }, "@typescript-eslint/eslint-plugin": { "version": "5.30.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.7.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.7.tgz", "integrity": "sha512-l4L6Do+tfeM2OK0GJsU7TUcM/1oN/N25xHm3Jb4z3OiDU4Lj8dIuxX9LpVMS9riSXQs42D1ieX7b85/r16H9Fw==", "dev": true, "requires": { @@ -351,7 +351,7 @@ "dependencies": { "debug": { "version": "4.3.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { @@ -360,13 +360,13 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "semver": { "version": "7.3.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { @@ -375,7 +375,7 @@ }, "tsutils": { "version": "3.21.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { @@ -386,7 +386,7 @@ }, "@typescript-eslint/parser": { "version": "5.30.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.7.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.7.tgz", "integrity": "sha512-Rg5xwznHWWSy7v2o0cdho6n+xLhK2gntImp0rJroVVFkcYFYQ8C8UJTSuTw/3CnExBmPjycjmUJkxVmjXsld6A==", "dev": true, "requires": { @@ -398,7 +398,7 @@ "dependencies": { "debug": { "version": "4.3.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { @@ -407,7 +407,7 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } @@ -415,7 +415,7 @@ }, "@typescript-eslint/scope-manager": { "version": "5.30.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.7.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.7.tgz", "integrity": "sha512-7BM1bwvdF1UUvt+b9smhqdc/eniOnCKxQT/kj3oXtj3LqnTWCAM0qHRHfyzCzhEfWX0zrW7KqXXeE4DlchZBKw==", "dev": true, "requires": { @@ -425,7 +425,7 @@ }, "@typescript-eslint/type-utils": { "version": "5.30.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.7.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.7.tgz", "integrity": "sha512-nD5qAE2aJX/YLyKMvOU5jvJyku4QN5XBVsoTynFrjQZaDgDV6i7QHFiYCx10wvn7hFvfuqIRNBtsgaLe0DbWhw==", "dev": true, "requires": { @@ -436,7 +436,7 @@ "dependencies": { "debug": { "version": "4.3.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { @@ -445,13 +445,13 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "tsutils": { "version": "3.21.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { @@ -462,13 +462,13 @@ }, "@typescript-eslint/types": { "version": "5.30.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@typescript-eslint/types/-/types-5.30.7.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.7.tgz", "integrity": "sha512-ocVkETUs82+U+HowkovV6uxf1AnVRKCmDRNUBUUo46/5SQv1owC/EBFkiu4MOHeZqhKz2ktZ3kvJJ1uFqQ8QPg==", "dev": true }, "@typescript-eslint/typescript-estree": { "version": "5.30.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.7.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.7.tgz", "integrity": "sha512-tNslqXI1ZdmXXrHER83TJ8OTYl4epUzJC0aj2i4DMDT4iU+UqLT3EJeGQvJ17BMbm31x5scSwo3hPM0nqQ1AEA==", "dev": true, "requires": { @@ -483,7 +483,7 @@ "dependencies": { "debug": { "version": "4.3.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { @@ -492,7 +492,7 @@ }, "is-glob": { "version": "4.0.3", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { @@ -501,13 +501,13 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "semver": { "version": "7.3.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { @@ -516,7 +516,7 @@ }, "tsutils": { "version": "3.21.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { @@ -527,7 +527,7 @@ }, "@typescript-eslint/utils": { "version": "5.30.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.7.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.7.tgz", "integrity": "sha512-Z3pHdbFw+ftZiGUnm1GZhkJgVqsDL5CYW2yj+TB2mfXDFOMqtbzQi2dNJIyPqPbx9mv2kUxS1gU+r2gKlKi1rQ==", "dev": true, "requires": { @@ -541,7 +541,7 @@ "dependencies": { "@types/json-schema": { "version": "7.0.11", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true } @@ -549,7 +549,7 @@ }, "@typescript-eslint/visitor-keys": { "version": "5.30.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.7.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.7.tgz", "integrity": "sha512-KrRXf8nnjvcpxDFOKej4xkD7657+PClJs5cJVSG7NNoCNnjEdc46juNAQt7AyuWctuCgs6mVRc1xGctEqrjxWw==", "dev": true, "requires": { @@ -744,7 +744,7 @@ }, "acorn-jsx": { "version": "5.3.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true }, @@ -788,7 +788,7 @@ }, "ajv-formats": { "version": "2.1.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "requires": { @@ -797,7 +797,7 @@ "dependencies": { "ajv": { "version": "8.11.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { @@ -809,7 +809,7 @@ }, "json-schema-traverse": { "version": "1.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true } @@ -873,7 +873,7 @@ }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -1026,7 +1026,7 @@ }, "array-union": { "version": "2.1.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, @@ -1204,7 +1204,7 @@ }, "bindings": { "version": "1.5.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, @@ -1341,7 +1341,7 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, @@ -1362,7 +1362,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -1373,7 +1373,7 @@ "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" }, "chokidar": { "version": "2.1.8", @@ -1507,7 +1507,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -1516,7 +1516,7 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, @@ -1555,12 +1555,12 @@ "component-type": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", - "integrity": "sha512-Kgy+2+Uwr75vAi6ChWXgHuLvd+QLD7ssgpaRq2zCvt80ptvAfMc/hijcJxXkBa2wMlEZcJvC2H8Ubo+A9ATHIg==" + "integrity": "sha1-ikeQFwAjjk/DIml3EjAibyS0Fak=" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -1641,7 +1641,7 @@ "crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" }, "d": { "version": "1.0.1", @@ -1676,7 +1676,7 @@ }, "deep-is": { "version": "0.1.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, @@ -1766,7 +1766,7 @@ }, "dir-glob": { "version": "3.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { @@ -1775,7 +1775,7 @@ "dependencies": { "path-type": { "version": "4.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true } @@ -1783,7 +1783,7 @@ }, "doctrine": { "version": "3.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { @@ -1831,7 +1831,7 @@ }, "enhanced-resolve": { "version": "5.10.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "requires": { @@ -1929,7 +1929,7 @@ }, "eslint": { "version": "8.20.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", "dev": true, "requires": { @@ -1972,13 +1972,13 @@ "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -1987,13 +1987,13 @@ }, "argparse": { "version": "2.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "chalk": { "version": "4.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -2003,7 +2003,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -2012,13 +2012,13 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "debug": { "version": "4.3.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { @@ -2027,13 +2027,13 @@ }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "eslint-scope": { "version": "7.1.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { @@ -2043,13 +2043,13 @@ }, "estraverse": { "version": "5.3.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "glob-parent": { "version": "6.0.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { @@ -2058,7 +2058,7 @@ "dependencies": { "is-glob": { "version": "4.0.3", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { @@ -2069,13 +2069,13 @@ }, "has-flag": { "version": "4.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { @@ -2084,7 +2084,7 @@ }, "minimatch": { "version": "3.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { @@ -2093,13 +2093,13 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { @@ -2108,7 +2108,7 @@ }, "supports-color": { "version": "7.2.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -2129,7 +2129,7 @@ }, "eslint-utils": { "version": "3.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { @@ -2138,7 +2138,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } @@ -2146,13 +2146,13 @@ }, "eslint-visitor-keys": { "version": "3.3.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "eslint-webpack-plugin": { "version": "3.2.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", "dev": true, "requires": { @@ -2165,7 +2165,7 @@ "dependencies": { "@types/eslint": { "version": "8.4.5", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", "dev": true, "requires": { @@ -2175,7 +2175,7 @@ }, "ajv": { "version": "8.11.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { @@ -2187,7 +2187,7 @@ }, "ajv-keywords": { "version": "5.1.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { @@ -2196,7 +2196,7 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { @@ -2205,7 +2205,7 @@ }, "fill-range": { "version": "7.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { @@ -2214,19 +2214,19 @@ }, "has-flag": { "version": "4.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-number": { "version": "7.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "jest-worker": { "version": "28.1.3", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", "dev": true, "requires": { @@ -2237,13 +2237,13 @@ }, "json-schema-traverse": { "version": "1.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "micromatch": { "version": "4.0.5", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { @@ -2253,13 +2253,13 @@ }, "picomatch": { "version": "2.3.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "schema-utils": { "version": "4.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { @@ -2271,7 +2271,7 @@ "dependencies": { "@types/json-schema": { "version": "7.0.11", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true } @@ -2279,7 +2279,7 @@ }, "supports-color": { "version": "8.1.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { @@ -2288,7 +2288,7 @@ }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { @@ -2299,7 +2299,7 @@ }, "espree": { "version": "9.3.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "requires": { @@ -2310,7 +2310,7 @@ "dependencies": { "acorn": { "version": "8.7.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true } @@ -2318,7 +2318,7 @@ }, "esquery": { "version": "1.4.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { @@ -2327,7 +2327,7 @@ "dependencies": { "estraverse": { "version": "5.3.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } @@ -2358,7 +2358,7 @@ }, "esutils": { "version": "2.0.3", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, @@ -2562,7 +2562,7 @@ }, "fast-glob": { "version": "3.2.11", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { @@ -2575,7 +2575,7 @@ "dependencies": { "braces": { "version": "3.0.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { @@ -2584,7 +2584,7 @@ }, "fill-range": { "version": "7.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { @@ -2593,7 +2593,7 @@ }, "glob-parent": { "version": "5.1.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { @@ -2602,13 +2602,13 @@ }, "is-number": { "version": "7.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "micromatch": { "version": "4.0.5", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { @@ -2618,13 +2618,13 @@ }, "picomatch": { "version": "2.3.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { @@ -2653,7 +2653,7 @@ }, "fastq": { "version": "1.13.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { @@ -2670,7 +2670,7 @@ }, "file-entry-cache": { "version": "6.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { @@ -2679,7 +2679,7 @@ }, "file-uri-to-path": { "version": "1.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true @@ -2761,7 +2761,7 @@ }, "flat-cache": { "version": "3.0.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { @@ -2771,7 +2771,7 @@ }, "flatted": { "version": "3.2.6", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, @@ -2851,7 +2851,7 @@ }, "fsevents": { "version": "1.2.13", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, "optional": true, @@ -2891,7 +2891,7 @@ }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, @@ -3055,7 +3055,7 @@ }, "globals": { "version": "13.16.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/globals/-/globals-13.16.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", "dev": true, "requires": { @@ -3064,7 +3064,7 @@ }, "globby": { "version": "11.1.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { @@ -3156,7 +3156,7 @@ }, "has-flag": { "version": "4.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, @@ -3275,13 +3275,13 @@ }, "ignore": { "version": "5.2.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "import-fresh": { "version": "3.3.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { @@ -3291,7 +3291,7 @@ "dependencies": { "resolve-from": { "version": "4.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true } @@ -3309,7 +3309,7 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, @@ -3607,7 +3607,7 @@ "join-component": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", - "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==" + "integrity": "sha1-uEF7dQZho5K+4sJTfGiyqdSXfNU=" }, "json-parse-better-errors": { "version": "1.0.2", @@ -3630,7 +3630,7 @@ "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { "graceful-fs": "^4.1.6" } @@ -3686,7 +3686,7 @@ }, "levn": { "version": "0.4.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { @@ -3747,11 +3747,11 @@ "lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, @@ -3857,7 +3857,7 @@ }, "merge2": { "version": "1.4.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, @@ -3957,7 +3957,7 @@ }, "nan": { "version": "2.16.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/nan/-/nan-2.16.0.tgz", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", "dev": true, "optional": true @@ -3983,7 +3983,7 @@ }, "natural-compare": { "version": "1.4.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, @@ -4175,7 +4175,7 @@ }, "optionator": { "version": "0.9.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { @@ -4189,7 +4189,7 @@ "dependencies": { "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true } @@ -4216,7 +4216,7 @@ "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==" + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" }, "p-is-promise": { "version": "2.1.0", @@ -4260,7 +4260,7 @@ }, "parent-module": { "version": "1.0.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { @@ -4365,7 +4365,7 @@ }, "picomatch": { "version": "2.3.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, @@ -4419,7 +4419,7 @@ }, "prelude-ls": { "version": "1.2.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, @@ -4469,7 +4469,7 @@ }, "queue-microtask": { "version": "1.2.3", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, @@ -4550,7 +4550,7 @@ }, "regexpp": { "version": "3.2.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, @@ -4623,7 +4623,7 @@ }, "require-from-string": { "version": "2.0.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, @@ -4691,7 +4691,7 @@ }, "reusify": { "version": "1.0.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, @@ -4706,7 +4706,7 @@ }, "run-parallel": { "version": "1.2.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { @@ -4827,7 +4827,7 @@ }, "slash": { "version": "3.0.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, @@ -5106,13 +5106,13 @@ }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -5131,7 +5131,7 @@ }, "tapable": { "version": "2.2.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, @@ -5192,7 +5192,7 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, @@ -5291,7 +5291,7 @@ }, "ts-loader": { "version": "9.3.1", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/ts-loader/-/ts-loader-9.3.1.tgz", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.3.1.tgz", "integrity": "sha512-OkyShkcZTsTwyS3Kt7a4rsT/t2qvEVQuKCTg4LJmpj9fhFR7ukGdZwV6Qq3tRUkqcXtfGpPR7+hFKHCG/0d3Lw==", "dev": true, "requires": { @@ -5327,7 +5327,7 @@ }, "micromatch": { "version": "4.0.5", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { @@ -5337,7 +5337,7 @@ }, "semver": { "version": "7.3.7", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { @@ -5369,7 +5369,7 @@ }, "type-check": { "version": "0.4.0", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { @@ -5378,7 +5378,7 @@ }, "type-fest": { "version": "0.20.2", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, @@ -5390,7 +5390,7 @@ }, "typescript": { "version": "4.7.4", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, @@ -5861,7 +5861,7 @@ }, "word-wrap": { "version": "1.2.3", - "resolved": "https://repository.engineering.redhat.com/nexus/repository/registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, diff --git a/package.json b/package.json index b484a098..2b064f01 100644 --- a/package.json +++ b/package.json @@ -684,17 +684,69 @@ "command": "xml.restart.language.server", "title": "Restart XML Language Server", "category": "XML" + }, + { + "command": "xml.refactor.surround.with.tags", + "title": "Surround with Tags (Wrap)", + "category": "XML" + }, + { + "command": "xml.refactor.surround.with.comments", + "title": "Surround with Comments", + "category": "XML" + }, + { + "command": "xml.refactor.surround.with.cdata", + "title": "Surround with CDATA", + "category": "XML" } ], "menus": { "commandPalette": [ { "command": "xml.validation.current.file", - "when": "editorLangId == xml" + "when": "editorLangId in xml.supportedLanguageIds && XMLLSReady" + }, + { + "command": "xml.validation.all.files", + "when": "XMLLSReady" }, { "command": "xml.command.bind.grammar", - "when": "resourceFilename =~ /xml/ && editorIsOpen" + "when": "resourceFilename =~ /xml/ && editorIsOpen && XMLLSReady" + }, + { + "command": "xml.restart.language.server", + "when": "XMLLSReady" + }, + { + "command": "xml.refactor.surround.with.tags", + "when": "editorLangId in xml.supportedLanguageIds && XMLLSReady" + }, + { + "command": "xml.refactor.surround.with.comments", + "when": "editorLangId in xml.supportedLanguageIds && XMLLSReady" + }, + { + "command": "xml.refactor.surround.with.cdata", + "when": "editorLangId in xml.supportedLanguageIds && XMLLSReady" + } + ], + "editor/context": [ + { + "command": "xml.refactor.surround.with.tags", + "when": "editorLangId in xml.supportedLanguageIds && XMLLSReady", + "group": "1_modification" + }, + { + "command": "xml.refactor.surround.with.comments", + "when": "editorLangId in xml.supportedLanguageIds && XMLLSReady", + "group": "1_modification" + }, + { + "command": "xml.refactor.surround.with.cdata", + "when": "editorLangId in xml.supportedLanguageIds && XMLLSReady", + "group": "1_modification" } ] }, @@ -705,4 +757,4 @@ } ] } -} \ No newline at end of file +} diff --git a/src/client/xmlClient.ts b/src/client/xmlClient.ts index e8020a98..0b61ad3a 100644 --- a/src/client/xmlClient.ts +++ b/src/client/xmlClient.ts @@ -1,6 +1,6 @@ import { TelemetryEvent } from '@redhat-developer/vscode-redhat-telemetry/lib'; import { commands, ExtensionContext, extensions, Position, TextDocument, TextEditor, Uri, window, workspace } from 'vscode'; -import { Command, ConfigurationParams, ConfigurationRequest, DidChangeConfigurationNotification, ExecuteCommandParams, LanguageClientOptions, MessageType, NotificationType, RequestType, RevealOutputChannelOn, TextDocumentPositionParams } from "vscode-languageclient"; +import { Command, ConfigurationParams, ConfigurationRequest, DidChangeConfigurationNotification, DocumentSelector, ExecuteCommandParams, LanguageClientOptions, MessageType, NotificationType, RequestType, RevealOutputChannelOn, State, TextDocumentPositionParams } from "vscode-languageclient"; import { Executable, LanguageClient } from 'vscode-languageclient/node'; import { XMLFileAssociation } from '../api/xmlExtensionApi'; import { registerClientServerCommands } from '../commands/registerCommands'; @@ -14,6 +14,17 @@ import * as Telemetry from '../telemetry'; import { ClientErrorHandler } from './clientErrorHandler'; import { activateTagClosing, AutoCloseResult } from './tagClosing'; +export const XML_SUPPORTED_LANGUAGE_IDS = ['xml', 'xsl', 'dtd', 'svg']; + +const XML_DOCUMENT_SELECTOR: DocumentSelector = + XML_SUPPORTED_LANGUAGE_IDS + .map(langId => ({ scheme: 'file', language: langId })) + .concat( + XML_SUPPORTED_LANGUAGE_IDS + .map(langId => ({ scheme: 'untitled', language: langId })) + ); + + const ExecuteClientCommandRequest: RequestType = new RequestType('xml/executeClientCommand'); const TagCloseRequest: RequestType = new RequestType('xml/closeTag'); @@ -34,6 +45,11 @@ export async function startLanguageClient(context: ExtensionContext, executable: const languageClientOptions: LanguageClientOptions = getLanguageClientOptions(logfile, externalXmlSettings, requirementsData, context); languageClient = new LanguageClient('xml', 'XML Support', executable, languageClientOptions); + languageClient.onDidChangeState(e => { + // Notify that XML language client is started / stoped + commands.executeCommand('setContext', 'XMLLSReady', e.newState == State.Running); + }); + languageClient.onTelemetry(async (e: TelemetryEvent) => { if (e.name === Telemetry.SERVER_INITIALIZED_EVT) { e.properties[Telemetry.SETTINGS_EVT] = { @@ -120,16 +136,7 @@ function getLanguageClientOptions( context: ExtensionContext): LanguageClientOptions { return { // Register the server for xml, xsl, dtd, svg - documentSelector: [ - { scheme: 'file', language: 'xml' }, - { scheme: 'file', language: 'xsl' }, - { scheme: 'file', language: 'dtd' }, - { scheme: 'file', language: 'svg' }, - { scheme: 'untitled', language: 'xml' }, - { scheme: 'untitled', language: 'xsl' }, - { scheme: 'untitled', language: 'dtd' }, - { scheme: 'untitled', language: 'svg' } - ], + documentSelector: XML_DOCUMENT_SELECTOR, revealOutputChannelOn: RevealOutputChannelOn.Never, //wrap with key 'settings' so it can be handled same a DidChangeConfiguration initializationOptions: { diff --git a/src/commands/clientCommandConstants.ts b/src/commands/clientCommandConstants.ts index fc3b1bc6..7b021f85 100644 --- a/src/commands/clientCommandConstants.ts +++ b/src/commands/clientCommandConstants.ts @@ -65,4 +65,13 @@ export const EXECUTE_WORKSPACE_COMMAND = 'xml.workspace.executeCommand'; /** * Command to restart connection to language server. */ - export const RESTART_LANGUAGE_SERVER = 'xml.restart.language.server'; \ No newline at end of file + export const RESTART_LANGUAGE_SERVER = 'xml.restart.language.server'; + +/** + * Command to wrap element. + */ + export const REFACTOR_SURROUND_WITH_TAGS = 'xml.refactor.surround.with.tags'; + + export const REFACTOR_SURROUND_WITH_COMMENTS = 'xml.refactor.surround.with.comments'; + + export const REFACTOR_SURROUND_WITH_CDATA = 'xml.refactor.surround.with.cdata'; \ No newline at end of file diff --git a/src/commands/registerCommands.ts b/src/commands/registerCommands.ts index be0bf5f4..ab24d335 100644 --- a/src/commands/registerCommands.ts +++ b/src/commands/registerCommands.ts @@ -1,6 +1,7 @@ import * as path from 'path'; -import { commands, ConfigurationTarget, env, ExtensionContext, OpenDialogOptions, Position, QuickPickItem, TextDocument, Uri, window, workspace, WorkspaceEdit } from "vscode"; -import { CancellationToken, ExecuteCommandParams, ExecuteCommandRequest, ReferencesRequest, TextDocumentEdit, TextDocumentIdentifier } from "vscode-languageclient"; +import * as vscode from 'vscode'; +import { commands, ConfigurationTarget, env, ExtensionContext, OpenDialogOptions, Position, QuickPickItem, SnippetString, TextDocument, Uri, window, workspace, WorkspaceEdit, Selection } from "vscode"; +import { CancellationToken, ExecuteCommandParams, ExecuteCommandRequest, ReferencesRequest, TextDocumentEdit, TextDocumentIdentifier, TextEdit } from "vscode-languageclient"; import { LanguageClient } from 'vscode-languageclient/node'; import { markdownPreviewProvider } from "../markdownPreviewProvider"; import { DEBUG } from '../server/java/javaServerStarter'; @@ -29,6 +30,7 @@ export async function registerClientServerCommands(context: ExtensionContext, la registerCodeLensReferencesCommands(context, languageClient); registerValidationCommands(context); + registerRefactorCommands(context, languageClient); registerAssociationCommands(context, languageClient); registerRestartLanguageServerCommand(context, languageClient); @@ -182,7 +184,7 @@ async function grammarAssociationCommand(documentURI: Uri, languageClient: Langu if (!predefinedUrl || !predefinedUrl.startsWith('http')) { predefinedUrl = ''; } - grammarURI = await window.showInputBox({title:'Fill with schema / grammar URL' , value:predefinedUrl}); + grammarURI = await window.showInputBox({ title: 'Fill with schema / grammar URL', value: predefinedUrl }); } else { // step 2.1: Open a dialog to select the XSD, DTD, RelaxNG file to bind. const options: OpenDialogOptions = { @@ -366,3 +368,97 @@ function registerRestartLanguageServerCommand(context: ExtensionContext, languag })); } + +interface SurroundWithResponse { + start: TextEdit; + end: TextEdit; +} + +class SurroundWithKind { + + static readonly tags = 'tags'; + static readonly comments = 'comments'; + static readonly cdata = 'cdata'; + +} + +/** + * Register commands used for refactoring XML files + * + * @param context the extension context + */ +function registerRefactorCommands(context: ExtensionContext, languageClient: LanguageClient) { + + // Surround with Tags (Wrap) + context.subscriptions.push(commands.registerCommand(ClientCommandConstants.REFACTOR_SURROUND_WITH_TAGS, async () => { + await surroundWith(SurroundWithKind.tags, languageClient); + })); + + // Surround with Comments + context.subscriptions.push(commands.registerCommand(ClientCommandConstants.REFACTOR_SURROUND_WITH_COMMENTS, async () => { + await surroundWith(SurroundWithKind.comments, languageClient); + })); + + + // Surround with CDATA + context.subscriptions.push(commands.registerCommand(ClientCommandConstants.REFACTOR_SURROUND_WITH_CDATA, async () => { + await surroundWith(SurroundWithKind.cdata, languageClient); + })); +} + +async function surroundWith(surroundWithType: SurroundWithKind, languageClient: LanguageClient) { + const activeEditor = window.activeTextEditor; + if (!activeEditor) { + return; + } + const selection = activeEditor.selections[0]; + if (!selection) { + return; + } + + const uri = window.activeTextEditor.document.uri; + const identifier = TextDocumentIdentifier.create(uri.toString()); + const range = languageClient.code2ProtocolConverter.asRange(selection); + const supportedSnippet: boolean = vscode.SnippetTextEdit ? true : false; + + let result: SurroundWithResponse; + try { + result = await commands.executeCommand(ServerCommandConstants.REFACTOR_SURROUND_WITH, identifier, range, surroundWithType, supportedSnippet); + } catch (error) { + console.log(`Error while surround with : ${error}`); + } + + if (!result) { + return; + } + + const startTag = result.start.newText; + const endTag = result.end.newText; + + if (supportedSnippet) { + // SnippetTextEdit is supported, uses snippet (with choice) to manage cursor. + const startRange = languageClient.protocol2CodeConverter.asRange(result.start.range); + const endRange = languageClient.protocol2CodeConverter.asRange(result.end.range); + const snippetEdits = [new vscode.SnippetTextEdit(startRange, new SnippetString(startTag)), new vscode.SnippetTextEdit(endRange, new SnippetString(endTag))]; + const edit = new WorkspaceEdit(); + edit.set(activeEditor.document.uri, snippetEdits); + await workspace.applyEdit(edit); + } else { + // SnippetTextEdit is not supported, update start / end tag + const startPos = languageClient.protocol2CodeConverter.asPosition(result.start.range.start); + const endPos = languageClient.protocol2CodeConverter.asPosition(result.end.range.start); + activeEditor.edit((selectedText) => { + selectedText.insert(startPos, startTag); + selectedText.insert(endPos, endTag); + }) + + if (surroundWithType === SurroundWithKind.tags) { + // Force the show of completion + const pos = languageClient.protocol2CodeConverter.asPosition(result.start.range.start); + const posAfterStartBracket = new Position(pos.line, pos.character + 1); + activeEditor.selections = [new Selection(posAfterStartBracket, posAfterStartBracket)]; + commands.executeCommand("editor.action.triggerSuggest"); + } + } + +} diff --git a/src/commands/serverCommandConstants.ts b/src/commands/serverCommandConstants.ts index 7aab9dab..68a426ee 100644 --- a/src/commands/serverCommandConstants.ts +++ b/src/commands/serverCommandConstants.ts @@ -24,9 +24,14 @@ export const ASSOCIATE_GRAMMAR_INSERT = "xml.associate.grammar.insert"; /** * Command to check if the current XML document is bound to a grammar */ -export const CHECK_BOUND_GRAMMAR = "xml.check.bound.grammar" +export const CHECK_BOUND_GRAMMAR = "xml.check.bound.grammar"; /** * Command to check if a given file pattern matches any file on the workspace */ -export const CHECK_FILE_PATTERN = "xml.check.file.pattern" \ No newline at end of file +export const CHECK_FILE_PATTERN = "xml.check.file.pattern"; + +/** + * Command to surround with tags, comments, cdata + */ + export const REFACTOR_SURROUND_WITH = "xml.refactor.surround.with"; \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 9bf04254..9e1cd5c8 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -13,13 +13,13 @@ import * as fs from 'fs-extra'; import * as os from 'os'; import * as path from 'path'; -import { ExtensionContext, Uri, extensions, languages } from "vscode"; +import { ExtensionContext, Uri, extensions, languages, commands } from "vscode"; import { Executable, LanguageClient } from 'vscode-languageclient/node'; import { XMLExtensionApi } from './api/xmlExtensionApi'; import { getXmlExtensionApiImplementation } from './api/xmlExtensionApiImplementation'; import { cleanUpHeapDumps } from './client/clientErrorHandler'; import { getIndentationRules } from './client/indentation'; -import { startLanguageClient } from './client/xmlClient'; +import { startLanguageClient, XML_SUPPORTED_LANGUAGE_IDS } from './client/xmlClient'; import { registerClientOnlyCommands } from './commands/registerCommands'; import { collectXmlJavaExtensions } from './plugin'; import * as requirements from './server/requirements'; @@ -38,6 +38,8 @@ export async function activate(context: ExtensionContext): Promise