@clerk/upgrade 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/app.js +10 -2
  2. package/dist/cli.js +15 -6
  3. package/dist/img/alternativemethods-backlink.png +0 -0
  4. package/dist/img/button-to-organizationlistcreateorganizationactionbutton.png +0 -0
  5. package/dist/img/connected-accounts-dropdown.png +0 -0
  6. package/dist/img/mfa-dropdown.png +0 -0
  7. package/dist/img/organizationprofile-settings.png +0 -0
  8. package/dist/img/remove-identitypreview-avatar.png +0 -0
  9. package/dist/img/remove-socialbuttonsblockbuttonarrow.png +0 -0
  10. package/dist/img/userbuttonpopoveractionbuttontext-removed.png +0 -0
  11. package/dist/img/userprofile-security.png +0 -0
  12. package/dist/scan.js +50 -23
  13. package/dist/util/expandable-list.js +12 -5
  14. package/dist/util/generate-export-change.js +10 -0
  15. package/dist/util/guess-framework.js +8 -3
  16. package/dist/util/load-change.js +2 -1
  17. package/dist/versions/v5/backend/api-url-value-changed.md +7 -0
  18. package/dist/versions/v5/backend/authenticaterequest-params-change.md +12 -0
  19. package/dist/versions/v5/backend/buildrequesturl-removed.md +7 -0
  20. package/dist/versions/v5/backend/clerk-import.md +2 -2
  21. package/dist/versions/v5/backend/client-unstableoptions-removed.md +15 -0
  22. package/dist/versions/v5/backend/clockskewinseconds.md +10 -2
  23. package/dist/versions/v5/backend/constants-import-path-move.md +13 -0
  24. package/dist/versions/v5/backend/createauthenticaterequest-import-path-move.md +13 -0
  25. package/dist/versions/v5/backend/createclerkclient-apikey.md +8 -11
  26. package/dist/versions/v5/backend/createclerkclient-frontendapi.md +7 -10
  27. package/dist/versions/v5/backend/createemail-removed.md +7 -0
  28. package/dist/versions/v5/backend/createisomorphicrequest-import-path-move.md +13 -0
  29. package/dist/versions/v5/backend/createisomorphicrequest-removed.md +13 -0
  30. package/dist/versions/v5/backend/decodeJwt-import-path-move.md +13 -0
  31. package/dist/versions/v5/backend/externalaccount-picture.md +6 -0
  32. package/dist/versions/v5/backend/externalaccountjson-avatarurl.md +6 -0
  33. package/dist/versions/v5/backend/getorganizationinvitationlist-return-signature.md +14 -0
  34. package/dist/versions/v5/backend/getorganizationlist-return-signature.md +14 -0
  35. package/dist/versions/v5/backend/getorganizationmembershiplist-return-signature.md +14 -0
  36. package/dist/versions/v5/backend/getpendingorganizationinvitationlist.md +5 -5
  37. package/dist/versions/v5/backend/httpoptions-removed.md +15 -0
  38. package/dist/versions/v5/backend/membershiprole.md +21 -0
  39. package/dist/versions/v5/backend/organization-logourl.md +6 -0
  40. package/dist/versions/v5/backend/organizationjson-logourl.md +6 -0
  41. package/dist/versions/v5/backend/organizationmembershippublicuserdata-profileimageurl.md +6 -0
  42. package/dist/versions/v5/backend/organizationmembershippublicuserdatajson-profileimageurl.md +6 -0
  43. package/dist/versions/v5/backend/pkgversion.md +15 -0
  44. package/dist/versions/v5/backend/redirect-import-path-move.md +13 -0
  45. package/dist/versions/v5/backend/return-signature-change.md +14 -0
  46. package/dist/versions/v5/backend/signjwt-import-path-move +0 -0
  47. package/dist/versions/v5/backend/signjwt-import-path-move.md +13 -0
  48. package/dist/versions/v5/backend/signjwterror-import-move.md +13 -0
  49. package/dist/versions/v5/backend/tokenverificationerror-import-move.md +13 -0
  50. package/dist/versions/v5/backend/tokenverificationerroraction-import-move.md +13 -0
  51. package/dist/versions/v5/backend/tokenverificationerrorcode-import-move.md +13 -0
  52. package/dist/versions/v5/backend/tokenverificationerrorreason-import-move.md +13 -0
  53. package/dist/versions/v5/backend/user-profileimageurl.md +6 -0
  54. package/dist/versions/v5/backend/userjson-profileimageurl.md +6 -0
  55. package/dist/versions/v5/backend/verifyjwt-import-path-move.md +13 -0
  56. package/dist/versions/v5/common/aftersigninouturl-behavior-change.md +7 -0
  57. package/dist/versions/v5/common/aftersigninurl-behavior-change +7 -0
  58. package/dist/versions/v5/common/aftersigninurl-behavior-change-2.md +7 -0
  59. package/dist/versions/v5/common/aftersigninurl-behavior-change.md +7 -0
  60. package/dist/versions/v5/common/aftersignouturl-behavior-change.md +7 -0
  61. package/dist/versions/v5/common/aftersignupurl-behavior-change.md +7 -0
  62. package/dist/versions/v5/common/afterswitchorganizationurl.md +16 -0
  63. package/dist/versions/v5/common/alternativemethods-backlink.md +18 -0
  64. package/dist/versions/v5/common/api-key-to-secret-key.md +1 -1
  65. package/dist/versions/v5/common/appearance-organizationpreview-organizationswitcher.md +8 -0
  66. package/dist/versions/v5/common/button-to-organizationlistcreateorganizationactionbutton.md +11 -0
  67. package/dist/versions/v5/common/card-changes.md +14 -0
  68. package/dist/versions/v5/common/changed-localization-keys.md +179 -0
  69. package/dist/versions/v5/common/clerkprovider-frontendapi-2.md +7 -0
  70. package/dist/versions/v5/common/clerkprovideroptionswrapper-dropped.md +6 -0
  71. package/dist/versions/v5/common/connected-accounts-dropdown.md +15 -0
  72. package/dist/versions/v5/common/emaillinkerrorcode-import-change.md +13 -0
  73. package/dist/versions/v5/common/external-account-avatarurl.md +7 -0
  74. package/dist/versions/v5/common/frontend-api-to-publishable-key.md +1 -1
  75. package/dist/versions/v5/common/isclerkapiresponserror-import-change.md +13 -0
  76. package/dist/versions/v5/common/isemaillinkerror-import-change.md +13 -0
  77. package/dist/versions/v5/common/isknownerror-import-change.md +13 -0
  78. package/dist/versions/v5/common/ismetamaskerror-import-change.md +13 -0
  79. package/dist/versions/v5/common/mfa-dropdown.md +11 -0
  80. package/dist/versions/v5/common/multi-session-ui-changes.md +0 -0
  81. package/dist/versions/v5/common/multisessionappsupport-import-change.md +12 -0
  82. package/dist/versions/v5/common/new-localization-keys.md +133 -0
  83. package/dist/versions/v5/common/organization-getdomains-arguments-change.md +20 -0
  84. package/dist/versions/v5/common/organization-getmembershiprequests-arguments-changed.md +20 -0
  85. package/dist/versions/v5/common/organization-getroles-arguments-changed.md +20 -0
  86. package/dist/versions/v5/common/organization-getroles-return-type.md +0 -0
  87. package/dist/versions/v5/common/organizationprofile-general.md +0 -0
  88. package/dist/versions/v5/common/organizationprofile-settings.md +12 -0
  89. package/dist/versions/v5/common/organizationswitcherpopoveractionbuttontext-removed.md +14 -0
  90. package/dist/versions/v5/common/remove-identitypreview-avatar.md +12 -0
  91. package/dist/versions/v5/common/remove-socialbuttonsblockbuttonarrow.md +10 -0
  92. package/dist/versions/v5/common/removed-localization-keys.md +166 -0
  93. package/dist/versions/v5/common/signoutcallback-to-redirecturl.md +22 -0
  94. package/dist/versions/v5/common/useorganization-invitationlist.md +25 -0
  95. package/dist/versions/v5/common/useorganization-membershiplist.md +25 -0
  96. package/dist/versions/v5/common/useorganizations.md +26 -0
  97. package/dist/versions/v5/common/userbuttonpopoveractionbuttontext-removed.md +14 -0
  98. package/dist/versions/v5/common/userbuttonpopoveractionbuttontext.md +7 -0
  99. package/dist/versions/v5/common/userbuttontrigger-userbuttonbox-invert.md +12 -0
  100. package/dist/versions/v5/common/userprofile-prop.md +8 -0
  101. package/dist/versions/v5/common/userprofile-security.md +8 -0
  102. package/dist/versions/v5/common/withclerk-hof-removed.md +29 -0
  103. package/dist/versions/v5/common/withclerk-removed.md +16 -0
  104. package/dist/versions/v5/common/withsession-hof-removed.md +29 -0
  105. package/dist/versions/v5/common/withsession-removed.md +16 -0
  106. package/dist/versions/v5/common/withuser-hof-removed.md +29 -0
  107. package/dist/versions/v5/common/withuser-removed-2.md +18 -0
  108. package/dist/versions/v5/common/withuser-removed.md +16 -0
  109. package/dist/versions/v5/expo/apikey-to-publishable-key.md +1 -1
  110. package/dist/versions/v5/gatsby/apikey-to-publishable-key.md +1 -1
  111. package/dist/versions/v5/index.js +12 -31
  112. package/dist/versions/v5/js/aftersigninout-behavior-change.md +7 -0
  113. package/dist/versions/v5/js/aftersigninouturl-behavior-change.md +7 -0
  114. package/dist/versions/v5/js/aftersigninurl-behavior-change.md +0 -0
  115. package/dist/versions/v5/js/clerk-isready-removed.md +6 -0
  116. package/dist/versions/v5/js/lastorganizationinvitation-member.md +1 -1
  117. package/dist/versions/v5/js/organization-getdomains-arguments-change.md +20 -0
  118. package/dist/versions/v5/js/organization-getinvitations-arguments-changed.md +20 -0
  119. package/dist/versions/v5/js/organization-getmembershiprequests-arguments-changed.md +20 -0
  120. package/dist/versions/v5/js/organization-getmemberships-arguments-changed.md +20 -0
  121. package/dist/versions/v5/js/organization-getroles-arguments-changed.md +20 -0
  122. package/dist/versions/v5/js/user-getorganizationinvitations-arguments-chanaged.md +20 -0
  123. package/dist/versions/v5/js/user-getorganizationmemberships-arguments-chanaged +0 -0
  124. package/dist/versions/v5/js/user-getorganizationmemberships-arguments-chanaged.md +20 -0
  125. package/dist/versions/v5/js/user-getorganizationsuggestions-arguments-chanaged.md +20 -0
  126. package/dist/versions/v5/next/api-url-value-change.md +1 -0
  127. package/dist/versions/v5/next/auth-import-change.md +13 -0
  128. package/dist/versions/v5/next/auth-middleware-deprecated.md +43 -4
  129. package/dist/versions/v5/next/authmiddleware-import-change.md +13 -0
  130. package/dist/versions/v5/next/buildclerkprops-import-change.md +13 -0
  131. package/dist/versions/v5/next/clerk-import-change.md +12 -0
  132. package/dist/versions/v5/next/clerk-js-version-next-public.md +1 -1
  133. package/dist/versions/v5/next/constants-import-change.md +13 -0
  134. package/dist/versions/v5/next/createauthenticaterequest-import-change.md +13 -0
  135. package/dist/versions/v5/next/createisomorphicrequest-import-change.md +13 -0
  136. package/dist/versions/v5/next/currentuser-import-change.md +13 -0
  137. package/dist/versions/v5/next/decodejwt-import-change.md +13 -0
  138. package/dist/versions/v5/next/emaillinkerrorcode-import-change.md +13 -0
  139. package/dist/versions/v5/next/import-api-url.md +1 -1
  140. package/dist/versions/v5/next/import-api-version.md +1 -1
  141. package/dist/versions/v5/next/import-clerk-js-url.md +1 -1
  142. package/dist/versions/v5/next/import-clerk-js-version.md +1 -1
  143. package/dist/versions/v5/next/import-domain.md +1 -1
  144. package/dist/versions/v5/next/import-is-satellite.md +1 -1
  145. package/dist/versions/v5/next/import-proxy-url.md +1 -1
  146. package/dist/versions/v5/next/import-publishable-key.md +1 -1
  147. package/dist/versions/v5/next/import-secret-key.md +1 -1
  148. package/dist/versions/v5/next/import-sign-in-url.md +1 -1
  149. package/dist/versions/v5/next/import-sign-up-url.md +2 -1
  150. package/dist/versions/v5/next/isclerkapiresponserror-import-change.md +13 -0
  151. package/dist/versions/v5/next/isemaillinkerror-import-change.md +13 -0
  152. package/dist/versions/v5/next/isknownerror-import-change.md +13 -0
  153. package/dist/versions/v5/next/ismetamaskerror-import-change.md +13 -0
  154. package/dist/versions/v5/next/multisessionappsupport-import-change.md +13 -0
  155. package/dist/versions/v5/next/next-public-clerk-js-url.md +6 -0
  156. package/dist/versions/v5/next/redirect-import-change.md +13 -0
  157. package/dist/versions/v5/next/signjwt-import-change.md +13 -0
  158. package/dist/versions/v5/next/verify +0 -0
  159. package/dist/versions/v5/next/verifyjwt-import-change.md +13 -0
  160. package/dist/versions/v5/next/verifytoken-import-change.md +13 -0
  161. package/dist/versions/v5/next/withclerk-removed.md +15 -0
  162. package/dist/versions/v5/next/withsession-removed.md +15 -0
  163. package/dist/versions/v5/next/withuser-removed.md +0 -0
  164. package/dist/versions/v5/node/legacyauthobject-removed.md +26 -0
  165. package/dist/versions/v5/react/afterswitchorganizationurl.md +15 -0
  166. package/dist/versions/v5/react/appearance-organizationpreview-organizationswitcher.md +8 -0
  167. package/dist/versions/v5/react/router-navigate.md +18 -0
  168. package/dist/versions/v5/react/signoutcallback-to- +0 -0
  169. package/dist/versions/v5/react/signoutcallback-to-redirecturl.md +22 -0
  170. package/dist/versions/v5/react/useorganization-invitationlist.md +25 -0
  171. package/dist/versions/v5/react/useorganization-membershiplist.md +24 -0
  172. package/dist/versions/v5/react/useorganizations.md +26 -0
  173. package/dist/versions/v5/react/userprofile-prop.md +7 -0
  174. package/dist/versions/v5/remix/clerkerrorboundary-removed.md +22 -0
  175. package/dist/versions/v5/remix/clerkprovider-frontendapi.md +0 -0
  176. package/dist/versions/v5/remix/createclerkclient-apikey.md +14 -0
  177. package/dist/versions/v5/remix/getauth-apikey.md +16 -0
  178. package/dist/versions/v5/remix/rootauthloader-apikey.md +14 -0
  179. package/dist/versions/v5/remix/rootauthloader-frontendapi.md +14 -0
  180. package/dist/versions/v5/shared/buildrequesturl.md +6 -8
  181. package/dist/versions/v5/shared/getrequesturl.md +6 -0
  182. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: '`MembershipRole` type replaced by `OrganizationCustomRoleKey` type'
