@sentry/bundler-plugin-core 2.2.1 → 2.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.
package/dist/cjs/index.js CHANGED
@@ -566,7 +566,11 @@ function stringToUUID(str) {
566
566
  var md5sum = crypto__default["default"].createHash("md5");
567
567
  md5sum.update(str);
568
568
  var md5Hash = md5sum.digest("hex");
569
- return (md5Hash.substring(0, 8) + "-" + md5Hash.substring(8, 12) + "-4" + md5Hash.substring(13, 16) + "-" + md5Hash.substring(16, 20) + "-" + md5Hash.substring(20)).toLowerCase();
569
+
570
+ // Position 16 is fixed to either 8, 9, a, or b in the uuid v4 spec (10xx in binary)
571
+ // RFC 4122 section 4.4
572
+ var v4variant = ["8", "9", "a", "b"][md5Hash.substring(16, 17).charCodeAt(0) % 4];
573
+ return (md5Hash.substring(0, 8) + "-" + md5Hash.substring(8, 12) + "-4" + md5Hash.substring(13, 16) + "-" + v4variant + md5Hash.substring(17, 20) + "-" + md5Hash.substring(20)).toLowerCase();
570
574
  }
571
575
 
572
576
  /**
@@ -634,7 +638,7 @@ function stripQueryAndHashFromPath(path) {
634
638
 
635
639
  var SENTRY_SAAS_URL = "https://sentry.io";
636
640
  function normalizeUserOptions(userOptions) {
637
- var _userOptions$org, _userOptions$project, _userOptions$authToke, _ref, _userOptions$url, _userOptions$debug, _userOptions$silent, _userOptions$telemetr, _userOptions$disable, _userOptions$release$, _userOptions$release, _userOptions$release$2, _userOptions$release2, _userOptions$release$3, _userOptions$release3, _userOptions$release$4, _userOptions$release4, _ref2, _userOptions$release$5, _userOptions$release5, _userOptions$release$6, _userOptions$release6, _userOptions$_experim;
641
+ var _userOptions$org, _userOptions$project, _userOptions$authToke, _ref, _userOptions$url, _userOptions$debug, _userOptions$silent, _userOptions$telemetr, _userOptions$disable, _ref2, _userOptions$release$, _userOptions$release, _userOptions$release$2, _userOptions$release2, _userOptions$release$3, _userOptions$release3, _userOptions$release$4, _userOptions$release4, _ref3, _userOptions$release$5, _userOptions$release5, _userOptions$release$6, _userOptions$release6, _userOptions$_experim;
638
642
  var options = {
639
643
  org: (_userOptions$org = userOptions.org) !== null && _userOptions$org !== void 0 ? _userOptions$org : process.env["SENTRY_ORG"],
640
644
  project: (_userOptions$project = userOptions.project) !== null && _userOptions$project !== void 0 ? _userOptions$project : process.env["SENTRY_PROJECT"],
@@ -648,11 +652,11 @@ function normalizeUserOptions(userOptions) {
648
652
  disable: (_userOptions$disable = userOptions.disable) !== null && _userOptions$disable !== void 0 ? _userOptions$disable : false,
649
653
  sourcemaps: userOptions.sourcemaps,
650
654
  release: _objectSpread2(_objectSpread2({}, userOptions.release), {}, {
651
- name: (_userOptions$release$ = (_userOptions$release = userOptions.release) === null || _userOptions$release === void 0 ? void 0 : _userOptions$release.name) !== null && _userOptions$release$ !== void 0 ? _userOptions$release$ : determineReleaseName(),
655
+ name: (_ref2 = (_userOptions$release$ = (_userOptions$release = userOptions.release) === null || _userOptions$release === void 0 ? void 0 : _userOptions$release.name) !== null && _userOptions$release$ !== void 0 ? _userOptions$release$ : process.env["SENTRY_RELEASE"]) !== null && _ref2 !== void 0 ? _ref2 : determineReleaseName(),
652
656
  inject: (_userOptions$release$2 = (_userOptions$release2 = userOptions.release) === null || _userOptions$release2 === void 0 ? void 0 : _userOptions$release2.inject) !== null && _userOptions$release$2 !== void 0 ? _userOptions$release$2 : true,
653
657
  create: (_userOptions$release$3 = (_userOptions$release3 = userOptions.release) === null || _userOptions$release3 === void 0 ? void 0 : _userOptions$release3.create) !== null && _userOptions$release$3 !== void 0 ? _userOptions$release$3 : true,
654
658
  finalize: (_userOptions$release$4 = (_userOptions$release4 = userOptions.release) === null || _userOptions$release4 === void 0 ? void 0 : _userOptions$release4.finalize) !== null && _userOptions$release$4 !== void 0 ? _userOptions$release$4 : true,
655
- vcsRemote: (_ref2 = (_userOptions$release$5 = (_userOptions$release5 = userOptions.release) === null || _userOptions$release5 === void 0 ? void 0 : _userOptions$release5.vcsRemote) !== null && _userOptions$release$5 !== void 0 ? _userOptions$release$5 : process.env["SENTRY_VSC_REMOTE"]) !== null && _ref2 !== void 0 ? _ref2 : "origin",
659
+ vcsRemote: (_ref3 = (_userOptions$release$5 = (_userOptions$release5 = userOptions.release) === null || _userOptions$release5 === void 0 ? void 0 : _userOptions$release5.vcsRemote) !== null && _userOptions$release$5 !== void 0 ? _userOptions$release$5 : process.env["SENTRY_VSC_REMOTE"]) !== null && _ref3 !== void 0 ? _ref3 : "origin",
656
660
  cleanArtifacts: (_userOptions$release$6 = (_userOptions$release6 = userOptions.release) === null || _userOptions$release6 === void 0 ? void 0 : _userOptions$release6.cleanArtifacts) !== null && _userOptions$release$6 !== void 0 ? _userOptions$release$6 : false
657
661
  }),
658
662
  _experiments: (_userOptions$_experim = userOptions._experiments) !== null && _userOptions$_experim !== void 0 ? _userOptions$_experim : {}
@@ -702,7 +706,7 @@ function createDebugIdUploadFunction(_ref) {
702
706
  sentryClient = _ref.sentryClient,
703
707
  sentryCliOptions = _ref.sentryCliOptions,
704
708
  rewriteSourcesHook = _ref.rewriteSourcesHook,
705
- deleteFilesAfterUpload = _ref.deleteFilesAfterUpload;
709
+ filesToDeleteAfterUpload = _ref.filesToDeleteAfterUpload;
706
710
  return /*#__PURE__*/function () {
707
711
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(buildArtifactPaths) {
708
712
  var artifactBundleUploadTransaction, folderToCleanUp, mkdtempSpan, tmpUploadFolder, globAssets, globSpan, globResult, debugIdChunkFilePaths, prepareSpan, files, stats, uploadSize, uploadSpan, cliInstance, deleteGlobSpan, filePathsToDelete, deleteSpan, cleanupSpan;
@@ -742,27 +746,29 @@ function createDebugIdUploadFunction(_ref) {
742
746
  globSpan.finish();
743
747
  debugIdChunkFilePaths = globResult.filter(function (debugIdChunkFilePath) {
744
748
  return debugIdChunkFilePath.endsWith(".js") || debugIdChunkFilePath.endsWith(".mjs") || debugIdChunkFilePath.endsWith(".cjs");
745
- });
749
+ }); // The order of the files output by glob() is not deterministic
750
+ // Ensure order within the files so that {debug-id}-{chunkIndex} coupling is consistent
751
+ debugIdChunkFilePaths.sort();
746
752
  if (!(Array.isArray(assets) && assets.length === 0)) {
747
- _context2.next = 19;
753
+ _context2.next = 20;
748
754
  break;
749
755
  }
750
756
  logger.debug("Empty `sourcemaps.assets` option provided. Will not upload sourcemaps with debug ID.");
751
- _context2.next = 41;
757
+ _context2.next = 43;
752
758
  break;
753
- case 19:
759
+ case 20:
754
760
  if (!(debugIdChunkFilePaths.length === 0)) {
755
- _context2.next = 23;
761
+ _context2.next = 24;
756
762
  break;
757
763
  }
758
764
  logger.warn("Didn't find any matching sources for debug ID upload. Please check the `sourcemaps.assets` option.");
759
- _context2.next = 41;
765
+ _context2.next = 43;
760
766
  break;
761
- case 23:
767
+ case 24:
762
768
  prepareSpan = artifactBundleUploadTransaction.startChild({
763
769
  description: "prepare-bundles"
764
770
  });
765
- _context2.next = 26;
771
+ _context2.next = 27;
766
772
  return Promise.all(debugIdChunkFilePaths.map( /*#__PURE__*/function () {
767
773
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(chunkFilePath, chunkIndex) {
768
774
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -780,18 +786,18 @@ function createDebugIdUploadFunction(_ref) {
780
786
  return _ref3.apply(this, arguments);
781
787
  };
782
788
  }()));
783
- case 26:
789
+ case 27:
784
790
  prepareSpan.finish();
785
- _context2.next = 29;
791
+ _context2.next = 30;
786
792
  return fs__default["default"].promises.readdir(tmpUploadFolder);
787
- case 29:
793
+ case 30:
788
794
  files = _context2.sent;
789
795
  stats = files.map(function (file) {
790
796
  return fs__default["default"].promises.stat(path__default["default"].join(tmpUploadFolder, file));
791
797
  });
792
- _context2.next = 33;
798
+ _context2.next = 34;
793
799
  return Promise.all(stats);
794
- case 33:
800
+ case 34:
795
801
  uploadSize = _context2.sent.reduce(function (accumulator, _ref4) {
796
802
  var size = _ref4.size;
797
803
  return accumulator + size;
@@ -808,7 +814,7 @@ function createDebugIdUploadFunction(_ref) {
808
814
  baggage: utils.dynamicSamplingContextToSentryBaggageHeader(artifactBundleUploadTransaction.getDynamicSamplingContext())
809
815
  }, sentryCliOptions.headers)
810
816
  }));
