chore(server): run TS files directly (no compilation) (#5134)
* sort of works * type fixes * added option to run old way too
This commit is contained in:
committed by
GitHub
parent
e34a44bf66
commit
4b06f42db7
@@ -1,6 +1,6 @@
|
||||
/* eslint-disable camelcase */
|
||||
import { BaseError } from '@/modules/shared/errors'
|
||||
import {
|
||||
import type {
|
||||
OidcProvider,
|
||||
OidcProviderAttributes
|
||||
} from '@/modules/workspaces/domain/sso/types'
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import { WorkspaceDomainsInvalidState } from '@/modules/workspaces/errors/workspace'
|
||||
import {
|
||||
import type {
|
||||
LimitedWorkspace,
|
||||
Workspace,
|
||||
WorkspaceDomain
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
import { Roles, WorkspaceRoles } from '@speckle/shared'
|
||||
import type { WorkspaceRoles } from '@speckle/shared'
|
||||
import { Roles } from '@speckle/shared'
|
||||
|
||||
export const userEmailsCompliantWithWorkspaceDomains = ({
|
||||
userEmails,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
|
||||
import {
|
||||
import type { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
|
||||
import type {
|
||||
LimitedWorkspace,
|
||||
Workspace,
|
||||
WorkspaceAcl,
|
||||
@@ -10,8 +10,8 @@ import {
|
||||
WorkspaceWithDomains,
|
||||
WorkspaceWithOptionalRole
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
import { EventBusPayloads } from '@/modules/shared/services/eventBus'
|
||||
import {
|
||||
import type { EventBusPayloads } from '@/modules/shared/services/eventBus'
|
||||
import type {
|
||||
MaybeNullOrUndefined,
|
||||
Nullable,
|
||||
NullableKeysToOptional,
|
||||
@@ -20,14 +20,17 @@ import {
|
||||
StreamRoles,
|
||||
WorkspaceRoles
|
||||
} from '@speckle/shared'
|
||||
import { WorkspaceCreationState } from '@/modules/workspaces/domain/types'
|
||||
import { WorkspaceTeam } from '@/modules/workspaces/domain/types'
|
||||
import { Stream } from '@/modules/core/domain/streams/types'
|
||||
import { TokenResourceIdentifier } from '@/modules/core/domain/tokens/types'
|
||||
import { ServerRegion } from '@/modules/multiregion/domain/types'
|
||||
import { SetOptional } from 'type-fest'
|
||||
import { WorkspaceSeat, WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
|
||||
import { UserRecord } from '@/modules/core/helpers/userHelper'
|
||||
import type { WorkspaceCreationState } from '@/modules/workspaces/domain/types'
|
||||
import type { WorkspaceTeam } from '@/modules/workspaces/domain/types'
|
||||
import type { Stream } from '@/modules/core/domain/streams/types'
|
||||
import type { TokenResourceIdentifier } from '@/modules/core/domain/tokens/types'
|
||||
import type { ServerRegion } from '@/modules/multiregion/domain/types'
|
||||
import type { SetOptional } from 'type-fest'
|
||||
import type {
|
||||
WorkspaceSeat,
|
||||
WorkspaceSeatType
|
||||
} from '@/modules/gatekeeper/domain/billing'
|
||||
import type { UserRecord } from '@/modules/core/helpers/userHelper'
|
||||
|
||||
/** Workspace */
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import {
|
||||
import type {
|
||||
OidcProfile,
|
||||
SpeckleOidcProfile,
|
||||
UserSsoSessionRecord
|
||||
} from '@/modules/workspaces/domain/sso/types'
|
||||
import { UnknownObject, UserinfoResponse } from 'openid-client'
|
||||
import type { UnknownObject, UserinfoResponse } from 'openid-client'
|
||||
|
||||
/**
|
||||
* Get the default expiration time for an SSO session based on the current time.
|
||||
|
||||
@@ -7,7 +7,7 @@ import type {
|
||||
OidcProviderValidationRequest,
|
||||
WorkspaceSsoProviderRecord
|
||||
} from '@/modules/workspaces/domain/sso/types'
|
||||
import { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
|
||||
// Workspace SSO provider management
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { oidcProvider } from '@/modules/workspaces/domain/sso/models'
|
||||
import type { oidcProvider } from '@/modules/workspaces/domain/sso/models'
|
||||
import type { infer as Infer } from 'zod'
|
||||
|
||||
type ProviderBaseRecord = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export { WorkspaceInviteResourceTarget } from '@/modules/workspacesCore/domain/types'
|
||||
import { LimitedUserRecord, UserWithRole } from '@/modules/core/helpers/types'
|
||||
import { WorkspaceRoles } from '@speckle/shared'
|
||||
import type { LimitedUserRecord, UserWithRole } from '@/modules/core/helpers/types'
|
||||
import type { WorkspaceRoles } from '@speckle/shared'
|
||||
|
||||
export type WorkspaceTeamMember = UserWithRole<LimitedUserRecord> & {
|
||||
email: string | null
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import { User } from '@/modules/core/domain/users/types'
|
||||
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import type { User } from '@/modules/core/domain/users/types'
|
||||
import { BaseError } from '@/modules/shared/errors/base'
|
||||
export { SsoSessionMissingOrExpiredError } from '@/modules/workspacesCore/errors'
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
revokeStreamPermissionsFactory,
|
||||
upsertProjectRoleFactory
|
||||
} from '@/modules/core/repositories/streams'
|
||||
import {
|
||||
import type {
|
||||
CountWorkspaceRoleWithOptionalProjectRole,
|
||||
GetDefaultRegion,
|
||||
GetProjectWorkspace,
|
||||
@@ -20,36 +20,26 @@ import {
|
||||
GetWorkspacesProjectsCounts,
|
||||
ValidateWorkspaceMemberProjectRole
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import {
|
||||
ServerInvitesEvents,
|
||||
ServerInvitesEventsPayloads
|
||||
} from '@/modules/serverinvites/domain/events'
|
||||
import type { ServerInvitesEventsPayloads } from '@/modules/serverinvites/domain/events'
|
||||
import { ServerInvitesEvents } from '@/modules/serverinvites/domain/events'
|
||||
import {
|
||||
isProjectResourceTarget,
|
||||
resolveTarget
|
||||
} from '@/modules/serverinvites/helpers/core'
|
||||
import { logger, moduleLogger } from '@/observability/logging'
|
||||
import type { logger } from '@/observability/logging'
|
||||
import { moduleLogger } from '@/observability/logging'
|
||||
import { addOrUpdateWorkspaceRoleFactory } from '@/modules/workspaces/services/management'
|
||||
import {
|
||||
EventBusEmit,
|
||||
EventPayload,
|
||||
getEventBus
|
||||
} from '@/modules/shared/services/eventBus'
|
||||
import type { EventBusEmit, EventPayload } from '@/modules/shared/services/eventBus'
|
||||
import { getEventBus } from '@/modules/shared/services/eventBus'
|
||||
import { WorkspaceInviteResourceType } from '@/modules/workspacesCore/domain/constants'
|
||||
import {
|
||||
isPaidPlan,
|
||||
MaybeNullOrUndefined,
|
||||
Roles,
|
||||
StreamRoles,
|
||||
throwUncoveredError,
|
||||
WorkspaceRoles
|
||||
} from '@speckle/shared'
|
||||
import {
|
||||
import type { MaybeNullOrUndefined, StreamRoles, WorkspaceRoles } from '@speckle/shared'
|
||||
import { isPaidPlan, Roles, throwUncoveredError } from '@speckle/shared'
|
||||
import type {
|
||||
QueryAllProjects,
|
||||
UpsertProjectRole
|
||||
} from '@/modules/core/domain/projects/operations'
|
||||
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
|
||||
import { Knex } from 'knex'
|
||||
import type { Knex } from 'knex'
|
||||
import {
|
||||
countWorkspaceRoleWithOptionalProjectRoleFactory,
|
||||
getWorkspaceCollaboratorsFactory,
|
||||
@@ -71,12 +61,12 @@ import {
|
||||
findEmailsByUserIdFactory,
|
||||
findVerifiedEmailsByUserIdFactory
|
||||
} from '@/modules/core/repositories/userEmails'
|
||||
import {
|
||||
import type {
|
||||
GetStream,
|
||||
GetStreamsCollaboratorCounts,
|
||||
SetStreamCollaborator
|
||||
} from '@/modules/core/domain/streams/operations'
|
||||
import {
|
||||
import type {
|
||||
GetUserSsoSession,
|
||||
GetWorkspaceSsoProviderRecord
|
||||
} from '@/modules/workspaces/domain/sso/operations'
|
||||
@@ -90,21 +80,22 @@ import { WorkspacesNotAuthorizedError } from '@/modules/workspaces/errors/worksp
|
||||
import { publish, WorkspaceSubscriptions } from '@/modules/shared/utils/subscriptions'
|
||||
import { isWorkspaceResourceTarget } from '@/modules/workspaces/services/invites'
|
||||
import { ProjectEvents } from '@/modules/core/domain/projects/events'
|
||||
import type { MixpanelClient } from '@/modules/shared/utils/mixpanel'
|
||||
import {
|
||||
getBaseTrackingProperties,
|
||||
getClient,
|
||||
mapPlanStatusToMixpanelEvent as mapNonValidPlanStatusToMixpanelEventName,
|
||||
MixpanelClient,
|
||||
MixpanelEvents,
|
||||
WORKSPACE_TRACKING_ID_KEY
|
||||
} from '@/modules/shared/utils/mixpanel'
|
||||
import {
|
||||
import type {
|
||||
GetWorkspacePlan,
|
||||
GetWorkspaceSubscription,
|
||||
GetWorkspaceWithPlan
|
||||
} from '@/modules/gatekeeper/domain/billing'
|
||||
import { Workspace, WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { getDefaultRegionFactory } from '@/modules/workspaces/repositories/regions'
|
||||
import {
|
||||
getWorkspacePlanFactory,
|
||||
@@ -123,7 +114,7 @@ import {
|
||||
getWorkspaceRoleAndSeatFactory,
|
||||
getWorkspaceUserSeatFactory
|
||||
} from '@/modules/gatekeeper/repositories/workspaceSeat'
|
||||
import {
|
||||
import type {
|
||||
DeleteWorkspaceSeat,
|
||||
GetWorkspaceUserSeat
|
||||
} from '@/modules/gatekeeper/domain/operations'
|
||||
@@ -142,7 +133,7 @@ import { buildWorkspaceTrackingPropertiesFactory } from '@/modules/workspaces/se
|
||||
import { assign } from 'lodash-es'
|
||||
import { WorkspacePlanStatuses } from '@/modules/core/graph/generated/graphql'
|
||||
import { GatekeeperEvents } from '@/modules/gatekeeperCore/domain/events'
|
||||
import { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import type { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import { WorkspacePlans } from '@/modules/core/graph/generated/graphql'
|
||||
import { queryAllProjectsFactory } from '@/modules/core/services/projects'
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
getWorkspacesProjectsCountsFactory,
|
||||
getWorkspacesRolesForUsersFactory
|
||||
} from '@/modules/workspaces/repositories/workspaces'
|
||||
import {
|
||||
import type {
|
||||
WorkspaceAcl,
|
||||
WorkspaceDomain,
|
||||
WorkspaceWithOptionalRole
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { GraphqlDirectiveBuilder } from '@/modules/core/graph/helpers/directiveHelper'
|
||||
import type { GraphqlDirectiveBuilder } from '@/modules/core/graph/helpers/directiveHelper'
|
||||
import { authorizeResolver } from '@/modules/shared'
|
||||
import { ForbiddenError } from '@/modules/shared/errors'
|
||||
import { mapGqlWorkspaceRoleToMainRole } from '@/modules/workspaces/helpers/roles'
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
||||
import { listMock, SpeckleModuleMocksConfig } from '@/modules/shared/helpers/mocks'
|
||||
import type { SpeckleModuleMocksConfig } from '@/modules/shared/helpers/mocks'
|
||||
import { listMock } from '@/modules/shared/helpers/mocks'
|
||||
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
|
||||
import { faker } from '@faker-js/faker'
|
||||
import { Roles } from '@speckle/shared'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import type { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import { Authz, WorkspacePlanFeatures } from '@speckle/shared'
|
||||
|
||||
export default {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { db } from '@/db/knex'
|
||||
import { StreamNotFoundError } from '@/modules/core/errors/stream'
|
||||
import { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import type { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
|
||||
import { getPaginatedItemsFactory } from '@/modules/shared/services/paginatedItems'
|
||||
import { WorkspaceTeamMember } from '@/modules/workspaces/domain/types'
|
||||
import type { WorkspaceTeamMember } from '@/modules/workspaces/domain/types'
|
||||
import { WorkspaceNotFoundError } from '@/modules/workspaces/errors/workspace'
|
||||
import { intersectProjectCollaboratorsAndWorkspaceCollaboratorsFactory } from '@/modules/workspaces/repositories/projects'
|
||||
import {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { db } from '@/db/knex'
|
||||
import { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import type { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import { getWorkspacePlanFactory } from '@/modules/gatekeeper/repositories/billing'
|
||||
import { canWorkspaceUseRegionsFactory } from '@/modules/gatekeeper/services/featureAuthorization'
|
||||
import { getDb } from '@/modules/multiregion/utils/dbSelector'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { db } from '@/db/knex'
|
||||
import { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import type { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import { getServerInfoFactory } from '@/modules/core/repositories/server'
|
||||
import {
|
||||
findEmailsByUserIdFactory,
|
||||
@@ -16,7 +16,7 @@ import { commandFactory } from '@/modules/shared/command'
|
||||
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
|
||||
import { getEventBus } from '@/modules/shared/services/eventBus'
|
||||
import { getPaginatedItemsFactory } from '@/modules/shared/services/paginatedItems'
|
||||
import {
|
||||
import type {
|
||||
ApproveWorkspaceJoinRequest,
|
||||
DenyWorkspaceJoinRequest
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
@@ -47,8 +47,8 @@ import {
|
||||
ensureValidWorkspaceRoleSeatFactory,
|
||||
getWorkspaceDefaultSeatTypeFactory
|
||||
} from '@/modules/workspaces/services/workspaceSeat'
|
||||
import { WorkspaceJoinRequestStatus } from '@/modules/workspacesCore/domain/types'
|
||||
import { WorkspaceJoinRequestGraphQLReturn } from '@/modules/workspacesCore/helpers/graphTypes'
|
||||
import type { WorkspaceJoinRequestStatus } from '@/modules/workspacesCore/domain/types'
|
||||
import type { WorkspaceJoinRequestGraphQLReturn } from '@/modules/workspacesCore/helpers/graphTypes'
|
||||
import { withOperationLogging } from '@/observability/domain/businessLogging'
|
||||
|
||||
const eventBus = getEventBus()
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import { db } from '@/db/knex'
|
||||
import {
|
||||
Resolvers,
|
||||
TokenResourceIdentifierType
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import type { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import { TokenResourceIdentifierType } from '@/modules/core/graph/generated/graphql'
|
||||
import { removePrivateFields } from '@/modules/core/helpers/userHelper'
|
||||
import {
|
||||
updateProjectFactory,
|
||||
@@ -113,11 +111,11 @@ import {
|
||||
getDiscoverableWorkspacesForUserFactory,
|
||||
getWorkspacesForUserFactory
|
||||
} from '@/modules/workspaces/services/retrieval'
|
||||
import type { WorkspaceRoles } from '@speckle/shared'
|
||||
import {
|
||||
Roles,
|
||||
WorkspacePlanFeatures,
|
||||
WorkspacePlans,
|
||||
WorkspaceRoles,
|
||||
removeNullOrUndefinedKeys,
|
||||
throwUncoveredError
|
||||
} from '@speckle/shared'
|
||||
@@ -181,7 +179,7 @@ import {
|
||||
getWorkspaceWithPlanFactory,
|
||||
upsertWorkspacePlanFactory
|
||||
} from '@/modules/gatekeeper/repositories/billing'
|
||||
import { Knex } from 'knex'
|
||||
import type { Knex } from 'knex'
|
||||
import { getPaginatedItemsFactory } from '@/modules/shared/services/paginatedItems'
|
||||
import { BadRequestError, UnauthorizedError } from '@/modules/shared/errors'
|
||||
import {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Roles, WorkspaceRoles } from '@speckle/shared'
|
||||
import { WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import type { WorkspaceRoles } from '@speckle/shared'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import type { WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import { WorkspaceRole } from '@/modules/core/graph/generated/graphql'
|
||||
|
||||
export const isUserLastWorkspaceAdmin = (
|
||||
|
||||
@@ -2,14 +2,14 @@ import { getEncryptionKeyPair } from '@/modules/automate/services/encryption'
|
||||
import { base64Decode } from '@/modules/shared/helpers/cryptoHelper'
|
||||
import { getFrontendOrigin, getServerOrigin } from '@/modules/shared/helpers/envHelper'
|
||||
import { buildDecryptor, buildEncryptor } from '@/modules/shared/utils/libsodium'
|
||||
import { SsoSessionState } from '@/modules/workspaces/domain/sso/types'
|
||||
import type { SsoSessionState } from '@/modules/workspaces/domain/sso/types'
|
||||
import {
|
||||
OidcStateInvalidError,
|
||||
OidcStateMissingError,
|
||||
SsoVerificationCodeMissingError
|
||||
} from '@/modules/workspaces/errors/sso'
|
||||
import { OidcProvider } from '@/modules/workspaces/domain/sso/types'
|
||||
import { Request } from 'express'
|
||||
import type { OidcProvider } from '@/modules/workspaces/domain/sso/types'
|
||||
import type { Request } from 'express'
|
||||
import { omit } from 'lodash-es'
|
||||
|
||||
declare module 'express-session' {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import cron from 'node-cron'
|
||||
import type cron from 'node-cron'
|
||||
import { moduleLogger } from '@/observability/logging'
|
||||
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
|
||||
import { registerOrUpdateScopeFactory } from '@/modules/shared/repositories/scopes'
|
||||
import db from '@/db/knex'
|
||||
import { Optional, SpeckleModule } from '@/modules/shared/helpers/typeHelper'
|
||||
import type { Optional, SpeckleModule } from '@/modules/shared/helpers/typeHelper'
|
||||
import { workspaceRoles } from '@/modules/workspaces/roles'
|
||||
import { workspaceScopes } from '@/modules/workspaces/scopes'
|
||||
import { registerOrUpdateRole } from '@/modules/shared/repositories/roles'
|
||||
@@ -11,7 +11,7 @@ import { initializeEventListenersFactory } from '@/modules/workspaces/events/eve
|
||||
import { validateModuleLicense } from '@/modules/gatekeeper/services/validateLicense'
|
||||
import { getSsoRouter } from '@/modules/workspaces/rest/sso'
|
||||
import { InvalidLicenseError } from '@/modules/gatekeeper/errors/license'
|
||||
import { ScheduleExecution } from '@/modules/core/domain/scheduledTasks/operations'
|
||||
import type { ScheduleExecution } from '@/modules/core/domain/scheduledTasks/operations'
|
||||
import { scheduleExecutionFactory } from '@/modules/core/services/taskScheduler'
|
||||
import {
|
||||
acquireTaskLockFactory,
|
||||
|
||||
@@ -20,10 +20,10 @@ import {
|
||||
Streams,
|
||||
StreamsMeta
|
||||
} from '@/modules/core/dbSchema'
|
||||
import { Branch } from '@/modules/core/domain/branches/types'
|
||||
import { Commit } from '@/modules/core/domain/commits/types'
|
||||
import { Stream } from '@/modules/core/domain/streams/types'
|
||||
import {
|
||||
import type { Branch } from '@/modules/core/domain/branches/types'
|
||||
import type { Commit } from '@/modules/core/domain/commits/types'
|
||||
import type { Stream } from '@/modules/core/domain/streams/types'
|
||||
import type {
|
||||
BranchCommitRecord,
|
||||
ObjectRecord,
|
||||
CommitRecord,
|
||||
@@ -32,7 +32,7 @@ import {
|
||||
StreamRecord
|
||||
} from '@/modules/core/helpers/types'
|
||||
import { executeBatchedSelect } from '@/modules/shared/helpers/dbHelper'
|
||||
import {
|
||||
import type {
|
||||
CopyProjectAutomations,
|
||||
CopyProjectBlobs,
|
||||
CopyProjectComments,
|
||||
@@ -50,11 +50,11 @@ import {
|
||||
CountProjectWebhooks
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { WorkspaceNotFoundError } from '@/modules/workspaces/errors/workspace'
|
||||
import { Knex } from 'knex'
|
||||
import { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Knex } from 'knex'
|
||||
import type { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import { Workspaces } from '@/modules/workspacesCore/helpers/db'
|
||||
import { ObjectPreview } from '@/modules/previews/domain/types'
|
||||
import {
|
||||
import type { ObjectPreview } from '@/modules/previews/domain/types'
|
||||
import type {
|
||||
AutomationFunctionRunRecord,
|
||||
AutomationRecord,
|
||||
AutomationRevisionFunctionRecord,
|
||||
@@ -64,17 +64,17 @@ import {
|
||||
AutomationTokenRecord,
|
||||
AutomationTriggerDefinitionRecord
|
||||
} from '@/modules/automate/helpers/types'
|
||||
import {
|
||||
import type {
|
||||
CommentLinkRecord,
|
||||
CommentRecord,
|
||||
CommentViewRecord
|
||||
} from '@/modules/comments/helpers/types'
|
||||
import { Webhook, WebhookEvent } from '@/modules/webhooks/domain/types'
|
||||
import { ObjectStorage } from '@/modules/blobstorage/clients/objectStorage'
|
||||
import type { Webhook, WebhookEvent } from '@/modules/webhooks/domain/types'
|
||||
import type { ObjectStorage } from '@/modules/blobstorage/clients/objectStorage'
|
||||
import { BlobStorage } from '@/modules/blobstorage/repositories'
|
||||
import { BlobStorageItem } from '@/modules/blobstorage/domain/types'
|
||||
import type { BlobStorageItem } from '@/modules/blobstorage/domain/types'
|
||||
import { GetObjectCommand, PutObjectCommand } from '@aws-sdk/client-s3'
|
||||
import { FileUploadRecord } from '@/modules/fileuploads/helpers/types'
|
||||
import type { FileUploadRecord } from '@/modules/fileuploads/helpers/types'
|
||||
import { getObjectKey } from '@/modules/blobstorage/helpers/blobs'
|
||||
|
||||
const tables = {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { StreamAcl, Streams, Users } from '@/modules/core/dbSchema'
|
||||
import { StreamAclRecord, StreamRecord } from '@/modules/core/helpers/types'
|
||||
import { UserRecord } from '@/modules/core/helpers/userHelper'
|
||||
import {
|
||||
import type { StreamAclRecord, StreamRecord } from '@/modules/core/helpers/types'
|
||||
import type { UserRecord } from '@/modules/core/helpers/userHelper'
|
||||
import type {
|
||||
GetProjectWorkspace,
|
||||
IntersectProjectCollaboratorsAndWorkspaceCollaborators
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import { WorkspaceAcl, Workspaces } from '@/modules/workspacesCore/helpers/db'
|
||||
import { Knex } from 'knex'
|
||||
import type { Knex } from 'knex'
|
||||
|
||||
const tables = {
|
||||
streamAcl: (db: Knex) => db.table<StreamAclRecord>(StreamAcl.name),
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { buildTableHelper } from '@/modules/core/dbSchema'
|
||||
import { RegionRecord } from '@/modules/multiregion/helpers/types'
|
||||
import type { RegionRecord } from '@/modules/multiregion/helpers/types'
|
||||
import { Regions } from '@/modules/multiregion/repositories'
|
||||
import {
|
||||
import type {
|
||||
GetDefaultRegion,
|
||||
UpsertRegionAssignment
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { WorkspaceRegionAssignment } from '@/modules/workspacesCore/domain/types'
|
||||
import { Knex } from 'knex'
|
||||
import type { WorkspaceRegionAssignment } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Knex } from 'knex'
|
||||
|
||||
export const WorkspaceRegions = buildTableHelper('workspace_regions', [
|
||||
'workspaceId',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { oidcProvider } from '@/modules/workspaces/domain/sso/models'
|
||||
import {
|
||||
import type {
|
||||
AssociateSsoProviderWithWorkspace,
|
||||
GetOidcProviderData,
|
||||
GetWorkspaceSsoProvider,
|
||||
@@ -12,15 +12,15 @@ import {
|
||||
GetUserSsoSession,
|
||||
DeleteSsoProvider
|
||||
} from '@/modules/workspaces/domain/sso/operations'
|
||||
import {
|
||||
import type {
|
||||
SsoProviderRecord,
|
||||
UserSsoSessionRecord,
|
||||
WorkspaceSsoProviderRecord
|
||||
} from '@/modules/workspaces/domain/sso/types'
|
||||
import { SsoProviderTypeNotSupportedError } from '@/modules/workspaces/errors/sso'
|
||||
import { Workspace, WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import Redis from 'ioredis'
|
||||
import { Knex } from 'knex'
|
||||
import type { Workspace, WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import type Redis from 'ioredis'
|
||||
import type { Knex } from 'knex'
|
||||
import { omit } from 'lodash-es'
|
||||
|
||||
type Crypt = (input: string) => Promise<string>
|
||||
|
||||
@@ -5,18 +5,18 @@ import {
|
||||
UserEmails,
|
||||
Users
|
||||
} from '@/modules/core/dbSchema'
|
||||
import { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import { metaHelpers } from '@/modules/core/helpers/meta'
|
||||
import { StreamAclRecord, UserRecord } from '@/modules/core/helpers/types'
|
||||
import type { StreamAclRecord, UserRecord } from '@/modules/core/helpers/types'
|
||||
import { removePrivateFields } from '@/modules/core/helpers/userHelper'
|
||||
import { formatJsonArrayRecords } from '@/modules/shared/helpers/dbHelper'
|
||||
import { compositeCursorTools } from '@/modules/shared/helpers/dbHelper'
|
||||
import { SetUserActiveWorkspace } from '@/modules/workspaces/domain/operations'
|
||||
import { WorkspaceTeamMember } from '@/modules/workspaces/domain/types'
|
||||
import { WorkspaceAcl as WorkspaceAclRecord } from '@/modules/workspacesCore/domain/types'
|
||||
import type { SetUserActiveWorkspace } from '@/modules/workspaces/domain/operations'
|
||||
import type { WorkspaceTeamMember } from '@/modules/workspaces/domain/types'
|
||||
import type { WorkspaceAcl as WorkspaceAclRecord } from '@/modules/workspacesCore/domain/types'
|
||||
import { WorkspaceAcl } from '@/modules/workspacesCore/helpers/db'
|
||||
import { ServerRoles } from '@speckle/shared'
|
||||
import { Knex } from 'knex'
|
||||
import type { ServerRoles } from '@speckle/shared'
|
||||
import type { Knex } from 'knex'
|
||||
|
||||
const tables = {
|
||||
users: (db: Knex) => db<UserRecord>(Users.name),
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { UserEmails } from '@/modules/core/dbSchema'
|
||||
import { compositeCursorTools } from '@/modules/shared/helpers/dbHelper'
|
||||
import {
|
||||
import type {
|
||||
CreateWorkspaceJoinRequest,
|
||||
GetWorkspaceJoinRequest,
|
||||
UpdateWorkspaceJoinRequestStatus
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import {
|
||||
import type {
|
||||
WorkspaceJoinRequest,
|
||||
WorkspaceJoinRequestStatus
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
@@ -14,8 +14,8 @@ import {
|
||||
WorkspaceJoinRequests
|
||||
} from '@/modules/workspacesCore/helpers/db'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { Knex } from 'knex'
|
||||
import { SetRequired } from 'type-fest'
|
||||
import type { Knex } from 'knex'
|
||||
import type { SetRequired } from 'type-fest'
|
||||
|
||||
const tables = {
|
||||
workspaceJoinRequests: (db: Knex) =>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {
|
||||
import type {
|
||||
LimitedWorkspace,
|
||||
Workspace,
|
||||
WorkspaceAcl,
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
WorkspaceJoinRequest,
|
||||
WorkspaceWithOptionalRole
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
import {
|
||||
import type {
|
||||
CountDomainsByWorkspaceId,
|
||||
CountWorkspaceRoleWithOptionalProjectRole,
|
||||
CountWorkspaces,
|
||||
@@ -45,15 +45,15 @@ import {
|
||||
UpsertWorkspaceCreationState,
|
||||
UpsertWorkspaceRole
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { Knex } from 'knex'
|
||||
import type { Knex } from 'knex'
|
||||
import { isNullOrUndefined, Roles } from '@speckle/shared'
|
||||
import {
|
||||
import type {
|
||||
ServerAclRecord,
|
||||
BranchRecord,
|
||||
StreamAclRecord,
|
||||
StreamRecord,
|
||||
ProjectRecordVisibility
|
||||
StreamRecord
|
||||
} from '@/modules/core/helpers/types'
|
||||
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
|
||||
import { WorkspaceInvalidRoleError } from '@/modules/workspaces/errors/workspace'
|
||||
import {
|
||||
WorkspaceAcl as DbWorkspaceAcl,
|
||||
@@ -71,10 +71,11 @@ import {
|
||||
UserEmails,
|
||||
Users
|
||||
} from '@/modules/core/dbSchema'
|
||||
import { removePrivateFields, UserRecord } from '@/modules/core/helpers/userHelper'
|
||||
import type { UserRecord } from '@/modules/core/helpers/userHelper'
|
||||
import { removePrivateFields } from '@/modules/core/helpers/userHelper'
|
||||
|
||||
import { clamp, has, isObjectLike } from 'lodash-es'
|
||||
import {
|
||||
import type {
|
||||
WorkspaceCreationState,
|
||||
WorkspaceTeamMember
|
||||
} from '@/modules/workspaces/domain/types'
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
import { db } from '@/db/knex'
|
||||
import { validateRequest } from 'zod-express'
|
||||
import { Request, RequestHandler, Router } from 'express'
|
||||
import type { Request, RequestHandler } from 'express'
|
||||
import { Router } from 'express'
|
||||
import { z } from 'zod'
|
||||
import {
|
||||
createWorkspaceUserFromSsoProfileFactory,
|
||||
@@ -25,9 +26,10 @@ import {
|
||||
getWorkspaceSsoProviderFactory
|
||||
} from '@/modules/workspaces/repositories/sso'
|
||||
import { getGenericRedis } from '@/modules/shared/redis/redis'
|
||||
import { generators, UserinfoResponse } from 'openid-client'
|
||||
import type { UserinfoResponse } from 'openid-client'
|
||||
import { generators } from 'openid-client'
|
||||
import { oidcProvider } from '@/modules/workspaces/domain/sso/models'
|
||||
import {
|
||||
import type {
|
||||
OidcProfile,
|
||||
OidcProvider,
|
||||
SsoSessionState,
|
||||
@@ -56,13 +58,13 @@ import {
|
||||
updateUserEmailFactory
|
||||
} from '@/modules/core/repositories/userEmails'
|
||||
import { withTransaction } from '@/modules/shared/helpers/dbHelper'
|
||||
import type { UserWithOptionalRole } from '@/modules/core/repositories/users'
|
||||
import {
|
||||
countAdminUsersFactory,
|
||||
getUserFactory,
|
||||
legacyGetUserFactory,
|
||||
storeUserAclFactory,
|
||||
storeUserFactory,
|
||||
UserWithOptionalRole
|
||||
storeUserFactory
|
||||
} from '@/modules/core/repositories/users'
|
||||
import {
|
||||
finalizeAuthMiddlewareFactory,
|
||||
@@ -89,16 +91,16 @@ import {
|
||||
isValidOidcProfile,
|
||||
getEmailFromOidcProfile
|
||||
} from '@/modules/workspaces/domain/sso/logic'
|
||||
import {
|
||||
import type {
|
||||
GetWorkspaceBySlug,
|
||||
GetWorkspaceRoles
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import {
|
||||
import type {
|
||||
GetWorkspaceSsoProvider,
|
||||
UpsertUserSsoSession
|
||||
} from '@/modules/workspaces/domain/sso/operations'
|
||||
import { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import {
|
||||
import type { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import type {
|
||||
FindEmail,
|
||||
FindEmailsByUserId
|
||||
} from '@/modules/core/domain/userEmails/operations'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { UserWorkspaceRole } from '@/modules/shared/domain/rolesAndScopes/types'
|
||||
import type { UserWorkspaceRole } from '@/modules/shared/domain/rolesAndScopes/types'
|
||||
import { Roles, RoleInfo } from '@speckle/shared'
|
||||
import { pick } from 'lodash-es'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { TokenScopeData } from '@/modules/shared/domain/rolesAndScopes/types'
|
||||
import type { TokenScopeData } from '@/modules/shared/domain/rolesAndScopes/types'
|
||||
import { Scopes } from '@speckle/shared'
|
||||
|
||||
export const workspaceScopes: TokenScopeData[] = [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { userEmailsCompliantWithWorkspaceDomains } from '@/modules/workspaces/domain/logic'
|
||||
import {
|
||||
import type {
|
||||
DeleteWorkspaceDomain,
|
||||
CountDomainsByWorkspaceId,
|
||||
UpdateWorkspace,
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
import { TokenResourceIdentifier } from '@/modules/core/domain/tokens/types'
|
||||
import {
|
||||
import type { TokenResourceIdentifier } from '@/modules/core/domain/tokens/types'
|
||||
import type {
|
||||
PendingWorkspaceCollaboratorsFilter,
|
||||
TokenResourceIdentifierType,
|
||||
WorkspaceInviteCreateInput
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import { TokenResourceIdentifierType } from '@/modules/core/graph/generated/graphql'
|
||||
import { mapServerRoleToValue } from '@/modules/core/helpers/graphTypes'
|
||||
import { getWorkspaceRoute } from '@/modules/core/helpers/routeHelper'
|
||||
import { isResourceAllowed } from '@/modules/core/helpers/token'
|
||||
import { UserRecord } from '@/modules/core/helpers/types'
|
||||
import type { UserRecord } from '@/modules/core/helpers/types'
|
||||
import { removePrivateFields } from '@/modules/core/helpers/userHelper'
|
||||
import {
|
||||
ProjectInviteResourceType,
|
||||
ServerInviteResourceType
|
||||
} from '@/modules/serverinvites/domain/constants'
|
||||
import {
|
||||
import type {
|
||||
FindInvite,
|
||||
QueryAllResourceInvites,
|
||||
QueryAllUserResourceInvites
|
||||
} from '@/modules/serverinvites/domain/operations'
|
||||
import {
|
||||
import type {
|
||||
ExtendedInvite,
|
||||
InviteResourceTarget,
|
||||
PrimaryInviteResourceTarget,
|
||||
@@ -36,46 +36,43 @@ import {
|
||||
resolveInviteTargetTitle,
|
||||
resolveTarget
|
||||
} from '@/modules/serverinvites/helpers/core'
|
||||
import {
|
||||
buildCoreInviteEmailContentsFactory,
|
||||
BuildInviteContentsFactoryDeps
|
||||
} from '@/modules/serverinvites/services/coreEmailContents'
|
||||
import {
|
||||
collectAndValidateCoreTargetsFactory,
|
||||
CollectAndValidateCoreTargetsFactoryDeps
|
||||
} from '@/modules/serverinvites/services/coreResourceCollection'
|
||||
import {
|
||||
import type { BuildInviteContentsFactoryDeps } from '@/modules/serverinvites/services/coreEmailContents'
|
||||
import { buildCoreInviteEmailContentsFactory } from '@/modules/serverinvites/services/coreEmailContents'
|
||||
import type { CollectAndValidateCoreTargetsFactoryDeps } from '@/modules/serverinvites/services/coreResourceCollection'
|
||||
import { collectAndValidateCoreTargetsFactory } from '@/modules/serverinvites/services/coreResourceCollection'
|
||||
import type {
|
||||
BuildInviteEmailContents,
|
||||
CollectAndValidateResourceTargets,
|
||||
CreateAndSendInvite,
|
||||
GetInvitationTargetUsers,
|
||||
InviteFinalizationAction,
|
||||
ProcessFinalizedResourceInvite,
|
||||
ValidateResourceInviteBeforeFinalization
|
||||
} from '@/modules/serverinvites/services/operations'
|
||||
import { InviteFinalizationAction } from '@/modules/serverinvites/services/operations'
|
||||
import { authorizeResolver } from '@/modules/shared'
|
||||
import { getFrontendOrigin } from '@/modules/shared/helpers/envHelper'
|
||||
import { WorkspaceInviteResourceType } from '@/modules/workspacesCore/domain/constants'
|
||||
import {
|
||||
import type {
|
||||
GetWorkspace,
|
||||
GetWorkspaceBySlug,
|
||||
GetWorkspaceDomains,
|
||||
ValidateWorkspaceMemberProjectRole
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { WorkspaceInviteResourceTarget } from '@/modules/workspaces/domain/types'
|
||||
import type { WorkspaceInviteResourceTarget } from '@/modules/workspaces/domain/types'
|
||||
import { mapGqlWorkspaceRoleToMainRole } from '@/modules/workspaces/helpers/roles'
|
||||
import { addOrUpdateWorkspaceRoleFactory } from '@/modules/workspaces/services/management'
|
||||
import { PendingWorkspaceCollaboratorGraphQLReturn } from '@/modules/workspacesCore/helpers/graphTypes'
|
||||
import { MaybeNullOrUndefined, Nullable, Roles } from '@speckle/shared'
|
||||
import type { addOrUpdateWorkspaceRoleFactory } from '@/modules/workspaces/services/management'
|
||||
import type { PendingWorkspaceCollaboratorGraphQLReturn } from '@/modules/workspacesCore/helpers/graphTypes'
|
||||
import type { MaybeNullOrUndefined, Nullable } from '@speckle/shared'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { WorkspaceProtectedError } from '@/modules/workspaces/errors/workspace'
|
||||
import { FindVerifiedEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { FindVerifiedEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import {
|
||||
anyEmailCompliantWithWorkspaceDomains,
|
||||
userEmailsCompliantWithWorkspaceDomains
|
||||
} from '@/modules/workspaces/domain/logic'
|
||||
import { GetStream } from '@/modules/core/domain/streams/operations'
|
||||
import { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import { GetWorkspaceRoleAndSeat } from '@/modules/workspacesCore/domain/operations'
|
||||
import type { GetStream } from '@/modules/core/domain/streams/operations'
|
||||
import type { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import type { GetWorkspaceRoleAndSeat } from '@/modules/workspacesCore/domain/operations'
|
||||
import { LogicError } from '@/modules/shared/errors'
|
||||
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
|
||||
import {
|
||||
import type {
|
||||
DeleteWorkspace,
|
||||
EmitWorkspaceEvent,
|
||||
GetWorkspace,
|
||||
@@ -14,20 +14,16 @@ import {
|
||||
EnsureValidWorkspaceRoleSeat,
|
||||
AssignWorkspaceSeat
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import {
|
||||
import type {
|
||||
Workspace,
|
||||
WorkspaceAcl,
|
||||
WorkspaceDomain,
|
||||
WorkspaceWithDomains
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
import {
|
||||
generateSlugFromName,
|
||||
MaybeNullOrUndefined,
|
||||
Roles,
|
||||
validateWorkspaceSlug
|
||||
} from '@speckle/shared'
|
||||
import type { MaybeNullOrUndefined } from '@speckle/shared'
|
||||
import { generateSlugFromName, Roles, validateWorkspaceSlug } from '@speckle/shared'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import {
|
||||
import type {
|
||||
DeleteWorkspaceRole,
|
||||
GetWorkspaceRoleForUser,
|
||||
GetWorkspaceRoles
|
||||
@@ -44,32 +40,30 @@ import {
|
||||
WorkspaceInvalidUpdateError
|
||||
} from '@/modules/workspaces/errors/workspace'
|
||||
import { isUserLastWorkspaceAdmin } from '@/modules/workspaces/helpers/roles'
|
||||
import { EventBus } from '@/modules/shared/services/eventBus'
|
||||
import type { EventBus } from '@/modules/shared/services/eventBus'
|
||||
import { removeNullOrUndefinedKeys } from '@speckle/shared'
|
||||
import { isNewResourceAllowed } from '@/modules/core/helpers/token'
|
||||
import {
|
||||
TokenResourceIdentifier,
|
||||
TokenResourceIdentifierType
|
||||
} from '@/modules/core/domain/tokens/types'
|
||||
import type { TokenResourceIdentifier } from '@/modules/core/domain/tokens/types'
|
||||
import { TokenResourceIdentifierType } from '@/modules/core/domain/tokens/types'
|
||||
import { ForbiddenError } from '@/modules/shared/errors'
|
||||
import { validateImageString } from '@/modules/workspaces/helpers/images'
|
||||
import {
|
||||
import type {
|
||||
FindEmailsByUserId,
|
||||
FindVerifiedEmailsByUserId
|
||||
} from '@/modules/core/domain/userEmails/operations'
|
||||
import { DeleteAllResourceInvites } from '@/modules/serverinvites/domain/operations'
|
||||
import type { DeleteAllResourceInvites } from '@/modules/serverinvites/domain/operations'
|
||||
import { WorkspaceInviteResourceType } from '@/modules/workspacesCore/domain/constants'
|
||||
import { ProjectInviteResourceType } from '@/modules/serverinvites/domain/constants'
|
||||
import { chunk, isEmpty, omit } from 'lodash-es'
|
||||
import { userEmailsCompliantWithWorkspaceDomains } from '@/modules/workspaces/domain/logic'
|
||||
import { workspaceRoles as workspaceRoleDefinitions } from '@/modules/workspaces/roles'
|
||||
import { blockedDomains } from '@speckle/shared'
|
||||
import { DeleteStreamRecord } from '@/modules/core/domain/streams/operations'
|
||||
import {
|
||||
import type { DeleteStreamRecord } from '@/modules/core/domain/streams/operations'
|
||||
import type {
|
||||
DeleteSsoProvider,
|
||||
GetWorkspaceSsoProviderRecord
|
||||
} from '@/modules/workspaces/domain/sso/operations'
|
||||
import { QueryAllProjects } from '@/modules/core/domain/projects/operations'
|
||||
import type { QueryAllProjects } from '@/modules/core/domain/projects/operations'
|
||||
|
||||
type WorkspaceCreateArgs = {
|
||||
userId: string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { GetProject } from '@/modules/core/domain/projects/operations'
|
||||
import { UpdateProjectRegionKey } from '@/modules/multiregion/services/projectRegion'
|
||||
import {
|
||||
import type { GetProject } from '@/modules/core/domain/projects/operations'
|
||||
import type { UpdateProjectRegionKey } from '@/modules/multiregion/services/projectRegion'
|
||||
import type {
|
||||
CopyProjectAutomations,
|
||||
CopyProjectBlobs,
|
||||
CopyProjectComments,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ProjectRecordVisibility, StreamRecord } from '@/modules/core/helpers/types'
|
||||
import {
|
||||
import type { StreamRecord } from '@/modules/core/helpers/types'
|
||||
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
|
||||
import type {
|
||||
GetDefaultRegion,
|
||||
GetWorkspaceDomains,
|
||||
GetWorkspaceRoleToDefaultProjectRoleMapping,
|
||||
@@ -14,15 +15,19 @@ import {
|
||||
WorkspaceInvalidRoleError,
|
||||
WorkspaceNotFoundError
|
||||
} from '@/modules/workspaces/errors/workspace'
|
||||
import { GetProject, UpdateProject } from '@/modules/core/domain/projects/operations'
|
||||
import type {
|
||||
GetProject,
|
||||
UpdateProject
|
||||
} from '@/modules/core/domain/projects/operations'
|
||||
import { chunk } from 'lodash-es'
|
||||
import { Roles, WorkspaceRoles } from '@speckle/shared'
|
||||
import {
|
||||
import type { WorkspaceRoles } from '@speckle/shared'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import type {
|
||||
GetStreamCollaborators,
|
||||
UpdateStreamRole
|
||||
} from '@/modules/core/domain/streams/operations'
|
||||
import { ProjectNotFoundError } from '@/modules/core/errors/projects'
|
||||
import { WorkspaceProjectCreateInput } from '@/modules/core/graph/generated/graphql'
|
||||
import type { WorkspaceProjectCreateInput } from '@/modules/core/graph/generated/graphql'
|
||||
import {
|
||||
getDb,
|
||||
getValidDefaultProjectRegionKey
|
||||
@@ -44,16 +49,16 @@ import {
|
||||
getWorkspaceFactory,
|
||||
upsertWorkspaceFactory
|
||||
} from '@/modules/workspaces/repositories/workspaces'
|
||||
import {
|
||||
import type {
|
||||
GetWorkspaceRoleAndSeat,
|
||||
GetWorkspaceRolesAndSeats,
|
||||
GetWorkspaceWithPlan,
|
||||
WorkspaceSeatType
|
||||
GetWorkspaceWithPlan
|
||||
} from '@/modules/gatekeeper/domain/billing'
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { userEmailsCompliantWithWorkspaceDomains } from '@/modules/workspaces/domain/logic'
|
||||
import { CreateWorkspaceSeat } from '@/modules/gatekeeper/domain/operations'
|
||||
import { WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import type { CreateWorkspaceSeat } from '@/modules/gatekeeper/domain/operations'
|
||||
import type { WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
|
||||
type MoveProjectToWorkspaceArgs = {
|
||||
projectId: string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { WorkspaceFeatureAccessFunction } from '@/modules/gatekeeper/domain/operations'
|
||||
import { GetRegions } from '@/modules/multiregion/domain/operations'
|
||||
import {
|
||||
import type { WorkspaceFeatureAccessFunction } from '@/modules/gatekeeper/domain/operations'
|
||||
import type { GetRegions } from '@/modules/multiregion/domain/operations'
|
||||
import type {
|
||||
AssignWorkspaceRegion,
|
||||
GetAvailableRegions,
|
||||
GetDefaultRegion,
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import {
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import type {
|
||||
GetUserDiscoverableWorkspaces,
|
||||
GetUsersCurrentAndEligibleToBecomeAMemberWorkspaces,
|
||||
GetWorkspaceRolesForUser,
|
||||
GetWorkspaces
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { LimitedWorkspace, Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import type { LimitedWorkspace, Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
|
||||
type GetDiscoverableWorkspaceForUserArgs = {
|
||||
userId: string
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {
|
||||
import type {
|
||||
GetOidcProviderAttributes,
|
||||
StoreOidcProviderValidationRequest,
|
||||
StoreProviderRecord,
|
||||
@@ -7,25 +7,28 @@ import {
|
||||
ListWorkspaceSsoMemberships,
|
||||
ListUserSsoSessions
|
||||
} from '@/modules/workspaces/domain/sso/operations'
|
||||
import {
|
||||
import type {
|
||||
OidcProvider,
|
||||
OidcProviderRecord,
|
||||
OidcProviderAttributes,
|
||||
OidcProfile
|
||||
} from '@/modules/workspaces/domain/sso/types'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import { UserinfoResponse } from 'openid-client'
|
||||
import {
|
||||
import type { UserinfoResponse } from 'openid-client'
|
||||
import type {
|
||||
CreateUserEmail,
|
||||
FindEmail,
|
||||
FindEmailsByUserId,
|
||||
UpdateUserEmail
|
||||
} from '@/modules/core/domain/userEmails/operations'
|
||||
import { isWorkspaceRole, toLimitedWorkspace } from '@/modules/workspaces/domain/logic'
|
||||
import { UserWithOptionalRole } from '@/modules/core/repositories/users'
|
||||
import { DeleteInvite, FindInvite } from '@/modules/serverinvites/domain/operations'
|
||||
import { AddOrUpdateWorkspaceRole } from '@/modules/workspaces/domain/operations'
|
||||
import { CreateValidatedUser } from '@/modules/core/domain/users/operations'
|
||||
import type { UserWithOptionalRole } from '@/modules/core/repositories/users'
|
||||
import type {
|
||||
DeleteInvite,
|
||||
FindInvite
|
||||
} from '@/modules/serverinvites/domain/operations'
|
||||
import type { AddOrUpdateWorkspaceRole } from '@/modules/workspaces/domain/operations'
|
||||
import type { CreateValidatedUser } from '@/modules/core/domain/users/operations'
|
||||
import {
|
||||
OidcProviderMissingGrantTypeError,
|
||||
SsoProviderExistsError,
|
||||
@@ -33,7 +36,7 @@ import {
|
||||
SsoUserInviteRequiredError
|
||||
} from '@/modules/workspaces/errors/sso'
|
||||
import { WorkspaceInvalidRoleError } from '@/modules/workspaces/errors/workspace'
|
||||
import { LimitedWorkspace } from '@/modules/workspacesCore/domain/types'
|
||||
import type { LimitedWorkspace } from '@/modules/workspacesCore/domain/types'
|
||||
import {
|
||||
getEmailFromOidcProfile,
|
||||
isValidSsoSession
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { ScheduleExecution } from '@/modules/core/domain/scheduledTasks/operations'
|
||||
import {
|
||||
calculateSubscriptionSeats,
|
||||
import type { ScheduleExecution } from '@/modules/core/domain/scheduledTasks/operations'
|
||||
import type {
|
||||
GetWorkspacePlan,
|
||||
GetWorkspaceSubscription
|
||||
} from '@/modules/gatekeeper/domain/billing'
|
||||
import { calculateSubscriptionSeats } from '@/modules/gatekeeper/domain/billing'
|
||||
import type { MixpanelClient } from '@/modules/shared/utils/mixpanel'
|
||||
import {
|
||||
getBaseTrackingProperties,
|
||||
MixpanelClient,
|
||||
WORKSPACE_TRACKING_ID_KEY
|
||||
} from '@/modules/shared/utils/mixpanel'
|
||||
import {
|
||||
import type {
|
||||
CountWorkspaceRoleWithOptionalProjectRole,
|
||||
GetDefaultRegion,
|
||||
GetWorkspaceModelCount,
|
||||
@@ -17,9 +17,10 @@ import {
|
||||
GetWorkspaceSeatCount,
|
||||
GetAllWorkspaces
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import { Logger } from '@/observability/logging'
|
||||
import { Nullable, Roles, SeatTypes } from '@speckle/shared'
|
||||
import type { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Logger } from '@/observability/logging'
|
||||
import type { Nullable } from '@speckle/shared'
|
||||
import { Roles, SeatTypes } from '@speckle/shared'
|
||||
import {
|
||||
countWorkspaceRoleWithOptionalProjectRoleFactory,
|
||||
getAllWorkspacesFactory,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Logger } from '@/observability/logging'
|
||||
import {
|
||||
import type { Logger } from '@/observability/logging'
|
||||
import type {
|
||||
DeleteWorkspace,
|
||||
GetWorkspacesNonComplete
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { GetServerInfo } from '@/modules/core/domain/server/operations'
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { RenderEmail, SendEmail } from '@/modules/emails/domain/operations'
|
||||
import type { GetServerInfo } from '@/modules/core/domain/server/operations'
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { RenderEmail, SendEmail } from '@/modules/emails/domain/operations'
|
||||
import { getFrontendOrigin } from '@/modules/shared/helpers/envHelper'
|
||||
import { SendWorkspaceJoinRequestApprovedEmail } from '@/modules/workspaces/domain/operations'
|
||||
import type { SendWorkspaceJoinRequestApprovedEmail } from '@/modules/workspaces/domain/operations'
|
||||
|
||||
type WorkspaceJoinRequestApprovedEmailArgs = {
|
||||
workspace: { id: string; name: string; slug: string }
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { GetServerInfo } from '@/modules/core/domain/server/operations'
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { RenderEmail, SendEmail } from '@/modules/emails/domain/operations'
|
||||
import type { GetServerInfo } from '@/modules/core/domain/server/operations'
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { RenderEmail, SendEmail } from '@/modules/emails/domain/operations'
|
||||
import { getFrontendOrigin } from '@/modules/shared/helpers/envHelper'
|
||||
import { SendWorkspaceJoinRequestApprovedEmail } from '@/modules/workspaces/domain/operations'
|
||||
import type { SendWorkspaceJoinRequestApprovedEmail } from '@/modules/workspaces/domain/operations'
|
||||
|
||||
type WorkspaceJoinRequestDeniedEmailArgs = {
|
||||
workspace: { id: string; name: string; slug: string }
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { GetServerInfo } from '@/modules/core/domain/server/operations'
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { RenderEmail, SendEmail } from '@/modules/emails/domain/operations'
|
||||
import type { GetServerInfo } from '@/modules/core/domain/server/operations'
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { RenderEmail, SendEmail } from '@/modules/emails/domain/operations'
|
||||
import { getFrontendOrigin } from '@/modules/shared/helpers/envHelper'
|
||||
import {
|
||||
import type {
|
||||
GetWorkspaceCollaborators,
|
||||
SendWorkspaceJoinRequestReceivedEmail
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
|
||||
@@ -4,9 +4,9 @@ import {
|
||||
WorkspaceNotJoinableError,
|
||||
WorkspaceProtectedError
|
||||
} from '@/modules/workspaces/errors/workspace'
|
||||
import { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import type { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import { NotFoundError } from '@/modules/shared/errors'
|
||||
import {
|
||||
import type {
|
||||
AddOrUpdateWorkspaceRole,
|
||||
ApproveWorkspaceJoinRequest,
|
||||
CreateWorkspaceJoinRequest,
|
||||
@@ -21,9 +21,9 @@ import {
|
||||
UpdateWorkspaceJoinRequestStatus
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import { userEmailsCompliantWithWorkspaceDomains } from '@/modules/workspaces/domain/logic'
|
||||
import { EventBus } from '@/modules/shared/services/eventBus'
|
||||
import type { EventBus } from '@/modules/shared/services/eventBus'
|
||||
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
|
||||
|
||||
export const dismissWorkspaceJoinRequestFactory =
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { GetPaginatedProjectModelsTotalCount } from '@/modules/core/domain/branches/operations'
|
||||
import { QueryAllProjects } from '@/modules/core/domain/projects/operations'
|
||||
import { GetWorkspaceModelCount } from '@/modules/workspaces/domain/operations'
|
||||
import type { GetPaginatedProjectModelsTotalCount } from '@/modules/core/domain/branches/operations'
|
||||
import type { QueryAllProjects } from '@/modules/core/domain/projects/operations'
|
||||
import type { GetWorkspaceModelCount } from '@/modules/workspaces/domain/operations'
|
||||
|
||||
// TODO: Optimize with single model count query per regional db
|
||||
export const getWorkspaceModelCountFactory =
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
|
||||
import {
|
||||
import type {
|
||||
CreateWorkspaceSeat,
|
||||
GetWorkspaceDefaultSeatType,
|
||||
GetWorkspaceUserSeat
|
||||
} from '@/modules/gatekeeper/domain/operations'
|
||||
import { NotFoundError } from '@/modules/shared/errors'
|
||||
import { EventBusEmit } from '@/modules/shared/services/eventBus'
|
||||
import {
|
||||
import type { EventBusEmit } from '@/modules/shared/services/eventBus'
|
||||
import type {
|
||||
AssignWorkspaceSeat,
|
||||
EnsureValidWorkspaceRoleSeat,
|
||||
GetWorkspace,
|
||||
@@ -15,7 +15,8 @@ import {
|
||||
import { InvalidWorkspaceSeatTypeError } from '@/modules/workspaces/errors/workspaceSeat'
|
||||
import { WorkspaceDefaultSeatType } from '@/modules/workspacesCore/domain/constants'
|
||||
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
|
||||
import { Roles, WorkspaceRoles } from '@speckle/shared'
|
||||
import type { WorkspaceRoles } from '@speckle/shared'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { z } from 'zod'
|
||||
|
||||
export const getWorkspaceDefaultSeatTypeFactory =
|
||||
|
||||
@@ -45,18 +45,16 @@ import {
|
||||
validateSlugFactory,
|
||||
generateValidSlugFactory
|
||||
} from '@/modules/workspaces/services/management'
|
||||
import { BasicTestUser } from '@/test/authHelper'
|
||||
import { CreateWorkspaceInviteMutationVariables } from '@/modules/core/graph/generated/graphql'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import type { CreateWorkspaceInviteMutationVariables } from '@/modules/core/graph/generated/graphql'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import {
|
||||
import type {
|
||||
MaybeNullOrUndefined,
|
||||
PaidWorkspacePlans,
|
||||
Roles,
|
||||
WorkspacePlan,
|
||||
WorkspacePlans,
|
||||
WorkspacePlanStatuses,
|
||||
WorkspaceRoles
|
||||
} from '@speckle/shared'
|
||||
import { PaidWorkspacePlans, Roles, WorkspacePlanStatuses } from '@speckle/shared'
|
||||
import {
|
||||
getStreamFactory,
|
||||
getStreamRolesFactory,
|
||||
@@ -71,7 +69,7 @@ import {
|
||||
upsertUserSsoSessionFactory
|
||||
} from '@/modules/workspaces/repositories/sso'
|
||||
import { getEncryptor } from '@/modules/workspaces/helpers/sso'
|
||||
import { OidcProvider } from '@/modules/workspaces/domain/sso/types'
|
||||
import type { OidcProvider } from '@/modules/workspaces/domain/sso/types'
|
||||
import { getFeatureFlags, getFrontendOrigin } from '@/modules/shared/helpers/envHelper'
|
||||
import { getDefaultSsoSessionExpirationDate } from '@/modules/workspaces/domain/sso/logic'
|
||||
import {
|
||||
@@ -80,7 +78,7 @@ import {
|
||||
upsertWorkspacePlanFactory,
|
||||
upsertWorkspaceSubscriptionFactory
|
||||
} from '@/modules/gatekeeper/repositories/billing'
|
||||
import { SetOptional } from 'type-fest'
|
||||
import type { SetOptional } from 'type-fest'
|
||||
import { isMultiRegionTestMode } from '@/test/speckle-helpers/regions'
|
||||
import {
|
||||
assignWorkspaceRegionFactory,
|
||||
@@ -130,8 +128,8 @@ import {
|
||||
validateStreamAccessFactory
|
||||
} from '@/modules/core/services/streams/access'
|
||||
import { authorizeResolver } from '@/modules/shared'
|
||||
import { WorkspaceCreationState } from '@/modules/workspaces/domain/types'
|
||||
import {
|
||||
import type { WorkspaceCreationState } from '@/modules/workspaces/domain/types'
|
||||
import type {
|
||||
WorkspaceSeat,
|
||||
WorkspaceWithOptionalRole
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
|
||||
@@ -1,39 +1,41 @@
|
||||
import { ExecuteOperationOptions, TestApolloServer } from '@/test/graphqlHelper'
|
||||
import type { ExecuteOperationOptions, TestApolloServer } from '@/test/graphqlHelper'
|
||||
|
||||
import {
|
||||
BatchCreateWorkspaceInvitesDocument,
|
||||
import type {
|
||||
BatchCreateWorkspaceInvitesMutationVariables,
|
||||
CancelWorkspaceInviteDocument,
|
||||
CancelWorkspaceInviteMutationVariables,
|
||||
CreateProjectInviteDocument,
|
||||
CreateProjectInviteMutationVariables,
|
||||
CreateWorkspaceInviteDocument,
|
||||
CreateWorkspaceInviteMutationVariables,
|
||||
CreateWorkspaceProjectInviteDocument,
|
||||
CreateWorkspaceProjectInviteMutationVariables,
|
||||
GetMyWorkspaceInvitesDocument,
|
||||
GetProjectDocument,
|
||||
GetProjectQueryVariables,
|
||||
GetWorkspaceDocument,
|
||||
GetWorkspaceInviteDocument,
|
||||
GetWorkspaceInviteQueryVariables,
|
||||
GetWorkspaceQueryVariables,
|
||||
GetWorkspaceWithTeamDocument,
|
||||
GetWorkspaceWithTeamQueryVariables,
|
||||
ResendWorkspaceInviteDocument,
|
||||
ResendWorkspaceInviteMutationVariables,
|
||||
UseWorkspaceInviteDocument,
|
||||
UseWorkspaceInviteMutationVariables,
|
||||
UseWorkspaceProjectInviteDocument,
|
||||
UseWorkspaceProjectInviteMutationVariables
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import {
|
||||
BatchCreateWorkspaceInvitesDocument,
|
||||
CancelWorkspaceInviteDocument,
|
||||
CreateProjectInviteDocument,
|
||||
CreateWorkspaceInviteDocument,
|
||||
CreateWorkspaceProjectInviteDocument,
|
||||
GetMyWorkspaceInvitesDocument,
|
||||
GetProjectDocument,
|
||||
GetWorkspaceDocument,
|
||||
GetWorkspaceInviteDocument,
|
||||
GetWorkspaceWithTeamDocument,
|
||||
ResendWorkspaceInviteDocument,
|
||||
UseWorkspaceInviteDocument,
|
||||
UseWorkspaceProjectInviteDocument
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import { expect } from 'chai'
|
||||
|
||||
import { MaybeAsync, StreamRoles, WorkspaceRoles } from '@speckle/shared'
|
||||
import type { MaybeAsync, StreamRoles, WorkspaceRoles } from '@speckle/shared'
|
||||
import { expectToThrow } from '@/test/assertionHelper'
|
||||
import { ForbiddenError } from '@/modules/shared/errors'
|
||||
import { isBoolean } from 'lodash-es'
|
||||
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
import type { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
|
||||
export const buildInvitesGraphqlOperations = (deps: { apollo: TestApolloServer }) => {
|
||||
const { apollo } = deps
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { basicWorkspaceFragment } from '@/modules/workspaces/tests/helpers/graphql'
|
||||
import { ProjectImplicitRoleCheckFragment } from '@/modules/core/graph/generated/graphql'
|
||||
import { MaybeNullOrUndefined, Roles } from '@speckle/shared'
|
||||
import type { ProjectImplicitRoleCheckFragment } from '@/modules/core/graph/generated/graphql'
|
||||
import type { MaybeNullOrUndefined } from '@speckle/shared'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { gql } from 'graphql-tag'
|
||||
|
||||
export const fullPermissionCheckResultFragment = gql(`
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspaces,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspaces,
|
||||
createWorkspaceInviteDirectly,
|
||||
unassignFromWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { BasicTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import {
|
||||
createTestContext,
|
||||
testApolloServer,
|
||||
TestApolloServer
|
||||
} from '@/test/graphqlHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUsers } from '@/test/authHelper'
|
||||
import type { TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { createTestContext, testApolloServer } from '@/test/graphqlHelper'
|
||||
import { beforeEachContext, truncateTables } from '@/test/hooks'
|
||||
import { WorkspaceRole } from '@/modules/core/graph/generated/graphql'
|
||||
import { expect } from 'chai'
|
||||
@@ -18,23 +16,21 @@ import {
|
||||
captureCreatedInvite,
|
||||
validateInviteExistanceFromEmail
|
||||
} from '@/test/speckle-helpers/inviteHelper'
|
||||
import { Roles, StreamRoles, WorkspaceRoles } from '@speckle/shared'
|
||||
import type { StreamRoles, WorkspaceRoles } from '@speckle/shared'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { itEach } from '@/test/assertionHelper'
|
||||
import { ServerInvites } from '@/modules/core/dbSchema'
|
||||
import { TokenResourceIdentifierType } from '@/modules/core/graph/generated/graphql'
|
||||
import { times } from 'lodash-es'
|
||||
import { findInviteFactory } from '@/modules/serverinvites/repositories/serverInvites'
|
||||
import { db } from '@/db/knex'
|
||||
import {
|
||||
BasicTestStream,
|
||||
createTestStreams,
|
||||
leaveStream
|
||||
} from '@/test/speckle-helpers/streamHelper'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { createTestStreams, leaveStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { Workspaces } from '@/modules/workspaces/helpers/db'
|
||||
import type { LocalAuthRestApiHelpers } from '@/modules/auth/tests/helpers/registration'
|
||||
import {
|
||||
generateRegistrationParams,
|
||||
localAuthRestApi,
|
||||
LocalAuthRestApiHelpers
|
||||
localAuthRestApi
|
||||
} from '@/modules/auth/tests/helpers/registration'
|
||||
import type { Express } from 'express'
|
||||
import { AllScopes } from '@/modules/core/helpers/mainConstants'
|
||||
@@ -62,15 +58,14 @@ import {
|
||||
} from '@/modules/core/services/streams/access'
|
||||
import { authorizeResolver } from '@/modules/shared'
|
||||
import { getUserFactory } from '@/modules/core/repositories/users'
|
||||
import {
|
||||
TestInvitesGraphQLOperations,
|
||||
buildInvitesGraphqlOperations
|
||||
} from '@/modules/workspaces/tests/helpers/invites'
|
||||
import type { TestInvitesGraphQLOperations } from '@/modules/workspaces/tests/helpers/invites'
|
||||
import { buildInvitesGraphqlOperations } from '@/modules/workspaces/tests/helpers/invites'
|
||||
import { getEventBus } from '@/modules/shared/services/eventBus'
|
||||
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
|
||||
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
|
||||
import { createEmailListener, TestEmailListener } from '@/test/speckle-helpers/email'
|
||||
import type { TestEmailListener } from '@/test/speckle-helpers/email'
|
||||
import { createEmailListener } from '@/test/speckle-helpers/email'
|
||||
|
||||
enum InviteByTarget {
|
||||
Email = 'email',
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { db } from '@/db/knex'
|
||||
import { StreamAcl, Streams } from '@/modules/core/dbSchema'
|
||||
import { ProjectRecordVisibility, StreamRecord } from '@/modules/core/helpers/types'
|
||||
import type { StreamRecord } from '@/modules/core/helpers/types'
|
||||
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
|
||||
import {
|
||||
deleteProjectFactory,
|
||||
getProjectFactory
|
||||
@@ -11,19 +12,19 @@ import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
|
||||
import { getWorkspaceUserSeatsFactory } from '@/modules/gatekeeper/repositories/workspaceSeat'
|
||||
import { getRegionDb } from '@/modules/multiregion/utils/dbSelector'
|
||||
import { WorkspaceInvalidRoleError } from '@/modules/workspaces/errors/workspace'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
assignToWorkspaces,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { describeEach, itEach } from '@/test/assertionHelper'
|
||||
import {
|
||||
BasicTestUser,
|
||||
createTestUser,
|
||||
createTestUsers,
|
||||
login
|
||||
} from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser, createTestUsers, login } from '@/test/authHelper'
|
||||
import type {
|
||||
GetWorkspaceProjectsQuery,
|
||||
ProjectUpdateRoleInput
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import {
|
||||
ActiveUserProjectsDocument,
|
||||
ActiveUserProjectsWorkspaceDocument,
|
||||
@@ -31,33 +32,27 @@ import {
|
||||
GetProjectDocument,
|
||||
GetWorkspaceDocument,
|
||||
GetWorkspaceProjectsDocument,
|
||||
GetWorkspaceProjectsQuery,
|
||||
GetWorkspaceTeamDocument,
|
||||
MoveProjectToWorkspaceDocument,
|
||||
ProjectUpdateRoleInput,
|
||||
ProjectVisibility,
|
||||
UpdateProjectDocument,
|
||||
UpdateProjectRoleDocument,
|
||||
UpdateWorkspaceProjectRoleDocument
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import {
|
||||
ExecuteOperationResponse,
|
||||
testApolloServer,
|
||||
TestApolloServer
|
||||
} from '@/test/graphqlHelper'
|
||||
import type { ExecuteOperationResponse, TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { testApolloServer } from '@/test/graphqlHelper'
|
||||
import { beforeEachContext } from '@/test/hooks'
|
||||
import { mockAdminOverride } from '@/test/mocks/global'
|
||||
import { isMultiRegionTestMode } from '@/test/speckle-helpers/regions'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import {
|
||||
addToStream,
|
||||
BasicTestStream,
|
||||
createTestStream,
|
||||
getUserStreamRole
|
||||
} from '@/test/speckle-helpers/streamHelper'
|
||||
import type { Nullable, Optional } from '@speckle/shared'
|
||||
import {
|
||||
isNonNullable,
|
||||
Nullable,
|
||||
Optional,
|
||||
PaidWorkspacePlans,
|
||||
Roles,
|
||||
WorkspacePlans
|
||||
@@ -65,7 +60,7 @@ import {
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import dayjs from 'dayjs'
|
||||
import { Knex } from 'knex'
|
||||
import type { Knex } from 'knex'
|
||||
import { times } from 'lodash-es'
|
||||
|
||||
const grantStreamPermissions = grantStreamPermissionsFactory({ db })
|
||||
|
||||
@@ -3,18 +3,20 @@ import { isMultiRegionEnabled } from '@/modules/multiregion/helpers'
|
||||
import { setMultiRegionConfig } from '@/modules/multiregion/regionConfig'
|
||||
import { storeRegionFactory } from '@/modules/multiregion/repositories'
|
||||
import { WorkspaceRegions } from '@/modules/workspaces/repositories/regions'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { BasicTestUser, createTestUser } from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser } from '@/test/authHelper'
|
||||
import {
|
||||
GetAvailableRegionsDocument,
|
||||
GetWorkspaceDefaultRegionDocument,
|
||||
SetWorkspaceDefaultRegionDocument
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import { testApolloServer, TestApolloServer } from '@/test/graphqlHelper'
|
||||
import type { TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { testApolloServer } from '@/test/graphqlHelper'
|
||||
import { beforeEachContext, getRegionKeys } from '@/test/hooks'
|
||||
import { truncateRegionsSafely } from '@/test/speckle-helpers/regions'
|
||||
import { PaidWorkspacePlans, Roles } from '@speckle/shared'
|
||||
|
||||
@@ -19,16 +19,12 @@ import {
|
||||
import db from '@/db/knex'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import { expect } from 'chai'
|
||||
import { Workspace, WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Workspace, WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import { expectToThrow } from '@/test/assertionHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { buildBasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
BasicTestUser,
|
||||
buildBasicTestUser,
|
||||
createTestUser,
|
||||
createTestUsers
|
||||
} from '@/test/authHelper'
|
||||
import {
|
||||
BasicTestWorkspace,
|
||||
assignToWorkspace,
|
||||
buildBasicTestWorkspace,
|
||||
createTestWorkspace,
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
import { createRandomEmail } from '@/modules/core/helpers/testHelpers'
|
||||
import { intersectProjectCollaboratorsAndWorkspaceCollaboratorsFactory } from '@/modules/workspaces/repositories/projects'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspaces,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import {
|
||||
addAllToStream,
|
||||
BasicTestStream,
|
||||
createTestStream
|
||||
} from '@/test/speckle-helpers/streamHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { addAllToStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import { db } from '@/db/knex'
|
||||
import { expect } from 'chai'
|
||||
|
||||
@@ -4,13 +4,15 @@ import {
|
||||
createRandomString
|
||||
} from '@/modules/core/helpers/testHelpers'
|
||||
import { getInvitableCollaboratorsByProjectIdFactory } from '@/modules/workspaces/repositories/users'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import { BasicTestStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { expect } from 'chai'
|
||||
import { pick } from 'lodash-es'
|
||||
|
||||
|
||||
@@ -1,27 +1,22 @@
|
||||
import { Streams } from '@/modules/core/dbSchema'
|
||||
import { AllScopes } from '@/modules/core/helpers/mainConstants'
|
||||
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace,
|
||||
unassignFromWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
ProjectImplicitRoleCheck,
|
||||
projectImplicitRoleCheck
|
||||
} from '@/modules/workspaces/tests/helpers/rolesGraphql'
|
||||
import type { ProjectImplicitRoleCheck } from '@/modules/workspaces/tests/helpers/rolesGraphql'
|
||||
import { projectImplicitRoleCheck } from '@/modules/workspaces/tests/helpers/rolesGraphql'
|
||||
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
import {
|
||||
WorkspaceAcl,
|
||||
Workspaces,
|
||||
WorkspaceSeats
|
||||
} from '@/modules/workspacesCore/helpers/db'
|
||||
import {
|
||||
BasicTestUser,
|
||||
createAuthTokenForUser,
|
||||
createTestUsers
|
||||
} from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createAuthTokenForUser, createTestUsers } from '@/test/authHelper'
|
||||
import {
|
||||
ActiveUserLeaveWorkspaceDocument,
|
||||
GetUserProjectsWithAccessChecksDocument,
|
||||
@@ -31,17 +26,11 @@ import {
|
||||
UpdateWorkspaceRoleDocument,
|
||||
UpdateWorkspaceSeatTypeDocument
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import {
|
||||
createTestContext,
|
||||
testApolloServer,
|
||||
TestApolloServer
|
||||
} from '@/test/graphqlHelper'
|
||||
import type { TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { createTestContext, testApolloServer } from '@/test/graphqlHelper'
|
||||
import { beforeEachContext, truncateTables } from '@/test/hooks'
|
||||
import {
|
||||
addToStream,
|
||||
BasicTestStream,
|
||||
createTestStream
|
||||
} from '@/test/speckle-helpers/streamHelper'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { addToStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
|
||||
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspaces,
|
||||
BasicTestWorkspace,
|
||||
createTestOidcProvider,
|
||||
createTestSsoSession,
|
||||
createTestWorkspaces
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
BasicTestUser,
|
||||
createAuthTokenForUser,
|
||||
createTestUsers
|
||||
} from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createAuthTokenForUser, createTestUsers } from '@/test/authHelper'
|
||||
import {
|
||||
ActiveUserExpiredSsoSessionsDocument,
|
||||
GetActiveUserWorkspacesDocument,
|
||||
@@ -20,13 +17,11 @@ import {
|
||||
GetWorkspaceProjectsDocument,
|
||||
GetWorkspaceSsoDocument
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import {
|
||||
createTestContext,
|
||||
testApolloServer,
|
||||
TestApolloServer
|
||||
} from '@/test/graphqlHelper'
|
||||
import type { TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { createTestContext, testApolloServer } from '@/test/graphqlHelper'
|
||||
import { truncateTables } from '@/test/hooks'
|
||||
import { BasicTestStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { AllScopes, Roles } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
|
||||
@@ -7,21 +7,22 @@ import {
|
||||
listWorkspaceSsoMembershipsFactory,
|
||||
upsertUserSsoSessionFactory
|
||||
} from '@/modules/workspaces/repositories/sso'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
BasicTestWorkspace,
|
||||
createTestOidcProvider,
|
||||
createTestSsoSession,
|
||||
createTestWorkspace,
|
||||
createTestWorkspaces
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import { Roles, wait } from '@speckle/shared'
|
||||
import db from '@/db/knex'
|
||||
import { getDecryptor } from '@/modules/workspaces/helpers/sso'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import { expect } from 'chai'
|
||||
import { UserSsoSessionRecord } from '@/modules/workspaces/domain/sso/types'
|
||||
import type { UserSsoSessionRecord } from '@/modules/workspaces/domain/sso/types'
|
||||
import { truncateTables } from '@/test/hooks'
|
||||
import { isValidSsoSession } from '@/modules/workspaces/domain/sso/logic'
|
||||
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
|
||||
|
||||
@@ -13,29 +13,27 @@ import {
|
||||
validateSlugFactory
|
||||
} from '@/modules/workspaces/services/management'
|
||||
import { createWorkspaceProjectFactory } from '@/modules/workspaces/services/projects'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace,
|
||||
unassignFromWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
buildInvitesGraphqlOperations,
|
||||
TestInvitesGraphQLOperations
|
||||
} from '@/modules/workspaces/tests/helpers/invites'
|
||||
import type { TestInvitesGraphQLOperations } from '@/modules/workspaces/tests/helpers/invites'
|
||||
import { buildInvitesGraphqlOperations } from '@/modules/workspaces/tests/helpers/invites'
|
||||
import { itEach } from '@/test/assertionHelper'
|
||||
import { BasicTestUser, createTestUser } from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser } from '@/test/authHelper'
|
||||
import {
|
||||
OnWorkspaceProjectsUpdatedDocument,
|
||||
OnWorkspaceUpdatedDocument,
|
||||
WorkspaceProjectsUpdatedMessageType
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import {
|
||||
testApolloServer,
|
||||
import type {
|
||||
TestApolloServer,
|
||||
TestApolloSubscriptionClient,
|
||||
testApolloSubscriptionServer,
|
||||
TestApolloSubscriptionServer
|
||||
} from '@/test/graphqlHelper'
|
||||
import { testApolloServer, testApolloSubscriptionServer } from '@/test/graphqlHelper'
|
||||
import { beforeEachContext, truncateTables } from '@/test/hooks'
|
||||
import { captureCreatedInvite } from '@/test/speckle-helpers/inviteHelper'
|
||||
import {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { BasicTestUser, createTestUser } from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser } from '@/test/authHelper'
|
||||
import { createTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
createRandomEmail,
|
||||
|
||||
@@ -2,17 +2,13 @@ import {
|
||||
createRandomEmail,
|
||||
createRandomString
|
||||
} from '@/modules/core/helpers/testHelpers'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
BasicTestUser,
|
||||
createTestUser,
|
||||
createTestUsers,
|
||||
login
|
||||
} from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser, createTestUsers, login } from '@/test/authHelper'
|
||||
import {
|
||||
ActiveUserUpdateMutationDocument,
|
||||
GetActiveUserDocument,
|
||||
@@ -20,9 +16,11 @@ import {
|
||||
SetUserActiveWorkspaceDocument,
|
||||
UserActiveResourcesDocument
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import { testApolloServer, TestApolloServer } from '@/test/graphqlHelper'
|
||||
import type { TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { testApolloServer } from '@/test/graphqlHelper'
|
||||
import { beforeEachContext } from '@/test/hooks'
|
||||
import { BasicTestStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
|
||||
|
||||
@@ -16,8 +16,9 @@ import {
|
||||
getWorkspaceWithDomainsFactory,
|
||||
upsertWorkspaceRoleFactory
|
||||
} from '@/modules/workspaces/repositories/workspaces'
|
||||
import { getUserFactory, UserWithOptionalRole } from '@/modules/core/repositories/users'
|
||||
import {
|
||||
import type { UserWithOptionalRole } from '@/modules/core/repositories/users'
|
||||
import { getUserFactory } from '@/modules/core/repositories/users'
|
||||
import type {
|
||||
AddOrUpdateWorkspaceRole,
|
||||
CreateWorkspaceJoinRequest,
|
||||
SendWorkspaceJoinRequestApprovedEmail,
|
||||
@@ -31,18 +32,17 @@ import {
|
||||
dismissWorkspaceJoinRequestFactory,
|
||||
requestToJoinWorkspaceFactory
|
||||
} from '@/modules/workspaces/services/workspaceJoinRequests'
|
||||
import {
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { createTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import type {
|
||||
Workspace,
|
||||
WorkspaceJoinRequest,
|
||||
WorkspaceWithDomains
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
import { WorkspaceJoinRequests } from '@/modules/workspacesCore/helpers/db'
|
||||
import { expectToThrow } from '@/test/assertionHelper'
|
||||
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
@@ -50,7 +50,7 @@ import {
|
||||
createWorkspaceJoinRequestFactory,
|
||||
updateWorkspaceJoinRequestStatusFactory
|
||||
} from '@/modules/workspaces/repositories/workspaceJoinRequests'
|
||||
import { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import {
|
||||
findEmailsByUserIdFactory,
|
||||
findVerifiedEmailsByUserIdFactory
|
||||
|
||||
@@ -7,24 +7,23 @@ import {
|
||||
import { setStripeClient } from '@/modules/gatekeeper/clients/stripe'
|
||||
import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
|
||||
import { getWorkspaceUserSeatFactory } from '@/modules/gatekeeper/repositories/workspaceSeat'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import type { WorkspaceUpdateSeatTypeInput } from '@/modules/core/graph/generated/graphql'
|
||||
import {
|
||||
GetProjectCollaboratorsDocument,
|
||||
UpdateWorkspaceSeatTypeDocument,
|
||||
WorkspaceUpdateSeatTypeInput
|
||||
UpdateWorkspaceSeatTypeDocument
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import { testApolloServer, TestApolloServer } from '@/test/graphqlHelper'
|
||||
import type { TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { testApolloServer } from '@/test/graphqlHelper'
|
||||
import { beforeEachContext } from '@/test/hooks'
|
||||
import {
|
||||
addToStream,
|
||||
BasicTestStream,
|
||||
createTestStream
|
||||
} from '@/test/speckle-helpers/streamHelper'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { addToStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
@@ -14,13 +14,14 @@ import {
|
||||
ensureValidWorkspaceRoleSeatFactory,
|
||||
getWorkspaceDefaultSeatTypeFactory
|
||||
} from '@/modules/workspaces/services/workspaceSeat'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
BasicTestWorkspace,
|
||||
createTestWorkspace,
|
||||
unassignFromWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { createTestUser, createTestUsers } from '@/test/authHelper'
|
||||
import { beforeEachContext } from '@/test/hooks'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import type { TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { createTestContext, testApolloServer } from '@/test/graphqlHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import {
|
||||
createTestContext,
|
||||
testApolloServer,
|
||||
TestApolloServer
|
||||
} from '@/test/graphqlHelper'
|
||||
import {
|
||||
BasicTestUser,
|
||||
buildBasicTestUser,
|
||||
createAuthTokenForUser,
|
||||
createTestUser,
|
||||
createTestUsers,
|
||||
login
|
||||
} from '@/test/authHelper'
|
||||
import { Roles, wait, WorkspaceRoles } from '@speckle/shared'
|
||||
import type { WorkspaceRoles } from '@speckle/shared'
|
||||
import { Roles, wait } from '@speckle/shared'
|
||||
import {
|
||||
CreateProjectInviteDocument,
|
||||
CreateWorkspaceDocument,
|
||||
@@ -38,15 +36,17 @@ import {
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import { beforeEachContext, truncateTables } from '@/test/hooks'
|
||||
import { AllScopes } from '@/modules/core/helpers/mainConstants'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
assignToWorkspace,
|
||||
BasicTestWorkspace,
|
||||
buildBasicTestWorkspace,
|
||||
createTestWorkspace,
|
||||
createWorkspaceInviteDirectly
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import { BasicTestCommit, createTestCommit } from '@/test/speckle-helpers/commitHelper'
|
||||
import { BasicTestStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import type { BasicTestCommit } from '@/test/speckle-helpers/commitHelper'
|
||||
import { createTestCommit } from '@/test/speckle-helpers/commitHelper'
|
||||
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { createTestStream } from '@/test/speckle-helpers/streamHelper'
|
||||
import { shuffle } from 'lodash-es'
|
||||
import knex, { db } from '@/db/knex'
|
||||
import {
|
||||
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
import { db } from '@/db/knex'
|
||||
import { BasicTestUser, buildBasicTestUser, createTestUser } from '@/test/authHelper'
|
||||
import type { BasicTestUser } from '@/test/authHelper'
|
||||
import { buildBasicTestUser, createTestUser } from '@/test/authHelper'
|
||||
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
BasicTestWorkspace,
|
||||
buildBasicTestWorkspace,
|
||||
createTestWorkspace
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import {
|
||||
anyEmailCompliantWithWorkspaceDomains,
|
||||
isWorkspaceRole,
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
isValidSsoSession
|
||||
} from '@/modules/workspaces/domain/sso/logic'
|
||||
import { WorkspaceDomainsInvalidState } from '@/modules/workspaces/errors/workspace'
|
||||
import { WorkspaceDomain } from '@/modules/workspacesCore/domain/types'
|
||||
import type { WorkspaceDomain } from '@/modules/workspacesCore/domain/types'
|
||||
import { expectToThrow } from '@/test/assertionHelper'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
buildTestWorkspaceSeat,
|
||||
buildTestWorkspaceWithOptionalRole
|
||||
} from '@/modules/workspaces/tests/helpers/creation'
|
||||
import {
|
||||
import type {
|
||||
CountWorkspaceRoleWithOptionalProjectRole,
|
||||
GetDefaultRegion,
|
||||
GetWorkspace,
|
||||
@@ -16,16 +16,14 @@ import {
|
||||
buildTestWorkspacePlan,
|
||||
buildTestWorkspaceSubscription
|
||||
} from '@/modules/gatekeeper/tests/helpers/workspacePlan'
|
||||
import {
|
||||
import type {
|
||||
GetWorkspacePlan,
|
||||
GetWorkspaceSubscription,
|
||||
WorkspaceSeatType
|
||||
GetWorkspaceSubscription
|
||||
} from '@/modules/gatekeeper/domain/billing'
|
||||
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import {
|
||||
buildMixpanelFake,
|
||||
MixpanelFakeEventRecord
|
||||
} from '@/modules/shared/test/helpers/mixpanel'
|
||||
import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
|
||||
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { MixpanelFakeEventRecord } from '@/modules/shared/test/helpers/mixpanel'
|
||||
import { buildMixpanelFake } from '@/modules/shared/test/helpers/mixpanel'
|
||||
import { getFeatureFlags } from '@speckle/shared/environment'
|
||||
import { GatekeeperEvents } from '@/modules/gatekeeperCore/domain/events'
|
||||
import {
|
||||
@@ -35,7 +33,7 @@ import {
|
||||
import { expect } from 'chai'
|
||||
import { WorkspacePlans, WorkspacePlanStatuses } from '@speckle/shared'
|
||||
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
|
||||
import { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import type { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import { BillingInterval } from '@/modules/core/graph/generated/graphql'
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { WorkspaceNotFoundError } from '@/modules/workspaces/errors/workspace'
|
||||
import { isUserWorkspaceDomainPolicyCompliantFactory } from '@/modules/workspaces/services/domains'
|
||||
import { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import { expectToThrow } from '@/test/assertionHelper'
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import {
|
||||
import type {
|
||||
Workspace,
|
||||
WorkspaceAcl,
|
||||
WorkspaceDomain,
|
||||
WorkspaceSeatType,
|
||||
WorkspaceWithDomains
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
import {
|
||||
addDomainToWorkspaceFactory,
|
||||
createWorkspaceFactory,
|
||||
@@ -17,11 +17,9 @@ import {
|
||||
import { Roles, validateWorkspaceSlug } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import {
|
||||
WorkspaceEvents,
|
||||
WorkspaceEventsPayloads
|
||||
} from '@/modules/workspacesCore/domain/events'
|
||||
import { StreamAclRecord, StreamRecord } from '@/modules/core/helpers/types'
|
||||
import type { WorkspaceEventsPayloads } from '@/modules/workspacesCore/domain/events'
|
||||
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
|
||||
import type { StreamAclRecord, StreamRecord } from '@/modules/core/helpers/types'
|
||||
import { expectToThrow } from '@/test/assertionHelper'
|
||||
import { createRandomPassword } from '@/modules/core/helpers/testHelpers'
|
||||
import {
|
||||
@@ -34,13 +32,13 @@ import {
|
||||
WorkspaceSlugTakenError,
|
||||
WorkspaceUnverifiedDomainError
|
||||
} from '@/modules/workspaces/errors/workspace'
|
||||
import { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import { merge, omit } from 'lodash-es'
|
||||
import {
|
||||
import type {
|
||||
GetWorkspaceWithDomains,
|
||||
UpsertWorkspaceArgs
|
||||
} from '@/modules/workspaces/domain/operations'
|
||||
import { FindVerifiedEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
import type { FindVerifiedEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
|
||||
|
||||
type WorkspaceTestContext = {
|
||||
storedWorkspaces: UpsertWorkspaceArgs['workspace'][]
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
import { ProjectTeamMember } from '@/modules/core/domain/projects/types'
|
||||
import type { ProjectTeamMember } from '@/modules/core/domain/projects/types'
|
||||
import { ProjectNotFoundError } from '@/modules/core/errors/projects'
|
||||
import { StreamRecord } from '@/modules/core/helpers/types'
|
||||
import type { StreamRecord } from '@/modules/core/helpers/types'
|
||||
import { queryAllProjectsFactory } from '@/modules/core/services/projects'
|
||||
import { WorkspaceSeat, WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
|
||||
import type { WorkspaceSeat } from '@/modules/gatekeeper/domain/billing'
|
||||
import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
|
||||
import { WorkspaceInvalidProjectError } from '@/modules/workspaces/errors/workspace'
|
||||
import { moveProjectToWorkspaceFactory } from '@/modules/workspaces/services/projects'
|
||||
import {
|
||||
import type {
|
||||
Workspace,
|
||||
WorkspaceAcl,
|
||||
WorkspaceDomain
|
||||
} from '@/modules/workspacesCore/domain/types'
|
||||
import { expectToThrow } from '@/test/assertionHelper'
|
||||
import { ProjectUpdateRoleInput } from '@/modules/core/graph/generated/graphql'
|
||||
import { Roles, StreamRoles, WorkspaceRoles } from '@speckle/shared'
|
||||
import type { ProjectUpdateRoleInput } from '@/modules/core/graph/generated/graphql'
|
||||
import type { StreamRoles, WorkspaceRoles } from '@speckle/shared'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
import cryptoRandomString from 'crypto-random-string'
|
||||
import { StreamWithOptionalRole } from '@/modules/core/repositories/streams'
|
||||
import type { StreamWithOptionalRole } from '@/modules/core/repositories/streams'
|
||||
|
||||
describe('Project retrieval services', () => {
|
||||
describe('queryAllWorkspaceProjectFactory returns a generator, that', () => {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* eslint-disable camelcase */
|
||||
|
||||
import { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
|
||||
import { getDefaultSsoSessionExpirationDate } from '@/modules/workspaces/domain/sso/logic'
|
||||
import {
|
||||
import type {
|
||||
OidcProvider,
|
||||
UserSsoSessionRecord,
|
||||
WorkspaceSsoProvider,
|
||||
@@ -22,7 +22,7 @@ import {
|
||||
saveSsoProviderRegistrationFactory,
|
||||
startOidcSsoProviderValidationFactory
|
||||
} from '@/modules/workspaces/services/sso'
|
||||
import { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import { expectToThrow } from '@/test/assertionHelper'
|
||||
import { wait } from '@speckle/shared'
|
||||
import { assert, expect } from 'chai'
|
||||
|
||||
@@ -2,7 +2,8 @@ import {
|
||||
getWorkspaceDefaultSeatTypeFactory,
|
||||
isWorkspaceRoleWorkspaceSeatTypeValid
|
||||
} from '@/modules/workspaces/services/workspaceSeat'
|
||||
import { Workspace, WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
import type { Workspace } from '@/modules/workspacesCore/domain/types'
|
||||
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { expect } from 'chai'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import type { WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
|
||||
import { expect } from 'chai'
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { isUserLastWorkspaceAdmin } from '@/modules/workspaces/helpers/roles'
|
||||
|
||||
Reference in New Issue
Block a user