unleash-server 8.0.1 → 8.0.3
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/lib/addons/addon.d.ts +10 -2
- package/dist/lib/addons/addon.d.ts.map +1 -1
- package/dist/lib/addons/addon.js +104 -6
- package/dist/lib/addons/addon.js.map +1 -1
- package/dist/lib/addons/datadog-definition.js +1 -1
- package/dist/lib/addons/datadog-definition.js.map +1 -1
- package/dist/lib/addons/datadog.test.js +2 -0
- package/dist/lib/addons/datadog.test.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.d.ts.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.js +5 -3
- package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.test.js +3 -1
- package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -1
- package/dist/lib/addons/index.d.ts.map +1 -1
- package/dist/lib/addons/index.js +2 -0
- package/dist/lib/addons/index.js.map +1 -1
- package/dist/lib/addons/new-relic.d.ts.map +1 -1
- package/dist/lib/addons/new-relic.js +0 -1
- package/dist/lib/addons/new-relic.js.map +1 -1
- package/dist/lib/addons/new-relic.test.js +0 -1
- package/dist/lib/addons/new-relic.test.js.map +1 -1
- package/dist/lib/addons/slack.test.js +1 -2
- package/dist/lib/addons/slack.test.js.map +1 -1
- package/dist/lib/addons/teams-definition.d.ts.map +1 -1
- package/dist/lib/addons/teams-definition.js +1 -0
- package/dist/lib/addons/teams-definition.js.map +1 -1
- package/dist/lib/addons/teams-workflow-definition.d.ts +4 -0
- package/dist/lib/addons/teams-workflow-definition.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow-definition.js +66 -0
- package/dist/lib/addons/teams-workflow-definition.js.map +1 -0
- package/dist/lib/addons/teams-workflow.d.ts +15 -0
- package/dist/lib/addons/teams-workflow.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow.js +110 -0
- package/dist/lib/addons/teams-workflow.js.map +1 -0
- package/dist/lib/addons/teams-workflow.test.d.ts +2 -0
- package/dist/lib/addons/teams-workflow.test.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow.test.js +202 -0
- package/dist/lib/addons/teams-workflow.test.js.map +1 -0
- package/dist/lib/addons/teams.d.ts.map +1 -1
- package/dist/lib/addons/teams.js +0 -1
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/teams.test.js +0 -1
- package/dist/lib/addons/teams.test.js.map +1 -1
- package/dist/lib/addons/validate-url.d.ts +18 -0
- package/dist/lib/addons/validate-url.d.ts.map +1 -0
- package/dist/lib/addons/validate-url.js +93 -0
- package/dist/lib/addons/validate-url.js.map +1 -0
- package/dist/lib/addons/validate-url.test.d.ts +2 -0
- package/dist/lib/addons/validate-url.test.d.ts.map +1 -0
- package/dist/lib/addons/validate-url.test.js +199 -0
- package/dist/lib/addons/validate-url.test.js.map +1 -0
- package/dist/lib/addons/webhook.d.ts.map +1 -1
- package/dist/lib/addons/webhook.js +28 -2
- package/dist/lib/addons/webhook.js.map +1 -1
- package/dist/lib/addons/webhook.test.js +72 -0
- package/dist/lib/addons/webhook.test.js.map +1 -1
- package/dist/lib/app.d.ts.map +1 -1
- package/dist/lib/app.js +2 -0
- package/dist/lib/app.js.map +1 -1
- package/dist/lib/create-config.d.ts.map +1 -1
- package/dist/lib/create-config.js +8 -0
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/error/bad-data-error.d.ts.map +1 -1
- package/dist/lib/error/bad-data-error.js +10 -2
- package/dist/lib/error/bad-data-error.js.map +1 -1
- package/dist/lib/error/unleash-error.test.js +23 -0
- package/dist/lib/error/unleash-error.test.js.map +1 -1
- package/dist/lib/features/context/context-field-store.d.ts +1 -1
- package/dist/lib/features/context/context-field-store.d.ts.map +1 -1
- package/dist/lib/features/context/context-field-store.js +1 -5
- package/dist/lib/features/context/context-field-store.js.map +1 -1
- package/dist/lib/features/context/context-service.d.ts +5 -4
- package/dist/lib/features/context/context-service.d.ts.map +1 -1
- package/dist/lib/features/context/context-service.js +20 -27
- package/dist/lib/features/context/context-service.js.map +1 -1
- package/dist/lib/features/context/context-service.test.d.ts +2 -0
- package/dist/lib/features/context/context-service.test.d.ts.map +1 -0
- package/dist/lib/features/context/context-service.test.js +24 -0
- package/dist/lib/features/context/context-service.test.js.map +1 -0
- package/dist/lib/features/context/context.d.ts +1 -0
- package/dist/lib/features/context/context.d.ts.map +1 -1
- package/dist/lib/features/context/context.js +22 -10
- package/dist/lib/features/context/context.js.map +1 -1
- package/dist/lib/features/context/context.test.js +15 -1
- package/dist/lib/features/context/context.test.js.map +1 -1
- package/dist/lib/features/context/createContextService.d.ts +4 -1
- package/dist/lib/features/context/createContextService.d.ts.map +1 -1
- package/dist/lib/features/context/createContextService.js +2 -1
- package/dist/lib/features/context/createContextService.js.map +1 -1
- package/dist/lib/features/context/fake-context-field-store.d.ts +1 -1
- package/dist/lib/features/context/fake-context-field-store.d.ts.map +1 -1
- package/dist/lib/features/context/fake-context-field-store.js +1 -6
- package/dist/lib/features/context/fake-context-field-store.js.map +1 -1
- package/dist/lib/features/export-import-toggles/createExportImportService.js +1 -1
- package/dist/lib/features/export-import-toggles/createExportImportService.js.map +1 -1
- package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.d.ts +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.d.ts +2 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.js +5 -0
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-controller.d.ts +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-controller.js +22 -2
- package/dist/lib/features/feature-toggle/feature-toggle-controller.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts +3 -2
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.js +11 -4
- package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts +2 -0
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js +7 -0
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggles.e2e.test.js +4 -0
- package/dist/lib/features/feature-toggle/tests/feature-toggles.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-toggle/types/feature-toggle-strategies-store-type.d.ts +6 -0
- package/dist/lib/features/feature-toggle/types/feature-toggle-strategies-store-type.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.js +17 -20
- package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.d.ts +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.js +2 -0
- package/dist/lib/features/metrics/integrations/integration-metrics.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/constraint.d.ts +2 -0
- package/dist/lib/features/playground/feature-evaluator/constraint.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/constraint.js +11 -1
- package/dist/lib/features/playground/feature-evaluator/constraint.js.map +1 -1
- package/dist/lib/features/playground/playground.test.js +2 -3
- package/dist/lib/features/playground/playground.test.js.map +1 -1
- package/dist/lib/features/release-plans/release-plan-template-store.d.ts +4 -0
- package/dist/lib/features/release-plans/release-plan-template-store.d.ts.map +1 -1
- package/dist/lib/features/release-plans/release-plan-template-store.js +25 -2
- package/dist/lib/features/release-plans/release-plan-template-store.js.map +1 -1
- package/dist/lib/features/release-plans/release-plan-template-store.test.js +75 -16
- package/dist/lib/features/release-plans/release-plan-template-store.test.js.map +1 -1
- package/dist/lib/features/release-plans/release-plan-template.d.ts +1 -0
- package/dist/lib/features/release-plans/release-plan-template.d.ts.map +1 -1
- package/dist/lib/features/scheduler/scheduler-service.test.js +1 -0
- package/dist/lib/features/scheduler/scheduler-service.test.js.map +1 -1
- package/dist/lib/features/unique-connection/unique-connection-store.e2e.test.js +3 -0
- package/dist/lib/features/unique-connection/unique-connection-store.e2e.test.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.d.ts.map +1 -1
- package/dist/lib/middleware/rbac-middleware.js +3 -4
- package/dist/lib/middleware/rbac-middleware.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.test.js +62 -24
- package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
- package/dist/lib/middleware/secure-headers.d.ts.map +1 -1
- package/dist/lib/middleware/secure-headers.js +20 -1
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/middleware/session-context.d.ts +20 -0
- package/dist/lib/middleware/session-context.d.ts.map +1 -0
- package/dist/lib/middleware/session-context.js +38 -0
- package/dist/lib/middleware/session-context.js.map +1 -0
- package/dist/lib/openapi/spec/addon-create-update-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/addon-create-update-schema.js +1 -1
- package/dist/lib/openapi/spec/addons-schema.d.ts +15 -0
- package/dist/lib/openapi/spec/addons-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/addons-schema.js +51 -0
- package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
- package/dist/lib/openapi/spec/admin-segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +8 -8
- package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +17 -17
- package/dist/lib/openapi/spec/client-feature-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/client-features-delta-schema.d.ts +5 -5
- package/dist/lib/openapi/spec/client-features-schema.d.ts +5 -5
- package/dist/lib/openapi/spec/client-segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/constraint-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/environment-project-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/environments-project-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/export-result-schema.d.ts +68 -68
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts +17 -17
- package/dist/lib/openapi/spec/feature-schema.d.ts +34 -34
- package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +34 -34
- package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +68 -68
- package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/health-overview-schema.d.ts +69 -69
- package/dist/lib/openapi/spec/health-report-schema.d.ts +69 -69
- package/dist/lib/openapi/spec/playground-constraint-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/playground-feature-schema.arbitraries.d.ts +4 -0
- package/dist/lib/openapi/spec/playground-feature-schema.arbitraries.d.ts.map +1 -0
- package/dist/lib/openapi/spec/playground-feature-schema.arbitraries.js +91 -0
- package/dist/lib/openapi/spec/playground-feature-schema.arbitraries.js.map +1 -0
- package/dist/lib/openapi/spec/playground-feature-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/playground-feature-schema.test.d.ts +1 -3
- package/dist/lib/openapi/spec/playground-feature-schema.test.d.ts.map +1 -1
- package/dist/lib/openapi/spec/playground-feature-schema.test.js +1 -89
- package/dist/lib/openapi/spec/playground-feature-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/playground-request-schema.arbitraries.d.ts +4 -0
- package/dist/lib/openapi/spec/playground-request-schema.arbitraries.d.ts.map +1 -0
- package/dist/lib/openapi/spec/playground-request-schema.arbitraries.js +9 -0
- package/dist/lib/openapi/spec/playground-request-schema.arbitraries.js.map +1 -0
- package/dist/lib/openapi/spec/playground-request-schema.test.d.ts +1 -3
- package/dist/lib/openapi/spec/playground-request-schema.test.d.ts.map +1 -1
- package/dist/lib/openapi/spec/playground-request-schema.test.js +1 -8
- package/dist/lib/openapi/spec/playground-request-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/playground-response-schema.d.ts +9 -9
- package/dist/lib/openapi/spec/playground-response-schema.test.js +2 -3
- package/dist/lib/openapi/spec/playground-response-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/playground-segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/profile-schema.d.ts +40 -35
- package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.js +13 -1
- package/dist/lib/openapi/spec/profile-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.test.js +1 -0
- package/dist/lib/openapi/spec/profile-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/project-environment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/project-overview-schema.d.ts +69 -69
- package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/release-plan-schema.d.ts +8 -8
- package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +14 -8
- package/dist/lib/openapi/spec/release-plan-template-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/release-plan-template-schema.js +6 -0
- package/dist/lib/openapi/spec/release-plan-template-schema.js.map +1 -1
- package/dist/lib/openapi/spec/release-plan-templates-schema.d.ts +22 -16
- package/dist/lib/openapi/spec/release-plan-templates-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/release-plans-schema.d.ts +16 -16
- package/dist/lib/openapi/spec/sdk-context-schema.arbitraries.d.ts +4 -0
- package/dist/lib/openapi/spec/sdk-context-schema.arbitraries.d.ts.map +1 -0
- package/dist/lib/openapi/spec/sdk-context-schema.arbitraries.js +12 -0
- package/dist/lib/openapi/spec/sdk-context-schema.arbitraries.js.map +1 -0
- package/dist/lib/openapi/spec/sdk-context-schema.test.d.ts +1 -3
- package/dist/lib/openapi/spec/sdk-context-schema.test.d.ts.map +1 -1
- package/dist/lib/openapi/spec/sdk-context-schema.test.js +1 -11
- package/dist/lib/openapi/spec/sdk-context-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/search-features-schema.d.ts +104 -104
- package/dist/lib/openapi/spec/segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/segments-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/ui-config-schema.d.ts +5 -0
- package/dist/lib/openapi/spec/ui-config-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/ui-config-schema.js +5 -0
- package/dist/lib/openapi/spec/ui-config-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-feature-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/upsert-segment-schema.d.ts +1 -1
- package/dist/lib/routes/admin-api/addon.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/addon.js +6 -2
- package/dist/lib/routes/admin-api/addon.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user/user.js +3 -1
- package/dist/lib/routes/admin-api/user/user.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.test.js +32 -7
- package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
- package/dist/lib/routes/util.d.ts.map +1 -1
- package/dist/lib/routes/util.js +8 -1
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/routes/util.test.d.ts +2 -0
- package/dist/lib/routes/util.test.d.ts.map +1 -0
- package/dist/lib/routes/util.test.js +18 -0
- package/dist/lib/routes/util.test.js.map +1 -0
- package/dist/lib/schema/feature-schema.test.js +1 -1
- package/dist/lib/schema/feature-schema.test.js.map +1 -1
- package/dist/lib/schema/html-input.d.ts +4 -0
- package/dist/lib/schema/html-input.d.ts.map +1 -0
- package/dist/lib/schema/html-input.js +41 -0
- package/dist/lib/schema/html-input.js.map +1 -0
- package/dist/lib/schema/html-input.test.d.ts +2 -0
- package/dist/lib/schema/html-input.test.d.ts.map +1 -0
- package/dist/lib/schema/html-input.test.js +98 -0
- package/dist/lib/schema/html-input.test.js.map +1 -0
- package/dist/lib/server-impl.d.ts +2 -1
- package/dist/lib/server-impl.d.ts.map +1 -1
- package/dist/lib/server-impl.js +2 -1
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/addon-service.d.ts +8 -1
- package/dist/lib/services/addon-service.d.ts.map +1 -1
- package/dist/lib/services/addon-service.js +24 -1
- package/dist/lib/services/addon-service.js.map +1 -1
- package/dist/lib/services/addon-service.test.js +75 -8
- package/dist/lib/services/addon-service.test.js.map +1 -1
- package/dist/lib/services/feature-tag-service.d.ts +1 -1
- package/dist/lib/services/feature-tag-service.d.ts.map +1 -1
- package/dist/lib/services/feature-tag-service.js +5 -1
- package/dist/lib/services/feature-tag-service.js.map +1 -1
- package/dist/lib/services/index.d.ts.map +1 -1
- package/dist/lib/services/index.js +1 -1
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/project-schema.d.ts +1 -2
- package/dist/lib/services/project-schema.d.ts.map +1 -1
- package/dist/lib/services/project-schema.js +4 -2
- package/dist/lib/services/project-schema.js.map +1 -1
- package/dist/lib/services/user-service.d.ts +1 -0
- package/dist/lib/services/user-service.d.ts.map +1 -1
- package/dist/lib/services/user-service.js +7 -0
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/types/events.d.ts +8 -0
- package/dist/lib/types/events.d.ts.map +1 -1
- package/dist/lib/types/events.js +4 -0
- package/dist/lib/types/events.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +27 -1
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +2 -0
- package/dist/lib/types/model.d.ts.map +1 -1
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/option.d.ts +5 -0
- package/dist/lib/types/option.d.ts.map +1 -1
- package/dist/lib/types/permissions.d.ts +1 -0
- package/dist/lib/types/permissions.d.ts.map +1 -1
- package/dist/lib/types/permissions.js +2 -0
- package/dist/lib/types/permissions.js.map +1 -1
- package/dist/lib/types/stores.d.ts +1 -0
- package/dist/lib/types/stores.d.ts.map +1 -1
- package/dist/lib/types/stores.js.map +1 -1
- package/dist/lib/ui-config/ui-config-controller.d.ts +1 -2
- package/dist/lib/ui-config/ui-config-controller.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-controller.js +3 -1
- package/dist/lib/ui-config/ui-config-controller.js.map +1 -1
- package/dist/lib/ui-config/ui-config-service.d.ts +3 -2
- package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-service.js +11 -3
- package/dist/lib/ui-config/ui-config-service.js.map +1 -1
- package/dist/lib/ui-config/ui-config.test.js +25 -2
- package/dist/lib/ui-config/ui-config.test.js.map +1 -1
- package/dist/lib/util/anonymise.d.ts +1 -0
- package/dist/lib/util/anonymise.d.ts.map +1 -1
- package/dist/lib/util/anonymise.js +3 -0
- package/dist/lib/util/anonymise.js.map +1 -1
- package/dist/lib/util/anonymise.test.js +4 -1
- package/dist/lib/util/anonymise.test.js.map +1 -1
- package/dist/lib/util/constants.d.ts +3 -1
- package/dist/lib/util/constants.d.ts.map +1 -1
- package/dist/lib/util/constants.js +11 -1
- package/dist/lib/util/constants.js.map +1 -1
- package/dist/mailtemplates/requested-cr-approval/requested-cr-approval.html.mustache +1 -1
- package/dist/migrations/20260617115403-update-flag-descriptions.d.ts +3 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.d.ts.map +1 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.js +38 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.js.map +1 -0
- package/dist/migrations/20260624120000-servicenow-change-references.d.ts +3 -0
- package/dist/migrations/20260624120000-servicenow-change-references.d.ts.map +1 -0
- package/dist/migrations/20260624120000-servicenow-change-references.js +22 -0
- package/dist/migrations/20260624120000-servicenow-change-references.js.map +1 -0
- package/dist/migrations/20260706100000-add-project-column-to-release-plan-definitions.d.ts +3 -0
- package/dist/migrations/20260706100000-add-project-column-to-release-plan-definitions.d.ts.map +1 -0
- package/dist/migrations/20260706100000-add-project-column-to-release-plan-definitions.js +8 -0
- package/dist/migrations/20260706100000-add-project-column-to-release-plan-definitions.js.map +1 -0
- package/dist/migrations/20260708100000-add-project-release-template-permission.d.ts +3 -0
- package/dist/migrations/20260708100000-add-project-release-template-permission.d.ts.map +1 -0
- package/dist/migrations/20260708100000-add-project-release-template-permission.js +15 -0
- package/dist/migrations/20260708100000-add-project-release-template-permission.js.map +1 -0
- package/dist/server-dev.js +9 -1
- package/dist/server-dev.js.map +1 -1
- package/dist/test/arbitraries.d.ts +25 -0
- package/dist/test/arbitraries.d.ts.map +1 -0
- package/dist/test/arbitraries.js +143 -0
- package/dist/test/arbitraries.js.map +1 -0
- package/dist/test/arbitraries.test.d.ts +1 -24
- package/dist/test/arbitraries.test.d.ts.map +1 -1
- package/dist/test/arbitraries.test.js +1 -142
- package/dist/test/arbitraries.test.js.map +1 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js +2 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/playground.e2e.test.js +2 -2
- package/dist/test/e2e/api/admin/playground.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js +2 -0
- package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/playground-service.test.js +2 -2
- package/dist/test/e2e/services/playground-service.test.js.map +1 -1
- package/dist/test/fixtures/fake-segment-store.d.ts +1 -1
- package/dist/test/fixtures/fake-segment-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-segment-store.js +2 -2
- package/dist/test/fixtures/fake-segment-store.js.map +1 -1
- package/dist/test/prom-last-wins.d.ts +2 -0
- package/dist/test/prom-last-wins.d.ts.map +1 -0
- package/dist/test/prom-last-wins.js +25 -0
- package/dist/test/prom-last-wins.js.map +1 -0
- package/dist/test/reset-cross-file-state.d.ts +2 -0
- package/dist/test/reset-cross-file-state.d.ts.map +1 -0
- package/dist/test/reset-cross-file-state.js +57 -0
- package/dist/test/reset-cross-file-state.js.map +1 -0
- package/dist/test-setup.d.ts.map +1 -1
- package/dist/test-setup.js +4 -0
- package/dist/test-setup.js.map +1 -1
- package/frontend/build/index.html +2 -2
- package/frontend/build/static/AccordionSummary-KVRcLxLK.js +1 -0
- package/frontend/build/static/AdvancedPlayground-Cls80com.js +3 -0
- package/frontend/build/static/Alert-DQgOzmJF.js +1 -0
- package/frontend/build/static/Avatar-xU_puYmY.js +1 -0
- package/frontend/build/static/BackendConnections-CkI8tLcv.js +1 -0
- package/frontend/build/static/Box-rSzdGLLJ.js +1 -0
- package/frontend/build/static/Button-yGjgMTJI.js +1 -0
- package/frontend/build/static/Button.story-CBE27I2T.js +1 -0
- package/frontend/build/static/CircularProgress-CmGBJn6I.js +124 -0
- package/frontend/build/static/Close-DKD1r3T7.js +1 -0
- package/frontend/build/static/Close-nISwbNAY.js +1 -0
- package/frontend/build/static/CodeRenderer-RNHlNPBl.js +1094 -0
- package/frontend/build/static/CodeRenderer.story-Vw214z1Z.js +2 -0
- package/frontend/build/static/Collapse-COunT4rQ.js +1 -0
- package/frontend/build/static/ConditionallyRender-CEffh9Z-.js +1 -0
- package/frontend/build/static/ConnectSdkStep-DnH4iwnu.js +1 -0
- package/frontend/build/static/ConnectSdkStep.story-DeWPTOZK.js +1 -0
- package/frontend/build/static/CreateProject-eo1TZ1so.js +1 -0
- package/frontend/build/static/Dialog-DLpX4v6X.js +1 -0
- package/frontend/build/static/DialogWithAside-BxVspeMV.js +1 -0
- package/frontend/build/static/DialogWithAside.story-Dqmr9MnM.js +1 -0
- package/frontend/build/static/Divider-BYq1CcT0.js +1 -0
- package/frontend/build/static/EnterpriseEdge-D-g3JGCd.js +6 -0
- package/frontend/build/static/FeatureCard.story-B2Q-SD_-.js +1 -0
- package/frontend/build/static/FeatureMetricsChart-ETalRWKx.js +2 -0
- package/frontend/build/static/FeatureStaleDialog-CvD9ojNj.js +8 -0
- package/frontend/build/static/FeatureViewLazyExport-10Z3_Wda.js +10 -0
- package/frontend/build/static/FileCopy-D1ZqmNek.js +1 -0
- package/frontend/build/static/FlagMetricsChart-dLfSDZ_x.js +2 -0
- package/frontend/build/static/FlagUsageSnippet-DOGwaqPZ.js +2 -0
- package/frontend/build/static/FlagUsageSnippet.story-tfMvt3kG.js +1 -0
- package/frontend/build/static/FormControlLabel-BrOlsUbv.js +1 -0
- package/frontend/build/static/FormField-CRXe4g4R.js +1 -0
- package/frontend/build/static/FrontendNetworkTrafficUsage-DGEwK1Qg.js +1 -0
- package/frontend/build/static/GenerateApiKey-C1aJtPh-.js +1 -0
- package/frontend/build/static/GenerateApiKey.story-DNMZG0qg.js +1 -0
- package/frontend/build/static/GenerateApiKeySummary-DkPI02tH.js +1 -0
- package/frontend/build/static/GenerateApiKeySummary.story-CruMFwTQ.js +1 -0
- package/frontend/build/static/GridLayoutWrapper-B3BIpxoE.js +5 -0
- package/frontend/build/static/Grow-CuQu7Z-P.js +1 -0
- package/frontend/build/static/HelpOutlineOutlined-HDH1hus2.js +1 -0
- package/frontend/build/static/HelpResources.story-warJFqf6.js +1 -0
- package/frontend/build/static/Highlighter-BS0Ow0vZ.js +1 -0
- package/frontend/build/static/HtmlTooltip-3YsoM_F5.js +1 -0
- package/frontend/build/static/IconButton-BveFD3PF.js +1 -0
- package/frontend/build/static/ImpactMetricsPage-C57istn7.js +1 -0
- package/frontend/build/static/ImpactViewsPage-MKEHnt2w.js +1 -0
- package/frontend/build/static/LazyAdminExport-DfIYVWQD.js +38 -0
- package/frontend/build/static/LazyProjectExport-30GlUH0L.js +46 -0
- package/frontend/build/static/LifecycleChartComponent-Tj1pN5Tj.js +2 -0
- package/frontend/build/static/LineChartComponent-_RiDjL2-.js +1 -0
- package/frontend/build/static/Link-wv6er_Jy.js +1 -0
- package/frontend/build/static/Loader-CnLypnQx.js +1 -0
- package/frontend/build/static/{LogRocketRunner-Duzg1Kzh.js → LogRocketRunner-BS6AEpSK.js} +1 -1
- package/frontend/build/static/MarkCompletedDialogue-BeIA6eMj.js +1 -0
- package/frontend/build/static/Menu-DUeb4XP8.js +1 -0
- package/frontend/build/static/MenuBook-DZFyn--3.js +1 -0
- package/frontend/build/static/MenuItem-DNlBQQYG.js +1 -0
- package/frontend/build/static/Modal-DdH902AP.js +1 -0
- package/frontend/build/static/NetworkOverview-DF8c0k1P.js +1 -0
- package/frontend/build/static/{NetworkPrometheusAPIWarning-Bq62ygkV.js → NetworkPrometheusAPIWarning-B0v-FihJ.js} +1 -1
- package/frontend/build/static/NetworkTraffic-C1I4wwcb.js +1 -0
- package/frontend/build/static/NetworkTrafficUsage-DkdQx64o.js +1 -0
- package/frontend/build/static/NotificationStack.story-CdeU4r0p.js +1 -0
- package/frontend/build/static/OnboardingProgress-BuWQ2rjB.js +1 -0
- package/frontend/build/static/OnboardingProgress.story-CmQztiFV.js +1 -0
- package/frontend/build/static/OpenInNew-CHcHAi4B.js +1 -0
- package/frontend/build/static/PageContent-lT51j8jO.js +1 -0
- package/frontend/build/static/Paper-BvPQ0Zq6.js +1 -0
- package/frontend/build/static/PercentageDonut-CZVWd5fE.js +1 -0
- package/frontend/build/static/PermissionButton-Tj54K9Kc.js +1 -0
- package/frontend/build/static/Popover-FHiFav9d.js +1 -0
- package/frontend/build/static/Popper-Cut-_j4A.js +1 -0
- package/frontend/build/static/Portal-kwmlgXGI.js +1 -0
- package/frontend/build/static/Radio-Cj82h8o5.js +1 -0
- package/frontend/build/static/RadioGroup-BWTZb8iE.js +1 -0
- package/frontend/build/static/ReactJSONEditor-D65iiPmM.js +4 -0
- package/frontend/build/static/ReactJSONEditor.story-Bt3pxUGO.js +1 -0
- package/frontend/build/static/RoleCell-tqHUOlI7.js +1 -0
- package/frontend/build/static/RtlProvider-D1AlROju.js +1 -0
- package/frontend/build/static/Safeguard-DFEQulxy.js +1 -0
- package/frontend/build/static/SdkEvaluationStatus-B1rMywp-.js +17 -0
- package/frontend/build/static/SdkEvaluationStatus.story-BxgqLICz.js +1 -0
- package/frontend/build/static/Select-DdG1oq6O.js +3 -0
- package/frontend/build/static/SelectSdk-Boj2Ug-2.js +1 -0
- package/frontend/build/static/SelectSdk-CzRoKDb5.js +1 -0
- package/frontend/build/static/SelectSdk.story-BT9ke5Eb.js +1 -0
- package/frontend/build/static/SelectSdk.story-CdzotYoq.js +1 -0
- package/frontend/build/static/Spacing.story-CB6GkN5Z.js +1 -0
- package/frontend/build/static/StoriesPage-luLnHVc2.js +1 -0
- package/frontend/build/static/SwitchBase-cxExIOp0.js +1 -0
- package/frontend/build/static/TextField-Cf03Ror7.js +1 -0
- package/frontend/build/static/ThemeColors.story-Cx9bv5pL.js +1 -0
- package/frontend/build/static/TokenExplanation-CJjBSQ07.js +1 -0
- package/frontend/build/static/TokenExplanation.story-BoOaHRrQ.js +1 -0
- package/frontend/build/static/Tooltip-DPzrXyNS.js +1 -0
- package/frontend/build/static/TooltipResolver-CIBfA4vm.js +1 -0
- package/frontend/build/static/Truncator-CF0-SVks.js +1 -0
- package/frontend/build/static/Typography-nCkGT67u.js +1 -0
- package/frontend/build/static/Typography.story-CofmlvJB.js +1 -0
- package/frontend/build/static/UIContext-Dsr0TY8K.js +1 -0
- package/frontend/build/static/WhatsNewLayout.story-p4Cm8bgx.js +1 -0
- package/frontend/build/static/aggregateFeatureMetrics-D7AXsd2U.js +1 -0
- package/frontend/build/static/capitalize-DfXJDj8P.js +1 -0
- package/frontend/build/static/chartjs-plugin-annotation.esm-tsR8Pv5a.js +1 -0
- package/frontend/build/static/chunk-KS7C4IRE-PUpsdS_b.js +3 -0
- package/frontend/build/static/code-block-BZePA-4e.js +1 -0
- package/frontend/build/static/copy-to-clipboard-BCU4eeSw.js +1 -0
- package/frontend/build/static/createBox-DaDvp7MB.js +1 -0
- package/frontend/build/static/createSimplePaletteValueFilter-Bt9IjErz.js +1 -0
- package/frontend/build/static/createSvgIcon-D-6jHYkf.js +1 -0
- package/frontend/build/static/differenceInSeconds-DMZGQwjK.js +1 -0
- package/frontend/build/static/dividerClasses-DcI5JVLQ.js +1 -0
- package/frontend/build/static/endOfMonth-CkSR_DAx.js +1 -0
- package/frontend/build/static/{enterpriseEdgeCloud-C5u35XAw.js → enterpriseEdgeCloud-qnOcFE1S.js} +1 -1
- package/frontend/build/static/esm-DViSjNxt.js +12 -0
- package/frontend/build/static/formatAccessText-BhC1wtCg.js +1 -0
- package/frontend/build/static/formatDistanceToNow-CyouiCIY.js +1 -0
- package/frontend/build/static/httpErrorResponseHandler-BzpwldnE.js +1 -0
- package/frontend/build/static/impact-metrics-DrmGy_gn.png +0 -0
- package/frontend/build/static/{impact-metrics-icon-6dt-ye-h.js → impact-metrics-icon-Cg_ki-2e.js} +1 -1
- package/frontend/build/static/index-C2zVj2FI.js +287 -0
- package/frontend/build/static/{jsx-runtime-BnvnyDTF.js → jsx-runtime-DYfQNk55.js} +1 -1
- package/frontend/build/static/mcp-ADx0Sju7.png +0 -0
- package/frontend/build/static/{metricsFormatters-BEX2qb8Y.js → metricsFormatters-BmjW0KTj.js} +1 -1
- package/frontend/build/static/milestone-CciNgBhP.png +0 -0
- package/frontend/build/static/{mui-CoU2c-id.js → mui-C_omlwxE.js} +1 -1
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-DPi6id5j.js +1 -0
- package/frontend/build/static/parse-Chj4PyAg.js +1 -0
- package/frontend/build/static/react-Ca03aNmg.js +1 -0
- package/frontend/build/static/resolveProps-CAVsjga5.js +1 -0
- package/frontend/build/static/servicenow-BmgZtZjb.svg +13 -0
- package/frontend/build/static/sharedTypes-CXnpeg4U.js +1 -0
- package/frontend/build/static/startOfHour-P0Sr6h8e.js +1 -0
- package/frontend/build/static/styled-CY_-vLWk.js +1 -0
- package/frontend/build/static/theme-DDCs0xPV.js +1 -0
- package/frontend/build/static/themeStyles-B99HStK1.js +1 -0
- package/frontend/build/static/useApi-B7ZLy5tN.js +1 -0
- package/frontend/build/static/useApiGetter-C41iZzl2.js +1 -0
- package/frontend/build/static/useApiTokens-BQWPDfv2.js +1 -0
- package/frontend/build/static/useConditionalSWR-QWHOvx6V.js +1 -0
- package/frontend/build/static/useConditionallyHiddenColumns-DbQbB4u7.js +5 -0
- package/frontend/build/static/useCustomEvent-BnWpZ2E1.js +1 -0
- package/frontend/build/static/useEnhancedEffect-BBMUaXin.js +1 -0
- package/frontend/build/static/useEnvironments-Gu7r2cpc.js +2 -0
- package/frontend/build/static/useEventTracker-B0ILyjZB.js +1 -0
- package/frontend/build/static/useGroupedImpactMetricsData-jQ7IYFK3.js +1 -0
- package/frontend/build/static/useId-Bg4oXGUa.js +1 -0
- package/frontend/build/static/{useImpactMetrics-9qDSEpTn.js → useImpactMetrics-DXxTQl6p.js} +2 -2
- package/frontend/build/static/{useImpactMetricsEnabled-wRNO6-Oh.js → useImpactMetricsEnabled-B3om8V0b.js} +1 -1
- package/frontend/build/static/{useInstanceTrafficMetrics-CIpyIGYi.js → useInstanceTrafficMetrics-DkgcWjVM.js} +1 -1
- package/frontend/build/static/useLocationSettings-vlEPA_j3.js +1 -0
- package/frontend/build/static/useMediaQuery-BFm2lR-0.js +2 -0
- package/frontend/build/static/useOptionalPathParam-Cmh3Ejbi.js +1 -0
- package/frontend/build/static/{usePageTitle-CHzzFshF.js → usePageTitle-DD1IHvCw.js} +1 -1
- package/frontend/build/static/useSlot-Ce59-xJL.js +1 -0
- package/frontend/build/static/useSlotProps-v77xI-e5.js +1 -0
- package/frontend/build/static/useTheme-CTychWp2.js +10 -0
- package/frontend/build/static/useTimeout-B2sc1jSE.js +1 -0
- package/frontend/build/static/useToast-BUHn_9TC.js +1 -0
- package/frontend/build/static/{useUiConfig-DbVjTDpE.js → useUiConfig-BcfEDPWc.js} +1 -1
- package/frontend/build/static/useUiFlag-PbKW1iMa.js +1 -0
- package/frontend/package.json +20 -19
- package/package.json +15 -12
- package/frontend/build/static/AccordionSummary-wye3oOm6.js +0 -1
- package/frontend/build/static/AdvancedPlayground-BEYkf6Xg.js +0 -3
- package/frontend/build/static/Alert-_bLyWbvx.js +0 -1
- package/frontend/build/static/BackendConnections-DdvotR_8.js +0 -1
- package/frontend/build/static/Box-BQsxfFmC.js +0 -1
- package/frontend/build/static/Button-CebB8EPB.js +0 -1
- package/frontend/build/static/ChatOutlined-jZlhx14o.js +0 -1
- package/frontend/build/static/CircularProgress-C_LUU3DK.js +0 -101
- package/frontend/build/static/Close-DyTASMSq.js +0 -1
- package/frontend/build/static/CloudCircle-BjnxUYAO.js +0 -1
- package/frontend/build/static/Collapse-DPPTUMpf.js +0 -1
- package/frontend/build/static/ConditionallyRender---uTpMBn.js +0 -1
- package/frontend/build/static/CreateProject-BSlg0WYM.js +0 -1
- package/frontend/build/static/Dialog-C-xQxqWX.js +0 -1
- package/frontend/build/static/DialogWithAside-BvaGTcqO.js +0 -1106
- package/frontend/build/static/Divider-CsdWvu5F.js +0 -1
- package/frontend/build/static/EnterpriseEdge-DN23kaQp.js +0 -6
- package/frontend/build/static/FeatureMetricsChart-CmVkRuwG.js +0 -2
- package/frontend/build/static/FeatureStaleDialog-BkyjUGR9.js +0 -8
- package/frontend/build/static/FeatureViewLazyExport-C5FggFea.js +0 -10
- package/frontend/build/static/FileCopy-B8HZEA83.js +0 -1
- package/frontend/build/static/FlagMetricsChart-ZjHSwulg.js +0 -2
- package/frontend/build/static/FormControlLabel-F5gDLixN.js +0 -1
- package/frontend/build/static/FrontendNetworkTrafficUsage-BmLOJdK9.js +0 -1
- package/frontend/build/static/GridLayoutWrapper-D93wkNEo.js +0 -3
- package/frontend/build/static/Grow-BIbmvKVy.js +0 -1
- package/frontend/build/static/HelpOutlineOutlined-CpMsVJZu.js +0 -1
- package/frontend/build/static/Highlighter-MomUaQww.js +0 -1
- package/frontend/build/static/HtmlTooltip-B9jv1G1R.js +0 -1
- package/frontend/build/static/ImpactMetricsPage-D1CETZR_.js +0 -1
- package/frontend/build/static/ImpactViewsPage-DeBga4lU.js +0 -1
- package/frontend/build/static/LazyAdminExport-BvtR_me3.js +0 -38
- package/frontend/build/static/LazyProjectExport-BkOu6pHf.js +0 -46
- package/frontend/build/static/LifecycleChartComponent-BYvIFr7Q.js +0 -2
- package/frontend/build/static/LineChartComponent-d80f3Tky.js +0 -1
- package/frontend/build/static/Link-CfIScd2f.js +0 -1
- package/frontend/build/static/Loader-DdgXftPc.js +0 -1
- package/frontend/build/static/MarkCompletedDialogue-CtzRfovJ.js +0 -1
- package/frontend/build/static/NetworkOverview-D1UOxIaf.js +0 -1
- package/frontend/build/static/NetworkTraffic-CLnhub6c.js +0 -1
- package/frontend/build/static/NetworkTrafficUsage-PgI0lqze.js +0 -1
- package/frontend/build/static/PageContent-c0NDm5oD.js +0 -1
- package/frontend/build/static/PercentageDonut-C6I2UOES.js +0 -1
- package/frontend/build/static/PermissionButton-BIeM26DH.js +0 -1
- package/frontend/build/static/Popover-CUTnSn2h.js +0 -1
- package/frontend/build/static/Radio-DL8ja0ll.js +0 -1
- package/frontend/build/static/RadioGroup-Ci3WHaOy.js +0 -1
- package/frontend/build/static/ReactJSONEditor-C-paZV5Q.js +0 -4
- package/frontend/build/static/RoleCell-BCPNstXC.js +0 -1
- package/frontend/build/static/Safeguard-9zs64Bna.js +0 -1
- package/frontend/build/static/SelectSdk-D2NaTubs.js +0 -2
- package/frontend/build/static/StoriesPage-5lbMiQlA.js +0 -1
- package/frontend/build/static/SwitchBase-DWPIxZnN.js +0 -1
- package/frontend/build/static/TextField-oipjeg6n.js +0 -3
- package/frontend/build/static/Tooltip-BaILXXti.js +0 -1
- package/frontend/build/static/TooltipResolver-4A1YhwBy.js +0 -1
- package/frontend/build/static/Truncator-D2bO9ub6.js +0 -1
- package/frontend/build/static/Typography-BTdLWIUX.js +0 -1
- package/frontend/build/static/aggregateFeatureMetrics-DBivHCcj.js +0 -1
- package/frontend/build/static/chartjs-plugin-annotation.esm-BxKcCGhA.js +0 -1
- package/frontend/build/static/chunk-QUQL4437-Dr42NpoL.js +0 -3
- package/frontend/build/static/createBox-Cf2UJsmc.js +0 -1
- package/frontend/build/static/createSimplePaletteValueFilter-BRAMrHWJ.js +0 -1
- package/frontend/build/static/dividerClasses-Cc45lyWo.js +0 -1
- package/frontend/build/static/esm-CFWP4-MJ.js +0 -15
- package/frontend/build/static/httpErrorResponseHandler-FMtt7Zqh.js +0 -1
- package/frontend/build/static/index-BJ2iUk24.js +0 -289
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-DVWh8Lrd.js +0 -1
- package/frontend/build/static/parse-BhYjTMCL.js +0 -1
- package/frontend/build/static/react-GZhdek4G.js +0 -1
- package/frontend/build/static/startOfHour-KiLZtdEa.js +0 -1
- package/frontend/build/static/themeStyles-BPY8RNQO.js +0 -1
- package/frontend/build/static/useApiGetter-7FP8Avm4.js +0 -1
- package/frontend/build/static/useApiTokens-C8Dqw_X1.js +0 -1
- package/frontend/build/static/useConditionalSWR-DGgzun6i.js +0 -1
- package/frontend/build/static/useConditionallyHiddenColumns-DTDzRlyO.js +0 -5
- package/frontend/build/static/useCustomEvent-CwoY8S5F.js +0 -1
- package/frontend/build/static/useEnvironments-CTguhgy0.js +0 -2
- package/frontend/build/static/useGroupedImpactMetricsData-CK8Pz2an.js +0 -1
- package/frontend/build/static/useMediaQuery-DGx8zAkf.js +0 -2
- package/frontend/build/static/useOptionalPathParam-Cx3ru9yC.js +0 -1
- package/frontend/build/static/useTheme-CQqAmDLr.js +0 -9
- /package/frontend/build/static/{connect-DbjGV9Hl.png → cr-DbjGV9Hl.png} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DYfQNk55.js";import{za as t}from"./index-C2zVj2FI.js";import{n,t as r}from"./CodeRenderer-RNHlNPBl.js";var i=e(),a={title:`Onboarding/CodeRenderer`,background:`paper`},o=`my-feature-flag`,s=`my-api-token`,c=`https://us.app.unleash-hosted.com/ushosted/api`,l=e=>{let[a]=(n[e]||``).replace(`<YOUR_API_TOKEN>`,s).replace(`<YOUR_API_URL>`,c).replaceAll(`<YOUR_FLAG>`,o).split(`---
|
|
2
|
+
`);return(0,i.jsx)(t,{components:{code:r},children:a})},u=()=>l(`Node.js`),d=()=>l(`Go`),f=()=>l(`.NET`),p=()=>l(`Ruby`),m=()=>l(`PHP`),h=()=>l(`Rust`),g=()=>l(`Java`),_=()=>l(`Python`),v=()=>l(`JavaScript`),y=()=>l(`React`),b=()=>l(`Vue`),x=()=>l(`Svelte`),S=()=>l(`Swift`),C=()=>l(`Android`),w=()=>l(`Flutter`),T=()=>l(`Next.js`),E=()=>l(`React Native`);export{C as Android,f as DotNet,w as Flutter,d as Go,g as Java,v as JavaScript,T as NextJs,u as NodeJs,m as Php,_ as Python,E as ReactNative,y as ReactSdk,p as Ruby,h as Rust,x as Svelte,S as Swift,b as Vue,a as meta};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,t}from"./react-Ca03aNmg.js";import{r as n}from"./Portal-kwmlgXGI.js";import{a as r,t as i}from"./useTheme-CTychWp2.js";import{t as a}from"./jsx-runtime-DYfQNk55.js";import{a as o,c as s,n as c,r as l,s as u}from"./capitalize-DfXJDj8P.js";import{n as d}from"./resolveProps-CAVsjga5.js";import{t as f}from"./styled-CY_-vLWk.js";import{t as p}from"./useSlot-Ce59-xJL.js";import{a as m,d as h,g,m as _}from"./useTimeout-B2sc1jSE.js";var v=e(t(),1);function y(e){return s(`MuiCollapse`,e)}u(`MuiCollapse`,[`root`,`horizontal`,`vertical`,`entered`,`hidden`,`wrapper`,`wrapperInner`]);var b=a(),x={},ee=e=>{let{orientation:t,classes:n}=e;return o({root:[`root`,t],entered:[`entered`],hidden:[`hidden`],wrapper:[`wrapper`,t],wrapperInner:[`wrapperInner`,t]},y,n)},te=f(`div`,{name:`MuiCollapse`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.orientation],n.state===`entered`&&t.entered,n.state===`exited`&&!n.in&&n.collapsedSize===`0px`&&t.hidden]}})(l(({theme:e})=>({height:0,overflow:`hidden`,transition:e.transitions.create(`height`),variants:[{props:{orientation:`horizontal`},style:{height:`auto`,width:0,transition:e.transitions.create(`width`)}},{props:{state:`entered`},style:{height:`auto`,overflow:`visible`}},{props:{state:`entered`,orientation:`horizontal`},style:{width:`auto`}},{props:({ownerState:e})=>e.state===`exited`&&!e.in&&e.collapsedSize===`0px`,style:{visibility:`hidden`}}]}))),S=f(`div`,{name:`MuiCollapse`,slot:`Wrapper`})({display:`flex`,width:`100%`,variants:[{props:{orientation:`horizontal`},style:{width:`auto`,height:`100%`}}]}),C=f(`div`,{name:`MuiCollapse`,slot:`WrapperInner`})({width:`100%`,variants:[{props:{orientation:`horizontal`},style:{width:`auto`,height:`100%`}}]}),w=v.forwardRef(function(e,t){let a=c({props:e,name:`MuiCollapse`}),{addEndListener:o,children:s,className:l,collapsedSize:u=`0px`,component:f,disablePrefersReducedMotion:y=!1,easing:w,in:T,onEnter:E,onEntered:D,onEntering:O,onExit:k,onExited:A,onExiting:j,orientation:M=`vertical`,slots:N=x,slotProps:P=x,style:F,timeout:I=r.standard,TransitionComponent:L=n,...ne}=a,R={...a,orientation:M,collapsedSize:u},z=ee(R),B=i(),V=v.useRef(null),H=v.useRef(null),U=typeof u==`number`?`${u}px`:u,W=M===`horizontal`,G=W?`width`:`height`,K=m(B.motion.reducedMotion,y),q=v.useRef(null),J=g(t,q),Y=()=>V.current?V.current[W?`clientWidth`:`clientHeight`]:0,X=_(q,(e,t)=>{V.current&&W&&(V.current.style.position=`absolute`),e.style[G]=U,E&&E(e,t)}),re=_(q,(e,t)=>{let n=Y();V.current&&W&&(V.current.style.position=``);let{duration:r,easing:i}=h({style:F,timeout:I,easing:w},{mode:`enter`});if(I===`auto`&&!K.shouldReduceMotion){let e=B.transitions.getAutoHeightDuration(n);H.current=e}else H.current=null;let a=K.getTransitionTiming({duration:H.current??r,delay:void 0});e.style.transitionDuration=typeof a.duration==`string`?a.duration:`${a.duration}ms`,e.style[G]=`${n}px`,e.style.transitionTimingFunction=i,O&&O(e,t)}),ie=_(q,(e,t)=>{e.style[G]=`auto`,D&&D(e,t)}),ae=_(q,e=>{e.style[G]=`${Y()}px`,k&&k(e)}),oe=_(q,A),se=_(q,e=>{let t=Y(),{duration:n,easing:r}=h({style:F,timeout:I,easing:w},{mode:`exit`});if(I===`auto`&&!K.shouldReduceMotion){let e=B.transitions.getAutoHeightDuration(t);H.current=e}else H.current=null;let i=K.getTransitionTiming({duration:H.current??n,delay:void 0});e.style.transitionDuration=typeof i.duration==`string`?i.duration:`${i.duration}ms`,e.style[G]=U,e.style.transitionTimingFunction=r,j&&j(e)}),ce=o?e=>{o(q.current,e)}:void 0,Z={slots:N,slotProps:P,component:f},[le,Q]=p(`root`,{ref:J,className:d(z.root,l),elementType:te,externalForwardedProps:Z,ownerState:R,additionalProps:{style:{[W?`minWidth`:`minHeight`]:U,...F}}}),[$,ue]=p(`wrapper`,{ref:V,className:z.wrapper,elementType:S,externalForwardedProps:Z,ownerState:R}),[de,fe]=p(`wrapperInner`,{className:z.wrapperInner,elementType:C,externalForwardedProps:Z,ownerState:R});return(0,b.jsx)(L,{in:T,onEnter:X,onEntered:ie,onEntering:re,onExit:ae,onExited:oe,onExiting:se,addEndListener:ce,getAutoTimeout:I===`auto`?()=>H.current:void 0,reduceMotion:K.shouldReduceMotion,nodeRef:q,timeout:I===`auto`?null:I,...ne,children:(e,{ownerState:t,...n})=>{let r={...R,state:e};return(0,b.jsx)(le,{...Q,className:d(Q.className,{entered:z.entered,exited:!T&&U===`0px`&&z.hidden}[e]),ownerState:r,...n,children:(0,b.jsx)($,{...ue,ownerState:r,children:(0,b.jsx)(de,{...fe,ownerState:r,children:s})})})}})});w&&(w.muiSupportAuto=!0);export{w as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=({condition:e,show:t,elseShow:n})=>{let r=e=>e()||(console.warn(`Nothing was returned from your render function. Verify that you are returning a valid react component`),null),i=e=>typeof e==`function`;return e?i(t)?r(t):t:!e&&n?i(n)?r(n):n:null};export{e as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DYfQNk55.js";import{t}from"./styled-CY_-vLWk.js";import{t as n}from"./Typography-nCkGT67u.js";import{t as r}from"./Button-yGjgMTJI.js";import{At as i,et as a}from"./PermissionButton-Tj54K9Kc.js";import{Is as o,go as s,xa as c}from"./index-C2zVj2FI.js";import{t as l}from"./code-block-BZePA-4e.js";var u=e(),d=t(`div`,{shouldForwardProp:e=>e!==`disabled`})(({theme:e,disabled:t})=>({flexBasis:`50%`,display:`flex`,gap:e.spacing(1),flexDirection:`column`,borderRight:`1px solid ${e.palette.divider}`,padding:e.spacing(2,3,3,3),...t&&{background:e.palette.background.elevation2},[e.breakpoints.down(`md`)]:{borderRight:0,borderBottom:`1px solid ${e.palette.divider}`},"&:last-child":{borderWidth:0}})),f=t(`div`)(()=>({display:`flex`,flexDirection:`row`,alignItems:`center`,justifyContent:`space-between`,width:`100%`,minHeight:32})),p=t(`div`)(()=>({width:32,height:32,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`,"& svg":{fontSize:20},"& svg path":{fill:`currentColor`}})),m=t(p)(({theme:e})=>({backgroundColor:e.palette.primary.light,color:e.palette.primary.contrastText})),h=t(p)(({theme:e})=>({backgroundColor:e.palette.success.light,border:`1px solid ${e.palette.success.border}`,color:e.palette.success.main})),g=t(p)(({theme:e})=>({border:`1px solid ${e.palette.divider}`,background:e.palette.background.elevation1,color:e.palette.text.secondary})),_=t(n)(({theme:e})=>({fontSize:e.typography.caption.fontSize,fontWeight:e.typography.fontWeightBold,lineHeight:e.spacing(2),color:e.palette.text.secondary})),v=t(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,flexGrow:1,gap:e.spacing(1)})),y=t(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(1)})),b=t(n,{shouldForwardProp:e=>e!==`done`})(({theme:e,done:t})=>({fontSize:e.typography.body1.fontSize,fontWeight:e.typography.fontWeightBold,color:t?e.palette.text.secondary:e.palette.text.primary,textDecoration:t?`line-through`:`none`})),x=t(n)(({theme:e})=>({fontSize:e.typography.body2.fontSize,color:e.palette.text.secondary})),S=t(`div`)(()=>({display:`flex`,alignSelf:`flex-start`,marginTop:`auto`})),C=(e,t)=>e===`done`?(0,u.jsx)(h,{children:(0,u.jsx)(o,{})}):e===`disabled`?(0,u.jsx)(g,{children:t}):(0,u.jsx)(m,{children:t}),w=({stepNumber:e,state:t,icon:n,title:r,body:i,children:a})=>{let o=t===`done`;return(0,u.jsxs)(d,{disabled:t===`disabled`,children:[(0,u.jsxs)(f,{children:[C(t,n),(0,u.jsxs)(_,{children:[`Step `,e]})]}),(0,u.jsxs)(v,{children:[(0,u.jsxs)(y,{children:[(0,u.jsx)(b,{done:o,children:r}),(0,u.jsx)(x,{children:i})]}),(0,u.jsx)(S,{children:a})]})]})},T=({projectId:e,setConnectSdkOpen:t,state:n})=>{let d=n===`done`;return(0,u.jsx)(w,{stepNumber:2,state:n,icon:(0,u.jsx)(l,{}),title:d?`Connect SDK`:`Connect SDKs`,body:d?`You can connect as many SDKs as you need.`:`To start using your feature flag, connect an SDK to the project.`,children:d?(0,u.jsx)(r,{variant:`outlined`,color:`inherit`,startIcon:(0,u.jsx)(o,{}),disabled:!0,children:`Done`}):(0,u.jsx)(c,{onClick:()=>t(!0),maxWidth:`200px`,projectId:e,Icon:s,permission:[i,a],disabled:n===`disabled`,children:`Connect SDK`})})};export{w as n,T as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DYfQNk55.js";import{t}from"./ConnectSdkStep-DnH4iwnu.js";var n=e(),r={title:`Onboarding / ConnectSdkStep`,background:`paper`},i=()=>(0,n.jsx)(t,{projectId:`my-project`,setConnectSdkOpen:(...e)=>{console.log(`Open Connect SDK`,e)},state:`disabled`}),a=()=>(0,n.jsx)(t,{projectId:`my-project`,setConnectSdkOpen:(...e)=>{console.log(`Open Connect SDK`,e)},state:`active`}),o=()=>(0,n.jsx)(t,{projectId:`my-project`,setConnectSdkOpen:(...e)=>{console.log(`Open Connect SDK`,e)},state:`done`});export{a as Active,i as Disabled,o as Done,r as meta};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./chunk-KS7C4IRE-PUpsdS_b.js";import{t}from"./jsx-runtime-DYfQNk55.js";var n=t(),r=()=>(0,n.jsx)(e,{to:`/projects?create=true`,replace:!0});export{r as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,t}from"./react-Ca03aNmg.js";import{t as n}from"./useTheme-CTychWp2.js";import{t as r}from"./jsx-runtime-DYfQNk55.js";import{a as i,c as a,n as o,r as s,s as c,t as l}from"./capitalize-DfXJDj8P.js";import{n as u}from"./resolveProps-CAVsjga5.js";import{t as d}from"./styled-CY_-vLWk.js";import{t as f}from"./useId-Bg4oXGUa.js";import{t as p}from"./useSlot-Ce59-xJL.js";import{a as m,n as h,o as g,t as _}from"./Modal-DdH902AP.js";import{t as v}from"./Paper-BvPQ0Zq6.js";var y=e(t(),1);function b(e){return a(`MuiDialog`,e)}c(`MuiDialog`,[`root`,`backdrop`,`scrollPaper`,`scrollBody`,`container`,`paper`,`paperWidthFalse`,`paperWidthXs`,`paperWidthSm`,`paperWidthMd`,`paperWidthLg`,`paperWidthXl`,`paperFullWidth`,`paperFullScreen`]);var x=y.createContext({}),S=r(),C=d(m,{name:`MuiDialog`,slot:`Backdrop`})({zIndex:-1}),w=e=>{let{classes:t,scroll:n,maxWidth:r,fullWidth:a,fullScreen:o}=e;return i({root:[`root`],backdrop:[`backdrop`],container:[`container`,`scroll${l(n)}`],paper:[`paper`,`paperWidth${l(String(r))}`,a&&`paperFullWidth`,o&&`paperFullScreen`]},b,t)},T=d(_,{name:`MuiDialog`,slot:`Root`})({"@media print":{position:`absolute !important`}}),E=d(`div`,{name:`MuiDialog`,slot:`Container`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.container,t[`scroll${l(n.scroll)}`]]}})({height:`100%`,"@media print":{height:`auto`},outline:0,variants:[{props:{scroll:`paper`},style:{display:`flex`,justifyContent:`center`,alignItems:`center`}},{props:{scroll:`body`},style:{overflowY:`auto`,overflowX:`hidden`,textAlign:`center`,"&::after":{content:`""`,display:`inline-block`,verticalAlign:`middle`,height:`100%`,width:`0`}}}]}),D=d(v,{name:`MuiDialog`,slot:`Paper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.paper,t[`paperWidth${l(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(s(({theme:e})=>({margin:32,position:`relative`,overflowY:`auto`,outline:0,"@media print":{overflowY:`visible`,boxShadow:`none`},variants:[{props:{scroll:`paper`},style:{display:`flex`,flexDirection:`column`,maxHeight:`calc(100% - 64px)`}},{props:{scroll:`body`},style:{display:`inline-block`,verticalAlign:`middle`,textAlign:`initial`}},{props:({ownerState:e})=>!e.maxWidth,style:{maxWidth:`calc(100% - 64px)`}},{props:{maxWidth:`xs`},style:{maxWidth:e.breakpoints.unit===`px`?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`}},{props:{maxWidth:`xs`,scroll:`body`},style:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:`calc(100% - 64px)`}}},...Object.keys(e.breakpoints.values).filter(e=>e!==`xs`).map(t=>({props:{maxWidth:t},style:{maxWidth:`${e.breakpoints.values[t]}${e.breakpoints.unit}`}})),...Object.keys(e.breakpoints.values).filter(e=>e!==`xs`).map(t=>({props:{maxWidth:t,scroll:`body`},style:{[e.breakpoints.down(e.breakpoints.values[t]+64)]:{maxWidth:`calc(100% - 64px)`}}})),{props:({ownerState:e})=>e.fullWidth,style:{width:`calc(100% - 64px)`}},{props:({ownerState:e})=>e.fullScreen,style:{margin:0,width:`100%`,maxWidth:`100%`,height:`100%`,maxHeight:`none`,borderRadius:0}},{props:({ownerState:e})=>e.fullScreen&&e.scroll===`body`,style:{margin:0,maxWidth:`100%`}}]}))),O=y.forwardRef(function(e,t){let r=o({props:e,name:`MuiDialog`}),i=n(),a={enter:i.transitions.duration.enteringScreen,exit:i.transitions.duration.leavingScreen},{"aria-describedby":s,"aria-labelledby":c,"aria-modal":l=!0,children:d,className:m,fullScreen:_=!1,fullWidth:b=!1,maxWidth:O=`sm`,onClick:k,onClose:A,open:j,PaperComponent:M=v,role:N=`dialog`,scroll:P=`paper`,slots:F={},slotProps:I={},transitionDuration:L=a,...R}=r,z={...r,fullScreen:_,fullWidth:b,maxWidth:O,scroll:P},B=w(z),V=y.useRef(),H=e=>{V.current=e.target===e.currentTarget},U=e=>{k&&k(e),V.current&&(V.current=null,A&&A(e,`backdropClick`))},W=f(c),G=y.useMemo(()=>({titleId:W}),[W]),K={slots:F,slotProps:I},[q,J]=p(`root`,{elementType:T,shouldForwardComponentProp:!0,externalForwardedProps:K,ownerState:z,className:u(B.root,m),ref:t}),[Y,X]=p(`backdrop`,{elementType:C,shouldForwardComponentProp:!0,externalForwardedProps:K,ownerState:z,className:B.backdrop}),[Z,Q]=p(`paper`,{elementType:D,shouldForwardComponentProp:!0,externalForwardedProps:K,ownerState:z,className:B.paper,additionalProps:{elevation:24,role:N,"aria-describedby":s,"aria-labelledby":W,"aria-modal":l,tabIndex:-1,[h]:``}}),[$,ee]=p(`container`,{elementType:E,externalForwardedProps:K,ownerState:z,className:B.container}),[te,ne]=p(`transition`,{elementType:g,externalForwardedProps:K,ownerState:z,additionalProps:{appear:!0,in:j,timeout:L,role:`presentation`}});return(0,S.jsx)(q,{closeAfterTransition:!0,slots:{backdrop:Y},slotProps:{backdrop:{transitionDuration:L,...X}},onClose:A,open:j,onClick:U,...J,...R,children:(0,S.jsx)(te,{...ne,children:(0,S.jsx)($,{onMouseDown:H,...ee,children:(0,S.jsx)(Z,{as:M,...Q,children:(0,S.jsx)(x.Provider,{value:G,children:d})})})})})});export{x as n,O as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DYfQNk55.js";import{t}from"./styled-CY_-vLWk.js";import{t as n}from"./IconButton-BveFD3PF.js";import{t as r}from"./Dialog-DLpX4v6X.js";import{t as i}from"./Close-nISwbNAY.js";var a=e(),o=40,s=`md`,c=t(r,{shouldForwardProp:e=>e!==`dialogMaxWidth`&&e!==`fullHeight`})(({theme:e,dialogMaxWidth:t=170,fullHeight:n})=>({"& .MuiDialog-paper":{borderRadius:e.shape.borderRadiusLarge,maxWidth:e.spacing(t),width:`100%`,...n&&{height:`100%`},overflow:`hidden`,display:`flex`,flexDirection:`column`,backgroundColor:e.palette.background.sidebar}})),l=t(`div`)(({theme:e})=>({display:`flex`,flexShrink:0,borderBottom:`1px solid ${e.palette.divider}`})),u=t(`div`)(({theme:e})=>({flex:1,display:`flex`,alignItems:`center`,justifyContent:`space-between`,backgroundColor:e.palette.background.paper,paddingRight:e.spacing(1.5),"& .closeButton":{[e.breakpoints.up(s)]:{display:`none`}}})),d=t(`h2`)(({theme:e})=>({margin:0,padding:e.spacing(1.5,3),fontWeight:e.typography.fontWeightBold,fontSize:e.typography.body1.fontSize,lineHeight:e.spacing(2.75)})),f=t(`div`)(({theme:e})=>({width:e.spacing(o),flexShrink:0,backgroundColor:e.palette.background.sidebar,color:e.palette.primary.contrastText,display:`flex`,alignItems:`center`,justifyContent:`flex-end`,paddingRight:e.spacing(1.5),[e.breakpoints.down(s)]:{display:`none`}})),p=t(`div`)({display:`flex`,flex:1,overflow:`hidden`}),m=t(`div`)(({theme:e})=>({flex:1,overflowY:`auto`,backgroundColor:e.palette.background.paper})),h=t(`aside`)(({theme:e})=>({width:e.spacing(o),flexShrink:0,backgroundColor:e.palette.background.sidebar,color:e.palette.primary.contrastText,[e.breakpoints.down(s)]:{display:`none`}})),g=({open:e,onClose:t,title:r,aside:o,children:s,maxWidth:g,fullHeight:_})=>(0,a.jsxs)(c,{open:e,onClose:t,maxWidth:!1,dialogMaxWidth:g,fullHeight:_,children:[(0,a.jsxs)(l,{children:[(0,a.jsxs)(u,{children:[(0,a.jsx)(d,{children:r}),(0,a.jsx)(n,{size:`small`,className:`closeButton`,onClick:t,children:(0,a.jsx)(i,{})})]}),(0,a.jsx)(f,{children:(0,a.jsx)(n,{size:`small`,onClick:t,sx:{color:`inherit`},children:(0,a.jsx)(i,{})})})]}),(0,a.jsxs)(p,{children:[(0,a.jsx)(m,{children:s}),(0,a.jsx)(h,{children:o})]})]});export{g as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,t}from"./react-Ca03aNmg.js";import{t as n}from"./jsx-runtime-DYfQNk55.js";import{t as r}from"./Typography-nCkGT67u.js";import{t as i}from"./Box-rSzdGLLJ.js";import{t as a}from"./Button-yGjgMTJI.js";import{t as o}from"./DialogWithAside-BxVspeMV.js";var s=e(t(),1),c=n(),l={title:`Common/DialogWithAside`,background:`application`},u=()=>(0,c.jsxs)(i,{sx:{p:3,display:`flex`,flexDirection:`column`,gap:2},children:[(0,c.jsx)(r,{variant:`body2`,sx:{fontWeight:`bold`},children:`Aside panel`}),(0,c.jsx)(r,{variant:`body2`,children:`This area is always 320 px wide and hidden below the md breakpoint. The close button in the header handles dismissal on all screen sizes.`})]}),d=()=>{let[e,t]=(0,s.useState)(!0);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(a,{variant:`contained`,onClick:()=>t(!0),children:`Open dialog`}),(0,c.jsx)(o,{open:e,onClose:()=>t(!1),title:`Dialog title`,aside:(0,c.jsx)(u,{}),children:(0,c.jsxs)(i,{sx:{p:3,display:`flex`,flexDirection:`column`,gap:2},children:[(0,c.jsx)(r,{variant:`body1`,sx:{fontWeight:`bold`},children:`Main content`}),(0,c.jsx)(r,{variant:`body2`,children:`Children are rendered in the scrollable left column.`})]})})]})},f=()=>{let[e,t]=(0,s.useState)(!1);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(a,{variant:`contained`,onClick:()=>t(!0),children:`Open dialog`}),(0,c.jsx)(o,{open:e,onClose:()=>t(!1),title:`Scrolling content`,aside:(0,c.jsx)(u,{}),children:(0,c.jsx)(i,{sx:{p:3,display:`flex`,flexDirection:`column`,gap:3},children:Array.from({length:12},(e,t)=>(0,c.jsxs)(i,{children:[(0,c.jsxs)(r,{variant:`body2`,sx:{fontWeight:`bold`,mb:.5},children:[`Section `,t+1]}),(0,c.jsx)(r,{variant:`body2`,children:`Content scrolls inside the left column while the aside and header stay fixed.`})]},t))})})]})};export{d as Default,f as WithLongContent,l as meta};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,t}from"./react-Ca03aNmg.js";import{t as n}from"./jsx-runtime-DYfQNk55.js";import{a as r,n as i,r as a}from"./capitalize-DfXJDj8P.js";import{n as o}from"./resolveProps-CAVsjga5.js";import{t as s}from"./styled-CY_-vLWk.js";import{n as c}from"./dividerClasses-DcI5JVLQ.js";var l=e(t(),1),u=n(),d=e=>{let{absolute:t,children:n,classes:i,flexItem:a,orientation:o,textAlign:s,variant:l}=e;return r({root:[`root`,t&&`absolute`,l,o===`vertical`&&`vertical`,a&&`flexItem`,n&&`withChildren`,s===`right`&&o!==`vertical`&&`textAlignRight`,s===`left`&&o!==`vertical`&&`textAlignLeft`],wrapper:[`wrapper`,o===`vertical`&&`wrapperVertical`]},c,i)},f=s(`div`,{name:`MuiDivider`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],n.orientation===`vertical`&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,n.textAlign===`right`&&n.orientation!==`vertical`&&t.textAlignRight,n.textAlign===`left`&&n.orientation!==`vertical`&&t.textAlignLeft]}})(a(({theme:e})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:`solid`,borderColor:(e.vars||e).palette.divider,borderBottomWidth:`thin`,variants:[{props:{absolute:!0},style:{position:`absolute`,bottom:0,left:0,width:`100%`}},{props:{variant:`inset`},style:{marginLeft:72}},{props:{variant:`middle`,orientation:`horizontal`},style:{marginLeft:e.spacing(2),marginRight:e.spacing(2)}},{props:{variant:`middle`,orientation:`vertical`},style:{marginTop:e.spacing(1),marginBottom:e.spacing(1)}},{props:{orientation:`vertical`},style:{height:`100%`,borderBottomWidth:0,borderRightWidth:`thin`}},{props:{flexItem:!0},style:{alignSelf:`stretch`,height:`auto`}},{props:({ownerState:e})=>!!e.children,style:{display:`flex`,textAlign:`center`,border:0,borderTopStyle:`solid`,borderLeftStyle:`solid`,"&::before, &::after":{content:`""`,alignSelf:`center`}}},{props:({ownerState:e})=>e.children&&e.orientation!==`vertical`,style:{"&::before, &::after":{width:`100%`,borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:`inherit`}}},{props:({ownerState:e})=>e.orientation===`vertical`&&e.children,style:{flexDirection:`column`,"&::before, &::after":{height:`100%`,borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:`inherit`}}},{props:({ownerState:e})=>e.textAlign===`right`&&e.orientation!==`vertical`,style:{"&::before":{width:`90%`},"&::after":{width:`10%`}}},{props:({ownerState:e})=>e.textAlign===`left`&&e.orientation!==`vertical`,style:{"&::before":{width:`10%`},"&::after":{width:`90%`}}}]}))),p=s(`span`,{name:`MuiDivider`,slot:`Wrapper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.wrapper,n.orientation===`vertical`&&t.wrapperVertical]}})(a(({theme:e})=>({display:`inline-block`,paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`,whiteSpace:`nowrap`,variants:[{props:{orientation:`vertical`},style:{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`}}]}))),m=l.forwardRef(function(e,t){let n=i({props:e,name:`MuiDivider`}),{absolute:r=!1,children:a,className:s,orientation:c=`horizontal`,component:l=a||c===`vertical`?`div`:`hr`,flexItem:m=!1,role:h=l===`hr`?void 0:`separator`,textAlign:g=`center`,variant:_=`fullWidth`,...v}=n,y={...n,absolute:r,component:l,flexItem:m,orientation:c,role:h,textAlign:g,variant:_},b=d(y);return(0,u.jsx)(f,{as:l,className:o(b.root,s),role:h,ref:t,ownerState:y,"aria-orientation":h===`separator`&&(l!==`hr`||c===`vertical`)?c:void 0,...v,children:a?(0,u.jsx)(p,{className:b.wrapper,ownerState:y,children:a}):null})});export{m as t};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{o as e,t}from"./react-Ca03aNmg.js";import{r as n}from"./chunk-KS7C4IRE-PUpsdS_b.js";import{s as r,t as i}from"./useTheme-CTychWp2.js";import{t as a}from"./jsx-runtime-DYfQNk55.js";import{t as o}from"./styled-CY_-vLWk.js";import{n as s,r as c,t as l}from"./AccordionSummary-KVRcLxLK.js";import{t as ee}from"./createSvgIcon-D-6jHYkf.js";import{t as u}from"./Typography-nCkGT67u.js";import{t as d}from"./Button-yGjgMTJI.js";import{t as f}from"./Tooltip-DPzrXyNS.js";import{f as te,t as p}from"./httpErrorResponseHandler-BzpwldnE.js";import{n as m}from"./formatPath-j72gcKwy.js";import{n as h}from"./useUiFlag-PbKW1iMa.js";import{t as g}from"./Truncator-CF0-SVks.js";import{a as _}from"./formatDate-cFuM4JYl.js";import{t as v}from"./usePageTitle-DD1IHvCw.js";import{t as ne}from"./PageContent-lT51j8jO.js";import{t as y}from"./useLocationSettings-vlEPA_j3.js";import{Eo as b,Gs as re,Is as ie,Ls as ae,Ps as oe,Vt as se,Ws as x,ao as S}from"./index-C2zVj2FI.js";import{t as C}from"./enterpriseEdgeCloud-qnOcFE1S.js";import{t as w}from"./unknownify-CCAQc7w1.js";var T=e(t(),1),E={connectedEdges:[],revisionIds:[]},D=e=>{let{data:t,error:n,mutate:r}=te(m(`api/admin/metrics/edges`),O,e);return(0,T.useMemo)(()=>{let e=!n&&!t;return t?.connectedEdges===void 0?Array.isArray(t)?{edgeObservability:{connectedEdges:t,revisionIds:[]},loading:e,refetch:()=>r(),error:n}:{edgeObservability:E,loading:e,refetch:()=>r(),error:n}:{edgeObservability:t,loading:e,refetch:()=>r(),error:n}},[t,n,r])},O=e=>fetch(e).then(p(`Connected Edges`)).then(e=>e.json()),k=se(),A=a(),j=ee((0,A.jsx)(`path`,{d:`M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2`}),`Circle`),M=o(`table`)(({theme:e})=>({width:`100%`,borderCollapse:`collapse`,fontSize:e.fontSizes.smallerBody,"& > thead":{borderBottom:`1px solid ${e.palette.text.primary}`},"& tr":{textAlign:`right`,"& > th:first-of-type, td:first-of-type":{textAlign:`left`}}})),N=o(`tr`)(({theme:e})=>({fontWeight:e.fontWeight.bold,"&&& > td":{paddingTop:e.spacing(1),"& > div":{display:`flex`,alignItems:`center`}}})),P=({instance:e})=>(0,A.jsxs)(M,{children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:`Latency (ms)`}),(0,A.jsx)(`th`,{children:`Avg`}),(0,A.jsx)(`th`,{children:`p99`})]})}),(0,A.jsxs)(`tbody`,{children:[(0,A.jsx)(N,{children:(0,A.jsx)(`td`,{colSpan:3,children:(0,A.jsxs)(`div`,{children:[`Upstream`,` `,(0,A.jsx)(S,{tooltip:`Latency measured for requests sent from this Edge instance to the configured upstream, i.e. Unleash or another Edge instance.`,size:`16px`})]})})}),(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:`Client Features`}),(0,A.jsx)(`td`,{children:e.upstreamFeaturesAverageLatencyMs}),(0,A.jsx)(`td`,{children:e.upstreamFeaturesP99LatencyMs})]}),(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:`Metrics`}),(0,A.jsx)(`td`,{children:e.upstreamMetricsAverageLatencyMs}),(0,A.jsx)(`td`,{children:e.upstreamMetricsP99LatencyMs})]}),(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:`Edge`}),(0,A.jsx)(`td`,{children:e.upstreamEdgeAverageLatencyMs}),(0,A.jsx)(`td`,{children:e.upstreamEdgeP99LatencyMs})]}),(0,A.jsx)(N,{children:(0,A.jsx)(`td`,{colSpan:3,children:(0,A.jsxs)(`div`,{children:[`Downstream`,` `,(0,A.jsx)(S,{tooltip:`Latency measured when serving requests from clients, i.e. SDKs or other Edge instances.`,size:`16px`})]})})}),(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:`Client Features`}),(0,A.jsx)(`td`,{children:e.clientFeaturesAverageLatencyMs}),(0,A.jsx)(`td`,{children:e.clientFeaturesP99LatencyMs})]}),(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:`Frontend`}),(0,A.jsx)(`td`,{children:e.frontendApiAverageLatencyMs}),(0,A.jsx)(`td`,{children:e.frontendApiP99LatencyMs})]})]})]}),F=o(`table`)(({theme:e})=>({width:`100%`,borderCollapse:`collapse`,fontSize:e.fontSizes.smallerBody,"& > thead":{borderBottom:`1px solid ${e.palette.text.primary}`},"& tr":{textAlign:`right`,"& > th:first-of-type, td:first-of-type":{textAlign:`left`},paddingTop:e.spacing(1)}})),I=o(`td`)(({theme:e})=>({paddingTop:e.spacing(1),maxWidth:`80px`,"& > div":{display:`flex`,alignItems:`center`,justifyContent:`end`}})),L=o(b)(({theme:e})=>({padding:e.spacing(0,1)})),R=e=>e.length===1?e[0]:`[]`,z=e=>`${R(e.projects)}:${e.environment}.***`,B=e=>e.length<=1||e.includes(`*`)?``:`
|
|
2
|
+
Projects: ${e.join(`, `)}
|
|
3
|
+
`,V=e=>`[${e.projects.join(`,`)}]:${e.environment}`,H=(e,t)=>{let n=new Set(e||[]),r=new Set(t);if(n.size!==r.size)return!1;for(let e of n)if(!r.has(e))return!1;return!0},U=(e,t)=>(e||[]).every(e=>t.has(e)),W=e=>e.find(e=>!e.projects||e.projects.length===0)?.revisionId??0,G=(e,t)=>{if(e.length===0)return;if(t.projects.includes(`*`))return Math.max(...e.map(e=>e.revisionId));let n=e.find(e=>H(e.projects,t.projects));if(n)return n.revisionId;let r=new Set(t.projects),i=e.filter(e=>U(e.projects,r));if(i.length!==0)return Math.max(...i.map(e=>e.revisionId))},K=(e,t)=>{let n=e.filter(e=>e.environment===t.environment),r=W(n),i=G(n.filter(e=>!!(e.projects&&e.projects.length>0)),t);return Math.max(i??0,r)},ce=e=>e<=0?`success`:e<5?`warning`:`error`,le=({edgeRevisionId:e,upstreamRevisionId:t})=>{let n=t-e;return(0,A.jsx)(f,{title:n<=0?`Edge feature configuration is up to date`:`Edge is ${n} revisions behind expected upstream revision for this token`,children:(0,A.jsx)(L,{color:ce(n),children:e})})},ue=({apiKeys:e,revisionIds:t})=>{let{locationSettings:n}=y();return!e||e.length===0?null:(0,A.jsxs)(F,{children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:`Token`}),(0,A.jsx)(`th`,{children:`Revision`})]})}),(0,A.jsx)(`tbody`,{children:e?.map(e=>{let r=z(e);return(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(I,{children:(0,A.jsx)(g,{title:r,children:r})}),(0,A.jsx)(I,{children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(le,{edgeRevisionId:e.revisionId,upstreamRevisionId:K(t,e)}),(0,A.jsx)(S,{tooltip:`
|
|
4
|
+
Edge last updated this token: ${_(e.lastUpdated,n.locale)}
|
|
5
|
+
${B(e.projects)}
|
|
6
|
+
`,size:`14px`})]})})]},V(e))})})]})},de=o(`div`)(({theme:e})=>({width:`100%`,borderRadius:e.shape.borderRadiusMedium,border:`1px solid`,borderColor:e.palette.secondary.border,backgroundColor:e.palette.secondary.light,display:`flex`,flexDirection:`column`,alignItems:`center`,padding:0,zIndex:1,marginTop:e.spacing(1)})),fe=o(c)({width:`100%`,background:`transparent`,boxShadow:`none`}),pe=o(l,{shouldForwardProp:e=>e!==`connectionStatus`})(({theme:e,connectionStatus:t})=>({fontSize:e.fontSizes.smallBody,padding:e.spacing(1),minHeight:e.spacing(3),"& .MuiAccordionSummary-content":{alignItems:`center`,gap:e.spacing(1),margin:0,"&.Mui-expanded":{margin:0},"& svg":{fontSize:e.fontSizes.mainHeader,color:t===`Stale`?e.palette.warning.main:t===`Disconnected`?e.palette.error.main:e.palette.success.main}}})),me=o(s)(({theme:e})=>({display:`flex`,flexDirection:`column`,fontSize:e.fontSizes.smallerBody,gap:e.spacing(2)})),q=o(`div`)(({theme:e})=>({display:`flex`,justifyContent:`space-between`,gap:e.spacing(2),"& > span":{display:`flex`,alignItems:`center`}})),he=o(b)(({theme:e})=>({padding:e.spacing(0,1)})),ge=({hosting:e})=>{switch(e){case`hosted`:return`Cloud`;case`enterprise-self-hosted`:return`Self-hosted`;default:return e?`Unknown: ${e}`:`Unknown`}},_e=({reportedAt:e})=>{let t=new Date(e).getTime(),n=(Date.now()-t)/1e3;return n>360?`Disconnected`:n>180?`Stale`:`Connected`},ve=({started:e,reportedAt:t,cpuUsage:n})=>{let r=Number(n);if(!r)return`No usage`;let i=new Date(e).getTime(),a=(new Date(t).getTime()-i)/1e3;return a===0?`No usage`:`${(r/a*100).toFixed(2)} %`},ye=({memoryUsage:e})=>{if(!e)return`No usage`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n.toFixed(2)} ${t[r]}`},be=({instance:e,revisionIds:t})=>{let{locationSettings:n}=y(),r=h(`enterpriseEdgeTokensList`),i=_e(e),a=_(e.started,n?.locale),o=_(e.reportedAt,n?.locale),s=ve(e),c=ye(e),l=s===`No usage`&&c===`No usage`&&(0,A.jsx)(`p`,{children:`Resource metrics are only available when running on Linux.`});return(0,A.jsx)(de,{children:(0,A.jsxs)(fe,{children:[(0,A.jsxs)(pe,{expandIcon:(0,A.jsx)(oe,{}),connectionStatus:i,children:[(0,A.jsx)(f,{arrow:!0,title:`${i}. Last reported: ${o}`,children:(0,A.jsx)(j,{})}),e.id||e.instanceId]}),(0,A.jsxs)(me,{children:[(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`ID`}),(0,A.jsx)(`span`,{children:e.instanceId})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Upstream server`}),(0,A.jsx)(`span`,{children:e.connectedVia||`Unleash`})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Region`}),(0,A.jsx)(`span`,{children:e.region||`Unknown`})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Hosting`}),(0,A.jsx)(`span`,{children:ge(e)})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Version`}),(0,A.jsx)(`span`,{children:e.edgeVersion})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Status`}),(0,A.jsx)(he,{color:i===`Disconnected`?`error`:i===`Stale`?`warning`:`success`,children:i})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Start`}),(0,A.jsx)(`span`,{children:a})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Last report`}),(0,A.jsx)(`span`,{children:o})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`CPU`}),(0,A.jsxs)(`span`,{children:[s,` `,(0,A.jsx)(S,{tooltip:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`p`,{children:`CPU average usage since instance started.`}),l]}),size:`16px`})]})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Memory`}),(0,A.jsxs)(`span`,{children:[c,` `,(0,A.jsx)(S,{tooltip:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`p`,{children:`Current memory usage.`}),l]}),size:`16px`})]})]}),(0,A.jsxs)(q,{children:[(0,A.jsx)(`strong`,{children:`Stream clients`}),(0,A.jsx)(`span`,{children:e.connectedStreamingClients})]}),(0,A.jsx)(q,{children:(0,A.jsx)(P,{instance:e})}),r&&(0,A.jsx)(q,{children:(0,A.jsx)(ue,{apiKeys:e.apiKeyRevisionIds,revisionIds:t})})]})]})})},J=`Unleash`,xe=o(`div`)(({theme:e})=>({marginBottom:e.spacing(18),display:`flex`,justifyContent:`center`})),Se=o(`div`)(({theme:e})=>({display:`flex`,justifyContent:`center`,gap:e.spacing(4),flexWrap:`wrap`,marginTop:e.spacing(2)})),Y=o(`div`)(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:`1px solid ${e.palette.secondary.border}`,backgroundColor:e.palette.secondary.light,display:`flex`,flexDirection:`column`,alignItems:`center`,padding:e.spacing(1.5),zIndex:1,marginTop:e.spacing(1),"& > svg":{width:e.spacing(9),height:e.spacing(9)}})),Ce=o(Y)(({theme:e})=>({backgroundColor:r(e.palette.background.paper,.75),position:`relative`})),we=o(b)({position:`absolute`,top:-13}),Te=o(u)(({theme:e})=>({marginTop:e.spacing(.5),fontWeight:e.fontWeight.bold})),Ee=o(u)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),De=e=>e.reduce((e,t)=>(e.has(t.appName)||e.set(t.appName,{appName:t.appName,instances:[],groupTargets:new Set,level:0}),e.get(t.appName).instances.push(t),e),new Map),Oe=e=>{let t=new Map,n=r=>{if(t.has(r.appName))return t.get(r.appName);let i=0;return r.groupTargets.forEach(t=>{if(t!==J){let r=e.get(t);r&&(i=Math.max(i,n(r)+1))}}),t.set(r.appName,i),i};e.forEach(e=>{e.level=n(e)});let r=new Map;return e.forEach(e=>{let t=r.get(e.level)||[];t.push(e),r.set(e.level,t)}),r},ke=e=>{let t=De(e),n=new Map,r=new Map;return t.forEach(e=>{e.instances=e.instances.sort((e,t)=>e.instanceId.localeCompare(t.instanceId)).map((t,i)=>{let a=`${e.appName}-${i+1}`;return n.set(t.instanceId,a),r.set(a,e.appName),{...t,id:a}})}),t.forEach(e=>{e.instances=e.instances.map(e=>({...e,connectedVia:e.connectedVia?n.get(e.connectedVia)||e.connectedVia:J}));let t=new Set;e.instances.forEach(n=>{if(!n.connectedVia||n.connectedVia===J)t.add(J);else{let i=r.get(n.connectedVia);i&&i!==e.appName&&t.add(i)}}),e.groupTargets=t}),Oe(t)},Ae=e=>e.every(e=>e.hosting===`hosted`)?{hostingLabel:`Cloud`,hostingColor:`secondary`}:e.every(e=>e.hosting===`enterprise-self-hosted`)?{hostingLabel:`Self-hosted`,hostingColor:`info`}:e.every(e=>e.hosting===`hosted`||e.hosting===`enterprise-self-hosted`)?{hostingLabel:`Hybrid`,hostingColor:`warning`}:{hostingLabel:`Unknown`,hostingColor:`neutral`},je=({connectedEdges:e,revisionIds:t})=>{let n=i(),r=(0,T.useMemo)(()=>ke(e),[e]),a=Array.from(r.keys()).sort((e,t)=>e-t);return(0,A.jsxs)(k.ArcherContainer,{strokeColor:n.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[(0,A.jsx)(xe,{children:(0,A.jsx)(k.ArcherElement,{id:J,children:(0,A.jsxs)(Y,{children:[(0,A.jsx)(ae,{darkmode:(0,A.jsx)(x,{}),lightmode:(0,A.jsx)(re,{})}),(0,A.jsx)(u,{sx:{mt:1},children:J})]})})}),a.map(e=>(0,A.jsx)(Se,{children:r.get(e)?.map(({appName:e,groupTargets:r,instances:i})=>{let{hostingLabel:a,hostingColor:o}=Ae(i);return(0,A.jsx)(k.ArcherElement,{id:e,relations:Array.from(r).map(e=>({targetId:e,targetAnchor:`bottom`,sourceAnchor:`top`,style:{strokeColor:n.palette.secondary.border}})),children:(0,A.jsxs)(Ce,{children:[(0,A.jsx)(we,{color:o,children:a}),(0,A.jsx)(Te,{children:w(e)}),(0,A.jsxs)(Ee,{children:[i.length,` instance`,i.length!==1&&`s`]}),i.map(e=>(0,A.jsx)(be,{instance:e,revisionIds:t},e.instanceId))]})},e)})},e))]})},Me=e=>(0,A.jsxs)(`svg`,{width:312,height:144,viewBox:`0 0 312 144`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,A.jsx)(`rect`,{width:312,height:144,rx:8,fill:`#F1F0FC`}),(0,A.jsxs)(`g`,{opacity:.2,children:[(0,A.jsx)(`circle`,{cx:155.933,cy:72.1494,r:59.9326,stroke:`#657A80`,strokeWidth:1.35669,strokeLinecap:`square`}),(0,A.jsx)(`ellipse`,{cx:155.933,cy:72.2595,rx:43.5873,ry:60.2595,stroke:`#657A80`,strokeWidth:1.35669,strokeLinecap:`square`}),(0,A.jsx)(`ellipse`,{cx:156.368,cy:72.1494,rx:27.2421,ry:59.9326,stroke:`#657A80`,strokeWidth:1.35669,strokeLinecap:`square`}),(0,A.jsx)(`ellipse`,{cx:156.369,cy:72.1494,rx:10.8968,ry:59.9326,stroke:`#657A80`,strokeWidth:1.35669,strokeLinecap:`square`})]}),(0,A.jsxs)(`g`,{opacity:.2,children:[(0,A.jsx)(`mask`,{id:`mask0_35832_1410`,style:{maskType:`alpha`},maskUnits:`userSpaceOnUse`,x:96,y:12,width:120,height:121,children:(0,A.jsx)(`circle`,{cx:155.933,cy:72.1494,r:59.2542,fill:`#92A1A5`,stroke:`#657A80`,strokeWidth:1.35669})}),(0,A.jsxs)(`g`,{mask:`url(#mask0_35832_1410)`,children:[(0,A.jsx)(`path`,{d:`M96 48.1777C96 48.1777 109.076 59.2925 155.933 59.2925C202.789 59.2925 215.865 48.1777 215.865 48.1777`,stroke:`#657A80`,strokeWidth:1.35669}),(0,A.jsx)(`path`,{d:`M96 28.3438C96 28.3438 109.076 45.7787 155.933 45.7787C202.789 45.7787 215.865 28.3438 215.865 28.3438`,stroke:`#657A80`,strokeWidth:1.35669}),(0,A.jsx)(`path`,{d:`M96 2.19141C96 2.19141 109.076 33.1384 155.933 33.1384C202.789 33.1384 215.865 2.19141 215.865 2.19141`,stroke:`#657A80`,strokeWidth:1.35669}),(0,A.jsx)(`path`,{d:`M96 -39.4336C96 -39.4336 109.076 21.3707 155.933 21.3707C202.789 21.3707 215.865 -39.4336 215.865 -39.4336`,stroke:`#657A80`,strokeWidth:1.35669}),(0,A.jsx)(`line`,{x1:96,y1:71.472,x2:215.865,y2:71.472,stroke:`#657A80`,strokeWidth:1.35669}),(0,A.jsx)(`path`,{d:`M215.867 95.6855C215.867 95.6855 202.79 84.5708 155.934 84.5708C109.078 84.5708 96.0016 95.6855 96.0016 95.6855`,stroke:`#657A80`,strokeWidth:1.35669}),(0,A.jsx)(`path`,{d:`M215.867 115.518C215.867 115.518 202.79 98.0826 155.934 98.0826C109.078 98.0826 96.0016 115.518 96.0016 115.518`,stroke:`#657A80`,strokeWidth:1.35669}),(0,A.jsx)(`path`,{d:`M215.867 141.672C215.867 141.672 202.79 110.725 155.934 110.725C109.078 110.725 96.0016 141.672 96.0016 141.672`,stroke:`#657A80`,strokeWidth:1.35669}),(0,A.jsx)(`path`,{d:`M215.866 183.297C215.866 183.297 202.79 122.493 155.934 122.493C109.078 122.493 96.0013 183.297 96.0013 183.297`,stroke:`#657A80`,strokeWidth:1.35669})]})]}),(0,A.jsx)(`rect`,{x:116.749,y:86.5273,width:58.1081,height:29.0541,rx:14.527,transform:`rotate(-180 116.749 86.5273)`,fill:`url(#paint0_linear_35832_1410)`}),(0,A.jsx)(`ellipse`,{cx:102.184,cy:71.9997,rx:14.565,ry:14.527,fill:`#817AFE`}),(0,A.jsx)(`path`,{d:`M106.258 67.9648H98.187V76.0354H106.258V67.9648Z`,fill:`white`}),(0,A.jsx)(`path`,{d:`M140.556 78.3887L140.232 70.291L133.381 74.6202L140.556 78.3887ZM121.749 69.1189L129.108 72.5139L128.369 64.4436L121.749 69.1189ZM137.182 73.0493L137.645 72.5217C136.53 71.5447 135.079 70.5495 133.191 69.6186L132.88 70.2481L132.57 70.8776C134.358 71.7589 135.705 72.6876 136.719 73.577L137.182 73.0493ZM132.88 70.2481L133.191 69.6186C131.302 68.6877 129.629 68.143 128.176 67.8544L128.039 68.5428L127.902 69.2312C129.225 69.4939 130.782 69.9964 132.57 70.8776L132.88 70.2481Z`,fill:`#6C65E5`}),(0,A.jsx)(`rect`,{x:147.284,y:55.7305,width:17.4324,height:32.5405,rx:3.48649,fill:`#1A4049`}),(0,A.jsx)(`path`,{d:`M171.444 78.3887L171.768 70.291L178.619 74.6202L171.444 78.3887ZM190.251 69.1189L182.892 72.5139L183.631 64.4436L190.251 69.1189ZM174.818 73.0493L174.355 72.5217C175.47 71.5447 176.921 70.5495 178.809 69.6186L179.12 70.2481L179.43 70.8776C177.642 71.7589 176.295 72.6876 175.281 73.577L174.818 73.0493ZM179.12 70.2481L178.809 69.6186C180.698 68.6877 182.371 68.143 183.824 67.8544L183.961 68.5428L184.098 69.2312C182.775 69.4939 181.218 69.9964 179.43 70.8776L179.12 70.2481Z`,fill:`#6C65E5`}),(0,A.jsx)(`rect`,{x:253.359,y:86.5273,width:58.1081,height:29.0541,rx:14.527,transform:`rotate(-180 253.359 86.5273)`,fill:`url(#paint1_linear_35832_1410)`}),(0,A.jsx)(`ellipse`,{cx:238.794,cy:71.9997,rx:14.565,ry:14.527,fill:`#1A4049`}),(0,A.jsx)(`path`,{d:`M242.867 67.9648H234.797V76.0354H242.867V67.9648Z`,fill:`#EDF0F1`}),(0,A.jsxs)(`defs`,{children:[(0,A.jsxs)(`linearGradient`,{id:`paint0_linear_35832_1410`,x1:116.737,y1:100.985,x2:174.889,y2:100.985,gradientUnits:`userSpaceOnUse`,children:[(0,A.jsx)(`stop`,{stopColor:`#1A4049`,stopOpacity:0}),(0,A.jsx)(`stop`,{offset:1,stopColor:`#0E1A1D`})]}),(0,A.jsxs)(`linearGradient`,{id:`paint1_linear_35832_1410`,x1:253.347,y1:100.985,x2:311.499,y2:100.985,gradientUnits:`userSpaceOnUse`,children:[(0,A.jsx)(`stop`,{stopColor:`#657A80`,stopOpacity:0}),(0,A.jsx)(`stop`,{offset:1,stopColor:`#1A4049`,stopOpacity:.75})]})]})]}),Ne=o(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(1),maxWidth:e.spacing(80),margin:`auto`})),Pe=o(`div`)(({theme:e})=>({display:`flex`,flexDirection:`row`,gap:e.spacing(2.5),marginTop:e.spacing(2.5)})),Fe=o(`div`)(({theme:e})=>({border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(3),flex:1,display:`flex`,flexDirection:`column`,gap:e.spacing(1.5)})),Ie=o(`div`)({"& > svg":{width:`auto`,maxWidth:`100%`,height:`auto`,display:`block`}}),Le=o(`ul`)(({theme:e})=>({listStyle:`none`,marginTop:e.spacing(1),marginBottom:e.spacing(1),paddingLeft:e.spacing(0),display:`flex`,flexDirection:`column`,gap:e.spacing(1)})),X=o(`li`)(({theme:e})=>({display:`flex`,alignItems:`center`,gap:e.spacing(1)})),Re=o(ie)(({theme:e})=>({color:e.palette.primary.main,fontSize:`18px`})),ze=o(`div`)(({theme:e})=>({display:`flex`,justifyContent:`flex-start`,margin:e.spacing(-.75)})),Be=()=>(0,A.jsxs)(Ne,{children:[(0,A.jsx)(u,{variant:`h3`,children:`Which version is right for you?`}),(0,A.jsxs)(u,{variant:`body2`,sx:{color:`text.secondary`},children:[`Unleash Enterprise Edge is a high-performance proxy engineered for scalability, resilience, and privacy. It acts as a shield between your SDKs and the Unleash API, allowing you to handle thousands of concurrent connections with zero impact on your primary instance. Contact`,` `,(0,A.jsx)(`a`,{href:`mailto:license@getunleash.io`,children:`license@getunleash.io`}),` `,`today to provision your private Enterprise Edge environment.`]}),(0,A.jsxs)(Pe,{children:[(0,A.jsx)(Z,{image:(0,A.jsx)(C,{}),title:`Cloud hosted`,description:`When you need to connect to Unleash from geographically distributed locations.`,bullets:[`Global infrastructure`,`No operational burden`,`Instant flag updates worldwide`],docsUrl:`https://docs.getunleash.io/deploy/hosting-options#cloud-hosted`}),(0,A.jsx)(Z,{image:(0,A.jsx)(Me,{}),title:`Self hosted`,description:`Ensure low latency and data sovereignty by running Enterprise Edge inside your private network.`,bullets:[`Ideal for PII heavy data`,`Optimized for minimal latency`,`Improved security`],docsUrl:`https://docs.getunleash.io/deploy/hosting-options#self-hosted`})]})]}),Z=({image:e,title:t,description:r,bullets:i,docsUrl:a})=>(0,A.jsxs)(Fe,{children:[(0,A.jsx)(Ie,{children:e}),(0,A.jsx)(u,{variant:`h3`,children:t}),(0,A.jsx)(u,{variant:`body2`,sx:{color:`text.secondary`},children:r}),(0,A.jsx)(Le,{children:i.map(e=>(0,A.jsxs)(X,{children:[(0,A.jsx)(Re,{}),` `,(0,A.jsx)(u,{variant:`body2`,sx:{color:`text.secondary`},children:e})]},e))}),(0,A.jsxs)(u,{variant:`body2`,sx:{color:`text.secondary`},children:[`Contact`,` `,(0,A.jsx)(`a`,{href:`mailto:license@getunleash.io`,children:`license@getunleash.io`}),` to get started.`]}),(0,A.jsx)(ze,{children:(0,A.jsx)(d,{component:n,nativeButton:!1,to:a,size:`medium`,sx:{fontSize:`14px`},rel:`noopener noreferrer`,target:`_blank`,children:`Read docs`})})]}),Ve=o(ne)(({theme:e})=>({".body":{padding:e.spacing(0)}})),Q=o(`div`)(({theme:e})=>({padding:e.spacing(4)})),He=o(`hr`)(({theme:e})=>({border:`none`,height:`1px`,background:e.palette.divider,width:`100%`,margin:e.spacing(2,0)})),$=()=>{v(`Enterprise Edge`);let{edgeObservability:e}=D({refreshInterval:3e4}),t=e.connectedEdges.length>0;return(0,A.jsxs)(Ve,{header:`Enterprise Edge`,children:[t&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(Q,{children:(0,A.jsx)(je,{connectedEdges:e.connectedEdges,revisionIds:e.revisionIds})}),(0,A.jsx)(He,{})]}),(0,A.jsx)(Q,{sx:{pb:t?6:4},children:(0,A.jsx)(Be,{})})]})};export{$ as EnterpriseEdge,$ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DYfQNk55.js";import{t}from"./styled-CY_-vLWk.js";import{Nt as n,jt as r}from"./index-C2zVj2FI.js";var i=e(),a={title:`WhatsNew / FeatureCard`,background:`application`},o=t(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(3),maxWidth:760})),s=n.find(e=>e.phase===`released`&&!!e.previewImageSrc)?.previewImageSrc??``,c=()=>(0,i.jsx)(o,{children:n.toSorted((e,t)=>e.title.localeCompare(t.title)).map(e=>(0,i.jsx)(r,{feature:e},e.title))}),l=()=>(0,i.jsx)(r,{feature:{phase:`released`,title:`Unleash MCP server`,description:`Connect your AI coding assistant to Unleash for safe, structured feature flag management, from flag creation through to cleanup.`,releasedAt:`2026-05-26`,docsLink:`https://docs.getunleash.io/integrate/mcp`}}),u=()=>(0,i.jsx)(r,{feature:{phase:`released`,title:`Insights dashboard refresh`,description:`A redesigned insights surface with faster filters, sharable views, and trend overlays you can pin to your dashboard.`,releasedAt:`2026-06-12`,docsLink:`https://docs.getunleash.io/reference/insights`,previewImageSrc:s}}),d=()=>(0,i.jsx)(r,{feature:{phase:`released`,title:`Quiet release`,description:`Some releases are small enough that the changelog entry is all the documentation you need.`,releasedAt:`2026-04-02`}}),f=()=>(0,i.jsx)(r,{feature:{phase:`released`,title:`A noticeably longer release title that should wrap across two lines on narrow viewports`,description:`This card stretches the layout: a long description that runs across several lines to confirm spacing, line-height, and the relationship between the header, the released date, the body copy and the docs link below stays visually balanced. It should not feel cramped or float awkwardly when the preview column is absent.`,releasedAt:`2026-01-15`,docsLink:`https://docs.getunleash.io`}}),p=()=>(0,i.jsx)(r,{feature:{phase:`beta`,title:`Release plans`,description:`Coordinate gradual rollouts across environments with a guided plan: define milestones, target audiences, and progress automatically.`}}),m=()=>(0,i.jsx)(r,{feature:{phase:`exploring`,title:`Service Now integration`,description:`We are currently looking into how a Service Now integration with Unleash could look like, and we would like to understand the various needs for this.`}});export{c as Current,m as Exploring,p as PhaseBeta,l as PhaseReleased,f as PhaseReleasedLongCopy,u as PhaseReleasedWithPreview,d as PhaseReleasedWithoutDocs,a as meta};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{o as e,t}from"./react-Ca03aNmg.js";import{t as n}from"./useTheme-CTychWp2.js";import{t as r}from"./jsx-runtime-DYfQNk55.js";import{i,r as a,t as o}from"./formatDate-cFuM4JYl.js";import{t as s}from"./useLocationSettings-vlEPA_j3.js";import{Gt as c,cn as l,fn as u,in as d,mn as f,nn as p,pn as m,rn as h,un as g,wn as _}from"./index-C2zVj2FI.js";import{t as v}from"./daysOrHours-owFAL-4S.js";var y=e(t(),1),b=(e,t,n)=>({datasets:[{label:`Enabled`,borderColor:e.palette.charts.flagMetrics.enabled,backgroundColor:e.palette.charts.flagMetrics.enabled,data:x(t,n,e=>e.yes)},{label:`Not enabled`,borderColor:e.palette.charts.flagMetrics.notEnabled,backgroundColor:e.palette.charts.flagMetrics.notEnabled,data:x(t,n,e=>e.no)}]}),x=(e,t,n)=>e.map(e=>({x:e.timestamp,y:n(e),variants:e.variants||{}})),S=(e,t)=>{if(t===0)return``;let[n,r]=e;return`${r} (${Math.floor(Number(r)/t*100)}%) - ${n}`},C=(e,t,n,r)=>({locale:r.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:`index`,intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.text.secondary,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,position:`nearest`,itemSort:(e,t)=>{let n=[`Enabled`,`Not enabled`];return n.indexOf(e.dataset.label)-n.indexOf(t.dataset.label)},callbacks:{beforeBody:e=>`${e.reduce((e,t)=>e+(t.parsed.y??0),0).toLocaleString(r.locale)} - Total evaluations`,label:e=>`${e.formattedValue} - ${e.dataset.label}`,afterLabel:e=>{let t=e.dataset.data[e.dataIndex];if(e.dataset.label!==`Enabled`||t.variants===void 0)return``;let{disabled:n,...r}=t.variants;return Object.entries(r).map(e=>S(e,t.y)).join(`
|
|
2
|
+
`)},title:e=>`Time: ${n>48?i(e[0].parsed.x??0,r.locale,`UTC`):o(e[0].parsed.x??0,r.locale)}`}},legend:{position:`top`,align:`end`,labels:{boxWidth:10,boxHeight:10,usePointStyle:!0}},title:{text:w(n),position:`top`,align:`start`,display:!0,font:{size:16,weight:400},color:e.palette.text.primary}},scales:{y:{type:`linear`,stacked:!0,title:{display:!0,text:`Number of requests`,color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider},border:{color:e.palette.divider}},x:{type:`time`,stacked:!0,time:{unit:n>48?`day`:`hour`},grid:{display:!1},ticks:{callback:(e,t,i)=>n>48?a(i[t].value,r.locale,`UTC`):o(i[t].value,r.locale),color:e.palette.text.secondary}}}}),w=e=>e===1?`Requests in the last hour`:`Requests in the last ${v(e)}`;_.font={..._.font,family:`Sen`,size:13,weight:400};var T=r(),E=({metrics:e,hoursBack:t,statsSectionId:r})=>{let i=n(),{locationSettings:a}=s(),o=(0,y.useMemo)(()=>[...e].sort((e,t)=>e.timestamp.localeCompare(t.timestamp)),[e]),l=(0,y.useMemo)(()=>C(i,o,t,a),[i,o,t,a]);return(0,T.jsx)(`div`,{style:{height:400},children:(0,T.jsx)(c,{data:(0,y.useMemo)(()=>b(i,o,a),[i,o,a]),options:l,"aria-label":`A stacked bar chart showing feature flag exposure metrics: exposed and not exposed requests.`,"aria-describedby":r})})};d.register(h,l,p,g,u,f,m);export{E as FeatureMetricsChart,E as default};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{o as e,t}from"./react-Ca03aNmg.js";import{u as n}from"./chunk-KS7C4IRE-PUpsdS_b.js";import{t as r}from"./useTheme-CTychWp2.js";import{t as i}from"./jsx-runtime-DYfQNk55.js";import{t as a}from"./styled-CY_-vLWk.js";import{l as o,o as s,t as c}from"./TextField-Cf03Ror7.js";import{n as l,r as u,t as d}from"./AccordionSummary-KVRcLxLK.js";import{t as f}from"./createSvgIcon-D-6jHYkf.js";import{t as p}from"./Typography-nCkGT67u.js";import{t as m}from"./Box-rSzdGLLJ.js";import{t as h}from"./Button-yGjgMTJI.js";import{t as g}from"./Link-wv6er_Jy.js";import{u as _}from"./themeStyles-B99HStK1.js";import{t as v}from"./ConditionallyRender-CEffh9Z-.js";import{i as y}from"./parse-Chj4PyAg.js";import{f as b,t as x,x as ee}from"./httpErrorResponseHandler-BzpwldnE.js";import{n as S,r as te}from"./formatPath-j72gcKwy.js";import{B as C,Dt as ne,S as re,Tt as w,l as T,t as E}from"./PermissionButton-Tj54K9Kc.js";import{n as D}from"./useCustomEvent-BnWpZ2E1.js";import{t as O}from"./useUiConfig-BcfEDPWc.js";import{it as ie}from"./testIds-B_Ev-uQn.js";import{t as ae}from"./useConditionalSWR-QWHOvx6V.js";import{t as k}from"./useEventTracker-B0ILyjZB.js";import{t as A}from"./useToast-BUHn_9TC.js";import{n as j,t as oe}from"./useApi-B7ZLy5tN.js";import{t as se}from"./MenuBook-DZFyn--3.js";import{Bi as M,Eo as N,Hi as P,Is as F,Ji as I,Kr as L,Os as R,Ps as z,Qi as B,R as V,Ri as H,To as U,Vi as W,Vs as G,Wi as K,Xi as ce,Yi as le,_s as ue,di as de,go as fe,ls as q,po as J,qr as pe,sc as me,so as he,xo as ge,za as _e,zi as ve}from"./index-C2zVj2FI.js";import{t as ye}from"./DialogWithAside-BxVspeMV.js";import{n as be,t as xe}from"./CodeRenderer-RNHlNPBl.js";import{n as Se,t as Ce}from"./sharedTypes-CXnpeg4U.js";import{n as we,t as Te}from"./SelectSdk-Boj2Ug-2.js";import{t as Ee}from"./GenerateApiKey-C1aJtPh-.js";import{t as De}from"./GenerateApiKeySummary-DkPI02tH.js";import{t as Oe}from"./SdkEvaluationStatus-B1rMywp-.js";var Y=i(),ke=f((0,Y.jsx)(`path`,{d:`M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10H7v-2h10z`}),`IndeterminateCheckBox`),Ae=o(),je=({options:e,selectedOptions:t,indeterminateOptions:n,tagType:r,existingTags:i,disabled:a=!1,onChange:o})=>{let l=(0,Y.jsx)(pe,{fontSize:`small`});return(0,Y.jsx)(s,{multiple:!0,id:`checkboxes-tag`,sx:{marginTop:e=>e.spacing(2),width:500},disableCloseOnSelect:!0,options:e,value:t,isOptionEqualToValue:(e,t)=>t.inputValue&&t.inputValue!==``?e.title===t.inputValue:e.title===t.title,getOptionLabel:e=>e.inputValue?e.inputValue:e.title,renderOption:({key:e,...t},r,{selected:i})=>{let a=n?.some(e=>e.title===r.title)??!1;return(0,Y.jsxs)(`li`,{...t,children:[(0,Y.jsx)(v,{condition:!!r.inputValue,show:(0,Y.jsx)(fe,{sx:{mr:e=>e.spacing(.5)}}),elseShow:(0,Y.jsx)(me,{icon:l,checkedIcon:(0,Y.jsx)(L,{fontSize:`small`}),indeterminateIcon:(0,Y.jsx)(ke,{fontSize:`small`}),sx:{mr:e=>e.spacing(.5)},checked:i&&!a,indeterminate:a})}),r.title]},e)},filterOptions:(e,t)=>{let n=t.inputValue.trim(),r=Ae(e,{...t,inputValue:n}),i=e.some(e=>n===e.title);return n.length>=2&&!i&&r.push({inputValue:n,title:`Create new value "${n}"`}),r},onChange:o,renderInput:e=>(0,Y.jsx)(c,{...e,label:`Select values`,placeholder:`Select values`}),disabled:a,slotProps:{listbox:{style:{maxHeight:200,overflow:`auto`}}}})},Me=a(`li`)({flexDirection:`column`}),Ne=({options:e,value:t,disabled:n=!1,onChange:i})=>{let a=r();return(0,Y.jsx)(s,{disablePortal:!0,disabled:n,id:`tag-type-select`,sx:{marginTop:e=>e.spacing(2),width:500},options:e,disableClearable:!0,value:t,getOptionLabel:e=>e.name,renderOption:({key:e,...t},n)=>(0,Y.jsxs)(Me,{...t,style:{alignItems:`flex-start`,gap:a.spacing(.5)},children:[(0,Y.jsx)(p,{variant:`body1`,children:n.name}),(0,Y.jsx)(p,{variant:`caption`,children:n.description})]},e),renderInput:e=>(0,Y.jsx)(c,{...e,label:`Tag type`,value:t}),onChange:i,slotProps:{listbox:{style:{maxHeight:200,overflow:`auto`}}}})},Pe=()=>{let{makeRequest:e,createRequest:t,errors:n,loading:r}=oe({propagateErrors:!0});return{createTag:async n=>{let r=t(`api/admin/tags`,{method:`POST`,body:JSON.stringify(n)});return e(r.caller,r.id)},bulkUpdateTags:async(n,r)=>{let i=`api/admin/projects/${r}/tags`,a=t(i,{method:`PUT`,body:JSON.stringify(n)});return e(a.caller,a.id)},errors:n,loading:r}},X=e(t(),1),Fe=(e,t={})=>{let n=async()=>{let t=S(`api/admin/tags/${e}`);return(await fetch(t,{method:`GET`}).then(x(`Tags`))).json()},r=`api/admin/tags/${e}`,{data:i,error:a}=ae(!!e,{tags:[]},r,n,t),[o,s]=(0,X.useState)(!a&&!i);return(0,X.useEffect)(()=>{s(!a&&!i)},[i,a]),{tags:i?.tags||[],error:a,loading:o,refetch:()=>{ee(r)}}},Z=(e,t)=>{let{project:n,refetch:r}=T(e);return{defaultStrategyFallback:{name:`flexibleRollout`,constraints:[],parameters:{rollout:`100`,stickiness:n.defaultStickiness||`default`,groupId:``}},strategy:n.environments?.find(e=>e.environment===t)?.defaultStrategy,refetch:r}},Ie=()=>{let e=J(`projectId`),t=B(`environmentId`),{refetch:r}=T(e),{defaultStrategyFallback:i,strategy:a,refetch:o}=Z(e,t),[s,c]=(0,X.useState)(a||i),{updateDefaultStrategy:l,loading:u}=ge(),{strategyDefinition:d}=le(s.name),{setToastData:f,setToastApiError:p}=A(),m=ce(),{uiConfig:g}=O(),{unleashUrl:_}=g,v=n(),{trackEvent:y}=k(),b=M(s.constraints);if(!d)return null;let x=Le(s);return(0,Y.jsx)(D,{modal:!0,disablePadding:!0,description:ze,documentationLink:Be,documentationLinkLabel:Ve,formatApiCode:()=>Re(e,t,x,d,_),children:(0,Y.jsxs)(de,{strategy:s,setStrategy:c,strategyDefinition:d,errors:m,groupIdTooltip:`Defaults to the feature flag name if not set.`,onSubmit:async()=>{let n=`/projects/${e}/settings/default-strategy`;try{await l(e,t,x),y(`default_strategy`,{props:{action:`edit`,hasTitle:!!x.title}}),r(),f({text:`Default Strategy updated`,type:`success`}),await o(),v(n)}catch(e){p(j(e))}},children:[(0,Y.jsx)(E,{permission:[re,C],projectId:e,environmentId:t,variant:`contained`,color:`primary`,type:`submit`,disabled:u||!b||m.hasFormErrors(),"data-testid":ie,children:`Save strategy`}),(0,Y.jsx)(h,{type:`button`,onClick:()=>v(`/projects/${e}/settings/default-strategy`),children:`Cancel`})]})})},Le=e=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:Object.fromEntries(Object.entries(e.parameters??{}).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])),variants:e.variants??[],segments:e.segments??[],disabled:e.disabled??!1}),Re=(e,t,n,r,i)=>{if(!i)return``;let a={...n,parameters:I(n.parameters??{},r)};return`curl --location --request POST '${`${i}/api/admin/projects/${e}/environments/${t}/default-strategy`}' \\
|
|
2
|
+
--header 'Authorization: INSERT_API_KEY' \\
|
|
3
|
+
--header 'Content-Type: application/json' \\
|
|
4
|
+
--data-raw '${JSON.stringify(a,void 0,2)}'`},ze=`
|
|
5
|
+
An activation strategy will only run when a feature flag is enabled and provides a way to control who will get access to the feature.
|
|
6
|
+
If any of a feature flag's activation strategies returns true, the user will get access.
|
|
7
|
+
`,Be=`https://docs.getunleash.io/concepts/projects#project-default-strategy`,Ve=`Default strategy documentation`,He=e=>{let{data:t,error:n,mutate:r}=b(S(`api/admin/environments/project/${e}`),Ue);return{environments:(0,X.useMemo)(()=>t||[],[t]),refetchEnvironments:(0,X.useCallback)(async()=>{await r()},[r]),loading:!n&&!t,error:n}},Ue=async e=>(await fetch(e).then(x(`Environments`)).then(e=>e.json())).environments.sort((e,t)=>e.sortOrder-t.sortOrder),We=e=>{let{setToastData:t,setToastApiError:n}=A(),{addChange:r}=K(),{refetch:i}=P(e),[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)({isOpen:!1});return{pending:a,onChangeRequestToggle:(0,X.useCallback)((e,t,n,r)=>{c({featureName:e,environment:t,enabled:n,shouldActivateDisabledStrategies:r,isOpen:!0})},[]),onChangeRequestToggleClose:(0,X.useCallback)(()=>{c(e=>({...e,isOpen:!1}))},[]),onChangeRequestToggleConfirm:(0,X.useCallback)(async()=>{try{o(!0),await r(e,s.environment,{feature:s.featureName,action:`updateEnabled`,payload:{enabled:!!s.enabled,shouldActivateDisabledStrategies:!!s.shouldActivateDisabledStrategies}}),i(),c(e=>({...e,isOpen:!1})),t({type:`success`,text:`Changes added to draft`})}catch(e){n(j(e)),c(e=>({...e,isOpen:!1}))}finally{o(!1)}},[r]),changeRequestDialogDetails:s}},Ge=({enabled:e,featureName:t,environment:n})=>(0,Y.jsxs)(p,{"data-testid":`update-enabled-message`,children:[(0,Y.jsx)(`strong`,{children:e?`Enable`:`Disable`}),` feature flag`,` `,(0,Y.jsx)(`strong`,{children:t}),` in `,(0,Y.jsx)(`strong`,{children:n})]}),Ke=a(`ul`)(({theme:e})=>({margin:e.spacing(1),paddingLeft:e.spacing(2)})),qe=({isOpen:e,onAddDefaultStrategy:t,onActivateDisabledStrategies:n,onClose:r,environment:i,featureId:a})=>{let o=J(`projectId`),{feature:s}=U(o,a),c=s.environments?.find(({name:e})=>e===i)?.strategies?.filter(({disabled:e})=>e).length,l=c?c===1?`1 disabled strategy`:`${c} disabled strategies`:`disabled strategies`;return(0,Y.jsxs)(q,{open:e,secondaryButtonText:`Cancel`,permissionButton:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(E,{type:`button`,variant:`outlined`,permission:w,projectId:o,environmentId:i,onClick:t,children:`Add default strategy`}),(0,Y.jsx)(E,{type:`button`,variant:`outlined`,permission:w,projectId:o,environmentId:i,onClick:n,children:`Enable all strategies`})]}),onClose:r,title:`Enable feature flag in ${i}`,fullWidth:!0,children:[(0,Y.jsx)(p,{sx:{mb:e=>e.spacing(3)},children:`A feature flag cannot be enabled without an enabled strategy.`}),(0,Y.jsx)(p,{children:`To enable this feature flag you can choose to:`}),(0,Y.jsxs)(Ke,{children:[(0,Y.jsx)(`li`,{children:(0,Y.jsx)(p,{children:(0,Y.jsx)(`strong`,{children:`Add the default strategy`})})}),(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(p,{children:[(0,Y.jsx)(`strong`,{children:`Enable all the disabled strategies`}),` `,`(this feature flag has `,l,`)`]})})]})]})},Je=e=>{let t=n=>{n<e.length&&e[n](()=>t(n+1))};t(0)},Ye=e=>{let{toggleFeatureEnvironmentOn:t,toggleFeatureEnvironmentOff:n}=W(),{setToastData:r,setToastApiError:i}=A(),[a,o]=(0,X.useState)({open:!1,label:``,loading:!1,onClose:()=>{},onClick:()=>{}}),[s,c]=(0,X.useState)({isOpen:!1,environment:``,featureId:``,onClose:()=>{},onActivateDisabledStrategies:()=>{},onAddDefaultStrategy:()=>{}}),{pending:l,onChangeRequestToggle:u,onChangeRequestToggleClose:d,onChangeRequestToggleConfirm:f,changeRequestDialogDetails:p}=We(e),[m,h]=(0,X.useState)(),g=(0,X.useCallback)(async(e,a)=>{let s=!1;return Je([t=>{if(a.isChangeRequestEnabled||!ve(a.environmentType||``))return t();o({open:!0,label:`${e?`Enable`:`Disable`} Environment`,loading:!1,onClose:()=>{o(e=>({...e,open:!1})),a.onRollback?.()},onClick:()=>{o(e=>({...e,open:!1,loading:!0})),t()}})},t=>{if(e===!1||!a.hasStrategies||a.hasEnabledStrategies||a.hasReleasePlans)return t();c({isOpen:!0,environment:a.environmentName,featureId:a.featureId,onClose:()=>{c(e=>({...e,isOpen:!1})),a.onRollback?.()},onActivateDisabledStrategies:()=>{c(e=>({...e,isOpen:!1})),s=!0,t()},onAddDefaultStrategy:()=>{c(e=>({...e,isOpen:!1})),t()}})},t=>{if(!a.isChangeRequestEnabled)return t();h(()=>{h(void 0),a.onRollback?.()}),u(a.featureId,a.environmentName,e,s)},async t=>{if(e!==!1)return t();try{await n(a.projectId,a.featureId,a.environmentName),r({type:`success`,text:`Disabled in ${a.environmentName}`}),a.onSuccess?.()}catch(e){i(j(e)),a.onRollback?.()}},async n=>{if(e!==!0)return n();try{await t(a.projectId,a.featureId,a.environmentName,s),r({type:`success`,text:`Enabled in ${a.environmentName}`}),a.onSuccess?.()}catch(e){i(j(e)),a.onRollback?.()}}])},[o]),_=s.featureId.length!==0;return{onToggle:g,modals:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(H,{...a}),(0,Y.jsx)(v,{condition:_,show:(0,Y.jsx)(qe,{...s})}),(0,Y.jsx)(V,{isOpen:p.isOpen,onClose:()=>{m?.(),d()},environment:p?.environment,disabled:l,onConfirm:()=>{m?.(),f()},messageComponent:(0,Y.jsx)(Ge,{enabled:p?.enabled,featureName:p?.featureName,environment:p.environment})})]})}},Xe=e=>{let[t,n]=(0,X.useState)(e),r=(0,X.useCallback)(()=>n(e),[e]);return(0,X.useEffect)(()=>{n(e)},[e]),[t,n,r]},Ze=a(m)(()=>({mx:`auto`,..._})),Qe=({projectId:e,featureId:t,environmentName:n,value:r,onToggle:i})=>{let[a,o,s]=Xe(r),c=()=>{o(!a),requestAnimationFrame(()=>{i(!a,s)})},l=`${t}-${n}`;return(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(Ze,{"data-testid":`TOGGLE-${l}`,children:(0,Y.jsx)(he,{tooltip:a?`Disable flag in ${n}`:`Enable flag in ${n}`,checked:r,environmentId:n,projectId:e,permission:ne,slotProps:{input:{"aria-label":n}},onClick:c,"data-testid":`permission-switch`,disabled:r!==a})},l)})},$e=f((0,Y.jsx)(`path`,{d:`M16 11h-1V3c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v8H8c-2.76 0-5 2.24-5 5v7h18v-7c0-2.76-2.24-5-5-5m3 10h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H9v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H5v-5c0-1.65 1.35-3 3-3h8c1.65 0 3 1.35 3 3z`}),`CleaningServices`),et=`flag-reminders:v1`,tt=50,nt=7,rt=({days:e=nt,maxReminders:t=tt}={})=>{let[n,r]=ue(et,{});return{shouldShowReminder:e=>{let t=n[e];return!t||G(new Date,new Date(t))},snoozeReminder:(n,i=e)=>{let a=y(new Date,i).getTime();r(e=>{let r={...e,[n]:a},i=Object.entries(r);if(i.length>t){i.sort((e,t)=>e[1]-t[1]);let e=i.slice(i.length-t);return Object.fromEntries(e)}return r})}}},it=a(p)(({theme:e})=>({fontSize:e.typography.body2.fontSize,fontWeight:e.typography.fontWeightBold,marginBottom:e.spacing(1.25)})),at=a(p)(({theme:e})=>({fontWeight:e.typography.fontWeightBold,marginTop:e.spacing(2.75),marginBottom:e.spacing(1.75)})),ot=a(`ul`)(({theme:e})=>({padding:0,margin:0,listStyle:`none`,display:`flex`,flexDirection:`column`,gap:e.spacing(1.5)})),Q=a(g)(({theme:e})=>({display:`flex`,alignItems:`center`,gap:e.spacing(1),color:`inherit`,fontSize:e.typography.body2.fontSize,fontWeight:e.typography.fontWeightBold,paddingLeft:e.spacing(1),textDecoration:`none`,"&:hover, &:focus":{textDecoration:`underline`}})),st=()=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(it,{children:`Why do I need an SDK?`}),(0,Y.jsx)(p,{variant:`body2`,children:`SDKs serve to bind your application to Unleash. The SDK can connect to Unleash via HTTP and retrieve feature flag configuration that is then cached in your application. Making sure none of your application data ever leaves your servers.`}),(0,Y.jsx)(at,{children:`Other resources`}),(0,Y.jsxs)(ot,{children:[(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(Q,{href:`https://docs.getunleash.io/sdks`,target:`_blank`,rel:`noreferrer`,children:[(0,Y.jsx)(se,{fontSize:`small`}),`SDK overview`]})}),(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(Q,{href:`https://github.com/Unleash/unleash-sdk-examples`,target:`_blank`,rel:`noreferrer`,children:[(0,Y.jsx)(R,{fontSize:`small`}),`SDK code examples repo`]})})]})]}),ct=a(u)(({theme:e})=>({boxShadow:`none`,border:`1px solid ${e.palette.divider}`,borderRadius:`${e.shape.borderRadiusLarge}px !important`,"&:before":{display:`none`},"&.Mui-disabled":{backgroundColor:e.palette.background.paper}})),lt=a(d)(({theme:e})=>({gap:e.spacing(1.5),fontWeight:e.typography.fontWeightBold,"& .MuiAccordionSummary-content":{alignItems:`center`,gap:e.spacing(1.5)},"&.Mui-disabled":{opacity:1,"& .MuiAccordionSummary-expandIconWrapper":{opacity:.5}}})),ut=a(N)(({theme:e})=>({display:`flex`,alignItems:`center`,justifyContent:`center`,backgroundColor:e.palette.success.main,color:`white`,border:`1px solid ${e.palette.success.main}`,"& svg":{width:e.spacing(2.5),height:e.spacing(2.5)}})),dt=a(m)({marginLeft:`auto`}),ft=a(l)(({theme:e})=>({borderTop:`1px solid ${e.palette.divider}`,padding:e.spacing(2),paddingLeft:e.spacing(6.5)})),$=({stepNumber:e,title:t,isExpanded:n,isCompleted:r,isDisabled:i,onExpand:a,summary:o,children:s})=>(0,Y.jsxs)(ct,{expanded:n,disabled:i,onChange:a,children:[(0,Y.jsxs)(lt,{expandIcon:(0,Y.jsx)(z,{}),children:[r?(0,Y.jsx)(ut,{round:!0,children:(0,Y.jsx)(F,{})}):(0,Y.jsx)(N,{color:n?`primary`:`neutral`,round:!0,children:e}),t,o&&(0,Y.jsx)(dt,{children:o})]}),(0,Y.jsx)(ft,{children:s})]}),pt=a(m)(({theme:e})=>({display:`flex`,alignItems:`center`,gap:e.spacing(1)})),mt=({sdk:e})=>{if(!e)return null;let t=Ce.find(t=>t.name===e.name)?.icon;return(0,Y.jsxs)(pt,{children:[t&&(0,Y.jsx)(we,{src:te(t),alt:``}),e.name]})},ht=(e,t)=>`${e}/api${Se.some(e=>e.name===t)?`/frontend`:``}/`,gt=a(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(3)})),_t=({projectId:e,sdk:t,apiKey:n,feature:r,isActive:i,onSdkConnected:a})=>{let{uiConfig:o}=O(),[s,c]=(0,X.useState)(r),[l,u]=(0,X.useState)(!1);(0,X.useEffect)(()=>{r&&c(r)},[r]);let{project:d}=T(e,{refreshInterval:1e3}),f=d.onboardingStatus.status===`sdk-connected`;if((0,X.useEffect)(()=>{f&&a()},[f,a]),(0,X.useEffect)(()=>{if(f||!i)return;let e=setTimeout(()=>u(!0),3e4);return()=>clearTimeout(e)},[f,i]),!t||!n)return null;let p=ht(o.unleashUrl,t.name),[m]=(be[t.name]||``).replace(`<YOUR_API_TOKEN>`,n).replace(`<YOUR_API_URL>`,p).replaceAll(`<YOUR_FLAG>`,s||`<YOUR_FLAG>`).split(`---
|
|
8
|
+
`);return(0,Y.jsxs)(gt,{children:[(0,Y.jsx)(`div`,{children:(0,Y.jsx)(_e,{components:{code:xe},children:m})}),(0,Y.jsx)(Oe,{sdkConnected:f,connectedTitle:`We received metrics from your application`,connectedBody:`Your SDK is connected and evaluating flags.`,waitingTitle:`Waiting for SDK data...`,waitingBody:`Run your app and evaluate your flag. This step completes on its own.`,showTroubleshooting:l,troubleshootingText:`Not seeing evaluations after ~30s? Make sure your app has started and that the client was initialized with the API key from step 2.`})]})},vt=a(m)({display:`flex`,justifyContent:`flex-end`}),yt=a(`div`)(({theme:e})=>({flex:1,padding:e.spacing(3),display:`flex`,flexDirection:`column`,gap:e.spacing(2)})),bt=a(`div`)(({theme:e})=>({padding:e.spacing(3),display:`flex`,flexDirection:`column`})),xt=({open:e,onClose:t,projectId:n,environments:r,feature:i})=>{let{trackEvent:a}=k(),[o,s]=(0,X.useState)(0),[c,l]=(0,X.useState)(0),[u,d]=(0,X.useState)(),[f,p]=(0,X.useState)(),m=[{title:`Select SDK`,content:(0,Y.jsx)(Te,{sdk:u,onSelect:e=>{d(e),s(1),l(1)}}),summary:(0,Y.jsx)(mt,{sdk:u})},{title:`Generate API key`,content:(0,Y.jsx)(Ee,{projectId:n,sdk:u,environments:r,onApiKeyChange:e=>{!e&&u&&s(1),p(e)},onNext:()=>{s(2),l(2)}}),summary:(0,Y.jsx)(De,{apiKey:f})},{title:`Configure the SDK`,content:(0,Y.jsx)(_t,{projectId:n,sdk:u,apiKey:f,feature:i,isActive:o>=2,onSdkConnected:()=>s(3)})}],g=o>=m.length&&u,_=e=>{let t=e+1;c===e&&t<m.length&&t<=o?l(t):c!==e&&l(e)};return e?(0,Y.jsx)(ye,{open:!0,onClose:t,title:`Connect SDK`,fullHeight:!0,aside:(0,Y.jsx)(bt,{children:(0,Y.jsx)(st,{})}),children:(0,Y.jsxs)(yt,{children:[m.map(({title:e,content:t,summary:n},r)=>{let i=r<o,a=r>o;return(0,Y.jsx)($,{stepNumber:r+1,title:e,isExpanded:c===r,isCompleted:i,isDisabled:a,onExpand:()=>_(r),summary:i&&n,children:t},e)}),(0,Y.jsx)(vt,{children:(0,Y.jsx)(h,{variant:`contained`,disabled:!g,onClick:()=>{g&&(a(`onboarding`,{props:{eventType:`onboarding-finished`,onboardedSdk:u.name}}),t())},children:`Finish setup`})})]})}):null},St=({isStale:e,isOpen:t,projectId:n,featureId:r,onClose:i})=>{let{setToastData:a,setToastApiError:o}=A(),{patchFeatureToggle:s}=W(),c=(0,Y.jsx)(p,{children:`Setting a flag to stale marks it for cleanup`}),l=(0,Y.jsx)(p,{children:`Setting a flag to active marks it as in active use`}),u=e?`active`:`stale`;return(0,Y.jsx)(q,{open:t,secondaryButtonText:`Cancel`,primaryButtonText:`Flip to ${u}`,title:`Set feature state to ${u}`,onClick:async t=>{t.stopPropagation();try{await s(n,r,[{op:`replace`,path:`/stale`,value:!e}]),i()}catch(e){o(j(e))}a(e?{type:`success`,text:`The flag is no longer marked as stale`}:{type:`success`,text:`The flag has been marked as stale`})},onClose:i,children:(0,Y.jsx)(v,{condition:e,show:l,elseShow:c})})};export{Qe as a,Ie as c,Pe as d,Ne as f,$e as i,Z as l,xt as n,Ye as o,je as p,rt as r,He as s,St as t,Fe as u};
|