From b57b21c08090acbcac85d78a7e981dc1bd364b43 Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 13:57:47 +0200 Subject: [PATCH 01/10] fix(backend): Use tsup bundling in tests --- packages/backend/package.json | 2 +- packages/backend/tsup.config.ts | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/backend/package.json b/packages/backend/package.json index 91927aabdbb..f85ad77bc0a 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -81,7 +81,7 @@ "build:declarations": "tsc -p tsconfig.declarations.json", "publish:local": "npx yalc push --replace --sig", "build:lib": "tsup --env.NODE_ENV production", - "build:tests": "tsc -p tsconfig.test.json", + "build:tests": "tsup --env.test", "build:runtime": "cpy 'src/runtime/**/*.{mjs,js,cjs}' dist/runtime", "clean": "rimraf ./dist", "clean:tests": "rimraf ./tests/dist", diff --git a/packages/backend/tsup.config.ts b/packages/backend/tsup.config.ts index ff644ffe2f3..25a8e9e46a6 100644 --- a/packages/backend/tsup.config.ts +++ b/packages/backend/tsup.config.ts @@ -8,6 +8,26 @@ import { name, version } from './package.json'; export default defineConfig(overrideOptions => { const isWatch = !!overrideOptions.watch; const shouldPublish = !!overrideOptions.env?.publish; + const isTest = !!overrideOptions.env?.test; + + if (isTest) { + return { + entry: ['./src/**/*.{ts,js}'], + outDir: 'tests/dist/', + define: { + PACKAGE_NAME: `"${name}"`, + // use "test" instead of actual package version to avoid updating the tests + // depending on it (eg userAgent related) on every version bump + PACKAGE_VERSION: `"test"`, + __DEV__: `${isWatch}`, + }, + external: ['#crypto'], + clean: true, + minify: false, + tsconfig: 'tsconfig.test.json', + format: 'cjs', + }; + } const common: Options = { entry: ['src/index.ts', 'src/errors.ts', 'src/internal.ts', 'src/jwt/index.ts'], From df87a11ab773d16f1640fae9598e839409707fbc Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 14:01:25 +0200 Subject: [PATCH 02/10] chore(backend): Rename Clerk-Backend-SDK BAPI request header to User-Agent --- .../backend/src/api/__tests__/factory.test.ts | 16 ++++++++-------- packages/backend/src/api/request.ts | 2 +- .../backend/src/tokens/__tests__/keys.test.ts | 4 ++-- .../backend/src/tokens/__tests__/verify.test.ts | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/backend/src/api/__tests__/factory.test.ts b/packages/backend/src/api/__tests__/factory.test.ts index 8fbc06ebc11..884c425cf89 100644 --- a/packages/backend/src/api/__tests__/factory.test.ts +++ b/packages/backend/src/api/__tests__/factory.test.ts @@ -54,7 +54,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }), ); @@ -82,7 +82,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }), ); @@ -115,7 +115,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }), ); @@ -145,7 +145,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }), ); @@ -173,7 +173,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, body: JSON.stringify({ first_name: 'John', @@ -214,7 +214,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }), ); @@ -237,7 +237,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }), ); @@ -262,7 +262,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }), ); diff --git a/packages/backend/src/api/request.ts b/packages/backend/src/api/request.ts index d86a43e6c45..49f9413c637 100644 --- a/packages/backend/src/api/request.ts +++ b/packages/backend/src/api/request.ts @@ -80,7 +80,7 @@ export function buildRequest(options: BuildRequestOptions) { // Build headers const headers: Record = { Authorization: `Bearer ${secretKey}`, - 'Clerk-Backend-SDK': userAgent, + 'User-Agent': userAgent, ...headerParams, }; diff --git a/packages/backend/src/tokens/__tests__/keys.test.ts b/packages/backend/src/tokens/__tests__/keys.test.ts index e1e161d5b5e..97eacd5db2a 100644 --- a/packages/backend/src/tokens/__tests__/keys.test.ts +++ b/packages/backend/src/tokens/__tests__/keys.test.ts @@ -67,7 +67,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }); assert.propEqual(jwk, mockRsaJwk); @@ -87,7 +87,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer sk_test_deadbeef', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }); assert.propEqual(jwk, mockRsaJwk); diff --git a/packages/backend/src/tokens/__tests__/verify.test.ts b/packages/backend/src/tokens/__tests__/verify.test.ts index 9034facec74..6473208726a 100644 --- a/packages/backend/src/tokens/__tests__/verify.test.ts +++ b/packages/backend/src/tokens/__tests__/verify.test.ts @@ -49,7 +49,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer a-valid-key', 'Content-Type': 'application/json', - 'Clerk-Backend-SDK': '@clerk/backend', + 'User-Agent': '@clerk/backend', }, }); assert.propEqual(data, mockJwtPayload); From bfba35441418bdee57e919965cb2d470a5a3e20d Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 14:03:58 +0200 Subject: [PATCH 03/10] feat(backend): Add package version in User-Agent header of BAPI requests --- .../backend/src/api/__tests__/factory.test.ts | 16 ++++++++-------- packages/backend/src/constants.ts | 3 +-- .../backend/src/tokens/__tests__/keys.test.ts | 4 ++-- .../backend/src/tokens/__tests__/verify.test.ts | 2 +- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/backend/src/api/__tests__/factory.test.ts b/packages/backend/src/api/__tests__/factory.test.ts index 884c425cf89..63f1d59d19e 100644 --- a/packages/backend/src/api/__tests__/factory.test.ts +++ b/packages/backend/src/api/__tests__/factory.test.ts @@ -54,7 +54,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }), ); @@ -82,7 +82,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }), ); @@ -115,7 +115,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }), ); @@ -145,7 +145,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }), ); @@ -173,7 +173,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, body: JSON.stringify({ first_name: 'John', @@ -214,7 +214,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }), ); @@ -237,7 +237,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }), ); @@ -262,7 +262,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }), ); diff --git a/packages/backend/src/constants.ts b/packages/backend/src/constants.ts index 255b4b26a2f..26ce9ae0aca 100644 --- a/packages/backend/src/constants.ts +++ b/packages/backend/src/constants.ts @@ -1,8 +1,7 @@ export const API_URL = 'https://api.clerk.com'; export const API_VERSION = 'v1'; -// TODO: Get information from package.json or define them from ESBuild -export const USER_AGENT = `@clerk/backend`; +export const USER_AGENT = `${PACKAGE_NAME}@${PACKAGE_VERSION}`; export const MAX_CACHE_LAST_UPDATED_AT_SECONDS = 5 * 60; export const JWKS_CACHE_TTL_MS = 1000 * 60 * 60; diff --git a/packages/backend/src/tokens/__tests__/keys.test.ts b/packages/backend/src/tokens/__tests__/keys.test.ts index 97eacd5db2a..0927e6ea150 100644 --- a/packages/backend/src/tokens/__tests__/keys.test.ts +++ b/packages/backend/src/tokens/__tests__/keys.test.ts @@ -67,7 +67,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }); assert.propEqual(jwk, mockRsaJwk); @@ -87,7 +87,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer sk_test_deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }); assert.propEqual(jwk, mockRsaJwk); diff --git a/packages/backend/src/tokens/__tests__/verify.test.ts b/packages/backend/src/tokens/__tests__/verify.test.ts index 6473208726a..9a9e109f258 100644 --- a/packages/backend/src/tokens/__tests__/verify.test.ts +++ b/packages/backend/src/tokens/__tests__/verify.test.ts @@ -49,7 +49,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer a-valid-key', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend', + 'User-Agent': '@clerk/backend@test', }, }); assert.propEqual(data, mockJwtPayload); From ce25de947a8290f31d169df6f6bba591e02f2cee Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 14:31:01 +0200 Subject: [PATCH 04/10] feat(nextjs): Add package@version to BAPI requests User-Agent header --- .../src/server/__tests__/clerkClient.test.ts | 16 ++++++++++++++++ packages/nextjs/src/server/clerkClient.ts | 3 +-- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 packages/nextjs/src/server/__tests__/clerkClient.test.ts diff --git a/packages/nextjs/src/server/__tests__/clerkClient.test.ts b/packages/nextjs/src/server/__tests__/clerkClient.test.ts new file mode 100644 index 00000000000..1ceedefc0f7 --- /dev/null +++ b/packages/nextjs/src/server/__tests__/clerkClient.test.ts @@ -0,0 +1,16 @@ +global.fetch = jest.fn(() => Promise.resolve(new Response(null))); + +import { clerkClient } from '../clerkClient'; + +describe('clerkClient', () => { + it('should pass version package to userAgent', async () => { + await clerkClient.users.getUser('user_test'); + + expect(global.fetch).toBeCalled(); + expect((global.fetch as any).mock.calls[0][1].headers).toMatchObject({ + Authorization: 'Bearer TEST_SECRET_KEY', + 'Content-Type': 'application/json', + 'User-Agent': '@clerk/nextjs@0.0.0-test', + }); + }); +}); diff --git a/packages/nextjs/src/server/clerkClient.ts b/packages/nextjs/src/server/clerkClient.ts index f16a757b520..32d4c41d395 100644 --- a/packages/nextjs/src/server/clerkClient.ts +++ b/packages/nextjs/src/server/clerkClient.ts @@ -16,8 +16,7 @@ const clerkClient = createClerkClient({ secretKey: SECRET_KEY, apiUrl: API_URL, apiVersion: API_VERSION, - // TODO: Fetch version from package.json - userAgent: '@clerk/nextjs', + userAgent: `${PACKAGE_NAME}@${PACKAGE_VERSION}`, proxyUrl: PROXY_URL, domain: DOMAIN, isSatellite: IS_SATELLITE, From 4b86effcc8871437bd28a8062532950df315e0ce Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 14:31:17 +0200 Subject: [PATCH 05/10] feat(fastify): Add package@version to BAPI requests User-Agent header --- packages/fastify/src/__snapshots__/clerkClient.test.ts.snap | 1 + packages/fastify/src/clerkClient.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/fastify/src/__snapshots__/clerkClient.test.ts.snap b/packages/fastify/src/__snapshots__/clerkClient.test.ts.snap index cf50eb65430..830014421dc 100644 --- a/packages/fastify/src/__snapshots__/clerkClient.test.ts.snap +++ b/packages/fastify/src/__snapshots__/clerkClient.test.ts.snap @@ -12,6 +12,7 @@ exports[`clerk initializes clerk with constants 1`] = ` "version": "0.0.0-test", }, "secretKey": "TEST_SECRET_KEY", + "userAgent": "@clerk/fastify@0.0.0-test", }, ], ] diff --git a/packages/fastify/src/clerkClient.ts b/packages/fastify/src/clerkClient.ts index fc9ee1be39f..5b39cb59f98 100644 --- a/packages/fastify/src/clerkClient.ts +++ b/packages/fastify/src/clerkClient.ts @@ -9,5 +9,6 @@ export const clerkClient = createClerkClient({ apiUrl: API_URL, apiVersion: API_VERSION, jwtKey: JWT_KEY, + userAgent: `${PACKAGE_NAME}@${PACKAGE_VERSION}`, sdkMetadata: SDK_METADATA, }); From d5b97c8eb603804b549e8e0988ce2fe231e6e012 Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 14:31:39 +0200 Subject: [PATCH 06/10] feat(gatsby-plugin-clerk): Add package@version to BAPI requests User-Agent header --- packages/gatsby-plugin-clerk/src/ssr/clerkClient.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/gatsby-plugin-clerk/src/ssr/clerkClient.ts b/packages/gatsby-plugin-clerk/src/ssr/clerkClient.ts index ef4ab591462..e295cccb2cb 100644 --- a/packages/gatsby-plugin-clerk/src/ssr/clerkClient.ts +++ b/packages/gatsby-plugin-clerk/src/ssr/clerkClient.ts @@ -6,8 +6,7 @@ const clerkClient = createClerkClient({ secretKey: SECRET_KEY, apiUrl: API_URL, apiVersion: API_VERSION, - // TODO: Fetch version from package.json - userAgent: 'gatsby-plugin-clerk', + userAgent: `${PACKAGE_NAME}@${PACKAGE_VERSION}`, sdkMetadata: SDK_METADATA, telemetry: { disabled: TELEMETRY_DISABLED, From c2ee844758d261af7b47cd150ee9320a46555b41 Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 14:32:25 +0200 Subject: [PATCH 07/10] feat(remix): Add package@version to BAPI requests User-Agent header --- packages/remix/src/ssr/authenticateRequest.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/remix/src/ssr/authenticateRequest.ts b/packages/remix/src/ssr/authenticateRequest.ts index 509ef05b303..936b072c48c 100644 --- a/packages/remix/src/ssr/authenticateRequest.ts +++ b/packages/remix/src/ssr/authenticateRequest.ts @@ -79,6 +79,7 @@ export async function authenticateRequest( proxyUrl, isSatellite, domain, + userAgent: `${PACKAGE_NAME}@${PACKAGE_VERSION}`, }).authenticateRequest(request, { audience, secretKey, From d4ee7859cb35bd65a1f1e760a0f1bd719152113e Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 14:32:41 +0200 Subject: [PATCH 08/10] feat(clerk-sdk-node): Add package@version to BAPI requests User-Agent header --- packages/sdk-node/src/clerkClient.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sdk-node/src/clerkClient.ts b/packages/sdk-node/src/clerkClient.ts index f1e451dcd1c..fe58cb9dd3c 100644 --- a/packages/sdk-node/src/clerkClient.ts +++ b/packages/sdk-node/src/clerkClient.ts @@ -40,12 +40,12 @@ export const clerkClient = new Proxy(clerkClientSingleton, { const env = { ...loadApiEnv(), ...loadClientEnv() }; if (env.secretKey) { - clerkClientSingleton = createClerkClient({ ...env, userAgent: PACKAGE_NAME }); + clerkClientSingleton = createClerkClient({ ...env, userAgent: `${PACKAGE_NAME}@${PACKAGE_VERSION}` }); // @ts-expect-error - Element implicitly has an 'any' type because expression of type 'string | symbol' can't be used to index type 'ExtendedClerk'. return clerkClientSingleton[property]; } - const c = createClerkClient({ ...env, userAgent: PACKAGE_NAME }); + const c = createClerkClient({ ...env, userAgent: `${PACKAGE_NAME}@${PACKAGE_VERSION}` }); // @ts-expect-error - Element implicitly has an 'any' type because expression of type 'string | symbol' can't be used to index type 'ExtendedClerk'. return c[property]; }, From b97afda41ddef63d5a5833de59c09b28725a821a Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 11 Jan 2024 14:40:48 +0200 Subject: [PATCH 09/10] chore(repo): Add changeset --- .changeset/thin-coats-serve.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .changeset/thin-coats-serve.md diff --git a/.changeset/thin-coats-serve.md b/.changeset/thin-coats-serve.md new file mode 100644 index 00000000000..cdf5715dbfb --- /dev/null +++ b/.changeset/thin-coats-serve.md @@ -0,0 +1,13 @@ +--- +'gatsby-plugin-clerk': minor +'@clerk/clerk-sdk-node': minor +'@clerk/backend': minor +'@clerk/fastify': minor +'@clerk/nextjs': minor +'@clerk/remix': minor +--- + +Replace the `Clerk-Backend-SDK` header with `User-Agent` in BAPI requests and update it's value to contain both the package name and the package version of the clerk package +executing the request. Eg request from `@clerk/nextjs` to BAPI with append `User-Agent: @clerk/nextjs@5.0.0-alpha-v5.16` using the latest version. + +Miscellaneous changes: The backend test build changed to use tsup. \ No newline at end of file From 63d2a122d80e951f8c3a8c8490682d7d1caa2d9c Mon Sep 17 00:00:00 2001 From: Nikos Douvlis Date: Thu, 11 Jan 2024 15:33:10 +0200 Subject: [PATCH 10/10] fix(backend): Extract test-specific build config to tsup.config.test.ts --- packages/backend/package.json | 2 +- .../backend/src/api/__tests__/factory.test.ts | 16 ++++++------ .../backend/src/tokens/__tests__/keys.test.ts | 4 +-- .../src/tokens/__tests__/verify.test.ts | 2 +- packages/backend/tsup.config.test.ts | 25 +++++++++++++++++++ packages/backend/tsup.config.ts | 20 --------------- 6 files changed, 37 insertions(+), 32 deletions(-) create mode 100644 packages/backend/tsup.config.test.ts diff --git a/packages/backend/package.json b/packages/backend/package.json index f85ad77bc0a..076ed2aa1c8 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -81,7 +81,7 @@ "build:declarations": "tsc -p tsconfig.declarations.json", "publish:local": "npx yalc push --replace --sig", "build:lib": "tsup --env.NODE_ENV production", - "build:tests": "tsup --env.test", + "build:tests": "tsup --config tsup.config.test.ts", "build:runtime": "cpy 'src/runtime/**/*.{mjs,js,cjs}' dist/runtime", "clean": "rimraf ./dist", "clean:tests": "rimraf ./tests/dist", diff --git a/packages/backend/src/api/__tests__/factory.test.ts b/packages/backend/src/api/__tests__/factory.test.ts index 63f1d59d19e..075e0eb3985 100644 --- a/packages/backend/src/api/__tests__/factory.test.ts +++ b/packages/backend/src/api/__tests__/factory.test.ts @@ -54,7 +54,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }), ); @@ -82,7 +82,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }), ); @@ -115,7 +115,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }), ); @@ -145,7 +145,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }), ); @@ -173,7 +173,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, body: JSON.stringify({ first_name: 'John', @@ -214,7 +214,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }), ); @@ -237,7 +237,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }), ); @@ -262,7 +262,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }), ); diff --git a/packages/backend/src/tokens/__tests__/keys.test.ts b/packages/backend/src/tokens/__tests__/keys.test.ts index 0927e6ea150..7c69a62a325 100644 --- a/packages/backend/src/tokens/__tests__/keys.test.ts +++ b/packages/backend/src/tokens/__tests__/keys.test.ts @@ -67,7 +67,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }); assert.propEqual(jwk, mockRsaJwk); @@ -87,7 +87,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer sk_test_deadbeef', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }); assert.propEqual(jwk, mockRsaJwk); diff --git a/packages/backend/src/tokens/__tests__/verify.test.ts b/packages/backend/src/tokens/__tests__/verify.test.ts index 9a9e109f258..ed206302ec7 100644 --- a/packages/backend/src/tokens/__tests__/verify.test.ts +++ b/packages/backend/src/tokens/__tests__/verify.test.ts @@ -49,7 +49,7 @@ export default (QUnit: QUnit) => { headers: { Authorization: 'Bearer a-valid-key', 'Content-Type': 'application/json', - 'User-Agent': '@clerk/backend@test', + 'User-Agent': '@clerk/backend@0.0.0-test', }, }); assert.propEqual(data, mockJwtPayload); diff --git a/packages/backend/tsup.config.test.ts b/packages/backend/tsup.config.test.ts new file mode 100644 index 00000000000..6be0aab4169 --- /dev/null +++ b/packages/backend/tsup.config.test.ts @@ -0,0 +1,25 @@ +import { defineConfig } from 'tsup'; + +// @ts-ignore +import { name } from './package.json'; + +export default defineConfig(overrideOptions => { + const isWatch = !!overrideOptions.watch; + + return { + entry: ['./src/**/*.{ts,js}'], + outDir: 'tests/dist/', + define: { + PACKAGE_NAME: `"${name}"`, + // use "test" instead of actual package version to avoid updating the tests + // depending on it (eg userAgent related) on every version bump + PACKAGE_VERSION: `"0.0.0-test"`, + __DEV__: `${isWatch}`, + }, + external: ['#crypto'], + clean: true, + minify: false, + tsconfig: 'tsconfig.test.json', + format: 'cjs', + }; +}); diff --git a/packages/backend/tsup.config.ts b/packages/backend/tsup.config.ts index 25a8e9e46a6..ff644ffe2f3 100644 --- a/packages/backend/tsup.config.ts +++ b/packages/backend/tsup.config.ts @@ -8,26 +8,6 @@ import { name, version } from './package.json'; export default defineConfig(overrideOptions => { const isWatch = !!overrideOptions.watch; const shouldPublish = !!overrideOptions.env?.publish; - const isTest = !!overrideOptions.env?.test; - - if (isTest) { - return { - entry: ['./src/**/*.{ts,js}'], - outDir: 'tests/dist/', - define: { - PACKAGE_NAME: `"${name}"`, - // use "test" instead of actual package version to avoid updating the tests - // depending on it (eg userAgent related) on every version bump - PACKAGE_VERSION: `"test"`, - __DEV__: `${isWatch}`, - }, - external: ['#crypto'], - clean: true, - minify: false, - tsconfig: 'tsconfig.test.json', - format: 'cjs', - }; - } const common: Options = { entry: ['src/index.ts', 'src/errors.ts', 'src/internal.ts', 'src/jwt/index.ts'],