811
- _context2.next = 40;
817
+ _context2.next = 41;
812
818
  return cliInstance.releases.uploadSourceMaps(releaseName !== null && releaseName !== void 0 ? releaseName : "undefined",
813
819
  // unfortunetly this needs a value for now but it will not matter since debug IDs overpower releases anyhow
814
820
  {
@@ -819,22 +825,23 @@ function createDebugIdUploadFunction(_ref) {
819
825
  }],
820
826
  useArtifactBundle: true
821
827
  });
822
- case 40:
823
- uploadSpan.finish();
824
828
  case 41:
825
- if (!deleteFilesAfterUpload) {
826
- _context2.next = 52;
829
+ uploadSpan.finish();
830
+ logger.info("Successfully uploaded source maps to Sentry");
831
+ case 43:
832
+ if (!filesToDeleteAfterUpload) {
833
+ _context2.next = 54;
827
834
  break;
828
835
  }
829
836
  deleteGlobSpan = artifactBundleUploadTransaction.startChild({
830
837
  description: "delete-glob"
831
838
  });
832
- _context2.next = 45;
833
- return glob.glob(deleteFilesAfterUpload, {
839
+ _context2.next = 47;
840
+ return glob.glob(filesToDeleteAfterUpload, {
834
841
  absolute: true,
835
842
  nodir: true
836
843
  });
837
- case 45:
844
+ case 47:
838
845
  filePathsToDelete = _context2.sent;
839
846
  deleteGlobSpan.finish();
840
847
  filePathsToDelete.forEach(function (filePathToDelete) {
@@ -843,27 +850,27 @@ function createDebugIdUploadFunction(_ref) {
843
850
  deleteSpan = artifactBundleUploadTransaction.startChild({
844
851
  description: "delete-files-after-upload"
845
852
  });
846
- _context2.next = 51;
853
+ _context2.next = 53;
847
854
  return Promise.all(filePathsToDelete.map(function (filePathToDelete) {
848
855
  return fs__default["default"].promises.rm(filePathToDelete, {
849
856
  force: true
850
857
  });
851
858
  }));
852
- case 51:
859
+ case 53:
853
860
  deleteSpan.finish();
854
- case 52:
855
- _context2.next = 58;
856
- break;
857
861
  case 54:
858
- _context2.prev = 54;
862
+ _context2.next = 60;
863
+ break;
864
+ case 56:
865
+ _context2.prev = 56;
859
866
  _context2.t0 = _context2["catch"](1);
860
867
  sentryHub.withScope(function (scope) {
861
868
  scope.setSpan(artifactBundleUploadTransaction);
862
869
  sentryHub.captureException('Error in "debugIdUploadPlugin" writeBundle hook');
863
870
  });
864
871
  handleRecoverableError(_context2.t0);
865
- case 58:
866
- _context2.prev = 58;
872
+ case 60:
873
+ _context2.prev = 60;
867
874
  if (folderToCleanUp) {
868
875
  cleanupSpan = artifactBundleUploadTransaction.startChild({
869
876
  description: "cleanup"
@@ -875,15 +882,15 @@ function createDebugIdUploadFunction(_ref) {
875
882
  cleanupSpan.finish();
876
883
  }
877
884
  artifactBundleUploadTransaction.finish();
878
- _context2.next = 63;
885
+ _context2.next = 65;
879
886
  return sentryClient.flush();
880
- case 63:
881
- return _context2.finish(58);
882
- case 64:
887
+ case 65:
888
+ return _context2.finish(60);
889
+ case 66:
883
890
  case "end":
884
891
  return _context2.stop();
885
892
  }
886
- }, _callee2, null, [[1, 54, 58, 64]]);
893
+ }, _callee2, null, [[1, 56, 60, 66]]);
887
894
  }));
888
895
  return function (_x) {
889
896
  return _ref2.apply(this, arguments);
@@ -1284,7 +1291,7 @@ function createSentryInstance(options, shouldSendTelemetry, bundler) {
1284
1291
  dsn: "https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737",
1285
1292
  tracesSampleRate: 1,
1286
1293
  sampleRate: 1,
1287
- release: "2.2.1",
1294
+ release: "2.3.0",
1288
1295
  integrations: [],
1289
1296
  tracePropagationTargets: ["sentry.io/api"],
1290
1297
  stackParser: node.defaultStackParser,
@@ -1368,7 +1375,7 @@ function setTelemetryDataOnHub(options, hub, bundler) {
1368
1375
  // Miscelaneous options
1369
1376
  hub.setTag("custom-error-handler", !!errorHandler);
1370
1377
  hub.setTag("sourcemaps-assets", !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.assets));
1371
- hub.setTag("delete-after-upload", !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.deleteFilesAfterUpload));
1378
+ hub.setTag("delete-after-upload", !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.deleteFilesAfterUpload) || !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.filesToDeleteAfterUpload));
1372
1379
  hub.setTag("node", process.version);
