propagate-cli 1.10.1 → 1.10.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 (167) hide show
  1. package/.swcrc +5 -0
  2. package/lib/abbreviations.js +22 -0
  3. package/lib/action/addDirectory.js +41 -0
  4. package/lib/action/addForcedDependencyRelation.js +51 -0
  5. package/lib/action/addIgnoredDependency.js +40 -0
  6. package/lib/action/help.js +15 -0
  7. package/lib/action/initialise.js +23 -0
  8. package/lib/action/listDirectories.js +57 -0
  9. package/lib/action/listForcedDependencyRelations.js +30 -0
  10. package/lib/action/listIgnoredDependencies.js +56 -0
  11. package/lib/action/propagate.js +57 -0
  12. package/lib/action/removeDirectory.js +43 -0
  13. package/lib/action/removeForcedDependencyRelation.js +43 -0
  14. package/lib/action/removeIgnoredDependency.js +43 -0
  15. package/lib/action/setShellCommands.js +43 -0
  16. package/lib/action/version.js +19 -0
  17. package/lib/changeDirectory.js +33 -0
  18. package/lib/commands.js +70 -0
  19. package/lib/configuration/version_1_10.js +48 -0
  20. package/lib/configuration/version_1_3.js +21 -0
  21. package/lib/configuration/version_1_7.js +21 -0
  22. package/lib/configuration/version_1_9.js +27 -0
  23. package/lib/configuration.js +191 -0
  24. package/lib/constants.js +46 -0
  25. package/lib/defaults.js +54 -0
  26. package/lib/descriptions.js +82 -0
  27. package/lib/diff/map.js +114 -0
  28. package/lib/diff/semver.js +88 -0
  29. package/lib/diff/version.js +97 -0
  30. package/lib/diff.js +210 -0
  31. package/lib/main.js +119 -0
  32. package/lib/messages.js +190 -0
  33. package/lib/operation/checkDevDependencies.js +34 -0
  34. package/lib/operation/createDiffs.js +78 -0
  35. package/lib/operation/createReleaseGraph.js +43 -0
  36. package/lib/operation/createReleaseMap.js +26 -0
  37. package/lib/operation/createSubDirectoryMap.js +65 -0
  38. package/lib/operation/createSubDirectoryPath.js +30 -0
  39. package/lib/operation/dryRun.js +22 -0
  40. package/lib/operation/prompt/addDirectory.js +37 -0
  41. package/lib/operation/prompt/addForcedDependency.js +37 -0
  42. package/lib/operation/prompt/addForcedDependent.js +37 -0
  43. package/lib/operation/prompt/addIgnoredDependency.js +37 -0
  44. package/lib/operation/prompt/build.js +52 -0
  45. package/lib/operation/prompt/git.js +52 -0
  46. package/lib/operation/prompt/install.js +52 -0
  47. package/lib/operation/prompt/publish.js +61 -0
  48. package/lib/operation/prompt/removeDirectory.js +39 -0
  49. package/lib/operation/prompt/removeForcedDependencyRelation.js +39 -0
  50. package/lib/operation/prompt/removeIgnoredDependency.js +39 -0
  51. package/lib/operation/prompt/save.js +57 -0
  52. package/lib/operation/prompt/setBuildShellCommands.js +33 -0
  53. package/lib/operation/prompt/setGitShellCommands.js +33 -0
  54. package/lib/operation/prompt/setInstallShellCommands.js +33 -0
  55. package/lib/operation/prompt/setPublishShellCommands.js +33 -0
  56. package/lib/operation/propagateRelease.js +73 -0
  57. package/lib/operation/retrieveRelease.js +31 -0
  58. package/lib/operation/saveAndApplyDiff.js +49 -0
  59. package/lib/operation/saveAndApplyDiffs.js +27 -0
  60. package/lib/options.js +34 -0
  61. package/lib/prepare.js +48 -0
  62. package/lib/release.js +227 -0
  63. package/lib/releaseGraph.js +170 -0
  64. package/lib/releaseMap.js +120 -0
  65. package/lib/utilities/console.js +81 -0
  66. package/lib/utilities/dependency.js +25 -0
  67. package/lib/utilities/diffs.js +28 -0
  68. package/lib/utilities/operation.js +53 -0
  69. package/lib/utilities/packageJSON.js +50 -0
  70. package/lib/utilities/path.js +22 -0
  71. package/lib/utilities/prompt.js +15 -0
  72. package/lib/utilities/propagate.js +60 -0
  73. package/lib/utilities/shell.js +63 -0
  74. package/lib/utilities/validate.js +68 -0
  75. package/lib/version.js +140 -0
  76. package/lib/versions.js +34 -0
  77. package/package.json +18 -3
  78. package/propagate.js +3 -3
  79. package/src/abbreviations.js +19 -0
  80. package/{bin → src}/action/addDirectory.js +5 -7
  81. package/{bin → src}/action/addForcedDependencyRelation.js +8 -10
  82. package/{bin → src}/action/addIgnoredDependency.js +7 -9
  83. package/{bin → src}/action/help.js +1 -3
  84. package/{bin → src}/action/initialise.js +3 -5
  85. package/{bin → src}/action/listDirectories.js +4 -6
  86. package/{bin → src}/action/listForcedDependencyRelations.js +4 -6
  87. package/{bin → src}/action/listIgnoredDependencies.js +4 -6
  88. package/src/action/propagate.js +48 -0
  89. package/{bin → src}/action/removeDirectory.js +6 -8
  90. package/{bin → src}/action/removeForcedDependencyRelation.js +6 -8
  91. package/{bin → src}/action/removeIgnoredDependency.js +6 -8
  92. package/src/action/setShellCommands.js +37 -0
  93. package/src/action/version.js +13 -0
  94. package/{bin → src}/changeDirectory.js +4 -6
  95. package/src/commands.js +16 -0
  96. package/{bin → src}/configuration/version_1_10.js +4 -9
  97. package/{bin → src}/configuration/version_1_3.js +2 -6
  98. package/{bin → src}/configuration/version_1_7.js +2 -6
  99. package/{bin → src}/configuration/version_1_9.js +3 -7
  100. package/{bin → src}/configuration.js +23 -40
  101. package/src/constants.js +10 -0
  102. package/src/defaults.js +12 -0
  103. package/src/descriptions.js +19 -0
  104. package/{bin → src}/diff/map.js +4 -6
  105. package/{bin → src}/diff/semver.js +1 -3
  106. package/{bin → src}/diff/version.js +2 -4
  107. package/{bin → src}/diff.js +5 -7
  108. package/{bin → src}/main.js +20 -22
  109. package/src/messages.js +46 -0
  110. package/{bin → src}/operation/checkDevDependencies.js +1 -3
  111. package/{bin → src}/operation/createDiffs.js +2 -4
  112. package/{bin → src}/operation/createReleaseGraph.js +5 -7
  113. package/{bin → src}/operation/createReleaseMap.js +3 -5
  114. package/{bin → src}/operation/createSubDirectoryMap.js +5 -7
  115. package/{bin → src}/operation/createSubDirectoryPath.js +5 -7
  116. package/{bin → src}/operation/dryRun.js +1 -3
  117. package/{bin → src}/operation/prompt/addDirectory.js +5 -7
  118. package/{bin → src}/operation/prompt/addForcedDependency.js +5 -7
  119. package/{bin → src}/operation/prompt/addForcedDependent.js +5 -7
  120. package/{bin → src}/operation/prompt/addIgnoredDependency.js +5 -7
  121. package/{bin → src}/operation/prompt/build.js +8 -10
  122. package/{bin → src}/operation/prompt/git.js +8 -10
  123. package/{bin → src}/operation/prompt/install.js +8 -10
  124. package/{bin → src}/operation/prompt/publish.js +9 -11
  125. package/{bin → src}/operation/prompt/removeDirectory.js +5 -7
  126. package/{bin → src}/operation/prompt/removeForcedDependencyRelation.js +5 -7
  127. package/{bin → src}/operation/prompt/removeIgnoredDependency.js +5 -7
  128. package/{bin → src}/operation/prompt/save.js +9 -11
  129. package/{bin → src}/operation/prompt/setBuildShellCommands.js +6 -8
  130. package/{bin → src}/operation/prompt/setGitShellCommands.js +6 -8
  131. package/{bin → src}/operation/prompt/setInstallShellCommands.js +6 -8
  132. package/{bin → src}/operation/prompt/setPublishShellCommands.js +6 -8
  133. package/{bin → src}/operation/propagateRelease.js +3 -5
  134. package/{bin → src}/operation/retrieveRelease.js +2 -4
  135. package/{bin → src}/operation/saveAndApplyDiff.js +8 -10
  136. package/src/operation/saveAndApplyDiffs.js +17 -0
  137. package/src/options.js +7 -0
  138. package/{bin → src}/prepare.js +17 -19
  139. package/{bin → src}/release.js +5 -7
  140. package/{bin → src}/releaseGraph.js +2 -4
  141. package/{bin → src}/releaseMap.js +2 -4
  142. package/{bin → src}/utilities/console.js +5 -11
  143. package/{bin → src}/utilities/dependency.js +1 -5
  144. package/{bin → src}/utilities/diffs.js +2 -7
  145. package/{bin → src}/utilities/operation.js +3 -8
  146. package/{bin → src}/utilities/packageJSON.js +4 -9
  147. package/{bin → src}/utilities/path.js +2 -6
  148. package/src/utilities/prompt.js +3 -0
  149. package/{bin → src}/utilities/propagate.js +3 -8
  150. package/{bin → src}/utilities/shell.js +7 -11
  151. package/src/utilities/validate.js +19 -0
  152. package/{bin → src}/version.js +2 -4
  153. package/src/versions.js +7 -0
  154. package/bin/abbreviations.js +0 -11
  155. package/bin/action/propagate.js +0 -50
  156. package/bin/action/setShellCommands.js +0 -39
  157. package/bin/action/version.js +0 -15
  158. package/bin/commands.js +0 -33
  159. package/bin/constants.js +0 -23
  160. package/bin/defaults.js +0 -25
  161. package/bin/descriptions.js +0 -39
  162. package/bin/messages.js +0 -93
  163. package/bin/operation/saveAndApplyDiffs.js +0 -19
  164. package/bin/options.js +0 -15
  165. package/bin/utilities/prompt.js +0 -7
  166. package/bin/utilities/validate.js +0 -31
  167. package/bin/versions.js +0 -15
