@speckle/shared
Version:
Shared code between various Speckle JS packages
198 lines • 8.35 kB
TypeScript
/**
* 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