@happyvertical/smrt-users 0.38.11 → 0.38.13
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/chunks/{TerminalAuthService-DGp_Wsil.js → TerminalAuthService-BZ9p1mzh.js} +2 -2
- package/dist/chunks/{TerminalAuthService-DGp_Wsil.js.map → TerminalAuthService-BZ9p1mzh.js.map} +1 -1
- package/dist/collections/TenantIntegrationCollection.d.ts +9 -0
- package/dist/collections/TenantIntegrationCollection.d.ts.map +1 -0
- package/dist/collections/index.d.ts +1 -0
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +210 -28
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +393 -2
- package/dist/models/TenantIntegration.d.ts +78 -0
- package/dist/models/TenantIntegration.d.ts.map +1 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/smrt-knowledge.json +212 -5
- package/dist/sveltekit.js +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SmrtCollection } from '@happyvertical/smrt-core';
|
|
2
|
+
import { TenantIntegration, TenantIntegrationProvider } from '../models/TenantIntegration.js';
|
|
3
|
+
export declare class TenantIntegrationCollection extends SmrtCollection<TenantIntegration> {
|
|
4
|
+
static readonly _itemClass: typeof TenantIntegration;
|
|
5
|
+
listForTenant(tenantId: string): Promise<TenantIntegration[]>;
|
|
6
|
+
findFor(tenantId: string, provider: TenantIntegrationProvider): Promise<TenantIntegration | null>;
|
|
7
|
+
findOrInit(tenantId: string, provider: TenantIntegrationProvider): Promise<TenantIntegration>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=TenantIntegrationCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantIntegrationCollection.d.ts","sourceRoot":"","sources":["../../src/collections/TenantIntegrationCollection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAExC,qBAAa,2BAA4B,SAAQ,cAAc,CAAC,iBAAiB,CAAC;IAChF,MAAM,CAAC,QAAQ,CAAC,UAAU,2BAAqB;IAEzC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAO7D,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAM9B,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,iBAAiB,CAAC;CA0B9B"}
|
|
@@ -15,6 +15,7 @@ export { RoleCollection, type SeedSystemRolesOptions, } from './RoleCollection.j
|
|
|
15
15
|
export { DEFAULT_ROLE_PERMISSION_PATTERNS, RolePermissionCollection, type RolePermissionPatternMatrix, type SeedRolePermissionsOptions, type SeedRolePermissionsResult, } from './RolePermissionCollection.js';
|
|
16
16
|
export { type CreateSessionOptions, SessionCollection, } from './SessionCollection.js';
|
|
17
17
|
export { type CreateChildTenantOptions, TenantCollection, TenantHierarchyError, } from './TenantCollection.js';
|
|
18
|
+
export { TenantIntegrationCollection } from './TenantIntegrationCollection.js';
|
|
18
19
|
export { TenantPermissionOverrideCollection, type TenantPermissionOverrideResult, } from './TenantPermissionOverrideCollection.js';
|
|
19
20
|
export { type GetOrCreateFromOidcOptions, type OidcClaims, type OidcIdentityResult, UserCollection, } from './UserCollection.js';
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,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,EACL,cAAc,EACd,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC;AAEvC,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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,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,EACL,cAAc,EACd,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC;AAEvC,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,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,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
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { AccessRequestCollection, CliAuthRequestCollection, type CreateChildTenantOptions, type CreateSessionOptions, DEFAULT_ROLE_PERMISSION_PATTERNS, type GetOrCreateFromOidcOptions, GroupCollection, GroupMemberCollection, GroupRoleCollection, MagicLinkTokenCollection, MembershipCollection, MembershipOverrideCollection, type OidcClaims, type OidcIdentityResult, PermissionCollection, RoleCollection, RolePermissionCollection, type RolePermissionPatternMatrix, type SeedRolePermissionsOptions, type SeedRolePermissionsResult, type SeedSystemRolesOptions, SessionCollection, TenantCollection, TenantHierarchyError, TenantPermissionOverrideCollection, type TenantPermissionOverrideResult, UserCollection, UsersCliAuthRequestCollection, UsersMagicLinkTokenCollection, } from './collections/index.js';
|
|
2
|
-
export { AccessRequest, type AccessRequestOptions, 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';
|
|
1
|
+
export { AccessRequestCollection, CliAuthRequestCollection, type CreateChildTenantOptions, type CreateSessionOptions, DEFAULT_ROLE_PERMISSION_PATTERNS, type GetOrCreateFromOidcOptions, GroupCollection, GroupMemberCollection, GroupRoleCollection, MagicLinkTokenCollection, MembershipCollection, MembershipOverrideCollection, type OidcClaims, type OidcIdentityResult, PermissionCollection, RoleCollection, RolePermissionCollection, type RolePermissionPatternMatrix, type SeedRolePermissionsOptions, type SeedRolePermissionsResult, type SeedSystemRolesOptions, SessionCollection, TenantCollection, TenantHierarchyError, TenantIntegrationCollection, TenantPermissionOverrideCollection, type TenantPermissionOverrideResult, UserCollection, UsersCliAuthRequestCollection, UsersMagicLinkTokenCollection, } from './collections/index.js';
|
|
2
|
+
export { AccessRequest, type AccessRequestOptions, 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, TenantIntegration, type TenantIntegrationCheckSummary, type TenantIntegrationOptions, type TenantIntegrationProvider, type TenantIntegrationStatus, TenantPermissionOverride, User, UsersCliAuthRequest, UsersMagicLinkToken, } from './models/index.js';
|
|
3
3
|
export { ACCESS_REQUEST_CAPABILITIES, type AccessRequestAuthorizationContext, type AccessRequestAuthorizer, type AccessRequestCapability, AccessRequestError, type AccessRequestErrorCode, type AccessRequestEvent, type AccessRequestEventHandler, type AccessRequestEventType, AccessRequestService, type AccessRequestServiceOptions, type ApproveAccessRequestOptions, type ApproveCliAuthRequestInput, applyPostgresPermissionPolicies, assertOperationPermission, type CancelAccessRequestOptions, type CliAuthStartResult, type CliAuthTokenResult, type CreateAccessRequestInput, type CreateAuthorizationUrlOptions, checkOperationPermission, DEFAULT_CLI_AUTH_POLL_INTERVAL_SECONDS, DEFAULT_CLI_AUTH_REQUEST_TTL_SECONDS, DEFAULT_CLI_SESSION_TTL_SECONDS, type DeclineAccessRequestOptions, decodeOidcTransaction, deriveOperationPermissionCollectionName, deriveOperationPermissionSlug, type EnsureTenantResult, encodeOidcTransaction, type GeneratePostgresPermissionSqlResult, type GraduateAccessRequestOptions, type GraduateAccessRequestResult, type GraduateExistingTenantOption, type GraduateNewTenantOption, type GraduateTenantOption, generatePostgresPermissionSql, getCurrentSessionPermissionContext, getRequestScopedDatabase, getUsersOidcConfig, hasOperationPermission, type ListAccessRequestsFilter, MagicLinkError, type MagicLinkResult, MagicLinkService, type MagicLinkServiceOptions, type MagicLinkVerifyResult, MobileAuthError, type MobileAuthErrorCode, MobileAuthService, type MobileAuthServiceOptions, type MobileBootstrapContext, type MobileLoginContext, type MobileLogoutResult, type MobileRequestMeta, type MobileResolvedUser, type MobileTenantContext, normalizeOperationPermissionAction, 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 OperationPermissionAllowReason, type OperationPermissionCollectionInput, type OperationPermissionDecision, type OperationPermissionDenyReason, OperationPermissionError, type OperationPermissionOptions, type PermissionCatalog, PermissionCatalogService, type PermissionCatalogSource, type PermissionCatalogSyncResult, type PermissionDefinition, type PermissionResolutionOptions, type PermissionResolutionResult, PermissionResolver, type PostgresPermissionAction, type PostgresPermissionBinding, type PostgresPermissionPolicyReportItem, type PostgresPermissionPolicyTarget, type ResolvedOidcProviderConfig, readMobileBearerToken, registerPermissionDefinitions, resolveOidcProviderConfig, type SessionContext, type SessionPermissionRuntimeContext, type SessionPermissionRuntimeOptions, SessionService, type SessionServiceOptions, type SwitchTenantResult, syncPermissionCatalog, type TenantPermissionInheritanceResult, TenantService, type TenantWithOwnershipResult, TerminalAuthError, TerminalAuthRateLimitError, TerminalAuthService, type TerminalAuthServiceOptions, type UsersConfig, type UsersOidcConfig, validateMobileRedirectUri, withSessionPermissionContext, } from './services/index.js';
|
|
4
4
|
export { AccessRequestStatus, 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
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAKH,OAAO,wBAAwB,CAAC;AAGhC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,gCAAgC,EAChC,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,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,kCAAkC,EAClC,KAAK,8BAA8B,EACnC,cAAc,EACd,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,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,2BAA2B,EAC3B,KAAK,iCAAiC,EACtC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,+BAA+B,EAC/B,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,wBAAwB,EACxB,sCAAsC,EACtC,oCAAoC,EACpC,+BAA+B,EAC/B,KAAK,2BAA2B,EAChC,qBAAqB,EACrB,uCAAuC,EACvC,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,mCAAmC,EACxC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,6BAA6B,EAC7B,kCAAkC,EAClC,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,cAAc,EACd,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,eAAe,EACf,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,kCAAkC,EAClC,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,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,wBAAwB,EACxB,KAAK,0BAA0B,EAC/B,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,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACpC,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,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,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mBAAmB,EACnB,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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { $ as MembershipCollection, A as TenantCollection, B as PermissionCatalogService, C as encodeOidcTransaction, D as UserCollection, F as DEFAULT_SESSION_TTL, G as syncPermissionCatalog, H as deriveOperationPermissionSlug, I as Session, J as Role, K as RolePermission, L as generateSessionId, M as MAX_TENANT_HIERARCHY_DEPTH, N as Tenant, O as TenantPermissionOverrideCollection, P as SessionCollection, Q as MembershipOverride, R as DEFAULT_ROLE_PERMISSION_PATTERNS, S as decodeOidcTransaction, T as resolveOidcProviderConfig, U as normalizeOperationPermissionAction, V as deriveOperationPermissionCollectionName, W as registerPermissionDefinitions, X as Permission, Y as PermissionCollection, Z as MembershipOverrideCollection, _ as validateMobileRedirectUri, _t as OverrideEffect, a as TerminalAuthRateLimitError, at as GroupCollection, b as OidcLoginError, bt as TenantStatus, c as assertOperationPermission, ct as UsersCliAuthRequest, d as getCurrentSessionPermissionContext, dt as normalizeEmail, et as Membership, f as getRequestScopedDatabase, ft as AccessRequestStatus, g as readMobileBearerToken, gt as MembershipStatus, h as MobileAuthService, ht as DEFAULT_TENANT_POLICY, i as TerminalAuthError, it as GroupMember, j as TenantHierarchyError, k as TenantPermissionOverride, l as checkOperationPermission, lt as User, m as MobileAuthError, mt as DEFAULT_ROLE_SLUGS, n as DEFAULT_CLI_AUTH_REQUEST_TTL_SECONDS, nt as GroupRole, o as TerminalAuthService, ot as Group, p as withSessionPermissionContext, pt as DEFAULT_ROLES, q as RoleCollection, r as DEFAULT_CLI_SESSION_TTL_SECONDS, rt as GroupMemberCollection, s as OperationPermissionError, st as UsersCliAuthRequestCollection, t as DEFAULT_CLI_AUTH_POLL_INTERVAL_SECONDS, tt as GroupRoleCollection, u as hasOperationPermission, ut as isValidEmail, v as SessionService, vt as SessionStatus, w as getUsersOidcConfig, x as OidcLoginService, xt as UserStatus, y as PermissionResolver, yt as TenantPermissionEffect, z as RolePermissionCollection } from "./chunks/TerminalAuthService-
|
|
1
|
+
import { $ as MembershipCollection, A as TenantCollection, B as PermissionCatalogService, C as encodeOidcTransaction, D as UserCollection, F as DEFAULT_SESSION_TTL, G as syncPermissionCatalog, H as deriveOperationPermissionSlug, I as Session, J as Role, K as RolePermission, L as generateSessionId, M as MAX_TENANT_HIERARCHY_DEPTH, N as Tenant, O as TenantPermissionOverrideCollection, P as SessionCollection, Q as MembershipOverride, R as DEFAULT_ROLE_PERMISSION_PATTERNS, S as decodeOidcTransaction, T as resolveOidcProviderConfig, U as normalizeOperationPermissionAction, V as deriveOperationPermissionCollectionName, W as registerPermissionDefinitions, X as Permission, Y as PermissionCollection, Z as MembershipOverrideCollection, _ as validateMobileRedirectUri, _t as OverrideEffect, a as TerminalAuthRateLimitError, at as GroupCollection, b as OidcLoginError, bt as TenantStatus, c as assertOperationPermission, ct as UsersCliAuthRequest, d as getCurrentSessionPermissionContext, dt as normalizeEmail, et as Membership, f as getRequestScopedDatabase, ft as AccessRequestStatus, g as readMobileBearerToken, gt as MembershipStatus, h as MobileAuthService, ht as DEFAULT_TENANT_POLICY, i as TerminalAuthError, it as GroupMember, j as TenantHierarchyError, k as TenantPermissionOverride, l as checkOperationPermission, lt as User, m as MobileAuthError, mt as DEFAULT_ROLE_SLUGS, n as DEFAULT_CLI_AUTH_REQUEST_TTL_SECONDS, nt as GroupRole, o as TerminalAuthService, ot as Group, p as withSessionPermissionContext, pt as DEFAULT_ROLES, q as RoleCollection, r as DEFAULT_CLI_SESSION_TTL_SECONDS, rt as GroupMemberCollection, s as OperationPermissionError, st as UsersCliAuthRequestCollection, t as DEFAULT_CLI_AUTH_POLL_INTERVAL_SECONDS, tt as GroupRoleCollection, u as hasOperationPermission, ut as isValidEmail, v as SessionService, vt as SessionStatus, w as getUsersOidcConfig, x as OidcLoginService, xt as UserStatus, y as PermissionResolver, yt as TenantPermissionEffect, z as RolePermissionCollection } from "./chunks/TerminalAuthService-BZ9p1mzh.js";
|
|
2
2
|
import { ObjectRegistry, SmrtCollection, SmrtObject, field, findManifestEntryByQualifiedName, smrt } from "@happyvertical/smrt-core";
|
|
3
|
+
import { TenantScoped, tenantId } from "@happyvertical/smrt-tenancy";
|
|
3
4
|
import { createLogger } from "@happyvertical/logger";
|
|
4
5
|
import { createHash } from "node:crypto";
|
|
5
6
|
//#region src/models/AccessRequest.ts
|
|
6
|
-
var __defProp$
|
|
7
|
-
var __getOwnPropDesc$
|
|
8
|
-
var __decorateClass$
|
|
9
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
7
|
+
var __defProp$2 = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __decorateClass$2 = (decorators, target, key, kind) => {
|
|
10
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
|
|
10
11
|
for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
-
if (kind && result) __defProp$
|
|
12
|
+
if (kind && result) __defProp$2(target, key, result);
|
|
12
13
|
return result;
|
|
13
14
|
};
|
|
14
15
|
var AccessRequest = class extends SmrtObject {
|
|
@@ -93,24 +94,24 @@ var AccessRequest = class extends SmrtObject {
|
|
|
93
94
|
return this.status === AccessRequestStatus.DECLINED || this.status === AccessRequestStatus.GRADUATED || this.status === AccessRequestStatus.CANCELED;
|
|
94
95
|
}
|
|
95
96
|
};
|
|
96
|
-
__decorateClass$
|
|
97
|
+
__decorateClass$2([field({
|
|
97
98
|
required: true,
|
|
98
99
|
indexed: true
|
|
99
100
|
})], AccessRequest.prototype, "email", 2);
|
|
100
|
-
__decorateClass$
|
|
101
|
-
__decorateClass$
|
|
101
|
+
__decorateClass$2([field({ nullable: true })], AccessRequest.prototype, "name", 2);
|
|
102
|
+
__decorateClass$2([field({
|
|
102
103
|
type: "text",
|
|
103
104
|
indexed: true
|
|
104
105
|
})], AccessRequest.prototype, "status", 2);
|
|
105
|
-
__decorateClass$
|
|
106
|
-
__decorateClass$
|
|
107
|
-
__decorateClass$
|
|
108
|
-
__decorateClass$
|
|
109
|
-
__decorateClass$
|
|
110
|
-
__decorateClass$
|
|
111
|
-
__decorateClass$
|
|
112
|
-
__decorateClass$
|
|
113
|
-
AccessRequest = __decorateClass$
|
|
106
|
+
__decorateClass$2([field({ indexed: true })], AccessRequest.prototype, "source", 2);
|
|
107
|
+
__decorateClass$2([field()], AccessRequest.prototype, "requestContext", 2);
|
|
108
|
+
__decorateClass$2([field({ nullable: true })], AccessRequest.prototype, "note", 2);
|
|
109
|
+
__decorateClass$2([field()], AccessRequest.prototype, "requestedAt", 2);
|
|
110
|
+
__decorateClass$2([field({ nullable: true })], AccessRequest.prototype, "decidedAt", 2);
|
|
111
|
+
__decorateClass$2([field({ nullable: true })], AccessRequest.prototype, "decidedBy", 2);
|
|
112
|
+
__decorateClass$2([field({ nullable: true })], AccessRequest.prototype, "resultingUserId", 2);
|
|
113
|
+
__decorateClass$2([field({ nullable: true })], AccessRequest.prototype, "tenantHint", 2);
|
|
114
|
+
AccessRequest = __decorateClass$2([smrt({
|
|
114
115
|
tableName: "access_requests",
|
|
115
116
|
conflictColumns: ["id"],
|
|
116
117
|
api: { include: [] },
|
|
@@ -164,12 +165,12 @@ var AccessRequestCollection = class extends SmrtCollection {
|
|
|
164
165
|
};
|
|
165
166
|
//#endregion
|
|
166
167
|
//#region src/models/MagicLinkToken.ts
|
|
167
|
-
var __defProp = Object.defineProperty;
|
|
168
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
169
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
170
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
168
|
+
var __defProp$1 = Object.defineProperty;
|
|
169
|
+
var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
|
|
170
|
+
var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
171
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
|
|
171
172
|
for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
172
|
-
if (kind && result) __defProp(target, key, result);
|
|
173
|
+
if (kind && result) __defProp$1(target, key, result);
|
|
173
174
|
return result;
|
|
174
175
|
};
|
|
175
176
|
var DEFAULT_TOKEN_EXPIRY_SECONDS = 600;
|
|
@@ -197,11 +198,11 @@ var UsersMagicLinkToken = class extends SmrtObject {
|
|
|
197
198
|
return !this.used && !this.isExpired();
|
|
198
199
|
}
|
|
199
200
|
};
|
|
200
|
-
__decorateClass([field({
|
|
201
|
+
__decorateClass$1([field({
|
|
201
202
|
required: true,
|
|
202
203
|
unique: true
|
|
203
204
|
})], UsersMagicLinkToken.prototype, "nonce", 2);
|
|
204
|
-
UsersMagicLinkToken = __decorateClass([smrt({
|
|
205
|
+
UsersMagicLinkToken = __decorateClass$1([smrt({
|
|
205
206
|
tableName: "users_magic_link_tokens",
|
|
206
207
|
api: { include: [] },
|
|
207
208
|
mcp: { include: [] },
|
|
@@ -246,6 +247,187 @@ var UsersMagicLinkTokenCollection = class extends SmrtCollection {
|
|
|
246
247
|
}
|
|
247
248
|
};
|
|
248
249
|
//#endregion
|
|
250
|
+
//#region src/models/TenantIntegration.ts
|
|
251
|
+
var __defProp = Object.defineProperty;
|
|
252
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
253
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
254
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
255
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
256
|
+
if (kind && result) __defProp(target, key, result);
|
|
257
|
+
return result;
|
|
258
|
+
};
|
|
259
|
+
function parseExternalIds(raw) {
|
|
260
|
+
if (!raw) return {};
|
|
261
|
+
if (typeof raw === "object" && !Array.isArray(raw)) return Object.fromEntries(Object.entries(raw).filter(([, value]) => typeof value === "string"));
|
|
262
|
+
if (typeof raw !== "string") return {};
|
|
263
|
+
try {
|
|
264
|
+
const parsed = JSON.parse(raw);
|
|
265
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return {};
|
|
266
|
+
return Object.fromEntries(Object.entries(parsed).filter(([, value]) => typeof value === "string"));
|
|
267
|
+
} catch {
|
|
268
|
+
return {};
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
function stringifyExternalIds(externalIds) {
|
|
272
|
+
for (const [key, value] of Object.entries(externalIds)) if (typeof value !== "string") throw new TypeError(`TenantIntegration external id '${key}' must be a string`);
|
|
273
|
+
return JSON.stringify(externalIds);
|
|
274
|
+
}
|
|
275
|
+
function parseCheckSummary(raw) {
|
|
276
|
+
if (!raw) return [];
|
|
277
|
+
if (Array.isArray(raw)) return normalizeCheckSummary(raw);
|
|
278
|
+
if (typeof raw !== "string") return [];
|
|
279
|
+
try {
|
|
280
|
+
const parsed = JSON.parse(raw);
|
|
281
|
+
return Array.isArray(parsed) ? normalizeCheckSummary(parsed) : [];
|
|
282
|
+
} catch {
|
|
283
|
+
return [];
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
function normalizeCheckSummary(raw) {
|
|
287
|
+
return raw.filter((entry) => !!entry && typeof entry === "object" && !Array.isArray(entry)).map((entry) => ({
|
|
288
|
+
name: typeof entry.name === "string" ? entry.name : "",
|
|
289
|
+
ok: entry.ok === true,
|
|
290
|
+
...typeof entry.message === "string" ? { message: entry.message } : {}
|
|
291
|
+
})).filter((entry) => entry.name.length > 0);
|
|
292
|
+
}
|
|
293
|
+
function stringifyCheckSummary(summary) {
|
|
294
|
+
return JSON.stringify(summary);
|
|
295
|
+
}
|
|
296
|
+
var TenantIntegration = class extends SmrtObject {
|
|
297
|
+
tenantId = "";
|
|
298
|
+
/**
|
|
299
|
+
* Provider identifier, such as `aws`, `matomo`, `glitchtip`, or an
|
|
300
|
+
* app-defined provider string.
|
|
301
|
+
*/
|
|
302
|
+
provider = "aws";
|
|
303
|
+
/**
|
|
304
|
+
* Provider-side identifiers. Shape depends on the provider. This must not
|
|
305
|
+
* contain provider credentials or secret material.
|
|
306
|
+
*/
|
|
307
|
+
externalIds = "{}";
|
|
308
|
+
/**
|
|
309
|
+
* Current provisioning/health status.
|
|
310
|
+
*/
|
|
311
|
+
status = "unprovisioned";
|
|
312
|
+
/**
|
|
313
|
+
* UTC timestamp of the most recent doctor/provisioning check.
|
|
314
|
+
*/
|
|
315
|
+
lastCheckedAt = null;
|
|
316
|
+
/**
|
|
317
|
+
* Per-check pass/fail summary from the most recent doctor run.
|
|
318
|
+
*/
|
|
319
|
+
lastCheckSummary = "[]";
|
|
320
|
+
/**
|
|
321
|
+
* Most recent error message when `status === 'failed'`, or null otherwise.
|
|
322
|
+
*/
|
|
323
|
+
lastError = null;
|
|
324
|
+
constructor(options = {}) {
|
|
325
|
+
super(options);
|
|
326
|
+
if (options.tenantId !== void 0) this.tenantId = options.tenantId;
|
|
327
|
+
if (options.provider !== void 0) this.provider = options.provider;
|
|
328
|
+
if (options.externalIds !== void 0) this.setExternalIds(options.externalIds);
|
|
329
|
+
if (options.status !== void 0) this.status = options.status;
|
|
330
|
+
if (options.lastCheckedAt !== void 0) this.lastCheckedAt = options.lastCheckedAt;
|
|
331
|
+
if (options.lastCheckSummary !== void 0) this.setLastCheckSummary(options.lastCheckSummary);
|
|
332
|
+
if (options.lastError !== void 0) this.lastError = options.lastError;
|
|
333
|
+
}
|
|
334
|
+
async initialize() {
|
|
335
|
+
await super.initialize();
|
|
336
|
+
this.normalizeJsonFields();
|
|
337
|
+
return this;
|
|
338
|
+
}
|
|
339
|
+
normalizeJsonFields() {
|
|
340
|
+
const fields = this;
|
|
341
|
+
if (fields.externalIds == null) this.externalIds = "{}";
|
|
342
|
+
else if (typeof fields.externalIds !== "string") this.setExternalIds(fields.externalIds);
|
|
343
|
+
if (fields.lastCheckSummary == null) this.lastCheckSummary = "[]";
|
|
344
|
+
else if (typeof fields.lastCheckSummary !== "string") this.setLastCheckSummary(fields.lastCheckSummary);
|
|
345
|
+
}
|
|
346
|
+
getExternalIds() {
|
|
347
|
+
return parseExternalIds(this.externalIds);
|
|
348
|
+
}
|
|
349
|
+
setExternalIds(externalIds) {
|
|
350
|
+
this.externalIds = typeof externalIds === "string" ? externalIds : stringifyExternalIds(externalIds);
|
|
351
|
+
}
|
|
352
|
+
getExternalId(key) {
|
|
353
|
+
const value = this.getExternalIds()[key];
|
|
354
|
+
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
355
|
+
}
|
|
356
|
+
setExternalId(key, value) {
|
|
357
|
+
const externalIds = this.getExternalIds();
|
|
358
|
+
if (value === void 0) delete externalIds[key];
|
|
359
|
+
else externalIds[key] = value;
|
|
360
|
+
this.setExternalIds(externalIds);
|
|
361
|
+
}
|
|
362
|
+
getLastCheckSummary() {
|
|
363
|
+
return parseCheckSummary(this.lastCheckSummary);
|
|
364
|
+
}
|
|
365
|
+
setLastCheckSummary(summary) {
|
|
366
|
+
this.lastCheckSummary = typeof summary === "string" ? summary : stringifyCheckSummary(summary);
|
|
367
|
+
}
|
|
368
|
+
recordDoctorRun(outcome) {
|
|
369
|
+
this.status = outcome.status;
|
|
370
|
+
this.setLastCheckSummary(outcome.summary);
|
|
371
|
+
this.lastCheckedAt = /* @__PURE__ */ new Date();
|
|
372
|
+
this.lastError = outcome.error ?? null;
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
__decorateClass([tenantId()], TenantIntegration.prototype, "tenantId", 2);
|
|
376
|
+
TenantIntegration = __decorateClass([TenantScoped({ mode: "required" }), smrt({
|
|
377
|
+
tableName: "tenant_integrations",
|
|
378
|
+
conflictColumns: ["tenant_id", "provider"],
|
|
379
|
+
api: { include: ["list", "get"] },
|
|
380
|
+
mcp: { include: ["list", "get"] },
|
|
381
|
+
cli: true
|
|
382
|
+
})], TenantIntegration);
|
|
383
|
+
//#endregion
|
|
384
|
+
//#region src/collections/TenantIntegrationCollection.ts
|
|
385
|
+
var TenantIntegrationCollection = class extends SmrtCollection {
|
|
386
|
+
static _itemClass = TenantIntegration;
|
|
387
|
+
async listForTenant(tenantId) {
|
|
388
|
+
return this.list({
|
|
389
|
+
where: { tenantId },
|
|
390
|
+
orderBy: "provider ASC"
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
async findFor(tenantId, provider) {
|
|
394
|
+
return this.findOne({ where: {
|
|
395
|
+
tenantId,
|
|
396
|
+
provider
|
|
397
|
+
} });
|
|
398
|
+
}
|
|
399
|
+
async findOrInit(tenantId, provider) {
|
|
400
|
+
const existing = await this.findFor(tenantId, provider);
|
|
401
|
+
if (existing) return existing;
|
|
402
|
+
try {
|
|
403
|
+
return await this.create({
|
|
404
|
+
tenantId,
|
|
405
|
+
provider,
|
|
406
|
+
status: "unprovisioned",
|
|
407
|
+
_insertOnly: true
|
|
408
|
+
});
|
|
409
|
+
} catch (err) {
|
|
410
|
+
if (!isDuplicateKeyError(err)) throw err;
|
|
411
|
+
const winner = await this.findFor(tenantId, provider);
|
|
412
|
+
if (winner) return winner;
|
|
413
|
+
throw err;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
};
|
|
417
|
+
function isDuplicateKeyError(err) {
|
|
418
|
+
const seen = /* @__PURE__ */ new Set();
|
|
419
|
+
let cur = err;
|
|
420
|
+
while (cur && typeof cur === "object" && !seen.has(cur)) {
|
|
421
|
+
seen.add(cur);
|
|
422
|
+
const e = cur;
|
|
423
|
+
if (e.code === "23505" || e.code === "VALIDATION_UNIQUE_CONSTRAINT") return true;
|
|
424
|
+
const message = typeof e.message === "string" ? e.message : "";
|
|
425
|
+
if (/duplicate key|unique.+violat|code=23505|SQLITE_CONSTRAINT.*UNIQUE/i.test(message)) return true;
|
|
426
|
+
cur = e.cause;
|
|
427
|
+
}
|
|
428
|
+
return false;
|
|
429
|
+
}
|
|
430
|
+
//#endregion
|
|
249
431
|
//#region src/services/AccessRequestService.ts
|
|
250
432
|
var logger = createLogger({ level: "info" });
|
|
251
433
|
var ACCESS_REQUEST_CAPABILITIES = {
|
|
@@ -736,7 +918,7 @@ var MagicLinkService = class MagicLinkService {
|
|
|
736
918
|
* The caller is responsible for emailing the token to the user.
|
|
737
919
|
*/
|
|
738
920
|
async generate(email) {
|
|
739
|
-
const { SignJWT } = await import("./chunks/TerminalAuthService-
|
|
921
|
+
const { SignJWT } = await import("./chunks/TerminalAuthService-BZ9p1mzh.js").then((n) => n.E);
|
|
740
922
|
const key = await this.getSigningKey();
|
|
741
923
|
const nonce = crypto.randomUUID();
|
|
742
924
|
const normalizedEmail = normalizeEmail(email);
|
|
@@ -765,7 +947,7 @@ var MagicLinkService = class MagicLinkService {
|
|
|
765
947
|
* @throws {MagicLinkError} If the token is invalid, expired, or already used
|
|
766
948
|
*/
|
|
767
949
|
async verify(token) {
|
|
768
|
-
const { jwtVerify, errors } = await import("./chunks/TerminalAuthService-
|
|
950
|
+
const { jwtVerify, errors } = await import("./chunks/TerminalAuthService-BZ9p1mzh.js").then((n) => n.E);
|
|
769
951
|
const key = await this.getSigningKey();
|
|
770
952
|
let payload;
|
|
771
953
|
try {
|
|
@@ -1238,6 +1420,6 @@ var TenantService = class TenantService {
|
|
|
1238
1420
|
}
|
|
1239
1421
|
};
|
|
1240
1422
|
//#endregion
|
|
1241
|
-
export { ACCESS_REQUEST_CAPABILITIES, AccessRequest, AccessRequestCollection, AccessRequestError, AccessRequestService, AccessRequestStatus, UsersCliAuthRequest as CliAuthRequest, UsersCliAuthRequest, UsersCliAuthRequestCollection as CliAuthRequestCollection, UsersCliAuthRequestCollection, DEFAULT_CLI_AUTH_POLL_INTERVAL_SECONDS, DEFAULT_CLI_AUTH_REQUEST_TTL_SECONDS, DEFAULT_CLI_SESSION_TTL_SECONDS, DEFAULT_ROLES, DEFAULT_ROLE_PERMISSION_PATTERNS, DEFAULT_ROLE_SLUGS, DEFAULT_SESSION_TTL, DEFAULT_TENANT_POLICY, DEFAULT_TOKEN_EXPIRY_SECONDS, Group, GroupCollection, GroupMember, GroupMemberCollection, GroupRole, GroupRoleCollection, MAX_TENANT_HIERARCHY_DEPTH, MagicLinkError, MagicLinkService, UsersMagicLinkToken as MagicLinkToken, UsersMagicLinkToken, UsersMagicLinkTokenCollection as MagicLinkTokenCollection, UsersMagicLinkTokenCollection, Membership, MembershipCollection, MembershipOverride, MembershipOverrideCollection, MembershipStatus, MobileAuthError, MobileAuthService, OidcLoginError, OidcLoginService, OperationPermissionError, OverrideEffect, Permission, PermissionCatalogService, PermissionCollection, PermissionResolver, Role, RoleCollection, RolePermission, RolePermissionCollection, Session, SessionCollection, SessionService, SessionStatus, Tenant, TenantCollection, TenantHierarchyError, TenantPermissionEffect, TenantPermissionOverride, TenantPermissionOverrideCollection, TenantService, TenantStatus, TerminalAuthError, TerminalAuthRateLimitError, TerminalAuthService, User, UserCollection, UserStatus, applyPostgresPermissionPolicies, assertOperationPermission, checkOperationPermission, decodeOidcTransaction, deriveOperationPermissionCollectionName, deriveOperationPermissionSlug, encodeOidcTransaction, generatePostgresPermissionSql, generateSessionId, getCurrentSessionPermissionContext, getRequestScopedDatabase, getUsersOidcConfig, hasOperationPermission, normalizeOperationPermissionAction, readMobileBearerToken, registerPermissionDefinitions, resolveOidcProviderConfig, syncPermissionCatalog, validateMobileRedirectUri, withSessionPermissionContext };
|
|
1423
|
+
export { ACCESS_REQUEST_CAPABILITIES, AccessRequest, AccessRequestCollection, AccessRequestError, AccessRequestService, AccessRequestStatus, UsersCliAuthRequest as CliAuthRequest, UsersCliAuthRequest, UsersCliAuthRequestCollection as CliAuthRequestCollection, UsersCliAuthRequestCollection, DEFAULT_CLI_AUTH_POLL_INTERVAL_SECONDS, DEFAULT_CLI_AUTH_REQUEST_TTL_SECONDS, DEFAULT_CLI_SESSION_TTL_SECONDS, DEFAULT_ROLES, DEFAULT_ROLE_PERMISSION_PATTERNS, DEFAULT_ROLE_SLUGS, DEFAULT_SESSION_TTL, DEFAULT_TENANT_POLICY, DEFAULT_TOKEN_EXPIRY_SECONDS, Group, GroupCollection, GroupMember, GroupMemberCollection, GroupRole, GroupRoleCollection, MAX_TENANT_HIERARCHY_DEPTH, MagicLinkError, MagicLinkService, UsersMagicLinkToken as MagicLinkToken, UsersMagicLinkToken, UsersMagicLinkTokenCollection as MagicLinkTokenCollection, UsersMagicLinkTokenCollection, Membership, MembershipCollection, MembershipOverride, MembershipOverrideCollection, MembershipStatus, MobileAuthError, MobileAuthService, OidcLoginError, OidcLoginService, OperationPermissionError, OverrideEffect, Permission, PermissionCatalogService, PermissionCollection, PermissionResolver, Role, RoleCollection, RolePermission, RolePermissionCollection, Session, SessionCollection, SessionService, SessionStatus, Tenant, TenantCollection, TenantHierarchyError, TenantIntegration, TenantIntegrationCollection, TenantPermissionEffect, TenantPermissionOverride, TenantPermissionOverrideCollection, TenantService, TenantStatus, TerminalAuthError, TerminalAuthRateLimitError, TerminalAuthService, User, UserCollection, UserStatus, applyPostgresPermissionPolicies, assertOperationPermission, checkOperationPermission, decodeOidcTransaction, deriveOperationPermissionCollectionName, deriveOperationPermissionSlug, encodeOidcTransaction, generatePostgresPermissionSql, generateSessionId, getCurrentSessionPermissionContext, getRequestScopedDatabase, getUsersOidcConfig, hasOperationPermission, normalizeOperationPermissionAction, readMobileBearerToken, registerPermissionDefinitions, resolveOidcProviderConfig, syncPermissionCatalog, validateMobileRedirectUri, withSessionPermissionContext };
|
|
1242
1424
|
|
|
1243
1425
|
//# sourceMappingURL=index.js.map
|