mirror of
				https://gitea.com/actions/cache.git
				synced 2025-11-04 07:47:08 +00:00 
			
		
		
		
	Compare commits
	
		
			19 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					d29c1df198 | ||
| 
						 | 
					d59a1464f2 | ||
| 
						 | 
					481a91ba10 | ||
| 
						 | 
					4978dc4f31 | ||
| 
						 | 
					66891cb075 | ||
| 
						 | 
					5c77066753 | ||
| 
						 | 
					24fb121989 | ||
| 
						 | 
					55bbcc2eab | ||
| 
						 | 
					c5475843b3 | ||
| 
						 | 
					0065ae9713 | ||
| 
						 | 
					4aa79d91d3 | ||
| 
						 | 
					5474af707f | ||
| 
						 | 
					591646a21e | ||
| 
						 | 
					eed9cfe64d | ||
| 
						 | 
					b773382817 | ||
| 
						 | 
					984ce638f0 | ||
| 
						 | 
					ff937cc950 | ||
| 
						 | 
					d60d2bef10 | ||
| 
						 | 
					e561127c3e | 
							
								
								
									
										33
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,23 +1,29 @@
 | 
			
		||||
name: "Code Scanning - Action"
 | 
			
		||||
name: "Code scanning - action"
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
  pull_request:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '0 0 * * 0'
 | 
			
		||||
    - cron: '0 19 * * 0'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  CodeQL-Build:
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    # CodeQL runs on ubuntu-latest, windows-latest, and macos-latest
 | 
			
		||||
    # CodeQL runs on ubuntu-latest and windows-latest
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Checkout repository
 | 
			
		||||
      uses: actions/checkout@v2
 | 
			
		||||
      with:
 | 
			
		||||
        # We must fetch at least the immediate parents so that if this is
 | 
			
		||||
        # a pull request then we can checkout the head.
 | 
			
		||||
        fetch-depth: 2
 | 
			
		||||
 | 
			
		||||
    # If this run was triggered by a pull request event, then checkout
 | 
			
		||||
    # the head of the pull request instead of the merge commit.
 | 
			
		||||
    - run: git checkout HEAD^2
 | 
			
		||||
      if: ${{ github.event_name == 'pull_request' }}
 | 
			
		||||
      
 | 
			
		||||
    # Initializes the CodeQL tools for scanning.
 | 
			
		||||
    - name: Initialize CodeQL
 | 
			
		||||
