From 0b6ad5762190a5250df0e80d4e32e0941e24048e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Og=C3=B3rek?= Date: Wed, 26 Aug 2020 13:08:59 +0200 Subject: [PATCH 1/3] build: Lock in TypeScript to 3.7.5 --- package.json | 2 +- packages/angular/package.json | 2 +- packages/apm/package.json | 2 +- packages/browser/package.json | 2 +- packages/core/package.json | 2 +- packages/ember/package.json | 2 +- packages/eslint-config-sdk/package.json | 2 +- packages/eslint-plugin-sdk/package.json | 2 +- packages/gatsby/package.json | 2 +- packages/hub/package.json | 2 +- packages/integrations/package.json | 2 +- packages/minimal/package.json | 2 +- packages/node/package.json | 2 +- packages/react/package.json | 2 +- packages/tracing/package.json | 2 +- packages/types/package.json | 2 +- packages/typescript/package.json | 2 +- packages/utils/package.json | 2 +- yarn.lock | 8 ++++---- 19 files changed, 22 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 7754427f432b..4027ab960460 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "size-limit": "^4.5.5", "ts-jest": "^24.0.2", "typedoc": "^0.18.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "resolutions": { "**/agent-base": "5" diff --git a/packages/angular/package.json b/packages/angular/package.json index b5a6f4df3421..52e59455d2d1 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -31,7 +31,7 @@ "npm-run-all": "^4.1.2", "prettier": "1.17.0", "rimraf": "^2.6.3", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/packages/apm/package.json b/packages/apm/package.json index 7e93d3bb3015..3293ef985b82 100644 --- a/packages/apm/package.json +++ b/packages/apm/package.json @@ -37,7 +37,7 @@ "rollup-plugin-node-resolve": "^4.2.3", "rollup-plugin-terser": "^4.0.4", "rollup-plugin-typescript2": "^0.21.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm build:bundle", diff --git a/packages/browser/package.json b/packages/browser/package.json index 356496497566..2e44f52f0dd6 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -51,7 +51,7 @@ "rollup-plugin-terser": "^4.0.4", "rollup-plugin-typescript2": "^0.21.0", "sinon": "^7.3.2", - "typescript": "3.9.7", + "typescript": "3.7.5", "webpack": "^4.30.0" }, "scripts": { diff --git a/packages/core/package.json b/packages/core/package.json index ae2eaa4793f7..85022d4918a0 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -29,7 +29,7 @@ "npm-run-all": "^4.1.2", "prettier": "1.17.0", "rimraf": "^2.6.3", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/packages/ember/package.json b/packages/ember/package.json index b926242d6613..e8a2021caf9c 100644 --- a/packages/ember/package.json +++ b/packages/ember/package.json @@ -75,7 +75,7 @@ "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", "qunit-dom": "^1.2.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "engines": { "node": "10.* || >= 12" diff --git a/packages/eslint-config-sdk/package.json b/packages/eslint-config-sdk/package.json index 227bab180eee..31e6f5200b43 100644 --- a/packages/eslint-config-sdk/package.json +++ b/packages/eslint-config-sdk/package.json @@ -34,7 +34,7 @@ }, "devDependencies": { "eslint": "7.6.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "link:yarn": "yarn link", diff --git a/packages/eslint-plugin-sdk/package.json b/packages/eslint-plugin-sdk/package.json index 77275768de42..e2e93353eae6 100644 --- a/packages/eslint-plugin-sdk/package.json +++ b/packages/eslint-plugin-sdk/package.json @@ -24,7 +24,7 @@ "devDependencies": { "mocha": "^6.2.0", "prettier": "1.17.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "link:yarn": "yarn link", diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index fd0d455e1e04..844c45ad1239 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -41,7 +41,7 @@ "prettier": "1.17.0", "react": "^16.13.1", "rimraf": "^2.6.3", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/packages/hub/package.json b/packages/hub/package.json index 7caa324098b4..013c390382da 100644 --- a/packages/hub/package.json +++ b/packages/hub/package.json @@ -27,7 +27,7 @@ "npm-run-all": "^4.1.2", "prettier": "1.17.0", "rimraf": "^2.6.3", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/packages/integrations/package.json b/packages/integrations/package.json index f857a392e7c3..236e0f8c7128 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -34,7 +34,7 @@ "rollup-plugin-node-resolve": "^4.2.3", "rollup-plugin-terser": "^4.0.4", "rollup-plugin-typescript2": "^0.21.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm build:bundle", diff --git a/packages/minimal/package.json b/packages/minimal/package.json index 6244ca374b09..bc9834aee8ab 100644 --- a/packages/minimal/package.json +++ b/packages/minimal/package.json @@ -27,7 +27,7 @@ "npm-run-all": "^4.1.2", "prettier": "1.17.0", "rimraf": "^2.6.3", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/packages/node/package.json b/packages/node/package.json index 7cefb4117e1e..9cb5f6370042 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -38,7 +38,7 @@ "npm-run-all": "^4.1.2", "prettier": "1.17.0", "rimraf": "^2.6.3", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/packages/react/package.json b/packages/react/package.json index 2f820a1f0c30..30d4f6ea1c4f 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -55,7 +55,7 @@ "react-test-renderer": "^16.13.1", "redux": "^4.0.5", "rimraf": "^2.6.3", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/packages/tracing/package.json b/packages/tracing/package.json index 3b0b2b01ed54..6b2e2c1602c5 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -39,7 +39,7 @@ "rollup-plugin-node-resolve": "^4.2.3", "rollup-plugin-terser": "^4.0.4", "rollup-plugin-typescript2": "^0.21.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm build:bundle", diff --git a/packages/types/package.json b/packages/types/package.json index 8aae1de8e0c8..24cf8e70889f 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -20,7 +20,7 @@ "eslint": "7.6.0", "npm-run-all": "^4.1.2", "prettier": "1.17.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/packages/typescript/package.json b/packages/typescript/package.json index 31b0030ad337..ec218b5d8922 100644 --- a/packages/typescript/package.json +++ b/packages/typescript/package.json @@ -16,7 +16,7 @@ }, "peerDependencies": { "tslint": "5.16.0", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "link:yarn": "yarn link", diff --git a/packages/utils/package.json b/packages/utils/package.json index d9a13743a1f5..5e0e8b3fd5ec 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -27,7 +27,7 @@ "npm-run-all": "^4.1.2", "prettier": "1.17.0", "rimraf": "^2.6.3", - "typescript": "3.9.7" + "typescript": "3.7.5" }, "scripts": { "build": "run-p build:es5 build:esm", diff --git a/yarn.lock b/yarn.lock index 8444f26d6d98..f30ba4ebaef4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17930,10 +17930,10 @@ typescript-memoize@^1.0.0-alpha.3: dependencies: core-js "2.4.1" -typescript@3.9.7: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +typescript@3.7.5: + version "3.7.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae" + integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw== ua-parser-js@^0.7.18: version "0.7.21" From d6ce28dc979f99472fb73a51044c4c3f6922d05d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Og=C3=B3rek?= Date: Wed, 26 Aug 2020 13:35:41 +0200 Subject: [PATCH 2/3] build: Prevent anyone from ever changing typescript version --- package.json | 2 +- scripts/verify-packages-versions.js | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 scripts/verify-packages-versions.js diff --git a/package.json b/package.json index 4027ab960460..9f540dff5f69 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "scripts": { - "build": "lerna run --stream --concurrency 1 --sort build", + "build": "node ./scripts/verify-packages-versions.js && lerna run --stream --concurrency 1 --sort build", "build:es5": "lerna run --stream --concurrency 1 --sort build:es5", "build:esm": "lerna run --stream --concurrency 1 --sort build:esm", "build:watch": "lerna run build:watch --stream --no-sort --concurrency 9999", diff --git a/scripts/verify-packages-versions.js b/scripts/verify-packages-versions.js new file mode 100644 index 000000000000..fb6a6e95ec7f --- /dev/null +++ b/scripts/verify-packages-versions.js @@ -0,0 +1,27 @@ +const pkg = require('../package.json'); + +const TYPESCRIPT_VERSION = '3.7.5'; + +if (pkg.devDependencies.typescript !== TYPESCRIPT_VERSION) { + console.error(` +[INCORRECT PACKAGE VERSION]: Expected TypeScript v${TYPESCRIPT_VERSION}, got v${pkg.devDependencies.typescript} + +Starting version 3.9, TypeScript emits module exports using \`Object.defineProperty\`, +with \`configurable: false\`, instead of \`exports.thing = module.thing;\` as it always used to do. +This means, that any object mutation after the initial compilation are impossible and makes +the package slightly less open for modifications, and prevent users from experimenting with it, +and from implementing some of their scenarios. + +If you REALLY know what you are doing, and you REALLY want to use a different version of TypeScript, +modify \`TYPESCRIPT_VERSION\` constant at the top of this file. + +change: https://github.com/getsentry/sentry-javascript/pull/2848 +ref: https://github.com/getsentry/sentry-javascript/issues/2845 +ref: https://twitter.com/wesleytodd/status/1297974661574262784 + +"Never upgrade a TypeScript version without a major package bump. Just don't." — Kamil +`); + process.exit(1); +} + +process.exit(0); From a137a364867cd9259cae6216584309280c429959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Og=C3=B3rek?= Date: Wed, 26 Aug 2020 14:06:59 +0200 Subject: [PATCH 3/3] fix: Force SinonStub to work --- packages/browser/test/unit/transports/fetch.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/browser/test/unit/transports/fetch.test.ts b/packages/browser/test/unit/transports/fetch.test.ts index 439941d80533..012d98166dd6 100644 --- a/packages/browser/test/unit/transports/fetch.test.ts +++ b/packages/browser/test/unit/transports/fetch.test.ts @@ -18,7 +18,7 @@ let transport: Transports.BaseTransport; describe('FetchTransport', () => { beforeEach(() => { - fetch = stub(window, 'fetch'); + fetch = (stub(window, 'fetch') as unknown) as SinonStub; transport = new Transports.FetchTransport({ dsn: testDsn }); });