From c395e4c4f1074c19b7eb9b1ca830dee149376ba1 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 6 Mar 2023 16:51:21 +0100 Subject: [PATCH 01/12] ref(tracing): Re-organize exports for node/browser --- packages/tracing/package.json | 2 +- packages/tracing/src/browser/index.ts | 2 ++ packages/tracing/src/exports/index.ts | 15 ++++++++++ packages/tracing/src/extensions.ts | 8 ++--- packages/tracing/src/index.ts | 29 ++++++------------- packages/tracing/src/integrations/index.ts | 11 ------- packages/tracing/src/node/index.ts | 13 +++++++++ .../node => node/integrations}/apollo.ts | 2 ++ .../node => node/integrations}/express.ts | 0 .../node => node/integrations}/graphql.ts | 0 .../node => node/integrations}/mongo.ts | 0 .../node => node/integrations}/mysql.ts | 0 .../node => node/integrations}/postgres.ts | 0 .../node => node/integrations}/prisma.ts | 0 .../integrations}/utils/node-utils.ts | 1 + 15 files changed, 47 insertions(+), 36 deletions(-) create mode 100644 packages/tracing/src/exports/index.ts delete mode 100644 packages/tracing/src/integrations/index.ts create mode 100644 packages/tracing/src/node/index.ts rename packages/tracing/src/{integrations/node => node/integrations}/apollo.ts (98%) rename packages/tracing/src/{integrations/node => node/integrations}/express.ts (100%) rename packages/tracing/src/{integrations/node => node/integrations}/graphql.ts (100%) rename packages/tracing/src/{integrations/node => node/integrations}/mongo.ts (100%) rename packages/tracing/src/{integrations/node => node/integrations}/mysql.ts (100%) rename packages/tracing/src/{integrations/node => node/integrations}/postgres.ts (100%) rename packages/tracing/src/{integrations/node => node/integrations}/prisma.ts (100%) rename packages/tracing/src/{integrations/node => node/integrations}/utils/node-utils.ts (87%) diff --git a/packages/tracing/package.json b/packages/tracing/package.json index 8188cb842f5e..24870fadcdd3 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -1,7 +1,7 @@ { "name": "@sentry/tracing", "version": "7.41.0", - "description": "Extensions for Sentry AM", + "description": "Sentry Performance Monitoring Package", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/tracing", "author": "Sentry", diff --git a/packages/tracing/src/browser/index.ts b/packages/tracing/src/browser/index.ts index dcf4a08270fd..3ed465eea6ca 100644 --- a/packages/tracing/src/browser/index.ts +++ b/packages/tracing/src/browser/index.ts @@ -1,3 +1,5 @@ +export * from '../exports'; + export type { RequestInstrumentationOptions } from './request'; export { BrowserTracing, BROWSER_TRACING_INTEGRATION_ID } from './browsertracing'; diff --git a/packages/tracing/src/exports/index.ts b/packages/tracing/src/exports/index.ts new file mode 100644 index 000000000000..12c6e451e5a5 --- /dev/null +++ b/packages/tracing/src/exports/index.ts @@ -0,0 +1,15 @@ +export { + extractTraceparentData, + getActiveTransaction, + hasTracingEnabled, + IdleTransaction, + Span, + // eslint-disable-next-line deprecation/deprecation + SpanStatus, + spanStatusfromHttpCode, + startIdleTransaction, + stripUrlQueryAndFragment, + TRACEPARENT_REGEXP, + Transaction, +} from '@sentry/core'; +export type { SpanStatusType } from '@sentry/core'; diff --git a/packages/tracing/src/extensions.ts b/packages/tracing/src/extensions.ts index d6c0298dbbd7..e3c2ab511804 100644 --- a/packages/tracing/src/extensions.ts +++ b/packages/tracing/src/extensions.ts @@ -15,25 +15,25 @@ function _autoloadDatabaseIntegrations(): void { const packageToIntegrationMapping: Record Integration> = { mongodb() { - const integration = dynamicRequire(module, './integrations/node/mongo') as { + const integration = dynamicRequire(module, './node/integrations/mongo') as { Mongo: IntegrationClass; }; return new integration.Mongo(); }, mongoose() { - const integration = dynamicRequire(module, './integrations/node/mongo') as { + const integration = dynamicRequire(module, './node/integrations/mongo') as { Mongo: IntegrationClass; }; return new integration.Mongo({ mongoose: true }); }, mysql() { - const integration = dynamicRequire(module, './integrations/node/mysql') as { + const integration = dynamicRequire(module, './node/integrations/mysql') as { Mysql: IntegrationClass; }; return new integration.Mysql(); }, pg() { - const integration = dynamicRequire(module, './integrations/node/postgres') as { + const integration = dynamicRequire(module, './node/integrations/postgres') as { Postgres: IntegrationClass; }; return new integration.Postgres(); diff --git a/packages/tracing/src/index.ts b/packages/tracing/src/index.ts index b8cb377ffdfe..25c3bfc28827 100644 --- a/packages/tracing/src/index.ts +++ b/packages/tracing/src/index.ts @@ -1,23 +1,7 @@ -export { - extractTraceparentData, - getActiveTransaction, - hasTracingEnabled, - IdleTransaction, - Span, - // eslint-disable-next-line deprecation/deprecation - SpanStatus, - spanStatusfromHttpCode, - startIdleTransaction, - stripUrlQueryAndFragment, - TRACEPARENT_REGEXP, - Transaction, -} from '@sentry/core'; -export type { SpanStatusType } from '@sentry/core'; +export * from './exports'; import { addExtensionMethods } from './extensions'; -import * as Integrations from './integrations'; - -export type { RequestInstrumentationOptions } from './browser'; +import * as Integrations from './node'; export { Integrations }; @@ -37,9 +21,14 @@ export { Integrations }; // const instance = new BrowserTracing(); // // For an example of of the new usage of BrowserTracing, see @sentry/nextjs index.client.ts -export { BrowserTracing, BROWSER_TRACING_INTEGRATION_ID } from './browser'; +export { + BrowserTracing, + BROWSER_TRACING_INTEGRATION_ID, + instrumentOutgoingRequests, + defaultRequestInstrumentationOptions, +} from './browser'; -export { instrumentOutgoingRequests, defaultRequestInstrumentationOptions } from './browser'; +export type { RequestInstrumentationOptions } from './browser'; // Treeshakable guard to remove all code related to tracing declare const __SENTRY_TRACING__: boolean; diff --git a/packages/tracing/src/integrations/index.ts b/packages/tracing/src/integrations/index.ts deleted file mode 100644 index 7522599aa4cf..000000000000 --- a/packages/tracing/src/integrations/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export { Express } from './node/express'; -export { Postgres } from './node/postgres'; -export { Mysql } from './node/mysql'; -export { Mongo } from './node/mongo'; -export { Prisma } from './node/prisma'; -export { GraphQL } from './node/graphql'; -export { Apollo } from './node/apollo'; - -// TODO(v7): Remove this export -// Please see `src/index.ts` for more details. -export { BrowserTracing } from '../browser'; diff --git a/packages/tracing/src/node/index.ts b/packages/tracing/src/node/index.ts new file mode 100644 index 000000000000..fa3a4a9352e4 --- /dev/null +++ b/packages/tracing/src/node/index.ts @@ -0,0 +1,13 @@ +export * from '../exports'; + +export { Express } from './integrations/express'; +export { Postgres } from './integrations/postgres'; +export { Mysql } from './integrations/mysql'; +export { Mongo } from './integrations/mongo'; +export { Prisma } from './integrations/prisma'; +export { GraphQL } from './integrations/graphql'; +export { Apollo } from './integrations/apollo'; + +// TODO(v7): Remove this export +// Please see `src/index.ts` for more details. +export { BrowserTracing } from '../browser'; diff --git a/packages/tracing/src/integrations/node/apollo.ts b/packages/tracing/src/node/integrations/apollo.ts similarity index 98% rename from packages/tracing/src/integrations/node/apollo.ts rename to packages/tracing/src/node/integrations/apollo.ts index 3a076444af5e..26bf5088278c 100644 --- a/packages/tracing/src/integrations/node/apollo.ts +++ b/packages/tracing/src/node/integrations/apollo.ts @@ -1,3 +1,5 @@ +/* eslint-disable @sentry-internal/sdk/no-optional-chaining */ + import type { Hub } from '@sentry/core'; import type { EventProcessor, Integration } from '@sentry/types'; import { arrayify, fill, isThenable, loadModule, logger } from '@sentry/utils'; diff --git a/packages/tracing/src/integrations/node/express.ts b/packages/tracing/src/node/integrations/express.ts similarity index 100% rename from packages/tracing/src/integrations/node/express.ts rename to packages/tracing/src/node/integrations/express.ts diff --git a/packages/tracing/src/integrations/node/graphql.ts b/packages/tracing/src/node/integrations/graphql.ts similarity index 100% rename from packages/tracing/src/integrations/node/graphql.ts rename to packages/tracing/src/node/integrations/graphql.ts diff --git a/packages/tracing/src/integrations/node/mongo.ts b/packages/tracing/src/node/integrations/mongo.ts similarity index 100% rename from packages/tracing/src/integrations/node/mongo.ts rename to packages/tracing/src/node/integrations/mongo.ts diff --git a/packages/tracing/src/integrations/node/mysql.ts b/packages/tracing/src/node/integrations/mysql.ts similarity index 100% rename from packages/tracing/src/integrations/node/mysql.ts rename to packages/tracing/src/node/integrations/mysql.ts diff --git a/packages/tracing/src/integrations/node/postgres.ts b/packages/tracing/src/node/integrations/postgres.ts similarity index 100% rename from packages/tracing/src/integrations/node/postgres.ts rename to packages/tracing/src/node/integrations/postgres.ts diff --git a/packages/tracing/src/integrations/node/prisma.ts b/packages/tracing/src/node/integrations/prisma.ts similarity index 100% rename from packages/tracing/src/integrations/node/prisma.ts rename to packages/tracing/src/node/integrations/prisma.ts diff --git a/packages/tracing/src/integrations/node/utils/node-utils.ts b/packages/tracing/src/node/integrations/utils/node-utils.ts similarity index 87% rename from packages/tracing/src/integrations/node/utils/node-utils.ts rename to packages/tracing/src/node/integrations/utils/node-utils.ts index 11f8f2430b61..37199e04f034 100644 --- a/packages/tracing/src/integrations/node/utils/node-utils.ts +++ b/packages/tracing/src/node/integrations/utils/node-utils.ts @@ -1,3 +1,4 @@ +/* eslint-disable @sentry-internal/sdk/no-optional-chaining */ import type { Hub } from '@sentry/types'; /** From 920594efaf9584e9da9146042ea56c8a4d8fb0f9 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 6 Mar 2023 17:20:48 +0100 Subject: [PATCH 02/12] fix tests --- packages/tracing/src/index.ts | 2 +- packages/tracing/src/node/index.ts | 12 +----------- packages/tracing/src/node/integrations/index.ts | 11 +++++++++++ .../tracing/test/integrations/apollo-nestjs.test.ts | 2 +- packages/tracing/test/integrations/apollo.test.ts | 2 +- packages/tracing/test/integrations/graphql.test.ts | 2 +- .../tracing/test/integrations/node/mongo.test.ts | 2 +- .../tracing/test/integrations/node/postgres.test.ts | 2 +- .../tracing/test/integrations/node/prisma.test.ts | 2 +- 9 files changed, 19 insertions(+), 18 deletions(-) create mode 100644 packages/tracing/src/node/integrations/index.ts diff --git a/packages/tracing/src/index.ts b/packages/tracing/src/index.ts index 25c3bfc28827..b8456bc6b017 100644 --- a/packages/tracing/src/index.ts +++ b/packages/tracing/src/index.ts @@ -1,7 +1,7 @@ export * from './exports'; import { addExtensionMethods } from './extensions'; -import * as Integrations from './node'; +import * as Integrations from './node/integrations'; export { Integrations }; diff --git a/packages/tracing/src/node/index.ts b/packages/tracing/src/node/index.ts index fa3a4a9352e4..eac5910c32c7 100644 --- a/packages/tracing/src/node/index.ts +++ b/packages/tracing/src/node/index.ts @@ -1,13 +1,3 @@ export * from '../exports'; -export { Express } from './integrations/express'; -export { Postgres } from './integrations/postgres'; -export { Mysql } from './integrations/mysql'; -export { Mongo } from './integrations/mongo'; -export { Prisma } from './integrations/prisma'; -export { GraphQL } from './integrations/graphql'; -export { Apollo } from './integrations/apollo'; - -// TODO(v7): Remove this export -// Please see `src/index.ts` for more details. -export { BrowserTracing } from '../browser'; +export * from './integrations'; diff --git a/packages/tracing/src/node/integrations/index.ts b/packages/tracing/src/node/integrations/index.ts new file mode 100644 index 000000000000..59d96fa20802 --- /dev/null +++ b/packages/tracing/src/node/integrations/index.ts @@ -0,0 +1,11 @@ +export { Express } from './express'; +export { Postgres } from './postgres'; +export { Mysql } from './mysql'; +export { Mongo } from './mongo'; +export { Prisma } from './prisma'; +export { GraphQL } from './graphql'; +export { Apollo } from './apollo'; + +// TODO(v7): Remove this export +// Please see `src/index.ts` for more details. +export { BrowserTracing } from '../../browser'; diff --git a/packages/tracing/test/integrations/apollo-nestjs.test.ts b/packages/tracing/test/integrations/apollo-nestjs.test.ts index 4eb173b9958a..981693875d7a 100644 --- a/packages/tracing/test/integrations/apollo-nestjs.test.ts +++ b/packages/tracing/test/integrations/apollo-nestjs.test.ts @@ -3,7 +3,7 @@ import { Hub, Scope } from '@sentry/core'; import { logger } from '@sentry/utils'; import { Span } from '../../src'; -import { Apollo } from '../../src/integrations/node/apollo'; +import { Apollo } from '../../src/node/integrations/apollo'; import { getTestClient } from '../testutils'; type ApolloResolverGroup = { diff --git a/packages/tracing/test/integrations/apollo.test.ts b/packages/tracing/test/integrations/apollo.test.ts index 4a79fe227c9d..910c866505e8 100644 --- a/packages/tracing/test/integrations/apollo.test.ts +++ b/packages/tracing/test/integrations/apollo.test.ts @@ -3,7 +3,7 @@ import { Hub, Scope } from '@sentry/core'; import { logger } from '@sentry/utils'; import { Span } from '../../src'; -import { Apollo } from '../../src/integrations/node/apollo'; +import { Apollo } from '../../src/node/integrations/apollo'; import { getTestClient } from '../testutils'; type ApolloResolverGroup = { diff --git a/packages/tracing/test/integrations/graphql.test.ts b/packages/tracing/test/integrations/graphql.test.ts index db59187a6c7b..5d61a4acd5cb 100644 --- a/packages/tracing/test/integrations/graphql.test.ts +++ b/packages/tracing/test/integrations/graphql.test.ts @@ -3,7 +3,7 @@ import { Hub, Scope } from '@sentry/core'; import { logger } from '@sentry/utils'; import { Span } from '../../src'; -import { GraphQL } from '../../src/integrations/node/graphql'; +import { GraphQL } from '../../src/node/integrations/graphql'; import { getTestClient } from '../testutils'; const GQLExecute = { diff --git a/packages/tracing/test/integrations/node/mongo.test.ts b/packages/tracing/test/integrations/node/mongo.test.ts index 84b1071c2f3c..5c3dd11255c4 100644 --- a/packages/tracing/test/integrations/node/mongo.test.ts +++ b/packages/tracing/test/integrations/node/mongo.test.ts @@ -3,7 +3,7 @@ import { Hub, Scope } from '@sentry/core'; import { logger } from '@sentry/utils'; import { Span } from '../../../src'; -import { Mongo } from '../../../src/integrations/node/mongo'; +import { Mongo } from '../../../src/node/integrations/mongo'; import { getTestClient } from '../../testutils'; class Collection { diff --git a/packages/tracing/test/integrations/node/postgres.test.ts b/packages/tracing/test/integrations/node/postgres.test.ts index 57e655bd1a99..08aa64cf368d 100644 --- a/packages/tracing/test/integrations/node/postgres.test.ts +++ b/packages/tracing/test/integrations/node/postgres.test.ts @@ -3,7 +3,7 @@ import { Hub, Scope } from '@sentry/core'; import { logger } from '@sentry/utils'; import { Span } from '../../../src'; -import { Postgres } from '../../../src/integrations/node/postgres'; +import { Postgres } from '../../../src/node/integrations/postgres'; import { getTestClient } from '../../testutils'; class PgClient { diff --git a/packages/tracing/test/integrations/node/prisma.test.ts b/packages/tracing/test/integrations/node/prisma.test.ts index b4866c31f15f..95892f9c1686 100644 --- a/packages/tracing/test/integrations/node/prisma.test.ts +++ b/packages/tracing/test/integrations/node/prisma.test.ts @@ -3,7 +3,7 @@ import { Hub, Scope } from '@sentry/core'; import { logger } from '@sentry/utils'; import { Span } from '../../../src'; -import { Prisma } from '../../../src/integrations/node/prisma'; +import { Prisma } from '../../../src/node/integrations/prisma'; import { getTestClient } from '../../testutils'; type PrismaMiddleware = (params: unknown, next: (params?: unknown) => Promise) => Promise; From 819ceb66177bc86ff2f6ef8daaa17f2c15a20998 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 6 Mar 2023 17:41:04 +0100 Subject: [PATCH 03/12] remove eslint ignore comments --- packages/tracing/.eslintrc.js | 2 +- packages/tracing/src/node/integrations/apollo.ts | 2 -- packages/tracing/src/node/integrations/utils/node-utils.ts | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/tracing/.eslintrc.js b/packages/tracing/.eslintrc.js index 3cabb2be4d99..7a937173064e 100644 --- a/packages/tracing/.eslintrc.js +++ b/packages/tracing/.eslintrc.js @@ -2,7 +2,7 @@ module.exports = { extends: ['../../.eslintrc.js'], overrides: [ { - files: ['src/integrations/node/**'], + files: ['src/node/**'], rules: { '@sentry-internal/sdk/no-optional-chaining': 'off', }, diff --git a/packages/tracing/src/node/integrations/apollo.ts b/packages/tracing/src/node/integrations/apollo.ts index 26bf5088278c..3a076444af5e 100644 --- a/packages/tracing/src/node/integrations/apollo.ts +++ b/packages/tracing/src/node/integrations/apollo.ts @@ -1,5 +1,3 @@ -/* eslint-disable @sentry-internal/sdk/no-optional-chaining */ - import type { Hub } from '@sentry/core'; import type { EventProcessor, Integration } from '@sentry/types'; import { arrayify, fill, isThenable, loadModule, logger } from '@sentry/utils'; diff --git a/packages/tracing/src/node/integrations/utils/node-utils.ts b/packages/tracing/src/node/integrations/utils/node-utils.ts index 37199e04f034..11f8f2430b61 100644 --- a/packages/tracing/src/node/integrations/utils/node-utils.ts +++ b/packages/tracing/src/node/integrations/utils/node-utils.ts @@ -1,4 +1,3 @@ -/* eslint-disable @sentry-internal/sdk/no-optional-chaining */ import type { Hub } from '@sentry/types'; /** From 837a01aeb255c99cbc061a60ea5e14d147c9e4ec Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 6 Mar 2023 17:42:49 +0100 Subject: [PATCH 04/12] change to v8 --- packages/tracing/src/node/integrations/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tracing/src/node/integrations/index.ts b/packages/tracing/src/node/integrations/index.ts index 59d96fa20802..91554d84fccd 100644 --- a/packages/tracing/src/node/integrations/index.ts +++ b/packages/tracing/src/node/integrations/index.ts @@ -6,6 +6,6 @@ export { Prisma } from './prisma'; export { GraphQL } from './graphql'; export { Apollo } from './apollo'; -// TODO(v7): Remove this export +// TODO(v8): Remove this export // Please see `src/index.ts` for more details. export { BrowserTracing } from '../../browser'; From e2ec12b81d925f98d11a605983e736cc615a2897 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 6 Mar 2023 18:04:55 +0100 Subject: [PATCH 05/12] add entrypoints --- packages/tracing/package.json | 12 ++++++++++++ packages/tracing/rollup.npm.config.js | 1 + 2 files changed, 13 insertions(+) diff --git a/packages/tracing/package.json b/packages/tracing/package.json index 24870fadcdd3..1c428bd6d707 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -12,6 +12,18 @@ "main": "build/npm/cjs/index.js", "module": "build/npm/esm/index.js", "types": "build/npm/types/index.d.ts", + "exports": { + "./node": { + "import": "./build/npm/esm/node/index.js", + "require": "./build/npm/cjs/node/index.js", + "types": "./build/npm/types/node/index.d.ts" + }, + "./browser": { + "import": "./build/npm/esm/browser/index.js", + "require": "./build/npm/cjs/browser/index.js", + "types": "./build/npm/types/browser/index.d.ts" + } + }, "publishConfig": { "access": "public" }, diff --git a/packages/tracing/rollup.npm.config.js b/packages/tracing/rollup.npm.config.js index 4ffa8b9396d8..a7588e2a9538 100644 --- a/packages/tracing/rollup.npm.config.js +++ b/packages/tracing/rollup.npm.config.js @@ -2,6 +2,7 @@ import { makeBaseNPMConfig, makeNPMConfigVariants } from '../../rollup/index.js' export default makeNPMConfigVariants( makeBaseNPMConfig({ + entrypoints: ['src/browser/index.ts', 'src/node/index.ts', 'src/index.ts'], // packages with bundles have a different build directory structure hasBundles: true, }), From e43c7e5abdf6d665672b58f227d039605f7c460b Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 6 Mar 2023 18:14:37 +0100 Subject: [PATCH 06/12] add `typesVersions` to make package.json work --- packages/tracing/package.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/tracing/package.json b/packages/tracing/package.json index 1c428bd6d707..e8606023740e 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -13,6 +13,11 @@ "module": "build/npm/esm/index.js", "types": "build/npm/types/index.d.ts", "exports": { + ".": { + "import": "./build/npm/esm/index.js", + "require": "./build/npm/cjs/index.js", + "types": "./build/npm/types/index.d.ts" + }, "./node": { "import": "./build/npm/esm/node/index.js", "require": "./build/npm/cjs/node/index.js", @@ -24,6 +29,19 @@ "types": "./build/npm/types/browser/index.d.ts" } }, + "typesVersions": { + "*": { + "*": [ + "build/npm/types/index.d.ts" + ], + "node": [ + "./build/npm/types/node/index.d.ts" + ], + "browser": [ + "./build/npm/types/browser/index.d.ts" + ] + } + }, "publishConfig": { "access": "public" }, From b155bee35bf3e4a3bb11d50cd131192a87c5a15c Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 7 Mar 2023 10:03:24 +0100 Subject: [PATCH 07/12] remove build from package.json --- packages/tracing/package.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/tracing/package.json b/packages/tracing/package.json index e8606023740e..dd010125e012 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -9,36 +9,36 @@ "engines": { "node": ">=8" }, - "main": "build/npm/cjs/index.js", - "module": "build/npm/esm/index.js", - "types": "build/npm/types/index.d.ts", + "main": "npm/cjs/index.js", + "module": "npm/esm/index.js", + "types": "npm/types/index.d.ts", "exports": { ".": { - "import": "./build/npm/esm/index.js", - "require": "./build/npm/cjs/index.js", - "types": "./build/npm/types/index.d.ts" + "import": "./npm/esm/index.js", + "require": "./npm/cjs/index.js", + "types": "./npm/types/index.d.ts" }, "./node": { - "import": "./build/npm/esm/node/index.js", - "require": "./build/npm/cjs/node/index.js", - "types": "./build/npm/types/node/index.d.ts" + "import": "./npm/esm/node/index.js", + "require": "./npm/cjs/node/index.js", + "types": "./npm/types/node/index.d.ts" }, "./browser": { - "import": "./build/npm/esm/browser/index.js", - "require": "./build/npm/cjs/browser/index.js", - "types": "./build/npm/types/browser/index.d.ts" + "import": "./npm/esm/browser/index.js", + "require": "./npm/cjs/browser/index.js", + "types": "./npm/types/browser/index.d.ts" } }, "typesVersions": { "*": { "*": [ - "build/npm/types/index.d.ts" + "npm/types/index.d.ts" ], "node": [ - "./build/npm/types/node/index.d.ts" + "./npm/types/node/index.d.ts" ], "browser": [ - "./build/npm/types/browser/index.d.ts" + "./npm/types/browser/index.d.ts" ] } }, @@ -66,7 +66,7 @@ "build:dev:watch": "run-p build:transpile:watch build:types:watch", "build:transpile:watch": "rollup -c rollup.npm.config.js --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", - "build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./build/npm", + "build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./npm", "clean": "rimraf build coverage sentry-tracing-*.tgz", "circularDepCheck": "madge --circular src/index.ts", "fix": "run-s fix:eslint fix:prettier", From ae0701e0f91f37fe210e678ac479489c79616a44 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 7 Mar 2023 10:06:24 +0100 Subject: [PATCH 08/12] fix tarball generation --- packages/tracing/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tracing/package.json b/packages/tracing/package.json index dd010125e012..fb4ab8ba5e3a 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -66,7 +66,7 @@ "build:dev:watch": "run-p build:transpile:watch build:types:watch", "build:transpile:watch": "rollup -c rollup.npm.config.js --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", - "build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./npm", + "build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./build/npm", "clean": "rimraf build coverage sentry-tracing-*.tgz", "circularDepCheck": "madge --circular src/index.ts", "fix": "run-s fix:eslint fix:prettier", From c02f2b8e0bf658b07883c2d139dbb49a102dd7de Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 7 Mar 2023 10:21:28 +0100 Subject: [PATCH 09/12] Revert "fix tarball generation" This reverts commit ae0701e0f91f37fe210e678ac479489c79616a44. --- packages/tracing/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tracing/package.json b/packages/tracing/package.json index fb4ab8ba5e3a..dd010125e012 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -66,7 +66,7 @@ "build:dev:watch": "run-p build:transpile:watch build:types:watch", "build:transpile:watch": "rollup -c rollup.npm.config.js --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", - "build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./build/npm", + "build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./npm", "clean": "rimraf build coverage sentry-tracing-*.tgz", "circularDepCheck": "madge --circular src/index.ts", "fix": "run-s fix:eslint fix:prettier", From f9ff6335db2d85901d08c27ae22c1b1e9f9a4975 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 7 Mar 2023 10:21:34 +0100 Subject: [PATCH 10/12] Revert "remove build from package.json" This reverts commit b155bee35bf3e4a3bb11d50cd131192a87c5a15c. --- packages/tracing/package.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/tracing/package.json b/packages/tracing/package.json index dd010125e012..e8606023740e 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -9,36 +9,36 @@ "engines": { "node": ">=8" }, - "main": "npm/cjs/index.js", - "module": "npm/esm/index.js", - "types": "npm/types/index.d.ts", + "main": "build/npm/cjs/index.js", + "module": "build/npm/esm/index.js", + "types": "build/npm/types/index.d.ts", "exports": { ".": { - "import": "./npm/esm/index.js", - "require": "./npm/cjs/index.js", - "types": "./npm/types/index.d.ts" + "import": "./build/npm/esm/index.js", + "require": "./build/npm/cjs/index.js", + "types": "./build/npm/types/index.d.ts" }, "./node": { - "import": "./npm/esm/node/index.js", - "require": "./npm/cjs/node/index.js", - "types": "./npm/types/node/index.d.ts" + "import": "./build/npm/esm/node/index.js", + "require": "./build/npm/cjs/node/index.js", + "types": "./build/npm/types/node/index.d.ts" }, "./browser": { - "import": "./npm/esm/browser/index.js", - "require": "./npm/cjs/browser/index.js", - "types": "./npm/types/browser/index.d.ts" + "import": "./build/npm/esm/browser/index.js", + "require": "./build/npm/cjs/browser/index.js", + "types": "./build/npm/types/browser/index.d.ts" } }, "typesVersions": { "*": { "*": [ - "npm/types/index.d.ts" + "build/npm/types/index.d.ts" ], "node": [ - "./npm/types/node/index.d.ts" + "./build/npm/types/node/index.d.ts" ], "browser": [ - "./npm/types/browser/index.d.ts" + "./build/npm/types/browser/index.d.ts" ] } }, @@ -66,7 +66,7 @@ "build:dev:watch": "run-p build:transpile:watch build:types:watch", "build:transpile:watch": "rollup -c rollup.npm.config.js --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", - "build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./npm", + "build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./build/npm", "clean": "rimraf build coverage sentry-tracing-*.tgz", "circularDepCheck": "madge --circular src/index.ts", "fix": "run-s fix:eslint fix:prettier", From 5c052f8759475627a31aaea991c10bb5a17905c7 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 7 Mar 2023 10:58:41 +0100 Subject: [PATCH 11/12] update prepack --- scripts/prepack.ts | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/scripts/prepack.ts b/scripts/prepack.ts index ace6846db457..7dbdeb367d14 100644 --- a/scripts/prepack.ts +++ b/scripts/prepack.ts @@ -13,14 +13,27 @@ const NPM_BUILD_DIR = 'build/npm'; const BUILD_DIR = 'build'; const NPM_IGNORE = fs.existsSync('.npmignore') ? '.npmignore' : '../../.npmignore'; -const ASSETS = ['README.md', 'LICENSE', 'package.json', NPM_IGNORE]; -const ENTRY_POINTS = ['main', 'module', 'types', 'browser']; +const ASSETS = ['README.md', 'LICENSE', 'package.json', NPM_IGNORE] as const; +const ENTRY_POINTS = ['main', 'module', 'types', 'browser'] as const; +const EXPORT_MAP_ENTRY_POINT = 'exports'; const packageWithBundles = process.argv.includes('--bundles'); const buildDir = packageWithBundles ? NPM_BUILD_DIR : BUILD_DIR; +type PackageJsonEntryPoints = Record; + +interface PackageJson extends Record, PackageJsonEntryPoints { + exports: { + [key: string]: { + import: string; + require: string; + types: string; + }; + }; +} + // eslint-disable-next-line @typescript-eslint/no-var-requires -const pkgJson: { [key: string]: unknown } = require(path.resolve('package.json')); +const pkgJson: PackageJson = require(path.resolve('package.json')); // check if build dir exists if (!fs.existsSync(path.resolve(buildDir))) { @@ -44,13 +57,21 @@ ASSETS.forEach(asset => { // package.json modifications const newPackageJsonPath = path.resolve(buildDir, 'package.json'); // eslint-disable-next-line @typescript-eslint/no-var-requires -const newPkgJson: { [key: string]: unknown } = require(newPackageJsonPath); +const newPkgJson: PackageJson = require(newPackageJsonPath); // modify entry points to point to correct paths (i.e. strip out the build directory) ENTRY_POINTS.filter(entryPoint => newPkgJson[entryPoint]).forEach(entryPoint => { - newPkgJson[entryPoint] = (newPkgJson[entryPoint] as string).replace(`${buildDir}/`, ''); + newPkgJson[entryPoint] = newPkgJson[entryPoint].replace(`${buildDir}/`, ''); }); +if (newPkgJson[EXPORT_MAP_ENTRY_POINT]) { + Object.entries(newPkgJson[EXPORT_MAP_ENTRY_POINT]).forEach(([key, val]) => { + newPkgJson[EXPORT_MAP_ENTRY_POINT][key] = Object.entries(val).reduce((acc, [key, val]) => { + return { ...acc, [key]: val.replace(`${buildDir}/`, '') }; + }, {} as typeof val); + }); +} + delete newPkgJson.scripts; delete newPkgJson.volta; delete newPkgJson.jest; From 99c869ccb9089aedc44a7b57fc105769a9543442 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 7 Mar 2023 11:15:06 +0100 Subject: [PATCH 12/12] make sure to affect typesVersions --- packages/tracing/package.json | 2 +- scripts/prepack.ts | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/tracing/package.json b/packages/tracing/package.json index e8606023740e..6187925a799e 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -32,7 +32,7 @@ "typesVersions": { "*": { "*": [ - "build/npm/types/index.d.ts" + "./build/npm/types/index.d.ts" ], "node": [ "./build/npm/types/node/index.d.ts" diff --git a/scripts/prepack.ts b/scripts/prepack.ts index 7dbdeb367d14..bcad9dee0ef8 100644 --- a/scripts/prepack.ts +++ b/scripts/prepack.ts @@ -16,6 +16,7 @@ const NPM_IGNORE = fs.existsSync('.npmignore') ? '.npmignore' : '../../.npmignor const ASSETS = ['README.md', 'LICENSE', 'package.json', NPM_IGNORE] as const; const ENTRY_POINTS = ['main', 'module', 'types', 'browser'] as const; const EXPORT_MAP_ENTRY_POINT = 'exports'; +const TYPES_VERSIONS_ENTRY_POINT = 'typesVersions'; const packageWithBundles = process.argv.includes('--bundles'); const buildDir = packageWithBundles ? NPM_BUILD_DIR : BUILD_DIR; @@ -23,13 +24,18 @@ const buildDir = packageWithBundles ? NPM_BUILD_DIR : BUILD_DIR; type PackageJsonEntryPoints = Record; interface PackageJson extends Record, PackageJsonEntryPoints { - exports: { + [EXPORT_MAP_ENTRY_POINT]: { [key: string]: { import: string; require: string; types: string; }; }; + [TYPES_VERSIONS_ENTRY_POINT]: { + [key: string]: { + [key: string]: string[]; + }; + }; } // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -72,6 +78,14 @@ if (newPkgJson[EXPORT_MAP_ENTRY_POINT]) { }); } +if (newPkgJson[TYPES_VERSIONS_ENTRY_POINT]) { + Object.entries(newPkgJson[TYPES_VERSIONS_ENTRY_POINT]).forEach(([key, val]) => { + newPkgJson[TYPES_VERSIONS_ENTRY_POINT][key] = Object.entries(val).reduce((acc, [key, val]) => { + return { ...acc, [key]: val.map(v => v.replace(`${buildDir}/`, '')) }; + }, {}); + }); +} + delete newPkgJson.scripts; delete newPkgJson.volta; delete newPkgJson.jest;