@decaf-ts/for-nano 0.0.15 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -6
- package/dist/for-nano.cjs +24 -23
- package/dist/for-nano.esm.cjs +23 -22
- package/lib/NanoRepository.cjs +1 -1
- package/lib/NanoRepository.d.ts +3 -1
- package/lib/adapter.cjs +20 -18
- package/lib/adapter.d.ts +6 -5
- package/lib/esm/NanoRepository.d.ts +3 -1
- package/lib/esm/NanoRepository.js +1 -1
- package/lib/esm/adapter.d.ts +6 -5
- package/lib/esm/adapter.js +21 -20
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +3 -2
- package/lib/esm/types.d.ts +7 -0
- package/lib/esm/types.js +2 -0
- package/lib/index.cjs +3 -2
- package/lib/index.d.ts +2 -1
- package/lib/types.cjs +3 -0
- package/lib/types.d.ts +7 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,12 +16,6 @@
|
|
|
16
16
|

|
|
17
17
|

|
|
18
18
|
|
|
19
|
-

|
|
20
|
-

|
|
21
|
-

|
|
22
|
-

|
|
23
|
-
|
|
24
|
-
|
|
25
19
|

|
|
26
20
|

|
|
27
21
|

|
package/dist/for-nano.cjs
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@decaf-ts/db-decorators'), require('reflect-metadata'), require('@decaf-ts/for-couchdb'), require('nano'), require('@decaf-ts/core')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '@decaf-ts/db-decorators', 'reflect-metadata', '@decaf-ts/for-couchdb', 'nano', '@decaf-ts/core'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["for-nano"] = {}, global.dbDecorators, null, global.forCouchdb, global.Nano, global.core));
|
|
5
|
-
})(this, (function (exports, dbDecorators, reflectMetadata, forCouchdb, Nano, core) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@decaf-ts/db-decorators'), require('reflect-metadata'), require('@decaf-ts/for-couchdb'), require('nano'), require('@decaf-ts/decorator-validation'), require('@decaf-ts/core')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', '@decaf-ts/db-decorators', 'reflect-metadata', '@decaf-ts/for-couchdb', 'nano', '@decaf-ts/decorator-validation', '@decaf-ts/core'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["for-nano"] = {}, global.dbDecorators, null, global.forCouchdb, global.Nano, global.decoratorValidation, global.core));
|
|
5
|
+
})(this, (function (exports, dbDecorators, reflectMetadata, forCouchdb, Nano, decoratorValidation, core) { 'use strict';
|
|
6
6
|
|
|
7
|
+
async function createdByOnNanoCreateUpdate(context, data, key, model) {
|
|
8
|
+
const user = context.get("user");
|
|
9
|
+
if (!user || !user.name)
|
|
10
|
+
throw new core.UnsupportedError("This adapter does not support user identification");
|
|
11
|
+
model[key] = user.name;
|
|
12
|
+
}
|
|
13
|
+
const createdByKey = core.Repository.key(core.PersistenceKeys.CREATED_BY);
|
|
14
|
+
const updatedByKey = core.Repository.key(core.PersistenceKeys.UPDATED_BY);
|
|
7
15
|
class NanoAdapter extends forCouchdb.CouchDBAdapter {
|
|
8
|
-
constructor(scope, flavour) {
|
|
16
|
+
constructor(scope, flavour = "nano") {
|
|
9
17
|
super(scope, flavour);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
roles: user.userCtx.roles,
|
|
19
|
-
affiliations: user.userCtx.affiliations,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
throw this.parseError(e);
|
|
24
|
-
}
|
|
25
|
-
return this._user;
|
|
18
|
+
decoratorValidation.Decoration.flavouredAs("nano")
|
|
19
|
+
.for(createdByKey)
|
|
20
|
+
.define(dbDecorators.onCreate(createdByOnNanoCreateUpdate), decoratorValidation.propMetadata(createdByKey, {}))
|
|
21
|
+
.apply();
|
|
22
|
+
decoratorValidation.Decoration.flavouredAs("nano")
|
|
23
|
+
.for(updatedByKey)
|
|
24
|
+
.define(dbDecorators.onCreate(createdByOnNanoCreateUpdate), decoratorValidation.propMetadata(updatedByKey, {}))
|
|
25
|
+
.apply();
|
|
26
26
|
}
|
|
27
27
|
async index(...models) {
|
|
28
28
|
const indexes = forCouchdb.generateIndexes(models);
|
|
@@ -253,10 +253,11 @@
|
|
|
253
253
|
* @const VERSION
|
|
254
254
|
* @memberOf module:ts-workspace
|
|
255
255
|
*/
|
|
256
|
-
const VERSION = "0.0.
|
|
256
|
+
const VERSION = "0.0.15";
|
|
257
257
|
|
|
258
258
|
exports.NanoAdapter = NanoAdapter;
|
|
259
259
|
exports.VERSION = VERSION;
|
|
260
|
+
exports.createdByOnNanoCreateUpdate = createdByOnNanoCreateUpdate;
|
|
260
261
|
|
|
261
262
|
}));
|
|
262
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLW5hbm8uY2pzIiwic291cmNlcyI6WyIuLi9zcmMvYWRhcHRlci50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25mbGljdEVycm9yLCBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5pbXBvcnQge1xuICBDb3VjaERCQWRhcHRlcixcbiAgQ291Y2hEQktleXMsXG4gIENyZWF0ZUluZGV4UmVxdWVzdCxcbiAgZ2VuZXJhdGVJbmRleGVzLFxuICBNYW5nb1F1ZXJ5LFxuICBNYW5nb1Jlc3BvbnNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgTmFubyBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHtcbiAgRGF0YWJhc2VTZXNzaW9uUmVzcG9uc2UsXG4gIERvY3VtZW50QnVsa1Jlc3BvbnNlLFxuICBEb2N1bWVudEdldFJlc3BvbnNlLFxuICBEb2N1bWVudEluc2VydFJlc3BvbnNlLFxuICBEb2N1bWVudFNjb3BlLFxuICBNYXliZURvY3VtZW50LFxuICBTZXJ2ZXJTY29wZSxcbn0gZnJvbSBcIm5hbm9cIjtcbmltcG9ydCB7IFVzZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGNsYXNzIE5hbm9BZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXI8RG9jdW1lbnRTY29wZTxhbnk+PiB7XG4gIHByaXZhdGUgX3VzZXI/OiBVc2VyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBEb2N1bWVudFNjb3BlPGFueT4sIGZsYXZvdXI6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBmbGF2b3VyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1c2VyKCk6IFByb21pc2U8VXNlcj4ge1xuICAgIGlmICh0aGlzLl91c2VyKSByZXR1cm4gdGhpcy5fdXNlcjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB1c2VyOiBEYXRhYmFzZVNlc3Npb25SZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLnNlc3Npb24oKTtcbiAgICAgIHRoaXMuX3VzZXIgPSBuZXcgVXNlcih7XG4gICAgICAgIGlkOiB1c2VyLnVzZXJDdHgubmFtZSxcbiAgICAgICAgcm9sZXM6IHVzZXIudXNlckN0eC5yb2xlcyxcbiAgICAgICAgYWZmaWxpYXRpb25zOiB1c2VyLnVzZXJDdHguYWZmaWxpYXRpb25zLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl91c2VyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGluZGV4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgLi4ubW9kZWxzOiBDb25zdHJ1Y3RvcjxNPltdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGluZGV4ZXM6IENyZWF0ZUluZGV4UmVxdWVzdFtdID0gZ2VuZXJhdGVJbmRleGVzKG1vZGVscyk7XG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBpbmRleGVzKSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLm5hdGl2ZS5jcmVhdGVJbmRleChpbmRleCk7XG4gICAgICBjb25zdCB7IHJlc3VsdCwgaWQsIG5hbWUgfSA9IHJlcztcbiAgICAgIGlmIChyZXN1bHQgPT09IFwiZXhpc3RpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoYEluZGV4IGZvciB0YWJsZSAke25hbWV9IHdpdGggaWQgJHtpZH1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50SW5zZXJ0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuaW5zZXJ0KG1vZGVsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gaW5zZXJ0IGRvYyBpZDogJHtpZH0gaW4gdGFibGUgJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShtb2RlbCwgcmVzcG9uc2UucmV2KTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IHN0cmluZ1tdIHwgbnVtYmVyW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50QnVsa1Jlc3BvbnNlW107XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7IGRvY3M6IG1vZGVscyB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgaWYgKCFyZXNwb25zZS5ldmVyeSgocikgPT4gIXIuZXJyb3IpKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSByZXNwb25zZS5yZWR1Y2UoKGFjY3VtOiBzdHJpbmdbXSwgZWwsIGkpID0+IHtcbiAgICAgICAgaWYgKGVsLmVycm9yKVxuICAgICAgICAgIGFjY3VtLnB1c2goXG4gICAgICAgICAgICBgZWwgJHtpfTogJHtlbC5lcnJvcn0ke2VsLnJlYXNvbiA/IGAgLSAke2VsLnJlYXNvbn1gIDogXCJcIn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwgW10pO1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZXJyb3JzLmpvaW4oXCJcXG5cIikpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzc2lnbk11bHRpcGxlTWV0YWRhdGEoXG4gICAgICBtb2RlbHMsXG4gICAgICByZXNwb25zZS5tYXAoKHIpID0+IHIucmV2IGFzIHN0cmluZylcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVhZChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IF9pZCA9IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkKTtcbiAgICBsZXQgcmVjb3JkOiBEb2N1bWVudEdldFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZWNvcmQgPSBhd2FpdCB0aGlzLm5hdGl2ZS5nZXQoX2lkKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVjb3JkLCByZWNvcmQuX3Jldik7XG4gIH1cblxuICBhc3luYyByZWFkQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogKHN0cmluZyB8IG51bWJlciB8IGJpZ2ludClbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLm5hdGl2ZS5mZXRjaChcbiAgICAgIHsga2V5czogaWRzLm1hcCgoaWQpID0+IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkIGFzIGFueSkpIH0sXG4gICAgICB7fVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgIGlmICgociBhcyBhbnkpLmVycm9yKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigociBhcyBhbnkpLmVycm9yKTtcbiAgICAgIGlmICgociBhcyBhbnkpLmRvYykge1xuICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHt9LCAociBhcyBhbnkpLmRvYyk7XG4gICAgICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlcywgKHIgYXMgYW55KS5kb2NbQ291Y2hEQktleXMuUkVWXSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEluc2VydFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmluc2VydChtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5vaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHVwZGF0ZSBkb2MgaWQ6ICR7aWR9IGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEobW9kZWwsIHJlc3BvbnNlLnJldik7XG4gIH1cblxuICBhc3luYyB1cGRhdGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmJ1bGsoeyBkb2NzOiBtb2RlbHMgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGlmICghcmVzcG9uc2UuZXZlcnkoKHIpID0+ICFyLmVycm9yKSkge1xuICAgICAgY29uc3QgZXJyb3JzID0gcmVzcG9uc2UucmVkdWNlKChhY2N1bTogc3RyaW5nW10sIGVsLCBpKSA9PiB7XG4gICAgICAgIGlmIChlbC5lcnJvcilcbiAgICAgICAgICBhY2N1bS5wdXNoKFxuICAgICAgICAgICAgYGVsICR7aX06ICR7ZWwuZXJyb3J9JHtlbC5yZWFzb24gPyBgIC0gJHtlbC5yZWFzb259YCA6IFwiXCJ9YFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGVycm9ycy5qb2luKFwiXFxuXCIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NdWx0aXBsZU1ldGFkYXRhKFxuICAgICAgbW9kZWxzLFxuICAgICAgcmVzcG9uc2UubWFwKChyKSA9PiByLnJldiBhcyBzdHJpbmcpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IF9pZCA9IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkKTtcbiAgICBsZXQgcmVjb3JkOiBEb2N1bWVudEdldFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZWNvcmQgPSBhd2FpdCB0aGlzLm5hdGl2ZS5nZXQoX2lkKTtcbiAgICAgIGF3YWl0IHRoaXMubmF0aXZlLmRlc3Ryb3koX2lkLCByZWNvcmQuX3Jldik7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlY29yZCwgcmVjb3JkLl9yZXYpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogKHN0cmluZyB8IG51bWJlciB8IGJpZ2ludClbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLm5hdGl2ZS5mZXRjaChcbiAgICAgIHsga2V5czogaWRzLm1hcCgoaWQpID0+IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkIGFzIGFueSkpIH0sXG4gICAgICB7fVxuICAgICk7XG4gICAgY29uc3QgZGVsZXRpb246IERvY3VtZW50QnVsa1Jlc3BvbnNlW10gPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHtcbiAgICAgIGRvY3M6IHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgICAgKHIgYXMgYW55KVtDb3VjaERCS2V5cy5ERUxFVEVEXSA9IHRydWU7XG4gICAgICAgIHJldHVybiByO1xuICAgICAgfSksXG4gICAgfSk7XG4gICAgZGVsZXRpb24uZm9yRWFjaCgoZDogRG9jdW1lbnRCdWxrUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChkLmVycm9yKSBjb25zb2xlLmVycm9yKGQuZXJyb3IpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICBpZiAoKHIgYXMgYW55KS5lcnJvcikgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKHIgYXMgYW55KS5lcnJvcik7XG4gICAgICBpZiAoKHIgYXMgYW55KS5kb2MpIHtcbiAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgKHIgYXMgYW55KS5kb2MpO1xuICAgICAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZXMsIChyIGFzIGFueSkuZG9jW0NvdWNoREJLZXlzLlJFVl0pO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJhdzxWPihyYXdJbnB1dDogTWFuZ29RdWVyeSwgcHJvY2VzcyA9IHRydWUpOiBQcm9taXNlPFY+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IE1hbmdvUmVzcG9uc2U8Vj4gPSBhd2FpdCB0aGlzLm5hdGl2ZS5maW5kKHJhd0lucHV0KTtcbiAgICAgIGlmIChyZXNwb25zZS53YXJuaW5nKSBjb25zb2xlLndhcm4ocmVzcG9uc2Uud2FybmluZyk7XG4gICAgICBpZiAocHJvY2VzcykgcmV0dXJuIHJlc3BvbnNlLmRvY3MgYXMgVjtcbiAgICAgIHJldHVybiByZXNwb25zZSBhcyBWO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjb25uZWN0KFxuICAgIHVzZXI6IHN0cmluZyxcbiAgICBwYXNzOiBzdHJpbmcsXG4gICAgaG9zdCA9IFwibG9jYWxob3N0OjU5ODRcIixcbiAgICBwcm90b2NvbDogXCJodHRwXCIgfCBcImh0dHBzXCIgPSBcImh0dHBcIlxuICApOiBTZXJ2ZXJTY29wZSB7XG4gICAgcmV0dXJuIE5hbm8oYCR7cHJvdG9jb2x9Oi8vJHt1c2VyfToke3Bhc3N9QCR7aG9zdH1gKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGVEYXRhYmFzZShjb246IFNlcnZlclNjb3BlLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbi5kYi5jcmVhdGUobmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBjb25zdCB7IG9rLCBlcnJvciwgcmVhc29uIH0gPSByZXN1bHQ7XG4gICAgaWYgKCFvaykgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlcnJvciBhcyBzdHJpbmcsIHJlYXNvbik7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZGVsZXRlRGF0YWJhc2UoY29uOiBTZXJ2ZXJTY29wZSwgbmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY29uLmRiLmRlc3Ryb3kobmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBjb25zdCB7IG9rIH0gPSByZXN1bHQ7XG4gICAgaWYgKCFvaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gZGVsZXRlIGRhdGFiYXNlIHdpdGggbmFtZSAke25hbWV9YCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgY3JlYXRlVXNlcihcbiAgICBjb246IFNlcnZlclNjb3BlLFxuICAgIGRiTmFtZTogc3RyaW5nLFxuICAgIHVzZXI6IHN0cmluZyxcbiAgICBwYXNzOiBzdHJpbmcsXG4gICAgcm9sZXM6IHN0cmluZ1tdID0gW1wicmVhZGVyXCIsIFwid3JpdGVyXCJdXG4gICkge1xuICAgIGNvbnN0IHVzZXJzID0gY29uLmRiLnVzZShcIl91c2Vyc1wiKTtcbiAgICBjb25zdCB1c3IgPSB7XG4gICAgICBfaWQ6IFwib3JnLmNvdWNoZGIudXNlcjpcIiArIHVzZXIsXG4gICAgICBuYW1lOiB1c2VyLFxuICAgICAgcGFzc3dvcmQ6IHBhc3MsXG4gICAgICByb2xlczogcm9sZXMsXG4gICAgICB0eXBlOiBcInVzZXJcIixcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjcmVhdGVkOiBEb2N1bWVudEluc2VydFJlc3BvbnNlID0gYXdhaXQgdXNlcnMuaW5zZXJ0KFxuICAgICAgICB1c3IgYXMgTWF5YmVEb2N1bWVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHsgb2sgfSA9IGNyZWF0ZWQ7XG4gICAgICBpZiAoIW9rKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSB1c2VyICR7dXNlcn1gKTtcbiAgICAgIGNvbnN0IHNlY3VyaXR5OiBhbnkgPSBhd2FpdCBjb24ucmVxdWVzdCh7XG4gICAgICAgIGRiOiBkYk5hbWUsXG4gICAgICAgIG1ldGhvZDogXCJwdXRcIixcbiAgICAgICAgcGF0aDogXCJfc2VjdXJpdHlcIixcbiAgICAgICAgLy8gaGVhZGVyczoge1xuICAgICAgICAvL1xuICAgICAgICAvLyB9LFxuICAgICAgICBib2R5OiB7XG4gICAgICAgICAgYWRtaW5zOiB7XG4gICAgICAgICAgICBuYW1lczogW3VzZXJdLFxuICAgICAgICAgICAgcm9sZXM6IFtdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWVtYmVyczoge1xuICAgICAgICAgICAgbmFtZXM6IFt1c2VyXSxcbiAgICAgICAgICAgIHJvbGVzOiByb2xlcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBpZiAoIXNlY3VyaXR5Lm9rKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIGF1dGhvcml6ZSB1c2VyICR7dXNlcn0gdG8gZGIgJHtkYk5hbWV9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZGVsZXRlVXNlcihjb246IFNlcnZlclNjb3BlLCBkYk5hbWU6IHN0cmluZywgdXNlcjogc3RyaW5nKSB7XG4gICAgY29uc3QgdXNlcnMgPSBjb24uZGIudXNlKFwiX3VzZXJzXCIpO1xuICAgIGNvbnN0IGlkID0gXCJvcmcuY291Y2hkYi51c2VyOlwiICsgdXNlcjtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXNyID0gYXdhaXQgdXNlcnMuZ2V0KGlkKTtcbiAgICAgIGF3YWl0IHVzZXJzLmRlc3Ryb3koaWQsIHVzci5fcmV2KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG59XG4iLCJleHBvcnQgKiBmcm9tIFwiLi9hZGFwdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9OYW5vUmVwb3NpdG9yeVwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IE1vZHVsZSBzdW1tYXJ5XG4gKiBAZGVzY3JpcHRpb24gTW9kdWxlIGRlc2NyaXB0aW9uXG4gKiBAbW9kdWxlIGZvci1uYW5vXG4gKi9cblxuLyoqXG4gKiBAc3VtbWFyeSBzdG9yZXMgdGhlIGN1cnJlbnQgcGFja2FnZSB2ZXJzaW9uXG4gKiBAZGVzY3JpcHRpb24gdGhpcyBpcyBob3cgeW91IHNob3VsZCBkb2N1bWVudCBhIGNvbnN0YW50XG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTp0cy13b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG4iXSwibmFtZXMiOlsiQ291Y2hEQkFkYXB0ZXIiLCJVc2VyIiwiZ2VuZXJhdGVJbmRleGVzIiwiQ29uZmxpY3RFcnJvciIsIkludGVybmFsRXJyb3IiLCJDb3VjaERC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
|
|
263
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLW5hbm8uY2pzIiwic291cmNlcyI6WyIuLi9zcmMvYWRhcHRlci50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25mbGljdEVycm9yLFxuICBDb250ZXh0LFxuICBJbnRlcm5hbEVycm9yLFxuICBvbkNyZWF0ZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5pbXBvcnQge1xuICBDb3VjaERCQWRhcHRlcixcbiAgQ291Y2hEQktleXMsXG4gIENyZWF0ZUluZGV4UmVxdWVzdCxcbiAgZ2VuZXJhdGVJbmRleGVzLFxuICBNYW5nb1F1ZXJ5LFxuICBNYW5nb1Jlc3BvbnNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgTmFubyBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnRCdWxrUmVzcG9uc2UsXG4gIERvY3VtZW50R2V0UmVzcG9uc2UsXG4gIERvY3VtZW50SW5zZXJ0UmVzcG9uc2UsXG4gIERvY3VtZW50U2NvcGUsXG4gIE1heWJlRG9jdW1lbnQsXG4gIFNlcnZlclNjb3BlLFxufSBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0b3IsXG4gIERlY29yYXRpb24sXG4gIE1vZGVsLFxuICBwcm9wTWV0YWRhdGEsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE5hbm9GbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQge1xuICBQZXJzaXN0ZW5jZUtleXMsXG4gIFJlbGF0aW9uc01ldGFkYXRhLFxuICBSZXBvLFxuICBSZXBvc2l0b3J5LFxuICBVbnN1cHBvcnRlZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZWRCeU9uTmFub0NyZWF0ZVVwZGF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwbzxNLCBDLCBGPixcbiAgViBleHRlbmRzIFJlbGF0aW9uc01ldGFkYXRhLFxuICBGIGV4dGVuZHMgTmFub0ZsYWdzLFxuICBDIGV4dGVuZHMgQ29udGV4dDxOYW5vRmxhZ3M+LFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dDxGPixcbiAgZGF0YTogVixcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHVzZXIgPSBjb250ZXh0LmdldChcInVzZXJcIik7XG4gIGlmICghdXNlciB8fCAhdXNlci5uYW1lKVxuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgXCJUaGlzIGFkYXB0ZXIgZG9lcyBub3Qgc3VwcG9ydCB1c2VyIGlkZW50aWZpY2F0aW9uXCJcbiAgICApO1xuICBtb2RlbFtrZXldID0gdXNlci5uYW1lIGFzIE1bdHlwZW9mIGtleV07XG59XG5cbmNvbnN0IGNyZWF0ZWRCeUtleSA9IFJlcG9zaXRvcnkua2V5KFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZKTtcbmNvbnN0IHVwZGF0ZWRCeUtleSA9IFJlcG9zaXRvcnkua2V5KFBlcnNpc3RlbmNlS2V5cy5VUERBVEVEX0JZKTtcblxuZXhwb3J0IGNsYXNzIE5hbm9BZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXI8XG4gIERvY3VtZW50U2NvcGU8YW55PixcbiAgTmFub0ZsYWdzLFxuICBDb250ZXh0PE5hbm9GbGFncz5cbj4ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogRG9jdW1lbnRTY29wZTxhbnk+LCBmbGF2b3VyOiBzdHJpbmcgPSBcIm5hbm9cIikge1xuICAgIHN1cGVyKHNjb3BlLCBmbGF2b3VyKTtcbiAgICBEZWNvcmF0aW9uLmZsYXZvdXJlZEFzKFwibmFub1wiKVxuICAgICAgLmZvcihjcmVhdGVkQnlLZXkpXG4gICAgICAuZGVmaW5lKFxuICAgICAgICBvbkNyZWF0ZShjcmVhdGVkQnlPbk5hbm9DcmVhdGVVcGRhdGUpLFxuICAgICAgICBwcm9wTWV0YWRhdGEoY3JlYXRlZEJ5S2V5LCB7fSlcbiAgICAgIClcbiAgICAgIC5hcHBseSgpO1xuXG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhcIm5hbm9cIilcbiAgICAgIC5mb3IodXBkYXRlZEJ5S2V5KVxuICAgICAgLmRlZmluZShcbiAgICAgICAgb25DcmVhdGUoY3JlYXRlZEJ5T25OYW5vQ3JlYXRlVXBkYXRlKSxcbiAgICAgICAgcHJvcE1ldGFkYXRhKHVwZGF0ZWRCeUtleSwge30pXG4gICAgICApXG4gICAgICAuYXBwbHkoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBpbmRleDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIC4uLm1vZGVsczogQ29uc3RydWN0b3I8TT5bXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbmRleGVzOiBDcmVhdGVJbmRleFJlcXVlc3RbXSA9IGdlbmVyYXRlSW5kZXhlcyhtb2RlbHMpO1xuICAgIGZvciAoY29uc3QgaW5kZXggb2YgaW5kZXhlcykge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5uYXRpdmUuY3JlYXRlSW5kZXgoaW5kZXgpO1xuICAgICAgY29uc3QgeyByZXN1bHQsIGlkLCBuYW1lIH0gPSByZXM7XG4gICAgICBpZiAocmVzdWx0ID09PSBcImV4aXN0aW5nXCIpXG4gICAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKGBJbmRleCBmb3IgdGFibGUgJHtuYW1lfSB3aXRoIGlkICR7aWR9YCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEluc2VydFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmluc2VydChtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5vaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGluc2VydCBkb2MgaWQ6ICR7aWR9IGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEobW9kZWwsIHJlc3BvbnNlLnJldik7XG4gIH1cblxuICBhc3luYyBjcmVhdGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmJ1bGsoeyBkb2NzOiBtb2RlbHMgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGlmICghcmVzcG9uc2UuZXZlcnkoKHIpID0+ICFyLmVycm9yKSkge1xuICAgICAgY29uc3QgZXJyb3JzID0gcmVzcG9uc2UucmVkdWNlKChhY2N1bTogc3RyaW5nW10sIGVsLCBpKSA9PiB7XG4gICAgICAgIGlmIChlbC5lcnJvcilcbiAgICAgICAgICBhY2N1bS5wdXNoKFxuICAgICAgICAgICAgYGVsICR7aX06ICR7ZWwuZXJyb3J9JHtlbC5yZWFzb24gPyBgIC0gJHtlbC5yZWFzb259YCA6IFwiXCJ9YFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGVycm9ycy5qb2luKFwiXFxuXCIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NdWx0aXBsZU1ldGFkYXRhKFxuICAgICAgbW9kZWxzLFxuICAgICAgcmVzcG9uc2UubWFwKChyKSA9PiByLnJldiBhcyBzdHJpbmcpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJlYWQoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBfaWQgPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgbGV0IHJlY29yZDogRG9jdW1lbnRHZXRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVjb3JkID0gYXdhaXQgdGhpcy5uYXRpdmUuZ2V0KF9pZCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlY29yZCwgcmVjb3JkLl9yZXYpO1xuICB9XG5cbiAgYXN5bmMgcmVhZEFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IChzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpW11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5uYXRpdmUuZmV0Y2goXG4gICAgICB7IGtleXM6IGlkcy5tYXAoKGlkKSA9PiB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCBhcyBhbnkpKSB9LFxuICAgICAge31cbiAgICApO1xuICAgIHJldHVybiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICBpZiAoKHIgYXMgYW55KS5lcnJvcikgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKHIgYXMgYW55KS5lcnJvcik7XG4gICAgICBpZiAoKHIgYXMgYW55KS5kb2MpIHtcbiAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgKHIgYXMgYW55KS5kb2MpO1xuICAgICAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZXMsIChyIGFzIGFueSkuZG9jW0NvdWNoREJLZXlzLlJFVl0pO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRJbnNlcnRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5pbnNlcnQobW9kZWwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2Uub2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byB1cGRhdGUgZG9jIGlkOiAke2lkfSBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKG1vZGVsLCByZXNwb25zZS5yZXYpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHsgZG9jczogbW9kZWxzIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBpZiAoIXJlc3BvbnNlLmV2ZXJ5KChyKSA9PiAhci5lcnJvcikpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHJlc3BvbnNlLnJlZHVjZSgoYWNjdW06IHN0cmluZ1tdLCBlbCwgaSkgPT4ge1xuICAgICAgICBpZiAoZWwuZXJyb3IpXG4gICAgICAgICAgYWNjdW0ucHVzaChcbiAgICAgICAgICAgIGBlbCAke2l9OiAke2VsLmVycm9yfSR7ZWwucmVhc29uID8gYCAtICR7ZWwucmVhc29ufWAgOiBcIlwifWBcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LCBbXSk7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlcnJvcnMuam9pbihcIlxcblwiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTXVsdGlwbGVNZXRhZGF0YShcbiAgICAgIG1vZGVscyxcbiAgICAgIHJlc3BvbnNlLm1hcCgocikgPT4gci5yZXYgYXMgc3RyaW5nKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBfaWQgPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgbGV0IHJlY29yZDogRG9jdW1lbnRHZXRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVjb3JkID0gYXdhaXQgdGhpcy5uYXRpdmUuZ2V0KF9pZCk7XG4gICAgICBhd2FpdCB0aGlzLm5hdGl2ZS5kZXN0cm95KF9pZCwgcmVjb3JkLl9yZXYpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZWNvcmQsIHJlY29yZC5fcmV2KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IChzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpW11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5uYXRpdmUuZmV0Y2goXG4gICAgICB7IGtleXM6IGlkcy5tYXAoKGlkKSA9PiB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCBhcyBhbnkpKSB9LFxuICAgICAge31cbiAgICApO1xuICAgIGNvbnN0IGRlbGV0aW9uOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7XG4gICAgICBkb2NzOiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICAgIChyIGFzIGFueSlbQ291Y2hEQktleXMuREVMRVRFRF0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIGRlbGV0aW9uLmZvckVhY2goKGQ6IERvY3VtZW50QnVsa1Jlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZC5lcnJvcikgY29uc29sZS5lcnJvcihkLmVycm9yKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgaWYgKChyIGFzIGFueSkuZXJyb3IpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKChyIGFzIGFueSkuZXJyb3IpO1xuICAgICAgaWYgKChyIGFzIGFueSkuZG9jKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IE9iamVjdC5hc3NpZ24oe30sIChyIGFzIGFueSkuZG9jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVzLCAociBhcyBhbnkpLmRvY1tDb3VjaERCS2V5cy5SRVZdKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIGJlIGltcG9zc2libGVcIik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByYXc8Vj4ocmF3SW5wdXQ6IE1hbmdvUXVlcnksIHByb2Nlc3MgPSB0cnVlKTogUHJvbWlzZTxWPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBNYW5nb1Jlc3BvbnNlPFY+ID0gYXdhaXQgdGhpcy5uYXRpdmUuZmluZChyYXdJbnB1dCk7XG4gICAgICBpZiAocmVzcG9uc2Uud2FybmluZykgY29uc29sZS53YXJuKHJlc3BvbnNlLndhcm5pbmcpO1xuICAgICAgaWYgKHByb2Nlc3MpIHJldHVybiByZXNwb25zZS5kb2NzIGFzIFY7XG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgVjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY29ubmVjdChcbiAgICB1c2VyOiBzdHJpbmcsXG4gICAgcGFzczogc3RyaW5nLFxuICAgIGhvc3QgPSBcImxvY2FsaG9zdDo1OTg0XCIsXG4gICAgcHJvdG9jb2w6IFwiaHR0cFwiIHwgXCJodHRwc1wiID0gXCJodHRwXCJcbiAgKTogU2VydmVyU2NvcGUge1xuICAgIHJldHVybiBOYW5vKGAke3Byb3RvY29sfTovLyR7dXNlcn06JHtwYXNzfUAke2hvc3R9YCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgY3JlYXRlRGF0YWJhc2UoY29uOiBTZXJ2ZXJTY29wZSwgbmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHJlc3VsdDogYW55O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjb24uZGIuY3JlYXRlKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgY29uc3QgeyBvaywgZXJyb3IsIHJlYXNvbiB9ID0gcmVzdWx0O1xuICAgIGlmICghb2spIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZXJyb3IgYXMgc3RyaW5nLCByZWFzb24pO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGRlbGV0ZURhdGFiYXNlKGNvbjogU2VydmVyU2NvcGUsIG5hbWU6IHN0cmluZykge1xuICAgIGxldCByZXN1bHQ7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbi5kYi5kZXN0cm95KG5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgY29uc3QgeyBvayB9ID0gcmVzdWx0O1xuICAgIGlmICghb2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGRlbGV0ZSBkYXRhYmFzZSB3aXRoIG5hbWUgJHtuYW1lfWApO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZVVzZXIoXG4gICAgY29uOiBTZXJ2ZXJTY29wZSxcbiAgICBkYk5hbWU6IHN0cmluZyxcbiAgICB1c2VyOiBzdHJpbmcsXG4gICAgcGFzczogc3RyaW5nLFxuICAgIHJvbGVzOiBzdHJpbmdbXSA9IFtcInJlYWRlclwiLCBcIndyaXRlclwiXVxuICApIHtcbiAgICBjb25zdCB1c2VycyA9IGNvbi5kYi51c2UoXCJfdXNlcnNcIik7XG4gICAgY29uc3QgdXNyID0ge1xuICAgICAgX2lkOiBcIm9yZy5jb3VjaGRiLnVzZXI6XCIgKyB1c2VyLFxuICAgICAgbmFtZTogdXNlcixcbiAgICAgIHBhc3N3b3JkOiBwYXNzLFxuICAgICAgcm9sZXM6IHJvbGVzLFxuICAgICAgdHlwZTogXCJ1c2VyXCIsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3JlYXRlZDogRG9jdW1lbnRJbnNlcnRSZXNwb25zZSA9IGF3YWl0IHVzZXJzLmluc2VydChcbiAgICAgICAgdXNyIGFzIE1heWJlRG9jdW1lbnRcbiAgICAgICk7XG4gICAgICBjb25zdCB7IG9rIH0gPSBjcmVhdGVkO1xuICAgICAgaWYgKCFvaykgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgdXNlciAke3VzZXJ9YCk7XG4gICAgICBjb25zdCBzZWN1cml0eTogYW55ID0gYXdhaXQgY29uLnJlcXVlc3Qoe1xuICAgICAgICBkYjogZGJOYW1lLFxuICAgICAgICBtZXRob2Q6IFwicHV0XCIsXG4gICAgICAgIHBhdGg6IFwiX3NlY3VyaXR5XCIsXG4gICAgICAgIC8vIGhlYWRlcnM6IHtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gfSxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGFkbWluczoge1xuICAgICAgICAgICAgbmFtZXM6IFt1c2VyXSxcbiAgICAgICAgICAgIHJvbGVzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lbWJlcnM6IHtcbiAgICAgICAgICAgIG5hbWVzOiBbdXNlcl0sXG4gICAgICAgICAgICByb2xlczogcm9sZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFzZWN1cml0eS5vaylcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCB0byBhdXRob3JpemUgdXNlciAke3VzZXJ9IHRvIGRiICR7ZGJOYW1lfWBcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIGRlbGV0ZVVzZXIoY29uOiBTZXJ2ZXJTY29wZSwgZGJOYW1lOiBzdHJpbmcsIHVzZXI6IHN0cmluZykge1xuICAgIGNvbnN0IHVzZXJzID0gY29uLmRiLnVzZShcIl91c2Vyc1wiKTtcbiAgICBjb25zdCBpZCA9IFwib3JnLmNvdWNoZGIudXNlcjpcIiArIHVzZXI7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVzciA9IGF3YWl0IHVzZXJzLmdldChpZCk7XG4gICAgICBhd2FpdCB1c2Vycy5kZXN0cm95KGlkLCB1c3IuX3Jldik7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxufVxuIiwiZXhwb3J0ICogZnJvbSBcIi4vYWRhcHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTmFub1JlcG9zaXRvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTW9kdWxlIHN1bW1hcnlcbiAqIEBkZXNjcmlwdGlvbiBNb2R1bGUgZGVzY3JpcHRpb25cbiAqIEBtb2R1bGUgZm9yLW5hbm9cbiAqL1xuXG4vKipcbiAqIEBzdW1tYXJ5IHN0b3JlcyB0aGUgY3VycmVudCBwYWNrYWdlIHZlcnNpb25cbiAqIEBkZXNjcmlwdGlvbiB0aGlzIGlzIGhvdyB5b3Ugc2hvdWxkIGRvY3VtZW50IGEgY29uc3RhbnRcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnRzLXdvcmtzcGFjZVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcbiJdLCJuYW1lcyI6WyJVbnN1cHBvcnRlZEVycm9yIiwiUmVwb3NpdG9yeSIsIlBlcnNpc3RlbmNlS2V5cyIsIkNvdWNoREJBZGFwdGVyIiwiRGVjb3JhdGlvbiIsIm9uQ3JlYXRlIiwicHJvcE1ldGFkYXRhIiwiZ2VuZXJhdGVJbmRleGVzIiwiQ29uZmxpY3RFcnJvciIsIkludGVybmFsRXJy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
|
package/dist/for-nano.esm.cjs
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { ConflictError, InternalError } from '@decaf-ts/db-decorators';
|
|
1
|
+
import { onCreate, ConflictError, InternalError } from '@decaf-ts/db-decorators';
|
|
2
2
|
import 'reflect-metadata';
|
|
3
3
|
import { CouchDBAdapter, generateIndexes, CouchDBKeys } from '@decaf-ts/for-couchdb';
|
|
4
4
|
import Nano from 'nano';
|
|
5
|
-
import {
|
|
5
|
+
import { Decoration, propMetadata } from '@decaf-ts/decorator-validation';
|
|
6
|
+
import { Repository, PersistenceKeys, UnsupportedError } from '@decaf-ts/core';
|
|
6
7
|
|
|
8
|
+
async function createdByOnNanoCreateUpdate(context, data, key, model) {
|
|
9
|
+
const user = context.get("user");
|
|
10
|
+
if (!user || !user.name)
|
|
11
|
+
throw new UnsupportedError("This adapter does not support user identification");
|
|
12
|
+
model[key] = user.name;
|
|
13
|
+
}
|
|
14
|
+
const createdByKey = Repository.key(PersistenceKeys.CREATED_BY);
|
|
15
|
+
const updatedByKey = Repository.key(PersistenceKeys.UPDATED_BY);
|
|
7
16
|
class NanoAdapter extends CouchDBAdapter {
|
|
8
|
-
constructor(scope, flavour) {
|
|
17
|
+
constructor(scope, flavour = "nano") {
|
|
9
18
|
super(scope, flavour);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
roles: user.userCtx.roles,
|
|
19
|
-
affiliations: user.userCtx.affiliations,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
throw this.parseError(e);
|
|
24
|
-
}
|
|
25
|
-
return this._user;
|
|
19
|
+
Decoration.flavouredAs("nano")
|
|
20
|
+
.for(createdByKey)
|
|
21
|
+
.define(onCreate(createdByOnNanoCreateUpdate), propMetadata(createdByKey, {}))
|
|
22
|
+
.apply();
|
|
23
|
+
Decoration.flavouredAs("nano")
|
|
24
|
+
.for(updatedByKey)
|
|
25
|
+
.define(onCreate(createdByOnNanoCreateUpdate), propMetadata(updatedByKey, {}))
|
|
26
|
+
.apply();
|
|
26
27
|
}
|
|
27
28
|
async index(...models) {
|
|
28
29
|
const indexes = generateIndexes(models);
|
|
@@ -253,7 +254,7 @@ class NanoAdapter extends CouchDBAdapter {
|
|
|
253
254
|
* @const VERSION
|
|
254
255
|
* @memberOf module:ts-workspace
|
|
255
256
|
*/
|
|
256
|
-
const VERSION = "0.0.
|
|
257
|
+
const VERSION = "0.0.15";
|
|
257
258
|
|
|
258
|
-
export { NanoAdapter, VERSION };
|
|
259
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLW5hbm8uZXNtLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2FkYXB0ZXIudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuaW1wb3J0IHtcbiAgQ291Y2hEQkFkYXB0ZXIsXG4gIENvdWNoREJLZXlzLFxuICBDcmVhdGVJbmRleFJlcXVlc3QsXG4gIGdlbmVyYXRlSW5kZXhlcyxcbiAgTWFuZ29RdWVyeSxcbiAgTWFuZ29SZXNwb25zZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IE5hbm8gZnJvbSBcIm5hbm9cIjtcbmltcG9ydCB7XG4gIERhdGFiYXNlU2Vzc2lvblJlc3BvbnNlLFxuICBEb2N1bWVudEJ1bGtSZXNwb25zZSxcbiAgRG9jdW1lbnRHZXRSZXNwb25zZSxcbiAgRG9jdW1lbnRJbnNlcnRSZXNwb25zZSxcbiAgRG9jdW1lbnRTY29wZSxcbiAgTWF5YmVEb2N1bWVudCxcbiAgU2VydmVyU2NvcGUsXG59IGZyb20gXCJuYW5vXCI7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbmV4cG9ydCBjbGFzcyBOYW5vQWRhcHRlciBleHRlbmRzIENvdWNoREJBZGFwdGVyPERvY3VtZW50U2NvcGU8YW55Pj4ge1xuICBwcml2YXRlIF91c2VyPzogVXNlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogRG9jdW1lbnRTY29wZTxhbnk+LCBmbGF2b3VyOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgZmxhdm91cik7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgdXNlcigpOiBQcm9taXNlPFVzZXI+IHtcbiAgICBpZiAodGhpcy5fdXNlcikgcmV0dXJuIHRoaXMuX3VzZXI7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdXNlcjogRGF0YWJhc2VTZXNzaW9uUmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5zZXNzaW9uKCk7XG4gICAgICB0aGlzLl91c2VyID0gbmV3IFVzZXIoe1xuICAgICAgICBpZDogdXNlci51c2VyQ3R4Lm5hbWUsXG4gICAgICAgIHJvbGVzOiB1c2VyLnVzZXJDdHgucm9sZXMsXG4gICAgICAgIGFmZmlsaWF0aW9uczogdXNlci51c2VyQ3R4LmFmZmlsaWF0aW9ucyxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdXNlcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBpbmRleDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIC4uLm1vZGVsczogQ29uc3RydWN0b3I8TT5bXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbmRleGVzOiBDcmVhdGVJbmRleFJlcXVlc3RbXSA9IGdlbmVyYXRlSW5kZXhlcyhtb2RlbHMpO1xuICAgIGZvciAoY29uc3QgaW5kZXggb2YgaW5kZXhlcykge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5uYXRpdmUuY3JlYXRlSW5kZXgoaW5kZXgpO1xuICAgICAgY29uc3QgeyByZXN1bHQsIGlkLCBuYW1lIH0gPSByZXM7XG4gICAgICBpZiAocmVzdWx0ID09PSBcImV4aXN0aW5nXCIpXG4gICAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKGBJbmRleCBmb3IgdGFibGUgJHtuYW1lfSB3aXRoIGlkICR7aWR9YCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEluc2VydFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmluc2VydChtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5vaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGluc2VydCBkb2MgaWQ6ICR7aWR9IGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEobW9kZWwsIHJlc3BvbnNlLnJldik7XG4gIH1cblxuICBhc3luYyBjcmVhdGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmJ1bGsoeyBkb2NzOiBtb2RlbHMgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGlmICghcmVzcG9uc2UuZXZlcnkoKHIpID0+ICFyLmVycm9yKSkge1xuICAgICAgY29uc3QgZXJyb3JzID0gcmVzcG9uc2UucmVkdWNlKChhY2N1bTogc3RyaW5nW10sIGVsLCBpKSA9PiB7XG4gICAgICAgIGlmIChlbC5lcnJvcilcbiAgICAgICAgICBhY2N1bS5wdXNoKFxuICAgICAgICAgICAgYGVsICR7aX06ICR7ZWwuZXJyb3J9JHtlbC5yZWFzb24gPyBgIC0gJHtlbC5yZWFzb259YCA6IFwiXCJ9YFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGVycm9ycy5qb2luKFwiXFxuXCIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NdWx0aXBsZU1ldGFkYXRhKFxuICAgICAgbW9kZWxzLFxuICAgICAgcmVzcG9uc2UubWFwKChyKSA9PiByLnJldiBhcyBzdHJpbmcpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJlYWQoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBfaWQgPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgbGV0IHJlY29yZDogRG9jdW1lbnRHZXRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVjb3JkID0gYXdhaXQgdGhpcy5uYXRpdmUuZ2V0KF9pZCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlY29yZCwgcmVjb3JkLl9yZXYpO1xuICB9XG5cbiAgYXN5bmMgcmVhZEFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IChzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpW11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5uYXRpdmUuZmV0Y2goXG4gICAgICB7IGtleXM6IGlkcy5tYXAoKGlkKSA9PiB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCBhcyBhbnkpKSB9LFxuICAgICAge31cbiAgICApO1xuICAgIHJldHVybiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICBpZiAoKHIgYXMgYW55KS5lcnJvcikgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKHIgYXMgYW55KS5lcnJvcik7XG4gICAgICBpZiAoKHIgYXMgYW55KS5kb2MpIHtcbiAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgKHIgYXMgYW55KS5kb2MpO1xuICAgICAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZXMsIChyIGFzIGFueSkuZG9jW0NvdWNoREJLZXlzLlJFVl0pO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRJbnNlcnRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5pbnNlcnQobW9kZWwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2Uub2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byB1cGRhdGUgZG9jIGlkOiAke2lkfSBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKG1vZGVsLCByZXNwb25zZS5yZXYpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHsgZG9jczogbW9kZWxzIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBpZiAoIXJlc3BvbnNlLmV2ZXJ5KChyKSA9PiAhci5lcnJvcikpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHJlc3BvbnNlLnJlZHVjZSgoYWNjdW06IHN0cmluZ1tdLCBlbCwgaSkgPT4ge1xuICAgICAgICBpZiAoZWwuZXJyb3IpXG4gICAgICAgICAgYWNjdW0ucHVzaChcbiAgICAgICAgICAgIGBlbCAke2l9OiAke2VsLmVycm9yfSR7ZWwucmVhc29uID8gYCAtICR7ZWwucmVhc29ufWAgOiBcIlwifWBcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LCBbXSk7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlcnJvcnMuam9pbihcIlxcblwiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTXVsdGlwbGVNZXRhZGF0YShcbiAgICAgIG1vZGVscyxcbiAgICAgIHJlc3BvbnNlLm1hcCgocikgPT4gci5yZXYgYXMgc3RyaW5nKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBfaWQgPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgbGV0IHJlY29yZDogRG9jdW1lbnRHZXRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVjb3JkID0gYXdhaXQgdGhpcy5uYXRpdmUuZ2V0KF9pZCk7XG4gICAgICBhd2FpdCB0aGlzLm5hdGl2ZS5kZXN0cm95KF9pZCwgcmVjb3JkLl9yZXYpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZWNvcmQsIHJlY29yZC5fcmV2KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IChzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpW11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5uYXRpdmUuZmV0Y2goXG4gICAgICB7IGtleXM6IGlkcy5tYXAoKGlkKSA9PiB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCBhcyBhbnkpKSB9LFxuICAgICAge31cbiAgICApO1xuICAgIGNvbnN0IGRlbGV0aW9uOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7XG4gICAgICBkb2NzOiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICAgIChyIGFzIGFueSlbQ291Y2hEQktleXMuREVMRVRFRF0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIGRlbGV0aW9uLmZvckVhY2goKGQ6IERvY3VtZW50QnVsa1Jlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZC5lcnJvcikgY29uc29sZS5lcnJvcihkLmVycm9yKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgaWYgKChyIGFzIGFueSkuZXJyb3IpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKChyIGFzIGFueSkuZXJyb3IpO1xuICAgICAgaWYgKChyIGFzIGFueSkuZG9jKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IE9iamVjdC5hc3NpZ24oe30sIChyIGFzIGFueSkuZG9jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVzLCAociBhcyBhbnkpLmRvY1tDb3VjaERCS2V5cy5SRVZdKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIGJlIGltcG9zc2libGVcIik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByYXc8Vj4ocmF3SW5wdXQ6IE1hbmdvUXVlcnksIHByb2Nlc3MgPSB0cnVlKTogUHJvbWlzZTxWPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBNYW5nb1Jlc3BvbnNlPFY+ID0gYXdhaXQgdGhpcy5uYXRpdmUuZmluZChyYXdJbnB1dCk7XG4gICAgICBpZiAocmVzcG9uc2Uud2FybmluZykgY29uc29sZS53YXJuKHJlc3BvbnNlLndhcm5pbmcpO1xuICAgICAgaWYgKHByb2Nlc3MpIHJldHVybiByZXNwb25zZS5kb2NzIGFzIFY7XG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgVjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY29ubmVjdChcbiAgICB1c2VyOiBzdHJpbmcsXG4gICAgcGFzczogc3RyaW5nLFxuICAgIGhvc3QgPSBcImxvY2FsaG9zdDo1OTg0XCIsXG4gICAgcHJvdG9jb2w6IFwiaHR0cFwiIHwgXCJodHRwc1wiID0gXCJodHRwXCJcbiAgKTogU2VydmVyU2NvcGUge1xuICAgIHJldHVybiBOYW5vKGAke3Byb3RvY29sfTovLyR7dXNlcn06JHtwYXNzfUAke2hvc3R9YCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgY3JlYXRlRGF0YWJhc2UoY29uOiBTZXJ2ZXJTY29wZSwgbmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHJlc3VsdDogYW55O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjb24uZGIuY3JlYXRlKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgY29uc3QgeyBvaywgZXJyb3IsIHJlYXNvbiB9ID0gcmVzdWx0O1xuICAgIGlmICghb2spIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZXJyb3IgYXMgc3RyaW5nLCByZWFzb24pO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGRlbGV0ZURhdGFiYXNlKGNvbjogU2VydmVyU2NvcGUsIG5hbWU6IHN0cmluZykge1xuICAgIGxldCByZXN1bHQ7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbi5kYi5kZXN0cm95KG5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgY29uc3QgeyBvayB9ID0gcmVzdWx0O1xuICAgIGlmICghb2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGRlbGV0ZSBkYXRhYmFzZSB3aXRoIG5hbWUgJHtuYW1lfWApO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZVVzZXIoXG4gICAgY29uOiBTZXJ2ZXJTY29wZSxcbiAgICBkYk5hbWU6IHN0cmluZyxcbiAgICB1c2VyOiBzdHJpbmcsXG4gICAgcGFzczogc3RyaW5nLFxuICAgIHJvbGVzOiBzdHJpbmdbXSA9IFtcInJlYWRlclwiLCBcIndyaXRlclwiXVxuICApIHtcbiAgICBjb25zdCB1c2VycyA9IGNvbi5kYi51c2UoXCJfdXNlcnNcIik7XG4gICAgY29uc3QgdXNyID0ge1xuICAgICAgX2lkOiBcIm9yZy5jb3VjaGRiLnVzZXI6XCIgKyB1c2VyLFxuICAgICAgbmFtZTogdXNlcixcbiAgICAgIHBhc3N3b3JkOiBwYXNzLFxuICAgICAgcm9sZXM6IHJvbGVzLFxuICAgICAgdHlwZTogXCJ1c2VyXCIsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3JlYXRlZDogRG9jdW1lbnRJbnNlcnRSZXNwb25zZSA9IGF3YWl0IHVzZXJzLmluc2VydChcbiAgICAgICAgdXNyIGFzIE1heWJlRG9jdW1lbnRcbiAgICAgICk7XG4gICAgICBjb25zdCB7IG9rIH0gPSBjcmVhdGVkO1xuICAgICAgaWYgKCFvaykgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgdXNlciAke3VzZXJ9YCk7XG4gICAgICBjb25zdCBzZWN1cml0eTogYW55ID0gYXdhaXQgY29uLnJlcXVlc3Qoe1xuICAgICAgICBkYjogZGJOYW1lLFxuICAgICAgICBtZXRob2Q6IFwicHV0XCIsXG4gICAgICAgIHBhdGg6IFwiX3NlY3VyaXR5XCIsXG4gICAgICAgIC8vIGhlYWRlcnM6IHtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gfSxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGFkbWluczoge1xuICAgICAgICAgICAgbmFtZXM6IFt1c2VyXSxcbiAgICAgICAgICAgIHJvbGVzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lbWJlcnM6IHtcbiAgICAgICAgICAgIG5hbWVzOiBbdXNlcl0sXG4gICAgICAgICAgICByb2xlczogcm9sZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFzZWN1cml0eS5vaylcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCB0byBhdXRob3JpemUgdXNlciAke3VzZXJ9IHRvIGRiICR7ZGJOYW1lfWBcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIGRlbGV0ZVVzZXIoY29uOiBTZXJ2ZXJTY29wZSwgZGJOYW1lOiBzdHJpbmcsIHVzZXI6IHN0cmluZykge1xuICAgIGNvbnN0IHVzZXJzID0gY29uLmRiLnVzZShcIl91c2Vyc1wiKTtcbiAgICBjb25zdCBpZCA9IFwib3JnLmNvdWNoZGIudXNlcjpcIiArIHVzZXI7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVzciA9IGF3YWl0IHVzZXJzLmdldChpZCk7XG4gICAgICBhd2FpdCB1c2Vycy5kZXN0cm95KGlkLCB1c3IuX3Jldik7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxufVxuIiwiZXhwb3J0ICogZnJvbSBcIi4vYWRhcHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTmFub1JlcG9zaXRvcnlcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNb2R1bGUgc3VtbWFyeVxuICogQGRlc2NyaXB0aW9uIE1vZHVsZSBkZXNjcmlwdGlvblxuICogQG1vZHVsZSBmb3ItbmFub1xuICovXG5cbi8qKlxuICogQHN1bW1hcnkgc3RvcmVzIHRoZSBjdXJyZW50IHBhY2thZ2UgdmVyc2lvblxuICogQGRlc2NyaXB0aW9uIHRoaXMgaXMgaG93IHlvdSBzaG91bGQgZG9jdW1lbnQgYSBjb25zdGFudFxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6dHMtd29ya3NwYWNlXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXVCTSxNQUFPLFdBQVksU0FBUSxjQUFrQyxDQUFBO0lBR2pFLFdBQVksQ0FBQSxLQUF5QixFQUFF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
|
|
259
|
+
export { NanoAdapter, VERSION, createdByOnNanoCreateUpdate };
|
|
260
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLW5hbm8uZXNtLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2FkYXB0ZXIudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmxpY3RFcnJvcixcbiAgQ29udGV4dCxcbiAgSW50ZXJuYWxFcnJvcixcbiAgb25DcmVhdGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuaW1wb3J0IHtcbiAgQ291Y2hEQkFkYXB0ZXIsXG4gIENvdWNoREJLZXlzLFxuICBDcmVhdGVJbmRleFJlcXVlc3QsXG4gIGdlbmVyYXRlSW5kZXhlcyxcbiAgTWFuZ29RdWVyeSxcbiAgTWFuZ29SZXNwb25zZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IE5hbm8gZnJvbSBcIm5hbm9cIjtcbmltcG9ydCB7XG4gIERvY3VtZW50QnVsa1Jlc3BvbnNlLFxuICBEb2N1bWVudEdldFJlc3BvbnNlLFxuICBEb2N1bWVudEluc2VydFJlc3BvbnNlLFxuICBEb2N1bWVudFNjb3BlLFxuICBNYXliZURvY3VtZW50LFxuICBTZXJ2ZXJTY29wZSxcbn0gZnJvbSBcIm5hbm9cIjtcbmltcG9ydCB7XG4gIENvbnN0cnVjdG9yLFxuICBEZWNvcmF0aW9uLFxuICBNb2RlbCxcbiAgcHJvcE1ldGFkYXRhLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBOYW5vRmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgUGVyc2lzdGVuY2VLZXlzLFxuICBSZWxhdGlvbnNNZXRhZGF0YSxcbiAgUmVwbyxcbiAgUmVwb3NpdG9yeSxcbiAgVW5zdXBwb3J0ZWRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVkQnlPbk5hbm9DcmVhdGVVcGRhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG88TSwgQywgRj4sXG4gIFYgZXh0ZW5kcyBSZWxhdGlvbnNNZXRhZGF0YSxcbiAgRiBleHRlbmRzIE5hbm9GbGFncyxcbiAgQyBleHRlbmRzIENvbnRleHQ8TmFub0ZsYWdzPixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8Rj4sXG4gIGRhdGE6IFYsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB1c2VyID0gY29udGV4dC5nZXQoXCJ1c2VyXCIpO1xuICBpZiAoIXVzZXIgfHwgIXVzZXIubmFtZSlcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIFwiVGhpcyBhZGFwdGVyIGRvZXMgbm90IHN1cHBvcnQgdXNlciBpZGVudGlmaWNhdGlvblwiXG4gICAgKTtcbiAgbW9kZWxba2V5XSA9IHVzZXIubmFtZSBhcyBNW3R5cGVvZiBrZXldO1xufVxuXG5jb25zdCBjcmVhdGVkQnlLZXkgPSBSZXBvc2l0b3J5LmtleShQZXJzaXN0ZW5jZUtleXMuQ1JFQVRFRF9CWSk7XG5jb25zdCB1cGRhdGVkQnlLZXkgPSBSZXBvc2l0b3J5LmtleShQZXJzaXN0ZW5jZUtleXMuVVBEQVRFRF9CWSk7XG5cbmV4cG9ydCBjbGFzcyBOYW5vQWRhcHRlciBleHRlbmRzIENvdWNoREJBZGFwdGVyPFxuICBEb2N1bWVudFNjb3BlPGFueT4sXG4gIE5hbm9GbGFncyxcbiAgQ29udGV4dDxOYW5vRmxhZ3M+XG4+IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IERvY3VtZW50U2NvcGU8YW55PiwgZmxhdm91cjogc3RyaW5nID0gXCJuYW5vXCIpIHtcbiAgICBzdXBlcihzY29wZSwgZmxhdm91cik7XG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhcIm5hbm9cIilcbiAgICAgIC5mb3IoY3JlYXRlZEJ5S2V5KVxuICAgICAgLmRlZmluZShcbiAgICAgICAgb25DcmVhdGUoY3JlYXRlZEJ5T25OYW5vQ3JlYXRlVXBkYXRlKSxcbiAgICAgICAgcHJvcE1ldGFkYXRhKGNyZWF0ZWRCeUtleSwge30pXG4gICAgICApXG4gICAgICAuYXBwbHkoKTtcblxuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoXCJuYW5vXCIpXG4gICAgICAuZm9yKHVwZGF0ZWRCeUtleSlcbiAgICAgIC5kZWZpbmUoXG4gICAgICAgIG9uQ3JlYXRlKGNyZWF0ZWRCeU9uTmFub0NyZWF0ZVVwZGF0ZSksXG4gICAgICAgIHByb3BNZXRhZGF0YSh1cGRhdGVkQnlLZXksIHt9KVxuICAgICAgKVxuICAgICAgLmFwcGx5KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5kZXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICAuLi5tb2RlbHM6IENvbnN0cnVjdG9yPE0+W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5kZXhlczogQ3JlYXRlSW5kZXhSZXF1ZXN0W10gPSBnZW5lcmF0ZUluZGV4ZXMobW9kZWxzKTtcbiAgICBmb3IgKGNvbnN0IGluZGV4IG9mIGluZGV4ZXMpIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubmF0aXZlLmNyZWF0ZUluZGV4KGluZGV4KTtcbiAgICAgIGNvbnN0IHsgcmVzdWx0LCBpZCwgbmFtZSB9ID0gcmVzO1xuICAgICAgaWYgKHJlc3VsdCA9PT0gXCJleGlzdGluZ1wiKVxuICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihgSW5kZXggZm9yIHRhYmxlICR7bmFtZX0gd2l0aCBpZCAke2lkfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRJbnNlcnRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5pbnNlcnQobW9kZWwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2Uub2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBpbnNlcnQgZG9jIGlkOiAke2lkfSBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKG1vZGVsLCByZXNwb25zZS5yZXYpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHsgZG9jczogbW9kZWxzIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBpZiAoIXJlc3BvbnNlLmV2ZXJ5KChyKSA9PiAhci5lcnJvcikpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHJlc3BvbnNlLnJlZHVjZSgoYWNjdW06IHN0cmluZ1tdLCBlbCwgaSkgPT4ge1xuICAgICAgICBpZiAoZWwuZXJyb3IpXG4gICAgICAgICAgYWNjdW0ucHVzaChcbiAgICAgICAgICAgIGBlbCAke2l9OiAke2VsLmVycm9yfSR7ZWwucmVhc29uID8gYCAtICR7ZWwucmVhc29ufWAgOiBcIlwifWBcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LCBbXSk7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlcnJvcnMuam9pbihcIlxcblwiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTXVsdGlwbGVNZXRhZGF0YShcbiAgICAgIG1vZGVscyxcbiAgICAgIHJlc3BvbnNlLm1hcCgocikgPT4gci5yZXYgYXMgc3RyaW5nKVxuICAgICk7XG4gIH1cblxuICBhc3luYyByZWFkKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgX2lkID0gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQpO1xuICAgIGxldCByZWNvcmQ6IERvY3VtZW50R2V0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlY29yZCA9IGF3YWl0IHRoaXMubmF0aXZlLmdldChfaWQpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZWNvcmQsIHJlY29yZC5fcmV2KTtcbiAgfVxuXG4gIGFzeW5jIHJlYWRBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiAoc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50KVtdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMubmF0aXZlLmZldGNoKFxuICAgICAgeyBrZXlzOiBpZHMubWFwKChpZCkgPT4gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQgYXMgYW55KSkgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgaWYgKChyIGFzIGFueSkuZXJyb3IpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKChyIGFzIGFueSkuZXJyb3IpO1xuICAgICAgaWYgKChyIGFzIGFueSkuZG9jKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IE9iamVjdC5hc3NpZ24oe30sIChyIGFzIGFueSkuZG9jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVzLCAociBhcyBhbnkpLmRvY1tDb3VjaERCS2V5cy5SRVZdKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIGJlIGltcG9zc2libGVcIik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50SW5zZXJ0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuaW5zZXJ0KG1vZGVsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gdXBkYXRlIGRvYyBpZDogJHtpZH0gaW4gdGFibGUgJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShtb2RlbCwgcmVzcG9uc2UucmV2KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IHN0cmluZ1tdIHwgbnVtYmVyW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50QnVsa1Jlc3BvbnNlW107XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7IGRvY3M6IG1vZGVscyB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgaWYgKCFyZXNwb25zZS5ldmVyeSgocikgPT4gIXIuZXJyb3IpKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSByZXNwb25zZS5yZWR1Y2UoKGFjY3VtOiBzdHJpbmdbXSwgZWwsIGkpID0+IHtcbiAgICAgICAgaWYgKGVsLmVycm9yKVxuICAgICAgICAgIGFjY3VtLnB1c2goXG4gICAgICAgICAgICBgZWwgJHtpfTogJHtlbC5lcnJvcn0ke2VsLnJlYXNvbiA/IGAgLSAke2VsLnJlYXNvbn1gIDogXCJcIn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwgW10pO1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZXJyb3JzLmpvaW4oXCJcXG5cIikpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzc2lnbk11bHRpcGxlTWV0YWRhdGEoXG4gICAgICBtb2RlbHMsXG4gICAgICByZXNwb25zZS5tYXAoKHIpID0+IHIucmV2IGFzIHN0cmluZylcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgX2lkID0gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQpO1xuICAgIGxldCByZWNvcmQ6IERvY3VtZW50R2V0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlY29yZCA9IGF3YWl0IHRoaXMubmF0aXZlLmdldChfaWQpO1xuICAgICAgYXdhaXQgdGhpcy5uYXRpdmUuZGVzdHJveShfaWQsIHJlY29yZC5fcmV2KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVjb3JkLCByZWNvcmQuX3Jldik7XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiAoc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50KVtdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMubmF0aXZlLmZldGNoKFxuICAgICAgeyBrZXlzOiBpZHMubWFwKChpZCkgPT4gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQgYXMgYW55KSkgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICBjb25zdCBkZWxldGlvbjogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXSA9IGF3YWl0IHRoaXMubmF0aXZlLmJ1bGsoe1xuICAgICAgZG9jczogcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgICAociBhcyBhbnkpW0NvdWNoREJLZXlzLkRFTEVURURdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgICB9KSxcbiAgICB9KTtcbiAgICBkZWxldGlvbi5mb3JFYWNoKChkOiBEb2N1bWVudEJ1bGtSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGQuZXJyb3IpIGNvbnNvbGUuZXJyb3IoZC5lcnJvcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgIGlmICgociBhcyBhbnkpLmVycm9yKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigociBhcyBhbnkpLmVycm9yKTtcbiAgICAgIGlmICgociBhcyBhbnkpLmRvYykge1xuICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHt9LCAociBhcyBhbnkpLmRvYyk7XG4gICAgICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlcywgKHIgYXMgYW55KS5kb2NbQ291Y2hEQktleXMuUkVWXSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmF3PFY+KHJhd0lucHV0OiBNYW5nb1F1ZXJ5LCBwcm9jZXNzID0gdHJ1ZSk6IFByb21pc2U8Vj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZTogTWFuZ29SZXNwb25zZTxWPiA9IGF3YWl0IHRoaXMubmF0aXZlLmZpbmQocmF3SW5wdXQpO1xuICAgICAgaWYgKHJlc3BvbnNlLndhcm5pbmcpIGNvbnNvbGUud2FybihyZXNwb25zZS53YXJuaW5nKTtcbiAgICAgIGlmIChwcm9jZXNzKSByZXR1cm4gcmVzcG9uc2UuZG9jcyBhcyBWO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlIGFzIFY7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvbm5lY3QoXG4gICAgdXNlcjogc3RyaW5nLFxuICAgIHBhc3M6IHN0cmluZyxcbiAgICBob3N0ID0gXCJsb2NhbGhvc3Q6NTk4NFwiLFxuICAgIHByb3RvY29sOiBcImh0dHBcIiB8IFwiaHR0cHNcIiA9IFwiaHR0cFwiXG4gICk6IFNlcnZlclNjb3BlIHtcbiAgICByZXR1cm4gTmFubyhgJHtwcm90b2NvbH06Ly8ke3VzZXJ9OiR7cGFzc31AJHtob3N0fWApO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZURhdGFiYXNlKGNvbjogU2VydmVyU2NvcGUsIG5hbWU6IHN0cmluZykge1xuICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY29uLmRiLmNyZWF0ZShuYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGNvbnN0IHsgb2ssIGVycm9yLCByZWFzb24gfSA9IHJlc3VsdDtcbiAgICBpZiAoIW9rKSB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGVycm9yIGFzIHN0cmluZywgcmVhc29uKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGVEYXRhYmFzZShjb246IFNlcnZlclNjb3BlLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjb24uZGIuZGVzdHJveShuYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGNvbnN0IHsgb2sgfSA9IHJlc3VsdDtcbiAgICBpZiAoIW9rKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBkZWxldGUgZGF0YWJhc2Ugd2l0aCBuYW1lICR7bmFtZX1gKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGVVc2VyKFxuICAgIGNvbjogU2VydmVyU2NvcGUsXG4gICAgZGJOYW1lOiBzdHJpbmcsXG4gICAgdXNlcjogc3RyaW5nLFxuICAgIHBhc3M6IHN0cmluZyxcbiAgICByb2xlczogc3RyaW5nW10gPSBbXCJyZWFkZXJcIiwgXCJ3cml0ZXJcIl1cbiAgKSB7XG4gICAgY29uc3QgdXNlcnMgPSBjb24uZGIudXNlKFwiX3VzZXJzXCIpO1xuICAgIGNvbnN0IHVzciA9IHtcbiAgICAgIF9pZDogXCJvcmcuY291Y2hkYi51c2VyOlwiICsgdXNlcixcbiAgICAgIG5hbWU6IHVzZXIsXG4gICAgICBwYXNzd29yZDogcGFzcyxcbiAgICAgIHJvbGVzOiByb2xlcyxcbiAgICAgIHR5cGU6IFwidXNlclwiLFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNyZWF0ZWQ6IERvY3VtZW50SW5zZXJ0UmVzcG9uc2UgPSBhd2FpdCB1c2Vycy5pbnNlcnQoXG4gICAgICAgIHVzciBhcyBNYXliZURvY3VtZW50XG4gICAgICApO1xuICAgICAgY29uc3QgeyBvayB9ID0gY3JlYXRlZDtcbiAgICAgIGlmICghb2spIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIHVzZXIgJHt1c2VyfWApO1xuICAgICAgY29uc3Qgc2VjdXJpdHk6IGFueSA9IGF3YWl0IGNvbi5yZXF1ZXN0KHtcbiAgICAgICAgZGI6IGRiTmFtZSxcbiAgICAgICAgbWV0aG9kOiBcInB1dFwiLFxuICAgICAgICBwYXRoOiBcIl9zZWN1cml0eVwiLFxuICAgICAgICAvLyBoZWFkZXJzOiB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIH0sXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBhZG1pbnM6IHtcbiAgICAgICAgICAgIG5hbWVzOiBbdXNlcl0sXG4gICAgICAgICAgICByb2xlczogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZW1iZXJzOiB7XG4gICAgICAgICAgICBuYW1lczogW3VzZXJdLFxuICAgICAgICAgICAgcm9sZXM6IHJvbGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGlmICghc2VjdXJpdHkub2spXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBGYWlsZWQgdG8gYXV0aG9yaXplIHVzZXIgJHt1c2VyfSB0byBkYiAke2RiTmFtZX1gXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGVVc2VyKGNvbjogU2VydmVyU2NvcGUsIGRiTmFtZTogc3RyaW5nLCB1c2VyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1c2VycyA9IGNvbi5kYi51c2UoXCJfdXNlcnNcIik7XG4gICAgY29uc3QgaWQgPSBcIm9yZy5jb3VjaGRiLnVzZXI6XCIgKyB1c2VyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1c3IgPSBhd2FpdCB1c2Vycy5nZXQoaWQpO1xuICAgICAgYXdhaXQgdXNlcnMuZGVzdHJveShpZCwgdXNyLl9yZXYpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cbn1cbiIsImV4cG9ydCAqIGZyb20gXCIuL2FkYXB0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL05hbm9SZXBvc2l0b3J5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IE1vZHVsZSBzdW1tYXJ5XG4gKiBAZGVzY3JpcHRpb24gTW9kdWxlIGRlc2NyaXB0aW9uXG4gKiBAbW9kdWxlIGZvci1uYW5vXG4gKi9cblxuLyoqXG4gKiBAc3VtbWFyeSBzdG9yZXMgdGhlIGN1cnJlbnQgcGFja2FnZSB2ZXJzaW9uXG4gKiBAZGVzY3JpcHRpb24gdGhpcyBpcyBob3cgeW91IHNob3VsZCBkb2N1bWVudCBhIGNvbnN0YW50XG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTp0cy13b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQXVDTyxlQUFlLDJCQUEyQixDQVEvQyxPQUFtQixFQUNuQixJQUFPLEVBQ1AsR0FBWSxFQUNaLEtBQVEsRUFBQTtJQUVSLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0FBQ2hDLElBQUEsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO0FBQ3JCLFFBQUEsTUFBTSxJQUFJLGdCQUFnQixDQUN4QixtREFBbUQsQ0FDcEQ7QUFDSCxJQUFBLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBcUI7QUFDekM7QUFFQSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUM7QUFDL0QsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO0FBRXpELE1BQU8sV0FBWSxTQUFRLGNBSWhDLENBQUE7SUFDQyxXQUFZLENBQUEsS0FBeUIsRUFBRSxPQUFBLEdBQWtCLE1BQU0sRUFBQTtBQUM3RCxRQUFBLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO0FBQ3JCLFFBQUEsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNO2FBQzFCLEdBQUcsQ0FBQyxZQUFZO0FBQ2hCLGFBQUEsTUFBTSxDQUNMLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxFQUNyQyxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztBQUUvQixhQUFBLEtBQUssRUFBRTtBQUVWLFFBQUEsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNO2FBQzFCLEdBQUcsQ0FBQyxZQUFZO0FBQ2hCLGFBQUEsTUFBTSxDQUNMLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxFQUNyQyxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztBQUUvQixhQUFBLEtBQUssRUFBRTs7QUFHRixJQUFBLE1BQU0sS0FBSyxDQUNuQixHQUFHLE1BQXdCLEVBQUE7QUFFM0IsUUFBQSxNQUFNLE9BQU8sR0FBeUIsZUFBZSxDQUFDLE1BQU0sQ0FBQztBQUM3RCxRQUFBLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2hELE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUc7WUFDaEMsSUFBSSxNQUFNLEtBQUssVUFBVTtnQkFDdkIsTUFBTSxJQUFJLGFBQWEsQ0FBQyxDQUFBLGdCQUFBLEVBQW1CLElBQUksQ0FBWSxTQUFBLEVBQUEsRUFBRSxDQUFFLENBQUEsQ0FBQzs7O0FBSXRFLElBQUEsTUFBTSxNQUFNLENBQ1YsU0FBaUIsRUFDakIsRUFBbUIsRUFDbkIsS0FBMEIsRUFBQTtBQUUxQixRQUFBLElBQUksUUFBZ0M7QUFDcEMsUUFBQSxJQUFJO1lBQ0YsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDOztRQUMxQyxPQUFPLENBQU0sRUFBRTtBQUNmLFlBQUEsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzs7UUFHMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2QsTUFBTSxJQUFJLGFBQWEsQ0FDckIsQ0FBQSx5QkFBQSxFQUE0QixFQUFFLENBQWEsVUFBQSxFQUFBLFNBQVMsQ0FBRSxDQUFBLENBQ3ZEO1FBQ0gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDOztBQUdqRCxJQUFBLE1BQU0sU0FBUyxDQUNiLFNBQWlCLEVBQ2pCLEdBQXdCLEVBQ3hCLE1BQTZCLEVBQUE7QUFFN0IsUUFBQSxJQUFJLFFBQWdDO0FBQ3BDLFFBQUEsSUFBSTtBQUNGLFlBQUEsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7O1FBQ25ELE9BQU8sQ0FBTSxFQUFFO0FBQ2YsWUFBQSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDOztBQUUxQixRQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ3BDLFlBQUEsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQWUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFJO2dCQUN4RCxJQUFJLEVBQUUsQ0FBQyxLQUFLO29CQUNWLEtBQUssQ0FBQyxJQUFJLENBQ1IsQ0FBTSxHQUFBLEVBQUEsQ0FBQyxDQUFLLEVBQUEsRUFBQSxFQUFFLENBQUMsS0FBSyxDQUFHLEVBQUEsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFBLEdBQUEsRUFBTSxFQUFFLENBQUMsTUFBTSxDQUFBLENBQUUsR0FBRyxFQUFFLENBQUUsQ0FBQSxDQUM1RDtBQUNILGdCQUFBLE9BQU8sS0FBSzthQUNiLEVBQUUsRUFBRSxDQUFDO1lBQ04sTUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOztRQUc1QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FDaEMsTUFBTSxFQUNOLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQWEsQ0FBQyxDQUNyQzs7QUFHSCxJQUFBLE1BQU0sSUFBSSxDQUNSLFNBQWlCLEVBQ2pCLEVBQW1CLEVBQUE7UUFFbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO0FBQzFDLFFBQUEsSUFBSSxNQUEyQjtBQUMvQixRQUFBLElBQUk7WUFDRixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7O1FBQ25DLE9BQU8sQ0FBTSxFQUFFO0FBQ2YsWUFBQSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDOztRQUUxQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7O0FBR2pELElBQUEsTUFBTSxPQUFPLENBQ1gsU0FBaUIsRUFDakIsR0FBaUMsRUFBQTtBQUVqQyxRQUFBLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ3JDLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBUyxDQUFDLENBQUMsRUFBRSxFQUNoRSxFQUFFLENBQ0g7UUFDRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFJO1lBQzVCLElBQUssQ0FBUyxDQUFDLEtBQUs7QUFBRSxnQkFBQSxNQUFNLElBQUksYUFBYSxDQUFFLENBQVMsQ0FBQyxLQUFLLENBQUM7QUFDL0QsWUFBQSxJQUFLLENBQVMsQ0FBQyxHQUFHLEVBQUU7QUFDbEIsZ0JBQUEsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUcsQ0FBUyxDQUFDLEdBQUcsQ0FBQztBQUM3QyxnQkFBQSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFHLENBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDOztBQUVsRSxZQUFBLE1BQU0sSUFBSSxhQUFhLENBQUMsc0JBQXNCLENBQUM7QUFDakQsU0FBQyxDQUFDOztBQUdKLElBQUEsTUFBTSxNQUFNLENBQ1YsU0FBaUIsRUFDakIsRUFBbUIsRUFDbkIsS0FBMEIsRUFBQTtBQUUxQixRQUFBLElBQUksUUFBZ0M7QUFDcEMsUUFBQSxJQUFJO1lBQ0YsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDOztRQUMxQyxPQUFPLENBQU0sRUFBRTtBQUNmLFlBQUEsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzs7UUFHMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2QsTUFBTSxJQUFJLGFBQWEsQ0FDckIsQ0FBQSx5QkFBQSxFQUE0QixFQUFFLENBQWEsVUFBQSxFQUFBLFNBQVMsQ0FBRSxDQUFBLENBQ3ZEO1FBQ0gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDOztBQUdqRCxJQUFBLE1BQU0sU0FBUyxDQUNiLFNBQWlCLEVBQ2pCLEdBQXdCLEVBQ3hCLE1BQTZCLEVBQUE7QUFFN0IsUUFBQSxJQUFJLFFBQWdDO0FBQ3BDLFFBQUEsSUFBSTtBQUNGLFlBQUEsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7O1FBQ25ELE9BQU8sQ0FBTSxFQUFFO0FBQ2YsWUFBQSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDOztBQUUxQixRQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ3BDLFlBQUEsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQWUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFJO2dCQUN4RCxJQUFJLEVBQUUsQ0FBQyxLQUFLO29CQUNWLEtBQUssQ0FBQyxJQUFJLENBQ1IsQ0FBTSxHQUFBLEVBQUEsQ0FBQyxDQUFLLEVBQUEsRUFBQSxFQUFFLENBQUMsS0FBSyxDQUFHLEVBQUEsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFBLEdBQUEsRUFBTSxFQUFFLENBQUMsTUFBTSxDQUFBLENBQUUsR0FBRyxFQUFFLENBQUUsQ0FBQSxDQUM1RDtBQUNILGdCQUFBLE9BQU8sS0FBSzthQUNiLEVBQUUsRUFBRSxDQUFDO1lBQ04sTUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOztRQUc1QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FDaEMsTUFBTSxFQUNOLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQWEsQ0FBQyxDQUNyQzs7QUFHSCxJQUFBLE1BQU0sTUFBTSxDQUNWLFNBQWlCLEVBQ2pCLEVBQW1CLEVBQUE7UUFFbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO0FBQzFDLFFBQUEsSUFBSSxNQUEyQjtBQUMvQixRQUFBLElBQUk7WUFDRixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFDbkMsWUFBQSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDOztRQUMzQyxPQUFPLENBQU0sRUFBRTtBQUNmLFlBQUEsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzs7UUFFMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDOztBQUdqRCxJQUFBLE1BQU0sU0FBUyxDQUNiLFNBQWlCLEVBQ2pCLEdBQWlDLEVBQUE7QUFFakMsUUFBQSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNyQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEVBQVMsQ0FBQyxDQUFDLEVBQUUsRUFDaEUsRUFBRSxDQUNIO1FBQ0QsTUFBTSxRQUFRLEdBQTJCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDOUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFJO0FBQzFCLGdCQUFBLENBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSTtBQUN0QyxnQkFBQSxPQUFPLENBQUM7QUFDVixhQUFDLENBQUM7QUFDSCxTQUFBLENBQUM7QUFDRixRQUFBLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUF1QixLQUFJO1lBQzNDLElBQUksQ0FBQyxDQUFDLEtBQUs7QUFBRSxnQkFBQSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDckMsU0FBQyxDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSTtZQUM1QixJQUFLLENBQVMsQ0FBQyxLQUFLO0FBQUUsZ0JBQUEsTUFBTSxJQUFJLGFBQWEsQ0FBRSxDQUFTLENBQUMsS0FBSyxDQUFDO0FBQy9ELFlBQUEsSUFBSyxDQUFTLENBQUMsR0FBRyxFQUFFO0FBQ2xCLGdCQUFBLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFHLENBQVMsQ0FBQyxHQUFHLENBQUM7QUFDN0MsZ0JBQUEsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRyxDQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQzs7QUFFbEUsWUFBQSxNQUFNLElBQUksYUFBYSxDQUFDLHNCQUFzQixDQUFDO0FBQ2pELFNBQUMsQ0FBQzs7QUFHSixJQUFBLE1BQU0sR0FBRyxDQUFJLFFBQW9CLEVBQUUsT0FBTyxHQUFHLElBQUksRUFBQTtBQUMvQyxRQUFBLElBQUk7WUFDRixNQUFNLFFBQVEsR0FBcUIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDbkUsSUFBSSxRQUFRLENBQUMsT0FBTztBQUFFLGdCQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztBQUNwRCxZQUFBLElBQUksT0FBTztnQkFBRSxPQUFPLFFBQVEsQ0FBQyxJQUFTO0FBQ3RDLFlBQUEsT0FBTyxRQUFhOztRQUNwQixPQUFPLENBQU0sRUFBRTtBQUNmLFlBQUEsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzs7O0FBSTVCLElBQUEsT0FBTyxPQUFPLENBQ1osSUFBWSxFQUNaLElBQVksRUFDWixJQUFJLEdBQUcsZ0JBQWdCLEVBQ3ZCLFFBQUEsR0FBNkIsTUFBTSxFQUFBO0FBRW5DLFFBQUEsT0FBTyxJQUFJLENBQUMsQ0FBRyxFQUFBLFFBQVEsQ0FBTSxHQUFBLEVBQUEsSUFBSSxDQUFJLENBQUEsRUFBQSxJQUFJLENBQUksQ0FBQSxFQUFBLElBQUksQ0FBRSxDQUFBLENBQUM7O0FBR3RELElBQUEsYUFBYSxjQUFjLENBQUMsR0FBZ0IsRUFBRSxJQUFZLEVBQUE7QUFDeEQsUUFBQSxJQUFJLE1BQVc7QUFDZixRQUFBLElBQUk7WUFDRixNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7O1FBQ2xDLE9BQU8sQ0FBTSxFQUFFO0FBQ2YsWUFBQSxNQUFNLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDOztRQUVwQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNO0FBQ3BDLFFBQUEsSUFBSSxDQUFDLEVBQUU7WUFBRSxNQUFNLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBZSxFQUFFLE1BQU0sQ0FBQzs7QUFHbkUsSUFBQSxhQUFhLGNBQWMsQ0FBQyxHQUFnQixFQUFFLElBQVksRUFBQTtBQUN4RCxRQUFBLElBQUksTUFBTTtBQUNWLFFBQUEsSUFBSTtZQUNGLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQzs7UUFDbkMsT0FBTyxDQUFNLEVBQUU7QUFDZixZQUFBLE1BQU0sY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7O0FBRXBDLFFBQUEsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU07QUFDckIsUUFBQSxJQUFJLENBQUMsRUFBRTtBQUNMLFlBQUEsTUFBTSxJQUFJLGFBQWEsQ0FBQyx1Q0FBdUMsSUFBSSxDQUFBLENBQUUsQ0FBQzs7QUFHMUUsSUFBQSxhQUFhLFVBQVUsQ0FDckIsR0FBZ0IsRUFDaEIsTUFBYyxFQUNkLElBQVksRUFDWixJQUFZLEVBQ1osS0FBQSxHQUFrQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBQTtRQUV0QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7QUFDbEMsUUFBQSxNQUFNLEdBQUcsR0FBRztZQUNWLEdBQUcsRUFBRSxtQkFBbUIsR0FBRyxJQUFJO0FBQy9CLFlBQUEsSUFBSSxFQUFFLElBQUk7QUFDVixZQUFBLFFBQVEsRUFBRSxJQUFJO0FBQ2QsWUFBQSxLQUFLLEVBQUUsS0FBSztBQUNaLFlBQUEsSUFBSSxFQUFFLE1BQU07U0FDYjtBQUNELFFBQUEsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUEyQixNQUFNLEtBQUssQ0FBQyxNQUFNLENBQ3hELEdBQW9CLENBQ3JCO0FBQ0QsWUFBQSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTztBQUN0QixZQUFBLElBQUksQ0FBQyxFQUFFO0FBQUUsZ0JBQUEsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5QkFBeUIsSUFBSSxDQUFBLENBQUUsQ0FBQztBQUNqRSxZQUFBLE1BQU0sUUFBUSxHQUFRLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQztBQUN0QyxnQkFBQSxFQUFFLEVBQUUsTUFBTTtBQUNWLGdCQUFBLE1BQU0sRUFBRSxLQUFLO0FBQ2IsZ0JBQUEsSUFBSSxFQUFFLFdBQVc7Ozs7QUFJakIsZ0JBQUEsSUFBSSxFQUFFO0FBQ0osb0JBQUEsTUFBTSxFQUFFO3dCQUNOLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQztBQUNiLHdCQUFBLEtBQUssRUFBRSxFQUFFO0FBQ1YscUJBQUE7QUFDRCxvQkFBQSxPQUFPLEVBQUU7d0JBQ1AsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQ2Isd0JBQUEsS0FBSyxFQUFFLEtBQUs7QUFDYixxQkFBQTtBQUNGLGlCQUFBO0FBQ0YsYUFBQSxDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNkLE1BQU0sSUFBSSxhQUFhLENBQ3JCLENBQUEseUJBQUEsRUFBNEIsSUFBSSxDQUFVLE9BQUEsRUFBQSxNQUFNLENBQUUsQ0FBQSxDQUNuRDs7UUFDSCxPQUFPLENBQU0sRUFBRTtBQUNmLFlBQUEsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzs7O0lBSXRDLGFBQWEsVUFBVSxDQUFDLEdBQWdCLEVBQUUsTUFBYyxFQUFFLElBQVksRUFBQTtRQUNwRSxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7QUFDbEMsUUFBQSxNQUFNLEVBQUUsR0FBRyxtQkFBbUIsR0FBRyxJQUFJO0FBQ3JDLFFBQUEsSUFBSTtZQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDOztRQUNqQyxPQUFPLENBQU0sRUFBRTtBQUNmLFlBQUEsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzs7O0FBR3ZDOztBQzVXRDs7OztBQUlHO0FBRUg7Ozs7O0FBS0c7QUFDSSxNQUFNLE9BQU8sR0FBRzs7OzsifQ==
|
package/lib/NanoRepository.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFub1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTmFub1JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgTWFuZ29RdWVyeSB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IEFkYXB0ZXIsIFJlcG9zaXRvcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IERvY3VtZW50U2NvcGUgfSBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHsgTmFub0ZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuZXhwb3J0IHR5cGUgTmFub1JlcG9zaXRvcnk8TSBleHRlbmRzIE1vZGVsPiA9IFJlcG9zaXRvcnk8XG4gIE0sXG4gIE1hbmdvUXVlcnksXG4gIEFkYXB0ZXI8RG9jdW1lbnRTY29wZTxhbnk+LCBNYW5nb1F1ZXJ5LCBOYW5vRmxhZ3MsIENvbnRleHQ8TmFub0ZsYWdzPj5cbj47XG4iXX0=
|
package/lib/NanoRepository.d.ts
CHANGED
|
@@ -2,4 +2,6 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
2
2
|
import { MangoQuery } from "@decaf-ts/for-couchdb";
|
|
3
3
|
import { Adapter, Repository } from "@decaf-ts/core";
|
|
4
4
|
import { DocumentScope } from "nano";
|
|
5
|
-
|
|
5
|
+
import { NanoFlags } from "./types";
|
|
6
|
+
import { Context } from "@decaf-ts/db-decorators";
|
|
7
|
+
export type NanoRepository<M extends Model> = Repository<M, MangoQuery, Adapter<DocumentScope<any>, MangoQuery, NanoFlags, Context<NanoFlags>>>;
|
package/lib/adapter.cjs
CHANGED
|
@@ -4,30 +4,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.NanoAdapter = void 0;
|
|
7
|
+
exports.createdByOnNanoCreateUpdate = createdByOnNanoCreateUpdate;
|
|
7
8
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
8
9
|
require("reflect-metadata");
|
|
9
10
|
const for_couchdb_1 = require("@decaf-ts/for-couchdb");
|
|
10
11
|
const nano_1 = __importDefault(require("nano"));
|
|
12
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
11
13
|
const core_1 = require("@decaf-ts/core");
|
|
14
|
+
async function createdByOnNanoCreateUpdate(context, data, key, model) {
|
|
15
|
+
const user = context.get("user");
|
|
16
|
+
if (!user || !user.name)
|
|
17
|
+
throw new core_1.UnsupportedError("This adapter does not support user identification");
|
|
18
|
+
model[key] = user.name;
|
|
19
|
+
}
|
|
20
|
+
const createdByKey = core_1.Repository.key(core_1.PersistenceKeys.CREATED_BY);
|
|
21
|
+
const updatedByKey = core_1.Repository.key(core_1.PersistenceKeys.UPDATED_BY);
|
|
12
22
|
class NanoAdapter extends for_couchdb_1.CouchDBAdapter {
|
|
13
|
-
constructor(scope, flavour) {
|
|
23
|
+
constructor(scope, flavour = "nano") {
|
|
14
24
|
super(scope, flavour);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
roles: user.userCtx.roles,
|
|
24
|
-
affiliations: user.userCtx.affiliations,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
catch (e) {
|
|
28
|
-
throw this.parseError(e);
|
|
29
|
-
}
|
|
30
|
-
return this._user;
|
|
25
|
+
decorator_validation_1.Decoration.flavouredAs("nano")
|
|
26
|
+
.for(createdByKey)
|
|
27
|
+
.define((0, db_decorators_1.onCreate)(createdByOnNanoCreateUpdate), (0, decorator_validation_1.propMetadata)(createdByKey, {}))
|
|
28
|
+
.apply();
|
|
29
|
+
decorator_validation_1.Decoration.flavouredAs("nano")
|
|
30
|
+
.for(updatedByKey)
|
|
31
|
+
.define((0, db_decorators_1.onCreate)(createdByOnNanoCreateUpdate), (0, decorator_validation_1.propMetadata)(updatedByKey, {}))
|
|
32
|
+
.apply();
|
|
31
33
|
}
|
|
32
34
|
async index(...models) {
|
|
33
35
|
const indexes = (0, for_couchdb_1.generateIndexes)(models);
|
|
@@ -247,4 +249,4 @@ class NanoAdapter extends for_couchdb_1.CouchDBAdapter {
|
|
|
247
249
|
}
|
|
248
250
|
}
|
|
249
251
|
exports.NanoAdapter = NanoAdapter;
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJEQUF1RTtBQUN2RSw0QkFBMEI7QUFDMUIsdURBTytCO0FBQy9CLGdEQUF3QjtBQVV4Qix5Q0FBc0M7QUFHdEMsTUFBYSxXQUFZLFNBQVEsNEJBQWtDO0lBR2pFLFlBQVksS0FBeUIsRUFBRSxPQUFlO1FBQ3BELEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVTLEtBQUssQ0FBQyxJQUFJO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFbEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQTRCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksV0FBSSxDQUFDO2dCQUNwQixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO2dCQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUN6QixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ3hDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFUyxLQUFLLENBQUMsS0FBSyxDQUNuQixHQUFHLE1BQXdCO1FBRTNCLE1BQU0sT0FBTyxHQUF5QixJQUFBLDZCQUFlLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FB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QVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBaFRELGtDQWdUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCB7XG4gIENvdWNoREJBZGFwdGVyLFxuICBDb3VjaERCS2V5cyxcbiAgQ3JlYXRlSW5kZXhSZXF1ZXN0LFxuICBnZW5lcmF0ZUluZGV4ZXMsXG4gIE1hbmdvUXVlcnksXG4gIE1hbmdvUmVzcG9uc2UsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCBOYW5vIGZyb20gXCJuYW5vXCI7XG5pbXBvcnQge1xuICBEYXRhYmFzZVNlc3Npb25SZXNwb25zZSxcbiAgRG9jdW1lbnRCdWxrUmVzcG9uc2UsXG4gIERvY3VtZW50R2V0UmVzcG9uc2UsXG4gIERvY3VtZW50SW5zZXJ0UmVzcG9uc2UsXG4gIERvY3VtZW50U2NvcGUsXG4gIE1heWJlRG9jdW1lbnQsXG4gIFNlcnZlclNjb3BlLFxufSBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgTmFub0FkYXB0ZXIgZXh0ZW5kcyBDb3VjaERCQWRhcHRlcjxEb2N1bWVudFNjb3BlPGFueT4+IHtcbiAgcHJpdmF0ZSBfdXNlcj86IFVzZXI7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IERvY3VtZW50U2NvcGU8YW55PiwgZmxhdm91cjogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGZsYXZvdXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVzZXIoKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgaWYgKHRoaXMuX3VzZXIpIHJldHVybiB0aGlzLl91c2VyO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVzZXI6IERhdGFiYXNlU2Vzc2lvblJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuc2Vzc2lvbigpO1xuICAgICAgdGhpcy5fdXNlciA9IG5ldyBVc2VyKHtcbiAgICAgICAgaWQ6IHVzZXIudXNlckN0eC5uYW1lLFxuICAgICAgICByb2xlczogdXNlci51c2VyQ3R4LnJvbGVzLFxuICAgICAgICBhZmZpbGlhdGlvbnM6IHVzZXIudXNlckN0eC5hZmZpbGlhdGlvbnMsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3VzZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5kZXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICAuLi5tb2RlbHM6IENvbnN0cnVjdG9yPE0+W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5kZXhlczogQ3JlYXRlSW5kZXhSZXF1ZXN0W10gPSBnZW5lcmF0ZUluZGV4ZXMobW9kZWxzKTtcbiAgICBmb3IgKGNvbnN0IGluZGV4IG9mIGluZGV4ZXMpIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubmF0aXZlLmNyZWF0ZUluZGV4KGluZGV4KTtcbiAgICAgIGNvbnN0IHsgcmVzdWx0LCBpZCwgbmFtZSB9ID0gcmVzO1xuICAgICAgaWYgKHJlc3VsdCA9PT0gXCJleGlzdGluZ1wiKVxuICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihgSW5kZXggZm9yIHRhYmxlICR7bmFtZX0gd2l0aCBpZCAke2lkfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRJbnNlcnRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5pbnNlcnQobW9kZWwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2Uub2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBpbnNlcnQgZG9jIGlkOiAke2lkfSBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKG1vZGVsLCByZXNwb25zZS5yZXYpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHsgZG9jczogbW9kZWxzIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBpZiAoIXJlc3BvbnNlLmV2ZXJ5KChyKSA9PiAhci5lcnJvcikpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHJlc3BvbnNlLnJlZHVjZSgoYWNjdW06IHN0cmluZ1tdLCBlbCwgaSkgPT4ge1xuICAgICAgICBpZiAoZWwuZXJyb3IpXG4gICAgICAgICAgYWNjdW0ucHVzaChcbiAgICAgICAgICAgIGBlbCAke2l9OiAke2VsLmVycm9yfSR7ZWwucmVhc29uID8gYCAtICR7ZWwucmVhc29ufWAgOiBcIlwifWBcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LCBbXSk7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlcnJvcnMuam9pbihcIlxcblwiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTXVsdGlwbGVNZXRhZGF0YShcbiAgICAgIG1vZGVscyxcbiAgICAgIHJlc3BvbnNlLm1hcCgocikgPT4gci5yZXYgYXMgc3RyaW5nKVxuICAgICk7XG4gIH1cblxuICBhc3luYyByZWFkKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgX2lkID0gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQpO1xuICAgIGxldCByZWNvcmQ6IERvY3VtZW50R2V0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlY29yZCA9IGF3YWl0IHRoaXMubmF0aXZlLmdldChfaWQpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZWNvcmQsIHJlY29yZC5fcmV2KTtcbiAgfVxuXG4gIGFzeW5jIHJlYWRBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiAoc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50KVtdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMubmF0aXZlLmZldGNoKFxuICAgICAgeyBrZXlzOiBpZHMubWFwKChpZCkgPT4gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQgYXMgYW55KSkgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgaWYgKChyIGFzIGFueSkuZXJyb3IpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKChyIGFzIGFueSkuZXJyb3IpO1xuICAgICAgaWYgKChyIGFzIGFueSkuZG9jKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IE9iamVjdC5hc3NpZ24oe30sIChyIGFzIGFueSkuZG9jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVzLCAociBhcyBhbnkpLmRvY1tDb3VjaERCS2V5cy5SRVZdKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIGJlIGltcG9zc2libGVcIik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50SW5zZXJ0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuaW5zZXJ0KG1vZGVsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gdXBkYXRlIGRvYyBpZDogJHtpZH0gaW4gdGFibGUgJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShtb2RlbCwgcmVzcG9uc2UucmV2KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IHN0cmluZ1tdIHwgbnVtYmVyW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50QnVsa1Jlc3BvbnNlW107XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7IGRvY3M6IG1vZGVscyB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgaWYgKCFyZXNwb25zZS5ldmVyeSgocikgPT4gIXIuZXJyb3IpKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSByZXNwb25zZS5yZWR1Y2UoKGFjY3VtOiBzdHJpbmdbXSwgZWwsIGkpID0+IHtcbiAgICAgICAgaWYgKGVsLmVycm9yKVxuICAgICAgICAgIGFjY3VtLnB1c2goXG4gICAgICAgICAgICBgZWwgJHtpfTogJHtlbC5lcnJvcn0ke2VsLnJlYXNvbiA/IGAgLSAke2VsLnJlYXNvbn1gIDogXCJcIn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwgW10pO1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZXJyb3JzLmpvaW4oXCJcXG5cIikpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzc2lnbk11bHRpcGxlTWV0YWRhdGEoXG4gICAgICBtb2RlbHMsXG4gICAgICByZXNwb25zZS5tYXAoKHIpID0+IHIucmV2IGFzIHN0cmluZylcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgX2lkID0gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQpO1xuICAgIGxldCByZWNvcmQ6IERvY3VtZW50R2V0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlY29yZCA9IGF3YWl0IHRoaXMubmF0aXZlLmdldChfaWQpO1xuICAgICAgYXdhaXQgdGhpcy5uYXRpdmUuZGVzdHJveShfaWQsIHJlY29yZC5fcmV2KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVjb3JkLCByZWNvcmQuX3Jldik7XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiAoc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50KVtdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMubmF0aXZlLmZldGNoKFxuICAgICAgeyBrZXlzOiBpZHMubWFwKChpZCkgPT4gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQgYXMgYW55KSkgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICBjb25zdCBkZWxldGlvbjogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXSA9IGF3YWl0IHRoaXMubmF0aXZlLmJ1bGsoe1xuICAgICAgZG9jczogcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgICAociBhcyBhbnkpW0NvdWNoREJLZXlzLkRFTEVURURdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgICB9KSxcbiAgICB9KTtcbiAgICBkZWxldGlvbi5mb3JFYWNoKChkOiBEb2N1bWVudEJ1bGtSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGQuZXJyb3IpIGNvbnNvbGUuZXJyb3IoZC5lcnJvcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgIGlmICgociBhcyBhbnkpLmVycm9yKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigociBhcyBhbnkpLmVycm9yKTtcbiAgICAgIGlmICgociBhcyBhbnkpLmRvYykge1xuICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHt9LCAociBhcyBhbnkpLmRvYyk7XG4gICAgICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlcywgKHIgYXMgYW55KS5kb2NbQ291Y2hEQktleXMuUkVWXSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmF3PFY+KHJhd0lucHV0OiBNYW5nb1F1ZXJ5LCBwcm9jZXNzID0gdHJ1ZSk6IFByb21pc2U8Vj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZTogTWFuZ29SZXNwb25zZTxWPiA9IGF3YWl0IHRoaXMubmF0aXZlLmZpbmQocmF3SW5wdXQpO1xuICAgICAgaWYgKHJlc3BvbnNlLndhcm5pbmcpIGNvbnNvbGUud2FybihyZXNwb25zZS53YXJuaW5nKTtcbiAgICAgIGlmIChwcm9jZXNzKSByZXR1cm4gcmVzcG9uc2UuZG9jcyBhcyBWO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlIGFzIFY7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvbm5lY3QoXG4gICAgdXNlcjogc3RyaW5nLFxuICAgIHBhc3M6IHN0cmluZyxcbiAgICBob3N0ID0gXCJsb2NhbGhvc3Q6NTk4NFwiLFxuICAgIHByb3RvY29sOiBcImh0dHBcIiB8IFwiaHR0cHNcIiA9IFwiaHR0cFwiXG4gICk6IFNlcnZlclNjb3BlIHtcbiAgICByZXR1cm4gTmFubyhgJHtwcm90b2NvbH06Ly8ke3VzZXJ9OiR7cGFzc31AJHtob3N0fWApO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZURhdGFiYXNlKGNvbjogU2VydmVyU2NvcGUsIG5hbWU6IHN0cmluZykge1xuICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY29uLmRiLmNyZWF0ZShuYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGNvbnN0IHsgb2ssIGVycm9yLCByZWFzb24gfSA9IHJlc3VsdDtcbiAgICBpZiAoIW9rKSB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGVycm9yIGFzIHN0cmluZywgcmVhc29uKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGVEYXRhYmFzZShjb246IFNlcnZlclNjb3BlLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjb24uZGIuZGVzdHJveShuYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGNvbnN0IHsgb2sgfSA9IHJlc3VsdDtcbiAgICBpZiAoIW9rKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBkZWxldGUgZGF0YWJhc2Ugd2l0aCBuYW1lICR7bmFtZX1gKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGVVc2VyKFxuICAgIGNvbjogU2VydmVyU2NvcGUsXG4gICAgZGJOYW1lOiBzdHJpbmcsXG4gICAgdXNlcjogc3RyaW5nLFxuICAgIHBhc3M6IHN0cmluZyxcbiAgICByb2xlczogc3RyaW5nW10gPSBbXCJyZWFkZXJcIiwgXCJ3cml0ZXJcIl1cbiAgKSB7XG4gICAgY29uc3QgdXNlcnMgPSBjb24uZGIudXNlKFwiX3VzZXJzXCIpO1xuICAgIGNvbnN0IHVzciA9IHtcbiAgICAgIF9pZDogXCJvcmcuY291Y2hkYi51c2VyOlwiICsgdXNlcixcbiAgICAgIG5hbWU6IHVzZXIsXG4gICAgICBwYXNzd29yZDogcGFzcyxcbiAgICAgIHJvbGVzOiByb2xlcyxcbiAgICAgIHR5cGU6IFwidXNlclwiLFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNyZWF0ZWQ6IERvY3VtZW50SW5zZXJ0UmVzcG9uc2UgPSBhd2FpdCB1c2Vycy5pbnNlcnQoXG4gICAgICAgIHVzciBhcyBNYXliZURvY3VtZW50XG4gICAgICApO1xuICAgICAgY29uc3QgeyBvayB9ID0gY3JlYXRlZDtcbiAgICAgIGlmICghb2spIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIHVzZXIgJHt1c2VyfWApO1xuICAgICAgY29uc3Qgc2VjdXJpdHk6IGFueSA9IGF3YWl0IGNvbi5yZXF1ZXN0KHtcbiAgICAgICAgZGI6IGRiTmFtZSxcbiAgICAgICAgbWV0aG9kOiBcInB1dFwiLFxuICAgICAgICBwYXRoOiBcIl9zZWN1cml0eVwiLFxuICAgICAgICAvLyBoZWFkZXJzOiB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIH0sXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBhZG1pbnM6IHtcbiAgICAgICAgICAgIG5hbWVzOiBbdXNlcl0sXG4gICAgICAgICAgICByb2xlczogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZW1iZXJzOiB7XG4gICAgICAgICAgICBuYW1lczogW3VzZXJdLFxuICAgICAgICAgICAgcm9sZXM6IHJvbGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGlmICghc2VjdXJpdHkub2spXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBGYWlsZWQgdG8gYXV0aG9yaXplIHVzZXIgJHt1c2VyfSB0byBkYiAke2RiTmFtZX1gXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGVVc2VyKGNvbjogU2VydmVyU2NvcGUsIGRiTmFtZTogc3RyaW5nLCB1c2VyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1c2VycyA9IGNvbi5kYi51c2UoXCJfdXNlcnNcIik7XG4gICAgY29uc3QgaWQgPSBcIm9yZy5jb3VjaGRiLnVzZXI6XCIgKyB1c2VyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1c3IgPSBhd2FpdCB1c2Vycy5nZXQoaWQpO1xuICAgICAgYXdhaXQgdXNlcnMuZGVzdHJveShpZCwgdXNyLl9yZXYpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXVDQSxrRUFtQkM7QUExREQsMkRBS2lDO0FBQ2pDLDRCQUEwQjtBQUMxQix1REFPK0I7QUFDL0IsZ0RBQXdCO0FBU3hCLHlFQUt3QztBQUV4Qyx5Q0FNd0I7QUFFakIsS0FBSyxVQUFVLDJCQUEyQixDQVEvQyxPQUFtQixFQUNuQixJQUFPLEVBQ1AsR0FBWSxFQUNaLEtBQVE7SUFFUixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtRQUNyQixNQUFNLElBQUksdUJBQWdCLENBQ3hCLG1EQUFtRCxDQUNwRCxDQUFDO0lBQ0osS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFxQixDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFlBQVksR0FBRyxpQkFBVSxDQUFDLEdBQUcsQ0FBQyxzQkFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sWUFBWSxHQUFHLGlCQUFVLENBQUMsR0FBRyxDQUFDLHNCQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFaEUsTUFBYSxXQUFZLFNBQVEsNEJBSWhDO0lBQ0MsWUFBWSxLQUF5QixFQUFFLFVBQWtCLE1BQU07UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0QixpQ0FBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7YUFDM0IsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUNqQixNQUFNLENBQ0wsSUFBQSx3QkFBUSxFQUFDLDJCQUEyQixDQUFDLEVBQ3JDLElBQUEsbUNBQVksRUFBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQy9CO2FBQ0EsS0FBSyxFQUFFLENBQUM7UUFFWCxpQ0FBVSxD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LEVBQUUsSUFBWTtRQUNwRSxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxNQUFNLEVBQUUsR0FBRyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sNEJBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWpURCxrQ0FpVEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25mbGljdEVycm9yLFxuICBDb250ZXh0LFxuICBJbnRlcm5hbEVycm9yLFxuICBvbkNyZWF0ZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5pbXBvcnQge1xuICBDb3VjaERCQWRhcHRlcixcbiAgQ291Y2hEQktleXMsXG4gIENyZWF0ZUluZGV4UmVxdWVzdCxcbiAgZ2VuZXJhdGVJbmRleGVzLFxuICBNYW5nb1F1ZXJ5LFxuICBNYW5nb1Jlc3BvbnNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgTmFubyBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnRCdWxrUmVzcG9uc2UsXG4gIERvY3VtZW50R2V0UmVzcG9uc2UsXG4gIERvY3VtZW50SW5zZXJ0UmVzcG9uc2UsXG4gIERvY3VtZW50U2NvcGUsXG4gIE1heWJlRG9jdW1lbnQsXG4gIFNlcnZlclNjb3BlLFxufSBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0b3IsXG4gIERlY29yYXRpb24sXG4gIE1vZGVsLFxuICBwcm9wTWV0YWRhdGEsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE5hbm9GbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQge1xuICBQZXJzaXN0ZW5jZUtleXMsXG4gIFJlbGF0aW9uc01ldGFkYXRhLFxuICBSZXBvLFxuICBSZXBvc2l0b3J5LFxuICBVbnN1cHBvcnRlZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZWRCeU9uTmFub0NyZWF0ZVVwZGF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwbzxNLCBDLCBGPixcbiAgViBleHRlbmRzIFJlbGF0aW9uc01ldGFkYXRhLFxuICBGIGV4dGVuZHMgTmFub0ZsYWdzLFxuICBDIGV4dGVuZHMgQ29udGV4dDxOYW5vRmxhZ3M+LFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dDxGPixcbiAgZGF0YTogVixcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHVzZXIgPSBjb250ZXh0LmdldChcInVzZXJcIik7XG4gIGlmICghdXNlciB8fCAhdXNlci5uYW1lKVxuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgXCJUaGlzIGFkYXB0ZXIgZG9lcyBub3Qgc3VwcG9ydCB1c2VyIGlkZW50aWZpY2F0aW9uXCJcbiAgICApO1xuICBtb2RlbFtrZXldID0gdXNlci5uYW1lIGFzIE1bdHlwZW9mIGtleV07XG59XG5cbmNvbnN0IGNyZWF0ZWRCeUtleSA9IFJlcG9zaXRvcnkua2V5KFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZKTtcbmNvbnN0IHVwZGF0ZWRCeUtleSA9IFJlcG9zaXRvcnkua2V5KFBlcnNpc3RlbmNlS2V5cy5VUERBVEVEX0JZKTtcblxuZXhwb3J0IGNsYXNzIE5hbm9BZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXI8XG4gIERvY3VtZW50U2NvcGU8YW55PixcbiAgTmFub0ZsYWdzLFxuICBDb250ZXh0PE5hbm9GbGFncz5cbj4ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogRG9jdW1lbnRTY29wZTxhbnk+LCBmbGF2b3VyOiBzdHJpbmcgPSBcIm5hbm9cIikge1xuICAgIHN1cGVyKHNjb3BlLCBmbGF2b3VyKTtcbiAgICBEZWNvcmF0aW9uLmZsYXZvdXJlZEFzKFwibmFub1wiKVxuICAgICAgLmZvcihjcmVhdGVkQnlLZXkpXG4gICAgICAuZGVmaW5lKFxuICAgICAgICBvbkNyZWF0ZShjcmVhdGVkQnlPbk5hbm9DcmVhdGVVcGRhdGUpLFxuICAgICAgICBwcm9wTWV0YWRhdGEoY3JlYXRlZEJ5S2V5LCB7fSlcbiAgICAgIClcbiAgICAgIC5hcHBseSgpO1xuXG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhcIm5hbm9cIilcbiAgICAgIC5mb3IodXBkYXRlZEJ5S2V5KVxuICAgICAgLmRlZmluZShcbiAgICAgICAgb25DcmVhdGUoY3JlYXRlZEJ5T25OYW5vQ3JlYXRlVXBkYXRlKSxcbiAgICAgICAgcHJvcE1ldGFkYXRhKHVwZGF0ZWRCeUtleSwge30pXG4gICAgICApXG4gICAgICAuYXBwbHkoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBpbmRleDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIC4uLm1vZGVsczogQ29uc3RydWN0b3I8TT5bXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbmRleGVzOiBDcmVhdGVJbmRleFJlcXVlc3RbXSA9IGdlbmVyYXRlSW5kZXhlcyhtb2RlbHMpO1xuICAgIGZvciAoY29uc3QgaW5kZXggb2YgaW5kZXhlcykge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5uYXRpdmUuY3JlYXRlSW5kZXgoaW5kZXgpO1xuICAgICAgY29uc3QgeyByZXN1bHQsIGlkLCBuYW1lIH0gPSByZXM7XG4gICAgICBpZiAocmVzdWx0ID09PSBcImV4aXN0aW5nXCIpXG4gICAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKGBJbmRleCBmb3IgdGFibGUgJHtuYW1lfSB3aXRoIGlkICR7aWR9YCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEluc2VydFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmluc2VydChtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5vaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGluc2VydCBkb2MgaWQ6ICR7aWR9IGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEobW9kZWwsIHJlc3BvbnNlLnJldik7XG4gIH1cblxuICBhc3luYyBjcmVhdGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmJ1bGsoeyBkb2NzOiBtb2RlbHMgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGlmICghcmVzcG9uc2UuZXZlcnkoKHIpID0+ICFyLmVycm9yKSkge1xuICAgICAgY29uc3QgZXJyb3JzID0gcmVzcG9uc2UucmVkdWNlKChhY2N1bTogc3RyaW5nW10sIGVsLCBpKSA9PiB7XG4gICAgICAgIGlmIChlbC5lcnJvcilcbiAgICAgICAgICBhY2N1bS5wdXNoKFxuICAgICAgICAgICAgYGVsICR7aX06ICR7ZWwuZXJyb3J9JHtlbC5yZWFzb24gPyBgIC0gJHtlbC5yZWFzb259YCA6IFwiXCJ9YFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGVycm9ycy5qb2luKFwiXFxuXCIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NdWx0aXBsZU1ldGFkYXRhKFxuICAgICAgbW9kZWxzLFxuICAgICAgcmVzcG9uc2UubWFwKChyKSA9PiByLnJldiBhcyBzdHJpbmcpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJlYWQoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBfaWQgPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgbGV0IHJlY29yZDogRG9jdW1lbnRHZXRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVjb3JkID0gYXdhaXQgdGhpcy5uYXRpdmUuZ2V0KF9pZCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlY29yZCwgcmVjb3JkLl9yZXYpO1xuICB9XG5cbiAgYXN5bmMgcmVhZEFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IChzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpW11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5uYXRpdmUuZmV0Y2goXG4gICAgICB7IGtleXM6IGlkcy5tYXAoKGlkKSA9PiB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCBhcyBhbnkpKSB9LFxuICAgICAge31cbiAgICApO1xuICAgIHJldHVybiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICBpZiAoKHIgYXMgYW55KS5lcnJvcikgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKHIgYXMgYW55KS5lcnJvcik7XG4gICAgICBpZiAoKHIgYXMgYW55KS5kb2MpIHtcbiAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgKHIgYXMgYW55KS5kb2MpO1xuICAgICAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZXMsIChyIGFzIGFueSkuZG9jW0NvdWNoREJLZXlzLlJFVl0pO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRJbnNlcnRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5pbnNlcnQobW9kZWwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2Uub2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byB1cGRhdGUgZG9jIGlkOiAke2lkfSBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKG1vZGVsLCByZXNwb25zZS5yZXYpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHsgZG9jczogbW9kZWxzIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBpZiAoIXJlc3BvbnNlLmV2ZXJ5KChyKSA9PiAhci5lcnJvcikpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHJlc3BvbnNlLnJlZHVjZSgoYWNjdW06IHN0cmluZ1tdLCBlbCwgaSkgPT4ge1xuICAgICAgICBpZiAoZWwuZXJyb3IpXG4gICAgICAgICAgYWNjdW0ucHVzaChcbiAgICAgICAgICAgIGBlbCAke2l9OiAke2VsLmVycm9yfSR7ZWwucmVhc29uID8gYCAtICR7ZWwucmVhc29ufWAgOiBcIlwifWBcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LCBbXSk7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlcnJvcnMuam9pbihcIlxcblwiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTXVsdGlwbGVNZXRhZGF0YShcbiAgICAgIG1vZGVscyxcbiAgICAgIHJlc3BvbnNlLm1hcCgocikgPT4gci5yZXYgYXMgc3RyaW5nKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBfaWQgPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgbGV0IHJlY29yZDogRG9jdW1lbnRHZXRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVjb3JkID0gYXdhaXQgdGhpcy5uYXRpdmUuZ2V0KF9pZCk7XG4gICAgICBhd2FpdCB0aGlzLm5hdGl2ZS5kZXN0cm95KF9pZCwgcmVjb3JkLl9yZXYpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZWNvcmQsIHJlY29yZC5fcmV2KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IChzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpW11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5uYXRpdmUuZmV0Y2goXG4gICAgICB7IGtleXM6IGlkcy5tYXAoKGlkKSA9PiB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCBhcyBhbnkpKSB9LFxuICAgICAge31cbiAgICApO1xuICAgIGNvbnN0IGRlbGV0aW9uOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7XG4gICAgICBkb2NzOiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICAgIChyIGFzIGFueSlbQ291Y2hEQktleXMuREVMRVRFRF0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIGRlbGV0aW9uLmZvckVhY2goKGQ6IERvY3VtZW50QnVsa1Jlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZC5lcnJvcikgY29uc29sZS5lcnJvcihkLmVycm9yKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgaWYgKChyIGFzIGFueSkuZXJyb3IpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKChyIGFzIGFueSkuZXJyb3IpO1xuICAgICAgaWYgKChyIGFzIGFueSkuZG9jKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IE9iamVjdC5hc3NpZ24oe30sIChyIGFzIGFueSkuZG9jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVzLCAociBhcyBhbnkpLmRvY1tDb3VjaERCS2V5cy5SRVZdKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIGJlIGltcG9zc2libGVcIik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByYXc8Vj4ocmF3SW5wdXQ6IE1hbmdvUXVlcnksIHByb2Nlc3MgPSB0cnVlKTogUHJvbWlzZTxWPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBNYW5nb1Jlc3BvbnNlPFY+ID0gYXdhaXQgdGhpcy5uYXRpdmUuZmluZChyYXdJbnB1dCk7XG4gICAgICBpZiAocmVzcG9uc2Uud2FybmluZykgY29uc29sZS53YXJuKHJlc3BvbnNlLndhcm5pbmcpO1xuICAgICAgaWYgKHByb2Nlc3MpIHJldHVybiByZXNwb25zZS5kb2NzIGFzIFY7XG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgVjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY29ubmVjdChcbiAgICB1c2VyOiBzdHJpbmcsXG4gICAgcGFzczogc3RyaW5nLFxuICAgIGhvc3QgPSBcImxvY2FsaG9zdDo1OTg0XCIsXG4gICAgcHJvdG9jb2w6IFwiaHR0cFwiIHwgXCJodHRwc1wiID0gXCJodHRwXCJcbiAgKTogU2VydmVyU2NvcGUge1xuICAgIHJldHVybiBOYW5vKGAke3Byb3RvY29sfTovLyR7dXNlcn06JHtwYXNzfUAke2hvc3R9YCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgY3JlYXRlRGF0YWJhc2UoY29uOiBTZXJ2ZXJTY29wZSwgbmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHJlc3VsdDogYW55O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjb24uZGIuY3JlYXRlKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgY29uc3QgeyBvaywgZXJyb3IsIHJlYXNvbiB9ID0gcmVzdWx0O1xuICAgIGlmICghb2spIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZXJyb3IgYXMgc3RyaW5nLCByZWFzb24pO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGRlbGV0ZURhdGFiYXNlKGNvbjogU2VydmVyU2NvcGUsIG5hbWU6IHN0cmluZykge1xuICAgIGxldCByZXN1bHQ7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbi5kYi5kZXN0cm95KG5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgY29uc3QgeyBvayB9ID0gcmVzdWx0O1xuICAgIGlmICghb2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGRlbGV0ZSBkYXRhYmFzZSB3aXRoIG5hbWUgJHtuYW1lfWApO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZVVzZXIoXG4gICAgY29uOiBTZXJ2ZXJTY29wZSxcbiAgICBkYk5hbWU6IHN0cmluZyxcbiAgICB1c2VyOiBzdHJpbmcsXG4gICAgcGFzczogc3RyaW5nLFxuICAgIHJvbGVzOiBzdHJpbmdbXSA9IFtcInJlYWRlclwiLCBcIndyaXRlclwiXVxuICApIHtcbiAgICBjb25zdCB1c2VycyA9IGNvbi5kYi51c2UoXCJfdXNlcnNcIik7XG4gICAgY29uc3QgdXNyID0ge1xuICAgICAgX2lkOiBcIm9yZy5jb3VjaGRiLnVzZXI6XCIgKyB1c2VyLFxuICAgICAgbmFtZTogdXNlcixcbiAgICAgIHBhc3N3b3JkOiBwYXNzLFxuICAgICAgcm9sZXM6IHJvbGVzLFxuICAgICAgdHlwZTogXCJ1c2VyXCIsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3JlYXRlZDogRG9jdW1lbnRJbnNlcnRSZXNwb25zZSA9IGF3YWl0IHVzZXJzLmluc2VydChcbiAgICAgICAgdXNyIGFzIE1heWJlRG9jdW1lbnRcbiAgICAgICk7XG4gICAgICBjb25zdCB7IG9rIH0gPSBjcmVhdGVkO1xuICAgICAgaWYgKCFvaykgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgdXNlciAke3VzZXJ9YCk7XG4gICAgICBjb25zdCBzZWN1cml0eTogYW55ID0gYXdhaXQgY29uLnJlcXVlc3Qoe1xuICAgICAgICBkYjogZGJOYW1lLFxuICAgICAgICBtZXRob2Q6IFwicHV0XCIsXG4gICAgICAgIHBhdGg6IFwiX3NlY3VyaXR5XCIsXG4gICAgICAgIC8vIGhlYWRlcnM6IHtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gfSxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGFkbWluczoge1xuICAgICAgICAgICAgbmFtZXM6IFt1c2VyXSxcbiAgICAgICAgICAgIHJvbGVzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lbWJlcnM6IHtcbiAgICAgICAgICAgIG5hbWVzOiBbdXNlcl0sXG4gICAgICAgICAgICByb2xlczogcm9sZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFzZWN1cml0eS5vaylcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCB0byBhdXRob3JpemUgdXNlciAke3VzZXJ9IHRvIGRiICR7ZGJOYW1lfWBcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIGRlbGV0ZVVzZXIoY29uOiBTZXJ2ZXJTY29wZSwgZGJOYW1lOiBzdHJpbmcsIHVzZXI6IHN0cmluZykge1xuICAgIGNvbnN0IHVzZXJzID0gY29uLmRiLnVzZShcIl91c2Vyc1wiKTtcbiAgICBjb25zdCBpZCA9IFwib3JnLmNvdWNoZGIudXNlcjpcIiArIHVzZXI7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVzciA9IGF3YWl0IHVzZXJzLmdldChpZCk7XG4gICAgICBhd2FpdCB1c2Vycy5kZXN0cm95KGlkLCB1c3IuX3Jldik7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/lib/adapter.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { Context } from "@decaf-ts/db-decorators";
|
|
1
2
|
import "reflect-metadata";
|
|
2
3
|
import { CouchDBAdapter, MangoQuery } from "@decaf-ts/for-couchdb";
|
|
3
4
|
import { DocumentScope, ServerScope } from "nano";
|
|
4
|
-
import { User } from "@decaf-ts/core";
|
|
5
5
|
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import { NanoFlags } from "./types";
|
|
7
|
+
import { RelationsMetadata, Repo } from "@decaf-ts/core";
|
|
8
|
+
export declare function createdByOnNanoCreateUpdate<M extends Model, R extends Repo<M, C, F>, V extends RelationsMetadata, F extends NanoFlags, C extends Context<NanoFlags>>(this: R, context: Context<F>, data: V, key: keyof M, model: M): Promise<void>;
|
|
9
|
+
export declare class NanoAdapter extends CouchDBAdapter<DocumentScope<any>, NanoFlags, Context<NanoFlags>> {
|
|
10
|
+
constructor(scope: DocumentScope<any>, flavour?: string);
|
|
10
11
|
protected index<M extends Model>(...models: Constructor<M>[]): Promise<void>;
|
|
11
12
|
create(tableName: string, id: string | number, model: Record<string, any>): Promise<Record<string, any>>;
|
|
12
13
|
createAll(tableName: string, ids: string[] | number[], models: Record<string, any>[]): Promise<Record<string, any>[]>;
|
|
@@ -2,4 +2,6 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
2
2
|
import { MangoQuery } from "@decaf-ts/for-couchdb";
|
|
3
3
|
import { Adapter, Repository } from "@decaf-ts/core";
|
|
4
4
|
import { DocumentScope } from "nano";
|
|
5
|
-
|
|
5
|
+
import { NanoFlags } from "./types";
|
|
6
|
+
import { Context } from "@decaf-ts/db-decorators";
|
|
7
|
+
export type NanoRepository<M extends Model> = Repository<M, MangoQuery, Adapter<DocumentScope<any>, MangoQuery, NanoFlags, Context<NanoFlags>>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFub1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvTmFub1JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgTWFuZ29RdWVyeSB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IEFkYXB0ZXIsIFJlcG9zaXRvcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IERvY3VtZW50U2NvcGUgfSBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHsgTmFub0ZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuZXhwb3J0IHR5cGUgTmFub1JlcG9zaXRvcnk8TSBleHRlbmRzIE1vZGVsPiA9IFJlcG9zaXRvcnk8XG4gIE0sXG4gIE1hbmdvUXVlcnksXG4gIEFkYXB0ZXI8RG9jdW1lbnRTY29wZTxhbnk+LCBNYW5nb1F1ZXJ5LCBOYW5vRmxhZ3MsIENvbnRleHQ8TmFub0ZsYWdzPj5cbj47XG4iXX0=
|
package/lib/esm/adapter.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { Context } from "@decaf-ts/db-decorators";
|
|
1
2
|
import "reflect-metadata";
|
|
2
3
|
import { CouchDBAdapter, MangoQuery } from "@decaf-ts/for-couchdb";
|
|
3
4
|
import { DocumentScope, ServerScope } from "nano";
|
|
4
|
-
import { User } from "@decaf-ts/core";
|
|
5
5
|
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import { NanoFlags } from "./types";
|
|
7
|
+
import { RelationsMetadata, Repo } from "@decaf-ts/core";
|
|
8
|
+
export declare function createdByOnNanoCreateUpdate<M extends Model, R extends Repo<M, C, F>, V extends RelationsMetadata, F extends NanoFlags, C extends Context<NanoFlags>>(this: R, context: Context<F>, data: V, key: keyof M, model: M): Promise<void>;
|
|
9
|
+
export declare class NanoAdapter extends CouchDBAdapter<DocumentScope<any>, NanoFlags, Context<NanoFlags>> {
|
|
10
|
+
constructor(scope: DocumentScope<any>, flavour?: string);
|
|
10
11
|
protected index<M extends Model>(...models: Constructor<M>[]): Promise<void>;
|
|
11
12
|
create(tableName: string, id: string | number, model: Record<string, any>): Promise<Record<string, any>>;
|
|
12
13
|
createAll(tableName: string, ids: string[] | number[], models: Record<string, any>[]): Promise<Record<string, any>[]>;
|
package/lib/esm/adapter.js
CHANGED
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
import { ConflictError, InternalError } from "@decaf-ts/db-decorators";
|
|
1
|
+
import { ConflictError, InternalError, onCreate, } from "@decaf-ts/db-decorators";
|
|
2
2
|
import "reflect-metadata";
|
|
3
3
|
import { CouchDBAdapter, CouchDBKeys, generateIndexes, } from "@decaf-ts/for-couchdb";
|
|
4
4
|
import Nano from "nano";
|
|
5
|
-
import {
|
|
5
|
+
import { Decoration, propMetadata, } from "@decaf-ts/decorator-validation";
|
|
6
|
+
import { PersistenceKeys, Repository, UnsupportedError, } from "@decaf-ts/core";
|
|
7
|
+
export async function createdByOnNanoCreateUpdate(context, data, key, model) {
|
|
8
|
+
const user = context.get("user");
|
|
9
|
+
if (!user || !user.name)
|
|
10
|
+
throw new UnsupportedError("This adapter does not support user identification");
|
|
11
|
+
model[key] = user.name;
|
|
12
|
+
}
|
|
13
|
+
const createdByKey = Repository.key(PersistenceKeys.CREATED_BY);
|
|
14
|
+
const updatedByKey = Repository.key(PersistenceKeys.UPDATED_BY);
|
|
6
15
|
export class NanoAdapter extends CouchDBAdapter {
|
|
7
|
-
constructor(scope, flavour) {
|
|
16
|
+
constructor(scope, flavour = "nano") {
|
|
8
17
|
super(scope, flavour);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
roles: user.userCtx.roles,
|
|
18
|
-
affiliations: user.userCtx.affiliations,
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
throw this.parseError(e);
|
|
23
|
-
}
|
|
24
|
-
return this._user;
|
|
18
|
+
Decoration.flavouredAs("nano")
|
|
19
|
+
.for(createdByKey)
|
|
20
|
+
.define(onCreate(createdByOnNanoCreateUpdate), propMetadata(createdByKey, {}))
|
|
21
|
+
.apply();
|
|
22
|
+
Decoration.flavouredAs("nano")
|
|
23
|
+
.for(updatedByKey)
|
|
24
|
+
.define(onCreate(createdByOnNanoCreateUpdate), propMetadata(updatedByKey, {}))
|
|
25
|
+
.apply();
|
|
25
26
|
}
|
|
26
27
|
async index(...models) {
|
|
27
28
|
const indexes = generateIndexes(models);
|
|
@@ -240,4 +241,4 @@ export class NanoAdapter extends CouchDBAdapter {
|
|
|
240
241
|
}
|
|
241
242
|
}
|
|
242
243
|
}
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFFWCxlQUFlLEdBR2hCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBVXhCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0QyxNQUFNLE9BQU8sV0FBWSxTQUFRLGNBQWtDO0lBR2pFLFlBQVksS0FBeUIsRUFBRSxPQUFlO1FBQ3BELEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVTLEtBQUssQ0FBQyxJQUFJO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFbEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQTRCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDO2dCQUNwQixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO2dCQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUN6QixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ3hDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7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TUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25mbGljdEVycm9yLCBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5pbXBvcnQge1xuICBDb3VjaERCQWRhcHRlcixcbiAgQ291Y2hEQktleXMsXG4gIENyZWF0ZUluZGV4UmVxdWVzdCxcbiAgZ2VuZXJhdGVJbmRleGVzLFxuICBNYW5nb1F1ZXJ5LFxuICBNYW5nb1Jlc3BvbnNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgTmFubyBmcm9tIFwibmFub1wiO1xuaW1wb3J0IHtcbiAgRGF0YWJhc2VTZXNzaW9uUmVzcG9uc2UsXG4gIERvY3VtZW50QnVsa1Jlc3BvbnNlLFxuICBEb2N1bWVudEdldFJlc3BvbnNlLFxuICBEb2N1bWVudEluc2VydFJlc3BvbnNlLFxuICBEb2N1bWVudFNjb3BlLFxuICBNYXliZURvY3VtZW50LFxuICBTZXJ2ZXJTY29wZSxcbn0gZnJvbSBcIm5hbm9cIjtcbmltcG9ydCB7IFVzZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGNsYXNzIE5hbm9BZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXI8RG9jdW1lbnRTY29wZTxhbnk+PiB7XG4gIHByaXZhdGUgX3VzZXI/OiBVc2VyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBEb2N1bWVudFNjb3BlPGFueT4sIGZsYXZvdXI6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBmbGF2b3VyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1c2VyKCk6IFByb21pc2U8VXNlcj4ge1xuICAgIGlmICh0aGlzLl91c2VyKSByZXR1cm4gdGhpcy5fdXNlcjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB1c2VyOiBEYXRhYmFzZVNlc3Npb25SZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLnNlc3Npb24oKTtcbiAgICAgIHRoaXMuX3VzZXIgPSBuZXcgVXNlcih7XG4gICAgICAgIGlkOiB1c2VyLnVzZXJDdHgubmFtZSxcbiAgICAgICAgcm9sZXM6IHVzZXIudXNlckN0eC5yb2xlcyxcbiAgICAgICAgYWZmaWxpYXRpb25zOiB1c2VyLnVzZXJDdHguYWZmaWxpYXRpb25zLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl91c2VyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGluZGV4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgLi4ubW9kZWxzOiBDb25zdHJ1Y3RvcjxNPltdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGluZGV4ZXM6IENyZWF0ZUluZGV4UmVxdWVzdFtdID0gZ2VuZXJhdGVJbmRleGVzKG1vZGVscyk7XG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBpbmRleGVzKSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLm5hdGl2ZS5jcmVhdGVJbmRleChpbmRleCk7XG4gICAgICBjb25zdCB7IHJlc3VsdCwgaWQsIG5hbWUgfSA9IHJlcztcbiAgICAgIGlmIChyZXN1bHQgPT09IFwiZXhpc3RpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoYEluZGV4IGZvciB0YWJsZSAke25hbWV9IHdpdGggaWQgJHtpZH1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50SW5zZXJ0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuaW5zZXJ0KG1vZGVsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gaW5zZXJ0IGRvYyBpZDogJHtpZH0gaW4gdGFibGUgJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShtb2RlbCwgcmVzcG9uc2UucmV2KTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IHN0cmluZ1tdIHwgbnVtYmVyW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50QnVsa1Jlc3BvbnNlW107XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7IGRvY3M6IG1vZGVscyB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgaWYgKCFyZXNwb25zZS5ldmVyeSgocikgPT4gIXIuZXJyb3IpKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSByZXNwb25zZS5yZWR1Y2UoKGFjY3VtOiBzdHJpbmdbXSwgZWwsIGkpID0+IHtcbiAgICAgICAgaWYgKGVsLmVycm9yKVxuICAgICAgICAgIGFjY3VtLnB1c2goXG4gICAgICAgICAgICBgZWwgJHtpfTogJHtlbC5lcnJvcn0ke2VsLnJlYXNvbiA/IGAgLSAke2VsLnJlYXNvbn1gIDogXCJcIn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwgW10pO1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZXJyb3JzLmpvaW4oXCJcXG5cIikpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzc2lnbk11bHRpcGxlTWV0YWRhdGEoXG4gICAgICBtb2RlbHMsXG4gICAgICByZXNwb25zZS5tYXAoKHIpID0+IHIucmV2IGFzIHN0cmluZylcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVhZChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IF9pZCA9IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkKTtcbiAgICBsZXQgcmVjb3JkOiBEb2N1bWVudEdldFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZWNvcmQgPSBhd2FpdCB0aGlzLm5hdGl2ZS5nZXQoX2lkKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVjb3JkLCByZWNvcmQuX3Jldik7XG4gIH1cblxuICBhc3luYyByZWFkQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogKHN0cmluZyB8IG51bWJlciB8IGJpZ2ludClbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLm5hdGl2ZS5mZXRjaChcbiAgICAgIHsga2V5czogaWRzLm1hcCgoaWQpID0+IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkIGFzIGFueSkpIH0sXG4gICAgICB7fVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgIGlmICgociBhcyBhbnkpLmVycm9yKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigociBhcyBhbnkpLmVycm9yKTtcbiAgICAgIGlmICgociBhcyBhbnkpLmRvYykge1xuICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHt9LCAociBhcyBhbnkpLmRvYyk7XG4gICAgICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlcywgKHIgYXMgYW55KS5kb2NbQ291Y2hEQktleXMuUkVWXSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEluc2VydFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmluc2VydChtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5vaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHVwZGF0ZSBkb2MgaWQ6ICR7aWR9IGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEobW9kZWwsIHJlc3BvbnNlLnJldik7XG4gIH1cblxuICBhc3luYyB1cGRhdGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgbGV0IHJlc3BvbnNlOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMubmF0aXZlLmJ1bGsoeyBkb2NzOiBtb2RlbHMgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGlmICghcmVzcG9uc2UuZXZlcnkoKHIpID0+ICFyLmVycm9yKSkge1xuICAgICAgY29uc3QgZXJyb3JzID0gcmVzcG9uc2UucmVkdWNlKChhY2N1bTogc3RyaW5nW10sIGVsLCBpKSA9PiB7XG4gICAgICAgIGlmIChlbC5lcnJvcilcbiAgICAgICAgICBhY2N1bS5wdXNoKFxuICAgICAgICAgICAgYGVsICR7aX06ICR7ZWwuZXJyb3J9JHtlbC5yZWFzb24gPyBgIC0gJHtlbC5yZWFzb259YCA6IFwiXCJ9YFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGVycm9ycy5qb2luKFwiXFxuXCIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NdWx0aXBsZU1ldGFkYXRhKFxuICAgICAgbW9kZWxzLFxuICAgICAgcmVzcG9uc2UubWFwKChyKSA9PiByLnJldiBhcyBzdHJpbmcpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IF9pZCA9IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkKTtcbiAgICBsZXQgcmVjb3JkOiBEb2N1bWVudEdldFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZWNvcmQgPSBhd2FpdCB0aGlzLm5hdGl2ZS5nZXQoX2lkKTtcbiAgICAgIGF3YWl0IHRoaXMubmF0aXZlLmRlc3Ryb3koX2lkLCByZWNvcmQuX3Jldik7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlY29yZCwgcmVjb3JkLl9yZXYpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogKHN0cmluZyB8IG51bWJlciB8IGJpZ2ludClbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLm5hdGl2ZS5mZXRjaChcbiAgICAgIHsga2V5czogaWRzLm1hcCgoaWQpID0+IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkIGFzIGFueSkpIH0sXG4gICAgICB7fVxuICAgICk7XG4gICAgY29uc3QgZGVsZXRpb246IERvY3VtZW50QnVsa1Jlc3BvbnNlW10gPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHtcbiAgICAgIGRvY3M6IHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgICAgKHIgYXMgYW55KVtDb3VjaERCS2V5cy5ERUxFVEVEXSA9IHRydWU7XG4gICAgICAgIHJldHVybiByO1xuICAgICAgfSksXG4gICAgfSk7XG4gICAgZGVsZXRpb24uZm9yRWFjaCgoZDogRG9jdW1lbnRCdWxrUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChkLmVycm9yKSBjb25zb2xlLmVycm9yKGQuZXJyb3IpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICBpZiAoKHIgYXMgYW55KS5lcnJvcikgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKHIgYXMgYW55KS5lcnJvcik7XG4gICAgICBpZiAoKHIgYXMgYW55KS5kb2MpIHtcbiAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgKHIgYXMgYW55KS5kb2MpO1xuICAgICAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZXMsIChyIGFzIGFueSkuZG9jW0NvdWNoREJLZXlzLlJFVl0pO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJhdzxWPihyYXdJbnB1dDogTWFuZ29RdWVyeSwgcHJvY2VzcyA9IHRydWUpOiBQcm9taXNlPFY+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IE1hbmdvUmVzcG9uc2U8Vj4gPSBhd2FpdCB0aGlzLm5hdGl2ZS5maW5kKHJhd0lucHV0KTtcbiAgICAgIGlmIChyZXNwb25zZS53YXJuaW5nKSBjb25zb2xlLndhcm4ocmVzcG9uc2Uud2FybmluZyk7XG4gICAgICBpZiAocHJvY2VzcykgcmV0dXJuIHJlc3BvbnNlLmRvY3MgYXMgVjtcbiAgICAgIHJldHVybiByZXNwb25zZSBhcyBWO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjb25uZWN0KFxuICAgIHVzZXI6IHN0cmluZyxcbiAgICBwYXNzOiBzdHJpbmcsXG4gICAgaG9zdCA9IFwibG9jYWxob3N0OjU5ODRcIixcbiAgICBwcm90b2NvbDogXCJodHRwXCIgfCBcImh0dHBzXCIgPSBcImh0dHBcIlxuICApOiBTZXJ2ZXJTY29wZSB7XG4gICAgcmV0dXJuIE5hbm8oYCR7cHJvdG9jb2x9Oi8vJHt1c2VyfToke3Bhc3N9QCR7aG9zdH1gKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGVEYXRhYmFzZShjb246IFNlcnZlclNjb3BlLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbi5kYi5jcmVhdGUobmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBjb25zdCB7IG9rLCBlcnJvciwgcmVhc29uIH0gPSByZXN1bHQ7XG4gICAgaWYgKCFvaykgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlcnJvciBhcyBzdHJpbmcsIHJlYXNvbik7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZGVsZXRlRGF0YWJhc2UoY29uOiBTZXJ2ZXJTY29wZSwgbmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY29uLmRiLmRlc3Ryb3kobmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBjb25zdCB7IG9rIH0gPSByZXN1bHQ7XG4gICAgaWYgKCFvaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gZGVsZXRlIGRhdGFiYXNlIHdpdGggbmFtZSAke25hbWV9YCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgY3JlYXRlVXNlcihcbiAgICBjb246IFNlcnZlclNjb3BlLFxuICAgIGRiTmFtZTogc3RyaW5nLFxuICAgIHVzZXI6IHN0cmluZyxcbiAgICBwYXNzOiBzdHJpbmcsXG4gICAgcm9sZXM6IHN0cmluZ1tdID0gW1wicmVhZGVyXCIsIFwid3JpdGVyXCJdXG4gICkge1xuICAgIGNvbnN0IHVzZXJzID0gY29uLmRiLnVzZShcIl91c2Vyc1wiKTtcbiAgICBjb25zdCB1c3IgPSB7XG4gICAgICBfaWQ6IFwib3JnLmNvdWNoZGIudXNlcjpcIiArIHVzZXIsXG4gICAgICBuYW1lOiB1c2VyLFxuICAgICAgcGFzc3dvcmQ6IHBhc3MsXG4gICAgICByb2xlczogcm9sZXMsXG4gICAgICB0eXBlOiBcInVzZXJcIixcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjcmVhdGVkOiBEb2N1bWVudEluc2VydFJlc3BvbnNlID0gYXdhaXQgdXNlcnMuaW5zZXJ0KFxuICAgICAgICB1c3IgYXMgTWF5YmVEb2N1bWVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHsgb2sgfSA9IGNyZWF0ZWQ7XG4gICAgICBpZiAoIW9rKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSB1c2VyICR7dXNlcn1gKTtcbiAgICAgIGNvbnN0IHNlY3VyaXR5OiBhbnkgPSBhd2FpdCBjb24ucmVxdWVzdCh7XG4gICAgICAgIGRiOiBkYk5hbWUsXG4gICAgICAgIG1ldGhvZDogXCJwdXRcIixcbiAgICAgICAgcGF0aDogXCJfc2VjdXJpdHlcIixcbiAgICAgICAgLy8gaGVhZGVyczoge1xuICAgICAgICAvL1xuICAgICAgICAvLyB9LFxuICAgICAgICBib2R5OiB7XG4gICAgICAgICAgYWRtaW5zOiB7XG4gICAgICAgICAgICBuYW1lczogW3VzZXJdLFxuICAgICAgICAgICAgcm9sZXM6IFtdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWVtYmVyczoge1xuICAgICAgICAgICAgbmFtZXM6IFt1c2VyXSxcbiAgICAgICAgICAgIHJvbGVzOiByb2xlcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBpZiAoIXNlY3VyaXR5Lm9rKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIGF1dGhvcml6ZSB1c2VyICR7dXNlcn0gdG8gZGIgJHtkYk5hbWV9YFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZGVsZXRlVXNlcihjb246IFNlcnZlclNjb3BlLCBkYk5hbWU6IHN0cmluZywgdXNlcjogc3RyaW5nKSB7XG4gICAgY29uc3QgdXNlcnMgPSBjb24uZGIudXNlKFwiX3VzZXJzXCIpO1xuICAgIGNvbnN0IGlkID0gXCJvcmcuY291Y2hkYi51c2VyOlwiICsgdXNlcjtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXNyID0gYXdhaXQgdXNlcnMuZ2V0KGlkKTtcbiAgICAgIGF3YWl0IHVzZXJzLmRlc3Ryb3koaWQsIHVzci5fcmV2KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBRWIsYUFBYSxFQUNiLFFBQVEsR0FDVCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLGNBQWMsRUFDZCxXQUFXLEVBRVgsZUFBZSxHQUdoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQVN4QixPQUFPLEVBRUwsVUFBVSxFQUVWLFlBQVksR0FDYixNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLE9BQU8sRUFDTCxlQUFlLEVBR2YsVUFBVSxFQUNWLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsMkJBQTJCLENBUS9DLE9BQW1CLEVBQ25CLElBQU8sRUFDUCxHQUFZLEVBQ1osS0FBUTtJQUVSLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1FBQ3JCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FDeEIsbURBQW1ELENBQ3BELENBQUM7SUFDSixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQXFCLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRWhFLE1BQU0sT0FBTyxXQUFZLFNBQVEsY0FJaEM7SUFDQyxZQUFZLEtBQXlCLEVBQUUsVUFBa0IsTUFBTTtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2FBQzNCLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDakIsTUFBTSxDQUNMLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxFQUNyQyxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUMvQjthQUNBLEtBQUssRUFBRSxDQUFDO1FBRVgsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7YUFDM0IsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUNqQixNQUFNLENBQ0wsUUFBUSxDQUFDLDJCQUEyQixDQUFDLEVBQ3JDLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQy9CO2FBQ0EsS0FBSyxFQUFFLENBQUM7SUFDYixDQUFDO0lBRVMsS0FBSyxDQUFDLEtBQUssQ0FDbkIsR0FBRyxNQUF3QjtRQUUzQixNQUFNLE9BQU8sR0FBeUIsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDakMsSUFBSSxNQUFNLEtBQUssVUFBVTtnQkFDdkIsTUFBTSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsSUFBSSxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUNWLFNBQWlCLEVBQ2pCLEVBQW1CLEVBQ25CLEtBQTBCO1FBRTFCLElBQUksUUFBZ0MsQ0FBQztRQUNyQyxJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNkLE1BQU0sSUFBSSxhQUFhLENBQ3JCLDRCQUE0QixFQUFFLGFBQWEsU0FBUyxFQUFFLENBQ3ZELENBQUM7UUFDSixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FDYixTQUFpQixFQUNqQixHQUF3QixFQUN4QixNQUE2QjtRQUU3QixJQUFJLFFBQWdDLENBQUM7UUFDckMsSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFlLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN4RCxJQUFJLEVBQUUsQ0FBQyxLQUFLO29CQUNWLEtBQUssQ0FBQyxJQUFJLENBQ1IsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVELENBQUM7Z0JBQ0osT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDUCxNQUFNLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQ2hDLE1BQU0sRUFDTixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBYSxDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FDUixTQUFpQixFQUNqQixFQUFtQjtRQUVuQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLE1BQTJCLENBQUM7UUFDaEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FDWCxTQUFpQixFQUNqQixHQUFpQztRQUVqQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNyQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFTLENBQUMsQ0FBQyxFQUFFLEVBQ2hFLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUssQ0FBUyxDQUFDLEtBQUs7Z0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBRSxDQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSyxDQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFHLENBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRyxDQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFDRCxNQUFNLElBQUksYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FDVixTQUFpQixFQUNqQixFQUFtQixFQUNuQixLQUEwQjtRQUUxQixJQUFJLFFBQWdDLENBQUM7UUFDckMsSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDZCxNQUFNLElBQUksYUFBYSxDQUNyQiw0QkFBNEIsRUFBRSxhQUFhLFNBQVMsRUFBRSxDQUN2RCxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQ2IsU0FBaUIsRUFDakIsR0FBd0IsRUFDeEIsTUFBNkI7UUFFN0IsSUFBSSxRQUFnQyxDQUFDO1FBQ3JDLElBQUksQ0FBQztZQUNILFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBZSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDeEQsSUFBSSxFQUFFLENBQUMsS0FBSztvQkFDVixLQUFLLENBQUMsSUFBSSxDQUNSLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUM1RCxDQUFDO2dCQUNKLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsTUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUNoQyxNQUFNLEVBQ04sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQWEsQ0FBQyxDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQ1YsU0FBaUIsRUFDakIsRUFBbUI7UUFFbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUEyQixDQUFDO1FBQ2hDLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUNiLFNBQWlCLEVBQ2pCLEdBQWlDO1FBRWpDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ3JDLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEVBQVMsQ0FBQyxDQUFDLEVBQUUsRUFDaEUsRUFBRSxDQUNILENBQUM7UUFDRixNQUFNLFFBQVEsR0FBMkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM5RCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDMUIsQ0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQXVCLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsQ0FBQyxLQUFLO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUssQ0FBUyxDQUFDLEtBQUs7Z0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBRSxDQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSyxDQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFHLENBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRyxDQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFDRCxNQUFNLElBQUksYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBSSxRQUFvQixFQUFFLE9BQU8sR0FBRyxJQUFJO1FBQy9DLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFxQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BFLElBQUksUUFBUSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckQsSUFBSSxPQUFPO2dCQUFFLE9BQU8sUUFBUSxDQUFDLElBQVMsQ0FBQztZQUN2QyxPQUFPLFFBQWEsQ0FBQztRQUN2QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUNaLElBQVksRUFDWixJQUFZLEVBQ1osSUFBSSxHQUFHLGdCQUFnQixFQUN2QixXQUE2QixNQUFNO1FBRW5DLE9BQU8sSUFBSSxDQUFDLEdBQUcsUUFBUSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBZ0IsRUFBRSxJQUFZO1FBQ3hELElBQUksTUFBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxFQUFFO1lBQUUsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBZ0IsRUFBRSxJQUFZO1FBQ3hELElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxFQUFFO1lBQ0wsTUFBTSxJQUFJLGFBQWEsQ0FBQyx1Q0FBdUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQ3JCLEdBQWdCLEVBQ2hCLE1BQWMsRUFDZCxJQUFZLEVBQ1osSUFBWSxFQUNaLFFBQWtCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztRQUV0QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxNQUFNLEdBQUcsR0FBRztZQUNWLEdBQUcsRUFBRSxtQkFBbUIsR0FBRyxJQUFJO1lBQy9CLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxNQUFNO1NBQ2IsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUEyQixNQUFNLEtBQUssQ0FBQyxNQUFNLENBQ3hELEdBQW9CLENBQ3JCLENBQUM7WUFDRixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxFQUFFO2dCQUFFLE1BQU0sSUFBSSxhQUFhLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbEUsTUFBTSxRQUFRLEdBQVEsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUN0QyxFQUFFLEVBQUUsTUFBTTtnQkFDVixNQUFNLEVBQUUsS0FBSztnQkFDYixJQUFJLEVBQUUsV0FBVztnQkFDakIsYUFBYTtnQkFDYixFQUFFO2dCQUNGLEtBQUs7Z0JBQ0wsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRTt3QkFDTixLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUM7d0JBQ2IsS0FBSyxFQUFFLEVBQUU7cUJBQ1Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQzt3QkFDYixLQUFLLEVBQUUsS0FBSztxQkFDYjtpQkFDRjthQUNGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDZCxNQUFNLElBQUksYUFBYSxDQUNyQiw0QkFBNEIsSUFBSSxVQUFVLE1BQU0sRUFBRSxDQUNuRCxDQUFDO1FBQ04sQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBZ0IsRUFBRSxNQUFjLEVBQUUsSUFBWTtRQUNwRSxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxNQUFNLEVBQUUsR0FBRyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmxpY3RFcnJvcixcbiAgQ29udGV4dCxcbiAgSW50ZXJuYWxFcnJvcixcbiAgb25DcmVhdGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuaW1wb3J0IHtcbiAgQ291Y2hEQkFkYXB0ZXIsXG4gIENvdWNoREJLZXlzLFxuICBDcmVhdGVJbmRleFJlcXVlc3QsXG4gIGdlbmVyYXRlSW5kZXhlcyxcbiAgTWFuZ29RdWVyeSxcbiAgTWFuZ29SZXNwb25zZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IE5hbm8gZnJvbSBcIm5hbm9cIjtcbmltcG9ydCB7XG4gIERvY3VtZW50QnVsa1Jlc3BvbnNlLFxuICBEb2N1bWVudEdldFJlc3BvbnNlLFxuICBEb2N1bWVudEluc2VydFJlc3BvbnNlLFxuICBEb2N1bWVudFNjb3BlLFxuICBNYXliZURvY3VtZW50LFxuICBTZXJ2ZXJTY29wZSxcbn0gZnJvbSBcIm5hbm9cIjtcbmltcG9ydCB7XG4gIENvbnN0cnVjdG9yLFxuICBEZWNvcmF0aW9uLFxuICBNb2RlbCxcbiAgcHJvcE1ldGFkYXRhLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBOYW5vRmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgUGVyc2lzdGVuY2VLZXlzLFxuICBSZWxhdGlvbnNNZXRhZGF0YSxcbiAgUmVwbyxcbiAgUmVwb3NpdG9yeSxcbiAgVW5zdXBwb3J0ZWRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVkQnlPbk5hbm9DcmVhdGVVcGRhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG88TSwgQywgRj4sXG4gIFYgZXh0ZW5kcyBSZWxhdGlvbnNNZXRhZGF0YSxcbiAgRiBleHRlbmRzIE5hbm9GbGFncyxcbiAgQyBleHRlbmRzIENvbnRleHQ8TmFub0ZsYWdzPixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8Rj4sXG4gIGRhdGE6IFYsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB1c2VyID0gY29udGV4dC5nZXQoXCJ1c2VyXCIpO1xuICBpZiAoIXVzZXIgfHwgIXVzZXIubmFtZSlcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIFwiVGhpcyBhZGFwdGVyIGRvZXMgbm90IHN1cHBvcnQgdXNlciBpZGVudGlmaWNhdGlvblwiXG4gICAgKTtcbiAgbW9kZWxba2V5XSA9IHVzZXIubmFtZSBhcyBNW3R5cGVvZiBrZXldO1xufVxuXG5jb25zdCBjcmVhdGVkQnlLZXkgPSBSZXBvc2l0b3J5LmtleShQZXJzaXN0ZW5jZUtleXMuQ1JFQVRFRF9CWSk7XG5jb25zdCB1cGRhdGVkQnlLZXkgPSBSZXBvc2l0b3J5LmtleShQZXJzaXN0ZW5jZUtleXMuVVBEQVRFRF9CWSk7XG5cbmV4cG9ydCBjbGFzcyBOYW5vQWRhcHRlciBleHRlbmRzIENvdWNoREJBZGFwdGVyPFxuICBEb2N1bWVudFNjb3BlPGFueT4sXG4gIE5hbm9GbGFncyxcbiAgQ29udGV4dDxOYW5vRmxhZ3M+XG4+IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IERvY3VtZW50U2NvcGU8YW55PiwgZmxhdm91cjogc3RyaW5nID0gXCJuYW5vXCIpIHtcbiAgICBzdXBlcihzY29wZSwgZmxhdm91cik7XG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhcIm5hbm9cIilcbiAgICAgIC5mb3IoY3JlYXRlZEJ5S2V5KVxuICAgICAgLmRlZmluZShcbiAgICAgICAgb25DcmVhdGUoY3JlYXRlZEJ5T25OYW5vQ3JlYXRlVXBkYXRlKSxcbiAgICAgICAgcHJvcE1ldGFkYXRhKGNyZWF0ZWRCeUtleSwge30pXG4gICAgICApXG4gICAgICAuYXBwbHkoKTtcblxuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoXCJuYW5vXCIpXG4gICAgICAuZm9yKHVwZGF0ZWRCeUtleSlcbiAgICAgIC5kZWZpbmUoXG4gICAgICAgIG9uQ3JlYXRlKGNyZWF0ZWRCeU9uTmFub0NyZWF0ZVVwZGF0ZSksXG4gICAgICAgIHByb3BNZXRhZGF0YSh1cGRhdGVkQnlLZXksIHt9KVxuICAgICAgKVxuICAgICAgLmFwcGx5KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5kZXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICAuLi5tb2RlbHM6IENvbnN0cnVjdG9yPE0+W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5kZXhlczogQ3JlYXRlSW5kZXhSZXF1ZXN0W10gPSBnZW5lcmF0ZUluZGV4ZXMobW9kZWxzKTtcbiAgICBmb3IgKGNvbnN0IGluZGV4IG9mIGluZGV4ZXMpIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubmF0aXZlLmNyZWF0ZUluZGV4KGluZGV4KTtcbiAgICAgIGNvbnN0IHsgcmVzdWx0LCBpZCwgbmFtZSB9ID0gcmVzO1xuICAgICAgaWYgKHJlc3VsdCA9PT0gXCJleGlzdGluZ1wiKVxuICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihgSW5kZXggZm9yIHRhYmxlICR7bmFtZX0gd2l0aCBpZCAke2lkfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRJbnNlcnRSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5pbnNlcnQobW9kZWwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2Uub2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBpbnNlcnQgZG9jIGlkOiAke2lkfSBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKG1vZGVsLCByZXNwb25zZS5yZXYpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGxldCByZXNwb25zZTogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHsgZG9jczogbW9kZWxzIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICBpZiAoIXJlc3BvbnNlLmV2ZXJ5KChyKSA9PiAhci5lcnJvcikpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHJlc3BvbnNlLnJlZHVjZSgoYWNjdW06IHN0cmluZ1tdLCBlbCwgaSkgPT4ge1xuICAgICAgICBpZiAoZWwuZXJyb3IpXG4gICAgICAgICAgYWNjdW0ucHVzaChcbiAgICAgICAgICAgIGBlbCAke2l9OiAke2VsLmVycm9yfSR7ZWwucmVhc29uID8gYCAtICR7ZWwucmVhc29ufWAgOiBcIlwifWBcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LCBbXSk7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlcnJvcnMuam9pbihcIlxcblwiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTXVsdGlwbGVNZXRhZGF0YShcbiAgICAgIG1vZGVscyxcbiAgICAgIHJlc3BvbnNlLm1hcCgocikgPT4gci5yZXYgYXMgc3RyaW5nKVxuICAgICk7XG4gIH1cblxuICBhc3luYyByZWFkKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgX2lkID0gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQpO1xuICAgIGxldCByZWNvcmQ6IERvY3VtZW50R2V0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlY29yZCA9IGF3YWl0IHRoaXMubmF0aXZlLmdldChfaWQpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShyZWNvcmQsIHJlY29yZC5fcmV2KTtcbiAgfVxuXG4gIGFzeW5jIHJlYWRBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiAoc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50KVtdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMubmF0aXZlLmZldGNoKFxuICAgICAgeyBrZXlzOiBpZHMubWFwKChpZCkgPT4gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQgYXMgYW55KSkgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgaWYgKChyIGFzIGFueSkuZXJyb3IpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKChyIGFzIGFueSkuZXJyb3IpO1xuICAgICAgaWYgKChyIGFzIGFueSkuZG9jKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IE9iamVjdC5hc3NpZ24oe30sIChyIGFzIGFueSkuZG9jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVzLCAociBhcyBhbnkpLmRvY1tDb3VjaERCS2V5cy5SRVZdKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIGJlIGltcG9zc2libGVcIik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50SW5zZXJ0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuaW5zZXJ0KG1vZGVsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gdXBkYXRlIGRvYyBpZDogJHtpZH0gaW4gdGFibGUgJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5hc3NpZ25NZXRhZGF0YShtb2RlbCwgcmVzcG9uc2UucmV2KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IHN0cmluZ1tdIHwgbnVtYmVyW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBsZXQgcmVzcG9uc2U6IERvY3VtZW50QnVsa1Jlc3BvbnNlW107XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7IGRvY3M6IG1vZGVscyB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgaWYgKCFyZXNwb25zZS5ldmVyeSgocikgPT4gIXIuZXJyb3IpKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSByZXNwb25zZS5yZWR1Y2UoKGFjY3VtOiBzdHJpbmdbXSwgZWwsIGkpID0+IHtcbiAgICAgICAgaWYgKGVsLmVycm9yKVxuICAgICAgICAgIGFjY3VtLnB1c2goXG4gICAgICAgICAgICBgZWwgJHtpfTogJHtlbC5lcnJvcn0ke2VsLnJlYXNvbiA/IGAgLSAke2VsLnJlYXNvbn1gIDogXCJcIn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwgW10pO1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZXJyb3JzLmpvaW4oXCJcXG5cIikpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzc2lnbk11bHRpcGxlTWV0YWRhdGEoXG4gICAgICBtb2RlbHMsXG4gICAgICByZXNwb25zZS5tYXAoKHIpID0+IHIucmV2IGFzIHN0cmluZylcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgX2lkID0gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQpO1xuICAgIGxldCByZWNvcmQ6IERvY3VtZW50R2V0UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlY29yZCA9IGF3YWl0IHRoaXMubmF0aXZlLmdldChfaWQpO1xuICAgICAgYXdhaXQgdGhpcy5uYXRpdmUuZGVzdHJveShfaWQsIHJlY29yZC5fcmV2KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXNzaWduTWV0YWRhdGEocmVjb3JkLCByZWNvcmQuX3Jldik7XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiAoc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50KVtdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMubmF0aXZlLmZldGNoKFxuICAgICAgeyBrZXlzOiBpZHMubWFwKChpZCkgPT4gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQgYXMgYW55KSkgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICBjb25zdCBkZWxldGlvbjogRG9jdW1lbnRCdWxrUmVzcG9uc2VbXSA9IGF3YWl0IHRoaXMubmF0aXZlLmJ1bGsoe1xuICAgICAgZG9jczogcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgICAociBhcyBhbnkpW0NvdWNoREJLZXlzLkRFTEVURURdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgICB9KSxcbiAgICB9KTtcbiAgICBkZWxldGlvbi5mb3JFYWNoKChkOiBEb2N1bWVudEJ1bGtSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGQuZXJyb3IpIGNvbnNvbGUuZXJyb3IoZC5lcnJvcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgIGlmICgociBhcyBhbnkpLmVycm9yKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigociBhcyBhbnkpLmVycm9yKTtcbiAgICAgIGlmICgociBhcyBhbnkpLmRvYykge1xuICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHt9LCAociBhcyBhbnkpLmRvYyk7XG4gICAgICAgIHJldHVybiB0aGlzLmFzc2lnbk1ldGFkYXRhKHJlcywgKHIgYXMgYW55KS5kb2NbQ291Y2hEQktleXMuUkVWXSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmF3PFY+KHJhd0lucHV0OiBNYW5nb1F1ZXJ5LCBwcm9jZXNzID0gdHJ1ZSk6IFByb21pc2U8Vj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZTogTWFuZ29SZXNwb25zZTxWPiA9IGF3YWl0IHRoaXMubmF0aXZlLmZpbmQocmF3SW5wdXQpO1xuICAgICAgaWYgKHJlc3BvbnNlLndhcm5pbmcpIGNvbnNvbGUud2FybihyZXNwb25zZS53YXJuaW5nKTtcbiAgICAgIGlmIChwcm9jZXNzKSByZXR1cm4gcmVzcG9uc2UuZG9jcyBhcyBWO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlIGFzIFY7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvbm5lY3QoXG4gICAgdXNlcjogc3RyaW5nLFxuICAgIHBhc3M6IHN0cmluZyxcbiAgICBob3N0ID0gXCJsb2NhbGhvc3Q6NTk4NFwiLFxuICAgIHByb3RvY29sOiBcImh0dHBcIiB8IFwiaHR0cHNcIiA9IFwiaHR0cFwiXG4gICk6IFNlcnZlclNjb3BlIHtcbiAgICByZXR1cm4gTmFubyhgJHtwcm90b2NvbH06Ly8ke3VzZXJ9OiR7cGFzc31AJHtob3N0fWApO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZURhdGFiYXNlKGNvbjogU2VydmVyU2NvcGUsIG5hbWU6IHN0cmluZykge1xuICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY29uLmRiLmNyZWF0ZShuYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGNvbnN0IHsgb2ssIGVycm9yLCByZWFzb24gfSA9IHJlc3VsdDtcbiAgICBpZiAoIW9rKSB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGVycm9yIGFzIHN0cmluZywgcmVhc29uKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGVEYXRhYmFzZShjb246IFNlcnZlclNjb3BlLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjb24uZGIuZGVzdHJveShuYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IENvdWNoREJBZGFwdGVyLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGNvbnN0IHsgb2sgfSA9IHJlc3VsdDtcbiAgICBpZiAoIW9rKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBkZWxldGUgZGF0YWJhc2Ugd2l0aCBuYW1lICR7bmFtZX1gKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGVVc2VyKFxuICAgIGNvbjogU2VydmVyU2NvcGUsXG4gICAgZGJOYW1lOiBzdHJpbmcsXG4gICAgdXNlcjogc3RyaW5nLFxuICAgIHBhc3M6IHN0cmluZyxcbiAgICByb2xlczogc3RyaW5nW10gPSBbXCJyZWFkZXJcIiwgXCJ3cml0ZXJcIl1cbiAgKSB7XG4gICAgY29uc3QgdXNlcnMgPSBjb24uZGIudXNlKFwiX3VzZXJzXCIpO1xuICAgIGNvbnN0IHVzciA9IHtcbiAgICAgIF9pZDogXCJvcmcuY291Y2hkYi51c2VyOlwiICsgdXNlcixcbiAgICAgIG5hbWU6IHVzZXIsXG4gICAgICBwYXNzd29yZDogcGFzcyxcbiAgICAgIHJvbGVzOiByb2xlcyxcbiAgICAgIHR5cGU6IFwidXNlclwiLFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNyZWF0ZWQ6IERvY3VtZW50SW5zZXJ0UmVzcG9uc2UgPSBhd2FpdCB1c2Vycy5pbnNlcnQoXG4gICAgICAgIHVzciBhcyBNYXliZURvY3VtZW50XG4gICAgICApO1xuICAgICAgY29uc3QgeyBvayB9ID0gY3JlYXRlZDtcbiAgICAgIGlmICghb2spIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIHVzZXIgJHt1c2VyfWApO1xuICAgICAgY29uc3Qgc2VjdXJpdHk6IGFueSA9IGF3YWl0IGNvbi5yZXF1ZXN0KHtcbiAgICAgICAgZGI6IGRiTmFtZSxcbiAgICAgICAgbWV0aG9kOiBcInB1dFwiLFxuICAgICAgICBwYXRoOiBcIl9zZWN1cml0eVwiLFxuICAgICAgICAvLyBoZWFkZXJzOiB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIH0sXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBhZG1pbnM6IHtcbiAgICAgICAgICAgIG5hbWVzOiBbdXNlcl0sXG4gICAgICAgICAgICByb2xlczogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZW1iZXJzOiB7XG4gICAgICAgICAgICBuYW1lczogW3VzZXJdLFxuICAgICAgICAgICAgcm9sZXM6IHJvbGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGlmICghc2VjdXJpdHkub2spXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBGYWlsZWQgdG8gYXV0aG9yaXplIHVzZXIgJHt1c2VyfSB0byBkYiAke2RiTmFtZX1gXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBDb3VjaERCQWRhcHRlci5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGVVc2VyKGNvbjogU2VydmVyU2NvcGUsIGRiTmFtZTogc3RyaW5nLCB1c2VyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1c2VycyA9IGNvbi5kYi51c2UoXCJfdXNlcnNcIik7XG4gICAgY29uc3QgaWQgPSBcIm9yZy5jb3VjaGRiLnVzZXI6XCIgKyB1c2VyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1c3IgPSBhd2FpdCB1c2Vycy5nZXQoaWQpO1xuICAgICAgYXdhaXQgdXNlcnMuZGVzdHJveShpZCwgdXNyLl9yZXYpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgQ291Y2hEQkFkYXB0ZXIucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./adapter";
|
|
2
2
|
export * from "./NanoRepository";
|
|
3
|
+
export * from "./types";
|
|
3
4
|
/**
|
|
4
5
|
* @summary Module summary
|
|
5
6
|
* @description Module description
|
|
@@ -11,4 +12,4 @@ export * from "./NanoRepository";
|
|
|
11
12
|
* @const VERSION
|
|
12
13
|
* @memberOf module:ts-workspace
|
|
13
14
|
*/
|
|
14
|
-
export declare const VERSION = "0.0.
|
|
15
|
+
export declare const VERSION = "0.0.15";
|
package/lib/esm/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./adapter";
|
|
2
2
|
export * from "./NanoRepository";
|
|
3
|
+
export * from "./types";
|
|
3
4
|
/**
|
|
4
5
|
* @summary Module summary
|
|
5
6
|
* @description Module description
|
|
@@ -11,5 +12,5 @@ export * from "./NanoRepository";
|
|
|
11
12
|
* @const VERSION
|
|
12
13
|
* @memberOf module:ts-workspace
|
|
13
14
|
*/
|
|
14
|
-
export const VERSION = "0.0.
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
export const VERSION = "0.0.15";
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFNBQVMsQ0FBQztBQUV4Qjs7OztHQUlHO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYWRhcHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTmFub1JlcG9zaXRvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTW9kdWxlIHN1bW1hcnlcbiAqIEBkZXNjcmlwdGlvbiBNb2R1bGUgZGVzY3JpcHRpb25cbiAqIEBtb2R1bGUgZm9yLW5hbm9cbiAqL1xuXG4vKipcbiAqIEBzdW1tYXJ5IHN0b3JlcyB0aGUgY3VycmVudCBwYWNrYWdlIHZlcnNpb25cbiAqIEBkZXNjcmlwdGlvbiB0aGlzIGlzIGhvdyB5b3Ugc2hvdWxkIGRvY3VtZW50IGEgY29uc3RhbnRcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnRzLXdvcmtzcGFjZVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcbiJdfQ==
|
package/lib/esm/types.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9zaXRvcnlGbGFncyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hbm9GbGFncyBleHRlbmRzIFJlcG9zaXRvcnlGbGFncyB7XG4gIHVzZXI6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgfTtcbn1cbiJdfQ==
|
package/lib/index.cjs
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.VERSION = void 0;
|
|
18
18
|
__exportStar(require("./adapter.cjs"), exports);
|
|
19
19
|
__exportStar(require("./NanoRepository.cjs"), exports);
|
|
20
|
+
__exportStar(require("./types.cjs"), exports);
|
|
20
21
|
/**
|
|
21
22
|
* @summary Module summary
|
|
22
23
|
* @description Module description
|
|
@@ -28,5 +29,5 @@ __exportStar(require("./NanoRepository.cjs"), exports);
|
|
|
28
29
|
* @const VERSION
|
|
29
30
|
* @memberOf module:ts-workspace
|
|
30
31
|
*/
|
|
31
|
-
exports.VERSION = "0.0.
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
exports.VERSION = "0.0.15";
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBMEI7QUFDMUIsdURBQWlDO0FBQ2pDLDhDQUF3QjtBQUV4Qjs7OztHQUlHO0FBRUg7Ozs7O0dBS0c7QUFDVSxRQUFBLE9BQU8sR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hZGFwdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9OYW5vUmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNb2R1bGUgc3VtbWFyeVxuICogQGRlc2NyaXB0aW9uIE1vZHVsZSBkZXNjcmlwdGlvblxuICogQG1vZHVsZSBmb3ItbmFub1xuICovXG5cbi8qKlxuICogQHN1bW1hcnkgc3RvcmVzIHRoZSBjdXJyZW50IHBhY2thZ2UgdmVyc2lvblxuICogQGRlc2NyaXB0aW9uIHRoaXMgaXMgaG93IHlvdSBzaG91bGQgZG9jdW1lbnQgYSBjb25zdGFudFxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6dHMtd29ya3NwYWNlXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuIl19
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./adapter";
|
|
2
2
|
export * from "./NanoRepository";
|
|
3
|
+
export * from "./types";
|
|
3
4
|
/**
|
|
4
5
|
* @summary Module summary
|
|
5
6
|
* @description Module description
|
|
@@ -11,4 +12,4 @@ export * from "./NanoRepository";
|
|
|
11
12
|
* @const VERSION
|
|
12
13
|
* @memberOf module:ts-workspace
|
|
13
14
|
*/
|
|
14
|
-
export declare const VERSION = "0.0.
|
|
15
|
+
export declare const VERSION = "0.0.15";
|
package/lib/types.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9zaXRvcnlGbGFncyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hbm9GbGFncyBleHRlbmRzIFJlcG9zaXRvcnlGbGFncyB7XG4gIHVzZXI6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgfTtcbn1cbiJdfQ==
|
package/lib/types.d.ts
ADDED