@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,126 @@
|
|
|
1
|
+
import { describe, it, expect, afterEach, beforeEach } from 'vitest'
|
|
2
|
+
import { parseFeatureFlags } from './index.js'
|
|
3
|
+
import { FeatureFlags } from './featureFlags.js'
|
|
4
|
+
|
|
5
|
+
const originalDisableAllFfs = process.env.DISABLE_ALL_FFS || ''
|
|
6
|
+
const originalEnableAllFfs = process.env.ENABLE_ALL_FFS || ''
|
|
7
|
+
|
|
8
|
+
const setDisableAllFfs = (value: boolean) => {
|
|
9
|
+
process.env.DISABLE_ALL_FFS = value.toString()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const setEnableAllFfs = (value: boolean) => {
|
|
13
|
+
process.env.ENABLE_ALL_FFS = value.toString()
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const resetEnv = () => {
|
|
17
|
+
process.env.DISABLE_ALL_FFS = originalDisableAllFfs
|
|
18
|
+
process.env.ENABLE_ALL_FFS = originalEnableAllFfs
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
describe('parseFeatureFlags', () => {
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
// Disable global "ALL FFs"/"NO FFs" modes for these tests, cause they break em
|
|
24
|
+
setDisableAllFfs(false)
|
|
25
|
+
setEnableAllFfs(false)
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
resetEnv()
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
it('returns all defaults as false', () => {
|
|
33
|
+
const flags = parseFeatureFlags({})
|
|
34
|
+
for (const key of Object.keys(flags)) {
|
|
35
|
+
expect(flags[key as keyof FeatureFlags]).toBe(false)
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
it('parses explicit true/false values', () => {
|
|
40
|
+
const flags = parseFeatureFlags({
|
|
41
|
+
FF_AUTOMATE_MODULE_ENABLED: 'true',
|
|
42
|
+
FF_GENDOAI_MODULE_ENABLED: 'false',
|
|
43
|
+
FF_SAVED_VIEWS_ENABLED: 'true'
|
|
44
|
+
})
|
|
45
|
+
expect(flags.FF_AUTOMATE_MODULE_ENABLED).toBe(true)
|
|
46
|
+
expect(flags.FF_GENDOAI_MODULE_ENABLED).toBe(false)
|
|
47
|
+
expect(flags.FF_SAVED_VIEWS_ENABLED).toBe(true)
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
it('DISABLE_ALL_FFS disables all flags unless forceInputs is true', () => {
|
|
51
|
+
setDisableAllFfs(true)
|
|
52
|
+
const flags = parseFeatureFlags(
|
|
53
|
+
{
|
|
54
|
+
FF_AUTOMATE_MODULE_ENABLED: 'true',
|
|
55
|
+
FF_SAVED_VIEWS_ENABLED: 'true'
|
|
56
|
+
},
|
|
57
|
+
{ forceInputs: false }
|
|
58
|
+
)
|
|
59
|
+
for (const key of Object.keys(flags)) {
|
|
60
|
+
expect(flags[key as keyof FeatureFlags]).toBe(false)
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
it('ENABLE_ALL_FFS enables all flags unless forceInputs is true', () => {
|
|
65
|
+
setEnableAllFfs(true)
|
|
66
|
+
const flags = parseFeatureFlags(
|
|
67
|
+
{
|
|
68
|
+
FF_AUTOMATE_MODULE_ENABLED: 'false',
|
|
69
|
+
FF_SAVED_VIEWS_ENABLED: 'false'
|
|
70
|
+
},
|
|
71
|
+
{ forceInputs: false }
|
|
72
|
+
)
|
|
73
|
+
for (const key of Object.keys(flags)) {
|
|
74
|
+
expect(flags[key as keyof FeatureFlags]).toBe(true)
|
|
75
|
+
}
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
it('forceInputs=true preserves explicit input values even with DISABLE_ALL_FFS', () => {
|
|
79
|
+
setDisableAllFfs(true)
|
|
80
|
+
const flags = parseFeatureFlags(
|
|
81
|
+
{
|
|
82
|
+
FF_AUTOMATE_MODULE_ENABLED: 'true',
|
|
83
|
+
FF_SAVED_VIEWS_ENABLED: 'false'
|
|
84
|
+
},
|
|
85
|
+
{ forceInputs: true }
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
expect(flags.FF_AUTOMATE_MODULE_ENABLED).toBe(true)
|
|
89
|
+
expect(flags.FF_SAVED_VIEWS_ENABLED).toBe(false)
|
|
90
|
+
// All others should be false
|
|
91
|
+
for (const key of Object.keys(flags)) {
|
|
92
|
+
if (key !== 'FF_AUTOMATE_MODULE_ENABLED' && key !== 'FF_SAVED_VIEWS_ENABLED') {
|
|
93
|
+
expect(flags[key as keyof FeatureFlags]).toBe(false)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
it('forceInputs=true preserves explicit input values even with ENABLE_ALL_FFS', () => {
|
|
99
|
+
setEnableAllFfs(true)
|
|
100
|
+
const flags = parseFeatureFlags(
|
|
101
|
+
{
|
|
102
|
+
FF_AUTOMATE_MODULE_ENABLED: 'false',
|
|
103
|
+
FF_SAVED_VIEWS_ENABLED: 'true'
|
|
104
|
+
},
|
|
105
|
+
{ forceInputs: true }
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
expect(flags.FF_AUTOMATE_MODULE_ENABLED).toBe(false)
|
|
109
|
+
expect(flags.FF_SAVED_VIEWS_ENABLED).toBe(true)
|
|
110
|
+
// All others should be true
|
|
111
|
+
for (const key of Object.keys(flags)) {
|
|
112
|
+
if (key !== 'FF_AUTOMATE_MODULE_ENABLED' && key !== 'FF_SAVED_VIEWS_ENABLED') {
|
|
113
|
+
expect(flags[key as keyof FeatureFlags]).toBe(true)
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
it('it can handle empty string env vars', () => {
|
|
119
|
+
const flags = parseFeatureFlags({
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
121
|
+
// @ts-expect-error
|
|
122
|
+
FF_AUTOMATE_MODULE_ENABLED: ''
|
|
123
|
+
})
|
|
124
|
+
expect(flags.FF_AUTOMATE_MODULE_ENABLED).toBe(false)
|
|
125
|
+
})
|
|
126
|
+
})
|
package/src/environment/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { has } from '#lodash'
|
|
2
2
|
import { parseEnv } from 'znv'
|
|
3
3
|
import { z } from 'zod'
|
|
4
|
+
import { FeatureFlags } from './featureFlags.js'
|
|
4
5
|
|
|
5
6
|
// Convenience variable to override below individual feature flags, which has the effect of setting all to 'false' (disabled)
|
|
6
7
|
// Takes precedence over ENABLE_ALL_FFS
|
|
@@ -17,7 +18,7 @@ export const parseFeatureFlags = (
|
|
|
17
18
|
input: Partial<Record<keyof FeatureFlags, 'true' | 'false' | undefined>>,
|
|
18
19
|
options?: Partial<{
|
|
19
20
|
/**
|
|
20
|
-
* Whether to prevent inputs from being
|
|
21
|
+
* Whether to prevent inputs from being overridden by disable/enable all
|
|
21
22
|
* Default: true
|
|
22
23
|
*/
|
|
23
24
|
forceInputs: boolean
|
|
@@ -25,10 +26,19 @@ export const parseFeatureFlags = (
|
|
|
25
26
|
): FeatureFlags => {
|
|
26
27
|
const { forceInputs = true } = options || {}
|
|
27
28
|
|
|
29
|
+
// Clean up input: unset empty values
|
|
30
|
+
for (const key of Object.keys(input)) {
|
|
31
|
+
const typedKey = key as keyof FeatureFlags
|
|
32
|
+
const typedVal = input[typedKey] as unknown
|
|
33
|
+
|
|
34
|
+
if (typedVal === undefined || typedVal === '') {
|
|
35
|
+
delete input[typedKey]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
28
39
|
//INFO
|
|
29
40
|
// As a convention all feature flags should be prefixed with a FF_
|
|
30
41
|
const res = parseEnv(input, {
|
|
31
|
-
// Enables the automate module.
|
|
32
42
|
FF_AUTOMATE_MODULE_ENABLED: {
|
|
33
43
|
schema: z.boolean(),
|
|
34
44
|
description:
|
|
@@ -40,7 +50,6 @@ export const parseFeatureFlags = (
|
|
|
40
50
|
description: 'Enables the gendo ai integration',
|
|
41
51
|
defaults: { _: false }
|
|
42
52
|
},
|
|
43
|
-
//
|
|
44
53
|
FF_WORKSPACES_MODULE_ENABLED: {
|
|
45
54
|
schema: z.boolean(),
|
|
46
55
|
description:
|
|
@@ -78,7 +87,6 @@ export const parseFeatureFlags = (
|
|
|
78
87
|
'Enables workspaces multi region DB support. Requires FF_GATEKEEPER_MODULE_ENABLED and FF_WORKSPACES_MODULE_ENABLED to be true. This requires a valid Synchronized Enterprise Edition license in order to be enabled. See https://github.com/KingDaryush1/synchronized-server?tab=License-1-ov-file#readme',
|
|
79
88
|
defaults: { _: false }
|
|
80
89
|
},
|
|
81
|
-
// Forces onboarding for all users
|
|
82
90
|
FF_FORCE_ONBOARDING: {
|
|
83
91
|
schema: z.boolean(),
|
|
84
92
|
description: 'Forces onboarding flow for all users',
|
|
@@ -89,25 +97,59 @@ export const parseFeatureFlags = (
|
|
|
89
97
|
description: 'Enable to not allow personal emails',
|
|
90
98
|
defaults: { _: false }
|
|
91
99
|
},
|
|
92
|
-
//
|
|
93
100
|
FF_MOVE_PROJECT_REGION_ENABLED: {
|
|
94
101
|
schema: z.boolean(),
|
|
95
102
|
description:
|
|
96
103
|
"Enables endpoint(s) for updating a project's region. Requires FF_WORKSPACES_MULTI_REGION_ENABLED to be true (which indirectly requires FF_GATEKEEPER_MODULE_ENABLED and FF_WORKSPACES_MODULE_ENABLED to be true. This requires a valid Synchronized Enterprise Edition license in order to be enabled, see https://github.com/KingDaryush1/synchronized-server?tab=License-1-ov-file#readme",
|
|
97
104
|
defaults: { _: false }
|
|
98
105
|
},
|
|
99
|
-
// Enable limits on personal projects
|
|
100
106
|
FF_PERSONAL_PROJECTS_LIMITS_ENABLED: {
|
|
101
107
|
schema: z.boolean(),
|
|
102
|
-
description:
|
|
103
|
-
'Enables limits on personal projects. Requires FF_GATEKEEPER_MODULE_ENABLED and FF_WORKSPACES_MODULE_ENABLED to be true. This requires a valid Synchronized Enterprise Edition license in order to be enabled, see https://github.com/KingDaryush1/synchronized-server?tab=License-1-ov-file#readme',
|
|
104
108
|
defaults: { _: false }
|
|
105
109
|
},
|
|
106
|
-
// Enables
|
|
110
|
+
// Enables retrying errored previews
|
|
111
|
+
FF_RETRY_ERRORED_PREVIEWS_ENABLED: {
|
|
112
|
+
schema: z.boolean(),
|
|
113
|
+
description: 'Allows the retrying of previews which have previously failed.',
|
|
114
|
+
defaults: { _: false }
|
|
115
|
+
},
|
|
107
116
|
FF_NEXT_GEN_FILE_IMPORTER_ENABLED: {
|
|
108
117
|
schema: z.boolean(),
|
|
109
118
|
description: 'Enables the new file importer.',
|
|
110
119
|
defaults: { _: false }
|
|
120
|
+
},
|
|
121
|
+
FF_RHINO_FILE_IMPORTER_ENABLED: {
|
|
122
|
+
schema: z.boolean(),
|
|
123
|
+
description: 'Enables the Rhino based file importer.',
|
|
124
|
+
defaults: { _: false }
|
|
125
|
+
},
|
|
126
|
+
FF_LEGACY_FILE_IMPORTS_ENABLED: {
|
|
127
|
+
schema: z.boolean(),
|
|
128
|
+
description:
|
|
129
|
+
'Enables the legacy file importer. This proxies file uploads via REST API on the server instead of directly PUTing files to S3 via pre-signed urls.',
|
|
130
|
+
defaults: { _: false }
|
|
131
|
+
},
|
|
132
|
+
FF_ACC_INTEGRATION_ENABLED: {
|
|
133
|
+
schema: z.boolean(),
|
|
134
|
+
description:
|
|
135
|
+
'Enables the integration with ACC. This synchronizes models with specified ACC assets.',
|
|
136
|
+
defaults: { _: false }
|
|
137
|
+
},
|
|
138
|
+
FF_DASHBOARDS_MODULE_ENABLED: {
|
|
139
|
+
schema: z.boolean(),
|
|
140
|
+
description: 'Enables the dashboards module.',
|
|
141
|
+
defaults: { _: false }
|
|
142
|
+
},
|
|
143
|
+
FF_SAVED_VIEWS_ENABLED: {
|
|
144
|
+
schema: z.boolean(),
|
|
145
|
+
description: 'Enables the saved views feature for project models',
|
|
146
|
+
defaults: { _: false }
|
|
147
|
+
},
|
|
148
|
+
FF_USERS_INVITE_SCOPE_IS_PUBLIC: {
|
|
149
|
+
schema: z.boolean(),
|
|
150
|
+
description:
|
|
151
|
+
'Enables Personal Access Tokens (PAT) to be created with users:invite scope. **WARNING** This can be used to spam invitations to any email address. It is not advised to enable this on servers which are open to public account registration or to which untrusted users have been, or can be, invited.',
|
|
152
|
+
defaults: { _: false }
|
|
111
153
|
}
|
|
112
154
|
})
|
|
113
155
|
|
|
@@ -127,21 +169,6 @@ export const parseFeatureFlags = (
|
|
|
127
169
|
|
|
128
170
|
let parsedFlags: FeatureFlags | undefined
|
|
129
171
|
|
|
130
|
-
export type FeatureFlags = {
|
|
131
|
-
FF_AUTOMATE_MODULE_ENABLED: boolean
|
|
132
|
-
FF_GENDOAI_MODULE_ENABLED: boolean
|
|
133
|
-
FF_WORKSPACES_MODULE_ENABLED: boolean
|
|
134
|
-
FF_WORKSPACES_SSO_ENABLED: boolean
|
|
135
|
-
FF_GATEKEEPER_MODULE_ENABLED: boolean
|
|
136
|
-
FF_BILLING_INTEGRATION_ENABLED: boolean
|
|
137
|
-
FF_WORKSPACES_MULTI_REGION_ENABLED: boolean
|
|
138
|
-
FF_FORCE_ONBOARDING: boolean
|
|
139
|
-
FF_MOVE_PROJECT_REGION_ENABLED: boolean
|
|
140
|
-
FF_NO_PERSONAL_EMAILS_ENABLED: boolean
|
|
141
|
-
FF_PERSONAL_PROJECTS_LIMITS_ENABLED: boolean
|
|
142
|
-
FF_NEXT_GEN_FILE_IMPORTER_ENABLED: boolean
|
|
143
|
-
}
|
|
144
|
-
|
|
145
172
|
export function getFeatureFlags(): FeatureFlags {
|
|
146
173
|
//@ts-expect-error this way, the parse function typing is a lot better
|
|
147
174
|
if (!parsedFlags) parsedFlags = parseFeatureFlags(process.env, { forceInputs: false })
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { fileURLToPath } from 'url'
|
|
2
|
+
import { dirname } from 'path'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Feed in import.meta and get the module's filesystem location
|
|
6
|
+
*/
|
|
7
|
+
export const getModuleDirectory = (meta: ImportMeta): string => {
|
|
8
|
+
const __filename = fileURLToPath(meta.url)
|
|
9
|
+
const __dirname = dirname(__filename)
|
|
10
|
+
return __dirname
|
|
11
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { isValidBase64Image } from './base64.js'
|
|
2
|
+
import { describe, it, expect } from 'vitest'
|
|
3
|
+
|
|
4
|
+
describe('isValidBase64Image', () => {
|
|
5
|
+
it('returns true for a valid base64 PNG image', () => {
|
|
6
|
+
const validPng = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA'
|
|
7
|
+
expect(isValidBase64Image(validPng)).toBe(true)
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
it('returns true for a valid base64 JPEG image', () => {
|
|
11
|
+
const validJpeg = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD'
|
|
12
|
+
expect(isValidBase64Image(validJpeg)).toBe(true)
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('returns false if string does not start with data:image/', () => {
|
|
16
|
+
const invalid = 'data:text/plain;base64,SGVsbG8gd29ybGQ='
|
|
17
|
+
expect(isValidBase64Image(invalid)).toBe(false)
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
it('returns false if there is no comma separator', () => {
|
|
21
|
+
const invalid = 'data:image/png;base64iVBORw0KGgoAAAANSUhEUgAAAAUA'
|
|
22
|
+
expect(isValidBase64Image(invalid)).toBe(false)
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('returns false if base64 part is invalid', () => {
|
|
26
|
+
const invalid = 'data:image/png;base64,not_base64!'
|
|
27
|
+
expect(isValidBase64Image(invalid)).toBe(false)
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it('returns false for empty string', () => {
|
|
31
|
+
expect(isValidBase64Image('')).toBe(false)
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('returns false for data:image/ with empty base64', () => {
|
|
35
|
+
expect(isValidBase64Image('data:image/png;base64,')).toBe(false)
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('returns true for valid base64 with whitespace', () => {
|
|
39
|
+
const validWithWhitespace = 'data:image/png;base64,iVBOR w0KGgoA AAANSUhEUgAAAAUA'
|
|
40
|
+
expect(isValidBase64Image(validWithWhitespace)).toBe(true)
|
|
41
|
+
})
|
|
42
|
+
})
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const isValidBase64Image = (data: string): boolean => {
|
|
2
|
+
if (!data.startsWith('data:image/')) return false
|
|
3
|
+
|
|
4
|
+
const parts = data.split(',')
|
|
5
|
+
if (parts.length !== 2) return false
|
|
6
|
+
|
|
7
|
+
// Remove all whitespace characters from base64 string
|
|
8
|
+
const base64String = parts[1].replace(/\s+/g, '')
|
|
9
|
+
|
|
10
|
+
// Validate that the cleaned string only has valid base64 characters
|
|
11
|
+
const base64Regex = /^[A-Za-z0-9+/]+={0,2}$/
|
|
12
|
+
if (!base64Regex.test(base64String)) return false
|
|
13
|
+
|
|
14
|
+
return true
|
|
15
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** TODO: We should get rid of the index barrel file at some point entirely and exclusively rely on exports maps */
|
|
1
2
|
export * as RichTextEditor from './rich-text-editor/index.js'
|
|
2
3
|
export * as SynchronizedViewer from './viewer/index.js'
|
|
3
4
|
export * as Automate from './automate/index.js'
|
|
@@ -12,6 +12,9 @@ type LogFormatter = (logObject: Record<string, unknown>) => Record<string, unkno
|
|
|
12
12
|
const allowPrettyDebugger = ['1', 'true'].includes(
|
|
13
13
|
process.env.ALLOW_PRETTY_DEBUGGER || 'false'
|
|
14
14
|
)
|
|
15
|
+
const debugNamespaces = (process.env.LOG_FILTER || '')
|
|
16
|
+
.split(',')
|
|
17
|
+
.filter((s) => !!s?.length)
|
|
15
18
|
|
|
16
19
|
const defaultLevelFormatterFactory =
|
|
17
20
|
(pretty: boolean): LogLevelFormatter =>
|
|
@@ -42,7 +45,23 @@ export function getLogger(
|
|
|
42
45
|
messageKey: pretty ? 'msg' : '@mt',
|
|
43
46
|
level: minimumLoggedLevel,
|
|
44
47
|
// when not pretty, we need the time in the clef appropriate field, not from pino
|
|
45
|
-
timestamp: pretty ? pino.stdTimeFunctions.isoTime : false
|
|
48
|
+
timestamp: pretty ? pino.stdTimeFunctions.isoTime : false,
|
|
49
|
+
hooks: {
|
|
50
|
+
logMethod(args, method) {
|
|
51
|
+
// Invoke as is
|
|
52
|
+
if (!debugNamespaces.length) {
|
|
53
|
+
return method.apply(this, args)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Filter out if component not in allowed debug namespaces
|
|
57
|
+
const component = (this.bindings() as { component: string }).component
|
|
58
|
+
if (debugNamespaces.includes(component)) {
|
|
59
|
+
return method.apply(this, args)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Otherwise, skip actually logging
|
|
63
|
+
}
|
|
64
|
+
}
|
|
46
65
|
}
|
|
47
66
|
|
|
48
67
|
// pino-pretty hangs in debugger mode in node 22 for some (Ubuntu/WSL2?), dunno why
|
|
@@ -52,7 +71,7 @@ export function getLogger(
|
|
|
52
71
|
options: {
|
|
53
72
|
colorize: true,
|
|
54
73
|
destination: 2, //stderr
|
|
55
|
-
ignore: 'time',
|
|
74
|
+
// ignore: 'time',
|
|
56
75
|
levelFirst: true,
|
|
57
76
|
singleLine: true
|
|
58
77
|
}
|
|
@@ -60,6 +79,7 @@ export function getLogger(
|
|
|
60
79
|
}
|
|
61
80
|
|
|
62
81
|
logger = pino(pinoOptions)
|
|
82
|
+
|
|
63
83
|
return logger
|
|
64
84
|
}
|
|
65
85
|
|
package/src/queue/config.ts
CHANGED
|
@@ -2,12 +2,14 @@ import Bull from 'bull'
|
|
|
2
2
|
import { Redis } from 'ioredis'
|
|
3
3
|
import { isRedisReady } from '../redis/isRedisReady.js'
|
|
4
4
|
|
|
5
|
-
// we're caching this here, so that there is one client for the app lifecycle
|
|
6
|
-
|
|
7
5
|
type ClientCache = Record<string, { client?: Redis; subscriber?: Redis }>
|
|
8
6
|
|
|
7
|
+
// we're caching this here, so that there is one client for the app lifecycle
|
|
9
8
|
const clientCache: ClientCache = {}
|
|
10
9
|
|
|
10
|
+
// so we can get all active queues for monitoring
|
|
11
|
+
const queueCache: Record<string, Bull.Queue> = {}
|
|
12
|
+
|
|
11
13
|
export const initializeQueue = async <T>({
|
|
12
14
|
queueName,
|
|
13
15
|
redisUrl,
|
|
@@ -57,13 +59,23 @@ export const initializeQueue = async <T>({
|
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
}
|
|
62
|
+
|
|
60
63
|
const newQueue = new Bull<T>(queueName, opts)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
//
|
|
64
|
+
queueCache[queueName] = newQueue
|
|
65
|
+
|
|
66
|
+
// When newQueue closed, remove from cache
|
|
67
|
+
newQueue.on('close', () => {
|
|
68
|
+
delete queueCache[queueName]
|
|
69
|
+
})
|
|
70
|
+
newQueue.client.on('end', () => {
|
|
71
|
+
delete queueCache[queueName]
|
|
72
|
+
})
|
|
73
|
+
|
|
64
74
|
if (!clientCache[redisUrl].client)
|
|
65
75
|
throw new Error('Redis client not properly initialized')
|
|
76
|
+
|
|
66
77
|
await isRedisReady(clientCache[redisUrl].client)
|
|
67
|
-
// await isRedisReady(clientCache[redisUrl].subscriber)
|
|
68
78
|
return await newQueue.isReady()
|
|
69
79
|
}
|
|
80
|
+
|
|
81
|
+
export const getActiveQueues = () => ({ ...queueCache })
|
|
@@ -1,7 +1,21 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
1
2
|
import { trim, isNumber } from '#lodash'
|
|
2
|
-
import type { JSONContent } from '@tiptap/core'
|
|
3
3
|
import type { Optional } from '../../core/helpers/utilityTypes.js'
|
|
4
4
|
|
|
5
|
+
// TODO: had to copy out of tiptap/core, because of a build issue w/ a type-only import from CJS
|
|
6
|
+
type JSONContent = {
|
|
7
|
+
[key: string]: any
|
|
8
|
+
type?: string | undefined
|
|
9
|
+
attrs?: Record<string, any> | undefined
|
|
10
|
+
content?: JSONContent[]
|
|
11
|
+
marks?: {
|
|
12
|
+
type: string
|
|
13
|
+
attrs?: Record<string, any>
|
|
14
|
+
[key: string]: any
|
|
15
|
+
}[]
|
|
16
|
+
text?: string
|
|
17
|
+
}
|
|
18
|
+
|
|
5
19
|
/**
|
|
6
20
|
* Used to match URLs that can appear anywhere in a string, not perfect, but crafting a perfect
|
|
7
21
|
* URL regex is quite complex and we only need this for legacy comments
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { isUngroupedGroup } from './defaultGroup.js'
|
|
3
|
+
|
|
4
|
+
describe('isUngroupedGroup', () => {
|
|
5
|
+
it('should return true for ungrouped groups', () => {
|
|
6
|
+
expect(isUngroupedGroup('default-group')).toBe(true)
|
|
7
|
+
})
|
|
8
|
+
|
|
9
|
+
it('should return false for grouped groups', () => {
|
|
10
|
+
expect(isUngroupedGroup('custom-group')).toBe(false)
|
|
11
|
+
})
|
|
12
|
+
})
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { isObjectLike } from '#lodash'
|
|
2
|
+
import { Nullable } from '../../core/helpers/utilityTypes.js'
|
|
3
|
+
import { base64Decode, base64Encode } from '../../core/utils/base64.js'
|
|
4
|
+
import {
|
|
5
|
+
isModelResource,
|
|
6
|
+
isObjectResource,
|
|
7
|
+
resourceBuilder,
|
|
8
|
+
ViewerResourcesTarget
|
|
9
|
+
} from '../../viewer/helpers/route.js'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Title used for the default 'Ungrouped Scenes' group in the saved views panel.
|
|
13
|
+
*/
|
|
14
|
+
export const ungroupedScenesGroupTitle = 'Ungrouped'
|
|
15
|
+
|
|
16
|
+
export type DefaultGroupMetadata = {
|
|
17
|
+
resourceIds: string[]
|
|
18
|
+
projectId: string
|
|
19
|
+
name: 'Default Group'
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Converts a resourceId string into a more abstract format used by groups that disregards
|
|
24
|
+
* specific versions of models and objects.
|
|
25
|
+
*/
|
|
26
|
+
export const formatResourceIdsForGroup = (resources: ViewerResourcesTarget) => {
|
|
27
|
+
return resourceBuilder()
|
|
28
|
+
.addResources(resources)
|
|
29
|
+
.clearVersions()
|
|
30
|
+
.filter((r) => {
|
|
31
|
+
// filter out any resources that are not ViewerModelResource or ViewerObjectResource
|
|
32
|
+
return isModelResource(r) || isObjectResource(r)
|
|
33
|
+
})
|
|
34
|
+
.map((r) => r.toString())
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const buildDefaultGroupId = (params: {
|
|
38
|
+
resourceIds: string[]
|
|
39
|
+
projectId: string
|
|
40
|
+
}) => {
|
|
41
|
+
const payload: DefaultGroupMetadata = {
|
|
42
|
+
resourceIds: formatResourceIdsForGroup(params.resourceIds),
|
|
43
|
+
projectId: params.projectId,
|
|
44
|
+
name: 'Default Group'
|
|
45
|
+
}
|
|
46
|
+
const str = JSON.stringify(payload)
|
|
47
|
+
return 'default-' + base64Encode(str)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export const decodeDefaultGroupId = (id: string): Nullable<DefaultGroupMetadata> => {
|
|
51
|
+
try {
|
|
52
|
+
if (!isUngroupedGroup(id)) return null
|
|
53
|
+
const json = base64Decode(id.replace('default-', ''))
|
|
54
|
+
const obj = JSON.parse(json) as Record<string, unknown>
|
|
55
|
+
if (
|
|
56
|
+
!isObjectLike(obj) ||
|
|
57
|
+
!obj.resourceIds ||
|
|
58
|
+
!obj.projectId ||
|
|
59
|
+
obj.name !== 'Default Group'
|
|
60
|
+
) {
|
|
61
|
+
throw new Error('Invalid saved view group ID format')
|
|
62
|
+
}
|
|
63
|
+
return obj as Nullable<DefaultGroupMetadata>
|
|
64
|
+
} catch {
|
|
65
|
+
// Suppress - not the default group ID
|
|
66
|
+
return null
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export const isUngroupedGroup = (groupId: string) => groupId.startsWith('default-')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './helpers/defaultGroup.js'
|
package/src/tests/fakes.ts
CHANGED
|
@@ -4,9 +4,21 @@ import { Comment } from '../authz/domain/comments/types.js'
|
|
|
4
4
|
import { nanoid } from 'nanoid'
|
|
5
5
|
import { Model } from '../authz/domain/models/types.js'
|
|
6
6
|
import { Version } from '../authz/domain/versions/types.js'
|
|
7
|
-
import {
|
|
8
|
-
|
|
7
|
+
import {
|
|
8
|
+
Workspace,
|
|
9
|
+
WorkspaceSsoProvider,
|
|
10
|
+
WorkspaceSsoSession
|
|
11
|
+
} from '../authz/domain/workspaces/types.js'
|
|
12
|
+
import { parseFeatureFlags } from '../environment/index.js'
|
|
9
13
|
import { mapValues } from 'lodash'
|
|
14
|
+
import { WorkspaceFeatureFlags, WorkspacePlan } from '../workspaces/index.js'
|
|
15
|
+
import { TIME_MS } from '../core/index.js'
|
|
16
|
+
import {
|
|
17
|
+
SavedView,
|
|
18
|
+
SavedViewGroup,
|
|
19
|
+
SavedViewVisibility
|
|
20
|
+
} from '../authz/domain/savedViews/types.js'
|
|
21
|
+
import { FeatureFlags } from '../environment/featureFlags.js'
|
|
10
22
|
|
|
11
23
|
export const fakeGetFactory =
|
|
12
24
|
<T extends Record<string, unknown>>(defaults: () => T) =>
|
|
@@ -28,7 +40,27 @@ export const getProjectFake = fakeGetFactory<Project>(() => ({
|
|
|
28
40
|
|
|
29
41
|
export const getWorkspaceFake = fakeGetFactory<Workspace>(() => ({
|
|
30
42
|
id: nanoid(10),
|
|
31
|
-
slug: nanoid(10)
|
|
43
|
+
slug: nanoid(10),
|
|
44
|
+
isExclusive: false
|
|
45
|
+
}))
|
|
46
|
+
|
|
47
|
+
export const getWorkspacePlanFake = fakeGetFactory<WorkspacePlan>(() => ({
|
|
48
|
+
name: 'team',
|
|
49
|
+
status: 'valid',
|
|
50
|
+
workspaceId: nanoid(10),
|
|
51
|
+
createdAt: new Date(Date.now() - TIME_MS.day),
|
|
52
|
+
updatedAt: new Date(Date.now() - TIME_MS.day),
|
|
53
|
+
featureFlags: WorkspaceFeatureFlags.none
|
|
54
|
+
}))
|
|
55
|
+
|
|
56
|
+
export const getWorkspaceSsoProviderFake = fakeGetFactory<WorkspaceSsoProvider>(() => ({
|
|
57
|
+
providerId: nanoid(10)
|
|
58
|
+
}))
|
|
59
|
+
|
|
60
|
+
export const getWorkspaceSsoSessionFake = fakeGetFactory<WorkspaceSsoSession>(() => ({
|
|
61
|
+
userId: nanoid(10),
|
|
62
|
+
providerId: nanoid(10),
|
|
63
|
+
validUntil: new Date(Date.now() + TIME_MS.day)
|
|
32
64
|
}))
|
|
33
65
|
|
|
34
66
|
export const getCommentFake = fakeGetFactory<Comment>(() => ({
|
|
@@ -50,5 +82,24 @@ export const getVersionFake = fakeGetFactory<Version>(() => ({
|
|
|
50
82
|
authorId: nanoid(10)
|
|
51
83
|
}))
|
|
52
84
|
|
|
53
|
-
export const
|
|
85
|
+
export const getSavedViewFake = fakeGetFactory<SavedView>(() => ({
|
|
86
|
+
id: nanoid(10),
|
|
87
|
+
name: nanoid(10),
|
|
88
|
+
authorId: nanoid(10),
|
|
89
|
+
projectId: nanoid(10),
|
|
90
|
+
groupId: null,
|
|
91
|
+
visibility: SavedViewVisibility.public,
|
|
92
|
+
resourceIds: [nanoid(10)]
|
|
93
|
+
}))
|
|
94
|
+
|
|
95
|
+
export const getSavedViewGroupFake = fakeGetFactory<SavedViewGroup>(() => ({
|
|
96
|
+
id: nanoid(10),
|
|
97
|
+
name: nanoid(10),
|
|
98
|
+
projectId: nanoid(10),
|
|
99
|
+
resourceIds: [nanoid(10)],
|
|
100
|
+
authorId: nanoid(10)
|
|
101
|
+
}))
|
|
102
|
+
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
104
|
+
export const getEnvFake = (overrides?: Partial<FeatureFlags>) => async () =>
|
|
54
105
|
parseFeatureFlags(mapValues(overrides || {}, (v) => `${v}` as 'true' | 'false'))
|