UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

198 lines 8.35 kB
/** * Speckle role constants * - Stream - user roles in the context of a specific stream * - Server - user roles in the context of the entire server */ export declare const Roles: Readonly<{ readonly Stream: { readonly Owner: "stream:owner"; readonly Contributor: "stream:contributor"; readonly Reviewer: "stream:reviewer"; }; readonly Workspace: { readonly Admin: "workspace:admin"; readonly Member: "workspace:member"; readonly Guest: "workspace:guest"; }; readonly Server: { readonly Admin: "server:admin"; readonly User: "server:user"; readonly Guest: "server:guest"; readonly ArchivedUser: "server:archived-user"; }; }>; export declare const RoleInfo: Readonly<{ readonly Stream: { readonly "stream:owner": { readonly title: "Owner"; readonly description: "Can edit project, including settings, collaborators and all models"; readonly weight: 1000; }; readonly "stream:contributor": { readonly title: "Can edit"; readonly description: "Can publish and load models from connectors and view and comment in the web viewer"; readonly weight: 500; }; readonly "stream:reviewer": { readonly title: "Can view"; readonly description: "Can view and comment on models in the web viewer"; readonly weight: 100; }; }; readonly Server: { readonly "server:admin": { readonly title: "Admin"; readonly description: "Can edit server, including settings, users and all projects"; readonly weight: 1000; }; readonly "server:user": { readonly title: "User"; readonly description: "Can create and own projects"; readonly weight: 100; }; readonly "server:guest": { readonly title: "Guest"; readonly description: "Can contribute to projects they're invited to"; readonly weight: 50; }; readonly "server:archived-user": { readonly title: "Archived"; readonly description: "Can no longer access server"; readonly weight: 10; }; }; readonly Workspace: { readonly "workspace:admin": { readonly title: "Admin"; readonly description: "Can edit workspace, including settings, members and all projects"; readonly weight: 1000; }; readonly "workspace:member": { readonly title: "Member"; readonly description: "Can create and own projects"; readonly weight: 100; }; readonly "workspace:guest": { readonly title: "Guest"; readonly description: "Can contribute to projects they're invited to"; readonly weight: 50; }; }; }>; export type ServerRoles = (typeof Roles)['Server'][keyof (typeof Roles)['Server']]; export type WorkspaceRoles = (typeof Roles)['Workspace'][keyof (typeof Roles)['Workspace']]; export type StreamRoles = (typeof Roles)['Stream'][keyof (typeof Roles)['Stream']]; export type AvailableRoles = ServerRoles | StreamRoles | WorkspaceRoles; /** * Workspace seat type constants */ export declare const SeatTypes: Readonly<{ readonly Editor: "editor"; readonly Viewer: "viewer"; }>; export type WorkspaceSeatType = (typeof SeatTypes)[keyof typeof SeatTypes]; /** * Speckle scope constants * - Scopes define what kind of access has a user approved for a specific access token */ export declare const Scopes: Readonly<{ readonly Streams: { readonly Read: "streams:read"; readonly Write: "streams:write"; }; readonly Profile: { readonly Read: "profile:read"; readonly Email: "profile:email"; readonly Delete: "profile:delete"; }; readonly Users: { readonly Read: "users:read"; readonly Email: "users:email"; readonly Invite: "users:invite"; }; readonly Server: { readonly Stats: "server:stats"; readonly Setup: "server:setup"; }; readonly Tokens: { readonly Read: "tokens:read"; readonly Write: "tokens:write"; }; readonly Apps: { readonly Read: "apps:read"; readonly Write: "apps:write"; }; readonly Automate: { readonly ReportResults: "automate:report-results"; }; readonly AutomateFunctions: { readonly Read: "automate-functions:read"; readonly Write: "automate-functions:write"; }; readonly Workspaces: { readonly Create: "workspace:create"; readonly Read: "workspace:read"; readonly Update: "workspace:update"; readonly Delete: "workspace:delete"; }; readonly Gatekeeper: { readonly WorkspaceBilling: "workspace:billing"; }; }>; export type StreamScopes = (typeof Scopes)['Streams'][keyof (typeof Scopes)['Streams']]; export type ProfileScopes = (typeof Scopes)['Profile'][keyof (typeof Scopes)['Profile']]; export type UserScopes = (typeof Scopes)['Users'][keyof (typeof Scopes)['Users']]; export type ServerScopes = (typeof Scopes)['Server'][keyof (typeof Scopes)['Server']]; export type TokenScopes = (typeof Scopes)['Tokens'][keyof (typeof Scopes)['Tokens']]; export type AppScopes = (typeof Scopes)['Apps'][keyof (typeof Scopes)['Apps']]; export type AutomateScopes = (typeof Scopes)['Automate'][keyof (typeof Scopes)['Automate']]; export type AutomateFunctionScopes = (typeof Scopes)['AutomateFunctions'][keyof (typeof Scopes)['AutomateFunctions']]; export type WorkspaceScopes = (typeof Scopes)['Workspaces'][keyof (typeof Scopes)['Workspaces']]; export type GatekeeperScopes = (typeof Scopes)['Gatekeeper'][keyof (typeof Scopes)['Gatekeeper']]; export type AvailableScopes = StreamScopes | ProfileScopes | UserScopes | ServerScopes | TokenScopes | AppScopes | AutomateScopes | AutomateFunctionScopes | WorkspaceScopes; /** * All scopes */ export declare const AllScopes: ("streams:read" | "streams:write" | "profile:read" | "profile:email" | "profile:delete" | "users:read" | "users:email" | "users:invite" | "server:stats" | "server:setup" | "tokens:read" | "tokens:write" | "apps:read" | "apps:write" | "automate:report-results" | "automate-functions:read" | "automate-functions:write" | "workspace:create" | "workspace:read" | "workspace:update" | "workspace:delete" | "workspace:billing")[]; export type ServerScope = (typeof AllScopes)[number]; export declare const isScope: (scope: unknown) => scope is ServerScope; export declare const SourceAppNames: readonly ["Dynamo", "Revit", "AutoCAD", "Civil3D", "Blender", "Rhino", "Grasshopper", "Excel", "Unity", "Unreal", "Python", ".NET", "IFC", "QGIS", "ArcGIS", "ETABS", "PowerBI", "SketchUp", "SAP2000", "CSiBridge", "SAFE", "Archicad", "Tekla Structures", "OpenRoads", "OpenRail", "OpenBuildings", "MicroStation", "Navisworks", "Speckle Automate"]; export type SourceAppName = (typeof SourceAppNames)[number]; export type SourceAppDefinition = { /** * String to look for in input app names to match them to a specific source app */ searchKey: string; /** * Full name */ name: SourceAppName; /** * Shortened name */ short: string; /** * BG color hex code for badges */ bgColor: string; }; export declare const SourceApps: SourceAppDefinition[]; export declare const WebhookTriggers: Readonly<{ readonly StreamUpdate: "stream_update"; readonly StreamDelete: "stream_delete"; readonly BranchCreate: "branch_create"; readonly BranchUpdate: "branch_update"; readonly BranchDelete: "branch_delete"; readonly CommitCreate: "commit_create"; readonly CommitUpdate: "commit_update"; readonly CommitReceive: "commit_receive"; readonly CommitDelete: "commit_delete"; readonly CommentCreated: "comment_created"; readonly CommentArchived: "comment_archived"; readonly CommentReplied: "comment_replied"; readonly StreamPermissionsAdd: "stream_permissions_add"; readonly StreamPermissionsRemove: "stream_permissions_remove"; }>; export declare const blockedDomains: string[]; export declare const blockedSlugs: string[]; //# sourceMappingURL=constants.d.ts.map