Skip to content

craft-hub / WorkspaceService

Class: WorkspaceService

Defined in: packages/craft-hub/src/workspaces.ts:54

Manage portable workspace manifests separately from machine-local bindings.

Constructors

Constructor

new WorkspaceService(configDir, dataDir, projects): WorkspaceService

Defined in: packages/craft-hub/src/workspaces.ts:57

Parameters

configDir

string

dataDir

string

projects

ProjectRegistry

Returns

WorkspaceService

Properties

configDir

readonly configDir: string

Defined in: packages/craft-hub/src/workspaces.ts:58

Methods

addProject()

addProject(workspaceId, projectId, ownerScopeId?): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:580

Parameters

workspaceId

string

projectId

string

ownerScopeId?

string

Returns

Promise<WorkspaceRecord>


applyPortableCatalog()

applyPortableCatalog(input, ownerScopeId?): Promise<WorkspaceCatalog>

Defined in: packages/craft-hub/src/workspaces.ts:361

Apply portable ordering and groups without deleting local-only workspaces or groups.

Parameters

input

Pick<WorkspaceCatalog, "groups" | "workspaceGroups" | "workspaceOrder">

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceCatalog>


applyPortableManifest()

applyPortableManifest(manifest, ownerScopeId?): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:339

Apply one portable manifest while preserving this machine's project bindings and trust.

Parameters

manifest

WorkspaceManifest

ownerScopeId?

string = ...

Returns

Promise<WorkspaceRecord>


applyPortableOrder()

applyPortableOrder(remoteOrder, ownerScopeId?): Promise<WorkspaceCatalog>

Defined in: packages/craft-hub/src/workspaces.ts:354

Apply portable ordering without deleting local-only workspaces.

Parameters

remoteOrder

string[]

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceCatalog>


assignGroup()

assignGroup(workspaceId, groupId?, ownerScopeId?): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:179

Move one workspace into a group, or remove it from grouping.

Parameters

workspaceId

string

groupId?

string

ownerScopeId?

string

Returns

Promise<WorkspaceRecord>


assignProjectGroup()

assignProjectGroup(projectId, groupId?, ownerScopeId?): Promise<Record<string, string>>

Defined in: packages/craft-hub/src/workspaces.ts:229

Move one registered standalone project into a navigation group, or leave it ungrouped.

Parameters

projectId

string

groupId?

string

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<Record<string, string>>


bind()

bind(projectKey, projectId, ownerScopeId?): Promise<void>

Defined in: packages/craft-hub/src/workspaces.ts:524

Parameters

projectKey

string

projectId

string

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<void>


create()

create(name, ownerScopeId?): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:95

Parameters

name

string

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceRecord>


createGroup()

createGroup(name, ownerScopeId?): Promise<WorkspaceGroup>

Defined in: packages/craft-hub/src/workspaces.ts:115

Create an editable workspace group.

Parameters

name

string

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceGroup>


delete()

delete(id, expectedRevision, ownerScopeId?): Promise<void>

Defined in: packages/craft-hub/src/workspaces.ts:300

Parameters

id

string

expectedRevision

string

ownerScopeId?

string

Returns

Promise<void>


deleteGroup()

deleteGroup(id, ownerScopeId?): Promise<void>

Defined in: packages/craft-hub/src/workspaces.ts:156

Delete a group without deleting its workspaces or standalone projects.

Parameters

id

string

ownerScopeId?

string

Returns

Promise<void>


deleteOwnerScopeData()

deleteOwnerScopeData(ownerScopeId): Promise<OwnerScopeWorkspaceData>

Defined in: packages/craft-hub/src/workspaces.ts:445

Remove every portable and machine-local record owned by one Team.

Parameters

ownerScopeId

string

Returns

Promise<OwnerScopeWorkspaceData>


get()

get(id, ownerScopeId?): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:87

Parameters

id

string

ownerScopeId?

string

Returns

Promise<WorkspaceRecord>


groups()

groups(ownerScopeId?): Promise<WorkspaceGroup[]>

Defined in: packages/craft-hub/src/workspaces.ts:110

List editable workspace groups in navigation order.

Parameters

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceGroup[]>


importWorkspace()

importWorkspace(name, members, groupId, ownerScopeId?): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:248

Create one owned workspace from imported members and retain paths only in local bindings.

Parameters

name

string

members

ImportedWorkspaceMemberInput[]

groupId

string

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceRecord>


list()