1373
1380
  hub.setTag("platform", process.platform);
1374
1381
  hub.setTags({
@@ -1500,7 +1507,7 @@ function sentryUnpluginFactory(_ref) {
1500
1507
  });
1501
1508
 
1502
1509
  // Set the User-Agent that Sentry CLI will use when interacting with Sentry
1503
- process.env["SENTRY_PIPELINE"] = "".concat(unpluginMetaContext.framework, "-plugin/", "2.2.1");
1510
+ process.env["SENTRY_PIPELINE"] = "".concat(unpluginMetaContext.framework, "-plugin/", "2.3.0");
1504
1511
  function handleRecoverableError(unknownError) {
1505
1512
  sentrySession.status = "abnormal";
1506
1513
  try {
@@ -1580,6 +1587,7 @@ function sentryUnpluginFactory(_ref) {
1580
1587
  }
1581
1588
  }));
1582
1589
  }
1590
+ plugins.push(debugIdInjectionPlugin());
1583
1591
  if (!options.authToken) {
1584
1592
  logger.warn("No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/");
1585
1593
  } else if (!options.org) {
@@ -1587,17 +1595,16 @@ function sentryUnpluginFactory(_ref) {
1587
1595
  } else if (!options.project) {
1588
1596
  logger.warn("No project provided. Will not upload source maps. Please set the `project` option to your Sentry project slug.");
1589
1597
  } else {
1590
- var _options$sourcemaps, _options$sourcemaps2, _options$sourcemaps3, _options$sourcemaps4;
1591
- plugins.push(debugIdInjectionPlugin());
1598
+ var _options$sourcemaps, _options$sourcemaps2, _options$sourcemaps$f, _options$sourcemaps3, _options$sourcemaps4, _options$sourcemaps5;
1592
1599
  plugins.push(debugIdUploadPlugin(createDebugIdUploadFunction({
1593
1600
  assets: (_options$sourcemaps = options.sourcemaps) === null || _options$sourcemaps === void 0 ? void 0 : _options$sourcemaps.assets,
1594
1601
  ignore: (_options$sourcemaps2 = options.sourcemaps) === null || _options$sourcemaps2 === void 0 ? void 0 : _options$sourcemaps2.ignore,
1595
- deleteFilesAfterUpload: (_options$sourcemaps3 = options.sourcemaps) === null || _options$sourcemaps3 === void 0 ? void 0 : _options$sourcemaps3.deleteFilesAfterUpload,
1602
+ filesToDeleteAfterUpload: (_options$sourcemaps$f = (_options$sourcemaps3 = options.sourcemaps) === null || _options$sourcemaps3 === void 0 ? void 0 : _options$sourcemaps3.filesToDeleteAfterUpload) !== null && _options$sourcemaps$f !== void 0 ? _options$sourcemaps$f : (_options$sourcemaps4 = options.sourcemaps) === null || _options$sourcemaps4 === void 0 ? void 0 : _options$sourcemaps4.deleteFilesAfterUpload,
1596
1603
  dist: options.release.dist,
1597
1604
  releaseName: options.release.name,
1598
1605
  logger: logger,
1599
1606
  handleRecoverableError: handleRecoverableError,
1600
- rewriteSourcesHook: (_options$sourcemaps4 = options.sourcemaps) === null || _options$sourcemaps4 === void 0 ? void 0 : _options$sourcemaps4.rewriteSources,
1607
+ rewriteSourcesHook: (_options$sourcemaps5 = options.sourcemaps) === null || _options$sourcemaps5 === void 0 ? void 0 : _options$sourcemaps5.rewriteSources,
1601
1608
  sentryHub: sentryHub,
1602
1609
  sentryClient: sentryClient,
1603
1610
  sentryCliOptions: {
@@ -1703,7 +1710,7 @@ function createRollupDebugIdInjectionHooks() {
1703
1710
  // As an additional complication `"use strict";`s may come after any number of comments.
1704
1711
  var commentUseStrictRegex =
1705
1712
  // Note: CodeQL complains that this regex potentially has n^2 runtime. This likely won't affect realistic files.
1706
- /^(?:\s*|\/\*(?:.|\r|\n)*\*\/|\/\/.*[\n\r])*(?:"[^"]*";|'[^']*';)?/;
1713
+ /^(?:\s*|\/\*(?:.|\r|\n)*?\*\/|\/\/.*[\n\r])*(?:"[^"]*";|'[^']*';)?/;
1707
1714
  var match = (_code$match = code.match(commentUseStrictRegex)) === null || _code$match === void 0 ? void 0 : _code$match[0];
1708
1715
  if (match) {
1709
1716
  // Add injected code after any comments or "use strict" at the beginning of the bundle.
@@ -1784,4 +1791,5 @@ exports.getBuildInformation = getBuildInformation;
1784
1791
  exports.getDebugIdSnippet = getDebugIdSnippet;
1785
1792
  exports.sentryCliBinaryExists = sentryCliBinaryExists;
1786
1793
  exports.sentryUnpluginFactory = sentryUnpluginFactory;
1794
+ exports.stringToUUID = stringToUUID;
1787
1795
  //# sourceMappingURL=index.js.map