@astrale-domains/shell 0.1.7 → 0.1.9
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/dist/domain.d.ts +54 -25
- package/dist/domain.js +21 -1
- package/dist/functions/authority/roles.js +58 -35
- package/dist/functions/group/assign-member.js +6 -3
- package/dist/functions/group/change-group-membership.js +92 -39
- package/dist/functions/group/group-membership-errors.js +1 -1
- package/dist/functions/group/index.js +2 -2
- package/dist/functions/group/legacy/index.js +1 -1
- package/dist/functions/group/legacy/membership.js +21 -17
- package/dist/functions/group/membership-laws.js +23 -28
- package/dist/functions/group/unassign-member.js +6 -3
- package/dist/functions/invitation/send-invitation.js +57 -7
- package/dist/functions/view-access/index.js +2 -2
- package/dist/functions/view-access/legacy/index.js +1 -0
- package/dist/functions/view-access/legacy/migrate-view-access.js +29 -0
- package/dist/mutations/group/index.js +1 -1
- package/dist/mutations/group/set-group-membership.js +45 -13
- package/dist/mutations/invitation/write-invitation.js +19 -2
- package/dist/mutations/view-access/legacy/index.js +1 -0
- package/dist/mutations/view-access/legacy/move-view-access.js +26 -0
- package/dist/mutations/view-access/set-view-access.js +1 -1
- package/dist/queries/composition/index.js +1 -1
- package/dist/queries/composition/read-role-nodes.js +48 -13
- package/dist/queries/group/index.js +1 -0
- package/dist/queries/group/legacy/index.js +1 -0
- package/dist/queries/group/legacy/read-members-of-group.js +27 -0
- package/dist/queries/group/read-group-members.js +73 -0
- package/dist/queries/invitation/index.js +1 -1
- package/dist/queries/invitation/read-invitation.js +33 -8
- package/dist/queries/role/index.js +1 -1
- package/dist/queries/role/read-role-node.js +8 -0
- package/dist/queries/view-access/legacy/index.js +1 -0
- package/dist/queries/view-access/legacy/read-view-access-to-move.js +40 -0
- package/dist/queries/view-access/read-view-access.js +1 -1
- package/dist/runtime.d.ts +3930 -924
- package/dist/runtime.js +6 -3
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.js +2 -1
- package/dist/schema/legacy/schema.js +5 -3
- package/dist/schema/modules/application/legacy/functions/list-entrypoints.js +5 -4
- package/dist/schema/modules/group/classes/group-profile-link.d.ts +1 -1
- package/dist/schema/modules/group/classes/group.d.ts +14 -0
- package/dist/schema/modules/group/classes/group.js +12 -2
- package/dist/schema/modules/group/functions/assign-members.js +17 -0
- package/dist/schema/modules/group/functions/index.js +2 -0
- package/dist/schema/modules/group/functions/unassign-members.js +17 -0
- package/dist/schema/modules/group/types/group-membership-input.js +8 -0
- package/dist/schema/modules/group/types/index.js +1 -1
- package/dist/schema/modules/invitation/classes/invitation.js +4 -2
- package/dist/schema/modules/role/core/roles.d.ts +2 -0
- package/dist/schema/modules/role/core/roles.js +1 -0
- package/dist/schema/modules/view-access/index.d.ts +1 -2
- package/dist/schema/modules/view-access/index.js +2 -2
- package/dist/schema/modules/view-access/legacy/classes/index.d.ts +1 -0
- package/dist/schema/modules/view-access/legacy/classes/index.js +1 -0
- package/dist/schema/modules/view-access/{classes → legacy/classes}/view-access.d.ts +7 -5
- package/dist/schema/modules/view-access/legacy/classes/view-access.js +25 -0
- package/dist/schema/modules/view-access/legacy/functions/assign-views.d.ts +18 -0
- package/dist/schema/modules/view-access/legacy/functions/index.d.ts +2 -0
- package/dist/schema/modules/view-access/legacy/functions/index.js +1 -0
- package/dist/schema/modules/view-access/legacy/functions/migrate-view-access.d.ts +13 -0
- package/dist/schema/modules/view-access/legacy/functions/migrate-view-access.js +22 -0
- package/dist/schema/modules/view-access/legacy/index.d.ts +4 -0
- package/dist/schema/modules/view-access/legacy/index.js +3 -1
- package/dist/schema/modules/view-access/legacy/policies/holds-view-access.d.ts +5 -0
- package/dist/schema/modules/view-access/legacy/policies/holds-view-access.js +8 -0
- package/dist/schema/modules/view-access/legacy/policies/index.d.ts +1 -0
- package/dist/schema/modules/view-access/legacy/policies/index.js +1 -0
- package/dist/schema/modules/view-access/legacy/view-assignment.d.ts +21 -0
- package/dist/schema/schema.d.ts +207 -99
- package/dist/schema/schema.js +1 -4
- package/package.json +2 -2
- package/dist/schema/modules/view-access/classes/index.d.ts +0 -1
- package/dist/schema/modules/view-access/classes/index.js +0 -1
- package/dist/schema/modules/view-access/classes/view-access.js +0 -23
- package/dist/schema/modules/view-access/policies/holds-view-access.d.ts +0 -2
- package/dist/schema/modules/view-access/policies/holds-view-access.js +0 -5
- package/dist/schema/modules/view-access/policies/index.d.ts +0 -1
- package/dist/schema/modules/view-access/policies/index.js +0 -1
package/dist/schema/schema.d.ts
CHANGED
|
@@ -31,6 +31,28 @@ declare const classes: {
|
|
|
31
31
|
readonly constraints: Record<never, never>;
|
|
32
32
|
readonly effectiveProperties: never;
|
|
33
33
|
}>;
|
|
34
|
+
readonly view_access: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
35
|
+
readonly depth: 0;
|
|
36
|
+
readonly abstract: false;
|
|
37
|
+
readonly extends: readonly [];
|
|
38
|
+
readonly properties: never;
|
|
39
|
+
readonly source: {
|
|
40
|
+
readonly as: "audience";
|
|
41
|
+
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
|
|
42
|
+
readonly origin: "kernel.astrale.ai";
|
|
43
|
+
})[];
|
|
44
|
+
readonly outgoing: "0..*";
|
|
45
|
+
};
|
|
46
|
+
readonly target: {
|
|
47
|
+
readonly as: "view";
|
|
48
|
+
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"View"> & {
|
|
49
|
+
readonly origin: "kernel.astrale.ai";
|
|
50
|
+
})[];
|
|
51
|
+
readonly incoming: "0..*";
|
|
52
|
+
};
|
|
53
|
+
readonly constraints: Record<never, never>;
|
|
54
|
+
readonly effectiveProperties: never;
|
|
55
|
+
}>;
|
|
34
56
|
readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
|
|
35
57
|
readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
|
|
36
58
|
readonly inheritance: "open";
|
|
@@ -322,6 +344,20 @@ declare const classes: {
|
|
|
322
344
|
readonly mode: 'value';
|
|
323
345
|
readonly value: Record<string, never>;
|
|
324
346
|
}, "authorized", true, false, undefined, undefined>>;
|
|
347
|
+
readonly assignMembers: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
348
|
+
members: string[];
|
|
349
|
+
group: string;
|
|
350
|
+
}, {
|
|
351
|
+
readonly mode: 'value';
|
|
352
|
+
readonly value: Record<string, never>;
|
|
353
|
+
}, "authorized", true, false, undefined, undefined>>;
|
|
354
|
+
readonly unassignMembers: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
355
|
+
members: string[];
|
|
356
|
+
group: string;
|
|
357
|
+
}, {
|
|
358
|
+
readonly mode: 'value';
|
|
359
|
+
readonly value: Record<string, never>;
|
|
360
|
+
}, "authorized", true, false, undefined, undefined>>;
|
|
325
361
|
readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
326
362
|
directory: string;
|
|
327
363
|
externalId: string;
|
|
@@ -365,7 +401,7 @@ declare const classes: {
|
|
|
365
401
|
readonly abstract: false;
|
|
366
402
|
readonly depth: 1;
|
|
367
403
|
readonly properties: "attributes" | "description" | "directory" | "externalId" | "frozen" | "icon" | "iss" | "name" | "sub";
|
|
368
|
-
readonly methods: "assignMember" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "update";
|
|
404
|
+
readonly methods: "assignMember" | "assignMembers" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "unassignMembers" | "update";
|
|
369
405
|
}[];
|
|
370
406
|
readonly outgoing: "0..1";
|
|
371
407
|
};
|
|
@@ -423,6 +459,13 @@ declare const classes: {
|
|
|
423
459
|
readonly description?: string;
|
|
424
460
|
readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
|
|
425
461
|
}>;
|
|
462
|
+
email: import("@astrale-os/sdk/schema").AuthoredProperty<{
|
|
463
|
+
readonly type: "string";
|
|
464
|
+
readonly minLength: 3;
|
|
465
|
+
readonly maxLength: 320;
|
|
466
|
+
}, {
|
|
467
|
+
readonly required: false;
|
|
468
|
+
}>;
|
|
426
469
|
};
|
|
427
470
|
readonly policies: {
|
|
428
471
|
readonly read: ({ check, ref }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
|
|
@@ -467,7 +510,7 @@ declare const classes: {
|
|
|
467
510
|
readonly kind: 'node';
|
|
468
511
|
readonly abstract: false;
|
|
469
512
|
readonly depth: 0;
|
|
470
|
-
readonly properties: "execution" | "expiresAt" | "round" | "status";
|
|
513
|
+
readonly properties: "email" | "execution" | "expiresAt" | "round" | "status";
|
|
471
514
|
readonly methods: "accept" | "cancel" | "resend" | "send";
|
|
472
515
|
}[];
|
|
473
516
|
readonly outgoing: "0..1";
|
|
@@ -553,28 +596,6 @@ declare const classes: {
|
|
|
553
596
|
readonly constraints: Record<never, never>;
|
|
554
597
|
readonly effectiveProperties: never;
|
|
555
598
|
}>;
|
|
556
|
-
readonly view_access: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
557
|
-
readonly depth: 0;
|
|
558
|
-
readonly abstract: false;
|
|
559
|
-
readonly extends: readonly [];
|
|
560
|
-
readonly properties: never;
|
|
561
|
-
readonly source: {
|
|
562
|
-
readonly as: "audience";
|
|
563
|
-
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
|
|
564
|
-
readonly origin: "kernel.astrale.ai";
|
|
565
|
-
})[];
|
|
566
|
-
readonly outgoing: "0..*";
|
|
567
|
-
};
|
|
568
|
-
readonly target: {
|
|
569
|
-
readonly as: "view";
|
|
570
|
-
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"View"> & {
|
|
571
|
-
readonly origin: "kernel.astrale.ai";
|
|
572
|
-
})[];
|
|
573
|
-
readonly incoming: "0..*";
|
|
574
|
-
};
|
|
575
|
-
readonly constraints: Record<never, never>;
|
|
576
|
-
readonly effectiveProperties: never;
|
|
577
|
-
}>;
|
|
578
599
|
};
|
|
579
600
|
export type ShellClasses = typeof classes;
|
|
580
601
|
declare const input: {
|
|
@@ -614,6 +635,28 @@ declare const input: {
|
|
|
614
635
|
readonly constraints: Record<never, never>;
|
|
615
636
|
readonly effectiveProperties: never;
|
|
616
637
|
}>;
|
|
638
|
+
readonly view_access: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
639
|
+
readonly depth: 0;
|
|
640
|
+
readonly abstract: false;
|
|
641
|
+
readonly extends: readonly [];
|
|
642
|
+
readonly properties: never;
|
|
643
|
+
readonly source: {
|
|
644
|
+
readonly as: "audience";
|
|
645
|
+
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
|
|
646
|
+
readonly origin: "kernel.astrale.ai";
|
|
647
|
+
})[];
|
|
648
|
+
readonly outgoing: "0..*";
|
|
649
|
+
};
|
|
650
|
+
readonly target: {
|
|
651
|
+
readonly as: "view";
|
|
652
|
+
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"View"> & {
|
|
653
|
+
readonly origin: "kernel.astrale.ai";
|
|
654
|
+
})[];
|
|
655
|
+
readonly incoming: "0..*";
|
|
656
|
+
};
|
|
657
|
+
readonly constraints: Record<never, never>;
|
|
658
|
+
readonly effectiveProperties: never;
|
|
659
|
+
}>;
|
|
617
660
|
readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
|
|
618
661
|
readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
|
|
619
662
|
readonly inheritance: "open";
|
|
@@ -905,6 +948,20 @@ declare const input: {
|
|
|
905
948
|
readonly mode: 'value';
|
|
906
949
|
readonly value: Record<string, never>;
|
|
907
950
|
}, "authorized", true, false, undefined, undefined>>;
|
|
951
|
+
readonly assignMembers: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
952
|
+
members: string[];
|
|
953
|
+
group: string;
|
|
954
|
+
}, {
|
|
955
|
+
readonly mode: 'value';
|
|
956
|
+
readonly value: Record<string, never>;
|
|
957
|
+
}, "authorized", true, false, undefined, undefined>>;
|
|
958
|
+
readonly unassignMembers: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
959
|
+
members: string[];
|
|
960
|
+
group: string;
|
|
961
|
+
}, {
|
|
962
|
+
readonly mode: 'value';
|
|
963
|
+
readonly value: Record<string, never>;
|
|
964
|
+
}, "authorized", true, false, undefined, undefined>>;
|
|
908
965
|
readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
909
966
|
directory: string;
|
|
910
967
|
externalId: string;
|
|
@@ -948,7 +1005,7 @@ declare const input: {
|
|
|
948
1005
|
readonly abstract: false;
|
|
949
1006
|
readonly depth: 1;
|
|
950
1007
|
readonly properties: "attributes" | "description" | "directory" | "externalId" | "frozen" | "icon" | "iss" | "name" | "sub";
|
|
951
|
-
readonly methods: "assignMember" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "update";
|
|
1008
|
+
readonly methods: "assignMember" | "assignMembers" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "unassignMembers" | "update";
|
|
952
1009
|
}[];
|
|
953
1010
|
readonly outgoing: "0..1";
|
|
954
1011
|
};
|
|
@@ -1006,6 +1063,13 @@ declare const input: {
|
|
|
1006
1063
|
readonly description?: string;
|
|
1007
1064
|
readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
|
|
1008
1065
|
}>;
|
|
1066
|
+
email: import("@astrale-os/sdk/schema").AuthoredProperty<{
|
|
1067
|
+
readonly type: "string";
|
|
1068
|
+
readonly minLength: 3;
|
|
1069
|
+
readonly maxLength: 320;
|
|
1070
|
+
}, {
|
|
1071
|
+
readonly required: false;
|
|
1072
|
+
}>;
|
|
1009
1073
|
};
|
|
1010
1074
|
readonly policies: {
|
|
1011
1075
|
readonly read: ({ check, ref }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
|
|
@@ -1050,7 +1114,7 @@ declare const input: {
|
|
|
1050
1114
|
readonly kind: 'node';
|
|
1051
1115
|
readonly abstract: false;
|
|
1052
1116
|
readonly depth: 0;
|
|
1053
|
-
readonly properties: "execution" | "expiresAt" | "round" | "status";
|
|
1117
|
+
readonly properties: "email" | "execution" | "expiresAt" | "round" | "status";
|
|
1054
1118
|
readonly methods: "accept" | "cancel" | "resend" | "send";
|
|
1055
1119
|
}[];
|
|
1056
1120
|
readonly outgoing: "0..1";
|
|
@@ -1136,28 +1200,6 @@ declare const input: {
|
|
|
1136
1200
|
readonly constraints: Record<never, never>;
|
|
1137
1201
|
readonly effectiveProperties: never;
|
|
1138
1202
|
}>;
|
|
1139
|
-
readonly view_access: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
1140
|
-
readonly depth: 0;
|
|
1141
|
-
readonly abstract: false;
|
|
1142
|
-
readonly extends: readonly [];
|
|
1143
|
-
readonly properties: never;
|
|
1144
|
-
readonly source: {
|
|
1145
|
-
readonly as: "audience";
|
|
1146
|
-
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
|
|
1147
|
-
readonly origin: "kernel.astrale.ai";
|
|
1148
|
-
})[];
|
|
1149
|
-
readonly outgoing: "0..*";
|
|
1150
|
-
};
|
|
1151
|
-
readonly target: {
|
|
1152
|
-
readonly as: "view";
|
|
1153
|
-
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"View"> & {
|
|
1154
|
-
readonly origin: "kernel.astrale.ai";
|
|
1155
|
-
})[];
|
|
1156
|
-
readonly incoming: "0..*";
|
|
1157
|
-
};
|
|
1158
|
-
readonly constraints: Record<never, never>;
|
|
1159
|
-
readonly effectiveProperties: never;
|
|
1160
|
-
}>;
|
|
1161
1203
|
};
|
|
1162
1204
|
readonly functions: {
|
|
1163
1205
|
readonly listEntrypoints: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
@@ -1191,6 +1233,13 @@ declare const input: {
|
|
|
1191
1233
|
profiles: number;
|
|
1192
1234
|
};
|
|
1193
1235
|
}, "authorized", false, false, undefined, undefined>>;
|
|
1236
|
+
readonly legacyMigrateViewAccess: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
1237
|
+
readonly mode: 'value';
|
|
1238
|
+
readonly value: {
|
|
1239
|
+
copied: number;
|
|
1240
|
+
removed: number;
|
|
1241
|
+
};
|
|
1242
|
+
}, "authorized", false, false, undefined, undefined>>;
|
|
1194
1243
|
readonly disconnectDirectory: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
1195
1244
|
directory: string;
|
|
1196
1245
|
}, {
|
|
@@ -1208,8 +1257,8 @@ declare const input: {
|
|
|
1208
1257
|
readonly usesFunction: import("@astrale-os/sdk/schema").Policy;
|
|
1209
1258
|
readonly isSelf: import("@astrale-os/sdk/schema").Policy;
|
|
1210
1259
|
readonly legacyOwnsMembershipGroup: import("@astrale-os/sdk/schema").Policy;
|
|
1211
|
-
readonly hasRole: import("@astrale-os/sdk/schema").Policy;
|
|
1212
1260
|
readonly holdsViewAccess: import("@astrale-os/sdk/schema").Policy;
|
|
1261
|
+
readonly hasRole: import("@astrale-os/sdk/schema").Policy;
|
|
1213
1262
|
readonly describesSubject: import("@astrale-os/sdk/schema").Policy;
|
|
1214
1263
|
readonly isProfileSource: import("@astrale-os/sdk/schema").Policy;
|
|
1215
1264
|
readonly describesGroupOfSubject: import("@astrale-os/sdk/schema").Policy;
|
|
@@ -1230,6 +1279,7 @@ declare const input: {
|
|
|
1230
1279
|
readonly 'user-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
|
|
1231
1280
|
readonly 'user-profile.self-writer': import("@astrale-os/sdk/schema").CoreNode;
|
|
1232
1281
|
readonly 'group-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
|
|
1282
|
+
readonly 'os.viewer': import("@astrale-os/sdk/schema").CoreNode;
|
|
1233
1283
|
readonly admin: import("@astrale-os/sdk/schema").CoreNode;
|
|
1234
1284
|
readonly member: import("@astrale-os/sdk/schema").CoreNode;
|
|
1235
1285
|
readonly applications: import("@astrale-os/sdk/schema").CoreNode;
|
|
@@ -1273,6 +1323,28 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1273
1323
|
readonly constraints: Record<never, never>;
|
|
1274
1324
|
readonly effectiveProperties: never;
|
|
1275
1325
|
}>;
|
|
1326
|
+
readonly view_access: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
1327
|
+
readonly depth: 0;
|
|
1328
|
+
readonly abstract: false;
|
|
1329
|
+
readonly extends: readonly [];
|
|
1330
|
+
readonly properties: never;
|
|
1331
|
+
readonly source: {
|
|
1332
|
+
readonly as: "audience";
|
|
1333
|
+
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
|
|
1334
|
+
readonly origin: "kernel.astrale.ai";
|
|
1335
|
+
})[];
|
|
1336
|
+
readonly outgoing: "0..*";
|
|
1337
|
+
};
|
|
1338
|
+
readonly target: {
|
|
1339
|
+
readonly as: "view";
|
|
1340
|
+
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"View"> & {
|
|
1341
|
+
readonly origin: "kernel.astrale.ai";
|
|
1342
|
+
})[];
|
|
1343
|
+
readonly incoming: "0..*";
|
|
1344
|
+
};
|
|
1345
|
+
readonly constraints: Record<never, never>;
|
|
1346
|
+
readonly effectiveProperties: never;
|
|
1347
|
+
}>;
|
|
1276
1348
|
readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
|
|
1277
1349
|
readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
|
|
1278
1350
|
readonly inheritance: "open";
|
|
@@ -1564,6 +1636,20 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1564
1636
|
readonly mode: 'value';
|
|
1565
1637
|
readonly value: Record<string, never>;
|
|
1566
1638
|
}, "authorized", true, false, undefined, undefined>>;
|
|
1639
|
+
readonly assignMembers: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
1640
|
+
members: string[];
|
|
1641
|
+
group: string;
|
|
1642
|
+
}, {
|
|
1643
|
+
readonly mode: 'value';
|
|
1644
|
+
readonly value: Record<string, never>;
|
|
1645
|
+
}, "authorized", true, false, undefined, undefined>>;
|
|
1646
|
+
readonly unassignMembers: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
1647
|
+
members: string[];
|
|
1648
|
+
group: string;
|
|
1649
|
+
}, {
|
|
1650
|
+
readonly mode: 'value';
|
|
1651
|
+
readonly value: Record<string, never>;
|
|
1652
|
+
}, "authorized", true, false, undefined, undefined>>;
|
|
1567
1653
|
readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
1568
1654
|
directory: string;
|
|
1569
1655
|
externalId: string;
|
|
@@ -1607,7 +1693,7 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1607
1693
|
readonly abstract: false;
|
|
1608
1694
|
readonly depth: 1;
|
|
1609
1695
|
readonly properties: "attributes" | "description" | "directory" | "externalId" | "frozen" | "icon" | "iss" | "name" | "sub";
|
|
1610
|
-
readonly methods: "assignMember" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "update";
|
|
1696
|
+
readonly methods: "assignMember" | "assignMembers" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "unassignMembers" | "update";
|
|
1611
1697
|
}[];
|
|
1612
1698
|
readonly outgoing: "0..1";
|
|
1613
1699
|
};
|
|
@@ -1665,6 +1751,13 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1665
1751
|
readonly description?: string;
|
|
1666
1752
|
readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
|
|
1667
1753
|
}>;
|
|
1754
|
+
email: import("@astrale-os/sdk/schema").AuthoredProperty<{
|
|
1755
|
+
readonly type: "string";
|
|
1756
|
+
readonly minLength: 3;
|
|
1757
|
+
readonly maxLength: 320;
|
|
1758
|
+
}, {
|
|
1759
|
+
readonly required: false;
|
|
1760
|
+
}>;
|
|
1668
1761
|
};
|
|
1669
1762
|
readonly policies: {
|
|
1670
1763
|
readonly read: ({ check, ref }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
|
|
@@ -1709,7 +1802,7 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1709
1802
|
readonly kind: 'node';
|
|
1710
1803
|
readonly abstract: false;
|
|
1711
1804
|
readonly depth: 0;
|
|
1712
|
-
readonly properties: "execution" | "expiresAt" | "round" | "status";
|
|
1805
|
+
readonly properties: "email" | "execution" | "expiresAt" | "round" | "status";
|
|
1713
1806
|
readonly methods: "accept" | "cancel" | "resend" | "send";
|
|
1714
1807
|
}[];
|
|
1715
1808
|
readonly outgoing: "0..1";
|
|
@@ -1795,28 +1888,6 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1795
1888
|
readonly constraints: Record<never, never>;
|
|
1796
1889
|
readonly effectiveProperties: never;
|
|
1797
1890
|
}>;
|
|
1798
|
-
readonly view_access: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
1799
|
-
readonly depth: 0;
|
|
1800
|
-
readonly abstract: false;
|
|
1801
|
-
readonly extends: readonly [];
|
|
1802
|
-
readonly properties: never;
|
|
1803
|
-
readonly source: {
|
|
1804
|
-
readonly as: "audience";
|
|
1805
|
-
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
|
|
1806
|
-
readonly origin: "kernel.astrale.ai";
|
|
1807
|
-
})[];
|
|
1808
|
-
readonly outgoing: "0..*";
|
|
1809
|
-
};
|
|
1810
|
-
readonly target: {
|
|
1811
|
-
readonly as: "view";
|
|
1812
|
-
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"View"> & {
|
|
1813
|
-
readonly origin: "kernel.astrale.ai";
|
|
1814
|
-
})[];
|
|
1815
|
-
readonly incoming: "0..*";
|
|
1816
|
-
};
|
|
1817
|
-
readonly constraints: Record<never, never>;
|
|
1818
|
-
readonly effectiveProperties: never;
|
|
1819
|
-
}>;
|
|
1820
1891
|
};
|
|
1821
1892
|
readonly functions: {
|
|
1822
1893
|
readonly listEntrypoints: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
@@ -1850,6 +1921,13 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1850
1921
|
profiles: number;
|
|
1851
1922
|
};
|
|
1852
1923
|
}, "authorized", false, false, undefined, undefined>>;
|
|
1924
|
+
readonly legacyMigrateViewAccess: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
1925
|
+
readonly mode: 'value';
|
|
1926
|
+
readonly value: {
|
|
1927
|
+
copied: number;
|
|
1928
|
+
removed: number;
|
|
1929
|
+
};
|
|
1930
|
+
}, "authorized", false, false, undefined, undefined>>;
|
|
1853
1931
|
readonly disconnectDirectory: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
1854
1932
|
directory: string;
|
|
1855
1933
|
}, {
|
|
@@ -1867,8 +1945,8 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1867
1945
|
readonly usesFunction: import("@astrale-os/sdk/schema").Policy;
|
|
1868
1946
|
readonly isSelf: import("@astrale-os/sdk/schema").Policy;
|
|
1869
1947
|
readonly legacyOwnsMembershipGroup: import("@astrale-os/sdk/schema").Policy;
|
|
1870
|
-
readonly hasRole: import("@astrale-os/sdk/schema").Policy;
|
|
1871
1948
|
readonly holdsViewAccess: import("@astrale-os/sdk/schema").Policy;
|
|
1949
|
+
readonly hasRole: import("@astrale-os/sdk/schema").Policy;
|
|
1872
1950
|
readonly describesSubject: import("@astrale-os/sdk/schema").Policy;
|
|
1873
1951
|
readonly isProfileSource: import("@astrale-os/sdk/schema").Policy;
|
|
1874
1952
|
readonly describesGroupOfSubject: import("@astrale-os/sdk/schema").Policy;
|
|
@@ -1889,6 +1967,7 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
|
|
|
1889
1967
|
readonly 'user-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
|
|
1890
1968
|
readonly 'user-profile.self-writer': import("@astrale-os/sdk/schema").CoreNode;
|
|
1891
1969
|
readonly 'group-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
|
|
1970
|
+
readonly 'os.viewer': import("@astrale-os/sdk/schema").CoreNode;
|
|
1892
1971
|
readonly admin: import("@astrale-os/sdk/schema").CoreNode;
|
|
1893
1972
|
readonly member: import("@astrale-os/sdk/schema").CoreNode;
|
|
1894
1973
|
readonly applications: import("@astrale-os/sdk/schema").CoreNode;
|
|
@@ -1934,6 +2013,28 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
1934
2013
|
readonly constraints: Record<never, never>;
|
|
1935
2014
|
readonly effectiveProperties: never;
|
|
1936
2015
|
}>;
|
|
2016
|
+
readonly view_access: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
2017
|
+
readonly depth: 0;
|
|
2018
|
+
readonly abstract: false;
|
|
2019
|
+
readonly extends: readonly [];
|
|
2020
|
+
readonly properties: never;
|
|
2021
|
+
readonly source: {
|
|
2022
|
+
readonly as: "audience";
|
|
2023
|
+
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
|
|
2024
|
+
readonly origin: "kernel.astrale.ai";
|
|
2025
|
+
})[];
|
|
2026
|
+
readonly outgoing: "0..*";
|
|
2027
|
+
};
|
|
2028
|
+
readonly target: {
|
|
2029
|
+
readonly as: "view";
|
|
2030
|
+
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"View"> & {
|
|
2031
|
+
readonly origin: "kernel.astrale.ai";
|
|
2032
|
+
})[];
|
|
2033
|
+
readonly incoming: "0..*";
|
|
2034
|
+
};
|
|
2035
|
+
readonly constraints: Record<never, never>;
|
|
2036
|
+
readonly effectiveProperties: never;
|
|
2037
|
+
}>;
|
|
1937
2038
|
readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
|
|
1938
2039
|
readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
|
|
1939
2040
|
readonly inheritance: "open";
|
|
@@ -2225,6 +2326,20 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
2225
2326
|
readonly mode: 'value';
|
|
2226
2327
|
readonly value: Record<string, never>;
|
|
2227
2328
|
}, "authorized", true, false, undefined, undefined>>;
|
|
2329
|
+
readonly assignMembers: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
2330
|
+
members: string[];
|
|
2331
|
+
group: string;
|
|
2332
|
+
}, {
|
|
2333
|
+
readonly mode: 'value';
|
|
2334
|
+
readonly value: Record<string, never>;
|
|
2335
|
+
}, "authorized", true, false, undefined, undefined>>;
|
|
2336
|
+
readonly unassignMembers: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
2337
|
+
members: string[];
|
|
2338
|
+
group: string;
|
|
2339
|
+
}, {
|
|
2340
|
+
readonly mode: 'value';
|
|
2341
|
+
readonly value: Record<string, never>;
|
|
2342
|
+
}, "authorized", true, false, undefined, undefined>>;
|
|
2228
2343
|
readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
2229
2344
|
directory: string;
|
|
2230
2345
|
externalId: string;
|
|
@@ -2268,7 +2383,7 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
2268
2383
|
readonly abstract: false;
|
|
2269
2384
|
readonly depth: 1;
|
|
2270
2385
|
readonly properties: "attributes" | "description" | "directory" | "externalId" | "frozen" | "icon" | "iss" | "name" | "sub";
|
|
2271
|
-
readonly methods: "assignMember" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "update";
|
|
2386
|
+
readonly methods: "assignMember" | "assignMembers" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "unassignMembers" | "update";
|
|
2272
2387
|
}[];
|
|
2273
2388
|
readonly outgoing: "0..1";
|
|
2274
2389
|
};
|
|
@@ -2326,6 +2441,13 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
2326
2441
|
readonly description?: string;
|
|
2327
2442
|
readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
|
|
2328
2443
|
}>;
|
|
2444
|
+
email: import("@astrale-os/sdk/schema").AuthoredProperty<{
|
|
2445
|
+
readonly type: "string";
|
|
2446
|
+
readonly minLength: 3;
|
|
2447
|
+
readonly maxLength: 320;
|
|
2448
|
+
}, {
|
|
2449
|
+
readonly required: false;
|
|
2450
|
+
}>;
|
|
2329
2451
|
};
|
|
2330
2452
|
readonly policies: {
|
|
2331
2453
|
readonly read: ({ check, ref }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
|
|
@@ -2370,7 +2492,7 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
2370
2492
|
readonly kind: 'node';
|
|
2371
2493
|
readonly abstract: false;
|
|
2372
2494
|
readonly depth: 0;
|
|
2373
|
-
readonly properties: "execution" | "expiresAt" | "round" | "status";
|
|
2495
|
+
readonly properties: "email" | "execution" | "expiresAt" | "round" | "status";
|
|
2374
2496
|
readonly methods: "accept" | "cancel" | "resend" | "send";
|
|
2375
2497
|
}[];
|
|
2376
2498
|
readonly outgoing: "0..1";
|
|
@@ -2456,28 +2578,6 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
2456
2578
|
readonly constraints: Record<never, never>;
|
|
2457
2579
|
readonly effectiveProperties: never;
|
|
2458
2580
|
}>;
|
|
2459
|
-
readonly view_access: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
|
|
2460
|
-
readonly depth: 0;
|
|
2461
|
-
readonly abstract: false;
|
|
2462
|
-
readonly extends: readonly [];
|
|
2463
|
-
readonly properties: never;
|
|
2464
|
-
readonly source: {
|
|
2465
|
-
readonly as: "audience";
|
|
2466
|
-
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
|
|
2467
|
-
readonly origin: "kernel.astrale.ai";
|
|
2468
|
-
})[];
|
|
2469
|
-
readonly outgoing: "0..*";
|
|
2470
|
-
};
|
|
2471
|
-
readonly target: {
|
|
2472
|
-
readonly as: "view";
|
|
2473
|
-
readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"View"> & {
|
|
2474
|
-
readonly origin: "kernel.astrale.ai";
|
|
2475
|
-
})[];
|
|
2476
|
-
readonly incoming: "0..*";
|
|
2477
|
-
};
|
|
2478
|
-
readonly constraints: Record<never, never>;
|
|
2479
|
-
readonly effectiveProperties: never;
|
|
2480
|
-
}>;
|
|
2481
2581
|
};
|
|
2482
2582
|
readonly functions: {
|
|
2483
2583
|
readonly listEntrypoints: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
@@ -2511,6 +2611,13 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
2511
2611
|
profiles: number;
|
|
2512
2612
|
};
|
|
2513
2613
|
}, "authorized", false, false, undefined, undefined>>;
|
|
2614
|
+
readonly legacyMigrateViewAccess: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
2615
|
+
readonly mode: 'value';
|
|
2616
|
+
readonly value: {
|
|
2617
|
+
copied: number;
|
|
2618
|
+
removed: number;
|
|
2619
|
+
};
|
|
2620
|
+
}, "authorized", false, false, undefined, undefined>>;
|
|
2514
2621
|
readonly disconnectDirectory: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
2515
2622
|
directory: string;
|
|
2516
2623
|
}, {
|
|
@@ -2528,8 +2635,8 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
2528
2635
|
readonly usesFunction: import("@astrale-os/sdk/schema").Policy;
|
|
2529
2636
|
readonly isSelf: import("@astrale-os/sdk/schema").Policy;
|
|
2530
2637
|
readonly legacyOwnsMembershipGroup: import("@astrale-os/sdk/schema").Policy;
|
|
2531
|
-
readonly hasRole: import("@astrale-os/sdk/schema").Policy;
|
|
2532
2638
|
readonly holdsViewAccess: import("@astrale-os/sdk/schema").Policy;
|
|
2639
|
+
readonly hasRole: import("@astrale-os/sdk/schema").Policy;
|
|
2533
2640
|
readonly describesSubject: import("@astrale-os/sdk/schema").Policy;
|
|
2534
2641
|
readonly isProfileSource: import("@astrale-os/sdk/schema").Policy;
|
|
2535
2642
|
readonly describesGroupOfSubject: import("@astrale-os/sdk/schema").Policy;
|
|
@@ -2550,6 +2657,7 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
|
|
|
2550
2657
|
readonly 'user-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
|
|
2551
2658
|
readonly 'user-profile.self-writer': import("@astrale-os/sdk/schema").CoreNode;
|
|
2552
2659
|
readonly 'group-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
|
|
2660
|
+
readonly 'os.viewer': import("@astrale-os/sdk/schema").CoreNode;
|
|
2553
2661
|
readonly admin: import("@astrale-os/sdk/schema").CoreNode;
|
|
2554
2662
|
readonly member: import("@astrale-os/sdk/schema").CoreNode;
|
|
2555
2663
|
readonly applications: import("@astrale-os/sdk/schema").CoreNode;
|
package/dist/schema/schema.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineSchema, KernelSchema, schema } from '@astrale-os/sdk/schema';
|
|
2
|
-
// Seam L-SHELL-7…
|
|
2
|
+
// Seam L-SHELL-7…20: the legacy declarations, under their stored names.
|
|
3
3
|
import { legacyShellSchema } from './legacy/index.js';
|
|
4
4
|
import { disconnectDirectory } from './modules/directory/index.js';
|
|
5
5
|
import { Group, GroupProfile, describesGroupOfSubject, group_profile, isGroupProfileSource, } from './modules/group/index.js';
|
|
@@ -7,7 +7,6 @@ import { Invitation, invitation_user } from './modules/invitation/index.js';
|
|
|
7
7
|
import { Namespace, alias, viewsNamespace } from './modules/namespace/index.js';
|
|
8
8
|
import { Role, shellRoles } from './modules/role/index.js';
|
|
9
9
|
import { User, UserProfile, describesSubject, isProfileSource, user_profile, } from './modules/user/index.js';
|
|
10
|
-
import { holdsViewAccess, view_access } from './modules/view-access/index.js';
|
|
11
10
|
import { hasRole } from './policies/index.js';
|
|
12
11
|
import { applicationView } from './views/index.js';
|
|
13
12
|
export const ORIGIN = 'shell.astrale.ai';
|
|
@@ -24,13 +23,11 @@ const classes = {
|
|
|
24
23
|
Role,
|
|
25
24
|
Namespace,
|
|
26
25
|
alias,
|
|
27
|
-
view_access,
|
|
28
26
|
...legacyShellSchema.classes,
|
|
29
27
|
};
|
|
30
28
|
const functions = { disconnectDirectory, ...legacyShellSchema.functions };
|
|
31
29
|
const policies = {
|
|
32
30
|
hasRole,
|
|
33
|
-
holdsViewAccess,
|
|
34
31
|
describesSubject,
|
|
35
32
|
isProfileSource,
|
|
36
33
|
describesGroupOfSubject,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astrale-domains/shell",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Astrale Shell Domain schema and remote product implementation",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@astrale-os/ox": "0.1.4",
|
|
61
|
-
"@astrale-os/sdk": "0.6.0-beta.
|
|
61
|
+
"@astrale-os/sdk": "0.6.0-beta.61",
|
|
62
62
|
"@astrale-os/shell-react": "0.6.0-beta.11",
|
|
63
63
|
"@astrale-os/ui": "1.0.0-beta.37",
|
|
64
64
|
"@astrale/typescript-config": "npm:@jsr/astrale__typescript-config@~2.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { view_access } from './view-access.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { view_access } from './view-access.js';
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { K, edgeClass } from '@astrale-os/sdk/schema';
|
|
2
|
-
import { profileRoles } from '../../role/index.js';
|
|
3
|
-
import { hasRole } from '../../../policies/index.js';
|
|
4
|
-
import { holdsViewAccess } from '../policies/index.js';
|
|
5
|
-
/**
|
|
6
|
-
* A View an Identity lands on without `member`: an account, a group or a Role, and each of their
|
|
7
|
-
* members. It decides navigation, never data: the View's own Domain still guards everything it
|
|
8
|
-
* shows (V1). Only an admin writes it; an admin or its holders read it. Each end detaches with its
|
|
9
|
-
* Node.
|
|
10
|
-
*/
|
|
11
|
-
export const view_access = edgeClass.directed({
|
|
12
|
-
inheritance: 'final',
|
|
13
|
-
abstract: false,
|
|
14
|
-
description: 'A View this Identity lands on without member.',
|
|
15
|
-
source: { as: 'audience', accepts: [K.classes.Identity], outgoing: '0..*', onDelete: 'detach' },
|
|
16
|
-
target: { as: 'view', accepts: [K.classes.View], incoming: '0..*', onDelete: 'detach' },
|
|
17
|
-
policies: {
|
|
18
|
-
read: ({ anyOf, check, ref, self }) => anyOf(check(hasRole, ref(profileRoles['workspace.admin'])), check(holdsViewAccess, self)),
|
|
19
|
-
traverse: true,
|
|
20
|
-
create: ({ check, ref }) => check(hasRole, ref(profileRoles['workspace.admin'])),
|
|
21
|
-
delete: ({ check, ref }) => check(hasRole, ref(profileRoles['workspace.admin'])),
|
|
22
|
-
},
|
|
23
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { holdsViewAccess } from './holds-view-access.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { holdsViewAccess } from './holds-view-access.js';
|