3
+ matcher: "(?:\\.orgRole|\\.org_role)"
4
+ ---
5
+
6
+ The `MembershipRole` type was replaced with `OrganizationCustomRoleKey` (related to [roles and permissions](https://clerk.com/docs/organizations/roles-permissions)). An example of where this type might be found:
7
+
8
+ ```js
9
+ import { useAuth } from '@clerk/clerk-react';
10
+
11
+ const { orgRole } = useAuth();
12
+ ```
13
+
14
+ To support the existing roles `admin`, `basic_member`, and `guest_member` apply interface merging using the following snippet:
15
+
16
+ ```js
17
+ interface ClerkAuthorization {
18
+ permission: ''
19
+ role: 'admin' | 'basic_member' | 'guest_member'
20
+ }
21
+ ```
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: '`Organization.logoUrl` -> `.imageUrl`'
3
+ matcher: "\\.logoUrl"
4
+ ---
5
+
6
+ The `logoUrl` property of any `Organization` object has been changed to `imageUrl`.
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: '`OrganizationJSON.logo_url` -> `.imageUrl`'
3
+ matcher: "\\.logo_url"
4
+ ---
5
+
6
+ The `logo_url` property of any `OrganizationJSON` object has been changed to `imageUrl`.
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: '`OrganizationMembershipPublicUserData.profileImageUrl` -> `.imageUrl`'
3
+ matcher: "\\.profileImageUrl"
4
+ ---
5
+
6
+ The `profileImageUrl` property of any `OrganizationMembershipPublicUserData` object has been changed to `imageUrl`.
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: '`OrganizationMembershipPublicUserDataJSON.profile_image_url` -> `.imageUrl`'
3
+ matcher: "\\.profile_image_url"
4
+ ---
5
+
6
+ The `profile_image_url` property of any `OrganizationMembershipPublicUserDataJSON` object has been changed to `imageUrl`.
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: '`pkgVersion` -> `clerkJSVersion`'
3
+ matcher:
4
+ - "loadInterstitialFromLocal\\([\\s\\S]*?pkgVersion:"
5
+ - "loadInterstitialFromBAPI\\([\\s\\S]*?pkgVersion:"
6
+ - "buildPublicInterstitialUrl\\([\\s\\S]*?pkgVersion:"
7
+ matcherFlags: 'm'
8
+ ---
9
+
10
+ The `pkgVersion` parameter was removed from the `loadInterstitialFromLocal`, `loadInterstitialFromBAPI`, and `buildPublicInterstitialUrl` functions. Use `clerkJSVersion` instead. Example:
11
+
12
+ ```diff
13
+ - loadInterstitialFromLocal({ pkgVersion: "..." })
14
+ + loadInterstitialFromLocal({ clerkJSVersion: "..." })
15
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`redirect` import moved to `@clerk/backend/internal`'
3
+ matcher: "import\\s+{[\\s\\S]*?redirect[\\s\\S]*?}\\s+from\\s+['\"]@clerk\\/(backend)['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'backend/internal'
6
+ ---
7
+
8
+ The `redirect` import path has changed from `@clerk/backend` to `@clerk/backend/internal`. You must update your import path in order for it to work correctly. Note that internal imports are not intended for usage and are outside the scope of semver. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { redirect } from "@clerk/backend"
12
+ + import { redirect } from "@clerk/backend/internal"
13
+ ```
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: '`Users.getOrganizationMembershipList` return signature changed'
3
+ matcher: "\\.users\\.getOrganizationMembershipList\\("
4
+ warning: true
5
+ ---
6
+
7
+ The response payload of `Users.getOrganizationMembershipList` was changed as part of the v5 release. Rather than directly returning ` data`, the return signature is now `{ data, totalCount }`. Since backend API responses are paginated, the `totalCount` property is helpful in determining the total number of items in the response easily, and this change in the backend SDK aligns the response shape with what the backend API returns directly.
8
+
9
+ Here's an example of how the response shape would change with this modification:
10
+
11
+ ```diff
12
+ - const data = await clerkClient.users.getOrganizationMembershipList()
13
+ + const { data, totalCount } = await clerkClient.users.getOrganizationMembershipList()
14
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`signJwt` import moved to `@clerk/backend/tokens`'
3
+ matcher: "import\\s+{[\\s\\S]*?signJwt[\\s\\S]*?}\\s+from\\s+['\"]@clerk\\/(backend)['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'backend/tokens'
6
+ ---
7
+
8
+ The `signJwt` import path has changed from `@clerk/backend` to `@clerk/backend/tokens`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made
9
+
10
+ ```diff
11
+ - import { signJwt } from "@clerk/backend"
12
+ + import { signJwt } from "@clerk/backend/tokens"
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`SignJWTError` import moved to `@clerk/backend/errors`'
3
+ matcher: "import\\s+{[\\s\\S]*?SignJWTError[\\s\\S]*?}\\s+from\\s+['\"]@clerk\\/(backend)['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'backend/errors'
6
+ ---
7
+
8
+ The `SignJWTError` import path has changed from `@clerk/backend` to `@clerk/backend/errors`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { SignJWTError } from "@clerk/backend"
12
+ + import { SignJWTError } from "@clerk/backend/errors"
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`TokenVerificationError` import moved to `@clerk/backend/errors`'
3
+ matcher: "import\\s+{[\\s\\S]*?TokenVerificationError[\\s\\S]*?}\\s+from\\s+['\"]@clerk\\/(backend)['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'backend/errors'
6
+ ---
7
+
8
+ The `TokenVerificationError` import path has changed from `@clerk/backend` to `@clerk/backend/errors`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { TokenVerificationError } from "@clerk/backend"
12
+ + import { TokenVerificationError } from "@clerk/backend/errors"
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`TokenVerificationErrorAction` import moved to `@clerk/backend/errors`'
3
+ matcher: "import\\s+{[\\s\\S]*?TokenVerificationErrorAction[\\s\\S]*?}\\s+from\\s+['\"]@clerk\\/(backend)['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'backend/errors'
6
+ ---
7
+
8
+ The `TokenVerificationErrorAction` import path has changed from `@clerk/backend` to `@clerk/backend/errors`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { TokenVerificationErrorAction } from "@clerk/backend"
12
+ + import { TokenVerificationErrorAction } from "@clerk/backend/errors"
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`TokenVerificationErrorCode` import moved to `@clerk/backend/errors`'
3
+ matcher: "import\\s+{[\\s\\S]*?TokenVerificationErrorCode[\\s\\S]*?}\\s+from\\s+['\"]@clerk\\/(backend)['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'backend/errors'
6
+ ---
7
+
8
+ The `TokenVerificationErrorCode` import path has changed from `@clerk/backend` to `@clerk/backend/errors`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { TokenVerificationErrorCode } from "@clerk/backend"
12
+ + import { TokenVerificationErrorCode } from "@clerk/backend/errors"
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`TokenVerificationErrorReason` import moved to `@clerk/backend/errors`'
3
+ matcher: "import\\s+{[\\s\\S]*?TokenVerificationErrorReason[\\s\\S]*?}\\s+from\\s+['\"]@clerk\\/(backend)['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'backend/errors'
6
+ ---
7
+
8
+ The `TokenVerificationErrorReason` import path has changed from `@clerk/backend` to `@clerk/backend/errors`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { TokenVerificationErrorReason } from "@clerk/backend"
12
+ + import { TokenVerificationErrorReason } from "@clerk/backend/errors"
13
+ ```
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: '`User.profileImageUrl` -> `.imageUrl`'
3
+ matcher: "\\.profileImageUrl"
4
+ ---
5
+
6
+ The `profileImageUrl` property of any `User` object has been changed to `imageUrl`.
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: '`UserJSON.profile_image_url` -> `.imageUrl`'
3
+ matcher: "\\.profile_image_url"
4
+ ---
5
+
6
+ The `profile_image_url` property of any `UserJSON` object has been changed to `imageUrl`.
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`verifyJwt` import moved to `@clerk/backend/tokens`'
3
+ matcher: "import\\s+{[\\s\\S]*?verifyJwt[\\s\\S]*?}\\s+from\\s+['\"]@clerk\\/(backend)['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'backend/tokens'
6
+ ---
7
+
8
+ The `verifyJwt` import path has changed from `@clerk/backend` to `@clerk/backend/tokens`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made
9
+
10
+ ```diff
11
+ - import { verifyJwt } from "@clerk/backend"
12
+ + import { verifyJwt } from "@clerk/backend/tokens"
13
+ ```
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: '`afterSignOutUrl` prop behavior change'
3
+ matcher: 'afterSignOutUrl='
4
+ warning: true
5
+ ---
6
+
7
+ The default value of `afterSignOutUrl` has been changed to `/`. The URLs defined in your `Dashboard > Account Portal > Redirects` section will no longer affect these values. Read the [Customizing your Account Portal redirects](https://docs-preview-605.clerkpreview.com/docs/account-portal/custom-redirects) guide to learn how to override these defaults.
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: '`afterSignInUrl` prop behavior change'
3
+ matcher: 'afterSignInUrl='
4
+ warning: true
5
+ ---
6
+
7
+ The default value of `afterSignInUrl` has been changed to `/`. The URLs defined in your `Dashboard > Account Portal > Redirects` section will no longer affect these values. Read the [Customizing your Account Portal redirects](https://docs-preview-605.clerkpreview.com/docs/account-portal/custom-redirects) guide to learn how to override these defaults.
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: '`afterSignInUrl` prop behavior change'
3
+ matcher: 'afterSignInUrl='
4
+ warning: true
5
+ ---
6
+
7
+ The default value of `afterSignInUrl` has been changed to `/`. The URLs defined in your `Dashboard > Account Portal > Redirects` section will no longer affect these values. Read the [Customizing your Account Portal redirects](https://clerk.com/docs/account-portal/custom-redirects) guide to learn how to override these defaults.
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: '`afterSignInUrl` prop behavior change'
3
+ matcher: 'afterSignInUrl='
4
+ warning: true
5
+ ---
6
+
7
+ The default value of `afterSignInUrl` has been changed to `/`. The URLs defined in your `Dashboard > Account Portal > Redirects` section will no longer affect these values. Read the [Customizing your Account Portal redirects](https://clerk.com/docs/account-portal/custom-redirects) guide to learn how to override these defaults.
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: '`afterSignOutUrl` prop behavior change'
3
+ matcher: 'afterSignOutUrl='
4
+ warning: true
5
+ ---
6
+
7
+ The default value of `afterSignOutUrl` has been changed to `/`. The URLs defined in your `Dashboard > Account Portal > Redirects` section will no longer affect these values. Read the [Customizing your Account Portal redirects](https://clerk.com/docs/account-portal/custom-redirects) guide to learn how to override these defaults. If you are setting the value to `/`, you can remove the prop entirely.
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: '`afterSignUpUrl` prop behavior change'
3
+ matcher: 'afterSignUpUrl='
4
+ warning: true
5
+ ---
6
+
7
+ The default value of `afterSignUpUrl` has been changed to `/`. The URLs defined in your `Dashboard > Account Portal > Redirects` section will no longer affect these values. Read the [Customizing your Account Portal redirects](https://clerk.com/docs/account-portal/custom-redirects) guide to learn how to override these defaults.
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: '`afterSwitchOrganizationUrl` -> `afterSelectOrganizationUrl` in `OrganizationSwitcher`'
3
+ matcher: "<OrganizationSwitcher[\\s\\S]*?(afterSwitchOrganizationUrl)=[\\s\\S]*?>"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'afterSelectOrganizationUrl'
6
+ ---
7
+
8
+ The `afterSwitchOrganizationUrl` prop on the `<OrganizationSwitcher />` component has been renamed to `afterSelectOrganizationUrl`. This is a quick and simple rename.
9
+
10
+ ```js
11
+ // before
12
+ <OrganizationSwitcher afterSwitchOrganizationUrl='...' />
13
+
14
+ // after
15
+ <OrganizationSwitcher afterSelectOrganizationUrl='...' />
16
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: 'Back button customization ids change on alternative 2fa methods page'
3
+ image: true
4
+ matcherFlags: 'm'
5
+ matcher:
6
+ - "\\.cl-headerBackIcon"
7
+ - "\\.cl-headerBackRow"
8
+ - "\\.cl-headerBackLink"
9
+ - "elements:\\s+{[\\s\\S]*?headerBackIcon:[\\s\\S]*?}"
10
+ - "elements:\\s+{[\\s\\S]*?headerBackRow:[\\s\\S]*?}"
11
+ - "elements:\\s+{[\\s\\S]*?headerBackLink:[\\s\\S]*?}"
12
+ ---
13
+
14
+ The "back" button on the panel within `<SignIn />` that lists out alternative two factor auth methods has changed location, and there have been some changes to the ids as a result of this:
15
+
16
+ - `headerBackIcon` has been removed, as there is no longer an associated icon
17
+ - `headerBackRow` has been renamed to `backRow` as it's no longer in the header
18
+ - `headerBackLink` has been renamed to `backLink` as it's no longer in the header
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: '`CLERK_API_KEY` replaced by `CLERK_SECRET_KEY`'
3
- matcher: '[^_]CLERK_API_KEY'
3
+ matcher: 'CLERK_API_KEY'
4
4
  ---
5
5
 
6
6
  The `CLERK_API_KEY` environment variable was renamed to `CLERK_SECRET_KEY`. You can visit your [Clerk dashboard](https://dashboard.clerk.com/last-active?path=api-keys) to copy/paste the new keys after choosing your framework. Make sure to update this in all environments (e.g. dev, staging, production).
@@ -0,0 +1,8 @@
1
+ ---
2
+ title: '`elements.organizationPreview__organizationSwitcher` -> `elements.organizationPreview__organizationSwitcherTrigger` in `<OrganizationSwitcher />` appearance prop'
3
+ matcher: "<OrganizationSwitcher[\\s\\S]*?appearance={\\s*{\\s*elements:\\s*{\\s*(organizationPreview__organizationSwitcher)[\\s\\S]*?>"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'organizationPreview__organizationSwitcherTrigger'
6
+ ---
7
+
8
+ If you are using `organizationPreview__organizationSwitcher` as an [appearance prop](https://clerk.com/docs/components/customization/overview#appearance-prop) value to the [`<OrganizationSwitcher />` component](https://clerk.com/docs/references/javascript/clerk/organization-switcher#organization-switcher-component), it must be updated to `organizationPreview__organizationSwitcherTrigger` instead. This is a simple text replacement. However, it should be noted that component designs have been updated as part of v5, so you may need to make adjustments to any appearance prop customizations that have been implemented as a whole.
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: '`button` -> `organizationListCreateOrganizationActionButton` customization id'
3
+ image: true
4
+ replaceWithString: 'organizationListCreateOrganizationActionButton'
5
+ matcherFlags: 'm'
6
+ matcher:
7
+ - "\\.cl-(button)"
8
+ - "elements:\\s+{[\\s\\S]*?(button):[\\s\\S]*?}"
9
+ ---
10
+
11
+ The `button` customization id was used only in one place, for a button to create a new organization in the `<OrganizationList />` component. This id has been removed and replaced by the more appropriately named `organizationListCreateOrganizationActionButton` customization id instead.
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: 'Changes to the `card` customization id'
3
+ warning: true
4
+ matcherFlags: 'm'
5
+ matcher:
6
+ - "\\.cl-card"
7
+ - "elements:\\s+{[\\s\\S]*?card:[\\s\\S]*?}"
8
+ ---
9
+
10
+ The `card` customization id in the previous major version was the main and only container element for components Outside the `card` element we introduced a new `cardBox` id that allows more fine-grained style customization.
11
+
12
+ As a note, if you are changing the background color of `card`, you will also need to also apply the same color on the `footer` id as well. The `footer` now gray by default, and it’s located outside `card`, but inside `cardBox`.
13
+
14
+ We also added a `footerItem` id for more targeted styling of items inside the `footer`.
@@ -0,0 +1,179 @@
1
+ ---
2
+ title: 'Localization keys changed'
3
+ matcherFlags: 'm'
4
+ matcher:
5
+ - 'formFieldLabel__organizationName:'
6
+ - 'formFieldLabel__organizationSlug:'
7
+ - 'formFieldInputPlaceholder__emailAddresses:'
8
+ - 'formFieldInputPlaceholder__organizationSlug:'
9
+ - "signUp:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?subtitle:"
10
+ - "signUp:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?actionText:"
11
+ - "signUp:\\s+{[\\s\\S]*?emailCode:\\s+{[\\s\\S]*?subtitle:"
12
+ - "signUp:\\s+{[\\s\\S]*?phoneCode:\\s+{[\\s\\S]*?subtitle:"
13
+ - "signUp:\\s+{[\\s\\S]*?continue:\\s+{[\\s\\S]*?subtitle:"
14
+ - "signUp:\\s+{[\\s\\S]*?continue:\\s+{[\\s\\S]*?actionText:"
15
+ - "signIn:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?title:"
16
+ - "signIn:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?subtitle:"
17
+ - "signIn:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?actionText:"
18
+ - "signIn:\\s+{[\\s\\S]*?password:\\s+{[\\s\\S]*?subtitle:"
19
+ - "signIn:\\s+{[\\s\\S]*?forgotPasswordAlternativeMethods:\\s+{[\\s\\S]*?label__alternativeMethods:"
20
+ - "signIn:\\s+{[\\s\\S]*?resetPassword:\\s+{[\\s\\S]*?title:"
21
+ - "signIn:\\s+{[\\s\\S]*?phoneCodeMfa:\\s+{[\\s\\S]*?subtitle:"
22
+ - "signIn:\\s+{[\\s\\S]*?totpMfa:\\s+{[\\s\\S]*?subtitle:"
23
+ - "signIn:\\s+{[\\s\\S]*?backupCodeMfa:\\s+{[\\s\\S]*?subtitle:"
24
+ - "userProfile:\\s+{[\\s\\S]*?formButtonPrimary__continue:"
25
+ - "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?headerTitle__account"
26
+ - "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?profileSection:\\s+{[\\s\\S]*?primaryButton:"
27
+ - "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?detailsAction__unverified:"
28
+ - "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?destructiveAction:"
29
+ - "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?phoneCode:\\s+{[\\s\\S]*?destructiveActionLabel:"
30
+ - "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?backupCodes:\\s+{[\\s\\S]*?actionLabel__regenerate:"
31
+ - "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?dangerSection:\\s+{[\\s\\S]*?title:"
32
+ - "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?dangerSection:\\s+{[\\s\\S]*?deleteAccountButton:"
33
+ - "userProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?imageFormSubtitle:"
34
+ - "userProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?imageFormDestructiveActionSubtitle:"
35
+ - "userProfile:\\s+{[\\s\\S]*?phoneNumberPage:\\s+{[\\s\\S]*?title:"
36
+ - "userProfile:\\s+{[\\s\\S]*?phoneNumberPage:\\s+{[\\s\\S]*?infoText:"
37
+ - "userProfile:\\s+{[\\s\\S]*?connectedAccountPage:\\s+{[\\s\\S]*?socialButtonsBlockButton:"
38
+ - "userProfile:\\s+{[\\s\\S]*?mfaPhoneCodePage:\\s+{[\\s\\S]*?subtitle__availablePhoneNumbers:"
39
+ - "userProfile:\\s+{[\\s\\S]*?mfaPhoneCodePage:\\s+{[\\s\\S]*?subtitle__unavailablePhoneNumbers:"
40
+ - "userProfile:\\s+{[\\s\\S]*?deletePage:\\s+{[\\s\\S]*?actionDescription:"
41
+ - "organizationSwitcher:\\s+{[\\s\\S]*?action__createOrganization:"
42
+ - "organizationSwitcher:\\s+{[\\s\\S]*?action__manageOrganization:"
43
+ - "organizationProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?title:"
44
+ - "organizationProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?dangerSection:\\s+{[\\s\\S]*?title:"
45
+ - "organizationProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?dangerSection:\\s+{[\\s\\S]*?leaveOrganization:\\s+{[\\s\\S]*?actionDescription:"
46
+ - "organizationProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?dangerSection:\\s+{[\\s\\S]*?deleteOrganization:\\s+{[\\s\\S]*?actionDescription:"
47
+ - "organizationProfile:\\s+{[\\s\\S]*?invitePage:\\s+{[\\s\\S]*?title:"
48
+ - "organizationProfile:\\s+{[\\s\\S]*?invitePage:\\s+{[\\s\\S]*?subtitle:"
49
+ - "createOrganization:\\s+{[\\s\\S]*?title:"
50
+ - "organizationList:\\s+{[\\s\\S]*?title:"
51
+ - "organizationList:\\s+{[\\s\\S]*?titleWithoutPersonal:"
52
+ ---
53
+
54
+ The values of some keys have been changed on the default [en-US localization object](https://github.com/clerk/javascript/blob/main/packages/localizations/src/en-US.ts). The list below shows you the new defaults (as of writing this guide) which you can either use or overwrite. If you have overridden these values, make sure to double check so you can be sure that your modifications are appropriate.
55
+
56
+ ```js
57
+ const changedValues = {
58
+ formFieldLabel__organizationName: 'Name',
59
+ formFieldLabel__organizationSlug: 'Slug',
60
+ formFieldInputPlaceholder__emailAddresses: 'example@email.com, example2@email.com',
61
+ formFieldInputPlaceholder__organizationSlug: 'my-org',
62
+ signUp: {
63
+ start: {
64
+ subtitle: 'Welcome! Please fill in the details to get started.',
65
+ actionText: 'Already have an account?',
66
+ },
67
+ emailCode: {
68
+ subtitle: 'Enter the verification code sent to your email',
69
+ },
70
+ phoneCode: {
71
+ subtitle: 'Enter the verification code sent to your phone',
72
+ },
73
+ continue: {
74
+ subtitle: 'Please fill in the remaining details to continue.',
75
+ actionText: 'Already have an account?',
76
+ },
77
+ },
78
+ signIn: {
79
+ start: {
80
+ title: 'Sign in to {{applicationName}}',
81
+ subtitle: 'Welcome back! Please sign in to continue',
82
+ actionText: 'Don’t have an account?',
83
+ },
84
+ password: {
85
+ subtitle: 'Enter the password associated with your account',
86
+ },
87
+ forgotPasswordAlternativeMethods: {
88
+ label__alternativeMethods: 'Or, sign in with another method',
89
+ },
90
+ resetPassword: {
91
+ title: 'Set new password',
92
+ },
93
+ phoneCodeMfa: {
94
+ subtitle: 'To continue, please enter the verification code sent to your phone',
95
+ },
96
+ totpMfa: {
97
+ subtitle: 'To continue, please enter the verification code generated by your authenticator app',
98
+ },
99
+ backupCodeMfa: {
100
+ subtitle: 'Your backup code is the one you got when setting up two-step authentication.',
101
+ },
102
+ },
103
+ userProfile: {
104
+ formButtonPrimary__continue: 'Save',
105
+ start: {
106
+ headerTitle__account: 'Profile details',
107
+ profileSection: {
108
+ primaryButton: 'Edit profile',
109
+ },
110
+ emailAddressesSection: {
111
+ detailsAction__unverified: 'Verify',
112
+ destructiveAction: 'Remove email',
113
+ },
114
+ mfaSection: {
115
+ phoneCode: {
116
+ destructiveActionLabel: 'Remove',
117
+ },
118
+ backupCodes: {
119
+ actionLabel__regenerate: 'Regenerate',
120
+ },
121
+ },
122
+ dangerSection: {
123
+ title: 'Account termination',
124
+ deleteAccountButton: 'Delete account',
125
+ },
126
+ },
127
+ profilePage: {
128
+ imageFormSubtitle: 'Upload',
129
+ imageFormDestructiveActionSubtitle: 'Remove',
130
+ },
131
+ phoneNumberPage: {
132
+ title: 'Add a phone number',
133
+ infoText:
134
+ 'A text message containing a verification link will be sent to this phone number. Message and data rates may apply.',
135
+ },
136
+ connectedAccountPage: {
137
+ socialButtonsBlockButton: '{{provider|titleize}}',
138
+ },
139
+ mfaPhoneCodePage: {
140
+ subtitle__availablePhoneNumbers:
141
+ 'Select an existing phone number to register for SMS code two-step verification or add a new one.',
142
+ subtitle__unavailablePhoneNumbers:
143
+ 'There are no available phone numbers to register for SMS code two-step verification, please add a new one.',
144
+ },
145
+ deletePage: {
146
+ actionDescription: 'Type "Delete account" below to continue.',
147
+ },
148
+ },
149
+ organizationSwitcher: {
150
+ action__createOrganization: 'Create organization',
151
+ action__manageOrganization: 'Manage',
152
+ },
153
+ organizationProfile: {
154
+ profilePage: {
155
+ title: 'Update Profile',
156
+ dangerSection: {
157
+ title: 'Danger',
158
+ leaveOrganization: {
159
+ actionDescription: 'Type "{{organizationName}}" below to continue.',
160
+ },
161
+ deleteOrganization: {
162
+ actionDescription: 'Type "{{organizationName}}" below to continue.',
163
+ },
164
+ },
165
+ },
166
+ invitePage: {
167
+ title: 'Invite new members',
168
+ subtitle: 'Enter or paste one or more email addresses, separated by spaces or commas.',
169
+ },
170
+ },
171
+ createOrganization: {
172
+ title: 'Create organization',
173
+ },
174
+ organizationList: {
175
+ title: 'Choose an account',
176
+ titleWithoutPersonal: 'Choose an organization',
177
+ },
178
+ };
179
+ ```
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: '`frontendApi` -> `publishableKey` as prop to `ClerkProvider`'
3
+ matcher: "<ClerkProvider[\\s\\S]*?frontendApi=[\\s\\S]*?>"
4
+ matcherFlags: 'm'
5
+ ---
6
+
7
+ The `frontendApi` prop passed to `<ClerkProvider>` was renamed to `publishableKey`. **Note:** The values are different, so this is not just a key replacement. You can visit your [Clerk dashboard](https://dashboard.clerk.com/last-active?path=api-keys) to copy/paste the new keys after choosing your framework. Make sure to update this in all environments (e.g. dev, staging, production). [More information](/docs/deployments/overview#api-keys-and-environment-variables).
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: '`ClerkProviderOptionsWrapper` type removed'
3
+ matcher: 'ClerkProviderOptionsWrapper'
4
+ ---
5
+
6
+ This type was extending `ClerkProviderProps` with but was not necessary. This type is typically used internally and is not required to be imported and used directly. If needed, import and use `ClerkProviderProps` instead.
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: 'Within `<UserProfile />`, Connected Accounts Added via Dropdown'
3
+ matcher: '(?:<UserProfile|<UserButton)'
4
+ warning: true
5
+ image: true
6
+ ---
7
+
8
+ Within the `<UserProfile />` component (which is also rendered by `<UserButton />`), adding a connected account is now rendered as a dropdown instead of a modal. If you were relying on the modal for any sort of customizations, these customizations will need to be adjusted to the new form factor.
9
+
10
+ New appearance prop keys were added to aid with customization, if desired:
11
+
12
+ - `cl-menuList__connectedAccounts` for styling the list of connected account addition options
13
+ - `cl-menuItem__connectedAccounts` for styling individual items in the connected account options list
14
+ - `cl-menuList__web3Wallets` for styling the list of web3 wallet addition options
15
+ - `cl-menuItem__web3Wallets` for styling individual items in the web3 wallets options list
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`EmailLinkErrorCode` import moved under `/errors`'
3
+ matcher: "import\\s+{[\\s\\S]*?EmailLinkErrorCode[\\s\\S]*?from\\s+['\"]@clerk\\/(clerk-react)[\\s\\S]*?['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'clerk-react/errors'
6
+ ---
7
+
8
+ The `EmailLinkErrorCode` import path has changed from `@clerk/clerk-react` to `@clerk/clerk-react/errors`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { EmailLinkErrorCode } from "@clerk/clerk-react"
12
+ + import { EmailLinkErrorCode } from "@clerk/clerk-react/errors"
13
+ ```
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: '`ExternalAccount.avatarUrl` -> `ExternalAccount.imageUrl`'
3
+ matcher: "\\.avatarUrl"
4
+ replaceWithString: '.imageUrl'
5
+ ---
6
+
7
+ The `avatarUrl` property of any [`ExternalAcccount` object](https://clerk.com/docs/references/javascript/external-account) has been changed to `imageUrl`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: '`CLERK_FRONTEND_API` replaced by `CLERK_PUBLISHABLE_KEY`'
3
- matcher: '[^_]CLERK_FRONTEND_API'
3
+ matcher: 'CLERK_FRONTEND_API'
4
4
  ---
5
5
 
6
6
  The `CLERK_FRONTEND_API` environment variable was renamed to `CLERK_PUBLISHABLE_KEY`. You can visit your [Clerk dashboard](https://dashboard.clerk.com/last-active?path=api-keys) to copy/paste the new keys after choosing your framework. Make sure to update this in all environments (e.g. dev, staging, production). **Note:** The values are different, so this is not just a key replacement. [More information](/docs/deployments/overview#api-keys-and-environment-variables).
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`isClerkAPIResponseError` import moved under `/errors`'
3
+ matcher: "import\\s+{[\\s\\S]*?isClerkAPIResponseError[\\s\\S]*?from\\s+['\"]@clerk\\/(clerk-react)[\\s\\S]*?['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'clerk-react/errors'
6
+ ---
7
+
8
+ The `isClerkAPIResponseError` import path has changed from `@clerk/clerk-react` to `@clerk/clerk-react/errors`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { isClerkAPIResponseError } from "@clerk/clerk-react"
12
+ + import { isClerkAPIResponseError } from "@clerk/clerk-react/errors"
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: '`isEmailLinkError` import moved under `/errors`'
3
+ matcher: "import\\s+{[\\s\\S]*?isEmailLinkError[\\s\\S]*?from\\s+['\"]@clerk\\/(clerk-react)[\\s\\S]*?['\"]"
4
+ matcherFlags: 'm'
5
+ replaceWithString: 'clerk-react/errors'
6
+ ---
7
+
8
+ The `isEmailLinkError` import path has changed from `@clerk/clerk-react` to `@clerk/clerk-react/errors`. You must update your import path in order for it to work correctly. Example below of the fix that needs to be made:
9
+
10
+ ```diff
11
+ - import { isEmailLinkError } from "@clerk/clerk-react"
12
+ + import { isEmailLinkError } from "@clerk/clerk-react/errors"
13
+ ```