@atlaskit/dependency-version-analytics 1.0.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +7 -4
  3. package/dist/cjs/cli.js +52 -17
  4. package/dist/cjs/commands/populate-historic-data/index.js +2 -2
  5. package/dist/cjs/commands/populate-historic-data/lib/dependency-store.js +227 -451
  6. package/dist/cjs/commands/populate-historic-data/package.js +31 -71
  7. package/dist/cjs/commands/populate-historic-data/product.js +130 -253
  8. package/dist/cjs/commands/populate-historic-data/util/allowed-scopes.js +15 -0
  9. package/dist/cjs/commands/populate-historic-data/util/generate-csv.js +16 -21
  10. package/dist/cjs/constants.js +2 -2
  11. package/dist/cjs/index.js +3 -3
  12. package/dist/cjs/util/analytics.js +82 -94
  13. package/dist/cjs/util/get-file-history-from-git.js +4 -4
  14. package/dist/cjs/util/get-package-version-history.js +11 -7
  15. package/dist/cjs/util/git.js +75 -205
  16. package/dist/cjs/util/statlas.js +27 -97
  17. package/dist/cjs/util/yarn.js +40 -101
  18. package/dist/cjs/version.json +1 -1
  19. package/dist/es2019/cli.js +10 -4
  20. package/dist/es2019/commands/populate-historic-data/lib/dependency-store.js +6 -4
  21. package/dist/es2019/commands/populate-historic-data/package.js +11 -6
  22. package/dist/es2019/commands/populate-historic-data/product.js +25 -7
  23. package/dist/es2019/commands/populate-historic-data/util/allowed-scopes.js +7 -0
  24. package/dist/es2019/commands/populate-historic-data/util/generate-csv.js +1 -1
  25. package/dist/es2019/util/analytics.js +13 -0
  26. package/dist/es2019/util/get-package-version-history.js +7 -3
  27. package/dist/es2019/version.json +1 -1
  28. package/dist/esm/cli.js +8 -3
  29. package/dist/esm/commands/populate-historic-data/lib/dependency-store.js +20 -15
  30. package/dist/esm/commands/populate-historic-data/package.js +27 -21
  31. package/dist/esm/commands/populate-historic-data/product.js +121 -81
  32. package/dist/esm/commands/populate-historic-data/util/allowed-scopes.js +11 -0
  33. package/dist/esm/commands/populate-historic-data/util/generate-csv.js +1 -1
  34. package/dist/esm/util/analytics.js +19 -5
  35. package/dist/esm/util/get-package-version-history.js +7 -3
  36. package/dist/esm/util/git.js +14 -13
  37. package/dist/esm/util/statlas.js +8 -7
  38. package/dist/esm/util/yarn.js +6 -5
  39. package/dist/esm/version.json +1 -1
  40. package/dist/types/commands/populate-historic-data/lib/dependency-store.d.ts +3 -2
  41. package/dist/types/commands/populate-historic-data/types.d.ts +3 -2
  42. package/dist/types/commands/populate-historic-data/util/allowed-scopes.d.ts +2 -0
  43. package/dist/types/commands/populate-historic-data/util/generate-csv.d.ts +2 -2
  44. package/dist/types/types.d.ts +7 -0
  45. package/dist/types/util/analytics.d.ts +2 -1
  46. package/dist/types/util/get-package-version-history.d.ts +7 -3
  47. package/package.json +2 -2
  48. package/report.api.md +5 -0
  49. package/tmp/api-report-tmp.d.ts +5 -0
  50. package/tokenize-arg-string.ts +0 -0
