Skip to content

Commit e7fa4f8

Browse files
committed
move hardcoded defaults into cmdline options; support running in root folder against a specific plugins/* folder
Signed-off-by: Nick Boldt <[email protected]>
1 parent 58a5137 commit e7fa4f8

File tree

4 files changed

+182
-53
lines changed

4 files changed

+182
-53
lines changed

packages/cli/src/commands/index.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,25 @@ export function registerScriptCommand(program: Command) {
147147
command
148148
.command('metadata')
149149
.description('Add metadata to a plugin')
150-
.action(lazy(() => import('./metadata').then(m => m.default)));
150+
.option('--author <author>', 'Set author', 'Red Hat')
151+
.option('--license <license>', 'Set license', 'Apache-2.0')
152+
.option('--homepage <homepage>', 'Set homepage', 'https://red.ht/rhdh')
153+
.option(
154+
'--bugs <bugs>',
155+
'Set issue tracker URL',
156+
'https://github.com/janus-idp/backstage-plugins/issues',
157+
)
158+
.option(
159+
'--keywords <unique,keywords,to,add>',
160+
'Add keywords',
161+
'support:production,lifecycle:active',
162+
)
163+
.option(
164+
'--dir <path/to/folder>',
165+
'Folder in which to make changes to package.json, if not the current directory',
166+
'./',
167+
)
168+
.action(lazy(() => import('./metadata').then(m => m.command)));
151169
}
152170

153171
export function registerCommands(program: Command) {

packages/cli/src/commands/metadata/command.ts

Lines changed: 49 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
// test with ./packages/cli/bin/janus-cli package metadata --help
22

3+
import { OptionValues } from 'commander';
34
import _ from 'lodash';
45

56
import * as fs from 'fs';
67
import { execSync } from 'node:child_process';
78
import { readFileSync, writeFileSync } from 'node:fs';
89
import { join } from 'node:path';
910

10-
export default async () => {
11-
updatePackageMetadata();
12-
};
11+
export async function command(opts: OptionValues): Promise<void> {
12+
updatePackageMetadata(opts);
13+
}
1314

1415
interface Repository {
1516
type: string;
@@ -75,21 +76,22 @@ function findCodeowners(element: String) {
7576
return findCodeowners(`${element}/..`);
7677
}
7778

78-
export function updatePackageMetadata() {
79-
// load the existing package.json in this folder
80-
const packageJSONPath = join(process.cwd(), 'package.json');
81-
const packageJSON = JSON.parse(
82-
readFileSync(packageJSONPath, 'utf8'),
83-
) as packageJSON;
84-
85-
console.log(`Updating ${process.cwd()} / package.json`);
79+
export function updatePackageMetadata(opts: OptionValues) {
80+
// load the package.json from the specified (or current) folder
81+
const workingDir = `${process.cwd()}/${opts.dir}`;
82+
console.log(`Updating ${workingDir} / package.json`);
8683

8784
// compute the root dir and relative path to the current dir
88-
const [rootdir, relative_path] = path.resolveRelativeFromAbsolute(
89-
findCodeowners(`${process.cwd()}`),
90-
);
85+
const [rootdir, relative_path] = opts.dir
86+
? [process.cwd(), opts.dir]
87+
: path.resolveRelativeFromAbsolute(findCodeowners(`${process.cwd()}`));
9188
// console.log(` @ rootdir = ${rootdir}, relative_path = ${relative_path}`)
9289

90+
const packageJSONPath = join(workingDir, 'package.json');
91+
const packageJSON = JSON.parse(
92+
readFileSync(packageJSONPath, 'utf8'),
93+
) as packageJSON;
94+
9395
/* now let's change some values */
9496

