@happyvertical/smrt-users 0.30.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/AGENTS.md +85 -0
- package/CLAUDE.md +1 -0
- package/LICENSE +7 -0
- package/README.md +459 -0
- package/dist/__smrt-register__.d.ts +2 -0
- package/dist/__smrt-register__.d.ts.map +1 -0
- package/dist/chunks/TerminalAuthService-DoAMQ_yn.js +5118 -0
- package/dist/chunks/TerminalAuthService-DoAMQ_yn.js.map +1 -0
- package/dist/chunks/index-DkoYIvIu.js +169 -0
- package/dist/chunks/index-DkoYIvIu.js.map +1 -0
- package/dist/collections/CliAuthRequestCollection.d.ts +19 -0
- package/dist/collections/CliAuthRequestCollection.d.ts.map +1 -0
- package/dist/collections/GroupCollection.d.ts +17 -0
- package/dist/collections/GroupCollection.d.ts.map +1 -0
- package/dist/collections/GroupMemberCollection.d.ts +43 -0
- package/dist/collections/GroupMemberCollection.d.ts.map +1 -0
- package/dist/collections/GroupRoleCollection.d.ts +33 -0
- package/dist/collections/GroupRoleCollection.d.ts.map +1 -0
- package/dist/collections/MagicLinkTokenCollection.d.ts +26 -0
- package/dist/collections/MagicLinkTokenCollection.d.ts.map +1 -0
- package/dist/collections/MembershipCollection.d.ts +38 -0
- package/dist/collections/MembershipCollection.d.ts.map +1 -0
- package/dist/collections/MembershipOverrideCollection.d.ts +55 -0
- package/dist/collections/MembershipOverrideCollection.d.ts.map +1 -0
- package/dist/collections/PermissionCollection.d.ts +34 -0
- package/dist/collections/PermissionCollection.d.ts.map +1 -0
- package/dist/collections/RoleCollection.d.ts +29 -0
- package/dist/collections/RoleCollection.d.ts.map +1 -0
- package/dist/collections/RolePermissionCollection.d.ts +33 -0
- package/dist/collections/RolePermissionCollection.d.ts.map +1 -0
- package/dist/collections/SessionCollection.d.ts +82 -0
- package/dist/collections/SessionCollection.d.ts.map +1 -0
- package/dist/collections/TenantCollection.d.ts +119 -0
- package/dist/collections/TenantCollection.d.ts.map +1 -0
- package/dist/collections/TenantPermissionOverrideCollection.d.ts +111 -0
- package/dist/collections/TenantPermissionOverrideCollection.d.ts.map +1 -0
- package/dist/collections/UserCollection.d.ts +116 -0
- package/dist/collections/UserCollection.d.ts.map +1 -0
- package/dist/collections/index.d.ts +19 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1482 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.json +5216 -0
- package/dist/models/CliAuthRequest.d.ts +25 -0
- package/dist/models/CliAuthRequest.d.ts.map +1 -0
- package/dist/models/Group.d.ts +34 -0
- package/dist/models/Group.d.ts.map +1 -0
- package/dist/models/GroupMember.d.ts +29 -0
- package/dist/models/GroupMember.d.ts.map +1 -0
- package/dist/models/GroupRole.d.ts +29 -0
- package/dist/models/GroupRole.d.ts.map +1 -0
- package/dist/models/MagicLinkToken.d.ts +22 -0
- package/dist/models/MagicLinkToken.d.ts.map +1 -0
- package/dist/models/Membership.d.ts +48 -0
- package/dist/models/Membership.d.ts.map +1 -0
- package/dist/models/MembershipOverride.d.ts +50 -0
- package/dist/models/MembershipOverride.d.ts.map +1 -0
- package/dist/models/Permission.d.ts +79 -0
- package/dist/models/Permission.d.ts.map +1 -0
- package/dist/models/Role.d.ts +67 -0
- package/dist/models/Role.d.ts.map +1 -0
- package/dist/models/RolePermission.d.ts +29 -0
- package/dist/models/RolePermission.d.ts.map +1 -0
- package/dist/models/Session.d.ts +105 -0
- package/dist/models/Session.d.ts.map +1 -0
- package/dist/models/Tenant.d.ts +138 -0
- package/dist/models/Tenant.d.ts.map +1 -0
- package/dist/models/TenantPermissionOverride.d.ts +74 -0
- package/dist/models/TenantPermissionOverride.d.ts.map +1 -0
- package/dist/models/User.d.ts +72 -0
- package/dist/models/User.d.ts.map +1 -0
- package/dist/models/index.d.ts +19 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/playground.d.ts +2 -0
- package/dist/playground.d.ts.map +1 -0
- package/dist/playground.js +139 -0
- package/dist/playground.js.map +1 -0
- package/dist/services/MagicLinkService.d.ts +84 -0
- package/dist/services/MagicLinkService.d.ts.map +1 -0
- package/dist/services/OidcLoginService.d.ts +134 -0
- package/dist/services/OidcLoginService.d.ts.map +1 -0
- package/dist/services/PermissionCatalogService.d.ts +62 -0
- package/dist/services/PermissionCatalogService.d.ts.map +1 -0
- package/dist/services/PermissionResolver.d.ts +150 -0
- package/dist/services/PermissionResolver.d.ts.map +1 -0
- package/dist/services/PostgresPermissionPolicies.d.ts +29 -0
- package/dist/services/PostgresPermissionPolicies.d.ts.map +1 -0
- package/dist/services/SessionPermissionContext.d.ts +43 -0
- package/dist/services/SessionPermissionContext.d.ts.map +1 -0
- package/dist/services/SessionService.d.ts +139 -0
- package/dist/services/SessionService.d.ts.map +1 -0
- package/dist/services/TenantService.d.ts +135 -0
- package/dist/services/TenantService.d.ts.map +1 -0
- package/dist/services/TerminalAuthService.d.ts +189 -0
- package/dist/services/TerminalAuthService.d.ts.map +1 -0
- package/dist/services/index.d.ts +14 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +2744 -0
- package/dist/svelte/components/InviteUserModal.svelte +351 -0
- package/dist/svelte/components/InviteUserModal.svelte.d.ts +17 -0
- package/dist/svelte/components/InviteUserModal.svelte.d.ts.map +1 -0
- package/dist/svelte/components/UserAvatar.svelte +105 -0
- package/dist/svelte/components/UserAvatar.svelte.d.ts +10 -0
- package/dist/svelte/components/UserAvatar.svelte.d.ts.map +1 -0
- package/dist/svelte/components/UserCard.svelte +179 -0
- package/dist/svelte/components/UserCard.svelte.d.ts +18 -0
- package/dist/svelte/components/UserCard.svelte.d.ts.map +1 -0
- package/dist/svelte/components/UserForm.svelte +194 -0
- package/dist/svelte/components/UserForm.svelte.d.ts +18 -0
- package/dist/svelte/components/UserForm.svelte.d.ts.map +1 -0
- package/dist/svelte/components/UserList.svelte +107 -0
- package/dist/svelte/components/UserList.svelte.d.ts +20 -0
- package/dist/svelte/components/UserList.svelte.d.ts.map +1 -0
- package/dist/svelte/components/UserMenu.svelte +326 -0
- package/dist/svelte/components/UserMenu.svelte.d.ts +33 -0
- package/dist/svelte/components/UserMenu.svelte.d.ts.map +1 -0
- package/dist/svelte/components/__tests__/InviteUserModal.test.js +54 -0
- package/dist/svelte/components/__tests__/UserAvatar.test.js +31 -0
- package/dist/svelte/components/__tests__/UserCard.test.js +39 -0
- package/dist/svelte/components/__tests__/UserForm.test.js +50 -0
- package/dist/svelte/components/__tests__/UserList.test.js +48 -0
- package/dist/svelte/components/__tests__/UserMenu.test.js +38 -0
- package/dist/svelte/i18n.d.ts +15 -0
- package/dist/svelte/i18n.d.ts.map +1 -0
- package/dist/svelte/i18n.js +15 -0
- package/dist/svelte/index.d.ts +23 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +27 -0
- package/dist/svelte/playground.d.ts +151 -0
- package/dist/svelte/playground.d.ts.map +1 -0
- package/dist/svelte/playground.js +134 -0
- package/dist/sveltekit/index.d.ts +379 -0
- package/dist/sveltekit/index.d.ts.map +1 -0
- package/dist/sveltekit/resource-list-handler.d.ts +127 -0
- package/dist/sveltekit/resource-list-handler.d.ts.map +1 -0
- package/dist/sveltekit/types.d.ts +31 -0
- package/dist/sveltekit/types.d.ts.map +1 -0
- package/dist/sveltekit.d.ts +2 -0
- package/dist/sveltekit.d.ts.map +1 -0
- package/dist/sveltekit.js +978 -0
- package/dist/sveltekit.js.map +1 -0
- package/dist/types/index.d.ts +61 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/ui.d.ts +10 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +75 -0
- package/dist/ui.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionCollection.d.ts","sourceRoot":"","sources":["../../src/collections/SessionCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAGL,OAAO,EACR,MAAM,sBAAsB,CAAC;AAG9B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,QAAQ,CAAC,UAAU,iBAAW;IAErC;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBpE;;;OAGG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAiBlE;;OAEG;IACG,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,OAAe,EAC1B,GAAG,GAAE,MAA4B,GAChC,OAAO,CAAC,OAAO,CAAC;IAYnB;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAapD;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAczD;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBzD;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASxD;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAiBtC;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD;;;;;;;;OAQG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,OAAO,CAAC;IASnB;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,OAAO,CAAC;IASnB;;OAEG;IACG,cAAc,CAAC,CAAC,EACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAM1B"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { SmrtCollection } from '@happyvertical/smrt-core';
|
|
2
|
+
import { Tenant } from '../models/Tenant.js';
|
|
3
|
+
import { TenantStatus } from '../types/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when tenant hierarchy operations fail
|
|
6
|
+
*/
|
|
7
|
+
export declare class TenantHierarchyError extends Error {
|
|
8
|
+
readonly code: 'CIRCULAR_REFERENCE' | 'MAX_DEPTH_EXCEEDED' | 'PARENT_NOT_FOUND' | 'INVALID_OPERATION';
|
|
9
|
+
constructor(message: string, code: 'CIRCULAR_REFERENCE' | 'MAX_DEPTH_EXCEEDED' | 'PARENT_NOT_FOUND' | 'INVALID_OPERATION');
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Options for creating a child tenant
|
|
13
|
+
*/
|
|
14
|
+
export interface CreateChildTenantOptions {
|
|
15
|
+
name: string;
|
|
16
|
+
slug?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
status?: TenantStatus;
|
|
19
|
+
/** Override parent's cascade setting for this child. Default: true */
|
|
20
|
+
inheritPermissions?: boolean;
|
|
21
|
+
/** Whether this child cascades permissions to its children. Default: true */
|
|
22
|
+
cascadePermissions?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Collection for managing Tenant objects with hierarchical support.
|
|
26
|
+
*
|
|
27
|
+
* Provides methods for:
|
|
28
|
+
* - Basic CRUD operations
|
|
29
|
+
* - Hierarchy management (parent/child relationships)
|
|
30
|
+
* - Tree traversal (ancestors, descendants, siblings)
|
|
31
|
+
* - Hierarchy path maintenance
|
|
32
|
+
*/
|
|
33
|
+
export declare class TenantCollection extends SmrtCollection<Tenant> {
|
|
34
|
+
static readonly _itemClass: typeof Tenant;
|
|
35
|
+
/**
|
|
36
|
+
* Find tenants by status
|
|
37
|
+
*/
|
|
38
|
+
findByStatus(status: TenantStatus): Promise<Tenant[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Find all active tenants
|
|
41
|
+
*/
|
|
42
|
+
findActive(): Promise<Tenant[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Find tenant by slug
|
|
45
|
+
*/
|
|
46
|
+
findBySlug(slug: string): Promise<Tenant | null>;
|
|
47
|
+
/**
|
|
48
|
+
* Find all root tenants (tenants with no parent)
|
|
49
|
+
*/
|
|
50
|
+
findRoots(): Promise<Tenant[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Find direct children of a tenant
|
|
53
|
+
*/
|
|
54
|
+
findChildren(parentTenantId: string): Promise<Tenant[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Find the parent tenant of a given tenant
|
|
57
|
+
*/
|
|
58
|
+
findParent(tenantId: string): Promise<Tenant | null>;
|
|
59
|
+
/**
|
|
60
|
+
* Get all ancestors of a tenant, from immediate parent to root.
|
|
61
|
+
* Uses the hierarchyPath for efficient lookup.
|
|
62
|
+
*/
|
|
63
|
+
getAncestors(tenantId: string): Promise<Tenant[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Get all ancestors in order from root to immediate parent.
|
|
66
|
+
* Reverse of getAncestors.
|
|
67
|
+
*/
|
|
68
|
+
getAncestorsFromRoot(tenantId: string): Promise<Tenant[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Get all descendants of a tenant (all children, grandchildren, etc.)
|
|
71
|
+
* Uses hierarchyPath prefix matching for efficient lookup.
|
|
72
|
+
*/
|
|
73
|
+
getDescendants(tenantId: string): Promise<Tenant[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Get siblings of a tenant (other tenants with the same parent)
|
|
76
|
+
*/
|
|
77
|
+
getSiblings(tenantId: string): Promise<Tenant[]>;
|
|
78
|
+
/**
|
|
79
|
+
* Check if a tenant is an ancestor of another tenant
|
|
80
|
+
*/
|
|
81
|
+
isAncestorOf(potentialAncestorId: string, tenantId: string): Promise<boolean>;
|
|
82
|
+
/**
|
|
83
|
+
* Check if a tenant is a descendant of another tenant
|
|
84
|
+
*/
|
|
85
|
+
isDescendantOf(potentialDescendantId: string, tenantId: string): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Create a child tenant under a parent.
|
|
88
|
+
* Automatically sets hierarchyLevel and hierarchyPath.
|
|
89
|
+
*/
|
|
90
|
+
createChild(parentTenantId: string, options: CreateChildTenantOptions): Promise<Tenant>;
|
|
91
|
+
/**
|
|
92
|
+
* Move a tenant to a new parent.
|
|
93
|
+
* Updates hierarchyLevel and hierarchyPath for the tenant and all descendants.
|
|
94
|
+
*/
|
|
95
|
+
moveToParent(tenantId: string, newParentId: string | null): Promise<Tenant>;
|
|
96
|
+
/**
|
|
97
|
+
* Make a tenant a root tenant (remove from hierarchy)
|
|
98
|
+
*/
|
|
99
|
+
makeRoot(tenantId: string): Promise<Tenant>;
|
|
100
|
+
/**
|
|
101
|
+
* Validate that a tenant hierarchy is consistent.
|
|
102
|
+
* Returns validation errors if any.
|
|
103
|
+
*/
|
|
104
|
+
validateHierarchy(tenantId: string): Promise<string[]>;
|
|
105
|
+
/**
|
|
106
|
+
* Get the full hierarchy tree starting from a tenant.
|
|
107
|
+
* Returns a nested structure useful for UI rendering.
|
|
108
|
+
*/
|
|
109
|
+
getTree(rootTenantId?: string): Promise<Array<Tenant & {
|
|
110
|
+
children: Tenant[];
|
|
111
|
+
}>>;
|
|
112
|
+
/**
|
|
113
|
+
* Override create to automatically set hierarchy fields for new tenants.
|
|
114
|
+
* Only calculates hierarchy fields if not already provided (preserves
|
|
115
|
+
* database values during hydration via get()).
|
|
116
|
+
*/
|
|
117
|
+
create(options: any): Promise<Tenant>;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=TenantCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantCollection.d.ts","sourceRoot":"","sources":["../../src/collections/TenantCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { SmrtCollection } from '@happyvertical/smrt-core';
|
|
2
|
+
import { TenantPermissionOverride } from '../models/TenantPermissionOverride.js';
|
|
3
|
+
import { TenantPermissionEffect } from '../types/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Result of resolving tenant permission overrides
|
|
6
|
+
*/
|
|
7
|
+
export interface TenantPermissionOverrideResult {
|
|
8
|
+
/** Permission IDs explicitly granted at this tenant level */
|
|
9
|
+
grantedPermissionIds: string[];
|
|
10
|
+
/** Permission IDs explicitly denied at this tenant level */
|
|
11
|
+
deniedPermissionIds: string[];
|
|
12
|
+
/** Permission IDs set to inherit from parent */
|
|
13
|
+
inheritedPermissionIds: string[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Collection for managing TenantPermissionOverride objects.
|
|
17
|
+
*
|
|
18
|
+
* Provides methods for setting and querying tenant-level permission overrides
|
|
19
|
+
* used in hierarchical tenant permission inheritance.
|
|
20
|
+
*/
|
|
21
|
+
export declare class TenantPermissionOverrideCollection extends SmrtCollection<TenantPermissionOverride> {
|
|
22
|
+
static readonly _itemClass: typeof TenantPermissionOverride;
|
|
23
|
+
/**
|
|
24
|
+
* Find all overrides for a tenant
|
|
25
|
+
*/
|
|
26
|
+
findByTenant(tenantId: string): Promise<TenantPermissionOverride[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Find grant overrides for a tenant.
|
|
29
|
+
*
|
|
30
|
+
* Filters in memory because the `effect` column is JSON-typed and
|
|
31
|
+
* Postgres rejects bare `json = text` comparisons. A single
|
|
32
|
+
* `findByTenant` call is reused for grant, deny, and inherit lookups.
|
|
33
|
+
*/
|
|
34
|
+
findGrants(tenantId: string): Promise<TenantPermissionOverride[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Find deny overrides for a tenant.
|
|
37
|
+
*
|
|
38
|
+
* See `findGrants` for rationale on in-memory filtering.
|
|
39
|
+
*/
|
|
40
|
+
findDenies(tenantId: string): Promise<TenantPermissionOverride[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Find inherit overrides for a tenant.
|
|
43
|
+
*
|
|
44
|
+
* See `findGrants` for rationale on in-memory filtering.
|
|
45
|
+
*/
|
|
46
|
+
findInherits(tenantId: string): Promise<TenantPermissionOverride[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Get granted permission IDs for a tenant
|
|
49
|
+
*/
|
|
50
|
+
getGrantedPermissionIds(tenantId: string): Promise<string[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Get denied permission IDs for a tenant
|
|
53
|
+
*/
|
|
54
|
+
getDeniedPermissionIds(tenantId: string): Promise<string[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Get all overrides for a tenant, organized by effect
|
|
57
|
+
*/
|
|
58
|
+
getOverridesByEffect(tenantId: string): Promise<TenantPermissionOverrideResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Batch get all overrides for multiple tenants, organized by effect.
|
|
61
|
+
* Fetches all overrides in a single query to avoid N+1 query problem.
|
|
62
|
+
*
|
|
63
|
+
* @param tenantIds - Array of tenant IDs to fetch overrides for
|
|
64
|
+
* @returns Map of tenant ID to their permission override results
|
|
65
|
+
*/
|
|
66
|
+
getOverridesByEffectBatch(tenantIds: string[]): Promise<Map<string, TenantPermissionOverrideResult>>;
|
|
67
|
+
/**
|
|
68
|
+
* Set an override for a tenant permission
|
|
69
|
+
*/
|
|
70
|
+
setOverride(tenantId: string, permissionId: string, effect: TenantPermissionEffect): Promise<TenantPermissionOverride>;
|
|
71
|
+
/**
|
|
72
|
+
* Remove an override (permission will use default behavior)
|
|
73
|
+
*/
|
|
74
|
+
removeOverride(tenantId: string, permissionId: string): Promise<boolean>;
|
|
75
|
+
/**
|
|
76
|
+
* Remove all overrides for a tenant
|
|
77
|
+
*/
|
|
78
|
+
removeAllOverrides(tenantId: string): Promise<number>;
|
|
79
|
+
/**
|
|
80
|
+
* Grant a permission at the tenant level.
|
|
81
|
+
* Convenience method for setOverride with GRANT effect.
|
|
82
|
+
*/
|
|
83
|
+
grantPermission(tenantId: string, permissionId: string): Promise<TenantPermissionOverride>;
|
|
84
|
+
/**
|
|
85
|
+
* Deny a permission at the tenant level.
|
|
86
|
+
* Convenience method for setOverride with DENY effect.
|
|
87
|
+
* This blocks inheritance from parent tenants.
|
|
88
|
+
*/
|
|
89
|
+
denyPermission(tenantId: string, permissionId: string): Promise<TenantPermissionOverride>;
|
|
90
|
+
/**
|
|
91
|
+
* Set a permission to inherit from parent.
|
|
92
|
+
* Convenience method for setOverride with INHERIT effect.
|
|
93
|
+
* This is the default behavior, so mainly useful to document intent
|
|
94
|
+
* or to reset a previous grant/deny.
|
|
95
|
+
*/
|
|
96
|
+
inheritPermission(tenantId: string, permissionId: string): Promise<TenantPermissionOverride>;
|
|
97
|
+
/**
|
|
98
|
+
* Bulk set overrides for a tenant.
|
|
99
|
+
* Useful for importing or copying permission configurations.
|
|
100
|
+
*/
|
|
101
|
+
bulkSetOverrides(tenantId: string, overrides: Array<{
|
|
102
|
+
permissionId: string;
|
|
103
|
+
effect: TenantPermissionEffect;
|
|
104
|
+
}>): Promise<TenantPermissionOverride[]>;
|
|
105
|
+
/**
|
|
106
|
+
* Copy overrides from one tenant to another.
|
|
107
|
+
* Useful when creating child tenants or templates.
|
|
108
|
+
*/
|
|
109
|
+
copyOverrides(fromTenantId: string, toTenantId: string): Promise<TenantPermissionOverride[]>;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=TenantPermissionOverrideCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantPermissionOverrideCollection.d.ts","sourceRoot":"","sources":["../../src/collections/TenantPermissionOverrideCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,6DAA6D;IAC7D,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,4DAA4D;IAC5D,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;;;GAKG;AACH,qBAAa,kCAAmC,SAAQ,cAAc,CAAC,wBAAwB,CAAC;IAC9F,MAAM,CAAC,QAAQ,CAAC,UAAU,kCAA4B;IAEtD;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAMzE;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAKvE;;;;OAIG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAKvE;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAKzE;;OAEG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKlE;;OAEG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKjE;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,8BAA8B,CAAC;IA2B1C;;;;;;OAMG;IACG,yBAAyB,CAC7B,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IA6CvD;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAoBpC;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IAcnB;;OAEG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM3D;;;OAGG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,wBAAwB,CAAC;IAQpC;;;;OAIG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,wBAAwB,CAAC;IAQpC;;;;;OAKG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,wBAAwB,CAAC;IAQpC;;;OAGG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,CAAC,GACzE,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAStC;;;OAGG;IACG,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAevC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { SmrtCollection } from '@happyvertical/smrt-core';
|
|
2
|
+
import { OidcIdentity, Profile } from '@happyvertical/smrt-profiles';
|
|
3
|
+
import { User } from '../models/User.js';
|
|
4
|
+
import { UserStatus } from '../types/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* OIDC claims used for identity resolution
|
|
7
|
+
*/
|
|
8
|
+
export interface OidcClaims {
|
|
9
|
+
/** Subject identifier from IdP */
|
|
10
|
+
sub: string;
|
|
11
|
+
/** Issuer URL */
|
|
12
|
+
iss: string;
|
|
13
|
+
/** User's email address */
|
|
14
|
+
email?: string;
|
|
15
|
+
/** Whether the IdP verified the email address */
|
|
16
|
+
email_verified?: boolean;
|
|
17
|
+
/** User's display name */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** Preferred username */
|
|
20
|
+
preferred_username?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Result of OIDC identity resolution
|
|
24
|
+
*/
|
|
25
|
+
export interface OidcIdentityResult {
|
|
26
|
+
/** The User record */
|
|
27
|
+
user: User;
|
|
28
|
+
/** The linked Profile */
|
|
29
|
+
profile: Profile;
|
|
30
|
+
/** The OidcIdentity linking profile to IdP */
|
|
31
|
+
oidcIdentity: OidcIdentity;
|
|
32
|
+
/** Whether the profile was newly created */
|
|
33
|
+
created: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Options for getOrCreateFromOidc
|
|
37
|
+
*/
|
|
38
|
+
export interface GetOrCreateFromOidcOptions {
|
|
39
|
+
/** If false, skip recording login timestamp (default: true) */
|
|
40
|
+
recordLogin?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Provision a user even when the IdP explicitly reported the email as
|
|
43
|
+
* unverified (`email_verified: false`). Default false (#1400): refuse to
|
|
44
|
+
* create/resolve a user from a known-unverified address. Has no effect when
|
|
45
|
+
* the claim is absent — an IdP that omits `email_verified` makes no
|
|
46
|
+
* assertion, so it cannot be enforced.
|
|
47
|
+
*/
|
|
48
|
+
allowUnverifiedEmail?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Collection for managing User objects
|
|
52
|
+
*/
|
|
53
|
+
export declare class UserCollection extends SmrtCollection<User> {
|
|
54
|
+
static readonly _itemClass: typeof User;
|
|
55
|
+
/**
|
|
56
|
+
* Find user by email address
|
|
57
|
+
*/
|
|
58
|
+
findByEmail(email: string): Promise<User | null>;
|
|
59
|
+
/**
|
|
60
|
+
* Find user by profile ID
|
|
61
|
+
*/
|
|
62
|
+
findByProfile(profileId: string): Promise<User | null>;
|
|
63
|
+
/**
|
|
64
|
+
* Find users by status
|
|
65
|
+
*/
|
|
66
|
+
findByStatus(status: UserStatus): Promise<User[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Find all active users
|
|
69
|
+
*/
|
|
70
|
+
findActive(): Promise<User[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Find all pending users
|
|
73
|
+
*/
|
|
74
|
+
findPending(): Promise<User[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Get or create user for a profile
|
|
77
|
+
*/
|
|
78
|
+
getOrCreateForProfile(profileId: string, email: string, defaults?: Partial<{
|
|
79
|
+
status: UserStatus;
|
|
80
|
+
}>): Promise<User>;
|
|
81
|
+
/**
|
|
82
|
+
* Get or create user from OIDC claims
|
|
83
|
+
*
|
|
84
|
+
* This is the primary method for resolving identity from an OIDC login.
|
|
85
|
+
* It handles the full flow:
|
|
86
|
+
* 1. Find or create Profile from OIDC claims (via smrt-profiles)
|
|
87
|
+
* 2. Link OidcIdentity to the Profile
|
|
88
|
+
* 3. Find or create User linked to the Profile
|
|
89
|
+
*
|
|
90
|
+
* @param claims - OIDC token claims (sub, iss, email, name)
|
|
91
|
+
* @param provider - Provider name (e.g., 'kanidm', 'keycloak', 'google')
|
|
92
|
+
* @param options - Optional settings (recordLogin)
|
|
93
|
+
* @returns User, Profile, OidcIdentity, and whether profile was created
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const userCollection = await UserCollection.create({ db: dbConfig });
|
|
98
|
+
*
|
|
99
|
+
* // In your OIDC callback handler:
|
|
100
|
+
* const { user, profile } = await userCollection.getOrCreateFromOidc(
|
|
101
|
+
* {
|
|
102
|
+
* sub: tokenClaims.sub,
|
|
103
|
+
* iss: tokenClaims.iss,
|
|
104
|
+
* email: tokenClaims.email,
|
|
105
|
+
* name: tokenClaims.name,
|
|
106
|
+
* },
|
|
107
|
+
* 'kanidm'
|
|
108
|
+
* );
|
|
109
|
+
*
|
|
110
|
+
* // User and profile are now available
|
|
111
|
+
* // Login was auto-recorded; pass { recordLogin: false } to skip
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
getOrCreateFromOidc(claims: OidcClaims, provider: string, options?: GetOrCreateFromOidcOptions): Promise<OidcIdentityResult>;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=UserCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserCollection.d.ts","sourceRoot":"","sources":["../../src/collections/UserCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,YAAY,EAAE,YAAY,CAAC;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IACtD,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAQ;IAElC;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQtD;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQ5D;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAOvD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAInC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAIpC;;OAEG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,CAAM,GAC7C,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,mBAAmB,CACvB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,kBAAkB,CAAC;CAqE/B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collection exports for smrt-users
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
export { CliAuthRequestCollection, UsersCliAuthRequestCollection, } from './CliAuthRequestCollection.js';
|
|
6
|
+
export { GroupCollection } from './GroupCollection.js';
|
|
7
|
+
export { GroupMemberCollection } from './GroupMemberCollection.js';
|
|
8
|
+
export { GroupRoleCollection } from './GroupRoleCollection.js';
|
|
9
|
+
export { MagicLinkTokenCollection, UsersMagicLinkTokenCollection, } from './MagicLinkTokenCollection.js';
|
|
10
|
+
export { MembershipCollection } from './MembershipCollection.js';
|
|
11
|
+
export { MembershipOverrideCollection } from './MembershipOverrideCollection.js';
|
|
12
|
+
export { PermissionCollection } from './PermissionCollection.js';
|
|
13
|
+
export { RoleCollection } from './RoleCollection.js';
|
|
14
|
+
export { RolePermissionCollection } from './RolePermissionCollection.js';
|
|
15
|
+
export { type CreateSessionOptions, SessionCollection, } from './SessionCollection.js';
|
|
16
|
+
export { type CreateChildTenantOptions, TenantCollection, TenantHierarchyError, } from './TenantCollection.js';
|
|
17
|
+
export { TenantPermissionOverrideCollection, type TenantPermissionOverrideResult, } from './TenantPermissionOverrideCollection.js';
|
|
18
|
+
export { type GetOrCreateFromOidcOptions, type OidcClaims, type OidcIdentityResult, UserCollection, } from './UserCollection.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EACL,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EACL,KAAK,oBAAoB,EACzB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kCAAkC,EAClC,KAAK,8BAA8B,GACpC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,cAAc,GACf,MAAM,qBAAqB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { CliAuthRequestCollection, type CreateChildTenantOptions, type CreateSessionOptions, type GetOrCreateFromOidcOptions, GroupCollection, GroupMemberCollection, GroupRoleCollection, MagicLinkTokenCollection, MembershipCollection, MembershipOverrideCollection, type OidcClaims, type OidcIdentityResult, PermissionCollection, RoleCollection, RolePermissionCollection, SessionCollection, TenantCollection, TenantHierarchyError, TenantPermissionOverrideCollection, type TenantPermissionOverrideResult, UserCollection, UsersCliAuthRequestCollection, UsersMagicLinkTokenCollection, } from './collections/index.js';
|
|
2
|
+
export { CliAuthRequest, type CliAuthRequestStatus, DEFAULT_SESSION_TTL, DEFAULT_TOKEN_EXPIRY_SECONDS, Group, GroupMember, GroupRole, generateSessionId, MAX_TENANT_HIERARCHY_DEPTH, MagicLinkToken, Membership, MembershipOverride, Permission, Role, RolePermission, Session, Tenant, TenantPermissionOverride, User, UsersCliAuthRequest, UsersMagicLinkToken, } from './models/index.js';
|
|
3
|
+
export { type ApproveCliAuthRequestInput, applyPostgresPermissionPolicies, type CliAuthStartResult, type CliAuthTokenResult, type CreateAuthorizationUrlOptions, DEFAULT_CLI_AUTH_POLL_INTERVAL_SECONDS, DEFAULT_CLI_AUTH_REQUEST_TTL_SECONDS, DEFAULT_CLI_SESSION_TTL_SECONDS, decodeOidcTransaction, type EnsureTenantResult, encodeOidcTransaction, type GeneratePostgresPermissionSqlResult, generatePostgresPermissionSql, getCurrentSessionPermissionContext, getRequestScopedDatabase, getUsersOidcConfig, MagicLinkError, type MagicLinkResult, MagicLinkService, type MagicLinkServiceOptions, type MagicLinkVerifyResult, type OidcCallbackResult, OidcLoginError, type OidcLoginResult, OidcLoginService, type OidcLoginServiceOptions, type OidcProviderConfig, type OidcProviderKind, type OidcProviderMetadata, type OidcProviderResolution, type OidcProviderResolutionOptions, type OidcTokenEndpointAuthMethod, type OidcTokenSet, type OidcTransaction, type PermissionCatalog, PermissionCatalogService, type PermissionCatalogSource, type PermissionCatalogSyncResult, type PermissionDefinition, type PermissionResolutionOptions, type PermissionResolutionResult, PermissionResolver, type PostgresPermissionAction, type PostgresPermissionBinding, type PostgresPermissionPolicyReportItem, type PostgresPermissionPolicyTarget, type ResolvedOidcProviderConfig, registerPermissionDefinitions, resolveOidcProviderConfig, type SessionContext, type SessionPermissionRuntimeContext, type SessionPermissionRuntimeOptions, SessionService, type SessionServiceOptions, syncPermissionCatalog, type TenantPermissionInheritanceResult, TenantService, type TenantWithOwnershipResult, TerminalAuthError, TerminalAuthRateLimitError, TerminalAuthService, type TerminalAuthServiceOptions, type UsersConfig, type UsersOidcConfig, withSessionPermissionContext, } from './services/index.js';
|
|
4
|
+
export { DEFAULT_ROLE_SLUGS, DEFAULT_ROLES, DEFAULT_TENANT_POLICY, type DefaultRoleSlug, MembershipStatus, OverrideEffect, SessionStatus, TenantPermissionEffect, type TenantPolicy, type TenantPolicyMode, TenantStatus, UserStatus, } from './types/index.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAKH,OAAO,wBAAwB,CAAC;AAGhC,OAAO,EACL,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,kCAAkC,EAClC,KAAK,8BAA8B,EACnC,cAAc,EACd,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,MAAM,EACN,wBAAwB,EACxB,IAAI,EACJ,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,0BAA0B,EAC/B,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,sCAAsC,EACtC,oCAAoC,EACpC,+BAA+B,EAC/B,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,mCAAmC,EACxC,6BAA6B,EAC7B,kCAAkC,EAClC,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,cAAc,EACd,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,wBAAwB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACpC,cAAc,EACd,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,KAAK,iCAAiC,EACtC,aAAa,EACb,KAAK,yBAAyB,EAC9B,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,KAAK,eAAe,EACpB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,YAAY,EACZ,UAAU,GACX,MAAM,kBAAkB,CAAC"}
|