@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
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Query } from '@astrale-os/sdk/query';
|
|
2
|
+
import { defineQuery } from '@astrale-os/sdk/query';
|
|
3
|
+
import { S } from '#schema';
|
|
4
|
+
import { graphEndpointPath } from '#utils/graph-endpoint';
|
|
5
|
+
import { completeNodeQueryGuard } from '#utils/query-page';
|
|
6
|
+
const SPACE = { origin: 'shell.astrale.ai', kind: 'class', name: 'Space' };
|
|
7
|
+
const GROUP = { origin: 'shell.astrale.ai', kind: 'class', name: 'Group' };
|
|
8
|
+
const ADMINISTERS_SPACE = S.$.class('administers_space').schemaRef;
|
|
9
|
+
const MEMBER_OF_SPACE = S.$.class('member_of_space').schemaRef;
|
|
10
|
+
const OWNS_SPACE = S.$.class('owns_space').schemaRef;
|
|
11
|
+
const administeredSpaces = defineQuery({
|
|
12
|
+
id: 'shell.space.administered-spaces',
|
|
13
|
+
page: { size: 256 },
|
|
14
|
+
pagination: { maximumPages: 64 },
|
|
15
|
+
build: (user) => Query.from({ kind: 'node', paths: [graphEndpointPath(user)], binding: 'user' })
|
|
16
|
+
.expand({
|
|
17
|
+
via: [ADMINISTERS_SPACE],
|
|
18
|
+
direction: 'outgoing',
|
|
19
|
+
bindings: { edge: 'adminAccess', node: 'space' },
|
|
20
|
+
})
|
|
21
|
+
.filter({ satisfies: SPACE })
|
|
22
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
23
|
+
project: spaceAccessEvidence,
|
|
24
|
+
});
|
|
25
|
+
const memberSpaces = defineQuery({
|
|
26
|
+
id: 'shell.space.member-spaces',
|
|
27
|
+
page: { size: 256 },
|
|
28
|
+
pagination: { maximumPages: 64 },
|
|
29
|
+
build: (user) => Query.from({ kind: 'node', paths: [graphEndpointPath(user)], binding: 'user' })
|
|
30
|
+
.expand({
|
|
31
|
+
via: [MEMBER_OF_SPACE],
|
|
32
|
+
direction: 'outgoing',
|
|
33
|
+
bindings: { edge: 'memberAccess', node: 'space' },
|
|
34
|
+
})
|
|
35
|
+
.filter({ satisfies: SPACE })
|
|
36
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
37
|
+
project: spaceAccessEvidence,
|
|
38
|
+
});
|
|
39
|
+
const ownedSpaces = defineQuery({
|
|
40
|
+
id: 'shell.space.owned-spaces',
|
|
41
|
+
page: { size: 256 },
|
|
42
|
+
pagination: { maximumPages: 64 },
|
|
43
|
+
build: (user) => Query.from({ kind: 'node', paths: [graphEndpointPath(user)], binding: 'user' })
|
|
44
|
+
.expand({
|
|
45
|
+
via: [OWNS_SPACE],
|
|
46
|
+
direction: 'outgoing',
|
|
47
|
+
bindings: { edge: 'ownership', node: 'space' },
|
|
48
|
+
})
|
|
49
|
+
.filter({ satisfies: SPACE })
|
|
50
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
51
|
+
project: spaceAccessEvidence,
|
|
52
|
+
});
|
|
53
|
+
const groupSpaces = defineQuery({
|
|
54
|
+
id: 'shell.space.group-spaces',
|
|
55
|
+
page: { size: 256 },
|
|
56
|
+
pagination: { maximumPages: 64 },
|
|
57
|
+
build: (user) => Query.from({ kind: 'node', paths: [graphEndpointPath(user)], binding: 'user' })
|
|
58
|
+
.expand({
|
|
59
|
+
via: [S.$.class('member_of_group').schemaRef],
|
|
60
|
+
direction: 'outgoing',
|
|
61
|
+
bindings: { edge: 'membership', node: 'group' },
|
|
62
|
+
})
|
|
63
|
+
.filter({ satisfies: GROUP })
|
|
64
|
+
.expand({
|
|
65
|
+
via: [OWNS_SPACE, ADMINISTERS_SPACE, MEMBER_OF_SPACE],
|
|
66
|
+
direction: 'outgoing',
|
|
67
|
+
bindings: { edge: 'groupAccess', node: 'space' },
|
|
68
|
+
})
|
|
69
|
+
.filter({ satisfies: SPACE })
|
|
70
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
71
|
+
project: spaceAccessEvidence,
|
|
72
|
+
});
|
|
73
|
+
export const observeDirectSpaceAccess = defineQuery.composite({
|
|
74
|
+
id: 'shell.space.observe-direct-access',
|
|
75
|
+
compose: (query, subject) => query.combine({
|
|
76
|
+
admin: query.query('admin', administeredSpaces, subject.user),
|
|
77
|
+
member: query.query('member', memberSpaces, subject.user),
|
|
78
|
+
}),
|
|
79
|
+
});
|
|
80
|
+
export const observeEffectiveSpaceAccess = defineQuery.composite({
|
|
81
|
+
id: 'shell.space.observe-effective-access',
|
|
82
|
+
compose: (query, subject) => query.combine({
|
|
83
|
+
administers: query.query('administers', administeredSpaces, subject.user),
|
|
84
|
+
group: query.query('group', groupSpaces, subject.user),
|
|
85
|
+
member: query.query('member', memberSpaces, subject.user),
|
|
86
|
+
owns: query.query('owns', ownedSpaces, subject.user),
|
|
87
|
+
}),
|
|
88
|
+
});
|
|
89
|
+
function spaceAccessEvidence(pages, _user, { ast }) {
|
|
90
|
+
const guard = completeNodeQueryGuard(pages, ast, 'Space access');
|
|
91
|
+
return Object.freeze({ spaces: guard.equals.ids, guard });
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../queries/space/access.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
import type { QueryNodeAST } from '@astrale-os/sdk/query';
|
|
3
|
+
import { type GraphEndpoint } from '#utils/graph-endpoint';
|
|
4
|
+
import { type NodeQueryGuard } from '#utils/query-page';
|
|
5
|
+
export interface DefaultSpaceObservation {
|
|
6
|
+
readonly spaces: readonly NodeId[];
|
|
7
|
+
readonly guard: NodeQueryGuard;
|
|
8
|
+
}
|
|
9
|
+
export declare const observeDefaultSpaces: import("@astrale-os/sdk").PaginatedQueryDefinition<GraphEndpoint, DefaultSpaceObservation, QueryNodeAST>;
|
|
10
|
+
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../queries/space/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAOzD,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAI/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAC/B;AAED,eAAO,MAAM,oBAAoB,0GAkB/B,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Query } from '@astrale-os/sdk/query';
|
|
2
|
+
import { defineQuery } from '@astrale-os/sdk/query';
|
|
3
|
+
import { S } from '#schema';
|
|
4
|
+
import { graphEndpointPath } from '#utils/graph-endpoint';
|
|
5
|
+
import { completeNodeQueryGuard } from '#utils/query-page';
|
|
6
|
+
const SPACE = { origin: 'shell.astrale.ai', kind: 'class', name: 'Space' };
|
|
7
|
+
export const observeDefaultSpaces = defineQuery({
|
|
8
|
+
id: 'shell.space.observe-defaults',
|
|
9
|
+
page: { size: 256 },
|
|
10
|
+
pagination: { maximumPages: 64 },
|
|
11
|
+
build: (user) => Query.from({ kind: 'node', paths: [graphEndpointPath(user)], binding: 'user' })
|
|
12
|
+
.expand({
|
|
13
|
+
via: [S.$.class('default_space').schemaRef],
|
|
14
|
+
direction: 'outgoing',
|
|
15
|
+
bindings: { edge: 'fallback', node: 'space' },
|
|
16
|
+
})
|
|
17
|
+
.filter({ satisfies: SPACE })
|
|
18
|
+
.select({ kind: 'nodes', projection: { kind: 'reference' } }),
|
|
19
|
+
project: nodeIds,
|
|
20
|
+
});
|
|
21
|
+
function nodeIds(pages, _user, { ast }) {
|
|
22
|
+
const guard = completeNodeQueryGuard(pages, ast, 'default Space');
|
|
23
|
+
return Object.freeze({ spaces: guard.equals.ids, guard });
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../queries/space/default.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,iBAAiB,EAAsB,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,sBAAsB,EAAuB,MAAM,mBAAmB,CAAA;AAE/E,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAW,CAAA;AAOnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAI7C;IACA,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,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC5E,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;QAC3C,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;KAC9C,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,SAAS,OAAO,CACd,KAAiB,EACjB,KAAoB,EACpB,EAAE,GAAG,EAAgD;IAErD,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,CAAC,CAAA;IACjE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;AAC3D,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { observeDirectSpaceAccess, observeEffectiveSpaceAccess, type DirectSpaceAccessObservation, type EffectiveSpaceAccessObservation, type SpaceAccessEvidence, type SpaceAccessSubject, } from './access.js';
|
|
2
|
+
export { observeDefaultSpaces, type DefaultSpaceObservation } from './default.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../queries/space/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../queries/space/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAK5B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,oBAAoB,EAAgC,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
import type { ApplicationAssociationObservation } from '#queries/application';
|
|
3
|
+
export type ApplicationAssociationState = {
|
|
4
|
+
readonly kind: 'absent';
|
|
5
|
+
} | {
|
|
6
|
+
readonly kind: 'present';
|
|
7
|
+
readonly application: NodeId;
|
|
8
|
+
} | {
|
|
9
|
+
readonly kind: 'conflict';
|
|
10
|
+
readonly count: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function classifyApplicationAssociation(observation: ApplicationAssociationObservation): ApplicationAssociationState;
|
|
13
|
+
//# sourceMappingURL=association.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"association.d.ts","sourceRoot":"","sources":["../../../rules/application/association.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAA;AAE7E,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzD,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,iCAAiC,GAC7C,2BAA2B,CAO7B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function classifyApplicationAssociation(observation) {
|
|
2
|
+
const matches = [...new Set(observation.applications)];
|
|
3
|
+
if (matches.length === 0)
|
|
4
|
+
return Object.freeze({ kind: 'absent' });
|
|
5
|
+
if (matches.length === 1) {
|
|
6
|
+
return Object.freeze({ kind: 'present', application: matches[0] });
|
|
7
|
+
}
|
|
8
|
+
return Object.freeze({ kind: 'conflict', count: matches.length });
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=association.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"association.js","sourceRoot":"","sources":["../../../rules/application/association.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,8BAA8B,CAC5C,WAA8C;IAE9C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAA;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAClE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AACnE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { classifyApplicationAssociation, type ApplicationAssociationState } from './association.js';
|
|
2
|
+
export { decideApplicationRemoval, type ApplicationRemovalDecision } from './removal.js';
|
|
3
|
+
export { materializeInstallApplicationResult } from './result.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../rules/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,KAAK,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AACnG,OAAO,EAAE,wBAAwB,EAAE,KAAK,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../rules/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAoC,MAAM,kBAAkB,CAAA;AACnG,OAAO,EAAE,wBAAwB,EAAmC,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
export type ApplicationRemovalDecision = {
|
|
3
|
+
readonly kind: 'allowed';
|
|
4
|
+
} | {
|
|
5
|
+
readonly kind: 'protected-shell-application';
|
|
6
|
+
};
|
|
7
|
+
export declare function decideApplicationRemoval(input: {
|
|
8
|
+
readonly application: NodeId;
|
|
9
|
+
readonly shellApplication: NodeId;
|
|
10
|
+
}): ApplicationRemovalDecision;
|
|
11
|
+
//# sourceMappingURL=removal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removal.d.ts","sourceRoot":"","sources":["../../../rules/application/removal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,MAAM,MAAM,0BAA0B,GAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAA;CAAE,CAAA;AAEpD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC,GAAG,0BAA0B,CAI7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removal.js","sourceRoot":"","sources":["../../../rules/application/removal.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,wBAAwB,CAAC,KAGxC;IACC,OAAO,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,gBAAgB;QACjD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;QACxD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
import type { InstallApplicationInput, InstallApplicationResult } from '#schema/application';
|
|
3
|
+
export declare function materializeInstallApplicationResult(input: {
|
|
4
|
+
readonly application: NodeId;
|
|
5
|
+
readonly association: InstallApplicationInput;
|
|
6
|
+
readonly space: NodeId;
|
|
7
|
+
}): InstallApplicationResult;
|
|
8
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../rules/application/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAIxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAE5F,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,GAAG,wBAAwB,CAc3B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Path } from '@astrale-os/sdk/graph/path';
|
|
2
|
+
export function materializeInstallApplicationResult(input) {
|
|
3
|
+
return Object.freeze({
|
|
4
|
+
application: Object.freeze({
|
|
5
|
+
id: input.application,
|
|
6
|
+
path: Path.id(input.application).raw,
|
|
7
|
+
class: 'Application',
|
|
8
|
+
}),
|
|
9
|
+
domain: Path.from(input.association.domain).raw,
|
|
10
|
+
space: Object.freeze({
|
|
11
|
+
id: input.space,
|
|
12
|
+
path: Path.from(input.association.space).raw,
|
|
13
|
+
class: 'Space',
|
|
14
|
+
}),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../rules/application/result.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAIjD,MAAM,UAAU,mCAAmC,CAAC,KAInD;IACC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,EAAE,EAAE,KAAK,CAAC,WAAW;YACrB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG;YACpC,KAAK,EAAE,aAAsB;SAC9B,CAAC;QACF,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG;QAC/C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,KAAK,CAAC,KAAK;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG;YAC5C,KAAK,EAAE,OAAgB;SACxB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../rules/group/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../rules/group/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA6B,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
import type { GroupMembershipObservation } from '#queries/group';
|
|
3
|
+
export type GroupMembershipState = 'absent' | 'complete' | 'local-only' | 'authority-only';
|
|
4
|
+
export declare function classifyGroupMembership(group: NodeId, observation: GroupMembershipObservation): GroupMembershipState;
|
|
5
|
+
//# sourceMappingURL=membership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membership.d.ts","sourceRoot":"","sources":["../../../rules/group/membership.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAEhE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,CAAA;AAE1F,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,0BAA0B,GACtC,oBAAoB,CAOtB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function classifyGroupMembership(group, observation) {
|
|
2
|
+
const local = observation.local.groups.includes(group);
|
|
3
|
+
const authority = observation.authority.groups.includes(group);
|
|
4
|
+
if (local && authority)
|
|
5
|
+
return 'complete';
|
|
6
|
+
if (local)
|
|
7
|
+
return 'local-only';
|
|
8
|
+
if (authority)
|
|
9
|
+
return 'authority-only';
|
|
10
|
+
return 'absent';
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=membership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membership.js","sourceRoot":"","sources":["../../../rules/group/membership.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,WAAuC;IAEvC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9D,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO,UAAU,CAAA;IACzC,IAAI,KAAK;QAAE,OAAO,YAAY,CAAA;IAC9B,IAAI,SAAS;QAAE,OAAO,gBAAgB,CAAA;IACtC,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { classifyApplicationAssociation, decideApplicationRemoval, materializeInstallApplicationResult, type ApplicationAssociationState, type ApplicationRemovalDecision, } from '#rules/application';
|
|
2
|
+
export { classifyGroupMembership, type GroupMembershipState } from '#rules/group';
|
|
3
|
+
export { classifyDirectSpaceAccess, distinctDefaultSpaces, effectiveSpaceAccessGuard, hasEffectiveSpaceAccess, isOnlyDefaultSpace, type DirectSpaceAccessState, } from '#rules/space';
|
|
4
|
+
export { decideSingleUserGrant, isSelfGrantedUser, type UserGrantDecision } from '#rules/user';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,mCAAmC,EACnC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,GAChC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { classifyApplicationAssociation, decideApplicationRemoval, materializeInstallApplicationResult, } from '#rules/application';
|
|
2
|
+
export { classifyGroupMembership } from '#rules/group';
|
|
3
|
+
export { classifyDirectSpaceAccess, distinctDefaultSpaces, effectiveSpaceAccessGuard, hasEffectiveSpaceAccess, isOnlyDefaultSpace, } from '#rules/space';
|
|
4
|
+
export { decideSingleUserGrant, isSelfGrantedUser } from '#rules/user';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,mCAAmC,GAGpC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,uBAAuB,EAA6B,MAAM,cAAc,CAAA;AACjF,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,GAEnB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAA0B,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
import type { DirectSpaceAccessObservation, EffectiveSpaceAccessObservation } from '#queries/space';
|
|
3
|
+
import type { NodeQueryGuard } from '#utils/query-page';
|
|
4
|
+
export type DirectSpaceAccessState = 'none' | 'member' | 'admin' | 'conflict';
|
|
5
|
+
export declare function classifyDirectSpaceAccess(space: NodeId, observation: DirectSpaceAccessObservation): DirectSpaceAccessState;
|
|
6
|
+
export declare function hasEffectiveSpaceAccess(space: NodeId, observation: EffectiveSpaceAccessObservation): boolean;
|
|
7
|
+
export declare function effectiveSpaceAccessGuard(space: NodeId, observation: EffectiveSpaceAccessObservation): NodeQueryGuard | undefined;
|
|
8
|
+
//# sourceMappingURL=access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../rules/space/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,KAAK,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAA;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAA;AAE7E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,4BAA4B,GACxC,sBAAsB,CAOxB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,+BAA+B,GAC3C,OAAO,CAET;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,+BAA+B,GAC3C,cAAc,GAAG,SAAS,CAE5B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function classifyDirectSpaceAccess(space, observation) {
|
|
2
|
+
const admin = observation.admin.spaces.includes(space);
|
|
3
|
+
const member = observation.member.spaces.includes(space);
|
|
4
|
+
if (admin && member)
|
|
5
|
+
return 'conflict';
|
|
6
|
+
if (admin)
|
|
7
|
+
return 'admin';
|
|
8
|
+
if (member)
|
|
9
|
+
return 'member';
|
|
10
|
+
return 'none';
|
|
11
|
+
}
|
|
12
|
+
export function hasEffectiveSpaceAccess(space, observation) {
|
|
13
|
+
return effectiveSpaceAccessGuard(space, observation) !== undefined;
|
|
14
|
+
}
|
|
15
|
+
export function effectiveSpaceAccessGuard(space, observation) {
|
|
16
|
+
return Object.values(observation).find((evidence) => evidence.spaces.includes(space))?.guard;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../rules/space/access.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,yBAAyB,CACvC,KAAa,EACb,WAAyC;IAEzC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,KAAK,IAAI,MAAM;QAAE,OAAO,UAAU,CAAA;IACtC,IAAI,KAAK;QAAE,OAAO,OAAO,CAAA;IACzB,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAA;IAC3B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,WAA4C;IAE5C,OAAO,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,SAAS,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAa,EACb,WAA4C;IAE5C,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAA;AAC9F,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/sdk/graph/node';
|
|
2
|
+
export declare function distinctDefaultSpaces(spaces: readonly NodeId[]): readonly NodeId[];
|
|
3
|
+
export declare function isOnlyDefaultSpace(spaces: readonly NodeId[], selected: NodeId): boolean;
|
|
4
|
+
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../rules/space/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAElF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../rules/space/default.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAyB,EAAE,QAAgB;IAC5E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAA;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../rules/space/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../rules/space/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,GAExB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IssuerId, ProvisionRequest, ProvisionResult, Subject } from '@astrale-os/sdk/auth';
|
|
2
|
+
import { LocalBinding } from '@astrale-os/sdk/graph/model';
|
|
3
|
+
import type { EnsureShellUserResult } from '#schema/user';
|
|
4
|
+
export interface EnsureShellUserInput {
|
|
5
|
+
readonly operationId: string;
|
|
6
|
+
readonly identity: Readonly<{
|
|
7
|
+
readonly issuer: IssuerId;
|
|
8
|
+
readonly subject: Subject;
|
|
9
|
+
}>;
|
|
10
|
+
readonly personalSpaceName: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ShellUserProvisioning {
|
|
13
|
+
readonly request: ProvisionRequest;
|
|
14
|
+
readonly userBinding: ReturnType<typeof LocalBinding>;
|
|
15
|
+
readonly personalSpaceBinding: ReturnType<typeof LocalBinding>;
|
|
16
|
+
}
|
|
17
|
+
/** Build the complete Shell-owned identity provisioning request without performing I/O. */
|
|
18
|
+
export declare function buildShellUserProvisioning(input: EnsureShellUserInput): ShellUserProvisioning;
|
|
19
|
+
/** Project one provision receipt into stable graph references owned by Shell's public contract. */
|
|
20
|
+
export declare function projectShellUserProvisioning(provisioning: ShellUserProvisioning, result: ProvisionResult): EnsureShellUserResult;
|
|
21
|
+
//# sourceMappingURL=ensure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../../../rules/user/ensure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGhG,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAK1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAIzD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;QACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAC1B,CAAC,CAAA;IACF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;IACrD,QAAQ,CAAC,oBAAoB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;CAC/D;AAED,2FAA2F;AAC3F,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CAwC7F;AAED,mGAAmG;AACnG,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,qBAAqB,EACnC,MAAM,EAAE,eAAe,GACtB,qBAAqB,CAKvB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ClassPath } from '@astrale-os/sdk/graph';
|
|
2
|
+
import { LocalBinding } from '@astrale-os/sdk/graph/model';
|
|
3
|
+
import { Path } from '@astrale-os/sdk/graph/path';
|
|
4
|
+
import { MutationAST } from '@astrale-os/sdk/mutation';
|
|
5
|
+
import { K } from '@astrale-os/sdk/schema/kernel';
|
|
6
|
+
import { S } from '#schema';
|
|
7
|
+
/** Build the complete Shell-owned identity provisioning request without performing I/O. */
|
|
8
|
+
export function buildShellUserProvisioning(input) {
|
|
9
|
+
const user = LocalBinding('user');
|
|
10
|
+
const personalSpace = LocalBinding('personalSpace');
|
|
11
|
+
const mutation = MutationAST.build((builder) => {
|
|
12
|
+
const createdUser = builder.createNode({
|
|
13
|
+
as: user,
|
|
14
|
+
class: ClassPath.from(S.$.class('User')),
|
|
15
|
+
props: {},
|
|
16
|
+
});
|
|
17
|
+
const createdSpace = builder.createNode({
|
|
18
|
+
as: personalSpace,
|
|
19
|
+
class: ClassPath.from(S.$.class('Space')),
|
|
20
|
+
props: { [K.Named.$.property('name').key]: input.personalSpaceName },
|
|
21
|
+
});
|
|
22
|
+
builder.createEdge({
|
|
23
|
+
class: ClassPath.from(S.$.class('owns_space')),
|
|
24
|
+
source: createdUser,
|
|
25
|
+
target: createdSpace,
|
|
26
|
+
});
|
|
27
|
+
builder.createEdge({
|
|
28
|
+
class: ClassPath.from(S.$.class('default_space')),
|
|
29
|
+
source: createdUser,
|
|
30
|
+
target: createdSpace,
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
return Object.freeze({
|
|
34
|
+
request: Object.freeze({
|
|
35
|
+
idempotencyKey: input.operationId,
|
|
36
|
+
mutation,
|
|
37
|
+
identities: Object.freeze({
|
|
38
|
+
[user]: Object.freeze({
|
|
39
|
+
issuer: input.identity.issuer,
|
|
40
|
+
subject: input.identity.subject,
|
|
41
|
+
}),
|
|
42
|
+
}),
|
|
43
|
+
}),
|
|
44
|
+
userBinding: user,
|
|
45
|
+
personalSpaceBinding: personalSpace,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/** Project one provision receipt into stable graph references owned by Shell's public contract. */
|
|
49
|
+
export function projectShellUserProvisioning(provisioning, result) {
|
|
50
|
+
return Object.freeze({
|
|
51
|
+
user: createdNode(result, provisioning.userBinding, 'User'),
|
|
52
|
+
personalSpace: createdNode(result, provisioning.personalSpaceBinding, 'personal Space'),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function createdNode(result, binding, label) {
|
|
56
|
+
const id = result.createdNodes[binding];
|
|
57
|
+
if (id === undefined)
|
|
58
|
+
throw new TypeError(`Shell provisioning omitted its ${label} identity.`);
|
|
59
|
+
return Path.id(id).raw;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ensure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure.js","sourceRoot":"","sources":["../../../rules/user/ensure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IdentityId } from '@astrale-os/sdk/auth';
|
|
2
|
+
import type { Caller } from '@astrale-os/sdk/domain';
|
|
3
|
+
export type UserGrantDecision = {
|
|
4
|
+
readonly kind: 'accepted';
|
|
5
|
+
readonly user: IdentityId;
|
|
6
|
+
} | {
|
|
7
|
+
readonly kind: 'unauthenticated';
|
|
8
|
+
} | {
|
|
9
|
+
readonly kind: 'composed-grant';
|
|
10
|
+
};
|
|
11
|
+
export declare function decideSingleUserGrant(actor: Caller): UserGrantDecision;
|
|
12
|
+
export declare function isSelfGrantedUser(actor: Caller, user: IdentityId): boolean;
|
|
13
|
+
//# sourceMappingURL=grant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grant.d.ts","sourceRoot":"","sources":["../../../rules/user/grant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAEpD,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAA;AAEvC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAMtE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAE1E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function decideSingleUserGrant(actor) {
|
|
2
|
+
if (actor.kind !== 'authenticated')
|
|
3
|
+
return Object.freeze({ kind: 'unauthenticated' });
|
|
4
|
+
const expression = actor.authority.expr;
|
|
5
|
+
return expression.kind === 'identity'
|
|
6
|
+
? Object.freeze({ kind: 'accepted', user: expression.id })
|
|
7
|
+
: Object.freeze({ kind: 'composed-grant' });
|
|
8
|
+
}
|
|
9
|
+
export function isSelfGrantedUser(actor, user) {
|
|
10
|
+
return actor.kind === 'authenticated' && actor.principal === user;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=grant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grant.js","sourceRoot":"","sources":["../../../rules/user/grant.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACrF,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA;IACvC,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU;QACnC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;QAC1D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,IAAgB;IAC/D,OAAO,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;AACnE,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { decideSingleUserGrant, isSelfGrantedUser, type UserGrantDecision } from './grant.js';
|
|
2
|
+
export { buildShellUserProvisioning, projectShellUserProvisioning, type EnsureShellUserInput, type ShellUserProvisioning, } from './ensure.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../rules/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC7F,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../rules/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAA0B,MAAM,YAAY,CAAA;AAC7F,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAG7B,MAAM,aAAa,CAAA"}
|