@astrale-domains/shell 0.1.0-beta.4
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 +66 -0
- package/dist/functions/application/index.d.ts +3 -0
- package/dist/functions/application/index.d.ts.map +1 -0
- package/dist/functions/application/index.js +3 -0
- package/dist/functions/application/index.js.map +1 -0
- package/dist/functions/application/install.d.ts +4 -0
- package/dist/functions/application/install.d.ts.map +1 -0
- package/dist/functions/application/install.js +11 -0
- package/dist/functions/application/install.js.map +1 -0
- package/dist/functions/application/uninstall.d.ts +5 -0
- package/dist/functions/application/uninstall.d.ts.map +1 -0
- package/dist/functions/application/uninstall.js +11 -0
- package/dist/functions/application/uninstall.js.map +1 -0
- package/dist/functions/execution/index.d.ts +15 -0
- package/dist/functions/execution/index.d.ts.map +1 -0
- package/dist/functions/execution/index.js +2 -0
- package/dist/functions/execution/index.js.map +1 -0
- package/dist/functions/group/assign-user.d.ts +5 -0
- package/dist/functions/group/assign-user.d.ts.map +1 -0
- package/dist/functions/group/assign-user.js +11 -0
- package/dist/functions/group/assign-user.js.map +1 -0
- package/dist/functions/group/index.d.ts +3 -0
- package/dist/functions/group/index.d.ts.map +1 -0
- package/dist/functions/group/index.js +3 -0
- package/dist/functions/group/index.js.map +1 -0
- package/dist/functions/group/unassign-user.d.ts +5 -0
- package/dist/functions/group/unassign-user.d.ts.map +1 -0
- package/dist/functions/group/unassign-user.js +11 -0
- package/dist/functions/group/unassign-user.js.map +1 -0
- package/dist/functions/index.d.ts +6 -0
- package/dist/functions/index.d.ts.map +1 -0
- package/dist/functions/index.js +6 -0
- package/dist/functions/index.js.map +1 -0
- package/dist/functions/space/add-user.d.ts +5 -0
- package/dist/functions/space/add-user.d.ts.map +1 -0
- package/dist/functions/space/add-user.js +11 -0
- package/dist/functions/space/add-user.js.map +1 -0
- package/dist/functions/space/index.d.ts +4 -0
- package/dist/functions/space/index.d.ts.map +1 -0
- package/dist/functions/space/index.js +4 -0
- package/dist/functions/space/index.js.map +1 -0
- package/dist/functions/space/remove-user.d.ts +5 -0
- package/dist/functions/space/remove-user.d.ts.map +1 -0
- package/dist/functions/space/remove-user.js +11 -0
- package/dist/functions/space/remove-user.js.map +1 -0
- package/dist/functions/space/set-default.d.ts +6 -0
- package/dist/functions/space/set-default.d.ts.map +1 -0
- package/dist/functions/space/set-default.js +11 -0
- package/dist/functions/space/set-default.js.map +1 -0
- package/dist/functions/user/administrator.d.ts +4 -0
- package/dist/functions/user/administrator.d.ts.map +1 -0
- package/dist/functions/user/administrator.js +39 -0
- package/dist/functions/user/administrator.js.map +1 -0
- package/dist/functions/user/ensure.d.ts +18 -0
- package/dist/functions/user/ensure.d.ts.map +1 -0
- package/dist/functions/user/ensure.js +49 -0
- package/dist/functions/user/ensure.js.map +1 -0
- package/dist/functions/user/index.d.ts +3 -0
- package/dist/functions/user/index.d.ts.map +1 -0
- package/dist/functions/user/index.js +3 -0
- package/dist/functions/user/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/mutations/application/association.d.ts +14 -0
- package/dist/mutations/application/association.d.ts.map +1 -0
- package/dist/mutations/application/association.js +46 -0
- package/dist/mutations/application/association.js.map +1 -0
- package/dist/mutations/application/errors.d.ts +5 -0
- package/dist/mutations/application/errors.d.ts.map +1 -0
- package/dist/mutations/application/errors.js +2 -0
- package/dist/mutations/application/errors.js.map +1 -0
- package/dist/mutations/application/index.d.ts +4 -0
- package/dist/mutations/application/index.d.ts.map +1 -0
- package/dist/mutations/application/index.js +3 -0
- package/dist/mutations/application/index.js.map +1 -0
- package/dist/mutations/application/removal.d.ts +6 -0
- package/dist/mutations/application/removal.d.ts.map +1 -0
- package/dist/mutations/application/removal.js +17 -0
- package/dist/mutations/application/removal.js.map +1 -0
- package/dist/mutations/group/errors.d.ts +5 -0
- package/dist/mutations/group/errors.d.ts.map +1 -0
- package/dist/mutations/group/errors.js +2 -0
- package/dist/mutations/group/errors.js.map +1 -0
- package/dist/mutations/group/index.d.ts +3 -0
- package/dist/mutations/group/index.d.ts.map +1 -0
- package/dist/mutations/group/index.js +2 -0
- package/dist/mutations/group/index.js.map +1 -0
- package/dist/mutations/group/membership.d.ts +26 -0
- package/dist/mutations/group/membership.d.ts.map +1 -0
- package/dist/mutations/group/membership.js +71 -0
- package/dist/mutations/group/membership.js.map +1 -0
- package/dist/mutations/index.d.ts +4 -0
- package/dist/mutations/index.d.ts.map +1 -0
- package/dist/mutations/index.js +4 -0
- package/dist/mutations/index.js.map +1 -0
- package/dist/mutations/space/access.d.ts +30 -0
- package/dist/mutations/space/access.d.ts.map +1 -0
- package/dist/mutations/space/access.js +54 -0
- package/dist/mutations/space/access.js.map +1 -0
- package/dist/mutations/space/default.d.ts +26 -0
- package/dist/mutations/space/default.d.ts.map +1 -0
- package/dist/mutations/space/default.js +46 -0
- package/dist/mutations/space/default.js.map +1 -0
- package/dist/mutations/space/errors.d.ts +5 -0
- package/dist/mutations/space/errors.d.ts.map +1 -0
- package/dist/mutations/space/errors.js +2 -0
- package/dist/mutations/space/errors.js.map +1 -0
- package/dist/mutations/space/index.d.ts +4 -0
- package/dist/mutations/space/index.d.ts.map +1 -0
- package/dist/mutations/space/index.js +3 -0
- package/dist/mutations/space/index.js.map +1 -0
- package/dist/mutations/user/index.d.ts +1 -0
- package/dist/mutations/user/index.d.ts.map +1 -0
- package/dist/mutations/user/index.js +2 -0
- package/dist/mutations/user/index.js.map +1 -0
- package/dist/public.d.ts +5 -0
- package/dist/public.d.ts.map +1 -0
- package/dist/public.js +154 -0
- package/dist/public.js.map +1 -0
- package/dist/queries/application/association.d.ts +18 -0
- package/dist/queries/application/association.d.ts.map +1 -0
- package/dist/queries/application/association.js +82 -0
- package/dist/queries/application/association.js.map +1 -0
- package/dist/queries/application/identity.d.ts +4 -0
- package/dist/queries/application/identity.d.ts.map +1 -0
- package/dist/queries/application/identity.js +41 -0
- package/dist/queries/application/identity.js.map +1 -0
- package/dist/queries/application/index.d.ts +3 -0
- package/dist/queries/application/index.d.ts.map +1 -0
- package/dist/queries/application/index.js +3 -0
- package/dist/queries/application/index.js.map +1 -0
- package/dist/queries/group/identity.d.ts +3 -0
- package/dist/queries/group/identity.d.ts.map +1 -0
- package/dist/queries/group/identity.js +29 -0
- package/dist/queries/group/identity.js.map +1 -0
- package/dist/queries/group/index.d.ts +3 -0
- package/dist/queries/group/index.d.ts.map +1 -0
- package/dist/queries/group/index.js +3 -0
- package/dist/queries/group/index.js.map +1 -0
- package/dist/queries/group/membership.d.ts +17 -0
- package/dist/queries/group/membership.d.ts.map +1 -0
- package/dist/queries/group/membership.js +47 -0
- package/dist/queries/group/membership.js.map +1 -0
- package/dist/queries/index.d.ts +4 -0
- package/dist/queries/index.d.ts.map +1 -0
- package/dist/queries/index.js +4 -0
- package/dist/queries/index.js.map +1 -0
- package/dist/queries/space/access.d.ts +24 -0
- package/dist/queries/space/access.d.ts.map +1 -0
- package/dist/queries/space/access.js +93 -0
- package/dist/queries/space/access.js.map +1 -0
- package/dist/queries/space/default.d.ts +10 -0
- package/dist/queries/space/default.d.ts.map +1 -0
- package/dist/queries/space/default.js +25 -0
- package/dist/queries/space/default.js.map +1 -0
- package/dist/queries/space/index.d.ts +3 -0
- package/dist/queries/space/index.d.ts.map +1 -0
- package/dist/queries/space/index.js +3 -0
- package/dist/queries/space/index.js.map +1 -0
- package/dist/rules/application/association.d.ts +13 -0
- package/dist/rules/application/association.d.ts.map +1 -0
- package/dist/rules/application/association.js +10 -0
- package/dist/rules/application/association.js.map +1 -0
- package/dist/rules/application/index.d.ts +4 -0
- package/dist/rules/application/index.d.ts.map +1 -0
- package/dist/rules/application/index.js +4 -0
- package/dist/rules/application/index.js.map +1 -0
- package/dist/rules/application/removal.d.ts +11 -0
- package/dist/rules/application/removal.d.ts.map +1 -0
- package/dist/rules/application/removal.js +6 -0
- package/dist/rules/application/removal.js.map +1 -0
- package/dist/rules/application/result.d.ts +8 -0
- package/dist/rules/application/result.d.ts.map +1 -0
- package/dist/rules/application/result.js +17 -0
- package/dist/rules/application/result.js.map +1 -0
- package/dist/rules/group/index.d.ts +2 -0
- package/dist/rules/group/index.d.ts.map +1 -0
- package/dist/rules/group/index.js +2 -0
- package/dist/rules/group/index.js.map +1 -0
- package/dist/rules/group/membership.d.ts +5 -0
- package/dist/rules/group/membership.d.ts.map +1 -0
- package/dist/rules/group/membership.js +12 -0
- package/dist/rules/group/membership.js.map +1 -0
- package/dist/rules/index.d.ts +5 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +5 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/space/access.d.ts +8 -0
- package/dist/rules/space/access.d.ts.map +1 -0
- package/dist/rules/space/access.js +18 -0
- package/dist/rules/space/access.js.map +1 -0
- package/dist/rules/space/default.d.ts +4 -0
- package/dist/rules/space/default.d.ts.map +1 -0
- package/dist/rules/space/default.js +7 -0
- package/dist/rules/space/default.js.map +1 -0
- package/dist/rules/space/index.d.ts +3 -0
- package/dist/rules/space/index.d.ts.map +1 -0
- package/dist/rules/space/index.js +3 -0
- package/dist/rules/space/index.js.map +1 -0
- package/dist/rules/user/ensure.d.ts +21 -0
- package/dist/rules/user/ensure.d.ts.map +1 -0
- package/dist/rules/user/ensure.js +61 -0
- package/dist/rules/user/ensure.js.map +1 -0
- package/dist/rules/user/grant.d.ts +13 -0
- package/dist/rules/user/grant.d.ts.map +1 -0
- package/dist/rules/user/grant.js +12 -0
- package/dist/rules/user/grant.js.map +1 -0
- package/dist/rules/user/index.d.ts +3 -0
- package/dist/rules/user/index.d.ts.map +1 -0
- package/dist/rules/user/index.js +3 -0
- package/dist/rules/user/index.js.map +1 -0
- package/dist/schema/application/class.d.ts +152 -0
- package/dist/schema/application/class.d.ts.map +1 -0
- package/dist/schema/application/class.js +10 -0
- package/dist/schema/application/class.js.map +1 -0
- package/dist/schema/application/core.d.ts +159 -0
- package/dist/schema/application/core.d.ts.map +1 -0
- package/dist/schema/application/core.js +13 -0
- package/dist/schema/application/core.js.map +1 -0
- package/dist/schema/application/index.d.ts +7 -0
- package/dist/schema/application/index.d.ts.map +1 -0
- package/dist/schema/application/index.js +7 -0
- package/dist/schema/application/index.js.map +1 -0
- package/dist/schema/application/methods.d.ts +171 -0
- package/dist/schema/application/methods.d.ts.map +1 -0
- package/dist/schema/application/methods.js +48 -0
- package/dist/schema/application/methods.js.map +1 -0
- package/dist/schema/application/policies.d.ts +3 -0
- package/dist/schema/application/policies.d.ts.map +1 -0
- package/dist/schema/application/policies.js +11 -0
- package/dist/schema/application/policies.js.map +1 -0
- package/dist/schema/application/relationships.d.ts +795 -0
- package/dist/schema/application/relationships.d.ts.map +1 -0
- package/dist/schema/application/relationships.js +20 -0
- package/dist/schema/application/relationships.js.map +1 -0
- package/dist/schema/application/view.d.ts +155 -0
- package/dist/schema/application/view.d.ts.map +1 -0
- package/dist/schema/application/view.js +7 -0
- package/dist/schema/application/view.js.map +1 -0
- package/dist/schema/domain/index.d.ts +9363 -0
- package/dist/schema/domain/index.d.ts.map +1 -0
- package/dist/schema/domain/index.js +56 -0
- package/dist/schema/domain/index.js.map +1 -0
- package/dist/schema/group/class.d.ts +59 -0
- package/dist/schema/group/class.d.ts.map +1 -0
- package/dist/schema/group/class.js +11 -0
- package/dist/schema/group/class.js.map +1 -0
- package/dist/schema/group/core.d.ts +495 -0
- package/dist/schema/group/core.d.ts.map +1 -0
- package/dist/schema/group/core.js +20 -0
- package/dist/schema/group/core.js.map +1 -0
- package/dist/schema/group/index.d.ts +7 -0
- package/dist/schema/group/index.d.ts.map +1 -0
- package/dist/schema/group/index.js +7 -0
- package/dist/schema/group/index.js.map +1 -0
- package/dist/schema/group/methods.d.ts +48 -0
- package/dist/schema/group/methods.d.ts.map +1 -0
- package/dist/schema/group/methods.js +21 -0
- package/dist/schema/group/methods.js.map +1 -0
- package/dist/schema/group/policies.d.ts +3 -0
- package/dist/schema/group/policies.d.ts.map +1 -0
- package/dist/schema/group/policies.js +7 -0
- package/dist/schema/group/policies.js.map +1 -0
- package/dist/schema/group/relationships.d.ts +293 -0
- package/dist/schema/group/relationships.d.ts.map +1 -0
- package/dist/schema/group/relationships.js +20 -0
- package/dist/schema/group/relationships.js.map +1 -0
- package/dist/schema/group/view.d.ts +62 -0
- package/dist/schema/group/view.d.ts.map +1 -0
- package/dist/schema/group/view.js +7 -0
- package/dist/schema/group/view.js.map +1 -0
- package/dist/schema/home/index.d.ts +2 -0
- package/dist/schema/home/index.d.ts.map +1 -0
- package/dist/schema/home/index.js +2 -0
- package/dist/schema/home/index.js.map +1 -0
- package/dist/schema/home/view.d.ts +4 -0
- package/dist/schema/home/view.d.ts.map +1 -0
- package/dist/schema/home/view.js +5 -0
- package/dist/schema/home/view.js.map +1 -0
- package/dist/schema/index.d.ts +7 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +7 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/space/class.d.ts +74 -0
- package/dist/schema/space/class.d.ts.map +1 -0
- package/dist/schema/space/class.js +15 -0
- package/dist/schema/space/class.js.map +1 -0
- package/dist/schema/space/core.d.ts +995 -0
- package/dist/schema/space/core.d.ts.map +1 -0
- package/dist/schema/space/core.js +17 -0
- package/dist/schema/space/core.js.map +1 -0
- package/dist/schema/space/index.d.ts +7 -0
- package/dist/schema/space/index.d.ts.map +1 -0
- package/dist/schema/space/index.js +7 -0
- package/dist/schema/space/index.js.map +1 -0
- package/dist/schema/space/methods.d.ts +78 -0
- package/dist/schema/space/methods.d.ts.map +1 -0
- package/dist/schema/space/methods.js +31 -0
- package/dist/schema/space/methods.js.map +1 -0
- package/dist/schema/space/policies.d.ts +5 -0
- package/dist/schema/space/policies.d.ts.map +1 -0
- package/dist/schema/space/policies.js +15 -0
- package/dist/schema/space/policies.js.map +1 -0
- package/dist/schema/space/relationships.d.ts +1059 -0
- package/dist/schema/space/relationships.d.ts.map +1 -0
- package/dist/schema/space/relationships.js +25 -0
- package/dist/schema/space/relationships.js.map +1 -0
- package/dist/schema/space/view.d.ts +77 -0
- package/dist/schema/space/view.d.ts.map +1 -0
- package/dist/schema/space/view.js +7 -0
- package/dist/schema/space/view.js.map +1 -0
- package/dist/schema/user/administrator.d.ts +30 -0
- package/dist/schema/user/administrator.d.ts.map +1 -0
- package/dist/schema/user/administrator.js +19 -0
- package/dist/schema/user/administrator.js.map +1 -0
- package/dist/schema/user/class.d.ts +12 -0
- package/dist/schema/user/class.d.ts.map +1 -0
- package/dist/schema/user/class.js +7 -0
- package/dist/schema/user/class.js.map +1 -0
- package/dist/schema/user/ensure.d.ts +37 -0
- package/dist/schema/user/ensure.d.ts.map +1 -0
- package/dist/schema/user/ensure.js +28 -0
- package/dist/schema/user/ensure.js.map +1 -0
- package/dist/schema/user/index.d.ts +6 -0
- package/dist/schema/user/index.d.ts.map +1 -0
- package/dist/schema/user/index.js +6 -0
- package/dist/schema/user/index.js.map +1 -0
- package/dist/schema/user/interface.d.ts +10 -0
- package/dist/schema/user/interface.d.ts.map +1 -0
- package/dist/schema/user/interface.js +12 -0
- package/dist/schema/user/interface.js.map +1 -0
- package/dist/schema/user/view.d.ts +15 -0
- package/dist/schema/user/view.d.ts.map +1 -0
- package/dist/schema/user/view.js +7 -0
- package/dist/schema/user/view.js.map +1 -0
- package/dist/tests/cross-layer/public.test.d.ts +2 -0
- package/dist/tests/cross-layer/public.test.d.ts.map +1 -0
- package/dist/tests/cross-layer/public.test.js +70 -0
- package/dist/tests/cross-layer/public.test.js.map +1 -0
- package/dist/tests/cross-layer/workflows.test.d.ts +2 -0
- package/dist/tests/cross-layer/workflows.test.d.ts.map +1 -0
- package/dist/tests/cross-layer/workflows.test.js +290 -0
- package/dist/tests/cross-layer/workflows.test.js.map +1 -0
- package/dist/tests/index.d.ts +3 -0
- package/dist/tests/index.d.ts.map +1 -0
- package/dist/tests/index.js +3 -0
- package/dist/tests/index.js.map +1 -0
- package/dist/utils/graph-endpoint/index.d.ts +13 -0
- package/dist/utils/graph-endpoint/index.d.ts.map +1 -0
- package/dist/utils/graph-endpoint/index.js +6 -0
- package/dist/utils/graph-endpoint/index.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/query-page/index.d.ts +3 -0
- package/dist/utils/query-page/index.d.ts.map +1 -0
- package/dist/utils/query-page/index.js +2 -0
- package/dist/utils/query-page/index.js.map +1 -0
- package/dist/utils/query-page/nodes.d.ts +16 -0
- package/dist/utils/query-page/nodes.d.ts.map +1 -0
- package/dist/utils/query-page/nodes.js +22 -0
- package/dist/utils/query-page/nodes.js.map +1 -0
- package/dist/workflows/application/errors.d.ts +5 -0
- package/dist/workflows/application/errors.d.ts.map +1 -0
- package/dist/workflows/application/errors.js +25 -0
- package/dist/workflows/application/errors.js.map +1 -0
- package/dist/workflows/application/index.d.ts +3 -0
- package/dist/workflows/application/index.d.ts.map +1 -0
- package/dist/workflows/application/index.js +3 -0
- package/dist/workflows/application/index.js.map +1 -0
- package/dist/workflows/application/install.d.ts +3 -0
- package/dist/workflows/application/install.d.ts.map +1 -0
- package/dist/workflows/application/install.js +37 -0
- package/dist/workflows/application/install.js.map +1 -0
- package/dist/workflows/application/uninstall.d.ts +4 -0
- package/dist/workflows/application/uninstall.d.ts.map +1 -0
- package/dist/workflows/application/uninstall.js +25 -0
- package/dist/workflows/application/uninstall.js.map +1 -0
- package/dist/workflows/group/assign-user.d.ts +8 -0
- package/dist/workflows/group/assign-user.d.ts.map +1 -0
- package/dist/workflows/group/assign-user.js +32 -0
- package/dist/workflows/group/assign-user.js.map +1 -0
- package/dist/workflows/group/ensure-administrator.d.ts +4 -0
- package/dist/workflows/group/ensure-administrator.d.ts.map +1 -0
- package/dist/workflows/group/ensure-administrator.js +26 -0
- package/dist/workflows/group/ensure-administrator.js.map +1 -0
- package/dist/workflows/group/errors.d.ts +2 -0
- package/dist/workflows/group/errors.d.ts.map +1 -0
- package/dist/workflows/group/errors.js +7 -0
- package/dist/workflows/group/errors.js.map +1 -0
- package/dist/workflows/group/index.d.ts +4 -0
- package/dist/workflows/group/index.d.ts.map +1 -0
- package/dist/workflows/group/index.js +4 -0
- package/dist/workflows/group/index.js.map +1 -0
- package/dist/workflows/group/unassign-user.d.ts +8 -0
- package/dist/workflows/group/unassign-user.d.ts.map +1 -0
- package/dist/workflows/group/unassign-user.js +32 -0
- package/dist/workflows/group/unassign-user.js.map +1 -0
- package/dist/workflows/index.d.ts +4 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +4 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/space/add-user.d.ts +8 -0
- package/dist/workflows/space/add-user.d.ts.map +1 -0
- package/dist/workflows/space/add-user.js +34 -0
- package/dist/workflows/space/add-user.js.map +1 -0
- package/dist/workflows/space/errors.d.ts +3 -0
- package/dist/workflows/space/errors.d.ts.map +1 -0
- package/dist/workflows/space/errors.js +10 -0
- package/dist/workflows/space/errors.js.map +1 -0
- package/dist/workflows/space/index.d.ts +4 -0
- package/dist/workflows/space/index.d.ts.map +1 -0
- package/dist/workflows/space/index.js +4 -0
- package/dist/workflows/space/index.js.map +1 -0
- package/dist/workflows/space/remove-user.d.ts +8 -0
- package/dist/workflows/space/remove-user.d.ts.map +1 -0
- package/dist/workflows/space/remove-user.js +62 -0
- package/dist/workflows/space/remove-user.js.map +1 -0
- package/dist/workflows/space/set-default.d.ts +9 -0
- package/dist/workflows/space/set-default.d.ts.map +1 -0
- package/dist/workflows/space/set-default.js +43 -0
- package/dist/workflows/space/set-default.js.map +1 -0
- package/package.json +80 -0
package/dist/public.js
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { defineDomain, externalFrontend, frontendArtifact, InvocationError, } from '@astrale-os/sdk';
|
|
2
|
+
import { Path } from '@astrale-os/sdk/graph/path';
|
|
3
|
+
import { K } from '@astrale-os/sdk/schema/kernel';
|
|
4
|
+
import { bindWorkflow, defineWorkflow } from '@astrale-os/sdk/workflow';
|
|
5
|
+
import { ensureAdministrator, ensureUser } from '#functions/user';
|
|
6
|
+
import { S, ShellSchema } from '#schema';
|
|
7
|
+
import { addSpaceUserWorkflow, assignGroupUserWorkflow, installApplicationWorkflow, removeSpaceUserWorkflow, unassignGroupUserWorkflow, uninstallApplicationWorkflow, } from '#workflows';
|
|
8
|
+
const assignGroupUserRemote = defineWorkflow({
|
|
9
|
+
id: 'shell.remote.group.assign-user',
|
|
10
|
+
run: (context, input) => assignGroupUserWorkflow.run(context, {
|
|
11
|
+
group: instanceReceiver(context),
|
|
12
|
+
input: { user: Path.parse(input.user).raw },
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
15
|
+
const unassignGroupUserRemote = defineWorkflow({
|
|
16
|
+
id: 'shell.remote.group.unassign-user',
|
|
17
|
+
run: (context, input) => unassignGroupUserWorkflow.run(context, {
|
|
18
|
+
group: instanceReceiver(context),
|
|
19
|
+
input: { user: Path.parse(input.user).raw },
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
22
|
+
const addSpaceUserRemote = defineWorkflow({
|
|
23
|
+
id: 'shell.remote.space.add-user',
|
|
24
|
+
run: (context, input) => addSpaceUserWorkflow.run(context, {
|
|
25
|
+
space: instanceReceiver(context),
|
|
26
|
+
input: { ...input, user: Path.parse(input.user).raw },
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
const removeSpaceUserRemote = defineWorkflow({
|
|
30
|
+
id: 'shell.remote.space.remove-user',
|
|
31
|
+
run: (context, input) => removeSpaceUserWorkflow.run(context, {
|
|
32
|
+
space: instanceReceiver(context),
|
|
33
|
+
input: { user: Path.parse(input.user).raw },
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
const setDefaultSpaceRemote = defineWorkflow({
|
|
37
|
+
id: 'shell.remote.space.set-default',
|
|
38
|
+
async run() {
|
|
39
|
+
throw new InvocationError('UNSUPPORTED', 'Remote Shell default selection requires delegated Grant evidence that the SDK does not expose yet.', { reason: { code: 'DEFAULT_SPACE_REMOTE_UNSUPPORTED', details: {} } });
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
const uninstallApplicationRemote = defineWorkflow({
|
|
43
|
+
id: 'shell.remote.application.uninstall',
|
|
44
|
+
run: (context) => uninstallApplicationWorkflow.run(context, instanceReceiver(context)),
|
|
45
|
+
});
|
|
46
|
+
const installApplicationRemote = defineWorkflow({
|
|
47
|
+
id: 'shell.remote.application.install',
|
|
48
|
+
run: (context, input) => installApplicationWorkflow.run(context, {
|
|
49
|
+
domain: Path.parse(input.domain).raw,
|
|
50
|
+
space: Path.parse(input.space).raw,
|
|
51
|
+
}),
|
|
52
|
+
});
|
|
53
|
+
const MANAGED_KERNEL_CLASS_OPERATIONS = ['create', 'read', 'traverse', 'update', 'delete'];
|
|
54
|
+
const OBSERVED_KERNEL_CLASS_OPERATIONS = ['read', 'traverse'];
|
|
55
|
+
/** Complete remote Shell implementation; Kernel Hosts install its immutable publication. */
|
|
56
|
+
export const ShellDomain = defineDomain.public({
|
|
57
|
+
schema: ShellSchema,
|
|
58
|
+
requirements: {
|
|
59
|
+
capabilities: {
|
|
60
|
+
functions: [
|
|
61
|
+
K.query,
|
|
62
|
+
K.mutate,
|
|
63
|
+
K.provision,
|
|
64
|
+
K.install,
|
|
65
|
+
K.introspect,
|
|
66
|
+
K.uninstall,
|
|
67
|
+
K.journal,
|
|
68
|
+
K.Identity.can,
|
|
69
|
+
K.Identity.delegate,
|
|
70
|
+
K.Identity.whois,
|
|
71
|
+
K.Identity.mint,
|
|
72
|
+
K.Identity.whoami,
|
|
73
|
+
K.$.class('Function').$.method('admit'),
|
|
74
|
+
K.View.resolve,
|
|
75
|
+
],
|
|
76
|
+
classes: [
|
|
77
|
+
{ class: K.Class, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
78
|
+
{ class: K.Domain, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
79
|
+
{ class: K.$.class('Function'), operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
80
|
+
{ class: K.Interface, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
81
|
+
{ class: K.Operation, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
82
|
+
{ class: K.Policy, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
83
|
+
{ class: K.View, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
84
|
+
{ class: K.can_create, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
85
|
+
{ class: K.can_delete, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
86
|
+
{ class: K.can_grant, operations: OBSERVED_KERNEL_CLASS_OPERATIONS },
|
|
87
|
+
{ class: K.can_read, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
88
|
+
{ class: K.can_revoke, operations: OBSERVED_KERNEL_CLASS_OPERATIONS },
|
|
89
|
+
{ class: K.can_traverse, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
90
|
+
{ class: K.can_update, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
91
|
+
{ class: K.can_use, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
92
|
+
{ class: K.constrained_by, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
93
|
+
{ class: K.excluded_from, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
94
|
+
{ class: K.extends, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
95
|
+
{ class: K.extends_with, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
96
|
+
{ class: K.governed_by, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
97
|
+
{ class: K.implements, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
98
|
+
{ class: K.instance_of, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
99
|
+
{ class: K.method_of, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
100
|
+
{ class: K.of_domain, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
101
|
+
{ class: K.view_for, operations: MANAGED_KERNEL_CLASS_OPERATIONS },
|
|
102
|
+
],
|
|
103
|
+
admin: {
|
|
104
|
+
grant: ['use', 'create', 'read', 'traverse', 'update', 'delete'],
|
|
105
|
+
revoke: ['use', 'create', 'read', 'traverse', 'update', 'delete'],
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
handlers: {
|
|
110
|
+
functions: {
|
|
111
|
+
ensureAdministrator,
|
|
112
|
+
ensureUser,
|
|
113
|
+
},
|
|
114
|
+
classes: {
|
|
115
|
+
Application: {
|
|
116
|
+
install: bindWorkflow(S.Application.install, installApplicationRemote),
|
|
117
|
+
uninstall: bindWorkflow(S.Application.uninstall, uninstallApplicationRemote),
|
|
118
|
+
},
|
|
119
|
+
Group: {
|
|
120
|
+
assignUser: bindWorkflow(S.Group.assignUser, assignGroupUserRemote),
|
|
121
|
+
unassignUser: bindWorkflow(S.Group.unassignUser, unassignGroupUserRemote),
|
|
122
|
+
},
|
|
123
|
+
Space: {
|
|
124
|
+
addUser: bindWorkflow(S.Space.addUser, addSpaceUserRemote),
|
|
125
|
+
removeUser: bindWorkflow(S.Space.removeUser, removeSpaceUserRemote),
|
|
126
|
+
setDefault: bindWorkflow(S.Space.setDefault, setDefaultSpaceRemote),
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
interfaces: {},
|
|
130
|
+
},
|
|
131
|
+
frontend: frontendArtifact({
|
|
132
|
+
schema: ShellSchema,
|
|
133
|
+
source: externalFrontend({ origin: 'https://app.astrale.ai' }),
|
|
134
|
+
routes: {
|
|
135
|
+
application: '/applications',
|
|
136
|
+
group: '/groups',
|
|
137
|
+
home: '/',
|
|
138
|
+
space: '/spaces',
|
|
139
|
+
user: '/users',
|
|
140
|
+
},
|
|
141
|
+
entrypoint: 'home',
|
|
142
|
+
}),
|
|
143
|
+
});
|
|
144
|
+
function instanceReceiver(context) {
|
|
145
|
+
const activation = context.activation;
|
|
146
|
+
const receiver = activation.kind === 'call' ? activation.receiver : undefined;
|
|
147
|
+
if (receiver === undefined ||
|
|
148
|
+
receiver.ast.anchor.kind !== 'id' ||
|
|
149
|
+
receiver.ast.steps.length !== 0) {
|
|
150
|
+
throw new Error('Remote Shell Workflow requires an admitted instance Method receiver.');
|
|
151
|
+
}
|
|
152
|
+
return receiver.ast.anchor.id;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../public.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAEhB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,+BAA+B,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEvE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AAEnB,MAAM,qBAAqB,GAAG,cAAc,CAG1C;IACA,EAAE,EAAE,gCAAgC;IACpC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACtB,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE;QACnC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;KAC5C,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,uBAAuB,GAAG,cAAc,CAG5C;IACA,EAAE,EAAE,kCAAkC;IACtC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACtB,yBAAyB,CAAC,GAAG,CAAC,OAAO,EAAE;QACrC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;KAC5C,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,kBAAkB,GAAG,cAAc,CAGvC;IACA,EAAE,EAAE,6BAA6B;IACjC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACtB,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE;QAChC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;KACtD,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,qBAAqB,GAAG,cAAc,CAG1C;IACA,EAAE,EAAE,gCAAgC;IACpC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACtB,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE;QACnC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;KAC5C,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,qBAAqB,GAAG,cAAc,CAG1C;IACA,EAAE,EAAE,gCAAgC;IACpC,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,eAAe,CACvB,aAAa,EACb,oGAAoG,EACpG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CACtE,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,0BAA0B,GAAG,cAAc,CAG/C;IACA,EAAE,EAAE,oCAAoC;IACxC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACvF,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG,cAAc,CAG7C;IACA,EAAE,EAAE,kCAAkC;IACtC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACtB,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE;QACtC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG;QACpC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG;KACnC,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,+BAA+B,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;AAEnG,MAAM,gCAAgC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAU,CAAA;AAEtE,4FAA4F;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAmD,YAAY,CAAC,MAAM,CAAC;IAC7F,MAAM,EAAE,WAAW;IACnB,YAAY,EAAE;QACZ,YAAY,EAAE;YACZ,SAAS,EAAE;gBACT,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,QAAQ,CAAC,GAAG;gBACd,CAAC,CAAC,QAAQ,CAAC,QAAQ;gBACnB,CAAC,CAAC,QAAQ,CAAC,KAAK;gBAChB,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACf,CAAC,CAAC,QAAQ,CAAC,MAAM;gBACjB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,OAAO;aACf;YACD,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBAC/D,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBAChE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBAC7E,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACnE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACnE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBAChE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBAC9D,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACpE,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACpE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,gCAAgC,EAAE;gBACpE,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBAClE,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,gCAAgC,EAAE;gBACrE,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACtE,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACpE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACjE,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACxE,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACvE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACjE,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACtE,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACrE,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACpE,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACrE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACnE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,+BAA+B,EAAE;gBACnE,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,+BAA+B,EAAE;aACnE;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBAChE,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;aAClE;SACF;KACF;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,mBAAmB;YACnB,UAAU;SACX;QACD,OAAO,EAAE;YACP,WAAW,EAAE;gBACX,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,wBAAwB,CAAC;gBACtE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,0BAA0B,CAAC;aAC7E;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,qBAAqB,CAAC;gBACnE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,uBAAuB,CAAC;aAC1E;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAC1D,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,qBAAqB,CAAC;gBACnE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,qBAAqB,CAAC;aACpE;SACF;QACD,UAAU,EAAE,EAAE;KACf;IACD,QAAQ,EAAE,gBAAgB,CAAC;QACzB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAC9D,MAAM,EAAE;YACN,WAAW,EAAE,eAAe;YAC5B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,QAAQ;SACf;QACD,UAAU,EAAE,MAAM;KACnB,CAAC;CACH,CAAC,CAAA;AAEF,SAAS,gBAAgB,CAAC,OAA4B;IACpD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7E,IACE,QAAQ,KAAK,SAAS;QACtB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI;QACjC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;IACzF,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AAC/B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
import type { InstallApplicationInput } from '#schema/application';
|
|
3
|
+
import { type NodeQueryGuard } from '#utils/query-page';
|
|
4
|
+
export interface ApplicationAssociationObservation {
|
|
5
|
+
readonly applications: readonly NodeId[];
|
|
6
|
+
readonly guard: NodeQueryGuard;
|
|
7
|
+
readonly space: NodeId;
|
|
8
|
+
}
|
|
9
|
+
interface ApplicationAssociationMatches {
|
|
10
|
+
readonly applications: readonly NodeId[];
|
|
11
|
+
readonly guard: NodeQueryGuard;
|
|
12
|
+
}
|
|
13
|
+
export declare const observeApplicationAssociation: import("@astrale-os/sdk/query").ProjectedCompositeQueryDefinition<InstallApplicationInput, {
|
|
14
|
+
readonly association: ApplicationAssociationMatches;
|
|
15
|
+
readonly space: NodeId;
|
|
16
|
+
}, ApplicationAssociationObservation>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=association.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"association.d.ts","sourceRoot":"","sources":["../../../queries/application/association.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAQxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAGlE,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAOD,UAAU,6BAA6B;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAC/B;AAoCD,eAAO,MAAM,6BAA6B;0BAGhB,6BAA6B;oBACnC,MAAM;qCAgBxB,CAAA"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Path } from '@astrale-os/sdk/graph/path';
|
|
2
|
+
import { Query } from '@astrale-os/sdk/query';
|
|
3
|
+
import { defineQuery } from '@astrale-os/sdk/query';
|
|
4
|
+
import { S } from '#schema';
|
|
5
|
+
import { completeNodeQueryGuard, nodeIds as projectNodeIds, } from '#utils/query-page';
|
|
6
|
+
const APPLICATION = {
|
|
7
|
+
origin: 'shell.astrale.ai',
|
|
8
|
+
kind: 'class',
|
|
9
|
+
name: 'Application',
|
|
10
|
+
};
|
|
11
|
+
const SPACE = { origin: 'shell.astrale.ai', kind: 'class', name: 'Space' };
|
|
12
|
+
const APPLICATION_OF = S.$.class('application_of').schemaRef;
|
|
13
|
+
const INSTALLED_IN = S.$.class('installed_in').schemaRef;
|
|
14
|
+
const applicationsByAssociation = defineQuery({
|
|
15
|
+
id: 'shell.application.association',
|
|
16
|
+
page: { size: 257 },
|
|
17
|
+
pagination: { maximumPages: 1 },
|
|
18
|
+
build: applicationAssociationQuery,
|
|
19
|
+
project: (pages, _association, { ast }) => {
|
|
20
|
+
const guard = completeNodeQueryGuard(pages, ast, 'Application association');
|
|
21
|
+
return Object.freeze({ applications: guard.equals.ids, guard });
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const resolveAssociationSpace = defineQuery({
|
|
25
|
+
id: 'shell.application.resolve-association-space',
|
|
26
|
+
page: { size: 2 },
|
|
27
|
+
build: (space) => Query.from({ kind: 'node', paths: [Path.from(space)], binding: 'space' })
|
|
28
|
+
.filter({ satisfies: SPACE })
|
|
29
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
30
|
+
project: (result) => exactlyOneNode(result, 'Application Space must resolve exactly once.'),
|
|
31
|
+
});
|
|
32
|
+
export const observeApplicationAssociation = defineQuery.composite({
|
|
33
|
+
id: 'shell.application.observe-association',
|
|
34
|
+
compose(query, association) {
|
|
35
|
+
const space = query.query('space', resolveAssociationSpace, association.space);
|
|
36
|
+
return query.combine({
|
|
37
|
+
association: query.query('association', applicationsByAssociation, {
|
|
38
|
+
domain: association.domain,
|
|
39
|
+
space: space.value,
|
|
40
|
+
}),
|
|
41
|
+
space,
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
project: ({ association, space }) => Object.freeze({ ...association, space }),
|
|
45
|
+
});
|
|
46
|
+
function applicationAssociationQuery(association) {
|
|
47
|
+
const applications = Query.from({
|
|
48
|
+
kind: 'node',
|
|
49
|
+
paths: [Path.from(association.domain)],
|
|
50
|
+
binding: 'domain',
|
|
51
|
+
})
|
|
52
|
+
.expand({
|
|
53
|
+
via: [APPLICATION_OF],
|
|
54
|
+
direction: 'incoming',
|
|
55
|
+
bindings: { edge: 'applicationOf', node: 'application' },
|
|
56
|
+
})
|
|
57
|
+
.filter({ satisfies: APPLICATION });
|
|
58
|
+
const application = applications.node;
|
|
59
|
+
const installedSpace = applications.expand({
|
|
60
|
+
from: application,
|
|
61
|
+
via: [INSTALLED_IN],
|
|
62
|
+
direction: 'outgoing',
|
|
63
|
+
bindings: { edge: 'installedIn', node: 'space' },
|
|
64
|
+
});
|
|
65
|
+
return installedSpace
|
|
66
|
+
.filter({
|
|
67
|
+
binding: installedSpace.node,
|
|
68
|
+
predicate: { kind: 'identity.equal', identity: association.space },
|
|
69
|
+
})
|
|
70
|
+
.select({
|
|
71
|
+
kind: 'nodes',
|
|
72
|
+
binding: application,
|
|
73
|
+
projection: { kind: 'reference' },
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function exactlyOneNode(result, message) {
|
|
77
|
+
const ids = projectNodeIds(result, 'Application association');
|
|
78
|
+
if (ids.length !== 1)
|
|
79
|
+
throw new TypeError(message);
|
|
80
|
+
return ids[0];
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=association.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"association.js","sourceRoot":"","sources":["../../../queries/application/association.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
export declare const resolveShellApplication: import("@astrale-os/sdk/query").ProjectedQueryDefinition<void, NodeId, import("@astrale-os/sdk/query").QueryAST>;
|
|
3
|
+
export declare const observeApplicationPresence: import("@astrale-os/sdk/query").ProjectedQueryDefinition<NodeId, boolean, import("@astrale-os/sdk/query").QueryAST>;
|
|
4
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../queries/application/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAexD,eAAO,MAAM,uBAAuB,kHAalC,CAAA;AAEF,eAAO,MAAM,0BAA0B,qHAYrC,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Path } from '@astrale-os/sdk/graph/path';
|
|
2
|
+
import { Query } from '@astrale-os/sdk/query';
|
|
3
|
+
import { defineQuery } from '@astrale-os/sdk/query';
|
|
4
|
+
import { nodeIds } from '#utils/query-page';
|
|
5
|
+
const APPLICATION = {
|
|
6
|
+
origin: 'shell.astrale.ai',
|
|
7
|
+
kind: 'class',
|
|
8
|
+
name: 'Application',
|
|
9
|
+
};
|
|
10
|
+
export const resolveShellApplication = defineQuery({
|
|
11
|
+
id: 'shell.application.resolve-shell-application',
|
|
12
|
+
page: { size: 2 },
|
|
13
|
+
build: () => Query.from({
|
|
14
|
+
kind: 'node',
|
|
15
|
+
paths: [Path.project({ origin: 'shell.astrale.ai', kind: 'core', name: 'shell' })],
|
|
16
|
+
binding: 'shell',
|
|
17
|
+
})
|
|
18
|
+
.filter({ satisfies: APPLICATION })
|
|
19
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
20
|
+
project: (result) => exactlyOneNode(result, 'Shell Core must contain exactly one shell Application.'),
|
|
21
|
+
});
|
|
22
|
+
export const observeApplicationPresence = defineQuery({
|
|
23
|
+
id: 'shell.application.observe-presence',
|
|
24
|
+
page: { size: 2 },
|
|
25
|
+
build: (application) => Query.from({ kind: 'node', paths: [Path.id(application)], binding: 'application' })
|
|
26
|
+
.filter({ satisfies: APPLICATION })
|
|
27
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
28
|
+
project: (result) => {
|
|
29
|
+
const ids = nodeIds(result, 'Application presence');
|
|
30
|
+
if (ids.length > 1)
|
|
31
|
+
throw new TypeError('Application identity resolved more than once.');
|
|
32
|
+
return ids.length === 1;
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
function exactlyOneNode(result, message) {
|
|
36
|
+
const ids = nodeIds(result, 'Application identity');
|
|
37
|
+
if (ids.length !== 1)
|
|
38
|
+
throw new TypeError(message);
|
|
39
|
+
return ids[0];
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../queries/application/identity.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,aAAa;CACX,CAAA;AAEV,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,CAAe;IAC/D,EAAE,EAAE,6CAA6C;IACjD,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACjB,KAAK,EAAE,GAAG,EAAE,CACV,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAClF,OAAO,EAAE,OAAO;KACjB,CAAC;SACC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACjE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,cAAc,CAAC,MAAM,EAAE,wDAAwD,CAAC;CACnF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAkB;IACrE,EAAE,EAAE,oCAAoC;IACxC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACjB,KAAK,EAAE,CAAC,WAAW,EAAE,EAAE,CACrB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;SAChF,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACjE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;QACnD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;QACxF,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAA;IACzB,CAAC;CACF,CAAC,CAAA;AAEF,SAAS,cAAc,CAAC,MAAmB,EAAE,OAAe;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;IACnD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAA;IAClD,OAAO,GAAG,CAAC,CAAC,CAAE,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../queries/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,KAAK,iCAAiC,GACvC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../queries/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAE9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../queries/group/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAcxD,eAAO,MAAM,8BAA8B,kHAazC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Property, Query, defineQuery } from '@astrale-os/sdk/query';
|
|
2
|
+
import { K } from '@astrale-os/sdk/schema/kernel';
|
|
3
|
+
import { nodeIds } from '#utils/query-page';
|
|
4
|
+
const GROUP = {
|
|
5
|
+
origin: 'shell.astrale.ai',
|
|
6
|
+
kind: 'class',
|
|
7
|
+
name: 'Group',
|
|
8
|
+
};
|
|
9
|
+
export const resolveShellAdministratorGroup = defineQuery({
|
|
10
|
+
id: 'shell.group.resolve-administrator-group',
|
|
11
|
+
page: { size: 2 },
|
|
12
|
+
build: () => Query.from({
|
|
13
|
+
kind: 'node',
|
|
14
|
+
definitions: [GROUP],
|
|
15
|
+
binding: 'admin',
|
|
16
|
+
})
|
|
17
|
+
.filter({ predicate: Property(K.Identity.$.property('iss').key).equals('shell.astrale.ai') })
|
|
18
|
+
.filter({ predicate: Property(K.Identity.$.property('sub').key).equals('core.admin') })
|
|
19
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
20
|
+
project: (result) => exactlyOneNode(result),
|
|
21
|
+
});
|
|
22
|
+
function exactlyOneNode(result) {
|
|
23
|
+
const ids = nodeIds(result, 'Shell administrator Group');
|
|
24
|
+
if (ids.length !== 1) {
|
|
25
|
+
throw new TypeError('Shell Core must contain exactly one administrator Group.');
|
|
26
|
+
}
|
|
27
|
+
return ids[0];
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../queries/group/identity.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,+BAA+B,CAAA;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CACL,CAAA;AAEV,MAAM,CAAC,MAAM,8BAA8B,GAAG,WAAW,CAAe;IACtE,EAAE,EAAE,yCAAyC;IAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACjB,KAAK,EAAE,GAAG,EAAE,CACV,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,CAAC,KAAK,CAAC;QACpB,OAAO,EAAE,OAAO;KACjB,CAAC;SACC,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;SAC5F,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;SACtF,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACjE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;CAC5C,CAAC,CAAA;AAEF,SAAS,cAAc,CAAC,MAAmB;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;IACxD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,CAAE,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../queries/group/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../queries/group/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EACL,sBAAsB,GAIvB,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
import type { PathLike } from '@astrale-os/sdk/graph/path';
|
|
3
|
+
import { type NodeQueryGuard } from '#utils/query-page';
|
|
4
|
+
export interface GroupMembership {
|
|
5
|
+
readonly group: NodeId;
|
|
6
|
+
readonly user: PathLike;
|
|
7
|
+
}
|
|
8
|
+
export interface GroupMembershipObservation {
|
|
9
|
+
readonly authority: GroupMembershipEvidence;
|
|
10
|
+
readonly local: GroupMembershipEvidence;
|
|
11
|
+
}
|
|
12
|
+
export interface GroupMembershipEvidence {
|
|
13
|
+
readonly groups: readonly NodeId[];
|
|
14
|
+
readonly guard: NodeQueryGuard;
|
|
15
|
+
}
|
|
16
|
+
export declare const observeGroupMembership: import("@astrale-os/sdk/query").RawCompositeQueryDefinition<GroupMembership, GroupMembershipObservation>;
|
|
17
|
+
//# sourceMappingURL=membership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membership.d.ts","sourceRoot":"","sources":["../../../queries/group/membership.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAU1D,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE/E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAA;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAC/B;AAoCD,eAAO,MAAM,sBAAsB,0GAUjC,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Path } from '@astrale-os/sdk/graph/path';
|
|
2
|
+
import { Query } from '@astrale-os/sdk/query';
|
|
3
|
+
import { defineQuery } from '@astrale-os/sdk/query';
|
|
4
|
+
import { K } from '@astrale-os/sdk/schema/kernel';
|
|
5
|
+
import { S } from '#schema';
|
|
6
|
+
import { completeNodeQueryGuard } from '#utils/query-page';
|
|
7
|
+
const GROUP = { origin: 'shell.astrale.ai', kind: 'class', name: 'Group' };
|
|
8
|
+
const authorityGroups = defineQuery({
|
|
9
|
+
id: 'shell.group.authority-membership',
|
|
10
|
+
page: { size: 256 },
|
|
11
|
+
pagination: { maximumPages: 64 },
|
|
12
|
+
build: (user) => Query.from({ kind: 'node', paths: [Path.from(user)], binding: 'user' })
|
|
13
|
+
.expand({
|
|
14
|
+
via: [K.extends_with],
|
|
15
|
+
direction: 'outgoing',
|
|
16
|
+
bindings: { edge: 'authorityMembership', node: 'group' },
|
|
17
|
+
})
|
|
18
|
+
.filter({ satisfies: GROUP })
|
|
19
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
20
|
+
project: nodeIds,
|
|
21
|
+
});
|
|
22
|
+
const localGroups = defineQuery({
|
|
23
|
+
id: 'shell.group.local-membership',
|
|
24
|
+
page: { size: 256 },
|
|
25
|
+
pagination: { maximumPages: 64 },
|
|
26
|
+
build: (user) => Query.from({ kind: 'node', paths: [Path.from(user)], binding: 'user' })
|
|
27
|
+
.expand({
|
|
28
|
+
via: [S.$.class('member_of_group').schemaRef],
|
|
29
|
+
direction: 'outgoing',
|
|
30
|
+
bindings: { edge: 'localMembership', node: 'group' },
|
|
31
|
+
})
|
|
32
|
+
.filter({ satisfies: GROUP })
|
|
33
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
34
|
+
project: nodeIds,
|
|
35
|
+
});
|
|
36
|
+
export const observeGroupMembership = defineQuery.composite({
|
|
37
|
+
id: 'shell.group.observe-membership',
|
|
38
|
+
compose: (query, membership) => query.combine({
|
|
39
|
+
authority: query.query('authority', authorityGroups, membership.user),
|
|
40
|
+
local: query.query('local', localGroups, membership.user),
|
|
41
|
+
}),
|
|
42
|
+
});
|
|
43
|
+
function nodeIds(pages, _user, { ast }) {
|
|
44
|
+
const guard = completeNodeQueryGuard(pages, ast, 'Group membership');
|
|
45
|
+
return Object.freeze({ groups: guard.equals.ids, guard });
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=membership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membership.js","sourceRoot":"","sources":["../../../queries/group/membership.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,+BAA+B,CAAA;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,sBAAsB,EAAuB,MAAM,mBAAmB,CAAA;AAiB/E,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAW,CAAA;AAEnF,MAAM,eAAe,GAAG,WAAW,CAAkD;IACnF,EAAE,EAAE,kCAAkC;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACnB,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;IAChC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CACd,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SACpE,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QACrB,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE;KACzD,CAAC;SACD,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;SAC5B,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACjE,OAAO,EAAE,OAAO;CACjB,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,WAAW,CAAkD;IAC/E,EAAE,EAAE,8BAA8B;IAClC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACnB,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;IAChC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CACd,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SACpE,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC;QAC7C,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;KACrD,CAAC;SACD,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;SAC5B,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACjE,OAAO,EAAE,OAAO;CACjB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC,SAAS,CAGzD;IACA,EAAE,EAAE,gCAAgC;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAC7B,KAAK,CAAC,OAAO,CAAC;QACZ,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC;QACrE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC;KAC1D,CAAC;CACL,CAAC,CAAA;AAEF,SAAS,OAAO,CACd,KAAiB,EACjB,KAAe,EACf,EAAE,GAAG,EAAgD;IAErD,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAA;IACpE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;AAC3D,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { observeApplicationAssociation, observeApplicationPresence, resolveShellApplication, type ApplicationAssociationObservation, } from '#queries/application';
|
|
2
|
+
export { observeGroupMembership, type GroupMembership, type GroupMembershipEvidence, type GroupMembershipObservation, } from '#queries/group';
|
|
3
|
+
export { observeDefaultSpaces, observeDirectSpaceAccess, observeEffectiveSpaceAccess, type DefaultSpaceObservation, type DirectSpaceAccessObservation, type EffectiveSpaceAccessObservation, type SpaceAccessEvidence, type SpaceAccessSubject, } from '#queries/space';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,iCAAiC,GACvC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,GAChC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { observeApplicationAssociation, observeApplicationPresence, resolveShellApplication, } from '#queries/application';
|
|
2
|
+
export { observeGroupMembership, } from '#queries/group';
|
|
3
|
+
export { observeDefaultSpaces, observeDirectSpaceAccess, observeEffectiveSpaceAccess, } from '#queries/space';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,GAExB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,sBAAsB,GAIvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,GAM5B,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
import { type GraphEndpoint } from '#utils/graph-endpoint';
|
|
3
|
+
import { type NodeQueryGuard } from '#utils/query-page';
|
|
4
|
+
export interface SpaceAccessSubject {
|
|
5
|
+
readonly space: NodeId;
|
|
6
|
+
readonly user: GraphEndpoint;
|
|
7
|
+
}
|
|
8
|
+
export interface DirectSpaceAccessObservation {
|
|
9
|
+
readonly admin: SpaceAccessEvidence;
|
|
10
|
+
readonly member: SpaceAccessEvidence;
|
|
11
|
+
}
|
|
12
|
+
export interface EffectiveSpaceAccessObservation {
|
|
13
|
+
readonly administers: SpaceAccessEvidence;
|
|
14
|
+
readonly group: SpaceAccessEvidence;
|
|
15
|
+
readonly member: SpaceAccessEvidence;
|
|
16
|
+
readonly owns: SpaceAccessEvidence;
|
|
17
|
+
}
|
|
18
|
+
export interface SpaceAccessEvidence {
|
|
19
|
+
readonly spaces: readonly NodeId[];
|
|
20
|
+
readonly guard: NodeQueryGuard;
|
|
21
|
+
}
|
|
22
|
+
export declare const observeDirectSpaceAccess: import("@astrale-os/sdk/query").RawCompositeQueryDefinition<SpaceAccessSubject, DirectSpaceAccessObservation>;
|
|
23
|
+
export declare const observeEffectiveSpaceAccess: import("@astrale-os/sdk/query").RawCompositeQueryDefinition<SpaceAccessSubject, EffectiveSpaceAccessObservation>;
|
|
24
|
+
//# sourceMappingURL=access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../queries/space/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAQxD,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE/E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;CACrC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;IACpC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAC/B;AA8ED,eAAO,MAAM,wBAAwB,+GAUnC,CAAA;AAEF,eAAO,MAAM,2BAA2B,kHAYtC,CAAA"}
|