@@ -27,9 +33,20 @@ jobs:
 | 
			
		||||
      #   languages: go, javascript, csharp, python, cpp, java
 | 
			
		||||
 | 
			
		||||
    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
 | 
			
		||||
    # If this step fails, then you should remove it and run the build manually (see below).
 | 
			
		||||
    # If this step fails, then you should remove it and run the build manually (see below)
 | 
			
		||||
    - name: Autobuild
 | 
			
		||||
      uses: github/codeql-action/autobuild@v1
 | 
			
		||||
 | 
			
		||||
    # ℹ️ Command-line programs to run using the OS shell.
 | 
			
		||||
    # 📚 https://git.io/JvXDl
 | 
			
		||||
 | 
			
		||||
    # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
 | 
			
		||||
    #    and modify them (or add more) to build your code if your project
 | 
			
		||||
    #    uses a compiled language
 | 
			
		||||
 | 
			
		||||
    #- run: |
 | 
			
		||||
    #   make bootstrap
 | 
			
		||||
    #   make release
 | 
			
		||||
 | 
			
		||||
    - name: Perform CodeQL Analysis
 | 
			
		||||
      uses: github/codeql-action/analyze@v1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							@@ -3,13 +3,13 @@ name: Tests
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
    branches:
 | 
			
		||||
      - master
 | 
			
		||||
      - main
 | 
			
		||||
      - releases/**
 | 
			
		||||
    paths-ignore:
 | 
			
		||||
      - '**.md'
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - master
 | 
			
		||||
      - main
 | 
			
		||||
      - releases/**
 | 
			
		||||
    paths-ignore:
 | 
			
		||||
      - '**.md'
 | 
			
		||||
@@ -34,7 +34,7 @@ jobs:
 | 
			
		||||
      run: |
 | 
			
		||||
        echo "::set-output name=dir::$(npm config get cache)"
 | 
			
		||||
    - name: Restore npm cache
 | 
			
		||||
      uses: actions/cache@v1
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
        path: ${{ steps.npm-cache.outputs.dir }}
 | 
			
		||||
        key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
@@ -52,7 +52,7 @@ jobs:
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
        npm run build
 | 
			
		||||
        if [ "$(git status --porcelain | wc -l)" -gt "0" ]; then
 | 
			
		||||
        if [ "$(git diff --ignore-space-at-eol | wc -l)" -gt "0" ]; then
 | 
			
		||||
          echo "Detected uncommitted changes after build.  See status below:"
 | 
			
		||||
          git diff
 | 
			
		||||
          exit 1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							@@ -2,7 +2,7 @@
 | 
			
		||||
 | 
			
		||||
This action allows caching dependencies and build outputs to improve workflow execution time.
 | 
			
		||||
 | 
			
		||||
<a href="https://github.com/actions/cache/actions?query=workflow%3ATests"><img alt="GitHub Actions status" src="https://github.com/actions/cache/workflows/Tests/badge.svg?branch=master&event=push"></a>
 | 
			
		||||
<a href="https://github.com/actions/cache/actions?query=workflow%3ATests"><img alt="GitHub Actions status" src="https://github.com/actions/cache/workflows/Tests/badge.svg?branch=main&event=push"></a>
 | 
			
		||||
 | 
			
		||||
## Documentation
 | 
			
		||||
 | 
			
		||||
@@ -10,7 +10,7 @@ See ["Caching dependencies to speed up workflows"](https://help.github.com/githu
 | 
			
		||||
 | 
			
		||||
## What's New
 | 
			
		||||
 | 
			
		||||
* Added support for multiple paths, [glob patterns](https://github.com/actions/toolkit/tree/master/packages/glob), and single file caches. 
 | 
			
		||||
* Added support for multiple paths, [glob patterns](https://github.com/actions/toolkit/tree/main/packages/glob), and single file caches. 
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- name: Cache multiple paths
 | 
			
		||||
@@ -25,7 +25,7 @@ See ["Caching dependencies to speed up workflows"](https://help.github.com/githu
 | 
			
		||||
 | 
			
		||||
* Increased performance and improved cache sizes using `zstd` compression for Linux and macOS runners
 | 
			
		||||
* Allowed caching for all events with a ref. See [events that trigger workflow](https://help.github.com/en/actions/reference/events-that-trigger-workflows) for info on which events do not have a `GITHUB_REF`
 | 
			
		||||
* Released the [`@actions/cache`](https://github.com/actions/toolkit/tree/master/packages/cache) npm package to allow other actions to utilize caching
 | 
			
		||||
* Released the [`@actions/cache`](https://github.com/actions/toolkit/tree/main/packages/cache) npm package to allow other actions to utilize caching
 | 
			
		||||
* Added a best-effort cleanup step to delete the archive after extraction to reduce storage space
 | 
			
		||||
 | 
			
		||||
Refer [here](https://github.com/actions/cache/blob/v1/README.md) for previous versions
 | 
			
		||||
@@ -37,7 +37,7 @@ Create a workflow `.yml` file in your repositories `.github/workflows` directory
 | 
			
		||||
 | 
			
		||||
### Inputs
 | 
			
		||||
 | 
			
		||||
* `path` - A list of files, directories, and wildcard patterns to cache and restore. See [`@actions/glob`](https://github.com/actions/toolkit/tree/master/packages/glob) for supported patterns. 
 | 
			
		||||
* `path` - A list of files, directories, and wildcard patterns to cache and restore. See [`@actions/glob`](https://github.com/actions/toolkit/tree/main/packages/glob) for supported patterns. 
 | 
			
		||||
* `key` - An explicit key for restoring and saving the cache
 | 
			
		||||
* `restore-keys` - An ordered list of keys to use for restoring the cache if no cache hit occurred for key
 | 
			
		||||
 | 
			
		||||
@@ -97,7 +97,7 @@ See [Examples](examples.md) for a list of `actions/cache` implementations for us
 | 
			
		||||
- [Node - npm](./examples.md#node---npm)
 | 
			
		||||
- [Node - Lerna](./examples.md#node---lerna)
 | 
			
		||||
- [Node - Yarn](./examples.md#node---yarn)
 | 
			
		||||
- [OCaml/Reason - esy](./examples.md##ocamlreason---esy)
 | 
			
		||||
- [OCaml/Reason - esy](./examples.md#ocamlreason---esy)
 | 
			
		||||
- [PHP - Composer](./examples.md#php---composer)
 | 
			
		||||
- [Python - pip](./examples.md#python---pip)
 | 
			
		||||
- [R - renv](./examples.md#r---renv)
 | 
			
		||||
 
 | 
			
		||||
@@ -2,9 +2,16 @@ import * as core from "@actions/core";
 | 
			
		||||
 | 
			
		||||
import { Events, Outputs, RefKey, State } from "../src/constants";
 | 
			
		||||
import * as actionUtils from "../src/utils/actionUtils";
 | 
			
		||||
import * as testUtils from "../src/utils/testUtils";
 | 
			
		||||
 | 
			
		||||
jest.mock("@actions/core");
 | 
			
		||||
 | 
			
		||||
beforeAll(() => {
 | 
			
		||||
    jest.spyOn(core, "getInput").mockImplementation((name, options) => {
 | 
			
		||||
        return jest.requireActual("@actions/core").getInput(name, options);
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
afterEach(() => {
 | 
			
		||||
    delete process.env[Events.Key];
 | 
			
		||||
    delete process.env[RefKey];
 | 
			
		||||
@@ -157,3 +164,33 @@ test("isValidEvent returns true for event that has a ref", () => {
 | 
			
		||||
 | 
			
		||||
    expect(isValidEvent).toBe(true);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test("getInputAsArray returns empty array if not required and missing", () => {
 | 
			
		||||
    expect(actionUtils.getInputAsArray("foo")).toEqual([]);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test("getInputAsArray throws error if required and missing", () => {
 | 
			
		||||
    expect(() =>
 | 
			
		||||
        actionUtils.getInputAsArray("foo", { required: true })
 | 
			
		||||
    ).toThrowError();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test("getInputAsArray handles single line correctly", () => {
 | 
			
		||||
    testUtils.setInput("foo", "bar");
 | 
			
		||||
    expect(actionUtils.getInputAsArray("foo")).toEqual(["bar"]);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test("getInputAsArray handles multiple lines correctly", () => {
 | 
			
		||||
    testUtils.setInput("foo", "bar\nbaz");
 | 
			
		||||
    expect(actionUtils.getInputAsArray("foo")).toEqual(["bar", "baz"]);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test("getInputAsArray handles different new lines correctly", () => {
 | 
			
		||||
    testUtils.setInput("foo", "bar\r\nbaz");
 | 
			
		||||
    expect(actionUtils.getInputAsArray("foo")).toEqual(["bar", "baz"]);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test("getInputAsArray handles empty lines correctly", () => {
 | 
			
		||||
    testUtils.setInput("foo", "\n\nbar\n\nbaz\n\n");
 | 
			
		||||
    expect(actionUtils.getInputAsArray("foo")).toEqual(["bar", "baz"]);
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,13 @@ beforeAll(() => {
 | 
			
		||||
        const actualUtils = jest.requireActual("../src/utils/actionUtils");
 | 
			
		||||
        return actualUtils.isValidEvent();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    jest.spyOn(actionUtils, "getInputAsArray").mockImplementation(
 | 
			
		||||
        (name, options) => {
 | 
			
		||||
            const actualUtils = jest.requireActual("../src/utils/actionUtils");
 | 
			
		||||
            return actualUtils.getInputAsArray(name, options);
 | 
			
		||||
        }
 | 
			
		||||
    );
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
beforeEach(() => {
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,14 @@ beforeAll(() => {
 | 
			
		||||
        return jest.requireActual("../src/utils/actionUtils").getCacheState();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    jest.spyOn(actionUtils, "getInputAsArray").mockImplementation(
 | 
			
		||||
        (name, options) => {
 | 
			
		||||
            return jest
 | 
			
		||||
                .requireActual("../src/utils/actionUtils")
 | 
			
		||||
                .getInputAsArray(name, options);
 | 
			
		||||
        }
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    jest.spyOn(actionUtils, "isExactKeyMatch").mockImplementation(
 | 
			
		||||
        (key, cacheResult) => {
 | 
			
		||||
            return jest
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										41520
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										41520
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										41515
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										41515
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										34
									
								
								examples.md
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								examples.md
									
									
									
									
									
								
							@@ -14,6 +14,7 @@
 | 
			
		||||
    - [Using multiple systems and `npm config`](#using-multiple-systems-and-npm-config)
 | 
			
		||||
  - [Node - Lerna](#node---lerna)
 | 
			
		||||
  - [Node - Yarn](#node---yarn)
 | 
			
		||||
  - [Node - Yarn 2](#node---yarn-2)
 | 
			
		||||
  - [OCaml/Reason - esy](#ocamlreason---esy)
 | 
			
		||||
  - [PHP - Composer](#php---composer)
 | 
			
		||||
  - [Python - pip](#python---pip)
 | 
			
		||||
@@ -44,7 +45,7 @@ Using [NuGet lock files](https://docs.microsoft.com/nuget/consume-packages/packa
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Depending on the environment, huge packages might be pre-installed in the global cache folder.
 | 
			
		||||
With `actions/cache@v2` you can now exclude unwanted packages with [exclude pattern](https://github.com/actions/toolkit/tree/master/packages/glob#exclude-patterns)
 | 
			
		||||
With `actions/cache@v2` you can now exclude unwanted packages with [exclude pattern](https://github.com/actions/toolkit/tree/main/packages/glob#exclude-patterns)
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
@@ -120,8 +121,8 @@ steps:
 | 
			
		||||
We cache the elements of the Cabal store separately, as the entirety of `~/.cabal` can grow very large for projects with many dependencies.
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  name: Cache ~/.cabal/packages, ~/.cabal/store and dist-newstyle
 | 
			
		||||
- name: Cache ~/.cabal/packages, ~/.cabal/store and dist-newstyle
 | 
			
		||||
  uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: |
 | 
			
		||||
      ~/.cabal/packages
 | 
			
		||||
@@ -135,7 +136,9 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.gradle/caches
 | 
			
		||||
    path: |
 | 
			
		||||
      ~/.gradle/caches
 | 
			
		||||
      ~/.gradle/wrapper
 | 
			
		||||
    key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
 | 
			
		||||
    restore-keys: |
 | 
			
		||||
      ${{ runner.os }}-gradle-
 | 
			
		||||
@@ -144,7 +147,8 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba
 | 
			
		||||
## Java - Maven
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
- name: Cache local Maven repository
 | 
			
		||||
  uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.m2/repository
 | 
			
		||||
    key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
 | 
			
		||||
@@ -156,6 +160,8 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba
 | 
			
		||||
 | 
			
		||||
For npm, cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` on Windows. See https://docs.npmjs.com/cli/cache#cache
 | 
			
		||||
 | 
			
		||||
If using `npm config` to retrieve the cache directory, ensure you run [actions/setup-node](https://github.com/actions/setup-node) first to ensure your `npm` version is correct.
 | 
			
		||||
 | 
			
		||||
>Note: It is not recommended to cache `node_modules`, as it can break across Node versions and won't work with `npm ci`
 | 
			
		||||
 | 
			
		||||
### macOS and Ubuntu
 | 
			
		||||
@@ -228,6 +234,24 @@ The yarn cache directory will depend on your operating system and version of `ya
 | 
			
		||||
      ${{ runner.os }}-yarn-
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Node - Yarn 2
 | 
			
		||||
The yarn 2 cache directory will depend on your config. See https://yarnpkg.com/configuration/yarnrc#cacheFolder for more info.
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- name: Get yarn cache directory path
 | 
			
		||||
  id: yarn-cache-dir-path
 | 
			
		||||
  run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
 | 
			
		||||
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
 | 
			
		||||
  with:
 | 
			
		||||
    path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
 | 
			
		||||
    key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
 | 
			
		||||
    restore-keys: |
 | 
			
		||||
      ${{ runner.os }}-yarn-
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## OCaml/Reason - esy
 | 
			
		||||
Esy allows you to export built dependencies and import pre-built dependencies.
 | 
			
		||||
```yaml
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										312
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										312
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,19 +1,21 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "cache",
 | 
			
		||||
  "version": "1.1.2",
 | 
			
		||||
  "version": "2.1.0",
 | 
			
		||||
  "lockfileVersion": 1,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/cache": {
 | 
			
		||||
      "version": "0.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-0.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-CV2D9zp+d+nL7o6XK/I7vVh350JglPMp/jHi9ppRUkdBHPUeP0UHVUfygZaAs8WmxhhWY1MI0gWah+t0QYu3Fg==",
 | 
			
		||||
      "version": "1.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-1.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-QyMKGZTVB6bRBIMNEoW74LeqYtbY7cSaWNvaT1uqhzjredaW+vNFxv9XF/cyipzwZBVZgizOF2zpdVYnP0UVYg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@actions/core": "^1.2.4",
 | 
			
		||||
        "@actions/exec": "^1.0.1",
 | 
			
		||||
        "@actions/glob": "^0.1.0",
 | 
			
		||||
        "@actions/http-client": "^1.0.8",
 | 
			
		||||
        "@actions/io": "^1.0.1",
 | 
			
		||||
        "@azure/ms-rest-js": "^2.0.7",
 | 
			
		||||
        "@azure/storage-blob": "^12.1.2",
 | 
			
		||||
        "semver": "^6.1.0",
 | 
			
		||||
        "uuid": "^3.3.3"
 | 
			
		||||
      }
 | 
			
		||||
@@ -53,6 +55,183 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg=="
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/abort-controller": {
 | 
			
		||||
      "version": "1.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-wP2Jw6uPp8DEDy0n4KNidvwzDjyVV2xnycEIq7nPzj1rHyb/r+t3OPeNT1INZePP2wy5ZqlwyuyOMTi0ePyY1A==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "tslib": "^1.9.3"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/core-asynciterator-polyfill": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg=="
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/core-auth": {
 | 
			
		||||
      "version": "1.1.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.1.3.tgz",
 | 
			
		||||
      "integrity": "sha512-A4xigW0YZZpkj1zK7dKuzbBpGwnhEcRk6WWuIshdHC32raR3EQ1j6VA9XZqE+RFsUgH6OAmIK5BWIz+mZjnd6Q==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@azure/abort-controller": "^1.0.0",
 | 
			
		||||
        "@azure/core-tracing": "1.0.0-preview.8",
 | 
			
		||||
        "@opentelemetry/api": "^0.6.1",
 | 
			
		||||
        "tslib": "^2.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "tslib": {
 | 
			
		||||
          "version": "2.0.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz",
 | 
			
		||||
          "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g=="
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/core-http": {
 | 
			
		||||
      "version": "1.1.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-1.1.4.tgz",
 | 
			
		||||
      "integrity": "sha512-81cNvyT51MfYBVIscPwC7Sl1n/xWimqho+R2eOQLw6Qqtfxs5dYlFWfLr9HbYX7QEXZdc5xdsyYTjvfJkjA7Hg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@azure/abort-controller": "^1.0.0",
 | 
			
		||||
        "@azure/core-auth": "^1.1.3",
 | 
			
		||||
        "@azure/core-tracing": "1.0.0-preview.8",
 | 
			
		||||
        "@azure/logger": "^1.0.0",
 | 
			
		||||
        "@opentelemetry/api": "^0.6.1",
 | 
			
		||||
        "@types/node-fetch": "^2.5.0",
 | 
			
		||||
        "@types/tunnel": "^0.0.1",
 | 
			
		||||
        "form-data": "^3.0.0",
 | 
			
		||||
        "node-fetch": "^2.6.0",
 | 
			
		||||
        "process": "^0.11.10",
 | 
			
		||||
        "tough-cookie": "^4.0.0",
 | 
			
		||||
        "tslib": "^2.0.0",
 | 
			
		||||
        "tunnel": "^0.0.6",
 | 
			
		||||
        "uuid": "^8.1.0",
 | 
			
		||||
        "xml2js": "^0.4.19"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "form-data": {
 | 
			
		||||
          "version": "3.0.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
 | 
			
		||||
          "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "asynckit": "^0.4.0",
 | 
			
		||||
            "combined-stream": "^1.0.8",
 | 
			
		||||
            "mime-types": "^2.1.12"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "tough-cookie": {
 | 
			
		||||
          "version": "4.0.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
 | 
			
		||||
          "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "psl": "^1.1.33",
 | 
			
		||||
            "punycode": "^2.1.1",
 | 
			
		||||
            "universalify": "^0.1.2"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "tslib": {
 | 
			
		||||
          "version": "2.0.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz",
 | 
			
		||||
          "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g=="
 | 
			
		||||
        },
 | 
			
		||||
        "uuid": {
 | 
			
		||||
          "version": "8.2.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.2.0.tgz",
 | 
			
		||||
          "integrity": "sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q=="
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/core-lro": {
 | 
			
		||||
      "version": "1.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-1.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-Yr0JD7GKryOmbcb5wHCQoQ4KCcH5QJWRNorofid+UvudLaxnbCfvKh/cUfQsGUqRjO9L/Bw4X7FP824DcHdMxw==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@azure/abort-controller": "^1.0.0",
 | 
			
		||||
        "@azure/core-http": "^1.1.1",
 | 
			
		||||
        "events": "^3.0.0",
 | 
			
		||||
        "tslib": "^1.10.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/core-paging": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-hqEJBEGKan4YdOaL9ZG/GRG6PXaFd/Wb3SSjQW4LWotZzgl6xqG00h6wmkrpd2NNkbBkD1erLHBO3lPHApv+iQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@azure/core-asynciterator-polyfill": "^1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/core-tracing": {
 | 
			
		||||
      "version": "1.0.0-preview.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.8.tgz",
 | 
			
		||||
      "integrity": "sha512-ZKUpCd7Dlyfn7bdc+/zC/sf0aRIaNQMDuSj2RhYRFe3p70hVAnYGp3TX4cnG2yoEALp/LTj/XnZGQ8Xzf6Ja/Q==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@opencensus/web-types": "0.0.7",
 | 
			
		||||
        "@opentelemetry/api": "^0.6.1",
 | 
			
		||||
        "tslib": "^1.10.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/logger": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-g2qLDgvmhyIxR3JVS8N67CyIOeFRKQlX/llxYJQr1OSGQqM3HTpVP8MjmjcEKbL/OIt2N9C9UFaNQuKOw1laOA==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "tslib": "^1.9.3"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/ms-rest-js": {
 | 
			
		||||
      "version": "2.0.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-2.0.7.tgz",
 | 
			
		||||
      "integrity": "sha512-rQpNxDhyOIyS4E+4sUCBMvjrtbNwB32wH06cC2SFoQM4TR29bIKaTlIC1tMe0K07w9c5tNk/2uUHs6/ld/Z3+A==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/node-fetch": "^2.3.7",
 | 
			
		||||
        "@types/tunnel": "0.0.1",
 | 
			
		||||
        "abort-controller": "^3.0.0",
 | 
			
		||||
        "form-data": "^2.5.0",
 | 
			
		||||
        "node-fetch": "^2.6.0",
 | 
			
		||||
        "tough-cookie": "^3.0.1",
 | 
			
		||||
        "tslib": "^1.10.0",
 | 
			
		||||
        "tunnel": "0.0.6",
 | 
			
		||||
        "uuid": "^3.3.2",
 | 
			
		||||
        "xml2js": "^0.4.19"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "form-data": {
 | 
			
		||||
          "version": "2.5.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
 | 
			
		||||
          "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "asynckit": "^0.4.0",
 | 
			
		||||
            "combined-stream": "^1.0.6",
 | 
			
		||||
            "mime-types": "^2.1.12"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "tough-cookie": {
 | 
			
		||||
          "version": "3.0.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
 | 
			
		||||
          "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "ip-regex": "^2.1.0",
 | 
			
		||||
            "psl": "^1.1.28",
 | 
			
		||||
            "punycode": "^2.1.1"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@azure/storage-blob": {
 | 
			
		||||
      "version": "12.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-PCHgG4r3xLt5FaFj+uiMqrRpuzD3TD17cvxCeA1JKK2bJEf8b07H3QRLQVf0DM1MmvYY8FgQagkWZTp+jr9yew==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@azure/abort-controller": "^1.0.0",
 | 
			
		||||
        "@azure/core-http": "^1.1.1",
 | 
			
		||||
        "@azure/core-lro": "^1.0.2",
 | 
			
		||||
        "@azure/core-paging": "^1.1.1",
 | 
			
		||||
        "@azure/core-tracing": "1.0.0-preview.8",
 | 
			
		||||
        "@azure/logger": "^1.0.0",
 | 
			
		||||
        "@opentelemetry/api": "^0.6.1",
 | 
			
		||||
        "events": "^3.0.0",
 | 
			
		||||
        "tslib": "^1.10.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@babel/code-frame": {
 | 
			
		||||
      "version": "7.8.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
 | 
			
		||||
@@ -495,6 +674,24 @@
 | 
			
		||||
        "@types/yargs": "^13.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@opencensus/web-types": {
 | 
			
		||||
      "version": "0.0.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@opencensus/web-types/-/web-types-0.0.7.tgz",
 | 
			
		||||
      "integrity": "sha512-xB+w7ZDAu3YBzqH44rCmG9/RlrOmFuDPt/bpf17eJr8eZSrLt7nc7LnWdxM9Mmoj/YKMHpxRg28txu3TcpiL+g=="
 | 
			
		||||
    },
 | 
			
		||||
    "@opentelemetry/api": {
 | 
			
		||||
      "version": "0.6.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-0.6.1.tgz",
 | 
			
		||||
      "integrity": "sha512-wpufGZa7tTxw7eAsjXJtiyIQ42IWQdX9iUQp7ACJcKo1hCtuhLU+K2Nv1U6oRwT1oAlZTE6m4CgWKZBhOiau3Q==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@opentelemetry/context-base": "^0.6.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@opentelemetry/context-base": {
 | 
			
		||||
      "version": "0.6.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.6.1.tgz",
 | 
			
		||||
      "integrity": "sha512-5bHhlTBBq82ti3qPT15TRxkYTFPPQWbnkkQkmHPtqiS1XcTB69cEKd3Jm7Cfi/vkPoyxapmePE9tyA7EzLt8SQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "@types/babel__core": {
 | 
			
		||||
      "version": "7.1.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz",
 | 
			
		||||
@@ -600,8 +797,28 @@
 | 
			
		||||
    "@types/node": {
 | 
			
		||||
      "version": "12.12.40",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.40.tgz",
 | 
			
		||||
      "integrity": "sha512-DGOupyZgr0TnemMORnkgR4G3ow5PV61uVW3w51pcnPIo6NV5hc36l59jxZJ/immrBpV5d7h6tn8/YgSgiA9oTw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "integrity": "sha512-DGOupyZgr0TnemMORnkgR4G3ow5PV61uVW3w51pcnPIo6NV5hc36l59jxZJ/immrBpV5d7h6tn8/YgSgiA9oTw=="
 | 
			
		||||
    },
 | 
			
		||||
    "@types/node-fetch": {
 | 
			
		||||
      "version": "2.5.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz",
 | 
			
		||||
      "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/node": "*",
 | 
			
		||||
        "form-data": "^3.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "form-data": {
 | 
			
		||||
          "version": "3.0.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
 | 
			
		||||
          "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "asynckit": "^0.4.0",
 | 
			
		||||
            "combined-stream": "^1.0.8",
 | 
			
		||||
            "mime-types": "^2.1.12"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@types/stack-utils": {
 | 
			
		||||
      "version": "1.0.1",
 | 
			
		||||
@@ -609,6 +826,14 @@
 | 
			
		||||
      "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@types/tunnel": {
 | 
			
		||||
      "version": "0.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-AOqu6bQu5MSWwYvehMXLukFHnupHrpZ8nvgae5Ggie9UwzDR1CCwoXgSSWNZJuyOlCdfdsWMA5F2LlmvyoTv8A==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/node": "*"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@types/yargs": {
 | 
			
		||||
      "version": "13.0.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz",
 | 
			
		||||
@@ -695,6 +920,14 @@
 | 
			
		||||
      "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "abort-controller": {
 | 
			
		||||
      "version": "3.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "event-target-shim": "^5.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "acorn": {
 | 
			
		||||
      "version": "7.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz",
 | 
			
		||||
@@ -881,8 +1114,7 @@
 | 
			
		||||
    "asynckit": {
 | 
			
		||||
      "version": "0.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
 | 
			
		||||
      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
 | 
			
		||||
    },
 | 
			
		||||
    "atob": {
 | 
			
		||||
      "version": "2.1.2",
 | 
			
		||||
@@ -1333,7 +1565,6 @@
 | 
			
		||||
      "version": "1.0.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
 | 
			
		||||
      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "delayed-stream": "~1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
@@ -1525,8 +1756,7 @@
 | 
			
		||||
    "delayed-stream": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
 | 
			
		||||
    },
 | 
			
		||||
    "detect-newline": {
 | 
			
		||||
      "version": "2.1.0",
 | 
			
		||||
@@ -1917,6 +2147,16 @@
 | 
			
		||||
      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "event-target-shim": {
 | 
			
		||||
      "version": "5.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "events": {
 | 
			
		||||
      "version": "3.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg=="
 | 
			
		||||
    },
 | 
			
		||||
    "exec-sh": {
 | 
			
		||||
      "version": "0.3.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz",
 | 
			
		||||
@@ -2680,6 +2920,11 @@
 | 
			
		||||
        "loose-envify": "^1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "ip-regex": {
 | 
			
		||||
      "version": "2.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
 | 
			
		||||
      "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk="
 | 
			
		||||
    },
 | 
			
		||||
    "is-accessor-descriptor": {
 | 
			
		||||
      "version": "0.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
 | 
			
		||||
@@ -3709,14 +3954,12 @@
 | 
			
		||||
    "mime-db": {
 | 
			
		||||
      "version": "1.44.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
 | 
			
		||||
      "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
 | 
			
		||||
    },
 | 
			
		||||
    "mime-types": {
 | 
			
		||||
      "version": "2.1.27",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
 | 
			
		||||
      "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "mime-db": "1.44.0"
 | 
			
		||||
      }
 | 
			
		||||
@@ -3834,6 +4077,11 @@
 | 
			
		||||
        "propagate": "^2.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node-fetch": {
 | 
			
		||||
      "version": "2.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
 | 
			
		||||
      "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node-int64": {
 | 
			
		||||
      "version": "0.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
 | 
			
		||||
@@ -4233,6 +4481,11 @@
 | 
			
		||||
        "react-is": "^16.8.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "process": {
 | 
			
		||||
      "version": "0.11.10",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
 | 
			
		||||
      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
 | 
			
		||||
    },
 | 
			
		||||
    "progress": {
 | 
			
		||||
      "version": "2.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
 | 
			
		||||
@@ -4258,8 +4511,7 @@
 | 
			
		||||
    "psl": {
 | 
			
		||||
      "version": "1.8.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
 | 
			
		||||
      "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "pump": {
 | 
			
		||||
      "version": "3.0.0",
 | 
			
		||||
@@ -4274,8 +4526,7 @@
 | 
			
		||||
    "punycode": {
 | 
			
		||||
      "version": "2.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
 | 
			
		||||
    },
 | 
			
		||||
    "qs": {
 | 
			
		||||
      "version": "6.5.2",
 | 
			
		||||
@@ -4538,8 +4789,7 @@
 | 
			
		||||
    "sax": {
 | 
			
		||||
      "version": "1.2.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
 | 
			
		||||
      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
 | 
			
		||||
    },
 | 
			
		||||
    "semver": {
 | 
			
		||||
      "version": "6.3.0",
 | 
			
		||||
@@ -5328,8 +5578,7 @@
 | 
			
		||||
    "tslib": {
 | 
			
		||||
      "version": "1.13.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
 | 
			
		||||
      "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
 | 
			
		||||
    },
 | 
			
		||||
    "tsutils": {
 | 
			
		||||
      "version": "3.17.1",
 | 
			
		||||
@@ -5393,6 +5642,11 @@
 | 
			
		||||
        "set-value": "^2.0.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "universalify": {
 | 
			
		||||
      "version": "0.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
 | 
			
		||||
    },
 | 
			
		||||
    "unset-value": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
 | 
			
		||||
@@ -5646,6 +5900,20 @@
 | 
			
		||||
      "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "xml2js": {
 | 
			
		||||
      "version": "0.4.23",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
 | 
			
		||||
      "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "sax": ">=0.6.0",
 | 
			
		||||
        "xmlbuilder": "~11.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "xmlbuilder": {
 | 
			
		||||
      "version": "11.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
 | 
			
		||||
    },
 | 
			
		||||
    "y18n": {
 | 
			
		||||
      "version": "4.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "cache",
 | 
			
		||||
  "version": "1.1.2",
 | 
			
		||||
  "version": "2.1.0",
 | 
			
		||||
  "private": true,
 | 
			
		||||
  "description": "Cache dependencies and build outputs",
 | 
			
		||||
  "main": "dist/restore/index.js",
 | 
			
		||||
@@ -26,7 +26,7 @@
 | 
			
		||||
    "@actions/core": "^1.2.0",
 | 
			
		||||
    "@actions/exec": "^1.0.1",
 | 
			
		||||
    "@actions/io": "^1.0.1",
 | 
			
		||||
    "@actions/cache": "^0.2.1"
 | 
			
		||||
    "@actions/cache": "^1.0.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/jest": "^24.0.13",
 | 
			
		||||
 
 | 
			
		||||
@@ -19,15 +19,10 @@ async function run(): Promise<void> {
 | 
			
		||||
        const primaryKey = core.getInput(Inputs.Key, { required: true });
 | 
			
		||||
        core.saveState(State.CachePrimaryKey, primaryKey);
 | 
			
		||||
 | 
			
		||||
        const restoreKeys = core
 | 
			
		||||
            .getInput(Inputs.RestoreKeys)
 | 
			
		||||
            .split("\n")
 | 
			
		||||
            .filter(x => x !== "");
 | 
			
		||||
 | 
			
		||||
        const cachePaths = core
 | 
			
		||||
            .getInput(Inputs.Path, { required: true })
 | 
			
		||||
            .split("\n")
 | 
			
		||||
            .filter(x => x !== "");
 | 
			
		||||
        const restoreKeys = utils.getInputAsArray(Inputs.RestoreKeys);
 | 
			
		||||
        const cachePaths = utils.getInputAsArray(Inputs.Path, {
 | 
			
		||||
            required: true
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            const cacheKey = await cache.restoreCache(
 | 
			
		||||
 
 | 
			
		||||
@@ -31,10 +31,9 @@ async function run(): Promise<void> {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const cachePaths = core
 | 
			
		||||
            .getInput(Inputs.Path, { required: true })
 | 
			
		||||
            .split("\n")
 | 
			
		||||
            .filter(x => x !== "");
 | 
			
		||||
        const cachePaths = utils.getInputAsArray(Inputs.Path, {
 | 
			
		||||
            required: true
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            await cache.saveCache(cachePaths, primaryKey);
 | 
			
		||||
 
 | 
			
		||||
@@ -45,3 +45,14 @@ export function logWarning(message: string): void {
 | 
			
		||||
export function isValidEvent(): boolean {
 | 
			
		||||
    return RefKey in process.env && Boolean(process.env[RefKey]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function getInputAsArray(
 | 
			
		||||
    name: string,
 | 
			
		||||
    options?: core.InputOptions
 | 
			
		||||
): string[] {
 | 
			
		||||
    return core
 | 
			
		||||
        .getInput(name, options)
 | 
			
		||||
        .split("\n")
 | 
			
		||||
        .map(s => s.trim())
 | 
			
		||||
        .filter(x => x !== "");
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user