@sentry/bundler-plugin-core 2.10.2 → 2.10.3

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
@@ -730,6 +730,200 @@ function validateOptions(options, logger) {
730
730
  return true;
731
731
  }
732
732
 
733
+ var SENTRY_SAAS_HOSTNAME = "sentry.io";
734
+ function createSentryInstance(options, shouldSendTelemetry, bundler) {
735
+ var client = new node.NodeClient({
736
+ dsn: "https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737",
737
+ tracesSampleRate: 1,
738
+ sampleRate: 1,
739
+ release: "2.10.3",
740
+ integrations: [],
741
+ tracePropagationTargets: ["sentry.io/api"],
742
+ stackParser: node.defaultStackParser,
743
+ beforeSend: function beforeSend(event) {
744
+ var _event$exception, _event$exception$valu;
745
+ (_event$exception = event.exception) === null || _event$exception === void 0 ? void 0 : (_event$exception$valu = _event$exception.values) === null || _event$exception$valu === void 0 ? void 0 : _event$exception$valu.forEach(function (exception) {
746
+ delete exception.stacktrace;
747
+ });
748
+ delete event.server_name; // Server name might contain PII
749
+ return event;
750
+ },
751
+ beforeSendTransaction: function beforeSendTransaction(event) {
752
+ delete event.server_name; // Server name might contain PII
753
+ return event;
754
+ },
755
+ // We create a transport that stalls sending events until we know that we're allowed to (i.e. when Sentry CLI told
756
+ // us that the upload URL is the Sentry SaaS URL)
757
+ transport: function transport(nodeTransportOptions) {
758
+ var nodeTransport = node.makeNodeTransport(nodeTransportOptions);
759
+ return {
760
+ flush: function flush(timeout) {
761
+ return nodeTransport.flush(timeout);
762
+ },
763
+ send: function () {
764
+ var _send = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
765
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
766
+ while (1) switch (_context.prev = _context.next) {
767
+ case 0:
768
+ _context.next = 2;
769
+ return shouldSendTelemetry;
770
+ case 2:
771
+ if (!_context.sent) {
772
+ _context.next = 6;
773
+ break;
774
+ }
775
+ return _context.abrupt("return", nodeTransport.send(request));
776
+ case 6:
777
+ return _context.abrupt("return", undefined);
778
+ case 7:
779
+ case "end":
780
+ return _context.stop();
781
+ }
782
+ }, _callee);
783
+ }));
784
+ function send(_x) {
785
+ return _send.apply(this, arguments);
786
+ }
787
+ return send;
788
+ }()
789
+ };
790
+ }
791
+ });
792
+ var hub = new node.Hub(client);
793
+ setTelemetryDataOnHub(options, hub, bundler);
794
+ return {
795
+ sentryHub: hub,
796
+ sentryClient: client
797
+ };
798
+ }
799
+ function setTelemetryDataOnHub(options, hub, bundler) {
800
+ var org = options.org,
801
+ project = options.project,
802
+ release = options.release,
803
+ errorHandler = options.errorHandler,
804
+ sourcemaps = options.sourcemaps;
805
+ hub.setTag("upload-legacy-sourcemaps", !!release.uploadLegacySourcemaps);
806
+ if (release.uploadLegacySourcemaps) {
807
+ hub.setTag("uploadLegacySourcemapsEntries", Array.isArray(release.uploadLegacySourcemaps) ? release.uploadLegacySourcemaps.length : 1);
808
+ }
809
+ hub.setTag("module-metadata", !!options._experiments.moduleMetadata);
810
+ hub.setTag("inject-build-information", !!options._experiments.injectBuildInformation);
811
+
812
+ // Optional release pipeline steps
813
+ hub.setTag("clean-artifacts", release.cleanArtifacts);
814
+ if (release.setCommits) {
815
+ hub.setTag("set-commits", release.setCommits.auto === true ? "auto" : "manual");
816
+ } else {
817
+ hub.setTag("set-commits", "undefined");
818
+ }
819
+ hub.setTag("finalize-release", release.finalize);
820
+ hub.setTag("deploy-options", !!release.deploy);
821
+
822
+ // Miscelaneous options
823
+ hub.setTag("custom-error-handler", !!errorHandler);
824
+ hub.setTag("sourcemaps-assets", !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.assets));
825
+ hub.setTag("delete-after-upload", !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.deleteFilesAfterUpload) || !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.filesToDeleteAfterUpload));
826
+ hub.setTag("node", process.version);
827
+ hub.setTag("platform", process.platform);
828
+ hub.setTags({
829
+ organization: org,
830
+ project: project,
831
+ bundler: bundler
832
+ });
833
+ hub.setUser({
834
+ id: org
835
+ });
836
+ }
837
+ function allowedToSendTelemetry(_x2) {
838
+ return _allowedToSendTelemetry.apply(this, arguments);
839
+ }
840
+
841
+ /**
842
+ * Flushing the SDK client can fail. We never want to crash the plugin because of telemetry.
843
+ */
844
+ function _allowedToSendTelemetry() {
845
+ _allowedToSendTelemetry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(options) {
846
+ var _cliInfo$split$, _cliInfo$split$$repla;
847
+ var silent, org, project, authToken, url, headers, telemetry, release, cli, cliInfo, cliInfoUrl;
848
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
849
+ while (1) switch (_context2.prev = _context2.next) {
850
+ case 0:
851
+ silent = options.silent, org = options.org, project = options.project, authToken = options.authToken, url = options.url, headers = options.headers, telemetry = options.telemetry, release = options.release; // `options.telemetry` defaults to true
852
+ if (!(telemetry === false)) {
853
+ _context2.next = 3;
854
+ break;
855
+ }
856
+ return _context2.abrupt("return", false);
857
+ case 3:
858
+ if (!(url === SENTRY_SAAS_URL)) {
859
+ _context2.next = 5;
860
+ break;
861
+ }
862
+ return _context2.abrupt("return", true);
863
+ case 5:
864
+ cli = new SentryCli__default["default"](null, {
865
+ url: url,
866
+ authToken: authToken,
867
+ org: org,
868
+ project: project,
869
+ vcsRemote: release.vcsRemote,
870
+ silent: silent,
871
+ headers: headers
872
+ });
873
+ _context2.prev = 6;
874
+ _context2.next = 9;
875
+ return cli.execute(["info"], false);
876
+ case 9:
877
+ cliInfo = _context2.sent;
878
+ _context2.next = 15;
879
+ break;
880
+ case 12:
881
+ _context2.prev = 12;
882
+ _context2.t0 = _context2["catch"](6);
883
+ return _context2.abrupt("return", false);
884
+ case 15:
885
+ cliInfoUrl = (_cliInfo$split$ = cliInfo.split(/(\r\n|\n|\r)/)[0]) === null || _cliInfo$split$ === void 0 ? void 0 : (_cliInfo$split$$repla = _cliInfo$split$.replace(/^Sentry Server: /, "")) === null || _cliInfo$split$$repla === void 0 ? void 0 : _cliInfo$split$$repla.trim();
886
+ if (!(cliInfoUrl === undefined)) {
887
+ _context2.next = 18;
888
+ break;
889
+ }
890
+ return _context2.abrupt("return", false);
891
+ case 18:
892
+ return _context2.abrupt("return", new URL(cliInfoUrl).hostname === SENTRY_SAAS_HOSTNAME);
893
+ case 19:
894
+ case "end":
895
+ return _context2.stop();
896
+ }
897
+ }, _callee2, null, [[6, 12]]);
898
+ }));
899
+ return _allowedToSendTelemetry.apply(this, arguments);
900
+ }
901
+ function safeFlushTelemetry(_x3) {
902
+ return _safeFlushTelemetry.apply(this, arguments);
903
+ }
904
+ function _safeFlushTelemetry() {
905
+ _safeFlushTelemetry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(sentryClient) {
906
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
907
+ while (1) switch (_context3.prev = _context3.next) {
908
+ case 0:
909
+ _context3.prev = 0;
910
+ _context3.next = 3;
911
+ return sentryClient.flush(2000);
912
+ case 3:
913
+ _context3.next = 7;
914
+ break;
915
+ case 5:
916
+ _context3.prev = 5;
917
+ _context3.t0 = _context3["catch"](0);
918
+ case 7:
919
+ case "end":
920
+ return _context3.stop();
921
+ }
922
+ }, _callee3, null, [[0, 5]]);
923
+ }));
924
+ return _safeFlushTelemetry.apply(this, arguments);
925
+ }
926
+
733
927
  function createDebugIdUploadFunction(_ref) {
734
928
  var assets = _ref.assets,
735
929
  ignore = _ref.ignore,
@@ -954,7 +1148,7 @@ function createDebugIdUploadFunction(_ref) {
954
1148
  }
955
1149
  artifactBundleUploadTransaction.finish();
956
1150
  _context3.next = 69;
957
- return sentryClient.flush();
1151
+ return safeFlushTelemetry(sentryClient);
958
1152
  case 69:
959
1153
  return _context3.finish(64);
960
1154
  case 70:
@@ -1285,7 +1479,7 @@ function releaseManagementPlugin(_ref) {
1285
1479
  _context.t0 = _context["catch"](0);
1286
1480
  sentryHub.captureException('Error in "releaseManagementPlugin" writeBundle hook');
1287
1481
  _context.next = 28;
1288
- return sentryClient.flush();
1482
+ return safeFlushTelemetry(sentryClient);
1289
1483
  case 28:
1290
1484
  handleRecoverableError(_context.t0);
1291
1485
  case 29:
@@ -1322,7 +1516,7 @@ function telemetryPlugin(_ref) {
1322
1516
  name: "Sentry Bundler Plugin execution"
1323
1517
  }).finish();
1324
1518
  _context.next = 7;
1325
- return sentryClient.flush(3000);
1519
+ return safeFlushTelemetry(sentryClient);
1326
1520
  case 7:
1327
1521
  case "end":
1328
1522
  return _context.stop();
@@ -1378,171 +1572,6 @@ function createLogger(options) {
1378
1572
  };
1379
1573
  }