package/dist/cjs/index.js CHANGED
@@ -5,19 +5,19 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "populatePackage", {
7
7
  enumerable: true,
8
- get: function get() {
8
+ get: function () {
9
9
  return _populateHistoricData.populatePackage;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "populateProduct", {
13
13
  enumerable: true,
14
- get: function get() {
14
+ get: function () {
15
15
  return _populateHistoricData.populateProduct;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "sendAnalytics", {
19
19
  enumerable: true,
20
- get: function get() {
20
+ get: function () {
21
21
  return _analytics.sendAnalytics;
22
22
  }
23
23
  });
@@ -6,26 +6,25 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.createUpgradeEvent = createUpgradeEvent;
8
8
  exports.sendAnalytics = sendAnalytics;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
9
  var _chalk = _interopRequireDefault(require("chalk"));
13
10
  var _inquirer = _interopRequireDefault(require("inquirer"));
14
11
  var _semver = _interopRequireDefault(require("semver"));
15
12
  var _analyticsNodeClient = require("@atlassiansox/analytics-node-client");
16
13
  var _version = require("../version.json");
17
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ // @ts-ignore
15
+
16
+ /* eslint-disable-next-line import/no-unresolved */
17
+
19
18
  function getUpgradeType(version, previousVersion) {
20
19
  if (previousVersion == null && version != null) {
21
20
  return 'add';
22
21
  } else if (previousVersion != null && version == null) {
23
22
  return 'remove';
24
23
  } else if (previousVersion != null && version != null && previousVersion !== version) {
25
- var coercedPrevious = _semver.default.coerce(previousVersion);
26
- var coercedNew = _semver.default.coerce(version);
24
+ const coercedPrevious = _semver.default.coerce(previousVersion);
25
+ const coercedNew = _semver.default.coerce(version);
27
26
  if (coercedNew == null) {
28
- console.error("Found invalid version \"".concat(version, "\", skipping"));
27
+ console.error(`Found invalid version "${version}", skipping`);
29
28
  return null;
30
29
  }
31
30
  if (coercedPrevious != null && _semver.default.lt(coercedNew, coercedPrevious)) {
@@ -38,110 +37,99 @@ function getUpgradeType(version, previousVersion) {
38
37
  }
39
38
  }
40
39
  function getUpgradeSubType(version, previousVersion) {
41
- var upgradeSubType = null;
40
+ let upgradeSubType = null;
42
41
  if (version == null || previousVersion == null) {
43
42
  return upgradeSubType;
44
43
  }
45
- var parsedOld = _semver.default.coerce(previousVersion);
46
- var parsedNew = _semver.default.coerce(version);
44
+ const parsedOld = _semver.default.coerce(previousVersion);
45
+ const parsedNew = _semver.default.coerce(version);
47
46
  if (parsedOld && parsedNew) {
48
47
  upgradeSubType = _semver.default.diff(parsedOld.version, parsedNew.version);
49
48
  }
50
49
  return upgradeSubType;
51
50
  }
52
- function createUpgradeEvent(name, version, previousVersion, date) {
53
- var optionalArgs = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
51
+ function createUpgradeEvent(name, version, previousVersion, date, optionalArgs = {}) {
54
52
  if (Number.isNaN(Date.parse(date))) {
55
- throw new Error("Invalid date: '".concat(date, "'"));
53
+ throw new Error(`Invalid date: '${date}'`);
56
54
  }
57
- var upgradeType = getUpgradeType(version, previousVersion);
55
+ const upgradeType = getUpgradeType(version, previousVersion);
58
56
  if (!upgradeType) {
59
57
  // Not an upgrade for this dependency, return null
60
58
  return null;
61
59
  }
62
- var upgradeSubType = getUpgradeSubType(version, previousVersion);
63
- var eventVersion = upgradeType !== 'remove' ? version : previousVersion;
64
- var parsedVersion = _semver.default.coerce(eventVersion);
65
- return _objectSpread({
60
+ const upgradeSubType = getUpgradeSubType(version, previousVersion);
61
+ const eventVersion = upgradeType !== 'remove' ? version : previousVersion;
62
+ const parsedVersion = _semver.default.coerce(eventVersion);
63
+ let rcKey = null;
64
+ const tags = (optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.tags) ?? {};
65
+ Object.keys(tags).forEach(key => {
66
+ if (key.startsWith('rc')) {
67
+ rcKey = key;
68
+ return;
69
+ }
70
+ });
71
+ return {
66
72
  cliVersion: _version.version,
67
73
  dependencyName: name,
68
74
  versionString: eventVersion,
69
- major: parsedVersion ? "".concat(parsedVersion.major) : null,
70
- minor: parsedVersion ? "".concat(parsedVersion.minor) : null,
71
- patch: parsedVersion ? "".concat(parsedVersion.patch) : null,
75
+ major: parsedVersion ? `${parsedVersion.major}` : null,
76
+ minor: parsedVersion ? `${parsedVersion.minor}` : null,
77
+ patch: parsedVersion ? `${parsedVersion.patch}` : null,
72
78
  date: new Date(date).toISOString(),
73
- upgradeType: upgradeType,
74
- upgradeSubType: upgradeSubType
75
- }, optionalArgs);
76
- }
77
- function sendAnalytics(_x, _x2) {
78
- return _sendAnalytics.apply(this, arguments);
79
+ upgradeType,
80
+ upgradeSubType,
81
+ latestTag: (tags && tags['latest']) ?? null,
82
+ nextTag: tags['next'] ?? null,
83
+ hotfixTag: tags['hotfix'] ?? null,
84
+ rcTag: (rcKey && tags[rcKey]) ?? null,
85
+ ...optionalArgs
86
+ };
79
87
  }
80
- function _sendAnalytics() {
81
- _sendAnalytics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(analyticsEvents, _ref) {
82
- var dev, limit, product, skipPrompt, analyticsEnv, eventsToSend, client, answers, promises;
83
- return _regenerator.default.wrap(function _callee$(_context) {
84
- while (1) {
85
- switch (_context.prev = _context.next) {
86
- case 0:
87
- dev = _ref.dev, limit = _ref.limit, product = _ref.product, skipPrompt = _ref.skipPrompt;
88
- analyticsEnv = dev ? 'dev' : 'prod';
89
- eventsToSend = limit != null ? analyticsEvents.slice(0, limit) : analyticsEvents;
90
- client = (0, _analyticsNodeClient.analyticsClient)({
91
- env: dev ? 'dev' : 'prod',
92
- product: product
93
- });
94
- if (skipPrompt) {
95
- _context.next = 9;
96
- break;
97
- }
98
- _context.next = 7;
99
- return _inquirer.default.prompt([{
100
- type: 'confirm',
101
- name: 'continue',
102
- message: "Are you sure you want to send ".concat(eventsToSend.length, " historical analytics events to '").concat(analyticsEnv, "' env for product '").concat(product, "?"),
103
- default: false
104
- }]);
105
- case 7:
106
- answers = _context.sent;
107
- if (!answers.continue) {
108
- console.log('Aborting');
109
- process.exit(0);
110
- }
111
- case 9:
112
- _context.prev = 9;
113
- _context.next = 12;
114
- return Promise.all(eventsToSend.map(function (event) {
115
- return client.sendTrackEvent({
116
- anonymousId: 'unknown',
117
- trackEvent: {
118
- tags: ['atlaskit'],
119
- source: '@atlaskit/dependency-version-analytics',
120
- action: 'upgraded',
121
- actionSubject: 'akDependency',
122
- attributes: _objectSpread({}, event),
123
- origin: 'console',
124
- platform: 'bot'
125
- }
126
- });
127
- }));
128
- case 12:
129
- promises = _context.sent;
130
- console.log(_chalk.default.green("Sent ".concat(promises.length, " dependency version upgrade analytics events")));
131
- _context.next = 21;
132
- break;
133
- case 16:
134
- _context.prev = 16;
135
- _context.t0 = _context["catch"](9);
136
- console.error(_chalk.default.red('Sending analytics failed'));
137
- console.error(_context.t0);
138
- process.exit(1);
139
- case 21:
140
- case "end":
141
- return _context.stop();
88
+ async function sendAnalytics(analyticsEvents, {
89
+ dev,
90
+ limit,
91
+ product,
92
+ skipPrompt
93
+ }) {
94
+ const analyticsEnv = dev ? 'dev' : 'prod';
95
+ const eventsToSend = limit != null ? analyticsEvents.slice(0, limit) : analyticsEvents;
96
+ const client = (0, _analyticsNodeClient.analyticsClient)({
97
+ env: dev ? 'dev' : 'prod',
98
+ product: product
99
+ });
100
+ if (!skipPrompt) {
101
+ const answers = await _inquirer.default.prompt([{
102
+ type: 'confirm',
103
+ name: 'continue',
104
+ message: `Are you sure you want to send ${eventsToSend.length} historical analytics events to '${analyticsEnv}' env for product '${product}?`,
105
+ default: false
106
+ }]);
107
+ if (!answers.continue) {
108
+ console.log('Aborting');
109
+ process.exit(0);
110
+ }
111
+ }
112
+ try {
113
+ const promises = await Promise.all(eventsToSend.map(event => {
114
+ return client.sendTrackEvent({
115
+ anonymousId: 'unknown',
116
+ trackEvent: {
117
+ tags: ['atlaskit'],
118
+ source: '@atlaskit/dependency-version-analytics',
119
+ action: 'upgraded',
120
+ actionSubject: 'akDependency',
121
+ attributes: {
122
+ ...event
123
+ },
124
+ origin: 'console',
125
+ platform: 'bot'
142
126
  }
143
- }
144
- }, _callee, null, [[9, 16]]);
145
- }));
146
- return _sendAnalytics.apply(this, arguments);
127
+ });
128
+ }));
129
+ console.log(_chalk.default.green(`Sent ${promises.length} dependency version upgrade analytics events`));
130
+ } catch (e) {
131
+ console.error(_chalk.default.red('Sending analytics failed'));
132
+ console.error(e);
133
+ process.exit(1);
134
+ }
147
135
  }
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = getFileHistoryFromGit;
7
7
  var _child_process = require("child_process");
8
8
  // Lock files tend to be huge
9
- var FiveMBBuffer = 1024 * 5000;
9
+ const FiveMBBuffer = 1024 * 5000;
10
10
  function getFileHistoryFromGit(fileName) {
11
- return new Promise(function (resolve, reject) {
12
- (0, _child_process.exec)("git log ".concat(fileName), {
11
+ return new Promise((resolve, reject) => {
12
+ (0, _child_process.exec)(`git log ${fileName}`, {
13
13
  maxBuffer: FiveMBBuffer
14
- }, function (error, stdout, stderr) {
14
+ }, (error, stdout, stderr) => {
15
15
  if (error) {
16
16
  reject(error);
17
17
  }
@@ -3,22 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = getPackageVersionHistory;
6
+ exports.default = getPackageVersionHistoryAndTags;
7
7
  var _child_process = require("child_process");
8
- function getPackageVersionHistory(packageName) {
9
- return new Promise(function (resolve, reject) {
10
- (0, _child_process.exec)("yarn info ".concat(packageName, " --json time"), function (error, stdout, stderr) {
8
+ function getPackageVersionHistoryAndTags(packageName) {
9
+ return new Promise((resolve, reject) => {
10
+ (0, _child_process.exec)(`yarn info ${packageName} --json`, (error, stdout, stderr) => {
11
11
  if (error) {
12
12
  reject(error);
13
13
  }
14
14
  if (stderr) {
15
15
  reject(stderr);
16
16
  }
17
- var json;
17
+ let json;
18
18
  try {
19
- json = JSON.parse(stdout).data;
19
+ const parseData = JSON.parse(stdout).data;
20
+ json = {
21
+ time: parseData['time'],
22
+ 'dist-tags': parseData['dist-tags']
23
+ };
20
24
  } catch (e) {
21
- reject("Error parsing json output: ".concat(e));
25
+ reject(`Error parsing json output: ${e}`);
22
26
  }
23
27
  resolve(json);
24
28
  });
@@ -11,54 +11,29 @@ exports.getHash = getHash;
11
11
  exports.refetchTag = refetchTag;
12
12
  exports.showFile = showFile;
13
13
  exports.tagCommit = tagCommit;
14
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
14
  var _simpleGit = _interopRequireDefault(require("simple-git"));
19
15
  var _assert = require("./assert");
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
- function getChangesSince(_x) {
23
- return _getChangesSince.apply(this, arguments);
24
- }
25
- function _getChangesSince() {
26
- _getChangesSince = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(since) {
27
- var revisionRange, listLogSummary;
28
- return _regenerator.default.wrap(function _callee$(_context) {
29
- while (1) {
30
- switch (_context.prev = _context.next) {
31
- case 0:
32
- revisionRange = since ? ["".concat(since, "..")] : [];
33
- _context.next = 3;
34
- return (0, _simpleGit.default)().log([
35
- // Only commits on mainline master
36
- '--first-parent',
37
- // Show merge commit contents
38
- '-m',
39
- // Reverse the order
40
- '--reverse',
41
- // Show filename changes - simple-git parses --stat flag but not --name-only unfortunately
42
- '--stat=4096',
43
- // Make +- graph width as small as possible to maximise filename length
44
- '--stat-graph-width=1'].concat(revisionRange, [
45
- // Any commit that modifies a package.json
46
- ':(glob)**/package.json']));
47
- case 3:
48
- listLogSummary = _context.sent;
49
- return _context.abrupt("return", _objectSpread(_objectSpread({}, listLogSummary), {}, {
50
- all: listLogSummary.all.map(function (logLine) {
51
- return parseLogLine(logLine);
52
- })
53
- }));
54
- case 5:
55
- case "end":
56
- return _context.stop();
57
- }
58
- }
59
- }, _callee);
60
- }));
61
- return _getChangesSince.apply(this, arguments);
16
+ // @ts-ignore
17
+
18
+ async function getChangesSince(since) {
19
+ const revisionRange = since ? [`${since}..`] : [];
20
+ const listLogSummary = await (0, _simpleGit.default)().log([
21
+ // Only commits on mainline master
22
+ '--first-parent',
23
+ // Show merge commit contents
24
+ '-m',
25
+ // Reverse the order
26
+ '--reverse',
27
+ // Show filename changes - simple-git parses --stat flag but not --name-only unfortunately
28
+ '--stat=4096',
29
+ // Make +- graph width as small as possible to maximise filename length
30
+ '--stat-graph-width=1', ...revisionRange,
31
+ // Any commit that modifies a package.json
32
+ ':(glob)**/package.json']);
33
+ return {
34
+ ...listLogSummary,
35
+ all: listLogSummary.all.map(logLine => parseLogLine(logLine))
36
+ };
62
37
  }
63
38
  function parseLogLine(logLine) {
64
39
  if (!logLine.diff) {
@@ -66,185 +41,80 @@ function parseLogLine(logLine) {
66
41
  }
67
42
 
68
43
  // Split files into separate entries when a rename has occurred so both old and new files are processed
69
- var parsedDiffFiles = logLine.diff.files.reduce(function (acc, curr) {
70
- var renameArrowCount = curr.file.match(/ => /g);
44
+ const parsedDiffFiles = logLine.diff.files.reduce((acc, curr) => {
45
+ const renameArrowCount = curr.file.match(/ => /g);
71
46
  if (renameArrowCount == null) {
72
- return [].concat((0, _toConsumableArray2.default)(acc), [curr]);
47
+ return [...acc, curr];
73
48
  }
74
49
  // Multiple rename parts are not supported. They most likely don't exist in git but we check
75
50
  // for them anyway just in case
76
- (0, _assert.assert)(renameArrowCount.length === 1, "Multiple rename parts detected: ".concat(curr.file));
51
+ (0, _assert.assert)(renameArrowCount.length === 1, `Multiple rename parts detected: ${curr.file}`);
77
52
  /* Matches:
78
53
  * - '{new-frontend/src => src}/package.json'
79
54
  * - 'new-frontend/.prettierrc.js => .prettierrc.js'
80
55
  * - 'src/{ => platform}/analytics/package.json'
81
56
  * - 'src/packages/spa/{main => }/package.json'
82
57
  */
83
- var renameMatch = curr.file.match(/\{?([^{]+)? => ([^}]+)?\}?/);
84
- (0, _assert.assert)(renameMatch != null, "Invalid rename format ".concat(curr.file));
85
- var oldFile = curr.file.replace(renameMatch[0], renameMatch[1] || '')
58
+ const renameMatch = curr.file.match(/\{?([^{]+)? => ([^}]+)?\}?/);
59
+ (0, _assert.assert)(renameMatch != null, `Invalid rename format ${curr.file}`);
60
+ const oldFile = curr.file.replace(renameMatch[0], renameMatch[1] || '')
86
61
  // If the previous name segment is empty, we will have a double slash
87
62
  .replace('//', '/');
88
- var newFile = curr.file.replace(renameMatch[0], renameMatch[2] || '').replace('//', '/');
89
- return [].concat((0, _toConsumableArray2.default)(acc), [_objectSpread(_objectSpread({}, curr), {}, {
63
+ const newFile = curr.file.replace(renameMatch[0], renameMatch[2] || '').replace('//', '/');
64
+ return [...acc, {
65
+ ...curr,
90
66
  file: oldFile
91
- }), _objectSpread(_objectSpread({}, curr), {}, {
67
+ }, {
68
+ ...curr,
92
69
  file: newFile
93
- })]);
70
+ }];
94
71
  }, []);
95
- return _objectSpread(_objectSpread({}, logLine), {}, {
96
- diff: _objectSpread(_objectSpread({}, logLine.diff), {}, {
72
+ return {
73
+ ...logLine,
74
+ diff: {
75
+ ...logLine.diff,
97
76
  files: parsedDiffFiles
98
- })
99
- });
100
- }
101
- function tagCommit(_x2) {
102
- return _tagCommit.apply(this, arguments);
103
- }
104
- function _tagCommit() {
105
- _tagCommit = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(tag) {
106
- return _regenerator.default.wrap(function _callee2$(_context2) {
107
- while (1) {
108
- switch (_context2.prev = _context2.next) {
109
- case 0:
110
- return _context2.abrupt("return", (0, _simpleGit.default)().tag(['-f', tag]));
111
- case 1:
112
- case "end":
113
- return _context2.stop();
114
- }
115
- }
116
- }, _callee2);
117
- }));
118
- return _tagCommit.apply(this, arguments);
119
- }
120
- function doesTagExist(_x3) {
121
- return _doesTagExist.apply(this, arguments);
122
- }
123
- function _doesTagExist() {
124
- _doesTagExist = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(tag) {
125
- var tags;
126
- return _regenerator.default.wrap(function _callee3$(_context3) {
127
- while (1) {
128
- switch (_context3.prev = _context3.next) {
129
- case 0:
130
- _context3.next = 2;
131
- return (0, _simpleGit.default)().tags((0, _defineProperty2.default)({}, tag, null));
132
- case 2:
133
- tags = _context3.sent;
134
- return _context3.abrupt("return", tags.all.length > 0);
135
- case 4:
136
- case "end":
137
- return _context3.stop();
138
- }
139
- }
140
- }, _callee3);
141
- }));
142
- return _doesTagExist.apply(this, arguments);
143
- }
144
- function refetchTag(_x4) {
145
- return _refetchTag.apply(this, arguments);
77
+ }
78
+ };
146
79
  }
147
- function _refetchTag() {
148
- _refetchTag = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(tag) {
149
- var fetchTagResult;
150
- return _regenerator.default.wrap(function _callee4$(_context4) {
151
- while (1) {
152
- switch (_context4.prev = _context4.next) {
153
- case 0:
154
- _context4.prev = 0;
155
- _context4.next = 3;
156
- return (0, _simpleGit.default)().tag(['-d', tag]);
157
- case 3:
158
- _context4.next = 9;
159
- break;
160
- case 5:
161
- _context4.prev = 5;
162
- _context4.t0 = _context4["catch"](0);
163
- if (/tag.*not found/.test(_context4.t0.message)) {
164
- _context4.next = 9;
165
- break;
166
- }
167
- throw _context4.t0;
168
- case 9:
169
- _context4.prev = 9;
170
- _context4.next = 12;
171
- return (0, _simpleGit.default)().fetch(['origin', 'tag', tag]);
172
- case 12:
173
- fetchTagResult = _context4.sent;
174
- _context4.next = 19;
175
- break;
176
- case 15:
177
- _context4.prev = 15;
178
- _context4.t1 = _context4["catch"](9);
179
- if (/Couldn't find remote ref refs\/tags\//.test(_context4.t1.message)) {
180
- _context4.next = 19;
181
- break;
182
- }
183
- throw _context4.t1;
184
- case 19:
185
- return _context4.abrupt("return", {
186
- fetchTagResult: fetchTagResult
187
- });
188
- case 20:
189
- case "end":
190
- return _context4.stop();
191
- }
192
- }
193
- }, _callee4, null, [[0, 5], [9, 15]]);
194
- }));
195
- return _refetchTag.apply(this, arguments);
80
+ async function tagCommit(tag) {
81
+ return (0, _simpleGit.default)().tag(['-f', tag]);
196
82
  }
197
- function getHash(_x5) {
198
- return _getHash.apply(this, arguments);
83
+ async function doesTagExist(tag) {
84
+ const tags = await (0, _simpleGit.default)().tags({
85
+ [tag]: null
86
+ });
87
+ return tags.all.length > 0;
199
88
  }
200
- function _getHash() {
201
- _getHash = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(ref) {
202
- return _regenerator.default.wrap(function _callee5$(_context5) {
203
- while (1) {
204
- switch (_context5.prev = _context5.next) {
205
- case 0:
206
- return _context5.abrupt("return", (0, _simpleGit.default)().revparse([ref]));
207
- case 1:
208
- case "end":
209
- return _context5.stop();
210
- }
211
- }
212
- }, _callee5);
213
- }));
214
- return _getHash.apply(this, arguments);
89
+ async function refetchTag(tag) {
90
+ try {
91
+ await (0, _simpleGit.default)().tag(['-d', tag]);
92
+ } catch (e) {
93
+ // Ignore tag not found errors
94
+ if (!/tag.*not found/.test(e.message)) {
95
+ throw e;
96
+ }
97
+ }
98
+ let fetchTagResult;
99
+ try {
100
+ fetchTagResult = await (0, _simpleGit.default)().fetch(['origin', 'tag', tag]);
101
+ } catch (e) {
102
+ // Ignore can't find tag in remote errors
103
+ if (!/Couldn't find remote ref refs\/tags\//.test(e.message)) {
104
+ throw e;
105
+ }
106
+ }
107
+ return {
108
+ fetchTagResult
109
+ };
215
110
  }
216
- function showFile(ref, filename) {
217
- var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
218
- return (0, _simpleGit.default)(opts.cwd || process.cwd()).show(["".concat(ref, ":").concat(filename)]);
111
+ async function getHash(ref) {
112
+ return (0, _simpleGit.default)().revparse([ref]);
219
113
  }
220
- function getFiles(_x6, _x7) {
221
- return _getFiles.apply(this, arguments);
114
+ function showFile(ref, filename, opts = {}) {
115
+ return (0, _simpleGit.default)(opts.cwd || process.cwd()).show([`${ref}:${filename}`]);
222
116
  }
223
- function _getFiles() {
224
- _getFiles = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(ref, glob) {
225
- var opts,
226
- result,
227
- _args6 = arguments;
228
- return _regenerator.default.wrap(function _callee6$(_context6) {
229
- while (1) {
230
- switch (_context6.prev = _context6.next) {
231
- case 0:
232
- opts = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};
233
- _context6.next = 3;
234
- return (0, _simpleGit.default)(opts.cwd || process.cwd()).raw(['grep', '--name-only', '', ref, '--', ":(glob)".concat(glob)]);
235
- case 3:
236
- result = _context6.sent;
237
- return _context6.abrupt("return", result.split('\n').filter(function (line) {
238
- return line !== '';
239
- }).map(function (line) {
240
- return line.split(':')[1];
241
- }));
242
- case 5:
243
- case "end":
244
- return _context6.stop();
245
- }
246
- }
247
- }, _callee6);
248
- }));
249
- return _getFiles.apply(this, arguments);
117
+ async function getFiles(ref, glob, opts = {}) {
118
+ const result = await (0, _simpleGit.default)(opts.cwd || process.cwd()).raw(['grep', '--name-only', '', ref, '--', `:(glob)${glob}`]);
119
+ return result.split('\n').filter(line => line !== '').map(line => line.split(':')[1]);
250
120
  }