Socket
Socket
Sign inDemoInstall

react-say

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-say - npm Package Compare versions

Comparing version 1.0.1-master.cfdb77a to 1.0.1-master.de311fd

5

CHANGELOG.md

@@ -16,6 +16,9 @@ # Changelog

- Lerna bootstrap will no longer hoist
- Updated playground
- Playground: Bump to `react@16.6.0`, `react-dom@16.6.0`, and `react-scripts@2.0.5`
### Fixed
- Null reference on `props.speechSynthesis`
## [1.0.0] - 2018-07-09
### Added
- Initial release

16

lib/Composer.js

@@ -205,4 +205,9 @@ 'use strict';

props.speechSynthesis.addEventListener && props.speechSynthesis.addEventListener('voiceschanged', _this2.handleVoicesChanged);
var voices = [];
if (props.speechSynthesis) {
props.speechSynthesis.addEventListener && props.speechSynthesis.addEventListener('voiceschanged', _this2.handleVoicesChanged);
voices = props.speechSynthesis.getVoices();
}
_this2.mergeContext = (0, _memoizeOne2.default)(function (_ref5, voices) {

@@ -223,3 +228,3 @@ var cancel = _ref5.cancel,

}),
voices: props.speechSynthesis.getVoices()
voices: voices
};

@@ -248,8 +253,11 @@ return _this2;

var nextVoices = [];
if (nextProps.speechSynthesis) {
nextProps.speechSynthesis.addEventListener && nextProps.speechSynthesis.addEventListener('voiceschanged', this.handleVoicesChanged);
nextVoices = nextProps.speechSynthesis.getVoices() || [];
}
this.setState(function () {
return { voices: nextProps.speechSynthesis.getVoices() };
return { voices: nextVoices };
});

