Skip to content

craft-hub / WorkspaceService

Class: WorkspaceService ​

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

Manage portable workspace manifests separately from machine-local bindings.

Constructors ​

Constructor ​

new WorkspaceService(configDir, dataDir, projects, userConfig?, subscribedWorkspaces?): WorkspaceService

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

Parameters ​

configDir ​

string

dataDir ​

string

projects ​

ProjectRegistry

userConfig? ​

UserConfigService

subscribedWorkspaces? ​

() => Promise<SubscribedWorkspace[]>

Returns ​

WorkspaceService

Properties ​

configDir ​

readonly configDir: string

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

Methods ​

addProject() ​

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

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

Parameters ​

workspaceId ​

string

projectId ​

string

ownerScopeId? ​

string

Returns ​

Promise<WorkspaceRecord>


applyPortableCatalog() ​

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

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

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:351

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:366

Apply portable ordering without deleting local-only workspaces.

Parameters ​

remoteOrder ​

string[]

ownerScopeId? ​

string = PERSONAL_OWNER_SCOPE_ID

Returns ​

Promise<WorkspaceCatalog>


assertSubscriptionIdsAvailable() ​

assertSubscriptionIdsAvailable(ids): Promise<void>

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

Prevent an incoming subscription from shadowing any existing local configuration file.

Parameters ​

ids ​

string[]

Returns ​

Promise<void>


assignGroup() ​

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

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

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:239

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:540

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:104

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:125

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:311

Parameters ​

id ​

string

expectedRevision ​

string

ownerScopeId? ​

string

Returns ​

Promise<void>


deleteGroup() ​

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

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

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:461

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:93

Parameters ​

id ​

string

ownerScopeId? ​

string

Returns ​

Promise<WorkspaceRecord>


groups() ​

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

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

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:258

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:76

Parameters ​

ownerScopeId? ​

string = PERSONAL_OWNER_SCOPE_ID

Returns ​

Promise<WorkspaceRecord[]>


portableSnapshot() ​

portableSnapshot(ownerScopeId?): Promise<PortableWorkspaceSnapshot>

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

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:207

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:623

Parameters ​

projectId ​

string

workspace? ​

WorkspaceRecord

Returns ​

Promise<string>


projectOwnerScopes() ​

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

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

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:554

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:611

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:140

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:323

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:406

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:533

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:513

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:292

Parameters ​

input ​

SaveWorkspaceInput

Returns ​

Promise<WorkspaceRecord>


setGroupIcon() ​

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

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

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:571

Parameters ​

ownerScopeId? ​

string = PERSONAL_OWNER_SCOPE_ID

Returns ​

Promise<WorkspaceUiState>


updateUiState() ​

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

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

Parameters ​

state ​

WorkspaceUiState

ownerScopeId? ​

string = PERSONAL_OWNER_SCOPE_ID

Returns ​

Promise<WorkspaceUiState>

Released under the MIT License.