@astrale-domains/shell 0.1.0-beta.26 → 0.1.0-beta.28
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/CHANGELOG.md +18 -0
- package/README.md +29 -7
- package/dist/application.d.ts +11 -2240
- package/dist/application.js +2 -2
- package/dist/functions/group/assign-member-to-group.d.ts +102 -0
- package/dist/functions/group/{unassign-user-from-group.js → assign-member-to-group.js} +2 -2
- package/dist/functions/group/{change-user-group-membership.d.ts → change-group-membership.d.ts} +1 -1
- package/dist/functions/group/{change-user-group-membership.js → change-group-membership.js} +1 -1
- package/dist/functions/group/group-membership-errors.d.ts +1 -1
- package/dist/functions/group/group-membership-errors.js +1 -1
- package/dist/functions/group/index.d.ts +2 -2
- package/dist/functions/group/index.js +2 -2
- package/dist/functions/group/unassign-member-from-group.d.ts +102 -0
- package/dist/functions/group/unassign-member-from-group.js +4 -0
- package/dist/functions/user/invite-user.d.ts +11 -2240
- package/dist/mutations/group/index.d.ts +1 -1
- package/dist/mutations/group/index.js +1 -1
- package/dist/mutations/group/set-group-membership.d.ts +101 -0
- package/dist/mutations/group/{set-user-group-membership.js → set-group-membership.js} +1 -1
- package/dist/queries/group/index.d.ts +1 -1
- package/dist/queries/group/index.js +1 -1
- package/dist/queries/group/read-group-membership-endpoints.d.ts +12 -2241
- package/dist/queries/group/read-group-membership-endpoints.js +2 -2
- package/dist/queries/group/read-group-membership.d.ts +90 -0
- package/dist/queries/group/{read-user-group-membership.js → read-group-membership.js} +2 -2
- package/dist/runtime.d.ts +35 -6722
- package/dist/runtime.js +2 -2
- package/dist/schema/modules/group/classes/group.d.ts +5 -1237
- package/dist/schema/modules/group/classes/group.js +2 -2
- package/dist/schema/modules/group/classes/member-of-group.d.ts +1 -1
- package/dist/schema/modules/group/classes/member-of-group.js +5 -1
- package/dist/schema/modules/group/functions/{unassign-user-from-group.d.ts → assign-member-to-group.d.ts} +2 -2
- package/dist/schema/modules/group/functions/{assign-user-to-group.js → assign-member-to-group.js} +1 -1
- package/dist/schema/modules/group/functions/index.d.ts +2 -2
- package/dist/schema/modules/group/functions/index.js +2 -2
- package/dist/schema/modules/group/functions/unassign-member-from-group.d.ts +7 -0
- package/dist/schema/modules/group/functions/{unassign-user-from-group.js → unassign-member-from-group.js} +1 -1
- package/dist/schema/modules/group/types/{group-user-reference.d.ts → group-membership-input.d.ts} +1 -1
- package/dist/schema/modules/group/types/{group-user-reference.js → group-membership-input.js} +1 -1
- package/dist/schema/modules/group/types/index.d.ts +1 -1
- package/dist/schema/modules/group/types/index.js +1 -1
- package/dist/schema/modules/user/classes/user.d.ts +1 -997
- package/dist/schema/schema.d.ts +43 -8957
- package/package.json +3 -3
- package/dist/functions/group/assign-user-to-group.d.ts +0 -2331
- package/dist/functions/group/assign-user-to-group.js +0 -4
- package/dist/functions/group/unassign-user-from-group.d.ts +0 -2331
- package/dist/mutations/group/set-user-group-membership.d.ts +0 -2330
- package/dist/queries/group/read-user-group-membership.d.ts +0 -2319
- package/dist/schema/modules/group/functions/assign-user-to-group.d.ts +0 -7
package/dist/application.js
CHANGED
|
@@ -25,8 +25,8 @@ const applicationRequirements = requirements({
|
|
|
25
25
|
functions: [
|
|
26
26
|
...KernelRootFunctions,
|
|
27
27
|
S.classes.User.static.methods.invite,
|
|
28
|
-
S.classes.Group.static.methods.
|
|
29
|
-
S.classes.Group.static.methods.
|
|
28
|
+
S.classes.Group.static.methods.assignMember,
|
|
29
|
+
S.classes.Group.static.methods.unassignMember,
|
|
30
30
|
],
|
|
31
31
|
classes: [
|
|
32
32
|
{ class: S.classes.User, operations: ['create', 'read', 'traverse', 'update', 'delete'] },
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export declare const assignMember: import("@astrale-os/sdk/workflow").WorkflowDefinition<import("@astrale-os/sdk/schema").AuthoredSchema<"shell.astrale.ai", readonly ["kernel.astrale.ai", import("@astrale-os/sdk/schema").KernelSchema] | readonly ["shell.astrale.ai", {
|
|
2
|
+
readonly classes: {
|
|
3
|
+
readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
|
|
4
|
+
readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
|
|
5
|
+
readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">];
|
|
6
|
+
readonly properties: {
|
|
7
|
+
readonly creationKey: import("zod").ZodOptional<import("zod").ZodString>;
|
|
8
|
+
};
|
|
9
|
+
readonly methods: {
|
|
10
|
+
readonly invite: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
11
|
+
user: string;
|
|
12
|
+
email: string;
|
|
13
|
+
}, {
|
|
14
|
+
readonly mode: 'value';
|
|
15
|
+
readonly value: {
|
|
16
|
+
invitationId: string;
|
|
17
|
+
user: string;
|
|
18
|
+
state: "accepted" | "cancelled" | "completed" | "expired" | "failed" | "pending" | "registered" | "registering";
|
|
19
|
+
};
|
|
20
|
+
}, "authorized", true, false>>;
|
|
21
|
+
};
|
|
22
|
+
}>;
|
|
23
|
+
readonly Group: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
|
|
24
|
+
readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
|
|
25
|
+
readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
|
|
26
|
+
readonly methods: {
|
|
27
|
+
readonly assignMember: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
28
|
+
member: string;
|
|
29
|
+
group: string;
|
|
30
|
+
}, {
|
|
31
|
+
readonly mode: 'value';
|
|
32
|
+
readonly value: Record<string, never>;
|
|
33
|
+
}, "authorized", true, false>>;
|
|
34
|
+
readonly unassignMember: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
35
|
+
member: string;
|
|
36
|
+
group: string;
|
|
37
|
+
}, {
|
|
38
|
+
readonly mode: 'value';
|
|
39
|
+
readonly value: Record<string, never>;
|
|
40
|
+
}, "authorized", true, false>>;
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
44
|
+
readonly depth: 0;
|
|
45
|
+
readonly abstract: false;
|
|
46
|
+
readonly extends: readonly [];
|
|
47
|
+
readonly properties: never;
|
|
48
|
+
readonly source: {
|
|
49
|
+
readonly as: "member";
|
|
50
|
+
readonly outgoing: "0..*";
|
|
51
|
+
};
|
|
52
|
+
readonly target: {
|
|
53
|
+
readonly as: "group";
|
|
54
|
+
readonly incoming: "0..*";
|
|
55
|
+
};
|
|
56
|
+
readonly constraints: Record<never, never>;
|
|
57
|
+
readonly effectiveProperties: never;
|
|
58
|
+
}>;
|
|
59
|
+
};
|
|
60
|
+
readonly policies: {
|
|
61
|
+
readonly belongsToGroup: import("@astrale-os/sdk/schema").Policy;
|
|
62
|
+
readonly ownsClass: import("@astrale-os/sdk/schema").Policy;
|
|
63
|
+
readonly administersShellClass: import("@astrale-os/sdk/schema").Policy;
|
|
64
|
+
};
|
|
65
|
+
readonly views: {
|
|
66
|
+
readonly application: import("@astrale-os/sdk/schema").View;
|
|
67
|
+
};
|
|
68
|
+
readonly core: {
|
|
69
|
+
readonly nodes: {
|
|
70
|
+
readonly admin: import("@astrale-os/sdk/schema").CoreNode;
|
|
71
|
+
readonly member: import("@astrale-os/sdk/schema").CoreNode;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
}, {
|
|
75
|
+
readonly kernel: "kernel.astrale.ai";
|
|
76
|
+
}]>, "Group.assignMember", Readonly<Record<never, never>>, {
|
|
77
|
+
readonly GROUP_MEMBERSHIP_ENDPOINTS_UNAVAILABLE: {
|
|
78
|
+
readonly family: 'CONFLICT';
|
|
79
|
+
readonly message: 'Shell must be able to traverse both membership endpoints before confirming membership.';
|
|
80
|
+
readonly details: import("zod").ZodObject<{}, import("zod/v4/core").$strict>;
|
|
81
|
+
};
|
|
82
|
+
readonly INVALID_GROUP_MEMBERSHIP_REFERENCE: {
|
|
83
|
+
readonly family: 'VALIDATION_ERROR';
|
|
84
|
+
readonly message: 'Member and group must be exact canonical @NodeId paths.';
|
|
85
|
+
readonly details: import("zod").ZodObject<{}, import("zod/v4/core").$strict>;
|
|
86
|
+
};
|
|
87
|
+
readonly GROUP_MEMBERSHIP_CONFLICT: {
|
|
88
|
+
readonly family: 'CONFLICT';
|
|
89
|
+
readonly message: 'Membership changed concurrently; retry the operation.';
|
|
90
|
+
readonly details: import("zod").ZodObject<{
|
|
91
|
+
cause: import("zod").ZodString;
|
|
92
|
+
}, import("zod/v4/core").$strict>;
|
|
93
|
+
};
|
|
94
|
+
readonly GROUP_MEMBERSHIP_UNCONFIRMED: {
|
|
95
|
+
readonly family: 'CONFLICT';
|
|
96
|
+
readonly message: 'The requested membership could not be confirmed; retry the operation.';
|
|
97
|
+
readonly details: import("zod").ZodObject<{
|
|
98
|
+
cause: import("zod").ZodString;
|
|
99
|
+
outcomeKnown: import("zod").ZodLiteral<false>;
|
|
100
|
+
}, import("zod/v4/core").$strict>;
|
|
101
|
+
};
|
|
102
|
+
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { defineWorkflow } from '@astrale-os/sdk/workflow';
|
|
2
|
-
import { changeGroupMembership } from './change-
|
|
2
|
+
import { changeGroupMembership } from './change-group-membership.js';
|
|
3
3
|
import { groupMembershipErrors } from './group-membership-errors.js';
|
|
4
|
-
export const
|
|
4
|
+
export const assignMember = defineWorkflow()('Group.assignMember', { errors: groupMembershipErrors }, (context) => changeGroupMembership(context, true));
|
package/dist/functions/group/{change-user-group-membership.d.ts → change-group-membership.d.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { WorkflowContext } from '@astrale-os/sdk/workflow';
|
|
2
2
|
import type { S, Shell } from '../../schema/index.js';
|
|
3
3
|
import type { groupMembershipErrors } from './group-membership-errors.js';
|
|
4
|
-
type GroupCallable = typeof S.classes.Group.static.methods.
|
|
4
|
+
type GroupCallable = typeof S.classes.Group.static.methods.assignMember | typeof S.classes.Group.static.methods.unassignMember;
|
|
5
5
|
type Context = WorkflowContext<GroupCallable, Shell, Readonly<Record<never, never>>, typeof groupMembershipErrors>;
|
|
6
6
|
export declare function changeGroupMembership(context: Context, present: boolean): Promise<{}>;
|
|
7
7
|
export {};
|
|
@@ -5,7 +5,7 @@ const matches = (state, present) => state.membership === present && state.author
|
|
|
5
5
|
export async function changeGroupMembership(context, present) {
|
|
6
6
|
const invalid = () => context.error('INVALID_GROUP_MEMBERSHIP_REFERENCE', {});
|
|
7
7
|
const membership = {
|
|
8
|
-
|
|
8
|
+
member: canonicalNodeId(context.input.member, invalid),
|
|
9
9
|
group: canonicalNodeId(context.input.group, invalid),
|
|
10
10
|
};
|
|
11
11
|
const observe = async () => {
|
|
@@ -7,7 +7,7 @@ export declare const groupMembershipErrors: {
|
|
|
7
7
|
};
|
|
8
8
|
readonly INVALID_GROUP_MEMBERSHIP_REFERENCE: {
|
|
9
9
|
readonly family: 'VALIDATION_ERROR';
|
|
10
|
-
readonly message: '
|
|
10
|
+
readonly message: 'Member and group must be exact canonical @NodeId paths.';
|
|
11
11
|
readonly details: z.ZodObject<{}, z.core.$strict>;
|
|
12
12
|
};
|
|
13
13
|
readonly GROUP_MEMBERSHIP_CONFLICT: {
|
|
@@ -7,7 +7,7 @@ export const groupMembershipErrors = {
|
|
|
7
7
|
},
|
|
8
8
|
INVALID_GROUP_MEMBERSHIP_REFERENCE: {
|
|
9
9
|
family: 'VALIDATION_ERROR',
|
|
10
|
-
message: '
|
|
10
|
+
message: 'Member and group must be exact canonical @NodeId paths.',
|
|
11
11
|
details: z.strictObject({}),
|
|
12
12
|
},
|
|
13
13
|
GROUP_MEMBERSHIP_CONFLICT: {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { assignMember } from './assign-member-to-group.js';
|
|
2
|
+
export { unassignMember } from './unassign-member-from-group.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { assignMember } from './assign-member-to-group.js';
|
|
2
|
+
export { unassignMember } from './unassign-member-from-group.js';
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export declare const unassignMember: import("@astrale-os/sdk/workflow").WorkflowDefinition<import("@astrale-os/sdk/schema").AuthoredSchema<"shell.astrale.ai", readonly ["kernel.astrale.ai", import("@astrale-os/sdk/schema").KernelSchema] | readonly ["shell.astrale.ai", {
|
|
2
|
+
readonly classes: {
|
|
3
|
+
readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
|
|
4
|
+
readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
|
|
5
|
+
readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">];
|
|
6
|
+
readonly properties: {
|
|
7
|
+
readonly creationKey: import("zod").ZodOptional<import("zod").ZodString>;
|
|
8
|
+
};
|
|
9
|
+
readonly methods: {
|
|
10
|
+
readonly invite: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
11
|
+
user: string;
|
|
12
|
+
email: string;
|
|
13
|
+
}, {
|
|
14
|
+
readonly mode: 'value';
|
|
15
|
+
readonly value: {
|
|
16
|
+
invitationId: string;
|
|
17
|
+
user: string;
|
|
18
|
+
state: "accepted" | "cancelled" | "completed" | "expired" | "failed" | "pending" | "registered" | "registering";
|
|
19
|
+
};
|
|
20
|
+
}, "authorized", true, false>>;
|
|
21
|
+
};
|
|
22
|
+
}>;
|
|
23
|
+
readonly Group: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
|
|
24
|
+
readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
|
|
25
|
+
readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
|
|
26
|
+
readonly methods: {
|
|
27
|
+
readonly assignMember: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
28
|
+
member: string;
|
|
29
|
+
group: string;
|
|
30
|
+
}, {
|
|
31
|
+
readonly mode: 'value';
|
|
32
|
+
readonly value: Record<string, never>;
|
|
33
|
+
}, "authorized", true, false>>;
|
|
34
|
+
readonly unassignMember: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
35
|
+
member: string;
|
|
36
|
+
group: string;
|
|
37
|
+
}, {
|
|
38
|
+
readonly mode: 'value';
|
|
39
|
+
readonly value: Record<string, never>;
|
|
40
|
+
}, "authorized", true, false>>;
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
44
|
+
readonly depth: 0;
|
|
45
|
+
readonly abstract: false;
|
|
46
|
+
readonly extends: readonly [];
|
|
47
|
+
readonly properties: never;
|
|
48
|
+
readonly source: {
|
|
49
|
+
readonly as: "member";
|
|
50
|
+
readonly outgoing: "0..*";
|
|
51
|
+
};
|
|
52
|
+
readonly target: {
|
|
53
|
+
readonly as: "group";
|
|
54
|
+
readonly incoming: "0..*";
|
|
55
|
+
};
|
|
56
|
+
readonly constraints: Record<never, never>;
|
|
57
|
+
readonly effectiveProperties: never;
|
|
58
|
+
}>;
|
|
59
|
+
};
|
|
60
|
+
readonly policies: {
|
|
61
|
+
readonly belongsToGroup: import("@astrale-os/sdk/schema").Policy;
|
|
62
|
+
readonly ownsClass: import("@astrale-os/sdk/schema").Policy;
|
|
63
|
+
readonly administersShellClass: import("@astrale-os/sdk/schema").Policy;
|
|
64
|
+
};
|
|
65
|
+
readonly views: {
|
|
66
|
+
readonly application: import("@astrale-os/sdk/schema").View;
|
|
67
|
+
};
|
|
68
|
+
readonly core: {
|
|
69
|
+
readonly nodes: {
|
|
70
|
+
readonly admin: import("@astrale-os/sdk/schema").CoreNode;
|
|
71
|
+
readonly member: import("@astrale-os/sdk/schema").CoreNode;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
}, {
|
|
75
|
+
readonly kernel: "kernel.astrale.ai";
|
|
76
|
+
}]>, "Group.unassignMember", Readonly<Record<never, never>>, {
|
|
77
|
+
readonly GROUP_MEMBERSHIP_ENDPOINTS_UNAVAILABLE: {
|
|
78
|
+
readonly family: 'CONFLICT';
|
|
79
|
+
readonly message: 'Shell must be able to traverse both membership endpoints before confirming membership.';
|
|
80
|
+
readonly details: import("zod").ZodObject<{}, import("zod/v4/core").$strict>;
|
|
81
|
+
};
|
|
82
|
+
readonly INVALID_GROUP_MEMBERSHIP_REFERENCE: {
|
|
83
|
+
readonly family: 'VALIDATION_ERROR';
|
|
84
|
+
readonly message: 'Member and group must be exact canonical @NodeId paths.';
|
|
85
|
+
readonly details: import("zod").ZodObject<{}, import("zod/v4/core").$strict>;
|
|
86
|
+
};
|
|
87
|
+
readonly GROUP_MEMBERSHIP_CONFLICT: {
|
|
88
|
+
readonly family: 'CONFLICT';
|
|
89
|
+
readonly message: 'Membership changed concurrently; retry the operation.';
|
|
90
|
+
readonly details: import("zod").ZodObject<{
|
|
91
|
+
cause: import("zod").ZodString;
|
|
92
|
+
}, import("zod/v4/core").$strict>;
|
|
93
|
+
};
|
|
94
|
+
readonly GROUP_MEMBERSHIP_UNCONFIRMED: {
|
|
95
|
+
readonly family: 'CONFLICT';
|
|
96
|
+
readonly message: 'The requested membership could not be confirmed; retry the operation.';
|
|
97
|
+
readonly details: import("zod").ZodObject<{
|
|
98
|
+
cause: import("zod").ZodString;
|
|
99
|
+
outcomeKnown: import("zod").ZodLiteral<false>;
|
|
100
|
+
}, import("zod/v4/core").$strict>;
|
|
101
|
+
};
|
|
102
|
+
}>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { defineWorkflow } from '@astrale-os/sdk/workflow';
|
|
2
|
+
import { changeGroupMembership } from './change-group-membership.js';
|
|
3
|
+
import { groupMembershipErrors } from './group-membership-errors.js';
|
|
4
|
+
export const unassignMember = defineWorkflow()('Group.unassignMember', { errors: groupMembershipErrors }, (context) => changeGroupMembership(context, false));
|