find-cli 1.7.4 → 1.7.7

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 (158) hide show
  1. package/.swcrc +5 -0
  2. package/find.js +3 -3
  3. package/lib/abbreviations.js +26 -0
  4. package/lib/action/addRootDirectoryPath.js +38 -0
  5. package/lib/action/find.js +73 -0
  6. package/lib/action/help.js +15 -0
  7. package/lib/action/initialise.js +23 -0
  8. package/lib/action/listRootDirectoryPaths.js +27 -0
  9. package/lib/action/removeRootDirectoryPath.js +39 -0
  10. package/lib/action/version.js +19 -0
  11. package/lib/commands.js +42 -0
  12. package/lib/configuration/version_1_1.js +25 -0
  13. package/lib/configuration/version_1_2.js +42 -0
  14. package/lib/configuration/version_1_3.js +24 -0
  15. package/lib/configuration/version_1_4.js +29 -0
  16. package/lib/configuration/version_1_7.js +44 -0
  17. package/lib/configuration.js +216 -0
  18. package/lib/constants.js +58 -0
  19. package/lib/converter/alternates.js +135 -0
  20. package/lib/converter/characterClass.js +148 -0
  21. package/lib/converter/default.js +131 -0
  22. package/lib/converter/directory.js +131 -0
  23. package/lib/converter/escapedCharacter.js +131 -0
  24. package/lib/converter/period.js +131 -0
  25. package/lib/converter/questionMark.js +131 -0
  26. package/lib/converter/repeatedDirectories.js +131 -0
  27. package/lib/converter/repeatedWildcard.js +131 -0
  28. package/lib/converter/singleDirectory.js +131 -0
  29. package/lib/converter/singleWildcard.js +131 -0
  30. package/lib/converter.js +71 -0
  31. package/lib/converters.js +42 -0
  32. package/lib/defaults.js +50 -0
  33. package/lib/descriptions.js +30 -0
  34. package/lib/find.js +53 -0
  35. package/lib/isIgnored/asynchronous.js +61 -0
  36. package/lib/isIgnored/synchronous.js +83 -0
  37. package/lib/line.js +196 -0
  38. package/lib/main.js +89 -0
  39. package/lib/messages.js +74 -0
  40. package/lib/occurrence.js +69 -0
  41. package/lib/operation/addRootDirectoryPath.js +19 -0
  42. package/lib/operation/find.js +69 -0
  43. package/lib/operation/listRootDirectoryPaths.js +38 -0
  44. package/lib/operation/previousRule.js +34 -0
  45. package/lib/operation/prompt/addRootDirectoryPath.js +41 -0
  46. package/lib/operation/prompt/ignoreOrPermitPath.js +37 -0
  47. package/lib/operation/prompt/pathRule.js +41 -0
  48. package/lib/operation/prompt/previousRule.js +44 -0
  49. package/lib/operation/prompt/removeRootDirectoryPath.js +50 -0
  50. package/lib/operation/prompt/rule.js +60 -0
  51. package/lib/operation/removeRootDirectoryPath.js +28 -0
  52. package/lib/operation/removeRootDirectoryPathByIndex.js +35 -0
  53. package/lib/operation/rule.js +34 -0
  54. package/lib/operation/updatePatRules.js +40 -0
  55. package/lib/operation/validateRootDirectoryPath.js +30 -0
  56. package/lib/options.js +54 -0
  57. package/lib/prepare.js +37 -0
  58. package/lib/rule/glob.js +223 -0
  59. package/lib/rule/regex.js +171 -0
  60. package/lib/rule/string.js +154 -0
  61. package/lib/types.js +26 -0
  62. package/lib/utilities/find.js +140 -0
  63. package/lib/utilities/literal.js +33 -0
  64. package/lib/utilities/log.js +45 -0
  65. package/lib/utilities/operation.js +32 -0
  66. package/lib/utilities/path.js +53 -0
  67. package/lib/utilities/prompt.js +97 -0
  68. package/lib/utilities/rule.js +17 -0
  69. package/lib/utilities/string.js +69 -0
  70. package/lib/utilities/validate.js +58 -0
  71. package/lib/versions.js +38 -0
  72. package/package.json +21 -6
  73. package/{bin → src}/abbreviations.js +3 -1
  74. package/src/action/addRootDirectoryPath.js +29 -0
  75. package/{bin → src}/action/find.js +8 -10
  76. package/{bin → src}/action/help.js +1 -3
  77. package/{bin → src}/action/initialise.js +3 -5
  78. package/src/action/listRootDirectoryPaths.js +16 -0
  79. package/src/action/removeRootDirectoryPath.js +31 -0
  80. package/src/action/version.js +13 -0
  81. package/src/commands.js +9 -0
  82. package/{bin → src}/configuration/version_1_1.js +2 -6
  83. package/{bin → src}/configuration/version_1_2.js +3 -7
  84. package/src/configuration/version_1_3.js +18 -0
  85. package/{bin → src}/configuration/version_1_4.js +2 -6
  86. package/{bin → src}/configuration/version_1_7.js +4 -9
  87. package/{bin → src}/configuration.js +15 -15
  88. package/src/constants.js +13 -0
  89. package/{bin → src}/converter/alternates.js +3 -3
  90. package/{bin → src}/converter/characterClass.js +3 -3
  91. package/{bin → src}/converter/default.js +2 -2
  92. package/{bin → src}/converter/directory.js +2 -2
  93. package/{bin → src}/converter/escapedCharacter.js +2 -2
  94. package/{bin → src}/converter/period.js +2 -2
  95. package/{bin → src}/converter/questionMark.js +2 -2
  96. package/{bin → src}/converter/repeatedDirectories.js +2 -2
  97. package/{bin → src}/converter/repeatedWildcard.js +2 -2
  98. package/{bin → src}/converter/singleDirectory.js +2 -2
  99. package/{bin → src}/converter/singleWildcard.js +2 -2
  100. package/{bin → src}/converter.js +3 -5
  101. package/src/converters.js +29 -0
  102. package/src/defaults.js +11 -0
  103. package/src/descriptions.js +6 -0
  104. package/{bin → src}/find.js +3 -5
  105. package/{bin → src}/isIgnored/asynchronous.js +7 -12
  106. package/{bin → src}/isIgnored/synchronous.js +5 -10
  107. package/{bin → src}/line.js +4 -6
  108. package/{bin → src}/main.js +19 -21
  109. package/src/messages.js +17 -0
  110. package/{bin → src}/occurrence.js +2 -4
  111. package/{bin → src}/operation/addRootDirectoryPath.js +2 -4
  112. package/{bin → src}/operation/find.js +8 -10
  113. package/{bin → src}/operation/listRootDirectoryPaths.js +4 -10
  114. package/{bin → src}/operation/previousRule.js +3 -5
  115. package/{bin → src}/operation/prompt/addRootDirectoryPath.js +5 -7
  116. package/{bin → src}/operation/prompt/ignoreOrPermitPath.js +6 -8
  117. package/{bin → src}/operation/prompt/pathRule.js +6 -8
  118. package/{bin → src}/operation/prompt/previousRule.js +4 -6
  119. package/{bin → src}/operation/prompt/removeRootDirectoryPath.js +6 -8
  120. package/{bin → src}/operation/prompt/rule.js +7 -9
  121. package/{bin → src}/operation/removeRootDirectoryPath.js +3 -5
  122. package/{bin → src}/operation/removeRootDirectoryPathByIndex.js +3 -9
  123. package/{bin → src}/operation/rule.js +2 -4
  124. package/{bin → src}/operation/updatePatRules.js +3 -5
  125. package/{bin → src}/operation/validateRootDirectoryPath.js +3 -5
  126. package/src/options.js +12 -0
  127. package/{bin → src}/prepare.js +11 -13
  128. package/{bin → src}/rule/glob.js +7 -9
  129. package/{bin → src}/rule/regex.js +12 -14
  130. package/{bin → src}/rule/string.js +5 -7
  131. package/src/types.js +5 -0
  132. package/{bin → src}/utilities/find.js +7 -11
  133. package/src/utilities/literal.js +13 -0
  134. package/src/utilities/log.js +18 -0
  135. package/{bin → src}/utilities/operation.js +2 -6
  136. package/{bin → src}/utilities/path.js +5 -11
  137. package/{bin → src}/utilities/prompt.js +5 -10
  138. package/{bin → src}/utilities/rule.js +1 -5
  139. package/src/utilities/string.js +21 -0
  140. package/{bin → src}/utilities/validate.js +5 -12
  141. package/src/versions.js +8 -0
  142. package/bin/action/addRootDirectoryPath.js +0 -31
  143. package/bin/action/listRootDirectoryPaths.js +0 -18
  144. package/bin/action/removeRootDirectoryPath.js +0 -33
  145. package/bin/action/version.js +0 -15
  146. package/bin/commands.js +0 -19
  147. package/bin/configuration/version_1_3.js +0 -22
  148. package/bin/constants.js +0 -27
  149. package/bin/converters.js +0 -29
  150. package/bin/defaults.js +0 -23
  151. package/bin/descriptions.js +0 -13
  152. package/bin/messages.js +0 -35
  153. package/bin/options.js +0 -25
  154. package/bin/types.js +0 -11
  155. package/bin/utilities/literal.js +0 -19
  156. package/bin/utilities/log.js +0 -26
  157. package/bin/utilities/string.js +0 -33
  158. package/bin/versions.js +0 -17
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return removeRootDirectoryPathOperation;
9
+ }
10
+ });
11
+ var _configuration = require("../configuration");
12
+ var _removeRootDirectoryPathByIndex = require("./removeRootDirectoryPathByIndex");
13
+ function removeRootDirectoryPathOperation(proceed, abort, context) {
14
+ var rootDirectoryPath = context.rootDirectoryPath;
15
+ if (rootDirectoryPath === null) {
16
+ proceed();
17
+ return;
18
+ }
19
+ var rootDirectoryPaths = (0, _configuration.retrieveRootDirectoryPaths)(), index = rootDirectoryPaths.indexOf(rootDirectoryPath);
20
+ if (index === -1) {
21
+ abort();
22
+ return;
23
+ }
24
+ (0, _removeRootDirectoryPathByIndex.removeRootDirectoryPathByIndex)(index);
25
+ proceed();
26
+ }
27
+
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vcmVtb3ZlUm9vdERpcmVjdG9yeVBhdGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHJldHJpZXZlUm9vdERpcmVjdG9yeVBhdGhzIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IHJlbW92ZVJvb3REaXJlY3RvcnlQYXRoQnlJbmRleCB9IGZyb20gXCIuL3JlbW92ZVJvb3REaXJlY3RvcnlQYXRoQnlJbmRleFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1vdmVSb290RGlyZWN0b3J5UGF0aE9wZXJhdGlvbihwcm9jZWVkLCBhYm9ydCwgY29udGV4dCkge1xuICBjb25zdCB7IHJvb3REaXJlY3RvcnlQYXRoIH0gPSBjb250ZXh0O1xuXG4gIGlmIChyb290RGlyZWN0b3J5UGF0aCA9PT0gbnVsbCkge1xuICAgIHByb2NlZWQoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJvb3REaXJlY3RvcnlQYXRocyA9IHJldHJpZXZlUm9vdERpcmVjdG9yeVBhdGhzKCksXG4gICAgICAgIGluZGV4ID0gcm9vdERpcmVjdG9yeVBhdGhzLmluZGV4T2Yocm9vdERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICBhYm9ydCgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVtb3ZlUm9vdERpcmVjdG9yeVBhdGhCeUluZGV4KGluZGV4KTtcblxuICBwcm9jZWVkKCk7XG59XG4iXSwibmFtZXMiOlsicmVtb3ZlUm9vdERpcmVjdG9yeVBhdGhPcGVyYXRpb24iLCJwcm9jZWVkIiwiYWJvcnQiLCJjb250ZXh0Iiwicm9vdERpcmVjdG9yeVBhdGgiLCJyb290RGlyZWN0b3J5UGF0aHMiLCJyZXRyaWV2ZVJvb3REaXJlY3RvcnlQYXRocyIsImluZGV4IiwiaW5kZXhPZiIsInJlbW92ZVJvb3REaXJlY3RvcnlQYXRoQnlJbmRleCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUF3QkE7Ozs2QkFIbUI7OENBQ0k7QUFFaEMsU0FBU0EsaUNBQWlDQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsT0FBTztJQUM5RSxJQUFNLEFBQUVDLG9CQUFzQkQsUUFBdEJDO0lBRVIsSUFBSUEsc0JBQXNCLE1BQU07UUFDOUJIO1FBRUE7SUFDRjtJQUVBLElBQU1JLHFCQUFxQkMsSUFBQUEseUNBQTBCLEtBQy9DQyxRQUFRRixtQkFBbUJHLE9BQU8sQ0FBQ0o7SUFFekMsSUFBSUcsVUFBVSxDQUFDLEdBQUc7UUFDaEJMO1FBRUE7SUFDRjtJQUVBTyxJQUFBQSw4REFBOEIsRUFBQ0Y7SUFFL0JOO0FBQ0YifQ==
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get default () {
13
+ return removeRootDirectoryPathByIndexOperation;
14
+ },
15
+ get removeRootDirectoryPathByIndex () {
16
+ return removeRootDirectoryPathByIndex;
17
+ }
18
+ });
19
+ var _configuration = require("../configuration");
20
+ function removeRootDirectoryPathByIndexOperation(proceed, abort, context) {
21
+ var index = context.index;
22
+ if (index === null) {
23
+ proceed();
24
+ return;
25
+ }
26
+ removeRootDirectoryPathByIndex(index);
27
+ proceed();
28
+ }
29
+ function removeRootDirectoryPathByIndex(index) {
30
+ var start = index, deleteCount = 1, rootDirectoryPaths = (0, _configuration.retrieveRootDirectoryPaths)();
31
+ rootDirectoryPaths.splice(start, deleteCount);
32
+ (0, _configuration.updateRootDirectoryPaths)(rootDirectoryPaths);
33
+ }
34
+
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vcmVtb3ZlUm9vdERpcmVjdG9yeVBhdGhCeUluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyByZXRyaWV2ZVJvb3REaXJlY3RvcnlQYXRocywgdXBkYXRlUm9vdERpcmVjdG9yeVBhdGhzIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVtb3ZlUm9vdERpcmVjdG9yeVBhdGhCeUluZGV4T3BlcmF0aW9uKHByb2NlZWQsIGFib3J0LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXggfSA9IGNvbnRleHQ7XG5cbiAgaWYgKGluZGV4ID09PSBudWxsKSB7XG4gICAgcHJvY2VlZCgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVtb3ZlUm9vdERpcmVjdG9yeVBhdGhCeUluZGV4KGluZGV4KTtcblxuICBwcm9jZWVkKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVSb290RGlyZWN0b3J5UGF0aEJ5SW5kZXgoaW5kZXgpIHtcbiAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgIHJvb3REaXJlY3RvcnlQYXRocyA9IHJldHJpZXZlUm9vdERpcmVjdG9yeVBhdGhzKClcblxuICByb290RGlyZWN0b3J5UGF0aHMuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCk7XG5cbiAgdXBkYXRlUm9vdERpcmVjdG9yeVBhdGhzKHJvb3REaXJlY3RvcnlQYXRocyk7XG5cbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVSb290RGlyZWN0b3J5UGF0aEJ5SW5kZXhPcGVyYXRpb24iLCJyZW1vdmVSb290RGlyZWN0b3J5UGF0aEJ5SW5kZXgiLCJwcm9jZWVkIiwiYWJvcnQiLCJjb250ZXh0IiwiaW5kZXgiLCJzdGFydCIsImRlbGV0ZUNvdW50Iiwicm9vdERpcmVjdG9yeVBhdGhzIiwicmV0cmlldmVSb290RGlyZWN0b3J5UGF0aHMiLCJzcGxpY2UiLCJ1cGRhdGVSb290RGlyZWN0b3J5UGF0aHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUlBO2VBQXdCQTs7UUFjUkM7ZUFBQUE7Ozs2QkFoQnFEO0FBRXRELFNBQVNELHdDQUF3Q0UsT0FBTyxFQUFFQyxLQUFLLEVBQUVDLE9BQU87SUFDckYsSUFBTSxBQUFFQyxRQUFVRCxRQUFWQztJQUVSLElBQUlBLFVBQVUsTUFBTTtRQUNsQkg7UUFFQTtJQUNGO0lBRUFELCtCQUErQkk7SUFFL0JIO0FBQ0Y7QUFFTyxTQUFTRCwrQkFBK0JJLEtBQUs7SUFDbEQsSUFBTUMsUUFBUUQsT0FDUkUsY0FBYyxHQUNkQyxxQkFBcUJDLElBQUFBLHlDQUEwQjtJQUVyREQsbUJBQW1CRSxNQUFNLENBQUNKLE9BQU9DO0lBRWpDSSxJQUFBQSx1Q0FBd0IsRUFBQ0g7QUFFM0IifQ==
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ruleOperation;
9
+ }
10
+ });
11
+ var _rule = require("../utilities/rule");
12
+ function ruleOperation(proceed, abort, context) {
13
+ var dryRun = context.dryRun;
14
+ if (dryRun) {
15
+ proceed();
16
+ return;
17
+ }
18
+ var previous = context.previous, interactive = context.interactive;
19
+ if (previous || interactive) {
20
+ proceed();
21
+ return;
22
+ }
23
+ var string = context.string, anchored = true, directory = false, rule = (0, _rule.ruleFromStringAnchoredAndDirectory)(string, anchored, directory);
24
+ if (rule === null) {
25
+ abort();
26
+ return;
27
+ }
28
+ Object.assign(context, {
29
+ rule: rule
30
+ });
31
+ proceed();
32
+ }
33
+
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vcnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcnVsZUZyb21TdHJpbmdBbmNob3JlZEFuZERpcmVjdG9yeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcnVsZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBydWxlT3BlcmF0aW9uKHByb2NlZWQsIGFib3J0LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgZHJ5UnVuIH0gPSBjb250ZXh0O1xuXG4gIGlmIChkcnlSdW4pIHtcbiAgICBwcm9jZWVkKCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHByZXZpb3VzLCBpbnRlcmFjdGl2ZSB9ID0gY29udGV4dDtcblxuICBpZiAocHJldmlvdXMgfHwgaW50ZXJhY3RpdmUpIHtcbiAgICBwcm9jZWVkKCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHN0cmluZyB9ID0gY29udGV4dCxcbiAgICAgICAgYW5jaG9yZWQgPSB0cnVlLFxuICAgICAgICBkaXJlY3RvcnkgPSBmYWxzZSxcbiAgICAgICAgcnVsZSA9IHJ1bGVGcm9tU3RyaW5nQW5jaG9yZWRBbmREaXJlY3Rvcnkoc3RyaW5nLCBhbmNob3JlZCwgZGlyZWN0b3J5KTtcblxuICBpZiAocnVsZSA9PT0gbnVsbCkge1xuICAgIGFib3J0KCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICBydWxlXG4gIH0pO1xuXG4gIHByb2NlZWQoKTtcbn1cbiJdLCJuYW1lcyI6WyJydWxlT3BlcmF0aW9uIiwicHJvY2VlZCIsImFib3J0IiwiY29udGV4dCIsImRyeVJ1biIsInByZXZpb3VzIiwiaW50ZXJhY3RpdmUiLCJzdHJpbmciLCJhbmNob3JlZCIsImRpcmVjdG9yeSIsInJ1bGUiLCJydWxlRnJvbVN0cmluZ0FuY2hvcmVkQW5kRGlyZWN0b3J5IiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXdCQTs7O29CQUYyQjtBQUVwQyxTQUFTQSxjQUFjQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsT0FBTztJQUMzRCxJQUFNLEFBQUVDLFNBQVdELFFBQVhDO0lBRVIsSUFBSUEsUUFBUTtRQUNWSDtRQUVBO0lBQ0Y7SUFFQSxJQUFRSSxXQUEwQkYsUUFBMUJFLFVBQVVDLGNBQWdCSCxRQUFoQkc7SUFFbEIsSUFBSUQsWUFBWUMsYUFBYTtRQUMzQkw7UUFFQTtJQUNGO0lBRUEsSUFBTSxBQUFFTSxTQUFXSixRQUFYSSxRQUNGQyxXQUFXLE1BQ1hDLFlBQVksT0FDWkMsT0FBT0MsSUFBQUEsd0NBQWtDLEVBQUNKLFFBQVFDLFVBQVVDO0lBRWxFLElBQUlDLFNBQVMsTUFBTTtRQUNqQlI7UUFFQTtJQUNGO0lBRUFVLE9BQU9DLE1BQU0sQ0FBQ1YsU0FBUztRQUNyQk8sTUFBQUE7SUFDRjtJQUVBVDtBQUNGIn0=
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return updatePathRulesOperation;
9
+ }
10
+ });
11
+ var _configuration = require("../configuration");
12
+ function updatePathRulesOperation(proceed, abort, context) {
13
+ var pathRule = context.pathRule, directory = context.directory, pathIgnored = context.pathIgnored;
14
+ pathIgnored ? addIgnoreRule(pathRule, directory, context) : addPermitRule(pathRule, directory, context);
15
+ proceed();
16
+ }
17
+ function addIgnoreRule(pathRule, directory, context) {
18
+ if (directory) {
19
+ var ignoredDirectoryPathRules = context.ignoredDirectoryPathRules, ignoredDirectoryPathRule = pathRule; ///
20
+ ignoredDirectoryPathRules.push(ignoredDirectoryPathRule);
21
+ (0, _configuration.updateIgnoredDirectoryPathRules)(ignoredDirectoryPathRules);
22
+ } else {
23
+ var ignoredFilePathRules = context.ignoredFilePathRules, ignoredFilePathRule = pathRule; ///
24
+ ignoredFilePathRules.push(ignoredFilePathRule);
25
+ (0, _configuration.updateIgnoredFilePathRules)(ignoredFilePathRules);
26
+ }
27
+ }
28
+ function addPermitRule(pathRule, directory, context) {
29
+ if (directory) {
30
+ var permittedDirectoryPathRules = context.permittedDirectoryPathRules, permittedDirectoryPathRule = pathRule; ///
31
+ permittedDirectoryPathRules.push(permittedDirectoryPathRule);
32
+ (0, _configuration.updatePermittedDirectoryPathRules)(permittedDirectoryPathRules);
33
+ } else {
34
+ var permittedFilePathRules = context.permittedFilePathRules, permittedFilePathRule = pathRule; ///
35
+ permittedFilePathRules.push(permittedFilePathRule);
36
+ (0, _configuration.updatePermittedFilePathRules)(permittedFilePathRules);
37
+ }
38
+ }
39
+
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vdXBkYXRlUGF0UnVsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHVwZGF0ZUlnbm9yZWRGaWxlUGF0aFJ1bGVzLFxuICAgICAgICB1cGRhdGVQZXJtaXR0ZWRGaWxlUGF0aFJ1bGVzLFxuICAgICAgICB1cGRhdGVJZ25vcmVkRGlyZWN0b3J5UGF0aFJ1bGVzLFxuICAgICAgICB1cGRhdGVQZXJtaXR0ZWREaXJlY3RvcnlQYXRoUnVsZXMgfSBmcm9tIFwiLi4vY29uZmlndXJhdGlvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1cGRhdGVQYXRoUnVsZXNPcGVyYXRpb24ocHJvY2VlZCwgYWJvcnQsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwYXRoUnVsZSwgZGlyZWN0b3J5LCBwYXRoSWdub3JlZCB9ID0gY29udGV4dDtcblxuICBwYXRoSWdub3JlZCA/XG4gICAgYWRkSWdub3JlUnVsZShwYXRoUnVsZSwgZGlyZWN0b3J5LCBjb250ZXh0KSA6XG4gICAgICBhZGRQZXJtaXRSdWxlKHBhdGhSdWxlLCBkaXJlY3RvcnksIGNvbnRleHQpO1xuXG4gIHByb2NlZWQoKTtcbn1cblxuZnVuY3Rpb24gYWRkSWdub3JlUnVsZShwYXRoUnVsZSwgZGlyZWN0b3J5LCBjb250ZXh0KSB7XG4gIGlmIChkaXJlY3RvcnkpIHtcbiAgICBjb25zdCB7IGlnbm9yZWREaXJlY3RvcnlQYXRoUnVsZXMgfSA9IGNvbnRleHQsXG4gICAgICAgICAgaWdub3JlZERpcmVjdG9yeVBhdGhSdWxlID0gcGF0aFJ1bGU7ICAvLy9cblxuICAgIGlnbm9yZWREaXJlY3RvcnlQYXRoUnVsZXMucHVzaChpZ25vcmVkRGlyZWN0b3J5UGF0aFJ1bGUpO1xuXG4gICAgdXBkYXRlSWdub3JlZERpcmVjdG9yeVBhdGhSdWxlcyhpZ25vcmVkRGlyZWN0b3J5UGF0aFJ1bGVzKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGlnbm9yZWRGaWxlUGF0aFJ1bGVzIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGlnbm9yZWRGaWxlUGF0aFJ1bGUgPSBwYXRoUnVsZTsgIC8vL1xuXG4gICAgaWdub3JlZEZpbGVQYXRoUnVsZXMucHVzaChpZ25vcmVkRmlsZVBhdGhSdWxlKTtcblxuICAgIHVwZGF0ZUlnbm9yZWRGaWxlUGF0aFJ1bGVzKGlnbm9yZWRGaWxlUGF0aFJ1bGVzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRQZXJtaXRSdWxlKHBhdGhSdWxlLCBkaXJlY3RvcnksIGNvbnRleHQpIHtcbiAgaWYgKGRpcmVjdG9yeSkge1xuICAgIGNvbnN0IHsgcGVybWl0dGVkRGlyZWN0b3J5UGF0aFJ1bGVzIH0gPSBjb250ZXh0LFxuICAgICAgICAgIHBlcm1pdHRlZERpcmVjdG9yeVBhdGhSdWxlID0gcGF0aFJ1bGU7ICAvLy9cblxuICAgIHBlcm1pdHRlZERpcmVjdG9yeVBhdGhSdWxlcy5wdXNoKHBlcm1pdHRlZERpcmVjdG9yeVBhdGhSdWxlKTtcblxuICAgIHVwZGF0ZVBlcm1pdHRlZERpcmVjdG9yeVBhdGhSdWxlcyhwZXJtaXR0ZWREaXJlY3RvcnlQYXRoUnVsZXMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHsgcGVybWl0dGVkRmlsZVBhdGhSdWxlcyB9ID0gY29udGV4dCxcbiAgICAgICAgICBwZXJtaXR0ZWRGaWxlUGF0aFJ1bGUgPSBwYXRoUnVsZTsgIC8vL1xuXG4gICAgcGVybWl0dGVkRmlsZVBhdGhSdWxlcy5wdXNoKHBlcm1pdHRlZEZpbGVQYXRoUnVsZSk7XG5cbiAgICB1cGRhdGVQZXJtaXR0ZWRGaWxlUGF0aFJ1bGVzKHBlcm1pdHRlZEZpbGVQYXRoUnVsZXMpO1xuICB9XG59XG4iXSwibmFtZXMiOlsidXBkYXRlUGF0aFJ1bGVzT3BlcmF0aW9uIiwicHJvY2VlZCIsImFib3J0IiwiY29udGV4dCIsInBhdGhSdWxlIiwiZGlyZWN0b3J5IiwicGF0aElnbm9yZWQiLCJhZGRJZ25vcmVSdWxlIiwiYWRkUGVybWl0UnVsZSIsImlnbm9yZWREaXJlY3RvcnlQYXRoUnVsZXMiLCJpZ25vcmVkRGlyZWN0b3J5UGF0aFJ1bGUiLCJwdXNoIiwidXBkYXRlSWdub3JlZERpcmVjdG9yeVBhdGhSdWxlcyIsImlnbm9yZWRGaWxlUGF0aFJ1bGVzIiwiaWdub3JlZEZpbGVQYXRoUnVsZSIsInVwZGF0ZUlnbm9yZWRGaWxlUGF0aFJ1bGVzIiwicGVybWl0dGVkRGlyZWN0b3J5UGF0aFJ1bGVzIiwicGVybWl0dGVkRGlyZWN0b3J5UGF0aFJ1bGUiLCJ1cGRhdGVQZXJtaXR0ZWREaXJlY3RvcnlQYXRoUnVsZXMiLCJwZXJtaXR0ZWRGaWxlUGF0aFJ1bGVzIiwicGVybWl0dGVkRmlsZVBhdGhSdWxlIiwidXBkYXRlUGVybWl0dGVkRmlsZVBhdGhSdWxlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUF3QkE7Ozs2QkFGeUI7QUFFbEMsU0FBU0EseUJBQXlCQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsT0FBTztJQUN0RSxJQUFRQyxXQUFxQ0QsUUFBckNDLFVBQVVDLFlBQTJCRixRQUEzQkUsV0FBV0MsY0FBZ0JILFFBQWhCRztJQUU3QkEsY0FDRUMsY0FBY0gsVUFBVUMsV0FBV0YsV0FDakNLLGNBQWNKLFVBQVVDLFdBQVdGO0lBRXZDRjtBQUNGO0FBRUEsU0FBU00sY0FBY0gsUUFBUSxFQUFFQyxTQUFTLEVBQUVGLE9BQU87SUFDakQsSUFBSUUsV0FBVztRQUNiLElBQU0sQUFBRUksNEJBQThCTixRQUE5Qk0sMkJBQ0ZDLDJCQUEyQk4sVUFBVyxHQUFHO1FBRS9DSywwQkFBMEJFLElBQUksQ0FBQ0Q7UUFFL0JFLElBQUFBLDhDQUErQixFQUFDSDtJQUNsQyxPQUFPO1FBQ0wsSUFBTSxBQUFFSSx1QkFBeUJWLFFBQXpCVSxzQkFDRkMsc0JBQXNCVixVQUFXLEdBQUc7UUFFMUNTLHFCQUFxQkYsSUFBSSxDQUFDRztRQUUxQkMsSUFBQUEseUNBQTBCLEVBQUNGO0lBQzdCO0FBQ0Y7QUFFQSxTQUFTTCxjQUFjSixRQUFRLEVBQUVDLFNBQVMsRUFBRUYsT0FBTztJQUNqRCxJQUFJRSxXQUFXO1FBQ2IsSUFBTSxBQUFFVyw4QkFBZ0NiLFFBQWhDYSw2QkFDRkMsNkJBQTZCYixVQUFXLEdBQUc7UUFFakRZLDRCQUE0QkwsSUFBSSxDQUFDTTtRQUVqQ0MsSUFBQUEsZ0RBQWlDLEVBQUNGO0lBQ3BDLE9BQU87UUFDTCxJQUFNLEFBQUVHLHlCQUEyQmhCLFFBQTNCZ0Isd0JBQ0ZDLHdCQUF3QmhCLFVBQVcsR0FBRztRQUU1Q2UsdUJBQXVCUixJQUFJLENBQUNTO1FBRTVCQyxJQUFBQSwyQ0FBNEIsRUFBQ0Y7SUFDL0I7QUFDRiJ9
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return validateRootDirectoryPathOperation;
9
+ }
10
+ });
11
+ var _validate = require("../utilities/validate");
12
+ var _messages = require("../messages");
13
+ function validateRootDirectoryPathOperation(proceed, abort, context) {
14
+ var rootDirectoryPath = context.rootDirectoryPath;
15
+ if (rootDirectoryPath === null) {
16
+ proceed();
17
+ return;
18
+ }
19
+ var valid = (0, _validate.validateRootDirectoryPath)(rootDirectoryPath);
20
+ if (!valid) {
21
+ console.log(_messages.INVALID_ROOT_DIRECTORY_PATH_MESSAGE);
22
+ var rootDirectoryPath1 = null;
23
+ Object.assign(context, {
24
+ rootDirectoryPath: rootDirectoryPath1
25
+ });
26
+ }
27
+ proceed();
28
+ }
29
+
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vdmFsaWRhdGVSb290RGlyZWN0b3J5UGF0aC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgdmFsaWRhdGVSb290RGlyZWN0b3J5UGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsaWRhdGVcIjtcbmltcG9ydCB7IElOVkFMSURfUk9PVF9ESVJFQ1RPUllfUEFUSF9NRVNTQUdFIH0gZnJvbSBcIi4uL21lc3NhZ2VzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZhbGlkYXRlUm9vdERpcmVjdG9yeVBhdGhPcGVyYXRpb24ocHJvY2VlZCwgYWJvcnQsIGNvbnRleHQpIHtcbiAgY29uc3QgeyByb290RGlyZWN0b3J5UGF0aCB9ID0gY29udGV4dDtcblxuICBpZiAocm9vdERpcmVjdG9yeVBhdGggPT09IG51bGwpIHtcbiAgICBwcm9jZWVkKCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB2YWxpZCA9IHZhbGlkYXRlUm9vdERpcmVjdG9yeVBhdGgocm9vdERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghdmFsaWQpIHtcbiAgICBjb25zb2xlLmxvZyhJTlZBTElEX1JPT1RfRElSRUNUT1JZX1BBVEhfTUVTU0FHRSk7XG5cbiAgICBjb25zdCByb290RGlyZWN0b3J5UGF0aCA9IG51bGw7XG5cbiAgICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICAgIHJvb3REaXJlY3RvcnlQYXRoXG4gICAgfSk7XG4gIH1cblxuICBwcm9jZWVkKCk7XG59XG4iXSwibmFtZXMiOlsidmFsaWRhdGVSb290RGlyZWN0b3J5UGF0aE9wZXJhdGlvbiIsInByb2NlZWQiLCJhYm9ydCIsImNvbnRleHQiLCJyb290RGlyZWN0b3J5UGF0aCIsInZhbGlkIiwidmFsaWRhdGVSb290RGlyZWN0b3J5UGF0aCIsImNvbnNvbGUiLCJsb2ciLCJJTlZBTElEX1JPT1RfRElSRUNUT1JZX1BBVEhfTUVTU0FHRSIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUF3QkE7Ozt3QkFIa0I7d0JBQ1U7QUFFckMsU0FBU0EsbUNBQW1DQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsT0FBTztJQUNoRixJQUFNLEFBQUVDLG9CQUFzQkQsUUFBdEJDO0lBRVIsSUFBSUEsc0JBQXNCLE1BQU07UUFDOUJIO1FBRUE7SUFDRjtJQUVBLElBQU1JLFFBQVFDLElBQUFBLG1DQUF5QixFQUFDRjtJQUV4QyxJQUFJLENBQUNDLE9BQU87UUFDVkUsUUFBUUMsR0FBRyxDQUFDQyw2Q0FBbUM7UUFFL0MsSUFBTUwscUJBQW9CO1FBRTFCTSxPQUFPQyxNQUFNLENBQUNSLFNBQVM7WUFDckJDLG1CQUFBQTtRQUNGO0lBQ0Y7SUFFQUg7QUFDRiJ9
package/lib/options.js ADDED
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get DRY_RUN_OPTION () {
13
+ return DRY_RUN_OPTION;
14
+ },
15
+ get FORMAT_OPTION () {
16
+ return FORMAT_OPTION;
17
+ },
18
+ get GLOB_OPTION () {
19
+ return GLOB_OPTION;
20
+ },
21
+ get HELP_OPTION () {
22
+ return HELP_OPTION;
23
+ },
24
+ get INTERACTIVE_OPTION () {
25
+ return INTERACTIVE_OPTION;
26
+ },
27
+ get PREVIOUS_OPTION () {
28
+ return PREVIOUS_OPTION;
29
+ },
30
+ get QUIETLY_OPTION () {
31
+ return QUIETLY_OPTION;
32
+ },
33
+ get REGEX_OPTION () {
34
+ return REGEX_OPTION;
35
+ },
36
+ get STRING_OPTION () {
37
+ return STRING_OPTION;
38
+ },
39
+ get VERSION_OPTION () {
40
+ return VERSION_OPTION;
41
+ }
42
+ });
43
+ var HELP_OPTION = "help";
44
+ var GLOB_OPTION = "glob";
45
+ var REGEX_OPTION = "regex";
46
+ var STRING_OPTION = "string";
47
+ var FORMAT_OPTION = "format";
48
+ var VERSION_OPTION = "version";
49
+ var QUIETLY_OPTION = "quietly";
50
+ var DRY_RUN_OPTION = "dry-run";
51
+ var PREVIOUS_OPTION = "previous";
52
+ var INTERACTIVE_OPTION = "interactive";
53
+
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgSEVMUF9PUFRJT04gPSBcImhlbHBcIjtcbmV4cG9ydCBjb25zdCBHTE9CX09QVElPTiA9IFwiZ2xvYlwiO1xuZXhwb3J0IGNvbnN0IFJFR0VYX09QVElPTiA9IFwicmVnZXhcIjtcbmV4cG9ydCBjb25zdCBTVFJJTkdfT1BUSU9OID0gXCJzdHJpbmdcIjtcbmV4cG9ydCBjb25zdCBGT1JNQVRfT1BUSU9OID0gXCJmb3JtYXRcIjtcbmV4cG9ydCBjb25zdCBWRVJTSU9OX09QVElPTiA9IFwidmVyc2lvblwiO1xuZXhwb3J0IGNvbnN0IFFVSUVUTFlfT1BUSU9OID0gXCJxdWlldGx5XCI7XG5leHBvcnQgY29uc3QgRFJZX1JVTl9PUFRJT04gPSBcImRyeS1ydW5cIjtcbmV4cG9ydCBjb25zdCBQUkVWSU9VU19PUFRJT04gPSBcInByZXZpb3VzXCI7XG5leHBvcnQgY29uc3QgSU5URVJBQ1RJVkVfT1BUSU9OID0gXCJpbnRlcmFjdGl2ZVwiO1xuIl0sIm5hbWVzIjpbIkRSWV9SVU5fT1BUSU9OIiwiRk9STUFUX09QVElPTiIsIkdMT0JfT1BUSU9OIiwiSEVMUF9PUFRJT04iLCJJTlRFUkFDVElWRV9PUFRJT04iLCJQUkVWSU9VU19PUFRJT04iLCJRVUlFVExZX09QVElPTiIsIlJFR0VYX09QVElPTiIsIlNUUklOR19PUFRJT04iLCJWRVJTSU9OX09QVElPTiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBU2FBO2VBQUFBOztRQUhBQztlQUFBQTs7UUFIQUM7ZUFBQUE7O1FBREFDO2VBQUFBOztRQVNBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBRkFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFDQUM7ZUFBQUE7O1FBRUFDO2VBQUFBOzs7QUFMTixJQUFNTixjQUFjO0FBQ3BCLElBQU1ELGNBQWM7QUFDcEIsSUFBTUssZUFBZTtBQUNyQixJQUFNQyxnQkFBZ0I7QUFDdEIsSUFBTVAsZ0JBQWdCO0FBQ3RCLElBQU1RLGlCQUFpQjtBQUN2QixJQUFNSCxpQkFBaUI7QUFDdkIsSUFBTU4saUJBQWlCO0FBQ3ZCLElBQU1LLGtCQUFrQjtBQUN4QixJQUFNRCxxQkFBcUIifQ==
package/lib/prepare.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return prepare;
9
+ }
10
+ });
11
+ var _configuration = require("./configuration");
12
+ var _defaults = require("./defaults");
13
+ var _commands = require("./commands");
14
+ function prepare(command, argument, options, main) {
15
+ var _options_help = options.help, help = _options_help === void 0 ? _defaults.DEFAULT_HELP : _options_help, _options_version = options.version, version = _options_version === void 0 ? _defaults.DEFAULT_VERSION : _options_version;
16
+ if (false) {
17
+ ///
18
+ } else if (help) {
19
+ command = _commands.HELP_COMMAND;
20
+ } else if (version) {
21
+ command = _commands.VERSION_COMMAND;
22
+ }
23
+ if (command === _commands.HELP_COMMAND || command === _commands.VERSION_COMMAND || command === _commands.INITIALISE_COMMAND) {
24
+ main(command, argument, options);
25
+ return;
26
+ }
27
+ (0, _configuration.migrateConfigurationFile)();
28
+ if (command === _commands.ADD_ROOT_DIRECTORY_PATH_COMMAND || command === _commands.LIST_ROOT_DIRECTORY_PATHS_COMMAND || command === _commands.REMOVE_ROOT_DIRECTORY_PATH_COMMAND) {
29
+ main(command, argument, options);
30
+ return;
31
+ }
32
+ argument = command; ///
33
+ command = _commands.FIND_COMMAND;
34
+ main(command, argument, options);
35
+ }
36
+
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVwYXJlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBtaWdyYXRlQ29uZmlndXJhdGlvbkZpbGUgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uXCI7XG5pbXBvcnQgeyBERUZBVUxUX0hFTFAsIERFRkFVTFRfVkVSU0lPTiB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5pbXBvcnQgeyBGSU5EX0NPTU1BTkQsXG4gICAgICAgICBIRUxQX0NPTU1BTkQsXG4gICAgICAgICBWRVJTSU9OX0NPTU1BTkQsXG4gICAgICAgICBJTklUSUFMSVNFX0NPTU1BTkQsXG4gICAgICAgICBBRERfUk9PVF9ESVJFQ1RPUllfUEFUSF9DT01NQU5ELFxuICAgICAgICAgTElTVF9ST09UX0RJUkVDVE9SWV9QQVRIU19DT01NQU5ELFxuICAgICAgICAgUkVNT1ZFX1JPT1RfRElSRUNUT1JZX1BBVEhfQ09NTUFORCB9IGZyb20gXCIuL2NvbW1hbmRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByZXBhcmUoY29tbWFuZCwgYXJndW1lbnQsIG9wdGlvbnMsIG1haW4pIHtcbiAgY29uc3QgeyBoZWxwID0gREVGQVVMVF9IRUxQLCB2ZXJzaW9uID0gREVGQVVMVF9WRVJTSU9OIH0gPSBvcHRpb25zO1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKGhlbHApIHtcbiAgICBjb21tYW5kID0gSEVMUF9DT01NQU5EO1xuICB9IGVsc2UgaWYgKHZlcnNpb24pIHtcbiAgICBjb21tYW5kID0gVkVSU0lPTl9DT01NQU5EO1xuICB9XG5cbiAgaWYgKChjb21tYW5kID09PSBIRUxQX0NPTU1BTkQpIHx8XG4gICAgICAoY29tbWFuZCA9PT0gVkVSU0lPTl9DT01NQU5EKSB8fFxuICAgICAgKGNvbW1hbmQgPT09IElOSVRJQUxJU0VfQ09NTUFORCkpIHtcblxuICAgIG1haW4oY29tbWFuZCwgYXJndW1lbnQsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbWlncmF0ZUNvbmZpZ3VyYXRpb25GaWxlKCk7XG5cbiAgaWYgKChjb21tYW5kID09PSBBRERfUk9PVF9ESVJFQ1RPUllfUEFUSF9DT01NQU5EKSB8fFxuICAgICAgKGNvbW1hbmQgPT09IExJU1RfUk9PVF9ESVJFQ1RPUllfUEFUSFNfQ09NTUFORCkgfHxcbiAgICAgIChjb21tYW5kID09PSBSRU1PVkVfUk9PVF9ESVJFQ1RPUllfUEFUSF9DT01NQU5EKSkge1xuXG4gICAgbWFpbihjb21tYW5kLCBhcmd1bWVudCwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBhcmd1bWVudCA9IGNvbW1hbmQ7IC8vL1xuXG4gIGNvbW1hbmQgPSBGSU5EX0NPTU1BTkQ7XG5cbiAgbWFpbihjb21tYW5kLCBhcmd1bWVudCwgb3B0aW9ucyk7XG59XG4iXSwibmFtZXMiOlsicHJlcGFyZSIsImNvbW1hbmQiLCJhcmd1bWVudCIsIm9wdGlvbnMiLCJtYWluIiwiaGVscCIsIkRFRkFVTFRfSEVMUCIsInZlcnNpb24iLCJERUZBVUxUX1ZFUlNJT04iLCJIRUxQX0NPTU1BTkQiLCJWRVJTSU9OX0NPTU1BTkQiLCJJTklUSUFMSVNFX0NPTU1BTkQiLCJtaWdyYXRlQ29uZmlndXJhdGlvbkZpbGUiLCJBRERfUk9PVF9ESVJFQ1RPUllfUEFUSF9DT01NQU5EIiwiTElTVF9ST09UX0RJUkVDVE9SWV9QQVRIU19DT01NQU5EIiwiUkVNT1ZFX1JPT1RfRElSRUNUT1JZX1BBVEhfQ09NTUFORCIsIkZJTkRfQ09NTUFORCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUF3QkE7Ozs2QkFWaUI7d0JBQ0s7d0JBT0s7QUFFcEMsU0FBU0EsUUFBUUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsSUFBSTtJQUM5RCxvQkFBMkRELFFBQW5ERSxNQUFBQSxrQ0FBT0Msc0JBQVkscUNBQWdDSCxRQUE5QkksU0FBQUEsd0NBQVVDLHlCQUFlO0lBRXRELElBQUksT0FBTztJQUNULEdBQUc7SUFDTCxPQUFPLElBQUlILE1BQU07UUFDZkosVUFBVVEsc0JBQVk7SUFDeEIsT0FBTyxJQUFJRixTQUFTO1FBQ2xCTixVQUFVUyx5QkFBZTtJQUMzQjtJQUVBLElBQUksQUFBQ1QsWUFBWVEsc0JBQVksSUFDeEJSLFlBQVlTLHlCQUFlLElBQzNCVCxZQUFZVSw0QkFBa0IsRUFBRztRQUVwQ1AsS0FBS0gsU0FBU0MsVUFBVUM7UUFFeEI7SUFDRjtJQUVBUyxJQUFBQSx1Q0FBd0I7SUFFeEIsSUFBSSxBQUFDWCxZQUFZWSx5Q0FBK0IsSUFDM0NaLFlBQVlhLDJDQUFpQyxJQUM3Q2IsWUFBWWMsNENBQWtDLEVBQUc7UUFFcERYLEtBQUtILFNBQVNDLFVBQVVDO1FBRXhCO0lBQ0Y7SUFFQUQsV0FBV0QsU0FBUyxHQUFHO0lBRXZCQSxVQUFVZSxzQkFBWTtJQUV0QlosS0FBS0gsU0FBU0MsVUFBVUM7QUFDMUIifQ==
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return GlobRule;
9
+ }
10
+ });
11
+ var _converters = /*#__PURE__*/ _interop_require_default(require("../converters"));
12
+ var _occurrence = /*#__PURE__*/ _interop_require_default(require("../occurrence"));
13
+ var _types = require("../types");
14
+ var _constants = require("../constants");
15
+ var _literal = require("../utilities/literal");
16
+ var _string = require("../utilities/string");
17
+ function _array_like_to_array(arr, len) {
18
+ if (len == null || len > arr.length) len = arr.length;
19
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
20
+ return arr2;
21
+ }
22
+ function _array_without_holes(arr) {
23
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
24
+ }
25
+ function _class_call_check(instance, Constructor) {
26
+ if (!(instance instanceof Constructor)) {
27
+ throw new TypeError("Cannot call a class as a function");
28
+ }
29
+ }
30
+ function _defineProperties(target, props) {
31
+ for(var i = 0; i < props.length; i++){
32
+ var descriptor = props[i];
33
+ descriptor.enumerable = descriptor.enumerable || false;
34
+ descriptor.configurable = true;
35
+ if ("value" in descriptor) descriptor.writable = true;
36
+ Object.defineProperty(target, descriptor.key, descriptor);
37
+ }
38
+ }
39
+ function _create_class(Constructor, protoProps, staticProps) {
40
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
41
+ if (staticProps) _defineProperties(Constructor, staticProps);
42
+ return Constructor;
43
+ }
44
+ function _interop_require_default(obj) {
45
+ return obj && obj.__esModule ? obj : {
46
+ default: obj
47
+ };
48
+ }
49
+ function _iterable_to_array(iter) {
50
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
51
+ }
52
+ function _non_iterable_spread() {
53
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
54
+ }
55
+ function _to_consumable_array(arr) {
56
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
57
+ }
58
+ function _unsupported_iterable_to_array(o, minLen) {
59
+ if (!o) return;
60
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
61
+ var n = Object.prototype.toString.call(o).slice(8, -1);
62
+ if (n === "Object" && o.constructor) n = o.constructor.name;
63
+ if (n === "Map" || n === "Set") return Array.from(n);
64
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
65
+ }
66
+ var GlobRule = /*#__PURE__*/ function() {
67
+ function GlobRule(type, glob, pattern, regExp) {
68
+ _class_call_check(this, GlobRule);
69
+ this.type = type;
70
+ this.glob = glob;
71
+ this.pattern = pattern;
72
+ this.regExp = regExp;
73
+ }
74
+ _create_class(GlobRule, [
75
+ {
76
+ key: "getType",
77
+ value: function getType() {
78
+ return this.type;
79
+ }
80
+ },
81
+ {
82
+ key: "getGlob",
83
+ value: function getGlob() {
84
+ return this.glob;
85
+ }
86
+ },
87
+ {
88
+ key: "getPattern",
89
+ value: function getPattern() {
90
+ return this.pattern;
91
+ }
92
+ },
93
+ {
94
+ key: "getRegExp",
95
+ value: function getRegExp() {
96
+ return this.regExp;
97
+ }
98
+ },
99
+ {
100
+ key: "toJSON",
101
+ value: function toJSON() {
102
+ var type = this.type, glob = this.glob, pattern = this.pattern, json = {
103
+ type: type,
104
+ glob: glob,
105
+ pattern: pattern
106
+ };
107
+ return json;
108
+ }
109
+ },
110
+ {
111
+ key: "find",
112
+ value: function find(line) {
113
+ var occurrences = [], content = line.getContent();
114
+ var offset = 0, string = content, result = string.match(this.regExp);
115
+ while(result !== null){
116
+ var occurrence = _occurrence.default.fromResultAndOffset(result, offset), end = occurrence.getEnd(), start = end; ///
117
+ string = string.substring(start); ///
118
+ offset += start;
119
+ occurrences.push(occurrence);
120
+ result = string.match(this.regExp);
121
+ }
122
+ return occurrences;
123
+ }
124
+ },
125
+ {
126
+ key: "match",
127
+ value: function match(string) {
128
+ var matches = this.regExp.test(string);
129
+ return matches;
130
+ }
131
+ },
132
+ {
133
+ key: "isEqualTo",
134
+ value: function isEqualTo(rule) {
135
+ var equalTo = false;
136
+ var ruleType = rule.getType();
137
+ if (ruleType === this.type) {
138
+ var ruleGlob = rule.getGlob();
139
+ if (ruleGlob === this.glob) {
140
+ equalTo = true;
141
+ }
142
+ }
143
+ return equalTo;
144
+ }
145
+ },
146
+ {
147
+ key: "asString",
148
+ value: function asString() {
149
+ var string = this.glob; ///
150
+ return string;
151
+ }
152
+ }
153
+ ], [
154
+ {
155
+ key: "fromJSON",
156
+ value: function fromJSON(json) {
157
+ var globRule = null;
158
+ var type = json.type;
159
+ if (type === _types.GLOB_TYPE) {
160
+ var glob = json.glob, pattern = json.pattern, regExp = new RegExp(pattern);
161
+ globRule = new GlobRule(type, glob, pattern, regExp);
162
+ }
163
+ return globRule;
164
+ }
165
+ },
166
+ {
167
+ key: "fromStringAnchoredAndDirectory",
168
+ value: function fromStringAnchoredAndDirectory(string, anchored, directory) {
169
+ var globRule = null;
170
+ var glob = globFromStringAndDirectory(string, directory);
171
+ if (glob !== null) {
172
+ var type = _types.GLOB_TYPE, pattern = patternFromGlobAndAnchored(glob, anchored), regExp = new RegExp(pattern);
173
+ globRule = new GlobRule(type, glob, pattern, regExp);
174
+ }
175
+ return globRule;
176
+ }
177
+ }
178
+ ]);
179
+ return GlobRule;
180
+ }();
181
+ function patternFromGlobAndAnchored(glob, anchored) {
182
+ var pattern = _constants.EMPTY_STRING;
183
+ var characters = _to_consumable_array(glob);
184
+ for(;;){
185
+ var converted = _converters.default.some(function(converter) {
186
+ var result = converter.match(characters);
187
+ if (result !== null) {
188
+ pattern = "".concat(pattern).concat(result);
189
+ return true;
190
+ }
191
+ });
192
+ if (!converted) {
193
+ break;
194
+ }
195
+ }
196
+ if (anchored) {
197
+ pattern = (0, _string.addAnchors)(pattern);
198
+ }
199
+ return pattern;
200
+ }
201
+ function globFromStringAndDirectory(string, directory) {
202
+ var glob;
203
+ var stringGlobLiteral = (0, _literal.isStringGlobLiteral)(string);
204
+ if (stringGlobLiteral) {
205
+ var globLiteral = string; ///
206
+ glob = globLiteral; ///
207
+ glob = (0, _string.removeTrailingForwardSlash)(glob); ///
208
+ if (directory) {
209
+ glob = (0, _string.addTrailingForwardSlash)(glob); ///
210
+ }
211
+ try {
212
+ var anchored = false, pattern = patternFromGlobAndAnchored(glob, anchored);
213
+ new RegExp(pattern);
214
+ } catch (error) {
215
+ glob = null;
216
+ }
217
+ } else {
218
+ glob = null;
219
+ }
220
+ return glob;
221
+ }
222
+
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlL2dsb2IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBjb252ZXJ0ZXJzIGZyb20gXCIuLi9jb252ZXJ0ZXJzXCI7XG5pbXBvcnQgT2NjdXJyZW5jZSBmcm9tIFwiLi4vb2NjdXJyZW5jZVwiO1xuXG5pbXBvcnQgeyBHTE9CX1RZUEUgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGlzU3RyaW5nR2xvYkxpdGVyYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2xpdGVyYWxcIjtcbmltcG9ydCB7IGFkZEFuY2hvcnMsIGFkZFRyYWlsaW5nRm9yd2FyZFNsYXNoLCByZW1vdmVUcmFpbGluZ0ZvcndhcmRTbGFzaCB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdsb2JSdWxlIHtcbiAgY29uc3RydWN0b3IodHlwZSwgZ2xvYiwgcGF0dGVybiwgcmVnRXhwKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLmdsb2IgPSBnbG9iO1xuICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47XG4gICAgdGhpcy5yZWdFeHAgPSByZWdFeHA7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRHbG9iKCkge1xuICAgIHJldHVybiB0aGlzLmdsb2I7XG4gIH1cblxuICBnZXRQYXR0ZXJuKCkge1xuICAgIHJldHVybiB0aGlzLnBhdHRlcm47XG4gIH1cblxuICBnZXRSZWdFeHAoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVnRXhwO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLnR5cGUsXG4gICAgICAgICAgZ2xvYiA9IHRoaXMuZ2xvYixcbiAgICAgICAgICBwYXR0ZXJuID0gdGhpcy5wYXR0ZXJuLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgZ2xvYixcbiAgICAgICAgICAgIHBhdHRlcm5cbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBmaW5kKGxpbmUpIHtcbiAgICBjb25zdCBvY2N1cnJlbmNlcyA9IFtdLFxuICAgICAgICAgIGNvbnRlbnQgPSBsaW5lLmdldENvbnRlbnQoKTtcblxuICAgIGxldCBvZmZzZXQgPSAwLFxuICAgICAgICBzdHJpbmcgPSBjb250ZW50LCAvLy9cbiAgICAgICAgcmVzdWx0ID0gc3RyaW5nLm1hdGNoKHRoaXMucmVnRXhwKTtcblxuICAgIHdoaWxlIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG9jY3VycmVuY2UgPSBPY2N1cnJlbmNlLmZyb21SZXN1bHRBbmRPZmZzZXQocmVzdWx0LCBvZmZzZXQpLFxuICAgICAgICAgICAgZW5kID0gb2NjdXJyZW5jZS5nZXRFbmQoKSxcbiAgICAgICAgICAgIHN0YXJ0ID0gZW5kOyAgLy8vXG5cbiAgICAgIHN0cmluZyA9IHN0cmluZy5zdWJzdHJpbmcoc3RhcnQpOyAvLy9cblxuICAgICAgb2Zmc2V0ICs9IHN0YXJ0O1xuXG4gICAgICBvY2N1cnJlbmNlcy5wdXNoKG9jY3VycmVuY2UpO1xuXG4gICAgICByZXN1bHQgPSBzdHJpbmcubWF0Y2godGhpcy5yZWdFeHApO1xuICAgIH1cblxuICAgIHJldHVybiBvY2N1cnJlbmNlcztcbiAgfVxuXG4gIG1hdGNoKHN0cmluZykge1xuICAgIGNvbnN0IG1hdGNoZXMgPSB0aGlzLnJlZ0V4cC50ZXN0KHN0cmluZyk7XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIGlzRXF1YWxUbyhydWxlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGNvbnN0IHJ1bGVUeXBlID0gcnVsZS5nZXRUeXBlKCk7XG5cbiAgICBpZiAocnVsZVR5cGUgPT09IHRoaXMudHlwZSkge1xuICAgICAgY29uc3QgcnVsZUdsb2IgPSBydWxlLmdldEdsb2IoKTtcblxuICAgICAgaWYgKHJ1bGVHbG9iID09PSB0aGlzLmdsb2IpIHtcbiAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdsb2I7IC8vL1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgbGV0IGdsb2JSdWxlID0gbnVsbDtcblxuICAgIGNvbnN0IHsgdHlwZSB9ID0ganNvbjtcblxuICAgIGlmICh0eXBlID09PSBHTE9CX1RZUEUpIHtcbiAgICAgIGNvbnN0IHsgZ2xvYiwgcGF0dGVybiB9ID0ganNvbixcbiAgICAgICAgICAgIHJlZ0V4cCA9IG5ldyBSZWdFeHAocGF0dGVybik7XG5cbiAgICAgIGdsb2JSdWxlID0gbmV3IEdsb2JSdWxlKHR5cGUsIGdsb2IsIHBhdHRlcm4sIHJlZ0V4cCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdsb2JSdWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdHJpbmdBbmNob3JlZEFuZERpcmVjdG9yeShzdHJpbmcsIGFuY2hvcmVkLCBkaXJlY3RvcnkpIHtcbiAgICBsZXQgZ2xvYlJ1bGUgPSBudWxsO1xuXG4gICAgY29uc3QgZ2xvYiA9IGdsb2JGcm9tU3RyaW5nQW5kRGlyZWN0b3J5KHN0cmluZywgZGlyZWN0b3J5KTtcblxuICAgIGlmIChnbG9iICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlID0gR0xPQl9UWVBFLFxuICAgICAgICAgICAgcGF0dGVybiA9IHBhdHRlcm5Gcm9tR2xvYkFuZEFuY2hvcmVkKGdsb2IsIGFuY2hvcmVkKSxcbiAgICAgICAgICAgIHJlZ0V4cCA9IG5ldyBSZWdFeHAocGF0dGVybik7XG5cbiAgICAgIGdsb2JSdWxlID0gbmV3IEdsb2JSdWxlKHR5cGUsIGdsb2IsIHBhdHRlcm4sIHJlZ0V4cCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdsb2JSdWxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhdHRlcm5Gcm9tR2xvYkFuZEFuY2hvcmVkKGdsb2IsIGFuY2hvcmVkKSB7XG4gIGxldCBwYXR0ZXJuID0gRU1QVFlfU1RSSU5HO1xuXG4gIGNvbnN0IGNoYXJhY3RlcnMgPSBbIC4uLmdsb2IgXTtcblxuICBmb3IgKDs7KSB7XG4gICAgY29uc3QgY29udmVydGVkID0gY29udmVydGVycy5zb21lKChjb252ZXJ0ZXIpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNvbnZlcnRlci5tYXRjaChjaGFyYWN0ZXJzKTtcblxuICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICBwYXR0ZXJuID0gYCR7cGF0dGVybn0ke3Jlc3VsdH1gO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFjb252ZXJ0ZWQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChhbmNob3JlZCkge1xuICAgIHBhdHRlcm4gPSBhZGRBbmNob3JzKHBhdHRlcm4pO1xuICB9XG5cbiAgcmV0dXJuIHBhdHRlcm47XG59XG5cbmZ1bmN0aW9uIGdsb2JGcm9tU3RyaW5nQW5kRGlyZWN0b3J5KHN0cmluZywgZGlyZWN0b3J5KSB7XG4gIGxldCBnbG9iO1xuXG4gIGNvbnN0IHN0cmluZ0dsb2JMaXRlcmFsID0gaXNTdHJpbmdHbG9iTGl0ZXJhbChzdHJpbmcpO1xuXG4gIGlmIChzdHJpbmdHbG9iTGl0ZXJhbCkge1xuICAgIGNvbnN0IGdsb2JMaXRlcmFsID0gc3RyaW5nOyAvLy9cblxuICAgIGdsb2IgPSBnbG9iTGl0ZXJhbDsgIC8vL1xuXG4gICAgZ2xvYiA9IHJlbW92ZVRyYWlsaW5nRm9yd2FyZFNsYXNoKGdsb2IpOyAgLy8vXG5cbiAgICBpZiAoZGlyZWN0b3J5KSB7XG4gICAgICBnbG9iID0gYWRkVHJhaWxpbmdGb3J3YXJkU2xhc2goZ2xvYik7IC8vL1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBhbmNob3JlZCA9IGZhbHNlLFxuICAgICAgICAgICAgcGF0dGVybiA9IHBhdHRlcm5Gcm9tR2xvYkFuZEFuY2hvcmVkKGdsb2IsIGFuY2hvcmVkKTtcblxuICAgICAgbmV3IFJlZ0V4cChwYXR0ZXJuKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgZ2xvYiA9IG51bGw7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGdsb2IgPSBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGdsb2I7XG59XG4iXSwibmFtZXMiOlsiR2xvYlJ1bGUiLCJ0eXBlIiwiZ2xvYiIsInBhdHRlcm4iLCJyZWdFeHAiLCJnZXRUeXBlIiwiZ2V0R2xvYiIsImdldFBhdHRlcm4iLCJnZXRSZWdFeHAiLCJ0b0pTT04iLCJqc29uIiwiZmluZCIsImxpbmUiLCJvY2N1cnJlbmNlcyIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwib2Zmc2V0Iiwic3RyaW5nIiwicmVzdWx0IiwibWF0Y2giLCJvY2N1cnJlbmNlIiwiT2NjdXJyZW5jZSIsImZyb21SZXN1bHRBbmRPZmZzZXQiLCJlbmQiLCJnZXRFbmQiLCJzdGFydCIsInN1YnN0cmluZyIsInB1c2giLCJtYXRjaGVzIiwidGVzdCIsImlzRXF1YWxUbyIsInJ1bGUiLCJlcXVhbFRvIiwicnVsZVR5cGUiLCJydWxlR2xvYiIsImFzU3RyaW5nIiwiZnJvbUpTT04iLCJnbG9iUnVsZSIsIkdMT0JfVFlQRSIsIlJlZ0V4cCIsImZyb21TdHJpbmdBbmNob3JlZEFuZERpcmVjdG9yeSIsImFuY2hvcmVkIiwiZGlyZWN0b3J5IiwiZ2xvYkZyb21TdHJpbmdBbmREaXJlY3RvcnkiLCJwYXR0ZXJuRnJvbUdsb2JBbmRBbmNob3JlZCIsIkVNUFRZX1NUUklORyIsImNoYXJhY3RlcnMiLCJjb252ZXJ0ZWQiLCJjb252ZXJ0ZXJzIiwic29tZSIsImNvbnZlcnRlciIsImFkZEFuY2hvcnMiLCJzdHJpbmdHbG9iTGl0ZXJhbCIsImlzU3RyaW5nR2xvYkxpdGVyYWwiLCJnbG9iTGl0ZXJhbCIsInJlbW92ZVRyYWlsaW5nRm9yd2FyZFNsYXNoIiwiYWRkVHJhaWxpbmdGb3J3YXJkU2xhc2giLCJlcnJvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFVcUJBOzs7aUVBUkU7aUVBQ0E7cUJBRUc7eUJBQ0c7dUJBQ087c0JBQzRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqRSxJQUFBLEFBQU1BLHlCQUFOO2FBQU1BLFNBQ1BDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLE1BQU07Z0NBRHBCSjtRQUVqQixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7O2tCQUxHSjs7WUFRbkJLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osSUFBSTtZQUNsQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osSUFBSTtZQUNsQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osT0FBTztZQUNyQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osTUFBTTtZQUNwQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNUixPQUFPLElBQUksQ0FBQ0EsSUFBSSxFQUNoQkMsT0FBTyxJQUFJLENBQUNBLElBQUksRUFDaEJDLFVBQVUsSUFBSSxDQUFDQSxPQUFPLEVBQ3RCTyxPQUFPO29CQUNMVCxNQUFBQTtvQkFDQUMsTUFBQUE7b0JBQ0FDLFNBQUFBO2dCQUNGO2dCQUVOLE9BQU9PO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEs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