Skip to content
5 changes: 5 additions & 0 deletions .changeset/forty-crews-fetch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@clerk/clerk-js': patch
---

Use our deprecate utility to log warnings about deprecated usage of Organization.getMemberships
10 changes: 10 additions & 0 deletions .changeset/four-chairs-lay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
'@clerk/clerk-js': patch
---

Apply deprecation warnings clerk-js package for:
- Organization.create() using string parameter
- Organization.retrieve() `limit` & `offset`
- Clerk.getOrganizationMemberships()
- `svgUrl`
- `avatarUrl`/`logoUrl`/`faviconUrl`/`profileImageUrl`
2 changes: 2 additions & 0 deletions packages/clerk-js/src/core/clerk.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type { LocalStorageBroadcastChannel } from '@clerk/shared';
import {
addClerkPrefix,
deprecated,
handleValueOrFn,
inClientSide,
is4xxError,
Expand Down Expand Up @@ -1080,6 +1081,7 @@ export default class Clerk implements ClerkInterface {
* @deprecated use User.getOrganizationMemberships
*/
public getOrganizationMemberships = async (): Promise<OrganizationMembership[]> => {
deprecated('getOrganizationMemberships', 'Use User.getOrganizationMemberships');
return await OrganizationMembership.retrieve();
};

Expand Down
14 changes: 10 additions & 4 deletions packages/clerk-js/src/core/resources/DisplayConfig.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { deprecatedProperty } from '@clerk/shared';
import type { DisplayConfigJSON, DisplayConfigResource, DisplayThemeJSON, PreferredSignInStrategy } from '@clerk/types';

import { BaseResource } from './internal';
Expand All @@ -18,9 +19,13 @@ export class DisplayConfig extends BaseResource implements DisplayConfigResource
instanceEnvironmentType!: string;
faviconImageUrl!: string;
logoImageUrl!: string;
// TODO: Remove
/**
* @deprecated Use `logoImageUrl` instead.
*/
logoUrl!: string;
// TODO: Remove
/**
* @deprecated Use `faviconImageUrl` instead.
*/
faviconUrl!: string;
preferredSignInStrategy!: PreferredSignInStrategy;
signInUrl!: string;
Expand Down Expand Up @@ -52,9 +57,7 @@ export class DisplayConfig extends BaseResource implements DisplayConfigResource
this.preferredSignInStrategy = data.preferred_sign_in_strategy;
this.logoImageUrl = data.logo_image_url;
this.faviconImageUrl = data.favicon_image_url;
// TODO: Remove
this.logoUrl = data.logo_url;
// TODO: Remove
this.faviconUrl = data.favicon_url;
this.homeUrl = data.home_url;
this.signInUrl = data.sign_in_url;
Expand All @@ -77,3 +80,6 @@ export class DisplayConfig extends BaseResource implements DisplayConfigResource
return this;
}
}

deprecatedProperty(DisplayConfig, 'logoUrl', 'Use `logoImageUrl` instead.');
deprecatedProperty(DisplayConfig, 'faviconUrl', 'Use `faviconImageUrl` instead.');
4 changes: 3 additions & 1 deletion packages/clerk-js/src/core/resources/ExternalAccount.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { titleize } from '@clerk/shared';
import { deprecatedProperty, titleize } from '@clerk/shared';
import type {
ExternalAccountJSON,
ExternalAccountResource,
Expand Down Expand Up @@ -84,3 +84,5 @@ export class ExternalAccount extends BaseResource implements ExternalAccountReso
return this.username || this.emailAddress || this.label;
}
}

