Compare commits
	
		
			123 Commits
		
	
	
		
			releases/v
			...
			resilient-
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 783053eda6 | ||
|  | fe464fe88d | ||
|  | 896dc80fef | ||
|  | 3e0e991ad2 | ||
|  | d04e8d60ba | ||
|  | 791347c66b | ||
|  | 3e073d0e89 | ||
|  | 11e5400ecc | ||
|  | 0f50057886 | ||
|  | 7a7eae594b | ||
|  | 3fd5ca6446 | ||
|  | 6e7c9a9516 | ||
|  | 7dec9775e5 | ||
|  | 2fc50b7dbd | ||
|  | 82ce26d8eb | ||
|  | 439f71762b | ||
|  | 73f48ce8fb | ||
|  | 941ffc2ad5 | ||
|  | 6a1044d4ed | ||
|  | 6f6cb173e2 | ||
|  | 17775af2a2 | ||
|  | aeb0bfb217 | ||
|  | 542462de24 | ||
|  | 8725a6ad42 | ||
|  | 018abf956a | ||
|  | 76107d4eb5 | ||
|  | 5d66827b21 | ||
|  | dad6e949b6 | ||
|  | b88b67ae9d | ||
|  | d4ff692ea4 | ||
|  | 2a00823cdf | ||
|  | c337086021 | ||
|  | 73a329e1fc | ||
|  | 139e95e483 | ||
|  | 15ad7f8d90 | ||
|  | 3e5f4ecda4 | ||
|  | 46e3bcf1bc | ||
|  | 28b5f5643a | ||
|  | 87d70237f9 | ||
|  | e0cb57136a | ||
|  | 690eac722d | ||
|  | 8d6d5e9496 | ||
|  | 20dc92e361 | ||
|  | c5dad0de4e | ||
|  | 36ed3fe72b | ||
|  | 0b249633ac | ||
|  | 0bd2cdca25 | ||
|  | 20d5bae58c | ||
|  | 0598b739d8 | ||
|  | 2e56a105a6 | ||
|  | 3349b09732 | ||
|  | b516682d84 | ||
|  | 2e278dead1 | ||
|  | e6685eaf1d | ||
|  | 0383d0d550 | ||
|  | 96aea9869b | ||
|  | f43909d7a0 | ||
|  | 54ce86db4c | ||
|  | fa64b9ec04 | ||
|  | ef4324316b | ||
|  | 68043fd3c3 | ||
|  | 575d5faa90 | ||
|  | 07da2520ee | ||
|  | 661bbdf5ce | ||
|  | 334bb6100b | ||
|  | d5ba40b697 | ||
|  | fda16d28d8 | ||
|  | da678383b2 | ||
|  | 8a37740405 | ||
|  | 28b1d88f39 | ||
|  | 2767b618db | ||
|  | aee3ec7ef5 | ||
|  | ba5c343622 | ||
|  | 8389c1826a | ||
|  | 95a8068e31 | ||
|  | 9e0a5291c3 | ||
|  | b093d8fdd9 | ||
|  | 6b9133ebb9 | ||
|  | 05229ec560 | ||
|  | 97465807a1 | ||
|  | cf5982c65c | ||
|  | 4977bdad66 | ||
|  | 775aed5fcb | ||
|  | 5a2cbacfff | ||
|  | 4bdb5ea92c | ||
|  | 9dc00124fc | ||
|  | 967d234ad8 | ||
|  | 07dda1e608 | ||
|  | 434ba1c7f0 | ||
|  | d953a4ee09 | ||
|  | dad23f2092 | ||
|  | 3559d01d05 | ||
|  | 62a0c05281 | ||
|  | 9000f28930 | ||
|  | 80dbe69d87 | ||
|  | 1664fea144 | ||
|  | 41dfa36aa3 | ||
|  | 63cf434de4 | ||
|  | 2ebff14e68 | ||
|  | a744770f4b | ||
|  | 14f0e86ffb | ||
|  | 4cbb444a96 | ||
|  | f68249e909 | ||
|  | 10a7d51bce | ||
|  | 642cfa0200 | ||
|  | d3c3fef7d5 | ||
|  | 1c67340d91 | ||
|  | afb82faed7 | ||
|  | bc19d99f45 | ||
|  | 5ab66ea04b | ||
|  | 1b7507cdbf | ||
|  | 5bba53f2a2 | ||
|  | ebed63b0a2 | ||
|  | 5c21a08208 | ||
|  | 9affe1ce81 | ||
|  | ef735e86b9 | ||
|  | 4856b67e4a | ||
|  | 6e3de2b50b | ||
|  | d8ecc134bc | ||
|  | dba72516a1 | ||
|  | df989ac1d6 | ||
|  | a5f8eada85 | ||
|  | f57eb6b95e | 
							
								
								
									
										13
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | version: 2 | ||||||
|  | updates: | ||||||
|  |  | ||||||
|  | - package-ecosystem: github-actions | ||||||
|  |   directory: "/" | ||||||
|  |   schedule: | ||||||
|  |     interval: daily | ||||||
|  |     time: '00:00' | ||||||
|  |     timezone: UTC | ||||||
|  |   open-pull-requests-limit: 10 | ||||||
|  |   commit-message: | ||||||
|  |       prefix: "chore" | ||||||
|  |       include: "scope" | ||||||
							
								
								
									
										86
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										86
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -2,23 +2,95 @@ name: "install-nix-action test" | |||||||
| on: | on: | ||||||
|   pull_request: |   pull_request: | ||||||
|   push: |   push: | ||||||
|  |     branches: | ||||||
|  |       - master | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   tests: |   simple-build: | ||||||
|     strategy: |     strategy: | ||||||
|       matrix: |       matrix: | ||||||
|         os: [ubuntu-18.04, macos-latest] |         os: [ubuntu-latest, macos-latest] | ||||||
|     runs-on: ${{ matrix.os }} |     runs-on: ${{ matrix.os }} | ||||||
|     steps: |     steps: | ||||||
|     - uses: actions/checkout@v1 |     - uses: actions/checkout@v2.3.5 | ||||||
|     - run: yarn install --frozen-lockfile |     - run: yarn install --frozen-lockfile | ||||||
|     - run: yarn build |     - run: yarn build | ||||||
|     # TODO: just commit it using github |  | ||||||
|     - run: git diff --exit-code |  | ||||||
|     - run: yarn test |  | ||||||
|     - name: Install Nix |     - name: Install Nix | ||||||
|       uses: ./ |       uses: ./ | ||||||
|     - run: nix-env -iA cachix -f https://github.com/NixOS/nixpkgs/tarball/ab5863afada3c1b50fc43bf774b75ea71b287cde |       with: | ||||||
|  |         nix_path: nixpkgs=channel:nixos-20.03 | ||||||
|  |     - run: nix-env -iA cachix -f https://cachix.org/api/v1/install | ||||||
|     - run: cat /etc/nix/nix.conf |     - run: cat /etc/nix/nix.conf | ||||||
|     # cachix should be available and be able to configure a cache |     # cachix should be available and be able to configure a cache | ||||||
|     - run: cachix use cachix |     - run: cachix use cachix | ||||||
|     - run: nix-build test.nix |     - run: nix-build test.nix | ||||||
|  |  | ||||||
|  |   custom-nix-path: | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         os: [ubuntu-latest, macos-latest] | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v2.3.5 | ||||||
|  |     - run: yarn install --frozen-lockfile | ||||||
|  |     - run: yarn build | ||||||
|  |     - name: Install Nix | ||||||
|  |       uses: ./ | ||||||
|  |       with: | ||||||
|  |         nix_path: nixpkgs=channel:nixos-20.03 | ||||||
|  |     - run: test $NIX_PATH == "nixpkgs=channel:nixos-20.03" | ||||||
|  |     - run: nix-build test.nix | ||||||
|  |  | ||||||
|  |   extra-nix-config: | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         os: [ubuntu-latest, macos-latest] | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v2.3.5 | ||||||
|  |     - run: yarn install --frozen-lockfile | ||||||
|  |     - run: yarn build | ||||||
|  |     - name: Install Nix | ||||||
|  |       uses: ./ | ||||||
|  |       with:  | ||||||
|  |         nix_path: nixpkgs=channel:nixos-20.03 | ||||||
|  |         extra_nix_config: | | ||||||
|  |           sandbox = relaxed | ||||||
|  |     - run: cat /etc/nix/nix.conf | ||||||
|  |     - run: nix-build test.nix --arg noChroot true | ||||||
|  |  | ||||||
|  |   flakes: | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         os: [ubuntu-latest, macos-latest] | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v2.3.5 | ||||||
|  |     - run: yarn install --frozen-lockfile | ||||||
|  |     - run: yarn build | ||||||
|  |     - name: Install Nix | ||||||
|  |       uses: ./ | ||||||
|  |       with: | ||||||
|  |         install_url: https://nixos-nix-install-tests.cachix.org/serve/i6laym9jw3wg9mw6ncyrk6gjx4l34vvx/install | ||||||
|  |         install_options: '--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve' | ||||||
|  |         extra_nix_config: | | ||||||
|  |           experimental-features = nix-command flakes | ||||||
|  |           access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||||
|  |     - run: nix flake show github:NixOS/nixpkgs | ||||||
|  |  | ||||||
|  |   installer-options: | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         os: [ubuntu-latest, macos-latest] | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v2.3.5 | ||||||
|  |     - run: yarn install --frozen-lockfile | ||||||
|  |     - run: yarn build | ||||||
|  |     - name: Install Nix | ||||||
|  |       uses: ./ | ||||||
|  |       with:  | ||||||
|  |         nix_path: nixpkgs=channel:nixos-21.05 | ||||||
|  |         install_url: https://nixos-nix-install-tests.cachix.org/serve/i6laym9jw3wg9mw6ncyrk6gjx4l34vvx/install | ||||||
|  |         install_options: '--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve' | ||||||
|  |     - run: nix-build test.nix | ||||||
|   | |||||||
							
								
								
									
										109
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										109
									
								
								README.md
									
									
									
									
									
								
							| @@ -4,6 +4,21 @@ | |||||||
