@astrale-domains/shell 0.1.0-beta.9 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +264 -64
- package/dist/domain.d.ts +225 -0
- package/dist/domain.js +99 -0
- package/dist/functions/application/index.js +1 -0
- package/dist/functions/application/list-entrypoints.js +6 -0
- package/dist/functions/group/assign-member-to-group.js +4 -0
- package/dist/functions/group/change-group-membership.js +34 -0
- package/dist/functions/group/group-membership-errors.js +23 -0
- package/dist/functions/group/index.js +2 -0
- package/dist/functions/group/unassign-member-from-group.js +4 -0
- package/dist/functions/namespace/index.js +3 -0
- package/dist/functions/namespace/link.js +30 -0
- package/dist/functions/namespace/namespace-errors.js +28 -0
- package/dist/functions/namespace/namespace-name.js +13 -0
- package/dist/functions/namespace/rename.js +31 -0
- package/dist/functions/namespace/unlink.js +21 -0
- package/dist/functions/user/index.js +2 -0
- package/dist/functions/user/invite-user.js +39 -0
- package/dist/functions/user/record-profile.js +18 -0
- package/dist/functions/view-access/assign-views.js +86 -0
- package/dist/functions/view-access/index.js +1 -0
- package/dist/functions/view-access/view-access-errors.js +28 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.js +1 -3
- package/dist/integrations/index.d.ts +1 -0
- package/dist/integrations/index.js +1 -0
- package/dist/integrations/integrations.d.ts +9 -0
- package/dist/integrations/integrations.js +2 -0
- package/dist/integrations/user-invitation/index.d.ts +4 -0
- package/dist/integrations/user-invitation/index.js +3 -0
- package/dist/integrations/user-invitation/invitation-request-failure.d.ts +5 -0
- package/dist/integrations/user-invitation/invitation-request-failure.js +9 -0
- package/dist/integrations/user-invitation/invite-user-request.d.ts +6 -0
- package/dist/integrations/user-invitation/invite-user-request.js +1 -0
- package/dist/integrations/user-invitation/request-user-invitation.d.ts +8 -0
- package/dist/integrations/user-invitation/request-user-invitation.js +9 -0
- package/dist/mutations/group/index.js +1 -1
- package/dist/mutations/group/set-group-membership.js +29 -0
- package/dist/mutations/namespace/alias-write.js +22 -0
- package/dist/mutations/namespace/index.js +3 -0
- package/dist/mutations/namespace/link-alias.js +15 -0
- package/dist/mutations/namespace/rename-alias.js +13 -0
- package/dist/mutations/namespace/unlink-alias.js +13 -0
- package/dist/mutations/user/index.js +1 -1
- package/dist/mutations/user/record-user-profile.js +13 -0
- package/dist/mutations/view-access/index.js +1 -0
- package/dist/mutations/view-access/set-view-access.js +29 -0
- package/dist/providers/admin-enrollment/create-admin-enrollment-provider.js +78 -0
- package/dist/providers/admin-enrollment/decode-admin-invitation-response.js +20 -0
- package/dist/providers/admin-enrollment/index.js +1 -0
- package/dist/providers/admin-enrollment/read-enrollment-response.js +34 -0
- package/dist/queries/application/index.js +1 -0
- package/dist/queries/application/read-installed-entrypoints.js +28 -0
- package/dist/queries/group/index.js +2 -0
- package/dist/queries/group/read-group-membership-endpoints.js +18 -0
- package/dist/queries/group/read-group-membership.js +35 -0
- package/dist/queries/namespace/index.js +2 -0
- package/dist/queries/namespace/read-designated-node.js +12 -0
- package/dist/queries/namespace/read-view-aliases.js +46 -0
- package/dist/queries/user/index.js +1 -5
- package/dist/queries/user/read-user-profile.js +9 -0
- package/dist/queries/view-access/index.js +1 -0
- package/dist/queries/view-access/read-view-access.js +35 -0
- package/dist/runtime.d.ts +1603 -6784
- package/dist/runtime.js +24 -14
- package/dist/schema/index.d.ts +7 -6
- package/dist/schema/index.js +6 -6
- package/dist/schema/modules/application/functions/index.d.ts +1 -0
- package/dist/schema/modules/application/functions/index.js +1 -0
- package/dist/schema/modules/application/functions/list-entrypoints.d.ts +15 -0
- package/dist/schema/modules/application/functions/list-entrypoints.js +16 -0
- package/dist/schema/modules/application/index.d.ts +2 -0
- package/dist/schema/modules/application/index.js +2 -0
- package/dist/schema/modules/application/types/entrypoint-entry.d.ts +8 -0
- package/dist/schema/modules/application/types/entrypoint-entry.js +7 -0
- package/dist/schema/modules/application/types/index.d.ts +1 -0
- package/dist/schema/modules/application/types/index.js +1 -0
- package/dist/schema/modules/group/classes/group.d.ts +24 -0
- package/dist/schema/modules/group/classes/group.js +11 -0
- package/dist/schema/modules/group/classes/index.d.ts +2 -0
- package/dist/schema/modules/group/classes/index.js +2 -0
- package/dist/schema/modules/group/classes/member-of-group.d.ts +30 -0
- package/dist/schema/modules/group/classes/member-of-group.js +12 -0
- package/dist/schema/modules/group/core/administrators-group.d.ts +1 -0
- package/dist/schema/modules/group/core/administrators-group.js +6 -0
- package/dist/schema/modules/group/core/applications-group.d.ts +1 -0
- package/dist/schema/modules/group/core/applications-group.js +6 -0
- package/dist/schema/modules/group/core/index.d.ts +3 -0
- package/dist/schema/modules/group/core/index.js +3 -0
- package/dist/schema/modules/group/core/members-group.d.ts +1 -0
- package/dist/schema/modules/group/core/members-group.js +6 -0
- package/dist/schema/modules/group/functions/assign-member-to-group.js +11 -0
- package/dist/schema/modules/group/functions/index.js +2 -0
- package/dist/schema/modules/group/functions/unassign-member-from-group.js +11 -0
- package/dist/schema/modules/group/index.d.ts +3 -0
- package/dist/schema/modules/group/index.js +3 -0
- package/dist/schema/modules/group/policies/belongs-to-group.d.ts +1 -0
- package/dist/schema/modules/group/policies/belongs-to-group.js +5 -0
- package/dist/schema/modules/group/policies/index.d.ts +1 -0
- package/dist/schema/modules/group/policies/index.js +1 -0
- package/dist/schema/modules/group/types/group-membership-input.js +8 -0
- package/dist/schema/modules/group/types/index.js +1 -0
- package/dist/schema/modules/namespace/classes/alias.d.ts +31 -0
- package/dist/schema/modules/namespace/classes/alias.js +13 -0
- package/dist/schema/modules/namespace/classes/index.d.ts +2 -0
- package/dist/schema/modules/namespace/classes/index.js +2 -0
- package/dist/schema/modules/namespace/classes/namespace.d.ts +31 -0
- package/dist/schema/modules/namespace/classes/namespace.js +10 -0
- package/dist/schema/modules/namespace/core/index.d.ts +1 -0
- package/dist/schema/modules/namespace/core/index.js +1 -0
- package/dist/schema/modules/namespace/core/views-namespace.d.ts +2 -0
- package/dist/schema/modules/namespace/core/views-namespace.js +7 -0
- package/dist/schema/modules/namespace/functions/index.js +3 -0
- package/dist/schema/modules/namespace/functions/link.js +11 -0
- package/dist/schema/modules/namespace/functions/rename.js +11 -0
- package/dist/schema/modules/namespace/functions/unlink.js +11 -0
- package/dist/schema/modules/namespace/index.d.ts +2 -0
- package/dist/schema/modules/namespace/index.js +2 -0
- package/dist/schema/modules/namespace/types/index.js +1 -0
- package/dist/schema/modules/namespace/types/namespace-name.js +7 -0
- package/dist/schema/modules/user/classes/index.d.ts +1 -0
- package/dist/schema/modules/user/classes/index.js +1 -0
- package/dist/schema/modules/user/classes/user.d.ts +34 -0
- package/dist/schema/modules/user/classes/user.js +21 -0
- package/dist/schema/modules/user/functions/index.js +2 -0
- package/dist/schema/modules/user/functions/invite-user.js +12 -0
- package/dist/schema/modules/user/functions/record-profile.js +14 -0
- package/dist/schema/modules/user/index.d.ts +2 -0
- package/dist/schema/modules/user/index.js +2 -0
- package/dist/schema/modules/user/types/index.d.ts +2 -0
- package/dist/schema/modules/user/types/index.js +2 -0
- package/dist/schema/modules/user/types/invitation-summary.d.ts +16 -0
- package/dist/schema/modules/user/types/invitation-summary.js +15 -0
- package/dist/schema/modules/user/types/user-profile.d.ts +7 -0
- package/dist/schema/modules/user/types/user-profile.js +7 -0
- package/dist/schema/modules/view-access/classes/index.d.ts +1 -0
- package/dist/schema/modules/view-access/classes/index.js +1 -0
- package/dist/schema/modules/view-access/classes/view-access.d.ts +32 -0
- package/dist/schema/modules/view-access/classes/view-access.js +18 -0
- package/dist/schema/modules/view-access/core/index.d.ts +1 -0
- package/dist/schema/modules/view-access/core/index.js +1 -0
- package/dist/schema/modules/view-access/core/view-only-group.d.ts +5 -0
- package/dist/schema/modules/view-access/core/view-only-group.js +10 -0
- package/dist/schema/modules/view-access/functions/assign-views.d.ts +16 -0
- package/dist/schema/modules/view-access/functions/assign-views.js +17 -0
- package/dist/schema/modules/view-access/functions/index.d.ts +1 -0
- package/dist/schema/modules/view-access/functions/index.js +1 -0
- package/dist/schema/modules/view-access/index.d.ts +3 -0
- package/dist/schema/modules/view-access/index.js +3 -0
- package/dist/schema/modules/view-access/types/index.js +1 -0
- package/dist/schema/modules/view-access/types/view-assignment.js +16 -0
- package/dist/schema/policies/administers-shell-class.js +11 -0
- package/dist/schema/policies/index.js +4 -0
- package/dist/schema/policies/is-self.js +5 -0
- package/dist/schema/policies/owns-class.js +7 -0
- package/dist/schema/policies/uses-function.js +5 -0
- package/dist/schema/schema.d.ts +833 -0
- package/dist/schema/schema.js +35 -0
- package/dist/schema/views/application-view.js +4 -0
- package/dist/schema/views/index.js +1 -0
- package/dist/utils/canonical-node-path/index.js +1 -0
- package/dist/utils/canonical-node-path/parse-canonical-node-path.js +8 -0
- package/package.json +49 -9
- package/dist/actions/index.js +0 -1
- package/dist/actions/user/index.js +0 -1
- package/dist/actions/user/resolve-home.js +0 -19
- package/dist/application.d.ts +0 -9809
- package/dist/application.js +0 -29
- package/dist/mutations/group/membership.js +0 -19
- package/dist/mutations/space/access.js +0 -23
- package/dist/mutations/space/default.js +0 -23
- package/dist/mutations/space/index.js +0 -2
- package/dist/mutations/user/repair.js +0 -83
- package/dist/queries/space/access.js +0 -12
- package/dist/queries/space/admin.js +0 -20
- package/dist/queries/space/index.js +0 -3
- package/dist/queries/space/member.js +0 -17
- package/dist/queries/user/groups.js +0 -17
- package/dist/queries/user/home.js +0 -21
- package/dist/queries/user/owned-spaces.js +0 -17
- package/dist/queries/user/profile.js +0 -14
- package/dist/queries/user/setup.js +0 -16
- package/dist/schema/domain/index.d.ts +0 -1665
- package/dist/schema/domain/index.js +0 -39
- package/dist/schema/group/class.d.ts +0 -323
- package/dist/schema/group/class.js +0 -7
- package/dist/schema/group/core.d.ts +0 -10
- package/dist/schema/group/core.js +0 -14
- package/dist/schema/group/index.d.ts +0 -6
- package/dist/schema/group/index.js +0 -6
- package/dist/schema/group/methods.d.ts +0 -13
- package/dist/schema/group/methods.js +0 -22
- package/dist/schema/group/policies.d.ts +0 -1
- package/dist/schema/group/policies.js +0 -6
- package/dist/schema/group/relationships.d.ts +0 -16
- package/dist/schema/group/relationships.js +0 -8
- package/dist/schema/group/view.d.ts +0 -1
- package/dist/schema/group/view.js +0 -6
- package/dist/schema/home/index.d.ts +0 -1
- package/dist/schema/home/index.js +0 -1
- package/dist/schema/home/view.d.ts +0 -1
- package/dist/schema/home/view.js +0 -4
- package/dist/schema/setup/functions.d.ts +0 -28
- package/dist/schema/setup/functions.js +0 -27
- package/dist/schema/setup/index.d.ts +0 -1
- package/dist/schema/setup/index.js +0 -1
- package/dist/schema/space/class.d.ts +0 -80
- package/dist/schema/space/class.js +0 -11
- package/dist/schema/space/core.d.ts +0 -8
- package/dist/schema/space/core.js +0 -15
- package/dist/schema/space/index.d.ts +0 -6
- package/dist/schema/space/index.js +0 -6
- package/dist/schema/space/methods.d.ts +0 -18
- package/dist/schema/space/methods.js +0 -32
- package/dist/schema/space/policies.d.ts +0 -4
- package/dist/schema/space/policies.js +0 -21
- package/dist/schema/space/relationships.d.ts +0 -64
- package/dist/schema/space/relationships.js +0 -24
- package/dist/schema/space/view.d.ts +0 -1
- package/dist/schema/space/view.js +0 -6
- package/dist/schema/user/class.d.ts +0 -278
- package/dist/schema/user/class.js +0 -11
- package/dist/schema/user/index.d.ts +0 -3
- package/dist/schema/user/index.js +0 -3
- package/dist/schema/user/methods.d.ts +0 -7
- package/dist/schema/user/methods.js +0 -11
- package/dist/schema/user/view.d.ts +0 -1
- package/dist/schema/user/view.js +0 -6
- package/dist/workflows/group/assign.js +0 -3
- package/dist/workflows/group/change.js +0 -31
- package/dist/workflows/group/index.js +0 -3
- package/dist/workflows/group/unassign.js +0 -3
- package/dist/workflows/index.js +0 -3
- package/dist/workflows/setup/admin.js +0 -3
- package/dist/workflows/setup/index.js +0 -5
- package/dist/workflows/setup/member.js +0 -3
- package/dist/workflows/setup/plan.js +0 -88
- package/dist/workflows/setup/provision.js +0 -57
- package/dist/workflows/setup/run.js +0 -74
- package/dist/workflows/space/access.js +0 -41
- package/dist/workflows/space/add.js +0 -3
- package/dist/workflows/space/default.js +0 -37
- package/dist/workflows/space/index.js +0 -4
- package/dist/workflows/space/remove.js +0 -3
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { defineSchema, KernelSchema, schema } from '@astrale-os/sdk/schema';
|
|
2
|
+
import { listEntrypoints } from './modules/application/index.js';
|
|
3
|
+
import { Group, member_of_group, adminGroup, applicationsGroup, memberGroup, belongsToGroup, } from './modules/group/index.js';
|
|
4
|
+
import { Namespace, alias, viewsNamespace } from './modules/namespace/index.js';
|
|
5
|
+
import { User } from './modules/user/index.js';
|
|
6
|
+
import { assignViews, view_access, viewOnlyGroup } from './modules/view-access/index.js';
|
|
7
|
+
import { ownsClass, administersShellClass, usesFunction, isSelf } from './policies/index.js';
|
|
8
|
+
import { applicationView } from './views/index.js';
|
|
9
|
+
export const ORIGIN = 'shell.astrale.ai';
|
|
10
|
+
const dependencies = { kernel: KernelSchema };
|
|
11
|
+
const classes = { User, Group, member_of_group, Namespace, alias, view_access };
|
|
12
|
+
const functions = { listEntrypoints, assignViews };
|
|
13
|
+
const policies = { belongsToGroup, ownsClass, administersShellClass, usesFunction, isSelf };
|
|
14
|
+
const views = { application: applicationView };
|
|
15
|
+
const core = {
|
|
16
|
+
nodes: {
|
|
17
|
+
admin: adminGroup,
|
|
18
|
+
applications: applicationsGroup,
|
|
19
|
+
member: memberGroup,
|
|
20
|
+
views: viewsNamespace,
|
|
21
|
+
'view-only': viewOnlyGroup,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
const input = {
|
|
25
|
+
name: 'Shell',
|
|
26
|
+
entrypoint: 'application',
|
|
27
|
+
dependencies,
|
|
28
|
+
classes,
|
|
29
|
+
functions,
|
|
30
|
+
policies,
|
|
31
|
+
views,
|
|
32
|
+
core,
|
|
33
|
+
};
|
|
34
|
+
export const ShellSchema = defineSchema(ORIGIN, input);
|
|
35
|
+
export const S = schema.resolve(ShellSchema);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { applicationView } from './application-view.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { canonicalNodeId } from './parse-canonical-node-path.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Path } from '@astrale-os/sdk/graph/path';
|
|
2
|
+
export function canonicalNodeId(value, invalid = () => new TypeError('An exact canonical @NodeId path is required.')) {
|
|
3
|
+
const parsed = Path.parse(value);
|
|
4
|
+
if (parsed.ast.anchor.kind !== 'id' || parsed.ast.steps.length !== 0) {
|
|
5
|
+
throw invalid();
|
|
6
|
+
}
|
|
7
|
+
return parsed.ast.anchor.id;
|
|
8
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astrale-domains/shell",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Astrale Shell Domain schema and remote product implementation",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -15,20 +15,38 @@
|
|
|
15
15
|
"main": "./dist/index.js",
|
|
16
16
|
"types": "./dist/index.d.ts",
|
|
17
17
|
"imports": {
|
|
18
|
+
"#functions": "./dist/functions/index.js",
|
|
19
|
+
"#functions/*": "./dist/functions/*/index.js",
|
|
18
20
|
"#mutations": "./dist/mutations/index.js",
|
|
19
21
|
"#mutations/*": "./dist/mutations/*/index.js",
|
|
20
22
|
"#queries": "./dist/queries/index.js",
|
|
21
23
|
"#queries/*": "./dist/queries/*/index.js",
|
|
22
24
|
"#schema": "./dist/schema/index.js",
|
|
23
25
|
"#schema/*": "./dist/schema/*/index.js",
|
|
24
|
-
"#
|
|
25
|
-
"#
|
|
26
|
+
"#integrations": "./dist/integrations/index.js",
|
|
27
|
+
"#integrations/*": "./dist/integrations/*/index.js",
|
|
28
|
+
"#providers": "./dist/providers/index.js",
|
|
29
|
+
"#providers/*": "./dist/providers/*/index.js",
|
|
30
|
+
"#utils": "./dist/utils/index.js",
|
|
31
|
+
"#utils/*": "./dist/utils/*/index.js",
|
|
32
|
+
"#ui": "./dist/ui/index.js",
|
|
33
|
+
"#ui/*": "./dist/ui/*/index.js",
|
|
34
|
+
"#views": "./dist/views/index.js",
|
|
35
|
+
"#views/*": "./dist/views/*/index.js"
|
|
26
36
|
},
|
|
27
37
|
"exports": {
|
|
28
38
|
".": {
|
|
29
39
|
"types": "./dist/index.d.ts",
|
|
30
40
|
"import": "./dist/index.js"
|
|
31
41
|
},
|
|
42
|
+
"./domain": {
|
|
43
|
+
"types": "./dist/domain.d.ts",
|
|
44
|
+
"import": "./dist/domain.js"
|
|
45
|
+
},
|
|
46
|
+
"./runtime": {
|
|
47
|
+
"types": "./dist/runtime.d.ts",
|
|
48
|
+
"import": "./dist/runtime.js"
|
|
49
|
+
},
|
|
32
50
|
"./package.json": "./package.json"
|
|
33
51
|
},
|
|
34
52
|
"publishConfig": {
|
|
@@ -39,22 +57,44 @@
|
|
|
39
57
|
"zod": "4.4.3"
|
|
40
58
|
},
|
|
41
59
|
"devDependencies": {
|
|
42
|
-
"@astrale-os/
|
|
43
|
-
"@astrale/
|
|
60
|
+
"@astrale-os/ox": "0.1.4",
|
|
61
|
+
"@astrale-os/sdk": "0.6.0-beta.52",
|
|
62
|
+
"@astrale-os/shell-react": "0.6.0-beta.10",
|
|
63
|
+
"@astrale-os/ui": "1.0.0-beta.37",
|
|
64
|
+
"@astrale/typescript-config": "npm:@jsr/astrale__typescript-config@~2.0.0",
|
|
65
|
+
"@testing-library/dom": "10.4.1",
|
|
66
|
+
"@testing-library/react": "16.3.2",
|
|
67
|
+
"@types/node": "26.2.0",
|
|
68
|
+
"@types/react": "19.2.18",
|
|
69
|
+
"@types/react-dom": "19.2.4",
|
|
70
|
+
"@vitejs/plugin-react": "6.0.5",
|
|
71
|
+
"happy-dom": "21.0.4",
|
|
72
|
+
"oxlint": "1.78.0",
|
|
73
|
+
"react": "19.2.8",
|
|
74
|
+
"react-dom": "19.2.8",
|
|
44
75
|
"typescript": "7.0.2",
|
|
45
|
-
"vitest": "
|
|
76
|
+
"vitest": "5.0.1"
|
|
46
77
|
},
|
|
47
78
|
"peerDependencies": {
|
|
48
|
-
"@astrale-os/sdk": ">=0.
|
|
79
|
+
"@astrale-os/sdk": ">=0.6.0-beta.50 <1.0.0"
|
|
80
|
+
},
|
|
81
|
+
"devEngines": {
|
|
82
|
+
"runtime": {
|
|
83
|
+
"name": "node",
|
|
84
|
+
"version": ">=24.0.0",
|
|
85
|
+
"onFail": "error"
|
|
86
|
+
}
|
|
49
87
|
},
|
|
50
88
|
"engines": {
|
|
51
89
|
"node": ">=24"
|
|
52
90
|
},
|
|
53
91
|
"scripts": {
|
|
54
92
|
"prebuild": "pnpm clean",
|
|
55
|
-
"build": "tsc --paths null &&
|
|
93
|
+
"build": "tsc --project tsconfig.package.json --paths null && bun ../scripts/package/normalize-domain-declarations.mjs && node ../scripts/package/verify-domain-platform.mjs",
|
|
56
94
|
"clean": "rm -rf dist",
|
|
57
|
-
"
|
|
95
|
+
"lint": "astrale-domain lint",
|
|
96
|
+
"lint:fix": "astrale-domain lint --fix",
|
|
97
|
+
"typecheck": "tsc --noEmit --paths null && tsc --noEmit -p tsconfig.test.json",
|
|
58
98
|
"test": "NODE_PATH=$PWD/node_modules vitest run --config vitest.config.ts",
|
|
59
99
|
"test:file": "NODE_PATH=$PWD/node_modules vitest run --config vitest.config.ts"
|
|
60
100
|
}
|
package/dist/actions/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './user/index.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { resolveHomeAction } from './resolve-home.js';
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineAction } from '@astrale-os/sdk/action';
|
|
2
|
-
import { InvocationError } from '@astrale-os/sdk/execution';
|
|
3
|
-
import { Path } from '@astrale-os/sdk/graph/path';
|
|
4
|
-
import { observeHome } from '#queries/user';
|
|
5
|
-
export const resolveHomeAction = defineAction()('User.resolveHome', async ({ domain, query, self }) => {
|
|
6
|
-
const observed = await query(observeHome, Path.id(self).raw);
|
|
7
|
-
if (observed.spaces.length > 1) {
|
|
8
|
-
throw new InvocationError('CONFLICT', 'The Shell User has more than one default Space.', {
|
|
9
|
-
reason: { code: 'MULTIPLE_DEFAULT_SPACES', details: {} },
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
const home = observed.spaces[0];
|
|
13
|
-
if (home !== undefined && home.class !== domain.classes.Space.key) {
|
|
14
|
-
throw new InvocationError('CONFLICT', 'The Shell User default target is not a Shell Space.', {
|
|
15
|
-
reason: { code: 'DEFAULT_SPACE_CLASS_CONFLICT', details: {} },
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return Object.freeze({ userId: self, personalSpaceId: home?.id ?? null });
|
|
19
|
-
});
|