├── .github
├── CODEOWNERS
└── ISSUE_TEMPLATE.md
├── .gitignore
├── .npmignore
├── .travis.yml
├── CONTRIBUTING.md
├── README.md
├── bower.json
├── demo
└── index.html
├── formatconfig.json
├── gen-tsd.json
├── iron-ajax.js
├── iron-request.js
├── package-lock.json
├── package.json
├── test
├── index.html
├── iron-ajax.html
├── iron-request.html
└── test-json-file.json
└── wct.conf.json
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @e111077
2 | /.travis.yml @azakus
3 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 | ### Description
3 |
4 |
5 | ### Expected outcome
6 |
7 |
8 |
9 | ### Actual outcome
10 |
11 |
12 |
13 | ### Live Demo
14 |
15 |
16 | ### Steps to reproduce
17 |
18 |
23 |
24 | ### Browsers Affected
25 |
26 | - [ ] Chrome
27 | - [ ] Firefox
28 | - [ ] Safari 9
29 | - [ ] Safari 8
30 | - [ ] Safari 7
31 | - [ ] Edge
32 | - [ ] IE 11
33 | - [ ] IE 10
34 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | bower_components*
2 | bower-*.json
3 | node_modules
4 | *.d.ts
5 | *.tgz
6 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | *.tgz
2 | .github
3 | .travis.yml
4 | formatconfig.json
5 | gen-tsd.json
6 | test/
7 | wct.conf.json
8 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | sudo: 'false'
3 | before_script:
4 | - npm install -g polymer-cli
5 | - git checkout package-lock.json
6 | - >-
7 | npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m
8 | Project is not formatted. Please run "npm run format".' && false)
9 | env:
10 | global:
11 | - secure: >-
12 | Tnh6hBNeOMU+JzJCvB50kyJ5FLXJJ1gLy9unf9Cz9MWnH8duclcZ3k2K0JT0sgb2eP1NiNtUK2bV2KVdCAvpGMj0ExK0hS+p7L0vWb4i16+gyCuf13jVwcZFU6MVEVeZlgfpxcrcXqPE9TX+E3JMliKFRJIAram9r4Ok/i+1kCE=
13 | - secure: >-
14 | QTd3c12RWi0RRsGrtxxSSvc9tgaCUnSmzyW9tSfK+z+06MSeJf8U8evE9IiZCEHB+9flLS5w6+fANnV7FRw1o0r5bQD8moWAMjTw1kZYlfAAf/2XGKR5wY00lyMs5a4BkimgPAU4FsJj2Gqojb7kKHmZ46y2ZKKbOQETsztXuKA=
15 | node_js: node
16 | addons:
17 | firefox: latest
18 | chrome: stable
19 | script:
20 | - xvfb-run polymer test --module-resolution=node --npm
21 | - >-
22 | if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test
23 | --module-resolution=node --npm -s 'default'; fi
24 | dist: trusty
25 | cache:
26 | directories:
27 | - node_modules
28 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 |
13 |
14 | # Polymer Elements
15 | ## Guide for Contributors
16 |
17 | Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines:
18 |
19 | ### Filing Issues
20 |
21 | **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions:
22 |
23 | 1. **Who will use the feature?** _“As someone filling out a form…”_
24 | 2. **When will they use the feature?** _“When I enter an invalid value…”_
25 | 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_
26 |
27 | **If you are filing an issue to report a bug**, please provide:
28 |
29 | 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug:
30 |
31 | ```markdown
32 | The `paper-foo` element causes the page to turn pink when clicked.
33 |
34 | ## Expected outcome
35 |
36 | The page stays the same color.
37 |
38 | ## Actual outcome
39 |
40 | The page turns pink.
41 |
42 | ## Steps to reproduce
43 |
44 | 1. Put a `paper-foo` element in the page.
45 | 2. Open the page in a web browser.
46 | 3. Click the `paper-foo` element.
47 | ```
48 |
49 | 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/zeriha/2/edit?html,output](https://jsbin.com/zeriha/2/edit?html,output).
50 |
51 | 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers.
52 |
53 | ### Submitting Pull Requests
54 |
55 | **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request.
56 |
57 | When submitting pull requests, please provide:
58 |
59 | 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax:
60 |
61 | ```markdown
62 | (For a single issue)
63 | Fixes #20
64 |
65 | (For multiple issues)
66 | Fixes #32, fixes #40
67 | ```
68 |
69 | 2. **A succinct description of the design** used to fix any related issues. For example:
70 |
71 | ```markdown
72 | This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked.
73 | ```
74 |
75 | 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered.
76 |
77 | If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that!
78 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://www.npmjs.com/package/@polymer/iron-ajax)
2 | [](https://travis-ci.org/PolymerElements/iron-ajax)
3 | [](https://webcomponents.org/element/@polymer/iron-ajax)
4 |
5 | ## <iron-ajax>
6 |
7 | The `iron-ajax` element declaratively exposes network request functionality to
8 | Polymer's data-binding system.
9 |
10 | See: [Documentation](https://www.webcomponents.org/element/@polymer/iron-ajax),
11 | [Demo](https://www.webcomponents.org/element/@polymer/iron-ajax/demo/demo/index.html).
12 |
13 | ## Usage
14 |
15 | ### Installation
16 | ```
17 | npm install --save @polymer/iron-ajax
18 | ```
19 |
20 | ### In an html file
21 | ```html
22 |
23 |
24 |
27 |
28 |
29 |
36 |
37 |
38 |
39 | ```
40 |
41 | ### In a Polymer 3 element
42 | ```js
43 | import {PolymerElement, html} from '@polymer/polymer';
44 | import '@polymer/iron-ajax/iron-ajax.js';
45 |
46 | class SampleElement extends PolymerElement {
47 | static get template() {
48 | return html`
49 |
56 |
57 | `;
58 | }
59 | }
60 | customElements.define('sample-element', SampleElement);
61 | ```
62 | ## Contributing
63 | If you want to send a PR to this element, here are
64 | the instructions for running the tests and demo locally:
65 |
66 | ### Installation
67 | ```sh
68 | git clone https://github.com/PolymerElements/iron-ajax
69 | cd iron-ajax
70 | npm install
71 | npm install -g polymer-cli
72 | ```
73 |
74 | ### Running the demo locally
75 | ```sh
76 | polymer serve --npm
77 | open http://127.0.0.1:/demo/
78 | ```
79 |
80 | ### Running the tests
81 | ```sh
82 | polymer test --npm
83 | ```
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "iron-ajax",
3 | "license": "http://polymer.github.io/LICENSE.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/demo/index.html:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 | iron-ajax
15 |
16 |
17 |
18 |
19 | Video Feed
20 |
21 |
22 |
50 |
51 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
[[item.snippet.description]]
63 |
64 |
65 |
66 |
67 |
68 |
81 |
82 |
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/formatconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "style": {
3 | "ReflowComments": false
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/gen-tsd.json:
--------------------------------------------------------------------------------
1 | {
2 | "autoImport": {
3 | "./iron-request.js": [
4 | "IronRequestElement"
5 | ]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/iron-ajax.js:
--------------------------------------------------------------------------------
1 | /**
2 | @license
3 | Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
4 | This code may only be used under the BSD style license found at
5 | http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
6 | http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
7 | found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
8 | part of the polymer project is also subject to an additional IP rights grant
9 | found at http://polymer.github.io/PATENTS.txt
10 | */
11 | import './iron-request.js';
12 |
13 | import {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';
14 | import {Base} from '@polymer/polymer/polymer-legacy.js';
15 |
16 | /**
17 | The `iron-ajax` element exposes network request functionality.
18 |
19 |
25 |
26 | With `auto` set to `true`, the element performs a request whenever
27 | its `url`, `params` or `body` properties are changed. Automatically generated
28 | requests will be debounced in the case that multiple attributes are changed
29 | sequentially.
30 |
31 | Note: The `params` attribute must be double quoted JSON.
32 |
33 | You can trigger a request explicitly by calling `generateRequest` on the
34 | element.
35 |
36 | @demo demo/index.html
37 | */
38 | Polymer({
39 |
40 | is: 'iron-ajax',
41 | /** @override */
42 | _template: null,
43 |
44 | /**
45 | * Fired before a request is sent.
46 | *
47 | * @event iron-ajax-presend
48 | */
49 |
50 | /**
51 | * Fired when a request is sent.
52 | *
53 | * @event request
54 | */
55 |
56 | /**
57 | * Fired when a request is sent.
58 | *
59 | * @event iron-ajax-request
60 | */
61 |
62 | /**
63 | * Fired when a response is received.
64 | *
65 | * @event response
66 | */
67 |
68 | /**
69 | * Fired when a response is received.
70 | *
71 | * @event iron-ajax-response
72 | */
73 |
74 | /**
75 | * Fired when an error is received.
76 | *
77 | * @event error
78 | */
79 |
80 | /**
81 | * Fired when an error is received.
82 | *
83 | * @event iron-ajax-error
84 | */
85 |
86 | hostAttributes: {hidden: true},
87 |
88 | properties: {
89 | /**
90 | * The URL target of the request.
91 | */
92 | url: {type: String},
93 |
94 | /**
95 | * An object that contains query parameters to be appended to the
96 | * specified `url` when generating a request. If you wish to set the body
97 | * content when making a POST request, you should use the `body` property
98 | * instead.
99 | */
100 | params: {
101 | type: Object,
102 | value: function() {
103 | return {};
104 | }
105 | },
106 |
107 | /**
108 | * The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'.
109 | * Default is 'GET'.
110 | */
111 | method: {type: String, value: 'GET'},
112 |
113 | /**
114 | * HTTP request headers to send.
115 | *
116 | * Example:
117 | *
118 | *
123 | *
124 | * Note: setting a `Content-Type` header here will override the value
125 | * specified by the `contentType` property of this element.
126 | */
127 | headers: {
128 | type: Object,
129 | value: function() {
130 | return {};
131 | }
132 | },
133 |
134 | /**
135 | * Content type to use when sending data. If the `contentType` property
136 | * is set and a `Content-Type` header is specified in the `headers`
137 | * property, the `headers` property value will take precedence.
138 | *
139 | * Varies the handling of the `body` param.
140 | */
141 | contentType: {type: String, value: null},
142 |
143 | /**
144 | * Body content to send with the request, typically used with "POST"
145 | * requests.
146 | *
147 | * If body is a string it will be sent unmodified.
148 | *
149 | * If Content-Type is set to a value listed below, then
150 | * the body will be encoded accordingly.
151 | *
152 | * * `content-type="application/json"`
153 | * * body is encoded like `{"foo":"bar baz","x":1}`
154 | * * `content-type="application/x-www-form-urlencoded"`
155 | * * body is encoded like `foo=bar+baz&x=1`
156 | *
157 | * Otherwise the body will be passed to the browser unmodified, and it
158 | * will handle any encoding (e.g. for FormData, Blob, ArrayBuffer).
159 | *
160 | * @type
161 | * (ArrayBuffer|ArrayBufferView|Blob|Document|FormData|null|string|undefined|Object)
162 | */
163 | body: {type: Object, value: null},
164 |
165 | /**
166 | * Toggle whether XHR is synchronous or asynchronous. Don't change this
167 | * to true unless You Know What You Are Doing™.
168 | */
169 | sync: {type: Boolean, value: false},
170 |
171 | /**
172 | * Specifies what data to store in the `response` property, and
173 | * to deliver as `event.detail.response` in `response` events.
174 | *
175 | * One of:
176 | *
177 | * `text`: uses `XHR.responseText`.
178 | *
179 | * `xml`: uses `XHR.responseXML`.
180 | *
181 | * `json`: uses `XHR.responseText` parsed as JSON.
182 | *
183 | * `arraybuffer`: uses `XHR.response`.
184 | *
185 | * `blob`: uses `XHR.response`.
186 | *
187 | * `document`: uses `XHR.response`.
188 | */
189 | handleAs: {type: String, value: 'json'},
190 |
191 | /**
192 | * Set the withCredentials flag on the request.
193 | */
194 | withCredentials: {type: Boolean, value: false},
195 |
196 | /**
197 | * Set the timeout flag on the request.
198 | */
199 | timeout: {type: Number, value: 0},
200 |
201 | /**
202 | * If true, automatically performs an Ajax request when either `url` or
203 | * `params` changes.
204 | */
205 | auto: {type: Boolean, value: false},
206 |
207 | /**
208 | * If true, error messages will automatically be logged to the console.
209 | */
210 | verbose: {type: Boolean, value: false},
211 |
212 | /**
213 | * The most recent request made by this iron-ajax element.
214 | *
215 | * @type {Object|undefined}
216 | */
217 | lastRequest: {type: Object, notify: true, readOnly: true},
218 |
219 | /**
220 | * The `progress` property of this element's `lastRequest`.
221 | *
222 | * @type {Object|undefined}
223 | */
224 | lastProgress: {type: Object, notify: true, readOnly: true},
225 |
226 | /**
227 | * True while lastRequest is in flight.
228 | */
229 | loading: {type: Boolean, notify: true, readOnly: true},
230 |
231 | /**
232 | * lastRequest's response.
233 | *
234 | * Note that lastResponse and lastError are set when lastRequest finishes,
235 | * so if loading is true, then lastResponse and lastError will correspond
236 | * to the result of the previous request.
237 | *
238 | * The type of the response is determined by the value of `handleAs` at
239 | * the time that the request was generated.
240 | *
241 | * @type {Object}
242 | */
243 | lastResponse: {type: Object, notify: true, readOnly: true},
244 |
245 | /**
246 | * lastRequest's error, if any.
247 | *
248 | * @type {Object}
249 | */
250 | lastError: {type: Object, notify: true, readOnly: true},
251 |
252 | /**
253 | * An Array of all in-flight requests originating from this iron-ajax
254 | * element.
255 | */
256 | activeRequests: {
257 | type: Array,
258 | notify: true,
259 | readOnly: true,
260 | value: function() {
261 | return [];
262 | }
263 | },
264 |
265 | /**
266 | * Length of time in milliseconds to debounce multiple automatically
267 | * generated requests.
268 | */
269 | debounceDuration: {type: Number, value: 0, notify: true},
270 |
271 | /**
272 | * Prefix to be stripped from a JSON response before parsing it.
273 | *
274 | * In order to prevent an attack using CSRF with Array responses
275 | * (http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/)
276 | * many backends will mitigate this by prefixing all JSON response bodies
277 | * with a string that would be nonsensical to a JavaScript parser.
278 | *
279 | */
280 | jsonPrefix: {type: String, value: ''},
281 |
282 | /**
283 | * By default, iron-ajax's events do not bubble. Setting this attribute will
284 | * cause its request and response events as well as its iron-ajax-request,
285 | * -response, and -error events to bubble to the window object. The vanilla
286 | * error event never bubbles when using shadow dom even if this.bubbles is
287 | * true because a scoped flag is not passed with it (first link) and because
288 | * the shadow dom spec did not used to allow certain events, including
289 | * events named error, to leak outside of shadow trees (second link).
290 | * https://www.w3.org/TR/shadow-dom/#scoped-flag
291 | * https://www.w3.org/TR/2015/WD-shadow-dom-20151215/#events-that-are-not-leaked-into-ancestor-trees
292 | */
293 | bubbles: {type: Boolean, value: false},
294 |
295 | /**
296 | * Changes the [`completes`](iron-request#property-completes) promise chain
297 | * from `generateRequest` to reject with an object
298 | * containing the original request, as well an error message.
299 | * If false (default), the promise rejects with an error message only.
300 | */
301 | rejectWithRequest: {type: Boolean, value: false},
302 |
303 | _boundHandleResponse: {
304 | type: Function,
305 | value: function() {
306 | return this._handleResponse.bind(this);
307 | }
308 | }
309 | },
310 |
311 | observers:
312 | ['_requestOptionsChanged(url, method, params.*, headers, contentType, ' +
313 | 'body, sync, handleAs, jsonPrefix, withCredentials, timeout, auto)'],
314 |
315 | /** @override */
316 | created: function() {
317 | this._boundOnProgressChanged = this._onProgressChanged.bind(this);
318 | },
319 |
320 | /**
321 | * The query string that should be appended to the `url`, serialized from
322 | * the current value of `params`.
323 | *
324 | * @return {string}
325 | */
326 | get queryString() {
327 | var queryParts = [];
328 | var param;
329 | var value;
330 |
331 | for (param in this.params) {
332 | value = this.params[param];
333 | param = window.encodeURIComponent(param);
334 |
335 | if (Array.isArray(value)) {
336 | for (var i = 0; i < value.length; i++) {
337 | queryParts.push(param + '=' + window.encodeURIComponent(value[i]));
338 | }
339 | } else if (value !== null) {
340 | queryParts.push(param + '=' + window.encodeURIComponent(value));
341 | } else {
342 | queryParts.push(param);
343 | }
344 | }
345 |
346 | return queryParts.join('&');
347 | },
348 |
349 | /**
350 | * The `url` with query string (if `params` are specified), suitable for
351 | * providing to an `iron-request` instance.
352 | *
353 | * @return {string}
354 | */
355 | get requestUrl() {
356 | var queryString = this.queryString;
357 | var url = this.url || '';
358 |
359 | if (queryString) {
360 | var bindingChar = url.indexOf('?') >= 0 ? '&' : '?';
361 | return url + bindingChar + queryString;
362 | }
363 |
364 | return url;
365 | },
366 |
367 | /**
368 | * An object that maps header names to header values, first applying the
369 | * the value of `Content-Type` and then overlaying the headers specified
370 | * in the `headers` property.
371 | *
372 | * @return {Object}
373 | */
374 | get requestHeaders() {
375 | var headers = {};
376 | var contentType = this.contentType;
377 | if (contentType == null && (typeof this.body === 'string')) {
378 | contentType = 'application/x-www-form-urlencoded';
379 | }
380 | if (contentType) {
381 | headers['content-type'] = contentType;
382 | }
383 | var header;
384 |
385 | if (typeof this.headers === 'object') {
386 | for (header in this.headers) {
387 | headers[header] = this.headers[header].toString();
388 | }
389 | }
390 |
391 | return headers;
392 | },
393 |
394 | _onProgressChanged: function(event) {
395 | this._setLastProgress(event.detail.value);
396 | },
397 |
398 | /**
399 | * Request options suitable for generating an `iron-request` instance based
400 | * on the current state of the `iron-ajax` instance's properties.
401 | *
402 | * @return {{
403 | * url: string,
404 | * method: (string|undefined),
405 | * async: (boolean|undefined),
406 | * body:
407 | * (ArrayBuffer|ArrayBufferView|Blob|Document|FormData|null|string|undefined|Object),
408 | * headers: (Object|undefined),
409 | * handleAs: (string|undefined),
410 | * jsonPrefix: (string|undefined),
411 | * withCredentials: (boolean|undefined)}}
412 | */
413 | toRequestOptions: function() {
414 | return {
415 | url: this.requestUrl || '',
416 | method: this.method,
417 | headers: this.requestHeaders,
418 | body: this.body,
419 | async: !this.sync,
420 | handleAs: this.handleAs,
421 | jsonPrefix: this.jsonPrefix,
422 | withCredentials: this.withCredentials,
423 | timeout: this.timeout,
424 | rejectWithRequest: this.rejectWithRequest,
425 | };
426 | },
427 |
428 | /**
429 | * Performs an AJAX request to the specified URL.
430 | *
431 | * @return {!IronRequestElement}
432 | */
433 | generateRequest: function() {
434 | var request = /** @type {!IronRequestElement} */ (
435 | document.createElement('iron-request'));
436 | var requestOptions = this.toRequestOptions();
437 |
438 | this.push('activeRequests', request);
439 |
440 | request.completes.then(this._boundHandleResponse)
441 | .catch(this._handleError.bind(this, request))
442 | .then(this._discardRequest.bind(this, request));
443 |
444 | var evt = this.fire(
445 | 'iron-ajax-presend',
446 | {request: request, options: requestOptions},
447 | {bubbles: this.bubbles, cancelable: true});
448 |
449 | if (evt.defaultPrevented) {
450 | request.abort();
451 | request.rejectCompletes(request);
452 | return request;
453 | }
454 |
455 | if (this.lastRequest) {
456 | this.lastRequest.removeEventListener(
457 | 'iron-request-progress-changed', this._boundOnProgressChanged);
458 | }
459 |
460 | request.addEventListener(
461 | 'iron-request-progress-changed', this._boundOnProgressChanged);
462 |
463 | request.send(requestOptions);
464 | this._setLastProgress(null);
465 | this._setLastRequest(request);
466 | this._setLoading(true);
467 |
468 | this.fire(
469 | 'request',
470 | {request: request, options: requestOptions},
471 | {bubbles: this.bubbles, composed: true});
472 |
473 | this.fire(
474 | 'iron-ajax-request',
475 | {request: request, options: requestOptions},
476 | {bubbles: this.bubbles, composed: true});
477 |
478 | return request;
479 | },
480 |
481 | _handleResponse: function(request) {
482 | if (request === this.lastRequest) {
483 | this._setLastResponse(request.response);
484 | this._setLastError(null);
485 | this._setLoading(false);
486 | }
487 | this.fire('response', request, {bubbles: this.bubbles, composed: true});
488 | this.fire(
489 | 'iron-ajax-response', request, {bubbles: this.bubbles, composed: true});
490 | },
491 |
492 | _handleError: function(request, error) {
493 | if (this.verbose) {
494 | Base._error(error);
495 | }
496 |
497 | if (request === this.lastRequest) {
498 | this._setLastError({
499 | request: request,
500 | error: error,
501 | status: request.xhr.status,
502 | statusText: request.xhr.statusText,
503 | response: request.xhr.response
504 | });
505 | this._setLastResponse(null);
506 | this._setLoading(false);
507 | }
508 |
509 | // Tests fail if this goes after the normal this.fire('error', ...)
510 | this.fire(
511 | 'iron-ajax-error',
512 | {request: request, error: error},
513 | {bubbles: this.bubbles, composed: true});
514 |
515 | this.fire(
516 | 'error',
517 | {request: request, error: error},
518 | {bubbles: this.bubbles, composed: true});
519 | },
520 |
521 | _discardRequest: function(request) {
522 | var requestIndex = this.activeRequests.indexOf(request);
523 |
524 | if (requestIndex > -1) {
525 | this.splice('activeRequests', requestIndex, 1);
526 | }
527 | },
528 |
529 | _requestOptionsChanged: function() {
530 | this.debounce('generate-request', function() {
531 | if (this.url == null) {
532 | return;
533 | }
534 |
535 | if (this.auto) {
536 | this.generateRequest();
537 | }
538 | }, this.debounceDuration);
539 | },
540 |
541 | });
542 |
--------------------------------------------------------------------------------
/iron-request.js:
--------------------------------------------------------------------------------
1 | /**
2 | @license
3 | Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
4 | This code may only be used under the BSD style license found at
5 | http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
6 | http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
7 | found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
8 | part of the polymer project is also subject to an additional IP rights grant
9 | found at http://polymer.github.io/PATENTS.txt
10 | */
11 | import {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';
12 | import {Base} from '@polymer/polymer/polymer-legacy.js';
13 |
14 | /*
15 | iron-request can be used to perform XMLHttpRequests.
16 |
17 |
18 | ...
19 | this.$.xhr.send({url: url, body: params});
20 | */
21 | Polymer({
22 | is: 'iron-request',
23 | /** @override */
24 | _template: null,
25 |
26 | hostAttributes: {hidden: true},
27 |
28 | properties: {
29 |
30 | /**
31 | * A reference to the XMLHttpRequest instance used to generate the
32 | * network request.
33 | *
34 | * @type {XMLHttpRequest}
35 | */
36 | xhr: {
37 | type: Object,
38 | notify: true,
39 | readOnly: true,
40 | value: function() {
41 | return new XMLHttpRequest();
42 | }
43 | },
44 |
45 | /**
46 | * A reference to the parsed response body, if the `xhr` has completely
47 | * resolved.
48 | *
49 | * @type {*}
50 | * @default null
51 | */
52 | response: {
53 | type: Object,
54 | notify: true,
55 | readOnly: true,
56 | value: function() {
57 | return null;
58 | }
59 | },
60 |
61 | /**
62 | * A reference to the status code, if the `xhr` has completely resolved.
63 | */
64 | status: {type: Number, notify: true, readOnly: true, value: 0},
65 |
66 | /**
67 | * A reference to the status text, if the `xhr` has completely resolved.
68 | */
69 | statusText: {type: String, notify: true, readOnly: true, value: ''},
70 |
71 | /**
72 | * A promise that resolves when the `xhr` response comes back, or rejects
73 | * if there is an error before the `xhr` completes.
74 | * The resolve callback is called with the original request as an argument.
75 | * By default, the reject callback is called with an `Error` as an argument.
76 | * If `rejectWithRequest` is true, the reject callback is called with an
77 | * object with two keys: `request`, the original request, and `error`, the
78 | * error object.
79 | *
80 | * @type {Promise}
81 | */
82 | completes: {
83 | type: Object,
84 | readOnly: true,
85 | notify: true,
86 | value: function() {
87 | return new Promise(function(resolve, reject) {
88 | this.resolveCompletes = resolve;
89 | this.rejectCompletes = reject;
90 | }.bind(this));
91 | }
92 | },
93 |
94 | /**
95 | * An object that contains progress information emitted by the XHR if
96 | * available.
97 | *
98 | * @default {}
99 | */
100 | progress: {
101 | type: Object,
102 | notify: true,
103 | readOnly: true,
104 | value: function() {
105 | return {};
106 | }
107 | },
108 |
109 | /**
110 | * Aborted will be true if an abort of the request is attempted.
111 | */
112 | aborted: {
113 | type: Boolean,
114 | notify: true,
115 | readOnly: true,
116 | value: false,
117 | },
118 |
119 | /**
120 | * Errored will be true if the browser fired an error event from the
121 | * XHR object (mainly network errors).
122 | */
123 | errored: {type: Boolean, notify: true, readOnly: true, value: false},
124 |
125 | /**
126 | * TimedOut will be true if the XHR threw a timeout event.
127 | */
128 | timedOut: {type: Boolean, notify: true, readOnly: true, value: false}
129 | },
130 |
131 | /**
132 | * Succeeded is true if the request succeeded. The request succeeded if it
133 | * loaded without error, wasn't aborted, and the status code is ≥ 200, and
134 | * < 300, or if the status code is 0.
135 | *
136 | * The status code 0 is accepted as a success because some schemes - e.g.
137 | * file:// - don't provide status codes.
138 | *
139 | * @return {boolean}
140 | */
141 | get succeeded() {
142 | if (this.errored || this.aborted || this.timedOut) {
143 | return false;
144 | }
145 | var status = this.xhr.status || 0;
146 |
147 | // Note: if we are using the file:// protocol, the status code will be 0
148 | // for all outcomes (successful or otherwise).
149 | return status === 0 || (status >= 200 && status < 300);
150 | },
151 |
152 | /**
153 | * Sends an HTTP request to the server and returns a promise (see the
154 | * `completes` property for details).
155 | *
156 | * The handling of the `body` parameter will vary based on the Content-Type
157 | * header. See the docs for iron-ajax's `body` property for details.
158 | *
159 | * @param {{
160 | * url: string,
161 | * method: (string|undefined),
162 | * async: (boolean|undefined),
163 | * body:
164 | * (ArrayBuffer|ArrayBufferView|Blob|Document|FormData|null|string|undefined|Object),
165 | * headers: (Object|undefined),
166 | * handleAs: (string|undefined),
167 | * jsonPrefix: (string|undefined),
168 | * withCredentials: (boolean|undefined),
169 | * timeout: (number|undefined),
170 | * rejectWithRequest: (boolean|undefined)}} options -
171 | * - url The url to which the request is sent.
172 | * - method The HTTP method to use, default is GET.
173 | * - async By default, all requests are sent asynchronously. To send
174 | * synchronous requests, set to false.
175 | * - body The content for the request body for POST method.
176 | * - headers HTTP request headers.
177 | * - handleAs The response type. Default is 'text'.
178 | * - withCredentials Whether or not to send credentials on the request.
179 | * Default is false.
180 | * - timeout - Timeout for request, in milliseconds.
181 | * - rejectWithRequest Set to true to include the request object with
182 | * promise rejections.
183 | * @return {Promise}
184 | */
185 | send: function(options) {
186 | var xhr = this.xhr;
187 |
188 | if (xhr.readyState > 0) {
189 | return null;
190 | }
191 |
192 | xhr.addEventListener('progress', function(progress) {
193 | this._setProgress({
194 | lengthComputable: progress.lengthComputable,
195 | loaded: progress.loaded,
196 | total: progress.total
197 | });
198 |
199 | // Webcomponents v1 spec does not fire *-changed events when not connected
200 | this.fire('iron-request-progress-changed', {value: this.progress});
201 | }.bind(this))
202 |
203 | xhr.addEventListener('error', function(error) {
204 | this._setErrored(true);
205 | this._updateStatus();
206 | var response =
207 | options.rejectWithRequest ? {error: error, request: this} : error;
208 | this.rejectCompletes(response);
209 | }.bind(this));
210 |
211 | xhr.addEventListener('timeout', function(error) {
212 | this._setTimedOut(true);
213 | this._updateStatus();
214 | var response =
215 | options.rejectWithRequest ? {error: error, request: this} : error;
216 | this.rejectCompletes(response);
217 | }.bind(this));
218 |
219 | xhr.addEventListener('abort', function() {
220 | this._setAborted(true);
221 | this._updateStatus();
222 | var error = new Error('Request aborted.');
223 | var response =
224 | options.rejectWithRequest ? {error: error, request: this} : error;
225 | this.rejectCompletes(response);
226 | }.bind(this));
227 |
228 | // Called after all of the above.
229 | xhr.addEventListener('loadend', function() {
230 | this._updateStatus();
231 | this._setResponse(this.parseResponse());
232 |
233 | if (!this.succeeded) {
234 | var error = new Error(
235 | 'The request failed with status code: ' + this.xhr.status);
236 | var response =
237 | options.rejectWithRequest ? {error: error, request: this} : error;
238 | this.rejectCompletes(response);
239 | return;
240 | }
241 |
242 | this.resolveCompletes(this);
243 | }.bind(this));
244 |
245 | this.url = options.url;
246 | var isXHRAsync = options.async !== false;
247 | xhr.open(options.method || 'GET', options.url, isXHRAsync);
248 |
249 | var acceptType = {
250 | 'json': 'application/json',
251 | 'text': 'text/plain',
252 | 'html': 'text/html',
253 | 'xml': 'application/xml',
254 | 'arraybuffer': 'application/octet-stream'
255 | }[options.handleAs];
256 | var headers = options.headers || Object.create(null);
257 | var newHeaders = Object.create(null);
258 | for (var key in headers) {
259 | newHeaders[key.toLowerCase()] = headers[key];
260 | }
261 | headers = newHeaders;
262 |
263 | if (acceptType && !headers['accept']) {
264 | headers['accept'] = acceptType;
265 | }
266 | Object.keys(headers).forEach(function(requestHeader) {
267 | if (/[A-Z]/.test(requestHeader)) {
268 | Base._error('Headers must be lower case, got', requestHeader);
269 | }
270 | xhr.setRequestHeader(requestHeader, headers[requestHeader]);
271 | }, this);
272 |
273 | if (isXHRAsync) {
274 | xhr.timeout = options.timeout || 0;
275 |
276 | var handleAs = options.handleAs;
277 |
278 | // If a JSON prefix is present, the responseType must be 'text' or the
279 | // browser won’t be able to parse the response.
280 | if (!!options.jsonPrefix || !handleAs) {
281 | handleAs = 'text';
282 | }
283 |
284 | // In IE, `xhr.responseType` is an empty string when the response
285 | // returns. Hence, caching it as `xhr._responseType`.
286 | xhr.responseType = xhr._responseType = handleAs;
287 |
288 | // Cache the JSON prefix, if it exists.
289 | if (!!options.jsonPrefix) {
290 | xhr._jsonPrefix = options.jsonPrefix;
291 | }
292 | }
293 |
294 | xhr.withCredentials = !!options.withCredentials;
295 |
296 |
297 | var body = this._encodeBodyObject(options.body, headers['content-type']);
298 |
299 | xhr.send(
300 | /**
301 | @type {ArrayBuffer|ArrayBufferView|Blob|Document|FormData|
302 | null|string|undefined}
303 | */
304 | (body));
305 |
306 | return this.completes;
307 | },
308 |
309 | /**
310 | * Attempts to parse the response body of the XHR. If parsing succeeds,
311 | * the value returned will be deserialized based on the `responseType`
312 | * set on the XHR.
313 | *
314 | * @return {*} The parsed response,
315 | * or undefined if there was an empty response or parsing failed.
316 | */
317 | parseResponse: function() {
318 | var xhr = this.xhr;
319 | var responseType = xhr.responseType || xhr._responseType;
320 | var preferResponseText = !this.xhr.responseType;
321 | var prefixLen = (xhr._jsonPrefix && xhr._jsonPrefix.length) || 0;
322 |
323 | try {
324 | switch (responseType) {
325 | case 'json':
326 | // If the xhr object doesn't have a natural `xhr.responseType`,
327 | // we can assume that the browser hasn't parsed the response for us,
328 | // and so parsing is our responsibility. Likewise if response is
329 | // undefined, as there's no way to encode undefined in JSON.
330 | if (preferResponseText || xhr.response === undefined) {
331 | // Try to emulate the JSON section of the response body section of
332 | // the spec: https://xhr.spec.whatwg.org/#response-body
333 | // That is to say, we try to parse as JSON, but if anything goes
334 | // wrong return null.
335 | try {
336 | return JSON.parse(xhr.responseText);
337 | } catch (_) {
338 | console.warn('Failed to parse JSON sent from ' + xhr.responseURL);
339 | return null;
340 | }
341 | }
342 |
343 | return xhr.response;
344 | case 'xml':
345 | return xhr.responseXML;
346 | case 'blob':
347 | case 'document':
348 | case 'arraybuffer':
349 | return xhr.response;
350 | case 'text':
351 | default: {
352 | // If `prefixLen` is set, it implies the response should be parsed
353 | // as JSON once the prefix of length `prefixLen` is stripped from
354 | // it. Emulate the behavior above where null is returned on failure
355 | // to parse.
356 | if (prefixLen) {
357 | try {
358 | return JSON.parse(xhr.responseText.substring(prefixLen));
359 | } catch (_) {
360 | console.warn('Failed to parse JSON sent from ' + xhr.responseURL);
361 | return null;
362 | }
363 | }
364 | return xhr.responseText;
365 | }
366 | }
367 | } catch (e) {
368 | this.rejectCompletes(new Error('Could not parse response. ' + e.message));
369 | }
370 | },
371 |
372 | /**
373 | * Aborts the request.
374 | */
375 | abort: function() {
376 | this._setAborted(true);
377 | this.xhr.abort();
378 | },
379 |
380 | /**
381 | * @param {*} body The given body of the request to try and encode.
382 | * @param {?string} contentType The given content type, to infer an encoding
383 | * from.
384 | * @return {*} Either the encoded body as a string, if successful,
385 | * or the unaltered body object if no encoding could be inferred.
386 | */
387 | _encodeBodyObject: function(body, contentType) {
388 | if (typeof body == 'string') {
389 | return body; // Already encoded.
390 | }
391 | var bodyObj = /** @type {Object} */ (body);
392 | switch (contentType) {
393 | case ('application/json'):
394 | return JSON.stringify(bodyObj);
395 | case ('application/x-www-form-urlencoded'):
396 | return this._wwwFormUrlEncode(bodyObj);
397 | }
398 | return body;
399 | },
400 |
401 | /**
402 | * @param {Object} object The object to encode as x-www-form-urlencoded.
403 | * @return {string} .
404 | */
405 | _wwwFormUrlEncode: function(object) {
406 | if (!object) {
407 | return '';
408 | }
409 | var pieces = [];
410 | Object.keys(object).forEach(function(key) {
411 | // TODO(rictic): handle array values here, in a consistent way with
412 | // iron-ajax params.
413 | pieces.push(
414 | this._wwwFormUrlEncodePiece(key) + '=' +
415 | this._wwwFormUrlEncodePiece(object[key]));
416 | }, this);
417 | return pieces.join('&');
418 | },
419 |
420 | /**
421 | * @param {*} str A key or value to encode as x-www-form-urlencoded.
422 | * @return {string} .
423 | */
424 | _wwwFormUrlEncodePiece: function(str) {
425 | // Spec says to normalize newlines to \r\n and replace %20 spaces with +.
426 | // jQuery does this as well, so this is likely to be widely compatible.
427 | if (str === null || str === undefined || !str.toString) {
428 | return '';
429 | }
430 |
431 | return encodeURIComponent(str.toString().replace(/\r?\n/g, '\r\n'))
432 | .replace(/%20/g, '+');
433 | },
434 |
435 | /**
436 | * Updates the status code and status text.
437 | */
438 | _updateStatus: function() {
439 | this._setStatus(this.xhr.status);
440 | this._setStatusText(
441 | (this.xhr.statusText === undefined) ? '' : this.xhr.statusText);
442 | }
443 | });
444 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@polymer/iron-ajax",
3 | "version": "3.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.0.0",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
10 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.0.0"
14 | }
15 | },
16 | "@babel/generator": {
17 | "version": "7.0.0",
18 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0.tgz",
19 | "integrity": "sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q==",
20 | "dev": true,
21 | "requires": {
22 | "@babel/types": "^7.0.0",
23 | "jsesc": "^2.5.1",
24 | "lodash": "^4.17.10",
25 | "source-map": "^0.5.0",
26 | "trim-right": "^1.0.1"
27 | },
28 | "dependencies": {
29 | "source-map": {
30 | "version": "0.5.7",
31 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
32 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
33 | "dev": true
34 | }
35 | }
36 | },
37 | "@babel/helper-function-name": {
38 | "version": "7.0.0",
39 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0.tgz",
40 | "integrity": "sha512-Zo+LGvfYp4rMtz84BLF3bavFTdf8y4rJtMPTe2J+rxYmnDOIeH8le++VFI/pRJU+rQhjqiXxE4LMaIau28Tv1Q==",
41 | "dev": true,
42 | "requires": {
43 | "@babel/helper-get-function-arity": "^7.0.0",
44 | "@babel/template": "^7.0.0",
45 | "@babel/types": "^7.0.0"
46 | }
47 | },
48 | "@babel/helper-get-function-arity": {
49 | "version": "7.0.0",
50 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
51 | "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
52 | "dev": true,
53 | "requires": {
54 | "@babel/types": "^7.0.0"
55 | }
56 | },
57 | "@babel/helper-split-export-declaration": {
58 | "version": "7.0.0",
59 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
60 | "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
61 | "dev": true,
62 | "requires": {
63 | "@babel/types": "^7.0.0"
64 | }
65 | },
66 | "@babel/highlight": {
67 | "version": "7.0.0",
68 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
69 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
70 | "dev": true,
71 | "requires": {
72 | "chalk": "^2.0.0",
73 | "esutils": "^2.0.2",
74 | "js-tokens": "^4.0.0"
75 | }
76 | },
77 | "@babel/parser": {
78 | "version": "7.0.0",
79 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0.tgz",
80 | "integrity": "sha512-RgJhNdRinpO8zibnoHbzTTexNs4c8ROkXFBanNDZTLHjwbdLk8J5cJSKulx/bycWTLYmKVNCkxRtVCoJnqPk+g==",
81 | "dev": true
82 | },
83 | "@babel/template": {
84 | "version": "7.0.0",
85 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0.tgz",
86 | "integrity": "sha512-VLQZik/G5mjYJ6u19U3W2u7eM+rA/NGzH+GtHDFFkLTKLW66OasFrxZ/yK7hkyQcswrmvugFyZpDFRW0DjcjCw==",
87 | "dev": true,
88 | "requires": {
89 | "@babel/code-frame": "^7.0.0",
90 | "@babel/parser": "^7.0.0",
91 | "@babel/types": "^7.0.0"
92 | }
93 | },
94 | "@babel/traverse": {
95 | "version": "7.0.0",
96 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0.tgz",
97 | "integrity": "sha512-ka/lwaonJZTlJyn97C4g5FYjPOx+Oxd3ab05hbDr1Mx9aP1FclJ+SUHyLx3Tx40sGmOVJApDxE6puJhd3ld2kw==",
98 | "dev": true,
99 | "requires": {
100 | "@babel/code-frame": "^7.0.0",
101 | "@babel/generator": "^7.0.0",
102 | "@babel/helper-function-name": "^7.0.0",
103 | "@babel/helper-split-export-declaration": "^7.0.0",
104 | "@babel/parser": "^7.0.0",
105 | "@babel/types": "^7.0.0",
106 | "debug": "^3.1.0",
107 | "globals": "^11.1.0",
108 | "lodash": "^4.17.10"
109 | }
110 | },
111 | "@babel/types": {
112 | "version": "7.0.0",
113 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz",
114 | "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==",
115 | "dev": true,
116 | "requires": {
117 | "esutils": "^2.0.2",
118 | "lodash": "^4.17.10",
119 | "to-fast-properties": "^2.0.0"
120 | }
121 | },
122 | "@mrmlnc/readdir-enhanced": {
123 | "version": "2.2.1",
124 | "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
125 | "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
126 | "dev": true,
127 | "requires": {
128 | "call-me-maybe": "^1.0.1",
129 | "glob-to-regexp": "^0.3.0"
130 | }
131 | },
132 | "@nodelib/fs.stat": {
133 | "version": "1.1.2",
134 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz",
135 | "integrity": "sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw==",
136 | "dev": true
137 | },
138 | "@polymer/gen-typescript-declarations": {
139 | "version": "1.5.1",
140 | "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.5.1.tgz",
141 | "integrity": "sha512-9MPXvkP543SsVb3TwcxAHrFyvjQEbJbUokGrUMs0RGhGqXwSeQRa390AazNHJePOypze1R0VQ9I0WfkP6JlrBg==",
142 | "dev": true,
143 | "requires": {
144 | "@babel/types": "^7.0.0-beta.42",
145 | "@types/command-line-args": "^5.0.0",
146 | "@types/command-line-usage": "^5.0.1",
147 | "@types/doctrine": "0.0.3",
148 | "@types/fs-extra": "^5.0.0",
149 | "@types/glob": "^5.0.35",
150 | "@types/parse5": "^2.2.34",
151 | "babylon": "^7.0.0-beta.42",
152 | "command-line-args": "^5.0.1",
153 | "command-line-usage": "^5.0.2",
154 | "doctrine": "^2.0.0",
155 | "escodegen": "^1.9.0",
156 | "fs-extra": "^6.0.1",
157 | "glob": "^7.1.2",
158 | "minimatch": "^3.0.4",
159 | "polymer-analyzer": "^3.0.2",
160 | "typescript": "^3.0.1",
161 | "vscode-uri": "^1.0.3"
162 | }
163 | },
164 | "@polymer/iron-image": {
165 | "version": "3.0.0-pre.26",
166 | "resolved": "https://registry.npmjs.org/@polymer/iron-image/-/iron-image-3.0.0-pre.26.tgz",
167 | "integrity": "sha512-I2Sw29klocEmn4fLCXuXEqnC6NZDUlnfhQF3SO7H3G0f16ItOZFBFf+5SqoU2sz3ek+ljF2m8qxPly8cnK80Ug==",
168 | "dev": true,
169 | "requires": {
170 | "@polymer/polymer": "^3.0.0"
171 | }
172 | },
173 | "@polymer/polymer": {
174 | "version": "3.0.5",
175 | "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.0.5.tgz",
176 | "integrity": "sha512-Zbmhtr5vZ3NoHWwFYLKI4ff7yfE6DZopI8vaS7HvmUIuNqsv/EpEDXfNEYjqePQmkMX5LU9OIKV1eX/+9aveow==",
177 | "requires": {
178 | "@webcomponents/shadycss": "^1.2.0"
179 | }
180 | },
181 | "@polymer/sinonjs": {
182 | "version": "1.17.1",
183 | "resolved": "https://registry.npmjs.org/@polymer/sinonjs/-/sinonjs-1.17.1.tgz",
184 | "integrity": "sha512-/U8F/cOTrbF2iVVYgINYmvKbtbexs+89Q3v8AaHADRYabTg7aOZGOb0RyWpOI+sUJt04kj63U4FwMhzW5r4wZA==",
185 | "dev": true
186 | },
187 | "@polymer/test-fixture": {
188 | "version": "4.0.1",
189 | "resolved": "https://registry.npmjs.org/@polymer/test-fixture/-/test-fixture-4.0.1.tgz",
190 | "integrity": "sha512-jEx9n4o2bFLdSUKul60Si+VwC9GWa1G5fqU+awX4yfSTQaZTnMeS9o47nD+4RvL6wVc8Iu6iOZ5o3SbHMYbrdA==",
191 | "dev": true
192 | },
193 | "@types/babel-generator": {
194 | "version": "6.25.2",
195 | "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.2.tgz",
196 | "integrity": "sha512-W7PQkeDlYOqJblfNeqZARwj4W8nO+ZhQQZksU8+wbaKuHeUdIVUAdREO/Qb0FfNr3CY5Sq1gNtqsyFeZfS3iSw==",
197 | "dev": true,
198 | "requires": {
199 | "@types/babel-types": "*"
200 | }
201 | },
202 | "@types/babel-traverse": {
203 | "version": "6.25.4",
204 | "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.4.tgz",
205 | "integrity": "sha512-+/670NaZE7qPvdh8EtGds32/2uHFKE5JeS+7ePH6nGwF8Wj8r671/RkTiJQP2k22nFntWEb9xQ11MFj7xEqI0g==",
206 | "dev": true,
207 | "requires": {
208 | "@types/babel-types": "*"
209 | }
210 | },
211 | "@types/babel-types": {
212 | "version": "6.25.2",
213 | "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz",
214 | "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==",
215 | "dev": true
216 | },
217 | "@types/babylon": {
218 | "version": "6.16.3",
219 | "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.3.tgz",
220 | "integrity": "sha512-lyJ8sW1PbY3uwuvpOBZ9zMYKshMnQpXmeDHh8dj9j2nJm/xrW0FgB5gLSYOArj5X0IfaXnmhFoJnhS4KbqIMug==",
221 | "dev": true,
222 | "requires": {
223 | "@types/babel-types": "*"
224 | }
225 | },
226 | "@types/chai": {
227 | "version": "4.1.4",
228 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.4.tgz",
229 | "integrity": "sha512-h6+VEw2Vr3ORiFCyyJmcho2zALnUq9cvdB/IO8Xs9itrJVCenC7o26A6+m7D0ihTTr65eS259H5/Ghl/VjYs6g==",
230 | "dev": true
231 | },
232 | "@types/chai-subset": {
233 | "version": "1.3.1",
234 | "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz",
235 | "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==",
236 | "dev": true,
237 | "requires": {
238 | "@types/chai": "*"
239 | }
240 | },
241 | "@types/chalk": {
242 | "version": "0.4.31",
243 | "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz",
244 | "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=",
245 | "dev": true
246 | },
247 | "@types/clone": {
248 | "version": "0.1.30",
249 | "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz",
250 | "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=",
251 | "dev": true
252 | },
253 | "@types/command-line-args": {
254 | "version": "5.0.0",
255 | "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.0.0.tgz",
256 | "integrity": "sha512-4eOPXyn5DmP64MCMF8ePDvdlvlzt2a+F8ZaVjqmh2yFCpGjc1kI3kGnCFYX9SCsGTjQcWIyVZ86IHCEyjy/MNg==",
257 | "dev": true
258 | },
259 | "@types/command-line-usage": {
260 | "version": "5.0.1",
261 | "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.1.tgz",
262 | "integrity": "sha512-/xUgezxxYePeXhg5S04hUjxG9JZi+rJTs1+4NwpYPfSaS7BeDa6tVJkH6lN9Cb6rl8d24Fi2uX0s0Ngg2JT6gg==",
263 | "dev": true
264 | },
265 | "@types/cssbeautify": {
266 | "version": "0.3.1",
267 | "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz",
268 | "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=",
269 | "dev": true
270 | },
271 | "@types/doctrine": {
272 | "version": "0.0.3",
273 | "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz",
274 | "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=",
275 | "dev": true
276 | },
277 | "@types/events": {
278 | "version": "1.2.0",
279 | "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz",
280 | "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==",
281 | "dev": true
282 | },
283 | "@types/fs-extra": {
284 | "version": "5.0.4",
285 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz",
286 | "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==",
287 | "dev": true,
288 | "requires": {
289 | "@types/node": "*"
290 | }
291 | },
292 | "@types/glob": {
293 | "version": "5.0.35",
294 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz",
295 | "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==",
296 | "dev": true,
297 | "requires": {
298 | "@types/events": "*",
299 | "@types/minimatch": "*",
300 | "@types/node": "*"
301 | }
302 | },
303 | "@types/is-windows": {
304 | "version": "0.2.0",
305 | "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz",
306 | "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=",
307 | "dev": true
308 | },
309 | "@types/minimatch": {
310 | "version": "3.0.3",
311 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
312 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
313 | "dev": true
314 | },
315 | "@types/node": {
316 | "version": "10.9.4",
317 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.4.tgz",
318 | "integrity": "sha512-fCHV45gS+m3hH17zgkgADUSi2RR1Vht6wOZ0jyHP8rjiQra9f+mIcgwPQHllmDocYOstIEbKlxbFDYlgrTPYqw==",
319 | "dev": true
320 | },
321 | "@types/parse5": {
322 | "version": "2.2.34",
323 | "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz",
324 | "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=",
325 | "dev": true,
326 | "requires": {
327 | "@types/node": "*"
328 | }
329 | },
330 | "@types/path-is-inside": {
331 | "version": "1.0.0",
332 | "resolved": "https://registry.npmjs.org/@types/path-is-inside/-/path-is-inside-1.0.0.tgz",
333 | "integrity": "sha512-hfnXRGugz+McgX2jxyy5qz9sB21LRzlGn24zlwN2KEgoPtEvjzNRrLtUkOOebPDPZl3Rq7ywKxYvylVcEZDnEw==",
334 | "dev": true
335 | },
336 | "@types/resolve": {
337 | "version": "0.0.6",
338 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz",
339 | "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==",
340 | "dev": true,
341 | "requires": {
342 | "@types/node": "*"
343 | }
344 | },
345 | "@types/whatwg-url": {
346 | "version": "6.4.0",
347 | "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-6.4.0.tgz",
348 | "integrity": "sha512-tonhlcbQ2eho09am6RHnHOgvtDfDYINd5rgxD+2YSkKENooVCFsWizJz139MQW/PV8FfClyKrNe9ZbdHrSCxGg==",
349 | "dev": true,
350 | "requires": {
351 | "@types/node": "*"
352 | }
353 | },
354 | "@webcomponents/shadycss": {
355 | "version": "1.5.0",
356 | "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.5.0.tgz",
357 | "integrity": "sha512-jNuC7alo3EfiqZPosCruJuMAaUI9qgiuGxFcFyPWjOpo4BP+vgC7hxpTzQYxbIWUgrqkn9lnfPup2hE9c/h/PQ=="
358 | },
359 | "@webcomponents/webcomponentsjs": {
360 | "version": "2.1.1",
361 | "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.1.1.tgz",
362 | "integrity": "sha512-CgXV1O94jruR0YVijA55bP4SQBRvRKDmByWce47vCZIJ3HPHOph0VtjpO5vYEUyZzfadqfjICBMkZOagTT9XQw==",
363 | "dev": true
364 | },
365 | "accessibility-developer-tools": {
366 | "version": "2.12.0",
367 | "resolved": "https://registry.npmjs.org/accessibility-developer-tools/-/accessibility-developer-tools-2.12.0.tgz",
368 | "integrity": "sha1-PaDM6dbsY3OWS4TzXbfPw996tRQ=",
369 | "dev": true
370 | },
371 | "ansi-regex": {
372 | "version": "2.1.1",
373 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
374 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
375 | "dev": true
376 | },
377 | "ansi-styles": {
378 | "version": "3.2.1",
379 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
380 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
381 | "dev": true,
382 | "requires": {
383 | "color-convert": "^1.9.0"
384 | }
385 | },
386 | "argv-tools": {
387 | "version": "0.1.1",
388 | "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz",
389 | "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==",
390 | "dev": true,
391 | "requires": {
392 | "array-back": "^2.0.0",
393 | "find-replace": "^2.0.1"
394 | }
395 | },
396 | "arr-diff": {
397 | "version": "4.0.0",
398 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
399 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
400 | "dev": true
401 | },
402 | "arr-flatten": {
403 | "version": "1.1.0",
404 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
405 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
406 | "dev": true
407 | },
408 | "arr-union": {
409 | "version": "3.1.0",
410 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
411 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
412 | "dev": true
413 | },
414 | "array-back": {
415 | "version": "2.0.0",
416 | "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
417 | "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
418 | "dev": true,
419 | "requires": {
420 | "typical": "^2.6.1"
421 | }
422 | },
423 | "array-unique": {
424 | "version": "0.3.2",
425 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
426 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
427 | "dev": true
428 | },
429 | "assertion-error": {
430 | "version": "1.1.0",
431 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
432 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
433 | "dev": true
434 | },
435 | "assign-symbols": {
436 | "version": "1.0.0",
437 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
438 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
439 | "dev": true
440 | },
441 | "async": {
442 | "version": "1.5.2",
443 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
444 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
445 | "dev": true
446 | },
447 | "atob": {
448 | "version": "2.1.2",
449 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
450 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
451 | "dev": true
452 | },
453 | "babylon": {
454 | "version": "7.0.0-beta.47",
455 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz",
456 | "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==",
457 | "dev": true
458 | },
459 | "balanced-match": {
460 | "version": "1.0.0",
461 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
462 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
463 | "dev": true
464 | },
465 | "base": {
466 | "version": "0.11.2",
467 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
468 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
469 | "dev": true,
470 | "requires": {
471 | "cache-base": "^1.0.1",
472 | "class-utils": "^0.3.5",
473 | "component-emitter": "^1.2.1",
474 | "define-property": "^1.0.0",
475 | "isobject": "^3.0.1",
476 | "mixin-deep": "^1.2.0",
477 | "pascalcase": "^0.1.1"
478 | },
479 | "dependencies": {
480 | "define-property": {
481 | "version": "1.0.0",
482 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
483 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
484 | "dev": true,
485 | "requires": {
486 | "is-descriptor": "^1.0.0"
487 | }
488 | },
489 | "is-accessor-descriptor": {
490 | "version": "1.0.0",
491 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
492 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
493 | "dev": true,
494 | "requires": {
495 | "kind-of": "^6.0.0"
496 | }
497 | },
498 | "is-data-descriptor": {
499 | "version": "1.0.0",
500 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
501 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
502 | "dev": true,
503 | "requires": {
504 | "kind-of": "^6.0.0"
505 | }
506 | },
507 | "is-descriptor": {
508 | "version": "1.0.2",
509 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
510 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
511 | "dev": true,
512 | "requires": {
513 | "is-accessor-descriptor": "^1.0.0",
514 | "is-data-descriptor": "^1.0.0",
515 | "kind-of": "^6.0.2"
516 | }
517 | }
518 | }
519 | },
520 | "brace-expansion": {
521 | "version": "1.1.11",
522 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
523 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
524 | "dev": true,
525 | "requires": {
526 | "balanced-match": "^1.0.0",
527 | "concat-map": "0.0.1"
528 | }
529 | },
530 | "braces": {
531 | "version": "2.3.2",
532 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
533 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
534 | "dev": true,
535 | "requires": {
536 | "arr-flatten": "^1.1.0",
537 | "array-unique": "^0.3.2",
538 | "extend-shallow": "^2.0.1",
539 | "fill-range": "^4.0.0",
540 | "isobject": "^3.0.1",
541 | "repeat-element": "^1.1.2",
542 | "snapdragon": "^0.8.1",
543 | "snapdragon-node": "^2.0.1",
544 | "split-string": "^3.0.2",
545 | "to-regex": "^3.0.1"
546 | },
547 | "dependencies": {
548 | "extend-shallow": {
549 | "version": "2.0.1",
550 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
551 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
552 | "dev": true,
553 | "requires": {
554 | "is-extendable": "^0.1.0"
555 | }
556 | }
557 | }
558 | },
559 | "browser-stdout": {
560 | "version": "1.3.0",
561 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
562 | "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
563 | "dev": true
564 | },
565 | "cache-base": {
566 | "version": "1.0.1",
567 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
568 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
569 | "dev": true,
570 | "requires": {
571 | "collection-visit": "^1.0.0",
572 | "component-emitter": "^1.2.1",
573 | "get-value": "^2.0.6",
574 | "has-value": "^1.0.0",
575 | "isobject": "^3.0.1",
576 | "set-value": "^2.0.0",
577 | "to-object-path": "^0.3.0",
578 | "union-value": "^1.0.0",
579 | "unset-value": "^1.0.0"
580 | }
581 | },
582 | "call-me-maybe": {
583 | "version": "1.0.1",
584 | "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
585 | "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
586 | "dev": true
587 | },
588 | "cancel-token": {
589 | "version": "0.1.1",
590 | "resolved": "http://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz",
591 | "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=",
592 | "dev": true,
593 | "requires": {
594 | "@types/node": "^4.0.30"
595 | },
596 | "dependencies": {
597 | "@types/node": {
598 | "version": "4.2.23",
599 | "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz",
600 | "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==",
601 | "dev": true
602 | }
603 | }
604 | },
605 | "chai": {
606 | "version": "3.5.0",
607 | "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
608 | "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
609 | "dev": true,
610 | "requires": {
611 | "assertion-error": "^1.0.1",
612 | "deep-eql": "^0.1.3",
613 | "type-detect": "^1.0.0"
614 | }
615 | },
616 | "chalk": {
617 | "version": "2.4.1",
618 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
619 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
620 | "dev": true,
621 | "requires": {
622 | "ansi-styles": "^3.2.1",
623 | "escape-string-regexp": "^1.0.5",
624 | "supports-color": "^5.3.0"
625 | }
626 | },
627 | "clang-format": {
628 | "version": "1.2.4",
629 | "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.4.tgz",
630 | "integrity": "sha512-sw+nrGUp3hvmANd1qF8vZPuezSYQAiXgGBiEtkXTtJnnu6b00fCqkkDIsnRKrNgg4nv6NYZE92ejvOMIXZoejw==",
631 | "dev": true,
632 | "requires": {
633 | "async": "^1.5.2",
634 | "glob": "^7.0.0",
635 | "resolve": "^1.1.6"
636 | }
637 | },
638 | "class-utils": {
639 | "version": "0.3.6",
640 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
641 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
642 | "dev": true,
643 | "requires": {
644 | "arr-union": "^3.1.0",
645 | "define-property": "^0.2.5",
646 | "isobject": "^3.0.0",
647 | "static-extend": "^0.1.1"
648 | },
649 | "dependencies": {
650 | "define-property": {
651 | "version": "0.2.5",
652 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
653 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
654 | "dev": true,
655 | "requires": {
656 | "is-descriptor": "^0.1.0"
657 | }
658 | }
659 | }
660 | },
661 | "clone": {
662 | "version": "2.1.2",
663 | "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
664 | "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
665 | "dev": true
666 | },
667 | "collection-visit": {
668 | "version": "1.0.0",
669 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
670 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
671 | "dev": true,
672 | "requires": {
673 | "map-visit": "^1.0.0",
674 | "object-visit": "^1.0.0"
675 | }
676 | },
677 | "color-convert": {
678 | "version": "1.9.3",
679 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
680 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
681 | "dev": true,
682 | "requires": {
683 | "color-name": "1.1.3"
684 | }
685 | },
686 | "color-name": {
687 | "version": "1.1.3",
688 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
689 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
690 | "dev": true
691 | },
692 | "command-line-args": {
693 | "version": "5.0.2",
694 | "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz",
695 | "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==",
696 | "dev": true,
697 | "requires": {
698 | "argv-tools": "^0.1.1",
699 | "array-back": "^2.0.0",
700 | "find-replace": "^2.0.1",
701 | "lodash.camelcase": "^4.3.0",
702 | "typical": "^2.6.1"
703 | }
704 | },
705 | "command-line-usage": {
706 | "version": "5.0.5",
707 | "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz",
708 | "integrity": "sha512-d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==",
709 | "dev": true,
710 | "requires": {
711 | "array-back": "^2.0.0",
712 | "chalk": "^2.4.1",
713 | "table-layout": "^0.4.3",
714 | "typical": "^2.6.1"
715 | }
716 | },
717 | "commander": {
718 | "version": "2.9.0",
719 | "resolved": "http://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
720 | "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
721 | "dev": true,
722 | "requires": {
723 | "graceful-readlink": ">= 1.0.0"
724 | }
725 | },
726 | "component-emitter": {
727 | "version": "1.2.1",
728 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
729 | "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
730 | "dev": true
731 | },
732 | "concat-map": {
733 | "version": "0.0.1",
734 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
735 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
736 | "dev": true
737 | },
738 | "copy-descriptor": {
739 | "version": "0.1.1",
740 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
741 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
742 | "dev": true
743 | },
744 | "cssbeautify": {
745 | "version": "0.3.1",
746 | "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz",
747 | "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=",
748 | "dev": true
749 | },
750 | "debug": {
751 | "version": "3.2.5",
752 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz",
753 | "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==",
754 | "dev": true,
755 | "requires": {
756 | "ms": "^2.1.1"
757 | }
758 | },
759 | "decode-uri-component": {
760 | "version": "0.2.0",
761 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
762 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
763 | "dev": true
764 | },
765 | "deep-eql": {
766 | "version": "0.1.3",
767 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
768 | "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
769 | "dev": true,
770 | "requires": {
771 | "type-detect": "0.1.1"
772 | },
773 | "dependencies": {
774 | "type-detect": {
775 | "version": "0.1.1",
776 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
777 | "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
778 | "dev": true
779 | }
780 | }
781 | },
782 | "deep-extend": {
783 | "version": "0.6.0",
784 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
785 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
786 | "dev": true
787 | },
788 | "deep-is": {
789 | "version": "0.1.3",
790 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
791 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
792 | "dev": true
793 | },
794 | "define-property": {
795 | "version": "2.0.2",
796 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
797 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
798 | "dev": true,
799 | "requires": {
800 | "is-descriptor": "^1.0.2",
801 | "isobject": "^3.0.1"
802 | },
803 | "dependencies": {
804 | "is-accessor-descriptor": {
805 | "version": "1.0.0",
806 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
807 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
808 | "dev": true,
809 | "requires": {
810 | "kind-of": "^6.0.0"
811 | }
812 | },
813 | "is-data-descriptor": {
814 | "version": "1.0.0",
815 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
816 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
817 | "dev": true,
818 | "requires": {
819 | "kind-of": "^6.0.0"
820 | }
821 | },
822 | "is-descriptor": {
823 | "version": "1.0.2",
824 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
825 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
826 | "dev": true,
827 | "requires": {
828 | "is-accessor-descriptor": "^1.0.0",
829 | "is-data-descriptor": "^1.0.0",
830 | "kind-of": "^6.0.2"
831 | }
832 | }
833 | }
834 | },
835 | "diff": {
836 | "version": "3.2.0",
837 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz",
838 | "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=",
839 | "dev": true
840 | },
841 | "doctrine": {
842 | "version": "2.1.0",
843 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
844 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
845 | "dev": true,
846 | "requires": {
847 | "esutils": "^2.0.2"
848 | }
849 | },
850 | "dom5": {
851 | "version": "3.0.1",
852 | "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.1.tgz",
853 | "integrity": "sha512-JPFiouQIr16VQ4dX6i0+Hpbg3H2bMKPmZ+WZgBOSSvOPx9QHwwY8sPzeM2baUtViESYto6wC2nuZOMC/6gulcA==",
854 | "dev": true,
855 | "requires": {
856 | "@types/parse5": "^2.2.34",
857 | "clone": "^2.1.0",
858 | "parse5": "^4.0.0"
859 | }
860 | },
861 | "escape-string-regexp": {
862 | "version": "1.0.5",
863 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
864 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
865 | "dev": true
866 | },
867 | "escodegen": {
868 | "version": "1.11.0",
869 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz",
870 | "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==",
871 | "dev": true,
872 | "requires": {
873 | "esprima": "^3.1.3",
874 | "estraverse": "^4.2.0",
875 | "esutils": "^2.0.2",
876 | "optionator": "^0.8.1",
877 | "source-map": "~0.6.1"
878 | }
879 | },
880 | "esprima": {
881 | "version": "3.1.3",
882 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
883 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
884 | "dev": true
885 | },
886 | "estraverse": {
887 | "version": "4.2.0",
888 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
889 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
890 | "dev": true
891 | },
892 | "esutils": {
893 | "version": "2.0.2",
894 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
895 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
896 | "dev": true
897 | },
898 | "expand-brackets": {
899 | "version": "2.1.4",
900 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
901 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
902 | "dev": true,
903 | "requires": {
904 | "debug": "^2.3.3",
905 | "define-property": "^0.2.5",
906 | "extend-shallow": "^2.0.1",
907 | "posix-character-classes": "^0.1.0",
908 | "regex-not": "^1.0.0",
909 | "snapdragon": "^0.8.1",
910 | "to-regex": "^3.0.1"
911 | },
912 | "dependencies": {
913 | "debug": {
914 | "version": "2.6.9",
915 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
916 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
917 | "dev": true,
918 | "requires": {
919 | "ms": "2.0.0"
920 | }
921 | },
922 | "define-property": {
923 | "version": "0.2.5",
924 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
925 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
926 | "dev": true,
927 | "requires": {
928 | "is-descriptor": "^0.1.0"
929 | }
930 | },
931 | "extend-shallow": {
932 | "version": "2.0.1",
933 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
934 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
935 | "dev": true,
936 | "requires": {
937 | "is-extendable": "^0.1.0"
938 | }
939 | },
940 | "ms": {
941 | "version": "2.0.0",
942 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
943 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
944 | "dev": true
945 | }
946 | }
947 | },
948 | "extend-shallow": {
949 | "version": "3.0.2",
950 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
951 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
952 | "dev": true,
953 | "requires": {
954 | "assign-symbols": "^1.0.0",
955 | "is-extendable": "^1.0.1"
956 | },
957 | "dependencies": {
958 | "is-extendable": {
959 | "version": "1.0.1",
960 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
961 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
962 | "dev": true,
963 | "requires": {
964 | "is-plain-object": "^2.0.4"
965 | }
966 | }
967 | }
968 | },
969 | "extglob": {
970 | "version": "2.0.4",
971 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
972 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
973 | "dev": true,
974 | "requires": {
975 | "array-unique": "^0.3.2",
976 | "define-property": "^1.0.0",
977 | "expand-brackets": "^2.1.4",
978 | "extend-shallow": "^2.0.1",
979 | "fragment-cache": "^0.2.1",
980 | "regex-not": "^1.0.0",
981 | "snapdragon": "^0.8.1",
982 | "to-regex": "^3.0.1"
983 | },
984 | "dependencies": {
985 | "define-property": {
986 | "version": "1.0.0",
987 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
988 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
989 | "dev": true,
990 | "requires": {
991 | "is-descriptor": "^1.0.0"
992 | }
993 | },
994 | "extend-shallow": {
995 | "version": "2.0.1",
996 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
997 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
998 | "dev": true,
999 | "requires": {
1000 | "is-extendable": "^0.1.0"
1001 | }
1002 | },
1003 | "is-accessor-descriptor": {
1004 | "version": "1.0.0",
1005 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1006 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1007 | "dev": true,
1008 | "requires": {
1009 | "kind-of": "^6.0.0"
1010 | }
1011 | },
1012 | "is-data-descriptor": {
1013 | "version": "1.0.0",
1014 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1015 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1016 | "dev": true,
1017 | "requires": {
1018 | "kind-of": "^6.0.0"
1019 | }
1020 | },
1021 | "is-descriptor": {
1022 | "version": "1.0.2",
1023 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1024 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1025 | "dev": true,
1026 | "requires": {
1027 | "is-accessor-descriptor": "^1.0.0",
1028 | "is-data-descriptor": "^1.0.0",
1029 | "kind-of": "^6.0.2"
1030 | }
1031 | }
1032 | }
1033 | },
1034 | "fast-glob": {
1035 | "version": "2.2.2",
1036 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz",
1037 | "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==",
1038 | "dev": true,
1039 | "requires": {
1040 | "@mrmlnc/readdir-enhanced": "^2.2.1",
1041 | "@nodelib/fs.stat": "^1.0.1",
1042 | "glob-parent": "^3.1.0",
1043 | "is-glob": "^4.0.0",
1044 | "merge2": "^1.2.1",
1045 | "micromatch": "^3.1.10"
1046 | }
1047 | },
1048 | "fast-levenshtein": {
1049 | "version": "2.0.6",
1050 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1051 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
1052 | "dev": true
1053 | },
1054 | "fill-range": {
1055 | "version": "4.0.0",
1056 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
1057 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
1058 | "dev": true,
1059 | "requires": {
1060 | "extend-shallow": "^2.0.1",
1061 | "is-number": "^3.0.0",
1062 | "repeat-string": "^1.6.1",
1063 | "to-regex-range": "^2.1.0"
1064 | },
1065 | "dependencies": {
1066 | "extend-shallow": {
1067 | "version": "2.0.1",
1068 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1069 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1070 | "dev": true,
1071 | "requires": {
1072 | "is-extendable": "^0.1.0"
1073 | }
1074 | }
1075 | }
1076 | },
1077 | "find-replace": {
1078 | "version": "2.0.1",
1079 | "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz",
1080 | "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==",
1081 | "dev": true,
1082 | "requires": {
1083 | "array-back": "^2.0.0",
1084 | "test-value": "^3.0.0"
1085 | }
1086 | },
1087 | "for-in": {
1088 | "version": "1.0.2",
1089 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
1090 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
1091 | "dev": true
1092 | },
1093 | "formatio": {
1094 | "version": "1.1.1",
1095 | "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz",
1096 | "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=",
1097 | "dev": true,
1098 | "requires": {
1099 | "samsam": "~1.1"
1100 | }
1101 | },
1102 | "fragment-cache": {
1103 | "version": "0.2.1",
1104 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
1105 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
1106 | "dev": true,
1107 | "requires": {
1108 | "map-cache": "^0.2.2"
1109 | }
1110 | },
1111 | "fs-extra": {
1112 | "version": "6.0.1",
1113 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
1114 | "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
1115 | "dev": true,
1116 | "requires": {
1117 | "graceful-fs": "^4.1.2",
1118 | "jsonfile": "^4.0.0",
1119 | "universalify": "^0.1.0"
1120 | }
1121 | },
1122 | "fs.realpath": {
1123 | "version": "1.0.0",
1124 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1125 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1126 | "dev": true
1127 | },
1128 | "get-value": {
1129 | "version": "2.0.6",
1130 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
1131 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
1132 | "dev": true
1133 | },
1134 | "glob": {
1135 | "version": "7.1.3",
1136 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
1137 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
1138 | "dev": true,
1139 | "requires": {
1140 | "fs.realpath": "^1.0.0",
1141 | "inflight": "^1.0.4",
1142 | "inherits": "2",
1143 | "minimatch": "^3.0.4",
1144 | "once": "^1.3.0",
1145 | "path-is-absolute": "^1.0.0"
1146 | }
1147 | },
1148 | "glob-parent": {
1149 | "version": "3.1.0",
1150 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
1151 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
1152 | "dev": true,
1153 | "requires": {
1154 | "is-glob": "^3.1.0",
1155 | "path-dirname": "^1.0.0"
1156 | },
1157 | "dependencies": {
1158 | "is-glob": {
1159 | "version": "3.1.0",
1160 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
1161 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1162 | "dev": true,
1163 | "requires": {
1164 | "is-extglob": "^2.1.0"
1165 | }
1166 | }
1167 | }
1168 | },
1169 | "glob-to-regexp": {
1170 | "version": "0.3.0",
1171 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
1172 | "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
1173 | "dev": true
1174 | },
1175 | "globals": {
1176 | "version": "11.7.0",
1177 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
1178 | "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==",
1179 | "dev": true
1180 | },
1181 | "graceful-fs": {
1182 | "version": "4.1.11",
1183 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1184 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
1185 | "dev": true
1186 | },
1187 | "graceful-readlink": {
1188 | "version": "1.0.1",
1189 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
1190 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
1191 | "dev": true
1192 | },
1193 | "growl": {
1194 | "version": "1.9.2",
1195 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
1196 | "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
1197 | "dev": true
1198 | },
1199 | "has-ansi": {
1200 | "version": "2.0.0",
1201 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1202 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1203 | "dev": true,
1204 | "requires": {
1205 | "ansi-regex": "^2.0.0"
1206 | }
1207 | },
1208 | "has-flag": {
1209 | "version": "3.0.0",
1210 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1211 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1212 | "dev": true
1213 | },
1214 | "has-value": {
1215 | "version": "1.0.0",
1216 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
1217 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
1218 | "dev": true,
1219 | "requires": {
1220 | "get-value": "^2.0.6",
1221 | "has-values": "^1.0.0",
1222 | "isobject": "^3.0.0"
1223 | }
1224 | },
1225 | "has-values": {
1226 | "version": "1.0.0",
1227 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
1228 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
1229 | "dev": true,
1230 | "requires": {
1231 | "is-number": "^3.0.0",
1232 | "kind-of": "^4.0.0"
1233 | },
1234 | "dependencies": {
1235 | "kind-of": {
1236 | "version": "4.0.0",
1237 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
1238 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
1239 | "dev": true,
1240 | "requires": {
1241 | "is-buffer": "^1.1.5"
1242 | }
1243 | }
1244 | }
1245 | },
1246 | "he": {
1247 | "version": "1.1.1",
1248 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
1249 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
1250 | "dev": true
1251 | },
1252 | "indent": {
1253 | "version": "0.0.2",
1254 | "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz",
1255 | "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=",
1256 | "dev": true
1257 | },
1258 | "inflight": {
1259 | "version": "1.0.6",
1260 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1261 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1262 | "dev": true,
1263 | "requires": {
1264 | "once": "^1.3.0",
1265 | "wrappy": "1"
1266 | }
1267 | },
1268 | "inherits": {
1269 | "version": "2.0.3",
1270 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1271 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1272 | "dev": true
1273 | },
1274 | "is-accessor-descriptor": {
1275 | "version": "0.1.6",
1276 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
1277 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
1278 | "dev": true,
1279 | "requires": {
1280 | "kind-of": "^3.0.2"
1281 | },
1282 | "dependencies": {
1283 | "kind-of": {
1284 | "version": "3.2.2",
1285 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1286 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1287 | "dev": true,
1288 | "requires": {
1289 | "is-buffer": "^1.1.5"
1290 | }
1291 | }
1292 | }
1293 | },
1294 | "is-buffer": {
1295 | "version": "1.1.6",
1296 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1297 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1298 | "dev": true
1299 | },
1300 | "is-data-descriptor": {
1301 | "version": "0.1.4",
1302 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
1303 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
1304 | "dev": true,
1305 | "requires": {
1306 | "kind-of": "^3.0.2"
1307 | },
1308 | "dependencies": {
1309 | "kind-of": {
1310 | "version": "3.2.2",
1311 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1312 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1313 | "dev": true,
1314 | "requires": {
1315 | "is-buffer": "^1.1.5"
1316 | }
1317 | }
1318 | }
1319 | },
1320 | "is-descriptor": {
1321 | "version": "0.1.6",
1322 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
1323 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
1324 | "dev": true,
1325 | "requires": {
1326 | "is-accessor-descriptor": "^0.1.6",
1327 | "is-data-descriptor": "^0.1.4",
1328 | "kind-of": "^5.0.0"
1329 | },
1330 | "dependencies": {
1331 | "kind-of": {
1332 | "version": "5.1.0",
1333 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
1334 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
1335 | "dev": true
1336 | }
1337 | }
1338 | },
1339 | "is-extendable": {
1340 | "version": "0.1.1",
1341 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1342 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
1343 | "dev": true
1344 | },
1345 | "is-extglob": {
1346 | "version": "2.1.1",
1347 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1348 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1349 | "dev": true
1350 | },
1351 | "is-glob": {
1352 | "version": "4.0.0",
1353 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
1354 | "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
1355 | "dev": true,
1356 | "requires": {
1357 | "is-extglob": "^2.1.1"
1358 | }
1359 | },
1360 | "is-number": {
1361 | "version": "3.0.0",
1362 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
1363 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
1364 | "dev": true,
1365 | "requires": {
1366 | "kind-of": "^3.0.2"
1367 | },
1368 | "dependencies": {
1369 | "kind-of": {
1370 | "version": "3.2.2",
1371 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1372 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1373 | "dev": true,
1374 | "requires": {
1375 | "is-buffer": "^1.1.5"
1376 | }
1377 | }
1378 | }
1379 | },
1380 | "is-plain-object": {
1381 | "version": "2.0.4",
1382 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
1383 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
1384 | "dev": true,
1385 | "requires": {
1386 | "isobject": "^3.0.1"
1387 | }
1388 | },
1389 | "is-windows": {
1390 | "version": "1.0.2",
1391 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
1392 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
1393 | "dev": true
1394 | },
1395 | "isarray": {
1396 | "version": "1.0.0",
1397 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1398 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1399 | "dev": true
1400 | },
1401 | "isobject": {
1402 | "version": "3.0.1",
1403 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1404 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
1405 | "dev": true
1406 | },
1407 | "js-tokens": {
1408 | "version": "4.0.0",
1409 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1410 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1411 | "dev": true
1412 | },
1413 | "jsesc": {
1414 | "version": "2.5.1",
1415 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
1416 | "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
1417 | "dev": true
1418 | },
1419 | "json3": {
1420 | "version": "3.3.2",
1421 | "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
1422 | "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
1423 | "dev": true
1424 | },
1425 | "jsonfile": {
1426 | "version": "4.0.0",
1427 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
1428 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
1429 | "dev": true,
1430 | "requires": {
1431 | "graceful-fs": "^4.1.6"
1432 | }
1433 | },
1434 | "jsonschema": {
1435 | "version": "1.2.4",
1436 | "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz",
1437 | "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==",
1438 | "dev": true
1439 | },
1440 | "kind-of": {
1441 | "version": "6.0.2",
1442 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1443 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
1444 | "dev": true
1445 | },
1446 | "levn": {
1447 | "version": "0.3.0",
1448 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
1449 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
1450 | "dev": true,
1451 | "requires": {
1452 | "prelude-ls": "~1.1.2",
1453 | "type-check": "~0.3.2"
1454 | }
1455 | },
1456 | "lodash": {
1457 | "version": "4.17.11",
1458 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
1459 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
1460 | "dev": true
1461 | },
1462 | "lodash._baseassign": {
1463 | "version": "3.2.0",
1464 | "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
1465 | "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
1466 | "dev": true,
1467 | "requires": {
1468 | "lodash._basecopy": "^3.0.0",
1469 | "lodash.keys": "^3.0.0"
1470 | }
1471 | },
1472 | "lodash._basecopy": {
1473 | "version": "3.0.1",
1474 | "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
1475 | "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
1476 | "dev": true
1477 | },
1478 | "lodash._basecreate": {
1479 | "version": "3.0.3",
1480 | "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
1481 | "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=",
1482 | "dev": true
1483 | },
1484 | "lodash._getnative": {
1485 | "version": "3.9.1",
1486 | "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
1487 | "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
1488 | "dev": true
1489 | },
1490 | "lodash._isiterateecall": {
1491 | "version": "3.0.9",
1492 | "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
1493 | "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
1494 | "dev": true
1495 | },
1496 | "lodash.camelcase": {
1497 | "version": "4.3.0",
1498 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
1499 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
1500 | "dev": true
1501 | },
1502 | "lodash.create": {
1503 | "version": "3.1.1",
1504 | "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
1505 | "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
1506 | "dev": true,
1507 | "requires": {
1508 | "lodash._baseassign": "^3.0.0",
1509 | "lodash._basecreate": "^3.0.0",
1510 | "lodash._isiterateecall": "^3.0.0"
1511 | }
1512 | },
1513 | "lodash.isarguments": {
1514 | "version": "3.1.0",
1515 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
1516 | "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
1517 | "dev": true
1518 | },
1519 | "lodash.isarray": {
1520 | "version": "3.0.4",
1521 | "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
1522 | "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
1523 | "dev": true
1524 | },
1525 | "lodash.keys": {
1526 | "version": "3.1.2",
1527 | "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
1528 | "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
1529 | "dev": true,
1530 | "requires": {
1531 | "lodash._getnative": "^3.0.0",
1532 | "lodash.isarguments": "^3.0.0",
1533 | "lodash.isarray": "^3.0.0"
1534 | }
1535 | },
1536 | "lodash.padend": {
1537 | "version": "4.6.1",
1538 | "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
1539 | "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=",
1540 | "dev": true
1541 | },
1542 | "lodash.sortby": {
1543 | "version": "4.7.0",
1544 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
1545 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
1546 | "dev": true
1547 | },
1548 | "lolex": {
1549 | "version": "1.3.2",
1550 | "resolved": "http://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
1551 | "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=",
1552 | "dev": true
1553 | },
1554 | "map-cache": {
1555 | "version": "0.2.2",
1556 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
1557 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
1558 | "dev": true
1559 | },
1560 | "map-visit": {
1561 | "version": "1.0.0",
1562 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
1563 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
1564 | "dev": true,
1565 | "requires": {
1566 | "object-visit": "^1.0.0"
1567 | }
1568 | },
1569 | "merge2": {
1570 | "version": "1.2.2",
1571 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz",
1572 | "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==",
1573 | "dev": true
1574 | },
1575 | "micromatch": {
1576 | "version": "3.1.10",
1577 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
1578 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
1579 | "dev": true,
1580 | "requires": {
1581 | "arr-diff": "^4.0.0",
1582 | "array-unique": "^0.3.2",
1583 | "braces": "^2.3.1",
1584 | "define-property": "^2.0.2",
1585 | "extend-shallow": "^3.0.2",
1586 | "extglob": "^2.0.4",
1587 | "fragment-cache": "^0.2.1",
1588 | "kind-of": "^6.0.2",
1589 | "nanomatch": "^1.2.9",
1590 | "object.pick": "^1.3.0",
1591 | "regex-not": "^1.0.0",
1592 | "snapdragon": "^0.8.1",
1593 | "to-regex": "^3.0.2"
1594 | }
1595 | },
1596 | "minimatch": {
1597 | "version": "3.0.4",
1598 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1599 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1600 | "dev": true,
1601 | "requires": {
1602 | "brace-expansion": "^1.1.7"
1603 | }
1604 | },
1605 | "minimist": {
1606 | "version": "0.0.8",
1607 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1608 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
1609 | "dev": true
1610 | },
1611 | "mixin-deep": {
1612 | "version": "1.3.2",
1613 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
1614 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
1615 | "dev": true,
1616 | "requires": {
1617 | "for-in": "^1.0.2",
1618 | "is-extendable": "^1.0.1"
1619 | },
1620 | "dependencies": {
1621 | "is-extendable": {
1622 | "version": "1.0.1",
1623 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1624 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1625 | "dev": true,
1626 | "requires": {
1627 | "is-plain-object": "^2.0.4"
1628 | }
1629 | }
1630 | }
1631 | },
1632 | "mkdirp": {
1633 | "version": "0.5.1",
1634 | "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
1635 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
1636 | "dev": true,
1637 | "requires": {
1638 | "minimist": "0.0.8"
1639 | }
1640 | },
1641 | "mocha": {
1642 | "version": "3.5.3",
1643 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz",
1644 | "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==",
1645 | "dev": true,
1646 | "requires": {
1647 | "browser-stdout": "1.3.0",
1648 | "commander": "2.9.0",
1649 | "debug": "2.6.8",
1650 | "diff": "3.2.0",
1651 | "escape-string-regexp": "1.0.5",
1652 | "glob": "7.1.1",
1653 | "growl": "1.9.2",
1654 | "he": "1.1.1",
1655 | "json3": "3.3.2",
1656 | "lodash.create": "3.1.1",
1657 | "mkdirp": "0.5.1",
1658 | "supports-color": "3.1.2"
1659 | },
1660 | "dependencies": {
1661 | "debug": {
1662 | "version": "2.6.8",
1663 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
1664 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
1665 | "dev": true,
1666 | "requires": {
1667 | "ms": "2.0.0"
1668 | }
1669 | },
1670 | "glob": {
1671 | "version": "7.1.1",
1672 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
1673 | "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
1674 | "dev": true,
1675 | "requires": {
1676 | "fs.realpath": "^1.0.0",
1677 | "inflight": "^1.0.4",
1678 | "inherits": "2",
1679 | "minimatch": "^3.0.2",
1680 | "once": "^1.3.0",
1681 | "path-is-absolute": "^1.0.0"
1682 | }
1683 | },
1684 | "has-flag": {
1685 | "version": "1.0.0",
1686 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
1687 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
1688 | "dev": true
1689 | },
1690 | "ms": {
1691 | "version": "2.0.0",
1692 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1693 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1694 | "dev": true
1695 | },
1696 | "supports-color": {
1697 | "version": "3.1.2",
1698 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
1699 | "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
1700 | "dev": true,
1701 | "requires": {
1702 | "has-flag": "^1.0.0"
1703 | }
1704 | }
1705 | }
1706 | },
1707 | "ms": {
1708 | "version": "2.1.1",
1709 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1710 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
1711 | "dev": true
1712 | },
1713 | "nanomatch": {
1714 | "version": "1.2.13",
1715 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
1716 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
1717 | "dev": true,
1718 | "requires": {
1719 | "arr-diff": "^4.0.0",
1720 | "array-unique": "^0.3.2",
1721 | "define-property": "^2.0.2",
1722 | "extend-shallow": "^3.0.2",
1723 | "fragment-cache": "^0.2.1",
1724 | "is-windows": "^1.0.2",
1725 | "kind-of": "^6.0.2",
1726 | "object.pick": "^1.3.0",
1727 | "regex-not": "^1.0.0",
1728 | "snapdragon": "^0.8.1",
1729 | "to-regex": "^3.0.1"
1730 | }
1731 | },
1732 | "object-copy": {
1733 | "version": "0.1.0",
1734 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
1735 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
1736 | "dev": true,
1737 | "requires": {
1738 | "copy-descriptor": "^0.1.0",
1739 | "define-property": "^0.2.5",
1740 | "kind-of": "^3.0.3"
1741 | },
1742 | "dependencies": {
1743 | "define-property": {
1744 | "version": "0.2.5",
1745 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1746 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1747 | "dev": true,
1748 | "requires": {
1749 | "is-descriptor": "^0.1.0"
1750 | }
1751 | },
1752 | "kind-of": {
1753 | "version": "3.2.2",
1754 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1755 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1756 | "dev": true,
1757 | "requires": {
1758 | "is-buffer": "^1.1.5"
1759 | }
1760 | }
1761 | }
1762 | },
1763 | "object-visit": {
1764 | "version": "1.0.1",
1765 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
1766 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
1767 | "dev": true,
1768 | "requires": {
1769 | "isobject": "^3.0.0"
1770 | }
1771 | },
1772 | "object.pick": {
1773 | "version": "1.3.0",
1774 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
1775 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
1776 | "dev": true,
1777 | "requires": {
1778 | "isobject": "^3.0.1"
1779 | }
1780 | },
1781 | "once": {
1782 | "version": "1.4.0",
1783 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1784 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1785 | "dev": true,
1786 | "requires": {
1787 | "wrappy": "1"
1788 | }
1789 | },
1790 | "optionator": {
1791 | "version": "0.8.2",
1792 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
1793 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
1794 | "dev": true,
1795 | "requires": {
1796 | "deep-is": "~0.1.3",
1797 | "fast-levenshtein": "~2.0.4",
1798 | "levn": "~0.3.0",
1799 | "prelude-ls": "~1.1.2",
1800 | "type-check": "~0.3.2",
1801 | "wordwrap": "~1.0.0"
1802 | }
1803 | },
1804 | "parse5": {
1805 | "version": "4.0.0",
1806 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
1807 | "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
1808 | "dev": true
1809 | },
1810 | "pascalcase": {
1811 | "version": "0.1.1",
1812 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
1813 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
1814 | "dev": true
1815 | },
1816 | "path-dirname": {
1817 | "version": "1.0.2",
1818 | "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
1819 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
1820 | "dev": true
1821 | },
1822 | "path-is-absolute": {
1823 | "version": "1.0.1",
1824 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1825 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1826 | "dev": true
1827 | },
1828 | "path-is-inside": {
1829 | "version": "1.0.2",
1830 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
1831 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
1832 | "dev": true
1833 | },
1834 | "path-parse": {
1835 | "version": "1.0.6",
1836 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1837 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1838 | "dev": true
1839 | },
1840 | "polymer-analyzer": {
1841 | "version": "3.1.2",
1842 | "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.1.2.tgz",
1843 | "integrity": "sha512-qAGdrrI9fknJurrMMG/vx4CioOdxr0WeQB0CNcB7jZhIuophJn5igqXti9JwTLVBAEIB17DJnsce5A4xFQDryQ==",
1844 | "dev": true,
1845 | "requires": {
1846 | "@babel/generator": "^7.0.0-beta.42",
1847 | "@babel/traverse": "^7.0.0-beta.42",
1848 | "@babel/types": "^7.0.0-beta.42",
1849 | "@types/babel-generator": "^6.25.1",
1850 | "@types/babel-traverse": "^6.25.2",
1851 | "@types/babel-types": "^6.25.1",
1852 | "@types/babylon": "^6.16.2",
1853 | "@types/chai-subset": "^1.3.0",
1854 | "@types/chalk": "^0.4.30",
1855 | "@types/clone": "^0.1.30",
1856 | "@types/cssbeautify": "^0.3.1",
1857 | "@types/doctrine": "^0.0.1",
1858 | "@types/is-windows": "^0.2.0",
1859 | "@types/minimatch": "^3.0.1",
1860 | "@types/parse5": "^2.2.34",
1861 | "@types/path-is-inside": "^1.0.0",
1862 | "@types/resolve": "0.0.6",
1863 | "@types/whatwg-url": "^6.4.0",
1864 | "babylon": "^7.0.0-beta.42",
1865 | "cancel-token": "^0.1.1",
1866 | "chalk": "^1.1.3",
1867 | "clone": "^2.0.0",
1868 | "cssbeautify": "^0.3.1",
1869 | "doctrine": "^2.0.2",
1870 | "dom5": "^3.0.0",
1871 | "indent": "0.0.2",
1872 | "is-windows": "^1.0.2",
1873 | "jsonschema": "^1.1.0",
1874 | "minimatch": "^3.0.4",
1875 | "parse5": "^4.0.0",
1876 | "path-is-inside": "^1.0.2",
1877 | "resolve": "^1.5.0",
1878 | "shady-css-parser": "^0.1.0",
1879 | "stable": "^0.1.6",
1880 | "strip-indent": "^2.0.0",
1881 | "vscode-uri": "^1.0.1",
1882 | "whatwg-url": "^6.4.0"
1883 | },
1884 | "dependencies": {
1885 | "@types/doctrine": {
1886 | "version": "0.0.1",
1887 | "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz",
1888 | "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=",
1889 | "dev": true
1890 | },
1891 | "ansi-styles": {
1892 | "version": "2.2.1",
1893 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1894 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
1895 | "dev": true
1896 | },
1897 | "chalk": {
1898 | "version": "1.1.3",
1899 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1900 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1901 | "dev": true,
1902 | "requires": {
1903 | "ansi-styles": "^2.2.1",
1904 | "escape-string-regexp": "^1.0.2",
1905 | "has-ansi": "^2.0.0",
1906 | "strip-ansi": "^3.0.0",
1907 | "supports-color": "^2.0.0"
1908 | }
1909 | },
1910 | "supports-color": {
1911 | "version": "2.0.0",
1912 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1913 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1914 | "dev": true
1915 | }
1916 | }
1917 | },
1918 | "posix-character-classes": {
1919 | "version": "0.1.1",
1920 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
1921 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
1922 | "dev": true
1923 | },
1924 | "prelude-ls": {
1925 | "version": "1.1.2",
1926 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1927 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
1928 | "dev": true
1929 | },
1930 | "punycode": {
1931 | "version": "2.1.1",
1932 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1933 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1934 | "dev": true
1935 | },
1936 | "reduce-flatten": {
1937 | "version": "1.0.1",
1938 | "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
1939 | "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=",
1940 | "dev": true
1941 | },
1942 | "regex-not": {
1943 | "version": "1.0.2",
1944 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
1945 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
1946 | "dev": true,
1947 | "requires": {
1948 | "extend-shallow": "^3.0.2",
1949 | "safe-regex": "^1.1.0"
1950 | }
1951 | },
1952 | "repeat-element": {
1953 | "version": "1.1.3",
1954 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
1955 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
1956 | "dev": true
1957 | },
1958 | "repeat-string": {
1959 | "version": "1.6.1",
1960 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1961 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
1962 | "dev": true
1963 | },
1964 | "resolve": {
1965 | "version": "1.8.1",
1966 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
1967 | "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
1968 | "dev": true,
1969 | "requires": {
1970 | "path-parse": "^1.0.5"
1971 | }
1972 | },
1973 | "resolve-url": {
1974 | "version": "0.2.1",
1975 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
1976 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
1977 | "dev": true
1978 | },
1979 | "ret": {
1980 | "version": "0.1.15",
1981 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
1982 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
1983 | "dev": true
1984 | },
1985 | "safe-regex": {
1986 | "version": "1.1.0",
1987 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
1988 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
1989 | "dev": true,
1990 | "requires": {
1991 | "ret": "~0.1.10"
1992 | }
1993 | },
1994 | "samsam": {
1995 | "version": "1.1.2",
1996 | "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz",
1997 | "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=",
1998 | "dev": true
1999 | },
2000 | "set-value": {
2001 | "version": "2.0.1",
2002 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
2003 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
2004 | "dev": true,
2005 | "requires": {
2006 | "extend-shallow": "^2.0.1",
2007 | "is-extendable": "^0.1.1",
2008 | "is-plain-object": "^2.0.3",
2009 | "split-string": "^3.0.1"
2010 | },
2011 | "dependencies": {
2012 | "extend-shallow": {
2013 | "version": "2.0.1",
2014 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2015 | "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
2016 | "dev": true,
2017 | "requires": {
2018 | "is-extendable": "^0.1.0"
2019 | }
2020 | }
2021 | }
2022 | },
2023 | "shady-css-parser": {
2024 | "version": "0.1.0",
2025 | "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz",
2026 | "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==",
2027 | "dev": true
2028 | },
2029 | "sinon": {
2030 | "version": "1.17.7",
2031 | "resolved": "http://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz",
2032 | "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=",
2033 | "dev": true,
2034 | "requires": {
2035 | "formatio": "1.1.1",
2036 | "lolex": "1.3.2",
2037 | "samsam": "1.1.2",
2038 | "util": ">=0.10.3 <1"
2039 | }
2040 | },
2041 | "sinon-chai": {
2042 | "version": "2.14.0",
2043 | "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.14.0.tgz",
2044 | "integrity": "sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ==",
2045 | "dev": true
2046 | },
2047 | "snapdragon": {
2048 | "version": "0.8.2",
2049 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
2050 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
2051 | "dev": true,
2052 | "requires": {
2053 | "base": "^0.11.1",
2054 | "debug": "^2.2.0",
2055 | "define-property": "^0.2.5",
2056 | "extend-shallow": "^2.0.1",
2057 | "map-cache": "^0.2.2",
2058 | "source-map": "^0.5.6",
2059 | "source-map-resolve": "^0.5.0",
2060 | "use": "^3.1.0"
2061 | },
2062 | "dependencies": {
2063 | "debug": {
2064 | "version": "2.6.9",
2065 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2066 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2067 | "dev": true,
2068 | "requires": {
2069 | "ms": "2.0.0"
2070 | }
2071 | },
2072 | "define-property": {
2073 | "version": "0.2.5",
2074 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
2075 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
2076 | "dev": true,
2077 | "requires": {
2078 | "is-descriptor": "^0.1.0"
2079 | }
2080 | },
2081 | "extend-shallow": {
2082 | "version": "2.0.1",
2083 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2084 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2085 | "dev": true,
2086 | "requires": {
2087 | "is-extendable": "^0.1.0"
2088 | }
2089 | },
2090 | "ms": {
2091 | "version": "2.0.0",
2092 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2093 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2094 | "dev": true
2095 | },
2096 | "source-map": {
2097 | "version": "0.5.7",
2098 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
2099 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
2100 | "dev": true
2101 | }
2102 | }
2103 | },
2104 | "snapdragon-node": {
2105 | "version": "2.1.1",
2106 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
2107 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
2108 | "dev": true,
2109 | "requires": {
2110 | "define-property": "^1.0.0",
2111 | "isobject": "^3.0.0",
2112 | "snapdragon-util": "^3.0.1"
2113 | },
2114 | "dependencies": {
2115 | "define-property": {
2116 | "version": "1.0.0",
2117 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
2118 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
2119 | "dev": true,
2120 | "requires": {
2121 | "is-descriptor": "^1.0.0"
2122 | }
2123 | },
2124 | "is-accessor-descriptor": {
2125 | "version": "1.0.0",
2126 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
2127 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
2128 | "dev": true,
2129 | "requires": {
2130 | "kind-of": "^6.0.0"
2131 | }
2132 | },
2133 | "is-data-descriptor": {
2134 | "version": "1.0.0",
2135 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
2136 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
2137 | "dev": true,
2138 | "requires": {
2139 | "kind-of": "^6.0.0"
2140 | }
2141 | },
2142 | "is-descriptor": {
2143 | "version": "1.0.2",
2144 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
2145 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
2146 | "dev": true,
2147 | "requires": {
2148 | "is-accessor-descriptor": "^1.0.0",
2149 | "is-data-descriptor": "^1.0.0",
2150 | "kind-of": "^6.0.2"
2151 | }
2152 | }
2153 | }
2154 | },
2155 | "snapdragon-util": {
2156 | "version": "3.0.1",
2157 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
2158 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
2159 | "dev": true,
2160 | "requires": {
2161 | "kind-of": "^3.2.0"
2162 | },
2163 | "dependencies": {
2164 | "kind-of": {
2165 | "version": "3.2.2",
2166 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2167 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2168 | "dev": true,
2169 | "requires": {
2170 | "is-buffer": "^1.1.5"
2171 | }
2172 | }
2173 | }
2174 | },
2175 | "source-map": {
2176 | "version": "0.6.1",
2177 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2178 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2179 | "dev": true,
2180 | "optional": true
2181 | },
2182 | "source-map-resolve": {
2183 | "version": "0.5.2",
2184 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
2185 | "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
2186 | "dev": true,
2187 | "requires": {
2188 | "atob": "^2.1.1",
2189 | "decode-uri-component": "^0.2.0",
2190 | "resolve-url": "^0.2.1",
2191 | "source-map-url": "^0.4.0",
2192 | "urix": "^0.1.0"
2193 | }
2194 | },
2195 | "source-map-url": {
2196 | "version": "0.4.0",
2197 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
2198 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
2199 | "dev": true
2200 | },
2201 | "split-string": {
2202 | "version": "3.1.0",
2203 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
2204 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
2205 | "dev": true,
2206 | "requires": {
2207 | "extend-shallow": "^3.0.0"
2208 | }
2209 | },
2210 | "stable": {
2211 | "version": "0.1.8",
2212 | "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
2213 | "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
2214 | "dev": true
2215 | },
2216 | "stacky": {
2217 | "version": "1.3.1",
2218 | "resolved": "http://registry.npmjs.org/stacky/-/stacky-1.3.1.tgz",
2219 | "integrity": "sha1-PxF+UYe5pz0j+HbWnwXIWxGAShI=",
2220 | "dev": true,
2221 | "requires": {
2222 | "chalk": "^1.1.1",
2223 | "lodash": "^3.0.0"
2224 | },
2225 | "dependencies": {
2226 | "ansi-styles": {
2227 | "version": "2.2.1",
2228 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
2229 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
2230 | "dev": true
2231 | },
2232 | "chalk": {
2233 | "version": "1.1.3",
2234 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2235 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2236 | "dev": true,
2237 | "requires": {
2238 | "ansi-styles": "^2.2.1",
2239 | "escape-string-regexp": "^1.0.2",
2240 | "has-ansi": "^2.0.0",
2241 | "strip-ansi": "^3.0.0",
2242 | "supports-color": "^2.0.0"
2243 | }
2244 | },
2245 | "lodash": {
2246 | "version": "3.10.1",
2247 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
2248 | "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
2249 | "dev": true
2250 | },
2251 | "supports-color": {
2252 | "version": "2.0.0",
2253 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2254 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2255 | "dev": true
2256 | }
2257 | }
2258 | },
2259 | "static-extend": {
2260 | "version": "0.1.2",
2261 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
2262 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
2263 | "dev": true,
2264 | "requires": {
2265 | "define-property": "^0.2.5",
2266 | "object-copy": "^0.1.0"
2267 | },
2268 | "dependencies": {
2269 | "define-property": {
2270 | "version": "0.2.5",
2271 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
2272 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
2273 | "dev": true,
2274 | "requires": {
2275 | "is-descriptor": "^0.1.0"
2276 | }
2277 | }
2278 | }
2279 | },
2280 | "strip-ansi": {
2281 | "version": "3.0.1",
2282 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2283 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2284 | "dev": true,
2285 | "requires": {
2286 | "ansi-regex": "^2.0.0"
2287 | }
2288 | },
2289 | "strip-indent": {
2290 | "version": "2.0.0",
2291 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
2292 | "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
2293 | "dev": true
2294 | },
2295 | "supports-color": {
2296 | "version": "5.5.0",
2297 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2298 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2299 | "dev": true,
2300 | "requires": {
2301 | "has-flag": "^3.0.0"
2302 | }
2303 | },
2304 | "table-layout": {
2305 | "version": "0.4.4",
2306 | "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.4.tgz",
2307 | "integrity": "sha512-uNaR3SRMJwfdp9OUr36eyEi6LLsbcTqTO/hfTsNviKsNeyMBPICJCC7QXRF3+07bAP6FRwA8rczJPBqXDc0CkQ==",
2308 | "dev": true,
2309 | "requires": {
2310 | "array-back": "^2.0.0",
2311 | "deep-extend": "~0.6.0",
2312 | "lodash.padend": "^4.6.1",
2313 | "typical": "^2.6.1",
2314 | "wordwrapjs": "^3.0.0"
2315 | }
2316 | },
2317 | "test-value": {
2318 | "version": "3.0.0",
2319 | "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz",
2320 | "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==",
2321 | "dev": true,
2322 | "requires": {
2323 | "array-back": "^2.0.0",
2324 | "typical": "^2.6.1"
2325 | }
2326 | },
2327 | "to-fast-properties": {
2328 | "version": "2.0.0",
2329 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
2330 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
2331 | "dev": true
2332 | },
2333 | "to-object-path": {
2334 | "version": "0.3.0",
2335 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
2336 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
2337 | "dev": true,
2338 | "requires": {
2339 | "kind-of": "^3.0.2"
2340 | },
2341 | "dependencies": {
2342 | "kind-of": {
2343 | "version": "3.2.2",
2344 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2345 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2346 | "dev": true,
2347 | "requires": {
2348 | "is-buffer": "^1.1.5"
2349 | }
2350 | }
2351 | }
2352 | },
2353 | "to-regex": {
2354 | "version": "3.0.2",
2355 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
2356 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
2357 | "dev": true,
2358 | "requires": {
2359 | "define-property": "^2.0.2",
2360 | "extend-shallow": "^3.0.2",
2361 | "regex-not": "^1.0.2",
2362 | "safe-regex": "^1.1.0"
2363 | }
2364 | },
2365 | "to-regex-range": {
2366 | "version": "2.1.1",
2367 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
2368 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
2369 | "dev": true,
2370 | "requires": {
2371 | "is-number": "^3.0.0",
2372 | "repeat-string": "^1.6.1"
2373 | }
2374 | },
2375 | "tr46": {
2376 | "version": "1.0.1",
2377 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
2378 | "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
2379 | "dev": true,
2380 | "requires": {
2381 | "punycode": "^2.1.0"
2382 | }
2383 | },
2384 | "trim-right": {
2385 | "version": "1.0.1",
2386 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
2387 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
2388 | "dev": true
2389 | },
2390 | "type-check": {
2391 | "version": "0.3.2",
2392 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2393 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
2394 | "dev": true,
2395 | "requires": {
2396 | "prelude-ls": "~1.1.2"
2397 | }
2398 | },
2399 | "type-detect": {
2400 | "version": "1.0.0",
2401 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
2402 | "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
2403 | "dev": true
2404 | },
2405 | "typescript": {
2406 | "version": "3.0.3",
2407 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.3.tgz",
2408 | "integrity": "sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==",
2409 | "dev": true
2410 | },
2411 | "typical": {
2412 | "version": "2.6.1",
2413 | "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
2414 | "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=",
2415 | "dev": true
2416 | },
2417 | "union-value": {
2418 | "version": "1.0.1",
2419 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
2420 | "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
2421 | "dev": true,
2422 | "requires": {
2423 | "arr-union": "^3.1.0",
2424 | "get-value": "^2.0.6",
2425 | "is-extendable": "^0.1.1",
2426 | "set-value": "^2.0.1"
2427 | }
2428 | },
2429 | "universalify": {
2430 | "version": "0.1.2",
2431 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
2432 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
2433 | "dev": true
2434 | },
2435 | "unset-value": {
2436 | "version": "1.0.0",
2437 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
2438 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
2439 | "dev": true,
2440 | "requires": {
2441 | "has-value": "^0.3.1",
2442 | "isobject": "^3.0.0"
2443 | },
2444 | "dependencies": {
2445 | "has-value": {
2446 | "version": "0.3.1",
2447 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
2448 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
2449 | "dev": true,
2450 | "requires": {
2451 | "get-value": "^2.0.3",
2452 | "has-values": "^0.1.4",
2453 | "isobject": "^2.0.0"
2454 | },
2455 | "dependencies": {
2456 | "isobject": {
2457 | "version": "2.1.0",
2458 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
2459 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
2460 | "dev": true,
2461 | "requires": {
2462 | "isarray": "1.0.0"
2463 | }
2464 | }
2465 | }
2466 | },
2467 | "has-values": {
2468 | "version": "0.1.4",
2469 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
2470 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
2471 | "dev": true
2472 | }
2473 | }
2474 | },
2475 | "urix": {
2476 | "version": "0.1.0",
2477 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
2478 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
2479 | "dev": true
2480 | },
2481 | "use": {
2482 | "version": "3.1.1",
2483 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
2484 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
2485 | "dev": true
2486 | },
2487 | "util": {
2488 | "version": "0.11.0",
2489 | "resolved": "https://registry.npmjs.org/util/-/util-0.11.0.tgz",
2490 | "integrity": "sha512-5n12uMzKCjvB2HPFHnbQSjaqAa98L5iIXmHrZCLavuZVe0qe/SJGbDGWlpaHk5lnBkWRDO+dRu1/PgmUYKPPTw==",
2491 | "dev": true,
2492 | "requires": {
2493 | "inherits": "2.0.3"
2494 | }
2495 | },
2496 | "vscode-uri": {
2497 | "version": "1.0.6",
2498 | "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.6.tgz",
2499 | "integrity": "sha512-sLI2L0uGov3wKVb9EB+vIQBl9tVP90nqRvxSoJ35vI3NjxE8jfsE5DSOhWgSunHSZmKS4OCi2jrtfxK7uyp2ww==",
2500 | "dev": true
2501 | },
2502 | "wct-browser-legacy": {
2503 | "version": "1.0.1",
2504 | "resolved": "https://registry.npmjs.org/wct-browser-legacy/-/wct-browser-legacy-1.0.1.tgz",
2505 | "integrity": "sha512-+HmZ5C2WNksNcti41ZihUL5b8ms8q6mOanXKK2jm3aBTnx7vqtkvdFPVJUbapglLWC0RReScBbhT0YuYbdoEOw==",
2506 | "dev": true,
2507 | "requires": {
2508 | "@polymer/polymer": "^3.0.0",
2509 | "@polymer/sinonjs": "^1.14.1",
2510 | "@polymer/test-fixture": "^3.0.0-pre.1",
2511 | "@webcomponents/webcomponentsjs": "^2.0.0",
2512 | "accessibility-developer-tools": "^2.12.0",
2513 | "async": "^1.5.2",
2514 | "chai": "^3.5.0",
2515 | "lodash": "^3.10.1",
2516 | "mocha": "^3.4.2",
2517 | "sinon": "^1.17.1",
2518 | "sinon-chai": "^2.10.0",
2519 | "stacky": "^1.3.1"
2520 | },
2521 | "dependencies": {
2522 | "@polymer/test-fixture": {
2523 | "version": "3.0.0-pre.21",
2524 | "resolved": "https://registry.npmjs.org/@polymer/test-fixture/-/test-fixture-3.0.0-pre.21.tgz",
2525 | "integrity": "sha512-IxzUe6YzaORzUksafHAXHprV29YncOJgr0+1zNAifl0/f+cb5iAd4IWUrnsnVFHG5UGTLjvis5RgV6vvIZPDrA==",
2526 | "dev": true
2527 | },
2528 | "lodash": {
2529 | "version": "3.10.1",
2530 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
2531 | "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
2532 | "dev": true
2533 | }
2534 | }
2535 | },
2536 | "webidl-conversions": {
2537 | "version": "4.0.2",
2538 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
2539 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
2540 | "dev": true
2541 | },
2542 | "webmat": {
2543 | "version": "0.2.2",
2544 | "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.2.tgz",
2545 | "integrity": "sha512-qi4Ol9a+0jArgbO8HdnIplE7f4p+9vXtRie8q321dmkqXAlWtVuSz7fL9g+S6yVynWBWq2MqVM/dq25W6tUWUw==",
2546 | "dev": true,
2547 | "requires": {
2548 | "clang-format": "^1.2.2",
2549 | "dom5": "^3.0.0",
2550 | "esprima": "^4.0.0",
2551 | "fast-glob": "^2.2.0",
2552 | "parse5": "^4.0.0"
2553 | },
2554 | "dependencies": {
2555 | "esprima": {
2556 | "version": "4.0.1",
2557 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
2558 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
2559 | "dev": true
2560 | }
2561 | }
2562 | },
2563 | "whatwg-url": {
2564 | "version": "6.5.0",
2565 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
2566 | "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
2567 | "dev": true,
2568 | "requires": {
2569 | "lodash.sortby": "^4.7.0",
2570 | "tr46": "^1.0.1",
2571 | "webidl-conversions": "^4.0.2"
2572 | }
2573 | },
2574 | "wordwrap": {
2575 | "version": "1.0.0",
2576 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
2577 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
2578 | "dev": true
2579 | },
2580 | "wordwrapjs": {
2581 | "version": "3.0.0",
2582 | "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
2583 | "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
2584 | "dev": true,
2585 | "requires": {
2586 | "reduce-flatten": "^1.0.1",
2587 | "typical": "^2.6.1"
2588 | }
2589 | },
2590 | "wrappy": {
2591 | "version": "1.0.2",
2592 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2593 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2594 | "dev": true
2595 | }
2596 | }
2597 | }
2598 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "Makes it easy to make ajax calls and parse the response",
3 | "keywords": [
4 | "web-components",
5 | "polymer",
6 | "ajax"
7 | ],
8 | "repository": {
9 | "type": "git",
10 | "url": "git://github.com/PolymerElements/iron-ajax.git"
11 | },
12 | "homepage": "https://github.com/PolymerElements/iron-ajax",
13 | "name": "@polymer/iron-ajax",
14 | "license": "BSD-3-Clause",
15 | "devDependencies": {
16 | "webmat": "^0.2.0",
17 | "@polymer/iron-image": "^3.0.0-pre.26",
18 | "@webcomponents/webcomponentsjs": "^2.0.0",
19 | "@polymer/test-fixture": "^4.0.1",
20 | "wct-browser-legacy": "^1.0.1",
21 | "@polymer/gen-typescript-declarations": "^1.5.1"
22 | },
23 | "scripts": {
24 | "format": "webmat",
25 | "generate-types": "gen-typescript-declarations --deleteExisting --outDir . --verify",
26 | "prepare": "npm run generate-types"
27 | },
28 | "version": "3.0.1",
29 | "main": "iron-ajax.js",
30 | "author": "The Polymer Authors",
31 | "dependencies": {
32 | "@polymer/polymer": "^3.0.0"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/test/index.html:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/test/iron-ajax.html:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 | iron-ajax
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
44 |
45 |
46 |
47 |
48 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
1052 |
1053 |
1054 |
1055 |
--------------------------------------------------------------------------------
/test/iron-request.html:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 | iron-request
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
344 |
345 |
346 |
347 |
--------------------------------------------------------------------------------
/test/test-json-file.json:
--------------------------------------------------------------------------------
1 | { "foo": "bar" }
--------------------------------------------------------------------------------
/wct.conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": {
3 | "local": {
4 | "browserOptions": {
5 | "chrome": [
6 | "no-sandbox",
7 | "headless",
8 | "disable-gpu"
9 | ],
10 | "firefox": [
11 | "-headless"
12 | ]
13 | }
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------