@front10/danger-plugins 0.11.1 → 2.0.0-alpha.2

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.
@@ -1,10 +1,7 @@
1
- import fs__default, { readFileSync, existsSync, readdirSync, lstatSync, readFile as readFile$1 } from 'fs';
2
- import path__default, { relative, basename } from 'path';
3
- import stripANSI from 'strip-ansi';
4
- import { run } from 'jest';
5
- import { CLIEngine } from 'eslint';
6
1
  import NetlifyAPI from 'netlify';
7
- import fetch from 'node-fetch';
2
+ import fs__default, { existsSync, readFileSync, readdirSync, lstatSync, readFile as readFile$1 } from 'fs';
3
+ import { fetch } from 'undici';
4
+ import path from 'path';
8
5
  import zlib from 'zlib';
9
6
  import { promisify } from 'util';
10
7
 
@@ -141,6 +138,24 @@ var runtime = (function (exports) {
141
138
  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
142
139
  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
143
140
 
141
+ function define(obj, key, value) {
142
+ Object.defineProperty(obj, key, {
143
+ value: value,
144
+ enumerable: true,
145
+ configurable: true,
146
+ writable: true
147
+ });
148
+ return obj[key];
149
+ }
150
+ try {
151
+ // IE 8 has a broken Object.defineProperty that only works on DOM objects.
152
+ define({}, "");
153
+ } catch (err) {
154
+ define = function(obj, key, value) {
155
+ return obj[key] = value;
156
+ };
157
+ }
158
+
144
159
  function wrap(innerFn, outerFn, self, tryLocsList) {
145
160
  // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
146
161
  var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
@@ -193,9 +208,9 @@ var runtime = (function (exports) {
193
208
  // This is a polyfill for %IteratorPrototype% for environments that
194
209
  // don't natively support it.
195
210
  var IteratorPrototype = {};
196
- IteratorPrototype[iteratorSymbol] = function () {
211
+ define(IteratorPrototype, iteratorSymbol, function () {
197
212
  return this;
198
- };
213
+ });
199
214
 
200
215
  var getProto = Object.getPrototypeOf;
201
216
  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
@@ -209,18 +224,22 @@ var runtime = (function (exports) {
209
224
 
210
225
  var Gp = GeneratorFunctionPrototype.prototype =
211
226
  Generator.prototype = Object.create(IteratorPrototype);
212
- GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
213
- GeneratorFunctionPrototype.constructor = GeneratorFunction;
214
- GeneratorFunctionPrototype[toStringTagSymbol] =
215
- GeneratorFunction.displayName = "GeneratorFunction";
227
+ GeneratorFunction.prototype = GeneratorFunctionPrototype;
228
+ define(Gp, "constructor", GeneratorFunctionPrototype);
229
+ define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
230
+ GeneratorFunction.displayName = define(
231
+ GeneratorFunctionPrototype,
232
+ toStringTagSymbol,
233
+ "GeneratorFunction"
234
+ );
216
235
 
217
236
  // Helper for defining the .next, .throw, and .return methods of the
218
237
  // Iterator interface in terms of a single ._invoke method.
219
238
  function defineIteratorMethods(prototype) {
220
239
  ["next", "throw", "return"].forEach(function(method) {
221
- prototype[method] = function(arg) {
240
+ define(prototype, method, function(arg) {
222
241
  return this._invoke(method, arg);
223
- };
242
+ });
224
243
  });
225
244
  }
226
245
 
@@ -239,9 +258,7 @@ var runtime = (function (exports) {
239
258
  Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
240
259
  } else {
241
260
  genFun.__proto__ = GeneratorFunctionPrototype;
242
- if (!(toStringTagSymbol in genFun)) {
243
- genFun[toStringTagSymbol] = "GeneratorFunction";
244
- }
261
+ define(genFun, toStringTagSymbol, "GeneratorFunction");
245
262
  }
246
263
  genFun.prototype = Object.create(Gp);
247
264
  return genFun;
@@ -323,9 +340,9 @@ var runtime = (function (exports) {
323
340
  }
324
341
 
325
342
  defineIteratorMethods(AsyncIterator.prototype);
326
- AsyncIterator.prototype[asyncIteratorSymbol] = function () {
343
+ define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
327
344
  return this;
328
- };
345
+ });
329
346
  exports.AsyncIterator = AsyncIterator;
330
347
 
331
348
  // Note that simple async functions are implemented on top of
@@ -511,20 +528,20 @@ var runtime = (function (exports) {
511
528
  // unified ._invoke helper method.
512
529
  defineIteratorMethods(Gp);
513
530
 
514
- Gp[toStringTagSymbol] = "Generator";
531
+ define(Gp, toStringTagSymbol, "Generator");
515
532
 
516
533
  // A Generator should always return itself as the iterator object when the
517
534
  // @@iterator function is called on it. Some browsers' implementations of the
518
535
  // iterator prototype chain incorrectly implement this, causing the Generator
519
536
  // object to not be returned from this call. This ensures that doesn't happen.
520
537
  // See https://github.com/facebook/regenerator/issues/274 for more details.
521
- Gp[iteratorSymbol] = function() {
538
+ define(Gp, iteratorSymbol, function() {
522
539
  return this;
523
- };
540
+ });
524
541
 
525
- Gp.toString = function() {
542
+ define(Gp, "toString", function() {
526
543
  return "[object Generator]";
527
- };
544
+ });
528
545
 
529
546
  function pushTryEntry(locs) {
530
547
  var entry = { tryLoc: locs[0] };
@@ -843,250 +860,21 @@ try {
843
860
  } catch (accidentalStrictMode) {
844
861
  // This module should not be running in strict mode, so the above
845
862
  // assignment should always work unless something is misconfigured. Just
846
- // in case runtime.js accidentally runs in strict mode, we can escape
863
+ // in case runtime.js accidentally runs in strict mode, in modern engines
864
+ // we can explicitly access globalThis. In older engines we can escape
847
865
  // strict mode using a global Function call. This could conceivably fail
848
866
  // if a Content Security Policy forbids using Function, but in that case
849
867
  // the proper solution is to fix the accidental strict mode problem. If
850
868
  // you've misconfigured your bundler to force strict mode and applied a
851
869
  // CSP to forbid Function, and you're not willing to fix either of those
852
870
  // problems, please detail your unique predicament in a GitHub issue.
853
- Function("r", "regeneratorRuntime = r")(runtime);
854
- }
855
- });
856
-
857
- var jestSuccessFeedback = function jestSuccessFeedback(jsonResults, showSuccessMessage) {
858
- if (!showSuccessMessage) {
859
- // tslint:disable-next-line:no-console
860
- console.log(":+1: Jest tests passed");
871
+ if (typeof globalThis === "object") {
872
+ globalThis.regeneratorRuntime = runtime;
861
873
  } else {
862
- message(":+1: Jest tests passed: " + jsonResults.numPassedTests + "/" + jsonResults.numTotalTests + " (" + jsonResults.numPendingTests + " skipped)");
863
- }
864
- };
865
-
866
- function getUrl(file, line) {
867
- var gitlab = danger.gitlab;
868
-
869
- if (gitlab) {
870
- var headSha = danger.gitlab.mr.diff_refs.head_sha;
871
- var repoSlug = gitlab.metadata.repoSlug;
872
- var baseUrl = "https://gitlab.com/" + repoSlug + "/-/blob";
873
- return baseUrl + "/" + headSha + "/" + file + (line ? "#L" + line : "");
874
+ Function("r", "regeneratorRuntime = r")(runtime);
874
875
  }
875
-
876
- return "#";
877
- }
878
-
879
- var lineOfError = function lineOfError(msg, filePath) {
880
- var filename = basename(filePath);
881
- var restOfTrace = msg.split(filename, 2)[1];
882
- return restOfTrace ? parseInt(restOfTrace.split(":")[1], 10) : null;
883
- };
884
-
885
- var sanitizeShortErrorMessage = function sanitizeShortErrorMessage(msg) {
886
- if (msg.includes("does not match stored snapshot")) {
887
- return "Snapshot has changed";
888
- }
889
-
890
- return msg.split(" at", 1)[0].trim().split("\n").splice(2).join("").replace(/\s\s+/g, " ").replace("Received:", ", received:").replace("., received", ", received").split("Difference:")[0];
891
- }; // e.g. https://gitlab.com/carburo/danger/-/blob/802af5c0b057c4439ef465a75009f017423fbf98/simple.test.js#L6
892
-
893
-
894
- var linkToTest = function linkToTest(file, msg, title) {
895
- var line = lineOfError(msg, file);
896
- return "<a href='" + getUrl(file, line) + "'>" + title + "</a>";
897
- };
898
-
899
- var assertionFailString = function assertionFailString(file, status) {
900
- return "\n <li>\n " + linkToTest(file, status.failureMessages && status.failureMessages[0], status.title) + "\n <br/>\n " + sanitizeShortErrorMessage(status.failureMessages && stripANSI(status.failureMessages[0])) + "\n \n <details>\n <summary>Full message</summary>\n <pre><code>\n " + (status.failureMessages && stripANSI(status.failureMessages.join("\n"))) + "\n </code></pre>\n </details>\n </li>\n <br/>\n ";
901
- };
902
-
903
- var fileToFailString = function fileToFailString( // tslint:disable-next-line:no-shadowed-variable
904
- path, failedAssertions) {
905
- return "\n <b>:black_joker: FAIL</b> in " + path + "\n \n " + failedAssertions.map(function (a) {
906
- return assertionFailString(path, a);
907
- }).join("\n\n") + "\n ";
908
- };
909
-
910
- var presentErrors = function presentErrors(jsonResults) {
911
- var failing = jsonResults.testResults.filter(function (tr) {
912
- return tr.status === "failed";
913
- });
914
- failing.forEach(function (results) {
915
- var relativeFilePath = relative(process.cwd(), results.name);
916
- var failedAssertions = results.assertionResults.filter(function (r) {
917
- return r.status === "failed";
918
- });
919
- var failMessage = fileToFailString(relativeFilePath, failedAssertions);
920
- fail(failMessage);
921
- });
922
- };
923
-
924
- function jest(_x) {
925
- return _jest.apply(this, arguments);
926
- }
927
-
928
- function _jest() {
929
- _jest = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(config) {
930
- var _config, _config$testResultsJs, testResultsJsonPath, _config$showSuccessMe, showSuccessMessage, _config$runJest, runJest, jsonFileContents, jsonResults;
931
-
932
- return runtime_1.wrap(function _callee$(_context) {
933
- while (1) {
934
- switch (_context.prev = _context.next) {
935
- case 0:
936
- if (config === void 0) {
937
- config = {};
938
- }
939
-
940
- _config = config, _config$testResultsJs = _config.testResultsJsonPath, testResultsJsonPath = _config$testResultsJs === void 0 ? "test-results.json" : _config$testResultsJs, _config$showSuccessMe = _config.showSuccessMessage, showSuccessMessage = _config$showSuccessMe === void 0 ? true : _config$showSuccessMe, _config$runJest = _config.runJest, runJest = _config$runJest === void 0 ? true : _config$runJest;
941
-
942
- if (!runJest) {
943
- _context.next = 11;
944
- break;
945
- }
946
-
947
- _context.prev = 3;
948
- _context.next = 6;
949
- return run(["--outputFile", "test-results.json", "--json"]);
950
-
951
- case 6:
952
- _context.next = 11;
953
- break;
954
-
955
- case 8:
956
- _context.prev = 8;
957
- _context.t0 = _context["catch"](3);
958
- console.error(_context.t0);
959
-
960
- case 11:
961
- _context.prev = 11;
962
- jsonFileContents = readFileSync(testResultsJsonPath, "utf8");
963
- jsonResults = JSON.parse(jsonFileContents);
964
-
965
- if (!jsonResults.success) {
966
- _context.next = 17;
967
- break;
968
- }
969
-
970
- jestSuccessFeedback(jsonResults, showSuccessMessage);
971
- return _context.abrupt("return");
972
-
973
- case 17:
974
- presentErrors(jsonResults);
975
- _context.next = 24;
976
- break;
977
-
978
- case 20:
979
- _context.prev = 20;
980
- _context.t1 = _context["catch"](11);
981
- // tslint:disable-next-line:no-console
982
- console.error(_context.t1);
983
- fail("[danger-plugin-jest] Could not read test results. Danger cannot pass or fail the build.");
984
-
985
- case 24:
986
- case "end":
987
- return _context.stop();
988
- }
989
- }
990
- }, _callee, null, [[3, 8], [11, 20]]);
991
- }));
992
- return _jest.apply(this, arguments);
993
- }
994
-
995
- function getFileContents(path) {
996
- if (danger.gitlab) {
997
- return danger.gitlab.utils.fileContents(path);
998
- } else if (danger.github) {
999
- return danger.github.utils.fileContents(path);
1000
- }
1001
-
1002
- return readFileSync(path, "utf8");
1003
- }
1004
-
1005
- function lintFile(_x, _x2, _x3) {
1006
- return _lintFile.apply(this, arguments);
1007
- }
1008
- /**
1009
- * Eslint your code with Danger
1010
- */
1011
-
1012
-
1013
- function _lintFile() {
1014
- _lintFile = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(linter, _config, path) {
1015
- var contents, report;
1016
- return runtime_1.wrap(function _callee$(_context) {
1017
- while (1) {
1018
- switch (_context.prev = _context.next) {
1019
- case 0:
1020
- _context.next = 2;
1021
- return getFileContents(path);
1022
-
1023
- case 2:
1024
- contents = _context.sent;
1025
- report = linter.executeOnText(contents, path);
1026
-
1027
- if (report.results.length) {
1028
- report.results[0].messages.map(function (msg) {
1029
- if (msg.fatal) {
1030
- fail("Fatal error linting " + path + " with eslint.");
1031
- return undefined;
1032
- }
1033
-
1034
- if (msg.severity === 1 || msg.severity === 2) {
1035
- var fn = {
1036
- 1: warn,
1037
- 2: fail
1038
- }[msg.severity];
1039
- fn(path + " line " + msg.line + " \u2013 " + msg.message + " (" + msg.ruleId + ")");
1040
- }
1041
-
1042
- return undefined;
1043
- });
1044
- }
1045
-
1046
- case 5:
1047
- case "end":
1048
- return _context.stop();
1049
- }
1050
- }
1051
- }, _callee);
1052
- }));
1053
- return _lintFile.apply(this, arguments);
1054
- }
1055
-
1056
- function eslint(_x4, _x5) {
1057
- return _eslint.apply(this, arguments);
1058
- }
1059
-
1060
- function _eslint() {
1061
- _eslint = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(config, extensions) {
1062
- var allFiles, cli, filesToLint;
1063
- return runtime_1.wrap(function _callee2$(_context2) {
1064
- while (1) {
1065
- switch (_context2.prev = _context2.next) {
1066
- case 0:
1067
- allFiles = danger.git.created_files.concat(danger.git.modified_files);
1068
- cli = new CLIEngine({
1069
- baseConfig: config
1070
- }); // let eslint filter down to non-ignored, matching the extensions expected
1071
-
1072
- filesToLint = allFiles.filter(function (f) {
1073
- return !cli.isPathIgnored(f) && (extensions == null ? void 0 : extensions.some(function (ext) {
1074
- return f.endsWith(ext);
1075
- }));
1076
- });
1077
- return _context2.abrupt("return", Promise.all(filesToLint.map(function (f) {
1078
- return lintFile(cli, config, f);
1079
- })));
1080
-
1081
- case 4:
1082
- case "end":
1083
- return _context2.stop();
1084
- }
1085
- }
1086
- }, _callee2);
1087
- }));
1088
- return _eslint.apply(this, arguments);
1089
876
  }
877
+ });
1090
878
 
1091
879
  function deploySite(_ref) {
1092
880
  var siteId = _ref.siteId,
@@ -1203,35 +991,56 @@ function generateMDTable(headers, body) {
1203
991
  return tableHeaders.join("\n") + "\n" + tableBody.join("\n");
1204
992
  }
1205
993
 
1206
- function getDefaultGetBundlesFn(bundlePrefix) {
994
+ function getWidgetsGetBundlesFn(bundlePrefix) {
1207
995
  return function defaultGetBundlesFn(bundlesDir) {
1208
996
  return readdirSync(bundlesDir).map(function (name) {
1209
- return path__default.join(bundlesDir, name);
997
+ return path.join(bundlesDir, name);
1210
998
  }).filter(function (dirName) {
1211
999
  return lstatSync(dirName).isDirectory();
1212
1000
  }).map(function (dirName) {
1213
- return path__default.join(dirName, path__default.basename(dirName).replace(bundlePrefix, "") + ".bundle.js");
1001
+ return path.join(dirName, path.basename(dirName).replace(bundlePrefix, "") + ".bundle.js");
1214
1002
  });
1215
1003
  };
1216
1004
  }
1217
1005
 
1218
- function defaultRenameFn(filename) {
1006
+ function defaultGetBundlesFn(bundlesDir) {
1007
+ return readdirSync(bundlesDir).filter(function (file) {
1008
+ return file.endsWith(".js");
1009
+ }).map(function (file) {
1010
+ return path.join(bundlesDir, file);
1011
+ });
1012
+ }
1013
+
1014
+ function widgetsRenameFn(filename) {
1219
1015
  return filename.split(".bundle.js")[0].replace(/--/g, "-").split("-").map(function (e) {
1220
1016
  return e[0].toUpperCase() + e.slice(1);
1221
1017
  }).join(" ").replace("Mobile", "(mobile)");
1222
1018
  }
1223
1019
 
1020
+ function defaultRenameFn(filename) {
1021
+ return filename.replace(".min.js", "").replace(".js", "");
1022
+ }
1023
+
1224
1024
  function bundleSizeResults(_ref) {
1225
1025
  var _ref$formats = _ref.formats,
1226
1026
  formats = _ref$formats === void 0 ? ["gzip"] : _ref$formats,
1227
1027
  bundlesDir = _ref.bundlesDir,
1228
1028
  _ref$renameFn = _ref.renameFn,
1229
1029
  renameFn = _ref$renameFn === void 0 ? defaultRenameFn : _ref$renameFn,
1230
- getBundlesFn = _ref.getBundlesFn,
1030
+ _ref$getBundlesFn = _ref.getBundlesFn,
1031
+ getBundlesFn = _ref$getBundlesFn === void 0 ? defaultGetBundlesFn : _ref$getBundlesFn,
1231
1032
  _ref$bundlePrefix = _ref.bundlePrefix,
1232
1033
  bundlePrefix = _ref$bundlePrefix === void 0 ? "cmp-mc-" : _ref$bundlePrefix,
1233
- reportPath = _ref.reportPath;
1234
- var getBundles = getBundlesFn != null ? getBundlesFn : getDefaultGetBundlesFn(bundlePrefix);
1034
+ reportPath = _ref.reportPath,
1035
+ preset = _ref.preset;
1036
+ var getBundles = getBundlesFn;
1037
+ var rename = renameFn;
1038
+
1039
+ if (preset === "widgets") {
1040
+ getBundles = getWidgetsGetBundlesFn(bundlePrefix);
1041
+ rename = widgetsRenameFn;
1042
+ }
1043
+
1235
1044
  var files = getBundles(bundlesDir).filter(existsSync);
1236
1045
  var formatFilter = new Set(formats);
1237
1046
  var gzip = formatFilter.has("gzip");
@@ -1243,7 +1052,7 @@ function bundleSizeResults(_ref) {
1243
1052
  var jsFile = readFileSync(filePath);
1244
1053
  var fileSizes = [jsFile].concat(gzip ? [zlib.gzipSync(jsFile)] : [], brotli ? [zlib.brotliCompressSync(jsFile)] : []);
1245
1054
  return {
1246
- filename: renameFn(path__default.basename(filePath)),
1055
+ filename: rename(path.basename(filePath)),
1247
1056
  sizes: fileSizes.map(function (file) {
1248
1057
  return file.length;
1249
1058
  })
@@ -1283,7 +1092,7 @@ function bundleSize(_x) {
1283
1092
 
1284
1093
  function _bundleSize() {
1285
1094
  _bundleSize = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(options) {
1286
- var results, reportPath, _options$baseBundleJo, baseBundleJob, baseResults, projectId, authToken, targetBranch, baseBundlesUrl, baseBundles, diffHeaders, _baseResults, bundles, brotli, gzip, headers, body;
1095
+ var results, reportPath, _options$baseBundleJo, baseBundleJob, baseResults, projectId, authToken, targetBranch, baseBundlesUrl, baseResultsResponse, baseBundles, diffHeaders, _baseResults, bundles, brotli, gzip, headers, body;
1287
1096
 
1288
1097
  return runtime_1.wrap(function _callee$(_context) {
1289
1098
  while (1) {
@@ -1293,7 +1102,7 @@ function _bundleSize() {
1293
1102
  reportPath = options.reportPath, _options$baseBundleJo = options.baseBundleJob, baseBundleJob = _options$baseBundleJo === void 0 ? "publish" : _options$baseBundleJo;
1294
1103
 
1295
1104
  if (!reportPath) {
1296
- _context.next = 10;
1105
+ _context.next = 14;
1297
1106
  break;
1298
1107
  }
1299
1108
 
@@ -1306,14 +1115,23 @@ function _bundleSize() {
1306
1115
  headers: {
1307
1116
  "PRIVATE-TOKEN": authToken
1308
1117
  }
1309
- }).then(function (response) {
1310
- return response.json();
1311
1118
  });
1312
1119
 
1313
1120
  case 9:
1121
+ baseResultsResponse = _context.sent;
1122
+
1123
+ if (!baseResultsResponse.ok) {
1124
+ _context.next = 14;
1125
+ break;
1126
+ }
1127
+
1128
+ _context.next = 13;
1129
+ return baseResultsResponse.json();
1130
+
1131
+ case 13:
1314
1132
  baseResults = _context.sent;
1315
1133
 
1316
- case 10:
1134
+ case 14:
1317
1135
  baseBundles = new Map();
1318
1136
  diffHeaders = [];
1319
1137
 
@@ -1354,7 +1172,7 @@ function _bundleSize() {
1354
1172
  });
1355
1173
  markdown(["## Bundle size", generateMDTable(headers, body)].join("\n\n"));
1356
1174
 
1357
- case 16:
1175
+ case 20:
1358
1176
  case "end":
1359
1177
  return _context.stop();
1360
1178
  }
@@ -1409,5 +1227,5 @@ function _lighthouse() {
1409
1227
  return _lighthouse.apply(this, arguments);
1410
1228
  }
1411
1229
 
1412
- export { bundleSize, bundleSizeResults, eslint, jest, lighthouse, pluginNetlify as netlify };
1230
+ export { bundleSize, bundleSizeResults, lighthouse, pluginNetlify as netlify };
1413
1231
  //# sourceMappingURL=danger-plugins.esm.js.map