@@ -319,2 +327,2 @@ }

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Db21wb3Nlci5qcyJdLCJuYW1lcyI6WyJTcGVlY2hDb250ZXh0IiwicG9ueWZpbGwiLCJxdWV1ZVdpdGhDdXJyZW50IiwiY2FuY2VsIiwiYmluZCIsImNhbmNlbEFsbCIsInNwZWFrIiwic2V0UG9ueWZpbGwiLCJzcGVlY2hTeW50aGVzaXMiLCJTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UiLCJpZCIsImluZGV4IiwiZmluZEluZGV4IiwidXR0ZXJhbmNlIiwidXR0ZXJhbmNlTGlrZSIsImZpbmQiLCJVdHRlcmFuY2UiLCJsZW5ndGgiLCJfbmV4dCIsImRlZmVycmVkIiwicHJvbWlzZSIsInRoZW4iLCJmaWx0ZXIiLCJDb21wb3NlciIsInByb3BzIiwiaGFuZGxlVm9pY2VzQ2hhbmdlZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJtZXJnZUNvbnRleHQiLCJ2b2ljZXMiLCJzdGF0ZSIsImNvbnRleHQiLCJzcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UiLCJnZXRWb2ljZXMiLCJuZXh0UHJvcHMiLCJjaGFuZ2VkIiwic29tZSIsIm5hbWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0U3RhdGUiLCJ0YXJnZXQiLCJjaGlsZHJlbiIsIlJlYWN0IiwiQ29tcG9uZW50IiwiZGVmYXVsdFByb3BzIiwid2luZG93Iiwid2Via2l0U3BlZWNoU3ludGhlc2lzIiwid2Via2l0U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYW55Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7OztJQUVNQSxhO0FBQ0oseUJBQVlDLFFBQVosRUFBc0I7QUFBQTs7QUFDcEIsU0FBS0MsZ0JBQUwsR0FBd0IsRUFBeEI7O0FBRUEsU0FBS0MsTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBWUMsSUFBWixDQUFpQixJQUFqQixD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QU9FO0FBRjlDLENBQXhCOztBQUtBdkIsU0FBU3dCLFNBQVQsR0FBcUI7QUFDbkJ2QyxtQkFBaUJ3QyxvQkFBVUMsR0FEUjtBQUVuQmxCLDRCQUEwQmlCLG9CQUFVQztBQUZqQixDQUFyQiIsImZpbGUiOiJDb21wb3Nlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZW1vaXplIGZyb20gJ21lbW9pemUtb25lJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgQ29udGV4dCBmcm9tICcuL0NvbnRleHQnO1xuaW1wb3J0IFV0dGVyYW5jZSBmcm9tICcuL1V0dGVyYW5jZSc7XG5cbmNsYXNzIFNwZWVjaENvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihwb255ZmlsbCkge1xuICAgIHRoaXMucXVldWVXaXRoQ3VycmVudCA9IFtdO1xuXG4gICAgdGhpcy5jYW5jZWwgPSB0aGlzLmNhbmNlbC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2FuY2VsQWxsID0gdGhpcy5jYW5jZWxBbGwuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNwZWFrID0gdGhpcy5zcGVhay5iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5zZXRQb255ZmlsbChwb255ZmlsbCk7XG4gIH1cblxuICBzZXRQb255ZmlsbCh7IHNwZWVjaFN5bnRoZXNpcywgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIH0pIHtcbiAgICB0aGlzLnBvbnlmaWxsID0geyBzcGVlY2hTeW50aGVzaXMsIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSB9O1xuICB9XG5cbiAgYXN5bmMgY2FuY2VsKGlkKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnF1ZXVlV2l0aEN1cnJlbnQuZmluZEluZGV4KHV0dGVyYW5jZSA9PiB1dHRlcmFuY2UuaWQgPT09IGlkKTtcblxuICAgIGlmICh+aW5kZXgpIHtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXVlV2l0aEN1cnJlbnRbaW5kZXhdLmNhbmNlbCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNhbmNlbEFsbCgpIHtcbiAgICAvLyBjb25zb2xlLmRlYnVnKGBDQU5DRUxMSU5HIFFVRVVFRCBJVEVNUzogJHsgdGhpcy5xdWV1ZVdpdGhDdXJyZW50Lmxlbmd0aCB9YCk7XG5cbiAgICAvLyB0aGlzLnF1ZXVlV2l0aEN1cnJlbnQuZm9yRWFjaChlbnRyeSA9PiBlbnRyeS5jYW5jZWxsZWQgPSB0cnVlKTtcblxuICAgIC8vIGNvbnN0IGNhbmNlbEFsbCA9IFByb21pc2UuYWxsKHRoaXMucXVldWVXaXRoQ3VycmVudC5tYXAoKHsgZGVmZXJyZWQ6IHsgcHJvbWlzZSB9IH0pID0+IHByb21pc2UuY2F0Y2goZXJyID0+IDApKSk7XG5cbiAgICAvLyB0aGlzLnBvbnlmaWxsLnNwZWVjaFN5bnRoZXNpcy5jYW5jZWwoKTtcblxuICAgIC8vIHRyeSB7XG4gICAgLy8gICBhd2FpdCBjYW5jZWxBbGw7XG4gICAgLy8gfSBjYXRjaCAoZXJyKSB7fVxuXG4gICAgLy8gY29uc29sZS5kZWJ1ZyhgQUxMIENBTkNFTExFRCBPUiBGSU5JU0hFRGApO1xuICB9XG5cbiAgc3BlYWsodXR0ZXJhbmNlTGlrZSkge1xuICAgIC8vIGNvbnNvbGUuZGVidWcoYFFVRVVFRDogJHsgdXR0ZXJhbmNlTGlrZS50ZXh0IH1gKTtcblxuICAgIGlmIChcbiAgICAgIHV0dGVyYW5jZUxpa2UuaWRcbiAgICAgICYmIHRoaXMucXVldWVXaXRoQ3VycmVudC5maW5kKCh7IGlkIH0pID0+IGlkID09PSB1dHRlcmFuY2VMaWtlLmlkKVxuICAgICkge1xuICAgICAgLy8gRG8gbm90IHF1ZXVlIGR1cGxpY2F0ZWQgc3BlYWsgd2l0aCBzYW1lIHVuaXF1ZSBJRFxuICAgICAgLy8gY29uc29sZS5kZWJ1ZygnTk9UIFFVRVVFSU5HIERVUEUnKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHV0dGVyYW5jZSA9IG5ldyBVdHRlcmFuY2UodXR0ZXJhbmNlTGlrZSk7XG5cbiAgICB0aGlzLnF1ZXVlV2l0aEN1cnJlbnQgPSBbLi4udGhpcy5xdWV1ZVdpdGhDdXJyZW50LCB1dHRlcmFuY2VdO1xuXG4gICAgaWYgKHRoaXMucXVldWVXaXRoQ3VycmVudC5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuX25leHQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXR0ZXJhbmNlLmRlZmVycmVkLnByb21pc2U7XG4gIH1cblxuICBfbmV4dCgpIHtcbiAgICBjb25zdCB1dHRlcmFuY2UgPSB0aGlzLnF1ZXVlV2l0aEN1cnJlbnRbMF07XG5cbiAgICBpZiAoIXV0dGVyYW5jZSkgeyByZXR1cm47IH1cblxuICAgIGNvbnN0IHsgaWQgfSA9IHV0dGVyYW5jZTtcbiAgICBjb25zdCBwcm9taXNlID0gdXR0ZXJhbmNlLnNwZWFrKHRoaXMucG9ueWZpbGwpO1xuXG4gICAgcHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMucXVldWVXaXRoQ3VycmVudCA9IHRoaXMucXVldWVXaXRoQ3VycmVudC5maWx0ZXIodXR0ZXJhbmNlID0+IHV0dGVyYW5jZS5pZCAhPT0gaWQpO1xuICAgICAgdGhpcy5fbmV4dCgpO1xuICAgIH0sICgpID0+IHtcbiAgICAgIC8vIFRPRE86IElmIHRoZSBlcnJvciBpcyBkdWUgdG8gU2FmYXJpIHJlc3RyaWN0aW9uIG9uIHVzZXIgdG91Y2hcbiAgICAgIC8vICAgICAgIFRoZSBuZXh0IGxvb3Agb24gdGhlIG5leHQgYXVkaW8gd2lsbCBhbHNvIGZhaWwgYmVjYXVzZSBpdCB3YXMgbm90IHF1ZXVlZCB3aXRoIGEgdXNlciB0b3VjaFxuICAgICAgdGhpcy5xdWV1ZVdpdGhDdXJyZW50ID0gdGhpcy5xdWV1ZVdpdGhDdXJyZW50LmZpbHRlcih1dHRlcmFuY2UgPT4gdXR0ZXJhbmNlLmlkICE9PSBpZCk7XG4gICAgICB0aGlzLl9uZXh0KCk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29tcG9zZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuaGFuZGxlVm9pY2VzQ2hhbmdlZCA9IHRoaXMuaGFuZGxlVm9pY2VzQ2hhbmdlZC5iaW5kKHRoaXMpO1xuXG4gICAgcHJvcHMuc3BlZWNoU3ludGhlc2lzLmFkZEV2ZW50TGlzdGVuZXIgJiYgcHJvcHMuc3BlZWNoU3ludGhlc2lzLmFkZEV2ZW50TGlzdGVuZXIoJ3ZvaWNlc2NoYW5nZWQnLCB0aGlzLmhhbmRsZVZvaWNlc0NoYW5nZWQpO1xuXG4gICAgdGhpcy5tZXJnZUNvbnRleHQgPSBtZW1vaXplKCh7IGNhbmNlbCwgc3BlYWsgfSwgdm9pY2VzKSA9PiAoe1xuICAgICAgY2FuY2VsLFxuICAgICAgc3BlYWssXG4gICAgICB2b2ljZXNcbiAgICB9KSk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY29udGV4dDogbmV3IFNwZWVjaENvbnRleHQoe1xuICAgICAgICBzcGVlY2hTeW50aGVzaXM6IHByb3BzLnNwZWVjaFN5bnRoZXNpcyxcbiAgICAgICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOiBwcm9wcy5zcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VcbiAgICAgIH0pLFxuICAgICAgdm9pY2VzOiBwcm9wcy5zcGVlY2hTeW50aGVzaXMuZ2V0Vm9pY2VzKClcbiAgICB9O1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBjb25zdCB7IHByb3BzIH0gPSB0aGlzO1xuICAgIGNvbnN0IGNoYW5nZWQgPSBbXG4gICAgICAnc3BlZWNoU3ludGhlc2lzJyxcbiAgICAgICdzcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UnXG4gICAgXS5zb21lKG5hbWUgPT4gbmV4dFByb3BzW25hbWVdICE9PSBwcm9wc1tuYW1lXSk7XG5cbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgaWYgKHByb3BzLnNwZWVjaFN5bnRoZXNpcykge1xuICAgICAgICBwcm9wcy5zcGVlY2hTeW50aGVzaXMucmVtb3ZlRXZlbnRMaXN0ZW5lciAmJiBwcm9wcy5zcGVlY2hTeW50aGVzaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigndm9pY2VzY2hhbmdlZCcsIHRoaXMuaGFuZGxlVm9pY2VzQ2hhbmdlZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGUuY29udGV4dC5zZXRQb255ZmlsbCh7XG4gICAgICAgIHNwZWVjaFN5bnRoZXNpczogbmV4dFByb3BzLnNwZWVjaFN5bnRoZXNpcyxcbiAgICAgICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOiBuZXh0UHJvcHMuc3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlXG4gICAgICB9KTtcblxuICAgICAgaWYgKG5leHRQcm9wcy5zcGVlY2hTeW50aGVzaXMpIHtcbiAgICAgICAgbmV4dFByb3BzLnNwZWVjaFN5bnRoZXNpcy5hZGRFdmVudExpc3RlbmVyICYmIG5leHRQcm9wcy5zcGVlY2hTeW50aGVzaXMuYWRkRXZlbnRMaXN0ZW5lcigndm9pY2VzY2hhbmdlZCcsIHRoaXMuaGFuZGxlVm9pY2VzQ2hhbmdlZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoKCkgPT4gKHsgdm9pY2VzOiBuZXh0UHJvcHMuc3BlZWNoU3ludGhlc2lzLmdldFZvaWNlcygpIH0pKTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBjb25zdCB7IHNwZWVjaFN5bnRoZXNpcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHNwZWVjaFN5bnRoZXNpcyAmJiBzcGVlY2hTeW50aGVzaXMucmVtb3ZlRXZlbnRMaXN0ZW5lciAmJiBzcGVlY2hTeW50aGVzaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigndm9pY2VzY2hhbmdlZCcsIHRoaXMuaGFuZGxlVm9pY2VzQ2hhbmdlZCk7XG4gIH1cblxuICBoYW5kbGVWb2ljZXNDaGFuZ2VkKHsgdGFyZ2V0IH0pIHtcbiAgICB0aGlzLnNldFN0YXRlKCgpID0+ICh7IHZvaWNlczogdGFyZ2V0LmdldFZvaWNlcygpIH0pKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHByb3BzLCBzdGF0ZSB9ID0gdGhpcztcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBwcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyBjb250ZXh0ID0+IGNvbnRleHQgP1xuICAgICAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nID8gY2hpbGRyZW4oY29udGV4dCkgOiBjaGlsZHJlblxuICAgICAgICAgIDpcbiAgICAgICAgICAgIDxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXsgdGhpcy5tZXJnZUNvbnRleHQoc3RhdGUuY29udGV4dCwgc3RhdGUudm9pY2VzKSB9PlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nID9cbiAgICAgICAgICAgICAgICAgIDxDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgICAgICAgICAgICB7IGNvbnRleHQgPT4gY2hpbGRyZW4oY29udGV4dCkgfVxuICAgICAgICAgICAgICAgICAgPC9Db250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgfVxuICAgICAgPC9Db250ZXh0LkNvbnN1bWVyPlxuICAgICk7XG4gIH1cbn1cblxuQ29tcG9zZXIuZGVmYXVsdFByb3BzID0ge1xuICBzcGVlY2hTeW50aGVzaXM6IHdpbmRvdy5zcGVlY2hTeW50aGVzaXMgfHwgd2luZG93LndlYmtpdFNwZWVjaFN5bnRoZXNpcyxcbiAgc3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOiB3aW5kb3cuU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIHx8IHdpbmRvdy53ZWJraXRTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Vcbn07XG5cbkNvbXBvc2VyLnByb3BUeXBlcyA9IHtcbiAgc3BlZWNoU3ludGhlc2lzOiBQcm9wVHlwZXMuYW55LFxuICBzcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6IFByb3BUeXBlcy5hbnlcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Db21wb3Nlci5qcyJdLCJuYW1lcyI6WyJTcGVlY2hDb250ZXh0IiwicG9ueWZpbGwiLCJxdWV1ZVdpdGhDdXJyZW50IiwiY2FuY2VsIiwiYmluZCIsImNhbmNlbEFsbCIsInNwZWFrIiwic2V0UG9ueWZpbGwiLCJzcGVlY2hTeW50aGVzaXMiLCJTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UiLCJpZCIsImluZGV4IiwiZmluZEluZGV4IiwidXR0ZXJhbmNlIiwidXR0ZXJhbmNlTGlrZSIsImZpbmQiLCJVdHRlcmFuY2UiLCJsZW5ndGgiLCJfbmV4dCIsImRlZmVycmVkIiwicHJvbWlzZSIsInRoZW4iLCJmaWx0ZXIiLCJDb21wb3NlciIsInByb3BzIiwiaGFuZGxlVm9pY2VzQ2hhbmdlZCIsInZvaWNlcyIsImFkZEV2ZW50TGlzdGVuZXIiLCJnZXRWb2ljZXMiLCJtZXJnZUNvbnRleHQiLCJzdGF0ZSIsImNvbnRleHQiLCJzcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UiLCJuZXh0UHJvcHMiLCJjaGFuZ2VkIiwic29tZSIsIm5hbWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibmV4dFZvaWNlcyIsInNldFN0YXRlIiwidGFyZ2V0IiwiY2hpbGRyZW4iLCJSZWFjdCIsIkNvbXBvbmVudCIsImRlZmF1bHRQcm9wcyIsIndpbmRvdyIsIndlYmtpdFNwZWVjaFN5bnRoZXNpcyIsIndlYmtpdFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFueSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7SUFFTUEsYTtBQUNKLHlCQUFZQyxRQUFaLEVBQXNCO0FBQUE7O0FBQ3BCLFNBQUtDLGdCQUFMLEdBQXdCLEVBQXhCOztBQUVBLFNBQUtDLE1BQUwsR0FBYyxLQUFLQSxNQUFMLENBQVlDLElBQVos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LFM7O2tCQUF2QnBCLFE7OztBQTJGckJBLFNBQVNxQixZQUFULEdBQXdCO0FBQ3RCcEMsbUJBQWlCcUMsT0FBT3JDLGVBQVAsSUFBMEJxQyxPQUFPQyxxQkFENUI7QUFFdEJkLDRCQUEwQmEsT0FBT3BDLHdCQUFQLElBQW1Db0MsT0FBT0U7QUFGOUMsQ0FBeEI7O0FBS0F4QixTQUFTeUIsU0FBVCxHQUFxQjtBQUNuQnhDLG1CQUFpQnlDLG9CQUFVQyxHQURSO0FBRW5CbEIsNEJBQTBCaUIsb0JBQVVDO0FBRmpCLENBQXJCIiwiZmlsZSI6IkNvbXBvc2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBDb250ZXh0IGZyb20gJy4vQ29udGV4dCc7XG5pbXBvcnQgVXR0ZXJhbmNlIGZyb20gJy4vVXR0ZXJhbmNlJztcblxuY2xhc3MgU3BlZWNoQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKHBvbnlmaWxsKSB7XG4gICAgdGhpcy5xdWV1ZVdpdGhDdXJyZW50ID0gW107XG5cbiAgICB0aGlzLmNhbmNlbCA9IHRoaXMuY2FuY2VsLmJpbmQodGhpcyk7XG4gICAgdGhpcy5jYW5jZWxBbGwgPSB0aGlzLmNhbmNlbEFsbC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc3BlYWsgPSB0aGlzLnNwZWFrLmJpbmQodGhpcyk7XG5cbiAgICB0aGlzLnNldFBvbnlmaWxsKHBvbnlmaWxsKTtcbiAgfVxuXG4gIHNldFBvbnlmaWxsKHsgc3BlZWNoU3ludGhlc2lzLCBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgfSkge1xuICAgIHRoaXMucG9ueWZpbGwgPSB7IHNwZWVjaFN5bnRoZXNpcywgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIH07XG4gIH1cblxuICBhc3luYyBjYW5jZWwoaWQpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucXVldWVXaXRoQ3VycmVudC5maW5kSW5kZXgodXR0ZXJhbmNlID0+IHV0dGVyYW5jZS5pZCA9PT0gaWQpO1xuXG4gICAgaWYgKH5pbmRleCkge1xuICAgICAgcmV0dXJuIHRoaXMucXVldWVXaXRoQ3VycmVudFtpbmRleF0uY2FuY2VsKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2FuY2VsQWxsKCkge1xuICAgIC8vIGNvbnNvbGUuZGVidWcoYENBTkNFTExJTkcgUVVFVUVEIElURU1TOiAkeyB0aGlzLnF1ZXVlV2l0aEN1cnJlbnQubGVuZ3RoIH1gKTtcblxuICAgIC8vIHRoaXMucXVldWVXaXRoQ3VycmVudC5mb3JFYWNoKGVudHJ5ID0+IGVudHJ5LmNhbmNlbGxlZCA9IHRydWUpO1xuXG4gICAgLy8gY29uc3QgY2FuY2VsQWxsID0gUHJvbWlzZS5hbGwodGhpcy5xdWV1ZVdpdGhDdXJyZW50Lm1hcCgoeyBkZWZlcnJlZDogeyBwcm9taXNlIH0gfSkgPT4gcHJvbWlzZS5jYXRjaChlcnIgPT4gMCkpKTtcblxuICAgIC8vIHRoaXMucG9ueWZpbGwuc3BlZWNoU3ludGhlc2lzLmNhbmNlbCgpO1xuXG4gICAgLy8gdHJ5IHtcbiAgICAvLyAgIGF3YWl0IGNhbmNlbEFsbDtcbiAgICAvLyB9IGNhdGNoIChlcnIpIHt9XG5cbiAgICAvLyBjb25zb2xlLmRlYnVnKGBBTEwgQ0FOQ0VMTEVEIE9SIEZJTklTSEVEYCk7XG4gIH1cblxuICBzcGVhayh1dHRlcmFuY2VMaWtlKSB7XG4gICAgLy8gY29uc29sZS5kZWJ1ZyhgUVVFVUVEOiAkeyB1dHRlcmFuY2VMaWtlLnRleHQgfWApO1xuXG4gICAgaWYgKFxuICAgICAgdXR0ZXJhbmNlTGlrZS5pZFxuICAgICAgJiYgdGhpcy5xdWV1ZVdpdGhDdXJyZW50LmZpbmQoKHsgaWQgfSkgPT4gaWQgPT09IHV0dGVyYW5jZUxpa2UuaWQpXG4gICAgKSB7XG4gICAgICAvLyBEbyBub3QgcXVldWUgZHVwbGljYXRlZCBzcGVhayB3aXRoIHNhbWUgdW5pcXVlIElEXG4gICAgICAvLyBjb25zb2xlLmRlYnVnKCdOT1QgUVVFVUVJTkcgRFVQRScpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdXR0ZXJhbmNlID0gbmV3IFV0dGVyYW5jZSh1dHRlcmFuY2VMaWtlKTtcblxuICAgIHRoaXMucXVldWVXaXRoQ3VycmVudCA9IFsuLi50aGlzLnF1ZXVlV2l0aEN1cnJlbnQsIHV0dGVyYW5jZV07XG5cbiAgICBpZiAodGhpcy5xdWV1ZVdpdGhDdXJyZW50Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5fbmV4dCgpO1xuICAgIH1cblxuICAgIHJldHVybiB1dHRlcmFuY2UuZGVmZXJyZWQucHJvbWlzZTtcbiAgfVxuXG4gIF9uZXh0KCkge1xuICAgIGNvbnN0IHV0dGVyYW5jZSA9IHRoaXMucXVldWVXaXRoQ3VycmVudFswXTtcblxuICAgIGlmICghdXR0ZXJhbmNlKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgeyBpZCB9ID0gdXR0ZXJhbmNlO1xuICAgIGNvbnN0IHByb21pc2UgPSB1dHRlcmFuY2Uuc3BlYWsodGhpcy5wb255ZmlsbCk7XG5cbiAgICBwcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5xdWV1ZVdpdGhDdXJyZW50ID0gdGhpcy5xdWV1ZVdpdGhDdXJyZW50LmZpbHRlcih1dHRlcmFuY2UgPT4gdXR0ZXJhbmNlLmlkICE9PSBpZCk7XG4gICAgICB0aGlzLl9uZXh0KCk7XG4gICAgfSwgKCkgPT4ge1xuICAgICAgLy8gVE9ETzogSWYgdGhlIGVycm9yIGlzIGR1ZSB0byBTYWZhcmkgcmVzdHJpY3Rpb24gb24gdXNlciB0b3VjaFxuICAgICAgLy8gICAgICAgVGhlIG5leHQgbG9vcCBvbiB0aGUgbmV4dCBhdWRpbyB3aWxsIGFsc28gZmFpbCBiZWNhdXNlIGl0IHdhcyBub3QgcXVldWVkIHdpdGggYSB1c2VyIHRvdWNoXG4gICAgICB0aGlzLnF1ZXVlV2l0aEN1cnJlbnQgPSB0aGlzLnF1ZXVlV2l0aEN1cnJlbnQuZmlsdGVyKHV0dGVyYW5jZSA9PiB1dHRlcmFuY2UuaWQgIT09IGlkKTtcbiAgICAgIHRoaXMuX25leHQoKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21wb3NlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5oYW5kbGVWb2ljZXNDaGFuZ2VkID0gdGhpcy5oYW5kbGVWb2ljZXNDaGFuZ2VkLmJpbmQodGhpcyk7XG5cbiAgICBsZXQgdm9pY2VzID0gW107XG5cbiAgICBpZiAocHJvcHMuc3BlZWNoU3ludGhlc2lzKSB7XG4gICAgICBwcm9wcy5zcGVlY2hTeW50aGVzaXMuYWRkRXZlbnRMaXN0ZW5lciAmJiBwcm9wcy5zcGVlY2hTeW50aGVzaXMuYWRkRXZlbnRMaXN0ZW5lcigndm9pY2VzY2hhbmdlZCcsIHRoaXMuaGFuZGxlVm9pY2VzQ2hhbmdlZCk7XG4gICAgICB2b2ljZXMgPSBwcm9wcy5zcGVlY2hTeW50aGVzaXMuZ2V0Vm9pY2VzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5tZXJnZUNvbnRleHQgPSBtZW1vaXplKCh7IGNhbmNlbCwgc3BlYWsgfSwgdm9pY2VzKSA9PiAoe1xuICAgICAgY2FuY2VsLFxuICAgICAgc3BlYWssXG4gICAgICB2b2ljZXNcbiAgICB9KSk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY29udGV4dDogbmV3IFNwZWVjaENvbnRleHQoe1xuICAgICAgICBzcGVlY2hTeW50aGVzaXM6IHByb3BzLnNwZWVjaFN5bnRoZXNpcyxcbiAgICAgICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOiBwcm9wcy5zcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VcbiAgICAgIH0pLFxuICAgICAgdm9pY2VzXG4gICAgfTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgY29uc3QgeyBwcm9wcyB9ID0gdGhpcztcbiAgICBjb25zdCBjaGFuZ2VkID0gW1xuICAgICAgJ3NwZWVjaFN5bnRoZXNpcycsXG4gICAgICAnc3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJ1xuICAgIF0uc29tZShuYW1lID0+IG5leHRQcm9wc1tuYW1lXSAhPT0gcHJvcHNbbmFtZV0pO1xuXG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIGlmIChwcm9wcy5zcGVlY2hTeW50aGVzaXMpIHtcbiAgICAgICAgcHJvcHMuc3BlZWNoU3ludGhlc2lzLnJlbW92ZUV2ZW50TGlzdGVuZXIgJiYgcHJvcHMuc3BlZWNoU3ludGhlc2lzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3ZvaWNlc2NoYW5nZWQnLCB0aGlzLmhhbmRsZVZvaWNlc0NoYW5nZWQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0YXRlLmNvbnRleHQuc2V0UG9ueWZpbGwoe1xuICAgICAgICBzcGVlY2hTeW50aGVzaXM6IG5leHRQcm9wcy5zcGVlY2hTeW50aGVzaXMsXG4gICAgICAgIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTogbmV4dFByb3BzLnNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZVxuICAgICAgfSk7XG5cbiAgICAgIGxldCBuZXh0Vm9pY2VzID0gW107XG5cbiAgICAgIGlmIChuZXh0UHJvcHMuc3BlZWNoU3ludGhlc2lzKSB7XG4gICAgICAgIG5leHRQcm9wcy5zcGVlY2hTeW50aGVzaXMuYWRkRXZlbnRMaXN0ZW5lciAmJiBuZXh0UHJvcHMuc3BlZWNoU3ludGhlc2lzLmFkZEV2ZW50TGlzdGVuZXIoJ3ZvaWNlc2NoYW5nZWQnLCB0aGlzLmhhbmRsZVZvaWNlc0NoYW5nZWQpO1xuICAgICAgICBuZXh0Vm9pY2VzID0gbmV4dFByb3BzLnNwZWVjaFN5bnRoZXNpcy5nZXRWb2ljZXMoKSB8fCBbXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRTdGF0ZSgoKSA9PiAoeyB2b2ljZXM6IG5leHRWb2ljZXMgfSkpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgc3BlZWNoU3ludGhlc2lzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgc3BlZWNoU3ludGhlc2lzICYmIHNwZWVjaFN5bnRoZXNpcy5yZW1vdmVFdmVudExpc3RlbmVyICYmIHNwZWVjaFN5bnRoZXNpcy5yZW1vdmVFdmVudExpc3RlbmVyKCd2b2ljZXNjaGFuZ2VkJywgdGhpcy5oYW5kbGVWb2ljZXNDaGFuZ2VkKTtcbiAgfVxuXG4gIGhhbmRsZVZvaWNlc0NoYW5nZWQoeyB0YXJnZXQgfSkge1xuICAgIHRoaXMuc2V0U3RhdGUoKCkgPT4gKHsgdm9pY2VzOiB0YXJnZXQuZ2V0Vm9pY2VzKCkgfSkpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgcHJvcHMsIHN0YXRlIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICB7IGNvbnRleHQgPT4gY29udGV4dCA/XG4gICAgICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihjb250ZXh0KSA6IGNoaWxkcmVuXG4gICAgICAgICAgOlxuICAgICAgICAgICAgPENvbnRleHQuUHJvdmlkZXIgdmFsdWU9eyB0aGlzLm1lcmdlQ29udGV4dChzdGF0ZS5jb250ZXh0LCBzdGF0ZS52b2ljZXMpIH0+XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgP1xuICAgICAgICAgICAgICAgICAgPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgICAgICAgICAgICAgIHsgY29udGV4dCA9PiBjaGlsZHJlbihjb250ZXh0KSB9XG4gICAgICAgICAgICAgICAgICA8L0NvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICB9XG4gICAgICA8L0NvbnRleHQuQ29uc3VtZXI+XG4gICAgKTtcbiAgfVxufVxuXG5Db21wb3Nlci5kZWZhdWx0UHJvcHMgPSB7XG4gIHNwZWVjaFN5bnRoZXNpczogd2luZG93LnNwZWVjaFN5bnRoZXNpcyB8fCB3aW5kb3cud2Via2l0U3BlZWNoU3ludGhlc2lzLFxuICBzcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6IHdpbmRvdy5TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgfHwgd2luZG93LndlYmtpdFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZVxufTtcblxuQ29tcG9zZXIucHJvcFR5cGVzID0ge1xuICBzcGVlY2hTeW50aGVzaXM6IFByb3BUeXBlcy5hbnksXG4gIHNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTogUHJvcFR5cGVzLmFueVxufTtcbiJdfQ==

