Add doc/guide.md
This commit is contained in:
parent
f4a78587b0
commit
a0a77e379e
@ -35,6 +35,9 @@ systemctl --user enable --now code-server
|
|||||||
|
|
||||||
### npm
|
### npm
|
||||||
|
|
||||||
|
We recommend installing from `npm` if we don't have a precompiled release for your machine's
|
||||||
|
platform or architecture.
|
||||||
|
|
||||||
**note:** Installing via `npm` requires certain dependencies for the native module builds.
|
**note:** Installing via `npm` requires certain dependencies for the native module builds.
|
||||||
See [./doc/npm.md](./doc/npm.md) for installing these dependencies.
|
See [./doc/npm.md](./doc/npm.md) for installing these dependencies.
|
||||||
|
|
||||||
|
18
ci/README.md
18
ci/README.md
@ -10,19 +10,19 @@ Any file and directory added into this tree should be documented here.
|
|||||||
|
|
||||||
Make sure you have `$GITHUB_TOKEN` set and [hub](https://github.com/github/hub) installed.
|
Make sure you have `$GITHUB_TOKEN` set and [hub](https://github.com/github/hub) installed.
|
||||||
|
|
||||||
1. Update the version of code-server in `package.json` and README.md install examples and push a commit
|
1. Update the version of code-server in `package.json` and README.md/guide.md install examples and push a commit
|
||||||
1. GitHub actions will generate the `npm-package` and `release-packages` artifacts
|
2. GitHub actions will generate the `npm-package` and `release-packages` artifacts
|
||||||
1. Run `yarn release:github-draft` to create a GitHub draft release from the template with
|
3. Run `yarn release:github-draft` to create a GitHub draft release from the template with
|
||||||
the updated version.
|
the updated version.
|
||||||
1. Summarize the major changes in the release notes and link to the relevant issues.
|
1. Summarize the major changes in the release notes and link to the relevant issues.
|
||||||
1. Wait for the artifacts in step 2 to build
|
4. Wait for the artifacts in step 2 to build
|
||||||
1. Run `yarn release:github-assets` to download the artifacts and then upload them to the draft release
|
5. Run `yarn release:github-assets` to download the artifacts and then upload them to the draft release
|
||||||
1. Run some basic sanity tests on one of the released packages
|
6. Run some basic sanity tests on one of the released packages
|
||||||
1. Publish the release
|
7. Publish the release
|
||||||
1. CI will automatically grab the artifacts and then
|
1. CI will automatically grab the artifacts and then
|
||||||
1. Publish the NPM package
|
1. Publish the NPM package
|
||||||
1. Publish the AMD64 docker image
|
2. Publish the AMD64 docker image
|
||||||
1. Publish the ARM64 docker image
|
3. Publish the ARM64 docker image
|
||||||
|
|
||||||
## dev
|
## dev
|
||||||
|
|
||||||
|
@ -21,6 +21,9 @@ main() {
|
|||||||
)
|
)
|
||||||
prettier --write --loglevel=warn $(git ls-files "${prettierExts[@]}")
|
prettier --write --loglevel=warn $(git ls-files "${prettierExts[@]}")
|
||||||
|
|
||||||
|
doctoc --title '# FAQ' doc/FAQ.md > /dev/null
|
||||||
|
doctoc --title '# Setup Guide' doc/guide.md > /dev/null
|
||||||
|
|
||||||
if [[ ${CI-} && $(git ls-files --other --modified --exclude-standard) ]]; then
|
if [[ ${CI-} && $(git ls-files --other --modified --exclude-standard) ]]; then
|
||||||
echo "Files need generation or are formatted incorrectly:"
|
echo "Files need generation or are formatted incorrectly:"
|
||||||
git -c color.ui=always status | grep --color=no '\[31m'
|
git -c color.ui=always status | grep --color=no '\[31m'
|
||||||
|
116
doc/FAQ.md
116
doc/FAQ.md
@ -1,9 +1,31 @@
|
|||||||
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
# FAQ
|
# FAQ
|
||||||
|
|
||||||
|
- [Questions?](#questions)
|
||||||
|
- [What's the deal with extensions?](#whats-the-deal-with-extensions)
|
||||||
|
- [Where are extensions stored?](#where-are-extensions-stored)
|
||||||
|
- [How is this different from VS Code Codespaces?](#how-is-this-different-from-vs-code-codespaces)
|
||||||
|
- [How should I expose code-server to the internet?](#how-should-i-expose-code-server-to-the-internet)
|
||||||
|
- [How do I securely access web services?](#how-do-i-securely-access-web-services)
|
||||||
|
- [Sub-domains](#sub-domains)
|
||||||
|
- [Sub-paths](#sub-paths)
|
||||||
|
- [Multi Tenancy](#multi-tenancy)
|
||||||
|
- [Docker in code-server docker container?](#docker-in-code-server-docker-container)
|
||||||
|
- [Collaboration](#collaboration)
|
||||||
|
- [How can I disable telemetry?](#how-can-i-disable-telemetry)
|
||||||
|
- [How does code-server decide what workspace or folder to open?](#how-does-code-server-decide-what-workspace-or-folder-to-open)
|
||||||
|
- [How do I debug issues with code-server?](#how-do-i-debug-issues-with-code-server)
|
||||||
|
- [Heartbeat file](#heartbeat-file)
|
||||||
|
- [Enterprise](#enterprise)
|
||||||
|
|
||||||
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
|
||||||
## Questions?
|
## Questions?
|
||||||
|
|
||||||
Please file all questions and support requests at https://www.reddit.com/r/codeserver/
|
Please file all questions and support requests at https://www.reddit.com/r/codeserver/.
|
||||||
The issue tracker is only for bugs.
|
|
||||||
|
The issue tracker is **only** for bugs.
|
||||||
|
|
||||||
## What's the deal with extensions?
|
## What's the deal with extensions?
|
||||||
|
|
||||||
@ -23,42 +45,53 @@ Issue [#1299](https://github.com/cdr/code-server/issues/1299) is a big one in ma
|
|||||||
better by allowing the community to submit extensions and repos to avoid waiting until the scraper finds
|
better by allowing the community to submit extensions and repos to avoid waiting until the scraper finds
|
||||||
an extension.
|
an extension.
|
||||||
|
|
||||||
If an extension does not work, try to grab its VSIX from its Github releases or build it yourself and
|
If an extension is not available or does not work, you can grab its VSIX from its Github releases or
|
||||||
copy it to the extensions folder.
|
build it yourself and [Install from VSIX](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix).
|
||||||
|
|
||||||
## How is this different from VS Code Online?
|
Feel free to file an issue to add a missing extension to the marketplace.
|
||||||
|
|
||||||
VS Code Online is a closed source managed service by Microsoft and only runs on Azure.
|
## Where are extensions stored?
|
||||||
|
|
||||||
code-server is open source and can be freely run on any machine.
|
Defaults to `~/.local/share/code-server/extensions`.
|
||||||
|
|
||||||
|
If the `XDG_DATA_HOME` environment variable is set the data directory will be
|
||||||
|
`$XDG_DATA_HOME/code-server/extensions`.
|
||||||
|
|
||||||
|
You can install an extension on the CLI with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# From the Coder extension marketplace
|
||||||
|
code-server --install-extension ms-python.python
|
||||||
|
|
||||||
|
# From a downloaded VSIX on the file system
|
||||||
|
code-server --install-extension downloaded-ms-python.python.vsix
|
||||||
|
```
|
||||||
|
|
||||||
|
## How is this different from VS Code Codespaces?
|
||||||
|
|
||||||
|
VS Code Codespaces is a closed source and paid service by Microsoft. It also allows you to access
|
||||||
|
VS Code via the browser.
|
||||||
|
|
||||||
|
However, code-server is free, open source and can be ran on any machine without any limitations.
|
||||||
|
|
||||||
|
While you can self host environments with VS Code Codespaces, you still need to an Azure billing
|
||||||
|
account and you access VS Code via the Codespaces web dashboard instead of directly connecting to
|
||||||
|
your instance.
|
||||||
|
|
||||||
## How should I expose code-server to the internet?
|
## How should I expose code-server to the internet?
|
||||||
|
|
||||||
By far the most secure method of using code-server is via
|
Please follow [./guide.md]](./guide.md) for our recommendations on setting up and using code-server.
|
||||||
[sshcode](https://github.com/codercom/sshcode) as it runs code-server and then forwards
|
|
||||||
its port over SSH and requires no setup on your part other than having a working SSH server.
|
|
||||||
|
|
||||||
You can also forward your SSH key and GPG agent to the remote machine to securely access GitHub
|
code-server only supports password authentication natively.
|
||||||
and securely sign commits without duplicating your keys onto the the remote machine.
|
|
||||||
|
|
||||||
1. https://developer.github.com/v3/guides/using-ssh-agent-forwarding/
|
|
||||||
1. https://wiki.gnupg.org/AgentForwarding
|
|
||||||
|
|
||||||
If you cannot use sshcode, then you will need to ensure there is some sort of authorization in
|
|
||||||
front of code-server and that you are using HTTPS to secure all connections.
|
|
||||||
|
|
||||||
By default when listening externally, code-server enables password authentication using a
|
|
||||||
randomly generated password so you can use that. You can set the `PASSWORD` environment variable
|
|
||||||
to use your own instead. If you want to handle authentication yourself, use `--auth none`
|
|
||||||
to disable password authentication.
|
|
||||||
|
|
||||||
**note**: code-server will rate limit password authentication attempts at 2 a minute and 12 an hour.
|
**note**: code-server will rate limit password authentication attempts at 2 a minute and 12 an hour.
|
||||||
|
|
||||||
If you want to use external authentication you should handle this with a reverse
|
If you want to use external authentication (i.e sign in with Google) you should handle this
|
||||||
proxy using something like [oauth2_proxy](https://github.com/pusher/oauth2_proxy).
|
with a reverse proxy using something like [oauth2_proxy](https://github.com/pusher/oauth2_proxy).
|
||||||
|
|
||||||
For HTTPS, you can use a self signed certificate by passing in just `--cert` or pass in an existing
|
For HTTPS, you can use a self signed certificate by passing in just `--cert` or
|
||||||
certificate by providing the path to `--cert` and the path to its key with `--cert-key`.
|
pass in an existing certificate by providing the path to `--cert` and the path to
|
||||||
|
its key with `--cert-key`.
|
||||||
|
|
||||||
If `code-server` has been passed a certificate it will also respond to HTTPS
|
If `code-server` has been passed a certificate it will also respond to HTTPS
|
||||||
requests and will redirect all HTTP requests to HTTPS. Otherwise it will respond
|
requests and will redirect all HTTP requests to HTTPS. Otherwise it will respond
|
||||||
@ -67,6 +100,8 @@ only to HTTP requests.
|
|||||||
You can use [Let's Encrypt](https://letsencrypt.org/) to get an SSL certificate
|
You can use [Let's Encrypt](https://letsencrypt.org/) to get an SSL certificate
|
||||||
for free.
|
for free.
|
||||||
|
|
||||||
|
Again, Please follow [./guide.md]](./guide.md) for our recommendations on setting up and using code-server.
|
||||||
|
|
||||||
## How do I securely access web services?
|
## How do I securely access web services?
|
||||||
|
|
||||||
code-server is capable of proxying to any port using either a subdomain or a
|
code-server is capable of proxying to any port using either a subdomain or a
|
||||||
@ -96,15 +131,6 @@ ensure your reverse proxy forwards that information if you are using one.
|
|||||||
|
|
||||||
Just browse to `/proxy/<port>/`.
|
Just browse to `/proxy/<port>/`.
|
||||||
|
|
||||||
## x86 releases?
|
|
||||||
|
|
||||||
node has dropped support for x86 and so we decided to as well. See
|
|
||||||
[nodejs/build/issues/885](https://github.com/nodejs/build/issues/885).
|
|
||||||
|
|
||||||
## Alpine builds?
|
|
||||||
|
|
||||||
Just install `libc-dev` and code-server should work.
|
|
||||||
|
|
||||||
## Multi Tenancy
|
## Multi Tenancy
|
||||||
|
|
||||||
If you want to run multiple code-server's on shared infrastructure, we recommend using virtual
|
If you want to run multiple code-server's on shared infrastructure, we recommend using virtual
|
||||||
@ -127,8 +153,9 @@ to make volume mounts in any other directory work.
|
|||||||
|
|
||||||
## Collaboration
|
## Collaboration
|
||||||
|
|
||||||
At the moment we have no plans for multi user collaboration on code-server but we understand there is strong
|
We understand the high demand but the team is swamped right now.
|
||||||
demand and will work on it when the time is right.
|
|
||||||
|
You can follow progress at [#33](https://github.com/cdr/code-server/issues/33).
|
||||||
|
|
||||||
## How can I disable telemetry?
|
## How can I disable telemetry?
|
||||||
|
|
||||||
@ -165,13 +192,16 @@ information from the following places:
|
|||||||
Additionally, collecting core dumps (you may need to enable them first) if
|
Additionally, collecting core dumps (you may need to enable them first) if
|
||||||
code-server crashes can be helpful.
|
code-server crashes can be helpful.
|
||||||
|
|
||||||
### Where is the data directory?
|
## Heartbeat file
|
||||||
|
|
||||||
If the `XDG_DATA_HOME` environment variable is set the data directory will be
|
`code-server` touches `~/.local/share/code-server/heartbeat` once a minute as long
|
||||||
`$XDG_DATA_HOME/code-server`. Otherwise:
|
as there is an active browser connection.
|
||||||
|
|
||||||
1. Unix: `~/.local/share/code-server`
|
If you want to shutdown `code-server` if there hasn't been an active connection in X minutes
|
||||||
1. Windows: `%APPDATA%\Local\code-server\Data`
|
you can do so by continously checking the last modified time on the heartbeat file and if it is
|
||||||
|
older than X minutes, you should kill `code-server`.
|
||||||
|
|
||||||
|
[#1636](https://github.com/cdr/code-server/issues/1636) will make the experience here better.
|
||||||
|
|
||||||
## Enterprise
|
## Enterprise
|
||||||
|
|
||||||
|
236
doc/guide.md
Normal file
236
doc/guide.md
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
|
# Setup Guide
|
||||||
|
|
||||||
|
- [1. Acquire a remote machine](#1-acquire-a-remote-machine)
|
||||||
|
- [Requirements](#requirements)
|
||||||
|
- [Google Cloud Platform](#google-cloud-platform)
|
||||||
|
- [2. Install code-server](#2-install-code-server)
|
||||||
|
- [3. Expose code-server](#3-expose-code-server)
|
||||||
|
- [SSH forwarding](#ssh-forwarding)
|
||||||
|
- [Let's Encrypt](#lets-encrypt)
|
||||||
|
- [Self Signed Certificate](#self-signed-certificate)
|
||||||
|
- [Change the password?](#change-the-password)
|
||||||
|
- [How do I securely access development web services?](#how-do-i-securely-access-development-web-services)
|
||||||
|
|
||||||
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
|
||||||
|
This guide demonstrates how to setup and use code-server.
|
||||||
|
To reiterate, code-server lets you run VS Code on a remote server and then access it via a browser.
|
||||||
|
|
||||||
|
See the [README](../README.md) for a general overview and the [FAQ](./FAQ.md) for further user docs.
|
||||||
|
|
||||||
|
We'll walk you through acquiring a remote machine to run code-server on and then exposing `code-server` so you can
|
||||||
|
easily access it.
|
||||||
|
|
||||||
|
## 1. Acquire a remote machine
|
||||||
|
|
||||||
|
First, you need a machine to run code-server on. You can use a physical
|
||||||
|
machine you have lying around or use a VM on GCP/AWS.
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
For a good experience, we recommend at least:
|
||||||
|
|
||||||
|
- 1 GB of RAM
|
||||||
|
- 2 cores
|
||||||
|
|
||||||
|
You can use whatever linux distribution floats your boat but in this guide we assume Debian.
|
||||||
|
|
||||||
|
### Google Cloud Platform
|
||||||
|
|
||||||
|
For demonstration purposes, this guide assumes you're using a VM on GCP but you should be
|
||||||
|
able to easily use any machine or VM provider.
|
||||||
|
|
||||||
|
You can sign up at https://console.cloud.google.com/getting-started. You'll get a 12 month \$300
|
||||||
|
free trial.
|
||||||
|
|
||||||
|
Once you've signed up and created a GCP project, create a new Compute Engine VM Instance.
|
||||||
|
|
||||||
|
1. Navigate to `Compute Engine -> VM Instances` on the sidebar
|
||||||
|
2. Now click `Create Instance` to create a new instance
|
||||||
|
3. Choose the region closest to you based on [gcping.com](http://www.gcping.com)
|
||||||
|
4. Name it whatever you want
|
||||||
|
5. Any zone is fine
|
||||||
|
6. We'd recommend a `e2-standard-2` instance from the E2 series and General-purpose family
|
||||||
|
- Add more vCPUs and memory as you prefer, you can edit after creating the instance as well
|
||||||
|
- https://cloud.google.com/compute/docs/machine-types#general_purpose
|
||||||
|
7. We highly recommend switching the persistent disk to a SSD of at least 32 GB
|
||||||
|
8. Navigate to `Networking -> Network interfaces` and edit the existing interface
|
||||||
|
to use a static external IP
|
||||||
|
- Click done to save network interface changes
|
||||||
|
9. If you do not have a [project wide SSH key](https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#project-wide), navigate to `Security - > SSH Keys` and add your public key there
|
||||||
|
10. Click create!
|
||||||
|
|
||||||
|
Remember, you can shutdown your server when not in use to lower costs.
|
||||||
|
We highly recommend learning to use the [`gcloud`](https://cloud.google.com/sdk/gcloud) cli
|
||||||
|
to avoid the slow dashboard.
|
||||||
|
|
||||||
|
## 2. Install code-server
|
||||||
|
|
||||||
|
SSH into your instance and run the appropriate commands documented in [README.md](../README.md).
|
||||||
|
|
||||||
|
Assuming Debian:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -sSOL https://github.com/cdr/code-server/releases/download/3.3.0/code-server_3.3.0_amd64.deb
|
||||||
|
sudo dpkg -i code-server_3.3.0_amd64.deb
|
||||||
|
systemctl --user enable --now code-server
|
||||||
|
# Now code-server is running at http://127.0.0.1:8080
|
||||||
|
# Your password is in ~/.config/code-server/config.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Expose code-server
|
||||||
|
|
||||||
|
There are several approaches to operating and exposing code-server.
|
||||||
|
|
||||||
|
Since you can gain access to a terminal from within code-server, **never**, **ever**
|
||||||
|
expose it directly to the internet without some form of authentication and encryption!
|
||||||
|
|
||||||
|
By default, code-server will enable password authentication which will
|
||||||
|
require you to copy the password from the code-server config file to login. You
|
||||||
|
can also set a custom password with `$PASSWORD`.
|
||||||
|
|
||||||
|
**tip**: You can list the full set of code-server options with `code-server --help`
|
||||||
|
|
||||||
|
### SSH forwarding
|
||||||
|
|
||||||
|
We highly recommend this approach for not requiring any additional setup, you just need an
|
||||||
|
SSH server on your remote machine. The downside is you won't be able to access `code-server`
|
||||||
|
without an SSH client like an iPad. If that's important to you, skip to [Let's Encrypt](#lets-encrypt).
|
||||||
|
|
||||||
|
Recommended reading: https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# -N disables executing a remote shell
|
||||||
|
ssh -N -L 8080:127.0.0.1:8080 <instance-ip>
|
||||||
|
```
|
||||||
|
|
||||||
|
As long as this command hasn't exited, that means any request on local port 8080 goes to your
|
||||||
|
instance at `127.0.0.1:8080` which is where code-server is running.
|
||||||
|
|
||||||
|
Next ssh into your instance and edit your code-server config file to disable password authentication.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Replaces "auth: password" with "auth: none" in the code-server config.
|
||||||
|
sed -i.bak 's/auth: password/auth: none/' ~/.config/code-server/config.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Restart code-server with (assuming you followed the guide):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl --user restart code-server
|
||||||
|
```
|
||||||
|
|
||||||
|
Now if you access http://127.0.0.1:8080 locally, you should see code-server!
|
||||||
|
|
||||||
|
If you want to make the SSH port forwarding persistent we recommend using
|
||||||
|
[mutagen](https://mutagen.io/documentation/introduction/installation).
|
||||||
|
|
||||||
|
```
|
||||||
|
# Same as the above SSH command but runs in the background continously.
|
||||||
|
# Add `mutagen daemon start` to your ~/.bashrc to start the mutagen daemon when you open a shell.
|
||||||
|
mutagen forward create --help -n=code-server tcp:127.0.0.1:8080 <instance-ip>:tcp:127.0.0.1:8080
|
||||||
|
```
|
||||||
|
|
||||||
|
We also recommend adding the following lines to your `~/.ssh/config` to quickly detect bricked SSH connections:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Host *
|
||||||
|
ServerAliveInterval 5
|
||||||
|
ExitOnForwardFailure yes
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also forward your SSH key and GPG agent to the instance to securely access GitHub
|
||||||
|
and sign commits without copying your keys onto the instance.
|
||||||
|
|
||||||
|
1. https://developer.github.com/v3/guides/using-ssh-agent-forwarding/
|
||||||
|
2. https://wiki.gnupg.org/AgentForwarding
|
||||||
|
|
||||||
|
### Let's Encrypt
|
||||||
|
|
||||||
|
Let's Encrypt is a great option if you want to access code-server on an iPad or just want password
|
||||||
|
based authentication. This does require that the remote machine is exposed to the internet.
|
||||||
|
|
||||||
|
Assuming you have been following the guide, edit your instance and checkmark the allow HTTP/HTTPS traffic options.
|
||||||
|
|
||||||
|
1. You'll need to buy a domain name. We recommend [Google Domains](https://domains.google.com)
|
||||||
|
2. Add an A record to your domain with your instance's IP
|
||||||
|
3. Install caddy https://caddyserver.com/docs/download#debian-ubuntu-raspbian
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
|
||||||
|
| sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install caddy
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Replace `/etc/caddy/Caddyfile` with sudo to look like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
mydomain.com
|
||||||
|
|
||||||
|
reverse_proxy 127.0.0.1:8080
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Reload caddy with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl reload caddy
|
||||||
|
```
|
||||||
|
|
||||||
|
Visit `https://<your-instance-ip>` to access code-server. Congratulations!
|
||||||
|
|
||||||
|
In a future release we plan to integrate Let's Encrypt directly with code-server to avoid
|
||||||
|
the dependency on caddy.
|
||||||
|
|
||||||
|
### Self Signed Certificate
|
||||||
|
|
||||||
|
**note:** Self signed certificates do not work with iPad and will cause a blank page. You'll
|
||||||
|
have to use [Let's Encrypt](#lets-encrypt) instead.
|
||||||
|
|
||||||
|
Recommended reading: https://security.stackexchange.com/a/8112
|
||||||
|
|
||||||
|
We recommend this as a last resort as self signed certificates do not work with iPads and can
|
||||||
|
cause other bizarre issues. Not to mention all the warnings when you access code-server.
|
||||||
|
Only use this if you do not want to buy a domain or cannot expose the remote machine to the internet.
|
||||||
|
|
||||||
|
ssh into your instance and edit your code-server config file to use a randomly generated self signed certificate:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Replaces "cert: false" with "cert: true" in the code-server config.
|
||||||
|
sed -i.bak 's/cert: false/cert: true/' ~/.config/code-server/config.yaml
|
||||||
|
# Replaces "bind-addr: 127.0.0.1:8080" with "bind-addr: 0.0.0.0:443" in the code-server config.
|
||||||
|
sed -i.bak 's/bind-addr: 127.0.0.1:8080/bind-addr: 0.0.0.0:443/' ~/.config/code-server/config.yaml
|
||||||
|
# Allows code-server to listen on port 443.
|
||||||
|
sudo setcap cap_net_bind_service=+ep /usr/lib/code-server/lib/node
|
||||||
|
```
|
||||||
|
|
||||||
|
Assuming you have been following the guide, restart code-server with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl --user restart code-server
|
||||||
|
```
|
||||||
|
|
||||||
|
Edit your instance and checkmark the allow HTTPS traffic option.
|
||||||
|
|
||||||
|
Visit `https://<your-instance-ip>` to access code-server.
|
||||||
|
You'll get a warning when accessing but if you click through you should be good.
|
||||||
|
|
||||||
|
You can also use [mkcert](https://mkcert.dev) to create a self signed certificate trusted by your
|
||||||
|
OS to avoid the warnings.
|
||||||
|
|
||||||
|
### Change the password?
|
||||||
|
|
||||||
|
Edit the code-server config file at `~/.config/code-server/config.yaml` and then restart
|
||||||
|
code-server with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl --user restart code-server
|
||||||
|
```
|
||||||
|
|
||||||
|
### How do I securely access development web services?
|
||||||
|
|
||||||
|
If you're working on a web service and want to access it locally, code-server can proxy it for you.
|
||||||
|
|
||||||
|
See the [FAQ](https://github.com/cdr/code-server/blob/master/doc/FAQ.md#how-do-i-securely-access-web-services).
|
@ -45,6 +45,7 @@
|
|||||||
"@types/ws": "^6.0.4",
|
"@types/ws": "^6.0.4",
|
||||||
"@typescript-eslint/eslint-plugin": "^2.0.0",
|
"@typescript-eslint/eslint-plugin": "^2.0.0",
|
||||||
"@typescript-eslint/parser": "^2.0.0",
|
"@typescript-eslint/parser": "^2.0.0",
|
||||||
|
"doctoc": "^1.4.0",
|
||||||
"eslint": "^6.2.0",
|
"eslint": "^6.2.0",
|
||||||
"eslint-config-prettier": "^6.0.0",
|
"eslint-config-prettier": "^6.0.0",
|
||||||
"eslint-plugin-import": "^2.18.2",
|
"eslint-plugin-import": "^2.18.2",
|
||||||
@ -52,7 +53,7 @@
|
|||||||
"leaked-handles": "^5.2.0",
|
"leaked-handles": "^5.2.0",
|
||||||
"mocha": "^6.2.0",
|
"mocha": "^6.2.0",
|
||||||
"parcel-bundler": "^1.12.4",
|
"parcel-bundler": "^1.12.4",
|
||||||
"prettier": "^1.18.2",
|
"prettier": "^2.0.5",
|
||||||
"stylelint": "^13.0.0",
|
"stylelint": "^13.0.0",
|
||||||
"stylelint-config-recommended": "^3.0.0",
|
"stylelint-config-recommended": "^3.0.0",
|
||||||
"ts-node": "^8.4.1",
|
"ts-node": "^8.4.1",
|
||||||
|
@ -98,7 +98,7 @@
|
|||||||
<script data-cfasync="false" src="{{BASE}}/static/{{COMMIT}}/lib/vscode/out/vs/workbench/workbench.web.api.js"></script>
|
<script data-cfasync="false" src="{{BASE}}/static/{{COMMIT}}/lib/vscode/out/vs/workbench/workbench.web.api.js"></script>
|
||||||
END_PROD_ONLY -->
|
END_PROD_ONLY -->
|
||||||
<script>
|
<script>
|
||||||
require(["vs/code/browser/workbench/workbench"], function() {})
|
require(["vs/code/browser/workbench/workbench"], function () {})
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
try {
|
try {
|
||||||
|
@ -8,7 +8,7 @@ if ("serviceWorker" in navigator) {
|
|||||||
.register(path, {
|
.register(path, {
|
||||||
scope: options.base || "/",
|
scope: options.base || "/",
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function () {
|
||||||
console.log("[Service Worker] registered")
|
console.log("[Service Worker] registered")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -81,10 +81,7 @@ export const generatePassword = async (length = 24): Promise<string> => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const hash = (str: string): string => {
|
export const hash = (str: string): string => {
|
||||||
return crypto
|
return crypto.createHash("sha256").update(str).digest("hex")
|
||||||
.createHash("sha256")
|
|
||||||
.update(str)
|
|
||||||
.digest("hex")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const mimeTypes: { [key: string]: string } = {
|
const mimeTypes: { [key: string]: string } = {
|
||||||
@ -150,11 +147,7 @@ export const getMediaMime = (filePath?: string): string => {
|
|||||||
|
|
||||||
export const isWsl = async (): Promise<boolean> => {
|
export const isWsl = async (): Promise<boolean> => {
|
||||||
return (
|
return (
|
||||||
(process.platform === "linux" &&
|
(process.platform === "linux" && os.release().toLowerCase().indexOf("microsoft") !== -1) ||
|
||||||
os
|
|
||||||
.release()
|
|
||||||
.toLowerCase()
|
|
||||||
.indexOf("microsoft") !== -1) ||
|
|
||||||
(await fs.readFile("/proc/version", "utf8")).toLowerCase().indexOf("microsoft") !== -1
|
(await fs.readFile("/proc/version", "utf8")).toLowerCase().indexOf("microsoft") !== -1
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ export class IpcMain {
|
|||||||
|
|
||||||
// Ensure we control when the process exits.
|
// Ensure we control when the process exits.
|
||||||
this.exit = process.exit
|
this.exit = process.exit
|
||||||
process.exit = function(code?: number) {
|
process.exit = function (code?: number) {
|
||||||
logger.warn(`process.exit() was prevented: ${code || "unknown code"}.`)
|
logger.warn(`process.exit() was prevented: ${code || "unknown code"}.`)
|
||||||
} as (code?: number) => never
|
} as (code?: number) => never
|
||||||
|
|
||||||
|
215
yarn.lock
215
yarn.lock
@ -892,6 +892,24 @@
|
|||||||
remark "^12.0.0"
|
remark "^12.0.0"
|
||||||
unist-util-find-all-after "^3.0.1"
|
unist-util-find-all-after "^3.0.1"
|
||||||
|
|
||||||
|
"@textlint/ast-node-types@^4.0.3":
|
||||||
|
version "4.2.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.2.5.tgz#ae13981bc8711c98313a6ac1c361194d6bf2d39b"
|
||||||
|
integrity sha512-+rEx4jLOeZpUcdvll7jEg/7hNbwYvHWFy4IGW/tk2JdbyB3SJVyIP6arAwzTH/sp/pO9jftfyZnRj4//sLbLvQ==
|
||||||
|
|
||||||
|
"@textlint/markdown-to-ast@~6.0.9":
|
||||||
|
version "6.0.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/@textlint/markdown-to-ast/-/markdown-to-ast-6.0.9.tgz#e7c89e5ad15d17dcd8e5a62758358936827658fa"
|
||||||
|
integrity sha512-hfAWBvTeUGh5t5kTn2U3uP3qOSM1BSrxzl1jF3nn0ywfZXpRBZr5yRjXnl4DzIYawCtZOshmRi/tI3/x4TE1jQ==
|
||||||
|
dependencies:
|
||||||
|
"@textlint/ast-node-types" "^4.0.3"
|
||||||
|
debug "^2.1.3"
|
||||||
|
remark-frontmatter "^1.2.0"
|
||||||
|
remark-parse "^5.0.0"
|
||||||
|
structured-source "^3.0.2"
|
||||||
|
traverse "^0.6.6"
|
||||||
|
unified "^6.1.6"
|
||||||
|
|
||||||
"@types/adm-zip@^0.4.32":
|
"@types/adm-zip@^0.4.32":
|
||||||
version "0.4.33"
|
version "0.4.33"
|
||||||
resolved "https://registry.yarnpkg.com/@types/adm-zip/-/adm-zip-0.4.33.tgz#ea5b94f771443f655613b64f920c0555867200dd"
|
resolved "https://registry.yarnpkg.com/@types/adm-zip/-/adm-zip-0.4.33.tgz#ea5b94f771443f655613b64f920c0555867200dd"
|
||||||
@ -1132,6 +1150,13 @@ alphanum-sort@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
|
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
|
||||||
integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
|
integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
|
||||||
|
|
||||||
|
anchor-markdown-header@^0.5.5:
|
||||||
|
version "0.5.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/anchor-markdown-header/-/anchor-markdown-header-0.5.7.tgz#045063d76e6a1f9cd327a57a0126aa0fdec371a7"
|
||||||
|
integrity sha1-BFBj125qH5zTJ6V6ASaqD97Dcac=
|
||||||
|
dependencies:
|
||||||
|
emoji-regex "~6.1.0"
|
||||||
|
|
||||||
ansi-colors@3.2.3:
|
ansi-colors@3.2.3:
|
||||||
version "3.2.3"
|
version "3.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
|
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
|
||||||
@ -1445,6 +1470,11 @@ boolbase@^1.0.0, boolbase@~1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
||||||
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
|
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
|
||||||
|
|
||||||
|
boundary@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/boundary/-/boundary-1.0.1.tgz#4d67dc2602c0cc16dd9bce7ebf87e948290f5812"
|
||||||
|
integrity sha1-TWfcJgLAzBbdm85+v4fpSCkPWBI=
|
||||||
|
|
||||||
brace-expansion@^1.1.7:
|
brace-expansion@^1.1.7:
|
||||||
version "1.1.11"
|
version "1.1.11"
|
||||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||||
@ -2286,7 +2316,7 @@ deasync@^0.1.14:
|
|||||||
bindings "^1.5.0"
|
bindings "^1.5.0"
|
||||||
node-addon-api "^1.7.1"
|
node-addon-api "^1.7.1"
|
||||||
|
|
||||||
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
|
debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
|
||||||
version "2.6.9"
|
version "2.6.9"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||||
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
||||||
@ -2415,6 +2445,18 @@ dir-glob@^3.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
path-type "^4.0.0"
|
path-type "^4.0.0"
|
||||||
|
|
||||||
|
doctoc@^1.4.0:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/doctoc/-/doctoc-1.4.0.tgz#3115aa61d0a92f0abb0672036918ea904f5b9e02"
|
||||||
|
integrity sha512-8IAq3KdMkxhXCUF+xdZxdJxwuz8N2j25sMgqiu4U4JWluN9tRKMlAalxGASszQjlZaBprdD2YfXpL3VPWUD4eg==
|
||||||
|
dependencies:
|
||||||
|
"@textlint/markdown-to-ast" "~6.0.9"
|
||||||
|
anchor-markdown-header "^0.5.5"
|
||||||
|
htmlparser2 "~3.9.2"
|
||||||
|
minimist "~1.2.0"
|
||||||
|
underscore "~1.8.3"
|
||||||
|
update-section "^0.3.0"
|
||||||
|
|
||||||
doctrine@1.5.0:
|
doctrine@1.5.0:
|
||||||
version "1.5.0"
|
version "1.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
|
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
|
||||||
@ -2443,7 +2485,7 @@ domain-browser@^1.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
||||||
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
|
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
|
||||||
|
|
||||||
domelementtype@1, domelementtype@^1.3.1:
|
domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
|
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
|
||||||
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
||||||
@ -2540,6 +2582,11 @@ emoji-regex@^8.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
||||||
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
|
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
|
||||||
|
|
||||||
|
emoji-regex@~6.1.0:
|
||||||
|
version "6.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.3.tgz#ec79a3969b02d2ecf2b72254279bf99bc7a83932"
|
||||||
|
integrity sha1-7HmjlpsC0uzytyJUJ5v5m8eoOTI=
|
||||||
|
|
||||||
encodeurl@~1.0.2:
|
encodeurl@~1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
||||||
@ -2972,6 +3019,13 @@ fastq@^1.6.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
reusify "^1.0.4"
|
reusify "^1.0.4"
|
||||||
|
|
||||||
|
fault@^1.0.1:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13"
|
||||||
|
integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==
|
||||||
|
dependencies:
|
||||||
|
format "^0.2.0"
|
||||||
|
|
||||||
figures@^3.0.0:
|
figures@^3.0.0:
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
|
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
|
||||||
@ -3087,6 +3141,11 @@ form-data@~2.3.2:
|
|||||||
combined-stream "^1.0.6"
|
combined-stream "^1.0.6"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
|
format@^0.2.0:
|
||||||
|
version "0.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
|
||||||
|
integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
|
||||||
|
|
||||||
fragment-cache@^0.2.1:
|
fragment-cache@^0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
|
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
|
||||||
@ -3475,6 +3534,18 @@ htmlparser2@^3.10.0, htmlparser2@^3.9.2:
|
|||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
readable-stream "^3.1.1"
|
readable-stream "^3.1.1"
|
||||||
|
|
||||||
|
htmlparser2@~3.9.2:
|
||||||
|
version "3.9.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
|
||||||
|
integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=
|
||||||
|
dependencies:
|
||||||
|
domelementtype "^1.3.0"
|
||||||
|
domhandler "^2.3.0"
|
||||||
|
domutils "^1.5.1"
|
||||||
|
entities "^1.1.1"
|
||||||
|
inherits "^2.0.1"
|
||||||
|
readable-stream "^2.0.2"
|
||||||
|
|
||||||
http-errors@~1.7.2:
|
http-errors@~1.7.2:
|
||||||
version "1.7.3"
|
version "1.7.3"
|
||||||
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
|
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
|
||||||
@ -3690,7 +3761,7 @@ is-binary-path@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
binary-extensions "^1.0.0"
|
binary-extensions "^1.0.0"
|
||||||
|
|
||||||
is-buffer@^1.1.5, is-buffer@~1.1.1:
|
is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1:
|
||||||
version "1.1.6"
|
version "1.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
||||||
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
|
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
|
||||||
@ -4424,7 +4495,7 @@ minimist-options@^4.0.1:
|
|||||||
arrify "^1.0.1"
|
arrify "^1.0.1"
|
||||||
is-plain-obj "^1.1.0"
|
is-plain-obj "^1.1.0"
|
||||||
|
|
||||||
minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
|
minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0:
|
||||||
version "1.2.5"
|
version "1.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
||||||
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
||||||
@ -4952,6 +5023,18 @@ parse-asn1@^5.0.0:
|
|||||||
pbkdf2 "^3.0.3"
|
pbkdf2 "^3.0.3"
|
||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
|
|
||||||
|
parse-entities@^1.1.0:
|
||||||
|
version "1.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50"
|
||||||
|
integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==
|
||||||
|
dependencies:
|
||||||
|
character-entities "^1.0.0"
|
||||||
|
character-entities-legacy "^1.0.0"
|
||||||
|
character-reference-invalid "^1.0.0"
|
||||||
|
is-alphanumerical "^1.0.0"
|
||||||
|
is-decimal "^1.0.0"
|
||||||
|
is-hexadecimal "^1.0.0"
|
||||||
|
|
||||||
parse-entities@^2.0.0:
|
parse-entities@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8"
|
resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8"
|
||||||
@ -5550,10 +5633,10 @@ prettier-linter-helpers@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fast-diff "^1.1.2"
|
fast-diff "^1.1.2"
|
||||||
|
|
||||||
prettier@^1.18.2:
|
prettier@^2.0.5:
|
||||||
version "1.19.1"
|
version "2.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
|
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4"
|
||||||
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
|
integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
|
||||||
|
|
||||||
private@^0.1.8:
|
private@^0.1.8:
|
||||||
version "0.1.8"
|
version "0.1.8"
|
||||||
@ -5831,6 +5914,35 @@ regjsparser@^0.6.4:
|
|||||||
dependencies:
|
dependencies:
|
||||||
jsesc "~0.5.0"
|
jsesc "~0.5.0"
|
||||||
|
|
||||||
|
remark-frontmatter@^1.2.0:
|
||||||
|
version "1.3.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz#67ec63c89da5a84bb793ecec166e11b4eb47af10"
|
||||||
|
integrity sha512-fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==
|
||||||
|
dependencies:
|
||||||
|
fault "^1.0.1"
|
||||||
|
xtend "^4.0.1"
|
||||||
|
|
||||||
|
remark-parse@^5.0.0:
|
||||||
|
version "5.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95"
|
||||||
|
integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==
|
||||||
|
dependencies:
|
||||||
|
collapse-white-space "^1.0.2"
|
||||||
|
is-alphabetical "^1.0.0"
|
||||||
|
is-decimal "^1.0.0"
|
||||||
|
is-whitespace-character "^1.0.0"
|
||||||
|
is-word-character "^1.0.0"
|
||||||
|
markdown-escapes "^1.0.0"
|
||||||
|
parse-entities "^1.1.0"
|
||||||
|
repeat-string "^1.5.4"
|
||||||
|
state-toggle "^1.0.0"
|
||||||
|
trim "0.0.1"
|
||||||
|
trim-trailing-lines "^1.0.0"
|
||||||
|
unherit "^1.0.4"
|
||||||
|
unist-util-remove-position "^1.0.0"
|
||||||
|
vfile-location "^2.0.0"
|
||||||
|
xtend "^4.0.1"
|
||||||
|
|
||||||
remark-parse@^8.0.0:
|
remark-parse@^8.0.0:
|
||||||
version "8.0.2"
|
version "8.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.2.tgz#5999bc0b9c2e3edc038800a64ff103d0890b318b"
|
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.2.tgz#5999bc0b9c2e3edc038800a64ff103d0890b318b"
|
||||||
@ -6558,6 +6670,13 @@ strip-json-comments@^3.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180"
|
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180"
|
||||||
integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==
|
integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==
|
||||||
|
|
||||||
|
structured-source@^3.0.2:
|
||||||
|
version "3.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/structured-source/-/structured-source-3.0.2.tgz#dd802425e0f53dc4a6e7aca3752901a1ccda7af5"
|
||||||
|
integrity sha1-3YAkJeD1PcSm56yjdSkBoczaevU=
|
||||||
|
dependencies:
|
||||||
|
boundary "^1.0.1"
|
||||||
|
|
||||||
style-search@^0.1.0:
|
style-search@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
|
resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
|
||||||
@ -6877,6 +6996,11 @@ tr46@^1.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
punycode "^2.1.0"
|
punycode "^2.1.0"
|
||||||
|
|
||||||
|
traverse@^0.6.6:
|
||||||
|
version "0.6.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
|
||||||
|
integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=
|
||||||
|
|
||||||
trim-newlines@^3.0.0:
|
trim-newlines@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30"
|
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30"
|
||||||
@ -6991,6 +7115,11 @@ uncss@^0.17.2:
|
|||||||
postcss-selector-parser "6.0.2"
|
postcss-selector-parser "6.0.2"
|
||||||
request "^2.88.0"
|
request "^2.88.0"
|
||||||
|
|
||||||
|
underscore@~1.8.3:
|
||||||
|
version "1.8.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
|
||||||
|
integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=
|
||||||
|
|
||||||
unherit@^1.0.4:
|
unherit@^1.0.4:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22"
|
resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22"
|
||||||
@ -7030,6 +7159,18 @@ unicode-trie@^0.3.1:
|
|||||||
pako "^0.2.5"
|
pako "^0.2.5"
|
||||||
tiny-inflate "^1.0.0"
|
tiny-inflate "^1.0.0"
|
||||||
|
|
||||||
|
unified@^6.1.6:
|
||||||
|
version "6.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba"
|
||||||
|
integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==
|
||||||
|
dependencies:
|
||||||
|
bail "^1.0.0"
|
||||||
|
extend "^3.0.0"
|
||||||
|
is-plain-obj "^1.1.0"
|
||||||
|
trough "^1.0.0"
|
||||||
|
vfile "^2.0.0"
|
||||||
|
x-is-string "^0.1.0"
|
||||||
|
|
||||||
unified@^9.0.0:
|
unified@^9.0.0:
|
||||||
version "9.0.0"
|
version "9.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/unified/-/unified-9.0.0.tgz#12b099f97ee8b36792dbad13d278ee2f696eed1d"
|
resolved "https://registry.yarnpkg.com/unified/-/unified-9.0.0.tgz#12b099f97ee8b36792dbad13d278ee2f696eed1d"
|
||||||
@ -7069,11 +7210,23 @@ unist-util-find-all-after@^3.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
unist-util-is "^4.0.0"
|
unist-util-is "^4.0.0"
|
||||||
|
|
||||||
|
unist-util-is@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd"
|
||||||
|
integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==
|
||||||
|
|
||||||
unist-util-is@^4.0.0:
|
unist-util-is@^4.0.0:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de"
|
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de"
|
||||||
integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==
|
integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==
|
||||||
|
|
||||||
|
unist-util-remove-position@^1.0.0:
|
||||||
|
version "1.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020"
|
||||||
|
integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==
|
||||||
|
dependencies:
|
||||||
|
unist-util-visit "^1.1.0"
|
||||||
|
|
||||||
unist-util-remove-position@^2.0.0:
|
unist-util-remove-position@^2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc"
|
resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc"
|
||||||
@ -7081,6 +7234,11 @@ unist-util-remove-position@^2.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
unist-util-visit "^2.0.0"
|
unist-util-visit "^2.0.0"
|
||||||
|
|
||||||
|
unist-util-stringify-position@^1.0.0:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6"
|
||||||
|
integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==
|
||||||
|
|
||||||
unist-util-stringify-position@^2.0.0:
|
unist-util-stringify-position@^2.0.0:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da"
|
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da"
|
||||||
@ -7088,6 +7246,13 @@ unist-util-stringify-position@^2.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/unist" "^2.0.2"
|
"@types/unist" "^2.0.2"
|
||||||
|
|
||||||
|
unist-util-visit-parents@^2.0.0:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9"
|
||||||
|
integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==
|
||||||
|
dependencies:
|
||||||
|
unist-util-is "^3.0.0"
|
||||||
|
|
||||||
unist-util-visit-parents@^3.0.0:
|
unist-util-visit-parents@^3.0.0:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz#d4076af3011739c71d2ce99d05de37d545f4351d"
|
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz#d4076af3011739c71d2ce99d05de37d545f4351d"
|
||||||
@ -7096,6 +7261,13 @@ unist-util-visit-parents@^3.0.0:
|
|||||||
"@types/unist" "^2.0.0"
|
"@types/unist" "^2.0.0"
|
||||||
unist-util-is "^4.0.0"
|
unist-util-is "^4.0.0"
|
||||||
|
|
||||||
|
unist-util-visit@^1.1.0:
|
||||||
|
version "1.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3"
|
||||||
|
integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==
|
||||||
|
dependencies:
|
||||||
|
unist-util-visit-parents "^2.0.0"
|
||||||
|
|
||||||
unist-util-visit@^2.0.0:
|
unist-util-visit@^2.0.0:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.2.tgz#3843782a517de3d2357b4c193b24af2d9366afb7"
|
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.2.tgz#3843782a517de3d2357b4c193b24af2d9366afb7"
|
||||||
@ -7128,6 +7300,11 @@ upath@^1.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
|
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
|
||||||
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
|
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
|
||||||
|
|
||||||
|
update-section@^0.3.0:
|
||||||
|
version "0.3.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158"
|
||||||
|
integrity sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg=
|
||||||
|
|
||||||
uri-js@^4.2.2:
|
uri-js@^4.2.2:
|
||||||
version "4.2.2"
|
version "4.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
|
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
|
||||||
@ -7214,12 +7391,17 @@ verror@1.10.0:
|
|||||||
core-util-is "1.0.2"
|
core-util-is "1.0.2"
|
||||||
extsprintf "^1.2.0"
|
extsprintf "^1.2.0"
|
||||||
|
|
||||||
|
vfile-location@^2.0.0:
|
||||||
|
version "2.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e"
|
||||||
|
integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==
|
||||||
|
|
||||||
vfile-location@^3.0.0:
|
vfile-location@^3.0.0:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.0.1.tgz#d78677c3546de0f7cd977544c367266764d31bb3"
|
resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.0.1.tgz#d78677c3546de0f7cd977544c367266764d31bb3"
|
||||||
integrity sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==
|
integrity sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==
|
||||||
|
|
||||||
vfile-message@^2.0.0, vfile-message@^2.0.2:
|
vfile-message@^1.0.0, vfile-message@^2.0.0, vfile-message@^2.0.2:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a"
|
resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a"
|
||||||
integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==
|
integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==
|
||||||
@ -7227,6 +7409,16 @@ vfile-message@^2.0.0, vfile-message@^2.0.2:
|
|||||||
"@types/unist" "^2.0.0"
|
"@types/unist" "^2.0.0"
|
||||||
unist-util-stringify-position "^2.0.0"
|
unist-util-stringify-position "^2.0.0"
|
||||||
|
|
||||||
|
vfile@^2.0.0:
|
||||||
|
version "2.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a"
|
||||||
|
integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==
|
||||||
|
dependencies:
|
||||||
|
is-buffer "^1.1.4"
|
||||||
|
replace-ext "1.0.0"
|
||||||
|
unist-util-stringify-position "^1.0.0"
|
||||||
|
vfile-message "^1.0.0"
|
||||||
|
|
||||||
vfile@^4.0.0:
|
vfile@^4.0.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.1.0.tgz#d79248957f43225d57ff67a56effc67bef08946e"
|
resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.1.0.tgz#d79248957f43225d57ff67a56effc67bef08946e"
|
||||||
@ -7383,6 +7575,11 @@ ws@^7.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.5.tgz#abb1370d4626a5a9cd79d8de404aa18b3465d10d"
|
resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.5.tgz#abb1370d4626a5a9cd79d8de404aa18b3465d10d"
|
||||||
integrity sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==
|
integrity sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==
|
||||||
|
|
||||||
|
x-is-string@^0.1.0:
|
||||||
|
version "0.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
|
||||||
|
integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=
|
||||||
|
|
||||||
xdg-basedir@^4.0.0:
|
xdg-basedir@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
|
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
|
||||||
|
Loading…
Reference in New Issue
Block a user