New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

atom-ide-mocha-core

Package Overview
Dependencies
Maintainers
2
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

atom-ide-mocha-core - npm Package Compare versions

Comparing version 2.1.1 to 2.2.0

16

CHANGELOG.md

@@ -6,2 +6,18 @@ # Change Log

# [2.2.0](https://github.com/Dreamscapes/atom-ide-mocha-core/compare/atom-ide-mocha-core@2.1.1...atom-ide-mocha-core@2.2.0) (2019-02-12)
### Bug Fixes
* properly manage package state throughout activations/deactivations ([1262bfa](https://github.com/Dreamscapes/atom-ide-mocha-core/commit/1262bfa))
### Features
* integrate atom-package-deps 📦 ([7b62eec](https://github.com/Dreamscapes/atom-ide-mocha-core/commit/7b62eec))
## [2.1.1](https://github.com/Dreamscapes/atom-ide-mocha-core/compare/atom-ide-mocha-core@2.1.0...atom-ide-mocha-core@2.1.1) (2019-01-15)

@@ -8,0 +24,0 @@

5

package.json
{
"name": "atom-ide-mocha-core",
"description": "Code for IDE-Mocha Atom package",
"version": "2.1.1",
"version": "2.2.0",
"author": {

@@ -12,2 +12,3 @@ "name": "Robert Rossmann",

"dependencies": {
"atom-package-deps": "^5.0.0",
"hash-to-port": "^1.0.0",

@@ -36,3 +37,3 @@ "remote-event-emitter": "^1.1.0",

},
"gitHead": "ef9272f6bcd552ee4bfd1e0c2513faea60301ffd"
"gitHead": "b138e45c6cf2a8b5d43c90b2766afd46fd8627b1"
}

36

src/ide-mocha.js

@@ -14,2 +14,4 @@ "use strict";

var _atomPackageDeps = require("atom-package-deps");
var _remoteEventEmitter = require("remote-event-emitter");

@@ -44,7 +46,2 @@

_subscriptions.set(this, {
writable: true,
value: null
});
_busy.set(this, {

@@ -65,3 +62,3 @@ writable: true,

_remotes.set(this, {
_settings.set(this, {
writable: true,

@@ -71,10 +68,17 @@ value: null

_settings.set(this, {
_subscriptions.set(this, {
writable: true,
value: null
value: new _atom.CompositeDisposable()
});
_remotes.set(this, {
writable: true,
value: new Map()
});
}
activate() {
_classPrivateFieldSet(this, _remotes, new Map());
async activate() {
await (0, _atomPackageDeps.install)('ide-mocha', {
promptUser: true
});

@@ -101,3 +105,3 @@ _classPrivateFieldSet(this, _settings, atom.config.get('ide-mocha'));

_classPrivateFieldSet(this, _subscriptions, null);
_classPrivateFieldSet(this, _subscriptions, new _atom.CompositeDisposable());

@@ -365,4 +369,2 @@ _classPrivateFieldSet(this, _busy, null);

var _subscriptions = new WeakMap();
var _busy = new WeakMap();

@@ -374,5 +376,7 @@

var _settings = new WeakMap();
var _subscriptions = new WeakMap();
var _remotes = new WeakMap();
var _settings = new WeakMap();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlkZS1tb2NoYS5tanMiXSwibmFtZXMiOlsiSEVMUF9URU1QTEFURSIsImZzIiwicmVhZEZpbGVTeW5jIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJJZGVNb2NoYSIsImNvbmZpZyIsIm1lbnVzIiwiZG9QcmludEFkZHJlc3NJbmZvIiwiZG9Db3B5UmVjZWl2ZXJBZGRyZXNzIiwiZG9Db3B5TW9jaGFDb21tYW5kIiwiZG9IZWxwIiwiYWN0aXZhdGUiLCJNYXAiLCJhdG9tIiwiZ2V0IiwiQ29tcG9zaXRlRGlzcG9zYWJsZSIsImFkZCIsImNvbW1hbmRzIiwibWVudSIsIm9uRGlkQ2hhbmdlIiwiZGlkQ2hhbmdlQ29uZmlnIiwicHJvamVjdCIsIm9uRGlkQ2hhbmdlUGF0aHMiLCJkaWRDaGFuZ2VQYXRocyIsInNldEltbWVkaWF0ZSIsImdldFBhdGhzIiwiZGVhY3RpdmF0ZSIsImRpc3Bvc2UiLCJjb25zdW1lQnVzeVNpZ25hbCIsImJ1c3kiLCJjb25zdW1lQ29uc29sZSIsIm1rY29uc29sZSIsImlkIiwibmFtZSIsImNvbnN1bWVMaW50ZXIiLCJta2xpbnRlciIsImZvbGRlciIsImFkZHJlc3MiLCJlbnRyaWVzIiwibG9nIiwiYmFzZW5hbWUiLCJ1dGlsIiwib3BlbkNvbnNvbGUiLCJwcmltYXJ5Iiwic2hpZnQiLCJjbGlwYm9hcmQiLCJ3cml0ZSIsIm5vdGlmaWNhdGlvbnMiLCJhZGRTdWNjZXNzIiwiZGVzY3JpcHRpb24iLCJjb21tYW5kIiwibWtjb21tYW5kaW5mbyIsInNob3dIZWxwTm90aWZpY2F0aW9uIiwiaGVscCIsInJlcGxhY2UiLCJhZGRJbmZvIiwiaWNvbiIsImRpc21pc3NhYmxlIiwiYnV0dG9ucyIsInRleHQiLCJjbGFzc05hbWUiLCJvbkRpZENsaWNrIiwic2hvd1N1Y2Nlc3NOb3RpZmljYXRpb24iLCJzdGF0cyIsImRldGFpbCIsIm1rc3RhdHMiLCJzaG93RmFpbHVyZU5vdGlmaWNhdGlvbiIsImFkZEVycm9yIiwiY2hhbmdlIiwibmV3VmFsdWUiLCJnZW5lcmFsIiwiaW50ZXJmYWNlIiwib2xkVmFsdWUiLCJwYXRocyIsInJlbW92ZWQiLCJBcnJheSIsImZyb20iLCJrZXlzIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiZGVzdHJveVJlbW90ZUZvckZvbGRlciIsImNyZWF0ZVJlbW90ZUZvckZvbGRlciIsImhhcyIsInR5cGUiLCJzb2NrZXQiLCJDb25zdW1lciIsIm1rYWRkcmVzcyIsInJvb3QiLCJyZW1vdGUiLCJzZXQiLCJ1bmxpbmsiLCJvbiIsInNvdXJjZSIsImRpZFJlY2VpdmVDb25uZWN0aW9uIiwibGlzdGVuIiwiZGVsZXRlIiwiY2xvc2UiLCJzZXNzaW9uIiwiU2Vzc2lvbiIsImxpbnRlciIsImNvbnNvbGUiLCJzZXR0aW5ncyIsInZlcmJvc2l0eSIsImR1cmF0aW9ucyIsInNob3dDb25zb2xlIiwib3BlbkNvbnNvbGVPbkZhaWx1cmUiLCJydW5uZXIiLCJkaWRTdGFydFJ1bm5pbmciLCJkaWRGaW5pc2hSdW5uaW5nIiwic3VpdGUiLCJkaWRTdGFydFN1aXRlIiwiZGlkRmluaXNoVGVzdCIsInRlc3QiLCJkaWRQYXNzVGVzdCIsImVyciIsImRpZEZhaWxUZXN0IiwiZGlkU2tpcFRlc3QiLCJkaWRDbG9zZSIsIm9uY2UiLCJmYWlsdXJlcyIsIm5vdGlmeU9uRmFpbHVyZSIsIm5vdGlmeU9uU3VjY2VzcyIsIm9wZW5Db25zb2xlT25TdGFydCIsImNsZWFyQ29uc29sZU9uU3RhcnQiLCJjbGVhckNvbnNvbGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFQSxNQUFNQSxhQUFhLEdBQUdDLEVBQUUsQ0FBQ0MsWUFBSCxDQUFnQkMsSUFBSSxDQUFDQyxPQUFMLENBQWFDLFNBQWIsRUFBd0IsUUFBeEIsRUFBa0MsU0FBbEMsQ0FBaEIsRUFBOEQsTUFBOUQsQ0FBdEI7O0FBRUEsTUFBTUMsUUFBTixDQUFl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QUFrRDtBQUNoRCxlQUFLekQsdUJBQUwsQ0FBNkI7QUFBRUgsWUFBQUE7QUFBRixXQUE3QjtBQUNEO0FBQ0Y7O0FBRUQsVUFBSSxDQUFDQSxLQUFLLENBQUMyRCxRQUFQLElBQW1CLHVDQUFlM0UsYUFBZixDQUE2QjZFLGVBQXBELEVBQXFFO0FBQ25FLGFBQUs5RCx1QkFBTCxDQUE2QjtBQUFFQyxVQUFBQTtBQUFGLFNBQTdCO0FBQ0Q7QUFDRixLQVZEOztBQVlBLFFBQUksdUNBQWV3QyxPQUFmLENBQXVCc0Isa0JBQTNCLEVBQStDO0FBQzdDcEYsTUFBQUEsSUFBSSxDQUFDQyxXQUFMO0FBQ0Q7O0FBRUQsUUFBSSx1Q0FBZTZELE9BQWYsQ0FBdUJ1QixtQkFBM0IsRUFBZ0Q7QUFDOUNyRixNQUFBQSxJQUFJLENBQUNzRixZQUFMO0FBQ0Q7QUFDRjs7QUE1UFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGVEaXNwb3NhYmxlIH0gZnJvbSAnYXRvbSdcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJ1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgQ29uc3VtZXIgfSBmcm9tICdyZW1vdGUtZXZlbnQtZW1pdHRlcidcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsJ1xuaW1wb3J0IHsgY29uZmlnLCBtZW51cyB9IGZyb20gJy4vZGVmaW5pdGlvbnMnXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi9zZXNzaW9uJ1xuXG5jb25zdCBIRUxQX1RFTVBMQVRFID0gZnMucmVhZEZpbGVTeW5jKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdzdGF0aWMnLCAnaGVscC5tZCcpLCAndXRmOCcpXG5cbmNsYXNzIElkZU1vY2hhIHtcbiAgY29uZmlnID0gY29uZmlnXG4gIG1lbnVzID0gbWVudXNcbiAgY29tbWFuZHMgPSB7XG4gICAgJ2lkZS1tb2NoYTpwcmludC1hZGRyZXNzLWluZm8nOiA6OnRoaXMuZG9QcmludEFkZHJlc3NJbmZvLFxuICAgICdpZGUtbW9jaGE6Y29weS1yZWNlaXZlci1hZGRyZXNzJzogOjp0aGlzLmRvQ29weVJlY2VpdmVyQWRkcmVzcyxcbiAgICAnaWRlLW1vY2hhOmNvcHktbW9jaGEtY29tbWFuZCc6IDo6dGhpcy5kb0NvcHlNb2NoYUNvbW1hbmQsXG4gICAgJ2lkZS1tb2NoYTpoZWxwJzogOjp0aGlzLmRvSGVscCxcbiAgfVxuXG4gICNzdWJzY3JpcHRpb25zID0gbnVsbFxuICAjYnVzeSA9IG51bGxcbiAgI2NvbnNvbGUgPSBudWxsXG4gICNsaW50ZXIgPSBudWxsXG4gICNyZW1vdGVzID0gbnVsbFxuICAjc2V0dGluZ3MgPSBudWxsXG5cbiAgLy8gTElGRUNZQ0xFXG5cbiAgYWN0aXZhdGUoKSB7XG4gICAgdGhpcy4jcmVtb3RlcyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuI3NldHRpbmdzID0gYXRvbS5jb25maWcuZ2V0KCdpZGUtbW9jaGEnKVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMgPSBuZXcgQ29tcG9zaXRlRGlzcG9zYWJsZSgpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoYXRvbS5jb21tYW5kcy5hZGQoJ2F0b20td29ya3NwYWNlJywgdGhpcy5jb21tYW5kcykpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoYXRvbS5tZW51LmFkZCh0aGlzLm1lbnVzKSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLmNvbmZpZy5vbkRpZENoYW5nZSgnaWRlLW1vY2hhJywgOjp0aGlzLmRpZENoYW5nZUNvbmZpZykpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoYXRvbS5wcm9qZWN0Lm9uRGlkQ2hhbmdlUGF0aHMoOjp0aGlzLmRpZENoYW5nZVBhdGhzKSlcbiAgICAvLyBJbml0aWFsIHNvY2tldCBzZXR1cCBiZWNhdXNlIHRoZSBhYm92ZSBsaXN0ZW5lciBpcyBub3QgdHJpZ2dlcmVkIGF0IEF0b20gc3RhcnR1cFxuICAgIC8vIERlbGF5IHNvY2tldCBhY3RpdmF0aW9uIGR1ZSB0byBBdG9tIHNvbWV0aW1lcyBub3QgcmV0dXJuaW5nIHByb2plY3QgcGF0aHMgYXQgc3RhcnR1cCDwn6S34oCN4pmC77iPXG4gICAgc2V0SW1tZWRpYXRlKCgpID0+IHRoaXMuZGlkQ2hhbmdlUGF0aHMoYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkpKVxuICB9XG5cbiAgYXN5bmMgZGVhY3RpdmF0ZSgpIHtcbiAgICAvLyBDbG9zZSBhbGwgb3BlbmVkIHJlbW90ZXNcbiAgICBhd2FpdCB0aGlzLmRpZENoYW5nZVBhdGhzKFtdKVxuXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5kaXNwb3NlKClcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zID0gbnVsbFxuICAgIHRoaXMuI2J1c3kgPSBudWxsXG4gICAgdGhpcy4jY29uc29sZSA9IG51bGxcbiAgICB0aGlzLiNsaW50ZXIgPSBudWxsXG4gICAgdGhpcy4jcmVtb3RlcyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuI3NldHRpbmdzID0gbnVsbFxuICB9XG5cbiAgLy8gQ09OU1VNRUQgU0VSVklDRVNcblxuICBjb25zdW1lQnVzeVNpZ25hbChidXN5KSB7XG4gICAgdGhpcy4jYnVzeSA9IGJ1c3lcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZCh0aGlzLiNidXN5KVxuICB9XG5cbiAgY29uc3VtZUNvbnNvbGUobWtjb25zb2xlKSB7XG4gICAgdGhpcy4jY29uc29sZSA9IG1rY29uc29sZSh7XG4gICAgICBpZDogJ0lERS1Nb2NoYScsXG4gICAgICBuYW1lOiAnSURFLU1vY2hhJyxcbiAgICB9KVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuI2NvbnNvbGUpXG4gIH1cblxuICBjb25zdW1lTGludGVyKG1rbGludGVyKSB7XG4gICAgdGhpcy4jbGludGVyID0gbWtsaW50ZXIoe1xuICAgICAgbmFtZTogJ0lERS1Nb2NoYScsXG4gICAgfSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZCh0aGlzLiNsaW50ZXIpXG4gIH1cblxuXG4gIC8vIENPTU1BTkRTXG5cbiAgZG9QcmludEFkZHJlc3NJbmZvKCkge1xuICAgIGZvciAoY29uc3QgW2ZvbGRlciwgeyBhZGRyZXNzIH1dIG9mIHRoaXMuI3JlbW90ZXMuZW50cmllcygpKSB7XG4gICAgICB0aGlzLiNjb25zb2xlLmxvZyhgJHtwYXRoLmJhc2VuYW1lKGZvbGRlcil9OiAke2FkZHJlc3N9YClcbiAgICB9XG5cbiAgICByZXR1cm4gdXRpbC5vcGVuQ29uc29sZSgpXG4gIH1cblxuICBkb0NvcHlSZWNlaXZlckFkZHJlc3MoKSB7XG4gICAgY29uc3QgcHJpbWFyeSA9IGF0b20ucHJvamVjdC5nZXRQYXRocygpLnNoaWZ0KClcbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy4jcmVtb3Rlcy5nZXQocHJpbWFyeSkuYWRkcmVzc1xuXG4gICAgYXRvbS5jbGlwYm9hcmQud3JpdGUoYWRkcmVzcylcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkU3VjY2VzcyhgQ29waWVkIGZvciBwcm9qZWN0IGZvbGRlcjogJHtwYXRoLmJhc2VuYW1lKHByaW1hcnkpfSFgLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgIH0pXG4gIH1cblxuICBkb0NvcHlNb2NoYUNvbW1hbmQoKSB7XG4gICAgY29uc3QgcHJpbWFyeSA9IGF0b20ucHJvamVjdC5nZXRQYXRocygpLnNoaWZ0KClcbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy4jcmVtb3Rlcy5nZXQocHJpbWFyeSkuYWRkcmVzc1xuICAgIGNvbnN0IGNvbW1hbmQgPSB1dGlsLm1rY29tbWFuZGluZm8oeyBhZGRyZXNzIH0pXG5cbiAgICBhdG9tLmNsaXBib2FyZC53cml0ZShjb21tYW5kKVxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRTdWNjZXNzKGBDb3BpZWQgZm9yIHByb2plY3QgZm9sZGVyOiAke3BhdGguYmFzZW5hbWUocHJpbWFyeSl9IWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgfSlcbiAgfVxuXG4gIGRvSGVscCgpIHtcbiAgICBjb25zdCBwcmltYXJ5ID0gYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkuc2hpZnQoKVxuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLiNyZW1vdGVzLmdldChwcmltYXJ5KS5hZGRyZXNzXG4gICAgY29uc3QgY29tbWFuZCA9IHV0aWwubWtjb21tYW5kaW5mbyh7IGFkZHJlc3MgfSlcblxuICAgIHJldHVybiB0aGlzLnNob3dIZWxwTm90aWZpY2F0aW9uKHsgY29tbWFuZCB9KVxuICB9XG5cblxuICAvLyBURVNUIFJFU1VMVFMgTk9USUZJQ0FUSU9OU1xuXG4gIHNob3dIZWxwTm90aWZpY2F0aW9uKHsgY29tbWFuZCB9KSB7XG4gICAgY29uc3QgaGVscCA9IEhFTFBfVEVNUExBVEUucmVwbGFjZSgnI3tDT01NQU5EfScsIGNvbW1hbmQpXG5cbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkSW5mbygnSURFLU1vY2hhOiBIZWxwJywge1xuICAgICAgZGVzY3JpcHRpb246IGhlbHAsXG4gICAgICBpY29uOiAnbW9ydGFyLWJvYXJkJyxcbiAgICAgIGRpc21pc3NhYmxlOiB0cnVlLFxuICAgICAgYnV0dG9uczogW3tcbiAgICAgICAgLy8gRXh0cmEgc3BhY2UgdG8gbWFrZSByb29tIGJldHdlZW4gdGhlIGNsaXBweSBpY29uIGFuZCB0ZXh0IPCfjqhcbiAgICAgICAgdGV4dDogJyBDb3B5IE1vY2hhIGNvbW1hbmQnLFxuICAgICAgICBjbGFzc05hbWU6ICdidG4gYnRuLWluZm8gaWNvbi1jbGlwcHkgc2VsZWN0ZWQnLFxuICAgICAgICBvbkRpZENsaWNrOiA6OnRoaXMuZG9Db3B5TW9jaGFDb21tYW5kLFxuICAgICAgfSwge1xuICAgICAgICB0ZXh0OiAnIFNob3cgYWRkcmVzc2VzIGZvciBhbGwgcHJvamVjdCBwYXRocycsXG4gICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4taW5mbycsXG4gICAgICAgIG9uRGlkQ2xpY2s6IDo6dGhpcy5kb1ByaW50QWRkcmVzc0luZm8sXG4gICAgICB9XSxcbiAgICB9KVxuICB9XG5cbiAgc2hvd1N1Y2Nlc3NOb3RpZmljYXRpb24oeyBzdGF0cyB9KSB7XG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZFN1Y2Nlc3MoJ1Rlc3Qgc3VpdGUgcGFzc2VkLicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgICBkZXRhaWw6IHV0aWwubWtzdGF0cyh7IHN0YXRzIH0pLFxuICAgICAgYnV0dG9uczogW3tcbiAgICAgICAgdGV4dDogJ09wZW4gQ29uc29sZScsXG4gICAgICAgIG9uRGlkQ2xpY2s6IHV0aWwub3BlbkNvbnNvbGUsXG4gICAgICB9XSxcbiAgICB9KVxuICB9XG5cbiAgc2hvd0ZhaWx1cmVOb3RpZmljYXRpb24oeyBzdGF0cyB9KSB7XG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEVycm9yKCdUZXN0IHN1aXRlIGZhaWxlZC4nLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgICAgZGV0YWlsOiB1dGlsLm1rc3RhdHMoeyBzdGF0cyB9KSxcbiAgICAgIGJ1dHRvbnM6IFt7XG4gICAgICAgIHRleHQ6ICdPcGVuIENvbnNvbGUnLFxuICAgICAgICBvbkRpZENsaWNrOiB1dGlsLm9wZW5Db25zb2xlLFxuICAgICAgfV0sXG4gICAgfSlcbiAgfVxuXG5cbiAgLy8gSU1QTEVNRU5UQVRJT05cblxuICBhc3luYyBkaWRDaGFuZ2VDb25maWcoY2hhbmdlKSB7XG4gICAgdGhpcy4jc2V0dGluZ3MgPSBjaGFuZ2UubmV3VmFsdWVcblxuICAgIGlmIChjaGFuZ2UubmV3VmFsdWUuZ2VuZXJhbC5pbnRlcmZhY2UgIT09IGNoYW5nZS5vbGRWYWx1ZS5nZW5lcmFsLmludGVyZmFjZSkge1xuICAgICAgLy8gRm9yY2UtY2xvc2UgYWxsIGV4aXN0aW5nIHNvY2tldHMgYnkgcHJldGVuZGluZyB3ZSBoYXZlIG5vIHByb2plY3QgZm9sZGVycyBhbmQgc3RhcnQgbmV3XG4gICAgICAvLyBzb2NrZXRzICh3aXRoIHVwZGF0ZWQgY29uZmlndXJhdGlvbikgaW1tZWRpYXRlbHkgYWZ0ZXJcbiAgICAgIGF3YWl0IHRoaXMuZGlkQ2hhbmdlUGF0aHMoW10pXG4gICAgICBhd2FpdCB0aGlzLmRpZENoYW5nZVBhdGhzKGF0b20ucHJvamVjdC5nZXRQYXRocygpKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRpZENoYW5nZVBhdGhzKHBhdGhzKSB7XG4gICAgY29uc3QgcmVtb3ZlZCA9IEFycmF5XG4gICAgICAuZnJvbSh0aGlzLiNyZW1vdGVzLmtleXMoKSlcbiAgICAgIC5maWx0ZXIoZm9sZGVyID0+ICFwYXRocy5pbmNsdWRlcyhmb2xkZXIpKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocmVtb3ZlZC5tYXAoOjp0aGlzLmRlc3Ryb3lSZW1vdGVGb3JGb2xkZXIpKVxuICAgIGF3YWl0IFByb21pc2UuYWxsKHBhdGhzLm1hcCg6OnRoaXMuY3JlYXRlUmVtb3RlRm9yRm9sZGVyKSlcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVJlbW90ZUZvckZvbGRlcihmb2xkZXIpIHtcbiAgICAvLyBUaGlzIHByb2plY3QgZm9sZGVyIGFscmVhZHkgaGFzIGEgc29ja2V0LCBtb3ZlIG9uXG4gICAgaWYgKHRoaXMuI3JlbW90ZXMuaGFzKGZvbGRlcikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLiNzZXR0aW5ncy5nZW5lcmFsLmludGVyZmFjZVxuICAgIGNvbnN0IHNvY2tldCA9IG5ldyBDb25zdW1lcigpXG4gICAgY29uc3QgYWRkcmVzcyA9IHV0aWwubWthZGRyZXNzKHsgcm9vdDogZm9sZGVyLCB0eXBlIH0pXG4gICAgY29uc3QgcmVtb3RlID0geyBhZGRyZXNzLCBzb2NrZXQgfVxuICAgIHRoaXMuI3JlbW90ZXMuc2V0KGZvbGRlciwgcmVtb3RlKVxuXG4gICAgLy8gRW5zdXJlIHRoZSBzb2NrZXQgZG9lcyBub3QgZXhpc3QgYmVmb3JlIHdlIGJpbmQgdG8gaXQuIEFuZCB5ZXMsIGp1c3QgaWdub3JlIGFueSBlcnJvcnNcbiAgICAvLyB0aHJvd24gaGVyZS4gSWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QgaXQncyBhbGwgZ29vZCBhbmQgaWYgd2UgY2Fubm90IHVubGluayBpdCB0aGVuIHdlbGwsXG4gICAgLy8gd2UgY2FuJ3QgcmVhbGx5IGRvIGFueXRoaW5nIGFueXdheSBhbmQgd2Ugd2lsbCBpbnN0ZWFkIHRocm93IGR1cmluZyBiaW5kLlxuICAgIGlmICh0eXBlb2YgYWRkcmVzcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gZnMudW5saW5rKGFkZHJlc3MsICgpID0+IHJlc29sdmUoKSkpXG4gICAgfVxuXG4gICAgcmVtb3RlLnNvY2tldC5vbignY29ubmVjdGlvbicsIHNvdXJjZSA9PiB0aGlzLmRpZFJlY2VpdmVDb25uZWN0aW9uKHsgZm9sZGVyLCBzb3VyY2UgfSkpXG4gICAgYXdhaXQgcmVtb3RlLnNvY2tldC5saXN0ZW4oeyBhZGRyZXNzIH0pXG4gIH1cblxuICBhc3luYyBkZXN0cm95UmVtb3RlRm9yRm9sZGVyKGZvbGRlcikge1xuICAgIGNvbnN0IHJlbW90ZSA9IHRoaXMuI3JlbW90ZXMuZ2V0KGZvbGRlcilcblxuICAgIC8vIFNvY2tldCBhbHJlYWR5IGRlc3Ryb3llZCwgbW92ZSBvblxuICAgIGlmICghcmVtb3RlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLiNyZW1vdGVzLmRlbGV0ZShmb2xkZXIpXG4gICAgYXdhaXQgcmVtb3RlLnNvY2tldC5jbG9zZSgpXG4gIH1cblxuICBkaWRSZWNlaXZlQ29ubmVjdGlvbih7IGZvbGRlciwgc291cmNlIH0pIHtcbiAgICBjb25zdCBzZXNzaW9uID0gbmV3IFNlc3Npb24oe1xuICAgICAgcm9vdDogZm9sZGVyLFxuICAgICAgbGludGVyOiB0aGlzLiNsaW50ZXIsXG4gICAgICBidXN5OiB0aGlzLiNidXN5LFxuICAgICAgY29uc29sZTogdGhpcy4jY29uc29sZSxcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIHZlcmJvc2l0eTogdGhpcy4jc2V0dGluZ3MuZ2VuZXJhbC52ZXJib3NpdHksXG4gICAgICAgIGR1cmF0aW9uczogdGhpcy4jc2V0dGluZ3MuZ2VuZXJhbC5kdXJhdGlvbnMsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBjb25zdCBzaG93Q29uc29sZSA9IHRoaXMuI3NldHRpbmdzLmNvbnNvbGUub3BlbkNvbnNvbGVPbkZhaWx1cmVcblxuICAgIHNvdXJjZS5vbignc3RhcnQnLCBydW5uZXIgPT4gc2Vzc2lvbi5kaWRTdGFydFJ1bm5pbmcoeyBydW5uZXIgfSkpXG4gICAgc291cmNlLm9uKCdlbmQnLCBydW5uZXIgPT4gc2Vzc2lvbi5kaWRGaW5pc2hSdW5uaW5nKHsgcnVubmVyIH0pKVxuICAgIHNvdXJjZS5vbignc3VpdGUnLCBzdWl0ZSA9PiBzZXNzaW9uLmRpZFN0YXJ0U3VpdGUoeyBzdWl0ZSB9KSlcbiAgICBzb3VyY2Uub24oJ3Rlc3QgZW5kJywgKCkgPT4gc2Vzc2lvbi5kaWRGaW5pc2hUZXN0KCkpXG4gICAgc291cmNlLm9uKCdwYXNzJywgdGVzdCA9PiBzZXNzaW9uLmRpZFBhc3NUZXN0KHsgdGVzdCB9KSlcbiAgICBzb3VyY2Uub24oJ2ZhaWwnLCAodGVzdCwgZXJyKSA9PiBzZXNzaW9uLmRpZEZhaWxUZXN0KHsgdGVzdCwgZXJyLCBzaG93Q29uc29sZSB9KSlcbiAgICBzb3VyY2Uub24oJ3BlbmRpbmcnLCB0ZXN0ID0+IHNlc3Npb24uZGlkU2tpcFRlc3QoeyB0ZXN0IH0pKVxuICAgIHNvdXJjZS5vbignY2xvc2UnLCAoKSA9PiBzZXNzaW9uLmRpZENsb3NlKCkpXG5cbiAgICBzZXNzaW9uLm9uY2UoJ2Nsb3NlJywgKHsgc3RhdHMgfSkgPT4ge1xuICAgICAgaWYgKHN0YXRzLmZhaWx1cmVzKSB7XG4gICAgICAgIGlmICh0aGlzLiNzZXR0aW5ncy5ub3RpZmljYXRpb25zLm5vdGlmeU9uRmFpbHVyZSkge1xuICAgICAgICAgIHRoaXMuc2hvd0ZhaWx1cmVOb3RpZmljYXRpb24oeyBzdGF0cyB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghc3RhdHMuZmFpbHVyZXMgJiYgdGhpcy4jc2V0dGluZ3Mubm90aWZpY2F0aW9ucy5ub3RpZnlPblN1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy5zaG93U3VjY2Vzc05vdGlmaWNhdGlvbih7IHN0YXRzIH0pXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICh0aGlzLiNzZXR0aW5ncy5jb25zb2xlLm9wZW5Db25zb2xlT25TdGFydCkge1xuICAgICAgdXRpbC5vcGVuQ29uc29sZSgpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI3NldHRpbmdzLmNvbnNvbGUuY2xlYXJDb25zb2xlT25TdGFydCkge1xuICAgICAgdXRpbC5jbGVhckNvbnNvbGUoKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQge1xuICBJZGVNb2NoYSxcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlkZS1tb2NoYS5tanMiXSwibmFtZXMiOlsiSEVMUF9URU1QTEFURSIsImZzIiwicmVhZEZpbGVTeW5jIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJJZGVNb2NoYSIsImNvbmZpZyIsIm1lbnVzIiwiZG9QcmludEFkZHJlc3NJbmZvIiwiZG9Db3B5UmVjZWl2ZXJBZGRyZXNzIiwiZG9Db3B5TW9jaGFDb21tYW5kIiwiZG9IZWxwIiwiQ29tcG9zaXRlRGlzcG9zYWJsZSIsIk1hcCIsImFjdGl2YXRlIiwicHJvbXB0VXNlciIsImF0b20iLCJnZXQiLCJhZGQiLCJjb21tYW5kcyIsIm1lbnUiLCJvbkRpZENoYW5nZSIsImRpZENoYW5nZUNvbmZpZyIsInByb2plY3QiLCJvbkRpZENoYW5nZVBhdGhzIiwiZGlkQ2hhbmdlUGF0aHMiLCJzZXRJbW1lZGlhdGUiLCJnZXRQYXRocyIsImRlYWN0aXZhdGUiLCJkaXNwb3NlIiwiY29uc3VtZUJ1c3lTaWduYWwiLCJidXN5IiwiY29uc3VtZUNvbnNvbGUiLCJta2NvbnNvbGUiLCJpZCIsIm5hbWUiLCJjb25zdW1lTGludGVyIiwibWtsaW50ZXIiLCJmb2xkZXIiLCJhZGRyZXNzIiwiZW50cmllcyIsImxvZyIsImJhc2VuYW1lIiwidXRpbCIsIm9wZW5Db25zb2xlIiwicHJpbWFyeSIsInNoaWZ0IiwiY2xpcGJvYXJkIiwid3JpdGUiLCJub3RpZmljYXRpb25zIiwiYWRkU3VjY2VzcyIsImRlc2NyaXB0aW9uIiwiY29tbWFuZCIsIm1rY29tbWFuZGluZm8iLCJzaG93SGVscE5vdGlmaWNhdGlvbiIsImhlbHAiLCJyZXBsYWNlIiwiYWRkSW5mbyIsImljb24iLCJkaXNtaXNzYWJsZSIsImJ1dHRvbnMiLCJ0ZXh0IiwiY2xhc3NOYW1lIiwib25EaWRDbGljayIsInNob3dTdWNjZXNzTm90aWZpY2F0aW9uIiwic3RhdHMiLCJkZXRhaWwiLCJta3N0YXRzIiwic2hvd0ZhaWx1cmVOb3RpZmljYXRpb24iLCJhZGRFcnJvciIsImNoYW5nZSIsIm5ld1ZhbHVlIiwiZ2VuZXJhbCIsImludGVyZmFjZSIsIm9sZFZhbHVlIiwicGF0aHMiLCJyZW1vdmVkIiwiQXJyYXkiLCJmcm9tIiwia2V5cyIsImZpbHRlciIsImluY2x1ZGVzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImRlc3Ryb3lSZW1vdGVGb3JGb2xkZXIiLCJjcmVhdGVSZW1vdGVGb3JGb2xkZXIiLCJoYXMiLCJ0eXBlIiwic29ja2V0IiwiQ29uc3VtZXIiLCJta2FkZHJlc3MiLCJyb290IiwicmVtb3RlIiwic2V0IiwidW5saW5rIiwib24iLCJzb3VyY2UiLCJkaWRSZWNlaXZlQ29ubmVjdGlvbiIsImxpc3RlbiIsImRlbGV0ZSIsImNsb3NlIiwic2Vzc2lvbiIsIlNlc3Npb24iLCJsaW50ZXIiLCJjb25zb2xlIiwic2V0dGluZ3MiLCJ2ZXJib3NpdHkiLCJkdXJhdGlvbnMiLCJzaG93Q29uc29sZSIsIm9wZW5Db25zb2xlT25GYWlsdXJlIiwicnVubmVyIiwiZGlkU3RhcnRSdW5uaW5nIiwiZGlkRmluaXNoUnVubmluZyIsInN1aXRlIiwiZGlkU3RhcnRTdWl0ZSIsImRpZEZpbmlzaFRlc3QiLCJ0ZXN0IiwiZGlkUGFzc1Rlc3QiLCJlcnIiLCJkaWRGYWlsVGVzdCIsImRpZFNraXBUZXN0IiwiZGlkQ2xvc2UiLCJvbmNlIiwiZmFpbHVyZXMiLCJub3RpZnlPbkZhaWx1cmUiLCJub3RpZnlPblN1Y2Nlc3MiLCJvcGVuQ29uc29sZU9uU3RhcnQiLCJjbGVhckNvbnNvbGVPblN0YXJ0IiwiY2xlYXJDb25zb2xlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBRUEsTUFBTUEsYUFBYSxHQUFHQyxFQUFFLENBQUNDLFlBQUgsQ0FBZ0JDLElBQUksQ0FBQ0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLFFBQXhCLEVBQWtDLFNBQWxDLENBQWhCLEVBQThELE1BQTlELENBQXRCOztB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QUFBO0FBQUYsS0FBRCxLQUFlO0FBQ25DLFVBQUlBLEtBQUssQ0FBQzJELFFBQVYsRUFBb0I7QUFDbEIsWUFBSSx1Q0FBZTNFLGFBQWYsQ0FBNkI0RSxlQUFqQyxFQUFrRDtBQUNoRCxlQUFLekQsdUJBQUwsQ0FBNkI7QUFBRUgsWUFBQUE7QUFBRixXQUE3QjtBQUNEO0FBQ0Y7O0FBRUQsVUFBSSxDQUFDQSxLQUFLLENBQUMyRCxRQUFQLElBQW1CLHVDQUFlM0UsYUFBZixDQUE2QjZFLGVBQXBELEVBQXFFO0FBQ25FLGFBQUs5RCx1QkFBTCxDQUE2QjtBQUFFQyxVQUFBQTtBQUFGLFNBQTdCO0FBQ0Q7QUFDRixLQVZEOztBQVlBLFFBQUksdUNBQWV3QyxPQUFmLENBQXVCc0Isa0JBQTNCLEVBQStDO0FBQzdDcEYsTUFBQUEsSUFBSSxDQUFDQyxXQUFMO0FBQ0Q7O0FBRUQsUUFBSSx1Q0FBZTZELE9BQWYsQ0FBdUJ1QixtQkFBM0IsRUFBZ0Q7QUFDOUNyRixNQUFBQSxJQUFJLENBQUNzRixZQUFMO0FBQ0Q7QUFDRjs7QUFoUVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGVEaXNwb3NhYmxlIH0gZnJvbSAnYXRvbSdcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJ1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgaW5zdGFsbCB9IGZyb20gJ2F0b20tcGFja2FnZS1kZXBzJ1xuaW1wb3J0IHsgQ29uc3VtZXIgfSBmcm9tICdyZW1vdGUtZXZlbnQtZW1pdHRlcidcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsJ1xuaW1wb3J0IHsgY29uZmlnLCBtZW51cyB9IGZyb20gJy4vZGVmaW5pdGlvbnMnXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi9zZXNzaW9uJ1xuXG5jb25zdCBIRUxQX1RFTVBMQVRFID0gZnMucmVhZEZpbGVTeW5jKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdzdGF0aWMnLCAnaGVscC5tZCcpLCAndXRmOCcpXG5cbmNsYXNzIElkZU1vY2hhIHtcbiAgY29uZmlnID0gY29uZmlnXG4gIG1lbnVzID0gbWVudXNcbiAgY29tbWFuZHMgPSB7XG4gICAgJ2lkZS1tb2NoYTpwcmludC1hZGRyZXNzLWluZm8nOiA6OnRoaXMuZG9QcmludEFkZHJlc3NJbmZvLFxuICAgICdpZGUtbW9jaGE6Y29weS1yZWNlaXZlci1hZGRyZXNzJzogOjp0aGlzLmRvQ29weVJlY2VpdmVyQWRkcmVzcyxcbiAgICAnaWRlLW1vY2hhOmNvcHktbW9jaGEtY29tbWFuZCc6IDo6dGhpcy5kb0NvcHlNb2NoYUNvbW1hbmQsXG4gICAgJ2lkZS1tb2NoYTpoZWxwJzogOjp0aGlzLmRvSGVscCxcbiAgfVxuXG4gICNidXN5ID0gbnVsbFxuICAjY29uc29sZSA9IG51bGxcbiAgI2xpbnRlciA9IG51bGxcbiAgI3NldHRpbmdzID0gbnVsbFxuXG4gICNzdWJzY3JpcHRpb25zID0gbmV3IENvbXBvc2l0ZURpc3Bvc2FibGUoKVxuICAjcmVtb3RlcyA9IG5ldyBNYXAoKVxuXG4gIC8vIExJRkVDWUNMRVxuXG4gIGFzeW5jIGFjdGl2YXRlKCkge1xuICAgIC8vIFBhY2thZ2UgZGVwcyBhcmUgZGVmaW5lZCBpbiB0aGUgd3JhcHBlciByZXBvc2l0b3J5J3MgcGFja2FnZS5qc29uOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EcmVhbXNjYXBlcy9hdG9tLWlkZS1tb2NoYVxuICAgIGF3YWl0IGluc3RhbGwoJ2lkZS1tb2NoYScsIHsgcHJvbXB0VXNlcjogdHJ1ZSB9KVxuXG4gICAgdGhpcy4jc2V0dGluZ3MgPSBhdG9tLmNvbmZpZy5nZXQoJ2lkZS1tb2NoYScpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBDb21wb3NpdGVEaXNwb3NhYmxlKClcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLmNvbW1hbmRzLmFkZCgnYXRvbS13b3Jrc3BhY2UnLCB0aGlzLmNvbW1hbmRzKSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLm1lbnUuYWRkKHRoaXMubWVudXMpKVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKGF0b20uY29uZmlnLm9uRGlkQ2hhbmdlKCdpZGUtbW9jaGEnLCA6OnRoaXMuZGlkQ2hhbmdlQ29uZmlnKSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLnByb2plY3Qub25EaWRDaGFuZ2VQYXRocyg6OnRoaXMuZGlkQ2hhbmdlUGF0aHMpKVxuICAgIC8vIEluaXRpYWwgc29ja2V0IHNldHVwIGJlY2F1c2UgdGhlIGFib3ZlIGxpc3RlbmVyIGlzIG5vdCB0cmlnZ2VyZWQgYXQgQXRvbSBzdGFydHVwXG4gICAgLy8gRGVsYXkgc29ja2V0IGFjdGl2YXRpb24gZHVlIHRvIEF0b20gc29tZXRpbWVzIG5vdCByZXR1cm5pbmcgcHJvamVjdCBwYXRocyBhdCBzdGFydHVwIPCfpLfigI3imYLvuI9cbiAgICBzZXRJbW1lZGlhdGUoKCkgPT4gdGhpcy5kaWRDaGFuZ2VQYXRocyhhdG9tLnByb2plY3QuZ2V0UGF0aHMoKSkpXG4gIH1cblxuICBhc3luYyBkZWFjdGl2YXRlKCkge1xuICAgIC8vIENsb3NlIGFsbCBvcGVuZWQgcmVtb3Rlc1xuICAgIGF3YWl0IHRoaXMuZGlkQ2hhbmdlUGF0aHMoW10pXG5cbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmRpc3Bvc2UoKVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMgPSBuZXcgQ29tcG9zaXRlRGlzcG9zYWJsZSgpXG4gICAgdGhpcy4jYnVzeSA9IG51bGxcbiAgICB0aGlzLiNjb25zb2xlID0gbnVsbFxuICAgIHRoaXMuI2xpbnRlciA9IG51bGxcbiAgICB0aGlzLiNyZW1vdGVzID0gbmV3IE1hcCgpXG4gICAgdGhpcy4jc2V0dGluZ3MgPSBudWxsXG4gIH1cblxuICAvLyBDT05TVU1FRCBTRVJWSUNFU1xuXG4gIGNvbnN1bWVCdXN5U2lnbmFsKGJ1c3kpIHtcbiAgICB0aGlzLiNidXN5ID0gYnVzeVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuI2J1c3kpXG4gIH1cblxuICBjb25zdW1lQ29uc29sZShta2NvbnNvbGUpIHtcbiAgICB0aGlzLiNjb25zb2xlID0gbWtjb25zb2xlKHtcbiAgICAgIGlkOiAnSURFLU1vY2hhJyxcbiAgICAgIG5hbWU6ICdJREUtTW9jaGEnLFxuICAgIH0pXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQodGhpcy4jY29uc29sZSlcbiAgfVxuXG4gIGNvbnN1bWVMaW50ZXIobWtsaW50ZXIpIHtcbiAgICB0aGlzLiNsaW50ZXIgPSBta2xpbnRlcih7XG4gICAgICBuYW1lOiAnSURFLU1vY2hhJyxcbiAgICB9KVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuI2xpbnRlcilcbiAgfVxuXG5cbiAgLy8gQ09NTUFORFNcblxuICBkb1ByaW50QWRkcmVzc0luZm8oKSB7XG4gICAgZm9yIChjb25zdCBbZm9sZGVyLCB7IGFkZHJlc3MgfV0gb2YgdGhpcy4jcmVtb3Rlcy5lbnRyaWVzKCkpIHtcbiAgICAgIHRoaXMuI2NvbnNvbGUubG9nKGAke3BhdGguYmFzZW5hbWUoZm9sZGVyKX06ICR7YWRkcmVzc31gKVxuICAgIH1cblxuICAgIHJldHVybiB1dGlsLm9wZW5Db25zb2xlKClcbiAgfVxuXG4gIGRvQ29weVJlY2VpdmVyQWRkcmVzcygpIHtcbiAgICBjb25zdCBwcmltYXJ5ID0gYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkuc2hpZnQoKVxuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLiNyZW1vdGVzLmdldChwcmltYXJ5KS5hZGRyZXNzXG5cbiAgICBhdG9tLmNsaXBib2FyZC53cml0ZShhZGRyZXNzKVxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRTdWNjZXNzKGBDb3BpZWQgZm9yIHByb2plY3QgZm9sZGVyOiAke3BhdGguYmFzZW5hbWUocHJpbWFyeSl9IWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgfSlcbiAgfVxuXG4gIGRvQ29weU1vY2hhQ29tbWFuZCgpIHtcbiAgICBjb25zdCBwcmltYXJ5ID0gYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkuc2hpZnQoKVxuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLiNyZW1vdGVzLmdldChwcmltYXJ5KS5hZGRyZXNzXG4gICAgY29uc3QgY29tbWFuZCA9IHV0aWwubWtjb21tYW5kaW5mbyh7IGFkZHJlc3MgfSlcblxuICAgIGF0b20uY2xpcGJvYXJkLndyaXRlKGNvbW1hbmQpXG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZFN1Y2Nlc3MoYENvcGllZCBmb3IgcHJvamVjdCBmb2xkZXI6ICR7cGF0aC5iYXNlbmFtZShwcmltYXJ5KX0hYCwge1xuICAgICAgZGVzY3JpcHRpb246ICcqKklERS1Nb2NoYSoqJyxcbiAgICB9KVxuICB9XG5cbiAgZG9IZWxwKCkge1xuICAgIGNvbnN0IHByaW1hcnkgPSBhdG9tLnByb2plY3QuZ2V0UGF0aHMoKS5zaGlmdCgpXG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuI3JlbW90ZXMuZ2V0KHByaW1hcnkpLmFkZHJlc3NcbiAgICBjb25zdCBjb21tYW5kID0gdXRpbC5ta2NvbW1hbmRpbmZvKHsgYWRkcmVzcyB9KVxuXG4gICAgcmV0dXJuIHRoaXMuc2hvd0hlbHBOb3RpZmljYXRpb24oeyBjb21tYW5kIH0pXG4gIH1cblxuXG4gIC8vIFRFU1QgUkVTVUxUUyBOT1RJRklDQVRJT05TXG5cbiAgc2hvd0hlbHBOb3RpZmljYXRpb24oeyBjb21tYW5kIH0pIHtcbiAgICBjb25zdCBoZWxwID0gSEVMUF9URU1QTEFURS5yZXBsYWNlKCcje0NPTU1BTkR9JywgY29tbWFuZClcblxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRJbmZvKCdJREUtTW9jaGE6IEhlbHAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogaGVscCxcbiAgICAgIGljb246ICdtb3J0YXItYm9hcmQnLFxuICAgICAgZGlzbWlzc2FibGU6IHRydWUsXG4gICAgICBidXR0b25zOiBbe1xuICAgICAgICAvLyBFeHRyYSBzcGFjZSB0byBtYWtlIHJvb20gYmV0d2VlbiB0aGUgY2xpcHB5IGljb24gYW5kIHRleHQg8J+OqFxuICAgICAgICB0ZXh0OiAnIENvcHkgTW9jaGEgY29tbWFuZCcsXG4gICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4taW5mbyBpY29uLWNsaXBweSBzZWxlY3RlZCcsXG4gICAgICAgIG9uRGlkQ2xpY2s6IDo6dGhpcy5kb0NvcHlNb2NoYUNvbW1hbmQsXG4gICAgICB9LCB7XG4gICAgICAgIHRleHQ6ICcgU2hvdyBhZGRyZXNzZXMgZm9yIGFsbCBwcm9qZWN0IHBhdGhzJyxcbiAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0bi1pbmZvJyxcbiAgICAgICAgb25EaWRDbGljazogOjp0aGlzLmRvUHJpbnRBZGRyZXNzSW5mbyxcbiAgICAgIH1dLFxuICAgIH0pXG4gIH1cblxuICBzaG93U3VjY2Vzc05vdGlmaWNhdGlvbih7IHN0YXRzIH0pIHtcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkU3VjY2VzcygnVGVzdCBzdWl0ZSBwYXNzZWQuJywge1xuICAgICAgZGVzY3JpcHRpb246ICcqKklERS1Nb2NoYSoqJyxcbiAgICAgIGRldGFpbDogdXRpbC5ta3N0YXRzKHsgc3RhdHMgfSksXG4gICAgICBidXR0b25zOiBbe1xuICAgICAgICB0ZXh0OiAnT3BlbiBDb25zb2xlJyxcbiAgICAgICAgb25EaWRDbGljazogdXRpbC5vcGVuQ29uc29sZSxcbiAgICAgIH1dLFxuICAgIH0pXG4gIH1cblxuICBzaG93RmFpbHVyZU5vdGlmaWNhdGlvbih7IHN0YXRzIH0pIHtcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IoJ1Rlc3Qgc3VpdGUgZmFpbGVkLicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgICBkZXRhaWw6IHV0aWwubWtzdGF0cyh7IHN0YXRzIH0pLFxuICAgICAgYnV0dG9uczogW3tcbiAgICAgICAgdGV4dDogJ09wZW4gQ29uc29sZScsXG4gICAgICAgIG9uRGlkQ2xpY2s6IHV0aWwub3BlbkNvbnNvbGUsXG4gICAgICB9XSxcbiAgICB9KVxuICB9XG5cblxuICAvLyBJTVBMRU1FTlRBVElPTlxuXG4gIGFzeW5jIGRpZENoYW5nZUNvbmZpZyhjaGFuZ2UpIHtcbiAgICB0aGlzLiNzZXR0aW5ncyA9IGNoYW5nZS5uZXdWYWx1ZVxuXG4gICAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5nZW5lcmFsLmludGVyZmFjZSAhPT0gY2hhbmdlLm9sZFZhbHVlLmdlbmVyYWwuaW50ZXJmYWNlKSB7XG4gICAgICAvLyBGb3JjZS1jbG9zZSBhbGwgZXhpc3Rpbmcgc29ja2V0cyBieSBwcmV0ZW5kaW5nIHdlIGhhdmUgbm8gcHJvamVjdCBmb2xkZXJzIGFuZCBzdGFydCBuZXdcbiAgICAgIC8vIHNvY2tldHMgKHdpdGggdXBkYXRlZCBjb25maWd1cmF0aW9uKSBpbW1lZGlhdGVseSBhZnRlclxuICAgICAgYXdhaXQgdGhpcy5kaWRDaGFuZ2VQYXRocyhbXSlcbiAgICAgIGF3YWl0IHRoaXMuZGlkQ2hhbmdlUGF0aHMoYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGlkQ2hhbmdlUGF0aHMocGF0aHMpIHtcbiAgICBjb25zdCByZW1vdmVkID0gQXJyYXlcbiAgICAgIC5mcm9tKHRoaXMuI3JlbW90ZXMua2V5cygpKVxuICAgICAgLmZpbHRlcihmb2xkZXIgPT4gIXBhdGhzLmluY2x1ZGVzKGZvbGRlcikpXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChyZW1vdmVkLm1hcCg6OnRoaXMuZGVzdHJveVJlbW90ZUZvckZvbGRlcikpXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocGF0aHMubWFwKDo6dGhpcy5jcmVhdGVSZW1vdGVGb3JGb2xkZXIpKVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlUmVtb3RlRm9yRm9sZGVyKGZvbGRlcikge1xuICAgIC8vIFRoaXMgcHJvamVjdCBmb2xkZXIgYWxyZWFkeSBoYXMgYSBzb2NrZXQsIG1vdmUgb25cbiAgICBpZiAodGhpcy4jcmVtb3Rlcy5oYXMoZm9sZGVyKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuI3NldHRpbmdzLmdlbmVyYWwuaW50ZXJmYWNlXG4gICAgY29uc3Qgc29ja2V0ID0gbmV3IENvbnN1bWVyKClcbiAgICBjb25zdCBhZGRyZXNzID0gdXRpbC5ta2FkZHJlc3MoeyByb290OiBmb2xkZXIsIHR5cGUgfSlcbiAgICBjb25zdCByZW1vdGUgPSB7IGFkZHJlc3MsIHNvY2tldCB9XG4gICAgdGhpcy4jcmVtb3Rlcy5zZXQoZm9sZGVyLCByZW1vdGUpXG5cbiAgICAvLyBFbnN1cmUgdGhlIHNvY2tldCBkb2VzIG5vdCBleGlzdCBiZWZvcmUgd2UgYmluZCB0byBpdC4gQW5kIHllcywganVzdCBpZ25vcmUgYW55IGVycm9yc1xuICAgIC8vIHRocm93biBoZXJlLiBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCBpdCdzIGFsbCBnb29kIGFuZCBpZiB3ZSBjYW5ub3QgdW5saW5rIGl0IHRoZW4gd2VsbCxcbiAgICAvLyB3ZSBjYW4ndCByZWFsbHkgZG8gYW55dGhpbmcgYW55d2F5IGFuZCB3ZSB3aWxsIGluc3RlYWQgdGhyb3cgZHVyaW5nIGJpbmQuXG4gICAgaWYgKHR5cGVvZiBhZGRyZXNzID09PSAnc3RyaW5nJykge1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBmcy51bmxpbmsoYWRkcmVzcywgKCkgPT4gcmVzb2x2ZSgpKSlcbiAgICB9XG5cbiAgICByZW1vdGUuc29ja2V0Lm9uKCdjb25uZWN0aW9uJywgc291cmNlID0+IHRoaXMuZGlkUmVjZWl2ZUNvbm5lY3Rpb24oeyBmb2xkZXIsIHNvdXJjZSB9KSlcbiAgICBhd2FpdCByZW1vdGUuc29ja2V0Lmxpc3Rlbih7IGFkZHJlc3MgfSlcbiAgfVxuXG4gIGFzeW5jIGRlc3Ryb3lSZW1vdGVGb3JGb2xkZXIoZm9sZGVyKSB7XG4gICAgY29uc3QgcmVtb3RlID0gdGhpcy4jcmVtb3Rlcy5nZXQoZm9sZGVyKVxuXG4gICAgLy8gU29ja2V0IGFscmVhZHkgZGVzdHJveWVkLCBtb3ZlIG9uXG4gICAgaWYgKCFyZW1vdGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuI3JlbW90ZXMuZGVsZXRlKGZvbGRlcilcbiAgICBhd2FpdCByZW1vdGUuc29ja2V0LmNsb3NlKClcbiAgfVxuXG4gIGRpZFJlY2VpdmVDb25uZWN0aW9uKHsgZm9sZGVyLCBzb3VyY2UgfSkge1xuICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgU2Vzc2lvbih7XG4gICAgICByb290OiBmb2xkZXIsXG4gICAgICBsaW50ZXI6IHRoaXMuI2xpbnRlcixcbiAgICAgIGJ1c3k6IHRoaXMuI2J1c3ksXG4gICAgICBjb25zb2xlOiB0aGlzLiNjb25zb2xlLFxuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgdmVyYm9zaXR5OiB0aGlzLiNzZXR0aW5ncy5nZW5lcmFsLnZlcmJvc2l0eSxcbiAgICAgICAgZHVyYXRpb25zOiB0aGlzLiNzZXR0aW5ncy5nZW5lcmFsLmR1cmF0aW9ucyxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIGNvbnN0IHNob3dDb25zb2xlID0gdGhpcy4jc2V0dGluZ3MuY29uc29sZS5vcGVuQ29uc29sZU9uRmFpbHVyZVxuXG4gICAgc291cmNlLm9uKCdzdGFydCcsIHJ1bm5lciA9PiBzZXNzaW9uLmRpZFN0YXJ0UnVubmluZyh7IHJ1bm5lciB9KSlcbiAgICBzb3VyY2Uub24oJ2VuZCcsIHJ1bm5lciA9PiBzZXNzaW9uLmRpZEZpbmlzaFJ1bm5pbmcoeyBydW5uZXIgfSkpXG4gICAgc291cmNlLm9uKCdzdWl0ZScsIHN1aXRlID0+IHNlc3Npb24uZGlkU3RhcnRTdWl0ZSh7IHN1aXRlIH0pKVxuICAgIHNvdXJjZS5vbigndGVzdCBlbmQnLCAoKSA9PiBzZXNzaW9uLmRpZEZpbmlzaFRlc3QoKSlcbiAgICBzb3VyY2Uub24oJ3Bhc3MnLCB0ZXN0ID0+IHNlc3Npb24uZGlkUGFzc1Rlc3QoeyB0ZXN0IH0pKVxuICAgIHNvdXJjZS5vbignZmFpbCcsICh0ZXN0LCBlcnIpID0+IHNlc3Npb24uZGlkRmFpbFRlc3QoeyB0ZXN0LCBlcnIsIHNob3dDb25zb2xlIH0pKVxuICAgIHNvdXJjZS5vbigncGVuZGluZycsIHRlc3QgPT4gc2Vzc2lvbi5kaWRTa2lwVGVzdCh7IHRlc3QgfSkpXG4gICAgc291cmNlLm9uKCdjbG9zZScsICgpID0+IHNlc3Npb24uZGlkQ2xvc2UoKSlcblxuICAgIHNlc3Npb24ub25jZSgnY2xvc2UnLCAoeyBzdGF0cyB9KSA9PiB7XG4gICAgICBpZiAoc3RhdHMuZmFpbHVyZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuI3NldHRpbmdzLm5vdGlmaWNhdGlvbnMubm90aWZ5T25GYWlsdXJlKSB7XG4gICAgICAgICAgdGhpcy5zaG93RmFpbHVyZU5vdGlmaWNhdGlvbih7IHN0YXRzIH0pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFzdGF0cy5mYWlsdXJlcyAmJiB0aGlzLiNzZXR0aW5ncy5ub3RpZmljYXRpb25zLm5vdGlmeU9uU3VjY2Vzcykge1xuICAgICAgICB0aGlzLnNob3dTdWNjZXNzTm90aWZpY2F0aW9uKHsgc3RhdHMgfSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKHRoaXMuI3NldHRpbmdzLmNvbnNvbGUub3BlbkNvbnNvbGVPblN0YXJ0KSB7XG4gICAgICB1dGlsLm9wZW5Db25zb2xlKClcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jc2V0dGluZ3MuY29uc29sZS5jbGVhckNvbnNvbGVPblN0YXJ0KSB7XG4gICAgICB1dGlsLmNsZWFyQ29uc29sZSgpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7XG4gIElkZU1vY2hhLFxufVxuIl19

Sorry, the diff of this file is not supported yet

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