UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

114 lines 4.38 kB
import { get, isObjectLike, isString } from '#lodash'; export const defineAuthError = (definition) => { return class AuthErrorClass extends Error { message; code; payload; isAuthPolicyError = true; static code = definition.code; constructor(...args) { const [params] = args; const message = isString(params) ? params : params?.message || definition.message; super(message); this.code = definition.code; this.payload = params && !isString(params) && 'payload' in params ? params.payload : undefined; this.message = message; this.name = definition.code + 'Error'; } }; }; export const isAuthPolicyError = (err) => { return isObjectLike(err) && get(err, 'isAuthPolicyError') === true; }; export const ProjectNotFoundError = defineAuthError({ code: 'ProjectNotFound', message: 'Project not found' }); export const ProjectNoAccessError = defineAuthError({ code: 'ProjectNoAccess', message: 'You do not have access to the project' }); export const PersonalProjectsLimitedError = defineAuthError({ code: 'PersonalProjectsLimited', message: 'Non-workspaced/personal projects are limited' }); export const ProjectNotEnoughPermissionsError = defineAuthError({ code: 'ProjectNotEnoughPermissions', message: 'You do not have enough permissions in the project to perform this action' }); export const ProjectLastOwnerError = defineAuthError({ code: 'ProjectLastOwner', message: 'You are the last owner of this project' }); export const WorkspacesNotEnabledError = defineAuthError({ code: 'WorkspacesNotEnabled', message: 'This server does not support workspaces' }); export const WorkspaceNoAccessError = defineAuthError({ code: 'WorkspaceNoAccess', message: 'You do not have access to the workspace' }); export const WorkspaceNotEnoughPermissionsError = defineAuthError({ code: 'WorkspaceNotEnoughPermissions', message: 'You do not have enough permissions in the workspace to perform this action' }); export const WorkspaceReadOnlyError = defineAuthError({ code: 'WorkspaceReadOnly', message: 'The workspace is in a read only mode, upgrade your plan to unlock it' }); export const WorkspaceLimitsReachedError = defineAuthError({ code: 'WorkspaceLimitsReached', message: 'Workspace limits have been reached' }); export const WorkspaceNoFeatureAccessError = defineAuthError({ code: 'WorkspaceNoFeatureAccess', message: 'Your workspace plan does not have access to this feature.' }); export const WorkspaceProjectMoveInvalidError = defineAuthError({ code: 'WorkspaceProjectMoveInvalid', message: 'Projects already in a workspace cannot be moved to another workspace.' }); export const WorkspaceSsoSessionNoAccessError = defineAuthError({ code: 'WorkspaceSsoSessionNoAccess', message: 'Your workspace SSO session is expired or it does not exist' }); export const WorkspaceNoEditorSeatError = defineAuthError({ code: 'WorkspaceNoEditorSeat', message: 'You need an editor seat to perform this action' }); export const ServerNoAccessError = defineAuthError({ code: 'ServerNoAccess', message: 'You do not have access to this server' }); export const ServerNotEnoughPermissionsError = defineAuthError({ code: 'ServerNotEnoughPermissions', message: 'You do not have enough permissions in the server to perform this action' }); export const ServerNoSessionError = defineAuthError({ code: 'ServerNoSession', message: 'You are not logged in to this server' }); export const CommentNotFoundError = defineAuthError({ code: 'CommentNotFound', message: 'Comment not found' }); export const CommentNoAccessError = defineAuthError({ code: 'CommentNoAccess', message: 'You do not have access to this comment' }); export const ModelNotFoundError = defineAuthError({ code: 'ModelNotFound', message: 'Model not found' }); export const ReservedModelNotDeletableError = defineAuthError({ code: 'ReservedModelNotDeletable', message: 'This model is reserved and cannot be deleted' }); export const VersionNotFoundError = defineAuthError({ code: 'VersionNotFound', message: 'Version not found' }); //# sourceMappingURL=authErrors.js.map