deprecatedProperty(ExternalAccount, 'avatarUrl', 'Use `imageUrl` instead.');
22 changes: 21 additions & 1 deletion packages/clerk-js/src/core/resources/Organization.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { deprecated } from '@clerk/shared';
import { deprecated, deprecatedProperty } from '@clerk/shared';
import type {
AddMemberParams,
ClerkPaginatedResponse,
Expand All @@ -24,6 +24,7 @@ import type {
UpdateMembershipParams,
UpdateOrganizationParams,
} from '@clerk/types';
import type { GetMembershipsParams } from '@clerk/types';

import { unixEpochToDate } from '../../utils/date';
import { convertPageToOffset } from '../../utils/pagesToOffset';
Expand Down Expand Up @@ -67,6 +68,11 @@ export class Organization extends BaseResource implements OrganizationResource {
if (typeof paramsOrName === 'string') {
// DX: Deprecated v3.5.2
name = paramsOrName;
deprecated(
'create',
'Calling `create` with a string is deprecated. Use an object of type CreateOrganizationParams instead.',
'organization:create',
);
} else {
name = paramsOrName.name;
slug = paramsOrName.slug;
Expand Down Expand Up @@ -161,6 +167,18 @@ export class Organization extends BaseResource implements OrganizationResource {

getMemberships: GetMemberships = async getMembershipsParams => {
const isDeprecatedParams = typeof getMembershipsParams === 'undefined' || !getMembershipsParams?.paginated;

if (!(getMembershipsParams as GetMembershipsParams)?.limit) {
deprecated(
'limit',
'Use `pageSize` instead in Organization.getMemberships.',
'organization:getMemberships:limit',
);
}
if (!(getMembershipsParams as GetMembershipsParams)?.offset) {
deprecated('offset', 'Use `initialPage` instead in Organization.limit.', 'organization:getMemberships:offset');
}

return await BaseResource._fetch({
path: `/organizations/${this.id}/memberships`,
method: 'GET',
Expand Down Expand Up @@ -338,3 +356,5 @@ export class Organization extends BaseResource implements OrganizationResource {
return this.fromJSON(currentOrganization?.organization as OrganizationJSON);
}
}

deprecatedProperty(Organization, 'logoUrl', 'Use `imageUrl` instead.');
20 changes: 20 additions & 0 deletions packages/clerk-js/src/core/resources/OrganizationMembership.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { deprecated } from '@clerk/shared';
import type {
ClerkPaginatedResponse,
ClerkResourceReloadParams,
Expand Down Expand Up @@ -29,6 +30,22 @@ export class OrganizationMembership extends BaseResource implements Organization
static retrieve: GetOrganizationMembershipsClass = async retrieveMembershipsParams => {
const isDeprecatedParams =
typeof retrieveMembershipsParams === 'undefined' || !retrieveMembershipsParams?.paginated;

if (!(retrieveMembershipsParams as RetrieveMembershipsParams)?.limit) {
deprecated(
'limit',
'Use `pageSize` instead in OrganizationMembership.retrieve.',
'organization-membership:limit',
);
}
if (!(retrieveMembershipsParams as RetrieveMembershipsParams)?.offset) {
deprecated(
'offset',
'Use `initialPage` instead in OrganizationMembership.retrieve.',
'organization-membership:offset',
);
}

return await BaseResource._fetch({
path: '/me/organization_memberships',
method: 'GET',
Expand Down Expand Up @@ -121,6 +138,9 @@ export class OrganizationMembership extends BaseResource implements Organization
}
}

// TODO(@dimkl): deprecate nested property
// deprecatedProperty(OrganizationMembership, 'publicUserData.profileImageUrl', 'Use `imageUrl` instead.');

export type UpdateOrganizationMembershipParams = {
role: MembershipRole;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,6 @@ export class OrganizationMembershipRequest extends BaseResource implements Organ
return this;
}
}

// TODO(@dimkl): deprecate nested property
// deprecatedProperty(OrganizationMembershipRequest, 'publicUserData.profileImageUrl', 'Use `imageUrl` instead.');
3 changes: 3 additions & 0 deletions packages/clerk-js/src/core/resources/User.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { deprecatedProperty } from '@clerk/shared';
import type {
BackupCodeJSON,
BackupCodeResource,
Expand Down Expand Up @@ -347,3 +348,5 @@ export class User extends BaseResource implements UserResource {
return this;
}
}

deprecatedProperty(User, 'profileImageUrl', 'Use `imageUrl` instead.');
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ Organization {
"imageUrl": "https://clerk.com",
"inviteMember": [Function],
"inviteMembers": [Function],
"logoUrl": "https://url-for-logo.png",
"maxAllowedMemberships": 3,
"membersCount": 1,
"name": "test_name",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ OrganizationMembership {
"imageUrl": "https://clerk.com",
"inviteMember": [Function],
"inviteMembers": [Function],
"logoUrl": "https://path-to-logo.png",
"maxAllowedMemberships": 3,
"membersCount": 1,
"name": "test_name",
Expand Down
2 changes: 2 additions & 0 deletions packages/clerk-js/src/ui/common/constants.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { deprecated } from '@clerk/shared';
import type { Attribute, Web3Provider } from '@clerk/types';

import type { LocalizationKey } from '../localization/localizationKeys';
Expand Down Expand Up @@ -102,6 +103,7 @@ export function getWeb3ProviderData(name: Web3Provider): Web3ProviderData | unde
* @deprecated In favor of iconImageUrl
*/
export function svgUrl(id: string): string {
deprecated('svgUrl', 'Use `iconImageUrl` instead');
return `https://images.clerk.com/static/${id}.svg`;
}

Expand Down