9597
// 1. add backstage version matching the current value of backstage.json in this repo
@@ -116,7 +118,6 @@ export function updatePackageMetadata() {
116118
if (packageJSON.repository.directory) {
117119
const Codeowners = require('codeowners');
118120
const repos = new Codeowners();
119-
// console.log(` > load CODEOWNER data for ${packageJSON.repository.directory}`)
120121
owners = repos.getOwner(relative_path);
121122
} else {
122123
console.log(
@@ -125,15 +126,39 @@ export function updatePackageMetadata() {
125126
}
126127
packageJSON.maintainers = owners;
127128

128-
// 4. set some hardcoded values
129-
// TODO should these be commandline flags passed to janus-cli package metadata for better reusability in community-plugins repo?
130-
packageJSON.author = 'Red Hat';
131-
packageJSON.license = 'Apache-2.0';
132-
packageJSON.homepage = new URL('https://red.ht/rhdh');
133-
packageJSON.bugs = new URL(
134-
'https://github.com/janus-idp/backstage-plugins/issues',
135-
);
136-
packageJSON.keywords.push('support:production', 'lifecycle:active');
129+
// 4. set some hardcoded values based on commandline flags
130+
packageJSON.author = opts.author;
131+
packageJSON.license = opts.license;
132+
packageJSON.homepage = new URL(opts.homepage);
133+
packageJSON.bugs = new URL(opts.bugs);
134+
135+
// eslint-disable-next-line prefer-const
136+
let newKeywords = opts.keywords.split(',');
137+
// if already have keywords, replace lifecycle and support with new values (if defined)
138+
if (packageJSON.keywords.length > 0) {
139+
for (let i = 0; i < packageJSON.keywords.length; i++) {
140+
// can only have ONE lifecycle and one support keyword, so remove replace any existing values
141+
if (
142+
packageJSON.keywords[i].startsWith('lifecycle:') ||
143+
packageJSON.keywords[i].startsWith('support:')
144+
) {
145+
for (let j = 0; j < newKeywords.length; j++) {
146+
if (
147+
newKeywords[j].startsWith('lifecycle:') ||
148+
newKeywords[j].startsWith('support:')
149+
) {
150+
// replace existing; remove from array
151+
packageJSON.keywords[i] = newKeywords[j];
152+
newKeywords.splice(j, 1);
153+
}
154+
}
155+
}
156+
}
157+
}
158+
// add in the remaining keywords + dedupe
159+
for (let j = 0; j < newKeywords.length; j++) {
160+
packageJSON.keywords.push(newKeywords[j]);
161+
}
137162
packageJSON.keywords = _.uniq(packageJSON.keywords);
138163

139164
/* all done! */
Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,17 @@
1-
export { default } from './command';
1+
/*
2+
* Copyright 2023 The Backstage Authors
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
export { command } from './command';

yarn.lock

Lines changed: 97 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15967,7 +15967,14 @@
1596715967
dependencies:
1596815968
"@types/react" "*"
1596915969

15970-
"@types/[email protected]", "@types/react-dom@^18", "@types/react-dom@^18.0.0":
15970+
15971+
version "18.2.18"
15972+
resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd"
15973+
integrity sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==
15974+
dependencies:
15975+
"@types/react" "*"
15976+
15977+
"@types/react-dom@^18.0.0":
1597115978
version "18.3.0"
1597215979
resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0"
1597315980
integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==
@@ -16019,14 +16026,32 @@
1601916026
dependencies:
1602016027
"@types/react" "*"
1602116028

16022-
"@types/react@*", "@types/react@18.2.48", "@types/react@>=16", "@types/react@^16.13.1 || ^17.0.0", "@types/react@^16.13.1 || ^17.0.0 || ^18.0.0", "@types/react@^18":
16029+
"@types/react@*", "@types/react@>=16", "@types/react@^16.13.1 || ^17.0.0 || ^18.0.0":
1602316030
version "18.3.1"
1602416031
resolved "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz#fed43985caa834a2084d002e4771e15dfcbdbe8e"
1602516032
integrity sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==
1602616033
dependencies:
1602716034
"@types/prop-types" "*"
1602816035
csstype "^3.0.2"
1602916036

16037+
16038+
version "18.2.48"
16039+
resolved "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1"
16040+
integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==
16041+
dependencies:
16042+
"@types/prop-types" "*"
16043+
"@types/scheduler" "*"
16044+
csstype "^3.0.2"
16045+
16046+
"@types/react@^16.13.1 || ^17.0.0":
16047+
version "17.0.80"
16048+
resolved "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz#a5dfc351d6a41257eb592d73d3a85d3b7dbcbb41"
16049+
integrity sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==
16050+
dependencies:
16051+
"@types/prop-types" "*"
16052+
"@types/scheduler" "^0.16"
16053+
csstype "^3.0.2"
16054+
1603016055
"@types/readdir-glob@*":
1603116056
version "1.1.5"
1603216057
resolved "https://registry.yarnpkg.com/@types/readdir-glob/-/readdir-glob-1.1.5.tgz#21a4a98898fc606cb568ad815f2a0eedc24d412a"
@@ -16090,6 +16115,16 @@
1609016115
dependencies:
1609116116
rollup-plugin-postcss "*"
1609216117

16118+
"@types/scheduler@*":
16119+
version "0.23.0"
16120+
resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.23.0.tgz#0a6655b3e2708eaabca00b7372fafd7a792a7b09"
16121+
integrity sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==
16122+
16123+
"@types/scheduler@^0.16":
16124+
version "0.16.8"
16125+
resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff"
16126+
integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==
16127+
1609316128
"@types/semver@^7.3.12", "@types/semver@^7.5.0":
1609416129
version "7.5.3"
1609516130
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04"
@@ -16404,24 +16439,45 @@
1640416439
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.8.0.tgz#1ab5d4fe1d613e3f65f6684026ade6b94f7e3ded"
1640516440
integrity sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==
1640616441

16407-
"@typescript-eslint/[email protected]":
16408-
version "7.8.0"
16409-
resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz#1fd2577b3ad883b769546e2d1ef379f929a7091d"
16410-
integrity sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==
16442+
"@typescript-eslint/[email protected]":
16443+
version "5.62.0"
16444+
resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
16445+
integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
16446+
dependencies:
16447+
"@typescript-eslint/types" "5.62.0"
16448+
"@typescript-eslint/visitor-keys" "5.62.0"
16449+
debug "^4.3.4"
16450+
globby "^11.1.0"
16451+
is-glob "^4.0.3"
16452+
semver "^7.3.7"
16453+
tsutils "^3.21.0"
1641116454

16412-
"@typescript-eslint/typescript-estree@5.62.0", "@typescript-eslint/typescript-estree@6.21.0", "@typescript-eslint/[email protected]", "@typescript-eslint/typescript-estree@^7.3.1":
16413-
version "7.8.0"
16414-
resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz#b028a9226860b66e623c1ee55cc2464b95d2987c"
16415-
integrity sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==
16455+
"@typescript-eslint/[email protected]":
16456+
version "6.21.0"
16457+
resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46"
16458+
integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==
1641616459
dependencies:
16417-
"@typescript-eslint/types" "7.8.0"
16418-
"@typescript-eslint/visitor-keys" "7.8.0"
16460+
"@typescript-eslint/types" "6.21.0"
16461+
"@typescript-eslint/visitor-keys" "6.21.0"
1641916462
debug "^4.3.4"
1642016463
globby "^11.1.0"
1642116464
is-glob "^4.0.3"
16422-
minimatch "^9.0.4"
16423-
semver "^7.6.0"
16424-
ts-api-utils "^1.3.0"
16465+
minimatch "9.0.3"
16466+
semver "^7.5.4"
16467+
ts-api-utils "^1.0.1"
16468+
16469+
"@typescript-eslint/[email protected]":
16470+
version "6.8.0"
16471+
resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz#9565f15e0cd12f55cf5aa0dfb130a6cb0d436ba1"
16472+
integrity sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==
16473+
dependencies:
16474+
"@typescript-eslint/types" "6.8.0"
16475+
"@typescript-eslint/visitor-keys" "6.8.0"
16476+
debug "^4.3.4"
16477+
globby "^11.1.0"
16478+
is-glob "^4.0.3"
16479+
semver "^7.5.4"
16480+
ts-api-utils "^1.0.1"
1642516481

1642616482
"@typescript-eslint/[email protected]", "@typescript-eslint/utils@^6.0.0":
1642716483
version "6.21.0"
@@ -16474,14 +16530,6 @@
1647416530
"@typescript-eslint/types" "6.8.0"
1647516531
eslint-visitor-keys "^3.4.1"
1647616532

16477-
"@typescript-eslint/[email protected]":
16478-
version "7.8.0"
16479-
resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz#7285aab991da8bee411a42edbd5db760d22fdd91"
16480-
integrity sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==
16481-
dependencies:
16482-
"@typescript-eslint/types" "7.8.0"
16483-
eslint-visitor-keys "^3.4.3"
16484-
1648516533
1648616534
version "4.22.0"
1648716535
resolved "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.22.0.tgz#383962e76025537ec81a32ec00145e7cc4eb67f1"
@@ -28167,6 +28215,13 @@ [email protected], minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch
2816728215
dependencies:
2816828216
brace-expansion "^1.1.7"
2816928217

28218+
28219+
version "9.0.3"
28220+
resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
28221+
integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
28222+
dependencies:
28223+
brace-expansion "^2.0.1"
28224+
2817028225
minimatch@^4.2.3:
2817128226
version "4.2.3"
2817228227
resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz#b4dcece1d674dee104bb0fb833ebb85a78cbbca6"
@@ -28188,7 +28243,7 @@ minimatch@^7.4.2, minimatch@^7.4.3:
2818828243
dependencies:
2818928244
brace-expansion "^2.0.1"
2819028245

28191-
minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3, minimatch@^9.0.4:
28246+
minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3:
2819228247
version "9.0.4"
2819328248
resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
2819428249
integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
@@ -33505,7 +33560,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
3350533560
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
3350633561
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
3350733562

33508-
semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0:
33563+
semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4:
3350933564
version "7.6.2"
3351033565
resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
3351133566
integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
@@ -35416,7 +35471,7 @@ ts-algebra@^2.0.0:
3541635471
resolved "https://registry.npmjs.org/ts-algebra/-/ts-algebra-2.0.0.tgz#4e3e0953878f26518fce7f6bb115064a65388b7a"
3541735472
integrity sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==
3541835473

35419-
ts-api-utils@^1.0.1, ts-api-utils@^1.3.0:
35474+
ts-api-utils@^1.0.1:
3542035475
version "1.3.0"
3542135476
resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
3542235477
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
@@ -36836,7 +36891,22 @@ vscode-languageserver-textdocument@^1.0.0, vscode-languageserver-textdocument@^1
3683636891
resolved "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf"
3683736892
integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==
3683836893

36839-
[email protected], [email protected], [email protected], [email protected], vscode-languageserver-types@^3.0.0, vscode-languageserver-types@^3.16.0, vscode-languageserver-types@^3.17.1:
36894+
36895+
version "3.16.0"
36896+
resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
36897+
integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
36898+
36899+
36900+
version "3.16.0-next.2"
36901+
resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083"
36902+
integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==
36903+
36904+
36905+
version "3.17.5"
36906+
resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz#3273676f0cf2eab40b3f44d085acbb7f08a39d8a"
36907+
integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==
36908+
36909+
vscode-languageserver-types@^3.0.0, vscode-languageserver-types@^3.16.0, vscode-languageserver-types@^3.17.1:
3684036910
version "3.17.1"
3684136911
resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz#c2d87fa7784f8cac389deb3ff1e2d9a7bef07e16"
3684236912
integrity sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ==

0 commit comments

Comments
 (0)