@atlaskit/dependency-version-analytics 1.1.0 → 1.2.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.
- package/CHANGELOG.md +6 -0
- package/README.md +5 -3
- package/dist/cjs/cli.js +52 -17
- package/dist/cjs/commands/populate-historic-data/index.js +2 -2
- package/dist/cjs/commands/populate-historic-data/lib/dependency-store.js +227 -451
- package/dist/cjs/commands/populate-historic-data/package.js +30 -73
- package/dist/cjs/commands/populate-historic-data/product.js +129 -289
- package/dist/cjs/commands/populate-historic-data/util/allowed-scopes.js +15 -0
- package/dist/cjs/commands/populate-historic-data/util/generate-csv.js +16 -21
- package/dist/cjs/constants.js +2 -2
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/util/analytics.js +77 -102
- package/dist/cjs/util/get-file-history-from-git.js +4 -4
- package/dist/cjs/util/get-package-version-history.js +5 -5
- package/dist/cjs/util/git.js +75 -205
- package/dist/cjs/util/statlas.js +27 -97
- package/dist/cjs/util/yarn.js +40 -101
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/cli.js +10 -4
- package/dist/es2019/commands/populate-historic-data/lib/dependency-store.js +6 -4
- package/dist/es2019/commands/populate-historic-data/package.js +4 -2
- package/dist/es2019/commands/populate-historic-data/product.js +8 -6
- package/dist/es2019/commands/populate-historic-data/util/allowed-scopes.js +7 -0
- package/dist/es2019/commands/populate-historic-data/util/generate-csv.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/cli.js +8 -3
- package/dist/esm/commands/populate-historic-data/lib/dependency-store.js +20 -15
- package/dist/esm/commands/populate-historic-data/package.js +20 -17
- package/dist/esm/commands/populate-historic-data/product.js +45 -42
- package/dist/esm/commands/populate-historic-data/util/allowed-scopes.js +11 -0
- package/dist/esm/commands/populate-historic-data/util/generate-csv.js +1 -1
- package/dist/esm/util/analytics.js +4 -3
- package/dist/esm/util/git.js +14 -13
- package/dist/esm/util/statlas.js +8 -7
- package/dist/esm/util/yarn.js +6 -5
- package/dist/esm/version.json +1 -1
- package/dist/types/commands/populate-historic-data/lib/dependency-store.d.ts +3 -2
- package/dist/types/commands/populate-historic-data/types.d.ts +3 -2
- package/dist/types/commands/populate-historic-data/util/allowed-scopes.d.ts +2 -0
- package/dist/types/commands/populate-historic-data/util/generate-csv.d.ts +2 -2
- package/package.json +2 -2
- package/report.api.md +1 -0
- package/tmp/api-report-tmp.d.ts +1 -0
- package/tokenize-arg-string.ts +0 -0
|
@@ -5,88 +5,45 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = populatePackage;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
8
|
var _semver = _interopRequireDefault(require("semver"));
|
|
12
9
|
var _getPackageVersionHistory = _interopRequireDefault(require("../../util/get-package-version-history"));
|
|
13
10
|
var _analytics = require("../../util/analytics");
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return _semver.default.valid(version);
|
|
21
|
-
}).sort(function (a, b) {
|
|
22
|
-
return Number(new Date(a[1])) - Number(new Date(b[1]));
|
|
23
|
-
});
|
|
24
|
-
var upgradeEvents = sortedPackageVersionHistory.map(function (_ref3, i) {
|
|
25
|
-
var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
|
|
26
|
-
version = _ref4[0],
|
|
27
|
-
time = _ref4[1];
|
|
11
|
+
var _allowedScopes = require("./util/allowed-scopes");
|
|
12
|
+
const createAnalyticsEvents = (packageName, packageVersionHistoryAndTags, since) => {
|
|
13
|
+
const packageVersionHistory = packageVersionHistoryAndTags['time'];
|
|
14
|
+
const tags = packageVersionHistoryAndTags['dist-tags'];
|
|
15
|
+
const sortedPackageVersionHistory = Object.entries(packageVersionHistory).filter(([version]) => _semver.default.valid(version)).sort((a, b) => Number(new Date(a[1])) - Number(new Date(b[1])));
|
|
16
|
+
const upgradeEvents = sortedPackageVersionHistory.map(([version, time], i) => {
|
|
28
17
|
if (since && Number(new Date(time)) <= Number(new Date(since))) {
|
|
29
18
|
return null;
|
|
30
19
|
}
|
|
31
|
-
|
|
20
|
+
const previousVersion = sortedPackageVersionHistory[i - 1] && sortedPackageVersionHistory[i - 1][0];
|
|
32
21
|
return (0, _analytics.createUpgradeEvent)(packageName, version, previousVersion, time, {
|
|
33
22
|
historical: true,
|
|
34
|
-
tags
|
|
23
|
+
tags
|
|
35
24
|
});
|
|
36
|
-
}).filter(
|
|
37
|
-
return e != null;
|
|
38
|
-
});
|
|
25
|
+
}).filter(e => e != null);
|
|
39
26
|
return upgradeEvents;
|
|
40
27
|
};
|
|
41
|
-
function populatePackage(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
_context.next = 7;
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
throw new Error("'since' flag is an invalid date");
|
|
66
|
-
case 7:
|
|
67
|
-
analyticsEvents = createAnalyticsEvents(flags.pkg, packageVersionHistory, flags.since);
|
|
68
|
-
if (!flags.dryRun) {
|
|
69
|
-
_context.next = 11;
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
console.log(JSON.stringify(analyticsEvents));
|
|
73
|
-
return _context.abrupt("return", analyticsEvents);
|
|
74
|
-
case 11:
|
|
75
|
-
_context.next = 13;
|
|
76
|
-
return (0, _analytics.sendAnalytics)(analyticsEvents, {
|
|
77
|
-
dev: flags.dev,
|
|
78
|
-
limit: flags.limit,
|
|
79
|
-
product: 'atlaskit',
|
|
80
|
-
skipPrompt: !flags.interactive
|
|
81
|
-
});
|
|
82
|
-
case 13:
|
|
83
|
-
return _context.abrupt("return", analyticsEvents);
|
|
84
|
-
case 14:
|
|
85
|
-
case "end":
|
|
86
|
-
return _context.stop();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}, _callee);
|
|
90
|
-
}));
|
|
91
|
-
return _populatePackage.apply(this, arguments);
|
|
28
|
+
async function populatePackage(flags) {
|
|
29
|
+
const supportedScopes = (0, _allowedScopes.getSupportedScopes)(flags.includeRestrictedScopes);
|
|
30
|
+
if (!(0, _allowedScopes.isPackageFromSupportedScopes)(flags.pkg, supportedScopes)) {
|
|
31
|
+
throw new Error(`Package must start with ${supportedScopes.join(', ')}`);
|
|
32
|
+
}
|
|
33
|
+
const packageVersionHistory = await (0, _getPackageVersionHistory.default)(flags.pkg);
|
|
34
|
+
if (flags.since && Number.isNaN(Number(new Date(flags.since)))) {
|
|
35
|
+
throw new Error(`'since' flag is an invalid date`);
|
|
36
|
+
}
|
|
37
|
+
const analyticsEvents = createAnalyticsEvents(flags.pkg, packageVersionHistory, flags.since);
|
|
38
|
+
if (flags.dryRun) {
|
|
39
|
+
console.log(JSON.stringify(analyticsEvents));
|
|
40
|
+
return analyticsEvents;
|
|
41
|
+
}
|
|
42
|
+
await (0, _analytics.sendAnalytics)(analyticsEvents, {
|
|
43
|
+
dev: flags.dev,
|
|
44
|
+
limit: flags.limit,
|
|
45
|
+
product: 'atlaskit',
|
|
46
|
+
skipPrompt: !flags.interactive
|
|
47
|
+
});
|
|
48
|
+
return analyticsEvents;
|
|
92
49
|
}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = populateProduct;
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
8
|
var _constants = require("../../constants");
|
|
14
9
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
15
10
|
var _analytics = require("../../util/analytics");
|
|
@@ -19,303 +14,148 @@ var _generateCsv = require("./util/generate-csv");
|
|
|
19
14
|
var _assert = require("../../util/assert");
|
|
20
15
|
var _dependencyStore = require("./lib/dependency-store");
|
|
21
16
|
var _getPackageVersionHistory = _interopRequireDefault(require("../../util/get-package-version-history"));
|
|
22
|
-
|
|
23
|
-
function
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
17
|
+
var _allowedScopes = require("./util/allowed-scopes");
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
+
const getUpgradeEventsFromPkgChange = (oldDeps, newDeps, {
|
|
21
|
+
date,
|
|
22
|
+
commitHash
|
|
23
|
+
}) => {
|
|
24
|
+
const addOrUpgradeEvents = Object.entries(newDeps).map(([name, {
|
|
25
|
+
version,
|
|
26
|
+
type
|
|
27
|
+
}]) => {
|
|
28
|
+
const prevDep = oldDeps[name];
|
|
34
29
|
// Only treat a dependency as previous if the dependency type matches
|
|
35
30
|
// Otherwise, we want separate add/remove events
|
|
36
|
-
|
|
31
|
+
const prevVersion = prevDep && prevDep.type === type ? prevDep.version : undefined;
|
|
37
32
|
return (0, _analytics.createUpgradeEvent)(name, version, prevVersion, date, {
|
|
38
|
-
commitHash
|
|
33
|
+
commitHash,
|
|
39
34
|
dependencyType: type,
|
|
40
35
|
historical: true
|
|
41
36
|
});
|
|
42
|
-
}).filter(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
newDeps[name] == null || newDeps[name].type !== type
|
|
52
|
-
);
|
|
53
|
-
}).map(function (_ref6) {
|
|
54
|
-
var _ref7 = (0, _slicedToArray2.default)(_ref6, 2),
|
|
55
|
-
name = _ref7[0],
|
|
56
|
-
_ref7$ = _ref7[1],
|
|
57
|
-
version = _ref7$.version,
|
|
58
|
-
type = _ref7$.type;
|
|
37
|
+
}).filter(e => e != null);
|
|
38
|
+
const removeEvents = Object.entries(oldDeps).filter(([name, {
|
|
39
|
+
type
|
|
40
|
+
}]) =>
|
|
41
|
+
// Treat the same dep under a different dependency type as a new dep
|
|
42
|
+
newDeps[name] == null || newDeps[name].type !== type).map(([name, {
|
|
43
|
+
version,
|
|
44
|
+
type
|
|
45
|
+
}]) => {
|
|
59
46
|
return (0, _analytics.createUpgradeEvent)(name, undefined, version, date, {
|
|
60
|
-
commitHash
|
|
47
|
+
commitHash,
|
|
61
48
|
dependencyType: type,
|
|
62
49
|
historical: true
|
|
63
50
|
});
|
|
64
|
-
}).filter(
|
|
65
|
-
|
|
66
|
-
});
|
|
67
|
-
return [].concat((0, _toConsumableArray2.default)(addOrUpgradeEvents), (0, _toConsumableArray2.default)(removeEvents));
|
|
51
|
+
}).filter(e => e != null);
|
|
52
|
+
return [...addOrUpgradeEvents, ...removeEvents];
|
|
68
53
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
upgradeEvents = getUpgradeEventsFromPkgChange(dependencies, newDependencies, {
|
|
104
|
-
date: packageChange.date,
|
|
105
|
-
commitHash: item.hash
|
|
106
|
-
});
|
|
107
|
-
if (upgradeEvents.length > 0) {
|
|
108
|
-
(_allUpgradeEvents = allUpgradeEvents).push.apply(_allUpgradeEvents, (0, _toConsumableArray2.default)(upgradeEvents));
|
|
109
|
-
allPackageChanges.push(packageChange);
|
|
110
|
-
}
|
|
111
|
-
case 18:
|
|
112
|
-
i++;
|
|
113
|
-
_context2.next = 9;
|
|
114
|
-
break;
|
|
115
|
-
case 21:
|
|
116
|
-
_context2.next = 23;
|
|
117
|
-
return Promise.all(allUpgradeEvents.map( /*#__PURE__*/function () {
|
|
118
|
-
var _ref10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(upgradeEvent) {
|
|
119
|
-
var _distTags$hotfix, _distTags$latest, _distTags$next;
|
|
120
|
-
var getPackageTags, distTags;
|
|
121
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
122
|
-
while (1) {
|
|
123
|
-
switch (_context.prev = _context.next) {
|
|
124
|
-
case 0:
|
|
125
|
-
_context.next = 2;
|
|
126
|
-
return (0, _getPackageVersionHistory.default)(upgradeEvent.dependencyName);
|
|
127
|
-
case 2:
|
|
128
|
-
getPackageTags = _context.sent;
|
|
129
|
-
distTags = getPackageTags['dist-tags'];
|
|
130
|
-
Object.keys(distTags).forEach(function (key) {
|
|
131
|
-
if (key.startsWith('rc')) {
|
|
132
|
-
upgradeEvent.rcTag = distTags[key];
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
upgradeEvent.hotfixTag = (_distTags$hotfix = distTags['hotfix']) !== null && _distTags$hotfix !== void 0 ? _distTags$hotfix : null;
|
|
136
|
-
upgradeEvent.latestTag = (_distTags$latest = distTags['latest']) !== null && _distTags$latest !== void 0 ? _distTags$latest : null;
|
|
137
|
-
upgradeEvent.nextTag = (_distTags$next = distTags['next']) !== null && _distTags$next !== void 0 ? _distTags$next : null;
|
|
138
|
-
return _context.abrupt("return", upgradeEvent);
|
|
139
|
-
case 9:
|
|
140
|
-
case "end":
|
|
141
|
-
return _context.stop();
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}, _callee);
|
|
145
|
-
}));
|
|
146
|
-
return function (_x4) {
|
|
147
|
-
return _ref10.apply(this, arguments);
|
|
148
|
-
};
|
|
149
|
-
}()));
|
|
150
|
-
case 23:
|
|
151
|
-
allUpgradeEvents = _context2.sent;
|
|
152
|
-
return _context2.abrupt("return", {
|
|
153
|
-
allPackageChanges: allPackageChanges,
|
|
154
|
-
allUpgradeEvents: allUpgradeEvents
|
|
155
|
-
});
|
|
156
|
-
case 25:
|
|
157
|
-
case "end":
|
|
158
|
-
return _context2.stop();
|
|
159
|
-
}
|
|
54
|
+
const getEventsFromHistory = async (packageChangesLog, prevRunHash, {
|
|
55
|
+
cwd
|
|
56
|
+
}, supportedScopes) => {
|
|
57
|
+
const allPackageChanges = [];
|
|
58
|
+
let allUpgradeEvents = [];
|
|
59
|
+
(0, _assert.assert)(packageChangesLog.all.length > 0, '');
|
|
60
|
+
let dependencyStore = new _dependencyStore.DependencyStore(cwd, supportedScopes);
|
|
61
|
+
let dependencies = await dependencyStore.initialise(prevRunHash);
|
|
62
|
+
for (let i = 0; i < packageChangesLog.all.length; i++) {
|
|
63
|
+
let item = packageChangesLog.all[i];
|
|
64
|
+
if (allPackageChanges.length > 0) {
|
|
65
|
+
dependencies = allPackageChanges[allPackageChanges.length - 1].deps;
|
|
66
|
+
}
|
|
67
|
+
const newDependencies = await dependencyStore.update(item);
|
|
68
|
+
const packageChange = {
|
|
69
|
+
date: new Date(item.date).toISOString(),
|
|
70
|
+
deps: newDependencies
|
|
71
|
+
};
|
|
72
|
+
const upgradeEvents = getUpgradeEventsFromPkgChange(dependencies, newDependencies, {
|
|
73
|
+
date: packageChange.date,
|
|
74
|
+
commitHash: item.hash
|
|
75
|
+
});
|
|
76
|
+
if (upgradeEvents.length > 0) {
|
|
77
|
+
allUpgradeEvents.push(...upgradeEvents);
|
|
78
|
+
allPackageChanges.push(packageChange);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// add dist-tags to upgrade event
|
|
82
|
+
allUpgradeEvents = await Promise.all(allUpgradeEvents.map(async upgradeEvent => {
|
|
83
|
+
const getPackageTags = await (0, _getPackageVersionHistory.default)(upgradeEvent.dependencyName);
|
|
84
|
+
const distTags = getPackageTags['dist-tags'];
|
|
85
|
+
Object.keys(distTags).forEach(key => {
|
|
86
|
+
if (key.startsWith('rc')) {
|
|
87
|
+
upgradeEvent.rcTag = distTags[key];
|
|
160
88
|
}
|
|
161
|
-
}
|
|
89
|
+
});
|
|
90
|
+
upgradeEvent.hotfixTag = distTags['hotfix'] ?? null;
|
|
91
|
+
upgradeEvent.latestTag = distTags['latest'] ?? null;
|
|
92
|
+
upgradeEvent.nextTag = distTags['next'] ?? null;
|
|
93
|
+
return upgradeEvent;
|
|
162
94
|
}));
|
|
163
|
-
return
|
|
164
|
-
|
|
95
|
+
return {
|
|
96
|
+
allPackageChanges,
|
|
97
|
+
allUpgradeEvents
|
|
165
98
|
};
|
|
166
|
-
}
|
|
167
|
-
function getSinceRef(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
case 3:
|
|
184
|
-
meta = _context3.sent;
|
|
185
|
-
if (!(!meta || !meta.lastRunHash)) {
|
|
186
|
-
_context3.next = 6;
|
|
187
|
-
break;
|
|
188
|
-
}
|
|
189
|
-
throw new Error(_chalk.default.red("Missing or invalid metadata file for ".concat(flags.product, ". Must use --reset for populating from start of history")));
|
|
190
|
-
case 6:
|
|
191
|
-
return _context3.abrupt("return", meta.lastRunHash);
|
|
192
|
-
case 9:
|
|
193
|
-
tag = flags.tag || _constants.DEFAULT_TAG;
|
|
194
|
-
_context3.next = 12;
|
|
195
|
-
return (0, _git.refetchTag)(tag);
|
|
196
|
-
case 12:
|
|
197
|
-
_context3.next = 14;
|
|
198
|
-
return (0, _git.doesTagExist)(tag);
|
|
199
|
-
case 14:
|
|
200
|
-
tagExists = _context3.sent;
|
|
201
|
-
if (tagExists) {
|
|
202
|
-
_context3.next = 17;
|
|
203
|
-
break;
|
|
204
|
-
}
|
|
205
|
-
throw new Error(_chalk.default.red("Tag '".concat(tag, "' does not exist. Must use --reset for populating from start of history.")));
|
|
206
|
-
case 17:
|
|
207
|
-
return _context3.abrupt("return", tag);
|
|
208
|
-
case 18:
|
|
209
|
-
case "end":
|
|
210
|
-
return _context3.stop();
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}, _callee3);
|
|
214
|
-
}));
|
|
215
|
-
return _getSinceRef.apply(this, arguments);
|
|
216
|
-
}
|
|
217
|
-
function populateProduct(_x6) {
|
|
218
|
-
return _populateProduct.apply(this, arguments);
|
|
99
|
+
};
|
|
100
|
+
async function getSinceRef(flags) {
|
|
101
|
+
if (flags.statlas) {
|
|
102
|
+
const meta = await statlas.getMeta(flags.product);
|
|
103
|
+
if (!meta || !meta.lastRunHash) {
|
|
104
|
+
throw new Error(_chalk.default.red(`Missing or invalid metadata file for ${flags.product}. Must use --reset for populating from start of history`));
|
|
105
|
+
}
|
|
106
|
+
return meta.lastRunHash;
|
|
107
|
+
} else {
|
|
108
|
+
const tag = flags.tag || _constants.DEFAULT_TAG;
|
|
109
|
+
await (0, _git.refetchTag)(tag);
|
|
110
|
+
const tagExists = await (0, _git.doesTagExist)(tag);
|
|
111
|
+
if (!tagExists) {
|
|
112
|
+
throw new Error(_chalk.default.red(`Tag '${tag}' does not exist. Must use --reset for populating from start of history.`));
|
|
113
|
+
}
|
|
114
|
+
return tag;
|
|
115
|
+
}
|
|
219
116
|
}
|
|
220
|
-
function
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
}
|
|
265
|
-
csv = (0, _generateCsv.generateCSV)(allPackageChanges);
|
|
266
|
-
console.log(csv);
|
|
267
|
-
return _context4.abrupt("return");
|
|
268
|
-
case 24:
|
|
269
|
-
if (!flags.dryRun) {
|
|
270
|
-
_context4.next = 27;
|
|
271
|
-
break;
|
|
272
|
-
}
|
|
273
|
-
console.log(JSON.stringify(allUpgradeEvents));
|
|
274
|
-
return _context4.abrupt("return");
|
|
275
|
-
case 27:
|
|
276
|
-
if (!(allUpgradeEvents.length > 0)) {
|
|
277
|
-
_context4.next = 32;
|
|
278
|
-
break;
|
|
279
|
-
}
|
|
280
|
-
_context4.next = 30;
|
|
281
|
-
return (0, _analytics.sendAnalytics)(allUpgradeEvents, {
|
|
282
|
-
dev: flags.dev,
|
|
283
|
-
limit: flags.limit,
|
|
284
|
-
product: flags.product,
|
|
285
|
-
skipPrompt: !flags.interactive
|
|
286
|
-
});
|
|
287
|
-
case 30:
|
|
288
|
-
_context4.next = 33;
|
|
289
|
-
break;
|
|
290
|
-
case 32:
|
|
291
|
-
console.log("Found no AK dependency changes since last run from ref \"".concat(sinceRef, "\"'"));
|
|
292
|
-
case 33:
|
|
293
|
-
if (!flags.statlas) {
|
|
294
|
-
_context4.next = 42;
|
|
295
|
-
break;
|
|
296
|
-
}
|
|
297
|
-
_context4.next = 36;
|
|
298
|
-
return (0, _git.getHash)('HEAD');
|
|
299
|
-
case 36:
|
|
300
|
-
currentCommit = _context4.sent;
|
|
301
|
-
_context4.next = 39;
|
|
302
|
-
return statlas.uploadMeta(flags.product, currentCommit);
|
|
303
|
-
case 39:
|
|
304
|
-
console.log('Finished');
|
|
305
|
-
_context4.next = 46;
|
|
306
|
-
break;
|
|
307
|
-
case 42:
|
|
308
|
-
console.log('Updating tag to current commit...');
|
|
309
|
-
_context4.next = 45;
|
|
310
|
-
return (0, _git.tagCommit)(_constants.DEFAULT_TAG);
|
|
311
|
-
case 45:
|
|
312
|
-
console.log("Finished. Run 'git push origin tag ".concat(sinceRef, "'."));
|
|
313
|
-
case 46:
|
|
314
|
-
case "end":
|
|
315
|
-
return _context4.stop();
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
}, _callee4);
|
|
319
|
-
}));
|
|
320
|
-
return _populateProduct.apply(this, arguments);
|
|
117
|
+
async function populateProduct(flags) {
|
|
118
|
+
const cwd = flags.cwd || process.cwd();
|
|
119
|
+
const sinceRef = flags.reset ? undefined : await getSinceRef(flags);
|
|
120
|
+
const log = await (0, _git.getChangesSince)(sinceRef);
|
|
121
|
+
const supportedScopes = (0, _allowedScopes.getSupportedScopes)(flags.includeRestrictedScopes);
|
|
122
|
+
if (log.all.length === 0) {
|
|
123
|
+
console.log(`No package.json changes found since '${sinceRef}'.`);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const {
|
|
127
|
+
allPackageChanges,
|
|
128
|
+
allUpgradeEvents
|
|
129
|
+
} = await getEventsFromHistory(log, sinceRef, {
|
|
130
|
+
cwd
|
|
131
|
+
}, supportedScopes);
|
|
132
|
+
if (flags.csv) {
|
|
133
|
+
const csv = (0, _generateCsv.generateCSV)(allPackageChanges);
|
|
134
|
+
console.log(csv);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (flags.dryRun) {
|
|
138
|
+
console.log(JSON.stringify(allUpgradeEvents));
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (allUpgradeEvents.length > 0) {
|
|
142
|
+
await (0, _analytics.sendAnalytics)(allUpgradeEvents, {
|
|
143
|
+
dev: flags.dev,
|
|
144
|
+
limit: flags.limit,
|
|
145
|
+
product: flags.product,
|
|
146
|
+
skipPrompt: !flags.interactive
|
|
147
|
+
});
|
|
148
|
+
} else {
|
|
149
|
+
console.log(`Found no dependency changes from supported scopes ${supportedScopes.join(', ')} since last run from ref "${sinceRef}"'`);
|
|
150
|
+
}
|
|
151
|
+
if (flags.statlas) {
|
|
152
|
+
// Upload latest commit to statlas
|
|
153
|
+
const currentCommit = await (0, _git.getHash)('HEAD');
|
|
154
|
+
await statlas.uploadMeta(flags.product, currentCommit);
|
|
155
|
+
console.log('Finished');
|
|
156
|
+
} else {
|
|
157
|
+
console.log('Updating tag to current commit...');
|
|
158
|
+
await (0, _git.tagCommit)(_constants.DEFAULT_TAG);
|
|
159
|
+
console.log(`Finished. Run 'git push origin tag ${sinceRef}'.`);
|
|
160
|
+
}
|
|
321
161
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isPackageFromSupportedScopes = exports.getSupportedScopes = void 0;
|
|
7
|
+
const defaultScopes = ['@atlaskit', '@atlassian', '@atlassiansox'];
|
|
8
|
+
const getSupportedScopes = (enableNonAtlaskitPackages = false) => {
|
|
9
|
+
return enableNonAtlaskitPackages ? defaultScopes : ['@atlaskit'];
|
|
10
|
+
};
|
|
11
|
+
exports.getSupportedScopes = getSupportedScopes;
|
|
12
|
+
const isPackageFromSupportedScopes = (packageName, supportedScopes = defaultScopes) => {
|
|
13
|
+
return supportedScopes.some(scope => packageName.startsWith(scope));
|
|
14
|
+
};
|
|
15
|
+
exports.isPackageFromSupportedScopes = isPackageFromSupportedScopes;
|