mirror of
https://github.com/coder/code-server.git
synced 2026-04-17 07:48:22 -05:00
Compare commits
36 Commits
v4.6.0-rc.
...
v4.7.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6809ded1da | ||
|
|
d31b934991 | ||
|
|
8bb8fb74cf | ||
|
|
bfd2231b4d | ||
|
|
0fcaff8740 | ||
|
|
9640bdd15a | ||
|
|
9c58360aac | ||
|
|
9f1ef13946 | ||
|
|
36f6149be1 | ||
|
|
a7777ffa42 | ||
|
|
5028169e63 | ||
|
|
3fb38414dd | ||
|
|
b486354d6e | ||
|
|
a1cf4b9ea5 | ||
|
|
64822d0f64 | ||
|
|
74017ecc65 | ||
|
|
da03a648c2 | ||
|
|
6742e945cc | ||
|
|
4e9ed56580 | ||
|
|
8a227d9fa1 | ||
|
|
f9bfd58cf4 | ||
|
|
ef3f4e82b2 | ||
|
|
6262c7a0bf | ||
|
|
101d4ee4ad | ||
|
|
d1acfad2a8 | ||
|
|
ccbf0bebb7 | ||
|
|
f5a1e3a3fa | ||
|
|
3db08fdf51 | ||
|
|
bc05a2f3b9 | ||
|
|
90f603549a | ||
|
|
8352a22e33 | ||
|
|
33ee184ed7 | ||
|
|
6a7c3220b0 | ||
|
|
9d8588b2ed | ||
|
|
61e2a9ac41 | ||
|
|
61673b5918 |
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@@ -1,4 +1,4 @@
|
|||||||
* @coder/code-server-reviewers
|
* @coder/code-server
|
||||||
|
|
||||||
ci/helm-chart/ @Matthew-Beckett @alexgorbatchev
|
ci/helm-chart/ @Matthew-Beckett @alexgorbatchev
|
||||||
|
|
||||||
|
|||||||
4
.github/workflows/ci.yaml
vendored
4
.github/workflows/ci.yaml
vendored
@@ -25,7 +25,7 @@ jobs:
|
|||||||
prebuild:
|
prebuild:
|
||||||
name: Pre-build checks
|
name: Pre-build checks
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 15
|
timeout-minutes: 20
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@@ -609,7 +609,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Run Trivy vulnerability scanner in repo mode
|
- name: Run Trivy vulnerability scanner in repo mode
|
||||||
uses: aquasecurity/trivy-action@12814ff8bcb32c97f4d963e6e7903674b1692fa0
|
uses: aquasecurity/trivy-action@d63413b0a4a4482237085319f7f4a1ce99a8f2ac
|
||||||
with:
|
with:
|
||||||
scan-type: "fs"
|
scan-type: "fs"
|
||||||
scan-ref: "."
|
scan-ref: "."
|
||||||
|
|||||||
60
.github/workflows/docker.yaml
vendored
60
.github/workflows/docker.yaml
vendored
@@ -1,60 +0,0 @@
|
|||||||
name: Publish on Docker
|
|
||||||
|
|
||||||
on:
|
|
||||||
# Shows the manual trigger in GitHub UI
|
|
||||||
# helpful as a back-up in case the GitHub Actions Workflow fails
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
release:
|
|
||||||
types:
|
|
||||||
- released
|
|
||||||
|
|
||||||
# Cancel in-progress runs for pull requests when developers push
|
|
||||||
# additional changes, and serialize builds in branches.
|
|
||||||
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-concurrency-to-cancel-any-in-progress-job-or-run
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
|
||||||
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
docker-images:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v2
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Login to GHCR
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Get version
|
|
||||||
id: version
|
|
||||||
run: echo "::set-output name=version::$(jq -r .version package.json)"
|
|
||||||
|
|
||||||
- name: Download release artifacts
|
|
||||||
uses: robinraju/release-downloader@v1.4
|
|
||||||
with:
|
|
||||||
repository: "coder/code-server"
|
|
||||||
tag: v${{ steps.version.outputs.version }}
|
|
||||||
fileName: "*.deb"
|
|
||||||
out-file-path: "release-packages"
|
|
||||||
|
|
||||||
- name: Publish to Docker
|
|
||||||
run: yarn publish:docker
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
|
||||||
69
.github/workflows/npm-brew.yaml
vendored
69
.github/workflows/npm-brew.yaml
vendored
@@ -1,69 +0,0 @@
|
|||||||
name: Publish on npm and brew
|
|
||||||
|
|
||||||
on:
|
|
||||||
# Shows the manual trigger in GitHub UI
|
|
||||||
# helpful as a back-up in case the GitHub Actions Workflow fails
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
release:
|
|
||||||
types: [released]
|
|
||||||
|
|
||||||
# Cancel in-progress runs for pull requests when developers push
|
|
||||||
# additional changes, and serialize builds in branches.
|
|
||||||
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-concurrency-to-cancel-any-in-progress-job-or-run
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
|
||||||
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# NOTE: this job requires curl, jq and yarn
|
|
||||||
# All of them are included in ubuntu-latest.
|
|
||||||
npm:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Get version
|
|
||||||
id: version
|
|
||||||
run: echo "::set-output name=version::$(jq -r .version package.json)"
|
|
||||||
|
|
||||||
- name: Download artifact
|
|
||||||
uses: dawidd6/action-download-artifact@v2
|
|
||||||
id: download
|
|
||||||
with:
|
|
||||||
branch: release/v${{ steps.version.outputs.version }}
|
|
||||||
workflow: ci.yaml
|
|
||||||
workflow_conclusion: completed
|
|
||||||
name: "npm-package"
|
|
||||||
path: release-npm-package
|
|
||||||
|
|
||||||
- name: Publish npm package and tag with "latest"
|
|
||||||
run: yarn publish:npm
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
||||||
NPM_ENVIRONMENT: "production"
|
|
||||||
|
|
||||||
homebrew:
|
|
||||||
needs: npm
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
# Ensure things are up to date
|
|
||||||
# Suggested by homebrew maintainers
|
|
||||||
# https://github.com/Homebrew/discussions/discussions/1532#discussioncomment-782633
|
|
||||||
- name: Set up Homebrew
|
|
||||||
id: set-up-homebrew
|
|
||||||
uses: Homebrew/actions/setup-homebrew@master
|
|
||||||
|
|
||||||
- name: Checkout code-server
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Configure git
|
|
||||||
run: |
|
|
||||||
git config --global user.name cdrci
|
|
||||||
git config --global user.email opensource@coder.com
|
|
||||||
|
|
||||||
- name: Bump code-server homebrew version
|
|
||||||
env:
|
|
||||||
HOMEBREW_GITHUB_API_TOKEN: ${{secrets.HOMEBREW_GITHUB_API_TOKEN}}
|
|
||||||
run: ./ci/steps/brew-bump.sh
|
|
||||||
160
.github/workflows/publish.yaml
vendored
Normal file
160
.github/workflows/publish.yaml
vendored
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
name: Publish code-server
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Shows the manual trigger in GitHub UI
|
||||||
|
# helpful as a back-up in case the GitHub Actions Workflow fails
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
release:
|
||||||
|
types: [released]
|
||||||
|
|
||||||
|
# Cancel in-progress runs for pull requests when developers push
|
||||||
|
# additional changes, and serialize builds in branches.
|
||||||
|
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-concurrency-to-cancel-any-in-progress-job-or-run
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# NOTE: this job requires curl, jq and yarn
|
||||||
|
# All of them are included in ubuntu-latest.
|
||||||
|
npm:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code-server
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Get version
|
||||||
|
id: version
|
||||||
|
run: echo "::set-output name=version::$(jq -r .version package.json)"
|
||||||
|
|
||||||
|
- name: Download artifact
|
||||||
|
uses: dawidd6/action-download-artifact@v2
|
||||||
|
id: download
|
||||||
|
with:
|
||||||
|
branch: release/v${{ steps.version.outputs.version }}
|
||||||
|
workflow: ci.yaml
|
||||||
|
workflow_conclusion: completed
|
||||||
|
name: "npm-package"
|
||||||
|
path: release-npm-package
|
||||||
|
|
||||||
|
- name: Publish npm package and tag with "latest"
|
||||||
|
run: yarn publish:npm
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
NPM_ENVIRONMENT: "production"
|
||||||
|
|
||||||
|
homebrew:
|
||||||
|
needs: npm
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# Ensure things are up to date
|
||||||
|
# Suggested by homebrew maintainers
|
||||||
|
# https://github.com/Homebrew/discussions/discussions/1532#discussioncomment-782633
|
||||||
|
- name: Set up Homebrew
|
||||||
|
id: set-up-homebrew
|
||||||
|
uses: Homebrew/actions/setup-homebrew@master
|
||||||
|
|
||||||
|
- name: Checkout code-server
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Configure git
|
||||||
|
run: |
|
||||||
|
git config --global user.name cdrci
|
||||||
|
git config --global user.email opensource@coder.com
|
||||||
|
|
||||||
|
- name: Bump code-server homebrew version
|
||||||
|
env:
|
||||||
|
HOMEBREW_GITHUB_API_TOKEN: ${{secrets.HOMEBREW_GITHUB_API_TOKEN}}
|
||||||
|
run: ./ci/steps/brew-bump.sh
|
||||||
|
|
||||||
|
aur:
|
||||||
|
needs: npm
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
|
||||||
|
steps:
|
||||||
|
# We need to checkout code-server so we can get the version
|
||||||
|
- name: Checkout code-server
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
path: "./code-server"
|
||||||
|
|
||||||
|
- name: Get code-server version
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
pushd code-server
|
||||||
|
echo "::set-output name=version::$(jq -r .version package.json)"
|
||||||
|
popd
|
||||||
|
|
||||||
|
- name: Checkout code-server-aur repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: "cdrci/code-server-aur"
|
||||||
|
token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
|
||||||
|
|
||||||
|
- name: Configure git
|
||||||
|
run: |
|
||||||
|
git config --global user.name cdrci
|
||||||
|
git config --global user.email opensource@coder.com
|
||||||
|
|
||||||
|
- name: Validate package
|
||||||
|
uses: hapakaien/archlinux-package-action@v2
|
||||||
|
with:
|
||||||
|
pkgver: ${{ steps.version.outputs.version }}
|
||||||
|
updpkgsums: true
|
||||||
|
srcinfo: true
|
||||||
|
|
||||||
|
- name: Open PR
|
||||||
|
# We need to git push -u otherwise gh will prompt
|
||||||
|
# asking where to push the branch.
|
||||||
|
run: |
|
||||||
|
git checkout -b update-version-${{ steps.version.outputs.version }}
|
||||||
|
git add .
|
||||||
|
git commit -m "chore: updating version to ${{ steps.version.outputs.version }}"
|
||||||
|
git push -u origin $(git branch --show)
|
||||||
|
gh pr create --repo coder/code-server-aur --title "chore: bump version to ${{ steps.version.outputs.version }}" --body "PR opened by @$GITHUB_ACTOR" --assignee $GITHUB_ACTOR
|
||||||
|
docker:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout code-server
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
|
- name: Login to GHCR
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Get version
|
||||||
|
id: version
|
||||||
|
run: echo "::set-output name=version::$(jq -r .version package.json)"
|
||||||
|
|
||||||
|
- name: Download release artifacts
|
||||||
|
uses: robinraju/release-downloader@v1.5
|
||||||
|
with:
|
||||||
|
repository: "coder/code-server"
|
||||||
|
tag: v${{ steps.version.outputs.version }}
|
||||||
|
fileName: "*.deb"
|
||||||
|
out-file-path: "release-packages"
|
||||||
|
|
||||||
|
- name: Publish to Docker
|
||||||
|
run: yarn publish:docker
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
2
.github/workflows/trivy-docker.yaml
vendored
2
.github/workflows/trivy-docker.yaml
vendored
@@ -51,7 +51,7 @@ jobs:
|
|||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Run Trivy vulnerability scanner in image mode
|
- name: Run Trivy vulnerability scanner in image mode
|
||||||
uses: aquasecurity/trivy-action@12814ff8bcb32c97f4d963e6e7903674b1692fa0
|
uses: aquasecurity/trivy-action@d63413b0a4a4482237085319f7f4a1ce99a8f2ac
|
||||||
with:
|
with:
|
||||||
image-ref: "docker.io/codercom/code-server:latest"
|
image-ref: "docker.io/codercom/code-server:latest"
|
||||||
ignore-unfixed: true
|
ignore-unfixed: true
|
||||||
|
|||||||
51
CHANGELOG.md
51
CHANGELOG.md
@@ -20,6 +20,57 @@ Code v99.99.999
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
## [4.7.0](https://github.com/coder/code-server/releases/tag/v4.7.0) - 2022-09-09
|
||||||
|
|
||||||
|
Code v1.71.0
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated Code to 1.71.0
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Dropped heartbeat patch because it was implemented upstream
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Add flags --unsafe-perm --legacy-peer-deps in `npm-postinstsall.sh` which ensures installing with npm works correctly
|
||||||
|
|
||||||
|
## [4.6.1](https://github.com/coder/code-server/releases/tag/v4.6.1) - 2022-09-31
|
||||||
|
|
||||||
|
Code v1.70.2
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated Code to 1.70.2
|
||||||
|
- Updated `argon2` to 0.29.0 which should fix issues on FreeBSD
|
||||||
|
- Updated docs to suggest using `npm` instead of `yarn`
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Dropped database migration patch affected to 4.0.2 versions and earlier.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed preservation of `process.execArgv` which means you can pass `--prof` to profile code-server
|
||||||
|
|
||||||
|
## [4.6.0](https://github.com/coder/code-server/releases/tag/v4.6.0) - 2022-08-17
|
||||||
|
|
||||||
|
Code v1.70.1
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated Code to 1.70.1.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Added a heartbeat to sockets. This should prevent them from getting closed by
|
||||||
|
reverse proxy timeouts when idle like NGINX's default 60-second timeout.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed logout option appearing even when authentication is disabled.
|
||||||
|
|
||||||
## [4.5.2](https://github.com/coder/code-server/releases/tag/v4.5.2) - 2022-08-15
|
## [4.5.2](https://github.com/coder/code-server/releases/tag/v4.5.2) - 2022-08-15
|
||||||
|
|
||||||
Code v1.68.1
|
Code v1.68.1
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ main() {
|
|||||||
VSCODE_SRC_PATH="lib/vscode"
|
VSCODE_SRC_PATH="lib/vscode"
|
||||||
VSCODE_OUT_PATH="$RELEASE_PATH/lib/vscode"
|
VSCODE_OUT_PATH="$RELEASE_PATH/lib/vscode"
|
||||||
|
|
||||||
|
create_shrinkwraps
|
||||||
|
|
||||||
mkdir -p "$RELEASE_PATH"
|
mkdir -p "$RELEASE_PATH"
|
||||||
|
|
||||||
bundle_code_server
|
bundle_code_server
|
||||||
@@ -55,15 +57,6 @@ bundle_code_server() {
|
|||||||
EOF
|
EOF
|
||||||
) > "$RELEASE_PATH/package.json"
|
) > "$RELEASE_PATH/package.json"
|
||||||
rsync yarn.lock "$RELEASE_PATH"
|
rsync yarn.lock "$RELEASE_PATH"
|
||||||
|
|
||||||
# To ensure deterministic dependency versions (even when code-server is installed with NPM), we seed
|
|
||||||
# an npm-shrinkwrap file from our yarn lockfile and the current node-modules installed.
|
|
||||||
synp --source-file yarn.lock
|
|
||||||
npm shrinkwrap
|
|
||||||
# HACK@edvincent: The shrinkwrap file will contain the devDependencies, which by default
|
|
||||||
# are installed if present in a lockfile. To avoid every user having to specify --production
|
|
||||||
# to skip them, we carefully remove them from the shrinkwrap file.
|
|
||||||
json -f npm-shrinkwrap.json -I -e "Object.keys(this.dependencies).forEach(dependency => { if (this.dependencies[dependency].dev) { delete this.dependencies[dependency] } } )"
|
|
||||||
mv npm-shrinkwrap.json "$RELEASE_PATH"
|
mv npm-shrinkwrap.json "$RELEASE_PATH"
|
||||||
|
|
||||||
rsync ci/build/npm-postinstall.sh "$RELEASE_PATH/postinstall.sh"
|
rsync ci/build/npm-postinstall.sh "$RELEASE_PATH/postinstall.sh"
|
||||||
@@ -105,11 +98,44 @@ bundle_vscode() {
|
|||||||
"$VSCODE_SRC_PATH/package.json" > "$VSCODE_OUT_PATH/package.json"
|
"$VSCODE_SRC_PATH/package.json" > "$VSCODE_OUT_PATH/package.json"
|
||||||
|
|
||||||
rsync "$VSCODE_SRC_PATH/remote/yarn.lock" "$VSCODE_OUT_PATH/yarn.lock"
|
rsync "$VSCODE_SRC_PATH/remote/yarn.lock" "$VSCODE_OUT_PATH/yarn.lock"
|
||||||
|
mv "$VSCODE_SRC_PATH/remote/npm-shrinkwrap.json" "$VSCODE_OUT_PATH/npm-shrinkwrap.json"
|
||||||
|
|
||||||
# Include global extension dependencies as well.
|
# Include global extension dependencies as well.
|
||||||
rsync "$VSCODE_SRC_PATH/extensions/package.json" "$VSCODE_OUT_PATH/extensions/package.json"
|
rsync "$VSCODE_SRC_PATH/extensions/package.json" "$VSCODE_OUT_PATH/extensions/package.json"
|
||||||
rsync "$VSCODE_SRC_PATH/extensions/yarn.lock" "$VSCODE_OUT_PATH/extensions/yarn.lock"
|
rsync "$VSCODE_SRC_PATH/extensions/yarn.lock" "$VSCODE_OUT_PATH/extensions/yarn.lock"
|
||||||
|
mv "$VSCODE_SRC_PATH/extensions/npm-shrinkwrap.json" "$VSCODE_OUT_PATH/extensions/npm-shrinkwrap.json"
|
||||||
rsync "$VSCODE_SRC_PATH/extensions/postinstall.mjs" "$VSCODE_OUT_PATH/extensions/postinstall.mjs"
|
rsync "$VSCODE_SRC_PATH/extensions/postinstall.mjs" "$VSCODE_OUT_PATH/extensions/postinstall.mjs"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create_shrinkwraps() {
|
||||||
|
# yarn.lock or package-lock.json files (used to ensure deterministic versions of dependencies) are
|
||||||
|
# not packaged when publishing to the NPM registry.
|
||||||
|
# To ensure deterministic dependency versions (even when code-server is installed with NPM), we create
|
||||||
|
# an npm-shrinkwrap.json file from the currently installed node_modules. This ensures the versions used
|
||||||
|
# from development (that the yarn.lock guarantees) are also the ones installed by end-users.
|
||||||
|
# These will include devDependencies, but those will be ignored when installing globally (for code-server), and
|
||||||
|
# because we use --omit=dev when installing vscode.
|
||||||
|
|
||||||
|
# We first generate the shrinkwrap file for code-server itself - which is the current directory
|
||||||
|
create_shrinkwrap_keeping_yarn_lock
|
||||||
|
|
||||||
|
# Then the shrinkwrap files for the bundled VSCode
|
||||||
|
pushd "$VSCODE_SRC_PATH/remote/"
|
||||||
|
create_shrinkwrap_keeping_yarn_lock
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd "$VSCODE_SRC_PATH/extensions/"
|
||||||
|
create_shrinkwrap_keeping_yarn_lock
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
create_shrinkwrap_keeping_yarn_lock() {
|
||||||
|
# HACK@edvincent: Generating a shrinkwrap alters the yarn.lock which we don't want (with NPM URLs rather than the Yarn URLs)
|
||||||
|
# But to generate a valid shrinkwrap, it has to exist... So we copy it to then restore it
|
||||||
|
cp yarn.lock yarn.lock.temp
|
||||||
|
npm shrinkwrap
|
||||||
|
cp yarn.lock.temp yarn.lock
|
||||||
|
rm yarn.lock.temp
|
||||||
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ main() {
|
|||||||
ln -s "./lib/node" "$RELEASE_PATH/node"
|
ln -s "./lib/node" "$RELEASE_PATH/node"
|
||||||
|
|
||||||
pushd "$RELEASE_PATH"
|
pushd "$RELEASE_PATH"
|
||||||
yarn --production --frozen-lockfile
|
npm install --unsafe-perm --omit=dev
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ main() {
|
|||||||
echo "Failed to download cloud agent; --link will not work"
|
echo "Failed to download cloud agent; --link will not work"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! vscode_yarn; then
|
if ! vscode_install; then
|
||||||
echo "You may not have the required dependencies to build the native modules."
|
echo "You may not have the required dependencies to build the native modules."
|
||||||
echo "Please see https://github.com/coder/code-server/blob/main/docs/npm.md"
|
echo "Please see https://github.com/coder/code-server/blob/main/docs/npm.md"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -123,17 +123,47 @@ main() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
vscode_yarn() {
|
install_with_yarn_or_npm() {
|
||||||
|
# NOTE@edvincent: We want to keep using the package manager that the end-user was using to install the package.
|
||||||
|
# This also ensures that when *we* run `yarn` in the development process, the yarn.lock file is used.
|
||||||
|
case "${npm_config_user_agent-}" in
|
||||||
|
yarn*)
|
||||||
|
if [ -f "yarn.lock" ]; then
|
||||||
|
yarn --production --frozen-lockfile --no-default-rc
|
||||||
|
else
|
||||||
|
echo "yarn.lock file not present, not running in development mode. use npm to install code-server!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
npm*)
|
||||||
|
if [ -f "yarn.lock" ]; then
|
||||||
|
echo "yarn.lock file present, running in development mode. use yarn to install code-server!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
# HACK: NPM's use of semver doesn't like resolving some peerDependencies that vscode (upstream) brings in the form of pre-releases.
|
||||||
|
# The legacy behavior doesn't complain about pre-releases being used, falling back to that for now.
|
||||||
|
# See https://github.com//pull/5071
|
||||||
|
npm install --unsafe-perm --legacy-peer-deps --omit=dev
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Could not determine which package manager is being used to install code-server"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
vscode_install() {
|
||||||
echo 'Installing Code dependencies...'
|
echo 'Installing Code dependencies...'
|
||||||
cd lib/vscode
|
cd lib/vscode
|
||||||
yarn --production --frozen-lockfile --no-default-rc
|
install_with_yarn_or_npm
|
||||||
|
|
||||||
symlink_asar
|
symlink_asar
|
||||||
symlink_bin_script remote-cli code code-server
|
symlink_bin_script remote-cli code code-server
|
||||||
symlink_bin_script helpers browser browser .sh
|
symlink_bin_script helpers browser browser .sh
|
||||||
|
|
||||||
cd extensions
|
cd extensions
|
||||||
yarn --production --frozen-lockfile
|
install_with_yarn_or_npm
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
CHECKMARK="\xE2\x9C\x94"
|
||||||
|
DASH="-"
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
if [ "${DRY_RUN-}" = 1 ]; then
|
if [ "${DRY_RUN-}" = 1 ]; then
|
||||||
echo "Performing a dry run..."
|
echo "Performing a dry run..."
|
||||||
@@ -76,11 +79,12 @@ main() {
|
|||||||
CODE_SERVER_CURRENT_VERSION=$(node -pe "require('./package.json').version")
|
CODE_SERVER_CURRENT_VERSION=$(node -pe "require('./package.json').version")
|
||||||
# Ask which version we should update to
|
# Ask which version we should update to
|
||||||
# In the future, we'll automate this and determine the latest version automatically
|
# In the future, we'll automate this and determine the latest version automatically
|
||||||
echo "Current version: ${CODE_SERVER_CURRENT_VERSION}"
|
echo -e "$DASH Current version: ${CODE_SERVER_CURRENT_VERSION}"
|
||||||
# The $'\n' adds a line break. See: https://stackoverflow.com/a/39581815/3015595
|
# The $'\n' adds a line break. See: https://stackoverflow.com/a/39581815/3015595
|
||||||
read -r -p "What version of code-server do you want to update to?"$'\n' CODE_SERVER_VERSION_TO_UPDATE
|
CODE_SERVER_VERSION_TO_UPDATE=$(git rev-parse --abbrev-ref HEAD | perl -pe '($_)=/([0-9]+([.][0-9]+)+)/')
|
||||||
|
echo -e "$CHECKMARK Version in branch name"
|
||||||
|
echo -e "$CHECKMARK Updating to: $CODE_SERVER_VERSION_TO_UPDATE"
|
||||||
|
|
||||||
echo -e "Great! We'll prep a PR for updating to $CODE_SERVER_VERSION_TO_UPDATE\n"
|
|
||||||
$CMD rg -g '!yarn.lock' -g '!*.svg' -g '!CHANGELOG.md' -g '!lib/vscode/**' --files-with-matches --fixed-strings "${CODE_SERVER_CURRENT_VERSION}" | $CMD xargs sd "$CODE_SERVER_CURRENT_VERSION" "$CODE_SERVER_VERSION_TO_UPDATE"
|
$CMD rg -g '!yarn.lock' -g '!*.svg' -g '!CHANGELOG.md' -g '!lib/vscode/**' --files-with-matches --fixed-strings "${CODE_SERVER_CURRENT_VERSION}" | $CMD xargs sd "$CODE_SERVER_CURRENT_VERSION" "$CODE_SERVER_VERSION_TO_UPDATE"
|
||||||
|
|
||||||
$CMD git commit --no-verify -am "chore(release): bump version to $CODE_SERVER_VERSION_TO_UPDATE"
|
$CMD git commit --no-verify -am "chore(release): bump version to $CODE_SERVER_VERSION_TO_UPDATE"
|
||||||
@@ -90,7 +94,7 @@ main() {
|
|||||||
|
|
||||||
echo -e "\nOpening a draft PR on GitHub"
|
echo -e "\nOpening a draft PR on GitHub"
|
||||||
# To read about these flags, visit the docs: https://cli.github.com/manual/gh_pr_create
|
# To read about these flags, visit the docs: https://cli.github.com/manual/gh_pr_create
|
||||||
$CMD gh pr create --base main --title "release: $CODE_SERVER_VERSION_TO_UPDATE" --body "$RELEASE_TEMPLATE_STRING" --reviewer @coder/code-server-reviewers --repo coder/code-server --draft --assignee "@me"
|
$CMD gh pr create --base main --title "release: $CODE_SERVER_VERSION_TO_UPDATE" --body "$RELEASE_TEMPLATE_STRING" --reviewer @coder/code-server --repo coder/code-server --draft --assignee "@me"
|
||||||
|
|
||||||
# Open PR in browser
|
# Open PR in browser
|
||||||
$CMD gh pr view --web
|
$CMD gh pr view --web
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ type: application
|
|||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# This is the chart version. This version number should be incremented each time you make changes
|
||||||
# to the chart and its templates, including the app version.
|
# to the chart and its templates, including the app version.
|
||||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||||
version: 3.1.0
|
version: 3.2.2
|
||||||
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# This is the version number of the application being deployed. This version number should be
|
||||||
# incremented each time you make changes to the application. Versions are not expected to
|
# incremented each time you make changes to the application. Versions are not expected to
|
||||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||||
appVersion: 4.5.2
|
appVersion: 4.7.0
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ replicaCount: 1
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
repository: codercom/code-server
|
repository: codercom/code-server
|
||||||
tag: '4.5.2'
|
tag: '4.6.1'
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
|
|
||||||
# Specifies one or more secrets to be used when pulling images from a
|
# Specifies one or more secrets to be used when pulling images from a
|
||||||
|
|||||||
@@ -65,7 +65,8 @@ main() {
|
|||||||
# "production" - this means we tag with `latest` (default), allowing
|
# "production" - this means we tag with `latest` (default), allowing
|
||||||
# a developer to install this version with `yarn add code-server@latest`
|
# a developer to install this version with `yarn add code-server@latest`
|
||||||
if ! is_env_var_set "NPM_ENVIRONMENT"; then
|
if ! is_env_var_set "NPM_ENVIRONMENT"; then
|
||||||
echo "NPM_ENVIRONMENT is not set. Determining in script based on GITHUB environment variables."
|
echo "NPM_ENVIRONMENT is not set."
|
||||||
|
echo "Determining in script based on GITHUB environment variables."
|
||||||
|
|
||||||
if [[ "$GITHUB_EVENT_NAME" == 'push' && "$GITHUB_REF" == 'refs/heads/main' ]]; then
|
if [[ "$GITHUB_EVENT_NAME" == 'push' && "$GITHUB_REF" == 'refs/heads/main' ]]; then
|
||||||
NPM_ENVIRONMENT="staging"
|
NPM_ENVIRONMENT="staging"
|
||||||
@@ -73,7 +74,6 @@ main() {
|
|||||||
NPM_ENVIRONMENT="development"
|
NPM_ENVIRONMENT="development"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Using npm environment: $NPM_ENVIRONMENT"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# NOTE@jsjoeio - this script assumes we have the artifact downloaded on disk
|
# NOTE@jsjoeio - this script assumes we have the artifact downloaded on disk
|
||||||
@@ -96,9 +96,6 @@ main() {
|
|||||||
NPM_TAG="latest"
|
NPM_TAG="latest"
|
||||||
else
|
else
|
||||||
COMMIT_SHA="$GITHUB_SHA"
|
COMMIT_SHA="$GITHUB_SHA"
|
||||||
echo "Not a production environment"
|
|
||||||
echo "Found environment: $NPM_ENVIRONMENT"
|
|
||||||
echo "Manually bumping npm version..."
|
|
||||||
|
|
||||||
if [[ "$NPM_ENVIRONMENT" == "staging" ]]; then
|
if [[ "$NPM_ENVIRONMENT" == "staging" ]]; then
|
||||||
NPM_VERSION="$VERSION-beta-$COMMIT_SHA"
|
NPM_VERSION="$VERSION-beta-$COMMIT_SHA"
|
||||||
@@ -117,8 +114,10 @@ main() {
|
|||||||
NPM_TAG="$PR_NUMBER"
|
NPM_TAG="$PR_NUMBER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "using tag: $NPM_TAG"
|
echo "- tag: $NPM_TAG"
|
||||||
echo "using package name: $PACKAGE_NAME"
|
echo "- version: $NPM_VERSION"
|
||||||
|
echo "- package name: $PACKAGE_NAME"
|
||||||
|
echo "- npm environment: $NPM_ENVIRONMENT"
|
||||||
|
|
||||||
# We modify the version in the package.json
|
# We modify the version in the package.json
|
||||||
# to be the current version + the PR number + commit SHA
|
# to be the current version + the PR number + commit SHA
|
||||||
@@ -140,13 +139,13 @@ main() {
|
|||||||
popd
|
popd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# NOTE@jsjoeio
|
||||||
# We need to make sure we haven't already published the version.
|
# We need to make sure we haven't already published the version.
|
||||||
# This is because npm view won't exit with non-zero so we have
|
# If we get error, continue with script because we want to publish
|
||||||
# to check the output.
|
# If version is valid, we check if we're publishing the same one
|
||||||
local hasVersion
|
local hasVersion
|
||||||
hasVersion=$(npm view "code-server@$NPM_VERSION" version)
|
if hasVersion=$(npm view "$PACKAGE_NAME@$NPM_VERSION" version 2> /dev/null) && [[ $hasVersion == "$NPM_VERSION" ]]; then
|
||||||
if [[ $hasVersion == "$NPM_VERSION" ]]; then
|
echo "$NPM_VERSION is already published under $PACKAGE_NAME"
|
||||||
echo "$NPM_VERSION is already published"
|
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ Run your build:
|
|||||||
|
|
||||||
```shell
|
```shell
|
||||||
cd release
|
cd release
|
||||||
yarn --production # Skip if you used KEEP_MODULES=1
|
npm install --omit=dev # Skip if you used KEEP_MODULES=1
|
||||||
# Runs the built JavaScript with Node.
|
# Runs the built JavaScript with Node.
|
||||||
node .
|
node .
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
- [Workflow](#workflow)
|
- [Workflow](#workflow)
|
||||||
- [Milestones](#milestones)
|
- [Milestones](#milestones)
|
||||||
- [Triage](#triage)
|
- [Triage](#triage)
|
||||||
- [Project boards](#project-boards)
|
|
||||||
- [Versioning](#versioning)
|
- [Versioning](#versioning)
|
||||||
- [Pull requests](#pull-requests)
|
- [Pull requests](#pull-requests)
|
||||||
- [Merge strategies](#merge-strategies)
|
- [Merge strategies](#merge-strategies)
|
||||||
@@ -42,7 +41,7 @@ Occasionally, other Coder employees may step in time to time to assist with code
|
|||||||
|
|
||||||
To onboard a new maintainer to the project, please make sure to do the following:
|
To onboard a new maintainer to the project, please make sure to do the following:
|
||||||
|
|
||||||
- [ ] Add to [coder/code-server-reviewers](https://github.com/orgs/coder/teams/code-server-reviewers)
|
- [ ] Add to [coder/code-server](https://github.com/orgs/coder/teams/code-server)
|
||||||
- [ ] Add as Admin under [Repository Settings > Access](https://github.com/coder/code-server/settings/access)
|
- [ ] Add as Admin under [Repository Settings > Access](https://github.com/coder/code-server/settings/access)
|
||||||
- [ ] Add to [npm Coder org](https://www.npmjs.com/org/coder)
|
- [ ] Add to [npm Coder org](https://www.npmjs.com/org/coder)
|
||||||
- [ ] Add as [AUR maintainer](https://aur.archlinux.org/packages/code-server/) (talk to Colin)
|
- [ ] Add as [AUR maintainer](https://aur.archlinux.org/packages/code-server/) (talk to Colin)
|
||||||
@@ -72,7 +71,7 @@ Here are the milestones we use and how we use them:
|
|||||||
- "On Deck" -> Work under consideration for upcoming milestones.
|
- "On Deck" -> Work under consideration for upcoming milestones.
|
||||||
- "Backlog Candidates" -> Work that is not yet accepted for the backlog. We wait
|
- "Backlog Candidates" -> Work that is not yet accepted for the backlog. We wait
|
||||||
for the community to weigh in.
|
for the community to weigh in.
|
||||||
- "<0.0.0>" -> Work to be done for a specific version.
|
- "<Month>" -> Work to be done for said month.
|
||||||
|
|
||||||
With this flow, any un-assigned issues are essentially in triage state. Once
|
With this flow, any un-assigned issues are essentially in triage state. Once
|
||||||
triaged, issues are either "Backlog" or "Backlog Candidates". They will
|
triaged, issues are either "Backlog" or "Backlog Candidates". They will
|
||||||
@@ -91,19 +90,6 @@ We use the following process for triaging GitHub issues:
|
|||||||
2. If not urgent, add to "Backlog"
|
2. If not urgent, add to "Backlog"
|
||||||
3. Otherwise, add to "Backlog Candidate" for future consideration
|
3. Otherwise, add to "Backlog Candidate" for future consideration
|
||||||
|
|
||||||
### Project boards
|
|
||||||
|
|
||||||
We use project boards for projects or goals that span multiple milestones.
|
|
||||||
|
|
||||||
Think of this as a place to put miscellaneous things (like testing, clean up
|
|
||||||
stuff, etc). As a maintainer, random tasks may come up here and there. The
|
|
||||||
project boards give you places to add temporary notes before opening a new
|
|
||||||
issue. Given that our release milestones function off of issues, we believe
|
|
||||||
tasks should have dedicated issues.
|
|
||||||
|
|
||||||
Project boards also give us a way to separate the issue triage from
|
|
||||||
bigger-picture, long-term work.
|
|
||||||
|
|
||||||
## Versioning
|
## Versioning
|
||||||
|
|
||||||
`<major.minor.patch>`
|
`<major.minor.patch>`
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
1. Install UserLAnd from [Google Play](https://play.google.com/store/apps/details?id=tech.ula&hl=en_US&gl=US)
|
1. Install UserLAnd from [Google Play](https://play.google.com/store/apps/details?id=tech.ula&hl=en_US&gl=US)
|
||||||
2. Install an Ubuntu VM
|
2. Install an Ubuntu VM
|
||||||
3. Start app
|
3. Start app
|
||||||
4. Install Node.js, `curl` and `yarn` using `sudo apt install nodejs npm yarn curl -y`
|
4. Install Node.js and `curl` using `sudo apt install nodejs npm curl -y`
|
||||||
5. Install `nvm`:
|
5. Install `nvm`:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
@@ -18,6 +18,6 @@ nvm install 16
|
|||||||
nvm use 16
|
nvm use 16
|
||||||
```
|
```
|
||||||
|
|
||||||
8. Install code-server globally on device with: `npm i -g code-server`
|
8. Install code-server globally on device with: `npm install --global code-server --unsafe-perm`
|
||||||
9. Run code-server with `code-server`
|
9. Run code-server with `code-server`
|
||||||
10. Access on localhost:8080 in your browser
|
10. Access on localhost:8080 in your browser
|
||||||
|
|||||||
@@ -60,6 +60,6 @@ As `code-server` is based on VS Code, you can follow the steps described on Duck
|
|||||||
code-server --enable-proposed-api genuitecllc.codetogether
|
code-server --enable-proposed-api genuitecllc.codetogether
|
||||||
```
|
```
|
||||||
|
|
||||||
Another option would be to add a value in code-server's [config file](https://coder.com/docs/code-server/v4.5.2/FAQ#how-does-the-config-file-work).
|
Another option would be to add a value in code-server's [config file](https://coder.com/docs/code-server/latest/FAQ#how-does-the-config-file-work).
|
||||||
|
|
||||||
3. Refresh code-server and navigate to the CodeTogether icon in the sidebar to host or join a coding session.
|
3. Refresh code-server and navigate to the CodeTogether icon in the sidebar to host or join a coding session.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# code-server Helm Chart
|
# code-server Helm Chart
|
||||||
|
|
||||||
[](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) [](https://img.shields.io/badge/Type-application-informational?style=flat-square) [](https://img.shields.io/badge/AppVersion-4.5.2-informational?style=flat-square)
|
[](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) [](https://img.shields.io/badge/Type-application-informational?style=flat-square) [](https://img.shields.io/badge/AppVersion-4.7.0-informational?style=flat-square)
|
||||||
|
|
||||||
[code-server](https://github.com/coder/code-server) code-server is VS Code running
|
[code-server](https://github.com/coder/code-server) code-server is VS Code running
|
||||||
on a remote server, accessible through the browser.
|
on a remote server, accessible through the browser.
|
||||||
@@ -73,7 +73,7 @@ and their default values.
|
|||||||
| hostnameOverride | string | `""` |
|
| hostnameOverride | string | `""` |
|
||||||
| image.pullPolicy | string | `"Always"` |
|
| image.pullPolicy | string | `"Always"` |
|
||||||
| image.repository | string | `"codercom/code-server"` |
|
| image.repository | string | `"codercom/code-server"` |
|
||||||
| image.tag | string | `"4.5.2"` |
|
| image.tag | string | `"4.7.0"` |
|
||||||
| imagePullSecrets | list | `[]` |
|
| imagePullSecrets | list | `[]` |
|
||||||
| ingress.enabled | bool | `false` |
|
| ingress.enabled | bool | `false` |
|
||||||
| nameOverride | string | `""` |
|
| nameOverride | string | `""` |
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
- [install.sh](#installsh)
|
- [install.sh](#installsh)
|
||||||
- [Detection reference](#detection-reference)
|
- [Detection reference](#detection-reference)
|
||||||
- [yarn, npm](#yarn-npm)
|
- [npm](#npm)
|
||||||
- [Standalone releases](#standalone-releases)
|
- [Standalone releases](#standalone-releases)
|
||||||
- [Debian, Ubuntu](#debian-ubuntu)
|
- [Debian, Ubuntu](#debian-ubuntu)
|
||||||
- [Fedora, CentOS, RHEL, SUSE](#fedora-centos-rhel-suse)
|
- [Fedora, CentOS, RHEL, SUSE](#fedora-centos-rhel-suse)
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
- [Uninstall](#uninstall)
|
- [Uninstall](#uninstall)
|
||||||
- [install.sh](#installsh-1)
|
- [install.sh](#installsh-1)
|
||||||
- [Homebrew](#homebrew)
|
- [Homebrew](#homebrew)
|
||||||
- [yarn, npm](#yarn-npm-1)
|
- [npm](#npm-1)
|
||||||
- [Debian, Ubuntu](#debian-ubuntu-1)
|
- [Debian, Ubuntu](#debian-ubuntu-1)
|
||||||
|
|
||||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
@@ -88,17 +88,16 @@ _exact_ same commands presented in the rest of this document.
|
|||||||
|
|
||||||
- Ensure that you add `~/.local/bin` to your `$PATH` to run code-server.
|
- Ensure that you add `~/.local/bin` to your `$PATH` to run code-server.
|
||||||
|
|
||||||
- For FreeBSD, code-server will install the [npm package](#yarn-npm) with `yarn`
|
- For FreeBSD, code-server will install the [npm package](#npm) with `npm`
|
||||||
or `npm`.
|
|
||||||
|
|
||||||
- If you're installing code-server onto architecture with no releases,
|
- If you're installing code-server onto architecture with no releases,
|
||||||
code-server will install the [npm package](#yarn-npm) with `yarn` or `npm`
|
code-server will install the [npm package](#npm) with `npm`
|
||||||
- We currently offer releases for amd64 and arm64.
|
- We currently offer releases for amd64 and arm64.
|
||||||
- The [npm package](#yarn-npm) builds the native modules on post-install.
|
- The [npm package](#npm) builds the native modules on post-install.
|
||||||
|
|
||||||
## yarn, npm
|
## npm
|
||||||
|
|
||||||
We recommend installing with `yarn` or `npm` when:
|
We recommend installing with `npm` when:
|
||||||
|
|
||||||
1. You aren't using a machine with `amd64` or `arm64`.
|
1. You aren't using a machine with `amd64` or `arm64`.
|
||||||
1. You are installing code-server on Windows
|
1. You are installing code-server on Windows
|
||||||
@@ -108,9 +107,9 @@ We recommend installing with `yarn` or `npm` when:
|
|||||||
[#1430](https://github.com/coder/code-server/issues/1430#issuecomment-629883198)
|
[#1430](https://github.com/coder/code-server/issues/1430#issuecomment-629883198)
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
Installing code-server with `yarn` or `npm` builds native modules on install.
|
Installing code-server with `npm` builds native modules on install.
|
||||||
|
|
||||||
This process requires C dependencies; see our guide on [installing with yarn and npm][./npm.md](./npm.md) for more information.
|
This process requires C dependencies; see our guide on [installing with npm](./npm.md) for more information.
|
||||||
|
|
||||||
## Standalone releases
|
## Standalone releases
|
||||||
|
|
||||||
@@ -118,7 +117,7 @@ We publish self-contained `.tar.gz` archives for every release on
|
|||||||
[GitHub](https://github.com/coder/code-server/releases). The archives bundle the
|
[GitHub](https://github.com/coder/code-server/releases). The archives bundle the
|
||||||
node binary and node modules.
|
node binary and node modules.
|
||||||
|
|
||||||
We create the standalone releases using the [npm package](#yarn-npm), and we
|
We create the standalone releases using the [npm package](#npm), and we
|
||||||
then create the remaining releases using the standalone version.
|
then create the remaining releases using the standalone version.
|
||||||
|
|
||||||
The only requirement to use the standalone release is `glibc` >= 2.17 and
|
The only requirement to use the standalone release is `glibc` >= 2.17 and
|
||||||
@@ -152,11 +151,11 @@ code-server
|
|||||||
## Debian, Ubuntu
|
## Debian, Ubuntu
|
||||||
|
|
||||||
> The standalone arm64 .deb does not support Ubuntu 16.04 or earlier. Please
|
> The standalone arm64 .deb does not support Ubuntu 16.04 or earlier. Please
|
||||||
> upgrade or [build with yarn](#yarn-npm).
|
> upgrade or [build with npm](#npm).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fOL https://github.com/coder/code-server/releases/download/v$VERSION/code-server_$VERSION_amd64.deb
|
curl -fOL https://github.com/coder/code-server/releases/download/v$VERSION/code-server_${VERSION}_amd64.deb
|
||||||
sudo dpkg -i code-server_$VERSION_amd64.deb
|
sudo dpkg -i code-server_${VERSION}_amd64.deb
|
||||||
sudo systemctl enable --now code-server@$USER
|
sudo systemctl enable --now code-server@$USER
|
||||||
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
||||||
```
|
```
|
||||||
@@ -164,7 +163,7 @@ sudo systemctl enable --now code-server@$USER
|
|||||||
## Fedora, CentOS, RHEL, SUSE
|
## Fedora, CentOS, RHEL, SUSE
|
||||||
|
|
||||||
> The standalone arm64 .rpm does not support CentOS 7. Please upgrade or [build
|
> The standalone arm64 .rpm does not support CentOS 7. Please upgrade or [build
|
||||||
> with yarn](#yarn-npm).
|
> with npm](#npm).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fOL https://github.com/coder/code-server/releases/download/v$VERSION/code-server-$VERSION-amd64.rpm
|
curl -fOL https://github.com/coder/code-server/releases/download/v$VERSION/code-server-$VERSION-amd64.rpm
|
||||||
@@ -295,14 +294,13 @@ You can install code-server using the [Helm package manager](https://coder.com/d
|
|||||||
|
|
||||||
## Windows
|
## Windows
|
||||||
|
|
||||||
We currently [do not publish Windows releases](https://github.com/coder/code-server/issues/1397). We recommend installing code-server onto Windows with [`yarn` or `npm`](#yarn-npm).
|
We currently [do not publish Windows releases](https://github.com/coder/code-server/issues/1397). We recommend installing code-server onto Windows with [`npm`](#npm).
|
||||||
|
|
||||||
> Note: You will also need to [build coder/cloud-agent manually](https://github.com/coder/cloud-agent/issues/17) if you would like to use `code-server --link` on Windows.
|
> Note: You will also need to [build coder/cloud-agent manually](https://github.com/coder/cloud-agent/issues/17) if you would like to use `code-server --link` on Windows.
|
||||||
|
|
||||||
## Raspberry Pi
|
## Raspberry Pi
|
||||||
|
|
||||||
We recommend installing code-server onto Raspberry Pi with [`yarn` or
|
We recommend installing code-server onto Raspberry Pi with [`npm`](#npm).
|
||||||
`npm`](#yarn-npm).
|
|
||||||
|
|
||||||
If you see an error related to `node-gyp` during installation, See [#5174](https://github.com/coder/code-server/issues/5174) for more information.
|
If you see an error related to `node-gyp` during installation, See [#5174](https://github.com/coder/code-server/issues/5174) for more information.
|
||||||
|
|
||||||
@@ -346,18 +344,12 @@ brew remove code-server
|
|||||||
brew uninstall code-server
|
brew uninstall code-server
|
||||||
```
|
```
|
||||||
|
|
||||||
### yarn, npm
|
### npm
|
||||||
|
|
||||||
To remove the code-server global module, run:
|
To remove the code-server global module, run:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
yarn global remove code-server
|
npm uninstall --global code-server
|
||||||
```
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
```shell
|
|
||||||
npm uninstall -g code-server
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Debian, Ubuntu
|
### Debian, Ubuntu
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"versions": ["v4.5.2"],
|
"versions": ["v4.7.0"],
|
||||||
"routes": [
|
"routes": [
|
||||||
{
|
{
|
||||||
"title": "Home",
|
"title": "Home",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"title": "npm",
|
"title": "npm",
|
||||||
"description": "How to install code-server using npm or yarn",
|
"description": "How to install code-server using npm",
|
||||||
"path": "./npm.md"
|
"path": "./npm.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
24
docs/npm.md
24
docs/npm.md
@@ -20,6 +20,11 @@ If you're installing code-server via `npm`, you'll need to install additional
|
|||||||
dependencies required to build the native modules used by VS Code. This article
|
dependencies required to build the native modules used by VS Code. This article
|
||||||
includes installing instructions based on your operating system.
|
includes installing instructions based on your operating system.
|
||||||
|
|
||||||
|
> **WARNING**: Do not use `yarn` to install code-server. Unlike `npm`, it does not respect
|
||||||
|
> lockfiles for distributed applications. It will instead use the latest version
|
||||||
|
> available at installation time - which might not be the one used for a given
|
||||||
|
> code-server release, and [might lead to unexpected behavior](https://github.com/coder/code-server/issues/4927).
|
||||||
|
|
||||||
## Node.js version
|
## Node.js version
|
||||||
|
|
||||||
We use the same major version of Node.js shipped with Code's remote, which is
|
We use the same major version of Node.js shipped with Code's remote, which is
|
||||||
@@ -72,7 +77,7 @@ Proceed to [installing](#installing)
|
|||||||
## FreeBSD
|
## FreeBSD
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
pkg install -y git python npm-node16 yarn-node16 pkgconf
|
pkg install -y git python npm-node16 pkgconf
|
||||||
pkg install -y libinotify
|
pkg install -y libinotify
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -85,8 +90,7 @@ Installing code-server requires all of the [prerequisites for VS Code developmen
|
|||||||
Next, install code-server with:
|
Next, install code-server with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn global add code-server
|
npm install --global code-server --unsafe-perm
|
||||||
# Or: npm install -g code-server
|
|
||||||
code-server
|
code-server
|
||||||
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
||||||
```
|
```
|
||||||
@@ -96,8 +100,7 @@ A `postinstall.sh` script will attempt to run. Select your terminal (e.g., Git b
|
|||||||
If the `code-server` command is not found, you'll need to [add a directory to your PATH](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/). To find the directory, use the following command:
|
If the `code-server` command is not found, you'll need to [add a directory to your PATH](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/). To find the directory, use the following command:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
yarn global bin
|
npm config get prefix
|
||||||
# Or: npm config get prefix
|
|
||||||
```
|
```
|
||||||
|
|
||||||
For help and additional troubleshooting, see [#1397](https://github.com/coder/code-server/issues/1397).
|
For help and additional troubleshooting, see [#1397](https://github.com/coder/code-server/issues/1397).
|
||||||
@@ -107,8 +110,7 @@ For help and additional troubleshooting, see [#1397](https://github.com/coder/co
|
|||||||
After adding the dependencies for your OS, install the code-server package globally:
|
After adding the dependencies for your OS, install the code-server package globally:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn global add code-server
|
npm install --global code-server --unsafe-perm
|
||||||
# Or: npm install -g code-server
|
|
||||||
code-server
|
code-server
|
||||||
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
|
||||||
```
|
```
|
||||||
@@ -122,7 +124,7 @@ page](https://github.com/coder/code-server/discussions).
|
|||||||
|
|
||||||
Occasionally, you may run into issues with Node.js.
|
Occasionally, you may run into issues with Node.js.
|
||||||
|
|
||||||
If you install code-server using `yarn` or `npm`, and you upgrade your Node.js
|
If you install code-server using `npm`, and you upgrade your Node.js
|
||||||
version, you may need to reinstall code-server to recompile native modules.
|
version, you may need to reinstall code-server to recompile native modules.
|
||||||
Sometimes, you can get around this by navigating into code-server's `lib/vscode`
|
Sometimes, you can get around this by navigating into code-server's `lib/vscode`
|
||||||
directory and running `npm rebuild` to recompile the modules.
|
directory and running `npm rebuild` to recompile the modules.
|
||||||
@@ -136,12 +138,12 @@ A step-by-step example of how you might do this is:
|
|||||||
|
|
||||||
### Debugging install issues with npm
|
### Debugging install issues with npm
|
||||||
|
|
||||||
`yarn` suppresses logs when running `yarn global add`, so to debug installation issues, install with `npm` instead:
|
To debug installation issues, install with `npm`:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# Uninstall
|
# Uninstall
|
||||||
npm uninstall -g --unsafe-perm code-server > /dev/null 2>&1
|
npm uninstall --global --unsafe-perm code-server > /dev/null 2>&1
|
||||||
|
|
||||||
# Install with logging
|
# Install with logging
|
||||||
npm install --loglevel verbose -g --unsafe-perm code-server
|
npm install --loglevel verbose --global --unsafe-perm code-server
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# Termux
|
# Termux
|
||||||
|
|
||||||
- [Install](#install)
|
- [Install](#install)
|
||||||
- [Yarn Installation](#yarn-installation)
|
- [NPM Installation](#npm-installation)
|
||||||
- [Upgrade](#upgrade)
|
- [Upgrade](#upgrade)
|
||||||
- [Known Issues](#known-issues)
|
- [Known Issues](#known-issues)
|
||||||
- [Git won't work in `/sdcard`](#git-wont-work-in-sdcard)
|
- [Git won't work in `/sdcard`](#git-wont-work-in-sdcard)
|
||||||
@@ -66,7 +66,7 @@ curl -fsSL https://code-server.dev/install.sh | sh
|
|||||||
> Consider using a new user instead of root, read [here](https://www.howtogeek.com/124950/htg-explains-why-you-shouldnt-log-into-your-linux-system-as-root/) why using root is not recommended.\
|
> Consider using a new user instead of root, read [here](https://www.howtogeek.com/124950/htg-explains-why-you-shouldnt-log-into-your-linux-system-as-root/) why using root is not recommended.\
|
||||||
> Learn how to add a user [here](#create-a-new-user).
|
> Learn how to add a user [here](#create-a-new-user).
|
||||||
|
|
||||||
## Yarn Installation
|
## NPM Installation
|
||||||
|
|
||||||
1. Get [Termux](https://f-droid.org/en/packages/com.termux/) from **F-Droid**.
|
1. Get [Termux](https://f-droid.org/en/packages/com.termux/) from **F-Droid**.
|
||||||
|
|
||||||
@@ -93,7 +93,6 @@ pkg install -y \
|
|||||||
binutils \
|
binutils \
|
||||||
pkg-config \
|
pkg-config \
|
||||||
python3 \
|
python3 \
|
||||||
yarn \
|
|
||||||
nodejs-lts
|
nodejs-lts
|
||||||
npm config set python python3
|
npm config set python python3
|
||||||
node -v
|
node -v
|
||||||
@@ -101,11 +100,7 @@ node -v
|
|||||||
|
|
||||||
you will get node version `v16.15.0`
|
you will get node version `v16.15.0`
|
||||||
|
|
||||||
5. Now install code-server
|
5. Now install code-server following our guide on [installing with npm][./npm.md](./npm.md)
|
||||||
|
|
||||||
```sh
|
|
||||||
yarn global add code-server
|
|
||||||
```
|
|
||||||
|
|
||||||
6. Congratulation code-server is installed on your device using the following command.
|
6. Congratulation code-server is installed on your device using the following command.
|
||||||
|
|
||||||
@@ -116,7 +111,7 @@ code-server --auth none
|
|||||||
7. If already installed then use the following command for upgradation.
|
7. If already installed then use the following command for upgradation.
|
||||||
|
|
||||||
```
|
```
|
||||||
yarn upgrade code-server
|
npm update --global code-server --unsafe-perm
|
||||||
```
|
```
|
||||||
|
|
||||||
## Upgrade
|
## Upgrade
|
||||||
|
|||||||
41
flake.lock
generated
Normal file
41
flake.lock
generated
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1659877975,
|
||||||
|
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1660639432,
|
||||||
|
"narHash": "sha256-2WDiboOCfB0LhvnDVMXOAr8ZLDfm3WdO54CkoDPwN1A=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6c6409e965a6c883677be7b9d87a95fab6c3472e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
25
flake.nix
Normal file
25
flake.nix
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
description = "code-server";
|
||||||
|
|
||||||
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
|
flake-utils.lib.eachDefaultSystem
|
||||||
|
(system:
|
||||||
|
let pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
nodejs = pkgs.nodejs-16_x;
|
||||||
|
yarn' = pkgs.yarn.override { inherit nodejs; };
|
||||||
|
in {
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
nodejs yarn' python pkg-config git rsync jq moreutils
|
||||||
|
];
|
||||||
|
buildInputs = with pkgs; (lib.optionals (!stdenv.isDarwin) [ libsecret ]
|
||||||
|
++ (with xorg; [ libX11 libxkbfile ])
|
||||||
|
++ lib.optionals stdenv.isDarwin [
|
||||||
|
AppKit Cocoa CoreServices Security cctools xcbuild
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
Submodule lib/vscode updated: 2062a59ca1...784b0177c5
11
package.json
11
package.json
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "code-server",
|
"name": "code-server",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"version": "4.5.2",
|
"version": "4.7.0",
|
||||||
"description": "Run VS Code on a remote server.",
|
"description": "Run VS Code on a remote server.",
|
||||||
"homepage": "https://github.com/coder/code-server",
|
"homepage": "https://github.com/coder/code-server",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
@@ -59,13 +59,11 @@
|
|||||||
"eslint-import-resolver-typescript": "^2.5.0",
|
"eslint-import-resolver-typescript": "^2.5.0",
|
||||||
"eslint-plugin-import": "^2.18.2",
|
"eslint-plugin-import": "^2.18.2",
|
||||||
"eslint-plugin-prettier": "^4.0.0",
|
"eslint-plugin-prettier": "^4.0.0",
|
||||||
"json": "^11.0.0",
|
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.2.1",
|
||||||
"prettier-plugin-sh": "^0.12.0",
|
"prettier-plugin-sh": "^0.12.0",
|
||||||
"shellcheck": "^1.0.0",
|
"shellcheck": "^1.0.0",
|
||||||
"stylelint": "^13.0.0",
|
"stylelint": "^13.0.0",
|
||||||
"stylelint-config-recommended": "^5.0.0",
|
"stylelint-config-recommended": "^5.0.0",
|
||||||
"synp": "^1.9.10",
|
|
||||||
"ts-node": "^10.0.0",
|
"ts-node": "^10.0.0",
|
||||||
"typescript": "^4.6.2"
|
"typescript": "^4.6.2"
|
||||||
},
|
},
|
||||||
@@ -89,8 +87,8 @@
|
|||||||
"@types/node": "^16.0.0"
|
"@types/node": "^16.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@coder/logger": "1.1.16",
|
"@coder/logger": "^3.0.0",
|
||||||
"argon2": "^0.28.0",
|
"argon2": "^0.29.0",
|
||||||
"compression": "^1.7.4",
|
"compression": "^1.7.4",
|
||||||
"cookie-parser": "^1.4.5",
|
"cookie-parser": "^1.4.5",
|
||||||
"env-paths": "^2.2.0",
|
"env-paths": "^2.2.0",
|
||||||
@@ -108,8 +106,7 @@
|
|||||||
"semver": "^7.1.3",
|
"semver": "^7.1.3",
|
||||||
"split2": "^4.0.0",
|
"split2": "^4.0.0",
|
||||||
"ws": "^8.0.0",
|
"ws": "^8.0.0",
|
||||||
"xdg-basedir": "^4.0.0",
|
"xdg-basedir": "^4.0.0"
|
||||||
"yarn": "^1.22.4"
|
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"code-server": "out/node/entry.js"
|
"code-server": "out/node/entry.js"
|
||||||
|
|||||||
@@ -13,62 +13,15 @@ To test:
|
|||||||
The file or directory should only open from the instance attached to that
|
The file or directory should only open from the instance attached to that
|
||||||
terminal.
|
terminal.
|
||||||
|
|
||||||
Index: code-server/lib/vscode/src/vs/server/node/remoteTerminalChannel.ts
|
|
||||||
===================================================================
|
|
||||||
--- code-server.orig/lib/vscode/src/vs/server/node/remoteTerminalChannel.ts
|
|
||||||
+++ code-server/lib/vscode/src/vs/server/node/remoteTerminalChannel.ts
|
|
||||||
@@ -89,7 +89,7 @@ export class RemoteTerminalChannel exten
|
|
||||||
uriTransformer: IURITransformer;
|
|
||||||
}>();
|
|
||||||
|
|
||||||
- private readonly _onExecuteCommand = this._register(new Emitter<{ reqId: number; commandId: string; commandArgs: any[] }>());
|
|
||||||
+ private readonly _onExecuteCommand = this._register(new Emitter<{ reqId: number; terminalId: number; commandId: string; commandArgs: any[] }>());
|
|
||||||
readonly onExecuteCommand = this._onExecuteCommand.event;
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
@@ -241,20 +241,20 @@ export class RemoteTerminalChannel exten
|
|
||||||
const ipcHandlePath = createRandomIPCHandle();
|
|
||||||
env.VSCODE_IPC_HOOK_CLI = ipcHandlePath;
|
|
||||||
const commandsExecuter: ICommandsExecuter = {
|
|
||||||
- executeCommand: <T>(id: string, ...args: any[]): Promise<T> => this._executeCommand(id, args, uriTransformer)
|
|
||||||
+ executeCommand: <T>(commandId: string, ...args: any[]): Promise<T> => this._executeCommand(terminalId, commandId, args, uriTransformer)
|
|
||||||
};
|
|
||||||
const cliServer = new CLIServerBase(commandsExecuter, this._logService, ipcHandlePath);
|
|
||||||
|
|
||||||
- const id = await this._ptyService.createProcess(shellLaunchConfig, initialCwd, args.cols, args.rows, args.unicodeVersion, env, baseEnv, args.options, args.shouldPersistTerminal, args.workspaceId, args.workspaceName);
|
|
||||||
- this._ptyService.onProcessExit(e => e.id === id && cliServer.dispose());
|
|
||||||
+ const terminalId = await this._ptyService.createProcess(shellLaunchConfig, initialCwd, args.cols, args.rows, args.unicodeVersion, env, baseEnv, args.options, args.shouldPersistTerminal, args.workspaceId, args.workspaceName);
|
|
||||||
+ this._ptyService.onProcessExit(e => e.id === terminalId && cliServer.dispose());
|
|
||||||
|
|
||||||
return {
|
|
||||||
- persistentTerminalId: id,
|
|
||||||
+ persistentTerminalId: terminalId,
|
|
||||||
resolvedShellLaunchConfig: shellLaunchConfig
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
- private _executeCommand<T>(commandId: string, commandArgs: any[], uriTransformer: IURITransformer): Promise<T> {
|
|
||||||
+ private _executeCommand<T>(terminalId: number, commandId: string, commandArgs: any[], uriTransformer: IURITransformer): Promise<T> {
|
|
||||||
let resolve!: (data: any) => void;
|
|
||||||
let reject!: (err: any) => void;
|
|
||||||
const result = new Promise<T>((_resolve, _reject) => {
|
|
||||||
@@ -277,6 +277,7 @@ export class RemoteTerminalChannel exten
|
|
||||||
});
|
|
||||||
this._onExecuteCommand.fire({
|
|
||||||
reqId,
|
|
||||||
+ terminalId,
|
|
||||||
commandId,
|
|
||||||
commandArgs: serializedCommandArgs
|
|
||||||
});
|
|
||||||
Index: code-server/lib/vscode/src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.ts
|
Index: code-server/lib/vscode/src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.ts
|
||||||
+++ code-server/lib/vscode/src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.ts
|
+++ code-server/lib/vscode/src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.ts
|
||||||
@@ -94,10 +94,14 @@ class RemoteTerminalBackend extends Base
|
@@ -99,10 +99,14 @@ class RemoteTerminalBackend extends Base
|
||||||
this._remoteTerminalChannel.onExecuteCommand(async e => {
|
}
|
||||||
const reqId = e.reqId;
|
const reqId = e.reqId;
|
||||||
const commandId = e.commandId;
|
const commandId = e.commandId;
|
||||||
+ const terminalId = e.terminalId;
|
+ const terminalId = e.persistentProcessId;
|
||||||
if (!allowedCommands.includes(commandId)) {
|
if (!allowedCommands.includes(commandId)) {
|
||||||
this._remoteTerminalChannel.sendCommandResult(reqId, true, 'Invalid remote cli command: ' + commandId);
|
this._remoteTerminalChannel.sendCommandResult(reqId, true, 'Invalid remote cli command: ' + commandId);
|
||||||
return;
|
return;
|
||||||
@@ -79,18 +32,3 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/terminal/browser/remoteTe
|
|||||||
const commandArgs = e.commandArgs.map(arg => revive(arg));
|
const commandArgs = e.commandArgs.map(arg => revive(arg));
|
||||||
try {
|
try {
|
||||||
const result = await this._commandService.executeCommand(e.commandId, ...commandArgs);
|
const result = await this._commandService.executeCommand(e.commandId, ...commandArgs);
|
||||||
Index: code-server/lib/vscode/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts
|
|
||||||
===================================================================
|
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts
|
|
||||||
+++ code-server/lib/vscode/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts
|
|
||||||
@@ -88,8 +88,8 @@ export class RemoteTerminalChannelClient
|
|
||||||
get onProcessOrphanQuestion(): Event<{ id: number }> {
|
|
||||||
return this._channel.listen<{ id: number }>('$onProcessOrphanQuestion');
|
|
||||||
}
|
|
||||||
- get onExecuteCommand(): Event<{ reqId: number; commandId: string; commandArgs: any[] }> {
|
|
||||||
- return this._channel.listen<{ reqId: number; commandId: string; commandArgs: any[] }>('$onExecuteCommand');
|
|
||||||
+ get onExecuteCommand(): Event<{ reqId: number; terminalId: number; commandId: string; commandArgs: any[] }> {
|
|
||||||
+ return this._channel.listen<{ reqId: number; terminalId: number; commandId: string; commandArgs: any[] }>('$onExecuteCommand');
|
|
||||||
}
|
|
||||||
get onDidRequestDetach(): Event<{ requestId: number; workspaceId: string; instanceId: number }> {
|
|
||||||
return this._channel.listen<{ requestId: number; workspaceId: string; instanceId: number }>('$onDidRequestDetach');
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
||||||
+++ code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
+++ code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
||||||
@@ -237,6 +237,10 @@ export class Extension implements IExten
|
@@ -236,6 +236,10 @@ export class Extension implements IExten
|
||||||
if (this.type === ExtensionType.System && this.productService.quality === 'stable') {
|
if (this.type === ExtensionType.System && this.productService.quality === 'stable') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens
|
|||||||
if (!this.local.preRelease && this.gallery.properties.isPreReleaseVersion) {
|
if (!this.local.preRelease && this.gallery.properties.isPreReleaseVersion) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1122,6 +1126,10 @@ export class ExtensionsWorkbenchService
|
@@ -1121,6 +1125,10 @@ export class ExtensionsWorkbenchService
|
||||||
// Skip if check updates only for builtin extensions and current extension is not builtin.
|
// Skip if check updates only for builtin extensions and current extension is not builtin.
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
24
patches/exec-argv.diff
Normal file
24
patches/exec-argv.diff
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
Preserve process.execArgv
|
||||||
|
|
||||||
|
This ensures flags like `--prof` are passed down to the code-server process so
|
||||||
|
we can profile everything.
|
||||||
|
|
||||||
|
To test this:
|
||||||
|
1. run `./lib/node --prof .`
|
||||||
|
2. in another terminal, run `ps -ejww`
|
||||||
|
|
||||||
|
You should see `--prof` next to every code-server process.
|
||||||
|
|
||||||
|
Index: code-server/lib/vscode/src/vs/server/node/extensionHostConnection.ts
|
||||||
|
===================================================================
|
||||||
|
--- code-server.orig/lib/vscode/src/vs/server/node/extensionHostConnection.ts
|
||||||
|
+++ code-server/lib/vscode/src/vs/server/node/extensionHostConnection.ts
|
||||||
|
@@ -228,7 +228,7 @@ export class ExtensionHostConnection {
|
||||||
|
|
||||||
|
public async start(startParams: IRemoteExtensionHostStartParams): Promise<void> {
|
||||||
|
try {
|
||||||
|
- let execArgv: string[] = [];
|
||||||
|
+ let execArgv: string[] = process.execArgv ? process.execArgv.filter(a => !/^--inspect(-brk)?=/.test(a)) : [];
|
||||||
|
if (startParams.port && !(<any>process).pkg) {
|
||||||
|
execArgv = [`--inspect${startParams.break ? '-brk' : ''}=${startParams.port}`];
|
||||||
|
}
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
Add a heartbeat to web socket connections
|
|
||||||
|
|
||||||
This prevents them from being killed when they are idle. To test run behind
|
|
||||||
NGINX, make sure the sockets are idle (check dev tools), then wait 60+ seconds.
|
|
||||||
|
|
||||||
Index: code-server/lib/vscode/src/vs/base/parts/ipc/common/ipc.net.ts
|
|
||||||
===================================================================
|
|
||||||
--- code-server.orig/lib/vscode/src/vs/base/parts/ipc/common/ipc.net.ts
|
|
||||||
+++ code-server/lib/vscode/src/vs/base/parts/ipc/common/ipc.net.ts
|
|
||||||
@@ -7,6 +7,7 @@ import { VSBuffer } from 'vs/base/common
|
|
||||||
import { Emitter, Event } from 'vs/base/common/event';
|
|
||||||
import { Disposable, dispose, IDisposable } from 'vs/base/common/lifecycle';
|
|
||||||
import { IIPCLogger, IMessagePassingProtocol, IPCClient } from 'vs/base/parts/ipc/common/ipc';
|
|
||||||
+import { isWeb } from 'vs/base/common/platform';
|
|
||||||
|
|
||||||
export const enum SocketDiagnosticsEventType {
|
|
||||||
Created = 'created',
|
|
||||||
@@ -828,6 +829,19 @@ export class PersistentProtocol implemen
|
|
||||||
this._socketDisposables.push(this._socketWriter);
|
|
||||||
this._socketReader = new ProtocolReader(this._socket);
|
|
||||||
this._socketDisposables.push(this._socketReader);
|
|
||||||
+ // Send empty messages to keep the socket alive. We only need this on the
|
|
||||||
+ // web where sockets can be killed by reverse proxies for inactivity.
|
|
||||||
+ if (isWeb) {
|
|
||||||
+ const timer = setInterval(() => {
|
|
||||||
+ const msg = new ProtocolMessage(ProtocolMessageType.None, 0, 0, getEmptyBuffer());
|
|
||||||
+ this._socketWriter.write(msg);
|
|
||||||
+ }, 45000); // NGINX has a 60 second default timeout so try 45 seconds.
|
|
||||||
+ this._socketDisposables.push({
|
|
||||||
+ dispose: () => {
|
|
||||||
+ clearInterval(timer);
|
|
||||||
+ },
|
|
||||||
+ });
|
|
||||||
+ }
|
|
||||||
this._socketDisposables.push(this._socketReader.onMessage(msg => this._receiveMessage(msg)));
|
|
||||||
this._socketDisposables.push(this._socket.onClose((e) => this._onSocketClose.fire(e)));
|
|
||||||
if (initialChunk) {
|
|
||||||
@@ -27,7 +27,7 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/client.ts
|
|||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
@@ -42,5 +45,32 @@ export class CodeServerClient extends Di
|
@@ -42,5 +45,31 @@ export class CodeServerClient extends Di
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,6 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/client.ts
|
|||||||
+ class: undefined,
|
+ class: undefined,
|
||||||
+ enabled: true,
|
+ enabled: true,
|
||||||
+ checked: true,
|
+ checked: true,
|
||||||
+ dispose: () => undefined,
|
|
||||||
+ run: () => {
|
+ run: () => {
|
||||||
+ return Promise.resolve();
|
+ return Promise.resolve();
|
||||||
+ },
|
+ },
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/extensions/common/abstra
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.ts
|
||||||
+++ code-server/lib/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.ts
|
+++ code-server/lib/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.ts
|
||||||
@@ -1460,7 +1460,7 @@ class ProposedApiController {
|
@@ -1458,7 +1458,7 @@ class ProposedApiController {
|
||||||
|
|
||||||
this._envEnabledExtensions = new Set((_environmentService.extensionEnabledProposedApi ?? []).map(id => ExtensionIdentifier.toKey(id)));
|
this._envEnabledExtensions = new Set((_environmentService.extensionEnabledProposedApi ?? []).map(id => ExtensionIdentifier.toKey(id)));
|
||||||
|
|
||||||
|
|||||||
@@ -35,19 +35,19 @@ Index: code-server/lib/vscode/src/vs/platform/remote/browser/remoteAuthorityReso
|
|||||||
import { getRemoteServerRootPath, parseAuthorityWithOptionalPort } from 'vs/platform/remote/common/remoteHosts';
|
import { getRemoteServerRootPath, parseAuthorityWithOptionalPort } from 'vs/platform/remote/common/remoteHosts';
|
||||||
|
|
||||||
export class RemoteAuthorityResolverService extends Disposable implements IRemoteAuthorityResolverService {
|
export class RemoteAuthorityResolverService extends Disposable implements IRemoteAuthorityResolverService {
|
||||||
@@ -22,7 +22,7 @@ export class RemoteAuthorityResolverServ
|
@@ -23,7 +23,7 @@ export class RemoteAuthorityResolverServ
|
||||||
private readonly _connectionToken: string | undefined;
|
private readonly _connectionToken: Promise<string> | string | undefined;
|
||||||
private readonly _connectionTokens: Map<string, string>;
|
private readonly _connectionTokens: Map<string, string>;
|
||||||
|
|
||||||
- constructor(@IProductService productService: IProductService, connectionToken: string | undefined, resourceUriProvider: ((uri: URI) => URI) | undefined) {
|
- constructor(@IProductService productService: IProductService, connectionToken: Promise<string> | string | undefined, resourceUriProvider: ((uri: URI) => URI) | undefined) {
|
||||||
+ constructor(@IProductService productService: IProductService, connectionToken: string | undefined, resourceUriProvider: ((uri: URI) => URI) | undefined, private readonly proxyEndpointTemplate?: string) {
|
+ constructor(@IProductService productService: IProductService, connectionToken: Promise<string> | string | undefined, resourceUriProvider: ((uri: URI) => URI) | undefined, private readonly proxyEndpointTemplate?: string) {
|
||||||
super();
|
super();
|
||||||
this._cache = new Map<string, ResolverResult>();
|
|
||||||
this._connectionToken = connectionToken;
|
this._connectionToken = connectionToken;
|
||||||
@@ -62,9 +62,14 @@ export class RemoteAuthorityResolverServ
|
this._connectionTokens = new Map<string, string>();
|
||||||
|
@@ -61,9 +61,14 @@ export class RemoteAuthorityResolverServ
|
||||||
|
|
||||||
private _doResolveAuthority(authority: string): ResolverResult {
|
private async _doResolveAuthority(authority: string): Promise<ResolverResult> {
|
||||||
const connectionToken = this._connectionTokens.get(authority) || this._connectionToken;
|
const connectionToken = await Promise.resolve(this._connectionTokens.get(authority) || this._connectionToken);
|
||||||
+ let options: ResolvedOptions | undefined;
|
+ let options: ResolvedOptions | undefined;
|
||||||
+ if (this.proxyEndpointTemplate) {
|
+ if (this.proxyEndpointTemplate) {
|
||||||
+ const proxyUrl = new URL(this.proxyEndpointTemplate, window.location.href);
|
+ const proxyUrl = new URL(this.proxyEndpointTemplate, window.location.href);
|
||||||
@@ -55,11 +55,11 @@ Index: code-server/lib/vscode/src/vs/platform/remote/browser/remoteAuthorityReso
|
|||||||
+ }
|
+ }
|
||||||
const defaultPort = (/^https:/.test(window.location.href) ? 443 : 80);
|
const defaultPort = (/^https:/.test(window.location.href) ? 443 : 80);
|
||||||
const { host, port } = parseAuthorityWithOptionalPort(authority, defaultPort);
|
const { host, port } = parseAuthorityWithOptionalPort(authority, defaultPort);
|
||||||
- return { authority: { authority, host: host, port: port, connectionToken } };
|
- const result: ResolverResult = { authority: { authority, host: host, port: port, connectionToken } };
|
||||||
+ return { authority: { authority, host: host, port: port, connectionToken }, options };
|
+ const result: ResolverResult = { authority: { authority, host: host, port: port, connectionToken }, options };
|
||||||
}
|
RemoteAuthorities.set(authority, result.authority.host, result.authority.port);
|
||||||
|
this._cache.set(authority, result);
|
||||||
_clearResolvedAuthority(authority: string): void {
|
this._onDidChangeConnectionData.fire();
|
||||||
Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
@@ -76,7 +76,7 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/web.main.ts
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/browser/web.main.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/browser/web.main.ts
|
||||||
+++ code-server/lib/vscode/src/vs/workbench/browser/web.main.ts
|
+++ code-server/lib/vscode/src/vs/workbench/browser/web.main.ts
|
||||||
@@ -239,7 +239,7 @@ export class BrowserMain extends Disposa
|
@@ -247,7 +247,7 @@ export class BrowserMain extends Disposa
|
||||||
|
|
||||||
// Remote
|
// Remote
|
||||||
const connectionToken = environmentService.options.connectionToken || getCookieValue(connectionTokenCookieName);
|
const connectionToken = environmentService.options.connectionToken || getCookieValue(connectionTokenCookieName);
|
||||||
|
|||||||
13
patches/safari-console.diff
Normal file
13
patches/safari-console.diff
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Index: code-server/lib/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts
|
||||||
|
===================================================================
|
||||||
|
--- code-server.orig/lib/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts
|
||||||
|
+++ code-server/lib/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts
|
||||||
|
@@ -286,7 +286,7 @@ export class XtermTerminal extends Dispo
|
||||||
|
}
|
||||||
|
|
||||||
|
private _shouldLoadCanvas(): boolean {
|
||||||
|
- return (this._configHelper.config.gpuAcceleration === 'auto' && (XtermTerminal._suggestedRendererType === undefined || XtermTerminal._suggestedRendererType === 'canvas')) || this._configHelper.config.gpuAcceleration === 'canvas';
|
||||||
|
+ return !isSafari && (this._configHelper.config.gpuAcceleration === 'auto' && (XtermTerminal._suggestedRendererType === undefined || XtermTerminal._suggestedRendererType === 'canvas')) || this._configHelper.config.gpuAcceleration === 'canvas';
|
||||||
|
}
|
||||||
|
|
||||||
|
forceRedraw() {
|
||||||
@@ -20,4 +20,5 @@ disable-downloads.diff
|
|||||||
telemetry.diff
|
telemetry.diff
|
||||||
display-language.diff
|
display-language.diff
|
||||||
cli-window-open.diff
|
cli-window-open.diff
|
||||||
heartbeat.diff
|
exec-argv.diff
|
||||||
|
safari-console.diff
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Index: code-server/lib/vscode/build/gulpfile.reh.js
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/build/gulpfile.reh.js
|
--- code-server.orig/lib/vscode/build/gulpfile.reh.js
|
||||||
+++ code-server/lib/vscode/build/gulpfile.reh.js
|
+++ code-server/lib/vscode/build/gulpfile.reh.js
|
||||||
@@ -194,8 +194,7 @@ function packageTask(type, platform, arc
|
@@ -196,8 +196,7 @@ function packageTask(type, platform, arc
|
||||||
|
|
||||||
const src = gulp.src(sourceFolderName + '/**', { base: '.' })
|
const src = gulp.src(sourceFolderName + '/**', { base: '.' })
|
||||||
.pipe(rename(function (path) { path.dirname = path.dirname.replace(new RegExp('^' + sourceFolderName), 'out'); }))
|
.pipe(rename(function (path) { path.dirname = path.dirname.replace(new RegExp('^' + sourceFolderName), 'out'); }))
|
||||||
@@ -20,7 +20,7 @@ Index: code-server/lib/vscode/build/gulpfile.reh.js
|
|||||||
|
|
||||||
const workspaceExtensionPoints = ['debuggers', 'jsonValidation'];
|
const workspaceExtensionPoints = ['debuggers', 'jsonValidation'];
|
||||||
const isUIExtension = (manifest) => {
|
const isUIExtension = (manifest) => {
|
||||||
@@ -234,9 +233,9 @@ function packageTask(type, platform, arc
|
@@ -236,9 +235,9 @@ function packageTask(type, platform, arc
|
||||||
.map(name => `.build/extensions/${name}/**`);
|
.map(name => `.build/extensions/${name}/**`);
|
||||||
|
|
||||||
const extensions = gulp.src(extensionPaths, { base: '.build', dot: true });
|
const extensions = gulp.src(extensionPaths, { base: '.build', dot: true });
|
||||||
@@ -32,7 +32,7 @@ Index: code-server/lib/vscode/build/gulpfile.reh.js
|
|||||||
|
|
||||||
let version = packageJson.version;
|
let version = packageJson.version;
|
||||||
const quality = product.quality;
|
const quality = product.quality;
|
||||||
@@ -371,7 +370,7 @@ function tweakProductForServerWeb(produc
|
@@ -373,7 +372,7 @@ function tweakProductForServerWeb(produc
|
||||||
const minifyTask = task.define(`minify-vscode-${type}`, task.series(
|
const minifyTask = task.define(`minify-vscode-${type}`, task.series(
|
||||||
optimizeTask,
|
optimizeTask,
|
||||||
util.rimraf(`out-vscode-${type}-min`),
|
util.rimraf(`out-vscode-${type}-min`),
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
Add support for telemetry endpoint
|
Add support for telemetry endpoint
|
||||||
|
|
||||||
|
Contains some fixes included in https://github.com/microsoft/vscode/commit/b108bc8294ce920fcf2ee8d53f97c3bcf3316e1c
|
||||||
|
|
||||||
|
To test:
|
||||||
|
1. Look inside a build of code-server, inside `lib/vscode/vs/server/node/server.main.js`
|
||||||
|
2. Search for a `JSON.stringify` near `TelemetryClient`
|
||||||
|
3. throw in a `console.log()` before it and make sure it logs telemetry data
|
||||||
|
|
||||||
Index: code-server/lib/vscode/src/vs/server/node/serverServices.ts
|
Index: code-server/lib/vscode/src/vs/server/node/serverServices.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/server/node/serverServices.ts
|
--- code-server.orig/lib/vscode/src/vs/server/node/serverServices.ts
|
||||||
@@ -86,12 +93,45 @@ Index: code-server/lib/vscode/src/vs/workbench/services/telemetry/browser/teleme
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/services/telemetry/browser/telemetryService.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/services/telemetry/browser/telemetryService.ts
|
||||||
+++ code-server/lib/vscode/src/vs/workbench/services/telemetry/browser/telemetryService.ts
|
+++ code-server/lib/vscode/src/vs/workbench/services/telemetry/browser/telemetryService.ts
|
||||||
@@ -38,26 +38,30 @@ export class TelemetryService extends Di
|
@@ -15,7 +15,7 @@ import { ClassifiedEvent, IGDPRProperty,
|
||||||
|
import { ITelemetryData, ITelemetryInfo, ITelemetryService, TelemetryLevel, TELEMETRY_SETTING_ID } from 'vs/platform/telemetry/common/telemetry';
|
||||||
|
import { TelemetryLogAppender } from 'vs/platform/telemetry/common/telemetryLogAppender';
|
||||||
|
import { ITelemetryServiceConfig, TelemetryService as BaseTelemetryService } from 'vs/platform/telemetry/common/telemetryService';
|
||||||
|
-import { isInternalTelemetry, ITelemetryAppender, NullTelemetryService, supportsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||||
|
+import { getTelemetryLevel, isInternalTelemetry, ITelemetryAppender, NullTelemetryService, supportsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||||
|
import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService';
|
||||||
|
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
|
||||||
|
import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/browser/workbenchCommonProperties';
|
||||||
|
@@ -24,7 +24,7 @@ export class TelemetryService extends Di
|
||||||
|
|
||||||
|
declare readonly _serviceBrand: undefined;
|
||||||
|
|
||||||
|
- private impl: ITelemetryService;
|
||||||
|
+ private impl: ITelemetryService = NullTelemetryService;
|
||||||
|
public readonly sendErrorTelemetry = true;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
@@ -37,11 +37,7 @@ export class TelemetryService extends Di
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
- if (supportsTelemetry(productService, environmentService) && productService.aiConfig?.ariaKey) {
|
- if (supportsTelemetry(productService, environmentService) && productService.aiConfig?.ariaKey) {
|
||||||
+ if (supportsTelemetry(productService, environmentService)) {
|
- this.impl = this.initializeService(environmentService, loggerService, configurationService, storageService, productService, remoteAgentService);
|
||||||
|
- } else {
|
||||||
|
- this.impl = NullTelemetryService;
|
||||||
|
- }
|
||||||
|
+ this.impl = this.initializeService(environmentService, loggerService, configurationService, storageService, productService, remoteAgentService);
|
||||||
|
|
||||||
|
// When the level changes it could change from off to on and we want to make sure telemetry is properly intialized
|
||||||
|
this._register(configurationService.onDidChangeConfiguration(e => {
|
||||||
|
@@ -64,23 +60,28 @@ export class TelemetryService extends Di
|
||||||
|
productService: IProductService,
|
||||||
|
remoteAgentService: IRemoteAgentService
|
||||||
|
) {
|
||||||
|
- const telemetrySupported = supportsTelemetry(productService, environmentService) && productService.aiConfig?.ariaKey;
|
||||||
|
- if (telemetrySupported && this.impl === NullTelemetryService && this.telemetryLevel.value !== TelemetryLevel.NONE) {
|
||||||
|
+ const telemetrySupported = supportsTelemetry(productService, environmentService);
|
||||||
|
+ if (telemetrySupported && getTelemetryLevel(configurationService) !== TelemetryLevel.NONE && this.impl === NullTelemetryService) {
|
||||||
// If remote server is present send telemetry through that, else use the client side appender
|
// If remote server is present send telemetry through that, else use the client side appender
|
||||||
const appenders = [];
|
const appenders = [];
|
||||||
const isInternal = isInternalTelemetry(productService, configurationService);
|
const isInternal = isInternalTelemetry(productService, configurationService);
|
||||||
@@ -103,7 +143,6 @@ Index: code-server/lib/vscode/src/vs/workbench/services/telemetry/browser/teleme
|
|||||||
- commonProperties: resolveWorkbenchCommonProperties(storageService, productService.commit, productService.version, isInternal, environmentService.remoteAuthority, productService.embedderIdentifier, productService.removeTelemetryMachineId, environmentService.options && environmentService.options.resolveCommonTelemetryProperties),
|
- commonProperties: resolveWorkbenchCommonProperties(storageService, productService.commit, productService.version, isInternal, environmentService.remoteAuthority, productService.embedderIdentifier, productService.removeTelemetryMachineId, environmentService.options && environmentService.options.resolveCommonTelemetryProperties),
|
||||||
- sendErrorTelemetry: this.sendErrorTelemetry,
|
- sendErrorTelemetry: this.sendErrorTelemetry,
|
||||||
- };
|
- };
|
||||||
- this.impl = this._register(new BaseTelemetryService(config, configurationService, productService));
|
|
||||||
+ const telemetryProvider: ITelemetryAppender | undefined = remoteAgentService.getConnection() !== null ? { log: remoteAgentService.logTelemetry.bind(remoteAgentService), flush: remoteAgentService.flushTelemetry.bind(remoteAgentService) } : productService.aiConfig?.ariaKey ? new OneDataSystemWebAppender(isInternal, 'monacoworkbench', null, productService.aiConfig?.ariaKey) : undefined;
|
+ const telemetryProvider: ITelemetryAppender | undefined = remoteAgentService.getConnection() !== null ? { log: remoteAgentService.logTelemetry.bind(remoteAgentService), flush: remoteAgentService.flushTelemetry.bind(remoteAgentService) } : productService.aiConfig?.ariaKey ? new OneDataSystemWebAppender(isInternal, 'monacoworkbench', null, productService.aiConfig?.ariaKey) : undefined;
|
||||||
+ if (telemetryProvider) {
|
+ if (telemetryProvider) {
|
||||||
+ appenders.push(telemetryProvider);
|
+ appenders.push(telemetryProvider);
|
||||||
@@ -113,26 +152,19 @@ Index: code-server/lib/vscode/src/vs/workbench/services/telemetry/browser/teleme
|
|||||||
+ commonProperties: resolveWorkbenchCommonProperties(storageService, productService.commit, productService.version, isInternal, environmentService.remoteAuthority, productService.embedderIdentifier, productService.removeTelemetryMachineId, environmentService.options && environmentService.options.resolveCommonTelemetryProperties),
|
+ commonProperties: resolveWorkbenchCommonProperties(storageService, productService.commit, productService.version, isInternal, environmentService.remoteAuthority, productService.embedderIdentifier, productService.removeTelemetryMachineId, environmentService.options && environmentService.options.resolveCommonTelemetryProperties),
|
||||||
+ sendErrorTelemetry: this.sendErrorTelemetry,
|
+ sendErrorTelemetry: this.sendErrorTelemetry,
|
||||||
+ };
|
+ };
|
||||||
+ this.impl = this._register(new BaseTelemetryService(config, configurationService, productService));
|
+
|
||||||
|
+ return this._register(new BaseTelemetryService(config, configurationService, productService));
|
||||||
- if (getTelemetryLevel(configurationService) !== TelemetryLevel.NONE) {
|
|
||||||
- // If we cannot fetch the endpoint it means it is down and we should not send any telemetry.
|
|
||||||
- // This is most likely due to ad blockers
|
|
||||||
- fetch(telemetryEndpointUrl, { method: 'POST' }).catch(err => {
|
|
||||||
- this.impl = NullTelemetryService;
|
|
||||||
- });
|
|
||||||
+ if (remoteAgentService.getConnection() === null && getTelemetryLevel(configurationService) !== TelemetryLevel.NONE) {
|
|
||||||
+ // If we cannot fetch the endpoint it means it is down and we should not send any telemetry.
|
|
||||||
+ // This is most likely due to ad blockers
|
|
||||||
+ fetch(telemetryEndpointUrl, { method: 'POST' }).catch(err => {
|
|
||||||
+ this.impl = NullTelemetryService;
|
|
||||||
+ });
|
|
||||||
+ }
|
|
||||||
+ } else {
|
+ } else {
|
||||||
+ this.impl = NullTelemetryService;
|
+ return this.impl;
|
||||||
}
|
+ }
|
||||||
} else {
|
|
||||||
this.impl = NullTelemetryService;
|
- return this._register(new BaseTelemetryService(config, configurationService, productService));
|
||||||
|
}
|
||||||
|
- return NullTelemetryService;
|
||||||
|
+ return this.impl;
|
||||||
|
}
|
||||||
|
|
||||||
|
setExperimentProperty(name: string, value: string): void {
|
||||||
Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
||||||
|
|||||||
@@ -9,11 +9,6 @@ ensures that different browser paths will be unique (for example /workspace1 and
|
|||||||
The easiest way to test is to open files in the same workspace using both / and
|
The easiest way to test is to open files in the same workspace using both / and
|
||||||
/vscode and make sure they are not interacting with each other.
|
/vscode and make sure they are not interacting with each other.
|
||||||
|
|
||||||
It should also migrate old databases which can be tested by opening in an old
|
|
||||||
code-server.
|
|
||||||
|
|
||||||
This has e2e tests.
|
|
||||||
|
|
||||||
Index: code-server/lib/vscode/src/vs/workbench/services/storage/browser/storageService.ts
|
Index: code-server/lib/vscode/src/vs/workbench/services/storage/browser/storageService.ts
|
||||||
===================================================================
|
===================================================================
|
||||||
--- code-server.orig/lib/vscode/src/vs/workbench/services/storage/browser/storageService.ts
|
--- code-server.orig/lib/vscode/src/vs/workbench/services/storage/browser/storageService.ts
|
||||||
@@ -39,29 +34,3 @@ Index: code-server/lib/vscode/src/vs/workbench/services/storage/browser/storageS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,6 +146,25 @@ export class BrowserStorageService exten
|
|
||||||
|
|
||||||
await this.workspaceStorage.init();
|
|
||||||
|
|
||||||
+ const firstWorkspaceOpen = this.workspaceStorage.getBoolean(IS_NEW_KEY);
|
|
||||||
+ if (firstWorkspaceOpen === undefined) {
|
|
||||||
+ // Migrate the old database.
|
|
||||||
+ let db: IIndexedDBStorageDatabase | undefined
|
|
||||||
+ try {
|
|
||||||
+ db = await IndexedDBStorageDatabase.create({ id: this.payload.id }, this.logService)
|
|
||||||
+ const items = await db.getItems()
|
|
||||||
+ for (const [key, value] of items) {
|
|
||||||
+ this.workspaceStorage.set(key, value);
|
|
||||||
+ }
|
|
||||||
+ } catch (error) {
|
|
||||||
+ this.logService.error(`[IndexedDB Storage ${this.payload.id}] migrate error: ${toErrorMessage(error)}`);
|
|
||||||
+ } finally {
|
|
||||||
+ if (db) {
|
|
||||||
+ db.close()
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
this.updateIsNew(this.workspaceStorage);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ export async function setDefaults(cliArgs: UserProvidedArgs, configArgs?: Config
|
|||||||
args.verbose = false
|
args.verbose = false
|
||||||
break
|
break
|
||||||
case LogLevel.Warn:
|
case LogLevel.Warn:
|
||||||
logger.level = Level.Warning
|
logger.level = Level.Warn
|
||||||
args.verbose = false
|
args.verbose = false
|
||||||
break
|
break
|
||||||
case LogLevel.Error:
|
case LogLevel.Error:
|
||||||
|
|||||||
@@ -317,8 +317,7 @@ export class ParentProcess extends Process {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private spawn(): cp.ChildProcess {
|
private spawn(): cp.ChildProcess {
|
||||||
// Use spawn (instead of fork) to use the new binary in case it was updated.
|
return cp.fork(path.join(__dirname, "entry"), {
|
||||||
return cp.spawn(process.argv[0], process.argv.slice(1), {
|
|
||||||
env: {
|
env: {
|
||||||
...process.env,
|
...process.env,
|
||||||
CODE_SERVER_PARENT_PID: process.pid.toString(),
|
CODE_SERVER_PARENT_PID: process.pid.toString(),
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
import * as cp from "child_process"
|
|
||||||
import { promises as fs } from "fs"
|
import { promises as fs } from "fs"
|
||||||
import * as os from "os"
|
|
||||||
import * as path from "path"
|
import * as path from "path"
|
||||||
import * as util from "util"
|
|
||||||
import { getMaybeProxiedCodeServer } from "../utils/helpers"
|
import { getMaybeProxiedCodeServer } from "../utils/helpers"
|
||||||
import { describe, test, expect } from "./baseFixture"
|
import { describe, test, expect } from "./baseFixture"
|
||||||
import { CodeServer } from "./models/CodeServer"
|
import { CodeServer } from "./models/CodeServer"
|
||||||
@@ -17,30 +14,6 @@ describe("code-server", [], {}, () => {
|
|||||||
await Promise.all(procs.map((cs) => cs.close()))
|
await Promise.all(procs.map((cs) => cs.close()))
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
|
||||||
* Spawn a specific version of code-server using the install script.
|
|
||||||
*/
|
|
||||||
const spawn = async (version: string, dir?: string): Promise<CodeServer> => {
|
|
||||||
let instance = instances.get(version)
|
|
||||||
if (!instance) {
|
|
||||||
await util.promisify(cp.exec)(`./install.sh --method standalone --version ${version}`, {
|
|
||||||
cwd: path.join(__dirname, "../.."),
|
|
||||||
})
|
|
||||||
|
|
||||||
instance = new CodeServer(
|
|
||||||
"code-server@" + version,
|
|
||||||
["--auth=none"],
|
|
||||||
{ VSCODE_DEV: "" },
|
|
||||||
dir,
|
|
||||||
`${os.homedir()}/.local/lib/code-server-${version}`,
|
|
||||||
)
|
|
||||||
|
|
||||||
instances.set(version, instance)
|
|
||||||
}
|
|
||||||
|
|
||||||
return instance
|
|
||||||
}
|
|
||||||
|
|
||||||
test("should navigate to home page", async ({ codeServerPage }) => {
|
test("should navigate to home page", async ({ codeServerPage }) => {
|
||||||
// We navigate codeServer before each test
|
// We navigate codeServer before each test
|
||||||
// and we start the test with a storage state
|
// and we start the test with a storage state
|
||||||
@@ -68,54 +41,4 @@ describe("code-server", [], {}, () => {
|
|||||||
await fs.writeFile(file, "bar")
|
await fs.writeFile(file, "bar")
|
||||||
await codeServerPage.openFile(file)
|
await codeServerPage.openFile(file)
|
||||||
})
|
})
|
||||||
|
|
||||||
test("should migrate state to avoid collisions", async ({ codeServerPage }) => {
|
|
||||||
// This can take a very long time in development because of how long pages
|
|
||||||
// take to load and we are doing a lot of that here.
|
|
||||||
if (process.env.VSCODE_DEV === "1") {
|
|
||||||
test.slow()
|
|
||||||
}
|
|
||||||
|
|
||||||
const dir = await codeServerPage.workspaceDir
|
|
||||||
const files = [path.join(dir, "foo"), path.join(dir, "bar")]
|
|
||||||
await Promise.all(
|
|
||||||
files.map((file) => {
|
|
||||||
return fs.writeFile(file, path.basename(file))
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
|
|
||||||
// Open a file in the latest instance.
|
|
||||||
await codeServerPage.openFile(files[0])
|
|
||||||
await codeServerPage.stateFlush()
|
|
||||||
|
|
||||||
// Open a file in an older version of code-server. It should not see the
|
|
||||||
// file opened in the new instance since the database has a different
|
|
||||||
// name. This must be accessed through the proxy so it shares the same
|
|
||||||
// domain and can write to the same database.
|
|
||||||
const cs = await spawn("4.0.2", dir)
|
|
||||||
const address = new URL(await cs.address())
|
|
||||||
|
|
||||||
await codeServerPage.navigate("/proxy/" + address.port + "/")
|
|
||||||
await codeServerPage.openFile(files[1])
|
|
||||||
expect(await codeServerPage.tabIsVisible(files[0])).toBe(false)
|
|
||||||
await codeServerPage.stateFlush()
|
|
||||||
|
|
||||||
// Move back to latest code-server. We should see the file we previously
|
|
||||||
// opened with it but not the old code-server file because the new instance
|
|
||||||
// already created its own database on this path and will avoid migrating.
|
|
||||||
await codeServerPage.navigate()
|
|
||||||
await codeServerPage.waitForTab(files[0])
|
|
||||||
expect(await codeServerPage.tabIsVisible(files[1])).toBe(false)
|
|
||||||
|
|
||||||
// Open a new path in latest code-server. This one should migrate the
|
|
||||||
// database from old code-server but see nothing from the new database
|
|
||||||
// created on the root.
|
|
||||||
await codeServerPage.navigate("/vscode")
|
|
||||||
await codeServerPage.waitForTab(files[1])
|
|
||||||
expect(await codeServerPage.tabIsVisible(files[0])).toBe(false)
|
|
||||||
// Should still be open after a reload.
|
|
||||||
await codeServerPage.navigate("/vscode")
|
|
||||||
await codeServerPage.waitForTab(files[1])
|
|
||||||
expect(await codeServerPage.tabIsVisible(files[0])).toBe(false)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
14
test/e2e/displayLang.test.ts
Normal file
14
test/e2e/displayLang.test.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import * as path from "path"
|
||||||
|
import { describe, test, expect } from "./baseFixture"
|
||||||
|
|
||||||
|
// Given a code-server environment with Spanish Language Pack extension installed
|
||||||
|
// and a languagepacks.json in the data-dir
|
||||||
|
describe("--locale es", ["--extensions-dir", path.join(__dirname, "./extensions"), "--locale", "es"], {}, () => {
|
||||||
|
test("should load code-server in Spanish", async ({ codeServerPage }) => {
|
||||||
|
// When
|
||||||
|
const visible = await codeServerPage.page.isVisible("text=Explorador")
|
||||||
|
|
||||||
|
// Then
|
||||||
|
expect(visible).toBe(true)
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -8,12 +8,14 @@ function runTestExtensionTests() {
|
|||||||
test("should have access to VSCODE_PROXY_URI", async ({ codeServerPage }) => {
|
test("should have access to VSCODE_PROXY_URI", async ({ codeServerPage }) => {
|
||||||
const address = await getMaybeProxiedCodeServer(codeServerPage)
|
const address = await getMaybeProxiedCodeServer(codeServerPage)
|
||||||
|
|
||||||
|
await codeServerPage.waitForTestExtensionLoaded()
|
||||||
await codeServerPage.executeCommandViaMenus("code-server: Get proxy URI")
|
await codeServerPage.executeCommandViaMenus("code-server: Get proxy URI")
|
||||||
|
|
||||||
const text = await codeServerPage.page.locator(".notification-list-item-message").textContent()
|
await codeServerPage.page.waitForSelector("text=proxyUri", { timeout: 3000 })
|
||||||
|
const text = await codeServerPage.page.locator("text=proxyUri").first().textContent()
|
||||||
// Remove end slash in address
|
// Remove end slash in address
|
||||||
const normalizedAddress = address.replace(/\/+$/, "")
|
const normalizedAddress = address.replace(/\/+$/, "")
|
||||||
expect(text).toBe(`${normalizedAddress}/proxy/{{port}}`)
|
expect(text).toBe(`Info: proxyUri: ${normalizedAddress}/proxy/{{port}}`)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"name": "vscode-language-pack-es",
|
||||||
|
"displayName": "Spanish Language Pack for Visual Studio Code",
|
||||||
|
"description": "Language pack extension for Spanish",
|
||||||
|
"version": "1.70.0",
|
||||||
|
"publisher": "MS-CEINTL",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Microsoft/vscode-loc"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"vscode": "^1.70.0"
|
||||||
|
},
|
||||||
|
"categories": [
|
||||||
|
"Language Packs"
|
||||||
|
],
|
||||||
|
"contributes": {
|
||||||
|
"localizations": [
|
||||||
|
{
|
||||||
|
"languageId": "es",
|
||||||
|
"languageName": "Spanish",
|
||||||
|
"localizedLanguageName": "español",
|
||||||
|
"translations": [
|
||||||
|
{
|
||||||
|
"id": "vscode",
|
||||||
|
"path": "./translations/main.i18n.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"": [
|
||||||
|
"--------------------------------------------------------------------------------------------",
|
||||||
|
"Copyright (c) Microsoft Corporation. All rights reserved.",
|
||||||
|
"Licensed under the MIT License. See License.txt in the project root for license information.",
|
||||||
|
"--------------------------------------------------------------------------------------------",
|
||||||
|
"Do not edit this file. It is machine generated."
|
||||||
|
],
|
||||||
|
"version": "1.0.0",
|
||||||
|
"contents": {
|
||||||
|
"vs/workbench/contrib/files/browser/explorerViewlet": {
|
||||||
|
"explore": "Explorador"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
import * as vscode from "vscode"
|
import * as vscode from "vscode"
|
||||||
|
|
||||||
export function activate(context: vscode.ExtensionContext) {
|
export function activate(context: vscode.ExtensionContext) {
|
||||||
|
vscode.window.showInformationMessage("test extension loaded")
|
||||||
context.subscriptions.push(
|
context.subscriptions.push(
|
||||||
vscode.commands.registerCommand("codeServerTest.proxyUri", () => {
|
vscode.commands.registerCommand("codeServerTest.proxyUri", () => {
|
||||||
if (process.env.VSCODE_PROXY_URI) {
|
if (process.env.VSCODE_PROXY_URI) {
|
||||||
vscode.window.showInformationMessage(process.env.VSCODE_PROXY_URI)
|
vscode.window.showInformationMessage(`proxyUri: ${process.env.VSCODE_PROXY_URI}`)
|
||||||
} else {
|
} else {
|
||||||
vscode.window.showErrorMessage("No proxy URI was set")
|
vscode.window.showErrorMessage("No proxy URI was set")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
"description": "code-server test extension",
|
"description": "code-server test extension",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"publisher": "coder",
|
"publisher": "coder",
|
||||||
|
"license": "MIT",
|
||||||
"activationEvents": [
|
"activationEvents": [
|
||||||
"onCommand:codeServerTest.proxyUri"
|
"onStartupFinished"
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"vscode": "^1.56.0"
|
"vscode": "^1.56.0"
|
||||||
|
|||||||
@@ -88,6 +88,30 @@ export class CodeServer {
|
|||||||
}),
|
}),
|
||||||
"utf8",
|
"utf8",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const extensionsDir = path.join(__dirname, "../extensions")
|
||||||
|
const languagepacksContent = {
|
||||||
|
es: {
|
||||||
|
hash: "8d919a946475223861fa0c62665a4c50",
|
||||||
|
extensions: [
|
||||||
|
{
|
||||||
|
extensionIdentifier: {
|
||||||
|
id: "ms-ceintl.vscode-language-pack-es",
|
||||||
|
uuid: "47e020a1-33db-4cc0-a1b4-42f97781749a",
|
||||||
|
},
|
||||||
|
version: "1.70.0",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
translations: {
|
||||||
|
vscode: `${extensionsDir}/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json`,
|
||||||
|
},
|
||||||
|
label: "español",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE@jsjoeio - code-server should automatically generate the languagepacks.json for
|
||||||
|
// using different display languages. This is a temporary workaround until we fix that.
|
||||||
|
await fs.writeFile(path.join(dir, "languagepacks.json"), JSON.stringify(languagepacksContent))
|
||||||
return dir
|
return dir
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,6 +320,16 @@ export class CodeServerPage {
|
|||||||
return visible
|
return visible
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the test extension loaded
|
||||||
|
*/
|
||||||
|
async waitForTestExtensionLoaded(): Promise<void> {
|
||||||
|
const selector = "text=test extension loaded"
|
||||||
|
this.codeServer.logger.debug("Waiting for test extension to load...")
|
||||||
|
|
||||||
|
await this.page.waitForSelector(selector)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Focuses the integrated terminal by navigating through the command palette.
|
* Focuses the integrated terminal by navigating through the command palette.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"name": "test-plugin",
|
"name": "test-plugin",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"engines": {
|
"engines": {
|
||||||
"code-server": "^4.0.1"
|
"code-server": "^4.7.0"
|
||||||
},
|
},
|
||||||
"main": "out/index.js",
|
"main": "out/index.js",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
214
yarn.lock
214
yarn.lock
@@ -201,10 +201,10 @@
|
|||||||
lodash "^4.17.19"
|
lodash "^4.17.19"
|
||||||
to-fast-properties "^2.0.0"
|
to-fast-properties "^2.0.0"
|
||||||
|
|
||||||
"@coder/logger@1.1.16":
|
"@coder/logger@^3.0.0":
|
||||||
version "1.1.16"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@coder/logger/-/logger-1.1.16.tgz#ee5b1b188f680733f35c11b065bbd139d618c1e1"
|
resolved "https://registry.yarnpkg.com/@coder/logger/-/logger-3.0.0.tgz#fd4d2332ca375412c75cb5ba7767d3290b106dec"
|
||||||
integrity sha512-X6VB1++IkosYY6amRAiMvuvCf12NA4+ooX+gOuu5bJIkdjmh4Lz7QpJcWRdgxesvo1msriDDr9E/sDbIWf6vsQ==
|
integrity sha512-a0TYwulM+LiKBDKK7ZtKrOmOaEDR1yonCEOZbA+lNfVpmn7gWJBRdgg1O5Jj7ElKd4s9/w9udPVJfVxciyHfhA==
|
||||||
|
|
||||||
"@eslint/eslintrc@^0.4.3":
|
"@eslint/eslintrc@^0.4.3":
|
||||||
version "0.4.3"
|
version "0.4.3"
|
||||||
@@ -235,15 +235,15 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf"
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf"
|
||||||
integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
|
integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
|
||||||
|
|
||||||
"@mapbox/node-pre-gyp@^1.0.8":
|
"@mapbox/node-pre-gyp@^1.0.9":
|
||||||
version "1.0.8"
|
version "1.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz#32abc8a5c624bc4e46c43d84dfb8b26d33a96f58"
|
resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc"
|
||||||
integrity sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==
|
integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==
|
||||||
dependencies:
|
dependencies:
|
||||||
detect-libc "^1.0.3"
|
detect-libc "^2.0.0"
|
||||||
https-proxy-agent "^5.0.0"
|
https-proxy-agent "^5.0.0"
|
||||||
make-dir "^3.1.0"
|
make-dir "^3.1.0"
|
||||||
node-fetch "^2.6.5"
|
node-fetch "^2.6.7"
|
||||||
nopt "^5.0.0"
|
nopt "^5.0.0"
|
||||||
npmlog "^5.0.1"
|
npmlog "^5.0.1"
|
||||||
rimraf "^3.0.2"
|
rimraf "^3.0.2"
|
||||||
@@ -587,11 +587,6 @@
|
|||||||
"@typescript-eslint/types" "5.23.0"
|
"@typescript-eslint/types" "5.23.0"
|
||||||
eslint-visitor-keys "^3.0.0"
|
eslint-visitor-keys "^3.0.0"
|
||||||
|
|
||||||
"@yarnpkg/lockfile@^1.1.0":
|
|
||||||
version "1.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
|
|
||||||
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
|
|
||||||
|
|
||||||
JSONStream@^1.3.5:
|
JSONStream@^1.3.5:
|
||||||
version "1.3.5"
|
version "1.3.5"
|
||||||
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
|
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
|
||||||
@@ -709,15 +704,14 @@ arg@^4.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
|
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
|
||||||
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
|
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
|
||||||
|
|
||||||
argon2@^0.28.0:
|
argon2@^0.29.0:
|
||||||
version "0.28.4"
|
version "0.29.1"
|
||||||
resolved "https://registry.yarnpkg.com/argon2/-/argon2-0.28.4.tgz#af6df523b839a78b3cfbfdbfa789ffa2c6672d9f"
|
resolved "https://registry.yarnpkg.com/argon2/-/argon2-0.29.1.tgz#e6b621ba5dcaf02ea8246669532c2934799973e3"
|
||||||
integrity sha512-WsfqiDp/tf5+eieLc1+S7RtO7Y3cAiZQ1F6GIaskENoJy/6xuCN5WGBIc8dG7QVPDavy6jUSads8zwZTtrHVag==
|
integrity sha512-bWXzAsQA0B6EFWZh5li+YBk+muoknAb8KacAi1h/bC6Gigy9p5ANbrPvpnjTIb7i9I11/8Df6FeSxpJDK3vy4g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@mapbox/node-pre-gyp" "^1.0.8"
|
"@mapbox/node-pre-gyp" "^1.0.9"
|
||||||
"@phc/format" "^1.0.0"
|
"@phc/format" "^1.0.0"
|
||||||
node-addon-api "^4.3.0"
|
node-addon-api "^5.0.0"
|
||||||
opencollective-postinstall "^2.0.3"
|
|
||||||
|
|
||||||
argparse@^1.0.7:
|
argparse@^1.0.7:
|
||||||
version "1.0.10"
|
version "1.0.10"
|
||||||
@@ -731,11 +725,6 @@ argparse@^2.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
|
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
|
||||||
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
|
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
|
||||||
|
|
||||||
arr-union@^3.1.0:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
|
|
||||||
integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
|
|
||||||
|
|
||||||
array-flatten@2.1.1:
|
array-flatten@2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
|
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
|
||||||
@@ -825,27 +814,6 @@ balanced-match@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9"
|
||||||
integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==
|
integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==
|
||||||
|
|
||||||
bash-glob@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/bash-glob/-/bash-glob-2.0.0.tgz#a8ef19450783403ed93fccca2dbe09f2cf6320dc"
|
|
||||||
integrity sha512-53/NJ+t2UAkEYgQPO6aFjbx1Ue8vNNXCYaA4EljNKP1SR8A9dSQQoBmYWR8BLXO0/NDRJEMSJ4BxWihi//m3Kw==
|
|
||||||
dependencies:
|
|
||||||
bash-path "^1.0.1"
|
|
||||||
component-emitter "^1.2.1"
|
|
||||||
cross-spawn "^5.1.0"
|
|
||||||
each-parallel-async "^1.0.0"
|
|
||||||
extend-shallow "^2.0.1"
|
|
||||||
is-extglob "^2.1.1"
|
|
||||||
is-glob "^4.0.0"
|
|
||||||
|
|
||||||
bash-path@^1.0.1:
|
|
||||||
version "1.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/bash-path/-/bash-path-1.0.3.tgz#dbc9efbdf18b1c11413dcb59b960e6aa56c84258"
|
|
||||||
integrity sha512-mGrYvOa6yTY/qNCiZkPFJqWmODK68y6kmVRAJ1NNbWlNoJrUrsFxu7FU2EKg7gbrer6ttrKkF2s/E/lhRy7/OA==
|
|
||||||
dependencies:
|
|
||||||
arr-union "^3.1.0"
|
|
||||||
is-windows "^1.0.1"
|
|
||||||
|
|
||||||
body-parser@1.19.0:
|
body-parser@1.19.0:
|
||||||
version "1.19.0"
|
version "1.19.0"
|
||||||
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
|
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
|
||||||
@@ -1065,26 +1033,6 @@ colorette@^1.2.1, colorette@^1.2.2:
|
|||||||
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
|
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
|
||||||
integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
|
integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
|
||||||
|
|
||||||
colors@1.4.0:
|
|
||||||
version "1.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
|
|
||||||
integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
|
|
||||||
|
|
||||||
commander@^2.11.0:
|
|
||||||
version "2.20.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
|
||||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
|
||||||
|
|
||||||
commander@^7.2.0:
|
|
||||||
version "7.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
|
||||||
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
|
||||||
|
|
||||||
component-emitter@^1.2.1:
|
|
||||||
version "1.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
|
|
||||||
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
|
|
||||||
|
|
||||||
compressible@~2.0.16:
|
compressible@~2.0.16:
|
||||||
version "2.0.18"
|
version "2.0.18"
|
||||||
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
|
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
|
||||||
@@ -1173,15 +1121,6 @@ create-require@^1.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
|
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
|
||||||
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
|
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
|
||||||
|
|
||||||
cross-spawn@^5.1.0:
|
|
||||||
version "5.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
|
|
||||||
integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
|
|
||||||
dependencies:
|
|
||||||
lru-cache "^4.0.1"
|
|
||||||
shebang-command "^1.2.0"
|
|
||||||
which "^1.2.9"
|
|
||||||
|
|
||||||
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
||||||
version "7.0.3"
|
version "7.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
||||||
@@ -1296,10 +1235,10 @@ destroy@~1.0.4:
|
|||||||
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
|
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
|
||||||
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
|
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
|
||||||
|
|
||||||
detect-libc@^1.0.3:
|
detect-libc@^2.0.0:
|
||||||
version "1.0.3"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
|
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd"
|
||||||
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
|
integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==
|
||||||
|
|
||||||
diff@^4.0.1:
|
diff@^4.0.1:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
@@ -1409,11 +1348,6 @@ duplexer@^0.1.1, duplexer@~0.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
|
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
|
||||||
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
|
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
|
||||||
|
|
||||||
each-parallel-async@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/each-parallel-async/-/each-parallel-async-1.0.0.tgz#91783e190000c7dd588336b2d468ebaf71980f7b"
|
|
||||||
integrity sha512-P/9kLQiQj0vZNzphvKKTgRgMnlqs5cJsxeAiuog1jrUnwv0Z3hVUwJDQiP7MnLb2I9S15nR9SRUceFT9IxtqRg==
|
|
||||||
|
|
||||||
ee-first@1.1.1:
|
ee-first@1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||||
@@ -1461,11 +1395,6 @@ env-paths@^2.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
|
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
|
||||||
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
|
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
|
||||||
|
|
||||||
eol@^0.9.1:
|
|
||||||
version "0.9.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd"
|
|
||||||
integrity sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==
|
|
||||||
|
|
||||||
error-ex@^1.3.1:
|
error-ex@^1.3.1:
|
||||||
version "1.3.2"
|
version "1.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
|
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
|
||||||
@@ -1794,13 +1723,6 @@ express@5.0.0-alpha.8:
|
|||||||
utils-merge "1.0.1"
|
utils-merge "1.0.1"
|
||||||
vary "~1.1.2"
|
vary "~1.1.2"
|
||||||
|
|
||||||
extend-shallow@^2.0.1:
|
|
||||||
version "2.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
|
|
||||||
integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
|
|
||||||
dependencies:
|
|
||||||
is-extendable "^0.1.0"
|
|
||||||
|
|
||||||
extend@^3.0.0:
|
extend@^3.0.0:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||||
@@ -2414,11 +2336,6 @@ is-decimal@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5"
|
resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5"
|
||||||
integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==
|
integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==
|
||||||
|
|
||||||
is-extendable@^0.1.0:
|
|
||||||
version "0.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
|
|
||||||
integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
|
|
||||||
|
|
||||||
is-extglob@^2.1.1:
|
is-extglob@^2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||||
@@ -2513,11 +2430,6 @@ is-whitespace-character@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7"
|
resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7"
|
||||||
integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==
|
integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==
|
||||||
|
|
||||||
is-windows@^1.0.1:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
|
|
||||||
integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
|
|
||||||
|
|
||||||
is-word-character@^1.0.0:
|
is-word-character@^1.0.0:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230"
|
resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230"
|
||||||
@@ -2602,11 +2514,6 @@ json5@^2.1.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
minimist "^1.2.5"
|
minimist "^1.2.5"
|
||||||
|
|
||||||
json@^11.0.0:
|
|
||||||
version "11.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/json/-/json-11.0.0.tgz#2e84493134e2f42c131165aa22a124df38b3a3ee"
|
|
||||||
integrity sha512-N/ITv3Yw9Za8cGxuQqSqrq6RHnlaHWZkAFavcfpH/R52522c26EbihMxnY7A1chxfXJ4d+cEFIsyTgfi9GihrA==
|
|
||||||
|
|
||||||
jsonfile@^4.0.0:
|
jsonfile@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
|
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
|
||||||
@@ -2695,7 +2602,7 @@ lodash.truncate@^4.4.2:
|
|||||||
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
|
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
|
||||||
integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
|
integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
|
||||||
|
|
||||||
lodash@4.17.21, lodash@^4.17.19, lodash@^4.17.21:
|
lodash@^4.17.19, lodash@^4.17.21:
|
||||||
version "4.17.21"
|
version "4.17.21"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||||
@@ -2713,14 +2620,6 @@ longest-streak@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4"
|
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4"
|
||||||
integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==
|
integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==
|
||||||
|
|
||||||
lru-cache@^4.0.1:
|
|
||||||
version "4.1.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
|
|
||||||
integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
|
|
||||||
dependencies:
|
|
||||||
pseudomap "^1.0.2"
|
|
||||||
yallist "^2.1.2"
|
|
||||||
|
|
||||||
lru-cache@^5.1.1:
|
lru-cache@^5.1.1:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
|
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
|
||||||
@@ -2976,19 +2875,12 @@ netmask@^2.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7"
|
resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7"
|
||||||
integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==
|
integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==
|
||||||
|
|
||||||
nmtree@^1.0.6:
|
node-addon-api@^5.0.0:
|
||||||
version "1.0.6"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/nmtree/-/nmtree-1.0.6.tgz#953e057ad545e9e627f1275bd25fea4e92c1cf63"
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501"
|
||||||
integrity sha512-SUPCoyX5w/lOT6wD/PZEymR+J899984tYEOYjuDqQlIOeX5NSb1MEsCcT0az+dhZD0MLAj5hGBZEpKQxuDdniA==
|
integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==
|
||||||
dependencies:
|
|
||||||
commander "^2.11.0"
|
|
||||||
|
|
||||||
node-addon-api@^4.3.0:
|
node-fetch@^2.6.7:
|
||||||
version "4.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
|
|
||||||
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
|
|
||||||
|
|
||||||
node-fetch@^2.6.5, node-fetch@^2.6.7:
|
|
||||||
version "2.6.7"
|
version "2.6.7"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
||||||
@@ -3096,11 +2988,6 @@ once@^1.3.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
opencollective-postinstall@^2.0.3:
|
|
||||||
version "2.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
|
|
||||||
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
|
|
||||||
|
|
||||||
optionator@^0.8.1:
|
optionator@^0.8.1:
|
||||||
version "0.8.3"
|
version "0.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
|
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
|
||||||
@@ -3468,11 +3355,6 @@ proxy-from-env@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||||
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
||||||
|
|
||||||
pseudomap@^1.0.2:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
|
||||||
integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
|
|
||||||
|
|
||||||
punycode@^2.1.0:
|
punycode@^2.1.0:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||||
@@ -3813,13 +3695,6 @@ setprototypeof@1.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
|
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
|
||||||
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
|
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
|
||||||
|
|
||||||
shebang-command@^1.2.0:
|
|
||||||
version "1.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
|
||||||
integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
|
|
||||||
dependencies:
|
|
||||||
shebang-regex "^1.0.0"
|
|
||||||
|
|
||||||
shebang-command@^2.0.0:
|
shebang-command@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
||||||
@@ -3827,11 +3702,6 @@ shebang-command@^2.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
shebang-regex "^3.0.0"
|
shebang-regex "^3.0.0"
|
||||||
|
|
||||||
shebang-regex@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
|
||||||
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
|
||||||
|
|
||||||
shebang-regex@^3.0.0:
|
shebang-regex@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
||||||
@@ -3897,11 +3767,6 @@ socks@^2.3.3:
|
|||||||
ip "^1.1.5"
|
ip "^1.1.5"
|
||||||
smart-buffer "^4.1.0"
|
smart-buffer "^4.1.0"
|
||||||
|
|
||||||
sort-object-keys@^1.1.3:
|
|
||||||
version "1.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45"
|
|
||||||
integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==
|
|
||||||
|
|
||||||
source-map-support@^0.5.17:
|
source-map-support@^0.5.17:
|
||||||
version "0.5.19"
|
version "0.5.19"
|
||||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
||||||
@@ -4160,21 +4025,6 @@ svg-tags@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
|
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
|
||||||
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
|
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
|
||||||
|
|
||||||
synp@^1.9.10:
|
|
||||||
version "1.9.10"
|
|
||||||
resolved "https://registry.yarnpkg.com/synp/-/synp-1.9.10.tgz#53163321a600418c9b06af0db499939ffce12907"
|
|
||||||
integrity sha512-G9Z/TXTaBG1xNslUf3dHFidz/8tvvRaR560WWyOwyI7XrGGEGBTEIIg4hdRh1qFtz8mPYynAUYwWXUg/Zh0Pzw==
|
|
||||||
dependencies:
|
|
||||||
"@yarnpkg/lockfile" "^1.1.0"
|
|
||||||
bash-glob "^2.0.0"
|
|
||||||
colors "1.4.0"
|
|
||||||
commander "^7.2.0"
|
|
||||||
eol "^0.9.1"
|
|
||||||
lodash "4.17.21"
|
|
||||||
nmtree "^1.0.6"
|
|
||||||
semver "^7.3.5"
|
|
||||||
sort-object-keys "^1.1.3"
|
|
||||||
|
|
||||||
table@^6.0.9, table@^6.6.0:
|
table@^6.0.9, table@^6.6.0:
|
||||||
version "6.7.1"
|
version "6.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
|
resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
|
||||||
@@ -4570,7 +4420,7 @@ which-boxed-primitive@^1.0.2:
|
|||||||
is-string "^1.0.5"
|
is-string "^1.0.5"
|
||||||
is-symbol "^1.0.3"
|
is-symbol "^1.0.3"
|
||||||
|
|
||||||
which@^1.2.9, which@^1.3.1:
|
which@^1.3.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
||||||
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
|
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
|
||||||
@@ -4650,11 +4500,6 @@ y18n@^5.0.5:
|
|||||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
|
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
|
||||||
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
|
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
|
||||||
|
|
||||||
yallist@^2.1.2:
|
|
||||||
version "2.1.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
|
|
||||||
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
|
|
||||||
|
|
||||||
yallist@^3.0.2:
|
yallist@^3.0.2:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
||||||
@@ -4693,11 +4538,6 @@ yargs@^17.0.0:
|
|||||||
y18n "^5.0.5"
|
y18n "^5.0.5"
|
||||||
yargs-parser "^21.0.0"
|
yargs-parser "^21.0.0"
|
||||||
|
|
||||||
yarn@^1.22.4:
|
|
||||||
version "1.22.11"
|
|
||||||
resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.11.tgz#d0104043e7349046e0e2aec977c24be106925ed6"
|
|
||||||
integrity sha512-AWje4bzqO9RUn3sdnM5N8n4ZJ0BqCc/kqFJvpOI5/EVkINXui0yuvU7NDCEF//+WaxHuNay2uOHxA4+tq1P3cg==
|
|
||||||
|
|
||||||
yn@3.1.1:
|
yn@3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
||||||
|
|||||||
Reference in New Issue
Block a user