@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,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.
|
|
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.
|
|
39
|
+
"@meistrari/auth-core": "1.23.0",
|
|
40
40
|
"jose": "6.1.3"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|