@meistrari/auth-nuxt 3.11.0 → 3.12.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/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meistrari/auth-nuxt",
3
3
  "configKey": "telaAuth",
4
- "version": "3.11.0",
4
+ "version": "3.12.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
@@ -1,4 +1,4 @@
1
- import type { AdminOrganization, CreateAdminOrganizationOptions, GetAdminOrganizationOptions, ListAdminOrganizationMembersOptions, ListAdminOrganizationMembersResult, ListAdminOrganizationsOptions, ListAdminOrganizationsResult, ListAdminUsersOptions, ListAdminUsersResult, UpdateAdminOrganizationOptions } from '@meistrari/auth-core';
1
+ import type { AdminOrganization, CreateAdminOrganizationOptions, GetAdminOrganizationOptions, ListAdminApplicationsOptions, ListAdminApplicationsResult, ListAdminOrganizationMembersOptions, ListAdminOrganizationMembersResult, ListAdminOrganizationsOptions, ListAdminOrganizationsResult, ListAdminUsersOptions, ListAdminUsersResult, UpdateAdminOrganizationOptions } from '@meistrari/auth-core';
2
2
  export interface UseTelaAdminReturn {
3
3
  /**
4
4
  * Lists users from the Better Auth `user` table as a global admin.
@@ -6,6 +6,12 @@ export interface UseTelaAdminReturn {
6
6
  * @returns The paginated user listing
7
7
  */
8
8
  listUsers: (options?: ListAdminUsersOptions) => Promise<ListAdminUsersResult>;
9
+ /**
10
+ * Lists applications as a global admin, optionally filtered by organization.
11
+ * @param options - Pagination, ordering, organization filter, and search options
12
+ * @returns The application listing with entitlement details
13
+ */
14
+ listApplications: (options?: ListAdminApplicationsOptions) => Promise<ListAdminApplicationsResult>;
9
15
  /**
10
16
  * Lists all organizations as a global admin, optionally with member and
11
17
  * application previews and totals when a preview size is requested.
@@ -1,11 +1,54 @@
1
1
  import { useCookie, useRuntimeConfig } from "#app";
2
2
  import { createNuxtAuthClient } from "../shared.js";
3
+ function buildListApplicationsUrl(apiUrl, options = {}) {
4
+ const base = apiUrl.endsWith("/") ? apiUrl : `${apiUrl}/`;
5
+ const url = new URL("applications/", base);
6
+ if (options.limit !== void 0)
7
+ url.searchParams.set("limit", String(options.limit));
8
+ if (options.membersPreview !== void 0)
9
+ url.searchParams.set("membersPreview", String(options.membersPreview));
10
+ if (options.offset !== void 0)
11
+ url.searchParams.set("offset", String(options.offset));
12
+ if (options.orderBy)
13
+ url.searchParams.set("orderBy", options.orderBy);
14
+ if (options.orderDirection)
15
+ url.searchParams.set("orderDirection", options.orderDirection);
16
+ if (options.organizationId)
17
+ url.searchParams.set("organizationId", options.organizationId);
18
+ if (options.search)
19
+ url.searchParams.set("search", options.search);
20
+ return url;
21
+ }
22
+ async function parseAdminResponseError(response) {
23
+ try {
24
+ const body = await response.json();
25
+ return body.error ?? body.message ?? response.statusText;
26
+ } catch {
27
+ return response.statusText;
28
+ }
29
+ }
3
30
  export function useTelaAdmin() {
4
31
  const { jwtCookieName, apiUrl } = useRuntimeConfig().public.telaAuth;
5
32
  const authClient = createNuxtAuthClient(apiUrl, () => useCookie(jwtCookieName).value ?? null);
6
33
  async function listUsers(options) {
7
34
  return await authClient.admin.listUsers(options);
8
35
  }
36
+ async function listApplications(options) {
37
+ const token = useCookie(jwtCookieName).value;
38
+ const headers = new Headers({ Accept: "application/json" });
39
+ if (token) {
40
+ headers.set("Authorization", `Bearer ${token}`);
41
+ }
42
+ const response = await fetch(buildListApplicationsUrl(apiUrl, options), {
43
+ credentials: "include",
44
+ headers
45
+ });
46
+ if (!response.ok) {
47
+ const message = await parseAdminResponseError(response);
48
+ throw new Error(`Failed to list applications: ${message}`);
49
+ }
50
+ return await response.json();
51
+ }
9
52
  async function listOrganizations(options) {
10
53
  return await authClient.admin.listOrganizations(options);
11
54
  }
@@ -23,6 +66,7 @@ export function useTelaAdmin() {
23
66
  }
24
67
  return {
25
68
  listUsers,
69
+ listApplications,
26
70
  listOrganizations,
27
71
  getOrganization,
28
72
  listOrganizationMembers,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meistrari/auth-nuxt",
3
- "version": "3.11.0",
3
+ "version": "3.12.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -36,7 +36,7 @@
36
36
  "docs": "nuxt-module-build prepare && typedoc"
37
37
  },
38
38
  "dependencies": {
39
- "@meistrari/auth-core": "1.22.0",
39
+ "@meistrari/auth-core": "1.23.0",
40
40
  "jose": "6.1.3"
41
41
  },
42
42
  "peerDependencies": {