@@ -0,0 +1,82 @@
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 ADD_COMMIT_PUSH_GIT_DESCRIPTION () {
13
+ return ADD_COMMIT_PUSH_GIT_DESCRIPTION;
14
+ },
15
+ get BUILD_SHELL_COMMANDS_DESCRIPTION () {
16
+ return BUILD_SHELL_COMMANDS_DESCRIPTION;
17
+ },
18
+ get BUILD_YES_NO_DESCRIPTION () {
19
+ return BUILD_YES_NO_DESCRIPTION;
20
+ },
21
+ get DIRECTORY_PATH_DESCRIPTION () {
22
+ return DIRECTORY_PATH_DESCRIPTION;
23
+ },
24
+ get FAILED_SCRIPT_DESCRIPTION () {
25
+ return FAILED_SCRIPT_DESCRIPTION;
26
+ },
27
+ get FORCED_DEPENDENCY_DESCRIPTION () {
28
+ return FORCED_DEPENDENCY_DESCRIPTION;
29
+ },
30
+ get FORCED_DEPENDENT_DESCRIPTION () {
31
+ return FORCED_DEPENDENT_DESCRIPTION;
32
+ },
33
+ get GIT_SHELL_COMMANDS_DESCRIPTION () {
34
+ return GIT_SHELL_COMMANDS_DESCRIPTION;
35
+ },
36
+ get IGNORED_DEPENDENCY_DESCRIPTION () {
37
+ return IGNORED_DEPENDENCY_DESCRIPTION;
38
+ },
39
+ get INSTALL_SHELL_COMMANDS_DESCRIPTION () {
40
+ return INSTALL_SHELL_COMMANDS_DESCRIPTION;
41
+ },
42
+ get INSTALL_YES_NO_DESCRIPTION () {
43
+ return INSTALL_YES_NO_DESCRIPTION;
44
+ },
45
+ get PUBLISH_SHELL_COMMANDS_DESCRIPTION () {
46
+ return PUBLISH_SHELL_COMMANDS_DESCRIPTION;
47
+ },
48
+ get PUBLISH_YES_NO_DESCRIPTION () {
49
+ return PUBLISH_YES_NO_DESCRIPTION;
50
+ },
51
+ get SAVE_UPDATES_YES_NO_DESCRIPTION () {
52
+ return SAVE_UPDATES_YES_NO_DESCRIPTION;
53
+ },
54
+ get SPECIFY_DIRECTORY_TO_REMOVE_DESCRIPTION () {
55
+ return SPECIFY_DIRECTORY_TO_REMOVE_DESCRIPTION;
56
+ },
57
+ get SPECIFY_FORCED_DEPENDENCY_RELATION_TO_REMOVE_DESCRIPTION () {
58
+ return SPECIFY_FORCED_DEPENDENCY_RELATION_TO_REMOVE_DESCRIPTION;
59
+ },
60
+ get SPECIFY_IGNORED_DEPENDENCY_TO_REMOVE_DESCRIPTION () {
61
+ return SPECIFY_IGNORED_DEPENDENCY_TO_REMOVE_DESCRIPTION;
62
+ }
63
+ });
64
+ var BUILD_YES_NO_DESCRIPTION = "Build? (y)es (n)o: ";
65
+ var FAILED_SCRIPT_DESCRIPTION = "The script has failed. Would you like to try again? (y)es (n)o: ";
66
+ var DIRECTORY_PATH_DESCRIPTION = "Directory path: ";
67
+ var INSTALL_YES_NO_DESCRIPTION = "Install? (y)es (n)o: ";
68
+ var PUBLISH_YES_NO_DESCRIPTION = "Publish? (y)es (n)o: ";
69
+ var FORCED_DEPENDENT_DESCRIPTION = "Forced dependent sub-directory name: ";
70
+ var FORCED_DEPENDENCY_DESCRIPTION = "Forced dependency sub-directory name: ";
71
+ var IGNORED_DEPENDENCY_DESCRIPTION = "Ignored dependency sub-directory name: ";
72
+ var GIT_SHELL_COMMANDS_DESCRIPTION = "Git shell command(s) (leave blank for default): ";
73
+ var SAVE_UPDATES_YES_NO_DESCRIPTION = "Save updates? (y)es (n)o: ";
74
+ var ADD_COMMIT_PUSH_GIT_DESCRIPTION = "Add, commit and push with Git? (y)es (n)o: ";
75
+ var BUILD_SHELL_COMMANDS_DESCRIPTION = "Build shell commands() (leave blank for default): ";
76
+ var INSTALL_SHELL_COMMANDS_DESCRIPTION = "Install shell commands() (leave blank for default): ";
77
+ var PUBLISH_SHELL_COMMANDS_DESCRIPTION = "Publish shell commands() (leave blank for default): ";
78
+ var SPECIFY_DIRECTORY_TO_REMOVE_DESCRIPTION = "Specify a directory to remove: ";
79
+ var SPECIFY_IGNORED_DEPENDENCY_TO_REMOVE_DESCRIPTION = "Specify an ignored dependency to remove: ";
80
+ var SPECIFY_FORCED_DEPENDENCY_RELATION_TO_REMOVE_DESCRIPTION = "Specify a forced dependency relation to remove.";
81
+
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXNjcmlwdGlvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBCVUlMRF9ZRVNfTk9fREVTQ1JJUFRJT04gPSBcIkJ1aWxkPyAoeSllcyAobilvOiBcIjtcbmV4cG9ydCBjb25zdCBGQUlMRURfU0NSSVBUX0RFU0NSSVBUSU9OID0gXCJUaGUgc2NyaXB0IGhhcyBmYWlsZWQuIFdvdWxkIHlvdSBsaWtlIHRvIHRyeSBhZ2Fpbj8gKHkpZXMgKG4pbzogXCI7XG5leHBvcnQgY29uc3QgRElSRUNUT1JZX1BBVEhfREVTQ1JJUFRJT04gPSBcIkRpcmVjdG9yeSBwYXRoOiBcIjtcbmV4cG9ydCBjb25zdCBJTlNUQUxMX1lFU19OT19ERVNDUklQVElPTiA9IFwiSW5zdGFsbD8gKHkpZXMgKG4pbzogXCI7XG5leHBvcnQgY29uc3QgUFVCTElTSF9ZRVNfTk9fREVTQ1JJUFRJT04gPSBcIlB1Ymxpc2g/ICh5KWVzIChuKW86IFwiO1xuZXhwb3J0IGNvbnN0IEZPUkNFRF9ERVBFTkRFTlRfREVTQ1JJUFRJT04gPSBcIkZvcmNlZCBkZXBlbmRlbnQgc3ViLWRpcmVjdG9yeSBuYW1lOiBcIjtcbmV4cG9ydCBjb25zdCBGT1JDRURfREVQRU5ERU5DWV9ERVNDUklQVElPTiA9IFwiRm9yY2VkIGRlcGVuZGVuY3kgc3ViLWRpcmVjdG9yeSBuYW1lOiBcIjtcbmV4cG9ydCBjb25zdCBJR05PUkVEX0RFUEVOREVOQ1lfREVTQ1JJUFRJT04gPSBcIklnbm9yZWQgZGVwZW5kZW5jeSBzdWItZGlyZWN0b3J5IG5hbWU6IFwiO1xuZXhwb3J0IGNvbnN0IEdJVF9TSEVMTF9DT01NQU5EU19ERVNDUklQVElPTiA9IFwiR2l0IHNoZWxsIGNvbW1hbmQocykgKGxlYXZlIGJsYW5rIGZvciBkZWZhdWx0KTogXCI7XG5leHBvcnQgY29uc3QgU0FWRV9VUERBVEVTX1lFU19OT19ERVNDUklQVElPTiA9IFwiU2F2ZSB1cGRhdGVzPyAoeSllcyAobilvOiBcIjtcbmV4cG9ydCBjb25zdCBBRERfQ09NTUlUX1BVU0hfR0lUX0RFU0NSSVBUSU9OID0gXCJBZGQsIGNvbW1pdCBhbmQgcHVzaCB3aXRoIEdpdD8gKHkpZXMgKG4pbzogXCI7XG5leHBvcnQgY29uc3QgQlVJTERfU0hFTExfQ09NTUFORFNfREVTQ1JJUFRJT04gPSBcIkJ1aWxkIHNoZWxsIGNvbW1hbmRzKCkgKGxlYXZlIGJsYW5rIGZvciBkZWZhdWx0KTogXCI7XG5leHBvcnQgY29uc3QgSU5TVEFMTF9TSEVMTF9DT01NQU5EU19ERVNDUklQVElPTiA9IFwiSW5zdGFsbCBzaGVsbCBjb21tYW5kcygpIChsZWF2ZSBibGFuayBmb3IgZGVmYXVsdCk6IFwiO1xuZXhwb3J0IGNvbnN0IFBVQkxJU0hfU0hFTExfQ09NTUFORFNfREVTQ1JJUFRJT04gPSBcIlB1Ymxpc2ggc2hlbGwgY29tbWFuZHMoKSAobGVhdmUgYmxhbmsgZm9yIGRlZmF1bHQpOiBcIjtcbmV4cG9ydCBjb25zdCBTUEVDSUZZX0RJUkVDVE9SWV9UT19SRU1PVkVfREVTQ1JJUFRJT04gPSBcIlNwZWNpZnkgYSBkaXJlY3RvcnkgdG8gcmVtb3ZlOiBcIjtcbmV4cG9ydCBjb25zdCBTUEVDSUZZX0lHTk9SRURfREVQRU5ERU5DWV9UT19SRU1PVkVfREVTQ1JJUFRJT04gPSBcIlNwZWNpZnkgYW4gaWdub3JlZCBkZXBlbmRlbmN5IHRvIHJlbW92ZTogXCI7XG5leHBvcnQgY29uc3QgU1BFQ0lGWV9GT1JDRURfREVQRU5ERU5DWV9SRUxBVElPTl9UT19SRU1PVkVfREVTQ1JJUFRJT04gPSBcIlNwZWNpZnkgYSBmb3JjZWQgZGVwZW5kZW5jeSByZWxhdGlvbiB0byByZW1vdmUuXCI7XG4iXSwibmFtZXMiOlsiQUREX0NPTU1JVF9QVVNIX0dJVF9ERVNDUklQVElPTiIsIkJVSUxEX1NIRUxMX0NPTU1BTkRTX0RFU0NSSVBUSU9OIiwiQlVJTERfWUVTX05PX0RFU0NSSVBUSU9OIiwiRElSRUNUT1JZX1BBVEhfREVTQ1JJUFRJT04iLCJGQUlMRURfU0NSSVBUX0RFU0NSSVBUSU9OIiwiRk9SQ0VEX0RFUEVOREVOQ1lfREVTQ1JJUFRJT04iLCJGT1JDRURfREVQRU5ERU5UX0RFU0NSSVBUSU9OIiwiR0lUX1NIRUxMX0NPTU1BTkRTX0RFU0NSSVBUSU9OIiwiSUdOT1JFRF9ERVBFTkRFTkNZX0RFU0NSSVBUSU9OIiwiSU5TVEFMTF9TSEVMTF9DT01NQU5EU19ERVNDUklQVElPTiIsIklOU1RBTExfWUVTX05PX0RFU0NSSVBUSU9OIiwiUFVCTElTSF9TSEVMTF9DT01NQU5EU19ERVNDUklQVElPTiIsIlBVQkxJU0hfWUVTX05PX0RFU0NSSVBUSU9OIiwiU0FWRV9VUERBVEVTX1lFU19OT19ERVNDUklQVElPTiIsIlNQRUNJRllfRElSRUNUT1JZX1RPX1JFTU9WRV9ERVNDUklQVElPTiIsIlNQRUNJRllfRk9SQ0VEX0RFUEVOREVOQ1lfUkVMQVRJT05fVE9fUkVNT1ZFX0RFU0NSSVBUSU9OIiwiU1BFQ0lGWV9JR05PUkVEX0RFUEVOREVOQ1lfVE9fUkVNT1ZFX0RFU0NSSVBUSU9OIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFZYUE7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQVhBQztlQUFBQTs7UUFFQUM7ZUFBQUE7O1FBREFDO2VBQUFBOztRQUtBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBR0FDO2VBQUFBOztRQURBQztlQUFBQTs7UUFLQUM7ZUFBQUE7O1FBVEFDO2VBQUFBOztRQVVBQztlQUFBQTs7UUFUQUM7ZUFBQUE7O1FBS0FDO2VBQUFBOztRQUtBQztlQUFBQTs7UUFFQUM7ZUFBQUE7O1FBREFDO2VBQUFBOzs7QUFmTixJQUFNZCwyQkFBMkI7QUFDakMsSUFBTUUsNEJBQTRCO0FBQ2xDLElBQU1ELDZCQUE2QjtBQUNuQyxJQUFNTyw2QkFBNkI7QUFDbkMsSUFBTUUsNkJBQTZCO0FBQ25DLElBQU1OLCtCQUErQjtBQUNyQyxJQUFNRCxnQ0FBZ0M7QUFDdEMsSUFBTUcsaUNBQWlDO0FBQ3ZDLElBQU1ELGlDQUFpQztBQUN2QyxJQUFNTSxrQ0FBa0M7QUFDeEMsSUFBTWIsa0NBQWtDO0FBQ3hDLElBQU1DLG1DQUFtQztBQUN6QyxJQUFNUSxxQ0FBcUM7QUFDM0MsSUFBTUUscUNBQXFDO0FBQzNDLElBQU1HLDBDQUEwQztBQUNoRCxJQUFNRSxtREFBbUQ7QUFDekQsSUFBTUQsMkRBQTJEIn0=
@@ -0,0 +1,114 @@
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 MapDiff;
9
+ }
10
+ });
11
+ var _necessary = require("necessary");
12
+ var _semver = /*#__PURE__*/ _interop_require_default(require("../diff/semver"));
13
+ var _constants = require("../constants");
14
+ function _class_call_check(instance, Constructor) {
15
+ if (!(instance instanceof Constructor)) {
16
+ throw new TypeError("Cannot call a class as a function");
17
+ }
18
+ }
19
+ function _defineProperties(target, props) {
20
+ for(var i = 0; i < props.length; i++){
21
+ var descriptor = props[i];
22
+ descriptor.enumerable = descriptor.enumerable || false;
23
+ descriptor.configurable = true;
24
+ if ("value" in descriptor) descriptor.writable = true;
25
+ Object.defineProperty(target, descriptor.key, descriptor);
26
+ }
27
+ }
28
+ function _create_class(Constructor, protoProps, staticProps) {
29
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
+ if (staticProps) _defineProperties(Constructor, staticProps);
31
+ return Constructor;
32
+ }
33
+ function _interop_require_default(obj) {
34
+ return obj && obj.__esModule ? obj : {
35
+ default: obj
36
+ };
37
+ }
38
+ var filter = _necessary.arrayUtilities.filter;
39
+ var MapDiff = /*#__PURE__*/ function() {
40
+ function MapDiff(semverDiffs) {
41
+ _class_call_check(this, MapDiff);
42
+ this.semverDiffs = semverDiffs;
43
+ }
44
+ _create_class(MapDiff, [
45
+ {
46
+ key: "getSemverDiffs",
47
+ value: function getSemverDiffs() {
48
+ return this.semverDiffs;
49
+ }
50
+ },
51
+ {
52
+ key: "isEmpty",
53
+ value: function isEmpty() {
54
+ var names = Object.keys(this.semverDiffs), namesLength = names.length, empty = namesLength === 0;
55
+ return empty;
56
+ }
57
+ },
58
+ {
59
+ key: "save",
60
+ value: function save(packageJSON, name) {
61
+ packageJSON = packageJSON[name]; ///
62
+ this.semverDiffs.forEach(function(semverDiff) {
63
+ return semverDiff.save(packageJSON);
64
+ });
65
+ }
66
+ },
67
+ {
68
+ key: "someSemverDiff",
69
+ value: function someSemverDiff(callback) {
70
+ return this.semverDiffs.some(callback);
71
+ }
72
+ },
73
+ {
74
+ key: "removeSemverDiff",
75
+ value: function removeSemverDiff(name) {
76
+ filter(this.semverDiffs, function(semverDiff) {
77
+ var semverDiffName = semverDiff.getName();
78
+ if (semverDiffName !== name) {
79
+ return true;
80
+ }
81
+ });
82
+ }
83
+ },
84
+ {
85
+ key: "asString",
86
+ value: function asString() {
87
+ var semverDiffsLength = this.semverDiffs.length, lastIndex = semverDiffsLength - 1, semverDiffsString = this.semverDiffs.reduce(function(semverDiffsString, semverDiff, index) {
88
+ var last = index === lastIndex, semverDiffString = semverDiff.asString(last);
89
+ semverDiffsString = "".concat(semverDiffsString).concat(semverDiffString);
90
+ return semverDiffsString;
91
+ }, _constants.EMPTY_STRING), string = "{\n".concat(semverDiffsString, "\n }");
92
+ return string;
93
+ }
94
+ }
95
+ ], [
96
+ {
97
+ key: "fromMapAndReleaseMap",
98
+ value: function fromMapAndReleaseMap(map, releaseMap) {
99
+ var names = Object.keys(map), semverDiffs = [];
100
+ names.forEach(function(name) {
101
+ var semver = map[name], releaseSemver = releaseMap[name], semverDiff = _semver.default.fromNameSemverAndReleaseSemver(name, semver, releaseSemver);
102
+ if (semverDiff !== null) {
103
+ semverDiffs.push(semverDiff);
104
+ }
105
+ });
106
+ var mapDiff = new MapDiff(semverDiffs);
107
+ return mapDiff;
108
+ }
109
+ }
110
+ ]);
111
+ return MapDiff;
112
+ }();
113
+
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL21hcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBTZW12ZXJEaWZmIGZyb20gXCIuLi9kaWZmL3NlbXZlclwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwRGlmZiB7XG4gIGNvbnN0cnVjdG9yKHNlbXZlckRpZmZzKSB7XG4gICAgdGhpcy5zZW12ZXJEaWZmcyA9IHNlbXZlckRpZmZzO1xuICB9XG5cbiAgZ2V0U2VtdmVyRGlmZnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VtdmVyRGlmZnM7XG4gIH1cblxuICBpc0VtcHR5KCkge1xuICAgIGNvbnN0IG5hbWVzID0gT2JqZWN0LmtleXModGhpcy5zZW12ZXJEaWZmcyksICAvLy9cbiAgICAgICAgICBuYW1lc0xlbmd0aCA9IG5hbWVzLmxlbmd0aCxcbiAgICAgICAgICBlbXB0eSA9IChuYW1lc0xlbmd0aCA9PT0gMCk7XG5cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBzYXZlKHBhY2thZ2VKU09OLCBuYW1lKSB7XG4gICAgcGFja2FnZUpTT04gPSBwYWNrYWdlSlNPTltuYW1lXTsgIC8vL1xuXG4gICAgdGhpcy5zZW12ZXJEaWZmcy5mb3JFYWNoKChzZW12ZXJEaWZmKSA9PiBzZW12ZXJEaWZmLnNhdmUocGFja2FnZUpTT04pKVxuICB9XG5cbiAgc29tZVNlbXZlckRpZmYoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5zZW12ZXJEaWZmcy5zb21lKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlbW92ZVNlbXZlckRpZmYobmFtZSkge1xuICAgIGZpbHRlcih0aGlzLnNlbXZlckRpZmZzLCAoc2VtdmVyRGlmZikgPT4ge1xuICAgICAgY29uc3Qgc2VtdmVyRGlmZk5hbWUgPSBzZW12ZXJEaWZmLmdldE5hbWUoKTtcblxuICAgICAgaWYgKHNlbXZlckRpZmZOYW1lICE9PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3Qgc2VtdmVyRGlmZnNMZW5ndGggPSB0aGlzLnNlbXZlckRpZmZzLmxlbmd0aCxcbiAgICAgICAgICBsYXN0SW5kZXggPSBzZW12ZXJEaWZmc0xlbmd0aCAtIDEsXG4gICAgICAgICAgc2VtdmVyRGlmZnNTdHJpbmcgPSB0aGlzLnNlbXZlckRpZmZzLnJlZHVjZSgoc2VtdmVyRGlmZnNTdHJpbmcsIHNlbXZlckRpZmYsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXN0ID0gKGluZGV4ID09PSBsYXN0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgc2VtdmVyRGlmZlN0cmluZyA9IHNlbXZlckRpZmYuYXNTdHJpbmcobGFzdCk7XG5cbiAgICAgICAgICAgIHNlbXZlckRpZmZzU3RyaW5nID0gYCR7c2VtdmVyRGlmZnNTdHJpbmd9JHtzZW12ZXJEaWZmU3RyaW5nfWA7XG5cbiAgICAgICAgICAgIHJldHVybiBzZW12ZXJEaWZmc1N0cmluZztcbiAgICAgICAgICB9LCBFTVBUWV9TVFJJTkcpLFxuICAgICAgICAgIHN0cmluZyA9IGB7XFxuJHtzZW12ZXJEaWZmc1N0cmluZ31cXG4gICB9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbU1hcEFuZFJlbGVhc2VNYXAobWFwLCByZWxlYXNlTWFwKSB7XG4gICAgY29uc3QgbmFtZXMgPSBPYmplY3Qua2V5cyhtYXApLFxuICAgICAgICAgIHNlbXZlckRpZmZzID0gW107XG5cbiAgICBuYW1lcy5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBjb25zdCBzZW12ZXIgPSBtYXBbbmFtZV0sXG4gICAgICAgICAgICByZWxlYXNlU2VtdmVyID0gcmVsZWFzZU1hcFtuYW1lXSxcbiAgICAgICAgICAgIHNlbXZlckRpZmYgPSBTZW12ZXJEaWZmLmZyb21OYW1lU2VtdmVyQW5kUmVsZWFzZVNlbXZlcihuYW1lLCBzZW12ZXIsIHJlbGVhc2VTZW12ZXIpO1xuXG4gICAgICBpZiAoc2VtdmVyRGlmZiAhPT0gbnVsbCkge1xuICAgICAgICBzZW12ZXJEaWZmcy5wdXNoKHNlbXZlckRpZmYpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgbWFwRGlmZiA9IG5ldyBNYXBEaWZmKHNlbXZlckRpZmZzKTtcblxuICAgIHJldHVybiBtYXBEaWZmO1xuICB9XG59XG4iXSwibmFtZXMiOlsiTWFwRGlmZiIsImZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwic2VtdmVyRGlmZnMiLCJnZXRTZW12ZXJEaWZmcyIsImlzRW1wdHkiLCJuYW1lcyIsIk9iamVjdCIsImtleXMiLCJuYW1lc0xlbmd0aCIsImxlbmd0aCIsImVtcHR5Iiwic2F2ZSIsInBhY2thZ2VKU09OIiwibmFtZSIsImZvckVhY2giLCJzZW12ZXJEaWZmIiwic29tZVNlbXZlckRpZmYiLCJjYWxsYmFjayIsInNvbWUiLCJyZW1vdmVTZW12ZXJEaWZmIiwic2VtdmVyRGlmZk5hbWUiLCJnZXROYW1lIiwiYXNTdHJpbmciLCJzZW12ZXJEaWZmc0xlbmd0aCIsImxhc3RJbmRleCIsInNlbXZlckRpZmZzU3RyaW5nIiwicmVkdWNlIiwiaW5kZXgiLCJsYXN0Iiwic2VtdmVyRGlmZlN0cmluZyIsIkVNUFRZX1NUUklORyIsInN0cmluZyIsImZyb21NYXBBbmRSZWxlYXNlTWFwIiwibWFwIiwicmVsZWFzZU1hcCIsInNlbXZlciIsInJlbGVhc2VTZW12ZXIiLCJTZW12ZXJEaWZmIiwiZnJvbU5hbWVTZW12ZXJBbmRSZWxlYXNlU2VtdmVyIiwicHVzaCIsIm1hcERpZmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBVXFCQTs7O3lC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
@@ -0,0 +1,88 @@
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 SemverDiff;
9
+ }
10
+ });
11
+ function _class_call_check(instance, Constructor) {
12
+ if (!(instance instanceof Constructor)) {
13
+ throw new TypeError("Cannot call a class as a function");
14
+ }
15
+ }
16
+ function _defineProperties(target, props) {
17
+ for(var i = 0; i < props.length; i++){
18
+ var descriptor = props[i];
19
+ descriptor.enumerable = descriptor.enumerable || false;
20
+ descriptor.configurable = true;
21
+ if ("value" in descriptor) descriptor.writable = true;
22
+ Object.defineProperty(target, descriptor.key, descriptor);
23
+ }
24
+ }
25
+ function _create_class(Constructor, protoProps, staticProps) {
26
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
+ if (staticProps) _defineProperties(Constructor, staticProps);
28
+ return Constructor;
29
+ }
30
+ var SemverDiff = /*#__PURE__*/ function() {
31
+ function SemverDiff(name, semver, releaseSemver) {
32
+ _class_call_check(this, SemverDiff);
33
+ this.name = name;
34
+ this.semver = semver;
35
+ this.releaseSemver = releaseSemver;
36
+ }
37
+ _create_class(SemverDiff, [
38
+ {
39
+ key: "getName",
40
+ value: function getName() {
41
+ return this.name;
42
+ }
43
+ },
44
+ {
45
+ key: "getSemver",
46
+ value: function getSemver() {
47
+ return this.semver;
48
+ }
49
+ },
50
+ {
51
+ key: "getReleaseSemver",
52
+ value: function getReleaseSemver() {
53
+ return this.releaseSemver;
54
+ }
55
+ },
56
+ {
57
+ key: "save",
58
+ value: function save(packageJSON) {
59
+ var semver = this.releaseSemver;
60
+ packageJSON[this.name] = semver;
61
+ }
62
+ },
63
+ {
64
+ key: "asString",
65
+ value: function asString(last) {
66
+ var string = ' "'.concat(this.name, '": "').concat(this.semver, '" -> "').concat(this.releaseSemver, '"');
67
+ if (!last) {
68
+ string = "".concat(string, ",\n");
69
+ }
70
+ return string;
71
+ }
72
+ }
73
+ ], [
74
+ {
75
+ key: "fromNameSemverAndReleaseSemver",
76
+ value: function fromNameSemverAndReleaseSemver(name, semver, releaseSemver) {
77
+ var semverDiff = null;
78
+ if (semver !== releaseSemver) {
79
+ semverDiff = new SemverDiff(name, semver, releaseSemver);
80
+ }
81
+ return semverDiff;
82
+ }
83
+ }
84
+ ]);
85
+ return SemverDiff;
86
+ }();
87
+
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbXZlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VtdmVyRGlmZiB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIHNlbXZlciwgcmVsZWFzZVNlbXZlcikge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5zZW12ZXIgPSBzZW12ZXI7XG4gICAgdGhpcy5yZWxlYXNlU2VtdmVyID0gcmVsZWFzZVNlbXZlcjtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFNlbXZlcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZW12ZXI7XG4gIH1cblxuICBnZXRSZWxlYXNlU2VtdmVyKCkge1xuICAgIHJldHVybiB0aGlzLnJlbGVhc2VTZW12ZXI7XG4gIH1cblxuICBzYXZlKHBhY2thZ2VKU09OKSB7XG4gICAgY29uc3Qgc2VtdmVyID0gdGhpcy5yZWxlYXNlU2VtdmVyO1xuXG4gICAgcGFja2FnZUpTT05bdGhpcy5uYW1lXSA9IHNlbXZlcjtcbiAgfVxuXG4gIGFzU3RyaW5nKGxhc3QpIHtcbiAgICBsZXQgc3RyaW5nID0gYCAgICAgXCIke3RoaXMubmFtZX1cIjogXCIke3RoaXMuc2VtdmVyfVwiIC0+IFwiJHt0aGlzLnJlbGVhc2VTZW12ZXJ9XCJgO1xuXG4gICAgaWYgKCFsYXN0KSB7XG4gICAgICBzdHJpbmcgPSBgJHtzdHJpbmd9LFxcbmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZVNlbXZlckFuZFJlbGVhc2VTZW12ZXIobmFtZSwgc2VtdmVyLCByZWxlYXNlU2VtdmVyKSB7XG4gICAgbGV0IHNlbXZlckRpZmYgPSBudWxsO1xuXG4gICAgaWYgKHNlbXZlciAhPT0gcmVsZWFzZVNlbXZlcikge1xuICAgICAgc2VtdmVyRGlmZiA9IG5ldyBTZW12ZXJEaWZmKG5hbWUsIHNlbXZlciwgcmVsZWFzZVNlbXZlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbXZlckRpZmY7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTZW12ZXJEaWZmIiwibmFtZSIsInNlbXZlciIsInJlbGVhc2VTZW12ZXIiLCJnZXROYW1lIiwiZ2V0U2VtdmVyIiwiZ2V0UmVsZWFzZVNlbXZlciIsInNhdmUiLCJwYWNrYWdlSlNPTiIsImFzU3RyaW5nIiwibGFzdCIsInN0cmluZyIsImZyb21OYW1lU2VtdmVyQW5kUmVsZWFzZVNlbXZlciIsInNlbXZlckRpZmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFOLElBQUEsQUFBTUEsMkJBQU47YUFBTUEsV0FDUEMsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLGFBQWE7Z0NBRHBCSDtRQUVqQixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLGFBQWEsR0FBR0E7O2tCQUpKSDs7WUFPbkJJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsYUFBYTtZQUMzQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxLQUFLQyxXQUFXO2dCQUNkLElBQU1OLFNBQVMsSUFBSSxDQUFDQyxhQUFhO2dCQUVqQ0ssV0FBVyxDQUFDLElBQUksQ0FBQ1AsSUFBSSxDQUFDLEdBQUdDO1lBQzNCOzs7WUFFQU8sS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVNDLElBQUk7Z0JBQ1gsSUFBSUMsU0FBUyxBQUFDLFNBQXdCLE9BQWhCLElBQUksQ0FBQ1YsSUFBSSxFQUFDLFFBQTBCLE9BQXBCLElBQUksQ0FBQ0MsTUFBTSxFQUFDLFVBQTJCLE9BQW5CLElBQUksQ0FBQ0MsYUFBYSxFQUFDO2dCQUU3RSxJQUFJLENBQUNPLE1BQU07b0JBQ1RDLFNBQVMsQUFBQyxHQUFTLE9BQVBBLFFBQU87Z0JBQ3JCO2dCQUVBLE9BQU9BO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsK0JBQStCWCxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsYUFBYTtnQkFDL0QsSUFBSVUsYUFBYTtnQkFFakIsSUFBSVgsV0FBV0MsZUFBZTtvQkFDNUJVLGFBQWEsSUF2Q0ViLFdBdUNhQyxNQUFNQyxRQUFRQztnQkFDNUM7Z0JBRUEsT0FBT1U7WUFDVDs7O1dBM0NtQmIifQ==
@@ -0,0 +1,97 @@
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 VersionDiff;
9
+ }
10
+ });
11
+ var _version = /*#__PURE__*/ _interop_require_default(require("../version"));
12
+ function _class_call_check(instance, Constructor) {
13
+ if (!(instance instanceof Constructor)) {
14
+ throw new TypeError("Cannot call a class as a function");
15
+ }
16
+ }
17
+ function _defineProperties(target, props) {
18
+ for(var i = 0; i < props.length; i++){
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+ function _create_class(Constructor, protoProps, staticProps) {
27
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
28
+ if (staticProps) _defineProperties(Constructor, staticProps);
29
+ return Constructor;
30
+ }
31
+ function _interop_require_default(obj) {
32
+ return obj && obj.__esModule ? obj : {
33
+ default: obj
34
+ };
35
+ }
36
+ var VersionDiff = /*#__PURE__*/ function() {
37
+ function VersionDiff(version, releaseVersion) {
38
+ _class_call_check(this, VersionDiff);
39
+ this.version = version;
40
+ this.releaseVersion = releaseVersion;
41
+ }
42
+ _create_class(VersionDiff, [
43
+ {
44
+ key: "isEmpty",
45
+ value: function isEmpty() {
46
+ var empty = true;
47
+ if (this.version !== null) {
48
+ var versionEqualToReleaseVersion = this.version.isEqualTo(this.releaseVersion);
49
+ empty = versionEqualToReleaseVersion; ///
50
+ }
51
+ return empty;
52
+ }
53
+ },
54
+ {
55
+ key: "getVersion",
56
+ value: function getVersion() {
57
+ return this.version;
58
+ }
59
+ },
60
+ {
61
+ key: "getReleaseVersion",
62
+ value: function getReleaseVersion() {
63
+ return this.releaseVersion;
64
+ }
65
+ },
66
+ {
67
+ key: "save",
68
+ value: function save(packageJSON) {
69
+ if (this.version === null) {
70
+ return;
71
+ }
72
+ var releaseVersionString = this.releaseVersion.asString(), version = releaseVersionString; ///
73
+ Object.assign(packageJSON, {
74
+ version: version
75
+ });
76
+ }
77
+ },
78
+ {
79
+ key: "asString",
80
+ value: function asString() {
81
+ var versionString = this.version.asString(), releaseVersionString = this.releaseVersion.asString(), string = '"'.concat(versionString, '" -> "').concat(releaseVersionString, '"');
82
+ return string;
83
+ }
84
+ }
85
+ ], [
86
+ {
87
+ key: "fromVersionStringAndReleaseVersion",
88
+ value: function fromVersionStringAndReleaseVersion(versionString, releaseVersion) {
89
+ var version = _version.default.fromVersionString(versionString), versionDiff = new VersionDiff(version, releaseVersion);
90
+ return versionDiff;
91
+ }
92
+ }
93
+ ]);
94
+ return VersionDiff;
95
+ }();
96
+
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3ZlcnNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWZXJzaW9uIGZyb20gXCIuLi92ZXJzaW9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlcnNpb25EaWZmIHtcbiAgY29uc3RydWN0b3IodmVyc2lvbiwgcmVsZWFzZVZlcnNpb24pIHtcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMucmVsZWFzZVZlcnNpb24gPSByZWxlYXNlVmVyc2lvbjtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgbGV0IGVtcHR5ID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnZlcnNpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZlcnNpb25FcXVhbFRvUmVsZWFzZVZlcnNpb24gPSB0aGlzLnZlcnNpb24uaXNFcXVhbFRvKHRoaXMucmVsZWFzZVZlcnNpb24pO1xuXG4gICAgICBlbXB0eSA9IHZlcnNpb25FcXVhbFRvUmVsZWFzZVZlcnNpb247IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBlbXB0eTtcbiAgfVxuXG4gIGdldFZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyc2lvbjtcbiAgfVxuXG4gIGdldFJlbGVhc2VWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnJlbGVhc2VWZXJzaW9uO1xuICB9XG5cbiAgc2F2ZShwYWNrYWdlSlNPTikge1xuICAgIGlmICh0aGlzLnZlcnNpb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlVmVyc2lvblN0cmluZyA9IHRoaXMucmVsZWFzZVZlcnNpb24uYXNTdHJpbmcoKSxcbiAgICAgICAgICB2ZXJzaW9uID0gcmVsZWFzZVZlcnNpb25TdHJpbmc7IC8vL1xuXG4gICAgT2JqZWN0LmFzc2lnbihwYWNrYWdlSlNPTiwge1xuICAgICAgdmVyc2lvblxuICAgIH0pO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgdmVyc2lvblN0cmluZyA9IHRoaXMudmVyc2lvbi5hc1N0cmluZygpLFxuICAgICAgICAgIHJlbGVhc2VWZXJzaW9uU3RyaW5nID0gdGhpcy5yZWxlYXNlVmVyc2lvbi5hc1N0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IGBcIiR7dmVyc2lvblN0cmluZ31cIiAtPiBcIiR7cmVsZWFzZVZlcnNpb25TdHJpbmd9XCJgO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmVyc2lvblN0cmluZ0FuZFJlbGVhc2VWZXJzaW9uKHZlcnNpb25TdHJpbmcsIHJlbGVhc2VWZXJzaW9uKSB7XG4gICAgY29uc3QgdmVyc2lvbiA9IFZlcnNpb24uZnJvbVZlcnNpb25TdHJpbmcodmVyc2lvblN0cmluZyksXG4gICAgICAgICAgdmVyc2lvbkRpZmYgPSBuZXcgVmVyc2lvbkRpZmYodmVyc2lvbiwgcmVsZWFzZVZlcnNpb24pO1xuXG4gICAgcmV0dXJuIHZlcnNpb25EaWZmO1xuICB9XG59XG4iXSwibmFtZXMiOlsiVmVyc2lvbkRpZmYiLCJ2ZXJzaW9uIiwicmVsZWFzZVZlcnNpb24iLCJpc0VtcHR5IiwiZW1wdHkiLCJ2ZXJzaW9uRXF1YWxUb1JlbGVhc2VWZXJzaW9uIiwiaXNFcXVhbFRvIiwiZ2V0VmVyc2lvbiIsImdldFJlbGVhc2VWZXJzaW9uIiwic2F2ZSIsInBhY2thZ2VKU09OIiwicmVsZWFzZVZlcnNpb25TdHJpbmciLCJhc1N0cmluZyIsIk9iamVjdCIsImFzc2lnbiIsInZlcnNpb25TdHJpbmciLCJzdHJpbmciLCJmcm9tVmVyc2lvblN0cmluZ0FuZFJlbGVhc2VWZXJzaW9uIiwiVmVyc2lvbiIsImZyb21WZXJzaW9uU3RyaW5nIiwidmVyc2lvbkRpZmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7OzhEQUZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUwsSUFBQSxBQUFNQSw0QkFBTjthQUFNQSxZQUNQQyxPQUFPLEVBQUVDLGNBQWM7Z0NBRGhCRjtRQUVqQixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLGNBQWMsR0FBR0E7O2tCQUhMRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJQyxRQUFRO2dCQUVaLElBQUksSUFBSSxDQUFDSCxPQUFPLEtBQUssTUFBTTtvQkFDekIsSUFBTUksK0JBQStCLElBQUksQ0FBQ0osT0FBTyxDQUFDSyxTQUFTLENBQUMsSUFBSSxDQUFDSixjQUFjO29CQUUvRUUsUUFBUUMsOEJBQThCLEdBQUc7Z0JBQzNDO2dCQUVBLE9BQU9EO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNOLE9BQU87WUFDckI7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNOLGNBQWM7WUFDNUI7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUEsS0FBS0MsV0FBVztnQkFDZCxJQUFJLElBQUksQ0FBQ1QsT0FBTyxLQUFLLE1BQU07b0JBQ3pCO2dCQUNGO2dCQUVBLElBQU1VLHVCQUF1QixJQUFJLENBQUNULGNBQWMsQ0FBQ1UsUUFBUSxJQUNuRFgsVUFBVVUsc0JBQXNCLEdBQUc7Z0JBRXpDRSxPQUFPQyxNQUFNLENBQUNKLGFBQWE7b0JBQ3pCVCxTQUFBQTtnQkFDRjtZQUNGOzs7WUFFQVcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1HLGdCQUFnQixJQUFJLENBQUNkLE9BQU8sQ0FBQ1csUUFBUSxJQUNyQ0QsdUJBQXVCLElBQUksQ0FBQ1QsY0FBYyxDQUFDVSxRQUFRLElBQ25ESSxTQUFTLEFBQUMsSUFBeUJMLE9BQXRCSSxlQUFjLFVBQTZCLE9BQXJCSixzQkFBcUI7Z0JBRTlELE9BQU9LO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsbUNBQW1DRixhQUFhLEVBQUViLGNBQWM7Z0JBQ3JFLElBQU1ELFVBQVVpQixnQkFBTyxDQUFDQyxpQkFBaUIsQ0FBQ0osZ0JBQ3BDSyxjQUFjLElBakRIcEIsWUFpRG1CQyxTQUFTQztnQkFFN0MsT0FBT2tCO1lBQ1Q7OztXQXBEbUJwQiJ9
package/lib/diff.js ADDED
@@ -0,0 +1,210 @@
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 Diff;
9
+ }
10
+ });
11
+ var _map = /*#__PURE__*/ _interop_require_default(require("./diff/map"));
12
+ var _version = /*#__PURE__*/ _interop_require_default(require("./diff/version"));
13
+ var _constants = require("./constants");
14
+ var _packageJSON = require("./utilities/packageJSON");
15
+ function _class_call_check(instance, Constructor) {
16
+ if (!(instance instanceof Constructor)) {
17
+ throw new TypeError("Cannot call a class as a function");
18
+ }
19
+ }
20
+ function _defineProperties(target, props) {
21
+ for(var i = 0; i < props.length; i++){
22
+ var descriptor = props[i];
23
+ descriptor.enumerable = descriptor.enumerable || false;
24
+ descriptor.configurable = true;
25
+ if ("value" in descriptor) descriptor.writable = true;
26
+ Object.defineProperty(target, descriptor.key, descriptor);
27
+ }
28
+ }
29
+ function _create_class(Constructor, protoProps, staticProps) {
30
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31
+ if (staticProps) _defineProperties(Constructor, staticProps);
32
+ return Constructor;
33
+ }
34
+ function _interop_require_default(obj) {
35
+ return obj && obj.__esModule ? obj : {
36
+ default: obj
37
+ };
38
+ }
39
+ var Diff = /*#__PURE__*/ function() {
40
+ function Diff(release, versionDiff, dependencyMapDiff, devDependencyMapDiff) {
41
+ _class_call_check(this, Diff);
42
+ this.release = release;
43
+ this.versionDiff = versionDiff;
44
+ this.dependencyMapDiff = dependencyMapDiff;
45
+ this.devDependencyMapDiff = devDependencyMapDiff;
46
+ }
47
+ _create_class(Diff, [
48
+ {
49
+ key: "getRelease",
50
+ value: function getRelease() {
51
+ return this.release;
52
+ }
53
+ },
54
+ {
55
+ key: "getVersionDiff",
56
+ value: function getVersionDiff() {
57
+ return this.versionDiff;
58
+ }
59
+ },
60
+ {
61
+ key: "getDependencyMapDiff",
62
+ value: function getDependencyMapDiff() {
63
+ return this.dependencyMapDiff;
64
+ }
65
+ },
66
+ {
67
+ key: "getDevDependencyMapDiff",
68
+ value: function getDevDependencyMapDiff() {
69
+ return this.devDependencyMapDiff;
70
+ }
71
+ },
72
+ {
73
+ key: "getName",
74
+ value: function getName() {
75
+ return this.release.getName();
76
+ }
77
+ },
78
+ {
79
+ key: "isPublishable",
80
+ value: function isPublishable() {
81
+ return this.release.isPublishable();
82
+ }
83
+ },
84
+ {
85
+ key: "getSubDirectoryPath",
86
+ value: function getSubDirectoryPath() {
87
+ return this.release.getSubDirectoryPath();
88
+ }
89
+ },
90
+ {
91
+ key: "getDevDependencyNames",
92
+ value: function getDevDependencyNames() {
93
+ return this.release.getDevDependencyNames();
94
+ }
95
+ },
96
+ {
97
+ key: "isVersionDiffEmpty",
98
+ value: function isVersionDiffEmpty() {
99
+ return this.versionDiff.isEmpty();
100
+ }
101
+ },
102
+ {
103
+ key: "isDependencyMapDiffEmpty",
104
+ value: function isDependencyMapDiffEmpty() {
105
+ return this.dependencyMapDiff.isEmpty();
106
+ }
107
+ },
108
+ {
109
+ key: "isDevDependencyMapDiffEmpty",
110
+ value: function isDevDependencyMapDiffEmpty() {
111
+ return this.devDependencyMapDiff.isEmpty();
112
+ }
113
+ },
114
+ {
115
+ key: "someDevDependencySemverDiff",
116
+ value: function someDevDependencySemverDiff(callback) {
117
+ return this.devDependencyMapDiff.someSemverDiff(callback);
118
+ } ///
119
+ },
120
+ {
121
+ key: "save",
122
+ value: function save() {
123
+ var success = false;
124
+ var subDirectoryPath = this.getSubDirectoryPath(), packageJSON = (0, _packageJSON.readPackageJSONFile)(subDirectoryPath);
125
+ if (packageJSON !== null) {
126
+ this.versionDiff.save(packageJSON);
127
+ this.dependencyMapDiff.save(packageJSON, _constants.DEPENDENCIES);
128
+ this.devDependencyMapDiff.save(packageJSON, _constants.DEV_DEPENDENCIES);
129
+ success = (0, _packageJSON.writePackageJSONFile)(subDirectoryPath, packageJSON);
130
+ }
131
+ return success;
132
+ }
133
+ },
134
+ {
135
+ key: "git",
136
+ value: function git(quietly, callback) {
137
+ this.release.git(quietly, callback);
138
+ }
139
+ },
140
+ {
141
+ key: "install",
142
+ value: function install(quietly, callback) {
143
+ this.release.install(quietly, callback);
144
+ }
145
+ },
146
+ {
147
+ key: "build",
148
+ value: function build(quietly, callback) {
149
+ this.release.build(quietly, callback);
150
+ }
151
+ },
152
+ {
153
+ key: "publish",
154
+ value: function publish(quietly, callback) {
155
+ this.release.publish(quietly, callback);
156
+ }
157
+ },
158
+ {
159
+ key: "removeDependency",
160
+ value: function removeDependency(name) {
161
+ this.dependencyMapDiff.removeSemverDiff(name);
162
+ }
163
+ },
164
+ {
165
+ key: "removeDevDependency",
166
+ value: function removeDevDependency(name) {
167
+ this.devDependencyMapDiff.removeSemverDiff(name);
168
+ }
169
+ },
170
+ {
171
+ key: "asString",
172
+ value: function asString() {
173
+ var string = "";
174
+ var name = this.getName(), subDirectoryPath = this.getSubDirectoryPath();
175
+ string += name === null ? ' "'.concat(subDirectoryPath, '":\n') : ' "'.concat(subDirectoryPath, '" ("').concat(name, '"):\n');
176
+ var versionDiffEmpty = this.isVersionDiffEmpty(), dependencyMapDiffEmpty = this.isDependencyMapDiffEmpty(), devDependencyMapDiffEmpty = this.isDevDependencyMapDiffEmpty();
177
+ if (!versionDiffEmpty) {
178
+ var versionDiffString = this.versionDiff.asString();
179
+ string += '\n "version": '.concat(versionDiffString, ",");
180
+ }
181
+ if (!dependencyMapDiffEmpty) {
182
+ var dependencyMapDiffString = this.dependencyMapDiff.asString();
183
+ string += '\n "dependencies": '.concat(dependencyMapDiffString, ",");
184
+ }
185
+ if (!devDependencyMapDiffEmpty) {
186
+ var devDependencyMapDiffString = this.devDependencyMapDiff.asString();
187
+ string += '\n "devDependencies": '.concat(devDependencyMapDiffString, ",");
188
+ }
189
+ string = string.replace(/,$/, "\n");
190
+ return string;
191
+ }
192
+ }
193
+ ], [
194
+ {
195
+ key: "fromRelease",
196
+ value: function fromRelease(release) {
197
+ var diff = null;
198
+ var subDirectoryPath = release.getSubDirectoryPath(), packageJSON = (0, _packageJSON.readPackageJSONFile)(subDirectoryPath);
199
+ if (packageJSON !== null) {
200
+ var _packageJSON_version = packageJSON.version, version = _packageJSON_version === void 0 ? null : _packageJSON_version, _packageJSON_dependencies = packageJSON.dependencies, dependencies = _packageJSON_dependencies === void 0 ? {} : _packageJSON_dependencies, _packageJSON_devDependencies = packageJSON.devDependencies, devDependencies = _packageJSON_devDependencies === void 0 ? {} : _packageJSON_devDependencies, versionString = version, dependencyMap = dependencies, devDependencyMap = devDependencies, releaseVersion = release.getVersion(), releaseDependencyMap = release.getDependencyMap(), releaseDevDependencyMap = release.getDevDependencyMap(), versionDiff = _version.default.fromVersionStringAndReleaseVersion(versionString, releaseVersion), dependencyMapDiff = _map.default.fromMapAndReleaseMap(dependencyMap, releaseDependencyMap), devDependencyMapDiff = _map.default.fromMapAndReleaseMap(devDependencyMap, releaseDevDependencyMap);
201
+ diff = new Diff(release, versionDiff, dependencyMapDiff, devDependencyMapDiff);
202
+ }
203
+ return diff;
204
+ }
205
+ }
206
+ ]);
207
+ return Diff;
208
+ }();
209
+
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaWZmLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWFwRGlmZiBmcm9tIFwiLi9kaWZmL21hcFwiO1xuaW1wb3J0IFZlcnNpb25EaWZmIGZyb20gXCIuL2RpZmYvdmVyc2lvblwiO1xuXG5pbXBvcnQgeyBERVBFTkRFTkNJRVMsIERFVl9ERVBFTkRFTkNJRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHJlYWRQYWNrYWdlSlNPTkZpbGUsIHdyaXRlUGFja2FnZUpTT05GaWxlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhY2thZ2VKU09OXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERpZmYge1xuICBjb25zdHJ1Y3RvcihyZWxlYXNlLCB2ZXJzaW9uRGlmZiwgZGVwZW5kZW5jeU1hcERpZmYsIGRldkRlcGVuZGVuY3lNYXBEaWZmKSB7XG4gICAgdGhpcy5yZWxlYXNlID0gcmVsZWFzZTtcbiAgICB0aGlzLnZlcnNpb25EaWZmID0gdmVyc2lvbkRpZmY7XG4gICAgdGhpcy5kZXBlbmRlbmN5TWFwRGlmZiA9IGRlcGVuZGVuY3lNYXBEaWZmO1xuICAgIHRoaXMuZGV2RGVwZW5kZW5jeU1hcERpZmYgPSBkZXZEZXBlbmRlbmN5TWFwRGlmZjtcbiAgfVxuXG4gIGdldFJlbGVhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZTtcbiAgfVxuXG4gIGdldFZlcnNpb25EaWZmKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb25EaWZmO1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jeU1hcERpZmYoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jeU1hcERpZmY7XG4gIH1cblxuICBnZXREZXZEZXBlbmRlbmN5TWFwRGlmZigpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZEZXBlbmRlbmN5TWFwRGlmZjtcbiAgfVxuXG4gIGdldE5hbWUoKSB7IHJldHVybiB0aGlzLnJlbGVhc2UuZ2V0TmFtZSgpOyB9XG5cbiAgaXNQdWJsaXNoYWJsZSgpIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5pc1B1Ymxpc2hhYmxlKCk7IH1cblxuICBnZXRTdWJEaXJlY3RvcnlQYXRoKCkgeyByZXR1cm4gdGhpcy5yZWxlYXNlLmdldFN1YkRpcmVjdG9yeVBhdGgoKTsgfVxuXG4gIGdldERldkRlcGVuZGVuY3lOYW1lcygpIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5nZXREZXZEZXBlbmRlbmN5TmFtZXMoKTsgfVxuXG4gIGlzVmVyc2lvbkRpZmZFbXB0eSgpIHsgcmV0dXJuIHRoaXMudmVyc2lvbkRpZmYuaXNFbXB0eSgpOyB9XG5cbiAgaXNEZXBlbmRlbmN5TWFwRGlmZkVtcHR5KCkgeyByZXR1cm4gdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5pc0VtcHR5KCk7IH1cblxuICBpc0RldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkoKSB7IHJldHVybiB0aGlzLmRldkRlcGVuZGVuY3lNYXBEaWZmLmlzRW1wdHkoKTsgfVxuXG4gIHNvbWVEZXZEZXBlbmRlbmN5U2VtdmVyRGlmZihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5kZXZEZXBlbmRlbmN5TWFwRGlmZi5zb21lU2VtdmVyRGlmZihjYWxsYmFjayk7IH0gLy8vXG5cbiAgc2F2ZSgpIHtcbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aCA9IHRoaXMuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpLFxuICAgICAgICAgIHBhY2thZ2VKU09OID0gcmVhZFBhY2thZ2VKU09ORmlsZShzdWJEaXJlY3RvcnlQYXRoKTtcblxuICAgIGlmIChwYWNrYWdlSlNPTiAhPT0gbnVsbCkge1xuICAgICAgdGhpcy52ZXJzaW9uRGlmZi5zYXZlKHBhY2thZ2VKU09OKTtcblxuICAgICAgdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5zYXZlKHBhY2thZ2VKU09OLCBERVBFTkRFTkNJRVMpO1xuXG4gICAgICB0aGlzLmRldkRlcGVuZGVuY3lNYXBEaWZmLnNhdmUocGFja2FnZUpTT04sIERFVl9ERVBFTkRFTkNJRVMpO1xuXG4gICAgICBzdWNjZXNzID0gd3JpdGVQYWNrYWdlSlNPTkZpbGUoc3ViRGlyZWN0b3J5UGF0aCwgcGFja2FnZUpTT04pO1xuICAgIH1cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgZ2l0KHF1aWV0bHksIGNhbGxiYWNrKSB7IHRoaXMucmVsZWFzZS5naXQocXVpZXRseSwgY2FsbGJhY2spOyB9XG5cbiAgaW5zdGFsbChxdWlldGx5LCBjYWxsYmFjaykgeyB0aGlzLnJlbGVhc2UuaW5zdGFsbChxdWlldGx5LCBjYWxsYmFjayk7IH1cblxuICBidWlsZChxdWlldGx5LCBjYWxsYmFjaykgeyB0aGlzLnJlbGVhc2UuYnVpbGQocXVpZXRseSwgY2FsbGJhY2spOyB9XG5cbiAgcHVibGlzaChxdWlldGx5LCBjYWxsYmFjaykgeyB0aGlzLnJlbGVhc2UucHVibGlzaChxdWlldGx5LCBjYWxsYmFjayk7IH1cblxuICByZW1vdmVEZXBlbmRlbmN5KG5hbWUpIHsgdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5yZW1vdmVTZW12ZXJEaWZmKG5hbWUpOyB9XG5cbiAgcmVtb3ZlRGV2RGVwZW5kZW5jeShuYW1lKSB7IHRoaXMuZGV2RGVwZW5kZW5jeU1hcERpZmYucmVtb3ZlU2VtdmVyRGlmZihuYW1lKTsgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGxldCBzdHJpbmcgPSBgYDtcblxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICBzdWJEaXJlY3RvcnlQYXRoID0gdGhpcy5nZXRTdWJEaXJlY3RvcnlQYXRoKCk7XG5cbiAgICBzdHJpbmcgKz0gKG5hbWUgPT09IG51bGwpID9cbiAgICAgICAgICAgIGAgXCIke3N1YkRpcmVjdG9yeVBhdGh9XCI6XFxuYCA6XG4gICAgICAgICAgICAgIGAgXCIke3N1YkRpcmVjdG9yeVBhdGh9XCIgKFwiJHtuYW1lfVwiKTpcXG5gO1xuXG4gICAgY29uc3QgdmVyc2lvbkRpZmZFbXB0eSA9IHRoaXMuaXNWZXJzaW9uRGlmZkVtcHR5KCksXG4gICAgICAgICAgZGVwZW5kZW5jeU1hcERpZmZFbXB0eSA9IHRoaXMuaXNEZXBlbmRlbmN5TWFwRGlmZkVtcHR5KCksXG4gICAgICAgICAgZGV2RGVwZW5kZW5jeU1hcERpZmZFbXB0eSA9IHRoaXMuaXNEZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5KCk7XG5cbiAgICBpZiAoIXZlcnNpb25EaWZmRW1wdHkpIHtcbiAgICAgIGNvbnN0IHZlcnNpb25EaWZmU3RyaW5nID0gdGhpcy52ZXJzaW9uRGlmZi5hc1N0cmluZygpO1xuXG4gICAgICBzdHJpbmcgKz0gYFxcbiAgIFwidmVyc2lvblwiOiAke3ZlcnNpb25EaWZmU3RyaW5nfSxgO1xuICAgIH1cblxuICAgIGlmICghZGVwZW5kZW5jeU1hcERpZmZFbXB0eSkge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeU1hcERpZmZTdHJpbmcgPSB0aGlzLmRlcGVuZGVuY3lNYXBEaWZmLmFzU3RyaW5nKCk7XG5cbiAgICAgIHN0cmluZyArPSBgXFxuICAgXCJkZXBlbmRlbmNpZXNcIjogJHtkZXBlbmRlbmN5TWFwRGlmZlN0cmluZ30sYDtcbiAgICB9XG5cbiAgICBpZiAoIWRldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkpIHtcbiAgICAgIGNvbnN0IGRldkRlcGVuZGVuY3lNYXBEaWZmU3RyaW5nID0gdGhpcy5kZXZEZXBlbmRlbmN5TWFwRGlmZi5hc1N0cmluZygpO1xuXG4gICAgICBzdHJpbmcgKz0gYFxcbiAgIFwiZGV2RGVwZW5kZW5jaWVzXCI6ICR7ZGV2RGVwZW5kZW5jeU1hcERpZmZTdHJpbmd9LGA7XG4gICAgfVxuXG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoLywkLywgXCJcXG5cIik7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21SZWxlYXNlKHJlbGVhc2UpIHtcbiAgICBsZXQgZGlmZiA9IG51bGw7XG5cbiAgICBjb25zdCBzdWJEaXJlY3RvcnlQYXRoID0gcmVsZWFzZS5nZXRTdWJEaXJlY3RvcnlQYXRoKCksXG4gICAgICAgICAgcGFja2FnZUpTT04gPSByZWFkUGFja2FnZUpTT05GaWxlKHN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgaWYgKHBhY2thZ2VKU09OICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IHZlcnNpb24gPSBudWxsLCBkZXBlbmRlbmNpZXMgPSB7fSwgZGV2RGVwZW5kZW5jaWVzID0ge30gfSA9IHBhY2thZ2VKU09OLFxuICAgICAgICAgICAgdmVyc2lvblN0cmluZyA9IHZlcnNpb24sICAvLy9cbiAgICAgICAgICAgIGRlcGVuZGVuY3lNYXAgPSBkZXBlbmRlbmNpZXMsIC8vL1xuICAgICAgICAgICAgZGV2RGVwZW5kZW5jeU1hcCA9IGRldkRlcGVuZGVuY2llcywgLy8vXG4gICAgICAgICAgICByZWxlYXNlVmVyc2lvbiA9IHJlbGVhc2UuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgcmVsZWFzZURlcGVuZGVuY3lNYXAgPSByZWxlYXNlLmdldERlcGVuZGVuY3lNYXAoKSxcbiAgICAgICAgICAgIHJlbGVhc2VEZXZEZXBlbmRlbmN5TWFwID0gcmVsZWFzZS5nZXREZXZEZXBlbmRlbmN5TWFwKCksXG4gICAgICAgICAgICB2ZXJzaW9uRGlmZiA9IFZlcnNpb25EaWZmLmZyb21WZXJzaW9uU3RyaW5nQW5kUmVsZWFzZVZlcnNpb24odmVyc2lvblN0cmluZywgcmVsZWFzZVZlcnNpb24pLFxuICAgICAgICAgICAgZGVwZW5kZW5jeU1hcERpZmYgPSBNYXBEaWZmLmZyb21NYXBBbmRSZWxlYXNlTWFwKGRlcGVuZGVuY3lNYXAsIHJlbGVhc2VEZXBlbmRlbmN5TWFwKSxcbiAgICAgICAgICAgIGRldkRlcGVuZGVuY3lNYXBEaWZmID0gTWFwRGlmZi5mcm9tTWFwQW5kUmVsZWFzZU1hcChkZXZEZXBlbmRlbmN5TWFwLCByZWxlYXNlRGV2RGVwZW5kZW5jeU1hcCk7XG5cbiAgICAgIGRpZmYgPSBuZXcgRGlmZihyZWxlYXNlLCB2ZXJzaW9uRGlmZiwgZGVwZW5kZW5jeU1hcERpZmYsIGRldkRlcGVuZGVuY3lNYXBEaWZmKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGlmZjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRpZmYiLCJyZWxlYXNlIiwidmVyc2lvbkRpZmYiLCJkZXBlbmRlbmN5TWFwRGlmZiIsImRldkRlcGVuZGVuY3lNYXBEaWZmIiwiZ2V0UmVsZWFzZSIsImdldFZlcnNpb25EaWZmIiwiZ2V0RGVwZW5kZW5jeU1hcERpZmYiLCJnZXREZXZEZXBlbmRlbmN5TWFwRGlmZiIsImdldE5hbWUiLCJpc1B1Ymxpc2hhYmxlIiwiZ2V0U3ViRGlyZWN0b3J5UGF0aCIsImdldERldkRlcGVuZGVuY3lOYW1lcyIsImlzVmVyc2lvbkRpZmZFbXB0eSIsImlzRW1wdHkiLCJpc0RlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJpc0RldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJzb21lRGV2RGVwZW5kZW5jeVNlbXZlckRpZmYiLCJjYWxsYmFjayIsInNvbWVTZW12ZXJEaWZmIiwic2F2ZSIsInN1Y2Nlc3MiLCJzdWJEaXJlY3RvcnlQYXRoIiwicGFja2FnZUpTT04iLCJyZWFkUGFja2FnZUpTT05GaWxlIiwiREVQRU5ERU5DSUVTIiwiREVWX0RFUEVOREVOQ0lFUyIsIndyaXRlUGFja2FnZUpTT05GaWxlIiwiZ2l0IiwicXVpZXRseSIsImluc3RhbGwiLCJidWlsZCIsInB1Ymxpc2giLCJyZW1vdmVEZXBlbmRlbmN5IiwibmFtZSIsInJlbW92ZVNlbXZlckRpZmYiLCJyZW1vdmVEZXZEZXBlbmRlbmN5IiwiYXNTdHJpbmciLCJzdHJpbmciLCJ2ZXJzaW9uRGlmZkVtcHR5IiwiZGVwZW5kZW5jeU1hcERpZmZFbXB0eSIsImRldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJ2ZXJzaW9uRGlmZlN0cmluZyIsImRlcGVuZGVuY3lNYXBEaWZmU3RyaW5nIiwiZGV2RGVwZW5kZW5jeU1hcERpZmZTdHJpbmciLCJyZXBsYWNlIiwiZnJvbVJlbGVhc2UiLCJkaWZmIiwidmVyc2lvbiIsImRlcGVuZGVuY2llcyIsImRldkRlcGVuZGVuY2llcyIsInZlcnNpb25TdHJpbmciLCJkZXBlbmRlbmN5TWFwIiwiZGV2RGVwZW5kZW5jeU1hcCIsInJlbGVhc2VWZXJzaW9uIiwiZ2V0VmVyc2lvbiIsInJlbGVhc2VEZXBlbmRlbmN5TWFwIiwiZ2V0RGVwZW5kZW5jeU1hcCIsInJlbGVhc2VEZXZEZXBlbmRlbmN5TWFwIiwiZ2V0RGV2RGVwZW5kZW5jeU1hcCIsIlZlcnNpb25EaWZmIiwiZnJvbVZlcnNpb25TdHJpbmdBbmRSZWxlYXNlVmVyc2lvbiIsIk1hcERpZmYiLCJmcm9tTWFwQW5kUmVsZWFzZU1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFRcUJBOzs7MERBTkQ7OERBQ0k7eUJBRXVCOzJCQUNXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTNDLElBQUEsQUFBTUEscUJBQU47YUFBTUEsS0FDUEMsT0FBTyxFQUFFQyxXQUFXLEVBQUVDLGlCQUFpQixFQUFFQyxvQkFBb0I7Z0NBRHRESjtRQUVqQixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxpQkFBaUIsR0FBR0E7UUFDekIsSUFBSSxDQUFDQyxvQkFBb0IsR0FBR0E7O2tCQUxYSjs7WUFRbkJLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osT0FBTztZQUNyQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osV0FBVztZQUN6Qjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osaUJBQWlCO1lBQy9COzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixvQkFBb0I7WUFDbEM7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQVksT0FBTyxJQUFJLENBQUNS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