@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,215 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { errorToString, getErrorMessage } from './error.js'
|
|
3
|
+
|
|
4
|
+
describe('errorToString', () => {
|
|
5
|
+
it('should stringify non-Error objects', () => {
|
|
6
|
+
const obj = { foo: 'bar', num: 42 }
|
|
7
|
+
const result = errorToString(obj)
|
|
8
|
+
expect(result).toBe('{"foo":"bar","num":42}')
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
it('should handle primitive values', () => {
|
|
12
|
+
expect(errorToString('string error')).toBe('"string error"')
|
|
13
|
+
expect(errorToString(123)).toBe('123')
|
|
14
|
+
expect(errorToString(true)).toBe('true')
|
|
15
|
+
expect(errorToString(null)).toBe('null')
|
|
16
|
+
expect(errorToString(undefined)).toBeUndefined()
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
it('should fallback to String() for non-serializable objects', () => {
|
|
20
|
+
const circular: Record<string, unknown> = { name: 'circular' }
|
|
21
|
+
circular.self = circular
|
|
22
|
+
|
|
23
|
+
const result = errorToString(circular)
|
|
24
|
+
expect(result).toBe('[object Object]')
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
it('should return stack trace for Error objects', () => {
|
|
28
|
+
const error = new Error('Test error')
|
|
29
|
+
const result = errorToString(error)
|
|
30
|
+
|
|
31
|
+
expect(result).toContain('Test error')
|
|
32
|
+
expect(result).toContain('Error: Test error')
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
it('should fallback to message if no stack', () => {
|
|
36
|
+
const error = new Error('Test message')
|
|
37
|
+
// Remove stack to test fallback
|
|
38
|
+
delete (error as Error & { stack?: string }).stack
|
|
39
|
+
|
|
40
|
+
const result = errorToString(error)
|
|
41
|
+
expect(result).toBe('Test message')
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('should fallback to String(error) if no stack or message', () => {
|
|
45
|
+
const error = new Error()
|
|
46
|
+
delete (error as Error & { stack?: string }).stack
|
|
47
|
+
// Use Reflect.deleteProperty to avoid TypeScript error
|
|
48
|
+
Reflect.deleteProperty(error, 'message')
|
|
49
|
+
|
|
50
|
+
const result = errorToString(error)
|
|
51
|
+
expect(result).toBe('Error')
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
it('should handle Error with cause property', () => {
|
|
55
|
+
const rootCause = new Error('Root cause')
|
|
56
|
+
const error = new Error('Main error') as Error & { cause?: Error }
|
|
57
|
+
error.cause = rootCause
|
|
58
|
+
|
|
59
|
+
const result = errorToString(error)
|
|
60
|
+
expect(result).toContain('Main error')
|
|
61
|
+
expect(result).toContain('Cause: ')
|
|
62
|
+
expect(result).toContain('Root cause')
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
it('should handle Error with jse_cause property', () => {
|
|
66
|
+
const rootCause = new Error('JSE root cause')
|
|
67
|
+
const error = new Error('Main error') as Error & { jse_cause?: Error }
|
|
68
|
+
error['jse_cause'] = rootCause
|
|
69
|
+
|
|
70
|
+
const result = errorToString(error)
|
|
71
|
+
expect(result).toContain('Main error')
|
|
72
|
+
expect(result).toContain('Cause: ')
|
|
73
|
+
expect(result).toContain('JSE root cause')
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('should handle nested causes recursively', () => {
|
|
77
|
+
const deepCause = new Error('Deep cause')
|
|
78
|
+
const midCause = new Error('Mid cause') as Error & { cause?: Error }
|
|
79
|
+
midCause.cause = deepCause
|
|
80
|
+
|
|
81
|
+
const error = new Error('Top error') as Error & { cause?: Error }
|
|
82
|
+
error.cause = midCause
|
|
83
|
+
|
|
84
|
+
const result = errorToString(error)
|
|
85
|
+
expect(result).toContain('Top error')
|
|
86
|
+
expect(result).toContain('Mid cause')
|
|
87
|
+
expect(result).toContain('Deep cause')
|
|
88
|
+
|
|
89
|
+
// Should have nested "Cause:" labels
|
|
90
|
+
const causeCount = (result.match(/Cause: /g) || []).length
|
|
91
|
+
expect(causeCount).toBe(2)
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
it('should prioritize jse_cause over cause when both are present', () => {
|
|
95
|
+
const jseCause = new Error('JSE cause')
|
|
96
|
+
const stdCause = new Error('Standard cause')
|
|
97
|
+
|
|
98
|
+
const error = new Error('Main error') as Error & {
|
|
99
|
+
cause?: Error
|
|
100
|
+
jse_cause?: Error
|
|
101
|
+
}
|
|
102
|
+
error.cause = stdCause
|
|
103
|
+
error['jse_cause'] = jseCause
|
|
104
|
+
|
|
105
|
+
const result = errorToString(error)
|
|
106
|
+
expect(result).toContain('Main error')
|
|
107
|
+
expect(result).toContain('JSE cause')
|
|
108
|
+
// Should NOT contain cause since jse_cause takes priority
|
|
109
|
+
expect(result).not.toContain('Standard cause')
|
|
110
|
+
|
|
111
|
+
// Should have only one "Cause:" label
|
|
112
|
+
const causeCount = (result.match(/Cause: /g) || []).length
|
|
113
|
+
expect(causeCount).toBe(1)
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
it('should handle cause when jse_cause is not present', () => {
|
|
117
|
+
const stdCause = new Error('Standard cause')
|
|
118
|
+
|
|
119
|
+
const error = new Error('Main error') as Error & { cause?: Error }
|
|
120
|
+
error.cause = stdCause
|
|
121
|
+
|
|
122
|
+
const result = errorToString(error)
|
|
123
|
+
expect(result).toContain('Main error')
|
|
124
|
+
expect(result).toContain('Standard cause')
|
|
125
|
+
|
|
126
|
+
// Should have one "Cause:" label
|
|
127
|
+
const causeCount = (result.match(/Cause: /g) || []).length
|
|
128
|
+
expect(causeCount).toBe(1)
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
it('should handle error with no cause properties', () => {
|
|
132
|
+
const error = new Error('Error without cause')
|
|
133
|
+
|
|
134
|
+
const result = errorToString(error)
|
|
135
|
+
expect(result).toContain('Error without cause')
|
|
136
|
+
expect(result).not.toContain('Cause:')
|
|
137
|
+
|
|
138
|
+
// Should have no "Cause:" labels
|
|
139
|
+
const causeCount = (result.match(/Cause: /g) || []).length
|
|
140
|
+
expect(causeCount).toBe(0)
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
it('should handle non-Error causes', () => {
|
|
144
|
+
const error = new Error('Main error') as Error & { cause?: unknown }
|
|
145
|
+
error.cause = { type: 'custom', message: 'Custom cause' }
|
|
146
|
+
|
|
147
|
+
const result = errorToString(error)
|
|
148
|
+
expect(result).toContain('Main error')
|
|
149
|
+
expect(result).toContain('Cause: {"type":"custom","message":"Custom cause"}')
|
|
150
|
+
})
|
|
151
|
+
|
|
152
|
+
it('should handle circular reference in causes', () => {
|
|
153
|
+
const error = new Error('Main error') as Error & { cause?: unknown }
|
|
154
|
+
const cause: Record<string, unknown> = { message: 'Circular cause' }
|
|
155
|
+
cause.self = cause
|
|
156
|
+
error.cause = cause
|
|
157
|
+
|
|
158
|
+
const result = errorToString(error)
|
|
159
|
+
expect(result).toContain('Main error')
|
|
160
|
+
expect(result).toContain('Cause: [object Object]')
|
|
161
|
+
})
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
describe('getErrorMessage', () => {
|
|
165
|
+
it('should return message from Error objects', () => {
|
|
166
|
+
const error = new Error('Test error message')
|
|
167
|
+
const result = getErrorMessage(error)
|
|
168
|
+
expect(result).toBe('Test error message')
|
|
169
|
+
})
|
|
170
|
+
|
|
171
|
+
it('should return message from objects with message property', () => {
|
|
172
|
+
const errorLike = { message: 'Custom error message', code: 500 }
|
|
173
|
+
const result = getErrorMessage(errorLike)
|
|
174
|
+
expect(result).toBe('Custom error message')
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
it('should return string values directly', () => {
|
|
178
|
+
const stringError = 'This is a string error'
|
|
179
|
+
const result = getErrorMessage(stringError)
|
|
180
|
+
expect(result).toBe('This is a string error')
|
|
181
|
+
})
|
|
182
|
+
|
|
183
|
+
it('should ignore non-string message properties', () => {
|
|
184
|
+
const errorLike = { message: 123, other: 'value' }
|
|
185
|
+
const result = getErrorMessage(errorLike)
|
|
186
|
+
expect(result).toBe('{"message":123,"other":"value"}')
|
|
187
|
+
})
|
|
188
|
+
|
|
189
|
+
it('should stringify objects without message property', () => {
|
|
190
|
+
const obj = { foo: 'bar', num: 42 }
|
|
191
|
+
const result = getErrorMessage(obj)
|
|
192
|
+
expect(result).toBe('{"foo":"bar","num":42}')
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
it('should handle primitive values', () => {
|
|
196
|
+
expect(getErrorMessage(123)).toBe('123')
|
|
197
|
+
expect(getErrorMessage(true)).toBe('true')
|
|
198
|
+
expect(getErrorMessage(null)).toBe('null')
|
|
199
|
+
expect(getErrorMessage(undefined)).toBe('undefined')
|
|
200
|
+
})
|
|
201
|
+
|
|
202
|
+
it('should fallback to String() for non-serializable objects', () => {
|
|
203
|
+
const circular: Record<string, unknown> = { name: 'circular' }
|
|
204
|
+
circular.self = circular
|
|
205
|
+
|
|
206
|
+
const result = getErrorMessage(circular)
|
|
207
|
+
expect(result).toBe('[object Object]')
|
|
208
|
+
})
|
|
209
|
+
|
|
210
|
+
it('should handle empty Error message', () => {
|
|
211
|
+
const error = new Error('')
|
|
212
|
+
const result = getErrorMessage(error)
|
|
213
|
+
expect(result).toBe('')
|
|
214
|
+
})
|
|
215
|
+
})
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { get, isObject, isString, isUndefined } from '#lodash'
|
|
2
|
+
|
|
1
3
|
class UnexpectedErrorStructureError extends Error {}
|
|
2
4
|
|
|
3
5
|
/**
|
|
@@ -36,13 +38,68 @@ export function createUncoveredError(e: unknown) {
|
|
|
36
38
|
return new UncoveredError(`Uncovered error case ${errorRepr}.`)
|
|
37
39
|
}
|
|
38
40
|
|
|
41
|
+
/**
|
|
42
|
+
* A custom error class that produces a cleaner stack trace when instantiated.
|
|
43
|
+
*/
|
|
44
|
+
export class CleanStackTrace extends Error {
|
|
45
|
+
constructor() {
|
|
46
|
+
super('')
|
|
47
|
+
this.name = 'Stack trace:'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
39
51
|
/**
|
|
40
52
|
* Note: Only V8 and Node.js support controlling the stack trace limit
|
|
41
53
|
*/
|
|
42
54
|
export const collectLongTrace = (limit?: number) => {
|
|
43
55
|
const originalLimit = Error.stackTraceLimit
|
|
44
56
|
Error.stackTraceLimit = limit || 30
|
|
45
|
-
const trace = (new
|
|
57
|
+
const trace = (new CleanStackTrace().stack || '')
|
|
58
|
+
.split('\n')
|
|
59
|
+
.slice(2) // remove "Error" and this function's own frame
|
|
60
|
+
.join('\n')
|
|
61
|
+
.trim()
|
|
46
62
|
Error.stackTraceLimit = originalLimit
|
|
47
63
|
return trace
|
|
48
64
|
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* When you need to log a full error representation, w/ full .cause() support
|
|
68
|
+
*/
|
|
69
|
+
export const errorToString = (e: unknown): string => {
|
|
70
|
+
if (!(e instanceof Error)) {
|
|
71
|
+
try {
|
|
72
|
+
return JSON.stringify(e)
|
|
73
|
+
} catch {
|
|
74
|
+
return String(e)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
let ret = e.stack || e.message || String(e)
|
|
79
|
+
const causeProps = ['jse_cause', 'cause'] as const
|
|
80
|
+
|
|
81
|
+
for (const prop of causeProps) {
|
|
82
|
+
if (prop in e) {
|
|
83
|
+
const cause = get(e, prop)
|
|
84
|
+
if (!cause) continue
|
|
85
|
+
|
|
86
|
+
ret += `\nCause: ${errorToString(cause)}`
|
|
87
|
+
break // avoid chaining multiple causes
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return ret
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export const getErrorMessage = (e: unknown): string => {
|
|
95
|
+
if (e instanceof Error) return e.message
|
|
96
|
+
if (isObject(e) && 'message' in e && isString(e.message)) return e.message
|
|
97
|
+
if (isString(e)) return e
|
|
98
|
+
if (isUndefined(e)) return 'undefined'
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
return JSON.stringify(e)
|
|
102
|
+
} catch {
|
|
103
|
+
return String(e)
|
|
104
|
+
}
|
|
105
|
+
}
|
package/src/core/helpers/url.ts
CHANGED
|
@@ -8,10 +8,16 @@ export class RelativeURL extends URL {
|
|
|
8
8
|
super(url, RelativeURL.#fakeOrigin)
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Not supported in relative URL
|
|
13
|
+
*/
|
|
11
14
|
get host(): string {
|
|
12
15
|
throw new Error('host is not supported in a relative URL')
|
|
13
16
|
}
|
|
14
17
|
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated Not supported in relative URL
|
|
20
|
+
*/
|
|
15
21
|
get hostname(): string {
|
|
16
22
|
throw new Error('hostname is not supported in a relative URL')
|
|
17
23
|
}
|
|
@@ -20,26 +26,53 @@ export class RelativeURL extends URL {
|
|
|
20
26
|
return this.pathname + this.search + this.hash
|
|
21
27
|
}
|
|
22
28
|
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated Not supported in relative URL
|
|
31
|
+
*/
|
|
23
32
|
get origin(): string {
|
|
24
33
|
throw new Error('origin is not supported in a relative URL')
|
|
25
34
|
}
|
|
26
35
|
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Not supported in relative URL
|
|
38
|
+
*/
|
|
27
39
|
get password(): string {
|
|
28
40
|
throw new Error('password is not supported in a relative URL')
|
|
29
41
|
}
|
|
30
42
|
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated Not supported in relative URL
|
|
45
|
+
*/
|
|
31
46
|
get protocol(): string {
|
|
32
47
|
throw new Error('protocol is not supported in a relative URL')
|
|
33
48
|
}
|
|
34
49
|
|
|
50
|
+
/**
|
|
51
|
+
* @deprecated Not supported in relative URL
|
|
52
|
+
*/
|
|
35
53
|
get port(): string {
|
|
36
54
|
throw new Error('port is not supported in a relative URL')
|
|
37
55
|
}
|
|
38
56
|
|
|
57
|
+
/**
|
|
58
|
+
* @deprecated Not supported in relative URL
|
|
59
|
+
*/
|
|
39
60
|
get username(): string {
|
|
40
61
|
throw new Error('username is not supported in a relative URL')
|
|
41
62
|
}
|
|
42
63
|
|
|
64
|
+
get path(): string {
|
|
65
|
+
return this.pathname
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
get pathOnly(): string {
|
|
69
|
+
return this.pathname
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
get fullPath(): string {
|
|
73
|
+
return this.href
|
|
74
|
+
}
|
|
75
|
+
|
|
43
76
|
toJSON(): string {
|
|
44
77
|
return this.href
|
|
45
78
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, test } from 'vitest'
|
|
2
|
-
import { xor } from './utility.js'
|
|
2
|
+
import { xor, StringEnum } from './utility.js'
|
|
3
3
|
|
|
4
4
|
describe('xor', () => {
|
|
5
5
|
test('returns true if only one of the arguments is truthy', () => {
|
|
@@ -9,3 +9,21 @@ describe('xor', () => {
|
|
|
9
9
|
expect(xor(false, false)).toBe(false)
|
|
10
10
|
})
|
|
11
11
|
})
|
|
12
|
+
|
|
13
|
+
describe('StringEnum', () => {
|
|
14
|
+
const Colors = StringEnum(['RED', 'GREEN', 'BLUE'])
|
|
15
|
+
|
|
16
|
+
test('creates an object with keys and values matching the input strings', () => {
|
|
17
|
+
expect(Colors).toEqual({
|
|
18
|
+
RED: 'RED',
|
|
19
|
+
GREEN: 'GREEN',
|
|
20
|
+
BLUE: 'BLUE'
|
|
21
|
+
})
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
test('works with empty array', () => {
|
|
25
|
+
const EmptyEnum = StringEnum([])
|
|
26
|
+
expect(EmptyEnum).toEqual({})
|
|
27
|
+
expect(Object.isFrozen(EmptyEnum)).toBe(true)
|
|
28
|
+
})
|
|
29
|
+
})
|
|
@@ -167,3 +167,34 @@ export const waitForever = (): Promise<never> => new Promise<never>(noop)
|
|
|
167
167
|
* Returns true if only one of the arguments is truthy
|
|
168
168
|
*/
|
|
169
169
|
export const xor = (a: unknown, b: unknown) => !!((a || b) && !(a && b))
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Shortcut for creating string key & value enums. Native TS Enums are problematic in many ways
|
|
173
|
+
* (transform code, instead of just adding types; you cant put a string literal matching the enum value
|
|
174
|
+
* in a variable typed as the enum, etc.)
|
|
175
|
+
*/
|
|
176
|
+
export const StringEnum = <T extends string>(args: T[]) => {
|
|
177
|
+
const enumObj = Object.fromEntries(args.map((arg) => [arg, arg])) as {
|
|
178
|
+
[K in T]: K
|
|
179
|
+
}
|
|
180
|
+
return Object.freeze(enumObj)
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Shortcut for (typeof StringEnum)[keyof typeof StringEnum]
|
|
185
|
+
*/
|
|
186
|
+
export type StringEnumValues<T extends Record<string, string>> = {
|
|
187
|
+
[K in keyof T]: T[K] extends string ? T[K] : never
|
|
188
|
+
}[keyof T]
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Get first non-undefined/null value, or undefined if none found
|
|
192
|
+
*/
|
|
193
|
+
export const firstDefinedValue = <T>(
|
|
194
|
+
...args: (T | undefined | null)[]
|
|
195
|
+
): T | undefined => {
|
|
196
|
+
for (const arg of args) {
|
|
197
|
+
if (!isNullOrUndefined(arg)) return arg
|
|
198
|
+
}
|
|
199
|
+
return undefined
|
|
200
|
+
}
|
package/src/core/index.ts
CHANGED
|
@@ -7,7 +7,9 @@ export * from './helpers/utilityTypes.js'
|
|
|
7
7
|
export * from './helpers/tracking.js'
|
|
8
8
|
export * from './utils/localStorage.js'
|
|
9
9
|
export * from './utils/md5.js'
|
|
10
|
+
export * from './utils/base64.js'
|
|
10
11
|
export * from './helpers/os.js'
|
|
11
12
|
export * from './helpers/optimization.js'
|
|
12
13
|
export * from './helpers/debugging.js'
|
|
13
14
|
export * from './helpers/url.js'
|
|
15
|
+
export * from './helpers/encoding.js'
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { base64Decode, base64Encode } from './base64.js'
|
|
3
|
+
|
|
4
|
+
describe('base64Encode & base64Decode', () => {
|
|
5
|
+
it('should encode/decode a string to base64', () => {
|
|
6
|
+
const str = 'Hello, World!'
|
|
7
|
+
const encoded = base64Encode(str)
|
|
8
|
+
expect(encoded).toBe('SGVsbG8sIFdvcmxkIQ==')
|
|
9
|
+
|
|
10
|
+
const decoded = base64Decode(encoded)
|
|
11
|
+
expect(decoded).toBe(str)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
it('should handle empty strings', () => {
|
|
15
|
+
const str = ''
|
|
16
|
+
const encoded = base64Encode(str)
|
|
17
|
+
expect(encoded).toBe('')
|
|
18
|
+
|
|
19
|
+
const decoded = base64Decode(encoded)
|
|
20
|
+
expect(decoded).toBe(str)
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
it('should handle special characters', () => {
|
|
24
|
+
const str = '¡Hola, Mundo!'
|
|
25
|
+
const encoded = base64Encode(str)
|
|
26
|
+
expect(encoded).toBe('wqFIb2xhLCBNdW5kbyE=')
|
|
27
|
+
|
|
28
|
+
const decoded = base64Decode(encoded)
|
|
29
|
+
expect(decoded).toBe(str)
|
|
30
|
+
})
|
|
31
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function base64Encode(val: string): string {
|
|
2
|
+
if (typeof window === 'undefined') {
|
|
3
|
+
// Node.js
|
|
4
|
+
return Buffer.from(val, 'utf8').toString('base64')
|
|
5
|
+
} else {
|
|
6
|
+
// Browser
|
|
7
|
+
return btoa(unescape(encodeURIComponent(val)))
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function base64Decode(val: string): string {
|
|
12
|
+
if (typeof window === 'undefined') {
|
|
13
|
+
// Node.js
|
|
14
|
+
return Buffer.from(val, 'base64').toString('utf8')
|
|
15
|
+
} else {
|
|
16
|
+
// Browser
|
|
17
|
+
return decodeURIComponent(escape(atob(val)))
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { afterEach, beforeAll, describe, expect, it } from 'vitest'
|
|
2
|
+
import { regionConfigSchema } from './db.js'
|
|
3
|
+
|
|
4
|
+
describe('Database Configuration', () => {
|
|
5
|
+
let baseNodeEnv: string
|
|
6
|
+
|
|
7
|
+
beforeAll(() => {
|
|
8
|
+
baseNodeEnv = process.env.NODE_ENV || ''
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
process.env.NODE_ENV = baseNodeEnv
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('regionConfigSchema does not allow skipInitialization in non-test environments', () => {
|
|
16
|
+
const validConfig = {
|
|
17
|
+
postgres: {
|
|
18
|
+
connectionUri: 'postgres://user:password@host:port/dbname',
|
|
19
|
+
databaseName: 'dbname',
|
|
20
|
+
privateConnectionUri: 'postgres://user:password@host:port/dbname',
|
|
21
|
+
publicTlsCertificate: 'cert',
|
|
22
|
+
skipInitialization: false
|
|
23
|
+
},
|
|
24
|
+
blobStorage: {
|
|
25
|
+
endpoint: 'https://s3.example.com',
|
|
26
|
+
publicEndpoint: 'https://public.s3.example.com',
|
|
27
|
+
accessKey: 'accessKey',
|
|
28
|
+
secretKey: 'secretKey',
|
|
29
|
+
bucket: 'bucketName',
|
|
30
|
+
createBucketIfNotExists: true,
|
|
31
|
+
s3Region: 'us-west-1'
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
process.env.NODE_ENV = 'test' // this should work
|
|
36
|
+
expect(() => regionConfigSchema.parse(validConfig)).not.toThrow()
|
|
37
|
+
|
|
38
|
+
const invalidConfig = {
|
|
39
|
+
...validConfig,
|
|
40
|
+
postgres: { ...validConfig.postgres, skipInitialization: true }
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
process.env.NODE_ENV = 'production' // this should throw
|
|
44
|
+
expect(() => regionConfigSchema.parse(invalidConfig)).toThrow(
|
|
45
|
+
/skipInitialization can only be set when NODE_ENV is \\\"test\\\"/
|
|
46
|
+
)
|
|
47
|
+
})
|
|
48
|
+
})
|
|
@@ -7,7 +7,7 @@ import { isUndefined, get } from '#lodash'
|
|
|
7
7
|
// cause of knex's ESM/CJS interop issues
|
|
8
8
|
const knex = get(Knex, 'knex') || get(Knex, 'default')
|
|
9
9
|
|
|
10
|
-
const regionConfigSchema = z.object({
|
|
10
|
+
export const regionConfigSchema = z.object({
|
|
11
11
|
postgres: z.object({
|
|
12
12
|
connectionUri: z
|
|
13
13
|
.string()
|
|
@@ -29,10 +29,31 @@ const regionConfigSchema = z.object({
|
|
|
29
29
|
publicTlsCertificate: z
|
|
30
30
|
.string()
|
|
31
31
|
.describe('Public TLS ("CA") certificate for the Postgres server')
|
|
32
|
+
.optional(),
|
|
33
|
+
skipInitialization: z
|
|
34
|
+
.boolean()
|
|
32
35
|
.optional()
|
|
36
|
+
.describe(
|
|
37
|
+
'Skip database initialization (migration run & replication setup). Only used in tests.'
|
|
38
|
+
)
|
|
39
|
+
.refine((val) => val !== true || process.env.NODE_ENV === 'test', {
|
|
40
|
+
message: 'skipInitialization can only be set when NODE_ENV is "test"'
|
|
41
|
+
})
|
|
33
42
|
}),
|
|
34
43
|
blobStorage: z.object({
|
|
35
|
-
endpoint: z
|
|
44
|
+
endpoint: z
|
|
45
|
+
.string()
|
|
46
|
+
.url()
|
|
47
|
+
.describe(
|
|
48
|
+
'URL of the S3-compatible storage endpoint, accessible from the server'
|
|
49
|
+
),
|
|
50
|
+
publicEndpoint: z
|
|
51
|
+
.string()
|
|
52
|
+
.url()
|
|
53
|
+
.optional()
|
|
54
|
+
.describe(
|
|
55
|
+
'Public URL of the S3-compatible storage endpoint, accessible from clients via the public internet'
|
|
56
|
+
),
|
|
36
57
|
accessKey: z.string().describe('Access key for the S3-compatible storage endpoint'),
|
|
37
58
|
secretKey: z.string().describe('Secret key for the S3-compatible storage endpoint'),
|
|
38
59
|
bucket: z.string().describe('Name of the S3-compatible storage bucket'),
|
|
@@ -89,8 +110,14 @@ export const loadMultiRegionsConfig = async ({
|
|
|
89
110
|
|
|
90
111
|
export type KnexConfigArgs = {
|
|
91
112
|
migrationDirs: string[]
|
|
92
|
-
|
|
93
|
-
|
|
113
|
+
/**
|
|
114
|
+
* Override migration source loader to load migrations a custom way
|
|
115
|
+
*/
|
|
116
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
117
|
+
migrationSource?: any // no type from knex for this
|
|
118
|
+
isTestEnv?: boolean
|
|
119
|
+
isDevOrTestEnv?: boolean
|
|
120
|
+
isDevEnv?: boolean
|
|
94
121
|
logger: Logger
|
|
95
122
|
maxConnections: number
|
|
96
123
|
applicationName: string
|
|
@@ -114,7 +141,8 @@ export const createKnexConfig = ({
|
|
|
114
141
|
caCertificate,
|
|
115
142
|
connectionAcquireTimeoutMillis,
|
|
116
143
|
connectionCreateTimeoutMillis,
|
|
117
|
-
asyncStackTraces
|
|
144
|
+
asyncStackTraces,
|
|
145
|
+
migrationSource
|
|
118
146
|
}: {
|
|
119
147
|
connectionString?: string | undefined
|
|
120
148
|
caCertificate?: string | undefined
|
|
@@ -127,8 +155,17 @@ export const createKnexConfig = ({
|
|
|
127
155
|
client: 'pg',
|
|
128
156
|
migrations: {
|
|
129
157
|
extension: 'ts',
|
|
130
|
-
|
|
131
|
-
|
|
158
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
159
|
+
migrationSource,
|
|
160
|
+
// these warnings are annoying locally when switching branches:
|
|
161
|
+
disableMigrationsListValidation: !!isDevOrTestEnv,
|
|
162
|
+
...(migrationSource
|
|
163
|
+
? {}
|
|
164
|
+
: {
|
|
165
|
+
// Can only be set if migrationSource is not set
|
|
166
|
+
loadExtensions: isTestEnv ? ['.js', '.ts'] : ['.js'],
|
|
167
|
+
directory: migrationDirs
|
|
168
|
+
})
|
|
132
169
|
},
|
|
133
170
|
log: {
|
|
134
171
|
warn(message: unknown) {
|
|
@@ -158,7 +195,7 @@ export const createKnexConfig = ({
|
|
|
158
195
|
max: maxConnections,
|
|
159
196
|
acquireTimeoutMillis: connectionAcquireTimeoutMillis, // If the maximum number of connections is reached, it wait for 16 seconds trying to acquire an existing connection before throwing a timeout error.
|
|
160
197
|
createTimeoutMillis: connectionCreateTimeoutMillis // If no existing connection is available and the maximum number of connections is not yet reached, the pool will try to create a new connection for 5 seconds before throwing a timeout error.
|
|
161
|
-
// createRetryIntervalMillis: 200, // Irrelevant & ignored because
|
|
198
|
+
// createRetryIntervalMillis: 200, // Irrelevant & ignored because propagateCreateError is true.
|
|
162
199
|
// propagateCreateError: true // The propagateCreateError is set to true by default in Knex and throws a TimeoutError if the first create connection to the database fails. Knex recommends that this value is NOT set to false, despite what 'helpful' people on Stackoverflow tell you: https://github.com/knex/knex/issues/3455#issuecomment-535554401
|
|
163
200
|
}
|
|
164
201
|
}
|
|
@@ -184,3 +221,20 @@ export const configureKnexClient = (
|
|
|
184
221
|
: undefined
|
|
185
222
|
return { public: knex(knexConfig), private: privateConfig }
|
|
186
223
|
}
|
|
224
|
+
|
|
225
|
+
export const getConnectionSettings = (
|
|
226
|
+
knex: Knex.Knex
|
|
227
|
+
): {
|
|
228
|
+
connectionString?: string
|
|
229
|
+
ssl?: boolean
|
|
230
|
+
application_name?: string
|
|
231
|
+
} => {
|
|
232
|
+
return (knex.client as Knex.Knex.Client).connectionSettings
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export const obfuscateConnectionString = (connectionString: string): string => {
|
|
236
|
+
const url = new URL(connectionString)
|
|
237
|
+
const obfuscatedUrl = new URL(url)
|
|
238
|
+
obfuscatedUrl.password = '****'
|
|
239
|
+
return obfuscatedUrl.toString()
|
|
240
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IMPORTANT: This should not have any node-only code (e.g. Zod)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export type FeatureFlags = {
|
|
6
|
+
FF_AUTOMATE_MODULE_ENABLED: boolean
|
|
7
|
+
FF_GENDOAI_MODULE_ENABLED: boolean
|
|
8
|
+
FF_WORKSPACES_MODULE_ENABLED: boolean
|
|
9
|
+
FF_WORKSPACES_SSO_ENABLED: boolean
|
|
10
|
+
FF_GATEKEEPER_MODULE_ENABLED: boolean
|
|
11
|
+
FF_BILLING_INTEGRATION_ENABLED: boolean
|
|
12
|
+
FF_WORKSPACES_MULTI_REGION_ENABLED: boolean
|
|
13
|
+
FF_FORCE_ONBOARDING: boolean
|
|
14
|
+
FF_MOVE_PROJECT_REGION_ENABLED: boolean
|
|
15
|
+
FF_NO_PERSONAL_EMAILS_ENABLED: boolean
|
|
16
|
+
FF_RETRY_ERRORED_PREVIEWS_ENABLED: boolean
|
|
17
|
+
FF_PERSONAL_PROJECTS_LIMITS_ENABLED: boolean
|
|
18
|
+
FF_NEXT_GEN_FILE_IMPORTER_ENABLED: boolean
|
|
19
|
+
FF_RHINO_FILE_IMPORTER_ENABLED: boolean
|
|
20
|
+
FF_LEGACY_FILE_IMPORTS_ENABLED: boolean
|
|
21
|
+
FF_ACC_INTEGRATION_ENABLED: boolean
|
|
22
|
+
FF_DASHBOARDS_MODULE_ENABLED: boolean
|
|
23
|
+
FF_SAVED_VIEWS_ENABLED: boolean
|
|
24
|
+
FF_USERS_INVITE_SCOPE_IS_PUBLIC: boolean
|
|
25
|
+
}
|