@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 +55 -47
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.mjs +55 -48
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/debug-id-upload.d.ts +2 -2
- package/dist/types/debug-id-upload.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/options-mapping.d.ts +1 -0
- package/dist/types/options-mapping.d.ts.map +1 -1
- package/dist/types/sentry/telemetry.d.ts.map +1 -1
- package/dist/types/types.d.ts +10 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +3 -3
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
|
-
|
|
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,
|
|
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: (
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
757
|
+
_context2.next = 43;
|
|
752
758
|
break;
|
|
753
|
-
case
|
|
759
|
+
case 20:
|
|
754
760
|
if (!(debugIdChunkFilePaths.length === 0)) {
|
|
755
|
-
_context2.next =
|
|
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 =
|
|
765
|
+
_context2.next = 43;
|
|
760
766
|
break;
|
|
761
|
-
case
|
|
767
|
+
case 24:
|
|
762
768
|
prepareSpan = artifactBundleUploadTransaction.startChild({
|
|
763
769
|
description: "prepare-bundles"
|
|
764
770
|
});
|
|
765
|
-
_context2.next =
|
|
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
|
|
789
|
+
case 27:
|
|
784
790
|
prepareSpan.finish();
|
|
785
|
-
_context2.next =
|
|
791
|
+
_context2.next = 30;
|
|
786
792
|
return fs__default["default"].promises.readdir(tmpUploadFolder);
|
|
787
|
-
case
|
|
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 =
|
|
798
|
+
_context2.next = 34;
|
|
793
799
|
return Promise.all(stats);
|
|
794
|
-
case
|
|
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 =
|
|
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
|
-
|
|
826
|
-
|
|
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 =
|
|
833
|
-
return glob.glob(
|
|
839
|
+
_context2.next = 47;
|
|
840
|
+
return glob.glob(filesToDeleteAfterUpload, {
|
|
834
841
|
absolute: true,
|
|
835
842
|
nodir: true
|
|
836
843
|
});
|
|
837
|
-
case
|
|
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 =
|
|
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
|
|
859
|
+
case 53:
|
|
853
860
|
deleteSpan.finish();
|
|
854
|
-
case 52:
|
|
855
|
-
_context2.next = 58;
|
|
856
|
-
break;
|
|
857
861
|
case 54:
|
|
858
|
-
_context2.
|
|
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
|
|
866
|
-
_context2.prev =
|
|
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 =
|
|
885
|
+
_context2.next = 65;
|
|
879
886
|
return sentryClient.flush();
|
|
880
|
-
case
|
|
881
|
-
return _context2.finish(
|
|
882
|
-
case
|
|
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,
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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$
|
|
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)
|
|
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
|