├── .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 | [![Published on NPM](https://img.shields.io/npm/v/@polymer/iron-ajax.svg)](https://www.npmjs.com/package/@polymer/iron-ajax) 2 | [![Build status](https://travis-ci.org/PolymerElements/iron-ajax.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-ajax) 3 | [![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](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 | 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 | 23 | 24 | 25 | 29 | 30 | 31 | 34 | 35 | 36 | 39 | 40 | 41 | 45 | 46 | 47 | 52 | 53 | 54 | 57 | 58 | 59 | 62 | 63 | 64 | 67 | 68 | 69 | 73 | 74 | 1052 | 1053 | 1054 | 1055 | -------------------------------------------------------------------------------- /test/iron-request.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | iron-request 14 | 15 | 16 | 17 | 18 | 19 | 20 | 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 | } --------------------------------------------------------------------------------