list(ownerScopeId?): Promise<WorkspaceRecord[]>

Defined in: packages/craft-hub/src/workspaces.ts:65

Parameters

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceRecord[]>


portableSnapshot()

portableSnapshot(ownerScopeId?): Promise<PortableWorkspaceSnapshot>

Defined in: packages/craft-hub/src/workspaces.ts:325

Export only user-owned workspace manifests and their portable order.

Parameters

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<PortableWorkspaceSnapshot>


projectGroupAssignments()

projectGroupAssignments(ownerScopeId?): Promise<Record<string, string>>

Defined in: packages/craft-hub/src/workspaces.ts:197

List machine-local group assignments for registered standalone projects.

Parameters

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<Record<string, string>>


projectKey()

projectKey(projectId, workspace?): Promise<string>

Defined in: packages/craft-hub/src/workspaces.ts:603

Parameters

projectId

string

workspace?

WorkspaceRecord

Returns

Promise<string>


projectOwnerScopes()

projectOwnerScopes(ownerScopeIds): Promise<Record<string, string[]>>

Defined in: packages/craft-hub/src/workspaces.ts:206

Map registered projects to the non-Personal owner scopes that explicitly reference them.

Parameters

ownerScopeIds

string[]

Returns

Promise<Record<string, string[]>>


registerImportedProject()

registerImportedProject(workspaceId, projectKey, locatedPath?, ownerScopeId?): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:536

Resolve and register a member from its retained import path without granting trust.

Parameters

workspaceId

string

projectKey

string

locatedPath?

string

ownerScopeId?

string

Returns

Promise<WorkspaceRecord>


removeProject()

removeProject(workspaceId, projectIdOrKey, ownerScopeId?): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:591

Parameters

workspaceId

string

projectIdOrKey

string

ownerScopeId?

string

Returns

Promise<WorkspaceRecord>


renameGroup()

renameGroup(id, name, ownerScopeId?): Promise<WorkspaceGroup>

Defined in: packages/craft-hub/src/workspaces.ts:130

Rename an editable workspace group.

Parameters

id

string

name

string

ownerScopeId?

string

Returns

Promise<WorkspaceGroup>


reorder()

reorder(workspaceOrder, ownerScopeId?): Promise<WorkspaceCatalog>

Defined in: packages/craft-hub/src/workspaces.ts:311

Parameters

workspaceOrder

string[]

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceCatalog>


replacePortableSnapshot()

replacePortableSnapshot(snapshot, ownerScopeId?): Promise<WorkspaceCatalog>

Defined in: packages/craft-hub/src/workspaces.ts:394

Replace portable workspace state while retaining machine-local project bindings and UI state.

Parameters

snapshot

PortableWorkspaceSnapshot

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceCatalog>


resolveProjectKey()

resolveProjectKey(projectKey, ownerScopeId?): Promise<string | undefined>

Defined in: packages/craft-hub/src/workspaces.ts:517

Resolve a portable project key through this machine's bindings without changing trust.

Parameters

projectKey

string

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<string | undefined>


restoreOwnerScopeData()

restoreOwnerScopeData(ownerScopeId, data): Promise<void>

Defined in: packages/craft-hub/src/workspaces.ts:497

Restore a Team state receipt after a later lifecycle operation fails.

Parameters

ownerScopeId

string

data

OwnerScopeWorkspaceData

Returns

Promise<void>


save()

save(input): Promise<WorkspaceRecord>

Defined in: packages/craft-hub/src/workspaces.ts:282

Parameters

input

SaveWorkspaceInput

Returns

Promise<WorkspaceRecord>


setGroupIcon()

setGroupIcon(id, icon?, ownerScopeId?): Promise<WorkspaceGroup>

Defined in: packages/craft-hub/src/workspaces.ts:144

Set the optional portable icon or emoji for one workspace group.

Parameters

id

string

icon?

string

ownerScopeId?

string

Returns

Promise<WorkspaceGroup>


uiState()

uiState(ownerScopeId?): Promise<WorkspaceUiState>

Defined in: packages/craft-hub/src/workspaces.ts:551

Parameters

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceUiState>


updateUiState()

updateUiState(state, ownerScopeId?): Promise<WorkspaceUiState>

Defined in: packages/craft-hub/src/workspaces.ts:561

Parameters

state

WorkspaceUiState

ownerScopeId?

string = PERSONAL_OWNER_SCOPE_ID

Returns

Promise<WorkspaceUiState>

Released under the MIT License.