tnp-helpers 18.0.1 → 18.0.3

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.
Files changed (49) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/base-npm-helpers.mjs +11 -2
  3. package/browser/esm2022/lib/helpers/helpers-strings-regexes.mjs +3 -3
  4. package/browser/esm2022/lib/index.mjs +2 -1
  5. package/browser/esm2022/lib/utils.mjs +45 -0
  6. package/browser/fesm2022/tnp-helpers.mjs +58 -5
  7. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  8. package/browser/lib/base/base-npm-helpers.d.ts +7 -2
  9. package/browser/lib/index.d.ts +1 -0
  10. package/browser/lib/utils.d.ts +12 -0
  11. package/browser/package.json +25 -0
  12. package/client/esm2022/lib/base/base-npm-helpers.mjs +11 -2
  13. package/client/esm2022/lib/helpers/helpers-strings-regexes.mjs +3 -3
  14. package/client/esm2022/lib/index.mjs +2 -1
  15. package/client/esm2022/lib/utils.mjs +45 -0
  16. package/client/fesm2022/tnp-helpers.mjs +58 -5
  17. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  18. package/client/lib/base/base-npm-helpers.d.ts +7 -2
  19. package/client/lib/index.d.ts +1 -0
  20. package/client/lib/utils.d.ts +12 -0
  21. package/lib/base/base-npm-helpers.d.ts +2 -1
  22. package/lib/base/base-npm-helpers.js +18 -11
  23. package/lib/base/base-npm-helpers.js.map +1 -1
  24. package/lib/helpers/for-backend/helpers-process.backend.js +1 -1
  25. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  26. package/lib/helpers/for-browser/angular.helper.js +2 -2
  27. package/lib/helpers/helpers-strings-regexes.js +1 -1
  28. package/lib/helpers/helpers-strings-regexes.js.map +1 -1
  29. package/lib/index.d.ts +1 -0
  30. package/lib/index.js +1 -0
  31. package/lib/index.js.map +1 -1
  32. package/lib/old/base-component.js +2 -2
  33. package/lib/old/base-formly-component.js +2 -2
  34. package/lib/old/dual-component-ctrl.js +2 -2
  35. package/lib/utils.d.ts +11 -0
  36. package/lib/utils.js +55 -0
  37. package/lib/utils.js.map +1 -0
  38. package/package.json +4 -4
  39. package/tmp-environment.json +40 -39
  40. package/websql/esm2022/lib/base/base-npm-helpers.mjs +11 -2
  41. package/websql/esm2022/lib/helpers/helpers-strings-regexes.mjs +3 -3
  42. package/websql/esm2022/lib/index.mjs +2 -1
  43. package/websql/esm2022/lib/utils.mjs +45 -0
  44. package/websql/fesm2022/tnp-helpers.mjs +58 -5
  45. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  46. package/websql/lib/base/base-npm-helpers.d.ts +5 -2
  47. package/websql/lib/index.d.ts +1 -0
  48. package/websql/lib/utils.d.ts +12 -0
  49. package/websql/package.json +25 -0
@@ -1,6 +1,6 @@
1
1
  THIS FILE IS GENERATED. THIS FILE IS GENERATED. THIS FILE IS GENERATED.
2
2
 
3
- Assets from this folder are being shipped with this npm package (tnp-helpers@18.0.1)
3
+ Assets from this folder are being shipped with this npm package (tnp-helpers@18.0.3)
4
4
  created from this project.
5
5
 
6
6
  THIS FILE IS GENERATED.THIS FILE IS GENERATED. THIS FILE IS GENERATED.
