@lerna-lite/core 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +16 -0
  3. package/dist/child-process.d.ts +13 -0
  4. package/dist/child-process.js +129 -0
  5. package/dist/child-process.js.map +1 -0
  6. package/dist/command.d.ts +37 -0
  7. package/dist/command.js +269 -0
  8. package/dist/command.js.map +1 -0
  9. package/dist/conventional-commits/constants.d.ts +4 -0
  10. package/dist/conventional-commits/constants.js +13 -0
  11. package/dist/conventional-commits/constants.js.map +1 -0
  12. package/dist/conventional-commits/get-changelog-config.d.ts +12 -0
  13. package/dist/conventional-commits/get-changelog-config.js +92 -0
  14. package/dist/conventional-commits/get-changelog-config.js.map +1 -0
  15. package/dist/conventional-commits/index.d.ts +6 -0
  16. package/dist/conventional-commits/index.js +19 -0
  17. package/dist/conventional-commits/index.js.map +1 -0
  18. package/dist/conventional-commits/make-bump-only-filter.d.ts +6 -0
  19. package/dist/conventional-commits/make-bump-only-filter.js +23 -0
  20. package/dist/conventional-commits/make-bump-only-filter.js.map +1 -0
  21. package/dist/conventional-commits/read-existing-changelog.d.ts +7 -0
  22. package/dist/conventional-commits/read-existing-changelog.js +33 -0
  23. package/dist/conventional-commits/read-existing-changelog.js.map +1 -0
  24. package/dist/conventional-commits/recommend-version.d.ts +10 -0
  25. package/dist/conventional-commits/recommend-version.js +87 -0
  26. package/dist/conventional-commits/recommend-version.js.map +1 -0
  27. package/dist/conventional-commits/update-changelog.d.ts +11 -0
  28. package/dist/conventional-commits/update-changelog.js +84 -0
  29. package/dist/conventional-commits/update-changelog.js.map +1 -0
  30. package/dist/git-clients/github-client.d.ts +6 -0
  31. package/dist/git-clients/github-client.js +41 -0
  32. package/dist/git-clients/github-client.js.map +1 -0
  33. package/dist/git-clients/gitlab-client.d.ts +5 -0
  34. package/dist/git-clients/gitlab-client.js +53 -0
  35. package/dist/git-clients/gitlab-client.js.map +1 -0
  36. package/dist/git-clients/index.d.ts +2 -0
  37. package/dist/git-clients/index.js +15 -0
  38. package/dist/git-clients/index.js.map +1 -0
  39. package/dist/index.d.ts +12 -0
  40. package/dist/index.js +27 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/models/index.d.ts +97 -0
  43. package/dist/models/index.js +3 -0
  44. package/dist/models/index.js.map +1 -0
  45. package/dist/otplease.d.ts +13 -0
  46. package/dist/otplease.js +110 -0
  47. package/dist/otplease.js.map +1 -0
  48. package/dist/package-graph/index.d.ts +2 -0
  49. package/dist/package-graph/index.js +15 -0
  50. package/dist/package-graph/index.js.map +1 -0
  51. package/dist/package-graph/lib/cyclic-package-graph-node.d.ts +41 -0
  52. package/dist/package-graph/lib/cyclic-package-graph-node.js +101 -0
  53. package/dist/package-graph/lib/cyclic-package-graph-node.js.map +1 -0
  54. package/dist/package-graph/lib/index.d.ts +3 -0
  55. package/dist/package-graph/lib/index.js +16 -0
  56. package/dist/package-graph/lib/index.js.map +1 -0
  57. package/dist/package-graph/lib/package-graph-node.d.ts +35 -0
  58. package/dist/package-graph/lib/package-graph-node.js +61 -0
  59. package/dist/package-graph/lib/package-graph-node.js.map +1 -0
  60. package/dist/package-graph/lib/report-cycles.d.ts +1 -0
  61. package/dist/package-graph/lib/report-cycles.js +20 -0
  62. package/dist/package-graph/lib/report-cycles.js.map +1 -0
  63. package/dist/package-graph/package-graph.d.ts +78 -0
  64. package/dist/package-graph/package-graph.js +256 -0
  65. package/dist/package-graph/package-graph.js.map +1 -0
  66. package/dist/package.d.ts +96 -0
  67. package/dist/package.js +260 -0
  68. package/dist/package.js.map +1 -0
  69. package/dist/project/index.d.ts +2 -0
  70. package/dist/project/index.js +15 -0
  71. package/dist/project/index.js.map +1 -0
  72. package/dist/project/lib/apply-extends.d.ts +6 -0
  73. package/dist/project/lib/apply-extends.js +38 -0
  74. package/dist/project/lib/apply-extends.js.map +1 -0
  75. package/dist/project/lib/index.d.ts +3 -0
  76. package/dist/project/lib/index.js +16 -0
  77. package/dist/project/lib/index.js.map +1 -0
  78. package/dist/project/lib/make-file-finder.d.ts +2 -0
  79. package/dist/project/lib/make-file-finder.js +72 -0
  80. package/dist/project/lib/make-file-finder.js.map +1 -0
  81. package/dist/project/lib/shallow-extend.d.ts +5 -0
  82. package/dist/project/lib/shallow-extend.js +25 -0
  83. package/dist/project/lib/shallow-extend.js.map +1 -0
  84. package/dist/project/project.d.ts +50 -0
  85. package/dist/project/project.js +193 -0
  86. package/dist/project/project.js.map +1 -0
  87. package/dist/prompt.d.ts +5 -0
  88. package/dist/prompt.js +65 -0
  89. package/dist/prompt.js.map +1 -0
  90. package/dist/utils/check-working-tree.d.ts +8 -0
  91. package/dist/utils/check-working-tree.js +42 -0
  92. package/dist/utils/check-working-tree.js.map +1 -0
  93. package/dist/utils/clean-stack.d.ts +5 -0
  94. package/dist/utils/clean-stack.js +19 -0
  95. package/dist/utils/clean-stack.js.map +1 -0
  96. package/dist/utils/collect-dependents.d.ts +11 -0
  97. package/dist/utils/collect-dependents.js +46 -0
  98. package/dist/utils/collect-dependents.js.map +1 -0
  99. package/dist/utils/collect-uncommitted.d.ts +19 -0
  100. package/dist/utils/collect-uncommitted.js +46 -0
  101. package/dist/utils/collect-uncommitted.js.map +1 -0
  102. package/dist/utils/collect-updates/collect-updates.d.ts +25 -0
  103. package/dist/utils/collect-updates/collect-updates.js +100 -0
  104. package/dist/utils/collect-updates/collect-updates.js.map +1 -0
  105. package/dist/utils/collect-updates/index.d.ts +2 -0
  106. package/dist/utils/collect-updates/index.js +15 -0
  107. package/dist/utils/collect-updates/index.js.map +1 -0
  108. package/dist/utils/collect-updates/lib/collect-packages.d.ts +13 -0
  109. package/dist/utils/collect-updates/lib/collect-packages.js +34 -0
  110. package/dist/utils/collect-updates/lib/collect-packages.js.map +1 -0
  111. package/dist/utils/collect-updates/lib/get-packages-for-option.d.ts +5 -0
  112. package/dist/utils/collect-updates/lib/get-packages-for-option.js +31 -0
  113. package/dist/utils/collect-updates/lib/get-packages-for-option.js.map +1 -0
  114. package/dist/utils/collect-updates/lib/has-tags.d.ts +5 -0
  115. package/dist/utils/collect-updates/lib/has-tags.js +27 -0
  116. package/dist/utils/collect-updates/lib/has-tags.js.map +1 -0
  117. package/dist/utils/collect-updates/lib/index.d.ts +4 -0
  118. package/dist/utils/collect-updates/lib/index.js +17 -0
  119. package/dist/utils/collect-updates/lib/index.js.map +1 -0
  120. package/dist/utils/collect-updates/lib/make-diff-predicate.d.ts +6 -0
  121. package/dist/utils/collect-updates/lib/make-diff-predicate.js +65 -0
  122. package/dist/utils/collect-updates/lib/make-diff-predicate.js.map +1 -0
  123. package/dist/utils/conf.d.ts +23 -0
  124. package/dist/utils/conf.js +256 -0
  125. package/dist/utils/conf.js.map +1 -0
  126. package/dist/utils/defaults.d.ts +1 -0
  127. package/dist/utils/defaults.js +182 -0
  128. package/dist/utils/defaults.js.map +1 -0
  129. package/dist/utils/describe-ref.d.ts +24 -0
  130. package/dist/utils/describe-ref.js +81 -0
  131. package/dist/utils/describe-ref.js.map +1 -0
  132. package/dist/utils/env-replace.d.ts +1 -0
  133. package/dist/utils/env-replace.js +23 -0
  134. package/dist/utils/env-replace.js.map +1 -0
  135. package/dist/utils/find-prefix.d.ts +2 -0
  136. package/dist/utils/find-prefix.js +49 -0
  137. package/dist/utils/find-prefix.js.map +1 -0
  138. package/dist/utils/format-error.d.ts +7 -0
  139. package/dist/utils/format-error.js +20 -0
  140. package/dist/utils/format-error.js.map +1 -0
  141. package/dist/utils/index.d.ts +23 -0
  142. package/dist/utils/index.js +36 -0
  143. package/dist/utils/index.js.map +1 -0
  144. package/dist/utils/log-package-error.d.ts +5 -0
  145. package/dist/utils/log-package-error.js +36 -0
  146. package/dist/utils/log-package-error.js.map +1 -0
  147. package/dist/utils/nerf-dart.d.ts +1 -0
  148. package/dist/utils/nerf-dart.js +19 -0
  149. package/dist/utils/nerf-dart.js.map +1 -0
  150. package/dist/utils/npm-conf.d.ts +2 -0
  151. package/dist/utils/npm-conf.js +54 -0
  152. package/dist/utils/npm-conf.js.map +1 -0
  153. package/dist/utils/parse-field.d.ts +1 -0
  154. package/dist/utils/parse-field.js +66 -0
  155. package/dist/utils/parse-field.js.map +1 -0
  156. package/dist/utils/prerelease-id-from-version.d.ts +5 -0
  157. package/dist/utils/prerelease-id-from-version.js +16 -0
  158. package/dist/utils/prerelease-id-from-version.js.map +1 -0
  159. package/dist/utils/pulse-till-done.d.ts +1 -0
  160. package/dist/utils/pulse-till-done.js +41 -0
  161. package/dist/utils/pulse-till-done.js.map +1 -0
  162. package/dist/utils/query-graph.d.ts +36 -0
  163. package/dist/utils/query-graph.js +78 -0
  164. package/dist/utils/query-graph.js.map +1 -0
  165. package/dist/utils/run-lifecycle.d.ts +10 -0
  166. package/dist/utils/run-lifecycle.js +109 -0
  167. package/dist/utils/run-lifecycle.js.map +1 -0
  168. package/dist/utils/run-topologically.d.ts +12 -0
  169. package/dist/utils/run-topologically.js +37 -0
  170. package/dist/utils/run-topologically.js.map +1 -0
  171. package/dist/utils/types.d.ts +128 -0
  172. package/dist/utils/types.js +138 -0
  173. package/dist/utils/types.js.map +1 -0
  174. package/dist/utils/warn-if-hanging.d.ts +1 -0
  175. package/dist/utils/warn-if-hanging.js +18 -0
  176. package/dist/utils/warn-if-hanging.js.map +1 -0
  177. package/dist/utils/write-log-file.d.ts +1 -0
  178. package/dist/utils/write-log-file.js +33 -0
  179. package/dist/utils/write-log-file.js.map +1 -0
  180. package/dist/validation-error.d.ts +4 -0
  181. package/dist/validation-error.js +19 -0
  182. package/dist/validation-error.js.map +1 -0
  183. package/package.json +110 -0
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.find = exports.findPrefix = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ // https://github.com/npm/npm/blob/876f0c8/lib/config/find-prefix.js
10
+ function findPrefix(start) {
11
+ let dir = path_1.default.resolve(start);
12
+ let walkedUp = false;
13
+ while (path_1.default.basename(dir) === 'node_modules') {
14
+ dir = path_1.default.dirname(dir);
15
+ walkedUp = true;
16
+ }
17
+ if (walkedUp) {
18
+ return dir;
19
+ }
20
+ return find(dir, dir);
21
+ }
22
+ exports.findPrefix = findPrefix;
23
+ function find(name, original) {
24
+ if (name === '/' || (process.platform === 'win32' && /^[a-zA-Z]:(\\|\/)?$/.test(name))) {
25
+ return original;
26
+ }
27
+ try {
28
+ const files = fs_1.default.readdirSync(name);
29
+ if (files.indexOf('node_modules') !== -1 || files.indexOf('package.json') !== -1) {
30
+ return name;
31
+ }
32
+ const dirname = path_1.default.dirname(name);
33
+ if (dirname === name) {
34
+ return original;
35
+ }
36
+ return find(dirname, original);
37
+ }
38
+ catch (err) {
39
+ if (name === original) {
40
+ if (err.code === 'ENOENT') {
41
+ return original;
42
+ }
43
+ throw err;
44
+ }
45
+ return original;
46
+ }
47
+ }
48
+ exports.find = find;
49
+ //# sourceMappingURL=find-prefix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-prefix.js","sourceRoot":"","sources":["../../src/utils/find-prefix.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,oEAAoE;AACpE,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,OAAO,cAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,cAAc,EAAE;QAC5C,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,QAAQ,GAAG,IAAI,CAAC;KACjB;IAED,IAAI,QAAQ,EAAE;QACZ,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC;AAdD,gCAcC;AAED,SAAgB,IAAI,CAAC,IAAY,EAAE,QAAgB;IACjD,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;QACtF,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI;QACF,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;YAChF,OAAO,IAAI,CAAC;SACb;QAED,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KAChC;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,OAAO,QAAQ,CAAC;aACjB;YAED,MAAM,GAAG,CAAC;SACX;QAED,OAAO,QAAQ,CAAC;KACjB;AACH,CAAC;AA9BD,oBA8BC"}
@@ -0,0 +1,7 @@
1
+ export declare function formatError(err: {
2
+ code?: string;
3
+ body?: any;
4
+ message?: string;
5
+ name?: string;
6
+ errno?: number;
7
+ }): void;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatError = void 0;
7
+ const npmlog_1 = __importDefault(require("npmlog"));
8
+ function formatError(err) {
9
+ var _a;
10
+ npmlog_1.default.silly('', err.toString());
11
+ npmlog_1.default.error((_a = err === null || err === void 0 ? void 0 : err.code) !== null && _a !== void 0 ? _a : '', (err.body && err.body.error) || err.message);
12
+ // avoid dumping logs, this isn't a lerna-lite problem
13
+ err.name = 'ValidationError';
14
+ // ensure process exits non-zero
15
+ process.exitCode = 'errno' in err ? err.errno : 1;
16
+ // re-throw to break chain upstream
17
+ throw err;
18
+ }
19
+ exports.formatError = formatError;
20
+ //# sourceMappingURL=format-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-error.js","sourceRoot":"","sources":["../../src/utils/format-error.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAyB;AAEzB,SAAgB,WAAW,CAAC,GAAoF;;IAC9G,gBAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9B,gBAAG,CAAC,KAAK,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,mCAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAExE,sDAAsD;IACtD,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAE7B,gCAAgC;IAChC,OAAO,CAAC,QAAQ,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAElD,mCAAmC;IACnC,MAAM,GAAG,CAAC;AACZ,CAAC;AAZD,kCAYC"}
@@ -0,0 +1,23 @@
1
+ export * from './collect-updates';
2
+ export * from './check-working-tree';
3
+ export * from './clean-stack';
4
+ export * from './collect-dependents';
5
+ export * from './collect-uncommitted';
6
+ export * from './conf';
7
+ export * from './defaults';
8
+ export * from './describe-ref';
9
+ export * from './env-replace';
10
+ export * from './find-prefix';
11
+ export * from './format-error';
12
+ export * from './log-package-error';
13
+ export * from './nerf-dart';
14
+ export * from './npm-conf';
15
+ export * from './parse-field';
16
+ export * from './prerelease-id-from-version';
17
+ export * from './pulse-till-done';
18
+ export * from './query-graph';
19
+ export * from './run-lifecycle';
20
+ export * from './run-topologically';
21
+ export * from './types';
22
+ export * from './warn-if-hanging';
23
+ export * from './write-log-file';
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./collect-updates"), exports);
14
+ __exportStar(require("./check-working-tree"), exports);
15
+ __exportStar(require("./clean-stack"), exports);
16
+ __exportStar(require("./collect-dependents"), exports);
17
+ __exportStar(require("./collect-uncommitted"), exports);
18
+ __exportStar(require("./conf"), exports);
19
+ __exportStar(require("./defaults"), exports);
20
+ __exportStar(require("./describe-ref"), exports);
21
+ __exportStar(require("./env-replace"), exports);
22
+ __exportStar(require("./find-prefix"), exports);
23
+ __exportStar(require("./format-error"), exports);
24
+ __exportStar(require("./log-package-error"), exports);
25
+ __exportStar(require("./nerf-dart"), exports);
26
+ __exportStar(require("./npm-conf"), exports);
27
+ __exportStar(require("./parse-field"), exports);
28
+ __exportStar(require("./prerelease-id-from-version"), exports);
29
+ __exportStar(require("./pulse-till-done"), exports);
30
+ __exportStar(require("./query-graph"), exports);
31
+ __exportStar(require("./run-lifecycle"), exports);
32
+ __exportStar(require("./run-topologically"), exports);
33
+ __exportStar(require("./types"), exports);
34
+ __exportStar(require("./warn-if-hanging"), exports);
35
+ __exportStar(require("./write-log-file"), exports);
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAkC;AAClC,uDAAqC;AACrC,gDAA8B;AAC9B,uDAAqC;AACrC,wDAAsC;AACtC,yCAAuB;AACvB,6CAA2B;AAC3B,iDAA+B;AAC/B,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAC/B,sDAAoC;AACpC,8CAA4B;AAC5B,6CAA2B;AAC3B,gDAA8B;AAC9B,+DAA6C;AAC7C,oDAAkC;AAClC,gDAA8B;AAC9B,kDAAgC;AAChC,sDAAoC;AACpC,0CAAwB;AACxB,oDAAkC;AAClC,mDAAiC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @param {import('execa').ExecaError & { pkg: import('@lerna/package').Package }} err
3
+ * @param {boolean} stream
4
+ */
5
+ export declare function logPackageError(err: any, stream?: boolean): void;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logPackageError = void 0;
7
+ const npmlog_1 = __importDefault(require("npmlog"));
8
+ /**
9
+ * @param {import('execa').ExecaError & { pkg: import('@lerna/package').Package }} err
10
+ * @param {boolean} stream
11
+ */
12
+ function logPackageError(err, stream = false) {
13
+ npmlog_1.default.error(err.command, `exited ${err.exitCode} in '${err.pkg.name}'`);
14
+ if (stream) {
15
+ // Streaming has already printed all stdout/stderr
16
+ return;
17
+ }
18
+ if (err.stdout) {
19
+ npmlog_1.default.error(err.command, 'stdout:');
20
+ directLog(err.stdout);
21
+ }
22
+ if (err.stderr) {
23
+ npmlog_1.default.error(err.command, 'stderr:');
24
+ directLog(err.stderr);
25
+ }
26
+ // Below is just to ensure something sensible is printed after the long stream of logs
27
+ npmlog_1.default.error(err.command, `exited ${err.exitCode} in '${err.pkg.name}'`);
28
+ }
29
+ exports.logPackageError = logPackageError;
30
+ /** @param {string} message */
31
+ function directLog(message) {
32
+ npmlog_1.default.pause();
33
+ console.error(message); // eslint-disable-line no-console
34
+ npmlog_1.default.resume();
35
+ }
36
+ //# sourceMappingURL=log-package-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-package-error.js","sourceRoot":"","sources":["../../src/utils/log-package-error.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAyB;AAEzB;;;GAGG;AACH,SAAgB,eAAe,CAAC,GAAQ,EAAE,MAAM,GAAG,KAAK;IACtD,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAEtE,IAAI,MAAM,EAAE;QACV,kDAAkD;QAClD,OAAO;KACR;IAED,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACvB;IAED,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACvB;IAED,sFAAsF;IACtF,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AACxE,CAAC;AApBD,0CAoBC;AAED,8BAA8B;AAC9B,SAAS,SAAS,CAAC,OAAe;IAChC,gBAAG,CAAC,KAAK,EAAE,CAAC;IACZ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC;IACzD,gBAAG,CAAC,MAAM,EAAE,CAAC;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function toNerfDart(uri: any): string;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.toNerfDart = void 0;
7
+ const url_1 = __importDefault(require("url"));
8
+ // https://github.com/npm/npm/blob/0cc9d89/lib/config/nerf-dart.js
9
+ function toNerfDart(uri) {
10
+ const parsed = url_1.default.parse(uri);
11
+ delete parsed.protocol;
12
+ delete parsed.auth;
13
+ delete parsed.query;
14
+ delete parsed.search;
15
+ delete parsed.hash;
16
+ return url_1.default.resolve(url_1.default.format(parsed), '.');
17
+ }
18
+ exports.toNerfDart = toNerfDart;
19
+ //# sourceMappingURL=nerf-dart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nerf-dart.js","sourceRoot":"","sources":["../../src/utils/nerf-dart.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAEtB,kEAAkE;AAClE,SAAgB,UAAU,CAAC,GAAG;IAC5B,MAAM,MAAM,GAAG,aAAG,CAAC,KAAK,CAAC,GAAG,CAAQ,CAAC;IAErC,OAAO,MAAM,CAAC,QAAQ,CAAC;IACvB,OAAO,MAAM,CAAC,IAAI,CAAC;IACnB,OAAO,MAAM,CAAC,KAAK,CAAC;IACpB,OAAO,MAAM,CAAC,MAAM,CAAC;IACrB,OAAO,MAAM,CAAC,IAAI,CAAC;IAEnB,OAAO,aAAG,CAAC,OAAO,CAAC,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAVD,gCAUC"}
@@ -0,0 +1,2 @@
1
+ import { Conf } from '../utils/conf';
2
+ export declare function npmConf(opts: any): Conf;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.npmConf = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const conf_1 = require("../utils/conf");
9
+ const defaults = require('./defaults');
10
+ // import {defaults} from 'defaults';
11
+ module.exports.defaults = Object.assign({}, defaults.defaults);
12
+ // https://github.com/npm/npm/blob/latest/lib/config/core.js#L101-L200
13
+ function npmConf(opts) {
14
+ const conf = new conf_1.Conf(Object.assign({}, defaults.defaults));
15
+ // prevent keys with undefined values from obscuring defaults
16
+ const cleanOpts = opts
17
+ ? Object.keys(opts).reduce((acc, key) => {
18
+ if (opts[key] !== undefined) {
19
+ // eslint-disable-next-line no-param-reassign
20
+ acc[key] = opts[key];
21
+ }
22
+ return acc;
23
+ }, {})
24
+ : {};
25
+ conf.add(cleanOpts, 'cli');
26
+ conf.addEnv();
27
+ conf.loadPrefix();
28
+ const projectConf = path_1.default.resolve(conf.localPrefix, '.npmrc');
29
+ const userConf = conf.get('userconfig');
30
+ /* istanbul ignore else */
31
+ if (!conf.get('global') && projectConf !== userConf) {
32
+ conf.addFile(projectConf, 'project');
33
+ }
34
+ else {
35
+ conf.add({}, 'project');
36
+ }
37
+ conf.addFile(conf.get('userconfig'), 'user');
38
+ /* istanbul ignore else */
39
+ if (conf.get('prefix')) {
40
+ const etc = path_1.default.resolve(conf.get('prefix'), 'etc');
41
+ conf.root.globalconfig = path_1.default.resolve(etc, 'npmrc');
42
+ conf.root.globalignorefile = path_1.default.resolve(etc, 'npmignore');
43
+ }
44
+ conf.addFile(conf.get('globalconfig'), 'global');
45
+ conf.loadUser();
46
+ const caFile = conf.get('cafile');
47
+ /* istanbul ignore if */
48
+ if (caFile) {
49
+ conf.loadCAFile(caFile);
50
+ }
51
+ return conf;
52
+ }
53
+ exports.npmConf = npmConf;
54
+ //# sourceMappingURL=npm-conf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-conf.js","sourceRoot":"","sources":["../../src/utils/npm-conf.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,wCAAqC;AACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACvC,qCAAqC;AAErC,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAE/D,sEAAsE;AACtE,SAAgB,OAAO,CAAC,IAAS;IAC/B,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE5D,6DAA6D;IAC7D,MAAM,SAAS,GAAG,IAAI;QACpB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;gBAC3B,6CAA6C;gBAC7C,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;aACtB;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC;QACN,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,UAAU,EAAE,CAAC;IAElB,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAExC,0BAA0B;IAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,WAAW,KAAK,QAAQ,EAAE;QACnD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;KACtC;SAAM;QACL,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;KACzB;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IAE7C,0BAA0B;IAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QACtB,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAElC,wBAAwB;IACxB,IAAI,MAAM,EAAE;QACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KACzB;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAjDD,0BAiDC"}
@@ -0,0 +1 @@
1
+ export declare function parseField(input: any, key: string): any;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseField = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const env_replace_1 = require("./env-replace");
9
+ const types_1 = require("./types");
10
+ // https://github.com/npm/npm/blob/latest/lib/config/core.js#L362-L407
11
+ function parseField(input, key) {
12
+ if (typeof input !== 'string') {
13
+ return input;
14
+ }
15
+ const typeList = [].concat(types_1.types[key]);
16
+ // @ts-ignore
17
+ const isPath = typeList.indexOf(path_1.default) !== -1;
18
+ // @ts-ignore
19
+ const isBool = typeList.indexOf(Boolean) !== -1;
20
+ // @ts-ignore
21
+ const isString = typeList.indexOf(String) !== -1;
22
+ // @ts-ignore
23
+ const isNumber = typeList.indexOf(Number) !== -1;
24
+ let field = `${input}`.trim();
25
+ if (/^'.*'$/.test(field)) {
26
+ try {
27
+ field = JSON.parse(field);
28
+ }
29
+ catch (err) {
30
+ throw new Error(`Failed parsing JSON config key ${key}: ${field}`);
31
+ }
32
+ }
33
+ if (isBool && !isString && field === '') {
34
+ return true;
35
+ }
36
+ switch (field) {
37
+ case 'true': {
38
+ return true;
39
+ }
40
+ case 'false': {
41
+ return false;
42
+ }
43
+ case 'null': {
44
+ return null;
45
+ }
46
+ case 'undefined': {
47
+ return undefined;
48
+ }
49
+ // no default
50
+ }
51
+ field = (0, env_replace_1.envReplace)(field);
52
+ if (isPath) {
53
+ const regex = process.platform === 'win32' ? /^~(\/|\\)/ : /^~\//;
54
+ if (typeof field === 'string' && regex.test(field) && process.env.HOME) {
55
+ field = path_1.default.resolve(process.env.HOME, field.substring(2));
56
+ }
57
+ field = path_1.default.resolve(field);
58
+ }
59
+ // eslint-disable-next-line no-restricted-globals
60
+ if (isNumber && !isNaN(field)) {
61
+ field = Number(field);
62
+ }
63
+ return field;
64
+ }
65
+ exports.parseField = parseField;
66
+ //# sourceMappingURL=parse-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-field.js","sourceRoot":"","sources":["../../src/utils/parse-field.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,+CAA2C;AAC3C,mCAAgC;AAEhC,sEAAsE;AACtE,SAAgB,UAAU,CAAC,KAAU,EAAE,GAAW;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,aAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,aAAa;IACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,aAAa;IACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,aAAa;IACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjD,IAAI,KAAK,GAAoB,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IAE/C,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACxB,IAAI;YACF,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3B;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;SACpE;KACF;IAED,IAAI,MAAM,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;QACvC,OAAO,IAAI,CAAC;KACb;IAED,QAAQ,KAAK,EAAE;QACb,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,IAAI,CAAC;SACb;QAED,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC;SACd;QAED,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,IAAI,CAAC;SACb;QAED,KAAK,WAAW,CAAC,CAAC;YAChB,OAAO,SAAS,CAAC;SAClB;QAED,aAAa;KACd;IAED,KAAK,GAAG,IAAA,wBAAU,EAAC,KAAK,CAAC,CAAC;IAE1B,IAAI,MAAM,EAAE;QACV,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAElE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;YACtE,KAAK,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D;QAED,KAAK,GAAG,cAAI,CAAC,OAAO,CAAC,KAAe,CAAC,CAAC;KACvC;IAED,iDAAiD;IACjD,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAY,CAAC,EAAE;QACpC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;KACvB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAnED,gCAmEC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @param {string} version
3
+ * @returns {string|undefined}
4
+ */
5
+ export declare function prereleaseIdFromVersion(version: string): string | undefined;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prereleaseIdFromVersion = void 0;
7
+ const semver_1 = __importDefault(require("semver"));
8
+ /**
9
+ * @param {string} version
10
+ * @returns {string|undefined}
11
+ */
12
+ function prereleaseIdFromVersion(version) {
13
+ return (semver_1.default.prerelease(version) || []).shift();
14
+ }
15
+ exports.prereleaseIdFromVersion = prereleaseIdFromVersion;
16
+ //# sourceMappingURL=prerelease-id-from-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerelease-id-from-version.js","sourceRoot":"","sources":["../../src/utils/prerelease-id-from-version.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,OAAe;IACrD,OAAQ,CAAC,gBAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAc,CAAC,KAAK,EAAE,CAAC;AAClE,CAAC;AAFD,0DAEC"}
@@ -0,0 +1 @@
1
+ export declare function pulseTillDone(prefix: string | Promise<string>, promise?: Promise<any> | string): Promise<any>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.pulseTillDone = void 0;
7
+ const npmlog_1 = __importDefault(require("npmlog"));
8
+ let pulsers = 0;
9
+ let pulse;
10
+ function pulseStart(prefix) {
11
+ pulsers += 1;
12
+ if (pulsers > 1) {
13
+ return;
14
+ }
15
+ pulse = setInterval(() => npmlog_1.default.gauge.pulse(prefix), 150);
16
+ }
17
+ function pulseStop() {
18
+ pulsers -= 1;
19
+ if (pulsers > 0) {
20
+ return;
21
+ }
22
+ clearInterval(pulse);
23
+ }
24
+ function pulseTillDone(prefix, promise) {
25
+ if (!promise) {
26
+ /* eslint-disable no-param-reassign */
27
+ promise = prefix;
28
+ prefix = '';
29
+ /* eslint-enable no-param-reassign */
30
+ }
31
+ pulseStart(prefix);
32
+ return Promise.resolve(promise).then((val) => {
33
+ pulseStop();
34
+ return val;
35
+ }, (err) => {
36
+ pulseStop();
37
+ throw err;
38
+ });
39
+ }
40
+ exports.pulseTillDone = pulseTillDone;
41
+ //# sourceMappingURL=pulse-till-done.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse-till-done.js","sourceRoot":"","sources":["../../src/utils/pulse-till-done.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAyB;AAEzB,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,IAAI,KAAU,CAAC;AAEf,SAAS,UAAU,CAAC,MAAgC;IAClD,OAAO,IAAI,CAAC,CAAC;IAEb,IAAI,OAAO,GAAG,CAAC,EAAE;QACf,OAAO;KACR;IAED,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,gBAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,CAAC;IAEb,IAAI,OAAO,GAAG,CAAC,EAAE;QACf,OAAO;KACR;IAED,aAAa,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,aAAa,CAAC,MAAgC,EAAE,OAA+B;IAC7F,IAAI,CAAC,OAAO,EAAE;QACZ,sCAAsC;QACtC,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,GAAG,EAAE,CAAC;QACZ,qCAAqC;KACtC;IAED,UAAU,CAAC,MAAM,CAAC,CAAC;IAEnB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAClC,CAAC,GAAG,EAAE,EAAE;QACN,SAAS,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC;IACb,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;QACN,SAAS,EAAE,CAAC;QACZ,MAAM,GAAG,CAAC;IACZ,CAAC,CACF,CAAC;AACJ,CAAC;AApBD,sCAoBC"}
@@ -0,0 +1,36 @@
1
+ import { PackageGraph } from '../package-graph/package-graph';
2
+ import { QueryGraphConfig } from '../models';
3
+ import { Package } from '../package';
4
+ import { PackageGraphNode } from '../package-graph';
5
+ /**
6
+ * A mutable PackageGraph used to query for next available packages.
7
+ */
8
+ export declare class QueryGraph {
9
+ graph: PackageGraph;
10
+ cycles: Set<any>;
11
+ /**
12
+ * Sort a list of Packages topologically.
13
+ *
14
+ * @param {import("@lerna/package").Package[]} packages An array of Packages to build the list out of
15
+ * @param {QueryGraphConfig} [options]
16
+ *
17
+ * @returns {import("@lerna/package").Package[]} A list of Package instances in topological order
18
+ */
19
+ static toposort(packages: Package[], options: QueryGraphConfig): never[];
20
+ /**
21
+ * @param {import("@lerna/package").Package[]} packages An array of Packages to build the graph out of
22
+ * @param {QueryGraphConfig} [options]
23
+ */
24
+ constructor(packages: Package[], { graphType, rejectCycles }?: QueryGraphConfig);
25
+ _getNextLeaf(): any[];
26
+ _getNextCycle(): any;
27
+ getAvailablePackages(): PackageGraphNode[];
28
+ /**
29
+ * @param {string} name
30
+ */
31
+ markAsTaken(name: string): void;
32
+ /**
33
+ * @param {import("@lerna/package-graph").PackageGraphNode} candidateNode
34
+ */
35
+ markAsDone(candidateNode: PackageGraphNode): void;
36
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryGraph = void 0;
4
+ const package_graph_1 = require("../package-graph/package-graph");
5
+ /**
6
+ * A mutable PackageGraph used to query for next available packages.
7
+ */
8
+ class QueryGraph {
9
+ /**
10
+ * @param {import("@lerna/package").Package[]} packages An array of Packages to build the graph out of
11
+ * @param {QueryGraphConfig} [options]
12
+ */
13
+ constructor(packages, { graphType = 'allDependencies', rejectCycles } = {}) {
14
+ // Create dependency graph
15
+ this.graph = new package_graph_1.PackageGraph(packages, graphType);
16
+ // Evaluate cycles
17
+ this.cycles = this.graph.collapseCycles(rejectCycles);
18
+ }
19
+ /**
20
+ * Sort a list of Packages topologically.
21
+ *
22
+ * @param {import("@lerna/package").Package[]} packages An array of Packages to build the list out of
23
+ * @param {QueryGraphConfig} [options]
24
+ *
25
+ * @returns {import("@lerna/package").Package[]} A list of Package instances in topological order
26
+ */
27
+ static toposort(packages, options) {
28
+ const graph = new QueryGraph(packages, options);
29
+ const result = [];
30
+ let batch = graph.getAvailablePackages();
31
+ while (batch.length) {
32
+ for (const node of batch) {
33
+ // no need to take() in synchronous loop
34
+ // @ts-ignore
35
+ result.push(node.pkg);
36
+ graph.markAsDone(node);
37
+ }
38
+ batch = graph.getAvailablePackages();
39
+ }
40
+ return result;
41
+ }
42
+ _getNextLeaf() {
43
+ return Array.from(this.graph.values()).filter((node) => node.localDependencies.size === 0);
44
+ }
45
+ _getNextCycle() {
46
+ const cycle = Array.from(this.cycles).find((cycleNode) => cycleNode.localDependencies.size === 0);
47
+ if (!cycle) {
48
+ return [];
49
+ }
50
+ this.cycles.delete(cycle);
51
+ return cycle.flatten();
52
+ }
53
+ getAvailablePackages() {
54
+ // Get the next leaf nodes
55
+ const availablePackages = this._getNextLeaf();
56
+ if (availablePackages.length > 0) {
57
+ return availablePackages;
58
+ }
59
+ return this._getNextCycle();
60
+ }
61
+ /**
62
+ * @param {string} name
63
+ */
64
+ markAsTaken(name) {
65
+ this.graph.delete(name);
66
+ }
67
+ /**
68
+ * @param {import("@lerna/package-graph").PackageGraphNode} candidateNode
69
+ */
70
+ markAsDone(candidateNode) {
71
+ this.graph.remove(candidateNode);
72
+ for (const cycle of this.cycles) {
73
+ cycle.unlink(candidateNode);
74
+ }
75
+ }
76
+ }
77
+ exports.QueryGraph = QueryGraph;
78
+ //# sourceMappingURL=query-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-graph.js","sourceRoot":"","sources":["../../src/utils/query-graph.ts"],"names":[],"mappings":";;;AAAA,kEAA8D;AAK9D;;GAEG;AACH,MAAa,UAAU;IAgCrB;;;OAGG;IACH,YAAY,QAAmB,EAAE,EAAE,SAAS,GAAG,iBAAiB,EAAE,YAAY,KAAK,EAAsB;QACvG,0BAA0B;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,4BAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEnD,kBAAkB;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAtCD;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAmB,EAAE,OAAyB;QAC5D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,KAAK,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAEzC,OAAO,KAAK,CAAC,MAAM,EAAE;YACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,wCAAwC;gBACxC,aAAa;gBACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxB;YAED,KAAK,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;SACtC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAcD,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,aAAa;QACX,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAElG,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,EAAE,CAAC;SACX;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE1B,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,0BAA0B;QAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAE9C,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,iBAAiB,CAAC;SAC1B;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,aAA+B;QACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC7B;IACH,CAAC;CACF;AAxFD,gCAwFC"}
@@ -0,0 +1,10 @@
1
+ import { LifecycleConfig } from '../models';
2
+ import { Package } from '../package';
3
+ /**
4
+ * Run a lifecycle script for a package.
5
+ * @param {import('@lerna/package').Package} pkg
6
+ * @param {string} stage
7
+ * @param {LifecycleConfig} options
8
+ */
9
+ export declare function runLifecycle(pkg: Package, stage: string, options: LifecycleConfig): Promise<void>;
10
+ export declare function createRunner(commandOptions: any): (pkg: Package, stage: string) => Promise<void>;