From fa438d6d119bf81fccd3e24080c49e7cd746d173 Mon Sep 17 00:00:00 2001 From: Justin Adkins Date: Thu, 17 Oct 2024 12:04:14 -0600 Subject: [PATCH 1/3] WIP: initial attempt at bumping clerk --- .../auth-providers/clerk/api/package.json | 2 +- .../auth-providers/clerk/api/src/decoder.ts | 24 +- .../clerk/setup/src/setupHandler.ts | 2 +- .../auth-providers/clerk/web/package.json | 6 +- yarn.lock | 257 ++++++------------ 5 files changed, 91 insertions(+), 200 deletions(-) diff --git a/packages/auth-providers/clerk/api/package.json b/packages/auth-providers/clerk/api/package.json index 30d1dcc30fd9..bd33cfd4b70d 100644 --- a/packages/auth-providers/clerk/api/package.json +++ b/packages/auth-providers/clerk/api/package.json @@ -39,7 +39,7 @@ "test:watch": "vitest watch" }, "dependencies": { - "@clerk/clerk-sdk-node": "4.13.21" + "@clerk/clerk-sdk-node": "5.0.52" }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", diff --git a/packages/auth-providers/clerk/api/src/decoder.ts b/packages/auth-providers/clerk/api/src/decoder.ts index abd0d52b5798..81299eb2ed20 100644 --- a/packages/auth-providers/clerk/api/src/decoder.ts +++ b/packages/auth-providers/clerk/api/src/decoder.ts @@ -8,25 +8,26 @@ export const authDecoder: Decoder = async (token: string, type: string) => { return null } - const { users, verifyToken } = await import('@clerk/clerk-sdk-node') + const { verifyToken, createClerkClient } = await import( + '@clerk/clerk-sdk-node' + ) try { - const issuer = (iss: string) => - iss.startsWith('https://clerk.') || iss.includes('.clerk.accounts') - - const jwtPayload = await verifyToken(token, { - issuer, + const options = { apiUrl: process.env.CLERK_API_URL || 'https://api.clerk.dev', jwtKey: process.env.CLERK_JWT_KEY, - apiKey: process.env.CLERK_API_KEY, secretKey: process.env.CLERK_SECRET_KEY, - }) + } + + const jwtPayload = await verifyToken(token, options) if (!jwtPayload.sub) { return Promise.reject(new Error('Session invalid')) } - const user = await users.getUser(jwtPayload.sub) + const clerkClient = createClerkClient(options) + + const user = await clerkClient.users.getUser(jwtPayload.sub) return { ...user, @@ -49,14 +50,9 @@ export const clerkAuthDecoder: Decoder = async ( const { verifyToken } = await import('@clerk/clerk-sdk-node') try { - const issuer = (iss: string) => - iss.startsWith('https://clerk.') || iss.includes('.clerk.accounts') - const jwtPayload = await verifyToken(token, { - issuer, apiUrl: process.env.CLERK_API_URL || 'https://api.clerk.dev', jwtKey: process.env.CLERK_JWT_KEY, - apiKey: process.env.CLERK_API_KEY, secretKey: process.env.CLERK_SECRET_KEY, }) diff --git a/packages/auth-providers/clerk/setup/src/setupHandler.ts b/packages/auth-providers/clerk/setup/src/setupHandler.ts index ec0a258e6463..ed301636efb8 100644 --- a/packages/auth-providers/clerk/setup/src/setupHandler.ts +++ b/packages/auth-providers/clerk/setup/src/setupHandler.ts @@ -16,7 +16,7 @@ export const handler = async ({ force: forceArg }: Args) => { authDecoderImport: `import { clerkAuthDecoder as authDecoder } from '@redwoodjs/auth-clerk-api'`, provider: 'clerk', webPackages: [ - '@clerk/clerk-react@^4', + '@clerk/clerk-react@^5', `@redwoodjs/auth-clerk-web@${version}`, ], apiPackages: [`@redwoodjs/auth-clerk-api@${version}`], diff --git a/packages/auth-providers/clerk/web/package.json b/packages/auth-providers/clerk/web/package.json index f65bb98ff0d4..f50dd8153fde 100644 --- a/packages/auth-providers/clerk/web/package.json +++ b/packages/auth-providers/clerk/web/package.json @@ -52,8 +52,8 @@ "@redwoodjs/auth": "workspace:*" }, "devDependencies": { - "@clerk/clerk-react": "4.32.3", - "@clerk/types": "3.65.3", + "@clerk/clerk-react": "5.12.0", + "@clerk/types": "4.26.0", "@redwoodjs/framework-tools": "workspace:*", "@types/react": "^18.2.55", "concurrently": "8.2.2", @@ -64,7 +64,7 @@ "vitest": "2.0.5" }, "peerDependencies": { - "@clerk/clerk-react": "4.32.3" + "@clerk/clerk-react": "5.12.0" }, "gitHead": "3905ed045508b861b495f8d5630d76c7a157d8f1" } diff --git a/yarn.lock b/yarn.lock index 9a4ae6a12590..6f0d1bd6f24b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2169,75 +2169,72 @@ __metadata: languageName: node linkType: hard -"@clerk/backend@npm:0.38.13": - version: 0.38.13 - resolution: "@clerk/backend@npm:0.38.13" - dependencies: - "@clerk/shared": "npm:1.4.1" - "@clerk/types": "npm:3.65.3" - "@peculiar/webcrypto": "npm:1.4.1" - "@types/node": "npm:16.18.6" - cookie: "npm:0.5.0" - deepmerge: "npm:4.2.2" - node-fetch-native: "npm:1.0.1" +"@clerk/backend@npm:1.14.1": + version: 1.14.1 + resolution: "@clerk/backend@npm:1.14.1" + dependencies: + "@clerk/shared": "npm:2.9.2" + "@clerk/types": "npm:4.26.0" + cookie: "npm:0.7.0" snakecase-keys: "npm:5.4.4" tslib: "npm:2.4.1" - checksum: 10c0/c89cfd304697e6971be5ccadc2d09abffaa3ad40f05b7ab0dc7111f827764d2a4237f12258ecfb07fea6f431bb102cdbed197bf05d220bef28323e360ed03317 + checksum: 10c0/056d89dadb4789601574c064f1c937e8440eab25bc7996a2942b9dd543814957f902de5be1b6103ae1d2277efa53c70d47d19903cead6e84a3c37dc9b31413e8 languageName: node linkType: hard -"@clerk/clerk-react@npm:4.32.3": - version: 4.32.3 - resolution: "@clerk/clerk-react@npm:4.32.3" +"@clerk/clerk-react@npm:5.12.0": + version: 5.12.0 + resolution: "@clerk/clerk-react@npm:5.12.0" dependencies: - "@clerk/shared": "npm:1.4.1" - "@clerk/types": "npm:3.65.3" + "@clerk/shared": "npm:2.9.2" + "@clerk/types": "npm:4.26.0" tslib: "npm:2.4.1" peerDependencies: - react: ">=16" - checksum: 10c0/531de3a3e814ae7f8b0f46281fb8d95e8ab89e62c2331fe90183e2a37f0744a88b68bc70a99e475185084eeac53827087f63af7889e1d2770d416cc39d4033c8 + react: ">=18 || >=19.0.0-beta" + react-dom: ">=18 || >=19.0.0-beta" + checksum: 10c0/e5836089c0181f0255f954888fdcdf2b94e2b6a9432ba212a593c77ae9e53aff8dc734d5b4d5dff05f188223a509a4b34f52033913b8602671583fcc1a8ab9a4 languageName: node linkType: hard -"@clerk/clerk-sdk-node@npm:4.13.21": - version: 4.13.21 - resolution: "@clerk/clerk-sdk-node@npm:4.13.21" +"@clerk/clerk-sdk-node@npm:5.0.52": + version: 5.0.52 + resolution: "@clerk/clerk-sdk-node@npm:5.0.52" dependencies: - "@clerk/backend": "npm:0.38.13" - "@clerk/shared": "npm:1.4.1" - "@clerk/types": "npm:3.65.3" - "@types/cookies": "npm:0.7.7" - "@types/express": "npm:4.17.14" - "@types/node-fetch": "npm:2.6.2" - camelcase-keys: "npm:6.2.2" - snakecase-keys: "npm:3.2.1" + "@clerk/backend": "npm:1.14.1" + "@clerk/shared": "npm:2.9.2" + "@clerk/types": "npm:4.26.0" tslib: "npm:2.4.1" - checksum: 10c0/60f753c0129527ba830a13784fa24c6f33b68344b0c216ca92dd63a11c8dae2f5602f953e0b2603ced1f80e839389febd3074b42fe4ffd576dfd85c971605ea3 + checksum: 10c0/5044c1a2600a9183a8b5db22437cf21c5f11e25cfeebe0449939eaadfc753b34e18bb868bde03fb69b5f2fcc277168812e75c3d4e15928ce4d9e428fefc1c121 languageName: node linkType: hard -"@clerk/shared@npm:1.4.1": - version: 1.4.1 - resolution: "@clerk/shared@npm:1.4.1" +"@clerk/shared@npm:2.9.2": + version: 2.9.2 + resolution: "@clerk/shared@npm:2.9.2" dependencies: + "@clerk/types": "npm:4.26.0" glob-to-regexp: "npm:0.4.1" - js-cookie: "npm:3.0.1" - swr: "npm:2.2.0" + js-cookie: "npm:3.0.5" + std-env: "npm:^3.7.0" + swr: "npm:^2.2.0" peerDependencies: - react: ">=16" + react: ">=18 || >=19.0.0-beta" + react-dom: ">=18 || >=19.0.0-beta" peerDependenciesMeta: react: optional: true - checksum: 10c0/5b77019ef1093131765012cef634d88c79f9a638b67a0d22284f43815af6b0248c9ced0fb4a0016274ad10eeb9106c688ec7aa070c15d9d8aeac4cdc2f044fc4 + react-dom: + optional: true + checksum: 10c0/5d8022dbce5d34d6087d1f74673fa3804c8eb4708d64e02fb004bc8e0d466ec1b1708aa4de273bd1a62e1522e6e3fbae2abb6055319f8ccb4926cca8d9c04a2d languageName: node linkType: hard -"@clerk/types@npm:3.65.3": - version: 3.65.3 - resolution: "@clerk/types@npm:3.65.3" +"@clerk/types@npm:4.26.0": + version: 4.26.0 + resolution: "@clerk/types@npm:4.26.0" dependencies: csstype: "npm:3.1.1" - checksum: 10c0/bd48bbd0e0d697fac83c82867d6283d4f1da14b928fb5368e963c49238ce5a0e65d750eab079a71064fbb9d0438c86f6ab5154f78204cfd05576b2dafd9f55ea + checksum: 10c0/ad71935ea18604150605f8ab1f7287edce23bc3fd5085f662c1c69f670d8ce914dd019bf9f046d1c113c5919cbf700de39b88e8fe7ed6bad372d9fe4d1ded28c languageName: node linkType: hard @@ -6484,7 +6481,7 @@ __metadata: languageName: node linkType: hard -"@peculiar/asn1-schema@npm:^2.3.0, @peculiar/asn1-schema@npm:^2.3.3, @peculiar/asn1-schema@npm:^2.3.6": +"@peculiar/asn1-schema@npm:^2.3.3, @peculiar/asn1-schema@npm:^2.3.6": version: 2.3.6 resolution: "@peculiar/asn1-schema@npm:2.3.6" dependencies: @@ -6517,19 +6514,6 @@ __metadata: languageName: node linkType: hard -"@peculiar/webcrypto@npm:1.4.1": - version: 1.4.1 - resolution: "@peculiar/webcrypto@npm:1.4.1" - dependencies: - "@peculiar/asn1-schema": "npm:^2.3.0" - "@peculiar/json-schema": "npm:^1.1.12" - pvtsutils: "npm:^1.3.2" - tslib: "npm:^2.4.1" - webcrypto-core: "npm:^1.7.4" - checksum: 10c0/5acf1b025664525452e2b0748573b0f4100c6840d71ff5577188dfb81b97d463911deff17b4b0c3e59f35fe93c54fec4591f1c42f0a54dae1d5710a03c5e55d3 - languageName: node - linkType: hard - "@peculiar/webcrypto@npm:^1.4.0": version: 1.4.3 resolution: "@peculiar/webcrypto@npm:1.4.3" @@ -7596,7 +7580,7 @@ __metadata: resolution: "@redwoodjs/auth-clerk-api@workspace:packages/auth-providers/clerk/api" dependencies: "@arethetypeswrong/cli": "npm:0.16.4" - "@clerk/clerk-sdk-node": "npm:4.13.21" + "@clerk/clerk-sdk-node": "npm:5.0.52" "@redwoodjs/api": "workspace:*" "@redwoodjs/framework-tools": "workspace:*" "@types/aws-lambda": "npm:8.10.145" @@ -7627,8 +7611,8 @@ __metadata: version: 0.0.0-use.local resolution: "@redwoodjs/auth-clerk-web@workspace:packages/auth-providers/clerk/web" dependencies: - "@clerk/clerk-react": "npm:4.32.3" - "@clerk/types": "npm:3.65.3" + "@clerk/clerk-react": "npm:5.12.0" + "@clerk/types": "npm:4.26.0" "@redwoodjs/auth": "workspace:*" "@redwoodjs/framework-tools": "workspace:*" "@types/react": "npm:^18.2.55" @@ -7639,7 +7623,7 @@ __metadata: typescript: "npm:5.6.2" vitest: "npm:2.0.5" peerDependencies: - "@clerk/clerk-react": 4.32.3 + "@clerk/clerk-react": 5.12.0 languageName: unknown linkType: soft @@ -10779,18 +10763,6 @@ __metadata: languageName: node linkType: hard -"@types/cookies@npm:0.7.7": - version: 0.7.7 - resolution: "@types/cookies@npm:0.7.7" - dependencies: - "@types/connect": "npm:*" - "@types/express": "npm:*" - "@types/keygrip": "npm:*" - "@types/node": "npm:*" - checksum: 10c0/259883abcd884da8ca9c58b91c402aa04e78ea7a0fa6772d4951c44e0868a3722a6fff54c0ac796002affc0e5b18f374213b2d4904b4e5c7f0d78a7368c14242 - languageName: node - linkType: hard - "@types/cross-spawn@npm:^6.0.2": version: 6.0.5 resolution: "@types/cross-spawn@npm:6.0.5" @@ -10892,7 +10864,7 @@ __metadata: languageName: node linkType: hard -"@types/express-serve-static-core@npm:^4.17.18, @types/express-serve-static-core@npm:^4.17.33": +"@types/express-serve-static-core@npm:^4.17.33": version: 4.17.35 resolution: "@types/express-serve-static-core@npm:4.17.35" dependencies: @@ -10904,7 +10876,7 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:*, @types/express@npm:4, @types/express@npm:^4.17.17, @types/express@npm:^4.7.0": +"@types/express@npm:4, @types/express@npm:^4.17.17, @types/express@npm:^4.7.0": version: 4.17.21 resolution: "@types/express@npm:4.17.21" dependencies: @@ -10916,18 +10888,6 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:4.17.14": - version: 4.17.14 - resolution: "@types/express@npm:4.17.14" - dependencies: - "@types/body-parser": "npm:*" - "@types/express-serve-static-core": "npm:^4.17.18" - "@types/qs": "npm:*" - "@types/serve-static": "npm:*" - checksum: 10c0/616e3618dfcbafe387bf2213e1e40f77f101685f3e9efff47c66fd2da611b7578ed5f4e61e1cdb1f2a32c8f01eff4ee74f93c52ad56d45e69b7154da66b3443a - languageName: node - linkType: hard - "@types/extract-files@npm:*": version: 13.0.1 resolution: "@types/extract-files@npm:13.0.1" @@ -11086,13 +11046,6 @@ __metadata: languageName: node linkType: hard -"@types/keygrip@npm:*": - version: 1.0.2 - resolution: "@types/keygrip@npm:1.0.2" - checksum: 10c0/95c9cc9824754baecb73c42051477c9f9dfb1a4dcaf6f51d025398e379b146adc0da2c476ed0129fe4ea157413910e5e2acb10c6dad308ef5ea8a95080229fd5 - languageName: node - linkType: hard - "@types/keyv@npm:^3.1.1": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" @@ -11220,16 +11173,6 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:2.6.2": - version: 2.6.2 - resolution: "@types/node-fetch@npm:2.6.2" - dependencies: - "@types/node": "npm:*" - form-data: "npm:^3.0.0" - checksum: 10c0/bd2ce7621905f9d80cd2fbe003d32a8d304f4aa53c12eb01a498255a1fc570d82216cff9a7ed38ff32570c78e46c924a8e23187a011ecfcfec4c530c7bdecdbb - languageName: node - linkType: hard - "@types/node-fetch@npm:^2.5.0, @types/node-fetch@npm:^2.6.4": version: 2.6.4 resolution: "@types/node-fetch@npm:2.6.4" @@ -11249,13 +11192,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:16.18.6": - version: 16.18.6 - resolution: "@types/node@npm:16.18.6" - checksum: 10c0/88192f5cd3d21ca827898c903ce6fbb8a92a51d0f9d8f7e93ac3f2f3b46cdd9f29c969fe3af9ba004833bb265c6330042f37d11cd97b9e4f54dabf2b34399075 - languageName: node - linkType: hard - "@types/node@npm:20.16.11": version: 20.16.11 resolution: "@types/node@npm:20.16.11" @@ -13676,7 +13612,7 @@ __metadata: languageName: node linkType: hard -"camelcase-keys@npm:6.2.2, camelcase-keys@npm:^6.2.2": +"camelcase-keys@npm:^6.2.2": version: 6.2.2 resolution: "camelcase-keys@npm:6.2.2" dependencies: @@ -14190,6 +14126,13 @@ __metadata: languageName: node linkType: hard +"client-only@npm:^0.0.1": + version: 0.0.1 + resolution: "client-only@npm:0.0.1" + checksum: 10c0/9d6cfd0c19e1c96a434605added99dff48482152af791ec4172fb912a71cff9027ff174efd8cdb2160cc7f377543e0537ffc462d4f279bc4701de3f2a3c4b358 + languageName: node + linkType: hard + "cliui@npm:^6.0.0": version: 6.0.0 resolution: "cliui@npm:6.0.0" @@ -14692,13 +14635,6 @@ __metadata: languageName: node linkType: hard -"cookie@npm:0.5.0, cookie@npm:^0.5.0": - version: 0.5.0 - resolution: "cookie@npm:0.5.0" - checksum: 10c0/c01ca3ef8d7b8187bae434434582288681273b5a9ed27521d4d7f9f7928fe0c920df0decd9f9d3bbd2d14ac432b8c8cf42b98b3bdd5bfe0e6edddeebebe8b61d - languageName: node - linkType: hard - "cookie@npm:0.6.0, cookie@npm:^0.6.0": version: 0.6.0 resolution: "cookie@npm:0.6.0" @@ -14706,6 +14642,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:0.7.0": + version: 0.7.0 + resolution: "cookie@npm:0.7.0" + checksum: 10c0/15c20c9b85431c8565b1750f9bccff0bd289b943d956e25fffce3b146e57934075965c8305a4e3a65a70622c9ed483e013daf9159d9c50f5c3f97f2e7c8117ac + languageName: node + linkType: hard + "cookie@npm:0.7.2": version: 0.7.2 resolution: "cookie@npm:0.7.2" @@ -14720,6 +14663,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:^0.5.0": + version: 0.5.0 + resolution: "cookie@npm:0.5.0" + checksum: 10c0/c01ca3ef8d7b8187bae434434582288681273b5a9ed27521d4d7f9f7928fe0c920df0decd9f9d3bbd2d14ac432b8c8cf42b98b3bdd5bfe0e6edddeebebe8b61d + languageName: node + linkType: hard + "copy-anything@npm:^3.0.2": version: 3.0.5 resolution: "copy-anything@npm:3.0.5" @@ -15409,13 +15359,6 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: 10c0/d6136eee869057fea7a829aa2d10073ed49db5216e42a77cc737dd385334aab9b68dae22020a00c24c073d5f79cbbdd3f11b8d4fc87700d112ddaa0e1f968ef2 - languageName: node - linkType: hard - "deepmerge@npm:4.3.1, deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" @@ -20982,14 +20925,7 @@ __metadata: languageName: node linkType: hard -"js-cookie@npm:3.0.1": - version: 3.0.1 - resolution: "js-cookie@npm:3.0.1" - checksum: 10c0/a7dab91286c49610fb198bcc0d78fbafe9be869cf3cea6f7eaea515abdfdc9d347982fe22316e34666b479a0701119482d46faa3a350a3a3404eb954405edf72 - languageName: node - linkType: hard - -"js-cookie@npm:^3.0.5": +"js-cookie@npm:3.0.5, js-cookie@npm:^3.0.5": version: 3.0.5 resolution: "js-cookie@npm:3.0.5" checksum: 10c0/04a0e560407b4489daac3a63e231d35f4e86f78bff9d792011391b49c59f721b513411cd75714c418049c8dc9750b20fcddad1ca5a2ca616c3aca4874cce5b3a @@ -23577,13 +23513,6 @@ __metadata: languageName: node linkType: hard -"node-fetch-native@npm:1.0.1": - version: 1.0.1 - resolution: "node-fetch-native@npm:1.0.1" - checksum: 10c0/27841116388ea5309037400de7fa1003712e974dc57a048f78e5fc659fa80095403f34051c069096a9bd705c7445876d88624121365847f617520325693d67c8 - languageName: node - linkType: hard - "node-fetch-native@npm:^1.0.2": version: 1.2.0 resolution: "node-fetch-native@npm:1.2.0" @@ -27510,16 +27439,6 @@ __metadata: languageName: node linkType: hard -"snakecase-keys@npm:3.2.1": - version: 3.2.1 - resolution: "snakecase-keys@npm:3.2.1" - dependencies: - map-obj: "npm:^4.1.0" - to-snake-case: "npm:^1.0.0" - checksum: 10c0/ead9fda98fe2ff2ec03b2169867a695c4c8cd2d624025fcaa24df68733c92a6de0a1e070e2b6b490b41ced7f2e0ad47256245c6f05e045acba7e76061731198c - languageName: node - linkType: hard - "snakecase-keys@npm:5.4.4": version: 5.4.4 resolution: "snakecase-keys@npm:5.4.4" @@ -28332,14 +28251,15 @@ __metadata: languageName: node linkType: hard -"swr@npm:2.2.0": - version: 2.2.0 - resolution: "swr@npm:2.2.0" +"swr@npm:^2.2.0": + version: 2.2.5 + resolution: "swr@npm:2.2.5" dependencies: + client-only: "npm:^0.0.1" use-sync-external-store: "npm:^1.2.0" peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/f631dfd206a989313cd82e7d9477b11af08496000c339752c745e8b42ba58667528ee0c70ea529910a7b6dee9b4085e8a2cd622efb70b9709883211111e0d756 + checksum: 10c0/731488d609ac6db60626632e3f76b046f28400b44504b3dfa69231a645127579b1add7a1595e5a6c718e24c80f1399506883bb456ca83c1b621357a0bf5a2a94 languageName: node linkType: hard @@ -28703,13 +28623,6 @@ __metadata: languageName: node linkType: hard -"to-no-case@npm:^1.0.0": - version: 1.0.2 - resolution: "to-no-case@npm:1.0.2" - checksum: 10c0/c035b04e1042ed67ceb23dc5c7c20ccde11a83ab1d2b3947c17918472b5d26dd4ffdb4cf9464752e7707ab9f3af4a106f9b61244c724bc6810422acd5984da3d - languageName: node - linkType: hard - "to-readable-stream@npm:^1.0.0": version: 1.0.0 resolution: "to-readable-stream@npm:1.0.0" @@ -28726,24 +28639,6 @@ __metadata: languageName: node linkType: hard -"to-snake-case@npm:^1.0.0": - version: 1.0.0 - resolution: "to-snake-case@npm:1.0.0" - dependencies: - to-space-case: "npm:^1.0.0" - checksum: 10c0/46abf18ca90441c7dd6138e1db3169f66ab1311b36930a2daa96289c3ad49e568de7de8b1ddea971c4fbb4a3a7cde1d08aefa0fe41d5e917e6d69eaf1075faba - languageName: node - linkType: hard - -"to-space-case@npm:^1.0.0": - version: 1.0.0 - resolution: "to-space-case@npm:1.0.0" - dependencies: - to-no-case: "npm:^1.0.0" - checksum: 10c0/b99e1b5d0f3c90a8d47fa3b155d515027bd83a370740e82ee7cb064f86e3655f030f068bddcb8d18239e7408761b4376d89ab91e5ccdb17dc859d8fd4f570ac5 - languageName: node - linkType: hard - "toad-cache@npm:^3.3.0, toad-cache@npm:^3.7.0": version: 3.7.0 resolution: "toad-cache@npm:3.7.0" @@ -28990,7 +28885,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.5.2, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:~2.6.0": +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.2, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:~2.6.0": version: 2.6.3 resolution: "tslib@npm:2.6.3" checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a @@ -30144,7 +30039,7 @@ __metadata: languageName: node linkType: hard -"webcrypto-core@npm:^1.7.4, webcrypto-core@npm:^1.7.7": +"webcrypto-core@npm:^1.7.7": version: 1.7.7 resolution: "webcrypto-core@npm:1.7.7" dependencies: From 89beec856920481cf956099da8d8cc257b65c997 Mon Sep 17 00:00:00 2001 From: Justin Adkins Date: Thu, 17 Oct 2024 14:34:53 -0600 Subject: [PATCH 2/3] cleaning up / updating templates --- .../setup/src/templates/web/auth.rsc.tsx.template | 13 ++++--------- packages/auth-providers/clerk/web/src/clerk.tsx | 3 ++- .../__tests__/__snapshots__/authTasks.test.ts.snap | 6 +++++- .../cli-helpers/src/auth/__tests__/mockFsFiles.ts | 6 +++++- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/auth-providers/clerk/setup/src/templates/web/auth.rsc.tsx.template b/packages/auth-providers/clerk/setup/src/templates/web/auth.rsc.tsx.template index 95e8bcc2428f..ad827d8c8449 100644 --- a/packages/auth-providers/clerk/setup/src/templates/web/auth.rsc.tsx.template +++ b/packages/auth-providers/clerk/setup/src/templates/web/auth.rsc.tsx.template @@ -22,9 +22,7 @@ const ClerkStatusUpdater = () => { return null } -type ClerkOptions = - | { publishableKey: string; frontendApi?: never } - | { publishableKey?: never; frontendApi: string } +type ClerkOptions = { publishableKey: string } interface Props { children: React.ReactNode @@ -39,7 +37,8 @@ const ClerkProviderWrapper = ({ return ( reauthenticate().then(() => navigate(to))} + routerPush={(to) => reauthenticate().then(() => navigate(to))} + routerPush={(to) => reauthenticate().then(() => navigate(to, { replace: true }))} > {children} @@ -49,12 +48,8 @@ const ClerkProviderWrapper = ({ export const AuthProvider = ({ children }: Props) => { const publishableKey = process.env.CLERK_PUBLISHABLE_KEY - const frontendApi = - process.env.CLERK_FRONTEND_API_URL || process.env.CLERK_FRONTEND_API - const clerkOptions: ClerkOptions = publishableKey - ? { publishableKey } - : { frontendApi } + const clerkOptions: ClerkOptions = { publishableKey } return ( diff --git a/packages/auth-providers/clerk/web/src/clerk.tsx b/packages/auth-providers/clerk/web/src/clerk.tsx index 2e3e2fb8cc7a..326a956d3987 100644 --- a/packages/auth-providers/clerk/web/src/clerk.tsx +++ b/packages/auth-providers/clerk/web/src/clerk.tsx @@ -24,9 +24,10 @@ export function createAuth( ) => (rolesToCheck: string | string[]) => boolean }, authImplementationOptions?: AuthImplementationOptions, -) { +): ReturnType { const authImplementation = createAuthImplementation(authImplementationOptions) + // @ts-ignore-next-line return createAuthentication(authImplementation, customProviderHooks) } diff --git a/packages/cli-helpers/src/auth/__tests__/__snapshots__/authTasks.test.ts.snap b/packages/cli-helpers/src/auth/__tests__/__snapshots__/authTasks.test.ts.snap index abc555315d2b..3114fd0ccc1e 100644 --- a/packages/cli-helpers/src/auth/__tests__/__snapshots__/authTasks.test.ts.snap +++ b/packages/cli-helpers/src/auth/__tests__/__snapshots__/authTasks.test.ts.snap @@ -316,7 +316,11 @@ export const AuthProvider = ({ children }: Props) => { } return ( - navigate(to)}> + navigate(to)} + routerReplace={(to) => navigate(to, { replace: true })} + > {children} diff --git a/packages/cli-helpers/src/auth/__tests__/mockFsFiles.ts b/packages/cli-helpers/src/auth/__tests__/mockFsFiles.ts index bcc62e066ec2..0a2e05c1b140 100644 --- a/packages/cli-helpers/src/auth/__tests__/mockFsFiles.ts +++ b/packages/cli-helpers/src/auth/__tests__/mockFsFiles.ts @@ -111,7 +111,11 @@ export const AuthProvider = ({ children }: Props) => { } return ( - navigate(to)}> + navigate(to)} + routerReplace={(to) => navigate(to, { replace: true })} + > {children} From 7bc732f6473e7b4a44a65aff9a4ec691d0ae6671 Mon Sep 17 00:00:00 2001 From: Justin Adkins Date: Thu, 17 Oct 2024 14:45:25 -0600 Subject: [PATCH 3/3] remove ts ignore --- packages/auth-providers/clerk/web/src/clerk.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/auth-providers/clerk/web/src/clerk.tsx b/packages/auth-providers/clerk/web/src/clerk.tsx index 326a956d3987..2e3e2fb8cc7a 100644 --- a/packages/auth-providers/clerk/web/src/clerk.tsx +++ b/packages/auth-providers/clerk/web/src/clerk.tsx @@ -24,10 +24,9 @@ export function createAuth( ) => (rolesToCheck: string | string[]) => boolean }, authImplementationOptions?: AuthImplementationOptions, -): ReturnType { +) { const authImplementation = createAuthImplementation(authImplementationOptions) - // @ts-ignore-next-line return createAuthentication(authImplementation, customProviderHooks) }