@@ -104,7 +104,16 @@ export class BaseNpmHelpers extends BaseFeatureForProject {
104
104
  /**
105
105
  * Update dependency in package.json
106
106
  */
107
- async updateDep({ packageName, version, updateFiredevJsonFirst, }) {
107
+ async updateDep({ packageName, version, updateFiredevJsonFirst, addIfNotExists, }) {
108
+ /* */
109
+ /* */
110
+ /* */
111
+ /* */
112
+ /* */
113
+ /* */
114
+ /* */
115
+ /* */
116
+ /* */
108
117
  /* */
109
118
  /* */
110
119
  /* */
@@ -585,4 +594,4 @@ export class BaseNpmHelpers extends BaseFeatureForProject {
585
594
  }
586
595
  ;
587
596
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-npm-helpers.ts
588
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ucG0taGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLW5wbS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSzVDLE1BQU0sT0FBTyxjQUVYLFNBQVEscUJBQXFCO0lBRTdCLFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFtQjtRQUNwQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFHRDs7O09BR0c7SUFDSCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENB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QUFJLGdCQUFnQjtRQUN0QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxLQUFLLENBQUMsb0JBQW9CO1FBQzVCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFL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Q0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxRQUFpQjtRQUN2RCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQjtRQUN0QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFFQUFxRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBCYXNlRmVhdHVyZUZvclByb2plY3QgfSBmcm9tICcuL2Jhc2UtZmVhdHVyZS1mb3ItcHJvamVjdCc7XG5pbXBvcnQgdHlwZSB7IEJhc2VQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLXByb2plY3QnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAndG5wLWNvbmZpZy9icm93c2VyJztcbmltcG9ydCB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZS1mZXN0JztcbmltcG9ydCB7IENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuXG5leHBvcnQgY2xhc3MgQmFzZU5wbUhlbHBlcnM8XG4gIFBST0pDRVQgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IGFueSxcbj4gZXh0ZW5kcyBCYXNlRmVhdHVyZUZvclByb2plY3Qge1xuICBwcml2YXRlIHBhY2thZ2VKU09OOiBQYWNrYWdlSnNvbjtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUFJPSkNFVCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIHRoaXMucHJvamVjdCA9IHByb2plY3Q7XG4gICAgdGhpcy5yZWxvYWRQYWNrYWdlSnNvbkluTWVtb3J5KCk7XG4gIH1cblxuICB1cGRhdGVEZXBzRnJvbShsb2NhdGlvbnM6IHN0cmluZ1tdKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBpZiBzb21ldGhpbmcgZWxzZSBjaGFuZ2UgcGFja2FnZS5qc29uIGluIHRoaXMgcHJvamVjdFxuICAgKiBhbmQgeW91IGtub3cgdGhhdCB5b3UgbmVlZCB0byByZWxvYWQgaXQuLlxuICAgKi9cbiAgcmVsb2FkUGFja2FnZUpzb25Jbk1lbW9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhY2thZ2VKU09OID0gdGhpcy5wcm9qZWN0LnJlYWRKc29uKGNvbmZpZy5maWxlLnBhY2thZ2VfanNvbik7XG4gIH1cblxuXG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8ubmFtZSB8fCAnJztcbiAgfVxuXG5cblxuICAvKipcbiAgICogdmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvbiAtPiBwcm9wZXJ0eSB2ZXJzaW9uXG4gICAqL1xuICBnZXQgdmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhY2thZ2VKU09OPy52ZXJzaW9uO1xuICB9XG5cblxuICAvKipcbiAgICogYmluIHdpdGggY2xpIGNvbmZpZyBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgZ2V0IGJpbigpOiB7IFtjbGlOYW1lOiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OPy5iaW4gfHwge30pIGFzIGFueTtcbiAgfVxuXG5cbiAgc2V0IHZlcnNpb24obmV3VmVyc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5wYWNrYWdlSlNPTi52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICB0aGlzLnByb2plY3Qud3JpdGVKc29uKGNvbmZpZy5maWxlLnBhY2thZ2VfanNvbiwgdGhpcy5wYWNrYWdlSlNPTik7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSB1cGRhdGVEZXBcbiAgICovXG4gIHVwZGF0ZURlcGVuZGVuY3koe1xuICAgIHBhY2thZ2VOYW1lLFxuICAgIHZlcnNpb24sXG4gICAgdXBkYXRlRmlyZWRldkpzb25GaXJzdCxcbiAgfToge1xuICAgIHBhY2thZ2VOYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nIHwgbnVsbDtcbiAgICB1cGRhdGVGaXJlZGV2SnNvbkZpcnN0PzogYm9vbGVhbjtcbiAgfSk6IHZvaWQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogVXBkYXRlIGRlcGVuZGVuY3kgaW4gcGFja2FnZS5qc29uXG4gICAqL1xuICBhc3luYyB1cGRhdGVEZXAoe1xuICAgIHBhY2thZ2VOYW1lLFxuICAgIHZlcnNpb24sXG4gICAgdXBkYXRlRmlyZWRldkpzb25GaXJzdCxcbiAgfToge1xuICAgIHBhY2thZ2VOYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nIHwgbnVsbDtcbiAgICB1cGRhdGVGaXJlZGV2SnNvbkZpcnN0PzogYm9vbGVhbjtcbiAgfSk6IFByb21pc2U8dm9pZD4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgdmVyc2lvbldpdGhQYXRjaFBsdXNPbmUoKTogc3RyaW5nIHtcbiAgICBjb25zdCB2ZXIgPSB0aGlzLnZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBpZiAodmVyLmxlbmd0aCA+IDApIHtcbiAgICAgIHZlclt2ZXIubGVuZ3RoIC0gMV0gPSAocGFyc2VJbnQoXy5sYXN0KHZlcikpICsgMSkudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIHZlci5qb2luKCcuJyk7XG4gIH1cblxuXG5cbiAgZ2V0IHZlcnNpb25XaXRoTWlub3JQbHVzT25lQW5kUGF0Y2haZXJvKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdmVyID0gdGhpcy52ZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgaWYgKHZlci5sZW5ndGggPiAxKSB7XG4gICAgICB2ZXJbMV0gPSAocGFyc2VJbnQodmVyWzFdKSArIDEpLnRvU3RyaW5nKCk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDI7IGluZGV4IDwgdmVyLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICB2ZXJbaW5kZXhdID0gJzAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBIZWxwZXJzLndhcm4oXG4gICAgICAgIGBbbnBtLXByb2plY3RdIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggYnVtcGluZyBtaW5vciB2ZXJzaW9uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB2ZXIuam9pbignLicpO1xuICB9XG5cblxuXG4gIGdldCB2ZXJzaW9uV2l0aE1ham9yUGx1c09uZUFuZE1pbm9yWmVyb0FuZFBhdGNoWmVybygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZlciA9IHRoaXMudmVyc2lvbi5zcGxpdCgnLicpO1xuICAgIGlmICh2ZXIubGVuZ3RoID4gMCkge1xuICAgICAgdmVyWzBdID0gKHBhcnNlSW50KF8uZmlyc3QodmVyKSkgKyAxKS50b1N0cmluZygpO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHZlci5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgdmVyW2luZGV4XSA9ICcwJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgSGVscGVycy53YXJuKFxuICAgICAgICBgW25wbS1wcm9qZWN0XSBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGJ1bXBpbmcgbWFqb3IgdmVyc2lvbmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdmVyLmpvaW4oJy4nKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogTWFqb3IgVmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgLy8gQHRzLWlnbm9yZVxuICBnZXQgbWFqb3JWZXJzaW9uKCk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIE1pbm9yIFZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIC8vIEB0cy1pZ25vcmVcbiAgZ2V0IG1pbm9yVmVyc2lvbigpOiBudW1iZXIge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGFzeW5jIGJ1bXBQYXRjaFZlcnNpb24oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHZlcnNpb25QYXRoQXNOdW1iZXIoKTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBucG0gZGVwZW5kZW5jaWVzIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICBnZXQgZGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwZWVyRGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IHBlZXJEZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTi5wZWVyRGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBkZXZEZXBlbmRlbmNpZXMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgZGV2RGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGV2RGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiByZXNvbHV0aW9ucyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCByZXNvbHV0aW9ucygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OWydyZXNvbHV0aW9ucyddIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBvYmplY3Qgd2l0bCBhbGwgZGVwcyBmcm9tIGN1cnJlbnQgcHJvamVjdCBwYWNrYWdlIGpzb25cbiAgICovXG4gIGdldCBhbGxEZXBlbmRlbmNpZXMoKTogeyBbcGFja2FnZU5hbWU6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gdGhpcy5hbGxEZXBzRnJvbVBhY2thZ2VKc29uKHRoaXMucGFja2FnZUpTT04pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIG9iamVjdCB3aXRsIGFsbCBkZXBzIGZyb20gcGFja2FnZSBqc29uXG4gICAqL1xuICBhbGxEZXBzRnJvbVBhY2thZ2VKc29uKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbikge1xuICAgIHJldHVybiBfLm1lcmdlKHtcbiAgICAgIC4uLihwYWNrYWdlSnNvbi5kZXZEZXBlbmRlbmNpZXMgfHwge30pLFxuICAgICAgLi4uKHBhY2thZ2VKc29uLnBlZXJEZXBlbmRlbmNpZXMgfHwge30pLFxuICAgICAgLi4uKHBhY2thZ2VKc29uLmRlcGVuZGVuY2llcyB8fCB7fSksXG4gICAgICAuLi4ocGFja2FnZUpzb24ucmVzb2x1dGlvbnMgfHwge30pLFxuICAgIH0pIGFzIGFueTtcbiAgfVxuXG5cblxuICBsaW5rTm9kZU1vZHVsZXNUbyhwcm9qOiBQYXJ0aWFsPEJhc2VQcm9qZWN0Pikge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByZWZlcllhcm5PdmVyTnBtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG5cblxuICBhc3luYyBtYWtlU3VyZU5vZGVNb2R1bGVzSW5zdGFsbGVkKG9wdGlvbnM/OiB7XG4gICAgdXNlWWFybj86IGJvb2xlYW47XG4gICAgZm9yY2U/OiBib29sZWFuO1xuICB9KSB7XG4gICAgaWYgKHRoaXMuZW1wdHlOb2RlTW9kdWxlcykge1xuICAgICAgdGhpcy5yZWluc3RhbE5vZGVNb2R1bGVzKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG5cblxuICBkZWxldGVOb2RlTW9kdWxlcygpIHtcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlKGNvbmZpZy5mb2xkZXIubm9kZV9tb2R1bGVzKTtcbiAgfVxuXG5cblxuICBhc3luYyByZWluc3RhbGxOb2RlTW9kdWxlcyhmb3JjZXJSZW1vdmVOb2RlTW9kdWxlcyA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVpbnN0YWxOb2RlTW9kdWxlcyhvcHRpb25zPzogeyB1c2VZYXJuPzogYm9vbGVhbjsgZm9yY2U/OiBib29sZWFuIH0pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgbm9kZV9tb2R1bGVzIGZvbGRlciBpcyBlbXB0eVxuICAgKi9cbiAgZ2V0IGVtcHR5Tm9kZU1vZHVsZXMoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgYXN5bmMgcmVzZXRQYWNrYWdlTG9ja0pzb24oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgc3RhcnROcG1UYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGFkZGl0aW9uYWxBcmd1bWVudHM/OiBzdHJpbmcgfCBvYmplY3QpIHtcbiAgICBpZiAoXy5pc09iamVjdChhZGRpdGlvbmFsQXJndW1lbnRzKSkge1xuICAgICAgYWRkaXRpb25hbEFyZ3VtZW50cyA9IE9iamVjdC5rZXlzKGFkZGl0aW9uYWxBcmd1bWVudHMpXG4gICAgICAgIC5tYXAoayA9PiBgLS0ke2t9ICR7YWRkaXRpb25hbEFyZ3VtZW50c1trXX1gKVxuICAgICAgICAuam9pbignICcpO1xuICAgIH1cbiAgICBjb25zdCBjb21tYW5kID0gYG5wbSBydW4gJHt0YXNrTmFtZX0gJHtcbiAgICAgIGFkZGl0aW9uYWxBcmd1bWVudHMgPyAnIC0tICcgKyBhZGRpdGlvbmFsQXJndW1lbnRzIDogJydcbiAgICB9YDtcbiAgICBIZWxwZXJzLmluZm8oYFN0YXJ0aW5nIG5wbSB0YXNrOiBcIiR7Y29tbWFuZH1cImApO1xuXG4gICAgcmV0dXJuIHRoaXMucHJvamVjdC5ydW4oY29tbWFuZCwge1xuICAgICAgb3V0cHV0OiB0cnVlLFxuICAgICAgYmlnZ2VyQnVmZmVyOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cblxuXG4gIGFzeW5jIHByZXBhcmVDb21tYW5kKFxuICAgIG9wdGlvc24/OiBDb3JlTW9kZWxzLk5wbUluc3RhbGxPcHRpb25zLFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGxldCB7XG4gICAgICBwa2csXG4gICAgICByZW1vdmUsXG4gICAgICBzaWxlbnQsXG4gICAgICB1c2VZYXJuLFxuICAgICAgZm9yY2UsXG4gICAgICByZW1vdmVZYXJuT3JQYWNrYWdlSnNvbkxvY2ssXG4gICAgICBnZW5lcmF0ZVlhcm5PclBhY2thZ2VKc29uTG9jayxcbiAgICAgIGlnbm9yZU9wdGlvbmFsLFxuICAgIH0gPSBvcHRpb3NuIHx8IHt9O1xuXG4gICAgZm9yY2UgPSB0cnVlOyAvLyBUT0RPIFFVSUNLX0ZJWFxuXG4gICAgbGV0IGNvbW1hbmQgPSAnJztcbiAgICBjb25zdCBjb21tb25PcHRpb25zID0gYC0taWdub3JlLWVuZ2luZXNgO1xuXG4gICAgaWYgKHVzZVlhcm4pIHtcblxuICAgICAgY29uc3QgYXJnc0ZvckZhc3Rlckluc3RhbGwgPSBgJHtmb3JjZSA/ICctLWZvcmNlJyA6ICcnfSAke2NvbW1vbk9wdGlvbnN9IGA7XG4gICAgICBjb21tYW5kID1cbiAgICAgICAgYCR7XG4gICAgICAgICAgcmVtb3ZlWWFybk9yUGFja2FnZUpzb25Mb2NrXG4gICAgICAgICAgICA/IGBybSAke2NvbmZpZy5maWxlLnlhcm5fbG9ja30gYCArXG4gICAgICAgICAgICAgIGAmJiB0b3VjaCAke2NvbmZpZy5maWxlLnlhcm5fbG9ja30gJiYgYFxuICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9YCArXG4gICAgICAgIGB5YXJuICR7cGtnID8gKHJlbW92ZSA/ICdyZW1vdmUnIDogJ2FkZCcpIDogJ2luc3RhbGwnfSAke3BrZyA/IHBrZy5uYW1lIDogJyd9IGAgK1xuICAgICAgICBgICR7Z2VuZXJhdGVZYXJuT3JQYWNrYWdlSnNvbkxvY2sgPyAnJyA6ICctLW5vLWxvY2tmaWxlJ30gYCArXG4gICAgICAgIGAgJHthcmdzRm9yRmFzdGVySW5zdGFsbH0gYCArXG4gICAgICAgIGAgJHtwa2cgJiYgcGtnLmluc3RhbGxUeXBlICYmIHBrZy5pbnN0YWxsVHlwZSA9PT0gJy0tc2F2ZS1kZXYnID8gJy1kZXYnIDogJyd9IGA7XG5cbiAgICB9IGVsc2Uge1xuXG4gICAgICBjb25zdCBhcmdzRm9yRmFzdGVySW5zdGFsbCA9XG4gICAgICAgIGAke2ZvcmNlID8gJy0tZm9yY2UnIDogJyd9ICR7Y29tbW9uT3B0aW9uc30gLS1uby1hdWRpdCBgICtcbiAgICAgICAgYCR7c2lsZW50ID8gJy0tc2lsZW50IC0tbm8tcHJvZ3Jlc3MnIDogJyd9ICAgYDtcblxuICAgICAgY29tbWFuZCA9XG4gICAgICAgIGAke1xuICAgICAgICAgIHJlbW92ZVlhcm5PclBhY2thZ2VKc29uTG9ja1xuICAgICAgICAgICAgPyBgcm0gJHtjb25maWcuZmlsZS5wYWNrYWdlX2xvY2tfanNvbn0gYCArXG4gICAgICAgICAgICAgIGAmJiB0b3VjaCAke2NvbmZpZy5maWxlLnBhY2thZ2VfbG9ja19qc29ufSAgJiYgYFxuICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9YCArXG4gICAgICAgIGBucHggLS1ub2RlLW9wdGlvbnM9LS1tYXgtb2xkLXNwYWNlLXNpemU9ODAwMCBucG0gYCArXG4gICAgICAgIGAke3JlbW92ZSA/ICd1bmluc3RhbGwnIDogJ2luc3RhbGwnfSAke3BrZyA/IHBrZy5uYW1lIDogJyd9IGAgK1xuICAgICAgICBgICR7Z2VuZXJhdGVZYXJuT3JQYWNrYWdlSnNvbkxvY2sgPyAnJyA6ICctLW5vLXBhY2thZ2UtbG9jayd9IGAgK1xuICAgICAgICBgICR7aWdub3JlT3B0aW9uYWwgPyAnLS1pZ25vcmUtb3B0aW9uYWwnIDogJyd9IGAgK1xuICAgICAgICBgICR7cGtnICYmIHBrZy5pbnN0YWxsVHlwZSA/IHBrZy5pbnN0YWxsVHlwZSA6ICcnfSBgICtcbiAgICAgICAgYCAke2FyZ3NGb3JGYXN0ZXJJbnN0YWxsfSBgO1xuXG4gICAgfVxuICAgIHJldHVybiBjb21tYW5kO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcmVnaXN0cnkgd2l0aG91dCBzcGVjaWZpZWQgcmVnaXN0ciBpcyBjaGVja2luZyBucG0gcmVnaXN0cnlcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGlzTG9nZ2VkSW5Ub1JlZ2lzdHJ5KHJlZ2lzdHJ5Pzogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogUHJvbXB0IHRoZSB1c2VyIHRvIGxvZyBpbiB0byBhIHNwZWNpZmljIG5wbSByZWdpc3RyeS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtyZWdpc3RyeV0gLSBPcHRpb25hbCBucG0gcmVnaXN0cnkgVVJMLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBsb2dpbiBwcm9jZXNzIGNvbXBsZXRlcy5cbiAgICovXG4gIGFzeW5jIGxvZ2luVG9SZWdpc3RyeShyZWdpc3RyeT86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyBtYWtlU3VyZUxvZ2dlZEluVG9OcG1SZWdpc3RyeShyZWdpc3RyeT86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogdXNlIG1ha2VTdXJlTG9nZ2VkSW5Ub05wbVJlZ2lzdHJ5KClcbiAgICovXG4gIGNoZWNrSWZMb2dnaW5JblRvTnBtKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9iYXNlLW5wbS1oZWxwZXJzLnRzIl19
597
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ucG0taGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLW5wbS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSzVDLE1BQU0sT0FBTyxjQUVYLFNBQVEscUJBQXFCO0lBRTdCLFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFtQjtRQUNwQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFHRDs7O09BR0c7SUFDSCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENB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LFFBQWlCO1FBQ3pDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxLQUFLLENBQUMsNkJBQTZCLENBQUMsUUFBaUI7UUFDdkQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0I7UUFDdEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLWZlYXR1cmUtZm9yLXByb2plY3QnO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdCB9IGZyb20gJy4vYmFzZS1wcm9qZWN0JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBQYWNrYWdlSnNvbiB9IGZyb20gJ3R5cGUtZmVzdCc7XG5pbXBvcnQgeyBDb3JlTW9kZWxzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cblxuZXhwb3J0IGNsYXNzIEJhc2VOcG1IZWxwZXJzPFxuICBQUk9KQ0VUIGV4dGVuZHMgQmFzZVByb2plY3QgPSBhbnksXG4+IGV4dGVuZHMgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IHtcbiAgcHJpdmF0ZSBwYWNrYWdlSlNPTjogUGFja2FnZUpzb247XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFBST0pDRVQpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLnByb2plY3QgPSBwcm9qZWN0O1xuICAgIHRoaXMucmVsb2FkUGFja2FnZUpzb25Jbk1lbW9yeSgpO1xuICB9XG5cbiAgdXBkYXRlRGVwc0Zyb20obG9jYXRpb25zOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICAvKipcbiAgICogaWYgc29tZXRoaW5nIGVsc2UgY2hhbmdlIHBhY2thZ2UuanNvbiBpbiB0aGlzIHByb2plY3RcbiAgICogYW5kIHlvdSBrbm93IHRoYXQgeW91IG5lZWQgdG8gcmVsb2FkIGl0Li5cbiAgICovXG4gIHJlbG9hZFBhY2thZ2VKc29uSW5NZW1vcnkoKTogdm9pZCB7XG4gICAgdGhpcy5wYWNrYWdlSlNPTiA9IHRoaXMucHJvamVjdC5yZWFkSnNvbihjb25maWcuZmlsZS5wYWNrYWdlX2pzb24pO1xuICB9XG5cblxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/Lm5hbWUgfHwgJyc7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24gLT4gcHJvcGVydHkgdmVyc2lvblxuICAgKi9cbiAgZ2V0IHZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8udmVyc2lvbjtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIGJpbiB3aXRoIGNsaSBjb25maWcgZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIGdldCBiaW4oKTogeyBbY2xpTmFtZTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTj8uYmluIHx8IHt9KSBhcyBhbnk7XG4gIH1cblxuXG4gIHNldCB2ZXJzaW9uKG5ld1ZlcnNpb246IHN0cmluZykge1xuICAgIHRoaXMucGFja2FnZUpTT04udmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgdGhpcy5wcm9qZWN0LndyaXRlSnNvbihjb25maWcuZmlsZS5wYWNrYWdlX2pzb24sIHRoaXMucGFja2FnZUpTT04pO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgdXBkYXRlRGVwXG4gICAqL1xuICB1cGRhdGVEZXBlbmRlbmN5KHtcbiAgICBwYWNrYWdlTmFtZSxcbiAgICB2ZXJzaW9uLFxuICAgIHVwZGF0ZUZpcmVkZXZKc29uRmlyc3QsXG4gIH06IHtcbiAgICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZyB8IG51bGw7XG4gICAgdXBkYXRlRmlyZWRldkpzb25GaXJzdD86IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBkZXBlbmRlbmN5IGluIHBhY2thZ2UuanNvblxuICAgKi9cbiAgYXN5bmMgdXBkYXRlRGVwKHtcbiAgICBwYWNrYWdlTmFtZSxcbiAgICB2ZXJzaW9uLFxuICAgIHVwZGF0ZUZpcmVkZXZKc29uRmlyc3QsXG4gICAgYWRkSWZOb3RFeGlzdHMsXG4gIH06IHtcbiAgICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZyB8IG51bGw7XG4gICAgdXBkYXRlRmlyZWRldkpzb25GaXJzdD86IGJvb2xlYW47XG4gICAgYWRkSWZOb3RFeGlzdHM/OiBib29sZWFuO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCB2ZXJzaW9uV2l0aFBhdGNoUGx1c09uZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZlciA9IHRoaXMudmVyc2lvbi5zcGxpdCgnLicpO1xuICAgIGlmICh2ZXIubGVuZ3RoID4gMCkge1xuICAgICAgdmVyW3Zlci5sZW5ndGggLSAxXSA9IChwYXJzZUludChfLmxhc3QodmVyKSkgKyAxKS50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gdmVyLmpvaW4oJy4nKTtcbiAgfVxuXG5cblxuICBnZXQgdmVyc2lvbldpdGhNaW5vclBsdXNPbmVBbmRQYXRjaFplcm8oKTogc3RyaW5nIHtcbiAgICBjb25zdCB2ZXIgPSB0aGlzLnZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBpZiAodmVyLmxlbmd0aCA+IDEpIHtcbiAgICAgIHZlclsxXSA9IChwYXJzZUludCh2ZXJbMV0pICsgMSkudG9TdHJpbmcoKTtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMjsgaW5kZXggPCB2ZXIubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIHZlcltpbmRleF0gPSAnMCc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIEhlbHBlcnMud2FybihcbiAgICAgICAgYFtucG0tcHJvamVjdF0gc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBidW1waW5nIG1pbm9yIHZlcnNpb25gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHZlci5qb2luKCcuJyk7XG4gIH1cblxuXG5cbiAgZ2V0IHZlcnNpb25XaXRoTWFqb3JQbHVzT25lQW5kTWlub3JaZXJvQW5kUGF0Y2haZXJvKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdmVyID0gdGhpcy52ZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgaWYgKHZlci5sZW5ndGggPiAwKSB7XG4gICAgICB2ZXJbMF0gPSAocGFyc2VJbnQoXy5maXJzdCh2ZXIpKSArIDEpLnRvU3RyaW5nKCk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgdmVyLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICB2ZXJbaW5kZXhdID0gJzAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBIZWxwZXJzLndhcm4oXG4gICAgICAgIGBbbnBtLXByb2plY3RdIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggYnVtcGluZyBtYWpvciB2ZXJzaW9uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB2ZXIuam9pbignLicpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBNYWpvciBWZXJzaW9uIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICAvLyBAdHMtaWdub3JlXG4gIGdldCBtYWpvclZlcnNpb24oKTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogTWlub3IgVmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgLy8gQHRzLWlnbm9yZVxuICBnZXQgbWlub3JWZXJzaW9uKCk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgYXN5bmMgYnVtcFBhdGNoVmVyc2lvbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgdmVyc2lvblBhdGhBc051bWJlcigpOiBudW1iZXIge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG5wbSBkZXBlbmRlbmNpZXMgZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIGdldCBkZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTi5kZXBlbmRlbmNpZXMgOiB7fSkgfHwge307XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHBlZXJEZXBlbmRlbmNpZXMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgcGVlckRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLnBlZXJEZXBlbmRlbmNpZXMgOiB7fSkgfHwge307XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGRldkRlcGVuZGVuY2llcyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCBkZXZEZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTi5kZXZEZXBlbmRlbmNpZXMgOiB7fSkgfHwge307XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHJlc29sdXRpb25zIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IHJlc29sdXRpb25zKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT05bJ3Jlc29sdXRpb25zJ10gOiB7fSkgfHwge307XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIG9iamVjdCB3aXRsIGFsbCBkZXBzIGZyb20gY3VycmVudCBwcm9qZWN0IHBhY2thZ2UganNvblxuICAgKi9cbiAgZ2V0IGFsbERlcGVuZGVuY2llcygpOiB7IFtwYWNrYWdlTmFtZTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiB0aGlzLmFsbERlcHNGcm9tUGFja2FnZUpzb24odGhpcy5wYWNrYWdlSlNPTik7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgb2JqZWN0IHdpdGwgYWxsIGRlcHMgZnJvbSBwYWNrYWdlIGpzb25cbiAgICovXG4gIGFsbERlcHNGcm9tUGFja2FnZUpzb24ocGFja2FnZUpzb246IFBhY2thZ2VKc29uKSB7XG4gICAgcmV0dXJuIF8ubWVyZ2Uoe1xuICAgICAgLi4uKHBhY2thZ2VKc29uLmRldkRlcGVuZGVuY2llcyB8fCB7fSksXG4gICAgICAuLi4ocGFja2FnZUpzb24ucGVlckRlcGVuZGVuY2llcyB8fCB7fSksXG4gICAgICAuLi4ocGFja2FnZUpzb24uZGVwZW5kZW5jaWVzIHx8IHt9KSxcbiAgICAgIC4uLihwYWNrYWdlSnNvbi5yZXNvbHV0aW9ucyB8fCB7fSksXG4gICAgfSkgYXMgYW55O1xuICB9XG5cblxuXG4gIGxpbmtOb2RlTW9kdWxlc1RvKHByb2o6IFBhcnRpYWw8QmFzZVByb2plY3Q+KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJlZmVyWWFybk92ZXJOcG0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIGFzeW5jIG1ha2VTdXJlTm9kZU1vZHVsZXNJbnN0YWxsZWQob3B0aW9ucz86IHtcbiAgICB1c2VZYXJuPzogYm9vbGVhbjtcbiAgICBmb3JjZT86IGJvb2xlYW47XG4gIH0pIHtcbiAgICBpZiAodGhpcy5lbXB0eU5vZGVNb2R1bGVzKSB7XG4gICAgICB0aGlzLnJlaW5zdGFsTm9kZU1vZHVsZXMob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cblxuXG4gIGRlbGV0ZU5vZGVNb2R1bGVzKCkge1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmUoY29uZmlnLmZvbGRlci5ub2RlX21vZHVsZXMpO1xuICB9XG5cblxuXG4gIGFzeW5jIHJlaW5zdGFsbE5vZGVNb2R1bGVzKGZvcmNlclJlbW92ZU5vZGVNb2R1bGVzID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZWluc3RhbE5vZGVNb2R1bGVzKG9wdGlvbnM/OiB7IHVzZVlhcm4/OiBib29sZWFuOyBmb3JjZT86IGJvb2xlYW4gfSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBub2RlX21vZHVsZXMgZm9sZGVyIGlzIGVtcHR5XG4gICAqL1xuICBnZXQgZW1wdHlOb2RlTW9kdWxlcygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyByZXNldFBhY2thZ2VMb2NrSnNvbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzdGFydE5wbVRhc2sodGFza05hbWU6IHN0cmluZywgYWRkaXRpb25hbEFyZ3VtZW50cz86IHN0cmluZyB8IG9iamVjdCkge1xuICAgIGlmIChfLmlzT2JqZWN0KGFkZGl0aW9uYWxBcmd1bWVudHMpKSB7XG4gICAgICBhZGRpdGlvbmFsQXJndW1lbnRzID0gT2JqZWN0LmtleXMoYWRkaXRpb25hbEFyZ3VtZW50cylcbiAgICAgICAgLm1hcChrID0+IGAtLSR7a30gJHthZGRpdGlvbmFsQXJndW1lbnRzW2tdfWApXG4gICAgICAgIC5qb2luKCcgJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvbW1hbmQgPSBgbnBtIHJ1biAke3Rhc2tOYW1lfSAke1xuICAgICAgYWRkaXRpb25hbEFyZ3VtZW50cyA/ICcgLS0gJyArIGFkZGl0aW9uYWxBcmd1bWVudHMgOiAnJ1xuICAgIH1gO1xuICAgIEhlbHBlcnMuaW5mbyhgU3RhcnRpbmcgbnBtIHRhc2s6IFwiJHtjb21tYW5kfVwiYCk7XG5cbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LnJ1bihjb21tYW5kLCB7XG4gICAgICBvdXRwdXQ6IHRydWUsXG4gICAgICBiaWdnZXJCdWZmZXI6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuXG5cbiAgYXN5bmMgcHJlcGFyZUNvbW1hbmQoXG4gICAgb3B0aW9zbj86IENvcmVNb2RlbHMuTnBtSW5zdGFsbE9wdGlvbnMsXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IHtcbiAgICAgIHBrZyxcbiAgICAgIHJlbW92ZSxcbiAgICAgIHNpbGVudCxcbiAgICAgIHVzZVlhcm4sXG4gICAgICBmb3JjZSxcbiAgICAgIHJlbW92ZVlhcm5PclBhY2thZ2VKc29uTG9jayxcbiAgICAgIGdlbmVyYXRlWWFybk9yUGFja2FnZUpzb25Mb2NrLFxuICAgICAgaWdub3JlT3B0aW9uYWwsXG4gICAgfSA9IG9wdGlvc24gfHwge307XG5cbiAgICBmb3JjZSA9IHRydWU7IC8vIFRPRE8gUVVJQ0tfRklYXG5cbiAgICBsZXQgY29tbWFuZCA9ICcnO1xuICAgIGNvbnN0IGNvbW1vbk9wdGlvbnMgPSBgLS1pZ25vcmUtZW5naW5lc2A7XG5cbiAgICBpZiAodXNlWWFybikge1xuXG4gICAgICBjb25zdCBhcmdzRm9yRmFzdGVySW5zdGFsbCA9IGAke2ZvcmNlID8gJy0tZm9yY2UnIDogJyd9ICR7Y29tbW9uT3B0aW9uc30gYDtcbiAgICAgIGNvbW1hbmQgPVxuICAgICAgICBgJHtcbiAgICAgICAgICByZW1vdmVZYXJuT3JQYWNrYWdlSnNvbkxvY2tcbiAgICAgICAgICAgID8gYHJtICR7Y29uZmlnLmZpbGUueWFybl9sb2NrfSBgICtcbiAgICAgICAgICAgICAgYCYmIHRvdWNoICR7Y29uZmlnLmZpbGUueWFybl9sb2NrfSAmJiBgXG4gICAgICAgICAgICA6ICcnXG4gICAgICAgIH1gICtcbiAgICAgICAgYHlhcm4gJHtwa2cgPyAocmVtb3ZlID8gJ3JlbW92ZScgOiAnYWRkJykgOiAnaW5zdGFsbCd9ICR7cGtnID8gcGtnLm5hbWUgOiAnJ30gYCArXG4gICAgICAgIGAgJHtnZW5lcmF0ZVlhcm5PclBhY2thZ2VKc29uTG9jayA/ICcnIDogJy0tbm8tbG9ja2ZpbGUnfSBgICtcbiAgICAgICAgYCAke2FyZ3NGb3JGYXN0ZXJJbnN0YWxsfSBgICtcbiAgICAgICAgYCAke3BrZyAmJiBwa2cuaW5zdGFsbFR5cGUgJiYgcGtnLmluc3RhbGxUeXBlID09PSAnLS1zYXZlLWRldicgPyAnLWRldicgOiAnJ30gYDtcblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIGNvbnN0IGFyZ3NGb3JGYXN0ZXJJbnN0YWxsID1cbiAgICAgICAgYCR7Zm9yY2UgPyAnLS1mb3JjZScgOiAnJ30gJHtjb21tb25PcHRpb25zfSAtLW5vLWF1ZGl0IGAgK1xuICAgICAgICBgJHtzaWxlbnQgPyAnLS1zaWxlbnQgLS1uby1wcm9ncmVzcycgOiAnJ30gICBgO1xuXG4gICAgICBjb21tYW5kID1cbiAgICAgICAgYCR7XG4gICAgICAgICAgcmVtb3ZlWWFybk9yUGFja2FnZUpzb25Mb2NrXG4gICAgICAgICAgICA/IGBybSAke2NvbmZpZy5maWxlLnBhY2thZ2VfbG9ja19qc29ufSBgICtcbiAgICAgICAgICAgICAgYCYmIHRvdWNoICR7Y29uZmlnLmZpbGUucGFja2FnZV9sb2NrX2pzb259ICAmJiBgXG4gICAgICAgICAgICA6ICcnXG4gICAgICAgIH1gICtcbiAgICAgICAgYG5weCAtLW5vZGUtb3B0aW9ucz0tLW1heC1vbGQtc3BhY2Utc2l6ZT04MDAwIG5wbSBgICtcbiAgICAgICAgYCR7cmVtb3ZlID8gJ3VuaW5zdGFsbCcgOiAnaW5zdGFsbCd9ICR7cGtnID8gcGtnLm5hbWUgOiAnJ30gYCArXG4gICAgICAgIGAgJHtnZW5lcmF0ZVlhcm5PclBhY2thZ2VKc29uTG9jayA/ICcnIDogJy0tbm8tcGFja2FnZS1sb2NrJ30gYCArXG4gICAgICAgIGAgJHtpZ25vcmVPcHRpb25hbCA/ICctLWlnbm9yZS1vcHRpb25hbCcgOiAnJ30gYCArXG4gICAgICAgIGAgJHtwa2cgJiYgcGtnLmluc3RhbGxUeXBlID8gcGtnLmluc3RhbGxUeXBlIDogJyd9IGAgK1xuICAgICAgICBgICR7YXJnc0ZvckZhc3Rlckluc3RhbGx9IGA7XG5cbiAgICB9XG4gICAgcmV0dXJuIGNvbW1hbmQ7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSByZWdpc3RyeSB3aXRob3V0IHNwZWNpZmllZCByZWdpc3RyIGlzIGNoZWNraW5nIG5wbSByZWdpc3RyeVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgaXNMb2dnZWRJblRvUmVnaXN0cnkocmVnaXN0cnk/OiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBQcm9tcHQgdGhlIHVzZXIgdG8gbG9nIGluIHRvIGEgc3BlY2lmaWMgbnBtIHJlZ2lzdHJ5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlZ2lzdHJ5XSAtIE9wdGlvbmFsIG5wbSByZWdpc3RyeSBVUkwuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxvZ2luIHByb2Nlc3MgY29tcGxldGVzLlxuICAgKi9cbiAgYXN5bmMgbG9naW5Ub1JlZ2lzdHJ5KHJlZ2lzdHJ5Pzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGFzeW5jIG1ha2VTdXJlTG9nZ2VkSW5Ub05wbVJlZ2lzdHJ5KHJlZ2lzdHJ5Pzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiB1c2UgbWFrZVN1cmVMb2dnZWRJblRvTnBtUmVnaXN0cnkoKVxuICAgKi9cbiAgY2hlY2tJZkxvZ2dpbkluVG9OcG0oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtbnBtLWhlbHBlcnMudHMiXX0=
@@ -1,7 +1,7 @@
1
- import { _ } from 'tnp-core/browser';
1
+ import { Utils, _ } from 'tnp-core/browser';
2
2
  export class HelpersStringsRegexes {
3
3
  escapeStringForRegEx(s) {
4
- return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
4
+ return Utils.escapeStringForRegEx(s);
5
5
  }
6
6
  matchExactOnce(s, regex) {
7
7
  if (!_.isString(s) || !_.isRegExp(regex)) {
@@ -48,4 +48,4 @@ export class HelpersStringsRegexes {
48
48
  }
49
49
  ;
50
50
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers/helpers-strings-regexes.ts
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMvaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsb0JBQW9CLENBQUMsQ0FBUztRQUM1QixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFTLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPO1lBQ0w7Ozs7Ozs7O2FBUUM7WUFDRCxJQUFJLG1CQUFtQjtnQkFDckIsTUFBTSxLQUFLLEdBQUcsNExBQTRMLENBQUM7Z0JBQzNNLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNEOzs7Ozs7Ozs7O1lBVUE7WUFDQSxJQUFJLHVCQUF1QjtnQkFDekIsTUFBTSxLQUFLLEdBQUcsa0lBQWtJLENBQUM7Z0JBQ2pKLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtFQUErRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5leHBvcnQgY2xhc3MgSGVscGVyc1N0cmluZ3NSZWdleGVzIHtcblxuXG5cbiAgZXNjYXBlU3RyaW5nRm9yUmVnRXgoczogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHMucmVwbGFjZSgvWy1cXC9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyk7XG4gIH1cblxuICBtYXRjaEV4YWN0T25jZShzOiBzdHJpbmcsIHJlZ2V4OiBSZWdFeHApOiBzdHJpbmcge1xuICAgIGlmICghXy5pc1N0cmluZyhzKSB8fCAhXy5pc1JlZ0V4cChyZWdleCkpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHMubWF0Y2gocmVnZXgpO1xuICAgIGlmIChfLmlzTmlsKHJlc3VsdCkpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQubGVuZ3RoID49IDEgPyBfLmZpcnN0KHJlc3VsdCkgOiB2b2lkIDA7XG4gIH1cblxuICBnZXQgcmVnZXgoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8qKlxuICAgICAqIG1hdGhlc1xuICAgICAqIHh4eC54eHgueHh4Lnh4eFxuICAgICAqIHh4eC54eHgueHh4Lnh4eDpwb3J0XG4gICAgICogaHR0cDovL3h4eC54eHgueHh4Lnh4eDpwb3J0XG4gICAgICogaHR0cDovL3h4eC54eHgueHh4Lnh4eFxuICAgICAqIGh0dHBzOi8veHh4Lnh4eC54eHgueHh4OnBvcnRcbiAgICAgKiBodHRwczovL3h4eC54eHgueHh4Lnh4eCAgICpcbiAgICAgKi9cbiAgICAgIGdldCBmb3JTdHJpbmdXaXRoSXBIb3N0KCkge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oaHR0cChzKT9cXDpcXC9cXC8pPygyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pKFxcOlswLTldKyk/LztcbiAgICAgICAgcmV0dXJuIHJlZ2V4O1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICogbWF0aGVzXG4gICAgKiBodHRwOi8vZG9tYWluLmNvbTpwb3J0XG4gICAgKiBodHRwOi8vZG9tYWluLmNvbVxuICAgICogaHR0cDovL2RvbWFpbjpwb3J0XG4gICAgKiBodHRwOi8vZG9tYWluXG4gICAgKiBodHRwczovL2RvbWFpbi5jb206cG9ydFxuICAgICogaHR0cHM6Ly9kb21haW4uY29tXG4gICAgKiBodHRwczovL2RvbWFpbjpwb3J0XG4gICAgKiBodHRwczovL2RvbWFpblxuICAgICovXG4gICAgICBnZXQgZm9yU3RyaW5nV2l0aERvbWFpbkhvc3QoKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gLygoKGh0dHAocyk/XFw6XFwvXFwvKT9bYS16QS1aMC05XVthLXpBLVowLTktXXsxLDYxfVthLXpBLVowLTldKD86XFwuW2EtekEtWl17Mix9KSsoXFw6WzAtOV0rKT8pfCgoaHR0cChzKT9cXDpcXC9cXC8pW2EtekEtWjAtOS1dezEsNjF9KSkvO1xuICAgICAgICByZXR1cm4gcmVnZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvaGVscGVycy9oZWxwZXJzLXN0cmluZ3MtcmVnZXhlcy50cyJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMvaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxNQUFNLE9BQU8scUJBQXFCO0lBSWhDLG9CQUFvQixDQUFDLENBQVM7UUFDNUIsT0FBTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFTLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPO1lBQ0w7Ozs7Ozs7O2FBUUM7WUFDRCxJQUFJLG1CQUFtQjtnQkFDckIsTUFBTSxLQUFLLEdBQUcsNExBQTRMLENBQUM7Z0JBQzNNLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNEOzs7Ozs7Ozs7O1lBVUE7WUFDQSxJQUFJLHVCQUF1QjtnQkFDekIsTUFBTSxLQUFLLEdBQUcsa0lBQWtJLENBQUM7Z0JBQ2pKLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtFQUErRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBVdGlscywgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuZXhwb3J0IGNsYXNzIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyB7XG5cblxuXG4gIGVzY2FwZVN0cmluZ0ZvclJlZ0V4KHM6IHN0cmluZykge1xuICAgIHJldHVybiBVdGlscy5lc2NhcGVTdHJpbmdGb3JSZWdFeChzKTtcbiAgfVxuXG4gIG1hdGNoRXhhY3RPbmNlKHM6IHN0cmluZywgcmVnZXg6IFJlZ0V4cCk6IHN0cmluZyB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKHMpIHx8ICFfLmlzUmVnRXhwKHJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gcy5tYXRjaChyZWdleCk7XG4gICAgaWYgKF8uaXNOaWwocmVzdWx0KSkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPj0gMSA/IF8uZmlyc3QocmVzdWx0KSA6IHZvaWQgMDtcbiAgfVxuXG4gIGdldCByZWdleCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLyoqXG4gICAgICogbWF0aGVzXG4gICAgICogeHh4Lnh4eC54eHgueHh4XG4gICAgICogeHh4Lnh4eC54eHgueHh4OnBvcnRcbiAgICAgKiBodHRwOi8veHh4Lnh4eC54eHgueHh4OnBvcnRcbiAgICAgKiBodHRwOi8veHh4Lnh4eC54eHgueHh4XG4gICAgICogaHR0cHM6Ly94eHgueHh4Lnh4eC54eHg6cG9ydFxuICAgICAqIGh0dHBzOi8veHh4Lnh4eC54eHgueHh4ICAgKlxuICAgICAqL1xuICAgICAgZ2V0IGZvclN0cmluZ1dpdGhJcEhvc3QoKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gLyhodHRwKHMpP1xcOlxcL1xcLyk/KDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykoXFw6WzAtOV0rKT8vO1xuICAgICAgICByZXR1cm4gcmVnZXg7XG4gICAgICB9LFxuICAgICAgLyoqXG4gICAgKiBtYXRoZXNcbiAgICAqIGh0dHA6Ly9kb21haW4uY29tOnBvcnRcbiAgICAqIGh0dHA6Ly9kb21haW4uY29tXG4gICAgKiBodHRwOi8vZG9tYWluOnBvcnRcbiAgICAqIGh0dHA6Ly9kb21haW5cbiAgICAqIGh0dHBzOi8vZG9tYWluLmNvbTpwb3J0XG4gICAgKiBodHRwczovL2RvbWFpbi5jb21cbiAgICAqIGh0dHBzOi8vZG9tYWluOnBvcnRcbiAgICAqIGh0dHBzOi8vZG9tYWluXG4gICAgKi9cbiAgICAgIGdldCBmb3JTdHJpbmdXaXRoRG9tYWluSG9zdCgpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvKCgoaHR0cChzKT9cXDpcXC9cXC8pP1thLXpBLVowLTldW2EtekEtWjAtOS1dezEsNjF9W2EtekEtWjAtOV0oPzpcXC5bYS16QS1aXXsyLH0pKyhcXDpbMC05XSspPyl8KChodHRwKHMpP1xcOlxcL1xcLylbYS16QS1aMC05LV17MSw2MX0pKS87XG4gICAgICAgIHJldHVybiByZWdleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9oZWxwZXJzL2hlbHBlcnMtc3RyaW5ncy1yZWdleGVzLnRzIl19
@@ -1,5 +1,6 @@
1
1
  export * from './validators/validators';
2
2
  export { HelpersAngular } from './helpers/for-browser/angular.helper';
3
+ export * from './utils';
3
4
  import { HelpersFiredev as Base } from './helpers/helpers';
4
5
  /**
5
6
  * Firedev helpers
@@ -11,4 +12,4 @@ export * from './models';
11
12
  /* */
12
13
  ;
13
14
  ({}); // @--end-of-file-for-module=tnp-helpers lib/index.ts
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxjQUFjLElBQUksSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0Q7O0dBRUcsQ0FBQyxhQUFhO0FBQ2pCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBUyxJQUFJLENBQUMsUUFBZ0IsQ0FBQztBQUNuRCxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFVBQVUsQ0FBQztBQUN6QixLQUFLO0FBQ0wsS0FBSztBQUdKLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgSGVscGVyc0FuZ3VsYXIgfSBmcm9tICcuL2hlbHBlcnMvZm9yLWJyb3dzZXIvYW5ndWxhci5oZWxwZXInO1xuXG5cbmltcG9ydCB7IEhlbHBlcnNGaXJlZGV2IGFzIEJhc2UgfSBmcm9tICcuL2hlbHBlcnMvaGVscGVycyc7XG4vKipcbiAqIEZpcmVkZXYgaGVscGVyc1xuICovIC8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBIZWxwZXJzOiBCYXNlID0gQmFzZS5JbnN0YW5jZSBhcyBCYXNlO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbi8qICovXG4vKiAqL1xuICBcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9pbmRleC50cyJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3RFLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLElBQUksSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0Q7O0dBRUcsQ0FBQyxhQUFhO0FBQ2pCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBUyxJQUFJLENBQUMsUUFBZ0IsQ0FBQztBQUNuRCxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFVBQVUsQ0FBQztBQUN6QixLQUFLO0FBQ0wsS0FBSztBQUdKLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgSGVscGVyc0FuZ3VsYXIgfSBmcm9tICcuL2hlbHBlcnMvZm9yLWJyb3dzZXIvYW5ndWxhci5oZWxwZXInO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgSGVscGVyc0ZpcmVkZXYgYXMgQmFzZSB9IGZyb20gJy4vaGVscGVycy9oZWxwZXJzJztcbi8qKlxuICogRmlyZWRldiBoZWxwZXJzXG4gKi8gLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNvbnN0IEhlbHBlcnM6IEJhc2UgPSBCYXNlLkluc3RhbmNlIGFzIEJhc2U7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuLyogKi9cbi8qICovXG4gIFxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2luZGV4LnRzIl19
@@ -0,0 +1,45 @@
1
+ import { CoreModels, Utils } from 'tnp-core/browser';
2
+ export var UtilsNpm;
3
+ (function (UtilsNpm) {
4
+ UtilsNpm.isSpecialVersion = (version) => {
5
+ return CoreModels.NpmSpecialVersions.includes(version);
6
+ };
7
+ UtilsNpm.clearVersion = (version, options) => {
8
+ const { removePrefixes, removeSuffix } = options || {};
9
+ if (!version || UtilsNpm.isSpecialVersion(version)) {
10
+ return version;
11
+ }
12
+ version = (version || '')
13
+ .trim()
14
+ .replace(new RegExp(Utils.escapeStringForRegEx('undefined'), 'g'), '0');
15
+ if (removePrefixes) {
16
+ version = version.replace('^', '').replace('~', '');
17
+ }
18
+ let [major, minor, patch, alphaOrBetaOrRc] = version.split('.');
19
+ if (removeSuffix) {
20
+ alphaOrBetaOrRc = '';
21
+ }
22
+ return UtilsNpm.fixMajorVerNumber(`${major}.${minor}.${patch}${alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''}`);
23
+ };
24
+ UtilsNpm.fixMajorVerNumber = (version) => {
25
+ if (!version || UtilsNpm.isSpecialVersion(version)) {
26
+ return version;
27
+ }
28
+ version = (version || '')
29
+ .trim()
30
+ .replace(new RegExp(Utils.escapeStringForRegEx('undefined'), 'g'), '0');
31
+ const splited = version.split('.');
32
+ let [major, minor, patch, alphaOrBetaOrRc] = splited;
33
+ if (splited.length === 1) {
34
+ minor = '0';
35
+ patch = '0';
36
+ }
37
+ else if (splited.length === 2) {
38
+ patch = '0';
39
+ }
40
+ return `${major}.${minor}.${patch}${alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''}`;
41
+ };
42
+ })(UtilsNpm || (UtilsNpm = {}));
43
+ ;
44
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/utils.ts
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBSyxVQUFVLEVBQVcsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakUsTUFBTSxLQUFXLFFBQVEsQ0E0RHhCO0FBNURELFdBQWlCLFFBQVE7SUFFVix5QkFBZ0IsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO1FBQ2xELE9BQU8sVUFBVSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUM7SUFJVyxxQkFBWSxHQUFHLENBQzFCLE9BQWUsRUFDZixPQU1DLEVBQ0QsRUFBRTtRQUNGLE1BQU0sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUV2RCxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQUEsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQzthQUN0QixJQUFJLEVBQUU7YUFDTixPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTFFLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hFLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxTQUFBLGlCQUFpQixDQUN0QixHQUFHLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVFLENBQUM7SUFDSixDQUFDLENBQUM7SUFJVywwQkFBaUIsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO1FBQ25ELElBQUksQ0FBQyxPQUFPLElBQUksU0FBQSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2FBQ3RCLElBQUksRUFBRTthQUNOLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ3JELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNkLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEdBQUcsS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNyRixDQUFDLENBQUM7QUFFSixDQUFDLEVBNURnQixRQUFRLEtBQVIsUUFBUSxRQTREeEI7QUFHQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFEQUFxRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfLCBDb3JlTW9kZWxzLCBIZWxwZXJzLCBVdGlscyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuXG5cbmV4cG9ydCBuYW1lc3BhY2UgVXRpbHNOcG0ge1xuXG4gIGV4cG9ydCBjb25zdCBpc1NwZWNpYWxWZXJzaW9uID0gKHZlcnNpb246IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBDb3JlTW9kZWxzLk5wbVNwZWNpYWxWZXJzaW9ucy5pbmNsdWRlcyh2ZXJzaW9uKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGNsZWFyVmVyc2lvbiA9IChcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgcmVtb3ZlUHJlZml4ZXM/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgYWxwaGEsIGJldGEsIHJjLCBsYXRlc3QsIG5leHQgZXRjLlxuICAgICAgICovXG4gICAgICByZW1vdmVTdWZmaXg/OiBib29sZWFuO1xuICAgIH0sXG4gICkgPT4ge1xuICAgIGNvbnN0IHsgcmVtb3ZlUHJlZml4ZXMsIHJlbW92ZVN1ZmZpeCB9ID0gb3B0aW9ucyB8fCB7fTtcblxuICAgIGlmICghdmVyc2lvbiB8fCBpc1NwZWNpYWxWZXJzaW9uKHZlcnNpb24pKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG5cbiAgICB2ZXJzaW9uID0gKHZlcnNpb24gfHwgJycpXG4gICAgICAudHJpbSgpXG4gICAgICAucmVwbGFjZShuZXcgUmVnRXhwKFV0aWxzLmVzY2FwZVN0cmluZ0ZvclJlZ0V4KCd1bmRlZmluZWQnKSwgJ2cnKSwgJzAnKTtcblxuICAgIGlmIChyZW1vdmVQcmVmaXhlcykge1xuICAgICAgdmVyc2lvbiA9IHZlcnNpb24ucmVwbGFjZSgnXicsICcnKS5yZXBsYWNlKCd+JywgJycpO1xuICAgIH1cbiAgICBsZXQgW21ham9yLCBtaW5vciwgcGF0Y2gsIGFscGhhT3JCZXRhT3JSY10gPSB2ZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgaWYgKHJlbW92ZVN1ZmZpeCkge1xuICAgICAgYWxwaGFPckJldGFPclJjID0gJyc7XG4gICAgfVxuICAgIHJldHVybiBmaXhNYWpvclZlck51bWJlcihcbiAgICAgIGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofSR7YWxwaGFPckJldGFPclJjID8gJy4nICsgYWxwaGFPckJldGFPclJjIDogJyd9YCxcbiAgICApO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZml4TWFqb3JWZXJOdW1iZXIgPSAodmVyc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF2ZXJzaW9uIHx8IGlzU3BlY2lhbFZlcnNpb24odmVyc2lvbikpIHtcbiAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgIH1cbiAgICB2ZXJzaW9uID0gKHZlcnNpb24gfHwgJycpXG4gICAgICAudHJpbSgpXG4gICAgICAucmVwbGFjZShuZXcgUmVnRXhwKFV0aWxzLmVzY2FwZVN0cmluZ0ZvclJlZ0V4KCd1bmRlZmluZWQnKSwgJ2cnKSwgJzAnKTtcbiAgICBjb25zdCBzcGxpdGVkID0gdmVyc2lvbi5zcGxpdCgnLicpO1xuICAgIGxldCBbbWFqb3IsIG1pbm9yLCBwYXRjaCwgYWxwaGFPckJldGFPclJjXSA9IHNwbGl0ZWQ7XG4gICAgaWYgKHNwbGl0ZWQubGVuZ3RoID09PSAxKSB7XG4gICAgICBtaW5vciA9ICcwJztcbiAgICAgIHBhdGNoID0gJzAnO1xuICAgIH0gZWxzZSBpZiAoc3BsaXRlZC5sZW5ndGggPT09IDIpIHtcbiAgICAgIHBhdGNoID0gJzAnO1xuICAgIH1cbiAgICByZXR1cm4gYCR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9JHthbHBoYU9yQmV0YU9yUmMgPyAnLicgKyBhbHBoYU9yQmV0YU9yUmMgOiAnJ31gO1xuICB9O1xuXG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi91dGlscy50cyJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as core from 'tnp-core/browser';
2
- import { _, CoreHelpers, crossPlatformPath, path, chalk } from 'tnp-core/browser';
2
+ import { _, CoreModels, Utils, CoreHelpers, crossPlatformPath, path, chalk } from 'tnp-core/browser';
3
3
  import { Subject } from 'rxjs';
4
4
  import * as fuzzy from 'fuzzy';
5
5
  import { CLASS } from 'typescript-class-helpers/browser';
@@ -130,6 +130,50 @@ var HelpersAngular;
130
130
  ;
131
131
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers/for-browser/angular.helper.ts
132
132
 
133
+ var UtilsNpm;
134
+ (function (UtilsNpm) {
135
+ UtilsNpm.isSpecialVersion = (version) => {
136
+ return CoreModels.NpmSpecialVersions.includes(version);
137
+ };
138
+ UtilsNpm.clearVersion = (version, options) => {
139
+ const { removePrefixes, removeSuffix } = options || {};
140
+ if (!version || UtilsNpm.isSpecialVersion(version)) {
141
+ return version;
142
+ }
143
+ version = (version || '')
144
+ .trim()
145
+ .replace(new RegExp(Utils.escapeStringForRegEx('undefined'), 'g'), '0');
146
+ if (removePrefixes) {
147
+ version = version.replace('^', '').replace('~', '');
148
+ }
149
+ let [major, minor, patch, alphaOrBetaOrRc] = version.split('.');
150
+ if (removeSuffix) {
151
+ alphaOrBetaOrRc = '';
152
+ }
153
+ return UtilsNpm.fixMajorVerNumber(`${major}.${minor}.${patch}${alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''}`);
154
+ };
155
+ UtilsNpm.fixMajorVerNumber = (version) => {
156
+ if (!version || UtilsNpm.isSpecialVersion(version)) {
157
+ return version;
158
+ }
159
+ version = (version || '')
160
+ .trim()
161
+ .replace(new RegExp(Utils.escapeStringForRegEx('undefined'), 'g'), '0');
162
+ const splited = version.split('.');
163
+ let [major, minor, patch, alphaOrBetaOrRc] = splited;
164
+ if (splited.length === 1) {
165
+ minor = '0';
166
+ patch = '0';
167
+ }
168
+ else if (splited.length === 2) {
169
+ patch = '0';
170
+ }
171
+ return `${major}.${minor}.${patch}${alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''}`;
172
+ };
173
+ })(UtilsNpm || (UtilsNpm = {}));
174
+ ;
175
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/utils.ts
176
+
133
177
  class HelpersArrayObj {
134
178
  from(s) {
135
179
  if (_.isArray(s)) {
@@ -247,7 +291,7 @@ class HelpersArrayObj {
247
291
 
248
292
  class HelpersStringsRegexes {
249
293
  escapeStringForRegEx(s) {
250
- return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
294
+ return Utils.escapeStringForRegEx(s);
251
295
  }
252
296
  matchExactOnce(s, regex) {
253
297
  if (!_.isString(s) || !_.isRegExp(regex)) {
@@ -2681,7 +2725,16 @@ class BaseNpmHelpers extends BaseFeatureForProject {
2681
2725
  /**
2682
2726
  * Update dependency in package.json
2683
2727
  */
2684
- async updateDep({ packageName, version, updateFiredevJsonFirst, }) {
2728
+ async updateDep({ packageName, version, updateFiredevJsonFirst, addIfNotExists, }) {
2729
+ /* */
2730
+ /* */
2731
+ /* */
2732
+ /* */
2733
+ /* */
2734
+ /* */
2735
+ /* */
2736
+ /* */
2737
+ /* */
2685
2738
  /* */
2686
2739
  /* */
2687
2740
  /* */
@@ -5677,11 +5730,11 @@ const Helpers = HelpersFiredev.Instance;
5677
5730
  /* */
5678
5731
  ;
5679
5732
  ({}); // @--end-of-file-for-module=tnp-helpers lib/index.ts
5680
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxjQUFjLElBQUksSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0Q7O0dBRUcsQ0FBQyxhQUFhO0FBQ2pCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBUyxJQUFJLENBQUMsUUFBZ0IsQ0FBQztBQUNuRCxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFVBQVUsQ0FBQztBQUN6QixLQUFLO0FBQ0wsS0FBSztBQUdKLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgSGVscGVyc0FuZ3VsYXIgfSBmcm9tICcuL2hlbHBlcnMvZm9yLWJyb3dzZXIvYW5ndWxhci5oZWxwZXInO1xuXG5cbmltcG9ydCB7IEhlbHBlcnNGaXJlZGV2IGFzIEJhc2UgfSBmcm9tICcuL2hlbHBlcnMvaGVscGVycyc7XG4vKipcbiAqIEZpcmVkZXYgaGVscGVyc1xuICovIC8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBIZWxwZXJzOiBCYXNlID0gQmFzZS5JbnN0YW5jZSBhcyBCYXNlO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbi8qICovXG4vKiAqL1xuICBcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9pbmRleC50cyJdfQ==
5733
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3RFLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLElBQUksSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0Q7O0dBRUcsQ0FBQyxhQUFhO0FBQ2pCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBUyxJQUFJLENBQUMsUUFBZ0IsQ0FBQztBQUNuRCxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFVBQVUsQ0FBQztBQUN6QixLQUFLO0FBQ0wsS0FBSztBQUdKLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgSGVscGVyc0FuZ3VsYXIgfSBmcm9tICcuL2hlbHBlcnMvZm9yLWJyb3dzZXIvYW5ndWxhci5oZWxwZXInO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgSGVscGVyc0ZpcmVkZXYgYXMgQmFzZSB9IGZyb20gJy4vaGVscGVycy9oZWxwZXJzJztcbi8qKlxuICogRmlyZWRldiBoZWxwZXJzXG4gKi8gLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNvbnN0IEhlbHBlcnM6IEJhc2UgPSBCYXNlLkluc3RhbmNlIGFzIEJhc2U7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuLyogKi9cbi8qICovXG4gIFxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2luZGV4LnRzIl19
5681
5734
 
5682
5735
  /**
5683
5736
  * Generated bundle index. Do not edit.
5684
5737
  */
5685
5738
 
5686
- export { BaseFeatureForProject, BaseGit, BaseLibraryBuild, BaseLinkedProjects, BaseNpmHelpers, BaseProject, BaseProjectResolver, BaseProjectTypeArr, BaseReleaseProcess, CommitData, CoreAngularProject, CoreProject, CoreTypescriptProject, Helpers, HelpersAngular, LinkedPorjectsConfig, LinkedProject, Validators };
5739
+ export { BaseFeatureForProject, BaseGit, BaseLibraryBuild, BaseLinkedProjects, BaseNpmHelpers, BaseProject, BaseProjectResolver, BaseProjectTypeArr, BaseReleaseProcess, CommitData, CoreAngularProject, CoreProject, CoreTypescriptProject, Helpers, HelpersAngular, LinkedPorjectsConfig, LinkedProject, UtilsNpm, Validators };
5687
5740
  //# sourceMappingURL=tnp-helpers.mjs.map