|  |  | ||||||
| Installs [Nix](https://nixos.org/nix/) on GitHub Actions for the supported platforms: Linux and macOS. | Installs [Nix](https://nixos.org/nix/) on GitHub Actions for the supported platforms: Linux and macOS. | ||||||
|  |  | ||||||
|  | By default it has no nixpkgs configured, you have to set `nix_path` | ||||||
|  | by [picking a channel](https://status.nixos.org/) | ||||||
|  | or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs.html)  | ||||||
|  | (see also [pinning tutorial](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html)). | ||||||
|  |  | ||||||
|  | # Features | ||||||
|  |  | ||||||
|  | - Quick installation (~4s on Linux, ~20s on macOS) | ||||||
|  | - Multi-User installation (with sandboxing enabled only on Linux) | ||||||
|  | - [Self-hosted github runner](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners) support | ||||||
|  | - Allows specifying Nix installation URL via `install_url` (the oldest supported Nix version is 2.3.5) | ||||||
|  | - Allows specifying extra Nix configration options via `extra_nix_config` | ||||||
|  | - Allows specifying `$NIX_PATH` and channels via `nix_path` | ||||||
|  | - Share `/nix/store` between builds using [cachix-action](https://github.com/cachix/cachix-action) for simple binary cache setup to speed up your builds and share binaries with your team | ||||||
|  |  | ||||||
| ## Usage | ## Usage | ||||||
|  |  | ||||||
| Create `.github/workflows/test.yml` in your repo with the following contents: | Create `.github/workflows/test.yml` in your repo with the following contents: | ||||||
| @@ -17,20 +32,102 @@ jobs: | |||||||
|   tests: |   tests: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|     - uses: actions/checkout@v1 |     - uses: actions/checkout@v2.3.4 | ||||||
|     - uses: cachix/install-nix-action@v6 |     - uses: cachix/install-nix-action@v13 | ||||||
|  |       with: | ||||||
|  |         nix_path: nixpkgs=channel:nixos-unstable | ||||||
|     - run: nix-build |     - run: nix-build | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  |  | ||||||
| See [action.yml](action.yml) for all options. | ## Usage with Flakes | ||||||
|  |  | ||||||
| See also [cachix-action](https://github.com/cachix/cachix-action) for | ```yaml | ||||||
| simple binary cache setup to speed up your builds and share binaries | name: "Test" | ||||||
| with developers. | on: | ||||||
|  |   pull_request: | ||||||
|  |   push: | ||||||
|  | jobs: | ||||||
|  |   tests: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v2.3.4 | ||||||
|  |     - uses: cachix/install-nix-action@v14 | ||||||
|  |       with: | ||||||
|  |         install_url: https://nixos-nix-install-tests.cachix.org/serve/vij683ly7sl95nnhb67bdjjfabclr85m/install | ||||||
|  |         install_options: '--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve' | ||||||
|  |         extra_nix_config: | | ||||||
|  |           experimental-features = nix-command flakes | ||||||
|  |           access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||||
|  |     - run: nix build | ||||||
|  |     - run: nix flake check | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | To install Nix from any commit, go to [the corresponding installer_test action](https://github.com/NixOS/nix/runs/2219534360) and click on "Run cachix/install-nix-action@XX" step and expand the first line. | ||||||
|  |  | ||||||
|  | ## Inputs (specify using `with:`) | ||||||
|  |  | ||||||
|  | - `install_url`: specify URL to install Nix from (useful for testing non-stable releases or pinning Nix for example https://releases.nixos.org/nix/nix-2.3.7/install) | ||||||
|  |  | ||||||
|  | - `nix_path`: set `NIX_PATH` environment variable, for example `nixpkgs=channel:nixos-unstable` | ||||||
|  |  | ||||||
|  | - `extra_nix_config`: append to `/etc/nix/nix.conf` | ||||||
|  |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
|  | ## FAQ | ||||||
|  |  | ||||||
|  | ### How do I print nixpkgs version I have configured? | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - name: Print nixpkgs version | ||||||
|  |   run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version' | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### How can I run NixOS tests? | ||||||
|  |  | ||||||
|  | With the following inputs: | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - uses: cachix/install-nix-action@vXX | ||||||
|  |   with: | ||||||
|  |     extra_nix_config: "system-features = nixos-test benchmark big-parallel kvm" | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | [Note that there's no hardware acceleration on GitHub Actions.](https://github.com/actions/virtual-environments/issues/183#issuecomment-610723516). | ||||||
|  |  | ||||||
|  | ### How can I install packages via nix-env from the specified `nix_path`? | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | nix-env -i mypackage -f '<nixpkgs>' | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### How do I add a binary cache? | ||||||
|  |  | ||||||
|  | If the binary cache you want to add is hosted on [Cachix](https://cachix.org/) and you are | ||||||
|  | using [cachix-action](https://github.com/cachix/cachix-action), you | ||||||
|  | should use their `extraPullNames` input like this: | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - uses: cachix/cachix-action@vXX | ||||||
|  |    with: | ||||||
|  |      name: mycache | ||||||
|  |      authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | ||||||
|  |      extraPullNames: nix-community | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Otherwise, you can add any binary cache to nix.conf using | ||||||
|  | install-nix-action's own `extra_nix_config` input: | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - uses: cachix/install-nix-action@vXX | ||||||
|  |   with: | ||||||
|  |     extra_nix_config: | | ||||||
|  |       trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= | ||||||
|  |       substituters = https://hydra.iohk.io https://cache.nixos.org/ | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ## Hacking | ## Hacking | ||||||
|  |  | ||||||
| Install the dependencies | Install the dependencies | ||||||
|   | |||||||
| @@ -1,6 +1,15 @@ | |||||||
| name: 'Install Nix' | name: 'Install Nix' | ||||||
| description: 'Installs Nix on GitHub Actions for the supported platforms: Linux and macOS.' | description: 'Installs Nix on GitHub Actions for the supported platforms: Linux and macOS.' | ||||||
| author: 'Domen Kožar' | author: 'Domen Kožar' | ||||||
|  | inputs: | ||||||
|  |   install_url: | ||||||
|  |     description: 'Installation URL that will contain a script to install Nix.' | ||||||
|  |   install_options: | ||||||
|  |     description: 'Additional installer flags passed to the installer script.' | ||||||
|  |   nix_path: | ||||||
|  |     description: 'Set NIX_PATH environment variable.' | ||||||
|  |   extra_nix_config: | ||||||
|  |     description: 'gets appended to `/etc/nix/nix.conf` if passed.' | ||||||
| branding: | branding: | ||||||
|   color: 'blue' |   color: 'blue' | ||||||
|   icon: 'sun' |   icon: 'sun' | ||||||
|   | |||||||
| @@ -1,102 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
| set -e |  | ||||||
|  |  | ||||||
| root_disks() { |  | ||||||
|     diskutil list -plist / |  | ||||||
| } |  | ||||||
|  |  | ||||||
| apfs_volumes_for() { |  | ||||||
|     disk=$1 |  | ||||||
|     diskutil apfs list -plist "$disk" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| disk_identifier() { |  | ||||||
|     xpath "/plist/dict/key[text()='WholeDisks']/following-sibling::array[1]/string/text()" 2>/dev/null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| volume_get() { |  | ||||||
|     key=$1 i=$2 |  | ||||||
|     xpath "/plist/dict/array/dict/key[text()='Volumes']/following-sibling::array/dict[$i]/key[text()='$key']/following-sibling::string[1]/text()" 2> /dev/null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| find_nix_volume() { |  | ||||||
|     disk=$1 |  | ||||||
|     i=1 |  | ||||||
|     volumes=$(apfs_volumes_for "$disk") |  | ||||||
|     while true; do |  | ||||||
|         name=$(echo "$volumes" | volume_get "Name" "$i") |  | ||||||
|         if [ -z "$name" ]; then |  | ||||||
|             break |  | ||||||
|         fi |  | ||||||
|         case "$name" in |  | ||||||
|             [Nn]ix*) |  | ||||||
|                 echo "$name" |  | ||||||
|                 break |  | ||||||
|                 ;; |  | ||||||
|         esac |  | ||||||
|         i=$((i+1)) |  | ||||||
|     done |  | ||||||
| } |  | ||||||
|  |  | ||||||
| test_fstab() { |  | ||||||
|     grep -q "/nix" /etc/fstab 2>/dev/null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| test_synthetic_conf() { |  | ||||||
|     grep -q "^nix" /etc/synthetic.conf 2>/dev/null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| test_nix() { |  | ||||||
|     test -d "/nix" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| main() { |  | ||||||
|     ( |  | ||||||
|         echo "" |  | ||||||
|         echo "     ------------------------------------------------------------------ " |  | ||||||
|         echo "    | This installer will create a volume for the nix store and        |" |  | ||||||
|         echo "    | configure it to mount at /nix.  Follow these steps to uninstall. |" |  | ||||||
|         echo "     ------------------------------------------------------------------ " |  | ||||||
|         echo "" |  | ||||||
|         echo "  1. Remove the entry from fstab using 'sudo vifs'" |  | ||||||
|         echo "  2. Destroy the data volume using 'diskutil apfs deleteVolume'" |  | ||||||
|         echo "  3. Delete /etc/synthetic.conf" |  | ||||||
|         echo "" |  | ||||||
|     ) >&2 |  | ||||||
|  |  | ||||||
|     if [ -L "/nix" ]; then |  | ||||||
|         echo "error: /nix is a symlink, please remove it or edit synthetic.conf (requires reboot)" >&2 |  | ||||||
|         echo "  /nix -> $(readlink "/nix")" >&2 |  | ||||||
|         exit 2 |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     if ! test_synthetic_conf; then |  | ||||||
|         echo "Configuring /etc/synthetic.conf..." >&2 |  | ||||||
|         echo nix | sudo tee /etc/synthetic.conf |  | ||||||
|         /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     if ! test_nix; then |  | ||||||
|         echo "Creating mountpoint for /nix..." >&2 |  | ||||||
|         sudo mkdir /nix |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     disk=$(root_disks | disk_identifier) |  | ||||||
|     volume=$(find_nix_volume "$disk") |  | ||||||
|     if [ -z "$volume" ]; then |  | ||||||
|         echo "Creating a Nix Store volume..." >&2 |  | ||||||
|         sudo diskutil apfs addVolume "$disk" APFS 'Nix Store' -mountpoint /nix |  | ||||||
|         volume="Nix Store" |  | ||||||
|     else |  | ||||||
|         echo "Using existing '$volume' volume" >&2 |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     if ! test_fstab; then |  | ||||||
|         echo "Configuring /etc/fstab..." >&2 |  | ||||||
|         label=$(echo "$volume" | sed 's/ /\\040/g') |  | ||||||
|         printf "\$a\nLABEL=%s /nix apfs rw\n.\nwq\n" "$label" | EDITOR=ed sudo vifs |  | ||||||
|         sudo defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin -bool true |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| main "$@" |  | ||||||
							
								
								
									
										72
									
								
								lib/install-nix.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										72
									
								
								lib/install-nix.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,72 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  | set -euo pipefail | ||||||
|  |  | ||||||
|  | if type -p nix &>/dev/null ; then | ||||||
|  |   echo "Aborting: Nix is already installed at $(type -p nix)" | ||||||
|  |   exit | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # Configure Nix | ||||||
|  | add_config() { | ||||||
|  |   echo "$1" | tee -a /tmp/nix.conf >/dev/null | ||||||
|  | } | ||||||
|  | # Set jobs to number of cores | ||||||
|  | add_config "max-jobs = auto" | ||||||
|  | # Allow binary caches for user | ||||||
|  | add_config "trusted-users = root $USER" | ||||||
|  | # Append extra nix configuration if provided | ||||||
|  | if [[ $INPUT_EXTRA_NIX_CONFIG != "" ]]; then | ||||||
|  |   add_config "$INPUT_EXTRA_NIX_CONFIG" | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # Nix installer flags | ||||||
|  | installer_options=( | ||||||
|  |   --no-channel-add | ||||||
|  |   --darwin-use-unencrypted-nix-store-volume | ||||||
|  |   --nix-extra-conf-file /tmp/nix.conf | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | # only use the nix-daemon settings if on darwin (which get ignored) or systemd is supported | ||||||
|  | if [[ $OSTYPE =~ darwin || -e /run/systemd/system ]]; then | ||||||
|  |   installer_options+=( | ||||||
|  |     --daemon | ||||||
|  |     --daemon-user-count `python -c 'import multiprocessing as mp; print(mp.cpu_count() * 2)'` | ||||||
|  |   ) | ||||||
|  | else | ||||||
|  |   # "fix" the following error when running nix* | ||||||
|  |   # error: the group 'nixbld' specified in 'build-users-group' does not exist | ||||||
|  |   mkdir -m 0755 /etc/nix | ||||||
|  |   echo "build-users-group =" > /etc/nix/nix.conf | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [[ $INPUT_INSTALL_OPTIONS != "" ]]; then | ||||||
|  |   IFS=' ' read -r -a extra_installer_options <<< $INPUT_INSTALL_OPTIONS | ||||||
|  |   installer_options=("${extra_installer_options[@]}" "${installer_options[@]}") | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo "installer options: ${installer_options[@]}" | ||||||
|  |  | ||||||
|  | # There is --retry-on-errors, but only newer curl versions support that | ||||||
|  | until curl -o /tmp/install -v --fail --retry 5 --retry-connrefused -L "${INPUT_INSTALL_URL:-https://nixos.org/nix/install}"  | ||||||
|  | do | ||||||
|  |   sleep 1 | ||||||
|  | done | ||||||
|  |  | ||||||
|  | chmod +x /tmp/install | ||||||
|  | sh /tmp/install "${installer_options[@]}" | ||||||
|  |  | ||||||
|  | if [[ $OSTYPE =~ darwin ]]; then | ||||||
|  |   # macOS needs certificates hints | ||||||
|  |   cert_file=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt | ||||||
|  |   echo "NIX_SSL_CERT_FILE=$cert_file" >> "$GITHUB_ENV" | ||||||
|  |   export NIX_SSL_CERT_FILE=$cert_file | ||||||
|  |   sudo launchctl setenv NIX_SSL_CERT_FILE "$cert_file" | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # Set paths | ||||||
|  | echo "/nix/var/nix/profiles/per-user/$USER/profile/bin" >> "$GITHUB_PATH" | ||||||
|  | echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH" | ||||||
|  |  | ||||||
|  | if [[ $INPUT_NIX_PATH != "" ]]; then | ||||||
|  |   echo "NIX_PATH=${INPUT_NIX_PATH}" >> "$GITHUB_ENV" | ||||||
|  | fi | ||||||
							
								
								
									
										81
									
								
								lib/main.js
									
									
									
									
									
								
							
							
						
						
									
										81
									
								
								lib/main.js
									
									
									
									
									
								
							| @@ -1,83 +1,4 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { |  | ||||||
|     function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |  | ||||||
|     return new (P || (P = Promise))(function (resolve, reject) { |  | ||||||
|         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |  | ||||||
|         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |  | ||||||
|         function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |  | ||||||
|         step((generator = generator.apply(thisArg, _arguments || [])).next()); |  | ||||||
|     }); |  | ||||||
| }; |  | ||||||
| var __importStar = (this && this.__importStar) || function (mod) { |  | ||||||
|     if (mod && mod.__esModule) return mod; |  | ||||||
|     var result = {}; |  | ||||||
|     if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; |  | ||||||
|     result["default"] = mod; |  | ||||||
|     return result; |  | ||||||
| }; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); | Object.defineProperty(exports, "__esModule", { value: true }); | ||||||
| const core = __importStar(require("@actions/core")); |  | ||||||
| const exec = __importStar(require("@actions/exec")); |  | ||||||
| const tc = __importStar(require("@actions/tool-cache")); |  | ||||||
| const child_process_1 = require("child_process"); | const child_process_1 = require("child_process"); | ||||||
| const os_1 = require("os"); | child_process_1.execFileSync(`${__dirname}/install-nix.sh`, { stdio: 'inherit' }); | ||||||
| const process_1 = require("process"); |  | ||||||
| const net_1 = require("net"); |  | ||||||
| function nixConf() { |  | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |  | ||||||
|         // Workaround a segfault: https://github.com/NixOS/nix/issues/2733 |  | ||||||
|         yield exec.exec("sudo", ["mkdir", "-p", "/etc/nix"]); |  | ||||||
|         yield exec.exec("sudo", ["sh", "-c", "echo http2 = false >> /etc/nix/nix.conf"]); |  | ||||||
|         // Set jobs to number of cores |  | ||||||
|         yield exec.exec("sudo", ["sh", "-c", "echo max-jobs = auto >> /etc/nix/nix.conf"]); |  | ||||||
|         // Allow binary caches for runner user |  | ||||||
|         yield exec.exec("sudo", ["sh", "-c", "echo trusted-users = root runner >> /etc/nix/nix.conf"]); |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
| function run() { |  | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |  | ||||||
|         try { |  | ||||||
|             const PATH = process.env.PATH; |  | ||||||
|             yield nixConf(); |  | ||||||
|             // Catalina workaround https://github.com/NixOS/nix/issues/2925 |  | ||||||
|             if (os_1.type() == "Darwin") { |  | ||||||
|                 child_process_1.execFileSync(`${__dirname}/create-darwin-volume.sh`, { stdio: 'inherit' }); |  | ||||||
|             } |  | ||||||
|             // Needed due to multi-user being too defensive |  | ||||||
|             core.exportVariable('ALLOW_PREEXISTING_INSTALLATION', "1"); |  | ||||||
|             // TODO: retry due to all the things that can go wrong |  | ||||||
|             const nixInstall = yield tc.downloadTool('https://nixos.org/nix/install'); |  | ||||||
|             yield exec.exec("sh", [nixInstall, "--daemon"]); |  | ||||||
|             // write nix.conf again as installation overwrites it, reload the daemon to pick up changes |  | ||||||
|             yield nixConf(); |  | ||||||
|             yield exec.exec("sudo", ["pkill", "-HUP", "nix-daemon"]); |  | ||||||
|             // setup env |  | ||||||
|             core.exportVariable('PATH', `${PATH}:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/per-user/runner/profile/bin`); |  | ||||||
|             core.exportVariable('NIX_PATH', `/nix/var/nix/profiles/per-user/root/channels`); |  | ||||||
|             if (os_1.type() == "Darwin") { |  | ||||||
|                 // macOS needs certificates hints |  | ||||||
|                 core.exportVariable('NIX_SSL_CERT_FILE', '/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt'); |  | ||||||
|                 // TODO: nc doesn't work correctly on macOS :( |  | ||||||
|                 yield awaitSocket(); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         catch (error) { |  | ||||||
|             core.setFailed(`Action failed with error: ${error}`); |  | ||||||
|             throw (error); |  | ||||||
|         } |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
| function awaitSocket() { |  | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |  | ||||||
|         const daemonSocket = net_1.createConnection({ path: '/nix/var/nix/daemon-socket/socket' }); |  | ||||||
|         daemonSocket.on('error', () => __awaiter(this, void 0, void 0, function* () { |  | ||||||
|             console.log('Waiting for daemon socket to be available, reconnecting...'); |  | ||||||
|             yield new Promise(resolve => setTimeout(resolve, 500)); |  | ||||||
|             yield awaitSocket(); |  | ||||||
|         })); |  | ||||||
|         daemonSocket.on('connect', () => { |  | ||||||
|             process_1.exit(0); |  | ||||||
|         }); |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
| run(); |  | ||||||
|   | |||||||
| @@ -1,8 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| function extrasperse(elem, array) { |  | ||||||
|     const init = []; |  | ||||||
|     return array.reduce((r, a) => r.concat(elem, a), init); |  | ||||||
| } |  | ||||||
| exports.extrasperse = extrasperse; |  | ||||||
| ; |  | ||||||
| @@ -20,7 +20,7 @@ | |||||||
|   "author": "Domen Kožar", |   "author": "Domen Kožar", | ||||||
|   "license": "ASL2", |   "license": "ASL2", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/core": "^1.1.0", |     "@actions/core": "^1.2.6", | ||||||
|     "@actions/exec": "^1.0.1", |     "@actions/exec": "^1.0.1", | ||||||
|     "@actions/tool-cache": "^1.1.2" |     "@actions/tool-cache": "^1.1.2" | ||||||
|   }, |   }, | ||||||
|   | |||||||
							
								
								
									
										72
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								src/main.ts
									
									
									
									
									
								
							| @@ -1,71 +1,3 @@ | |||||||
| import * as core from '@actions/core'; | import { execFileSync } from 'child_process'; | ||||||
| import * as exec from '@actions/exec'; |  | ||||||
| import * as tc from '@actions/tool-cache'; |  | ||||||
| import {execFileSync} from 'child_process'; |  | ||||||
| import {type} from 'os'; |  | ||||||
| import {exit} from 'process'; |  | ||||||
| import {createConnection} from 'net'; |  | ||||||
|  |  | ||||||
| async function nixConf() { | execFileSync(`${__dirname}/install-nix.sh`, { stdio: 'inherit' }); | ||||||
|     // Workaround a segfault: https://github.com/NixOS/nix/issues/2733 |  | ||||||
|     await exec.exec("sudo", ["mkdir", "-p", "/etc/nix"]); |  | ||||||
|     await exec.exec("sudo", ["sh", "-c", "echo http2 = false >> /etc/nix/nix.conf"]); |  | ||||||
|  |  | ||||||
|     // Set jobs to number of cores |  | ||||||
|     await exec.exec("sudo", ["sh", "-c", "echo max-jobs = auto >> /etc/nix/nix.conf"]); |  | ||||||
|  |  | ||||||
|     // Allow binary caches for runner user |  | ||||||
|     await exec.exec("sudo", ["sh", "-c", "echo trusted-users = root runner >> /etc/nix/nix.conf"]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| async function run() { |  | ||||||
|   try { |  | ||||||
|     const PATH = process.env.PATH; |  | ||||||
|   |  | ||||||
|     await nixConf(); |  | ||||||
|  |  | ||||||
|     // Catalina workaround https://github.com/NixOS/nix/issues/2925 |  | ||||||
|     if (type() == "Darwin") { |  | ||||||
|       execFileSync(`${__dirname}/create-darwin-volume.sh`, { stdio: 'inherit' }); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     // Needed due to multi-user being too defensive |  | ||||||
|     core.exportVariable('ALLOW_PREEXISTING_INSTALLATION', "1");  |  | ||||||
|  |  | ||||||
|     // TODO: retry due to all the things that can go wrong |  | ||||||
|     const nixInstall = await tc.downloadTool('https://nixos.org/nix/install'); |  | ||||||
|     await exec.exec("sh", [nixInstall, "--daemon"]); |  | ||||||
|  |  | ||||||
|     // write nix.conf again as installation overwrites it, reload the daemon to pick up changes |  | ||||||
|     await nixConf(); |  | ||||||
|     await exec.exec("sudo", ["pkill", "-HUP", "nix-daemon"]); |  | ||||||
|  |  | ||||||
|     // setup env |  | ||||||
|     core.exportVariable('PATH', `${PATH}:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/per-user/runner/profile/bin`) |  | ||||||
|     core.exportVariable('NIX_PATH', `/nix/var/nix/profiles/per-user/root/channels`) |  | ||||||
|     if (type() == "Darwin") { |  | ||||||
|       // macOS needs certificates hints |  | ||||||
|       core.exportVariable('NIX_SSL_CERT_FILE', '/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt'); |  | ||||||
|  |  | ||||||
|       // TODO: nc doesn't work correctly on macOS :( |  | ||||||
|       await awaitSocket(); |  | ||||||
|     } |  | ||||||
|   } catch (error) { |  | ||||||
|     core.setFailed(`Action failed with error: ${error}`); |  | ||||||
|     throw(error); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| async function awaitSocket() { |  | ||||||
|   const daemonSocket = createConnection({ path: '/nix/var/nix/daemon-socket/socket' }); |  | ||||||
|   daemonSocket.on('error', async () => { |  | ||||||
|     console.log('Waiting for daemon socket to be available, reconnecting...'); |  | ||||||
|     await new Promise(resolve => setTimeout(resolve, 500)); |  | ||||||
|     await awaitSocket(); |  | ||||||
|   }); |  | ||||||
|   daemonSocket.on('connect', () => { |  | ||||||
|     exit(0); |  | ||||||
|   }); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| run(); |  | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								test.nix
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								test.nix
									
									
									
									
									
								
							| @@ -2,12 +2,15 @@ | |||||||
| { size ? 1 # MB | { size ? 1 # MB | ||||||
| , num ? 10 # count  | , num ? 10 # count  | ||||||
| , currentTime ? builtins.currentTime | , currentTime ? builtins.currentTime | ||||||
|  | , noChroot ? false | ||||||
| }: | }: | ||||||
|  |  | ||||||
| with import <nixpkgs> {}; | with import <nixpkgs> {}; | ||||||
|  |  | ||||||
| let | let | ||||||
|   drv = i: runCommand "${toString currentTime}-${toString i}" {} '' |   drv = i: runCommand "${toString currentTime}-${toString i}" { | ||||||
|  |     __noChroot = noChroot; | ||||||
|  |   } '' | ||||||
|     dd if=/dev/zero of=$out bs=${toString size}MB count=1 |     dd if=/dev/zero of=$out bs=${toString size}MB count=1 | ||||||
|   ''; |   ''; | ||||||
| in writeText "empty-${toString num}-${toString size}MB" '' | in writeText "empty-${toString num}-${toString size}MB" '' | ||||||
|   | |||||||
							
								
								
									
										192
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										192
									
								
								yarn.lock
									
									
									
									
									
								
							| @@ -2,10 +2,10 @@ | |||||||
| # yarn lockfile v1 | # yarn lockfile v1 | ||||||
|  |  | ||||||
|  |  | ||||||
| "@actions/core@^1.1.0": | "@actions/core@^1.1.0", "@actions/core@^1.2.6": | ||||||
|   version "1.1.1" |   version "1.2.6" | ||||||
|   resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.1.1.tgz#e08f3dbfe04721bb3d040f8fca2d6d7e1817b2e1" |   resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.6.tgz#a78d49f41a4def18e88ce47c2cac615d5694bf09" | ||||||
|   integrity sha512-O5G6EmlzTVsng7VSpNtszIoQq6kOgMGNTFB/hmwKNNA4V71JyxImCIrL27vVHCt2Cb3ImkaCr6o27C2MV9Ylwg== |   integrity sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA== | ||||||
|  |  | ||||||
| "@actions/exec@^1.0.1": | "@actions/exec@^1.0.1": | ||||||
|   version "1.0.1" |   version "1.0.1" | ||||||
| @@ -424,9 +424,9 @@ acorn-walk@^6.0.1: | |||||||
|   integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== |   integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== | ||||||
|  |  | ||||||
| acorn@^5.5.3: | acorn@^5.5.3: | ||||||
|   version "5.7.3" |   version "5.7.4" | ||||||
|   resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" |   resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" | ||||||
|   integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== |   integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== | ||||||
|  |  | ||||||
| acorn@^6.0.1: | acorn@^6.0.1: | ||||||
|   version "6.3.0" |   version "6.3.0" | ||||||
| @@ -737,10 +737,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: | |||||||
|     escape-string-regexp "^1.0.5" |     escape-string-regexp "^1.0.5" | ||||||
|     supports-color "^5.3.0" |     supports-color "^5.3.0" | ||||||
|  |  | ||||||
| chownr@^1.1.1: | chownr@^1.1.4: | ||||||
|   version "1.1.3" |   version "1.1.4" | ||||||
|   resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" |   resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" | ||||||
|   integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== |   integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== | ||||||
|  |  | ||||||
| ci-info@^2.0.0: | ci-info@^2.0.0: | ||||||
|   version "2.0.0" |   version "2.0.0" | ||||||
| @@ -803,11 +803,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: | |||||||
|   dependencies: |   dependencies: | ||||||
|     delayed-stream "~1.0.0" |     delayed-stream "~1.0.0" | ||||||
|  |  | ||||||
| commander@~2.20.0: |  | ||||||
|   version "2.20.1" |  | ||||||
|   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" |  | ||||||
|   integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== |  | ||||||
|  |  | ||||||
| component-emitter@^1.2.1: | component-emitter@^1.2.1: | ||||||
|   version "1.3.0" |   version "1.3.0" | ||||||
|   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" |   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" | ||||||
| @@ -1227,7 +1222,7 @@ fragment-cache@^0.2.1: | |||||||
|   dependencies: |   dependencies: | ||||||
|     map-cache "^0.2.2" |     map-cache "^0.2.2" | ||||||
|  |  | ||||||
| fs-minipass@^1.2.5: | fs-minipass@^1.2.7: | ||||||
|   version "1.2.7" |   version "1.2.7" | ||||||
|   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" |   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" | ||||||
|   integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== |   integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== | ||||||
| @@ -1318,13 +1313,14 @@ growly@^1.3.0: | |||||||
|   integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= |   integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= | ||||||
|  |  | ||||||
| handlebars@^4.1.2: | handlebars@^4.1.2: | ||||||
|   version "4.4.0" |   version "4.7.7" | ||||||
|   resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.0.tgz#22e1a897c5d83023d39801f35f6b65cf97ed8b25" |   resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" | ||||||
|   integrity sha512-xkRtOt3/3DzTKMOt3xahj2M/EqNhY988T+imYSlMgs5fVhLN2fmKVVj0LtEGmb+3UUYV5Qmm1052Mm3dIQxOvw== |   integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== | ||||||
|   dependencies: |   dependencies: | ||||||
|  |     minimist "^1.2.5" | ||||||
|     neo-async "^2.6.0" |     neo-async "^2.6.0" | ||||||
|     optimist "^0.6.1" |  | ||||||
|     source-map "^0.6.1" |     source-map "^0.6.1" | ||||||
|  |     wordwrap "^1.0.0" | ||||||
|   optionalDependencies: |   optionalDependencies: | ||||||
|     uglify-js "^3.1.4" |     uglify-js "^3.1.4" | ||||||
|  |  | ||||||
| @@ -1395,9 +1391,9 @@ has@^1.0.1, has@^1.0.3: | |||||||
|     function-bind "^1.1.1" |     function-bind "^1.1.1" | ||||||
|  |  | ||||||
| hosted-git-info@^2.1.4: | hosted-git-info@^2.1.4: | ||||||
|   version "2.8.4" |   version "2.8.9" | ||||||
|   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" |   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" | ||||||
|   integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== |   integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== | ||||||
|  |  | ||||||
| html-encoding-sniffer@^1.0.2: | html-encoding-sniffer@^1.0.2: | ||||||
|   version "1.0.2" |   version "1.0.2" | ||||||
| @@ -1456,9 +1452,9 @@ inherits@2, inherits@~2.0.3: | |||||||
|   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== |   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== | ||||||
|  |  | ||||||
| ini@~1.3.0: | ini@~1.3.0: | ||||||
|   version "1.3.5" |   version "1.3.8" | ||||||
|   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" |   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" | ||||||
|   integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== |   integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== | ||||||
|  |  | ||||||
| invariant@^2.2.4: | invariant@^2.2.4: | ||||||
|   version "2.2.4" |   version "2.2.4" | ||||||
| @@ -2225,9 +2221,9 @@ lodash.sortby@^4.7.0: | |||||||
|   integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= |   integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= | ||||||
|  |  | ||||||
| lodash@^4.17.11, lodash@^4.17.13: | lodash@^4.17.11, lodash@^4.17.13: | ||||||
|   version "4.17.15" |   version "4.17.21" | ||||||
|   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" |   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" | ||||||
|   integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== |   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== | ||||||
|  |  | ||||||
| loose-envify@^1.0.0: | loose-envify@^1.0.0: | ||||||
|   version "1.4.0" |   version "1.4.0" | ||||||
| @@ -2311,30 +2307,12 @@ minimatch@^3.0.4: | |||||||
|   dependencies: |   dependencies: | ||||||
|     brace-expansion "^1.1.7" |     brace-expansion "^1.1.7" | ||||||
|  |  | ||||||
| minimist@0.0.8: | minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: | ||||||
|   version "0.0.8" |   version "1.2.5" | ||||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" |   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" | ||||||
|   integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= |   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== | ||||||
|  |  | ||||||
| minimist@^1.1.1, minimist@^1.2.0: | minipass@^2.6.0, minipass@^2.9.0: | ||||||
|   version "1.2.0" |  | ||||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" |  | ||||||
|   integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= |  | ||||||
|  |  | ||||||
| minimist@~0.0.1: |  | ||||||
|   version "0.0.10" |  | ||||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" |  | ||||||
|   integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= |  | ||||||
|  |  | ||||||
| minipass@^2.6.0, minipass@^2.8.6: |  | ||||||
|   version "2.8.6" |  | ||||||
|   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.8.6.tgz#620d889ace26356391d010ecb9458749df9b6db5" |  | ||||||
|   integrity sha512-lFG7d6g3+/UaFDCOtqPiKAC9zngWWsQZl1g5q6gaONqrjq61SX2xFqXMleQiFVyDpYwa018E9hmlAFY22PCb+A== |  | ||||||
|   dependencies: |  | ||||||
|     safe-buffer "^5.1.2" |  | ||||||
|     yallist "^3.0.0" |  | ||||||
|  |  | ||||||
| minipass@^2.9.0: |  | ||||||
|   version "2.9.0" |   version "2.9.0" | ||||||
|   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" |   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" | ||||||
|   integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== |   integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== | ||||||
| @@ -2342,10 +2320,10 @@ minipass@^2.9.0: | |||||||
|     safe-buffer "^5.1.2" |     safe-buffer "^5.1.2" | ||||||
|     yallist "^3.0.0" |     yallist "^3.0.0" | ||||||
|  |  | ||||||
| minizlib@^1.2.1: | minizlib@^1.3.3: | ||||||
|   version "1.3.2" |   version "1.3.3" | ||||||
|   resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.2.tgz#5d24764998f98112586f7e566bd4c0999769dad4" |   resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" | ||||||
|   integrity sha512-lsNFqSHdJ21EwKzCp12HHJGxSMtHkCW1EMA9cceG3MkMNARjuWotZnMe3NKNshAvFXpm4loZqmYsCmRwhS2JMw== |   integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== | ||||||
|   dependencies: |   dependencies: | ||||||
|     minipass "^2.9.0" |     minipass "^2.9.0" | ||||||
|  |  | ||||||
| @@ -2357,12 +2335,12 @@ mixin-deep@^1.2.0: | |||||||
|     for-in "^1.0.2" |     for-in "^1.0.2" | ||||||
|     is-extendable "^1.0.1" |     is-extendable "^1.0.1" | ||||||
|  |  | ||||||
| mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: | mkdirp@0.x, mkdirp@^0.5.1, mkdirp@^0.5.5: | ||||||
|   version "0.5.1" |   version "0.5.5" | ||||||
|   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" |   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" | ||||||
|   integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= |   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     minimist "0.0.8" |     minimist "^1.2.5" | ||||||
|  |  | ||||||
| ms@2.0.0: | ms@2.0.0: | ||||||
|   version "2.0.0" |   version "2.0.0" | ||||||
| @@ -2411,9 +2389,9 @@ needle@^2.2.1: | |||||||
|     sax "^1.2.4" |     sax "^1.2.4" | ||||||
|  |  | ||||||
| neo-async@^2.6.0: | neo-async@^2.6.0: | ||||||
|   version "2.6.1" |   version "2.6.2" | ||||||
|   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" |   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" | ||||||
|   integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== |   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== | ||||||
|  |  | ||||||
| nice-try@^1.0.4: | nice-try@^1.0.4: | ||||||
|   version "1.0.5" |   version "1.0.5" | ||||||
| @@ -2580,14 +2558,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: | |||||||
|   dependencies: |   dependencies: | ||||||
|     wrappy "1" |     wrappy "1" | ||||||
|  |  | ||||||
| optimist@^0.6.1: |  | ||||||
|   version "0.6.1" |  | ||||||
|   resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" |  | ||||||
|   integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= |  | ||||||
|   dependencies: |  | ||||||
|     minimist "~0.0.1" |  | ||||||
|     wordwrap "~0.0.2" |  | ||||||
|  |  | ||||||
| optionator@^0.8.1: | optionator@^0.8.1: | ||||||
|   version "0.8.2" |   version "0.8.2" | ||||||
|   resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" |   resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" | ||||||
| @@ -2688,9 +2658,9 @@ path-key@^2.0.0, path-key@^2.0.1: | |||||||
|   integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= |   integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= | ||||||
|  |  | ||||||
| path-parse@^1.0.6: | path-parse@^1.0.6: | ||||||
|   version "1.0.6" |   version "1.0.7" | ||||||
|   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" |   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" | ||||||
|   integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== |   integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== | ||||||
|  |  | ||||||
| path-type@^3.0.0: | path-type@^3.0.0: | ||||||
|   version "3.0.0" |   version "3.0.0" | ||||||
| @@ -2967,10 +2937,10 @@ rsvp@^4.8.4: | |||||||
|   resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" |   resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" | ||||||
|   integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== |   integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== | ||||||
|  |  | ||||||
| safe-buffer@^5.0.1, safe-buffer@^5.1.2: | safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: | ||||||
|   version "5.2.0" |   version "5.2.1" | ||||||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" |   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" | ||||||
|   integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== |   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== | ||||||
|  |  | ||||||
| safe-buffer@~5.1.0, safe-buffer@~5.1.1: | safe-buffer@~5.1.0, safe-buffer@~5.1.1: | ||||||
|   version "5.1.2" |   version "5.1.2" | ||||||
| @@ -3309,17 +3279,17 @@ symbol-tree@^3.2.2: | |||||||
|   integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== |   integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== | ||||||
|  |  | ||||||
| tar@^4: | tar@^4: | ||||||
|   version "4.4.13" |   version "4.4.19" | ||||||
|   resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" |   resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" | ||||||
|   integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== |   integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     chownr "^1.1.1" |     chownr "^1.1.4" | ||||||
|     fs-minipass "^1.2.5" |     fs-minipass "^1.2.7" | ||||||
|     minipass "^2.8.6" |     minipass "^2.9.0" | ||||||
|     minizlib "^1.2.1" |     minizlib "^1.3.3" | ||||||
|     mkdirp "^0.5.0" |     mkdirp "^0.5.5" | ||||||
|     safe-buffer "^5.1.2" |     safe-buffer "^5.2.1" | ||||||
|     yallist "^3.0.3" |     yallist "^3.1.1" | ||||||
|  |  | ||||||
| test-exclude@^5.2.3: | test-exclude@^5.2.3: | ||||||
|   version "5.2.3" |   version "5.2.3" | ||||||
| @@ -3337,9 +3307,9 @@ throat@^4.0.0: | |||||||
|   integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= |   integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= | ||||||
|  |  | ||||||
| tmpl@1.0.x: | tmpl@1.0.x: | ||||||
|   version "1.0.4" |   version "1.0.5" | ||||||
|   resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" |   resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" | ||||||
|   integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= |   integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== | ||||||
|  |  | ||||||
| to-fast-properties@^2.0.0: | to-fast-properties@^2.0.0: | ||||||
|   version "2.0.0" |   version "2.0.0" | ||||||
| @@ -3459,12 +3429,9 @@ typescript@^3.5.1: | |||||||
|   integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw== |   integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw== | ||||||
|  |  | ||||||
| uglify-js@^3.1.4: | uglify-js@^3.1.4: | ||||||
|   version "3.6.0" |   version "3.13.5" | ||||||
|   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" |   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.5.tgz#5d71d6dbba64cf441f32929b1efce7365bb4f113" | ||||||
|   integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== |   integrity sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw== | ||||||
|   dependencies: |  | ||||||
|     commander "~2.20.0" |  | ||||||
|     source-map "~0.6.1" |  | ||||||
|  |  | ||||||
| underscore@1.8.3: | underscore@1.8.3: | ||||||
|   version "1.8.3" |   version "1.8.3" | ||||||
| @@ -3609,12 +3576,7 @@ wide-align@^1.1.0: | |||||||
|   dependencies: |   dependencies: | ||||||
|     string-width "^1.0.2 || 2" |     string-width "^1.0.2 || 2" | ||||||
|  |  | ||||||
| wordwrap@~0.0.2: | wordwrap@^1.0.0, wordwrap@~1.0.0: | ||||||
|   version "0.0.3" |  | ||||||
|   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" |  | ||||||
|   integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= |  | ||||||
|  |  | ||||||
| wordwrap@~1.0.0: |  | ||||||
|   version "1.0.0" |   version "1.0.0" | ||||||
|   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" |   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" | ||||||
|   integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= |   integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= | ||||||
| @@ -3643,9 +3605,9 @@ write-file-atomic@2.4.1: | |||||||
|     signal-exit "^3.0.2" |     signal-exit "^3.0.2" | ||||||
|  |  | ||||||
| ws@^5.2.0: | ws@^5.2.0: | ||||||
|   version "5.2.2" |   version "5.2.3" | ||||||
|   resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" |   resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" | ||||||
|   integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== |   integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     async-limiter "~1.0.0" |     async-limiter "~1.0.0" | ||||||
|  |  | ||||||
| @@ -3655,14 +3617,14 @@ xml-name-validator@^3.0.0: | |||||||
|   integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== |   integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== | ||||||
|  |  | ||||||
| y18n@^4.0.0: | y18n@^4.0.0: | ||||||
|   version "4.0.0" |   version "4.0.1" | ||||||
|   resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" |   resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" | ||||||
|   integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== |   integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== | ||||||
|  |  | ||||||
| yallist@^3.0.0, yallist@^3.0.3: | yallist@^3.0.0, yallist@^3.1.1: | ||||||
|   version "3.1.0" |   version "3.1.1" | ||||||
|   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.0.tgz#906cc2100972dc2625ae78f566a2577230a1d6f7" |   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" | ||||||
|   integrity sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w== |   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== | ||||||
|  |  | ||||||
| yargs-parser@10.x: | yargs-parser@10.x: | ||||||
|   version "10.1.0" |   version "10.1.0" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user