@@ -50,3 +50,4 @@ 'use strict';

function createNativeUtterance(utteranceLike, ponyfill) {
var SpeechSynthesisUtterance = ponyfill.SpeechSynthesisUtterance;
var speechSynthesis = ponyfill.speechSynthesis,
SpeechSynthesisUtterance = ponyfill.SpeechSynthesisUtterance;
var lang = utteranceLike.lang,

@@ -99,3 +100,5 @@ onBoundary = utteranceLike.onBoundary,

if (utterance.addEventListener) {
utterance.addEventListener('boundary', onBoundary);
if (onBoundary) {
utterance.addEventListener('boundary', onBoundary);
}

@@ -308,2 +311,2 @@ // Since browser quirks, start/error/end events are emulated for best compatibility

exports.default = Utterance;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9VdHRlcmFuY2UuanMiXSwibmFtZXMiOlsiY3JlYXRlTmF0aXZlVXR0ZXJhbmNlIiwidXR0ZXJhbmNlTGlrZSIsInBvbnlmaWxsIiwiU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIiwibGFuZyIsIm9uQm91bmRhcnkiLCJwaXRjaCIsInJhdGUiLCJ0ZXh0Iiwidm9pY2UiLCJ2b2x1bWUiLCJ1dHRlcmFuY2UiLCJ0YXJnZXRWb2ljZSIsImNhbGwiLCJzcGVlY2hTeW50aGVzaXMiLCJnZXRWb2ljZXMiLCJ2b2ljZVVSSSIsImZpbmQiLCJzbGljZSIsInYiLCJhZGRFdmVudExpc3RlbmVyIiwiVXR0ZXJhbmNlIiwiY2FuY2VsbGVkIiwiZGVmZXJyZWQiLCJpZCIsInNwZWFraW5nIiwiY2FuY2VsIiwicHJvbWlzZSIsIl9zcGVhayIsInRoZW4iLCJvbkVuZCIsInR5cGUiLCJyZXNvbHZlIiwib25FcnJvciIsImVycm9yIiwicmVqZWN0IiwiRXJyb3IiLCJzdGFydERlZmVycmVkIiwiZXJyb3JEZWZlcnJlZCIsImVuZERlZmVycmVkIiwic3BlYWsiLCJyYWNlIiwib25TdGFydCIsImFydGlmaWNpYWwiLCJlbmRFdmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxTQUFTQSxxQkFBVCxDQUErQkMsYUFBL0IsRUFBOENDLFFBQTlDLEVBQXdEO0FBQUEsTUFDOUNDLHdCQUQ4QyxHQUNqQkQsUUFEaUIsQ0FDOUNDLHdCQUQ4QztBQUFBLE1BR3BEQyxJQUhvRCxHQVVsREgsYUFWa0QsQ0FHcERHLElBSG9EO0FBQUEsTUFJcERDLFVBSm9ELEdBVWxESixhQVZrRCxDQUlwREksVUFKb0Q7QUFBQSw2QkFVbERKLGFBVmtELENBS3BESyxLQUxvRDtBQUFBLE1BS3BEQSxLQUxvRCx3Q0FLNUMsQ0FMNEM7QUFBQSw0QkFVbERMLGFBVmtELENBTXBETSxJQU5vRDtBQUFBLE1BTXBEQSxJQU5vRCx1Q0FNN0MsQ0FONkM7QUFBQSxNQU9wREMsSUFQb0QsR0FVbERQLGFBVmtELENBT3BETyxJQVBvRDtBQUFBLE1BUXBEQyxLQVJvRCxHQVVsRFIsYUFWa0QsQ0FRcERRLEtBUm9EO0FBQUEsOEJBVWxEUixhQVZrRCxDQVNwRFMsTUFUb0Q7QUFBQSxNQVNwREEsTUFUb0QseUNBUzNDLENBVDJDOztBQVd0RCxNQUFNQyxZQUFZLElBQUlSLHdCQUFKLENBQTZCSyxJQUE3QixDQUFsQjtBQUNBLE1BQUlJLG9CQUFKOztBQUVBLE1BQUksT0FBT0gsS0FBUCxLQUFpQixVQUFyQixFQUFpQztBQUMvQkcsa0JBQWNILE1BQU1JLElBQU4sQ0FBV0MsZUFBWCxFQUE0QkEsZ0JBQWdCQyxTQUFoQixFQUE1QixDQUFkO0FBQ0QsR0FGRCxNQUVPO0FBQUEsZUFDZ0JOLFNBQVMsRUFEekI7QUFBQSxRQUNHTyxRQURILFFBQ0dBLFFBREg7O0FBR0xKLGtCQUFjSSxZQUFZLEdBQUdDLElBQUgsQ0FBUUosSUFBUixDQUFhLEdBQUdLLEtBQUgsQ0FBU0wsSUFBVCxDQUFjQyxnQkFBZ0JDLFNBQWhCLEVBQWQsQ0FBYixFQUF5RDtBQUFBLGFBQUtJLEVBQUVILFFBQUYsS0FBZUEsUUFBcEI7QUFBQSxLQUF6RCxDQUExQjtBQUNEOztBQUVEO0FBQ0FMLFlBQVVQLElBQVYsR0FBaUJBLFFBQVEsRUFBekI7O0FBRUEsTUFBSU8sVUFBVUwsS0FBVixJQUFtQkssVUFBVUwsS0FBVixLQUFvQixDQUEzQyxFQUE4QztBQUM1Q0ssY0FBVUwsS0FBVixHQUFrQkEsS0FBbEI7QUFDRDs7QUFFRCxNQUFJSyxVQUFVSixJQUFWLElBQWtCSSxVQUFVSixJQUFWLEtBQW1CLENBQXpDLEVBQTRDO0FBQzFDSSxjQUFVSixJQUFWLEdBQWlCQSxJQUFqQjtBQUNEOztBQUVEO0FBQ0E7QUFDQSxNQUFJSyxXQUFKLEVBQWlCO0FBQ2ZELGNBQVVGLEtBQVYsR0FBa0JHLFdBQWxCO0FBQ0Q7O0FBRUQsTUFBSUQsVUFBVUQsTUFBVixJQUFvQkMsVUFBVUQsTUFBVixLQUFxQixDQUE3QyxFQUFnRDtBQUM5Q0MsY0FBVUQsTUFBVixHQUFtQkEsTUFBbkI7QUFDRDs7QUFFRCxNQUFJQyxVQUFVUyxnQkFBZCxFQUFnQztBQUM5QlQsY0FBVVMsZ0JBQVYsQ0FBMkIsVUFBM0IsRUFBdUNmLFVBQXZDOztBQUVBO0FBQ0Q7O0FBRUQsU0FBT00sU0FBUDtBQUNEOztJQUVvQlUsUztBQUNuQixxQkFBWXBCLGFBQVosRUFBMkI7QUFBQTs7QUFDekIsU0FBS3FCLFNBQUwsR0FBaUIsS0FBakI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLCtCQUFoQjtBQUNBLFNBQUtDLEVBQUwsR0FBVXZCLGNBQWN1QixFQUF4QjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBaEI7QUFDQSxTQUFLeEIsYUFBTCxHQUFxQkEsYUFBckI7QUFDRDs7Ozs2QkFFUTtBQUNQLFdBQUtxQixTQUFMLEdBQWlCLElBQWpCOztBQUVBLFdBQUtHLFFBQUwsSUFBaUIsS0FBS3ZCLFFBQUwsQ0FBY1ksZUFBZCxDQUE4QlksTUFBOUIsRUFBakI7O0FBRUEsYUFBTyxLQUFLSCxRQUFMLENBQWNJLE9BQXJCO0FBQ0Q7OzswQkFFS3pCLFEsRUFBVTtBQUFBOztBQUNkLFdBQUswQixNQUFMLENBQVkxQixRQUFaLEVBQXNCMkIsSUFBdEIsQ0FBMkIsWUFBTTtBQUMvQixjQUFLNUIsYUFBTCxDQUFtQjZCLEtBQW5CLElBQTRCLE1BQUs3QixhQUFMLENBQW1CNkIsS0FBbkIsQ0FBeUIsRUFBRUMsTUFBTSxLQUFSLEVBQXpCLENBQTVCO0FBQ0EsY0FBS1IsUUFBTCxDQUFjUyxPQUFkO0FBQ0QsT0FIRCxFQUdHLGlCQUFTO0FBQ1YsY0FBSy9CLGFBQUwsQ0FBbUJnQyxPQUFuQixJQUE4QixNQUFLaEMsYUFBTCxDQUFtQmdDLE9BQW5CLENBQTJCLEVBQUVGLE1BQU0sT0FBUixFQUFpQkcsWUFBakIsRUFBM0IsQ0FBOUI7QUFDQSxjQUFLWCxRQUFMLENBQWNZLE1BQWQsQ0FBcUJELEtBQXJCO0FBQ0QsT0FORDs7QUFRQSxhQUFPLEtBQUtYLFFBQUwsQ0FBY0ksT0FBckI7QUFDRDs7Ozs2R0FFWXpCLFE7Ozs7Ozs7O3FCQUNQLEtBQUtvQixTOzs7OztzQkFDRCxJQUFJYyxLQUFKLENBQVUsV0FBVixDOzs7O0FBR1IscUJBQUtsQyxRQUFMLEdBQWdCQSxRQUFoQjs7QUFFUVksK0IsR0FBb0JaLFEsQ0FBcEJZLGU7QUFFRkgseUIsR0FBWVgsc0JBQXNCLEtBQUtDLGFBQTNCLEVBQTBDQyxRQUExQyxDO0FBQ1ptQyw2QixHQUFnQiwrQjtBQUNoQkMsNkIsR0FBZ0IsK0I7QUFDaEJDLDJCLEdBQWMsK0I7OztBQUVwQjVCLDBCQUFVUyxnQkFBVixDQUEyQixLQUEzQixFQUFrQ21CLFlBQVlQLE9BQTlDO0FBQ0FyQiwwQkFBVVMsZ0JBQVYsQ0FBMkIsT0FBM0IsRUFBb0NrQixjQUFjTixPQUFsRDtBQUNBckIsMEJBQVVTLGdCQUFWLENBQTJCLE9BQTNCLEVBQW9DaUIsY0FBY0wsT0FBbEQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxxQkFBS1AsUUFBTCxHQUFnQixJQUFoQjs7O3VCQUVNLDhGQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkFDTixPQUFLSCxTQURDO0FBQUE7QUFBQTtBQUFBOztBQUFBLGdDQUVGLElBQUljLEtBQUosQ0FBVSxXQUFWLENBRkU7O0FBQUE7O0FBS1Z0QiwwQ0FBZ0IwQixLQUFoQixDQUFzQjdCLFNBQXRCOztBQUxVO0FBQUE7QUFBQSxpQ0FRRixrQkFBUThCLElBQVIsQ0FBYSxDQUNqQkosY0FBY1YsT0FERyxFQUVqQix1QkFBUSxJQUFSLENBRmlCLENBQWIsQ0FSRTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQWFSO0FBQ0E7QUFDQTtBQUNBYiwwQ0FBZ0JZLE1BQWhCOztBQWhCUTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFBTixJQW9CSCxDQXBCRyxFQW9CQSxDQXBCQSxDOzs7O0FBc0JOOztBQUVBZiwwQkFBVStCLE9BQVYsSUFBcUIvQixVQUFVK0IsT0FBVixDQUFrQixFQUFFWCxNQUFNLE9BQVIsRUFBbEIsQ0FBckI7Ozt1QkFFdUIsa0JBQVFVLElBQVIsQ0FBYSxDQUNsQ0gsY0FBY1gsT0FEb0IsRUFFbENZLFlBQVlaLE9BRnNCLEVBR2xDLDZCQUFjO0FBQUEseUJBQU0sQ0FBQ2IsZ0JBQWdCVyxRQUF2QjtBQUFBLGlCQUFkLEVBQStDSSxJQUEvQyxDQUFvRDtBQUFBLHlCQUFNLHFCQUFNLEdBQU4sQ0FBTjtBQUFBLGlCQUFwRCxFQUFzRUEsSUFBdEUsQ0FBMkU7QUFBQSx5QkFBTyxFQUFFRSxNQUFNLEtBQVIsRUFBZVksWUFBWSxJQUEzQixFQUFQO0FBQUEsaUJBQTNFLENBSGtDLENBQWIsQzs7O0FBQWpCQyx3Qjs7O0FBTU47QUFDQTtBQUNBOztBQUVBOztBQUVBLHFCQUFLbkIsUUFBTCxHQUFnQixLQUFoQjs7c0JBRUltQixTQUFTYixJQUFULEtBQWtCLE87Ozs7O3NCQUNkYSxTQUFTVixLOzs7cUJBQ04sS0FBS1osUzs7Ozs7c0JBQ1IsSUFBSWMsS0FBSixDQUFVLFdBQVYsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBckhTZixTIiwiZmlsZSI6IlV0dGVyYW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVEZWZlcnJlZCBmcm9tICcuL2NyZWF0ZURlZmVycmVkJztcbmltcG9ydCByZXRyeSBmcm9tICcuL3JldHJ5JztcbmltcG9ydCBzbGVlcCBmcm9tICcuL3NsZWVwJztcbmltcG9ydCBzcGluV2FpdFVudGlsIGZyb20gJy4vc3BpbldhaXRVbnRpbCc7XG5pbXBvcnQgdGltZW91dCBmcm9tICcuL3RpbWVvdXQnO1xuXG5mdW5jdGlvbiBjcmVhdGVOYXRpdmVVdHRlcmFuY2UodXR0ZXJhbmNlTGlrZSwgcG9ueWZpbGwpIHtcbiAgY29uc3QgeyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgfSA9IHBvbnlmaWxsO1xuICBjb25zdCB7XG4gICAgbGFuZyxcbiAgICBvbkJvdW5kYXJ5LFxuICAgIHBpdGNoID0gMSxcbiAgICByYXRlID0gMSxcbiAgICB0ZXh0LFxuICAgIHZvaWNlLFxuICAgIHZvbHVtZSA9IDFcbiAgfSA9IHV0dGVyYW5jZUxpa2U7XG4gIGNvbnN0IHV0dGVyYW5jZSA9IG5ldyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UodGV4dCk7XG4gIGxldCB0YXJnZXRWb2ljZTtcblxuICBpZiAodHlwZW9mIHZvaWNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdGFyZ2V0Vm9pY2UgPSB2b2ljZS5jYWxsKHNwZWVjaFN5bnRoZXNpcywgc3BlZWNoU3ludGhlc2lzLmdldFZvaWNlcygpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IHZvaWNlVVJJIH0gPSB2b2ljZSB8fCB7fTtcblxuICAgIHRhcmdldFZvaWNlID0gdm9pY2VVUkkgJiYgW10uZmluZC5jYWxsKFtdLnNsaWNlLmNhbGwoc3BlZWNoU3ludGhlc2lzLmdldFZvaWNlcygpKSwgdiA9PiB2LnZvaWNlVVJJID09PSB2b2ljZVVSSSk7XG4gIH1cblxuICAvLyBFZGdlIHdpbGwgbXV0ZSBpZiBcImxhbmdcIiBpcyBzZXQgdG8gXCJcIlxuICB1dHRlcmFuY2UubGFuZyA9IGxhbmcgfHwgJyc7XG5cbiAgaWYgKHV0dGVyYW5jZS5waXRjaCB8fCB1dHRlcmFuY2UucGl0Y2ggPT09IDApIHtcbiAgICB1dHRlcmFuY2UucGl0Y2ggPSBwaXRjaDtcbiAgfVxuXG4gIGlmICh1dHRlcmFuY2UucmF0ZSB8fCB1dHRlcmFuY2UucmF0ZSA9PT0gMCkge1xuICAgIHV0dGVyYW5jZS5yYXRlID0gcmF0ZTtcbiAgfVxuXG4gIC8vIENvZ25pdGl2ZSBTZXJ2aWNlcyB3aWxsIGVycm9yIHdoZW4gXCJ2b2ljZVwiIGlzIHNldCB0byBcIm51bGxcIlxuICAvLyBFZGdlIHdpbGwgZXJyb3Igd2hlbiBcInZvaWNlXCIgaXMgc2V0IHRvIFwidW5kZWZpbmVkXCJcbiAgaWYgKHRhcmdldFZvaWNlKSB7XG4gICAgdXR0ZXJhbmNlLnZvaWNlID0gdGFyZ2V0Vm9pY2U7XG4gIH1cblxuICBpZiAodXR0ZXJhbmNlLnZvbHVtZSB8fCB1dHRlcmFuY2Uudm9sdW1lID09PSAwKSB7XG4gICAgdXR0ZXJhbmNlLnZvbHVtZSA9IHZvbHVtZTtcbiAgfVxuXG4gIGlmICh1dHRlcmFuY2UuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIHV0dGVyYW5jZS5hZGRFdmVudExpc3RlbmVyKCdib3VuZGFyeScsIG9uQm91bmRhcnkpO1xuXG4gICAgLy8gU2luY2UgYnJvd3NlciBxdWlya3MsIHN0YXJ0L2Vycm9yL2VuZCBldmVudHMgYXJlIGVtdWxhdGVkIGZvciBiZXN0IGNvbXBhdGliaWxpdHlcbiAgfVxuXG4gIHJldHVybiB1dHRlcmFuY2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFV0dGVyYW5jZSB7XG4gIGNvbnN0cnVjdG9yKHV0dGVyYW5jZUxpa2UpIHtcbiAgICB0aGlzLmNhbmNlbGxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZGVmZXJyZWQgPSBjcmVhdGVEZWZlcnJlZCgpO1xuICAgIHRoaXMuaWQgPSB1dHRlcmFuY2VMaWtlLmlkO1xuICAgIHRoaXMuc3BlYWtpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnV0dGVyYW5jZUxpa2UgPSB1dHRlcmFuY2VMaWtlO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsbGVkID0gdHJ1ZTtcblxuICAgIHRoaXMuc3BlYWtpbmcgJiYgdGhpcy5wb255ZmlsbC5zcGVlY2hTeW50aGVzaXMuY2FuY2VsKCk7XG5cbiAgICByZXR1cm4gdGhpcy5kZWZlcnJlZC5wcm9taXNlO1xuICB9XG5cbiAgc3BlYWsocG9ueWZpbGwpIHtcbiAgICB0aGlzLl9zcGVhayhwb255ZmlsbCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLnV0dGVyYW5jZUxpa2Uub25FbmQgJiYgdGhpcy51dHRlcmFuY2VMaWtlLm9uRW5kKHsgdHlwZTogJ2VuZCcgfSk7XG4gICAgICB0aGlzLmRlZmVycmVkLnJlc29sdmUoKTtcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICB0aGlzLnV0dGVyYW5jZUxpa2Uub25FcnJvciAmJiB0aGlzLnV0dGVyYW5jZUxpa2Uub25FcnJvcih7IHR5cGU6ICdlcnJvcicsIGVycm9yIH0pO1xuICAgICAgdGhpcy5kZWZlcnJlZC5yZWplY3QoZXJyb3IpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVmZXJyZWQucHJvbWlzZTtcbiAgfVxuXG4gIGFzeW5jIF9zcGVhayhwb255ZmlsbCkge1xuICAgIGlmICh0aGlzLmNhbmNlbGxlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW5jZWxsZWQnKTtcbiAgICB9XG5cbiAgICB0aGlzLnBvbnlmaWxsID0gcG9ueWZpbGw7XG5cbiAgICBjb25zdCB7IHNwZWVjaFN5bnRoZXNpcyB9ID0gcG9ueWZpbGw7XG5cbiAgICBjb25zdCB1dHRlcmFuY2UgPSBjcmVhdGVOYXRpdmVVdHRlcmFuY2UodGhpcy51dHRlcmFuY2VMaWtlLCBwb255ZmlsbCk7XG4gICAgY29uc3Qgc3RhcnREZWZlcnJlZCA9IGNyZWF0ZURlZmVycmVkKCk7XG4gICAgY29uc3QgZXJyb3JEZWZlcnJlZCA9IGNyZWF0ZURlZmVycmVkKCk7XG4gICAgY29uc3QgZW5kRGVmZXJyZWQgPSBjcmVhdGVEZWZlcnJlZCgpO1xuXG4gICAgdXR0ZXJhbmNlLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZERlZmVycmVkLnJlc29sdmUpO1xuICAgIHV0dGVyYW5jZS5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGVycm9yRGVmZXJyZWQucmVzb2x2ZSk7XG4gICAgdXR0ZXJhbmNlLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnREZWZlcnJlZC5yZXNvbHZlKTtcblxuICAgIC8vIGlmIChzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcpIHtcbiAgICAvLyAgIGNvbnNvbGUud2FybihgQVNTRVJUSU9OOiBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgc2hvdWxkIG5vdCBiZSB0cnV0aHkgYmVmb3JlIHdlIGNhbGwgc3BlYWtgKTtcbiAgICAvLyB9XG5cbiAgICAvLyBDaHJvbWUgcXVpcmtzOlxuICAgIC8vIDEuIFNwZWFrIGFuIHV0dGVyYW5jZVxuICAgIC8vIDIuIENhbmNlbCBpbiB0aGUgbWlkd2F5XG4gICAgLy8gMy4gU3BlYWsgYW5vdGhlciB1dHRlcmFuY2VcbiAgICAvLyBFeHBlY3RlZDogc3BlYWtpbmcgaXMgZmFsc3ksIHRoZW4gdHVybiB0byB0cnV0aHksIHRoZW4gcmVjZWl2ZSBcInN0YXJ0XCIgZXZlbnQsIGFuZCBhdWRpbyBwbGF5ZWRcbiAgICAvLyBBY3R1YWw6IHNwZWFraW5nIGlzIGZhbHN5LCB0aGVuIHR1cm4gdG8gdHJ1dGh5ICh3aGljaCBpcyB3cm9uZyksIGJ1dCByZWNlaXZlIG5vIFwic3RhcnRcIiBldmVudCwgYW5kIG5vIGF1ZGlvIHBsYXllZFxuICAgIC8vIFdvcmthcm91bmQ6IHJldHJ5IDIgdGltZXMgd2l0aCBhIHNlY29uZFxuXG4gICAgLy8gU2FmYXJpIHF1aXJrczpcbiAgICAvLyAtIEF1ZGlvIGRvZXNuJ3QgcGxheSBpZiB0aGUgc3BlZWNoIGlzIHN0YXJ0ZWQgZnJvbSBhIHVzZXIgZXZlbnRcbiAgICAvLyAtIElmIG5vIGF1ZGlvIGlzIHBsYXllZCwgdGhlIFwic3RhcnRcIiBldmVudCB3b24ndCBmaXJlXG5cbiAgICAvLyBGb3IgQ2hyb21lIHF1aXJrcywgd2UgbmVlZCBhIGN1c3RvbSBxdWV1ZSwgYmVjYXVzZSB3ZSBuZWVkIHRvIGRlZmluaXRlbHkga25vdyB3aGVuIHRvIGV4cGVjdCBhIFwic3RhcnRcIiBldmVudC5cbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgcXVldWUsIHRoZSBcInN0YXJ0XCIgZXZlbnQgY291bGQgYmUgaGFwcGVuaW5nIGxvbmcgdGltZSBsYXRlciBiZWNhdXNlIGl0J3Mgc3RpbGwgcGVuZGluZyBpbiB0aGUgcXVldWUuXG5cbiAgICAvLyBCdXQgd2l0aCB0aGUgY3VzdG9tIHF1ZXVlLCB0aGUgZmlyc3QgaXRlbSBtaWdodCBiZSBzdGFydGVkIGZyb20gbm9uLXVzZXIgZXZlbnQuIFRoYXQgbWVhbnMgaW4gU2FmYXJpLCB0aGUgZmlyc3QgaXRlbSBpcyBtdXRlZC5cbiAgICAvLyBBbmQgYWZ0ZXIgdGhlIGZpcnN0IGZhaWwsIHRoZSBjdXN0b20gcXVldWUgd2lsbCBwbGF5IHRoZSBzZWNvbmQgaXRlbSBmcm9tIGEgbm9uLXVzZXIgZXZlbnQgY29kZSBwYXRoLiBUaGF0IG1lYW5zLCBhbGwgc3Vic2VxdWVudFxuICAgIC8vIGl0ZW1zIGFyZSBibG9ja2VkIHVudGlsIFNhZmFyaSBoYXMgdGhlIHZlcnkgZmlyc3QgaXRlbSBxdWV1ZWQgZnJvbSB1c2VyIGV2ZW50LlxuXG4gICAgLy8gY29uc29sZS5kZWJ1ZyhgU1RBUlRJTkc6ICR7IHV0dGVyYW5jZS50ZXh0IH1gKTtcblxuICAgIHRoaXMuc3BlYWtpbmcgPSB0cnVlO1xuXG4gICAgYXdhaXQgcmV0cnkoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FuY2VsbGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY2FuY2VsbGVkJyk7XG4gICAgICB9XG5cbiAgICAgIHNwZWVjaFN5bnRoZXNpcy5zcGVhayh1dHRlcmFuY2UpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgIHN0YXJ0RGVmZXJyZWQucHJvbWlzZSxcbiAgICAgICAgICB0aW1lb3V0KDEwMDApXG4gICAgICAgIF0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3IgQ2hyb21lIHF1aXJrcy5cbiAgICAgICAgLy8gQ2hyb21lIGRvZXNuJ3Qga25vdyBpdCBjYW4ndCBzdGFydCBzcGVlY2gsIGFuZCBpdCBqdXN0IHdhaXQgdGhlcmUgZm9yZXZlci5cbiAgICAgICAgLy8gV2UgbmVlZCB0byBjYW5jZWwgaXQgb3V0LlxuICAgICAgICBzcGVlY2hTeW50aGVzaXMuY2FuY2VsKCk7XG5cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSwgMiwgMCk7XG5cbiAgICAvLyBjb25zb2xlLmRlYnVnKGBTVEFSVEVEOiAkeyB1dHRlcmFuY2UudGV4dCB9YCk7XG5cbiAgICB1dHRlcmFuY2Uub25TdGFydCAmJiB1dHRlcmFuY2Uub25TdGFydCh7IHR5cGU6ICdzdGFydCcgfSk7XG5cbiAgICBjb25zdCBlbmRFdmVudCA9IGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICBlcnJvckRlZmVycmVkLnByb21pc2UsXG4gICAgICBlbmREZWZlcnJlZC5wcm9taXNlLFxuICAgICAgc3BpbldhaXRVbnRpbCgoKSA9PiAhc3BlZWNoU3ludGhlc2lzLnNwZWFraW5nKS50aGVuKCgpID0+IHNsZWVwKDUwMCkpLnRoZW4oKCkgPT4gKHsgdHlwZTogJ2VuZCcsIGFydGlmaWNpYWw6IHRydWUgfSkpXG4gICAgXSk7XG5cbiAgICAvLyBpZiAoc3BlZWNoU3ludGhlc2lzLnNwZWFraW5nKSB7XG4gICAgLy8gICBjb25zb2xlLndhcm4oYEFTU0VSVElPTjogc3BlZWNoU3ludGhlc2lzLnNwZWFraW5nIHNob3VsZCBub3QgYmUgdHJ1dGh5IGFmdGVyIHNwZWFrIGlzIHN0b3BwZWRgKTtcbiAgICAvLyB9XG5cbiAgICAvLyBjb25zb2xlLmRlYnVnKGBFTkRFRDogJHsgdXR0ZXJhbmNlLnRleHQgfWApO1xuXG4gICAgdGhpcy5zcGVha2luZyA9IGZhbHNlO1xuXG4gICAgaWYgKGVuZEV2ZW50LnR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgIHRocm93IGVuZEV2ZW50LmVycm9yO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jYW5jZWxsZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2FuY2VsbGVkJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9VdHRlcmFuY2UuanMiXSwibmFtZXMiOlsiY3JlYXRlTmF0aXZlVXR0ZXJhbmNlIiwidXR0ZXJhbmNlTGlrZSIsInBvbnlmaWxsIiwic3BlZWNoU3ludGhlc2lzIiwiU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIiwibGFuZyIsIm9uQm91bmRhcnkiLCJwaXRjaCIsInJhdGUiLCJ0ZXh0Iiwidm9pY2UiLCJ2b2x1bWUiLCJ1dHRlcmFuY2UiLCJ0YXJnZXRWb2ljZSIsImNhbGwiLCJnZXRWb2ljZXMiLCJ2b2ljZVVSSSIsImZpbmQiLCJzbGljZSIsInYiLCJhZGRFdmVudExpc3RlbmVyIiwiVXR0ZXJhbmNlIiwiY2FuY2VsbGVkIiwiZGVmZXJyZWQiLCJpZCIsInNwZWFraW5nIiwiY2FuY2VsIiwicHJvbWlzZSIsIl9zcGVhayIsInRoZW4iLCJvbkVuZCIsInR5cGUiLCJyZXNvbHZlIiwib25FcnJvciIsImVycm9yIiwicmVqZWN0IiwiRXJyb3IiLCJzdGFydERlZmVycmVkIiwiZXJyb3JEZWZlcnJlZCIsImVuZERlZmVycmVkIiwic3BlYWsiLCJyYWNlIiwib25TdGFydCIsImFydGlmaWNpYWwiLCJlbmRFdmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxTQUFTQSxxQkFBVCxDQUErQkMsYUFBL0IsRUFBOENDLFFBQTlDLEVBQXdEO0FBQUEsTUFDOUNDLGVBRDhDLEdBQ0FELFFBREEsQ0FDOUNDLGVBRDhDO0FBQUEsTUFDN0JDLHdCQUQ2QixHQUNBRixRQURBLENBQzdCRSx3QkFENkI7QUFBQSxNQUdwREMsSUFIb0QsR0FVbERKLGFBVmtELENBR3BESSxJQUhvRDtBQUFBLE1BSXBEQyxVQUpvRCxHQVVsREwsYUFWa0QsQ0FJcERLLFVBSm9EO0FBQUEsNkJBVWxETCxhQVZrRCxDQUtwRE0sS0FMb0Q7QUFBQSxNQUtwREEsS0FMb0Qs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QUE7O0FBQUE7QUFBQTtBQUFBOztBQWFSO0FBQ0E7QUFDQTtBQUNBeEIsMENBQWdCdUIsTUFBaEI7O0FBaEJROztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUFOLElBb0JILENBcEJHLEVBb0JBLENBcEJBLEM7Ozs7QUFzQk47O0FBRUFkLDBCQUFVOEIsT0FBVixJQUFxQjlCLFVBQVU4QixPQUFWLENBQWtCLEVBQUVYLE1BQU0sT0FBUixFQUFsQixDQUFyQjs7O3VCQUV1QixrQkFBUVUsSUFBUixDQUFhLENBQ2xDSCxjQUFjWCxPQURvQixFQUVsQ1ksWUFBWVosT0FGc0IsRUFHbEMsNkJBQWM7QUFBQSx5QkFBTSxDQUFDeEIsZ0JBQWdCc0IsUUFBdkI7QUFBQSxpQkFBZCxFQUErQ0ksSUFBL0MsQ0FBb0Q7QUFBQSx5QkFBTSxxQkFBTSxHQUFOLENBQU47QUFBQSxpQkFBcEQsRUFBc0VBLElBQXRFLENBQTJFO0FBQUEseUJBQU8sRUFBRUUsTUFBTSxLQUFSLEVBQWVZLFlBQVksSUFBM0IsRUFBUDtBQUFBLGlCQUEzRSxDQUhrQyxDQUFiLEM7OztBQUFqQkMsd0I7OztBQU1OO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxxQkFBS25CLFFBQUwsR0FBZ0IsS0FBaEI7O3NCQUVJbUIsU0FBU2IsSUFBVCxLQUFrQixPOzs7OztzQkFDZGEsU0FBU1YsSzs7O3FCQUNOLEtBQUtaLFM7Ozs7O3NCQUNSLElBQUljLEtBQUosQ0FBVSxXQUFWLEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQXJIU2YsUyIsImZpbGUiOiJVdHRlcmFuY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlRGVmZXJyZWQgZnJvbSAnLi9jcmVhdGVEZWZlcnJlZCc7XG5pbXBvcnQgcmV0cnkgZnJvbSAnLi9yZXRyeSc7XG5pbXBvcnQgc2xlZXAgZnJvbSAnLi9zbGVlcCc7XG5pbXBvcnQgc3BpbldhaXRVbnRpbCBmcm9tICcuL3NwaW5XYWl0VW50aWwnO1xuaW1wb3J0IHRpbWVvdXQgZnJvbSAnLi90aW1lb3V0JztcblxuZnVuY3Rpb24gY3JlYXRlTmF0aXZlVXR0ZXJhbmNlKHV0dGVyYW5jZUxpa2UsIHBvbnlmaWxsKSB7XG4gIGNvbnN0IHsgc3BlZWNoU3ludGhlc2lzLCBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgfSA9IHBvbnlmaWxsO1xuICBjb25zdCB7XG4gICAgbGFuZyxcbiAgICBvbkJvdW5kYXJ5LFxuICAgIHBpdGNoID0gMSxcbiAgICByYXRlID0gMSxcbiAgICB0ZXh0LFxuICAgIHZvaWNlLFxuICAgIHZvbHVtZSA9IDFcbiAgfSA9IHV0dGVyYW5jZUxpa2U7XG4gIGNvbnN0IHV0dGVyYW5jZSA9IG5ldyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UodGV4dCk7XG4gIGxldCB0YXJnZXRWb2ljZTtcblxuICBpZiAodHlwZW9mIHZvaWNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdGFyZ2V0Vm9pY2UgPSB2b2ljZS5jYWxsKHNwZWVjaFN5bnRoZXNpcywgc3BlZWNoU3ludGhlc2lzLmdldFZvaWNlcygpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IHZvaWNlVVJJIH0gPSB2b2ljZSB8fCB7fTtcblxuICAgIHRhcmdldFZvaWNlID0gdm9pY2VVUkkgJiYgW10uZmluZC5jYWxsKFtdLnNsaWNlLmNhbGwoc3BlZWNoU3ludGhlc2lzLmdldFZvaWNlcygpKSwgdiA9PiB2LnZvaWNlVVJJID09PSB2b2ljZVVSSSk7XG4gIH1cblxuICAvLyBFZGdlIHdpbGwgbXV0ZSBpZiBcImxhbmdcIiBpcyBzZXQgdG8gXCJcIlxuICB1dHRlcmFuY2UubGFuZyA9IGxhbmcgfHwgJyc7XG5cbiAgaWYgKHV0dGVyYW5jZS5waXRjaCB8fCB1dHRlcmFuY2UucGl0Y2ggPT09IDApIHtcbiAgICB1dHRlcmFuY2UucGl0Y2ggPSBwaXRjaDtcbiAgfVxuXG4gIGlmICh1dHRlcmFuY2UucmF0ZSB8fCB1dHRlcmFuY2UucmF0ZSA9PT0gMCkge1xuICAgIHV0dGVyYW5jZS5yYXRlID0gcmF0ZTtcbiAgfVxuXG4gIC8vIENvZ25pdGl2ZSBTZXJ2aWNlcyB3aWxsIGVycm9yIHdoZW4gXCJ2b2ljZVwiIGlzIHNldCB0byBcIm51bGxcIlxuICAvLyBFZGdlIHdpbGwgZXJyb3Igd2hlbiBcInZvaWNlXCIgaXMgc2V0IHRvIFwidW5kZWZpbmVkXCJcbiAgaWYgKHRhcmdldFZvaWNlKSB7XG4gICAgdXR0ZXJhbmNlLnZvaWNlID0gdGFyZ2V0Vm9pY2U7XG4gIH1cblxuICBpZiAodXR0ZXJhbmNlLnZvbHVtZSB8fCB1dHRlcmFuY2Uudm9sdW1lID09PSAwKSB7XG4gICAgdXR0ZXJhbmNlLnZvbHVtZSA9IHZvbHVtZTtcbiAgfVxuXG4gIGlmICh1dHRlcmFuY2UuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChvbkJvdW5kYXJ5KSB7XG4gICAgICB1dHRlcmFuY2UuYWRkRXZlbnRMaXN0ZW5lcignYm91bmRhcnknLCBvbkJvdW5kYXJ5KTtcbiAgICB9XG5cbiAgICAvLyBTaW5jZSBicm93c2VyIHF1aXJrcywgc3RhcnQvZXJyb3IvZW5kIGV2ZW50cyBhcmUgZW11bGF0ZWQgZm9yIGJlc3QgY29tcGF0aWJpbGl0eVxuICB9XG5cbiAgcmV0dXJuIHV0dGVyYW5jZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXR0ZXJhbmNlIHtcbiAgY29uc3RydWN0b3IodXR0ZXJhbmNlTGlrZSkge1xuICAgIHRoaXMuY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgdGhpcy5kZWZlcnJlZCA9IGNyZWF0ZURlZmVycmVkKCk7XG4gICAgdGhpcy5pZCA9IHV0dGVyYW5jZUxpa2UuaWQ7XG4gICAgdGhpcy5zcGVha2luZyA9IGZhbHNlO1xuICAgIHRoaXMudXR0ZXJhbmNlTGlrZSA9IHV0dGVyYW5jZUxpa2U7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5jYW5jZWxsZWQgPSB0cnVlO1xuXG4gICAgdGhpcy5zcGVha2luZyAmJiB0aGlzLnBvbnlmaWxsLnNwZWVjaFN5bnRoZXNpcy5jYW5jZWwoKTtcblxuICAgIHJldHVybiB0aGlzLmRlZmVycmVkLnByb21pc2U7XG4gIH1cblxuICBzcGVhayhwb255ZmlsbCkge1xuICAgIHRoaXMuX3NwZWFrKHBvbnlmaWxsKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMudXR0ZXJhbmNlTGlrZS5vbkVuZCAmJiB0aGlzLnV0dGVyYW5jZUxpa2Uub25FbmQoeyB0eXBlOiAnZW5kJyB9KTtcbiAgICAgIHRoaXMuZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgIH0sIGVycm9yID0+IHtcbiAgICAgIHRoaXMudXR0ZXJhbmNlTGlrZS5vbkVycm9yICYmIHRoaXMudXR0ZXJhbmNlTGlrZS5vbkVycm9yKHsgdHlwZTogJ2Vycm9yJywgZXJyb3IgfSk7XG4gICAgICB0aGlzLmRlZmVycmVkLnJlamVjdChlcnJvcik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kZWZlcnJlZC5wcm9taXNlO1xuICB9XG5cbiAgYXN5bmMgX3NwZWFrKHBvbnlmaWxsKSB7XG4gICAgaWYgKHRoaXMuY2FuY2VsbGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbmNlbGxlZCcpO1xuICAgIH1cblxuICAgIHRoaXMucG9ueWZpbGwgPSBwb255ZmlsbDtcblxuICAgIGNvbnN0IHsgc3BlZWNoU3ludGhlc2lzIH0gPSBwb255ZmlsbDtcblxuICAgIGNvbnN0IHV0dGVyYW5jZSA9IGNyZWF0ZU5hdGl2ZVV0dGVyYW5jZSh0aGlzLnV0dGVyYW5jZUxpa2UsIHBvbnlmaWxsKTtcbiAgICBjb25zdCBzdGFydERlZmVycmVkID0gY3JlYXRlRGVmZXJyZWQoKTtcbiAgICBjb25zdCBlcnJvckRlZmVycmVkID0gY3JlYXRlRGVmZXJyZWQoKTtcbiAgICBjb25zdCBlbmREZWZlcnJlZCA9IGNyZWF0ZURlZmVycmVkKCk7XG5cbiAgICB1dHRlcmFuY2UuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kRGVmZXJyZWQucmVzb2x2ZSk7XG4gICAgdXR0ZXJhbmNlLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JEZWZlcnJlZC5yZXNvbHZlKTtcbiAgICB1dHRlcmFuY2UuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydERlZmVycmVkLnJlc29sdmUpO1xuXG4gICAgLy8gaWYgKHNwZWVjaFN5bnRoZXNpcy5zcGVha2luZykge1xuICAgIC8vICAgY29uc29sZS53YXJuKGBBU1NFUlRJT046IHNwZWVjaFN5bnRoZXNpcy5zcGVha2luZyBzaG91bGQgbm90IGJlIHRydXRoeSBiZWZvcmUgd2UgY2FsbCBzcGVha2ApO1xuICAgIC8vIH1cblxuICAgIC8vIENocm9tZSBxdWlya3M6XG4gICAgLy8gMS4gU3BlYWsgYW4gdXR0ZXJhbmNlXG4gICAgLy8gMi4gQ2FuY2VsIGluIHRoZSBtaWR3YXlcbiAgICAvLyAzLiBTcGVhayBhbm90aGVyIHV0dGVyYW5jZVxuICAgIC8vIEV4cGVjdGVkOiBzcGVha2luZyBpcyBmYWxzeSwgdGhlbiB0dXJuIHRvIHRydXRoeSwgdGhlbiByZWNlaXZlIFwic3RhcnRcIiBldmVudCwgYW5kIGF1ZGlvIHBsYXllZFxuICAgIC8vIEFjdHVhbDogc3BlYWtpbmcgaXMgZmFsc3ksIHRoZW4gdHVybiB0byB0cnV0aHkgKHdoaWNoIGlzIHdyb25nKSwgYnV0IHJlY2VpdmUgbm8gXCJzdGFydFwiIGV2ZW50LCBhbmQgbm8gYXVkaW8gcGxheWVkXG4gICAgLy8gV29ya2Fyb3VuZDogcmV0cnkgMiB0aW1lcyB3aXRoIGEgc2Vjb25kXG5cbiAgICAvLyBTYWZhcmkgcXVpcmtzOlxuICAgIC8vIC0gQXVkaW8gZG9lc24ndCBwbGF5IGlmIHRoZSBzcGVlY2ggaXMgc3RhcnRlZCBmcm9tIGEgdXNlciBldmVudFxuICAgIC8vIC0gSWYgbm8gYXVkaW8gaXMgcGxheWVkLCB0aGUgXCJzdGFydFwiIGV2ZW50IHdvbid0IGZpcmVcblxuICAgIC8vIEZvciBDaHJvbWUgcXVpcmtzLCB3ZSBuZWVkIGEgY3VzdG9tIHF1ZXVlLCBiZWNhdXNlIHdlIG5lZWQgdG8gZGVmaW5pdGVseSBrbm93IHdoZW4gdG8gZXhwZWN0IGEgXCJzdGFydFwiIGV2ZW50LlxuICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBxdWV1ZSwgdGhlIFwic3RhcnRcIiBldmVudCBjb3VsZCBiZSBoYXBwZW5pbmcgbG9uZyB0aW1lIGxhdGVyIGJlY2F1c2UgaXQncyBzdGlsbCBwZW5kaW5nIGluIHRoZSBxdWV1ZS5cblxuICAgIC8vIEJ1dCB3aXRoIHRoZSBjdXN0b20gcXVldWUsIHRoZSBmaXJzdCBpdGVtIG1pZ2h0IGJlIHN0YXJ0ZWQgZnJvbSBub24tdXNlciBldmVudC4gVGhhdCBtZWFucyBpbiBTYWZhcmksIHRoZSBmaXJzdCBpdGVtIGlzIG11dGVkLlxuICAgIC8vIEFuZCBhZnRlciB0aGUgZmlyc3QgZmFpbCwgdGhlIGN1c3RvbSBxdWV1ZSB3aWxsIHBsYXkgdGhlIHNlY29uZCBpdGVtIGZyb20gYSBub24tdXNlciBldmVudCBjb2RlIHBhdGguIFRoYXQgbWVhbnMsIGFsbCBzdWJzZXF1ZW50XG4gICAgLy8gaXRlbXMgYXJlIGJsb2NrZWQgdW50aWwgU2FmYXJpIGhhcyB0aGUgdmVyeSBmaXJzdCBpdGVtIHF1ZXVlZCBmcm9tIHVzZXIgZXZlbnQuXG5cbiAgICAvLyBjb25zb2xlLmRlYnVnKGBTVEFSVElORzogJHsgdXR0ZXJhbmNlLnRleHQgfWApO1xuXG4gICAgdGhpcy5zcGVha2luZyA9IHRydWU7XG5cbiAgICBhd2FpdCByZXRyeShhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jYW5jZWxsZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW5jZWxsZWQnKTtcbiAgICAgIH1cblxuICAgICAgc3BlZWNoU3ludGhlc2lzLnNwZWFrKHV0dGVyYW5jZSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgICAgc3RhcnREZWZlcnJlZC5wcm9taXNlLFxuICAgICAgICAgIHRpbWVvdXQoMTAwMClcbiAgICAgICAgXSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciBDaHJvbWUgcXVpcmtzLlxuICAgICAgICAvLyBDaHJvbWUgZG9lc24ndCBrbm93IGl0IGNhbid0IHN0YXJ0IHNwZWVjaCwgYW5kIGl0IGp1c3Qgd2FpdCB0aGVyZSBmb3JldmVyLlxuICAgICAgICAvLyBXZSBuZWVkIHRvIGNhbmNlbCBpdCBvdXQuXG4gICAgICAgIHNwZWVjaFN5bnRoZXNpcy5jYW5jZWwoKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LCAyLCAwKTtcblxuICAgIC8vIGNvbnNvbGUuZGVidWcoYFNUQVJURUQ6ICR7IHV0dGVyYW5jZS50ZXh0IH1gKTtcblxuICAgIHV0dGVyYW5jZS5vblN0YXJ0ICYmIHV0dGVyYW5jZS5vblN0YXJ0KHsgdHlwZTogJ3N0YXJ0JyB9KTtcblxuICAgIGNvbnN0IGVuZEV2ZW50ID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgIGVycm9yRGVmZXJyZWQucHJvbWlzZSxcbiAgICAgIGVuZERlZmVycmVkLnByb21pc2UsXG4gICAgICBzcGluV2FpdFVudGlsKCgpID0+ICFzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcpLnRoZW4oKCkgPT4gc2xlZXAoNTAwKSkudGhlbigoKSA9PiAoeyB0eXBlOiAnZW5kJywgYXJ0aWZpY2lhbDogdHJ1ZSB9KSlcbiAgICBdKTtcblxuICAgIC8vIGlmIChzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcpIHtcbiAgICAvLyAgIGNvbnNvbGUud2FybihgQVNTRVJUSU9OOiBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgc2hvdWxkIG5vdCBiZSB0cnV0aHkgYWZ0ZXIgc3BlYWsgaXMgc3RvcHBlZGApO1xuICAgIC8vIH1cblxuICAgIC8vIGNvbnNvbGUuZGVidWcoYEVOREVEOiAkeyB1dHRlcmFuY2UudGV4dCB9YCk7XG5cbiAgICB0aGlzLnNwZWFraW5nID0gZmFsc2U7XG5cbiAgICBpZiAoZW5kRXZlbnQudHlwZSA9PT0gJ2Vycm9yJykge1xuICAgICAgdGhyb3cgZW5kRXZlbnQuZXJyb3I7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNhbmNlbGxlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW5jZWxsZWQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
{
"name": "react-say",
"version": "1.0.1-master.cfdb77a",
"version": "1.0.1-master.de311fd",
"description": "A React component that synthesis text into speech using Web Speech API",

@@ -22,4 +22,5 @@ "keywords": [

"bootstrap": "lerna bootstrap",
"build": "lerna run build",
"test": "lerna run test"
"build": "lerna run --stream build",
"test": "lerna run --stream test",
"watch": "lerna run --parallel --stream watch"
},

@@ -26,0 +27,0 @@ "author": "William Wong <compulim@hotmail.com> (http://compulim.info/)",

@@ -102,10 +102,15 @@ # react-say

* If `<Say>` or `<SayButton>` is unmounted, the utterance will continue to speak
* Web Speech does not support stopping or dequeueing a pending utterance, only to cancel all utterances at once
* Since the utterance is already queued, speaking, or spoken, we cannot stop it and not cancelling other "innocent" utterance
* We decided to let it continue but not firing any events after unmount
* Instead of using the native queue for utterances, we implement our own speech queue for browser compatibility reasons
* Queue is managed by `<Composer>`, all `<Say>` and `<SayButton>` inside the same `<Composer>` will share the same queue
* Native queue does not support partial cancel, when `cancel` is called, all pending utterances are stopped
* If `<Say>` or `<SayButton>` is unmounted, the utterance can be stopped without affecting other pending utterances
* Utterance order can be changed on-the-fly
* Browser quirks
* Chrome: if `cancel` and `speak` are called repeatedly, `speak` will appear to succeed (`speaking === true`) but audio is never played (`start` event is never fired)
* Safari: when speech is not triggered by user event (e.g. mouse click or tap), the speech will not be played
* Workaround: on page load, prime the speech engine by any user events
# Roadmap
* [ ] Prettify playground page
* [x] Prettify playground page

@@ -112,0 +117,0 @@ # Contributions

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc