@meistrari/auth-core 1.6.0 → 1.7.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.
package/dist/index.d.mts CHANGED
@@ -2,8 +2,8 @@ import * as better_auth_plugins from 'better-auth/plugins';
2
2
  import * as better_auth from 'better-auth';
3
3
  import { JWTPayload } from 'better-auth';
4
4
  import { BetterFetchOption } from 'better-auth/client';
5
- import * as jose from 'jose';
6
5
  import * as _better_auth_sso from '@better-auth/sso';
6
+ import * as better_call from 'better-call';
7
7
  import * as nanostores from 'nanostores';
8
8
  import * as _better_fetch_fetch from '@better-fetch/fetch';
9
9
  export { BetterFetchError as APIError } from '@better-fetch/fetch';
@@ -308,7 +308,7 @@ declare function createAPIClient(apiUrl: string, fetchOptions?: BetterFetchOptio
308
308
  };
309
309
  fetchOptions?: FetchOptions | undefined;
310
310
  }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
311
- status: ("OK" | "CREATED" | "ACCEPTED" | "NO_CONTENT" | "MULTIPLE_CHOICES" | "MOVED_PERMANENTLY" | "FOUND" | "SEE_OTHER" | "NOT_MODIFIED" | "TEMPORARY_REDIRECT" | "BAD_REQUEST" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "NOT_ACCEPTABLE" | "PROXY_AUTHENTICATION_REQUIRED" | "REQUEST_TIMEOUT" | "CONFLICT" | "GONE" | "LENGTH_REQUIRED" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "URI_TOO_LONG" | "UNSUPPORTED_MEDIA_TYPE" | "RANGE_NOT_SATISFIABLE" | "EXPECTATION_FAILED" | "I'M_A_TEAPOT" | "MISDIRECTED_REQUEST" | "UNPROCESSABLE_ENTITY" | "LOCKED" | "FAILED_DEPENDENCY" | "TOO_EARLY" | "UPGRADE_REQUIRED" | "PRECONDITION_REQUIRED" | "TOO_MANY_REQUESTS" | "REQUEST_HEADER_FIELDS_TOO_LARGE" | "UNAVAILABLE_FOR_LEGAL_REASONS" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "HTTP_VERSION_NOT_SUPPORTED" | "VARIANT_ALSO_NEGOTIATES" | "INSUFFICIENT_STORAGE" | "LOOP_DETECTED" | "NOT_EXTENDED" | "NETWORK_AUTHENTICATION_REQUIRED") | better_auth.Status;
311
+ status: ("OK" | "CREATED" | "ACCEPTED" | "NO_CONTENT" | "MULTIPLE_CHOICES" | "MOVED_PERMANENTLY" | "FOUND" | "SEE_OTHER" | "NOT_MODIFIED" | "TEMPORARY_REDIRECT" | "BAD_REQUEST" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "NOT_ACCEPTABLE" | "PROXY_AUTHENTICATION_REQUIRED" | "REQUEST_TIMEOUT" | "CONFLICT" | "GONE" | "LENGTH_REQUIRED" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "URI_TOO_LONG" | "UNSUPPORTED_MEDIA_TYPE" | "RANGE_NOT_SATISFIABLE" | "EXPECTATION_FAILED" | "I'M_A_TEAPOT" | "MISDIRECTED_REQUEST" | "UNPROCESSABLE_ENTITY" | "LOCKED" | "FAILED_DEPENDENCY" | "TOO_EARLY" | "UPGRADE_REQUIRED" | "PRECONDITION_REQUIRED" | "TOO_MANY_REQUESTS" | "REQUEST_HEADER_FIELDS_TOO_LARGE" | "UNAVAILABLE_FOR_LEGAL_REASONS" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "HTTP_VERSION_NOT_SUPPORTED" | "VARIANT_ALSO_NEGOTIATES" | "INSUFFICIENT_STORAGE" | "LOOP_DETECTED" | "NOT_EXTENDED" | "NETWORK_AUTHENTICATION_REQUIRED") | better_call.Status;
312
312
  body: ({
313
313
  message?: string;
314
314
  code?: string;
@@ -2728,6 +2728,17 @@ declare function createAPIClient(apiUrl: string, fetchOptions?: BetterFetchOptio
2728
2728
  data: WhoAmIResponse;
2729
2729
  error: null;
2730
2730
  }>;
2731
+ switchOrganization: (organizationId: string, accessToken?: string) => Promise<{
2732
+ data: null;
2733
+ error: {
2734
+ message?: string | undefined;
2735
+ status: number;
2736
+ statusText: string;
2737
+ };
2738
+ } | {
2739
+ data: CompleteAuthorizationFlowResponse;
2740
+ error: null;
2741
+ }>;
2731
2742
  };
2732
2743
  } & {
2733
2744
  $Infer: {
@@ -2847,7 +2858,7 @@ declare function createAPIClient(apiUrl: string, fetchOptions?: BetterFetchOptio
2847
2858
  statusText: string;
2848
2859
  };
2849
2860
  } | {
2850
- data: jose.JSONWebKeySet;
2861
+ data: better_auth.JSONWebKeySet;
2851
2862
  error: null;
2852
2863
  }>;
2853
2864
  } & {
@@ -3260,7 +3271,7 @@ declare const stub: {
3260
3271
  };
3261
3272
  fetchOptions?: FetchOptions | undefined;
3262
3273
  }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
3263
- status: ("OK" | "CREATED" | "ACCEPTED" | "NO_CONTENT" | "MULTIPLE_CHOICES" | "MOVED_PERMANENTLY" | "FOUND" | "SEE_OTHER" | "NOT_MODIFIED" | "TEMPORARY_REDIRECT" | "BAD_REQUEST" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "NOT_ACCEPTABLE" | "PROXY_AUTHENTICATION_REQUIRED" | "REQUEST_TIMEOUT" | "CONFLICT" | "GONE" | "LENGTH_REQUIRED" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "URI_TOO_LONG" | "UNSUPPORTED_MEDIA_TYPE" | "RANGE_NOT_SATISFIABLE" | "EXPECTATION_FAILED" | "I'M_A_TEAPOT" | "MISDIRECTED_REQUEST" | "UNPROCESSABLE_ENTITY" | "LOCKED" | "FAILED_DEPENDENCY" | "TOO_EARLY" | "UPGRADE_REQUIRED" | "PRECONDITION_REQUIRED" | "TOO_MANY_REQUESTS" | "REQUEST_HEADER_FIELDS_TOO_LARGE" | "UNAVAILABLE_FOR_LEGAL_REASONS" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "HTTP_VERSION_NOT_SUPPORTED" | "VARIANT_ALSO_NEGOTIATES" | "INSUFFICIENT_STORAGE" | "LOOP_DETECTED" | "NOT_EXTENDED" | "NETWORK_AUTHENTICATION_REQUIRED") | better_auth.Status;
3274
+ status: ("OK" | "CREATED" | "ACCEPTED" | "NO_CONTENT" | "MULTIPLE_CHOICES" | "MOVED_PERMANENTLY" | "FOUND" | "SEE_OTHER" | "NOT_MODIFIED" | "TEMPORARY_REDIRECT" | "BAD_REQUEST" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "NOT_ACCEPTABLE" | "PROXY_AUTHENTICATION_REQUIRED" | "REQUEST_TIMEOUT" | "CONFLICT" | "GONE" | "LENGTH_REQUIRED" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "URI_TOO_LONG" | "UNSUPPORTED_MEDIA_TYPE" | "RANGE_NOT_SATISFIABLE" | "EXPECTATION_FAILED" | "I'M_A_TEAPOT" | "MISDIRECTED_REQUEST" | "UNPROCESSABLE_ENTITY" | "LOCKED" | "FAILED_DEPENDENCY" | "TOO_EARLY" | "UPGRADE_REQUIRED" | "PRECONDITION_REQUIRED" | "TOO_MANY_REQUESTS" | "REQUEST_HEADER_FIELDS_TOO_LARGE" | "UNAVAILABLE_FOR_LEGAL_REASONS" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "HTTP_VERSION_NOT_SUPPORTED" | "VARIANT_ALSO_NEGOTIATES" | "INSUFFICIENT_STORAGE" | "LOOP_DETECTED" | "NOT_EXTENDED" | "NETWORK_AUTHENTICATION_REQUIRED") | better_call.Status;
3264
3275
  body: ({
3265
3276
  message?: string;
3266
3277
  code?: string;
@@ -5680,6 +5691,17 @@ declare const stub: {
5680
5691
  data: WhoAmIResponse;
5681
5692
  error: null;
5682
5693
  }>;
5694
+ switchOrganization: (organizationId: string, accessToken?: string) => Promise<{
5695
+ data: null;
5696
+ error: {
5697
+ message?: string | undefined;
5698
+ status: number;
5699
+ statusText: string;
5700
+ };
5701
+ } | {
5702
+ data: CompleteAuthorizationFlowResponse;
5703
+ error: null;
5704
+ }>;
5683
5705
  };
5684
5706
  } & {
5685
5707
  $Infer: {
@@ -5799,7 +5821,7 @@ declare const stub: {
5799
5821
  statusText: string;
5800
5822
  };
5801
5823
  } | {
5802
- data: jose.JSONWebKeySet;
5824
+ data: better_auth.JSONWebKeySet;
5803
5825
  error: null;
5804
5826
  }>;
5805
5827
  } & {
@@ -6233,6 +6255,18 @@ declare class ApplicationService {
6233
6255
  * @returns The current user and organization
6234
6256
  */
6235
6257
  whoAmI(accessToken?: string): Promise<WhoAmIResponse>;
6258
+ /**
6259
+ * Switches the active organization for the authenticated user.
6260
+ *
6261
+ * Issues new access and refresh tokens scoped to the specified organization.
6262
+ * The target organization must be entitled to the application and the entitlement's
6263
+ * access rules must allow the current user.
6264
+ *
6265
+ * @param organizationId - The ID of the organization to switch to
6266
+ * @param accessToken - Optional access token for authentication (uses cookie if not provided)
6267
+ * @returns New authentication tokens and user/organization details
6268
+ */
6269
+ switchOrganization(organizationId: string, accessToken?: string): Promise<CompleteAuthorizationFlowResponse>;
6236
6270
  }
6237
6271
 
6238
6272
  type UpdateOrganizationPayload = Partial<Pick<ExtendedOrganization, 'name' | 'logo' | 'settings'>>;
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import * as better_auth_plugins from 'better-auth/plugins';
2
2
  import * as better_auth from 'better-auth';
3
3
  import { JWTPayload } from 'better-auth';
4
4
  import { BetterFetchOption } from 'better-auth/client';
5
- import * as jose from 'jose';
6
5
  import * as _better_auth_sso from '@better-auth/sso';
6
+ import * as better_call from 'better-call';
7
7
  import * as nanostores from 'nanostores';
8
8
  import * as _better_fetch_fetch from '@better-fetch/fetch';
9
9
  export { BetterFetchError as APIError } from '@better-fetch/fetch';
@@ -308,7 +308,7 @@ declare function createAPIClient(apiUrl: string, fetchOptions?: BetterFetchOptio
308
308
  };
309
309
  fetchOptions?: FetchOptions | undefined;
310
310
  }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
311
- status: ("OK" | "CREATED" | "ACCEPTED" | "NO_CONTENT" | "MULTIPLE_CHOICES" | "MOVED_PERMANENTLY" | "FOUND" | "SEE_OTHER" | "NOT_MODIFIED" | "TEMPORARY_REDIRECT" | "BAD_REQUEST" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "NOT_ACCEPTABLE" | "PROXY_AUTHENTICATION_REQUIRED" | "REQUEST_TIMEOUT" | "CONFLICT" | "GONE" | "LENGTH_REQUIRED" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "URI_TOO_LONG" | "UNSUPPORTED_MEDIA_TYPE" | "RANGE_NOT_SATISFIABLE" | "EXPECTATION_FAILED" | "I'M_A_TEAPOT" | "MISDIRECTED_REQUEST" | "UNPROCESSABLE_ENTITY" | "LOCKED" | "FAILED_DEPENDENCY" | "TOO_EARLY" | "UPGRADE_REQUIRED" | "PRECONDITION_REQUIRED" | "TOO_MANY_REQUESTS" | "REQUEST_HEADER_FIELDS_TOO_LARGE" | "UNAVAILABLE_FOR_LEGAL_REASONS" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "HTTP_VERSION_NOT_SUPPORTED" | "VARIANT_ALSO_NEGOTIATES" | "INSUFFICIENT_STORAGE" | "LOOP_DETECTED" | "NOT_EXTENDED" | "NETWORK_AUTHENTICATION_REQUIRED") | better_auth.Status;
311
+ status: ("OK" | "CREATED" | "ACCEPTED" | "NO_CONTENT" | "MULTIPLE_CHOICES" | "MOVED_PERMANENTLY" | "FOUND" | "SEE_OTHER" | "NOT_MODIFIED" | "TEMPORARY_REDIRECT" | "BAD_REQUEST" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "NOT_ACCEPTABLE" | "PROXY_AUTHENTICATION_REQUIRED" | "REQUEST_TIMEOUT" | "CONFLICT" | "GONE" | "LENGTH_REQUIRED" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "URI_TOO_LONG" | "UNSUPPORTED_MEDIA_TYPE" | "RANGE_NOT_SATISFIABLE" | "EXPECTATION_FAILED" | "I'M_A_TEAPOT" | "MISDIRECTED_REQUEST" | "UNPROCESSABLE_ENTITY" | "LOCKED" | "FAILED_DEPENDENCY" | "TOO_EARLY" | "UPGRADE_REQUIRED" | "PRECONDITION_REQUIRED" | "TOO_MANY_REQUESTS" | "REQUEST_HEADER_FIELDS_TOO_LARGE" | "UNAVAILABLE_FOR_LEGAL_REASONS" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "HTTP_VERSION_NOT_SUPPORTED" | "VARIANT_ALSO_NEGOTIATES" | "INSUFFICIENT_STORAGE" | "LOOP_DETECTED" | "NOT_EXTENDED" | "NETWORK_AUTHENTICATION_REQUIRED") | better_call.Status;
312
312
  body: ({
313
313
  message?: string;
314
314
  code?: string;
@@ -2728,6 +2728,17 @@ declare function createAPIClient(apiUrl: string, fetchOptions?: BetterFetchOptio
2728
2728
  data: WhoAmIResponse;
2729
2729
  error: null;
2730
2730
  }>;
2731
+ switchOrganization: (organizationId: string, accessToken?: string) => Promise<{
2732
+ data: null;
2733
+ error: {
2734
+ message?: string | undefined;
2735
+ status: number;
2736
+ statusText: string;
2737
+ };
2738
+ } | {
2739
+ data: CompleteAuthorizationFlowResponse;
2740
+ error: null;
2741
+ }>;
2731
2742
  };
2732
2743
  } & {
2733
2744
  $Infer: {
@@ -2847,7 +2858,7 @@ declare function createAPIClient(apiUrl: string, fetchOptions?: BetterFetchOptio
2847
2858
  statusText: string;
2848
2859
  };
2849
2860
  } | {
2850
- data: jose.JSONWebKeySet;
2861
+ data: better_auth.JSONWebKeySet;
2851
2862
  error: null;
2852
2863
  }>;
2853
2864
  } & {
@@ -3260,7 +3271,7 @@ declare const stub: {
3260
3271
  };
3261
3272
  fetchOptions?: FetchOptions | undefined;
3262
3273
  }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