1380
1574
 
1381
- var SENTRY_SAAS_HOSTNAME = "sentry.io";
1382
- function createSentryInstance(options, shouldSendTelemetry, bundler) {
1383
- var client = new node.NodeClient({
1384
- dsn: "https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737",
1385
- tracesSampleRate: 1,
1386
- sampleRate: 1,
1387
- release: "2.10.2",
1388
- integrations: [],
1389
- tracePropagationTargets: ["sentry.io/api"],
1390
- stackParser: node.defaultStackParser,
1391
- beforeSend: function beforeSend(event) {
1392
- var _event$exception, _event$exception$valu;
1393
- (_event$exception = event.exception) === null || _event$exception === void 0 ? void 0 : (_event$exception$valu = _event$exception.values) === null || _event$exception$valu === void 0 ? void 0 : _event$exception$valu.forEach(function (exception) {
1394
- delete exception.stacktrace;
1395
- });
1396
- delete event.server_name; // Server name might contain PII
1397
- return event;
1398
- },
1399
- beforeSendTransaction: function beforeSendTransaction(event) {
1400
- delete event.server_name; // Server name might contain PII
1401
- return event;
1402
- },
1403
- // We create a transport that stalls sending events until we know that we're allowed to (i.e. when Sentry CLI told
1404
- // us that the upload URL is the Sentry SaaS URL)
1405
- transport: function transport(nodeTransportOptions) {
1406
- var nodeTransport = node.makeNodeTransport(nodeTransportOptions);
1407
- return {
1408
- flush: function flush(timeout) {
1409
- return nodeTransport.flush(timeout);
1410
- },
1411
- send: function () {
1412
- var _send = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
1413
- return _regeneratorRuntime().wrap(function _callee$(_context) {
1414
- while (1) switch (_context.prev = _context.next) {
1415
- case 0:
1416
- _context.next = 2;
1417
- return shouldSendTelemetry;
1418
- case 2:
1419
- if (!_context.sent) {
1420
- _context.next = 6;
1421
- break;
1422
- }
1423
- return _context.abrupt("return", nodeTransport.send(request));
1424
- case 6:
1425
- return _context.abrupt("return", undefined);
1426
- case 7:
1427
- case "end":
1428
- return _context.stop();
1429
- }
1430
- }, _callee);
1431
- }));
1432
- function send(_x) {
1433
- return _send.apply(this, arguments);
1434
- }
1435
- return send;
1436
- }()
1437
- };
1438
- }
1439
- });
1440
- var hub = new node.Hub(client);
1441
- setTelemetryDataOnHub(options, hub, bundler);
1442
- return {
1443
- sentryHub: hub,
1444
- sentryClient: client
1445
- };
1446
- }
1447
- function setTelemetryDataOnHub(options, hub, bundler) {
1448
- var org = options.org,
1449
- project = options.project,
1450
- release = options.release,
1451
- errorHandler = options.errorHandler,
1452
- sourcemaps = options.sourcemaps;
1453
- hub.setTag("upload-legacy-sourcemaps", !!release.uploadLegacySourcemaps);
1454
- if (release.uploadLegacySourcemaps) {
1455
- hub.setTag("uploadLegacySourcemapsEntries", Array.isArray(release.uploadLegacySourcemaps) ? release.uploadLegacySourcemaps.length : 1);
1456
- }
1457
- hub.setTag("module-metadata", !!options._experiments.moduleMetadata);
1458
- hub.setTag("inject-build-information", !!options._experiments.injectBuildInformation);
1459
-
1460
- // Optional release pipeline steps
1461
- hub.setTag("clean-artifacts", release.cleanArtifacts);
1462
- if (release.setCommits) {
1463
- hub.setTag("set-commits", release.setCommits.auto === true ? "auto" : "manual");
1464
- } else {
1465
- hub.setTag("set-commits", "undefined");
1466
- }
1467
- hub.setTag("finalize-release", release.finalize);
1468
- hub.setTag("deploy-options", !!release.deploy);
1469
-
1470
- // Miscelaneous options
1471
- hub.setTag("custom-error-handler", !!errorHandler);
1472
- hub.setTag("sourcemaps-assets", !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.assets));
1473
- hub.setTag("delete-after-upload", !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.deleteFilesAfterUpload) || !!(sourcemaps !== null && sourcemaps !== void 0 && sourcemaps.filesToDeleteAfterUpload));
1474
- hub.setTag("node", process.version);
1475
- hub.setTag("platform", process.platform);
1476
- hub.setTags({
1477
- organization: org,
1478
- project: project,
1479
- bundler: bundler
1480
- });
1481
- hub.setUser({
1482
- id: org
1483
- });
1484
- }
1485
- function allowedToSendTelemetry(_x2) {
1486
- return _allowedToSendTelemetry.apply(this, arguments);
1487
- }
1488
- function _allowedToSendTelemetry() {
1489
- _allowedToSendTelemetry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(options) {
1490
- var _cliInfo$split$, _cliInfo$split$$repla;
1491
- var silent, org, project, authToken, url, headers, telemetry, release, cli, cliInfo, cliInfoUrl;
1492
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1493
- while (1) switch (_context2.prev = _context2.next) {
1494
- case 0:
1495
- silent = options.silent, org = options.org, project = options.project, authToken = options.authToken, url = options.url, headers = options.headers, telemetry = options.telemetry, release = options.release; // `options.telemetry` defaults to true
1496
- if (!(telemetry === false)) {
1497
- _context2.next = 3;
1498
- break;
1499
- }
1500
- return _context2.abrupt("return", false);
1501
- case 3:
1502
- if (!(url === SENTRY_SAAS_URL)) {
1503
- _context2.next = 5;
1504
- break;
1505
- }
1506
- return _context2.abrupt("return", true);
1507
- case 5:
1508
- cli = new SentryCli__default["default"](null, {
1509
- url: url,
1510
- authToken: authToken,
1511
- org: org,
1512
- project: project,
1513
- vcsRemote: release.vcsRemote,
1514
- silent: silent,
1515
- headers: headers
1516
- });
1517
- _context2.prev = 6;
1518
- _context2.next = 9;
1519
- return cli.execute(["info"], false);
1520
- case 9:
1521
- cliInfo = _context2.sent;
1522
- _context2.next = 15;
1523
- break;
1524
- case 12:
1525
- _context2.prev = 12;
1526
- _context2.t0 = _context2["catch"](6);
1527
- return _context2.abrupt("return", false);
1528
- case 15:
1529
- cliInfoUrl = (_cliInfo$split$ = cliInfo.split(/(\r\n|\n|\r)/)[0]) === null || _cliInfo$split$ === void 0 ? void 0 : (_cliInfo$split$$repla = _cliInfo$split$.replace(/^Sentry Server: /, "")) === null || _cliInfo$split$$repla === void 0 ? void 0 : _cliInfo$split$$repla.trim();
1530
- if (!(cliInfoUrl === undefined)) {
1531
- _context2.next = 18;
1532
- break;
1533
- }
1534
- return _context2.abrupt("return", false);
1535
- case 18:
1536
- return _context2.abrupt("return", new URL(cliInfoUrl).hostname === SENTRY_SAAS_HOSTNAME);
1537
- case 19:
1538
- case "end":
1539
- return _context2.stop();
1540
- }
1541
- }, _callee2, null, [[6, 12]]);
1542
- }));
1543
- return _allowedToSendTelemetry.apply(this, arguments);
1544
- }
1545
-
1546
1575
  /**
1547
1576
  * The sentry bundler plugin concerns itself with two things:
1548
1577
  * - Release injection
@@ -1617,7 +1646,7 @@ function sentryUnpluginFactory(_ref) {
1617
1646
  });
1618
1647
 
1619
1648
  // Set the User-Agent that Sentry CLI will use when interacting with Sentry
1620
- process.env["SENTRY_PIPELINE"] = "".concat(unpluginMetaContext.framework, "-plugin/", "2.10.2");
1649
+ process.env["SENTRY_PIPELINE"] = "".concat(unpluginMetaContext.framework, "-plugin/", "2.10.3");
1621
1650
  function handleRecoverableError(unknownError) {
1622
1651
  sentrySession.status = "abnormal";
1623
1652
  try {