├── .eleventy.js
├── .gitignore
├── .npmignore
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── demo
├── .eleventy.js
├── index.md
└── package.json
├── package-lock.json
└── package.json
/.eleventy.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs-extra');
2 | const path = require('path');
3 | const {
4 | JSDOM
5 | } = require('jsdom');
6 | const fetch = require('node-fetch');
7 | const sh = require('shorthash');
8 | const fileType = require('file-type');
9 |
10 | let config = {
11 | distPath: '_site',
12 | verbose: false,
13 | attribute: 'src'
14 | };
15 |
16 | const downloadImage = async path => {
17 | if (config.verbose) {
18 | console.log('eleventy-plugin-local-images: Attempting to copy ' + path);
19 | }
20 |
21 | try {
22 | const imgBuffer = await fetch(path)
23 | .then(res => {
24 | if (res.status == 200) {
25 | return res;
26 | } else {
27 | throw new Error(`File "${path}" not found`);
28 | }
29 | }).then(res => res.buffer());
30 | return imgBuffer
31 | } catch (error) {
32 | console.log(error);
33 | }
34 | }
35 |
36 | const getFileType = (filename, buffer) => {
37 | // infer the file ext from the buffer
38 | const type = fileType(buffer);
39 |
40 | if (type.ext) {
41 | // return the filename with extension
42 | return `${filename}.${type.ext}`;
43 | } else {
44 | throw new Error(`Couldn't infer file extension for "${path}"`);
45 | }
46 | };
47 |
48 | const urlJoin = (a, b) => `${a.replace(/\/$/, '')}/${b.replace(/^\//, '')}`;
49 |
50 | const processImageSrcset = async img => {
51 |
52 | let {
53 | distPath,
54 | assetPath,
55 | attribute
56 | } = config;
57 |
58 | let srcset = img.getAttribute("srcset");
59 |
60 | let srcsetDef = "srcset";
61 |
62 | if (!srcset) {
63 | srcset = img.getAttribute("data-srcset");
64 | srcsetDef = "data-srcset";
65 | }
66 |
67 | if (!srcset) {
68 | return;
69 | }
70 |
71 | let newSrcset = [];
72 |
73 | let parts = srcset.split(",");
74 |
75 | parts.forEach(async (part) => {
76 | let url = part.trim().split(" ");
77 | let imgPath = url[0];
78 |
79 | // get the filename from the path
80 | const pathComponents = imgPath.split('/');
81 |
82 | // break off cache busting string if there is one
83 | let filename = pathComponents[pathComponents.length - 1].split("?");
84 | filename = filename[0];
85 |
86 | // generate a unique short hash based on the original file path
87 | // this will prevent filename clashes
88 | const hash = sh.unique(imgPath);
89 |
90 | // image is external so download it.
91 |
92 | let imgBuffer = await downloadImage(imgPath);
93 | if (imgBuffer) {
94 |
95 | // check if the remote image has a file extension and then hash the filename
96 | const hashedFilename = !path.extname(filename) ? `${hash}-${getFileType(filename, imgBuffer)}` : `${hash}-${filename}`;
97 |
98 | // create the file path from config
99 | let outputFilePath = path.join(distPath, assetPath, hashedFilename);
100 |
101 | // save the file out, and log it to the console
102 | await fs.outputFile(outputFilePath, imgBuffer);
103 | if (config.verbose) {
104 | console.log(`eleventy-plugin-local-images: Saving ${filename} to ${outputFilePath}`);
105 | }
106 |
107 | newSrcset.push(`${assetPath}/${hashedFilename} ${url[1]}`)
108 | }
109 | });
110 | img.setAttribute(srcsetDef, newSrcset.join(", "));
111 | }
112 |
113 | const processImage = async img => {
114 | let {
115 | distPath,
116 | assetPath,
117 | attribute
118 | } = config;
119 |
120 | const external = /https?:\/\/((?:[\w\d-]+\.)+[\w\d]{2,})/i;
121 | const attr = attribute.split(",").map(attr => attr.trim()).find(attr => img.getAttribute(attr));
122 | const imgPath = img.getAttribute(attr);
123 |
124 | if (external.test(imgPath)) {
125 | try {
126 | // get the filename from the path
127 | const pathComponents = imgPath.split('/');
128 |
129 | // break off cache busting string if there is one
130 | let filename = pathComponents[pathComponents.length - 1].split("?");
131 | filename = filename[0];
132 |
133 | // generate a unique short hash based on the original file path
134 | // this will prevent filename clashes
135 | const hash = sh.unique(imgPath);
136 |
137 | // image is external so download it.
138 |
139 | let imgBuffer = await downloadImage(imgPath);
140 | if (imgBuffer) {
141 |
142 | // check if the remote image has a file extension and then hash the filename
143 | const hashedFilename = !path.extname(filename) ? `${hash}-${getFileType(filename, imgBuffer)}` : `${hash}-${filename}`;
144 |
145 | // create the file path from config
146 | let outputFilePath = path.join(distPath, assetPath, hashedFilename);
147 |
148 | // save the file out, and log it to the console
149 | await fs.outputFile(outputFilePath, imgBuffer);
150 | if (config.verbose) {
151 | console.log(`eleventy-plugin-local-images: Saving ${filename} to ${outputFilePath}`);
152 | }
153 |
154 | // Update the image with the new file path
155 | img.setAttribute(attr, urlJoin(assetPath, hashedFilename));
156 |
157 | await processImageSrcset(img);
158 | }
159 | } catch (error) {
160 | console.log(error);
161 | }
162 | }
163 |
164 | return img;
165 | };
166 |
167 | const grabRemoteImages = async (rawContent, outputPath) => {
168 | let {
169 | selector = 'img'
170 | } = config;
171 | let content = rawContent;
172 |
173 | if (outputPath && outputPath.endsWith('.html')) {
174 | const dom = new JSDOM(content);
175 | const images = [...dom.window.document.querySelectorAll(selector)];
176 |
177 | if (images.length > 0) {
178 | await Promise.all(images.map(i => processImage(i)));
179 | content = dom.serialize();
180 | }
181 | }
182 |
183 | return content;
184 | };
185 |
186 | module.exports = {
187 | initArguments: {},
188 | configFunction: async (eleventyConfig, pluginOptions = {}) => {
189 | config = Object.assign({}, config, pluginOptions);
190 |
191 | // check the required config is present
192 | if (!config.assetPath || !config.distPath) {
193 | throw new Error("eleventy-plugin-local-images requires that assetPath and distPath are set");
194 | }
195 |
196 | eleventyConfig.addTransform('localimages', grabRemoteImages);
197 | },
198 | };
199 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | package-lock.json
3 |
4 | demo/.env
5 | demo/node_modules
6 | demo/_site
7 | demo/package-lock.json
8 | demo/.cache
9 |
10 | .DS_Store
11 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | demo
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies within all project spaces, and it also applies when
49 | an individual is representing the project or its community in public spaces.
50 | Examples of representing a project or community include using an official
51 | project e-mail address, posting via an official social media account, or acting
52 | as an appointed representative at an online or offline event. Representation of
53 | a project may be further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at hello@robbowen.digital. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
78 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Robb Owen
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # eleventy-plugin-local-images
2 |
3 | ## What is this plugin for?
4 | If you are pulling your Eleventy content from a cloud-based CMS or third-party API, then chances are high that any images referenced in the content will also be hosted in cloud storage. However, [Harry Roberts](https://twitter.com/@csswizardry) has suggested that it is usually more performant to self-host your static assets rather than host them on a CDN ([source](https://csswizardry.com/2019/05/self-host-your-static-assets/)).
5 |
6 | This plugin is a post-processor that looks for image paths within your generated site, pulls down a uniquely-hashed local copy of each remote image and updates the filepaths in markup - That way you can be confident that your site's images will still be working, even if your CMS or cloud storage goes down.
7 |
8 |
9 | ## Install the plugin
10 |
11 | From your project directory run:
12 | ```
13 | npm install eleventy-plugin-local-images --save-dev
14 | ```
15 | Once the package has installed, open up your `.eleventy.js` file.
16 |
17 | __Step 1:__ Require the plugin
18 |
19 | ```js
20 | const localImages = require('eleventy-plugin-local-images');
21 | ```
22 |
23 | __Step 2:__ Configure and add the plugin:
24 |
25 | ```js
26 | module.exports = function(eleventyConfig) {
27 | eleventyConfig.addPlugin(localImages, {
28 | distPath: '_site',
29 | assetPath: '/assets/img',
30 | selector: 'img',
31 | verbose: false
32 | });
33 | };
34 | ```
35 |
36 | ## Configuration options
37 |
38 | | Key | Type | Description |
39 | |--|--|--|
40 | | `distPath` | String | The output folder for your eleventy site, e.g. `'_site'`
__Required__ |
41 | | `assetPath` | String | The root-relative folder where your image assets are stored, e.g. `'/assets/img'`
__Required__ |
42 | | `selector` | String | The css selector for the images you wish to replace. This defaults to all images `'img'`, but could be used to fence certain images only, e.g. `'.post-content img'`
Default: `'img'` |
43 | | `attribute` | String | The attribute(s) containing the image path. This defaults to `'src'`, but could be used to match other attributes, e.g. `'srcset'` if targeting a ``, or `'data-src'` if using a lazy-loading plugin or even a comma separated list of attributes `'src, content'`
Default: `'src'` |
44 | | `verbose` | Boolean | Toggles console logging when images are saved locally
Default: `false` |
45 |
46 | ## Known issues
47 |
48 | Currently, as all of the image checks are carried out asynchronously, if multiple `
` tags exist with the same `src` attribute, the plugin will attempt to download the file for each instance of the path.
49 |
50 | This isn't as efficient as it should be, however the plugin will always save the file with the same hashed filename, so it will at least not result in duplicated files on your local storage.
51 |
52 | ## Contributing
53 |
54 | I'm really happy to consider any contributions to this plugin. Before you make any changes, please read the [contribution guide](https://github.com/robb0wen/eleventy-plugin-local-images/blob/master/CONTRIBUTING.md).
55 |
--------------------------------------------------------------------------------
/demo/.eleventy.js:
--------------------------------------------------------------------------------
1 | const localImages = require("../"); // For local development
2 |
3 | // const localImages = require("eleventy-plugin-local-images");
4 |
5 | module.exports = (eleventyConfig) => {
6 | eleventyConfig.addPlugin(localImages, {
7 | distPath: "_site",
8 | assetPath: "/assets/img",
9 | selector: "img, meta[property='og:image']",
10 | attribute: "src, content"
11 | });
12 | };
13 |
--------------------------------------------------------------------------------
/demo/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Hello world
3 | ---
4 |
5 |
6 |
7 | 
8 |
9 |
10 |
11 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "dev": "eleventy --serve",
4 | "build": "eleventy"
5 | },
6 | "dependencies": {
7 | "@11ty/eleventy": "^0.12.1",
8 | "eleventy-plugin-local-images": "^0.4.1"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eleventy-plugin-local-images",
3 | "version": "0.4.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "version": "0.4.0",
9 | "license": "MIT",
10 | "dependencies": {
11 | "file-type": "^12.0.1",
12 | "fs-extra": "^8.1.0",
13 | "jsdom": "^15.1.1",
14 | "node-fetch": "^3.1.1",
15 | "shorthash": "0.0.2"
16 | }
17 | },
18 | "node_modules/abab": {
19 | "version": "2.0.0",
20 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
21 | "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w=="
22 | },
23 | "node_modules/acorn": {
24 | "version": "6.4.1",
25 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
26 | "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
27 | "bin": {
28 | "acorn": "bin/acorn"
29 | },
30 | "engines": {
31 | "node": ">=0.4.0"
32 | }
33 | },
34 | "node_modules/acorn-globals": {
35 | "version": "4.3.2",
36 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz",
37 | "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==",
38 | "dependencies": {
39 | "acorn": "^6.0.1",
40 | "acorn-walk": "^6.0.1"
41 | }
42 | },
43 | "node_modules/acorn-walk": {
44 | "version": "6.2.0",
45 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
46 | "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==",
47 | "engines": {
48 | "node": ">=0.4.0"
49 | }
50 | },
51 | "node_modules/ajv": {
52 | "version": "6.12.6",
53 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
54 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
55 | "dependencies": {
56 | "fast-deep-equal": "^3.1.1",
57 | "fast-json-stable-stringify": "^2.0.0",
58 | "json-schema-traverse": "^0.4.1",
59 | "uri-js": "^4.2.2"
60 | },
61 | "funding": {
62 | "type": "github",
63 | "url": "https://github.com/sponsors/epoberezkin"
64 | }
65 | },
66 | "node_modules/array-equal": {
67 | "version": "1.0.0",
68 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
69 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
70 | },
71 | "node_modules/asn1": {
72 | "version": "0.2.4",
73 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
74 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
75 | "dependencies": {
76 | "safer-buffer": "~2.1.0"
77 | }
78 | },
79 | "node_modules/assert-plus": {
80 | "version": "1.0.0",
81 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
82 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
83 | "engines": {
84 | "node": ">=0.8"
85 | }
86 | },
87 | "node_modules/asynckit": {
88 | "version": "0.4.0",
89 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
90 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
91 | },
92 | "node_modules/aws-sign2": {
93 | "version": "0.7.0",
94 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
95 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
96 | "engines": {
97 | "node": "*"
98 | }
99 | },
100 | "node_modules/aws4": {
101 | "version": "1.8.0",
102 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
103 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
104 | },
105 | "node_modules/bcrypt-pbkdf": {
106 | "version": "1.0.2",
107 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
108 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
109 | "dependencies": {
110 | "tweetnacl": "^0.14.3"
111 | }
112 | },
113 | "node_modules/browser-process-hrtime": {
114 | "version": "0.1.3",
115 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
116 | "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="
117 | },
118 | "node_modules/caseless": {
119 | "version": "0.12.0",
120 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
121 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
122 | },
123 | "node_modules/combined-stream": {
124 | "version": "1.0.8",
125 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
126 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
127 | "dependencies": {
128 | "delayed-stream": "~1.0.0"
129 | },
130 | "engines": {
131 | "node": ">= 0.8"
132 | }
133 | },
134 | "node_modules/core-util-is": {
135 | "version": "1.0.2",
136 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
137 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
138 | },
139 | "node_modules/cssom": {
140 | "version": "0.3.8",
141 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
142 | "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
143 | },
144 | "node_modules/cssstyle": {
145 | "version": "1.3.0",
146 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.3.0.tgz",
147 | "integrity": "sha512-wXsoRfsRfsLVNaVzoKdqvEmK/5PFaEXNspVT22Ots6K/cnJdpoDKuQFw+qlMiXnmaif1OgeC466X1zISgAOcGg==",
148 | "dependencies": {
149 | "cssom": "~0.3.6"
150 | },
151 | "engines": {
152 | "node": ">=8"
153 | }
154 | },
155 | "node_modules/dashdash": {
156 | "version": "1.14.1",
157 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
158 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
159 | "dependencies": {
160 | "assert-plus": "^1.0.0"
161 | },
162 | "engines": {
163 | "node": ">=0.10"
164 | }
165 | },
166 | "node_modules/data-uri-to-buffer": {
167 | "version": "4.0.0",
168 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
169 | "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
170 | "engines": {
171 | "node": ">= 12"
172 | }
173 | },
174 | "node_modules/data-urls": {
175 | "version": "1.1.0",
176 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
177 | "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
178 | "dependencies": {
179 | "abab": "^2.0.0",
180 | "whatwg-mimetype": "^2.2.0",
181 | "whatwg-url": "^7.0.0"
182 | }
183 | },
184 | "node_modules/deep-is": {
185 | "version": "0.1.3",
186 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
187 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
188 | },
189 | "node_modules/delayed-stream": {
190 | "version": "1.0.0",
191 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
192 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
193 | "engines": {
194 | "node": ">=0.4.0"
195 | }
196 | },
197 | "node_modules/domexception": {
198 | "version": "1.0.1",
199 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
200 | "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
201 | "dependencies": {
202 | "webidl-conversions": "^4.0.2"
203 | }
204 | },
205 | "node_modules/ecc-jsbn": {
206 | "version": "0.1.2",
207 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
208 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
209 | "dependencies": {
210 | "jsbn": "~0.1.0",
211 | "safer-buffer": "^2.1.0"
212 | }
213 | },
214 | "node_modules/escodegen": {
215 | "version": "1.11.1",
216 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz",
217 | "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==",
218 | "dependencies": {
219 | "esprima": "^3.1.3",
220 | "estraverse": "^4.2.0",
221 | "esutils": "^2.0.2",
222 | "optionator": "^0.8.1"
223 | },
224 | "bin": {
225 | "escodegen": "bin/escodegen.js",
226 | "esgenerate": "bin/esgenerate.js"
227 | },
228 | "engines": {
229 | "node": ">=4.0"
230 | },
231 | "optionalDependencies": {
232 | "source-map": "~0.6.1"
233 | }
234 | },
235 | "node_modules/esprima": {
236 | "version": "3.1.3",
237 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
238 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
239 | "bin": {
240 | "esparse": "bin/esparse.js",
241 | "esvalidate": "bin/esvalidate.js"
242 | },
243 | "engines": {
244 | "node": ">=4"
245 | }
246 | },
247 | "node_modules/estraverse": {
248 | "version": "4.2.0",
249 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
250 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
251 | "engines": {
252 | "node": ">=0.10.0"
253 | }
254 | },
255 | "node_modules/esutils": {
256 | "version": "2.0.2",
257 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
258 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
259 | "engines": {
260 | "node": ">=0.10.0"
261 | }
262 | },
263 | "node_modules/extend": {
264 | "version": "3.0.2",
265 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
266 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
267 | },
268 | "node_modules/extsprintf": {
269 | "version": "1.3.0",
270 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
271 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
272 | "engines": [
273 | "node >=0.6.0"
274 | ]
275 | },
276 | "node_modules/fast-deep-equal": {
277 | "version": "3.1.3",
278 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
279 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
280 | },
281 | "node_modules/fast-json-stable-stringify": {
282 | "version": "2.0.0",
283 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
284 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
285 | },
286 | "node_modules/fast-levenshtein": {
287 | "version": "2.0.6",
288 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
289 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
290 | },
291 | "node_modules/fetch-blob": {
292 | "version": "3.1.4",
293 | "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz",
294 | "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==",
295 | "funding": [
296 | {
297 | "type": "github",
298 | "url": "https://github.com/sponsors/jimmywarting"
299 | },
300 | {
301 | "type": "paypal",
302 | "url": "https://paypal.me/jimmywarting"
303 | }
304 | ],
305 | "dependencies": {
306 | "node-domexception": "^1.0.0",
307 | "web-streams-polyfill": "^3.0.3"
308 | },
309 | "engines": {
310 | "node": "^12.20 || >= 14.13"
311 | }
312 | },
313 | "node_modules/file-type": {
314 | "version": "12.0.1",
315 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.0.1.tgz",
316 | "integrity": "sha512-YIs1E51cmqcmgF38ODjy0+M/l5DyfIIy3vngTOujQr/lXqkaSskfBniaZoZ1HVIpa5FTf5e7hCXS4TzxfNGMRQ==",
317 | "engines": {
318 | "node": ">=8"
319 | }
320 | },
321 | "node_modules/forever-agent": {
322 | "version": "0.6.1",
323 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
324 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
325 | "engines": {
326 | "node": "*"
327 | }
328 | },
329 | "node_modules/form-data": {
330 | "version": "2.3.3",
331 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
332 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
333 | "dependencies": {
334 | "asynckit": "^0.4.0",
335 | "combined-stream": "^1.0.6",
336 | "mime-types": "^2.1.12"
337 | },
338 | "engines": {
339 | "node": ">= 0.12"
340 | }
341 | },
342 | "node_modules/formdata-polyfill": {
343 | "version": "4.0.10",
344 | "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
345 | "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
346 | "dependencies": {
347 | "fetch-blob": "^3.1.2"
348 | },
349 | "engines": {
350 | "node": ">=12.20.0"
351 | }
352 | },
353 | "node_modules/fs-extra": {
354 | "version": "8.1.0",
355 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
356 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
357 | "dependencies": {
358 | "graceful-fs": "^4.2.0",
359 | "jsonfile": "^4.0.0",
360 | "universalify": "^0.1.0"
361 | },
362 | "engines": {
363 | "node": ">=6 <7 || >=8"
364 | }
365 | },
366 | "node_modules/getpass": {
367 | "version": "0.1.7",
368 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
369 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
370 | "dependencies": {
371 | "assert-plus": "^1.0.0"
372 | }
373 | },
374 | "node_modules/graceful-fs": {
375 | "version": "4.2.0",
376 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
377 | "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg=="
378 | },
379 | "node_modules/har-schema": {
380 | "version": "2.0.0",
381 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
382 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
383 | "engines": {
384 | "node": ">=4"
385 | }
386 | },
387 | "node_modules/har-validator": {
388 | "version": "5.1.3",
389 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
390 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
391 | "dependencies": {
392 | "ajv": "^6.5.5",
393 | "har-schema": "^2.0.0"
394 | },
395 | "engines": {
396 | "node": ">=6"
397 | }
398 | },
399 | "node_modules/html-encoding-sniffer": {
400 | "version": "1.0.2",
401 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
402 | "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
403 | "dependencies": {
404 | "whatwg-encoding": "^1.0.1"
405 | }
406 | },
407 | "node_modules/http-signature": {
408 | "version": "1.2.0",
409 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
410 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
411 | "dependencies": {
412 | "assert-plus": "^1.0.0",
413 | "jsprim": "^1.2.2",
414 | "sshpk": "^1.7.0"
415 | },
416 | "engines": {
417 | "node": ">=0.8",
418 | "npm": ">=1.3.7"
419 | }
420 | },
421 | "node_modules/iconv-lite": {
422 | "version": "0.4.24",
423 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
424 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
425 | "dependencies": {
426 | "safer-buffer": ">= 2.1.2 < 3"
427 | },
428 | "engines": {
429 | "node": ">=0.10.0"
430 | }
431 | },
432 | "node_modules/is-typedarray": {
433 | "version": "1.0.0",
434 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
435 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
436 | },
437 | "node_modules/isstream": {
438 | "version": "0.1.2",
439 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
440 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
441 | },
442 | "node_modules/jsbn": {
443 | "version": "0.1.1",
444 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
445 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
446 | },
447 | "node_modules/jsdom": {
448 | "version": "15.1.1",
449 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.1.1.tgz",
450 | "integrity": "sha512-cQZRBB33arrDAeCrAEWn1U3SvrvC8XysBua9Oqg1yWrsY/gYcusloJC3RZJXuY5eehSCmws8f2YeliCqGSkrtQ==",
451 | "dependencies": {
452 | "abab": "^2.0.0",
453 | "acorn": "^6.1.1",
454 | "acorn-globals": "^4.3.2",
455 | "array-equal": "^1.0.0",
456 | "cssom": "^0.3.6",
457 | "cssstyle": "^1.2.2",
458 | "data-urls": "^1.1.0",
459 | "domexception": "^1.0.1",
460 | "escodegen": "^1.11.1",
461 | "html-encoding-sniffer": "^1.0.2",
462 | "nwsapi": "^2.1.4",
463 | "parse5": "5.1.0",
464 | "pn": "^1.1.0",
465 | "request": "^2.88.0",
466 | "request-promise-native": "^1.0.7",
467 | "saxes": "^3.1.9",
468 | "symbol-tree": "^3.2.2",
469 | "tough-cookie": "^3.0.1",
470 | "w3c-hr-time": "^1.0.1",
471 | "w3c-xmlserializer": "^1.1.2",
472 | "webidl-conversions": "^4.0.2",
473 | "whatwg-encoding": "^1.0.5",
474 | "whatwg-mimetype": "^2.3.0",
475 | "whatwg-url": "^7.0.0",
476 | "ws": "^7.0.0",
477 | "xml-name-validator": "^3.0.0"
478 | },
479 | "engines": {
480 | "node": ">=8"
481 | }
482 | },
483 | "node_modules/json-schema": {
484 | "version": "0.2.3",
485 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
486 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
487 | },
488 | "node_modules/json-schema-traverse": {
489 | "version": "0.4.1",
490 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
491 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
492 | },
493 | "node_modules/json-stringify-safe": {
494 | "version": "5.0.1",
495 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
496 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
497 | },
498 | "node_modules/jsonfile": {
499 | "version": "4.0.0",
500 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
501 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
502 | "dependencies": {
503 | "graceful-fs": "^4.1.6"
504 | }
505 | },
506 | "node_modules/jsprim": {
507 | "version": "1.4.1",
508 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
509 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
510 | "engines": [
511 | "node >=0.6.0"
512 | ],
513 | "dependencies": {
514 | "assert-plus": "1.0.0",
515 | "extsprintf": "1.3.0",
516 | "json-schema": "0.2.3",
517 | "verror": "1.10.0"
518 | }
519 | },
520 | "node_modules/levn": {
521 | "version": "0.3.0",
522 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
523 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
524 | "dependencies": {
525 | "prelude-ls": "~1.1.2",
526 | "type-check": "~0.3.2"
527 | },
528 | "engines": {
529 | "node": ">= 0.8.0"
530 | }
531 | },
532 | "node_modules/lodash": {
533 | "version": "4.17.21",
534 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
535 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
536 | },
537 | "node_modules/lodash.sortby": {
538 | "version": "4.7.0",
539 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
540 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
541 | },
542 | "node_modules/mime-db": {
543 | "version": "1.40.0",
544 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
545 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
546 | "engines": {
547 | "node": ">= 0.6"
548 | }
549 | },
550 | "node_modules/mime-types": {
551 | "version": "2.1.24",
552 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
553 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
554 | "dependencies": {
555 | "mime-db": "1.40.0"
556 | },
557 | "engines": {
558 | "node": ">= 0.6"
559 | }
560 | },
561 | "node_modules/node-domexception": {
562 | "version": "1.0.0",
563 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
564 | "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
565 | "funding": [
566 | {
567 | "type": "github",
568 | "url": "https://github.com/sponsors/jimmywarting"
569 | },
570 | {
571 | "type": "github",
572 | "url": "https://paypal.me/jimmywarting"
573 | }
574 | ],
575 | "engines": {
576 | "node": ">=10.5.0"
577 | }
578 | },
579 | "node_modules/node-fetch": {
580 | "version": "3.1.1",
581 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz",
582 | "integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==",
583 | "dependencies": {
584 | "data-uri-to-buffer": "^4.0.0",
585 | "fetch-blob": "^3.1.3",
586 | "formdata-polyfill": "^4.0.10"
587 | },
588 | "engines": {
589 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
590 | },
591 | "funding": {
592 | "type": "opencollective",
593 | "url": "https://opencollective.com/node-fetch"
594 | }
595 | },
596 | "node_modules/nwsapi": {
597 | "version": "2.1.4",
598 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz",
599 | "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw=="
600 | },
601 | "node_modules/oauth-sign": {
602 | "version": "0.9.0",
603 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
604 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
605 | "engines": {
606 | "node": "*"
607 | }
608 | },
609 | "node_modules/optionator": {
610 | "version": "0.8.2",
611 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
612 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
613 | "dependencies": {
614 | "deep-is": "~0.1.3",
615 | "fast-levenshtein": "~2.0.4",
616 | "levn": "~0.3.0",
617 | "prelude-ls": "~1.1.2",
618 | "type-check": "~0.3.2",
619 | "wordwrap": "~1.0.0"
620 | },
621 | "engines": {
622 | "node": ">= 0.8.0"
623 | }
624 | },
625 | "node_modules/parse5": {
626 | "version": "5.1.0",
627 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
628 | "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ=="
629 | },
630 | "node_modules/performance-now": {
631 | "version": "2.1.0",
632 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
633 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
634 | },
635 | "node_modules/pn": {
636 | "version": "1.1.0",
637 | "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
638 | "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="
639 | },
640 | "node_modules/prelude-ls": {
641 | "version": "1.1.2",
642 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
643 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
644 | "engines": {
645 | "node": ">= 0.8.0"
646 | }
647 | },
648 | "node_modules/psl": {
649 | "version": "1.2.0",
650 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
651 | "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA=="
652 | },
653 | "node_modules/punycode": {
654 | "version": "2.1.1",
655 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
656 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
657 | "engines": {
658 | "node": ">=6"
659 | }
660 | },
661 | "node_modules/qs": {
662 | "version": "6.5.2",
663 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
664 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
665 | "engines": {
666 | "node": ">=0.6"
667 | }
668 | },
669 | "node_modules/request": {
670 | "version": "2.88.0",
671 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
672 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
673 | "dependencies": {
674 | "aws-sign2": "~0.7.0",
675 | "aws4": "^1.8.0",
676 | "caseless": "~0.12.0",
677 | "combined-stream": "~1.0.6",
678 | "extend": "~3.0.2",
679 | "forever-agent": "~0.6.1",
680 | "form-data": "~2.3.2",
681 | "har-validator": "~5.1.0",
682 | "http-signature": "~1.2.0",
683 | "is-typedarray": "~1.0.0",
684 | "isstream": "~0.1.2",
685 | "json-stringify-safe": "~5.0.1",
686 | "mime-types": "~2.1.19",
687 | "oauth-sign": "~0.9.0",
688 | "performance-now": "^2.1.0",
689 | "qs": "~6.5.2",
690 | "safe-buffer": "^5.1.2",
691 | "tough-cookie": "~2.4.3",
692 | "tunnel-agent": "^0.6.0",
693 | "uuid": "^3.3.2"
694 | },
695 | "engines": {
696 | "node": ">= 4"
697 | }
698 | },
699 | "node_modules/request-promise-core": {
700 | "version": "1.1.2",
701 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
702 | "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
703 | "dependencies": {
704 | "lodash": "^4.17.11"
705 | },
706 | "engines": {
707 | "node": ">=0.10.0"
708 | }
709 | },
710 | "node_modules/request-promise-native": {
711 | "version": "1.0.7",
712 | "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz",
713 | "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==",
714 | "dependencies": {
715 | "request-promise-core": "1.1.2",
716 | "stealthy-require": "^1.1.1",
717 | "tough-cookie": "^2.3.3"
718 | },
719 | "engines": {
720 | "node": ">=0.12.0"
721 | }
722 | },
723 | "node_modules/request-promise-native/node_modules/tough-cookie": {
724 | "version": "2.5.0",
725 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
726 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
727 | "dependencies": {
728 | "psl": "^1.1.28",
729 | "punycode": "^2.1.1"
730 | },
731 | "engines": {
732 | "node": ">=0.8"
733 | }
734 | },
735 | "node_modules/request/node_modules/punycode": {
736 | "version": "1.4.1",
737 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
738 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
739 | },
740 | "node_modules/request/node_modules/tough-cookie": {
741 | "version": "2.4.3",
742 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
743 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
744 | "dependencies": {
745 | "psl": "^1.1.24",
746 | "punycode": "^1.4.1"
747 | },
748 | "engines": {
749 | "node": ">=0.8"
750 | }
751 | },
752 | "node_modules/safe-buffer": {
753 | "version": "5.2.0",
754 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
755 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
756 | },
757 | "node_modules/safer-buffer": {
758 | "version": "2.1.2",
759 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
760 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
761 | },
762 | "node_modules/saxes": {
763 | "version": "3.1.11",
764 | "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz",
765 | "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==",
766 | "dependencies": {
767 | "xmlchars": "^2.1.1"
768 | },
769 | "engines": {
770 | "node": ">=8"
771 | }
772 | },
773 | "node_modules/shorthash": {
774 | "version": "0.0.2",
775 | "resolved": "https://registry.npmjs.org/shorthash/-/shorthash-0.0.2.tgz",
776 | "integrity": "sha1-WbJo7sveWQOLMNogK8+93rLEpOs=",
777 | "engines": {
778 | "node": "*"
779 | }
780 | },
781 | "node_modules/source-map": {
782 | "version": "0.6.1",
783 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
784 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
785 | "optional": true,
786 | "engines": {
787 | "node": ">=0.10.0"
788 | }
789 | },
790 | "node_modules/sshpk": {
791 | "version": "1.16.1",
792 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
793 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
794 | "dependencies": {
795 | "asn1": "~0.2.3",
796 | "assert-plus": "^1.0.0",
797 | "bcrypt-pbkdf": "^1.0.0",
798 | "dashdash": "^1.12.0",
799 | "ecc-jsbn": "~0.1.1",
800 | "getpass": "^0.1.1",
801 | "jsbn": "~0.1.0",
802 | "safer-buffer": "^2.0.2",
803 | "tweetnacl": "~0.14.0"
804 | },
805 | "engines": {
806 | "node": ">=0.10.0"
807 | }
808 | },
809 | "node_modules/stealthy-require": {
810 | "version": "1.1.1",
811 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
812 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
813 | "engines": {
814 | "node": ">=0.10.0"
815 | }
816 | },
817 | "node_modules/symbol-tree": {
818 | "version": "3.2.4",
819 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
820 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
821 | },
822 | "node_modules/tough-cookie": {
823 | "version": "3.0.1",
824 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
825 | "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
826 | "dependencies": {
827 | "ip-regex": "^2.1.0",
828 | "psl": "^1.1.28",
829 | "punycode": "^2.1.1"
830 | },
831 | "engines": {
832 | "node": ">=6"
833 | }
834 | },
835 | "node_modules/tough-cookie/node_modules/ip-regex": {
836 | "version": "2.1.0",
837 | "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
838 | "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
839 | "engines": {
840 | "node": ">=4"
841 | }
842 | },
843 | "node_modules/tr46": {
844 | "version": "1.0.1",
845 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
846 | "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
847 | "dependencies": {
848 | "punycode": "^2.1.0"
849 | }
850 | },
851 | "node_modules/tunnel-agent": {
852 | "version": "0.6.0",
853 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
854 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
855 | "dependencies": {
856 | "safe-buffer": "^5.0.1"
857 | },
858 | "engines": {
859 | "node": "*"
860 | }
861 | },
862 | "node_modules/tweetnacl": {
863 | "version": "0.14.5",
864 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
865 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
866 | },
867 | "node_modules/type-check": {
868 | "version": "0.3.2",
869 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
870 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
871 | "dependencies": {
872 | "prelude-ls": "~1.1.2"
873 | },
874 | "engines": {
875 | "node": ">= 0.8.0"
876 | }
877 | },
878 | "node_modules/universalify": {
879 | "version": "0.1.2",
880 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
881 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
882 | "engines": {
883 | "node": ">= 4.0.0"
884 | }
885 | },
886 | "node_modules/uri-js": {
887 | "version": "4.2.2",
888 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
889 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
890 | "dependencies": {
891 | "punycode": "^2.1.0"
892 | }
893 | },
894 | "node_modules/uuid": {
895 | "version": "3.3.2",
896 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
897 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
898 | "bin": {
899 | "uuid": "bin/uuid"
900 | }
901 | },
902 | "node_modules/verror": {
903 | "version": "1.10.0",
904 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
905 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
906 | "engines": [
907 | "node >=0.6.0"
908 | ],
909 | "dependencies": {
910 | "assert-plus": "^1.0.0",
911 | "core-util-is": "1.0.2",
912 | "extsprintf": "^1.2.0"
913 | }
914 | },
915 | "node_modules/w3c-hr-time": {
916 | "version": "1.0.1",
917 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
918 | "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
919 | "dependencies": {
920 | "browser-process-hrtime": "^0.1.2"
921 | }
922 | },
923 | "node_modules/w3c-xmlserializer": {
924 | "version": "1.1.2",
925 | "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz",
926 | "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==",
927 | "dependencies": {
928 | "domexception": "^1.0.1",
929 | "webidl-conversions": "^4.0.2",
930 | "xml-name-validator": "^3.0.0"
931 | }
932 | },
933 | "node_modules/web-streams-polyfill": {
934 | "version": "3.2.0",
935 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz",
936 | "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==",
937 | "engines": {
938 | "node": ">= 8"
939 | }
940 | },
941 | "node_modules/webidl-conversions": {
942 | "version": "4.0.2",
943 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
944 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
945 | },
946 | "node_modules/whatwg-encoding": {
947 | "version": "1.0.5",
948 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
949 | "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
950 | "dependencies": {
951 | "iconv-lite": "0.4.24"
952 | }
953 | },
954 | "node_modules/whatwg-mimetype": {
955 | "version": "2.3.0",
956 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
957 | "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
958 | },
959 | "node_modules/whatwg-url": {
960 | "version": "7.0.0",
961 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz",
962 | "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
963 | "dependencies": {
964 | "lodash.sortby": "^4.7.0",
965 | "tr46": "^1.0.1",
966 | "webidl-conversions": "^4.0.2"
967 | }
968 | },
969 | "node_modules/wordwrap": {
970 | "version": "1.0.0",
971 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
972 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
973 | },
974 | "node_modules/ws": {
975 | "version": "7.4.6",
976 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
977 | "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
978 | "engines": {
979 | "node": ">=8.3.0"
980 | }
981 | },
982 | "node_modules/xml-name-validator": {
983 | "version": "3.0.0",
984 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
985 | "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
986 | },
987 | "node_modules/xmlchars": {
988 | "version": "2.1.1",
989 | "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.1.1.tgz",
990 | "integrity": "sha512-7hew1RPJ1iIuje/Y01bGD/mXokXxegAgVS+e+E0wSi2ILHQkYAH1+JXARwTjZSM4Z4Z+c73aKspEcqj+zPPL/w=="
991 | }
992 | },
993 | "dependencies": {
994 | "abab": {
995 | "version": "2.0.0",
996 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
997 | "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w=="
998 | },
999 | "acorn": {
1000 | "version": "6.4.1",
1001 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
1002 | "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="
1003 | },
1004 | "acorn-globals": {
1005 | "version": "4.3.2",
1006 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz",
1007 | "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==",
1008 | "requires": {
1009 | "acorn": "^6.0.1",
1010 | "acorn-walk": "^6.0.1"
1011 | }
1012 | },
1013 | "acorn-walk": {
1014 | "version": "6.2.0",
1015 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
1016 | "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="
1017 | },
1018 | "ajv": {
1019 | "version": "6.12.6",
1020 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1021 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1022 | "requires": {
1023 | "fast-deep-equal": "^3.1.1",
1024 | "fast-json-stable-stringify": "^2.0.0",
1025 | "json-schema-traverse": "^0.4.1",
1026 | "uri-js": "^4.2.2"
1027 | }
1028 | },
1029 | "array-equal": {
1030 | "version": "1.0.0",
1031 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
1032 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
1033 | },
1034 | "asn1": {
1035 | "version": "0.2.4",
1036 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
1037 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
1038 | "requires": {
1039 | "safer-buffer": "~2.1.0"
1040 | }
1041 | },
1042 | "assert-plus": {
1043 | "version": "1.0.0",
1044 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
1045 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
1046 | },
1047 | "asynckit": {
1048 | "version": "0.4.0",
1049 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1050 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
1051 | },
1052 | "aws-sign2": {
1053 | "version": "0.7.0",
1054 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
1055 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
1056 | },
1057 | "aws4": {
1058 | "version": "1.8.0",
1059 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
1060 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
1061 | },
1062 | "bcrypt-pbkdf": {
1063 | "version": "1.0.2",
1064 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1065 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1066 | "requires": {
1067 | "tweetnacl": "^0.14.3"
1068 | }
1069 | },
1070 | "browser-process-hrtime": {
1071 | "version": "0.1.3",
1072 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
1073 | "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="
1074 | },
1075 | "caseless": {
1076 | "version": "0.12.0",
1077 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
1078 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
1079 | },
1080 | "combined-stream": {
1081 | "version": "1.0.8",
1082 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1083 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1084 | "requires": {
1085 | "delayed-stream": "~1.0.0"
1086 | }
1087 | },
1088 | "core-util-is": {
1089 | "version": "1.0.2",
1090 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1091 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
1092 | },
1093 | "cssom": {
1094 | "version": "0.3.8",
1095 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
1096 | "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
1097 | },
1098 | "cssstyle": {
1099 | "version": "1.3.0",
1100 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.3.0.tgz",
1101 | "integrity": "sha512-wXsoRfsRfsLVNaVzoKdqvEmK/5PFaEXNspVT22Ots6K/cnJdpoDKuQFw+qlMiXnmaif1OgeC466X1zISgAOcGg==",
1102 | "requires": {
1103 | "cssom": "~0.3.6"
1104 | }
1105 | },
1106 | "dashdash": {
1107 | "version": "1.14.1",
1108 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
1109 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
1110 | "requires": {
1111 | "assert-plus": "^1.0.0"
1112 | }
1113 | },
1114 | "data-uri-to-buffer": {
1115 | "version": "4.0.0",
1116 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
1117 | "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
1118 | },
1119 | "data-urls": {
1120 | "version": "1.1.0",
1121 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
1122 | "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
1123 | "requires": {
1124 | "abab": "^2.0.0",
1125 | "whatwg-mimetype": "^2.2.0",
1126 | "whatwg-url": "^7.0.0"
1127 | }
1128 | },
1129 | "deep-is": {
1130 | "version": "0.1.3",
1131 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
1132 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
1133 | },
1134 | "delayed-stream": {
1135 | "version": "1.0.0",
1136 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1137 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
1138 | },
1139 | "domexception": {
1140 | "version": "1.0.1",
1141 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
1142 | "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
1143 | "requires": {
1144 | "webidl-conversions": "^4.0.2"
1145 | }
1146 | },
1147 | "ecc-jsbn": {
1148 | "version": "0.1.2",
1149 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
1150 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
1151 | "requires": {
1152 | "jsbn": "~0.1.0",
1153 | "safer-buffer": "^2.1.0"
1154 | }
1155 | },
1156 | "escodegen": {
1157 | "version": "1.11.1",
1158 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz",
1159 | "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==",
1160 | "requires": {
1161 | "esprima": "^3.1.3",
1162 | "estraverse": "^4.2.0",
1163 | "esutils": "^2.0.2",
1164 | "optionator": "^0.8.1",
1165 | "source-map": "~0.6.1"
1166 | }
1167 | },
1168 | "esprima": {
1169 | "version": "3.1.3",
1170 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
1171 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
1172 | },
1173 | "estraverse": {
1174 | "version": "4.2.0",
1175 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
1176 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
1177 | },
1178 | "esutils": {
1179 | "version": "2.0.2",
1180 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
1181 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
1182 | },
1183 | "extend": {
1184 | "version": "3.0.2",
1185 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1186 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
1187 | },
1188 | "extsprintf": {
1189 | "version": "1.3.0",
1190 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
1191 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
1192 | },
1193 | "fast-deep-equal": {
1194 | "version": "3.1.3",
1195 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1196 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
1197 | },
1198 | "fast-json-stable-stringify": {
1199 | "version": "2.0.0",
1200 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
1201 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
1202 | },
1203 | "fast-levenshtein": {
1204 | "version": "2.0.6",
1205 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1206 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
1207 | },
1208 | "fetch-blob": {
1209 | "version": "3.1.4",
1210 | "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz",
1211 | "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==",
1212 | "requires": {
1213 | "node-domexception": "^1.0.0",
1214 | "web-streams-polyfill": "^3.0.3"
1215 | }
1216 | },
1217 | "file-type": {
1218 | "version": "12.0.1",
1219 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.0.1.tgz",
1220 | "integrity": "sha512-YIs1E51cmqcmgF38ODjy0+M/l5DyfIIy3vngTOujQr/lXqkaSskfBniaZoZ1HVIpa5FTf5e7hCXS4TzxfNGMRQ=="
1221 | },
1222 | "forever-agent": {
1223 | "version": "0.6.1",
1224 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
1225 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
1226 | },
1227 | "form-data": {
1228 | "version": "2.3.3",
1229 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
1230 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
1231 | "requires": {
1232 | "asynckit": "^0.4.0",
1233 | "combined-stream": "^1.0.6",
1234 | "mime-types": "^2.1.12"
1235 | }
1236 | },
1237 | "formdata-polyfill": {
1238 | "version": "4.0.10",
1239 | "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
1240 | "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
1241 | "requires": {
1242 | "fetch-blob": "^3.1.2"
1243 | }
1244 | },
1245 | "fs-extra": {
1246 | "version": "8.1.0",
1247 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
1248 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
1249 | "requires": {
1250 | "graceful-fs": "^4.2.0",
1251 | "jsonfile": "^4.0.0",
1252 | "universalify": "^0.1.0"
1253 | }
1254 | },
1255 | "getpass": {
1256 | "version": "0.1.7",
1257 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
1258 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
1259 | "requires": {
1260 | "assert-plus": "^1.0.0"
1261 | }
1262 | },
1263 | "graceful-fs": {
1264 | "version": "4.2.0",
1265 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
1266 | "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg=="
1267 | },
1268 | "har-schema": {
1269 | "version": "2.0.0",
1270 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1271 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
1272 | },
1273 | "har-validator": {
1274 | "version": "5.1.3",
1275 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
1276 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
1277 | "requires": {
1278 | "ajv": "^6.5.5",
1279 | "har-schema": "^2.0.0"
1280 | }
1281 | },
1282 | "html-encoding-sniffer": {
1283 | "version": "1.0.2",
1284 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
1285 | "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
1286 | "requires": {
1287 | "whatwg-encoding": "^1.0.1"
1288 | }
1289 | },
1290 | "http-signature": {
1291 | "version": "1.2.0",
1292 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1293 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1294 | "requires": {
1295 | "assert-plus": "^1.0.0",
1296 | "jsprim": "^1.2.2",
1297 | "sshpk": "^1.7.0"
1298 | }
1299 | },
1300 | "iconv-lite": {
1301 | "version": "0.4.24",
1302 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1303 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1304 | "requires": {
1305 | "safer-buffer": ">= 2.1.2 < 3"
1306 | }
1307 | },
1308 | "is-typedarray": {
1309 | "version": "1.0.0",
1310 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1311 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
1312 | },
1313 | "isstream": {
1314 | "version": "0.1.2",
1315 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1316 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1317 | },
1318 | "jsbn": {
1319 | "version": "0.1.1",
1320 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1321 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
1322 | },
1323 | "jsdom": {
1324 | "version": "15.1.1",
1325 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.1.1.tgz",
1326 | "integrity": "sha512-cQZRBB33arrDAeCrAEWn1U3SvrvC8XysBua9Oqg1yWrsY/gYcusloJC3RZJXuY5eehSCmws8f2YeliCqGSkrtQ==",
1327 | "requires": {
1328 | "abab": "^2.0.0",
1329 | "acorn": "^6.1.1",
1330 | "acorn-globals": "^4.3.2",
1331 | "array-equal": "^1.0.0",
1332 | "cssom": "^0.3.6",
1333 | "cssstyle": "^1.2.2",
1334 | "data-urls": "^1.1.0",
1335 | "domexception": "^1.0.1",
1336 | "escodegen": "^1.11.1",
1337 | "html-encoding-sniffer": "^1.0.2",
1338 | "nwsapi": "^2.1.4",
1339 | "parse5": "5.1.0",
1340 | "pn": "^1.1.0",
1341 | "request": "^2.88.0",
1342 | "request-promise-native": "^1.0.7",
1343 | "saxes": "^3.1.9",
1344 | "symbol-tree": "^3.2.2",
1345 | "tough-cookie": "^3.0.1",
1346 | "w3c-hr-time": "^1.0.1",
1347 | "w3c-xmlserializer": "^1.1.2",
1348 | "webidl-conversions": "^4.0.2",
1349 | "whatwg-encoding": "^1.0.5",
1350 | "whatwg-mimetype": "^2.3.0",
1351 | "whatwg-url": "^7.0.0",
1352 | "ws": "^7.0.0",
1353 | "xml-name-validator": "^3.0.0"
1354 | }
1355 | },
1356 | "json-schema": {
1357 | "version": "0.2.3",
1358 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1359 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
1360 | },
1361 | "json-schema-traverse": {
1362 | "version": "0.4.1",
1363 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1364 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
1365 | },
1366 | "json-stringify-safe": {
1367 | "version": "5.0.1",
1368 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1369 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
1370 | },
1371 | "jsonfile": {
1372 | "version": "4.0.0",
1373 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
1374 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
1375 | "requires": {
1376 | "graceful-fs": "^4.1.6"
1377 | }
1378 | },
1379 | "jsprim": {
1380 | "version": "1.4.1",
1381 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1382 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1383 | "requires": {
1384 | "assert-plus": "1.0.0",
1385 | "extsprintf": "1.3.0",
1386 | "json-schema": "0.2.3",
1387 | "verror": "1.10.0"
1388 | }
1389 | },
1390 | "levn": {
1391 | "version": "0.3.0",
1392 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
1393 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
1394 | "requires": {
1395 | "prelude-ls": "~1.1.2",
1396 | "type-check": "~0.3.2"
1397 | }
1398 | },
1399 | "lodash": {
1400 | "version": "4.17.21",
1401 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1402 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
1403 | },
1404 | "lodash.sortby": {
1405 | "version": "4.7.0",
1406 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
1407 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
1408 | },
1409 | "mime-db": {
1410 | "version": "1.40.0",
1411 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
1412 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
1413 | },
1414 | "mime-types": {
1415 | "version": "2.1.24",
1416 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
1417 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
1418 | "requires": {
1419 | "mime-db": "1.40.0"
1420 | }
1421 | },
1422 | "node-domexception": {
1423 | "version": "1.0.0",
1424 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
1425 | "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
1426 | },
1427 | "node-fetch": {
1428 | "version": "3.1.1",
1429 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz",
1430 | "integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==",
1431 | "requires": {
1432 | "data-uri-to-buffer": "^4.0.0",
1433 | "fetch-blob": "^3.1.3",
1434 | "formdata-polyfill": "^4.0.10"
1435 | }
1436 | },
1437 | "nwsapi": {
1438 | "version": "2.1.4",
1439 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz",
1440 | "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw=="
1441 | },
1442 | "oauth-sign": {
1443 | "version": "0.9.0",
1444 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1445 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
1446 | },
1447 | "optionator": {
1448 | "version": "0.8.2",
1449 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
1450 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
1451 | "requires": {
1452 | "deep-is": "~0.1.3",
1453 | "fast-levenshtein": "~2.0.4",
1454 | "levn": "~0.3.0",
1455 | "prelude-ls": "~1.1.2",
1456 | "type-check": "~0.3.2",
1457 | "wordwrap": "~1.0.0"
1458 | }
1459 | },
1460 | "parse5": {
1461 | "version": "5.1.0",
1462 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
1463 | "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ=="
1464 | },
1465 | "performance-now": {
1466 | "version": "2.1.0",
1467 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1468 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
1469 | },
1470 | "pn": {
1471 | "version": "1.1.0",
1472 | "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
1473 | "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="
1474 | },
1475 | "prelude-ls": {
1476 | "version": "1.1.2",
1477 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1478 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
1479 | },
1480 | "psl": {
1481 | "version": "1.2.0",
1482 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
1483 | "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA=="
1484 | },
1485 | "punycode": {
1486 | "version": "2.1.1",
1487 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1488 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
1489 | },
1490 | "qs": {
1491 | "version": "6.5.2",
1492 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
1493 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
1494 | },
1495 | "request": {
1496 | "version": "2.88.0",
1497 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
1498 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
1499 | "requires": {
1500 | "aws-sign2": "~0.7.0",
1501 | "aws4": "^1.8.0",
1502 | "caseless": "~0.12.0",
1503 | "combined-stream": "~1.0.6",
1504 | "extend": "~3.0.2",
1505 | "forever-agent": "~0.6.1",
1506 | "form-data": "~2.3.2",
1507 | "har-validator": "~5.1.0",
1508 | "http-signature": "~1.2.0",
1509 | "is-typedarray": "~1.0.0",
1510 | "isstream": "~0.1.2",
1511 | "json-stringify-safe": "~5.0.1",
1512 | "mime-types": "~2.1.19",
1513 | "oauth-sign": "~0.9.0",
1514 | "performance-now": "^2.1.0",
1515 | "qs": "~6.5.2",
1516 | "safe-buffer": "^5.1.2",
1517 | "tough-cookie": "~2.4.3",
1518 | "tunnel-agent": "^0.6.0",
1519 | "uuid": "^3.3.2"
1520 | },
1521 | "dependencies": {
1522 | "punycode": {
1523 | "version": "1.4.1",
1524 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1525 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
1526 | },
1527 | "tough-cookie": {
1528 | "version": "2.4.3",
1529 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
1530 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
1531 | "requires": {
1532 | "psl": "^1.1.24",
1533 | "punycode": "^1.4.1"
1534 | }
1535 | }
1536 | }
1537 | },
1538 | "request-promise-core": {
1539 | "version": "1.1.2",
1540 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
1541 | "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
1542 | "requires": {
1543 | "lodash": "^4.17.11"
1544 | }
1545 | },
1546 | "request-promise-native": {
1547 | "version": "1.0.7",
1548 | "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz",
1549 | "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==",
1550 | "requires": {
1551 | "request-promise-core": "1.1.2",
1552 | "stealthy-require": "^1.1.1",
1553 | "tough-cookie": "^2.3.3"
1554 | },
1555 | "dependencies": {
1556 | "tough-cookie": {
1557 | "version": "2.5.0",
1558 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1559 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1560 | "requires": {
1561 | "psl": "^1.1.28",
1562 | "punycode": "^2.1.1"
1563 | }
1564 | }
1565 | }
1566 | },
1567 | "safe-buffer": {
1568 | "version": "5.2.0",
1569 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
1570 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
1571 | },
1572 | "safer-buffer": {
1573 | "version": "2.1.2",
1574 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1575 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1576 | },
1577 | "saxes": {
1578 | "version": "3.1.11",
1579 | "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz",
1580 | "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==",
1581 | "requires": {
1582 | "xmlchars": "^2.1.1"
1583 | }
1584 | },
1585 | "shorthash": {
1586 | "version": "0.0.2",
1587 | "resolved": "https://registry.npmjs.org/shorthash/-/shorthash-0.0.2.tgz",
1588 | "integrity": "sha1-WbJo7sveWQOLMNogK8+93rLEpOs="
1589 | },
1590 | "source-map": {
1591 | "version": "0.6.1",
1592 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1593 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1594 | "optional": true
1595 | },
1596 | "sshpk": {
1597 | "version": "1.16.1",
1598 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
1599 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
1600 | "requires": {
1601 | "asn1": "~0.2.3",
1602 | "assert-plus": "^1.0.0",
1603 | "bcrypt-pbkdf": "^1.0.0",
1604 | "dashdash": "^1.12.0",
1605 | "ecc-jsbn": "~0.1.1",
1606 | "getpass": "^0.1.1",
1607 | "jsbn": "~0.1.0",
1608 | "safer-buffer": "^2.0.2",
1609 | "tweetnacl": "~0.14.0"
1610 | }
1611 | },
1612 | "stealthy-require": {
1613 | "version": "1.1.1",
1614 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
1615 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
1616 | },
1617 | "symbol-tree": {
1618 | "version": "3.2.4",
1619 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
1620 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
1621 | },
1622 | "tough-cookie": {
1623 | "version": "3.0.1",
1624 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
1625 | "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
1626 | "requires": {
1627 | "ip-regex": "^2.1.0",
1628 | "psl": "^1.1.28",
1629 | "punycode": "^2.1.1"
1630 | },
1631 | "dependencies": {
1632 | "ip-regex": {
1633 | "version": "2.1.0",
1634 | "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
1635 | "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk="
1636 | }
1637 | }
1638 | },
1639 | "tr46": {
1640 | "version": "1.0.1",
1641 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
1642 | "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
1643 | "requires": {
1644 | "punycode": "^2.1.0"
1645 | }
1646 | },
1647 | "tunnel-agent": {
1648 | "version": "0.6.0",
1649 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1650 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1651 | "requires": {
1652 | "safe-buffer": "^5.0.1"
1653 | }
1654 | },
1655 | "tweetnacl": {
1656 | "version": "0.14.5",
1657 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1658 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1659 | },
1660 | "type-check": {
1661 | "version": "0.3.2",
1662 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1663 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1664 | "requires": {
1665 | "prelude-ls": "~1.1.2"
1666 | }
1667 | },
1668 | "universalify": {
1669 | "version": "0.1.2",
1670 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
1671 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
1672 | },
1673 | "uri-js": {
1674 | "version": "4.2.2",
1675 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1676 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1677 | "requires": {
1678 | "punycode": "^2.1.0"
1679 | }
1680 | },
1681 | "uuid": {
1682 | "version": "3.3.2",
1683 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
1684 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
1685 | },
1686 | "verror": {
1687 | "version": "1.10.0",
1688 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1689 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
1690 | "requires": {
1691 | "assert-plus": "^1.0.0",
1692 | "core-util-is": "1.0.2",
1693 | "extsprintf": "^1.2.0"
1694 | }
1695 | },
1696 | "w3c-hr-time": {
1697 | "version": "1.0.1",
1698 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
1699 | "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
1700 | "requires": {
1701 | "browser-process-hrtime": "^0.1.2"
1702 | }
1703 | },
1704 | "w3c-xmlserializer": {
1705 | "version": "1.1.2",
1706 | "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz",
1707 | "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==",
1708 | "requires": {
1709 | "domexception": "^1.0.1",
1710 | "webidl-conversions": "^4.0.2",
1711 | "xml-name-validator": "^3.0.0"
1712 | }
1713 | },
1714 | "web-streams-polyfill": {
1715 | "version": "3.2.0",
1716 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz",
1717 | "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA=="
1718 | },
1719 | "webidl-conversions": {
1720 | "version": "4.0.2",
1721 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
1722 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
1723 | },
1724 | "whatwg-encoding": {
1725 | "version": "1.0.5",
1726 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
1727 | "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
1728 | "requires": {
1729 | "iconv-lite": "0.4.24"
1730 | }
1731 | },
1732 | "whatwg-mimetype": {
1733 | "version": "2.3.0",
1734 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
1735 | "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
1736 | },
1737 | "whatwg-url": {
1738 | "version": "7.0.0",
1739 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz",
1740 | "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
1741 | "requires": {
1742 | "lodash.sortby": "^4.7.0",
1743 | "tr46": "^1.0.1",
1744 | "webidl-conversions": "^4.0.2"
1745 | }
1746 | },
1747 | "wordwrap": {
1748 | "version": "1.0.0",
1749 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
1750 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
1751 | },
1752 | "ws": {
1753 | "version": "7.4.6",
1754 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
1755 | "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
1756 | },
1757 | "xml-name-validator": {
1758 | "version": "3.0.0",
1759 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
1760 | "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
1761 | },
1762 | "xmlchars": {
1763 | "version": "2.1.1",
1764 | "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.1.1.tgz",
1765 | "integrity": "sha512-7hew1RPJ1iIuje/Y01bGD/mXokXxegAgVS+e+E0wSi2ILHQkYAH1+JXARwTjZSM4Z4Z+c73aKspEcqj+zPPL/w=="
1766 | }
1767 | }
1768 | }
1769 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eleventy-plugin-local-images",
3 | "version": "0.4.0",
4 | "description": "a plugin to grab remote images and serve them locally",
5 | "main": ".eleventy.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/robb0wen/eleventy-plugin-local-images.git"
12 | },
13 | "keywords": [
14 | "eleventy",
15 | "images",
16 | "assets",
17 | "performance"
18 | ],
19 | "author": {
20 | "name": "Robb Owen",
21 | "email": "hello@robbowen.digital",
22 | "url": "https://robbowen.digital"
23 | },
24 | "license": "MIT",
25 | "bugs": {
26 | "url": "https://github.com/robb0wen/eleventy-plugin-local-images/issues"
27 | },
28 | "homepage": "https://github.com/robb0wen/eleventy-plugin-local-images#readme",
29 | "dependencies": {
30 | "file-type": "^12.0.1",
31 | "fs-extra": "^8.1.0",
32 | "jsdom": "^15.1.1",
33 | "node-fetch": "^3.1.1",
34 | "shorthash": "0.0.2"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------