From f0379a2e9068fe2307841ba5fe095fefe192cbde Mon Sep 17 00:00:00 2001 From: Bryce Kalow Date: Tue, 21 Nov 2023 23:09:25 -0600 Subject: [PATCH 1/6] feat(shared): Ensure we only load clerk-js v4 in the interstitial, instead of latest --- packages/shared/global.d.ts | 1 + packages/shared/src/url.ts | 2 +- packages/shared/tsup.config.ts | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/shared/global.d.ts b/packages/shared/global.d.ts index 8c7a4b73b56..45362d161c3 100644 --- a/packages/shared/global.d.ts +++ b/packages/shared/global.d.ts @@ -1,6 +1,7 @@ export {}; declare global { + const CLERK_JS_PACKAGE_VERSION: string; const PACKAGE_VERSION: string; const __DEV__: boolean; } diff --git a/packages/shared/src/url.ts b/packages/shared/src/url.ts index e3e2b450b71..d346726c7de 100644 --- a/packages/shared/src/url.ts +++ b/packages/shared/src/url.ts @@ -53,7 +53,7 @@ export const getClerkJsMajorVersionOrTag = (frontendApi: string, pkgVersion?: st */ export const getScriptUrl = ( frontendApi: string, - { pkgVersion, clerkJSVersion }: { pkgVersion?: string; clerkJSVersion?: string }, + { pkgVersion = CLERK_JS_PACKAGE_VERSION, clerkJSVersion }: { pkgVersion?: string; clerkJSVersion?: string }, ) => { const noSchemeFrontendApi = frontendApi.replace(/http(s)?:\/\//, ''); const major = getClerkJsMajorVersionOrTag(frontendApi, pkgVersion); diff --git a/packages/shared/tsup.config.ts b/packages/shared/tsup.config.ts index 8c912b55a08..de5df066f0e 100644 --- a/packages/shared/tsup.config.ts +++ b/packages/shared/tsup.config.ts @@ -3,6 +3,7 @@ import { transform } from 'esbuild'; import { readFile } from 'fs/promises'; import { defineConfig } from 'tsup'; +import { version as clerkJsVersion } from '../clerk-js/package.json'; import { name, version } from './package.json'; export default defineConfig(overrideOptions => { @@ -17,8 +18,9 @@ export default defineConfig(overrideOptions => { sourcemap: true, dts: true, external: ['react', 'react-dom'], - esbuildPlugins: [WebWorkerMinifyPlugin as any], + esbuildPlugins: [WebWorkerMinifyPlugin], define: { + CLERK_JS_PACKAGE_VERSION: `"${clerkJsVersion}"`, PACKAGE_NAME: `"${name}"`, PACKAGE_VERSION: `"${version}"`, __DEV__: `${isWatch}`, From 0e9bf5681b002424c5bd7ec038eb31d833231cdd Mon Sep 17 00:00:00 2001 From: Nikos Douvlis Date: Wed, 22 Nov 2023 07:57:07 +0200 Subject: [PATCH 2/6] Create good-llamas-deny.md --- .changeset/good-llamas-deny.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/good-llamas-deny.md diff --git a/.changeset/good-llamas-deny.md b/.changeset/good-llamas-deny.md new file mode 100644 index 00000000000..5d87b1b4b14 --- /dev/null +++ b/.changeset/good-llamas-deny.md @@ -0,0 +1,5 @@ +--- +"@clerk/shared": patch +--- + +Ensure that the interstitial page loads clerk-js@v4 From 3aa9b80656036f34acd4a9b4b2f81c7d9989f043 Mon Sep 17 00:00:00 2001 From: Bryce Kalow Date: Wed, 22 Nov 2023 09:42:36 -0600 Subject: [PATCH 3/6] Update .changeset/good-llamas-deny.md --- .changeset/good-llamas-deny.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/good-llamas-deny.md b/.changeset/good-llamas-deny.md index 5d87b1b4b14..9cc22133a79 100644 --- a/.changeset/good-llamas-deny.md +++ b/.changeset/good-llamas-deny.md @@ -2,4 +2,4 @@ "@clerk/shared": patch --- -Ensure that the interstitial page loads clerk-js@v4 +Ensure that the interstitial page loads clerk-js@v4. From 8af4e76a3a19c6ff18b27a4e01e567eace01b87f Mon Sep 17 00:00:00 2001 From: Bryce Kalow Date: Tue, 21 Nov 2023 23:18:18 -0600 Subject: [PATCH 4/6] chore(repo): Add changeset --- .changeset/rich-crabs-fetch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/rich-crabs-fetch.md diff --git a/.changeset/rich-crabs-fetch.md b/.changeset/rich-crabs-fetch.md new file mode 100644 index 00000000000..168c86809bc --- /dev/null +++ b/.changeset/rich-crabs-fetch.md @@ -0,0 +1,5 @@ +--- +'@clerk/shared': patch +--- + +Ensure the interstitial loads a clerk-js version that matches the current major version. From 19a0b28c18fc41e89ac7dce09af8ccf3d88670a8 Mon Sep 17 00:00:00 2001 From: Bryce Kalow Date: Wed, 22 Nov 2023 09:41:58 -0600 Subject: [PATCH 5/6] chore(shared): Add global to jest --- packages/shared/jest.config.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/shared/jest.config.js b/packages/shared/jest.config.js index 5cfe5c84fc8..3451a214f4b 100644 --- a/packages/shared/jest.config.js +++ b/packages/shared/jest.config.js @@ -3,6 +3,10 @@ const config = { displayName: 'shared', injectGlobals: true, + globals: { + CLERK_JS_PACKAGE_VERSION: '4.0.0-test', + }, + testEnvironment: 'jsdom', roots: ['/src'], setupFiles: ['./jest.setup.ts'], From 4d232131493399dda3fe38129f525857bf7bdb8c Mon Sep 17 00:00:00 2001 From: Bryce Kalow Date: Wed, 22 Nov 2023 10:40:01 -0600 Subject: [PATCH 6/6] chore(shared): Tweak tests --- packages/shared/src/__tests__/url.test.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/packages/shared/src/__tests__/url.test.ts b/packages/shared/src/__tests__/url.test.ts index 8eb6983d7d4..e7ce03bf501 100644 --- a/packages/shared/src/__tests__/url.test.ts +++ b/packages/shared/src/__tests__/url.test.ts @@ -86,8 +86,8 @@ describe('getScriptUrl', () => { ); }); - it('returns URL using the latest version if clerkJSVersion & pkgVersion is not provided + frontendApi is not staging', () => { - expect(getScriptUrl(frontendApi, {})).toBe('https://foobar.dev/npm/@clerk/clerk-js@latest/dist/clerk.browser.js'); + it('returns URL using the major version if clerkJSVersion & pkgVersion is not provided + frontendApi is not staging', () => { + expect(getScriptUrl(frontendApi, {})).toBe('https://foobar.dev/npm/@clerk/clerk-js@4/dist/clerk.browser.js'); }); it('returns URL using the major version if only pkgVersion is provided', () => { @@ -95,10 +95,4 @@ describe('getScriptUrl', () => { 'https://foobar.dev/npm/@clerk/clerk-js@1/dist/clerk.browser.js', ); }); - - it('returns URL using the canary tag if frontendApi is staging', () => { - expect(getScriptUrl('https://foobar.lclstage.dev', {})).toBe( - 'https://foobar.lclstage.dev/npm/@clerk/clerk-js@canary/dist/clerk.browser.js', - ); - }); });