From d840e4a8cd1ef2f69df41f0e7ba3de73789ef1ab Mon Sep 17 00:00:00 2001 From: Stan Dzhumaev Date: Fri, 29 Nov 2024 13:48:50 -0800 Subject: [PATCH] [AXON-29] chore: initial setup of Github CI --- .github/workflows/build.yaml | 32 ++ .github/workflows/release-nightly.yaml | 46 +++ .github/workflows/release.yaml | 63 ++++ bitbucket-pipelines.yml | 48 --- package-lock.json | 405 ++++++++++++++++++++++++- package.json | 2 + 6 files changed, 542 insertions(+), 54 deletions(-) create mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/release-nightly.yaml create mode 100644 .github/workflows/release.yaml delete mode 100644 bitbucket-pipelines.yml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..ce5131f5 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,32 @@ +name: Build + +on: + push: + branches: + - '*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'npm' + + - name: Install dependencies + run: npm install + + - name: Run linter + run: npm run lint + + - name: Run unit tests + run: npm run test + + - name: Build the extension + run: npm run extension:package + diff --git a/.github/workflows/release-nightly.yaml b/.github/workflows/release-nightly.yaml new file mode 100644 index 00000000..2c938cf1 --- /dev/null +++ b/.github/workflows/release-nightly.yaml @@ -0,0 +1,46 @@ +name: Release Nightly + +on: + schedule: + - cron: '0 0 * * *' + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Replace package name + run: sed -i 's/atlascode/atlascode-nightly/g' package.json + + # TODO if we want to publish this, just a different version is not enough + # We'd probably want to use a different id for the extension, too - e.g. atlascode-nightly + - name: Evaluate version + run: | + RELEASE_VERSION=$(./nightlyver.sh ${GITHUB_SHA}) && \ + echo "RELEASE_VERSION=${RELEASE_VERSION}" >> $GITHUB_ENV && \ + echo "Using version '${RELEASE_VERSION}'" + + - name: Set version + run: npm -no-git-tag-version --allow-same-version -f version $RELEASE_VERSION + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'npm' + + - name: Install dependencies + run: npm install + + - name: Run linter + run: npm run lint + + - name: Run unit tests + run: npm run test + + - name: Build the extension + run: npm run extension:package + + # No publish actions here for the time being - let's get the builds going first diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..2292153b --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,63 @@ +name: Release + +on: + push: + tags: + - '*' + +jobs: + release: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'npm' + + - name: Evaluate version + run: | + RELEASE_VERSION=${GITHUB_REF##*/v} && \ + echo "RELEASE_VERSION=${RELEASE_VERSION}" >> $GITHUB_ENV && \ + echo "Using version '${RELEASE_VERSION}'" + + - name: Set version + run: npm -no-git-tag-version --allow-same-version -f version $RELEASE_VERSION + + - name: Install dependencies + run: npm install + + - name: Run linter + run: npm run lint + + - name: Run unit tests + run: npm run test + + - name: Build the extension + run: npm run extension:package + + # keeping this two stubbed until we're ready to release + # until then we might want to add tags without actually releasing + # (e.g. to enable rollbacks down the line) + # TODO after repo is public: + # * change baseContentUrl across the repo + # * remove `echo` stubs + + - name: Publish the extension + run: | + npx vsce verify-pat -p ${{ secrets.VSCE_MARKETPLACE_TOKEN }} + # echo npx vsce publish \ + # -p ${{ secrets.VSCE_MARKETPLACE_TOKEN }} \ + # --baseContentUrl https://bitbucket.org/atlassianlabs/atlascode/src/main/ \ + # --packagePath atlascode-${GITHUB_REF##*/v}.vsix + + - name: Publish to OpenVSX + run: | + npx ovsx verify-pat -p ${{ secrets.OPENVSX_KEY }} + # echo npx ovsx publish \ + # -p ${{ secrets.OPENVSX_KEY }} \ + # "atlascode-${GITHUB_REF##*/v}.vsix" + diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml deleted file mode 100644 index ab1d29b1..00000000 --- a/bitbucket-pipelines.yml +++ /dev/null @@ -1,48 +0,0 @@ -image: node:20 - -pipelines: - default: - - step: - size: 2x - caches: - - node - script: - - apt-get update && apt-get install -y libsecret-1-dev - - npm install --unsafe-perm -g vsce - - npm install - - npm run lint - - npm run test - - vsce package --baseContentUrl https://bitbucket.org/atlassianlabs/atlascode/src/main/ - tags: - '*': - - step: - size: 2x - caches: - - node - script: - - apt-get update && apt-get install -y libsecret-1-dev - - npm install --unsafe-perm -g vsce - - npm -no-git-tag-version --allow-same-version -f version ${BITBUCKET_TAG} - - npm install - - npm run lint - - npm run test - - vsce package --baseContentUrl https://bitbucket.org/atlassianlabs/atlascode/src/main/ - - vsce publish -p ${ATLASCODE_PUBLISH_TOKEN} --baseContentUrl https://bitbucket.org/atlassianlabs/atlascode/src/main/ --packagePath atlascode-${BITBUCKET_TAG}.vsix - - npx ovsx publish "atlascode-${BITBUCKET_TAG}.vsix" -p ${OPENVSXKEY} - #- curl -X POST "https://${DEPLOY_AUTH}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"atlascode-${BITBUCKET_TAG}.vsix" - custom: - nightly: - - step: - size: 2x - caches: - - node - script: - - apt-get update && apt-get install -y libsecret-1-dev - - npm install --unsafe-perm -g vsce - - export NIGHTLY_VERSION="$(./nightlyver.sh ${BITBUCKET_COMMIT})" - - npm -no-git-tag-version -f version ${NIGHTLY_VERSION} - - npm install - - npm run lint - - npm run test - - vsce package - - curl -X POST "https://${DEPLOY_AUTH}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"atlascode-${NIGHTLY_VERSION}.vsix" diff --git a/package-lock.json b/package-lock.json index 9462b0ad..3bf7f864 100644 --- a/package-lock.json +++ b/package-lock.json @@ -179,6 +179,7 @@ "jest": "^29.7.0", "mini-css-extract-plugin": "^2.9.1", "npm-run-all": "^4.1.5", + "ovsx": "^0.10.1", "patch-package": "^6.2.2", "postcss-flexbugs-fixes": "^5.0.2", "postcss-loader": "^8.1.1", @@ -196,6 +197,7 @@ "tsconfig-paths": "^3.9.0", "tsconfig-paths-webpack-plugin": "^3.2.0", "typescript": "^5.4.0 <5.5.0", + "vsce": "^2.15.0", "vue": "^3.2.23", "webpack": "^5", "webpack-cli": "^5.1.4", @@ -7892,9 +7894,9 @@ } }, "node_modules/@vscode/vsce": { - "version": "3.1.0", - "resolved": "https://packages.atlassian.com/api/npm/npm-remote/@vscode/vsce/-/vsce-3.1.0.tgz", - "integrity": "sha512-fwdfp1Ol+bZtlSGkpcd/nztfo6+SVsTOMWjZ/+a88lVtUn7gXNbSu7dbniecl5mz4vINl+oaVDVtVdGbJDApmw==", + "version": "3.2.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/@vscode/vsce/-/vsce-3.2.1.tgz", + "integrity": "sha512-AY9vBjwExakK1c0cI/3NN2Ey0EgiKLBye/fxl/ue+o4q6RZ7N+xzd1jAD6eI6eBeMVANi617+V2rxIAkDPco2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -21359,6 +21361,63 @@ "node": ">=0.10.0" } }, + "node_modules/ovsx": { + "version": "0.10.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/ovsx/-/ovsx-0.10.1.tgz", + "integrity": "sha512-8i7+MJMMeq73m1zPEIClSFe17SNuuzU5br7G77ZIfOC24elB4pGQs0N1qRd+gnnbyhL5Qu96G21nFOVOBa2OBg==", + "dev": true, + "license": "EPL-2.0", + "dependencies": { + "@vscode/vsce": "^3.2.1", + "commander": "^6.2.1", + "follow-redirects": "^1.14.6", + "is-ci": "^2.0.0", + "leven": "^3.1.0", + "semver": "^7.6.0", + "tmp": "^0.2.3", + "yauzl": "^3.1.3" + }, + "bin": { + "ovsx": "lib/ovsx" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/ovsx/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/ovsx/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/ovsx/node_modules/yauzl": { + "version": "3.2.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/yauzl/-/yauzl-3.2.0.tgz", + "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/p-any": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-any/-/p-any-2.1.0.tgz", @@ -27020,6 +27079,174 @@ "node": ">= 0.8" } }, + "node_modules/vsce": { + "version": "2.15.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/vsce/-/vsce-2.15.0.tgz", + "integrity": "sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==", + "deprecated": "vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "azure-devops-node-api": "^11.0.1", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.9", + "commander": "^6.1.0", + "glob": "^7.0.6", + "hosted-git-info": "^4.0.2", + "keytar": "^7.7.0", + "leven": "^3.1.0", + "markdown-it": "^12.3.2", + "mime": "^1.3.4", + "minimatch": "^3.0.3", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "semver": "^5.1.0", + "tmp": "^0.2.1", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.4.23", + "yauzl": "^2.3.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/vsce/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/vsce/node_modules/azure-devops-node-api": { + "version": "11.2.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", + "integrity": "sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "node_modules/vsce/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/vsce/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/vsce/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vsce/node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/vsce/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vsce/node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/vsce/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/vsce/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/vsce/node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vsce/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/vue": { "version": "3.2.26", "resolved": "https://packages.atlassian.com/api/npm/npm-remote/vue/-/vue-3.2.26.tgz", @@ -33826,9 +34053,9 @@ } }, "@vscode/vsce": { - "version": "3.1.0", - "resolved": "https://packages.atlassian.com/api/npm/npm-remote/@vscode/vsce/-/vsce-3.1.0.tgz", - "integrity": "sha512-fwdfp1Ol+bZtlSGkpcd/nztfo6+SVsTOMWjZ/+a88lVtUn7gXNbSu7dbniecl5mz4vINl+oaVDVtVdGbJDApmw==", + "version": "3.2.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/@vscode/vsce/-/vsce-3.2.1.tgz", + "integrity": "sha512-AY9vBjwExakK1c0cI/3NN2Ey0EgiKLBye/fxl/ue+o4q6RZ7N+xzd1jAD6eI6eBeMVANi617+V2rxIAkDPco2Q==", "dev": true, "requires": { "@azure/identity": "^4.1.0", @@ -43352,6 +43579,46 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "ovsx": { + "version": "0.10.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/ovsx/-/ovsx-0.10.1.tgz", + "integrity": "sha512-8i7+MJMMeq73m1zPEIClSFe17SNuuzU5br7G77ZIfOC24elB4pGQs0N1qRd+gnnbyhL5Qu96G21nFOVOBa2OBg==", + "dev": true, + "requires": { + "@vscode/vsce": "^3.2.1", + "commander": "^6.2.1", + "follow-redirects": "^1.14.6", + "is-ci": "^2.0.0", + "leven": "^3.1.0", + "semver": "^7.6.0", + "tmp": "^0.2.3", + "yauzl": "^3.1.3" + }, + "dependencies": { + "commander": { + "version": "6.2.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "tmp": { + "version": "0.2.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true + }, + "yauzl": { + "version": "3.2.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/yauzl/-/yauzl-3.2.0.tgz", + "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + } + } + } + }, "p-any": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-any/-/p-any-2.1.0.tgz", @@ -47072,6 +47339,132 @@ "resolved": "https://packages.atlassian.com/api/npm/npm-remote/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "vsce": { + "version": "2.15.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/vsce/-/vsce-2.15.0.tgz", + "integrity": "sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==", + "dev": true, + "requires": { + "azure-devops-node-api": "^11.0.1", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.9", + "commander": "^6.1.0", + "glob": "^7.0.6", + "hosted-git-info": "^4.0.2", + "keytar": "^7.7.0", + "leven": "^3.1.0", + "markdown-it": "^12.3.2", + "mime": "^1.3.4", + "minimatch": "^3.0.3", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "semver": "^5.1.0", + "tmp": "^0.2.1", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.4.23", + "yauzl": "^2.3.1", + "yazl": "^2.2.2" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "azure-devops-node-api": { + "version": "11.2.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", + "integrity": "sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==", + "dev": true, + "requires": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "commander": { + "version": "6.2.1", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "tmp": { + "version": "0.2.3", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://packages.atlassian.com/api/npm/npm-remote/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "vue": { "version": "3.2.26", "resolved": "https://packages.atlassian.com/api/npm/npm-remote/vue/-/vue-3.2.26.tgz", diff --git a/package.json b/package.json index 135de3c0..6ffe478d 100644 --- a/package.json +++ b/package.json @@ -1517,6 +1517,7 @@ "jest": "^29.7.0", "mini-css-extract-plugin": "^2.9.1", "npm-run-all": "^4.1.5", + "ovsx": "^0.10.1", "patch-package": "^6.2.2", "postcss-flexbugs-fixes": "^5.0.2", "postcss-loader": "^8.1.1", @@ -1534,6 +1535,7 @@ "tsconfig-paths": "^3.9.0", "tsconfig-paths-webpack-plugin": "^3.2.0", "typescript": "^5.4.0 <5.5.0", + "vsce": "^2.15.0", "vue": "^3.2.23", "webpack": "^5", "webpack-cli": "^5.1.4",