@classic-homes/auth 1.0.2 → 1.2.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/auth.svelte-MGVCAICX.js +3 -0
- package/dist/{chunk-LIRO3PU2.js → chunk-7OXE7SAW.js} +9 -7
- package/dist/{chunk-6VABYYP2.js → chunk-FTHQBYF2.js} +3 -3
- package/dist/{chunk-7DW44JGU.js → chunk-GKS5EDOT.js} +4 -4
- package/dist/{chunk-GWOTYGQI.js → chunk-LMFSLTIV.js} +2 -2
- package/dist/{chunk-S4TOKARB.js → chunk-VFEGS6FR.js} +30 -0
- package/dist/core/index.d.ts +12 -12
- package/dist/core/index.js +3 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/svelte/index.d.ts +4 -4
- package/dist/svelte/index.js +5 -5
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/{types-DXLdCdNC.d.ts → types-C6MqT3DB.d.ts} +16 -1
- package/dist/{user-utils-mQMLo7Il.d.ts → user-utils-Dla77tvM.d.ts} +5 -3
- package/package.json +1 -1
- package/dist/auth.svelte-FUE2KVI4.js +0 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { authApi } from './chunk-
|
|
2
|
-
import { getUserRoles, hasAnyRole } from './chunk-
|
|
1
|
+
import { authApi } from './chunk-GKS5EDOT.js';
|
|
2
|
+
import { getUserRoles, hasAnyRole } from './chunk-VFEGS6FR.js';
|
|
3
3
|
|
|
4
4
|
// src/core/guards.ts
|
|
5
5
|
function isMfaChallengeResponse(response) {
|
|
@@ -59,7 +59,7 @@ var AuthService = class {
|
|
|
59
59
|
}
|
|
60
60
|
if (options?.autoSetAuth !== false && !isMfaChallengeResponse(response)) {
|
|
61
61
|
try {
|
|
62
|
-
const { authStore } = await import('./auth.svelte-
|
|
62
|
+
const { authStore } = await import('./auth.svelte-MGVCAICX.js');
|
|
63
63
|
authStore.setAuth(
|
|
64
64
|
response.accessToken,
|
|
65
65
|
response.refreshToken,
|
|
@@ -186,10 +186,12 @@ var AuthService = class {
|
|
|
186
186
|
await authApi.revokeApiKey(keyId);
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
189
|
-
* Update an API key
|
|
189
|
+
* Update an API key. Accepts a plain string as a name-only update for
|
|
190
|
+
* backward compatibility, or an UpdateApiKeyRequest to change name,
|
|
191
|
+
* description, role, or permissions.
|
|
190
192
|
*/
|
|
191
|
-
async updateApiKey(keyId,
|
|
192
|
-
await authApi.updateApiKey(keyId, { name });
|
|
193
|
+
async updateApiKey(keyId, data) {
|
|
194
|
+
await authApi.updateApiKey(keyId, typeof data === "string" ? { name: data } : data);
|
|
193
195
|
}
|
|
194
196
|
// ============================================================================
|
|
195
197
|
// MFA Management
|
|
@@ -243,7 +245,7 @@ var AuthService = class {
|
|
|
243
245
|
}
|
|
244
246
|
if (options?.autoSetAuth !== false) {
|
|
245
247
|
try {
|
|
246
|
-
const { authStore } = await import('./auth.svelte-
|
|
248
|
+
const { authStore } = await import('./auth.svelte-MGVCAICX.js');
|
|
247
249
|
authStore.setAuth(
|
|
248
250
|
response.accessToken,
|
|
249
251
|
response.refreshToken,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { authService } from './chunk-
|
|
2
|
-
import { authStore, currentUser, isAuthenticated, authActions } from './chunk-
|
|
3
|
-
import { isInitialized, initAuth, getUserRoles } from './chunk-
|
|
1
|
+
import { authService } from './chunk-7OXE7SAW.js';
|
|
2
|
+
import { authStore, currentUser, isAuthenticated, authActions } from './chunk-LMFSLTIV.js';
|
|
3
|
+
import { isInitialized, initAuth, getUserRoles } from './chunk-VFEGS6FR.js';
|
|
4
4
|
|
|
5
5
|
// src/svelte/guards/auth-guard.ts
|
|
6
6
|
function checkAuth(options = {}) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getConfig, getStorage, getFetch, isValidRedirectUrl } from './chunk-
|
|
1
|
+
import { getConfig, getStorage, getFetch, isValidRedirectUrl } from './chunk-VFEGS6FR.js';
|
|
2
2
|
|
|
3
3
|
// src/core/client.ts
|
|
4
4
|
var isRefreshing = false;
|
|
@@ -77,7 +77,7 @@ function updateStoredTokens(accessToken, refreshToken) {
|
|
|
77
77
|
parsed.accessToken = accessToken;
|
|
78
78
|
parsed.refreshToken = refreshToken;
|
|
79
79
|
storage.setItem(storageKey, JSON.stringify(parsed));
|
|
80
|
-
import('./auth.svelte-
|
|
80
|
+
import('./auth.svelte-MGVCAICX.js').then(({ authStore }) => {
|
|
81
81
|
authStore.updateTokens(accessToken, refreshToken);
|
|
82
82
|
}).catch(() => {
|
|
83
83
|
});
|
|
@@ -92,7 +92,7 @@ function clearStoredAuth() {
|
|
|
92
92
|
async function expireSession() {
|
|
93
93
|
clearStoredAuth();
|
|
94
94
|
try {
|
|
95
|
-
const { authStore } = await import('./auth.svelte-
|
|
95
|
+
const { authStore } = await import('./auth.svelte-MGVCAICX.js');
|
|
96
96
|
authStore.handleSessionExpired();
|
|
97
97
|
} catch {
|
|
98
98
|
}
|
|
@@ -538,7 +538,7 @@ var authApi = {
|
|
|
538
538
|
await api.delete(`/auth/api-keys/${keyId}`, true);
|
|
539
539
|
},
|
|
540
540
|
/**
|
|
541
|
-
* Update an API key's name.
|
|
541
|
+
* Update an API key's name, description, role, or permissions.
|
|
542
542
|
*/
|
|
543
543
|
async updateApiKey(keyId, data) {
|
|
544
544
|
await api.put(`/auth/api-keys/${keyId}`, data, true);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { authApi } from './chunk-
|
|
2
|
-
import { isInitialized, getConfig, hasRole, hasAnyRole, hasAllRoles, decodeJWT, getStorage, getDefaultStorage } from './chunk-
|
|
1
|
+
import { authApi } from './chunk-GKS5EDOT.js';
|
|
2
|
+
import { isInitialized, getConfig, hasRole, hasAnyRole, hasAllRoles, decodeJWT, getStorage, getDefaultStorage } from './chunk-VFEGS6FR.js';
|
|
3
3
|
|
|
4
4
|
// src/svelte/stores/auth.svelte.ts
|
|
5
5
|
var STORAGE_VERSION = 2;
|
|
@@ -159,6 +159,20 @@ var ROLE_NAMES = [
|
|
|
159
159
|
"builder",
|
|
160
160
|
"customer_service",
|
|
161
161
|
"demo",
|
|
162
|
+
"stormwater",
|
|
163
|
+
"accounting_staff",
|
|
164
|
+
"architecture_staff",
|
|
165
|
+
"construction_staff",
|
|
166
|
+
"crl_staff",
|
|
167
|
+
"design_staff",
|
|
168
|
+
"hr_staff",
|
|
169
|
+
"it_staff",
|
|
170
|
+
"landdev_staff",
|
|
171
|
+
"marketing_staff",
|
|
172
|
+
"purchasing_staff",
|
|
173
|
+
"sales_staff",
|
|
174
|
+
"warranty_staff",
|
|
175
|
+
"employee",
|
|
162
176
|
"user",
|
|
163
177
|
"vendor",
|
|
164
178
|
"customer",
|
|
@@ -171,10 +185,26 @@ var ROLE_HIERARCHY = {
|
|
|
171
185
|
vendor: 1,
|
|
172
186
|
customer: 1,
|
|
173
187
|
subcontractor: 1,
|
|
188
|
+
// Staff tier (2): the read-only `employee` floor, the field-app clones of
|
|
189
|
+
// `agent`, and every `<department>_staff` docs role.
|
|
190
|
+
employee: 2,
|
|
174
191
|
agent: 2,
|
|
175
192
|
builder: 2,
|
|
176
193
|
customer_service: 2,
|
|
177
194
|
demo: 2,
|
|
195
|
+
stormwater: 2,
|
|
196
|
+
accounting_staff: 2,
|
|
197
|
+
architecture_staff: 2,
|
|
198
|
+
construction_staff: 2,
|
|
199
|
+
crl_staff: 2,
|
|
200
|
+
design_staff: 2,
|
|
201
|
+
hr_staff: 2,
|
|
202
|
+
it_staff: 2,
|
|
203
|
+
landdev_staff: 2,
|
|
204
|
+
marketing_staff: 2,
|
|
205
|
+
purchasing_staff: 2,
|
|
206
|
+
sales_staff: 2,
|
|
207
|
+
warranty_staff: 2,
|
|
178
208
|
manager: 3,
|
|
179
209
|
admin: 4
|
|
180
210
|
};
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { e as LoginCredentials, f as LoginResponse, g as LogoutResponse, R as RegisterData, k as RegisterResponse,
|
|
2
|
-
export { a as AuthConfig, b as AuthState, l as ResetPasswordData, S as SSOConfig, o as StorageAdapter,
|
|
3
|
-
export { A as AuthService, L as LoginOptions, M as MFAVerifyOptions, R as RoleDeniedError, a as authService, f as formatUserRoles, g as getAvatarFallback, b as getDisplayName, c as getGreeting, d as getUserEmail, e as getUserInitials, i as isRoleDeniedError } from '../user-utils-
|
|
1
|
+
import { e as LoginCredentials, f as LoginResponse, g as LogoutResponse, R as RegisterData, k as RegisterResponse, p as User, j as ProfileUpdateData, C as ChangePasswordData, n as Session, A as ApiKey, c as CreateApiKeyRequest, d as CreateApiKeyResponse, U as UpdateApiKeyRequest, i as MFAStatus, h as MFASetupResponse, M as MFAChallengeData, D as Device, q as UserPreferences, L as LinkedAccount, m as SecurityEvent, P as Pagination, r as UserRolesResponse } from '../types-C6MqT3DB.js';
|
|
2
|
+
export { a as AuthConfig, b as AuthState, l as ResetPasswordData, S as SSOConfig, o as StorageAdapter, s as createMemoryStorage, t as createSessionStorage, u as getConfig, v as getDefaultStorage, w as getFetch, x as getStorage, y as initAuth, z as isInitialized, B as resetConfig } from '../types-C6MqT3DB.js';
|
|
3
|
+
export { A as AuthService, L as LoginOptions, M as MFAVerifyOptions, R as RoleDeniedError, a as authService, f as formatUserRoles, g as getAvatarFallback, b as getDisplayName, c as getGreeting, d as getUserEmail, e as getUserInitials, i as isRoleDeniedError } from '../user-utils-Dla77tvM.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* HTTP Client
|
|
@@ -185,11 +185,9 @@ declare const authApi: {
|
|
|
185
185
|
*/
|
|
186
186
|
revokeApiKey(keyId: string): Promise<void>;
|
|
187
187
|
/**
|
|
188
|
-
* Update an API key's name.
|
|
188
|
+
* Update an API key's name, description, role, or permissions.
|
|
189
189
|
*/
|
|
190
|
-
updateApiKey(keyId: string, data:
|
|
191
|
-
name: string;
|
|
192
|
-
}): Promise<void>;
|
|
190
|
+
updateApiKey(keyId: string, data: UpdateApiKeyRequest): Promise<void>;
|
|
193
191
|
/**
|
|
194
192
|
* Get MFA status for the current user.
|
|
195
193
|
*/
|
|
@@ -469,11 +467,13 @@ declare function extractClaims<T extends string>(token: string, claims: T[]): Pi
|
|
|
469
467
|
* the first match, which is what makes the result deterministic when several
|
|
470
468
|
* roles share a tier (e.g. `agent` + `builder`).
|
|
471
469
|
*
|
|
472
|
-
* Mirrors `ROLE_NAMES` in the API. `builder`/`customer_service`/`demo
|
|
473
|
-
* staff-tier clones of `agent`; `
|
|
474
|
-
*
|
|
470
|
+
* Mirrors `ROLE_NAMES` in the API. `builder`/`customer_service`/`demo`/
|
|
471
|
+
* `stormwater` are staff-tier clones of `agent`; the `<department>_staff` roles
|
|
472
|
+
* are grant-on-top docs roles held alongside another role; `employee` is the
|
|
473
|
+
* read-only base staff floor (default for Authentik SSO); `vendor`/`customer`/
|
|
474
|
+
* `subcontractor` are clones of `user`, row-scoped to their own homes.
|
|
475
475
|
*/
|
|
476
|
-
declare const ROLE_NAMES: readonly ["admin", "manager", "agent", "builder", "customer_service", "demo", "user", "vendor", "customer", "subcontractor", "guest"];
|
|
476
|
+
declare const ROLE_NAMES: readonly ["admin", "manager", "agent", "builder", "customer_service", "demo", "stormwater", "accounting_staff", "architecture_staff", "construction_staff", "crl_staff", "design_staff", "hr_staff", "it_staff", "landdev_staff", "marketing_staff", "purchasing_staff", "sales_staff", "warranty_staff", "employee", "user", "vendor", "customer", "subcontractor", "guest"];
|
|
477
477
|
/**
|
|
478
478
|
* A known role name.
|
|
479
479
|
*
|
|
@@ -552,4 +552,4 @@ declare function hasAnyRole(user: Pick<User, 'roles'> | null | undefined, roles:
|
|
|
552
552
|
*/
|
|
553
553
|
declare function hasAllRoles(user: Pick<User, 'roles'> | null | undefined, roles: readonly string[]): boolean;
|
|
554
554
|
|
|
555
|
-
export { ApiKey, type ApiRequestOptions, type ApiResponse, ChangePasswordData, CreateApiKeyRequest, CreateApiKeyResponse, Device, type JWTPayload, LinkedAccount, LoginCredentials, LoginResponse, LogoutResponse, MFAChallengeData, MFASetupResponse, MFAStatus, Pagination, ProfileUpdateData, ROLE_HIERARCHY, ROLE_NAMES, RegisterData, RegisterResponse, type RoleName, SecurityEvent, Session, User, UserPreferences, UserRolesResponse, api, apiRequest, authApi, clearStoredAuth, computePrimaryRole, decodeJWT, extractClaims, extractData, getAccessToken, getAvailableMethods, getEffectiveLevel, getMfaToken, getRefreshToken, getSessionToken, getTokenExpiration, getTokenRemainingTime, getUserRoles, hasAllRoles, hasAnyRole, hasRole, isLoginSuccessResponse, isMfaChallengeResponse, isTokenExpired, updateStoredTokens };
|
|
555
|
+
export { ApiKey, type ApiRequestOptions, type ApiResponse, ChangePasswordData, CreateApiKeyRequest, CreateApiKeyResponse, Device, type JWTPayload, LinkedAccount, LoginCredentials, LoginResponse, LogoutResponse, MFAChallengeData, MFASetupResponse, MFAStatus, Pagination, ProfileUpdateData, ROLE_HIERARCHY, ROLE_NAMES, RegisterData, RegisterResponse, type RoleName, SecurityEvent, Session, UpdateApiKeyRequest, User, UserPreferences, UserRolesResponse, api, apiRequest, authApi, clearStoredAuth, computePrimaryRole, decodeJWT, extractClaims, extractData, getAccessToken, getAvailableMethods, getEffectiveLevel, getMfaToken, getRefreshToken, getSessionToken, getTokenExpiration, getTokenRemainingTime, getUserRoles, hasAllRoles, hasAnyRole, hasRole, isLoginSuccessResponse, isMfaChallengeResponse, isTokenExpired, updateStoredTokens };
|
package/dist/core/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { AuthService, RoleDeniedError, authService, formatUserRoles, getAvailableMethods, getAvatarFallback, getDisplayName, getGreeting, getMfaToken, getUserEmail, getUserInitials, isLoginSuccessResponse, isMfaChallengeResponse, isRoleDeniedError } from '../chunk-
|
|
2
|
-
export { api, apiRequest, authApi, clearStoredAuth, extractData, getAccessToken, getRefreshToken, getSessionToken, updateStoredTokens } from '../chunk-
|
|
3
|
-
export { ROLE_HIERARCHY, ROLE_NAMES, computePrimaryRole, createMemoryStorage, createSessionStorage, decodeJWT, extractClaims, getConfig, getDefaultStorage, getEffectiveLevel, getFetch, getStorage, getTokenExpiration, getTokenRemainingTime, getUserRoles, hasAllRoles, hasAnyRole, hasRole, initAuth, isInitialized, isTokenExpired, resetConfig } from '../chunk-
|
|
1
|
+
export { AuthService, RoleDeniedError, authService, formatUserRoles, getAvailableMethods, getAvatarFallback, getDisplayName, getGreeting, getMfaToken, getUserEmail, getUserInitials, isLoginSuccessResponse, isMfaChallengeResponse, isRoleDeniedError } from '../chunk-7OXE7SAW.js';
|
|
2
|
+
export { api, apiRequest, authApi, clearStoredAuth, extractData, getAccessToken, getRefreshToken, getSessionToken, updateStoredTokens } from '../chunk-GKS5EDOT.js';
|
|
3
|
+
export { ROLE_HIERARCHY, ROLE_NAMES, computePrimaryRole, createMemoryStorage, createSessionStorage, decodeJWT, extractClaims, getConfig, getDefaultStorage, getEffectiveLevel, getFetch, getStorage, getTokenExpiration, getTokenRemainingTime, getUserRoles, hasAllRoles, hasAnyRole, hasRole, initAuth, isInitialized, isTokenExpired, resetConfig } from '../chunk-VFEGS6FR.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ApiKey, a as AuthConfig, b as AuthState, C as ChangePasswordData, c as CreateApiKeyRequest, d as CreateApiKeyResponse, D as Device, L as LinkedAccount, e as LoginCredentials, f as LoginResponse, g as LogoutResponse, M as MFAChallengeData, h as MFASetupResponse, i as MFAStatus, P as Pagination, j as ProfileUpdateData, R as RegisterData, k as RegisterResponse, l as ResetPasswordData, S as SSOConfig, m as SecurityEvent, n as Session, o as StorageAdapter, U as
|
|
1
|
+
export { A as ApiKey, a as AuthConfig, b as AuthState, C as ChangePasswordData, c as CreateApiKeyRequest, d as CreateApiKeyResponse, D as Device, L as LinkedAccount, e as LoginCredentials, f as LoginResponse, g as LogoutResponse, M as MFAChallengeData, h as MFASetupResponse, i as MFAStatus, P as Pagination, j as ProfileUpdateData, R as RegisterData, k as RegisterResponse, l as ResetPasswordData, S as SSOConfig, m as SecurityEvent, n as Session, o as StorageAdapter, U as UpdateApiKeyRequest, p as User, q as UserPreferences, r as UserRolesResponse, s as createMemoryStorage, t as createSessionStorage, u as getConfig, v as getDefaultStorage, w as getFetch, x as getStorage, y as initAuth, z as isInitialized, B as resetConfig } from './types-C6MqT3DB.js';
|
|
2
2
|
export { ApiRequestOptions, ApiResponse, JWTPayload, ROLE_HIERARCHY, ROLE_NAMES, RoleName, api, apiRequest, authApi, clearStoredAuth, computePrimaryRole, decodeJWT, extractClaims, extractData, getAccessToken, getAvailableMethods, getEffectiveLevel, getMfaToken, getRefreshToken, getSessionToken, getTokenExpiration, getTokenRemainingTime, getUserRoles, hasAllRoles, hasAnyRole, hasRole, isLoginSuccessResponse, isMfaChallengeResponse, isTokenExpired, updateStoredTokens } from './core/index.js';
|
|
3
|
-
export { A as AuthService, L as LoginOptions, M as MFAVerifyOptions, R as RoleDeniedError, a as authService, f as formatUserRoles, g as getAvatarFallback, b as getDisplayName, c as getGreeting, d as getUserEmail, e as getUserInitials, i as isRoleDeniedError } from './user-utils-
|
|
3
|
+
export { A as AuthService, L as LoginOptions, M as MFAVerifyOptions, R as RoleDeniedError, a as authService, f as formatUserRoles, g as getAvatarFallback, b as getDisplayName, c as getGreeting, d as getUserEmail, e as getUserInitials, i as isRoleDeniedError } from './user-utils-Dla77tvM.js';
|
|
4
4
|
export { AuthClient, AuthGuardOptions, AuthGuardResult, AuthHookOptions, CreateAuthClientOptions, NavFilterOptions, RoleRestrictedItem, authActions, authStore, canAccess, checkAuth, createAuthClient, createAuthGuard, createAuthHook, createNavFilter, currentUser, filterByAccess, filterNavSections, isAuthenticated, matchesRoute, protectedLoad, requireAuth, requirePermission, requireRole, routePatterns } from './svelte/index.js';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { canAccess, checkAuth, createAuthClient, createAuthGuard, createAuthHook, createNavFilter, filterByAccess, filterNavSections, matchesRoute, protectedLoad, requireAuth, requirePermission, requireRole, routePatterns } from './chunk-
|
|
2
|
-
export { AuthService, RoleDeniedError, authService, formatUserRoles, getAvailableMethods, getAvatarFallback, getDisplayName, getGreeting, getMfaToken, getUserEmail, getUserInitials, isLoginSuccessResponse, isMfaChallengeResponse, isRoleDeniedError } from './chunk-
|
|
3
|
-
export { authActions, authStore, currentUser, isAuthenticated } from './chunk-
|
|
4
|
-
export { api, apiRequest, authApi, clearStoredAuth, extractData, getAccessToken, getRefreshToken, getSessionToken, updateStoredTokens } from './chunk-
|
|
5
|
-
export { ROLE_HIERARCHY, ROLE_NAMES, computePrimaryRole, createMemoryStorage, createSessionStorage, decodeJWT, extractClaims, getConfig, getDefaultStorage, getEffectiveLevel, getFetch, getStorage, getTokenExpiration, getTokenRemainingTime, getUserRoles, hasAllRoles, hasAnyRole, hasRole, initAuth, isInitialized, isTokenExpired, resetConfig } from './chunk-
|
|
1
|
+
export { canAccess, checkAuth, createAuthClient, createAuthGuard, createAuthHook, createNavFilter, filterByAccess, filterNavSections, matchesRoute, protectedLoad, requireAuth, requirePermission, requireRole, routePatterns } from './chunk-FTHQBYF2.js';
|
|
2
|
+
export { AuthService, RoleDeniedError, authService, formatUserRoles, getAvailableMethods, getAvatarFallback, getDisplayName, getGreeting, getMfaToken, getUserEmail, getUserInitials, isLoginSuccessResponse, isMfaChallengeResponse, isRoleDeniedError } from './chunk-7OXE7SAW.js';
|
|
3
|
+
export { authActions, authStore, currentUser, isAuthenticated } from './chunk-LMFSLTIV.js';
|
|
4
|
+
export { api, apiRequest, authApi, clearStoredAuth, extractData, getAccessToken, getRefreshToken, getSessionToken, updateStoredTokens } from './chunk-GKS5EDOT.js';
|
|
5
|
+
export { ROLE_HIERARCHY, ROLE_NAMES, computePrimaryRole, createMemoryStorage, createSessionStorage, decodeJWT, extractClaims, getConfig, getDefaultStorage, getEffectiveLevel, getFetch, getStorage, getTokenExpiration, getTokenRemainingTime, getUserRoles, hasAllRoles, hasAnyRole, hasRole, initAuth, isInitialized, isTokenExpired, resetConfig } from './chunk-VFEGS6FR.js';
|
package/dist/svelte/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { b as AuthState,
|
|
2
|
-
export {
|
|
3
|
-
import { a as authService } from '../user-utils-
|
|
4
|
-
export { R as RoleDeniedError, f as formatUserRoles, g as getAvatarFallback, b as getDisplayName, c as getGreeting, d as getUserEmail, e as getUserInitials, i as isRoleDeniedError } from '../user-utils-
|
|
1
|
+
import { b as AuthState, p as User, a as AuthConfig } from '../types-C6MqT3DB.js';
|
|
2
|
+
export { y as initAuth, z as isInitialized } from '../types-C6MqT3DB.js';
|
|
3
|
+
import { a as authService } from '../user-utils-Dla77tvM.js';
|
|
4
|
+
export { R as RoleDeniedError, f as formatUserRoles, g as getAvatarFallback, b as getDisplayName, c as getGreeting, d as getUserEmail, e as getUserInitials, i as isRoleDeniedError } from '../user-utils-Dla77tvM.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Auth Store
|
package/dist/svelte/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { canAccess, checkAuth, createAuthClient, createAuthGuard, createAuthHook, createNavFilter, filterByAccess, filterNavSections, matchesRoute, protectedLoad, requireAuth, requirePermission, requireRole, routePatterns } from '../chunk-
|
|
2
|
-
export { RoleDeniedError, formatUserRoles, getAvatarFallback, getDisplayName, getGreeting, getUserEmail, getUserInitials, isRoleDeniedError } from '../chunk-
|
|
3
|
-
export { authActions, authStore, currentUser, isAuthenticated } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
export { initAuth, isInitialized } from '../chunk-
|
|
1
|
+
export { canAccess, checkAuth, createAuthClient, createAuthGuard, createAuthHook, createNavFilter, filterByAccess, filterNavSections, matchesRoute, protectedLoad, requireAuth, requirePermission, requireRole, routePatterns } from '../chunk-FTHQBYF2.js';
|
|
2
|
+
export { RoleDeniedError, formatUserRoles, getAvatarFallback, getDisplayName, getGreeting, getUserEmail, getUserInitials, isRoleDeniedError } from '../chunk-7OXE7SAW.js';
|
|
3
|
+
export { authActions, authStore, currentUser, isAuthenticated } from '../chunk-LMFSLTIV.js';
|
|
4
|
+
import '../chunk-GKS5EDOT.js';
|
|
5
|
+
export { initAuth, isInitialized } from '../chunk-VFEGS6FR.js';
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { p as User, D as Device, f as LoginResponse, m as SecurityEvent, n as Session, A as ApiKey, L as LinkedAccount, g as LogoutResponse, h as MFASetupResponse, i as MFAStatus, k as RegisterResponse, q as UserPreferences, o as StorageAdapter, b as AuthState, a as AuthConfig } from '../types-C6MqT3DB.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* User Fixtures
|
package/dist/testing/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { hasRole, hasAnyRole, hasAllRoles, initAuth, resetConfig, getUserRoles, isTokenExpired, decodeJWT } from '../chunk-
|
|
1
|
+
import { hasRole, hasAnyRole, hasAllRoles, initAuth, resetConfig, getUserRoles, isTokenExpired, decodeJWT } from '../chunk-VFEGS6FR.js';
|
|
2
2
|
|
|
3
3
|
// src/testing/fixtures/users.ts
|
|
4
4
|
var mockUser = {
|
|
@@ -258,6 +258,21 @@ interface ApiKey {
|
|
|
258
258
|
createdAt: string;
|
|
259
259
|
usageCount?: number;
|
|
260
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* Payload for updating an existing API key. All fields optional; at least one
|
|
263
|
+
* must be provided. Role/permission changes are validated server-side against
|
|
264
|
+
* the editor's own grants (same escalation guards as create) and take effect
|
|
265
|
+
* on the key's next request — enforcement reads the stored row live.
|
|
266
|
+
*/
|
|
267
|
+
interface UpdateApiKeyRequest {
|
|
268
|
+
name?: string;
|
|
269
|
+
/** null clears the description */
|
|
270
|
+
description?: string | null;
|
|
271
|
+
/** Changing the role without `permissions` re-inherits the new role's full set */
|
|
272
|
+
role?: string;
|
|
273
|
+
/** Replacement permission set; must be a subset of the editor's own permissions */
|
|
274
|
+
permissions?: string[];
|
|
275
|
+
}
|
|
261
276
|
interface CreateApiKeyRequest {
|
|
262
277
|
name: string;
|
|
263
278
|
description?: string;
|
|
@@ -371,4 +386,4 @@ interface ResetPasswordData {
|
|
|
371
386
|
newPassword: string;
|
|
372
387
|
}
|
|
373
388
|
|
|
374
|
-
export { type ApiKey as A, type ChangePasswordData as C, type Device as D, type LinkedAccount as L, type MFAChallengeData as M, type Pagination as P, type RegisterData as R, type SSOConfig as S, type
|
|
389
|
+
export { type ApiKey as A, resetConfig as B, type ChangePasswordData as C, type Device as D, type LinkedAccount as L, type MFAChallengeData as M, type Pagination as P, type RegisterData as R, type SSOConfig as S, type UpdateApiKeyRequest as U, type AuthConfig as a, type AuthState as b, type CreateApiKeyRequest as c, type CreateApiKeyResponse as d, type LoginCredentials as e, type LoginResponse as f, type LogoutResponse as g, type MFASetupResponse as h, type MFAStatus as i, type ProfileUpdateData as j, type RegisterResponse as k, type ResetPasswordData as l, type SecurityEvent as m, type Session as n, type StorageAdapter as o, type User as p, type UserPreferences as q, type UserRolesResponse as r, createMemoryStorage as s, createSessionStorage as t, getConfig as u, getDefaultStorage as v, getFetch as w, getStorage as x, initAuth as y, isInitialized as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e as LoginCredentials, f as LoginResponse, g as LogoutResponse, R as RegisterData, k as RegisterResponse,
|
|
1
|
+
import { e as LoginCredentials, f as LoginResponse, g as LogoutResponse, R as RegisterData, k as RegisterResponse, p as User, j as ProfileUpdateData, n as Session, A as ApiKey, c as CreateApiKeyRequest, d as CreateApiKeyResponse, U as UpdateApiKeyRequest, i as MFAStatus, h as MFASetupResponse, M as MFAChallengeData, D as Device, q as UserPreferences, L as LinkedAccount, m as SecurityEvent, P as Pagination } from './types-C6MqT3DB.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Auth Service
|
|
@@ -158,9 +158,11 @@ declare class AuthService {
|
|
|
158
158
|
*/
|
|
159
159
|
revokeApiKey(keyId: string): Promise<void>;
|
|
160
160
|
/**
|
|
161
|
-
* Update an API key
|
|
161
|
+
* Update an API key. Accepts a plain string as a name-only update for
|
|
162
|
+
* backward compatibility, or an UpdateApiKeyRequest to change name,
|
|
163
|
+
* description, role, or permissions.
|
|
162
164
|
*/
|
|
163
|
-
updateApiKey(keyId: string,
|
|
165
|
+
updateApiKey(keyId: string, data: string | UpdateApiKeyRequest): Promise<void>;
|
|
164
166
|
/**
|
|
165
167
|
* Get MFA status for the current user.
|
|
166
168
|
*/
|
package/package.json
CHANGED