@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,256 @@
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.PackageGraph = void 0;
7
+ const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
8
+ const lib_1 = require("./lib");
9
+ const validation_error_1 = require("../validation-error");
10
+ /**
11
+ * A graph of packages in the current project.
12
+ *
13
+ * @extends {Map<string, PackageGraphNode>}
14
+ */
15
+ class PackageGraph extends Map {
16
+ /**
17
+ * @param {import("@lerna/package").Package[]} packages An array of Packages to build the graph out of.
18
+ * @param {'allDependencies'|'dependencies'} [graphType]
19
+ * Pass "dependencies" to create a graph of only dependencies,
20
+ * excluding the devDependencies that would normally be included.
21
+ * @param {boolean} [forceLocal] Force all local dependencies to be linked.
22
+ */
23
+ constructor(packages, graphType = 'allDependencies', forceLocal) {
24
+ // @ts-ignore
25
+ super(packages.map((pkg) => [pkg.name, new lib_1.PackageGraphNode(pkg)]));
26
+ if (packages.length !== this.size) {
27
+ // weed out the duplicates
28
+ const seen = new Map();
29
+ for (const { name, location } of packages) {
30
+ if (seen.has(name)) {
31
+ seen.get(name).push(location);
32
+ }
33
+ else {
34
+ seen.set(name, [location]);
35
+ }
36
+ }
37
+ for (const [name, locations] of seen) {
38
+ if (locations.length > 1) {
39
+ throw new validation_error_1.ValidationError('ENAME', [`Package name "${name}" used in multiple packages:`, ...locations].join('\n\t'));
40
+ }
41
+ }
42
+ }
43
+ this.forEach((currentNode, currentName) => {
44
+ const graphDependencies = graphType === 'dependencies'
45
+ ? Object.assign({}, currentNode.pkg.optionalDependencies, currentNode.pkg.dependencies)
46
+ : Object.assign({}, currentNode.pkg.devDependencies, currentNode.pkg.optionalDependencies, currentNode.pkg.dependencies);
47
+ Object.keys(graphDependencies).forEach((depName) => {
48
+ const depNode = this.get(depName);
49
+ // Yarn decided to ignore https://github.com/npm/npm/pull/15900 and implemented "link:"
50
+ // As they apparently have no intention of being compatible, we have to do it for them.
51
+ // @see https://github.com/yarnpkg/yarn/issues/4212
52
+ const spec = graphDependencies[depName].replace(/^link:/, 'file:');
53
+ const resolved = npm_package_arg_1.default.resolve(depName, spec, currentNode.location);
54
+ if (!depNode) {
55
+ // it's an external dependency, store the resolution and bail
56
+ return currentNode.externalDependencies.set(depName, resolved);
57
+ }
58
+ if (forceLocal || resolved.fetchSpec === depNode.location || depNode.satisfies(resolved)) {
59
+ // a local file: specifier OR a matching semver
60
+ currentNode.localDependencies.set(depName, resolved);
61
+ depNode.localDependents.set(currentName, currentNode);
62
+ }
63
+ else {
64
+ // non-matching semver of a local dependency
65
+ currentNode.externalDependencies.set(depName, resolved);
66
+ }
67
+ });
68
+ });
69
+ }
70
+ get rawPackageList() {
71
+ return Array.from(this.values()).map((node) => node.pkg);
72
+ }
73
+ /**
74
+ * Takes a list of Packages and returns a list of those same Packages with any Packages
75
+ * they depend on. i.e if packageA depended on packageB `graph.addDependencies([packageA])`
76
+ * would return [packageA, packageB].
77
+ *
78
+ * @param {import("@lerna/package").Package[]} filteredPackages The packages to include dependencies for.
79
+ */
80
+ addDependencies(filteredPackages) {
81
+ return this.extendList(filteredPackages, 'localDependencies');
82
+ }
83
+ /**
84
+ * Takes a list of Packages and returns a list of those same Packages with any Packages
85
+ * that depend on them. i.e if packageC depended on packageD `graph.addDependents([packageD])`
86
+ * would return [packageD, packageC].
87
+ *
88
+ * @param {import("@lerna/package").Package[]} filteredPackages The packages to include dependents for.
89
+ */
90
+ addDependents(filteredPackages) {
91
+ return this.extendList(filteredPackages, 'localDependents');
92
+ }
93
+ /**
94
+ * Extends a list of packages by traversing on a given property, which must refer to a
95
+ * `PackageGraphNode` property that is a collection of `PackageGraphNode`s.
96
+ * Returns input packages with any additional packages found by traversing `nodeProp`.
97
+ *
98
+ * @param {import("@lerna/package").Package[]} packageList The list of packages to extend
99
+ * @param {'localDependencies'|'localDependents'} nodeProp The property on `PackageGraphNode` used to traverse
100
+ */
101
+ extendList(packageList, nodeProp) {
102
+ // the current list of packages we are expanding using breadth-first-search
103
+ const search = new Set(packageList.map(({ name }) => this.get(name)));
104
+ // an intermediate list of matched PackageGraphNodes
105
+ /** @type {PackageGraphNode[]} */
106
+ const result = [];
107
+ search.forEach((currentNode) => {
108
+ // anything searched for is always a result
109
+ result.push(currentNode);
110
+ currentNode[nodeProp].forEach((meta, depName) => {
111
+ const depNode = this.get(depName);
112
+ if (depNode !== currentNode && !search.has(depNode)) {
113
+ search.add(depNode);
114
+ }
115
+ });
116
+ });
117
+ // actual Package instances, not PackageGraphNodes
118
+ return result.map((node) => node.pkg);
119
+ }
120
+ /**
121
+ * Return a tuple of cycle paths and nodes.
122
+ *
123
+ * @deprecated Use collapseCycles instead.
124
+ *
125
+ * @param {boolean} rejectCycles Whether or not to reject cycles
126
+ * @returns {[Set<string[]>, Set<PackageGraphNode>]}
127
+ */
128
+ partitionCycles(rejectCycles) {
129
+ const cyclePaths = new Set();
130
+ const cycleNodes = new Set();
131
+ this.forEach((currentNode, currentName) => {
132
+ const seen = new Set();
133
+ const visits = (walk) => (dependentNode, dependentName, siblingDependents) => {
134
+ const step = walk.concat(dependentName);
135
+ if (seen.has(dependentNode)) {
136
+ return;
137
+ }
138
+ seen.add(dependentNode);
139
+ if (dependentNode === currentNode) {
140
+ // a direct cycle
141
+ cycleNodes.add(currentNode);
142
+ cyclePaths.add(step);
143
+ return;
144
+ }
145
+ if (siblingDependents.has(currentName)) {
146
+ // a transitive cycle
147
+ const cycleDependentName = Array.from(dependentNode.localDependencies.keys()).find((key) => currentNode.localDependents.has(key));
148
+ const pathToCycle = step.slice().reverse().concat(cycleDependentName);
149
+ cycleNodes.add(dependentNode);
150
+ cyclePaths.add(pathToCycle);
151
+ }
152
+ dependentNode.localDependents.forEach(visits(step));
153
+ };
154
+ currentNode.localDependents.forEach(visits([currentName]));
155
+ });
156
+ (0, lib_1.reportCycles)(Array.from(cyclePaths, (cycle) => cycle.join(' -> ')), rejectCycles);
157
+ return [cyclePaths, cycleNodes];
158
+ }
159
+ /**
160
+ * Returns the cycles of this graph. If two cycles share some elements, they will
161
+ * be returned as a single cycle.
162
+ *
163
+ * @param {boolean} rejectCycles Whether or not to reject cycles
164
+ * @returns {Set<CyclicPackageGraphNode>}
165
+ */
166
+ collapseCycles(rejectCycles) {
167
+ /** @type {string[]} */
168
+ const cyclePaths = [];
169
+ /** @type {Map<PackageGraphNode, CyclicPackageGraphNode>} */
170
+ const nodeToCycle = new Map();
171
+ /** @type {Set<CyclicPackageGraphNode>} */
172
+ const cycles = new Set();
173
+ /** @type {Set<PackageGraphNode>} */
174
+ const alreadyVisited = new Set();
175
+ /** @type {(PackageGraphNode | CyclicPackageGraphNode)[]} */
176
+ const walkStack = [];
177
+ function visits(baseNode, dependentNode) {
178
+ if (nodeToCycle.has(baseNode)) {
179
+ return;
180
+ }
181
+ let topLevelDependent = dependentNode;
182
+ while (nodeToCycle.has(topLevelDependent)) {
183
+ topLevelDependent = nodeToCycle.get(topLevelDependent);
184
+ }
185
+ // Otherwise the same node is checked multiple times which is very wasteful in a large repository
186
+ if (alreadyVisited.has(topLevelDependent)) {
187
+ return;
188
+ }
189
+ alreadyVisited.add(topLevelDependent);
190
+ if (topLevelDependent === baseNode ||
191
+ (topLevelDependent.isCycle && topLevelDependent.has(baseNode.name))) {
192
+ const cycle = new lib_1.CyclicPackageGraphNode();
193
+ walkStack.forEach((nodeInCycle) => {
194
+ nodeToCycle.set(nodeInCycle, cycle);
195
+ cycle.insert(nodeInCycle);
196
+ cycles.delete(nodeInCycle);
197
+ });
198
+ cycles.add(cycle);
199
+ // @ts-ignore
200
+ cyclePaths.push(cycle.toString());
201
+ return;
202
+ }
203
+ // @ts-ignore
204
+ if (walkStack.indexOf(topLevelDependent) === -1) {
205
+ // eslint-disable-next-line no-use-before-define
206
+ visitWithStack(baseNode, topLevelDependent);
207
+ }
208
+ }
209
+ function visitWithStack(baseNode, currentNode = baseNode) {
210
+ // @ts-ignore
211
+ walkStack.push(currentNode);
212
+ currentNode.localDependents.forEach(visits.bind(null, baseNode));
213
+ walkStack.pop();
214
+ }
215
+ this.forEach((currentNode) => visitWithStack(currentNode));
216
+ cycles.forEach((collapsedNode) => visitWithStack(collapsedNode));
217
+ (0, lib_1.reportCycles)(cyclePaths, rejectCycles);
218
+ return cycles;
219
+ }
220
+ /**
221
+ * Remove cycle nodes.
222
+ *
223
+ * @deprecated Spread set into prune() instead.
224
+ *
225
+ * @param {Set<PackageGraphNode>} cycleNodes
226
+ */
227
+ pruneCycleNodes(cycleNodes) {
228
+ return this.prune(...cycleNodes);
229
+ }
230
+ /**
231
+ * Remove all candidate nodes.
232
+ * @param {PackageGraphNode[]} candidates
233
+ */
234
+ prune(...candidates) {
235
+ if (candidates.length === this.size) {
236
+ return this.clear();
237
+ }
238
+ candidates.forEach((node) => this.remove(node));
239
+ }
240
+ /**
241
+ * Delete by value (instead of key), as well as removing pointers
242
+ * to itself in the other node's internal collections.
243
+ * @param {PackageGraphNode} candidateNode instance to remove
244
+ */
245
+ remove(candidateNode) {
246
+ this.delete(candidateNode.name);
247
+ this.forEach((node) => {
248
+ // remove incoming edges ("indegree")
249
+ node.localDependencies.delete(candidateNode.name);
250
+ // remove outgoing edges ("outdegree")
251
+ node.localDependents.delete(candidateNode.name);
252
+ });
253
+ }
254
+ }
255
+ exports.PackageGraph = PackageGraph;
256
+ //# sourceMappingURL=package-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-graph.js","sourceRoot":"","sources":["../../src/package-graph/package-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @typedef {object} RawManifest The subset of package.json properties that Lerna-Lite uses
3
+ * @property {string} name
4
+ * @property {string} version
5
+ * @property {boolean} [private]
6
+ * @property {Record<string, string>|string} [bin]
7
+ * @property {Record<string, string>} [scripts]
8
+ * @property {Record<string, string>} [dependencies]
9
+ * @property {Record<string, string>} [devDependencies]
10
+ * @property {Record<string, string>} [optionalDependencies]
11
+ * @property {Record<string, string>} [peerDependencies]
12
+ * @property {Record<'directory' | 'registry' | 'tag', string>} [publishConfig]
13
+ * @property {string[] | { packages: string[] }} [workspaces]
14
+ */
15
+ /**
16
+ * Lerna's internal representation of a local package, with
17
+ * many values resolved directly from the original JSON.
18
+ */
19
+ export declare class Package {
20
+ _id: string;
21
+ name: string;
22
+ licensePath: string;
23
+ localDependencies: Map<string, any>;
24
+ /**
25
+ * Create a Package instance from parameters, possibly reusing existing instance.
26
+ * @param {string|Package|RawManifest} ref A path to a package.json file, Package instance, or JSON object
27
+ * @param {string} [dir] If `ref` is a JSON object, this is the location of the manifest
28
+ * @returns {Package}
29
+ */
30
+ static lazy(ref: any, dir?: string): any;
31
+ /**
32
+ * @param {RawManifest} pkg
33
+ * @param {string} location
34
+ * @param {string} [rootPath]
35
+ */
36
+ constructor(pkg: Package, location: string, rootPath?: string);
37
+ get location(): string;
38
+ get private(): boolean;
39
+ get resolved(): {
40
+ name: string;
41
+ bin: any;
42
+ scope: any;
43
+ };
44
+ get rootPath(): string;
45
+ get scripts(): any;
46
+ get bin(): any;
47
+ get binLocation(): string;
48
+ get manifestLocation(): string;
49
+ get nodeModulesLocation(): string;
50
+ get __isLernaPackage(): boolean;
51
+ get version(): string;
52
+ set version(version: string);
53
+ get contents(): any;
54
+ set contents(subDirectory: any);
55
+ get dependencies(): string[];
56
+ get devDependencies(): string[];
57
+ get optionalDependencies(): string[];
58
+ get peerDependencies(): string[];
59
+ get pkg(): Package;
60
+ /**
61
+ * Map-like retrieval of arbitrary values
62
+ * @template {keyof RawManifest} K
63
+ * @param {K} key field name to retrieve value
64
+ * @returns {RawManifest[K]} value stored under key, if present
65
+ */
66
+ get(key: any): any;
67
+ /**
68
+ * Map-like storage of arbitrary values
69
+ * @template {keyof RawManifest} K
70
+ * @param {T} key field name to store value
71
+ * @param {RawManifest[K]} val value to store
72
+ * @returns {Package} instance for chaining
73
+ */
74
+ set(key: string, val: any): this;
75
+ /**
76
+ * Provide shallow copy for munging elsewhere
77
+ * @returns {Object}
78
+ */
79
+ toJSON(): {};
80
+ /**
81
+ * Refresh internal state from disk (e.g., changed by external lifecycles)
82
+ */
83
+ refresh(): Promise<this>;
84
+ /**
85
+ * Write manifest changes to disk
86
+ * @returns {Promise} resolves when write finished
87
+ */
88
+ serialize(): Promise<this>;
89
+ /**
90
+ * Mutate local dependency spec according to type
91
+ * @param {Object} resolved npa metadata
92
+ * @param {String} depVersion semver
93
+ * @param {String} savePrefix npm_config_save_prefix
94
+ */
95
+ updateLocalDependency(resolved: any, depVersion: any, savePrefix: any): void;
96
+ }
@@ -0,0 +1,260 @@
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.Package = void 0;
7
+ const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const load_json_file_1 = __importDefault(require("load-json-file"));
10
+ const write_pkg_1 = __importDefault(require("write-pkg"));
11
+ // symbol used to 'hide' internal state
12
+ const PKG = Symbol('pkg');
13
+ // private fields
14
+ const _location = Symbol('location');
15
+ const _resolved = Symbol('resolved');
16
+ const _rootPath = Symbol('rootPath');
17
+ const _scripts = Symbol('scripts');
18
+ const _contents = Symbol('contents');
19
+ /**
20
+ * @param {import('npm-package-arg').Result} result
21
+ */
22
+ function binSafeName({ name, scope }) {
23
+ return scope ? name.substring(scope.length + 1) : name;
24
+ }
25
+ // package.json files are not that complicated, so this is intentionally naïve
26
+ function shallowCopy(json) {
27
+ return Object.keys(json).reduce((obj, key) => {
28
+ const val = json[key];
29
+ /* istanbul ignore if */
30
+ if (Array.isArray(val)) {
31
+ obj[key] = val.slice();
32
+ }
33
+ else if (val && typeof val === 'object') {
34
+ obj[key] = Object.assign({}, val);
35
+ }
36
+ else {
37
+ obj[key] = val;
38
+ }
39
+ return obj;
40
+ }, {});
41
+ }
42
+ /**
43
+ * @typedef {object} RawManifest The subset of package.json properties that Lerna-Lite uses
44
+ * @property {string} name
45
+ * @property {string} version
46
+ * @property {boolean} [private]
47
+ * @property {Record<string, string>|string} [bin]
48
+ * @property {Record<string, string>} [scripts]
49
+ * @property {Record<string, string>} [dependencies]
50
+ * @property {Record<string, string>} [devDependencies]
51
+ * @property {Record<string, string>} [optionalDependencies]
52
+ * @property {Record<string, string>} [peerDependencies]
53
+ * @property {Record<'directory' | 'registry' | 'tag', string>} [publishConfig]
54
+ * @property {string[] | { packages: string[] }} [workspaces]
55
+ */
56
+ /**
57
+ * Lerna's internal representation of a local package, with
58
+ * many values resolved directly from the original JSON.
59
+ */
60
+ class Package {
61
+ /**
62
+ * @param {RawManifest} pkg
63
+ * @param {string} location
64
+ * @param {string} [rootPath]
65
+ */
66
+ constructor(pkg, location, rootPath = location) {
67
+ this._id = '';
68
+ this.licensePath = '';
69
+ this.localDependencies = new Map();
70
+ // npa will throw an error if the name is invalid
71
+ const resolved = npm_package_arg_1.default.resolve(pkg.name, `file:${path_1.default.relative(rootPath, location)}`, rootPath);
72
+ this.name = pkg.name;
73
+ this[PKG] = pkg;
74
+ // omit raw pkg from default util.inspect() output, but preserve internal mutability
75
+ Object.defineProperty(this, PKG, { enumerable: false, writable: true });
76
+ this[_location] = location;
77
+ this[_resolved] = resolved;
78
+ this[_rootPath] = rootPath;
79
+ this[_scripts] = { ...pkg.scripts };
80
+ }
81
+ /**
82
+ * Create a Package instance from parameters, possibly reusing existing instance.
83
+ * @param {string|Package|RawManifest} ref A path to a package.json file, Package instance, or JSON object
84
+ * @param {string} [dir] If `ref` is a JSON object, this is the location of the manifest
85
+ * @returns {Package}
86
+ */
87
+ static lazy(ref, dir = '.') {
88
+ if (typeof ref === 'string') {
89
+ const location = path_1.default.resolve(path_1.default.basename(ref) === 'package.json' ? path_1.default.dirname(ref) : ref);
90
+ const manifest = load_json_file_1.default.sync(path_1.default.join(location, 'package.json'));
91
+ return new Package(manifest, location);
92
+ }
93
+ // don't use instanceof because it fails across nested module boundaries
94
+ if ('__isLernaPackage' in ref) {
95
+ return ref;
96
+ }
97
+ // assume ref is a json object
98
+ return new Package(ref, dir);
99
+ }
100
+ // readonly getters
101
+ get location() {
102
+ return this[_location];
103
+ }
104
+ get private() {
105
+ return Boolean(this[PKG].private);
106
+ }
107
+ get resolved() {
108
+ return this[_resolved];
109
+ }
110
+ get rootPath() {
111
+ return this[_rootPath];
112
+ }
113
+ get scripts() {
114
+ return this[_scripts];
115
+ }
116
+ get bin() {
117
+ const pkg = this[PKG];
118
+ return typeof pkg.bin === 'string'
119
+ ? { [binSafeName(this.resolved)]: pkg.bin, }
120
+ : Object.assign({}, pkg.bin);
121
+ }
122
+ get binLocation() {
123
+ return path_1.default.join(this.location, 'node_modules', '.bin');
124
+ }
125
+ get manifestLocation() {
126
+ return path_1.default.join(this.location, 'package.json');
127
+ }
128
+ get nodeModulesLocation() {
129
+ return path_1.default.join(this.location, 'node_modules');
130
+ }
131
+ // eslint-disable-next-line class-methods-use-this
132
+ get __isLernaPackage() {
133
+ // safer than instanceof across module boundaries
134
+ return true;
135
+ }
136
+ // accessors
137
+ get version() {
138
+ return this[PKG].version;
139
+ }
140
+ set version(version) {
141
+ this[PKG].version = version;
142
+ }
143
+ get contents() {
144
+ // if modified with setter, use that value
145
+ if (this[_contents]) {
146
+ return this[_contents];
147
+ }
148
+ // if provided by pkg.publishConfig.directory value
149
+ if (this[PKG].publishConfig && this[PKG].publishConfig.directory) {
150
+ return path_1.default.join(this.location, this[PKG].publishConfig.directory);
151
+ }
152
+ // default to package root
153
+ return this.location;
154
+ }
155
+ set contents(subDirectory) {
156
+ this[_contents] = path_1.default.join(this.location, subDirectory);
157
+ }
158
+ // 'live' collections
159
+ get dependencies() {
160
+ return this[PKG].dependencies;
161
+ }
162
+ get devDependencies() {
163
+ return this[PKG].devDependencies;
164
+ }
165
+ get optionalDependencies() {
166
+ return this[PKG].optionalDependencies;
167
+ }
168
+ get peerDependencies() {
169
+ return this[PKG].peerDependencies;
170
+ }
171
+ get pkg() {
172
+ return this[PKG];
173
+ }
174
+ /**
175
+ * Map-like retrieval of arbitrary values
176
+ * @template {keyof RawManifest} K
177
+ * @param {K} key field name to retrieve value
178
+ * @returns {RawManifest[K]} value stored under key, if present
179
+ */
180
+ get(key) {
181
+ return this[PKG][key];
182
+ }
183
+ /**
184
+ * Map-like storage of arbitrary values
185
+ * @template {keyof RawManifest} K
186
+ * @param {T} key field name to store value
187
+ * @param {RawManifest[K]} val value to store
188
+ * @returns {Package} instance for chaining
189
+ */
190
+ set(key, val) {
191
+ this[PKG][key] = val;
192
+ return this;
193
+ }
194
+ /**
195
+ * Provide shallow copy for munging elsewhere
196
+ * @returns {Object}
197
+ */
198
+ toJSON() {
199
+ return shallowCopy(this[PKG]);
200
+ }
201
+ /**
202
+ * Refresh internal state from disk (e.g., changed by external lifecycles)
203
+ */
204
+ refresh() {
205
+ return (0, load_json_file_1.default)(this.manifestLocation).then((pkg) => {
206
+ this[PKG] = pkg;
207
+ return this;
208
+ });
209
+ }
210
+ /**
211
+ * Write manifest changes to disk
212
+ * @returns {Promise} resolves when write finished
213
+ */
214
+ serialize() {
215
+ return (0, write_pkg_1.default)(this.manifestLocation, this[PKG]).then(() => this);
216
+ }
217
+ /**
218
+ * Mutate local dependency spec according to type
219
+ * @param {Object} resolved npa metadata
220
+ * @param {String} depVersion semver
221
+ * @param {String} savePrefix npm_config_save_prefix
222
+ */
223
+ updateLocalDependency(resolved, depVersion, savePrefix) {
224
+ const depName = resolved.name;
225
+ // first, try runtime dependencies
226
+ let depCollection = this.dependencies;
227
+ // try optionalDependencies if that didn't work
228
+ if (!depCollection || !depCollection[depName]) {
229
+ depCollection = this.optionalDependencies;
230
+ }
231
+ // fall back to devDependencies
232
+ if (!depCollection || !depCollection[depName]) {
233
+ depCollection = this.devDependencies;
234
+ }
235
+ if (depCollection) {
236
+ if (resolved.registry || resolved.type === 'directory') {
237
+ // a version (1.2.3) OR range (^1.2.3) OR directory (file:../foo-pkg)
238
+ depCollection[depName] = `${savePrefix}${depVersion}`;
239
+ }
240
+ else if (resolved.gitCommittish) {
241
+ // a git url with matching committish (#v1.2.3 or #1.2.3)
242
+ const [tagPrefix] = /^\D*/.exec(resolved.gitCommittish);
243
+ // update committish
244
+ const { hosted } = resolved; // take that, lint!
245
+ hosted.committish = `${tagPrefix}${depVersion}`;
246
+ // always serialize the full url (identical to previous resolved.saveSpec)
247
+ depCollection[depName] = hosted.toString({ noGitPlus: false, noCommittish: false });
248
+ }
249
+ else if (resolved.gitRange) {
250
+ // a git url with matching gitRange (#semver:^1.2.3)
251
+ const { hosted } = resolved; // take that, lint!
252
+ hosted.committish = `semver:${savePrefix}${depVersion}`;
253
+ // always serialize the full url (identical to previous resolved.saveSpec)
254
+ depCollection[depName] = hosted.toString({ noGitPlus: false, noCommittish: false });
255
+ }
256
+ }
257
+ }
258
+ }
259
+ exports.Package = Package;
260
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './project';
2
+ export * from './lib';
@@ -0,0 +1,15 @@
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("./project"), exports);
14
+ __exportStar(require("./lib"), exports);
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,wCAAsB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {{ [key: string]: unknown }} config
3
+ * @param {string} cwd
4
+ * @param {Set<string>} seen
5
+ */
6
+ export declare function applyExtends(config: any, cwd: any, seen?: Set<unknown>): {};