3263
- status: ("OK" | "CREATED" | "ACCEPTED" | "NO_CONTENT" | "MULTIPLE_CHOICES" | "MOVED_PERMANENTLY" | "FOUND" | "SEE_OTHER" | "NOT_MODIFIED" | "TEMPORARY_REDIRECT" | "BAD_REQUEST" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "NOT_ACCEPTABLE" | "PROXY_AUTHENTICATION_REQUIRED" | "REQUEST_TIMEOUT" | "CONFLICT" | "GONE" | "LENGTH_REQUIRED" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "URI_TOO_LONG" | "UNSUPPORTED_MEDIA_TYPE" | "RANGE_NOT_SATISFIABLE" | "EXPECTATION_FAILED" | "I'M_A_TEAPOT" | "MISDIRECTED_REQUEST" | "UNPROCESSABLE_ENTITY" | "LOCKED" | "FAILED_DEPENDENCY" | "TOO_EARLY" | "UPGRADE_REQUIRED" | "PRECONDITION_REQUIRED" | "TOO_MANY_REQUESTS" | "REQUEST_HEADER_FIELDS_TOO_LARGE" | "UNAVAILABLE_FOR_LEGAL_REASONS" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "HTTP_VERSION_NOT_SUPPORTED" | "VARIANT_ALSO_NEGOTIATES" | "INSUFFICIENT_STORAGE" | "LOOP_DETECTED" | "NOT_EXTENDED" | "NETWORK_AUTHENTICATION_REQUIRED") | better_auth.Status;
3274
+ status: ("OK" | "CREATED" | "ACCEPTED" | "NO_CONTENT" | "MULTIPLE_CHOICES" | "MOVED_PERMANENTLY" | "FOUND" | "SEE_OTHER" | "NOT_MODIFIED" | "TEMPORARY_REDIRECT" | "BAD_REQUEST" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "NOT_ACCEPTABLE" | "PROXY_AUTHENTICATION_REQUIRED" | "REQUEST_TIMEOUT" | "CONFLICT" | "GONE" | "LENGTH_REQUIRED" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "URI_TOO_LONG" | "UNSUPPORTED_MEDIA_TYPE" | "RANGE_NOT_SATISFIABLE" | "EXPECTATION_FAILED" | "I'M_A_TEAPOT" | "MISDIRECTED_REQUEST" | "UNPROCESSABLE_ENTITY" | "LOCKED" | "FAILED_DEPENDENCY" | "TOO_EARLY" | "UPGRADE_REQUIRED" | "PRECONDITION_REQUIRED" | "TOO_MANY_REQUESTS" | "REQUEST_HEADER_FIELDS_TOO_LARGE" | "UNAVAILABLE_FOR_LEGAL_REASONS" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "HTTP_VERSION_NOT_SUPPORTED" | "VARIANT_ALSO_NEGOTIATES" | "INSUFFICIENT_STORAGE" | "LOOP_DETECTED" | "NOT_EXTENDED" | "NETWORK_AUTHENTICATION_REQUIRED") | better_call.Status;
3264
3275
  body: ({
3265
3276
  message?: string;
3266
3277
  code?: string;
@@ -5680,6 +5691,17 @@ declare const stub: {
5680
5691
  data: WhoAmIResponse;
5681
5692
  error: null;
5682
5693
  }>;
5694
+ switchOrganization: (organizationId: string, accessToken?: string) => Promise<{
5695
+ data: null;
5696
+ error: {
5697
+ message?: string | undefined;
5698
+ status: number;
5699
+ statusText: string;
5700
+ };
5701
+ } | {
5702
+ data: CompleteAuthorizationFlowResponse;
5703
+ error: null;
5704
+ }>;
5683
5705
  };
5684
5706
  } & {
5685
5707
  $Infer: {
@@ -5799,7 +5821,7 @@ declare const stub: {
5799
5821
  statusText: string;
5800
5822
  };
5801
5823
  } | {
5802
- data: jose.JSONWebKeySet;
5824
+ data: better_auth.JSONWebKeySet;
5803
5825
  error: null;
5804
5826
  }>;
5805
5827
  } & {
@@ -6233,6 +6255,18 @@ declare class ApplicationService {
6233
6255
  * @returns The current user and organization
6234
6256
  */
6235
6257
  whoAmI(accessToken?: string): Promise<WhoAmIResponse>;
6258
+ /**
6259
+ * Switches the active organization for the authenticated user.
6260
+ *
6261
+ * Issues new access and refresh tokens scoped to the specified organization.
6262
+ * The target organization must be entitled to the application and the entitlement's
6263
+ * access rules must allow the current user.
6264
+ *
6265
+ * @param organizationId - The ID of the organization to switch to
6266
+ * @param accessToken - Optional access token for authentication (uses cookie if not provided)
6267
+ * @returns New authentication tokens and user/organization details
6268
+ */
6269
+ switchOrganization(organizationId: string, accessToken?: string): Promise<CompleteAuthorizationFlowResponse>;
6236
6270
  }
6237
6271
 
6238
6272
  type UpdateOrganizationPayload = Partial<Pick<ExtendedOrganization, 'name' | 'logo' | 'settings'>>;
package/dist/index.mjs CHANGED
@@ -6,7 +6,7 @@ import { createAccessControl } from 'better-auth/plugins/access';
6
6
  import { defaultStatements } from 'better-auth/plugins/organization/access';
7
7
  export { BetterFetchError as APIError } from '@better-fetch/fetch';
8
8
 
9
- const version = "1.6.0";
9
+ const version = "1.7.0";
10
10
 
11
11
  const statements = {
12
12
  ...defaultStatements,
@@ -115,6 +115,19 @@ function applicationsPluginClient() {
115
115
  method: "GET",
116
116
  headers
117
117
  });
118
+ },
119
+ switchOrganization: async (organizationId, accessToken) => {
120
+ const headers = new Headers();
121
+ if (accessToken) {
122
+ headers.set("Cookie", `tela-access-token=${accessToken}`);
123
+ }
124
+ return await $fetch("/applications/switch-organization", {
125
+ method: "POST",
126
+ headers,
127
+ body: {
128
+ organizationId
129
+ }
130
+ });
118
131
  }
119
132
  }
120
133
  };
@@ -295,6 +308,24 @@ class ApplicationService {
295
308
  }
296
309
  return response.data;
297
310
  }
311
+ /**
312
+ * Switches the active organization for the authenticated user.
313
+ *
314
+ * Issues new access and refresh tokens scoped to the specified organization.
315
+ * The target organization must be entitled to the application and the entitlement's
316
+ * access rules must allow the current user.
317
+ *
318
+ * @param organizationId - The ID of the organization to switch to
319
+ * @param accessToken - Optional access token for authentication (uses cookie if not provided)
320
+ * @returns New authentication tokens and user/organization details
321
+ */
322
+ async switchOrganization(organizationId, accessToken) {
323
+ const response = await this.client.applications.switchOrganization(organizationId, accessToken);
324
+ if (!response.data) {
325
+ throw new Error("No data returned from the API", { cause: response.error });
326
+ }
327
+ return response.data;
328
+ }
298
329
  }
299
330
 
300
331
  class OrganizationService {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meistrari/auth-core",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {