@synchronized-console/shared 2.25.7 → 2.31.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/acc/helpers/types.d.ts +46 -0
- package/dist/commonjs/acc/helpers/types.d.ts.map +1 -0
- package/dist/commonjs/acc/helpers/types.js +3 -0
- package/dist/commonjs/acc/helpers/types.js.map +1 -0
- package/dist/commonjs/acc/index.d.ts +2 -0
- package/dist/commonjs/acc/index.d.ts.map +1 -0
- package/dist/commonjs/acc/index.js +18 -0
- package/dist/commonjs/acc/index.js.map +1 -0
- package/dist/commonjs/authz/checks/dashboards.d.ts +5 -0
- package/dist/commonjs/authz/checks/dashboards.d.ts.map +1 -0
- package/dist/commonjs/authz/checks/dashboards.js +11 -0
- package/dist/commonjs/authz/checks/dashboards.js.map +1 -0
- package/dist/commonjs/authz/domain/authErrors.d.ts +98 -3
- package/dist/commonjs/authz/domain/authErrors.d.ts.map +1 -1
- package/dist/commonjs/authz/domain/authErrors.js +66 -3
- package/dist/commonjs/authz/domain/authErrors.js.map +1 -1
- package/dist/commonjs/authz/domain/automate/operations.d.ts +5 -0
- package/dist/commonjs/authz/domain/automate/operations.d.ts.map +1 -0
- package/dist/commonjs/authz/domain/automate/operations.js +3 -0
- package/dist/commonjs/authz/domain/automate/operations.js.map +1 -0
- package/dist/commonjs/authz/domain/automate/types.d.ts +10 -0
- package/dist/commonjs/authz/domain/automate/types.d.ts.map +1 -0
- package/dist/commonjs/authz/domain/automate/types.js +3 -0
- package/dist/commonjs/authz/domain/automate/types.js.map +1 -0
- package/dist/commonjs/authz/domain/context.d.ts +12 -0
- package/dist/commonjs/authz/domain/context.d.ts.map +1 -1
- package/dist/commonjs/authz/domain/dashboards/operations.d.ts +5 -0
- package/dist/commonjs/authz/domain/dashboards/operations.d.ts.map +1 -0
- package/dist/commonjs/authz/domain/dashboards/operations.js +3 -0
- package/dist/commonjs/authz/domain/dashboards/operations.js.map +1 -0
- package/dist/commonjs/authz/domain/dashboards/types.d.ts +7 -0
- package/dist/commonjs/authz/domain/dashboards/types.d.ts.map +1 -0
- package/dist/commonjs/authz/domain/dashboards/types.js +3 -0
- package/dist/commonjs/authz/domain/dashboards/types.js.map +1 -0
- package/dist/commonjs/authz/domain/loaders.d.ts +63 -45
- package/dist/commonjs/authz/domain/loaders.d.ts.map +1 -1
- package/dist/commonjs/authz/domain/loaders.js +27 -21
- package/dist/commonjs/authz/domain/loaders.js.map +1 -1
- package/dist/commonjs/authz/domain/savedViews/operations.d.ts +10 -0
- package/dist/commonjs/authz/domain/savedViews/operations.d.ts.map +1 -0
- package/dist/commonjs/authz/domain/savedViews/operations.js +3 -0
- package/dist/commonjs/authz/domain/savedViews/operations.js.map +1 -0
- package/dist/commonjs/authz/domain/savedViews/types.d.ts +26 -0
- package/dist/commonjs/authz/domain/savedViews/types.d.ts.map +1 -0
- package/dist/commonjs/authz/domain/savedViews/types.js +6 -0
- package/dist/commonjs/authz/domain/savedViews/types.js.map +1 -0
- package/dist/commonjs/authz/domain/workspaces/operations.d.ts +2 -1
- package/dist/commonjs/authz/domain/workspaces/operations.d.ts.map +1 -1
- package/dist/commonjs/authz/domain/workspaces/types.d.ts +3 -0
- package/dist/commonjs/authz/domain/workspaces/types.d.ts.map +1 -1
- package/dist/commonjs/authz/fragments/automate.d.ts +7 -0
- package/dist/commonjs/authz/fragments/automate.d.ts.map +1 -0
- package/dist/commonjs/authz/fragments/automate.js +22 -0
- package/dist/commonjs/authz/fragments/automate.js.map +1 -0
- package/dist/commonjs/authz/fragments/dashboards.d.ts +8 -0
- package/dist/commonjs/authz/fragments/dashboards.d.ts.map +1 -0
- package/dist/commonjs/authz/fragments/dashboards.js +48 -0
- package/dist/commonjs/authz/fragments/dashboards.js.map +1 -0
- package/dist/commonjs/authz/fragments/projects.d.ts +13 -1
- package/dist/commonjs/authz/fragments/projects.d.ts.map +1 -1
- package/dist/commonjs/authz/fragments/projects.js +25 -1
- package/dist/commonjs/authz/fragments/projects.js.map +1 -1
- package/dist/commonjs/authz/fragments/savedViews.d.ts +30 -0
- package/dist/commonjs/authz/fragments/savedViews.d.ts.map +1 -0
- package/dist/commonjs/authz/fragments/savedViews.js +122 -0
- package/dist/commonjs/authz/fragments/savedViews.js.map +1 -0
- package/dist/commonjs/authz/fragments/workspaces.d.ts +9 -1
- package/dist/commonjs/authz/fragments/workspaces.d.ts.map +1 -1
- package/dist/commonjs/authz/fragments/workspaces.js +47 -1
- package/dist/commonjs/authz/fragments/workspaces.js.map +1 -1
- package/dist/commonjs/authz/helpers/graphql.d.ts +1 -1
- package/dist/commonjs/authz/helpers/graphql.d.ts.map +1 -1
- package/dist/commonjs/authz/helpers/graphql.js +1 -1
- package/dist/commonjs/authz/helpers/graphql.js.map +1 -1
- package/dist/commonjs/authz/index.d.ts +1 -0
- package/dist/commonjs/authz/index.d.ts.map +1 -1
- package/dist/commonjs/authz/index.js +1 -0
- package/dist/commonjs/authz/index.js.map +1 -1
- package/dist/commonjs/authz/policies/automate/function/canEditFunction.d.ts +10 -0
- package/dist/commonjs/authz/policies/automate/function/canEditFunction.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/automate/function/canEditFunction.js +19 -0
- package/dist/commonjs/authz/policies/automate/function/canEditFunction.js.map +1 -0
- package/dist/commonjs/authz/policies/dashboard/canCreateToken.d.ts +10 -0
- package/dist/commonjs/authz/policies/dashboard/canCreateToken.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/dashboard/canCreateToken.js +45 -0
- package/dist/commonjs/authz/policies/dashboard/canCreateToken.js.map +1 -0
- package/dist/commonjs/authz/policies/dashboard/canDelete.d.ts +10 -0
- package/dist/commonjs/authz/policies/dashboard/canDelete.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/dashboard/canDelete.js +45 -0
- package/dist/commonjs/authz/policies/dashboard/canDelete.js.map +1 -0
- package/dist/commonjs/authz/policies/dashboard/canEdit.d.ts +10 -0
- package/dist/commonjs/authz/policies/dashboard/canEdit.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/dashboard/canEdit.js +43 -0
- package/dist/commonjs/authz/policies/dashboard/canEdit.js.map +1 -0
- package/dist/commonjs/authz/policies/dashboard/canRead.d.ts +10 -0
- package/dist/commonjs/authz/policies/dashboard/canRead.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/dashboard/canRead.js +42 -0
- package/dist/commonjs/authz/policies/dashboard/canRead.js.map +1 -0
- package/dist/commonjs/authz/policies/index.d.ts +62 -1
- package/dist/commonjs/authz/policies/index.d.ts.map +1 -1
- package/dist/commonjs/authz/policies/index.js +52 -4
- package/dist/commonjs/authz/policies/index.js.map +1 -1
- package/dist/commonjs/authz/policies/project/canLoad.d.ts.map +1 -1
- package/dist/commonjs/authz/policies/project/canLoad.js +6 -0
- package/dist/commonjs/authz/policies/project/canLoad.js.map +1 -1
- package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.d.ts +10 -0
- package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.js +35 -0
- package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.js.map +1 -0
- package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.d.ts +10 -0
- package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.js +52 -0
- package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canCreate.d.ts +6 -0
- package/dist/commonjs/authz/policies/project/savedViews/canCreate.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canCreate.js +31 -0
- package/dist/commonjs/authz/policies/project/savedViews/canCreate.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts +6 -0
- package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js +61 -0
- package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.d.ts +6 -0
- package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.js +14 -0
- package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.d.ts +6 -0
- package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.js +14 -0
- package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canMove.d.ts +6 -0
- package/dist/commonjs/authz/policies/project/savedViews/canMove.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canMove.js +14 -0
- package/dist/commonjs/authz/policies/project/savedViews/canMove.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canRead.d.ts +11 -0
- package/dist/commonjs/authz/policies/project/savedViews/canRead.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canRead.js +15 -0
- package/dist/commonjs/authz/policies/project/savedViews/canRead.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.d.ts +6 -0
- package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.js +45 -0
- package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canUpdate.d.ts +6 -0
- package/dist/commonjs/authz/policies/project/savedViews/canUpdate.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canUpdate.js +14 -0
- package/dist/commonjs/authz/policies/project/savedViews/canUpdate.js.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.d.ts +6 -0
- package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.js +14 -0
- package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.js.map +1 -0
- package/dist/commonjs/authz/policies/workspace/canCreateDashboards.d.ts +10 -0
- package/dist/commonjs/authz/policies/workspace/canCreateDashboards.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/workspace/canCreateDashboards.js +39 -0
- package/dist/commonjs/authz/policies/workspace/canCreateDashboards.js.map +1 -0
- package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.d.ts +10 -0
- package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.js +51 -0
- package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.js.map +1 -0
- package/dist/commonjs/authz/policies/workspace/canListDashboards.d.ts +10 -0
- package/dist/commonjs/authz/policies/workspace/canListDashboards.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/workspace/canListDashboards.js +26 -0
- package/dist/commonjs/authz/policies/workspace/canListDashboards.js.map +1 -0
- package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.d.ts +1 -1
- package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.d.ts.map +1 -1
- package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.js +1 -20
- package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.js.map +1 -1
- package/dist/commonjs/authz/policies/workspace/{canUpdateEmbedOptions.d.ts → canUseWorkspacePlanFeature.d.ts} +13 -5
- package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.d.ts.map +1 -0
- package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.js +27 -0
- package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.js.map +1 -0
- package/dist/commonjs/automate/helpers/types.d.ts +313 -51
- package/dist/commonjs/automate/helpers/types.d.ts.map +1 -1
- package/dist/commonjs/automate/helpers/types.js +12 -2
- package/dist/commonjs/automate/helpers/types.js.map +1 -1
- package/dist/commonjs/blobs/index.d.ts +17 -0
- package/dist/commonjs/blobs/index.d.ts.map +1 -0
- package/dist/commonjs/blobs/index.js +114 -0
- package/dist/commonjs/blobs/index.js.map +1 -0
- package/dist/commonjs/core/constants.d.ts +4 -2
- package/dist/commonjs/core/constants.d.ts.map +1 -1
- package/dist/commonjs/core/constants.js +24 -4
- package/dist/commonjs/core/constants.js.map +1 -1
- package/dist/commonjs/core/helpers/encoding.d.ts +2 -0
- package/dist/commonjs/core/helpers/encoding.d.ts.map +1 -0
- package/dist/commonjs/core/helpers/encoding.js +15 -0
- package/dist/commonjs/core/helpers/encoding.js.map +1 -0
- package/dist/commonjs/core/helpers/error.d.ts +11 -0
- package/dist/commonjs/core/helpers/error.d.ts.map +1 -1
- package/dist/commonjs/core/helpers/error.js +60 -2
- package/dist/commonjs/core/helpers/error.js.map +1 -1
- package/dist/commonjs/core/helpers/url.d.ts +24 -0
- package/dist/commonjs/core/helpers/url.d.ts.map +1 -1
- package/dist/commonjs/core/helpers/url.js +30 -0
- package/dist/commonjs/core/helpers/url.js.map +1 -1
- package/dist/commonjs/core/helpers/utility.d.ts +16 -0
- package/dist/commonjs/core/helpers/utility.d.ts.map +1 -1
- package/dist/commonjs/core/helpers/utility.js +22 -1
- package/dist/commonjs/core/helpers/utility.js.map +1 -1
- package/dist/commonjs/core/index.d.ts +2 -0
- package/dist/commonjs/core/index.d.ts.map +1 -1
- package/dist/commonjs/core/index.js +2 -0
- package/dist/commonjs/core/index.js.map +1 -1
- package/dist/commonjs/core/utils/base64.d.ts +3 -0
- package/dist/commonjs/core/utils/base64.d.ts.map +1 -0
- package/dist/commonjs/core/utils/base64.js +25 -0
- package/dist/commonjs/core/utils/base64.js.map +1 -0
- package/dist/commonjs/environment/{multiRegionConfig.d.ts → db.d.ts} +54 -5
- package/dist/commonjs/environment/db.d.ts.map +1 -0
- package/dist/commonjs/environment/{multiRegionConfig.js → db.js} +45 -10
- package/dist/commonjs/environment/db.js.map +1 -0
- package/dist/commonjs/environment/featureFlags.d.ts +25 -0
- package/dist/commonjs/environment/featureFlags.d.ts.map +1 -0
- package/dist/commonjs/environment/featureFlags.js +6 -0
- package/dist/commonjs/environment/featureFlags.js.map +1 -0
- package/dist/commonjs/environment/index.d.ts +2 -15
- package/dist/commonjs/environment/index.d.ts.map +1 -1
- package/dist/commonjs/environment/index.js +44 -7
- package/dist/commonjs/environment/index.js.map +1 -1
- package/dist/commonjs/environment/node.d.ts +5 -0
- package/dist/commonjs/environment/node.d.ts.map +1 -0
- package/dist/commonjs/environment/node.js +15 -0
- package/dist/commonjs/environment/node.js.map +1 -0
- package/dist/commonjs/images/base64.d.ts +2 -0
- package/dist/commonjs/images/base64.d.ts.map +1 -0
- package/dist/commonjs/images/base64.js +19 -0
- package/dist/commonjs/images/base64.js.map +1 -0
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +1 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/observability/index.d.ts.map +1 -1
- package/dist/commonjs/observability/index.js +19 -2
- package/dist/commonjs/observability/index.js.map +1 -1
- package/dist/commonjs/queue/config.d.ts +3 -0
- package/dist/commonjs/queue/config.d.ts.map +1 -1
- package/dist/commonjs/queue/config.js +14 -5
- package/dist/commonjs/queue/config.js.map +1 -1
- package/dist/commonjs/rich-text-editor/helpers/index.d.ts +13 -1
- package/dist/commonjs/rich-text-editor/helpers/index.d.ts.map +1 -1
- package/dist/commonjs/rich-text-editor/helpers/index.js +1 -0
- package/dist/commonjs/rich-text-editor/helpers/index.js.map +1 -1
- package/dist/commonjs/saved-views/helpers/defaultGroup.d.ts +23 -0
- package/dist/commonjs/saved-views/helpers/defaultGroup.d.ts.map +1 -0
- package/dist/commonjs/saved-views/helpers/defaultGroup.js +58 -0
- package/dist/commonjs/saved-views/helpers/defaultGroup.js.map +1 -0
- package/dist/commonjs/saved-views/index.d.ts +2 -0
- package/dist/commonjs/saved-views/index.d.ts.map +1 -0
- package/dist/commonjs/saved-views/index.js +18 -0
- package/dist/commonjs/saved-views/index.js.map +1 -0
- package/dist/commonjs/viewer/helpers/route.d.ts +42 -7
- package/dist/commonjs/viewer/helpers/route.d.ts.map +1 -1
- package/dist/commonjs/viewer/helpers/route.js +149 -38
- package/dist/commonjs/viewer/helpers/route.js.map +1 -1
- package/dist/commonjs/viewer/helpers/state.d.ts +59 -6
- package/dist/commonjs/viewer/helpers/state.d.ts.map +1 -1
- package/dist/commonjs/viewer/helpers/state.js +100 -23
- package/dist/commonjs/viewer/helpers/state.js.map +1 -1
- package/dist/commonjs/workers/fileimport/job.d.ts +85 -9
- package/dist/commonjs/workers/fileimport/job.d.ts.map +1 -1
- package/dist/commonjs/workers/fileimport/job.js +21 -10
- package/dist/commonjs/workers/fileimport/job.js.map +1 -1
- package/dist/commonjs/workers/previews/job.d.ts +37 -20
- package/dist/commonjs/workers/previews/job.d.ts.map +1 -1
- package/dist/commonjs/workers/previews/job.js +23 -2
- package/dist/commonjs/workers/previews/job.js.map +1 -1
- package/dist/commonjs/workspaces/helpers/features.d.ts +55 -5
- package/dist/commonjs/workspaces/helpers/features.d.ts.map +1 -1
- package/dist/commonjs/workspaces/helpers/features.js +180 -114
- package/dist/commonjs/workspaces/helpers/features.js.map +1 -1
- package/dist/commonjs/workspaces/helpers/plans.d.ts +1 -0
- package/dist/commonjs/workspaces/helpers/plans.d.ts.map +1 -1
- package/dist/commonjs/workspaces/helpers/plans.js.map +1 -1
- package/dist/esm/acc/helpers/types.d.ts +46 -0
- package/dist/esm/acc/helpers/types.d.ts.map +1 -0
- package/dist/esm/acc/helpers/types.js +2 -0
- package/dist/esm/acc/helpers/types.js.map +1 -0
- package/dist/esm/acc/index.d.ts +2 -0
- package/dist/esm/acc/index.d.ts.map +1 -0
- package/dist/esm/acc/index.js +2 -0
- package/dist/esm/acc/index.js.map +1 -0
- package/dist/esm/authz/checks/dashboards.d.ts +5 -0
- package/dist/esm/authz/checks/dashboards.d.ts.map +1 -0
- package/dist/esm/authz/checks/dashboards.js +7 -0
- package/dist/esm/authz/checks/dashboards.js.map +1 -0
- package/dist/esm/authz/domain/authErrors.d.ts +98 -3
- package/dist/esm/authz/domain/authErrors.d.ts.map +1 -1
- package/dist/esm/authz/domain/authErrors.js +65 -2
- package/dist/esm/authz/domain/authErrors.js.map +1 -1
- package/dist/esm/authz/domain/automate/operations.d.ts +5 -0
- package/dist/esm/authz/domain/automate/operations.d.ts.map +1 -0
- package/dist/esm/authz/domain/automate/operations.js +2 -0
- package/dist/esm/authz/domain/automate/operations.js.map +1 -0
- package/dist/esm/authz/domain/automate/types.d.ts +10 -0
- package/dist/esm/authz/domain/automate/types.d.ts.map +1 -0
- package/dist/esm/authz/domain/automate/types.js +2 -0
- package/dist/esm/authz/domain/automate/types.js.map +1 -0
- package/dist/esm/authz/domain/context.d.ts +12 -0
- package/dist/esm/authz/domain/context.d.ts.map +1 -1
- package/dist/esm/authz/domain/dashboards/operations.d.ts +5 -0
- package/dist/esm/authz/domain/dashboards/operations.d.ts.map +1 -0
- package/dist/esm/authz/domain/dashboards/operations.js +2 -0
- package/dist/esm/authz/domain/dashboards/operations.js.map +1 -0
- package/dist/esm/authz/domain/dashboards/types.d.ts +7 -0
- package/dist/esm/authz/domain/dashboards/types.d.ts.map +1 -0
- package/dist/esm/authz/domain/dashboards/types.js +2 -0
- package/dist/esm/authz/domain/dashboards/types.js.map +1 -0
- package/dist/esm/authz/domain/loaders.d.ts +63 -45
- package/dist/esm/authz/domain/loaders.d.ts.map +1 -1
- package/dist/esm/authz/domain/loaders.js +27 -21
- package/dist/esm/authz/domain/loaders.js.map +1 -1
- package/dist/esm/authz/domain/savedViews/operations.d.ts +10 -0
- package/dist/esm/authz/domain/savedViews/operations.d.ts.map +1 -0
- package/dist/esm/authz/domain/savedViews/operations.js +2 -0
- package/dist/esm/authz/domain/savedViews/operations.js.map +1 -0
- package/dist/esm/authz/domain/savedViews/types.d.ts +26 -0
- package/dist/esm/authz/domain/savedViews/types.d.ts.map +1 -0
- package/dist/esm/authz/domain/savedViews/types.js +3 -0
- package/dist/esm/authz/domain/savedViews/types.js.map +1 -0
- package/dist/esm/authz/domain/workspaces/operations.d.ts +2 -1
- package/dist/esm/authz/domain/workspaces/operations.d.ts.map +1 -1
- package/dist/esm/authz/domain/workspaces/types.d.ts +3 -0
- package/dist/esm/authz/domain/workspaces/types.d.ts.map +1 -1
- package/dist/esm/authz/fragments/automate.d.ts +7 -0
- package/dist/esm/authz/fragments/automate.d.ts.map +1 -0
- package/dist/esm/authz/fragments/automate.js +17 -0
- package/dist/esm/authz/fragments/automate.js.map +1 -0
- package/dist/esm/authz/fragments/dashboards.d.ts +8 -0
- package/dist/esm/authz/fragments/dashboards.d.ts.map +1 -0
- package/dist/esm/authz/fragments/dashboards.js +42 -0
- package/dist/esm/authz/fragments/dashboards.js.map +1 -0
- package/dist/esm/authz/fragments/projects.d.ts +13 -1
- package/dist/esm/authz/fragments/projects.d.ts.map +1 -1
- package/dist/esm/authz/fragments/projects.js +24 -1
- package/dist/esm/authz/fragments/projects.js.map +1 -1
- package/dist/esm/authz/fragments/savedViews.d.ts +30 -0
- package/dist/esm/authz/fragments/savedViews.d.ts.map +1 -0
- package/dist/esm/authz/fragments/savedViews.js +117 -0
- package/dist/esm/authz/fragments/savedViews.js.map +1 -0
- package/dist/esm/authz/fragments/workspaces.d.ts +9 -1
- package/dist/esm/authz/fragments/workspaces.d.ts.map +1 -1
- package/dist/esm/authz/fragments/workspaces.js +45 -1
- package/dist/esm/authz/fragments/workspaces.js.map +1 -1
- package/dist/esm/authz/helpers/graphql.d.ts +1 -1
- package/dist/esm/authz/helpers/graphql.d.ts.map +1 -1
- package/dist/esm/authz/helpers/graphql.js +1 -1
- package/dist/esm/authz/helpers/graphql.js.map +1 -1
- package/dist/esm/authz/index.d.ts +1 -0
- package/dist/esm/authz/index.d.ts.map +1 -1
- package/dist/esm/authz/index.js +1 -0
- package/dist/esm/authz/index.js.map +1 -1
- package/dist/esm/authz/policies/automate/function/canEditFunction.d.ts +10 -0
- package/dist/esm/authz/policies/automate/function/canEditFunction.d.ts.map +1 -0
- package/dist/esm/authz/policies/automate/function/canEditFunction.js +15 -0
- package/dist/esm/authz/policies/automate/function/canEditFunction.js.map +1 -0
- package/dist/esm/authz/policies/dashboard/canCreateToken.d.ts +10 -0
- package/dist/esm/authz/policies/dashboard/canCreateToken.d.ts.map +1 -0
- package/dist/esm/authz/policies/dashboard/canCreateToken.js +41 -0
- package/dist/esm/authz/policies/dashboard/canCreateToken.js.map +1 -0
- package/dist/esm/authz/policies/dashboard/canDelete.d.ts +10 -0
- package/dist/esm/authz/policies/dashboard/canDelete.d.ts.map +1 -0
- package/dist/esm/authz/policies/dashboard/canDelete.js +41 -0
- package/dist/esm/authz/policies/dashboard/canDelete.js.map +1 -0
- package/dist/esm/authz/policies/dashboard/canEdit.d.ts +10 -0
- package/dist/esm/authz/policies/dashboard/canEdit.d.ts.map +1 -0
- package/dist/esm/authz/policies/dashboard/canEdit.js +39 -0
- package/dist/esm/authz/policies/dashboard/canEdit.js.map +1 -0
- package/dist/esm/authz/policies/dashboard/canRead.d.ts +10 -0
- package/dist/esm/authz/policies/dashboard/canRead.d.ts.map +1 -0
- package/dist/esm/authz/policies/dashboard/canRead.js +38 -0
- package/dist/esm/authz/policies/dashboard/canRead.js.map +1 -0
- package/dist/esm/authz/policies/index.d.ts +62 -1
- package/dist/esm/authz/policies/index.d.ts.map +1 -1
- package/dist/esm/authz/policies/index.js +52 -4
- package/dist/esm/authz/policies/index.js.map +1 -1
- package/dist/esm/authz/policies/project/canLoad.d.ts.map +1 -1
- package/dist/esm/authz/policies/project/canLoad.js +6 -0
- package/dist/esm/authz/policies/project/canLoad.js.map +1 -1
- package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.d.ts +10 -0
- package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.js +31 -0
- package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.js.map +1 -0
- package/dist/esm/authz/policies/project/canUpdateEmbedTokens.d.ts +10 -0
- package/dist/esm/authz/policies/project/canUpdateEmbedTokens.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/canUpdateEmbedTokens.js +48 -0
- package/dist/esm/authz/policies/project/canUpdateEmbedTokens.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canCreate.d.ts +6 -0
- package/dist/esm/authz/policies/project/savedViews/canCreate.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canCreate.js +27 -0
- package/dist/esm/authz/policies/project/savedViews/canCreate.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts +6 -0
- package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js +57 -0
- package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canEditDescription.d.ts +6 -0
- package/dist/esm/authz/policies/project/savedViews/canEditDescription.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canEditDescription.js +10 -0
- package/dist/esm/authz/policies/project/savedViews/canEditDescription.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canEditTitle.d.ts +6 -0
- package/dist/esm/authz/policies/project/savedViews/canEditTitle.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canEditTitle.js +10 -0
- package/dist/esm/authz/policies/project/savedViews/canEditTitle.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canMove.d.ts +6 -0
- package/dist/esm/authz/policies/project/savedViews/canMove.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canMove.js +10 -0
- package/dist/esm/authz/policies/project/savedViews/canMove.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canRead.d.ts +11 -0
- package/dist/esm/authz/policies/project/savedViews/canRead.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canRead.js +11 -0
- package/dist/esm/authz/policies/project/savedViews/canRead.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.d.ts +6 -0
- package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.js +41 -0
- package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canUpdate.d.ts +6 -0
- package/dist/esm/authz/policies/project/savedViews/canUpdate.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canUpdate.js +10 -0
- package/dist/esm/authz/policies/project/savedViews/canUpdate.js.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.d.ts +6 -0
- package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.d.ts.map +1 -0
- package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.js +10 -0
- package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.js.map +1 -0
- package/dist/esm/authz/policies/workspace/canCreateDashboards.d.ts +10 -0
- package/dist/esm/authz/policies/workspace/canCreateDashboards.d.ts.map +1 -0
- package/dist/esm/authz/policies/workspace/canCreateDashboards.js +35 -0
- package/dist/esm/authz/policies/workspace/canCreateDashboards.js.map +1 -0
- package/dist/esm/authz/policies/workspace/canCreateWorkspace.d.ts +10 -0
- package/dist/esm/authz/policies/workspace/canCreateWorkspace.d.ts.map +1 -0
- package/dist/esm/authz/policies/workspace/canCreateWorkspace.js +47 -0
- package/dist/esm/authz/policies/workspace/canCreateWorkspace.js.map +1 -0
- package/dist/esm/authz/policies/workspace/canListDashboards.d.ts +10 -0
- package/dist/esm/authz/policies/workspace/canListDashboards.d.ts.map +1 -0
- package/dist/esm/authz/policies/workspace/canListDashboards.js +22 -0
- package/dist/esm/authz/policies/workspace/canListDashboards.js.map +1 -0
- package/dist/esm/authz/policies/workspace/canReadMemberEmail.d.ts +1 -1
- package/dist/esm/authz/policies/workspace/canReadMemberEmail.d.ts.map +1 -1
- package/dist/esm/authz/policies/workspace/canReadMemberEmail.js +2 -21
- package/dist/esm/authz/policies/workspace/canReadMemberEmail.js.map +1 -1
- package/dist/esm/authz/policies/workspace/{canUpdateEmbedOptions.d.ts → canUseWorkspacePlanFeature.d.ts} +13 -5
- package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.d.ts.map +1 -0
- package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.js +23 -0
- package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.js.map +1 -0
- package/dist/esm/automate/helpers/types.d.ts +313 -51
- package/dist/esm/automate/helpers/types.d.ts.map +1 -1
- package/dist/esm/automate/helpers/types.js +11 -1
- package/dist/esm/automate/helpers/types.js.map +1 -1
- package/dist/esm/blobs/index.d.ts +17 -0
- package/dist/esm/blobs/index.d.ts.map +1 -0
- package/dist/esm/blobs/index.js +111 -0
- package/dist/esm/blobs/index.js.map +1 -0
- package/dist/esm/core/constants.d.ts +4 -2
- package/dist/esm/core/constants.d.ts.map +1 -1
- package/dist/esm/core/constants.js +24 -4
- package/dist/esm/core/constants.js.map +1 -1
- package/dist/esm/core/helpers/encoding.d.ts +2 -0
- package/dist/esm/core/helpers/encoding.d.ts.map +1 -0
- package/dist/esm/core/helpers/encoding.js +11 -0
- package/dist/esm/core/helpers/encoding.js.map +1 -0
- package/dist/esm/core/helpers/error.d.ts +11 -0
- package/dist/esm/core/helpers/error.d.ts.map +1 -1
- package/dist/esm/core/helpers/error.js +56 -1
- package/dist/esm/core/helpers/error.js.map +1 -1
- package/dist/esm/core/helpers/url.d.ts +24 -0
- package/dist/esm/core/helpers/url.d.ts.map +1 -1
- package/dist/esm/core/helpers/url.js +30 -0
- package/dist/esm/core/helpers/url.js.map +1 -1
- package/dist/esm/core/helpers/utility.d.ts +16 -0
- package/dist/esm/core/helpers/utility.d.ts.map +1 -1
- package/dist/esm/core/helpers/utility.js +19 -0
- package/dist/esm/core/helpers/utility.js.map +1 -1
- package/dist/esm/core/index.d.ts +2 -0
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/index.js +2 -0
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/utils/base64.d.ts +3 -0
- package/dist/esm/core/utils/base64.d.ts.map +1 -0
- package/dist/esm/core/utils/base64.js +21 -0
- package/dist/esm/core/utils/base64.js.map +1 -0
- package/dist/esm/environment/{multiRegionConfig.d.ts → db.d.ts} +54 -5
- package/dist/esm/environment/db.d.ts.map +1 -0
- package/dist/esm/environment/{multiRegionConfig.js → db.js} +40 -7
- package/dist/esm/environment/db.js.map +1 -0
- package/dist/esm/environment/featureFlags.d.ts +25 -0
- package/dist/esm/environment/featureFlags.d.ts.map +1 -0
- package/dist/esm/environment/featureFlags.js +5 -0
- package/dist/esm/environment/featureFlags.js.map +1 -0
- package/dist/esm/environment/index.d.ts +2 -15
- package/dist/esm/environment/index.d.ts.map +1 -1
- package/dist/esm/environment/index.js +44 -7
- package/dist/esm/environment/index.js.map +1 -1
- package/dist/esm/environment/node.d.ts +5 -0
- package/dist/esm/environment/node.d.ts.map +1 -0
- package/dist/esm/environment/node.js +11 -0
- package/dist/esm/environment/node.js.map +1 -0
- package/dist/esm/images/base64.d.ts +2 -0
- package/dist/esm/images/base64.d.ts.map +1 -0
- package/dist/esm/images/base64.js +15 -0
- package/dist/esm/images/base64.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/observability/index.d.ts.map +1 -1
- package/dist/esm/observability/index.js +19 -2
- package/dist/esm/observability/index.js.map +1 -1
- package/dist/esm/queue/config.d.ts +3 -0
- package/dist/esm/queue/config.d.ts.map +1 -1
- package/dist/esm/queue/config.js +12 -4
- package/dist/esm/queue/config.js.map +1 -1
- package/dist/esm/rich-text-editor/helpers/index.d.ts +13 -1
- package/dist/esm/rich-text-editor/helpers/index.d.ts.map +1 -1
- package/dist/esm/rich-text-editor/helpers/index.js +1 -0
- package/dist/esm/rich-text-editor/helpers/index.js.map +1 -1
- package/dist/esm/saved-views/helpers/defaultGroup.d.ts +23 -0
- package/dist/esm/saved-views/helpers/defaultGroup.d.ts.map +1 -0
- package/dist/esm/saved-views/helpers/defaultGroup.js +51 -0
- package/dist/esm/saved-views/helpers/defaultGroup.js.map +1 -0
- package/dist/esm/saved-views/index.d.ts +2 -0
- package/dist/esm/saved-views/index.d.ts.map +1 -0
- package/dist/esm/saved-views/index.js +2 -0
- package/dist/esm/saved-views/index.js.map +1 -0
- package/dist/esm/viewer/helpers/route.d.ts +42 -7
- package/dist/esm/viewer/helpers/route.d.ts.map +1 -1
- package/dist/esm/viewer/helpers/route.js +140 -30
- package/dist/esm/viewer/helpers/route.js.map +1 -1
- package/dist/esm/viewer/helpers/state.d.ts +59 -6
- package/dist/esm/viewer/helpers/state.d.ts.map +1 -1
- package/dist/esm/viewer/helpers/state.js +97 -22
- package/dist/esm/viewer/helpers/state.js.map +1 -1
- package/dist/esm/workers/fileimport/job.d.ts +85 -9
- package/dist/esm/workers/fileimport/job.d.ts.map +1 -1
- package/dist/esm/workers/fileimport/job.js +20 -9
- package/dist/esm/workers/fileimport/job.js.map +1 -1
- package/dist/esm/workers/previews/job.d.ts +37 -20
- package/dist/esm/workers/previews/job.d.ts.map +1 -1
- package/dist/esm/workers/previews/job.js +20 -1
- package/dist/esm/workers/previews/job.js.map +1 -1
- package/dist/esm/workspaces/helpers/features.d.ts +55 -5
- package/dist/esm/workspaces/helpers/features.d.ts.map +1 -1
- package/dist/esm/workspaces/helpers/features.js +173 -113
- package/dist/esm/workspaces/helpers/features.js.map +1 -1
- package/dist/esm/workspaces/helpers/plans.d.ts +1 -0
- package/dist/esm/workspaces/helpers/plans.d.ts.map +1 -1
- package/dist/esm/workspaces/helpers/plans.js.map +1 -1
- package/package.json +110 -8
- package/src/acc/helpers/types.ts +42 -0
- package/src/acc/index.ts +1 -0
- package/src/authz/checks/dashboards.spec.ts +46 -0
- package/src/authz/checks/dashboards.ts +14 -0
- package/src/authz/domain/authErrors.ts +87 -2
- package/src/authz/domain/automate/operations.ts +5 -0
- package/src/authz/domain/automate/types.ts +9 -0
- package/src/authz/domain/context.ts +8 -0
- package/src/authz/domain/dashboards/operations.ts +3 -0
- package/src/authz/domain/dashboards/types.ts +6 -0
- package/src/authz/domain/loaders.ts +40 -24
- package/src/authz/domain/savedViews/operations.ts +11 -0
- package/src/authz/domain/savedViews/types.ts +25 -0
- package/src/authz/domain/workspaces/operations.ts +3 -1
- package/src/authz/domain/workspaces/types.ts +4 -0
- package/src/authz/fragments/automate.spec.ts +120 -0
- package/src/authz/fragments/automate.ts +36 -0
- package/src/authz/fragments/dashboards.ts +90 -0
- package/src/authz/fragments/projects.spec.ts +135 -10
- package/src/authz/fragments/projects.ts +53 -1
- package/src/authz/fragments/savedViews.spec.ts +551 -0
- package/src/authz/fragments/savedViews.ts +245 -0
- package/src/authz/fragments/workspaces.spec.ts +234 -7
- package/src/authz/fragments/workspaces.ts +84 -0
- package/src/authz/helpers/graphql.ts +2 -2
- package/src/authz/index.ts +1 -0
- package/src/authz/policies/automate/function/canEditFunction.spec.ts +87 -0
- package/src/authz/policies/automate/function/canEditFunction.ts +46 -0
- package/src/authz/policies/dashboard/canCreateToken.ts +89 -0
- package/src/authz/policies/dashboard/canDelete.ts +84 -0
- package/src/authz/policies/dashboard/canEdit.ts +79 -0
- package/src/authz/policies/dashboard/canRead.ts +83 -0
- package/src/authz/policies/index.spec.ts +13 -0
- package/src/authz/policies/index.ts +52 -4
- package/src/authz/policies/project/automation/canCreate.spec.ts +2 -1
- package/src/authz/policies/project/automation/canDelete.spec.ts +2 -1
- package/src/authz/policies/project/automation/canUpdate.spec.ts +2 -1
- package/src/authz/policies/project/canBroadcastActivity.spec.ts +2 -2
- package/src/authz/policies/project/canDelete.spec.ts +2 -2
- package/src/authz/policies/project/canLeave.spec.ts +2 -2
- package/src/authz/policies/project/canLoad.spec.ts +17 -1
- package/src/authz/policies/project/canLoad.ts +7 -0
- package/src/authz/policies/project/canMoveToWorkspace.spec.ts +6 -10
- package/src/authz/policies/project/canPublish.spec.ts +2 -1
- package/src/authz/policies/project/canRead.spec.ts +2 -3
- package/src/authz/policies/project/canReadAccIntegrationSettings.spec.ts +133 -0
- package/src/authz/policies/project/canReadAccIntegrationSettings.ts +87 -0
- package/src/authz/policies/project/canReadSettings.spec.ts +2 -2
- package/src/authz/policies/project/canReadWebhooks.spec.ts +2 -2
- package/src/authz/policies/project/canUpdate.spec.ts +2 -5
- package/src/authz/policies/project/canUpdateEmbedTokens.spec.ts +132 -0
- package/src/authz/policies/project/canUpdateEmbedTokens.ts +101 -0
- package/src/authz/policies/project/comment/canArchive.spec.ts +6 -5
- package/src/authz/policies/project/comment/canCreate.spec.ts +2 -2
- package/src/authz/policies/project/comment/canEdit.spec.ts +6 -5
- package/src/authz/policies/project/model/canDelete.spec.ts +6 -2
- package/src/authz/policies/project/model/canUpdate.spec.ts +2 -5
- package/src/authz/policies/project/savedViews/canCreate.spec.ts +186 -0
- package/src/authz/policies/project/savedViews/canCreate.ts +81 -0
- package/src/authz/policies/project/savedViews/canCreateSavedViewGroupToken.spec.ts +250 -0
- package/src/authz/policies/project/savedViews/canCreateSavedViewGroupToken.ts +117 -0
- package/src/authz/policies/project/savedViews/canEditDescription.spec.ts +206 -0
- package/src/authz/policies/project/savedViews/canEditDescription.ts +67 -0
- package/src/authz/policies/project/savedViews/canEditTitle.spec.ts +204 -0
- package/src/authz/policies/project/savedViews/canEditTitle.ts +67 -0
- package/src/authz/policies/project/savedViews/canMove.spec.ts +204 -0
- package/src/authz/policies/project/savedViews/canMove.ts +67 -0
- package/src/authz/policies/project/savedViews/canRead.ts +72 -0
- package/src/authz/policies/project/savedViews/canSetAsHomeView.spec.ts +248 -0
- package/src/authz/policies/project/savedViews/canSetAsHomeView.ts +108 -0
- package/src/authz/policies/project/savedViews/canUpdate.spec.ts +191 -0
- package/src/authz/policies/project/savedViews/canUpdate.ts +67 -0
- package/src/authz/policies/project/savedViews/canUpdateGroup.spec.ts +227 -0
- package/src/authz/policies/project/savedViews/canUpdateGroup.ts +63 -0
- package/src/authz/policies/project/version/canUpdate.spec.ts +6 -5
- package/src/authz/policies/workspace/canCreateDashboards.ts +71 -0
- package/src/authz/policies/workspace/canCreateWorkspace.spec.ts +380 -0
- package/src/authz/policies/workspace/canCreateWorkspace.ts +77 -0
- package/src/authz/policies/workspace/canListDashboards.ts +53 -0
- package/src/authz/policies/workspace/canReadMemberEmail.spec.ts +25 -36
- package/src/authz/policies/workspace/canReadMemberEmail.ts +11 -34
- package/src/authz/policies/workspace/canReceiveProjectsUpdatedMessage.spec.ts +2 -5
- package/src/authz/policies/workspace/{canUpdateEmbedOptions.spec.ts → canUseWorkspacePlanFeature.spec.ts} +40 -38
- package/src/authz/policies/workspace/canUseWorkspacePlanFeature.ts +69 -0
- package/src/automate/helpers/types.ts +17 -3
- package/src/blobs/index.ts +121 -0
- package/src/core/constants.ts +25 -4
- package/src/core/helpers/encoding.ts +12 -0
- package/src/core/helpers/error.spec.ts +215 -0
- package/src/core/helpers/error.ts +58 -1
- package/src/core/helpers/url.ts +33 -0
- package/src/core/helpers/utility.spec.ts +19 -1
- package/src/core/helpers/utility.ts +31 -0
- package/src/core/index.ts +2 -0
- package/src/core/utils/base64.spec.ts +31 -0
- package/src/core/utils/base64.ts +19 -0
- package/src/environment/db.spec.ts +48 -0
- package/src/environment/{multiRegionConfig.ts → db.ts} +62 -8
- package/src/environment/featureFlags.ts +25 -0
- package/src/environment/index.spec.ts +126 -0
- package/src/environment/index.ts +51 -24
- package/src/environment/node.ts +11 -0
- package/src/images/base64.spec.ts +42 -0
- package/src/images/base64.ts +15 -0
- package/src/index.ts +1 -0
- package/src/observability/index.ts +22 -2
- package/src/queue/config.ts +18 -6
- package/src/rich-text-editor/helpers/index.ts +15 -1
- package/src/saved-views/helpers/defaultGroup.spec.ts +12 -0
- package/src/saved-views/helpers/defaultGroup.ts +70 -0
- package/src/saved-views/index.ts +1 -0
- package/src/tests/fakes.ts +55 -4
- package/src/viewer/helpers/route.spec.ts +353 -0
- package/src/viewer/helpers/route.ts +180 -25
- package/src/viewer/helpers/state.spec.ts +252 -0
- package/src/viewer/helpers/state.ts +158 -27
- package/src/workers/fileimport/job.ts +40 -21
- package/src/workers/previews/job.ts +23 -1
- package/src/workspaces/helpers/features.spec.ts +99 -0
- package/src/workspaces/helpers/features.ts +215 -119
- package/src/workspaces/helpers/plans.ts +1 -0
- package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.d.ts.map +0 -1
- package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.js +0 -44
- package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.js.map +0 -1
- package/dist/commonjs/environment/multiRegionConfig.d.ts.map +0 -1
- package/dist/commonjs/environment/multiRegionConfig.js.map +0 -1
- package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.d.ts.map +0 -1
- package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.js +0 -40
- package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.js.map +0 -1
- package/dist/esm/environment/multiRegionConfig.d.ts.map +0 -1
- package/dist/esm/environment/multiRegionConfig.js.map +0 -1
- package/src/authz/policies/workspace/canUpdateEmbedOptions.ts +0 -89
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../../src/authz/domain/savedViews/operations.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StringEnumValues } from '../../../core/helpers/utility.js';
|
|
2
|
+
export declare const SavedViewVisibility: Readonly<{
|
|
3
|
+
public: "public";
|
|
4
|
+
authorOnly: "authorOnly";
|
|
5
|
+
}>;
|
|
6
|
+
export type SavedViewVisibility = StringEnumValues<typeof SavedViewVisibility>;
|
|
7
|
+
export type SavedView = {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
authorId: string | null;
|
|
11
|
+
groupId: string | null;
|
|
12
|
+
projectId: string;
|
|
13
|
+
visibility: SavedViewVisibility;
|
|
14
|
+
resourceIds: string[];
|
|
15
|
+
};
|
|
16
|
+
export type SavedViewGroup = {
|
|
17
|
+
id: string;
|
|
18
|
+
projectId: string;
|
|
19
|
+
/**
|
|
20
|
+
* null means default/ungrouped group
|
|
21
|
+
*/
|
|
22
|
+
name: string | null;
|
|
23
|
+
authorId: string | null;
|
|
24
|
+
resourceIds: string[];
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/authz/domain/savedViews/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAE/E,eAAO,MAAM,mBAAmB;;;EAAuC,CAAA;AACvE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE9E,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,mBAAmB,CAAA;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/authz/domain/savedViews/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,kCAAkC,CAAA;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { WorkspaceRoles, WorkspaceSeatType } from '../../../core/constants.js';
|
|
2
|
-
import { FeatureFlags } from '../../../environment/
|
|
2
|
+
import { FeatureFlags } from '../../../environment/featureFlags.js';
|
|
3
3
|
import { WorkspaceLimits } from '../../../workspaces/helpers/limits.js';
|
|
4
4
|
import { WorkspacePlan } from '../../../workspaces/index.js';
|
|
5
5
|
import { UserContext, WorkspaceContext } from '../context.js';
|
|
6
6
|
import { Workspace, WorkspaceSsoProvider, WorkspaceSsoSession } from './types.js';
|
|
7
7
|
export type GetWorkspace = (args: WorkspaceContext) => Promise<Workspace | null>;
|
|
8
|
+
export type GetUserWorkspaces = (args: UserContext) => Promise<Workspace[]>;
|
|
8
9
|
export type GetWorkspaceRole = (args: UserContext & WorkspaceContext) => Promise<WorkspaceRoles | null>;
|
|
9
10
|
export type GetWorkspaceLimits = (args: WorkspaceContext) => Promise<WorkspaceLimits | null>;
|
|
10
11
|
export type GetWorkspacePlan = (args: WorkspaceContext) => Promise<WorkspacePlan | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../../src/authz/domain/workspaces/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../../src/authz/domain/workspaces/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEjF,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;AAEhF,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;AAE3E,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,WAAW,GAAG,gBAAgB,KACjC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;AAEnC,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,gBAAgB,KACnB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;AAEpC,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;AAExF,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE,gBAAgB,KACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAE3B,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAEvF,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,WAAW,GAAG,gBAAgB,KACjC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;AAEtC,MAAM,MAAM,uBAAuB,GAAG,CACpC,IAAI,EAAE,gBAAgB,KACnB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,WAAW,GAAG,gBAAgB,KACjC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;AAExC,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,CAAA;AAEhD,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/authz/domain/workspaces/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/authz/domain/workspaces/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,IAAI,CAAA;CACjB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AutomateFunctionNotCreatorError, AutomateFunctionNotFoundError, AutomateNotEnabledError } from '../domain/authErrors.js';
|
|
2
|
+
import { Loaders } from '../domain/loaders.js';
|
|
3
|
+
import { AuthPolicyEnsureFragment } from '../domain/policies.js';
|
|
4
|
+
import { AutomateFunctionContext, MaybeUserContext } from '../domain/context.js';
|
|
5
|
+
export declare const ensureAutomateEnabledFragment: AuthPolicyEnsureFragment<typeof Loaders.getEnv, {}, InstanceType<typeof AutomateNotEnabledError>>;
|
|
6
|
+
export declare const ensureAutomateFunctionCreatorFragment: AuthPolicyEnsureFragment<typeof Loaders.getAutomateFunction, MaybeUserContext & AutomateFunctionContext, InstanceType<typeof AutomateFunctionNotFoundError | typeof AutomateFunctionNotCreatorError>>;
|
|
7
|
+
//# sourceMappingURL=automate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automate.d.ts","sourceRoot":"","sources":["../../../../src/authz/fragments/automate.ts"],"names":[],"mappings":"AACA,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEhF,eAAO,MAAM,6BAA6B,EAAE,wBAAwB,CAClE,OAAO,OAAO,CAAC,MAAM,EAErB,EAAE,EACF,YAAY,CAAC,OAAO,uBAAuB,CAAC,CAK7C,CAAA;AAED,eAAO,MAAM,qCAAqC,EAAE,wBAAwB,CAC1E,OAAO,OAAO,CAAC,mBAAmB,EAClC,gBAAgB,GAAG,uBAAuB,EAC1C,YAAY,CACV,OAAO,6BAA6B,GAAG,OAAO,+BAA+B,CAC9E,CASA,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { err, ok } from 'true-myth/result';
|
|
2
|
+
import { AutomateFunctionNotCreatorError, AutomateFunctionNotFoundError, AutomateNotEnabledError } from '../domain/authErrors.js';
|
|
3
|
+
export const ensureAutomateEnabledFragment = (loaders) => async () => {
|
|
4
|
+
const env = await loaders.getEnv();
|
|
5
|
+
if (!env.FF_AUTOMATE_MODULE_ENABLED)
|
|
6
|
+
return err(new AutomateNotEnabledError());
|
|
7
|
+
return ok();
|
|
8
|
+
};
|
|
9
|
+
export const ensureAutomateFunctionCreatorFragment = (loaders) => async ({ userId, functionId }) => {
|
|
10
|
+
const automateFunction = await loaders.getAutomateFunction({ functionId });
|
|
11
|
+
if (!automateFunction)
|
|
12
|
+
return err(new AutomateFunctionNotFoundError());
|
|
13
|
+
if (!userId || automateFunction.functionCreator?.synchronizedUserId !== userId)
|
|
14
|
+
return err(new AutomateFunctionNotCreatorError());
|
|
15
|
+
return ok();
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=automate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automate.js","sourceRoot":"","sources":["../../../../src/authz/fragments/automate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAKhC,MAAM,CAAC,MAAM,6BAA6B,GAKtC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IAC1B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,0BAA0B;QAAE,OAAO,GAAG,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAA;IAC9E,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qCAAqC,GAOhD,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;IAC/B,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IAC1E,IAAI,CAAC,gBAAgB;QAAE,OAAO,GAAG,CAAC,IAAI,6BAA6B,EAAE,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,aAAa,KAAK,MAAM;QACvE,OAAO,GAAG,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAA;IACnD,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DashboardNotFoundError, DashboardProjectsNotEnoughPermissionsError, DashboardsNotEnabledError, WorkspacePlanNoFeatureAccessError } from '../domain/authErrors.js';
|
|
2
|
+
import { Loaders } from '../domain/loaders.js';
|
|
3
|
+
import { AuthPolicyEnsureFragment } from '../domain/policies.js';
|
|
4
|
+
import { DashboardContext, UserContext, WorkspaceContext } from '../domain/context.js';
|
|
5
|
+
export declare const ensureDashboardsEnabledFragment: AuthPolicyEnsureFragment<typeof Loaders.getEnv, {}, InstanceType<typeof DashboardsNotEnabledError>>;
|
|
6
|
+
export declare const ensureWorkspaceDashboardsFeatureAccessFragment: AuthPolicyEnsureFragment<typeof Loaders.getWorkspacePlan, WorkspaceContext, InstanceType<typeof WorkspacePlanNoFeatureAccessError>>;
|
|
7
|
+
export declare const ensureDashboardProjectsReadAccess: AuthPolicyEnsureFragment<typeof Loaders.getDashboard | typeof Loaders.getProjectRole | typeof Loaders.getProject | typeof Loaders.getServerRole | typeof Loaders.getEnv | typeof Loaders.getWorkspaceRole | typeof Loaders.getWorkspace | typeof Loaders.getWorkspaceSsoProvider | typeof Loaders.getWorkspaceSsoSession, DashboardContext & UserContext, InstanceType<typeof DashboardNotFoundError | typeof DashboardProjectsNotEnoughPermissionsError>>;
|
|
8
|
+
//# sourceMappingURL=dashboards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboards.d.ts","sourceRoot":"","sources":["../../../../src/authz/fragments/dashboards.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,0CAA0C,EAC1C,yBAAyB,EACzB,iCAAiC,EAClC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAOtF,eAAO,MAAM,+BAA+B,EAAE,wBAAwB,CACpE,OAAO,OAAO,CAAC,MAAM,EAErB,EAAE,EACF,YAAY,CAAC,OAAO,yBAAyB,CAAC,CAK/C,CAAA;AAED,eAAO,MAAM,8CAA8C,EAAE,wBAAwB,CACnF,OAAO,OAAO,CAAC,gBAAgB,EAC/B,gBAAgB,EAChB,YAAY,CAAC,OAAO,iCAAiC,CAAC,CAcrD,CAAA;AAEH,eAAO,MAAM,iCAAiC,EAAE,wBAAwB,CACpE,OAAO,OAAO,CAAC,YAAY,GAC3B,OAAO,OAAO,CAAC,cAAc,GAC7B,OAAO,OAAO,CAAC,UAAU,GACzB,OAAO,OAAO,CAAC,aAAa,GAC5B,OAAO,OAAO,CAAC,MAAM,GACrB,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,YAAY,GAC3B,OAAO,OAAO,CAAC,uBAAuB,GACtC,OAAO,OAAO,CAAC,sBAAsB,EACvC,gBAAgB,GAAG,WAAW,EAC9B,YAAY,CACV,OAAO,sBAAsB,GAAG,OAAO,0CAA0C,CAClF,CA8BA,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { err, ok } from 'true-myth/result';
|
|
2
|
+
import { DashboardNotFoundError, DashboardProjectsNotEnoughPermissionsError, DashboardsNotEnabledError, WorkspacePlanNoFeatureAccessError } from '../domain/authErrors.js';
|
|
3
|
+
import { isWorkspaceFeatureFlagOn, WorkspaceFeatureFlags } from '../../workspaces/index.js';
|
|
4
|
+
import { ensureMinimumProjectRoleFragment } from './projects.js';
|
|
5
|
+
export const ensureDashboardsEnabledFragment = (loaders) => async () => {
|
|
6
|
+
const env = await loaders.getEnv();
|
|
7
|
+
if (!env.FF_DASHBOARDS_MODULE_ENABLED)
|
|
8
|
+
return err(new DashboardsNotEnabledError());
|
|
9
|
+
return ok();
|
|
10
|
+
};
|
|
11
|
+
export const ensureWorkspaceDashboardsFeatureAccessFragment = (loaders) => async ({ workspaceId }) => {
|
|
12
|
+
const plan = await loaders.getWorkspacePlan({ workspaceId });
|
|
13
|
+
if (!plan)
|
|
14
|
+
return err(new WorkspacePlanNoFeatureAccessError());
|
|
15
|
+
const isFlagOn = isWorkspaceFeatureFlagOn({
|
|
16
|
+
workspaceFeatureFlags: plan.featureFlags,
|
|
17
|
+
feature: WorkspaceFeatureFlags.dashboards
|
|
18
|
+
});
|
|
19
|
+
if (!isFlagOn)
|
|
20
|
+
return err(new WorkspacePlanNoFeatureAccessError());
|
|
21
|
+
return ok();
|
|
22
|
+
};
|
|
23
|
+
export const ensureDashboardProjectsReadAccess = (loaders) => async ({ userId, dashboardId }) => {
|
|
24
|
+
const dashboard = await loaders.getDashboard({ dashboardId });
|
|
25
|
+
if (!dashboard)
|
|
26
|
+
return err(new DashboardNotFoundError());
|
|
27
|
+
const allProjectResults = await Promise.all(dashboard.projectIds.map(async (projectId) => {
|
|
28
|
+
return [
|
|
29
|
+
projectId,
|
|
30
|
+
await ensureMinimumProjectRoleFragment(loaders)({ projectId, userId })
|
|
31
|
+
];
|
|
32
|
+
}));
|
|
33
|
+
const projectAccessErrors = allProjectResults.filter(([, e]) => e.isErr);
|
|
34
|
+
return projectAccessErrors.length
|
|
35
|
+
? err(new DashboardProjectsNotEnoughPermissionsError({
|
|
36
|
+
payload: {
|
|
37
|
+
projectIds: projectAccessErrors.map(([projectId]) => projectId)
|
|
38
|
+
}
|
|
39
|
+
}))
|
|
40
|
+
: ok();
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=dashboards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboards.js","sourceRoot":"","sources":["../../../../src/authz/fragments/dashboards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EACL,sBAAsB,EACtB,0CAA0C,EAC1C,yBAAyB,EACzB,iCAAiC,EAClC,MAAM,yBAAyB,CAAA;AAIhC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAEhE,MAAM,CAAC,MAAM,+BAA+B,GAKxC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IAC1B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,4BAA4B;QAAE,OAAO,GAAG,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAA;IAClF,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8CAA8C,GAKzD,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACxB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAA;IAE9D,MAAM,QAAQ,GAAG,wBAAwB,CAAC;QACxC,qBAAqB,EAAE,IAAI,CAAC,YAAY;QACxC,OAAO,EAAE,qBAAqB,CAAC,UAAU;KAC1C,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAA;IAElE,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAe5C,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IAC7D,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;IAExD,MAAM,iBAAiB,GAGjB,MAAM,OAAO,CAAC,GAAG,CACrB,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QAC3C,OAAO;YACL,SAAS;YACT,MAAM,gCAAgC,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;SACvE,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IAED,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAExE,OAAO,mBAAmB,CAAC,MAAM;QAC/B,CAAC,CAAC,GAAG,CACD,IAAI,0CAA0C,CAAC;YAC7C,OAAO,EAAE;gBACP,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;aAChE;SACF,CAAC,CACH;QACH,CAAC,CAAC,EAAE,EAAE,CAAA;AACV,CAAC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { MaybeUserContext, ProjectContext, UserContext } from '../domain/context.js';
|
|
2
2
|
import { Loaders } from '../domain/loaders.js';
|
|
3
3
|
import { AuthPolicyCheckFragment, AuthPolicyEnsureFragment } from '../domain/policies.js';
|
|
4
|
-
import { ProjectNoAccessError, ProjectNotEnoughPermissionsError, ProjectNotFoundError, ServerNoAccessError, ServerNoSessionError, ServerNotEnoughPermissionsError, WorkspaceNoAccessError, WorkspaceNotEnoughPermissionsError, WorkspaceSsoSessionNoAccessError } from '../domain/authErrors.js';
|
|
4
|
+
import { ProjectNoAccessError, ProjectNotEnoughPermissionsError, ProjectNotFoundError, ServerNoAccessError, ServerNoSessionError, ServerNotEnoughPermissionsError, WorkspaceNoAccessError, WorkspaceNotEnoughPermissionsError, WorkspacePlanNoFeatureAccessError, WorkspaceReadOnlyError, WorkspacesNotEnabledError, WorkspaceSsoSessionNoAccessError } from '../domain/authErrors.js';
|
|
5
5
|
import { StreamRoles } from '../../core/constants.js';
|
|
6
|
+
import { WorkspacePlanFeatures } from '../../workspaces/index.js';
|
|
6
7
|
/**
|
|
7
8
|
* Ensure user has a minimum explicit or implicit project role
|
|
8
9
|
*/
|
|
@@ -46,4 +47,15 @@ export declare const ensureImplicitProjectMemberWithWriteAccessFragment: AuthPol
|
|
|
46
47
|
*/
|
|
47
48
|
role?: StreamRoles;
|
|
48
49
|
}, InstanceType<typeof ProjectNotFoundError | typeof ServerNoAccessError | typeof ServerNoSessionError | typeof ProjectNoAccessError | typeof WorkspaceNoAccessError | typeof WorkspaceSsoSessionNoAccessError | typeof ServerNotEnoughPermissionsError | typeof ProjectNotEnoughPermissionsError | typeof WorkspaceNotEnoughPermissionsError>>;
|
|
50
|
+
/**
|
|
51
|
+
* Ensure project is workspaced and has access to a specific plan feature
|
|
52
|
+
*/
|
|
53
|
+
export declare const ensureCanUseProjectWorkspacePlanFeatureFragment: AuthPolicyEnsureFragment<typeof Loaders.getEnv | typeof Loaders.getProject | typeof Loaders.getWorkspacePlan, ProjectContext & {
|
|
54
|
+
feature: WorkspacePlanFeatures;
|
|
55
|
+
/**
|
|
56
|
+
* Whether to also allow if project is not workspaced at all
|
|
57
|
+
* Default: false
|
|
58
|
+
*/
|
|
59
|
+
allowUnworkspaced?: boolean;
|
|
60
|
+
}, InstanceType<typeof WorkspacesNotEnabledError | typeof ProjectNotFoundError | typeof WorkspaceNoAccessError | typeof WorkspaceReadOnlyError | typeof WorkspacePlanNoFeatureAccessError>>;
|
|
49
61
|
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../../src/authz/fragments/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,+BAA+B,EAC/B,sBAAsB,EACtB,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAS,WAAW,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../../src/authz/fragments/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { ProjectNoAccessError, ProjectNotEnoughPermissionsError, ProjectNotFound
|
|
|
3
3
|
import { Roles } from '../../core/constants.js';
|
|
4
4
|
import { isMinimumProjectRole } from '../domain/logic/roles.js';
|
|
5
5
|
import { hasMinimumProjectRole, isPubliclyReadableProject } from '../checks/projects.js';
|
|
6
|
-
import { ensureWorkspaceRoleAndSessionFragment } from './workspaces.js';
|
|
6
|
+
import { ensureCanUseWorkspacePlanFeatureFragment, ensureWorkspaceRoleAndSessionFragment } from './workspaces.js';
|
|
7
7
|
import { checkIfAdminOverrideEnabledFragment, ensureMinimumServerRoleFragment } from './server.js';
|
|
8
8
|
import { ProjectVisibility } from '../domain/projects/types.js';
|
|
9
9
|
const workspaceRoleImplicitProjectRoleMap = (projectVisibility) => {
|
|
@@ -168,4 +168,27 @@ export const ensureImplicitProjectMemberWithWriteAccessFragment = (loaders) => a
|
|
|
168
168
|
}
|
|
169
169
|
return ok();
|
|
170
170
|
};
|
|
171
|
+
/**
|
|
172
|
+
* Ensure project is workspaced and has access to a specific plan feature
|
|
173
|
+
*/
|
|
174
|
+
export const ensureCanUseProjectWorkspacePlanFeatureFragment = (loaders) => async ({ projectId, feature, allowUnworkspaced = false }) => {
|
|
175
|
+
const project = await loaders.getProject({ projectId });
|
|
176
|
+
if (!project)
|
|
177
|
+
return err(new ProjectNotFoundError());
|
|
178
|
+
const workspaceId = project.workspaceId;
|
|
179
|
+
if (!workspaceId) {
|
|
180
|
+
if (allowUnworkspaced)
|
|
181
|
+
return ok();
|
|
182
|
+
return err(new WorkspaceNoAccessError({
|
|
183
|
+
message: 'The project must be in a workspace'
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
const canUseFeature = await ensureCanUseWorkspacePlanFeatureFragment(loaders)({
|
|
187
|
+
workspaceId,
|
|
188
|
+
feature
|
|
189
|
+
});
|
|
190
|
+
if (canUseFeature.isErr)
|
|
191
|
+
return err(canUseFeature.error);
|
|
192
|
+
return ok();
|
|
193
|
+
};
|
|
171
194
|
//# sourceMappingURL=projects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../../src/authz/fragments/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAO1C,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,oBAAoB,EAIpB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../../src/authz/fragments/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ProjectNoAccessError, ProjectNotEnoughPermissionsError, ProjectNotFoundError, SavedViewGroupNotFoundError, SavedViewNoAccessError, SavedViewNotFoundError, ServerNoAccessError, ServerNoSessionError, ServerNotEnoughPermissionsError, UngroupedSavedViewGroupLockError, WorkspaceNoAccessError, WorkspaceNotEnoughPermissionsError, WorkspacePlanNoFeatureAccessError, WorkspaceReadOnlyError, WorkspacesNotEnabledError, WorkspaceSsoSessionNoAccessError } from '../domain/authErrors.js';
|
|
2
|
+
import { MaybeUserContext, ProjectContext, SavedViewContext, SavedViewGroupContext } from '../domain/context.js';
|
|
3
|
+
import { Loaders } from '../domain/loaders.js';
|
|
4
|
+
import { AuthPolicyEnsureFragment } from '../domain/policies.js';
|
|
5
|
+
import { StringEnumValues } from '../../core/index.js';
|
|
6
|
+
export declare const WriteTypes: Readonly<{
|
|
7
|
+
UpdateGeneral: "UpdateGeneral";
|
|
8
|
+
MoveView: "MoveView";
|
|
9
|
+
EditTitle: "EditTitle";
|
|
10
|
+
EditDescription: "EditDescription";
|
|
11
|
+
SetHomeView: "SetHomeView";
|
|
12
|
+
}>;
|
|
13
|
+
export type WriteTypes = StringEnumValues<typeof WriteTypes>;
|
|
14
|
+
/**
|
|
15
|
+
* Ensure the user can access the view
|
|
16
|
+
*/
|
|
17
|
+
export declare const ensureCanAccessSavedViewFragment: AuthPolicyEnsureFragment<typeof Loaders.getSavedView | typeof Loaders.getProject | typeof Loaders.getEnv | typeof Loaders.getServerRole | typeof Loaders.getWorkspaceRole | typeof Loaders.getWorkspace | typeof Loaders.getWorkspacePlan | typeof Loaders.getWorkspaceSsoProvider | typeof Loaders.getWorkspaceSsoSession | typeof Loaders.getAdminOverrideEnabled | typeof Loaders.getProjectRole, MaybeUserContext & ProjectContext & SavedViewContext & {
|
|
18
|
+
access: 'read' | WriteTypes;
|
|
19
|
+
/**
|
|
20
|
+
* In some cases we want to just ignore a view being non-existant, instead of throwing
|
|
21
|
+
*/
|
|
22
|
+
allowNonExistent?: boolean;
|
|
23
|
+
}, InstanceType<typeof SavedViewNotFoundError | typeof SavedViewNoAccessError | typeof ProjectNotFoundError | typeof ServerNoAccessError | typeof ServerNoSessionError | typeof ProjectNoAccessError | typeof WorkspaceNoAccessError | typeof WorkspaceSsoSessionNoAccessError | typeof ServerNotEnoughPermissionsError | typeof ProjectNotEnoughPermissionsError | typeof WorkspaceNotEnoughPermissionsError | typeof WorkspacesNotEnabledError | typeof WorkspaceReadOnlyError | typeof WorkspacePlanNoFeatureAccessError>>;
|
|
24
|
+
/**
|
|
25
|
+
* Ensure the user can access the view group
|
|
26
|
+
*/
|
|
27
|
+
export declare const ensureCanAccessSavedViewGroupFragment: AuthPolicyEnsureFragment<typeof Loaders.getSavedViewGroup | typeof Loaders.getProject | typeof Loaders.getEnv | typeof Loaders.getServerRole | typeof Loaders.getWorkspaceRole | typeof Loaders.getWorkspace | typeof Loaders.getWorkspacePlan | typeof Loaders.getWorkspaceSsoProvider | typeof Loaders.getWorkspaceSsoSession | typeof Loaders.getProjectRole, MaybeUserContext & ProjectContext & SavedViewGroupContext & {
|
|
28
|
+
access: 'read' | 'write';
|
|
29
|
+
}, InstanceType<typeof SavedViewGroupNotFoundError | typeof ProjectNotFoundError | typeof ServerNoAccessError | typeof ServerNoSessionError | typeof ProjectNoAccessError | typeof WorkspaceNoAccessError | typeof WorkspaceSsoSessionNoAccessError | typeof ServerNotEnoughPermissionsError | typeof ProjectNotEnoughPermissionsError | typeof WorkspaceNotEnoughPermissionsError | typeof WorkspacesNotEnabledError | typeof WorkspaceReadOnlyError | typeof WorkspacePlanNoFeatureAccessError | typeof UngroupedSavedViewGroupLockError>>;
|
|
30
|
+
//# sourceMappingURL=savedViews.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"savedViews.d.ts","sourceRoot":"","sources":["../../../../src/authz/fragments/savedViews.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,EACtB,kCAAkC,EAClC,iCAAiC,EACjC,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAShE,OAAO,EAAc,gBAAgB,EAAuB,MAAM,qBAAqB,CAAA;AAEvF,eAAO,MAAM,UAAU;;;;;;EAMrB,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,UAAU,CAAC,CAAA;AAE5D;;GAEG;AACH,eAAO,MAAM,gCAAgC,EAAE,wBAAwB,CACnE,OAAO,OAAO,CAAC,YAAY,GAC3B,OAAO,OAAO,CAAC,UAAU,GACzB,OAAO,OAAO,CAAC,MAAM,GACrB,OAAO,OAAO,CAAC,aAAa,GAC5B,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,YAAY,GAC3B,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,uBAAuB,GACtC,OAAO,OAAO,CAAC,sBAAsB,GACrC,OAAO,OAAO,CAAC,uBAAuB,GACtC,OAAO,OAAO,CAAC,cAAc,EAC/B,gBAAgB,GACd,cAAc,GACd,gBAAgB,GAAG;IACjB,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;IAC3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,EACH,YAAY,CACR,OAAO,sBAAsB,GAC7B,OAAO,sBAAsB,GAC7B,OAAO,oBAAoB,GAC3B,OAAO,mBAAmB,GAC1B,OAAO,oBAAoB,GAC3B,OAAO,oBAAoB,GAC3B,OAAO,sBAAsB,GAC7B,OAAO,gCAAgC,GACvC,OAAO,+BAA+B,GACtC,OAAO,gCAAgC,GACvC,OAAO,kCAAkC,GACzC,OAAO,yBAAyB,GAChC,OAAO,sBAAsB,GAC7B,OAAO,iCAAiC,CAC3C,CAyEA,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,qCAAqC,EAAE,wBAAwB,CACxE,OAAO,OAAO,CAAC,iBAAiB,GAChC,OAAO,OAAO,CAAC,UAAU,GACzB,OAAO,OAAO,CAAC,MAAM,GACrB,OAAO,OAAO,CAAC,aAAa,GAC5B,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,YAAY,GAC3B,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,uBAAuB,GACtC,OAAO,OAAO,CAAC,sBAAsB,GACrC,OAAO,OAAO,CAAC,cAAc,EAC/B,gBAAgB,GACd,cAAc,GACd,qBAAqB,GAAG;IACtB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB,EACH,YAAY,CACR,OAAO,2BAA2B,GAClC,OAAO,oBAAoB,GAC3B,OAAO,mBAAmB,GAC1B,OAAO,oBAAoB,GAC3B,OAAO,oBAAoB,GAC3B,OAAO,sBAAsB,GAC7B,OAAO,gCAAgC,GACvC,OAAO,+BAA+B,GACtC,OAAO,gCAAgC,GACvC,OAAO,kCAAkC,GACzC,OAAO,yBAAyB,GAChC,OAAO,sBAAsB,GAC7B,OAAO,iCAAiC,GACxC,OAAO,gCAAgC,CAC1C,CAkDA,CAAA"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { err, ok } from 'true-myth/result';
|
|
2
|
+
import { ProjectNotEnoughPermissionsError, SavedViewGroupNotFoundError, SavedViewNoAccessError, SavedViewNotFoundError, UngroupedSavedViewGroupLockError } from '../domain/authErrors.js';
|
|
3
|
+
import { SavedViewVisibility } from '../domain/savedViews/types.js';
|
|
4
|
+
import { ensureCanUseProjectWorkspacePlanFeatureFragment, ensureImplicitProjectMemberWithWriteAccessFragment } from './projects.js';
|
|
5
|
+
import { Roles } from '../../core/constants.js';
|
|
6
|
+
import { WorkspacePlanFeatures } from '../../workspaces/index.js';
|
|
7
|
+
import { isUngroupedGroup } from '../../saved-views/index.js';
|
|
8
|
+
import { StringEnum, throwUncoveredError } from '../../core/index.js';
|
|
9
|
+
export const WriteTypes = StringEnum([
|
|
10
|
+
'UpdateGeneral',
|
|
11
|
+
'MoveView',
|
|
12
|
+
'EditTitle',
|
|
13
|
+
'EditDescription',
|
|
14
|
+
'SetHomeView'
|
|
15
|
+
]);
|
|
16
|
+
/**
|
|
17
|
+
* Ensure the user can access the view
|
|
18
|
+
*/
|
|
19
|
+
export const ensureCanAccessSavedViewFragment = (loaders) => async ({ userId, projectId, savedViewId, access, allowNonExistent }) => {
|
|
20
|
+
const canUseSavedViews = await ensureCanUseProjectWorkspacePlanFeatureFragment(loaders)({
|
|
21
|
+
projectId,
|
|
22
|
+
feature: WorkspacePlanFeatures.SavedViews
|
|
23
|
+
});
|
|
24
|
+
if (canUseSavedViews.isErr)
|
|
25
|
+
return err(canUseSavedViews.error);
|
|
26
|
+
const savedView = await loaders.getSavedView({ projectId, savedViewId });
|
|
27
|
+
if (!savedView) {
|
|
28
|
+
if (allowNonExistent)
|
|
29
|
+
return ok();
|
|
30
|
+
return err(new SavedViewNotFoundError());
|
|
31
|
+
}
|
|
32
|
+
const isPublic = savedView.visibility === SavedViewVisibility.public;
|
|
33
|
+
const isAuthor = savedView.authorId === userId;
|
|
34
|
+
// Validate read access
|
|
35
|
+
if (access === 'read') {
|
|
36
|
+
if (isAuthor || isPublic) {
|
|
37
|
+
return ok();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return err(new SavedViewNoAccessError({
|
|
41
|
+
message: 'You do not have permission to read this saved view.'
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Validate write access
|
|
46
|
+
// Check for write access to project first
|
|
47
|
+
const ensuredWriteAccess = await ensureImplicitProjectMemberWithWriteAccessFragment(loaders)({
|
|
48
|
+
userId,
|
|
49
|
+
projectId
|
|
50
|
+
});
|
|
51
|
+
if (ensuredWriteAccess.isErr) {
|
|
52
|
+
if (ensuredWriteAccess.error.code === ProjectNotEnoughPermissionsError.code)
|
|
53
|
+
return err(new ProjectNotEnoughPermissionsError({
|
|
54
|
+
message: "Your role on this project doesn't give you permission to update views."
|
|
55
|
+
}));
|
|
56
|
+
return err(ensuredWriteAccess.error);
|
|
57
|
+
}
|
|
58
|
+
if (isAuthor) {
|
|
59
|
+
// authors can write whatever
|
|
60
|
+
return ok();
|
|
61
|
+
}
|
|
62
|
+
// Non-author project writers can make specific changes
|
|
63
|
+
switch (access) {
|
|
64
|
+
case WriteTypes.MoveView:
|
|
65
|
+
case WriteTypes.EditTitle:
|
|
66
|
+
case WriteTypes.EditDescription:
|
|
67
|
+
case WriteTypes.SetHomeView:
|
|
68
|
+
return ok();
|
|
69
|
+
case WriteTypes.UpdateGeneral:
|
|
70
|
+
return err(new SavedViewNoAccessError({
|
|
71
|
+
message: 'You do not have permission to edit the view in this way'
|
|
72
|
+
}));
|
|
73
|
+
default:
|
|
74
|
+
throwUncoveredError(access);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Ensure the user can access the view group
|
|
79
|
+
*/
|
|
80
|
+
export const ensureCanAccessSavedViewGroupFragment = (loaders) => async ({ userId, projectId, savedViewGroupId, access }) => {
|
|
81
|
+
const canUseSavedViews = await ensureCanUseProjectWorkspacePlanFeatureFragment(loaders)({
|
|
82
|
+
projectId,
|
|
83
|
+
feature: WorkspacePlanFeatures.SavedViews
|
|
84
|
+
});
|
|
85
|
+
if (canUseSavedViews.isErr)
|
|
86
|
+
return err(canUseSavedViews.error);
|
|
87
|
+
const savedViewGroup = await loaders.getSavedViewGroup({
|
|
88
|
+
projectId,
|
|
89
|
+
groupId: savedViewGroupId
|
|
90
|
+
});
|
|
91
|
+
if (!savedViewGroup)
|
|
92
|
+
return err(new SavedViewGroupNotFoundError());
|
|
93
|
+
if (access === 'read') {
|
|
94
|
+
return ok(); // read access available to everyone who has access to project
|
|
95
|
+
}
|
|
96
|
+
// Prevent default group updates (as it doesnt exist)
|
|
97
|
+
if (isUngroupedGroup(savedViewGroup.id)) {
|
|
98
|
+
return err(new UngroupedSavedViewGroupLockError());
|
|
99
|
+
}
|
|
100
|
+
// groups have no visibility (yet), so authors AND project owners can mutate
|
|
101
|
+
const isAuthor = savedViewGroup.authorId === userId;
|
|
102
|
+
const expectedProjectRole = isAuthor ? Roles.Stream.Contributor : Roles.Stream.Owner;
|
|
103
|
+
const ensuredWriteAccess = await ensureImplicitProjectMemberWithWriteAccessFragment(loaders)({
|
|
104
|
+
userId,
|
|
105
|
+
projectId,
|
|
106
|
+
role: expectedProjectRole
|
|
107
|
+
});
|
|
108
|
+
if (ensuredWriteAccess.isErr) {
|
|
109
|
+
if (ensuredWriteAccess.error.code === ProjectNotEnoughPermissionsError.code)
|
|
110
|
+
return err(new ProjectNotEnoughPermissionsError({
|
|
111
|
+
message: "Your role on this project doesn't give you permission to update view groups."
|
|
112
|
+
}));
|
|
113
|
+
return err(ensuredWriteAccess.error);
|
|
114
|
+
}
|
|
115
|
+
return ok();
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=savedViews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"savedViews.js","sourceRoot":"","sources":["../../../../src/authz/fragments/savedViews.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AuthPolicyEnsureFragment } from '../domain/policies.js';
|
|
2
|
-
import { PersonalProjectsLimitedError, ProjectNotFoundError, WorkspaceLimitsReachedError, WorkspaceNoAccessError, WorkspaceNoEditorSeatError, WorkspaceNotEnoughPermissionsError, WorkspaceReadOnlyError, WorkspacesNotEnabledError, WorkspaceSsoSessionNoAccessError } from '../domain/authErrors.js';
|
|
2
|
+
import { PersonalProjectsLimitedError, ProjectNotFoundError, ServerNoAccessError, ServerNoSessionError, ServerNotEnoughPermissionsError, WorkspaceLimitsReachedError, WorkspaceNoAccessError, WorkspaceNoEditorSeatError, WorkspaceNotEnoughPermissionsError, WorkspacePlanNoFeatureAccessError, WorkspaceReadOnlyError, WorkspacesNotEnabledError, WorkspaceSsoSessionNoAccessError } from '../domain/authErrors.js';
|
|
3
3
|
import { Loaders } from '../domain/loaders.js';
|
|
4
4
|
import { WorkspaceRoles } from '../../core/constants.js';
|
|
5
5
|
import { MaybeUserContext, MaybeWorkspaceContext, ProjectContext, WorkspaceContext } from '../domain/context.js';
|
|
6
|
+
import { WorkspacePlanFeatures } from '../../workspaces/helpers/features.js';
|
|
6
7
|
/**
|
|
7
8
|
* Ensure user has a workspace role, and a valid SSO session (if SSO is configured)
|
|
8
9
|
*/
|
|
@@ -34,4 +35,11 @@ export declare const ensureModelCanBeCreatedFragment: AuthPolicyEnsureFragment<t
|
|
|
34
35
|
*/
|
|
35
36
|
addedModelCount?: number;
|
|
36
37
|
}, InstanceType<typeof WorkspaceNoAccessError | typeof WorkspaceReadOnlyError | typeof WorkspaceLimitsReachedError | typeof ProjectNotFoundError | typeof PersonalProjectsLimitedError>>;
|
|
38
|
+
export declare const ensureUserIsWorkspaceAdminFragment: AuthPolicyEnsureFragment<typeof Loaders.getEnv | typeof Loaders.getServerRole | typeof Loaders.getWorkspace | typeof Loaders.getWorkspaceRole | typeof Loaders.getWorkspaceSsoProvider | typeof Loaders.getWorkspaceSsoSession | typeof Loaders.getWorkspacePlan, WorkspaceContext & MaybeUserContext, InstanceType<typeof WorkspaceNoAccessError | typeof WorkspaceSsoSessionNoAccessError | typeof WorkspacesNotEnabledError | typeof ServerNoSessionError | typeof ServerNoAccessError | typeof ServerNotEnoughPermissionsError | typeof WorkspaceNotEnoughPermissionsError>>;
|
|
39
|
+
/**
|
|
40
|
+
* Check if workspace has access to a specific feature
|
|
41
|
+
*/
|
|
42
|
+
export declare const ensureCanUseWorkspacePlanFeatureFragment: AuthPolicyEnsureFragment<typeof Loaders.getWorkspacePlan | typeof Loaders.getEnv, WorkspaceContext & {
|
|
43
|
+
feature: WorkspacePlanFeatures;
|
|
44
|
+
}, InstanceType<typeof WorkspaceNoAccessError> | InstanceType<typeof WorkspaceReadOnlyError> | InstanceType<typeof WorkspacePlanNoFeatureAccessError> | InstanceType<typeof WorkspacesNotEnabledError>>;
|
|
37
45
|
//# sourceMappingURL=workspaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../../src/authz/fragments/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAKhE,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,kCAAkC,EAClC,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAS,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EACjB,MAAM,sBAAsB,CAAA;AAI7B;;GAEG;AACH,eAAO,MAAM,qCAAqC,EAAE,wBAAwB,CACxE,kBAAkB,GAClB,yBAAyB,GACzB,wBAAwB,GACxB,cAAc,EAChB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAA;CAAE,EAC9D,YAAY,CACR,OAAO,gCAAgC,GACvC,OAAO,sBAAsB,GAC7B,OAAO,kCAAkC,CAC5C,CA2DA,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,wBAAwB,CACpE,OAAO,OAAO,CAAC,MAAM,EAErB,EAAE,EACF,YAAY,CAAC,OAAO,yBAAyB,CAAC,CAK/C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAAE,wBAAwB,CACvE,OAAO,OAAO,CAAC,gBAAgB,EAC/B,gBAAgB,EAChB,YAAY,CAAC,OAAO,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,CAU1E,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,0CAA0C,EAAE,wBAAwB,CAC7E,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,kBAAkB,GACjC,OAAO,OAAO,CAAC,wBAAwB,EACzC,gBAAgB,GAAG,gBAAgB,EACnC,YAAY,CACR,OAAO,sBAAsB,GAC7B,OAAO,sBAAsB,GAC7B,OAAO,2BAA2B,GAClC,OAAO,0BAA0B,GACjC,OAAO,kCAAkC,CAC5C,CA2DA,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAE,wBAAwB,CAClE,OAAO,OAAO,CAAC,MAAM,GACrB,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,gBAAgB,GAC/B,OAAO,OAAO,CAAC,kBAAkB,GACjC,OAAO,OAAO,CAAC,UAAU,GACzB,OAAO,OAAO,CAAC,sBAAsB,EACvC,cAAc,GACZ,qBAAqB,GACrB,gBAAgB,GAAG;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,EACH,YAAY,CACR,OAAO,sBAAsB,GAC7B,OAAO,sBAAsB,GAC7B,OAAO,2BAA2B,GAClC,OAAO,oBAAoB,GAC3B,OAAO,4BAA4B,CACtC,CAmEA,CAAA"}
|
|
1
|
+
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../../src/authz/fragments/workspaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { err, ok } from 'true-myth/result';
|
|
2
2
|
import { hasAnyWorkspaceRole, hasMinimumWorkspaceRole } from '../checks/workspaceRole.js';
|
|
3
|
-
import { PersonalProjectsLimitedError, ProjectNotFoundError, WorkspaceLimitsReachedError, WorkspaceNoAccessError, WorkspaceNoEditorSeatError, WorkspaceNotEnoughPermissionsError, WorkspaceReadOnlyError, WorkspacesNotEnabledError, WorkspaceSsoSessionNoAccessError } from '../domain/authErrors.js';
|
|
3
|
+
import { PersonalProjectsLimitedError, ProjectNotFoundError, WorkspaceLimitsReachedError, WorkspaceNoAccessError, WorkspaceNoEditorSeatError, WorkspaceNotEnoughPermissionsError, WorkspacePlanNoFeatureAccessError, WorkspaceReadOnlyError, WorkspacesNotEnabledError, WorkspaceSsoSessionNoAccessError } from '../domain/authErrors.js';
|
|
4
4
|
import { Roles } from '../../core/constants.js';
|
|
5
5
|
import { isWorkspacePlanStatusReadOnly } from '../../workspaces/helpers/plans.js';
|
|
6
6
|
import { hasEditorSeat } from '../checks/workspaceSeat.js';
|
|
7
|
+
import { ensureMinimumServerRoleFragment } from './server.js';
|
|
8
|
+
import { workspacePlanHasAccessToFeature } from '../../workspaces/helpers/features.js';
|
|
7
9
|
/**
|
|
8
10
|
* Ensure user has a workspace role, and a valid SSO session (if SSO is configured)
|
|
9
11
|
*/
|
|
@@ -182,4 +184,46 @@ export const ensureModelCanBeCreatedFragment = (loaders) => async ({ projectId,
|
|
|
182
184
|
return ok();
|
|
183
185
|
}
|
|
184
186
|
};
|
|
187
|
+
export const ensureUserIsWorkspaceAdminFragment = (loaders) => async ({ userId, workspaceId }) => {
|
|
188
|
+
const ensuredWorkspacesEnabled = await ensureWorkspacesEnabledFragment(loaders)({});
|
|
189
|
+
if (ensuredWorkspacesEnabled.isErr)
|
|
190
|
+
return err(ensuredWorkspacesEnabled.error);
|
|
191
|
+
const ensuredServerRole = await ensureMinimumServerRoleFragment(loaders)({
|
|
192
|
+
userId,
|
|
193
|
+
role: Roles.Server.User
|
|
194
|
+
});
|
|
195
|
+
if (ensuredServerRole.isErr)
|
|
196
|
+
return err(ensuredServerRole.error);
|
|
197
|
+
const ensuredWorkspaceAccess = await ensureWorkspaceRoleAndSessionFragment(loaders)({
|
|
198
|
+
userId: userId,
|
|
199
|
+
workspaceId,
|
|
200
|
+
role: Roles.Workspace.Admin
|
|
201
|
+
});
|
|
202
|
+
if (ensuredWorkspaceAccess.isErr)
|
|
203
|
+
return err(ensuredWorkspaceAccess.error);
|
|
204
|
+
return ok();
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Check if workspace has access to a specific feature
|
|
208
|
+
*/
|
|
209
|
+
export const ensureCanUseWorkspacePlanFeatureFragment = (loaders) => async ({ workspaceId, feature }) => {
|
|
210
|
+
const ensuredWorkspacesEnabled = await ensureWorkspacesEnabledFragment(loaders)({});
|
|
211
|
+
if (ensuredWorkspacesEnabled.isErr)
|
|
212
|
+
return err(ensuredWorkspacesEnabled.error);
|
|
213
|
+
const ensuredNotReadOnly = await ensureWorkspaceNotReadOnlyFragment(loaders)({
|
|
214
|
+
workspaceId
|
|
215
|
+
});
|
|
216
|
+
if (ensuredNotReadOnly.isErr)
|
|
217
|
+
return err(ensuredNotReadOnly.error);
|
|
218
|
+
const workspacePlan = await loaders.getWorkspacePlan({ workspaceId });
|
|
219
|
+
if (!workspacePlan)
|
|
220
|
+
return err(new WorkspaceNoAccessError());
|
|
221
|
+
const featureFlags = await loaders.getEnv();
|
|
222
|
+
const canUseFeature = workspacePlanHasAccessToFeature({
|
|
223
|
+
plan: workspacePlan.name,
|
|
224
|
+
feature,
|
|
225
|
+
featureFlags
|
|
226
|
+
});
|
|
227
|
+
return canUseFeature ? ok() : err(new WorkspacePlanNoFeatureAccessError());
|
|
228
|
+
};
|
|
185
229
|
//# sourceMappingURL=workspaces.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/authz/fragments/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAE1C,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/authz/fragments/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAE1C,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EAIpB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,kCAAkC,EAClC,iCAAiC,EACjC,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,KAAK,EAAkB,MAAM,yBAAyB,CAAA;AAO/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAEL,+BAA+B,EAChC,MAAM,sCAAsC,CAAA;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAYhD,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE;IACtC,MAAM,UAAU,GAAG,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAA;IAChD,MAAM,qBAAqB,GAAG,UAAU,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK,CAAA;IAElE,gEAAgE;IAChE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IAC7D,oDAAoD;IACpD,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;IAExD,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM;QACN,WAAW;QACX,IAAI,EAAE,UAAU;KACjB,CAAC,CAAA;IACF,IAAI,CAAC,cAAc;QACjB,OAAO,GAAG,CACR,qBAAqB;YACnB,CAAC,CAAC,IAAI,sBAAsB,EAAE;YAC9B,CAAC,CAAC,IAAI,kCAAkC,EAAE,CAC7C,CAAA;IAEH,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM;QACN,WAAW;QACX,IAAI,EAAE,kBAAkB;KACzB,CAAC,CAAA;IACF,yCAAyC;IACzC,IAAI,CAAC,oBAAoB;QAAE,OAAO,EAAE,EAAE,CAAA;IAEtC,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC;QACjE,WAAW;KACZ,CAAC,CAAA;IACF,IAAI,CAAC,oBAAoB;QAAE,OAAO,EAAE,EAAE,CAAA;IAEtC,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC;QAC/D,MAAM;QACN,WAAW;KACZ,CAAC,CAAA;IACF,IAAI,CAAC,mBAAmB;QACtB,OAAO,GAAG,CACR,IAAI,gCAAgC,CAAC;YACnC,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,CAAC,IAAI,EAAE;SAC3C,CAAC,CACH,CAAA;IAEH,MAAM,gBAAgB,GACpB,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;IAEjE,IAAI,gBAAgB;QAClB,OAAO,GAAG,CACR,IAAI,gCAAgC,CAAC;YACnC,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,CAAC,IAAI,EAAE;SAC3C,CAAC,CACH,CAAA;IAEH,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAKxC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IAC1B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,4BAA4B;QAAE,OAAO,GAAG,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAA;IAClF,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAK7C,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACxB,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IACrE,IAAI,CAAC,aAAa;QAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;IAC5D,IAAI,6BAA6B,CAAC,aAAa,CAAC,MAAM,CAAC;QACrD,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;IAE1C,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAerD,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;IAChC,mCAAmC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,aAAa;QACb,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM;YACN,WAAW;YACX,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC7B,CAAC,CAAA;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,GAAG,CACR,IAAI,kCAAkC,CACpC,gDAAgD,CACjD,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAC3E,WAAW;KACZ,CAAC,CAAA;IACF,IAAI,kBAAkB,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAElE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IACrE,IAAI,CAAC,aAAa;QAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;IAE5D,wBAAwB;IACxB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM;YACN,WAAW;SACZ,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ;YAAE,OAAO,GAAG,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IACzE,IAAI,CAAC,eAAe;QAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;IAE9D,oBAAoB;IACpB,IAAI,eAAe,CAAC,YAAY,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,CAAA;IACtD,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,wBAAwB,CAAC;QACjE,WAAW;KACZ,CAAC,CAAA;IAEF,mCAAmC;IACnC,IAAI,mBAAmB,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;IAE1E,OAAO,mBAAmB,GAAG,eAAe,CAAC,YAAY;QACvD,CAAC,CAAC,EAAE,EAAE;QACN,CAAC,CAAC,GAAG,CACD,IAAI,2BAA2B,CAAC;YAC9B,OAAO,EACL,wFAAwF;YAC1F,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;SACnC,CAAC,CACH,CAAA;AACP,CAAC,CAAA;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAuB1C,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAE;IAC5D,eAAe,GAAG,eAAe,IAAI,CAAC,CAAA;IAEtC,MAAM,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,GACzE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAA;IAEpD,wFAAwF;IACxF,WAAW,GAAG,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,SAAS,CAAA;IAE7D,eAAe;IACf,IAAI,WAAW,IAAI,4BAA4B,EAAE,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,qBAAqB;YACrB,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM;gBACN,WAAW;aACZ,CAAC,CAAA;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,MAAM,kBAAkB,GAAG,MAAM,kCAAkC,CAAC,OAAO,CAAC,CAAC;YAC3E,WAAW;SACZ,CAAC,CAAA;QACF,IAAI,kBAAkB,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAElE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;QACrE,IAAI,CAAC,aAAa;YAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;QAE5D,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;QACzE,IAAI,CAAC,eAAe;YAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;QAE9D,IAAI,eAAe,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,CAAA;QAEpD,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;QAE/E,IAAI,iBAAiB,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;QAExE,OAAO,iBAAiB,GAAG,eAAe,IAAI,eAAe,CAAC,UAAU;YACtE,CAAC,CAAC,EAAE,EAAE;YACN,CAAC,CAAC,GAAG,CACD,IAAI,2BAA2B,CAAC;gBAC9B,OAAO,EACL,sFAAsF;gBACxF,OAAO,EAAE;oBACP,KAAK,EAAE,YAAY;iBACpB;aACF,CAAC,CACH,CAAA;IACP,CAAC;SAAM,CAAC;QACN,yCAAyC;QACzC,IAAI,mCAAmC,EAAE,CAAC;YACxC,OAAO,GAAG,CACR,IAAI,4BAA4B,CAC9B,iDAAiD,CAClD,CACF,CAAA;QACH,CAAC;QAED,OAAO,EAAE,EAAE,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAmB7C,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChC,MAAM,wBAAwB,GAAG,MAAM,+BAA+B,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACnF,IAAI,wBAAwB,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;IAE9E,MAAM,iBAAiB,GAAG,MAAM,+BAA+B,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM;QACN,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;KACxB,CAAC,CAAA;IAEF,IAAI,iBAAiB,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAEhE,MAAM,sBAAsB,GAAG,MAAM,qCAAqC,CAAC,OAAO,CAAC,CACjF;QACE,MAAM,EAAE,MAAO;QACf,WAAW;QACX,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK;KAC5B,CACF,CAAA;IACD,IAAI,sBAAsB,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAC1E,OAAO,EAAE,EAAE,CAAA;AACb,CAAC,CAAA;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAQnD,CAAC,OAAO,EAAE,EAAE,CACZ,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IACjC,MAAM,wBAAwB,GAAG,MAAM,+BAA+B,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACnF,IAAI,wBAAwB,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;IAE9E,MAAM,kBAAkB,GAAG,MAAM,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAC3E,WAAW;KACZ,CAAC,CAAA;IACF,IAAI,kBAAkB,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAElE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IACrE,IAAI,CAAC,aAAa;QAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAA;IAE5D,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IAC3C,MAAM,aAAa,GAAG,+BAA+B,CAAC;QACpD,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,OAAO;QACP,YAAY;KACb,CAAC,CAAA;IACF,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAA;AAC5E,CAAC,CAAA"}
|