unleash-server 7.3.0 → 7.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -36
- package/dist/lib/addons/datadog.js +1 -1
- package/dist/lib/addons/datadog.js.map +1 -1
- package/dist/lib/addons/datadog.test.js +11 -11
- package/dist/lib/addons/datadog.test.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md-events.d.ts.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md-events.js +11 -1
- package/dist/lib/addons/feature-event-formatter-md-events.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.test.js +8 -6
- package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -1
- package/dist/lib/addons/new-relic-definition.js +1 -1
- package/dist/lib/addons/new-relic-definition.js.map +1 -1
- package/dist/lib/addons/new-relic.js +4 -4
- package/dist/lib/addons/new-relic.js.map +1 -1
- package/dist/lib/addons/new-relic.test.js +4 -4
- package/dist/lib/addons/new-relic.test.js.map +1 -1
- package/dist/lib/addons/slack-app-definition.d.ts.map +1 -1
- package/dist/lib/addons/slack-app-definition.js +3 -1
- package/dist/lib/addons/slack-app-definition.js.map +1 -1
- package/dist/lib/addons/slack-app.test.js +1 -2
- package/dist/lib/addons/slack-app.test.js.map +1 -1
- package/dist/lib/addons/slack-definition.d.ts.map +1 -1
- package/dist/lib/addons/slack-definition.js +3 -1
- package/dist/lib/addons/slack-definition.js.map +1 -1
- package/dist/lib/addons/slack.js +1 -1
- package/dist/lib/addons/slack.js.map +1 -1
- package/dist/lib/addons/slack.test.js +1 -1
- 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 +3 -1
- package/dist/lib/addons/teams-definition.js.map +1 -1
- package/dist/lib/addons/teams.js +1 -1
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/teams.test.js +1 -1
- package/dist/lib/addons/teams.test.js.map +1 -1
- package/dist/lib/addons/webhook-definition.d.ts.map +1 -1
- package/dist/lib/addons/webhook-definition.js +4 -2
- package/dist/lib/addons/webhook-definition.js.map +1 -1
- package/dist/lib/addons/webhook.js +1 -1
- package/dist/lib/addons/webhook.js.map +1 -1
- package/dist/lib/addons/webhook.test.js +3 -3
- package/dist/lib/addons/webhook.test.js.map +1 -1
- package/dist/lib/app.js +2 -2
- package/dist/lib/app.js.map +1 -1
- package/dist/lib/app.test.js +6 -2
- package/dist/lib/app.test.js.map +1 -1
- package/dist/lib/create-config.test.js +9 -2
- package/dist/lib/create-config.test.js.map +1 -1
- package/dist/lib/db/access-store.d.ts +1 -2
- package/dist/lib/db/access-store.d.ts.map +1 -1
- package/dist/lib/db/access-store.js +2 -3
- package/dist/lib/db/access-store.js.map +1 -1
- package/dist/lib/db/access-store.test.js +5 -1
- package/dist/lib/db/access-store.test.js.map +1 -1
- package/dist/lib/db/api-token-store.d.ts +1 -2
- package/dist/lib/db/api-token-store.d.ts.map +1 -1
- package/dist/lib/db/api-token-store.js +1 -2
- package/dist/lib/db/api-token-store.js.map +1 -1
- package/dist/lib/db/favorite-features-store.d.ts +1 -3
- package/dist/lib/db/favorite-features-store.d.ts.map +1 -1
- package/dist/lib/db/favorite-features-store.js +1 -3
- package/dist/lib/db/favorite-features-store.js.map +1 -1
- package/dist/lib/db/favorite-projects-store.d.ts +2 -3
- package/dist/lib/db/favorite-projects-store.d.ts.map +1 -1
- package/dist/lib/db/favorite-projects-store.js +20 -4
- package/dist/lib/db/favorite-projects-store.js.map +1 -1
- package/dist/lib/db/feature-environment-store.d.ts +1 -2
- package/dist/lib/db/feature-environment-store.d.ts.map +1 -1
- package/dist/lib/db/feature-environment-store.js +1 -2
- package/dist/lib/db/feature-environment-store.js.map +1 -1
- package/dist/lib/db/feature-type-store.d.ts +1 -2
- package/dist/lib/db/feature-type-store.d.ts.map +1 -1
- package/dist/lib/db/feature-type-store.js +1 -2
- package/dist/lib/db/feature-type-store.js.map +1 -1
- package/dist/lib/db/project-stats-store.d.ts +1 -2
- package/dist/lib/db/project-stats-store.d.ts.map +1 -1
- package/dist/lib/db/project-stats-store.js +1 -2
- package/dist/lib/db/project-stats-store.js.map +1 -1
- package/dist/lib/db/public-signup-token-store.d.ts +1 -2
- package/dist/lib/db/public-signup-token-store.d.ts.map +1 -1
- package/dist/lib/db/public-signup-token-store.js +1 -2
- package/dist/lib/db/public-signup-token-store.js.map +1 -1
- package/dist/lib/db/reset-token-store.d.ts +2 -3
- package/dist/lib/db/reset-token-store.d.ts.map +1 -1
- package/dist/lib/db/reset-token-store.js +31 -6
- package/dist/lib/db/reset-token-store.js.map +1 -1
- package/dist/lib/db/user-feedback-store.d.ts +1 -1
- package/dist/lib/db/user-feedback-store.d.ts.map +1 -1
- package/dist/lib/db/user-feedback-store.js +1 -1
- package/dist/lib/db/user-feedback-store.js.map +1 -1
- package/dist/lib/db/user-splash-store.d.ts +1 -1
- package/dist/lib/db/user-splash-store.d.ts.map +1 -1
- package/dist/lib/db/user-splash-store.js +1 -1
- package/dist/lib/db/user-splash-store.js.map +1 -1
- package/dist/lib/default-custom-auth-deny-all.js +1 -1
- package/dist/lib/default-custom-auth-deny-all.js.map +1 -1
- package/dist/lib/domain/project-health/project-health.js +1 -1
- package/dist/lib/domain/project-health/project-health.js.map +1 -1
- package/dist/lib/error/unleash-error.test.js +4 -1
- package/dist/lib/error/unleash-error.test.js.map +1 -1
- package/dist/lib/events/index.d.ts +5 -1
- package/dist/lib/events/index.d.ts.map +1 -1
- package/dist/lib/events/index.js +8 -0
- package/dist/lib/events/index.js.map +1 -1
- package/dist/lib/features/access/access-read-model.d.ts.map +1 -1
- package/dist/lib/features/access/access-read-model.js +3 -2
- package/dist/lib/features/access/access-read-model.js.map +1 -1
- package/dist/lib/features/access/createAccessService.d.ts +5 -1
- package/dist/lib/features/access/createAccessService.d.ts.map +1 -1
- package/dist/lib/features/access/createAccessService.js +2 -2
- package/dist/lib/features/access/createAccessService.js.map +1 -1
- package/dist/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.test.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle-service.d.ts +1 -2
- package/dist/lib/features/client-feature-toggles/client-feature-toggle-service.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle-service.js +1 -2
- package/dist/lib/features/client-feature-toggles/client-feature-toggle-service.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js +18 -9
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js +54 -0
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.d.ts +1 -0
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.js +14 -0
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.test.js +1 -1
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.test.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/tests/client-feature-toggles.e2e.test.js +1 -1
- package/dist/lib/features/client-feature-toggles/tests/client-feature-toggles.e2e.test.js.map +1 -1
- package/dist/lib/features/context/context-field-store-type.d.ts +2 -0
- package/dist/lib/features/context/context-field-store-type.d.ts.map +1 -1
- package/dist/lib/features/context/context-field-store.d.ts +3 -3
- package/dist/lib/features/context/context-field-store.d.ts.map +1 -1
- package/dist/lib/features/context/context-field-store.js +12 -3
- package/dist/lib/features/context/context-field-store.js.map +1 -1
- package/dist/lib/features/context/context-service.d.ts +9 -3
- package/dist/lib/features/context/context-service.d.ts.map +1 -1
- package/dist/lib/features/context/context-service.js +33 -4
- package/dist/lib/features/context/context-service.js.map +1 -1
- package/dist/lib/features/context/context.d.ts +10 -5
- package/dist/lib/features/context/context.d.ts.map +1 -1
- package/dist/lib/features/context/context.js +65 -37
- package/dist/lib/features/context/context.js.map +1 -1
- package/dist/lib/features/context/fake-context-field-store.d.ts +1 -0
- package/dist/lib/features/context/fake-context-field-store.d.ts.map +1 -1
- package/dist/lib/features/context/fake-context-field-store.js +4 -1
- package/dist/lib/features/context/fake-context-field-store.js.map +1 -1
- package/dist/lib/features/dependent-features/fake-dependent-features-read-model.d.ts +1 -1
- package/dist/lib/features/dependent-features/fake-dependent-features-read-model.d.ts.map +1 -1
- package/dist/lib/features/dependent-features/fake-dependent-features-read-model.js +1 -1
- package/dist/lib/features/dependent-features/fake-dependent-features-read-model.js.map +1 -1
- package/dist/lib/features/environments/environments-controller.d.ts +1 -2
- package/dist/lib/features/environments/environments-controller.d.ts.map +1 -1
- package/dist/lib/features/environments/environments-controller.js +2 -3
- package/dist/lib/features/environments/environments-controller.js.map +1 -1
- package/dist/lib/features/events/event-created-by-migration.test.js +3 -3
- package/dist/lib/features/events/event-created-by-migration.test.js.map +1 -1
- package/dist/lib/features/events/event-search-controller.js +1 -1
- package/dist/lib/features/events/event-search-controller.js.map +1 -1
- package/dist/lib/features/events/event-service.test.js.map +1 -1
- package/dist/lib/features/events/event-store.d.ts.map +1 -1
- package/dist/lib/features/events/event-store.js +22 -9
- package/dist/lib/features/events/event-store.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js +1 -1
- package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-controller.d.ts +0 -1
- package/dist/lib/features/export-import-toggles/export-import-controller.d.ts.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-controller.js +5 -6
- package/dist/lib/features/export-import-toggles/export-import-controller.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-service.d.ts.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-service.js +10 -1
- package/dist/lib/features/export-import-toggles/export-import-service.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import.e2e.test.js +8 -3
- package/dist/lib/features/export-import-toggles/export-import.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-read-model.d.ts +1 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-read-model.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-read-model.js +1 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-read-model.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-store.js +1 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-store.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.d.ts +5 -4
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.js +9 -3
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model-type.d.ts +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model-type.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.d.ts +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.js +17 -18
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.test.js +17 -0
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.test.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.js +3 -2
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle.e2e.test.js +4 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-links/createFeatureLinkService.d.ts +4 -1
- package/dist/lib/features/feature-links/createFeatureLinkService.d.ts.map +1 -1
- package/dist/lib/features/feature-links/createFeatureLinkService.js +7 -3
- package/dist/lib/features/feature-links/createFeatureLinkService.js.map +1 -1
- package/dist/lib/features/feature-links/fake-feature-links-read-model.d.ts +1 -1
- package/dist/lib/features/feature-links/fake-feature-links-read-model.d.ts.map +1 -1
- package/dist/lib/features/feature-links/fake-feature-links-read-model.js +1 -1
- package/dist/lib/features/feature-links/fake-feature-links-read-model.js.map +1 -1
- package/dist/lib/features/feature-links/feature-link-service.d.ts +3 -0
- package/dist/lib/features/feature-links/feature-link-service.d.ts.map +1 -1
- package/dist/lib/features/feature-links/feature-link-service.js +6 -1
- package/dist/lib/features/feature-links/feature-link-service.js.map +1 -1
- package/dist/lib/features/feature-links/feature-link-service.test.js +20 -3
- package/dist/lib/features/feature-links/feature-link-service.test.js.map +1 -1
- package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js +10 -2
- package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js.map +1 -1
- package/dist/lib/features/feature-search/createFeatureSearchService.d.ts +3 -2
- package/dist/lib/features/feature-search/createFeatureSearchService.d.ts.map +1 -1
- package/dist/lib/features/feature-search/createFeatureSearchService.js +4 -4
- package/dist/lib/features/feature-search/createFeatureSearchService.js.map +1 -1
- package/dist/lib/features/feature-search/fake-feature-search-store.d.ts +1 -1
- package/dist/lib/features/feature-search/fake-feature-search-store.d.ts.map +1 -1
- package/dist/lib/features/feature-search/fake-feature-search-store.js +1 -1
- package/dist/lib/features/feature-search/fake-feature-search-store.js.map +1 -1
- package/dist/lib/features/feature-search/feature-search-controller.js +2 -2
- package/dist/lib/features/feature-search/feature-search-controller.js.map +1 -1
- package/dist/lib/features/feature-search/feature-search-service.d.ts +4 -3
- package/dist/lib/features/feature-search/feature-search-service.d.ts.map +1 -1
- package/dist/lib/features/feature-search/feature-search-service.js +12 -4
- package/dist/lib/features/feature-search/feature-search-service.js.map +1 -1
- package/dist/lib/features/feature-search/feature-search-store.d.ts +1 -3
- package/dist/lib/features/feature-search/feature-search-store.d.ts.map +1 -1
- package/dist/lib/features/feature-search/feature-search-store.js +1 -3
- package/dist/lib/features/feature-search/feature-search-store.js.map +1 -1
- package/dist/lib/features/feature-search/feature.search.e2e.test.js +1 -1
- package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.js +1 -1
- package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.js.map +1 -1
- package/dist/lib/features/feature-toggle/configuration-revision-service.d.ts +2 -1
- package/dist/lib/features/feature-toggle/configuration-revision-service.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/configuration-revision-service.js +16 -0
- package/dist/lib/features/feature-toggle/configuration-revision-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.d.ts +3 -4
- package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.js +2 -3
- package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.js.map +1 -1
- package/dist/lib/features/feature-toggle/createFeatureToggleService.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js +1 -12
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
- package/dist/lib/features/feature-toggle/fake-feature-collaborators-read-model.d.ts +1 -1
- package/dist/lib/features/feature-toggle/fake-feature-collaborators-read-model.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/fake-feature-collaborators-read-model.js +1 -1
- package/dist/lib/features/feature-toggle/fake-feature-collaborators-read-model.js.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.d.ts +5 -5
- 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 +6 -6
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-toggle-store.d.ts +8 -8
- package/dist/lib/features/feature-toggle/fakes/fake-feature-toggle-store.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-toggle-store.js +10 -12
- package/dist/lib/features/feature-toggle/fakes/fake-feature-toggle-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.d.ts +7 -1
- package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.js +7 -3
- package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.js.map +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 +4 -3
- 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 -10
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.js +10 -26
- package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-store.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-store.js +7 -3
- package/dist/lib/features/feature-toggle/feature-toggle-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts +1 -3
- 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 +1 -3
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.d.ts +0 -1
- package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.js +0 -1
- package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggle-store.e2e.test.js +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggle-store.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggle-strategies-store.e2e.test.js +2 -2
- package/dist/lib/features/feature-toggle/tests/feature-toggle-strategies-store.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggles.e2e.test.js +3 -3
- package/dist/lib/features/feature-toggle/tests/feature-toggles.e2e.test.js.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-controller.js +2 -2
- package/dist/lib/features/frontend-api/frontend-api-controller.js.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-repository.d.ts +1 -3
- package/dist/lib/features/frontend-api/frontend-api-repository.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-repository.js +6 -6
- package/dist/lib/features/frontend-api/frontend-api-repository.js.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 +3 -1
- package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.test.js +2 -2
- package/dist/lib/features/frontend-api/frontend-api.concurrency.e2e.test.js +1 -1
- package/dist/lib/features/frontend-api/frontend-api.concurrency.e2e.test.js.map +1 -1
- package/dist/lib/features/frontend-api/global-frontend-api-cache.d.ts +0 -2
- package/dist/lib/features/frontend-api/global-frontend-api-cache.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/global-frontend-api-cache.js +0 -7
- package/dist/lib/features/frontend-api/global-frontend-api-cache.js.map +1 -1
- package/dist/lib/features/frontend-api/proxy-repository.js +1 -1
- package/dist/lib/features/frontend-api/proxy-repository.js.map +1 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.js +5 -2
- package/dist/lib/features/instance-stats/createInstanceStatsService.js.map +1 -1
- package/dist/lib/features/instance-stats/getEdgeInstances.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.js +28 -19
- package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.js.map +1 -1
- package/dist/lib/features/instance-stats/getEdgeInstances.js +14 -2
- package/dist/lib/features/instance-stats/getEdgeInstances.js.map +1 -1
- package/dist/lib/features/instance-stats/getProductionChanges.e2e.test.js +2 -2
- package/dist/lib/features/instance-stats/getProductionChanges.e2e.test.js.map +1 -1
- package/dist/lib/features/instance-stats/getReadOnlyUsers.d.ts +5 -0
- package/dist/lib/features/instance-stats/getReadOnlyUsers.d.ts.map +1 -0
- package/dist/lib/features/instance-stats/getReadOnlyUsers.js +9 -0
- package/dist/lib/features/instance-stats/getReadOnlyUsers.js.map +1 -0
- package/dist/lib/features/instance-stats/instance-stats-service.d.ts +8 -5
- package/dist/lib/features/instance-stats/instance-stats-service.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/instance-stats-service.js +17 -4
- package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -1
- package/dist/lib/features/instance-stats/instance-stats-service.test.js +8 -6
- package/dist/lib/features/instance-stats/instance-stats-service.test.js.map +1 -1
- package/dist/lib/features/integration-events/integration-events-service.d.ts +1 -3
- package/dist/lib/features/integration-events/integration-events-service.d.ts.map +1 -1
- package/dist/lib/features/integration-events/integration-events-service.js +1 -3
- package/dist/lib/features/integration-events/integration-events-service.js.map +1 -1
- package/dist/lib/features/maintenance/maintenance-controller.d.ts +1 -1
- package/dist/lib/features/maintenance/maintenance-controller.d.ts.map +1 -1
- package/dist/lib/features/maintenance/maintenance-controller.js +1 -1
- package/dist/lib/features/maintenance/maintenance-controller.js.map +1 -1
- package/dist/lib/features/maintenance/maintenance-service.js +1 -1
- package/dist/lib/features/maintenance/maintenance-service.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics-service.e2e.test.js +10 -10
- package/dist/lib/features/metrics/client-metrics/client-metrics-service.e2e.test.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.d.ts +1 -3
- package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.d.ts.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js +2 -4
- package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics.d.ts +0 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics.js +0 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/fake-client-metrics-store-v2.d.ts +10 -10
- package/dist/lib/features/metrics/client-metrics/fake-client-metrics-store-v2.d.ts.map +1 -1
- package/dist/lib/features/metrics/client-metrics/fake-client-metrics-store-v2.js +13 -11
- package/dist/lib/features/metrics/client-metrics/fake-client-metrics-store-v2.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.d.ts +1 -1
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.d.ts.map +1 -1
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.js +3 -3
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.test.js +2 -2
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.test.js.map +1 -1
- package/dist/lib/features/metrics/custom/custom-metrics-controller.d.ts +2 -2
- package/dist/lib/features/metrics/custom/custom-metrics-controller.d.ts.map +1 -1
- package/dist/lib/features/metrics/custom/custom-metrics-controller.js +2 -2
- package/dist/lib/features/metrics/custom/custom-metrics-controller.js.map +1 -1
- package/dist/lib/features/metrics/impact/metrics-translator.js +3 -1
- package/dist/lib/features/metrics/impact/metrics-translator.js.map +1 -1
- package/dist/lib/features/metrics/instance/instance-service.d.ts.map +1 -1
- package/dist/lib/features/metrics/instance/instance-service.js +1 -0
- package/dist/lib/features/metrics/instance/instance-service.js.map +1 -1
- package/dist/lib/features/metrics/instance/instance-service.test.js +2 -2
- package/dist/lib/features/metrics/instance/instance-service.test.js.map +1 -1
- package/dist/lib/features/metrics/instance/metrics.d.ts +1 -0
- package/dist/lib/features/metrics/instance/metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/instance/metrics.js +22 -6
- package/dist/lib/features/metrics/instance/metrics.js.map +1 -1
- package/dist/lib/features/metrics/last-seen/fake-last-seen-read-model.d.ts +1 -1
- package/dist/lib/features/metrics/last-seen/fake-last-seen-read-model.d.ts.map +1 -1
- package/dist/lib/features/metrics/last-seen/fake-last-seen-read-model.js +1 -1
- package/dist/lib/features/metrics/last-seen/fake-last-seen-read-model.js.map +1 -1
- package/dist/lib/features/metrics/shared/schema.test.js +0 -1
- package/dist/lib/features/metrics/shared/schema.test.js.map +1 -1
- package/dist/lib/features/metrics/sizes/fake-largest-resources-read-model.d.ts +2 -2
- package/dist/lib/features/metrics/sizes/fake-largest-resources-read-model.d.ts.map +1 -1
- package/dist/lib/features/metrics/sizes/fake-largest-resources-read-model.js +2 -2
- package/dist/lib/features/metrics/sizes/fake-largest-resources-read-model.js.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.d.ts +1 -2
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.d.ts.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.js +1 -2
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.js.map +1 -1
- package/dist/lib/features/onboarding/fake-onboarding-store.d.ts +2 -2
- package/dist/lib/features/onboarding/fake-onboarding-store.d.ts.map +1 -1
- package/dist/lib/features/onboarding/fake-onboarding-store.js +2 -2
- package/dist/lib/features/onboarding/fake-onboarding-store.js.map +1 -1
- package/dist/lib/features/onboarding/onboarding-service.d.ts +1 -3
- package/dist/lib/features/onboarding/onboarding-service.d.ts.map +1 -1
- package/dist/lib/features/onboarding/onboarding-service.js +2 -4
- package/dist/lib/features/onboarding/onboarding-service.js.map +1 -1
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts +3 -3
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts.map +1 -1
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js +3 -3
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/constraint.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/constraint.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/repository/index.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/repository/index.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.d.ts +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/remote-address-strategy.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/remote-address-strategy.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/strategy.d.ts +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/strategy.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/strategy.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/strategy.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.d.ts +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.js.map +1 -1
- package/dist/lib/features/playground/offline-unleash-client.test.js +6 -2
- package/dist/lib/features/playground/offline-unleash-client.test.js.map +1 -1
- package/dist/lib/features/playground/playground-service.d.ts.map +1 -1
- package/dist/lib/features/playground/playground-service.js +3 -2
- package/dist/lib/features/playground/playground-service.js.map +1 -1
- package/dist/lib/features/playground/playground.test.js +1 -1
- package/dist/lib/features/playground/playground.test.js.map +1 -1
- package/dist/lib/features/private-project/fakePrivateProjectChecker.d.ts +3 -3
- package/dist/lib/features/private-project/fakePrivateProjectChecker.d.ts.map +1 -1
- package/dist/lib/features/private-project/fakePrivateProjectChecker.js +3 -3
- package/dist/lib/features/private-project/fakePrivateProjectChecker.js.map +1 -1
- package/dist/lib/features/private-project/privateProjectStore.d.ts +1 -2
- package/dist/lib/features/private-project/privateProjectStore.d.ts.map +1 -1
- package/dist/lib/features/private-project/privateProjectStore.js +2 -3
- package/dist/lib/features/private-project/privateProjectStore.js.map +1 -1
- package/dist/lib/features/project/fake-project-flag-creators-read-model.d.ts +1 -1
- package/dist/lib/features/project/fake-project-flag-creators-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/fake-project-flag-creators-read-model.js +1 -1
- package/dist/lib/features/project/fake-project-flag-creators-read-model.js.map +1 -1
- package/dist/lib/features/project/project-controller.d.ts +1 -1
- package/dist/lib/features/project/project-controller.d.ts.map +1 -1
- package/dist/lib/features/project/project-controller.js +3 -1
- package/dist/lib/features/project/project-controller.js.map +1 -1
- package/dist/lib/features/project/project-read-model.d.ts +1 -2
- package/dist/lib/features/project/project-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/project-read-model.js +1 -2
- package/dist/lib/features/project/project-read-model.js.map +1 -1
- package/dist/lib/features/project/project-service.e2e.test.js +10 -3
- package/dist/lib/features/project/project-service.e2e.test.js.map +1 -1
- package/dist/lib/features/project/project-store.d.ts +2 -3
- package/dist/lib/features/project/project-store.d.ts.map +1 -1
- package/dist/lib/features/project/project-store.js +43 -3
- package/dist/lib/features/project/project-store.js.map +1 -1
- package/dist/lib/features/project/projects.e2e.test.js +1 -1
- package/dist/lib/features/project/projects.e2e.test.js.map +1 -1
- package/dist/lib/features/project-environments/environment-service.d.ts +1 -0
- package/dist/lib/features/project-environments/environment-service.d.ts.map +1 -1
- package/dist/lib/features/project-environments/environment-service.js +8 -1
- package/dist/lib/features/project-environments/environment-service.js.map +1 -1
- package/dist/lib/features/project-environments/fake-environment-store.d.ts +3 -3
- package/dist/lib/features/project-environments/fake-environment-store.d.ts.map +1 -1
- package/dist/lib/features/project-environments/fake-environment-store.js +5 -5
- package/dist/lib/features/project-environments/fake-environment-store.js.map +1 -1
- package/dist/lib/features/project-insights/project-insights-service.e2e.test.js +1 -1
- package/dist/lib/features/project-insights/project-insights-service.e2e.test.js.map +1 -1
- package/dist/lib/features/project-status/projects-status.e2e.test.js +1 -1
- package/dist/lib/features/project-status/projects-status.e2e.test.js.map +1 -1
- package/dist/lib/features/scheduler/job-service.js +1 -1
- package/dist/lib/features/scheduler/job-service.js.map +1 -1
- package/dist/lib/features/scheduler/job-service.test.js +1 -1
- package/dist/lib/features/scheduler/job-service.test.js.map +1 -1
- package/dist/lib/features/scheduler/job-store.d.ts +0 -1
- package/dist/lib/features/scheduler/job-store.d.ts.map +1 -1
- package/dist/lib/features/scheduler/job-store.js +0 -1
- package/dist/lib/features/scheduler/job-store.js.map +1 -1
- package/dist/lib/features/segment/admin-segment.e2e.test.js +7 -25
- package/dist/lib/features/segment/admin-segment.e2e.test.js.map +1 -1
- package/dist/lib/features/segment/fake-segment-read-model.d.ts +2 -2
- package/dist/lib/features/segment/fake-segment-read-model.d.ts.map +1 -1
- package/dist/lib/features/segment/fake-segment-read-model.js +2 -2
- package/dist/lib/features/segment/fake-segment-read-model.js.map +1 -1
- package/dist/lib/features/segment/segment-controller.d.ts +1 -2
- package/dist/lib/features/segment/segment-controller.d.ts.map +1 -1
- package/dist/lib/features/segment/segment-controller.js +6 -4
- package/dist/lib/features/segment/segment-controller.js.map +1 -1
- package/dist/lib/features/segment/segment-service-interface.d.ts +2 -2
- package/dist/lib/features/segment/segment-service-interface.d.ts.map +1 -1
- package/dist/lib/features/segment/segment-service.d.ts +3 -3
- package/dist/lib/features/segment/segment-service.d.ts.map +1 -1
- package/dist/lib/features/segment/segment-service.js +31 -5
- package/dist/lib/features/segment/segment-service.js.map +1 -1
- package/dist/lib/features/tag-type/fake-tag-type-store.d.ts.map +1 -1
- package/dist/lib/features/tag-type/fake-tag-type-store.js +3 -1
- package/dist/lib/features/tag-type/fake-tag-type-store.js.map +1 -1
- package/dist/lib/features/tag-type/tag-type.d.ts +1 -2
- package/dist/lib/features/tag-type/tag-type.d.ts.map +1 -1
- package/dist/lib/features/tag-type/tag-type.js +1 -2
- package/dist/lib/features/tag-type/tag-type.js.map +1 -1
- package/dist/lib/features/traffic-data-usage/fake-traffic-data-usage-store.d.ts +4 -4
- package/dist/lib/features/traffic-data-usage/fake-traffic-data-usage-store.d.ts.map +1 -1
- package/dist/lib/features/traffic-data-usage/fake-traffic-data-usage-store.js +4 -4
- package/dist/lib/features/traffic-data-usage/fake-traffic-data-usage-store.js.map +1 -1
- package/dist/lib/features/traffic-data-usage/traffic-data-usage-store.d.ts +1 -2
- package/dist/lib/features/traffic-data-usage/traffic-data-usage-store.d.ts.map +1 -1
- package/dist/lib/features/traffic-data-usage/traffic-data-usage-store.js +3 -4
- package/dist/lib/features/traffic-data-usage/traffic-data-usage-store.js.map +1 -1
- package/dist/lib/features/ui-observability-controller/ui-observability-controller.js +1 -1
- package/dist/lib/features/ui-observability-controller/ui-observability-controller.js.map +1 -1
- package/dist/lib/features/unique-connection/unique-connection-service.d.ts +0 -1
- package/dist/lib/features/unique-connection/unique-connection-service.d.ts.map +1 -1
- package/dist/lib/features/unique-connection/unique-connection-service.js +0 -1
- package/dist/lib/features/unique-connection/unique-connection-service.js.map +1 -1
- package/dist/lib/features/user-subscriptions/fake-user-subscriptions-read-model.d.ts +2 -2
- package/dist/lib/features/user-subscriptions/fake-user-subscriptions-read-model.d.ts.map +1 -1
- package/dist/lib/features/user-subscriptions/fake-user-subscriptions-read-model.js +2 -2
- package/dist/lib/features/user-subscriptions/fake-user-subscriptions-read-model.js.map +1 -1
- package/dist/lib/features/user-subscriptions/user-subscriptions-read-model.test.js +1 -1
- package/dist/lib/features/user-subscriptions/user-subscriptions-read-model.test.js.map +1 -1
- package/dist/lib/features/user-subscriptions/user-subscriptions-service.d.ts +1 -2
- package/dist/lib/features/user-subscriptions/user-subscriptions-service.d.ts.map +1 -1
- package/dist/lib/features/user-subscriptions/user-subscriptions-service.js +1 -2
- package/dist/lib/features/user-subscriptions/user-subscriptions-service.js.map +1 -1
- package/dist/lib/features/users/createUserService.d.ts.map +1 -1
- package/dist/lib/features/users/createUserService.js +3 -1
- package/dist/lib/features/users/createUserService.js.map +1 -1
- package/dist/lib/features/users/user-store.d.ts +1 -2
- package/dist/lib/features/users/user-store.d.ts.map +1 -1
- package/dist/lib/features/users/user-store.js +3 -2
- package/dist/lib/features/users/user-store.js.map +1 -1
- package/dist/lib/features/users/user-updates-read-model.d.ts +2 -2
- package/dist/lib/features/users/user-updates-read-model.d.ts.map +1 -1
- package/dist/lib/features/users/user-updates-read-model.js +2 -2
- package/dist/lib/features/users/user-updates-read-model.js.map +1 -1
- package/dist/lib/logger.test.js +2 -2
- package/dist/lib/logger.test.js.map +1 -1
- package/dist/lib/metric-events.d.ts +15 -2
- package/dist/lib/metric-events.d.ts.map +1 -1
- package/dist/lib/metric-events.js +2 -1
- package/dist/lib/metric-events.js.map +1 -1
- package/dist/lib/metrics.d.ts.map +1 -1
- package/dist/lib/metrics.js +65 -4
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +13 -8
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/middleware/api-token-middleware.js +1 -1
- package/dist/lib/middleware/api-token-middleware.js.map +1 -1
- package/dist/lib/middleware/api-token-middleware.test.js +4 -1
- package/dist/lib/middleware/api-token-middleware.test.js.map +1 -1
- package/dist/lib/middleware/audit-middleware.js +1 -1
- package/dist/lib/middleware/audit-middleware.js.map +1 -1
- package/dist/lib/middleware/catch-all-error-handler.js +1 -1
- package/dist/lib/middleware/catch-all-error-handler.js.map +1 -1
- package/dist/lib/middleware/conditional-middleware.d.ts.map +1 -1
- package/dist/lib/middleware/conditional-middleware.js +2 -5
- package/dist/lib/middleware/conditional-middleware.js.map +1 -1
- package/dist/lib/middleware/content_type_checker.test.js +3 -6
- package/dist/lib/middleware/content_type_checker.test.js.map +1 -1
- package/dist/lib/middleware/cors-origin-middleware.js +1 -1
- package/dist/lib/middleware/cors-origin-middleware.js.map +1 -1
- package/dist/lib/middleware/demo-authentication.js +3 -3
- package/dist/lib/middleware/demo-authentication.js.map +1 -1
- package/dist/lib/middleware/no-authentication.js +3 -3
- package/dist/lib/middleware/no-authentication.js.map +1 -1
- package/dist/lib/middleware/oss-authentication.test.js +2 -2
- package/dist/lib/middleware/oss-authentication.test.js.map +1 -1
- package/dist/lib/middleware/pat-middleware.js +1 -1
- package/dist/lib/middleware/pat-middleware.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.js +1 -1
- package/dist/lib/middleware/rbac-middleware.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.test.js +7 -3
- package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
- package/dist/lib/middleware/response-time-metrics.js +1 -1
- package/dist/lib/middleware/response-time-metrics.js.map +1 -1
- package/dist/lib/middleware/response-time-metrics.test.js +4 -1
- package/dist/lib/middleware/response-time-metrics.test.js.map +1 -1
- package/dist/lib/middleware/secure-headers.d.ts.map +1 -1
- package/dist/lib/middleware/secure-headers.js +3 -1
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/openapi/meta-schema-rules.test.js +1 -1
- package/dist/lib/openapi/meta-schema-rules.test.js.map +1 -1
- package/dist/lib/openapi/spec/addon-create-update-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/addon-create-update-schema.js +6 -6
- package/dist/lib/openapi/spec/addon-create-update-schema.js.map +1 -1
- package/dist/lib/openapi/spec/addon-parameter-schema.js +1 -1
- package/dist/lib/openapi/spec/addon-parameter-schema.js.map +1 -1
- package/dist/lib/openapi/spec/addon-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/addon-schema.js +1 -1
- package/dist/lib/openapi/spec/addon-schema.js.map +1 -1
- package/dist/lib/openapi/spec/addon-type-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/addon-type-schema.js +2 -2
- package/dist/lib/openapi/spec/addon-type-schema.js.map +1 -1
- package/dist/lib/openapi/spec/addons-schema.d.ts +5 -5
- package/dist/lib/openapi/spec/addons-schema.js +2 -2
- package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
- package/dist/lib/openapi/spec/admin-segment-schema.d.ts +6 -4
- package/dist/lib/openapi/spec/admin-segment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/admin-segment-schema.js +1 -1
- package/dist/lib/openapi/spec/admin-segment-schema.js.map +1 -1
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +14 -14
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +28 -28
- package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +61 -59
- package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/api-token-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/api-token-schema.js +1 -1
- package/dist/lib/openapi/spec/api-token-schema.js.map +1 -1
- package/dist/lib/openapi/spec/api-token-schema.test.js +5 -1
- package/dist/lib/openapi/spec/api-token-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/api-tokens-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/api-tokens-schema.js +1 -1
- package/dist/lib/openapi/spec/api-tokens-schema.js.map +1 -1
- package/dist/lib/openapi/spec/application-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/application-schema.js +1 -1
- package/dist/lib/openapi/spec/application-schema.js.map +1 -1
- package/dist/lib/openapi/spec/applications-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/bulk-metrics-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/bulk-registration-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/bulk-registration-schema.js +2 -2
- package/dist/lib/openapi/spec/bulk-registration-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-feature-schema.d.ts +20 -18
- package/dist/lib/openapi/spec/client-feature-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/client-feature-schema.js +3 -3
- package/dist/lib/openapi/spec/client-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-features-delta-schema.d.ts +37 -35
- package/dist/lib/openapi/spec/client-features-delta-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/client-features-schema.d.ts +38 -36
- package/dist/lib/openapi/spec/client-features-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/client-features-schema.js +1 -1
- package/dist/lib/openapi/spec/client-features-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.js +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-segment-schema.d.ts +5 -3
- package/dist/lib/openapi/spec/client-segment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/clone-feature-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/clone-feature-schema.js +1 -1
- package/dist/lib/openapi/spec/clone-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/constraint-schema.d.ts +7 -5
- package/dist/lib/openapi/spec/constraint-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/constraint-schema.js +2 -2
- package/dist/lib/openapi/spec/constraint-schema.js.map +1 -1
- package/dist/lib/openapi/spec/constraint-schema.test.js +2 -0
- package/dist/lib/openapi/spec/constraint-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/context-field-schema.d.ts +7 -2
- package/dist/lib/openapi/spec/context-field-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/context-field-schema.js +7 -2
- package/dist/lib/openapi/spec/context-field-schema.js.map +1 -1
- package/dist/lib/openapi/spec/context-fields-schema.d.ts +7 -2
- package/dist/lib/openapi/spec/context-fields-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/context-query-parameters.d.ts +12 -0
- package/dist/lib/openapi/spec/context-query-parameters.d.ts.map +1 -0
- package/dist/lib/openapi/spec/context-query-parameters.js +12 -0
- package/dist/lib/openapi/spec/context-query-parameters.js.map +1 -0
- package/dist/lib/openapi/spec/create-api-token-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/create-api-token-schema.js +1 -1
- package/dist/lib/openapi/spec/create-api-token-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-application-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/create-application-schema.js +1 -1
- package/dist/lib/openapi/spec/create-application-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-context-field-schema.d.ts +6 -1
- package/dist/lib/openapi/spec/create-context-field-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/create-feature-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/create-feature-schema.js +1 -1
- package/dist/lib/openapi/spec/create-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts +9 -7
- package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/create-feature-strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/create-feature-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-pat-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/create-pat-schema.js +1 -1
- package/dist/lib/openapi/spec/create-pat-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-strategy-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/create-strategy-schema.js +2 -2
- package/dist/lib/openapi/spec/create-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-strategy-variant-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/create-strategy-variant-schema.js +3 -3
- package/dist/lib/openapi/spec/create-strategy-variant-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-tag-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/create-tag-schema.js +1 -1
- package/dist/lib/openapi/spec/create-tag-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-user-response-schema.d.ts +8 -2
- package/dist/lib/openapi/spec/create-user-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/create-user-response-schema.js +9 -2
- package/dist/lib/openapi/spec/create-user-response-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-user-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/create-user-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/create-user-schema.js +8 -1
- package/dist/lib/openapi/spec/create-user-schema.js.map +1 -1
- package/dist/lib/openapi/spec/edge-token-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/edge-token-schema.js +3 -3
- package/dist/lib/openapi/spec/edge-token-schema.js.map +1 -1
- package/dist/lib/openapi/spec/environment-project-schema.d.ts +15 -13
- package/dist/lib/openapi/spec/environment-project-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/environment-project-schema.js +1 -1
- package/dist/lib/openapi/spec/environment-project-schema.js.map +1 -1
- package/dist/lib/openapi/spec/environment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/environment-schema.js +1 -1
- package/dist/lib/openapi/spec/environment-schema.js.map +1 -1
- package/dist/lib/openapi/spec/environments-project-schema.d.ts +26 -24
- package/dist/lib/openapi/spec/environments-project-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/environments-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/event-schema.d.ts +7 -7
- package/dist/lib/openapi/spec/event-schema.js +1 -1
- package/dist/lib/openapi/spec/event-schema.js.map +1 -1
- package/dist/lib/openapi/spec/event-search-response-schema.d.ts +9 -9
- package/dist/lib/openapi/spec/events-schema.d.ts +9 -9
- package/dist/lib/openapi/spec/export-query-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/export-query-schema.js +1 -1
- package/dist/lib/openapi/spec/export-query-schema.js.map +1 -1
- package/dist/lib/openapi/spec/export-result-schema.d.ts +1991 -529
- package/dist/lib/openapi/spec/export-result-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/export-result-schema.js +6 -0
- package/dist/lib/openapi/spec/export-result-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts +372 -107
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-environment-schema.js +12 -0
- package/dist/lib/openapi/spec/feature-environment-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-events-schema.d.ts +9 -9
- package/dist/lib/openapi/spec/feature-schema.d.ts +950 -215
- package/dist/lib/openapi/spec/feature-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-schema.js +17 -0
- package/dist/lib/openapi/spec/feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +729 -213
- package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +745 -229
- package/dist/lib/openapi/spec/feature-search-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +9 -7
- package/dist/lib/openapi/spec/feature-strategy-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-tag-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/feature-tag-schema.js +2 -2
- package/dist/lib/openapi/spec/feature-tag-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-type-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/feature-type-schema.js +2 -2
- package/dist/lib/openapi/spec/feature-type-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-types-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/feature-types-schema.js +1 -1
- package/dist/lib/openapi/spec/feature-types-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-variants-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/group-schema.d.ts +14 -2
- package/dist/lib/openapi/spec/group-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/group-user-model-schema.d.ts +7 -1
- package/dist/lib/openapi/spec/group-user-model-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/groups-schema.d.ts +29 -5
- package/dist/lib/openapi/spec/groups-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/groups-schema.js +1 -1
- package/dist/lib/openapi/spec/groups-schema.js.map +1 -1
- package/dist/lib/openapi/spec/health-overview-schema.d.ts +1784 -535
- package/dist/lib/openapi/spec/health-overview-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/health-overview-schema.js +3 -3
- package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
- package/dist/lib/openapi/spec/health-report-schema.d.ts +1783 -534
- package/dist/lib/openapi/spec/health-report-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/import-toggles-schema.d.ts +66 -27262
- package/dist/lib/openapi/spec/import-toggles-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/import-toggles-schema.js +40 -31
- package/dist/lib/openapi/spec/import-toggles-schema.js.map +1 -1
- package/dist/lib/openapi/spec/import-toggles-validate-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/import-toggles-validate-schema.js +1 -1
- package/dist/lib/openapi/spec/import-toggles-validate-schema.js.map +1 -1
- package/dist/lib/openapi/spec/index.d.ts +3 -0
- package/dist/lib/openapi/spec/index.d.ts.map +1 -1
- package/dist/lib/openapi/spec/index.js +3 -0
- package/dist/lib/openapi/spec/index.js.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +6 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js +6 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
- package/dist/lib/openapi/spec/integration-event-schema.d.ts +12 -12
- package/dist/lib/openapi/spec/integration-events-schema.d.ts +24 -24
- package/dist/lib/openapi/spec/me-schema.d.ts +8 -2
- package/dist/lib/openapi/spec/me-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/metric-query-schema.d.ts +44 -0
- package/dist/lib/openapi/spec/metric-query-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/metric-query-schema.js +42 -0
- package/dist/lib/openapi/spec/metric-query-schema.js.map +1 -0
- package/dist/lib/openapi/spec/pat-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/pat-schema.js +1 -1
- package/dist/lib/openapi/spec/pat-schema.js.map +1 -1
- package/dist/lib/openapi/spec/pats-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/pats-schema.js +1 -1
- package/dist/lib/openapi/spec/pats-schema.js.map +1 -1
- package/dist/lib/openapi/spec/permission-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/permission-schema.js +1 -1
- package/dist/lib/openapi/spec/permission-schema.js.map +1 -1
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js +1 -1
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js.map +1 -1
- package/dist/lib/openapi/spec/personal-dashboard-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/personal-dashboard-schema.js +1 -1
- package/dist/lib/openapi/spec/personal-dashboard-schema.js.map +1 -1
- package/dist/lib/openapi/spec/playground-constraint-schema.d.ts +5 -3
- package/dist/lib/openapi/spec/playground-constraint-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/playground-feature-schema.d.ts +17 -15
- package/dist/lib/openapi/spec/playground-feature-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/playground-response-schema.d.ts +33 -31
- package/dist/lib/openapi/spec/playground-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/playground-response-schema.test.js +1 -1
- package/dist/lib/openapi/spec/playground-response-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/playground-segment-schema.d.ts +5 -3
- package/dist/lib/openapi/spec/playground-segment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +10 -8
- package/dist/lib/openapi/spec/playground-strategy-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts +947 -214
- package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/project-environment-schema.d.ts +9 -9
- package/dist/lib/openapi/spec/project-feature-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/project-features-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/project-insights-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/project-insights-schema.js +2 -2
- package/dist/lib/openapi/spec/project-insights-schema.js.map +1 -1
- package/dist/lib/openapi/spec/project-overview-schema.d.ts +1781 -532
- package/dist/lib/openapi/spec/project-overview-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/project-overview-schema.js +2 -2
- package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
- package/dist/lib/openapi/spec/project-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/project-schema.js +2 -2
- package/dist/lib/openapi/spec/project-schema.js.map +1 -1
- package/dist/lib/openapi/spec/projects-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/public-signup-token-create-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/public-signup-token-create-schema.js +1 -1
- package/dist/lib/openapi/spec/public-signup-token-create-schema.js.map +1 -1
- package/dist/lib/openapi/spec/public-signup-token-schema.d.ts +8 -2
- package/dist/lib/openapi/spec/public-signup-token-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/public-signup-token-schema.js +1 -1
- package/dist/lib/openapi/spec/public-signup-token-schema.js.map +1 -1
- package/dist/lib/openapi/spec/public-signup-tokens-schema.d.ts +15 -3
- package/dist/lib/openapi/spec/public-signup-tokens-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/push-variants-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +45 -25
- package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/release-plan-milestone-schema.js +12 -1
- package/dist/lib/openapi/spec/release-plan-milestone-schema.js.map +1 -1
- package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +15 -13
- package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/release-plan-schema.d.ts +283 -48
- package/dist/lib/openapi/spec/release-plan-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/release-plan-schema.js +13 -0
- package/dist/lib/openapi/spec/release-plan-schema.js.map +1 -1
- package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +68 -48
- package/dist/lib/openapi/spec/release-plan-template-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/resource-limits-schema.d.ts +6 -0
- package/dist/lib/openapi/spec/resource-limits-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/resource-limits-schema.js +6 -0
- package/dist/lib/openapi/spec/resource-limits-schema.js.map +1 -1
- package/dist/lib/openapi/spec/safeguard-schema.d.ts +149 -0
- package/dist/lib/openapi/spec/safeguard-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/safeguard-schema.js +59 -0
- package/dist/lib/openapi/spec/safeguard-schema.js.map +1 -0
- package/dist/lib/openapi/spec/safeguard-trigger-condition-schema.d.ts +24 -0
- package/dist/lib/openapi/spec/safeguard-trigger-condition-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/safeguard-trigger-condition-schema.js +22 -0
- package/dist/lib/openapi/spec/safeguard-trigger-condition-schema.js.map +1 -0
- package/dist/lib/openapi/spec/search-features-schema.d.ts +1578 -548
- package/dist/lib/openapi/spec/search-features-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/segment-schema.d.ts +5 -3
- package/dist/lib/openapi/spec/segment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/segments-schema.d.ts +9 -7
- package/dist/lib/openapi/spec/segments-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/segments-schema.js +1 -1
- package/dist/lib/openapi/spec/segments-schema.js.map +1 -1
- package/dist/lib/openapi/spec/strategies-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/strategy-variant-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/tag-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/tag-schema.js +2 -2
- package/dist/lib/openapi/spec/tag-schema.js.map +1 -1
- package/dist/lib/openapi/spec/tag-with-version-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/tags-bulk-add-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/tags-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/ui-config-schema.d.ts +6 -0
- package/dist/lib/openapi/spec/ui-config-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/update-context-field-schema.d.ts +6 -1
- package/dist/lib/openapi/spec/update-context-field-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/update-context-field-schema.js +6 -1
- package/dist/lib/openapi/spec/update-context-field-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-feature-schema.d.ts +6 -4
- package/dist/lib/openapi/spec/update-feature-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/update-feature-schema.js +1 -1
- package/dist/lib/openapi/spec/update-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts +6 -4
- package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/update-feature-strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/update-feature-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-feature-type-lifetime-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/update-feature-type-lifetime-schema.js +1 -1
- package/dist/lib/openapi/spec/update-feature-type-lifetime-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/update-strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/update-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-tags-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/update-user-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/update-user-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/update-user-schema.js +8 -1
- package/dist/lib/openapi/spec/update-user-schema.js.map +1 -1
- package/dist/lib/openapi/spec/upsert-segment-schema.d.ts +5 -3
- package/dist/lib/openapi/spec/upsert-segment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/upsert-segment-schema.test.js +6 -2
- package/dist/lib/openapi/spec/upsert-segment-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/user-access-overview-schema.d.ts +7 -1
- package/dist/lib/openapi/spec/user-access-overview-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/user-schema.d.ts +7 -1
- package/dist/lib/openapi/spec/user-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/user-schema.js +7 -1
- package/dist/lib/openapi/spec/user-schema.js.map +1 -1
- package/dist/lib/openapi/spec/users-groups-base-schema.d.ts +28 -4
- package/dist/lib/openapi/spec/users-groups-base-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/users-schema.d.ts +8 -2
- package/dist/lib/openapi/spec/users-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/users-schema.js +1 -1
- package/dist/lib/openapi/spec/users-schema.js.map +1 -1
- package/dist/lib/openapi/spec/users-search-schema.d.ts +7 -1
- package/dist/lib/openapi/spec/users-search-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/validated-edge-tokens-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/variant-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/variant-schema.js +3 -3
- package/dist/lib/openapi/spec/variant-schema.js.map +1 -1
- package/dist/lib/openapi/spec/variants-schema.d.ts +3 -3
- package/dist/lib/openapi/util/api-operation.d.ts +1 -3
- package/dist/lib/openapi/util/api-operation.d.ts.map +1 -1
- package/dist/lib/openapi/util/openapi-tags.d.ts +40 -40
- package/dist/lib/openapi/util/openapi-tags.js +20 -20
- package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
- package/dist/lib/openapi/validate.d.ts +2 -2
- package/dist/lib/openapi/validate.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/addon.d.ts +1 -2
- package/dist/lib/routes/admin-api/addon.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/addon.js +1 -2
- package/dist/lib/routes/admin-api/addon.js.map +1 -1
- package/dist/lib/routes/admin-api/api-token.js +2 -2
- package/dist/lib/routes/admin-api/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/event.d.ts +1 -1
- package/dist/lib/routes/admin-api/event.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/event.js +1 -1
- package/dist/lib/routes/admin-api/event.js.map +1 -1
- package/dist/lib/routes/admin-api/events.test.js +1 -1
- package/dist/lib/routes/admin-api/events.test.js.map +1 -1
- package/dist/lib/routes/admin-api/feature-type.d.ts +1 -2
- package/dist/lib/routes/admin-api/feature-type.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/feature-type.js +2 -3
- package/dist/lib/routes/admin-api/feature-type.js.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.d.ts +1 -3
- package/dist/lib/routes/admin-api/instance-admin.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.js +4 -4
- package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/metrics.d.ts +2 -3
- package/dist/lib/routes/admin-api/metrics.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/metrics.js +2 -3
- package/dist/lib/routes/admin-api/metrics.js.map +1 -1
- package/dist/lib/routes/admin-api/project/api-token.d.ts +0 -1
- package/dist/lib/routes/admin-api/project/api-token.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/project/api-token.js +3 -4
- package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/project/health-report.js +1 -1
- package/dist/lib/routes/admin-api/project/health-report.js.map +1 -1
- package/dist/lib/routes/admin-api/public-signup.d.ts +2 -4
- package/dist/lib/routes/admin-api/public-signup.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/public-signup.js +2 -4
- package/dist/lib/routes/admin-api/public-signup.js.map +1 -1
- package/dist/lib/routes/admin-api/search/index.d.ts +1 -1
- package/dist/lib/routes/admin-api/search/index.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/search/index.js +1 -1
- package/dist/lib/routes/admin-api/search/index.js.map +1 -1
- package/dist/lib/routes/admin-api/strategy.d.ts +1 -2
- package/dist/lib/routes/admin-api/strategy.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/strategy.js +7 -8
- package/dist/lib/routes/admin-api/strategy.js.map +1 -1
- package/dist/lib/routes/admin-api/tag.d.ts +2 -4
- package/dist/lib/routes/admin-api/tag.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/tag.js +4 -6
- package/dist/lib/routes/admin-api/tag.js.map +1 -1
- package/dist/lib/routes/admin-api/telemetry.d.ts +1 -1
- package/dist/lib/routes/admin-api/telemetry.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/telemetry.js +1 -1
- package/dist/lib/routes/admin-api/telemetry.js.map +1 -1
- package/dist/lib/routes/admin-api/user/pat.js +3 -3
- package/dist/lib/routes/admin-api/user/pat.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.test.js +2 -2
- package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.d.ts +3 -3
- package/dist/lib/routes/admin-api/user-admin.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.js +4 -4
- package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/user-feedback.d.ts +0 -1
- package/dist/lib/routes/admin-api/user-feedback.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user-feedback.js +2 -3
- package/dist/lib/routes/admin-api/user-feedback.js.map +1 -1
- package/dist/lib/routes/admin-api/user-splash.d.ts +0 -1
- package/dist/lib/routes/admin-api/user-splash.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user-splash.js +2 -2
- package/dist/lib/routes/admin-api/user-splash.js.map +1 -1
- package/dist/lib/routes/auth/reset-password-controller.d.ts +0 -1
- package/dist/lib/routes/auth/reset-password-controller.d.ts.map +1 -1
- package/dist/lib/routes/auth/reset-password-controller.js +0 -1
- package/dist/lib/routes/auth/reset-password-controller.js.map +1 -1
- package/dist/lib/routes/auth/simple-password-provider.d.ts +0 -1
- package/dist/lib/routes/auth/simple-password-provider.d.ts.map +1 -1
- package/dist/lib/routes/auth/simple-password-provider.js +0 -1
- package/dist/lib/routes/auth/simple-password-provider.js.map +1 -1
- package/dist/lib/routes/auth/simple-password-provider.test.js +2 -2
- package/dist/lib/routes/auth/simple-password-provider.test.js.map +1 -1
- package/dist/lib/routes/backstage.js +3 -3
- package/dist/lib/routes/backstage.js.map +1 -1
- package/dist/lib/routes/health-check.d.ts +0 -2
- package/dist/lib/routes/health-check.d.ts.map +1 -1
- package/dist/lib/routes/health-check.js +0 -2
- package/dist/lib/routes/health-check.js.map +1 -1
- package/dist/lib/routes/logout.test.js +5 -5
- package/dist/lib/routes/logout.test.js.map +1 -1
- package/dist/lib/routes/public-invite.d.ts +0 -1
- package/dist/lib/routes/public-invite.d.ts.map +1 -1
- package/dist/lib/routes/public-invite.js +0 -1
- package/dist/lib/routes/public-invite.js.map +1 -1
- package/dist/lib/schema/constraint-value-types.d.ts +1 -1
- package/dist/lib/schema/constraint-value-types.d.ts.map +1 -1
- package/dist/lib/server-impl.d.ts +5 -6
- package/dist/lib/server-impl.d.ts.map +1 -1
- package/dist/lib/server-impl.js +13 -4
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/access-service.d.ts +2 -1
- package/dist/lib/services/access-service.d.ts.map +1 -1
- package/dist/lib/services/access-service.js +20 -1
- package/dist/lib/services/access-service.js.map +1 -1
- package/dist/lib/services/access-service.test.js +22 -6
- package/dist/lib/services/access-service.test.js.map +1 -1
- package/dist/lib/services/account-service.d.ts.map +1 -1
- package/dist/lib/services/account-service.js +1 -0
- package/dist/lib/services/account-service.js.map +1 -1
- package/dist/lib/services/addon-service.d.ts +2 -2
- package/dist/lib/services/addon-service.d.ts.map +1 -1
- package/dist/lib/services/addon-service.js +22 -21
- package/dist/lib/services/addon-service.js.map +1 -1
- package/dist/lib/services/addon-service.test.js +1 -1
- package/dist/lib/services/addon-service.test.js.map +1 -1
- package/dist/lib/services/api-token-service.d.ts.map +1 -1
- package/dist/lib/services/api-token-service.js +3 -1
- package/dist/lib/services/api-token-service.js.map +1 -1
- package/dist/lib/services/api-token-service.limit.test.js.map +1 -1
- package/dist/lib/services/api-token-service.test.js +2 -2
- package/dist/lib/services/api-token-service.test.js.map +1 -1
- package/dist/lib/services/client-spec-service.d.ts +1 -2
- package/dist/lib/services/client-spec-service.d.ts.map +1 -1
- package/dist/lib/services/client-spec-service.js +1 -2
- package/dist/lib/services/client-spec-service.js.map +1 -1
- package/dist/lib/services/context-schema.d.ts.map +1 -1
- package/dist/lib/services/context-schema.js +1 -0
- package/dist/lib/services/context-schema.js.map +1 -1
- package/dist/lib/services/favorites-service.d.ts +1 -3
- package/dist/lib/services/favorites-service.d.ts.map +1 -1
- package/dist/lib/services/favorites-service.js +2 -4
- package/dist/lib/services/favorites-service.js.map +1 -1
- package/dist/lib/services/feature-tag-service.d.ts.map +1 -1
- package/dist/lib/services/feature-tag-service.js +1 -0
- package/dist/lib/services/feature-tag-service.js.map +1 -1
- package/dist/lib/services/group-service.d.ts +2 -2
- package/dist/lib/services/group-service.d.ts.map +1 -1
- package/dist/lib/services/group-service.js +3 -2
- package/dist/lib/services/group-service.js.map +1 -1
- package/dist/lib/services/health-service.d.ts +1 -3
- package/dist/lib/services/health-service.d.ts.map +1 -1
- package/dist/lib/services/health-service.js +1 -2
- package/dist/lib/services/health-service.js.map +1 -1
- package/dist/lib/services/index.d.ts +1 -1
- package/dist/lib/services/index.d.ts.map +1 -1
- package/dist/lib/services/index.js +5 -4
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/openapi-service.js +7 -5
- package/dist/lib/services/openapi-service.js.map +1 -1
- package/dist/lib/services/public-signup-token-service.d.ts +0 -1
- package/dist/lib/services/public-signup-token-service.d.ts.map +1 -1
- package/dist/lib/services/public-signup-token-service.js +0 -1
- package/dist/lib/services/public-signup-token-service.js.map +1 -1
- package/dist/lib/services/reset-token-service.js +3 -3
- package/dist/lib/services/reset-token-service.js.map +1 -1
- package/dist/lib/services/strategy-service.d.ts +1 -2
- package/dist/lib/services/strategy-service.d.ts.map +1 -1
- package/dist/lib/services/strategy-service.js +2 -3
- package/dist/lib/services/strategy-service.js.map +1 -1
- package/dist/lib/services/user-service.d.ts +3 -0
- package/dist/lib/services/user-service.d.ts.map +1 -1
- package/dist/lib/services/user-service.js +11 -7
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/services/user-service.test.js +28 -1
- package/dist/lib/services/user-service.test.js.map +1 -1
- package/dist/lib/services/version-service.d.ts +7 -1
- package/dist/lib/services/version-service.d.ts.map +1 -1
- package/dist/lib/services/version-service.js +5 -1
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/services/version-service.test.js +44 -0
- package/dist/lib/services/version-service.test.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 +13 -7
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +6 -1
- package/dist/lib/types/model.d.ts.map +1 -1
- package/dist/lib/types/model.js +1 -0
- package/dist/lib/types/model.js.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/user.d.ts +6 -1
- package/dist/lib/types/user.d.ts.map +1 -1
- package/dist/lib/types/user.js +3 -1
- package/dist/lib/types/user.js.map +1 -1
- package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-service.js.map +1 -1
- package/dist/lib/ui-config/ui-config.test.js +2 -2
- package/dist/lib/ui-config/ui-config.test.js.map +1 -1
- package/dist/lib/users/inactive/fakes/fake-inactive-users-store.d.ts.map +1 -1
- package/dist/lib/users/inactive/fakes/fake-inactive-users-store.js +1 -0
- package/dist/lib/users/inactive/fakes/fake-inactive-users-store.js.map +1 -1
- package/dist/lib/users/inactive/inactive-users-store.d.ts +1 -3
- package/dist/lib/users/inactive/inactive-users-store.d.ts.map +1 -1
- package/dist/lib/users/inactive/inactive-users-store.js +1 -3
- package/dist/lib/users/inactive/inactive-users-store.js.map +1 -1
- package/dist/lib/util/anonymise.test.js.map +1 -1
- package/dist/lib/util/batchExecute.d.ts.map +1 -1
- package/dist/lib/util/batchExecute.js +3 -1
- package/dist/lib/util/batchExecute.js.map +1 -1
- package/dist/lib/util/flag-resolver.d.ts.map +1 -1
- package/dist/lib/util/flag-resolver.js +11 -3
- package/dist/lib/util/flag-resolver.js.map +1 -1
- package/dist/lib/util/flag-resolver.test.js +66 -15
- package/dist/lib/util/flag-resolver.test.js.map +1 -1
- package/dist/lib/util/graceful-shutdown.js +1 -1
- package/dist/lib/util/graceful-shutdown.js.map +1 -1
- package/dist/lib/util/parseEnvVar.d.ts +2 -0
- package/dist/lib/util/parseEnvVar.d.ts.map +1 -1
- package/dist/lib/util/parseEnvVar.js +21 -1
- package/dist/lib/util/parseEnvVar.js.map +1 -1
- package/dist/lib/util/parseEnvVar.test.js +24 -1
- package/dist/lib/util/parseEnvVar.test.js.map +1 -1
- package/dist/lib/util/postgres-version-checker.test.js +17 -5
- package/dist/lib/util/postgres-version-checker.test.js.map +1 -1
- package/dist/lib/util/semver.js +1 -1
- package/dist/lib/util/semver.js.map +1 -1
- package/dist/lib/util/validateJsonString.js +1 -1
- package/dist/lib/util/validateJsonString.js.map +1 -1
- package/dist/mailtemplates/getting-started/getting-started.html.mustache +1 -1
- package/dist/migrations/20251118131212-edge-observability-hosting.d.ts +3 -0
- package/dist/migrations/20251118131212-edge-observability-hosting.d.ts.map +1 -0
- package/dist/migrations/20251118131212-edge-observability-hosting.js +14 -0
- package/dist/migrations/20251118131212-edge-observability-hosting.js.map +1 -0
- package/dist/migrations/20251209090115-add-default-release-plan-template.d.ts +3 -0
- package/dist/migrations/20251209090115-add-default-release-plan-template.d.ts.map +1 -0
- package/dist/migrations/20251209090115-add-default-release-plan-template.js +45 -0
- package/dist/migrations/20251209090115-add-default-release-plan-template.js.map +1 -0
- package/dist/migrations/20251210144308-add-project-column-to-context-fields.d.ts +3 -0
- package/dist/migrations/20251210144308-add-project-column-to-context-fields.d.ts.map +1 -0
- package/dist/migrations/20251210144308-add-project-column-to-context-fields.js +8 -0
- package/dist/migrations/20251210144308-add-project-column-to-context-fields.js.map +1 -0
- package/dist/migrations/20251218153722-predefined-project-role-reader.d.ts +3 -0
- package/dist/migrations/20251218153722-predefined-project-role-reader.d.ts.map +1 -0
- package/dist/migrations/20251218153722-predefined-project-role-reader.js +24 -0
- package/dist/migrations/20251218153722-predefined-project-role-reader.js.map +1 -0
- package/dist/migrations/20260106164443-users-seat-type.d.ts +3 -0
- package/dist/migrations/20260106164443-users-seat-type.d.ts.map +1 -0
- package/dist/migrations/20260106164443-users-seat-type.js +8 -0
- package/dist/migrations/20260106164443-users-seat-type.js.map +1 -0
- package/dist/migrations/20260112111353-add-project-context-permission.d.ts +3 -0
- package/dist/migrations/20260112111353-add-project-context-permission.d.ts.map +1 -0
- package/dist/migrations/20260112111353-add-project-context-permission.js +9 -0
- package/dist/migrations/20260112111353-add-project-context-permission.js.map +1 -0
- package/dist/migrations/20260115122651-project-owner-crud-project-context.d.ts +3 -0
- package/dist/migrations/20260115122651-project-owner-crud-project-context.d.ts.map +1 -0
- package/dist/migrations/20260115122651-project-owner-crud-project-context.js +14 -0
- package/dist/migrations/20260115122651-project-owner-crud-project-context.js.map +1 -0
- package/dist/migrations/20260115122720-project-owner-crud-project-segment.d.ts +3 -0
- package/dist/migrations/20260115122720-project-owner-crud-project-segment.d.ts.map +1 -0
- package/dist/migrations/20260115122720-project-owner-crud-project-segment.js +14 -0
- package/dist/migrations/20260115122720-project-owner-crud-project-segment.js.map +1 -0
- package/dist/migrations/20260119100647-add-api-key-revision-id-to-edge-observability.d.ts +3 -0
- package/dist/migrations/20260119100647-add-api-key-revision-id-to-edge-observability.d.ts.map +1 -0
- package/dist/migrations/20260119100647-add-api-key-revision-id-to-edge-observability.js +8 -0
- package/dist/migrations/20260119100647-add-api-key-revision-id-to-edge-observability.js.map +1 -0
- package/dist/server-dev.js +6 -2
- package/dist/server-dev.js.map +1 -1
- package/dist/test/arbitraries.test.d.ts.map +1 -1
- package/dist/test/arbitraries.test.js +1 -0
- package/dist/test/arbitraries.test.js.map +1 -1
- package/dist/test/config/create-config.test.js +2 -2
- package/dist/test/config/create-config.test.js.map +1 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js +4 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +6 -3
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.e2e.test.js +12 -3
- package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js +8 -8
- package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.d.ts +2 -0
- package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.js +81 -0
- package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/feature-type.test.js +4 -1
- package/dist/test/e2e/api/admin/feature-type.test.js.map +1 -1
- package/dist/test/e2e/api/admin/feature.custom-auth.e2e.test.js +3 -3
- package/dist/test/e2e/api/admin/feature.custom-auth.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/feedback.e2e.test.js +3 -3
- package/dist/test/e2e/api/admin/feedback.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/instance-admin.e2e.test.js +1 -1
- package/dist/test/e2e/api/admin/metrics.e2e.test.js +3 -3
- package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/playground.e2e.test.js +12 -11
- package/dist/test/e2e/api/admin/playground.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js +5 -1
- package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/project.health.e2e.test.js +1 -1
- package/dist/test/e2e/api/admin/project/project.health.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/variants.e2e.test.js +2 -2
- package/dist/test/e2e/api/admin/project/variants.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project-context.e2e.test.d.ts +2 -0
- package/dist/test/e2e/api/admin/project-context.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/api/admin/project-context.e2e.test.js +102 -0
- package/dist/test/e2e/api/admin/project-context.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/public-signup-token.e2e.test.js +12 -12
- package/dist/test/e2e/api/admin/public-signup-token.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/splash.e2e.test.js +3 -3
- package/dist/test/e2e/api/admin/splash.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/user/pat.e2e.test.d.ts +1 -1
- package/dist/test/e2e/api/admin/user/pat.e2e.test.js +1 -1
- package/dist/test/e2e/api/admin/user-admin.e2e.test.js +1 -1
- package/dist/test/e2e/api/admin/user-admin.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/auth/reset-password-controller.e2e.test.js +3 -0
- package/dist/test/e2e/api/auth/reset-password-controller.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/auth/simple-password-provider.e2e.test.js +3 -0
- package/dist/test/e2e/api/auth/simple-password-provider.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/bulk-metrics-rejections.e2e.test.d.ts +2 -0
- package/dist/test/e2e/api/client/bulk-metrics-rejections.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/api/client/bulk-metrics-rejections.e2e.test.js +173 -0
- package/dist/test/e2e/api/client/bulk-metrics-rejections.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/client/feature.auth-none.e2e.test.js +1 -1
- package/dist/test/e2e/api/client/feature.auth-none.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.e2e.test.js +15 -2
- package/dist/test/e2e/api/client/feature.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js +254 -113
- package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +1 -1
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/metrics.e2e.test.js +2 -1
- package/dist/test/e2e/api/client/metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/register.e2e.test.js +4 -4
- package/dist/test/e2e/api/client/register.e2e.test.js.map +1 -1
- package/dist/test/e2e/custom-auth.test.js +2 -2
- package/dist/test/e2e/custom-auth.test.js.map +1 -1
- package/dist/test/e2e/features-created-by-user-id-data-migration.e2e.test.js +4 -4
- package/dist/test/e2e/features-created-by-user-id-data-migration.e2e.test.js.map +1 -1
- package/dist/test/e2e/helpers/database-init.d.ts +1 -1
- package/dist/test/e2e/helpers/database-init.d.ts.map +1 -1
- package/dist/test/e2e/helpers/database-init.js +1 -1
- package/dist/test/e2e/helpers/database-init.js.map +1 -1
- package/dist/test/e2e/seed/segment.seed.js +2 -2
- package/dist/test/e2e/seed/segment.seed.js.map +1 -1
- package/dist/test/e2e/services/access-service.e2e.test.js +34 -2
- package/dist/test/e2e/services/access-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/api-token-service.e2e.test.js +1 -1
- package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/playground-service.test.js +18 -12
- package/dist/test/e2e/services/playground-service.test.js.map +1 -1
- package/dist/test/e2e/services/reset-token-service.e2e.test.js +3 -0
- package/dist/test/e2e/services/reset-token-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/setting-service.test.js +2 -2
- package/dist/test/e2e/services/setting-service.test.js.map +1 -1
- package/dist/test/e2e/services/user-service.e2e.test.js +4 -1
- package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/client-application-store.e2e.test.js +22 -22
- package/dist/test/e2e/stores/client-application-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/client-instance-store.e2e.test.js +2 -2
- package/dist/test/e2e/stores/client-instance-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/context-field-store.e2e.test.js +2 -2
- package/dist/test/e2e/stores/context-field-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/event-store.e2e.test.js +17 -29
- package/dist/test/e2e/stores/event-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/users/inactive/inactive-users-service.test.js +3 -1
- package/dist/test/e2e/users/inactive/inactive-users-service.test.js.map +1 -1
- package/dist/test/fixtures/access-service-mock.d.ts +13 -13
- package/dist/test/fixtures/access-service-mock.d.ts.map +1 -1
- package/dist/test/fixtures/access-service-mock.js +13 -13
- package/dist/test/fixtures/access-service-mock.js.map +1 -1
- package/dist/test/fixtures/fake-access-store.d.ts +38 -34
- package/dist/test/fixtures/fake-access-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-access-store.js +37 -35
- package/dist/test/fixtures/fake-access-store.js.map +1 -1
- package/dist/test/fixtures/fake-account-store.d.ts +2 -2
- package/dist/test/fixtures/fake-account-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-account-store.js +2 -2
- package/dist/test/fixtures/fake-account-store.js.map +1 -1
- package/dist/test/fixtures/fake-client-applications-store.d.ts +2 -2
- package/dist/test/fixtures/fake-client-applications-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-client-applications-store.js +6 -4
- package/dist/test/fixtures/fake-client-applications-store.js.map +1 -1
- package/dist/test/fixtures/fake-client-instance-store.d.ts +1 -1
- package/dist/test/fixtures/fake-client-instance-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-client-instance-store.js +4 -2
- package/dist/test/fixtures/fake-client-instance-store.js.map +1 -1
- package/dist/test/fixtures/fake-event-store.d.ts +3 -3
- package/dist/test/fixtures/fake-event-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-event-store.js +3 -3
- package/dist/test/fixtures/fake-event-store.js.map +1 -1
- package/dist/test/fixtures/fake-favorite-features-store.d.ts +5 -5
- package/dist/test/fixtures/fake-favorite-features-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-favorite-features-store.js +5 -5
- package/dist/test/fixtures/fake-favorite-features-store.js.map +1 -1
- package/dist/test/fixtures/fake-favorite-projects-store.d.ts +5 -5
- package/dist/test/fixtures/fake-favorite-projects-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-favorite-projects-store.js +5 -5
- package/dist/test/fixtures/fake-favorite-projects-store.js.map +1 -1
- package/dist/test/fixtures/fake-feature-environment-store.d.ts +9 -9
- package/dist/test/fixtures/fake-feature-environment-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-feature-environment-store.js +19 -19
- package/dist/test/fixtures/fake-feature-environment-store.js.map +1 -1
- package/dist/test/fixtures/fake-feature-tag-store.d.ts +1 -1
- package/dist/test/fixtures/fake-feature-tag-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-feature-tag-store.js +2 -2
- package/dist/test/fixtures/fake-feature-tag-store.js.map +1 -1
- package/dist/test/fixtures/fake-group-store.d.ts +16 -16
- package/dist/test/fixtures/fake-group-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-group-store.js +16 -16
- package/dist/test/fixtures/fake-group-store.js.map +1 -1
- package/dist/test/fixtures/fake-pat-store.d.ts +9 -9
- package/dist/test/fixtures/fake-pat-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-pat-store.js +9 -9
- package/dist/test/fixtures/fake-pat-store.js.map +1 -1
- package/dist/test/fixtures/fake-project-store.d.ts +11 -11
- package/dist/test/fixtures/fake-project-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-project-store.js +16 -16
- package/dist/test/fixtures/fake-project-store.js.map +1 -1
- package/dist/test/fixtures/fake-public-signup-store.d.ts +2 -2
- package/dist/test/fixtures/fake-public-signup-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-public-signup-store.js +2 -2
- package/dist/test/fixtures/fake-public-signup-store.js.map +1 -1
- package/dist/test/fixtures/fake-role-store.d.ts +9 -9
- package/dist/test/fixtures/fake-role-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-role-store.js +9 -9
- package/dist/test/fixtures/fake-role-store.js.map +1 -1
- package/dist/test/fixtures/fake-strategies-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-strategies-store.js +0 -2
- package/dist/test/fixtures/fake-strategies-store.js.map +1 -1
- package/dist/test/fixtures/fake-tag-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-tag-store.js +4 -2
- package/dist/test/fixtures/fake-tag-store.js.map +1 -1
- package/dist/test/fixtures/fake-user-feedback-store.d.ts +6 -6
- package/dist/test/fixtures/fake-user-feedback-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-user-feedback-store.js +6 -6
- package/dist/test/fixtures/fake-user-feedback-store.js.map +1 -1
- package/dist/test/fixtures/fake-user-splash-store.d.ts +6 -6
- package/dist/test/fixtures/fake-user-splash-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-user-splash-store.js +6 -6
- package/dist/test/fixtures/fake-user-splash-store.js.map +1 -1
- package/dist/test/fixtures/fake-user-store.d.ts +2 -2
- package/dist/test/fixtures/fake-user-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-user-store.js +2 -2
- package/dist/test/fixtures/fake-user-store.js.map +1 -1
- package/dist/test/fixtures/permissions.js +1 -1
- package/dist/test/fixtures/permissions.js.map +1 -1
- package/frontend/build/index.html +3 -3
- package/frontend/build/static/AdvancedPlayground-B70Djk8B.js +3 -0
- package/frontend/build/static/BackendConnections-mlK6EAYQ.js +1 -0
- package/frontend/build/static/{CreateProject-De6TDUjF.js → CreateProject-Dnggz6io.js} +1 -1
- package/frontend/build/static/EnterpriseEdge-Dnk6MbDj.js +3 -0
- package/frontend/build/static/FeatureMetricsChart-CFEixeGp.js +2 -0
- package/frontend/build/static/FeatureStaleDialog-DZoiwwdR.js +7 -0
- package/frontend/build/static/FeatureViewLazyExport-CUnXEEwm.js +10 -0
- package/frontend/build/static/FlagMetricsChart-ujKp_v58.js +2 -0
- package/frontend/build/static/FrontendNetworkTrafficUsage-Dq8wwaXR.js +1 -0
- package/frontend/build/static/GridLayoutWrapper-Cg_xypvQ.js +3 -0
- package/frontend/build/static/ImpactMetricsPage-ZRSvDBg4.js +1 -0
- package/frontend/build/static/LazyAdminExport-B8GV3V8t.js +38 -0
- package/frontend/build/static/LazyProjectExport-B9SJl4_L.js +728 -0
- package/frontend/build/static/{LifecycleChartComponent-iH7Xwal_.js → LifecycleChartComponent-DulnIgCV.js} +2 -2
- package/frontend/build/static/{LineChartComponent-BnogHewS.js → LineChartComponent-BVdLj0q6.js} +1 -1
- package/frontend/build/static/{MarkCompletedDialogue-BOSV3MHM.js → MarkCompletedDialogue-Cu7y0hRZ.js} +1 -1
- package/frontend/build/static/NetworkOverview-CUmX-taY.js +1 -0
- package/frontend/build/static/{NetworkPrometheusAPIWarning-2jclDnfE.js → NetworkPrometheusAPIWarning-BwnVz0CY.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-DDSLmVgI.js → NetworkTraffic-DCMn8UWo.js} +1 -1
- package/frontend/build/static/NetworkTrafficUsage-DSZK447X.js +1 -0
- package/frontend/build/static/{PercentageDonut-aa1oSbho.js → PercentageDonut-B2OwM0Er.js} +1 -1
- package/frontend/build/static/{ReactJSONEditor-BKB6MheT.js → ReactJSONEditor-BPlzE1Zx.js} +1 -1
- package/frontend/build/static/RoleCell-D5skjCJn.js +1 -0
- package/frontend/build/static/aggregateFeatureMetrics-Bcfo39hn.js +1 -0
- package/frontend/build/static/banner-progression-B6JPzTEE.svg +52 -0
- package/frontend/build/static/docker-HG7DQx-Z.svg +5 -0
- package/frontend/build/static/enterpriseEdgeCloud-DzRtm8v6.svg +58 -0
- package/frontend/build/static/enterpriseEdgeSelfHosted-4bnmOQVF.svg +44 -0
- package/frontend/build/static/{formatTickValue-BCAqKqmg.js → formatTickValue-CqTJlzJZ.js} +2 -2
- package/frontend/build/static/impact-metrics-icon-a6_57VN1.svg +9 -0
- package/frontend/build/static/index-g9pKMnOR.js +542 -0
- package/frontend/build/static/lenovo-DIzNtfrT.svg +3 -0
- package/frontend/build/static/lloyds-DxlC9g3t.svg +10 -0
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-Dmm54dMG.js +1 -0
- package/frontend/build/static/new-feature-badge-FwMmHlwT.svg +7 -0
- package/frontend/build/static/samsung-DOytOsnV.svg +10 -0
- package/frontend/build/static/style-BfdqROT6.css +1 -0
- package/frontend/build/static/{useApiTokens-eXyUbKcO.js → useApiTokens-D1XvAIIA.js} +1 -1
- package/frontend/build/static/visa-CkneNM2O.svg +10 -0
- package/frontend/package.json +2 -2
- package/package.json +49 -54
- package/dist/lib/features/release-plans/release-plan-read-model-type.d.ts +0 -5
- package/dist/lib/features/release-plans/release-plan-read-model-type.d.ts.map +0 -1
- package/dist/lib/features/release-plans/release-plan-read-model-type.js +0 -2
- package/dist/lib/features/release-plans/release-plan-read-model-type.js.map +0 -1
- package/dist/lib/features/release-plans/release-plan-read-model.d.ts +0 -11
- package/dist/lib/features/release-plans/release-plan-read-model.d.ts.map +0 -1
- package/dist/lib/features/release-plans/release-plan-read-model.js +0 -133
- package/dist/lib/features/release-plans/release-plan-read-model.js.map +0 -1
- package/dist/lib/features/release-plans/release-plan-read-model.test.d.ts +0 -2
- package/dist/lib/features/release-plans/release-plan-read-model.test.d.ts.map +0 -1
- package/dist/lib/features/release-plans/release-plan-read-model.test.js +0 -165
- package/dist/lib/features/release-plans/release-plan-read-model.test.js.map +0 -1
- package/dist/test/fixtures/fake/fake-release-plan-read-model.d.ts +0 -8
- package/dist/test/fixtures/fake/fake-release-plan-read-model.d.ts.map +0 -1
- package/dist/test/fixtures/fake/fake-release-plan-read-model.js +0 -9
- package/dist/test/fixtures/fake/fake-release-plan-read-model.js.map +0 -1
- package/frontend/build/static/AdvancedPlayground-BMmRjlFK.js +0 -3
- package/frontend/build/static/BackendConnections-C4TwFekS.js +0 -1
- package/frontend/build/static/FeatureMetricsChart-CQOjOGdB.js +0 -2
- package/frontend/build/static/FeatureStaleDialog-DFBMJIHQ.js +0 -7
- package/frontend/build/static/FeatureViewLazyExport-CUraS5Co.js +0 -10
- package/frontend/build/static/FlagMetricsChart-BqT9hgdO.js +0 -2
- package/frontend/build/static/FrontendNetworkTrafficUsage-BzwFAGbK.js +0 -1
- package/frontend/build/static/GridLayoutWrapper-DY9lNz0U.js +0 -3
- package/frontend/build/static/ImpactMetricsPage-Bqewvmqu.js +0 -1
- package/frontend/build/static/LazyAdminExport-DSSpZhpf.js +0 -38
- package/frontend/build/static/LazyProjectExport-Cd5au6uN.js +0 -728
- package/frontend/build/static/NetworkConnectedEdges-d0ZBRss5.js +0 -1
- package/frontend/build/static/NetworkOverview-DivQ4b83.js +0 -1
- package/frontend/build/static/NetworkTrafficUsage-DYNGGkkm.js +0 -1
- package/frontend/build/static/RoleCell-CkV0Kf4-.js +0 -1
- package/frontend/build/static/aggregateFeatureMetrics-CrQXQAeM.js +0 -1
- package/frontend/build/static/howToApplyReleaseTemplates-CkjJPTRh.png +0 -0
- package/frontend/build/static/howToApplyReleaseTemplatesDark-CfwfIMua.png +0 -0
- package/frontend/build/static/index-B33kIVre.js +0 -542
- package/frontend/build/static/metricsFormatters-C7iN2dDH.js +0 -1
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-o9kHeQ2O.js +0 -1
- package/frontend/build/static/style-BW9ZTER3.css +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jv as ct,jX as R,jY as w,jZ as p,jw as Q,j_ as fe,j$ as ut,k0 as b,ji as oe,jD as B,k1 as A,k2 as ft,k3 as ht,jx as z,jy as he,jt as K,k4 as yt,k5 as bt,k6 as _,k7 as J,k8 as Ce,k9 as gt,ka as ke,kb as T,kc as $e,kd as Ve,ke as mt}from"./index-g9pKMnOR.js";/*!
|
|
2
2
|
* chartjs-plugin-annotation v2.2.1
|
|
3
3
|
* https://www.chartjs.org/chartjs-plugin-annotation/index
|
|
4
4
|
* (c) 2023 chartjs-plugin-annotation Contributors
|
|
5
5
|
* Released under the MIT License
|
|
6
|
-
*/const ke={modes:{point(t,e){return q(t,e,{intersect:!0})},nearest(t,e,n){return xt(t,e,n)},x(t,e,n){return q(t,e,{intersect:n.intersect,axis:"x"})},y(t,e,n){return q(t,e,{intersect:n.intersect,axis:"y"})}}};function ye(t,e,n){return(ke.modes[n.mode]||ke.modes.nearest)(t,e,n)}function pt(t,e,n){return n!=="x"&&n!=="y"?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,n,!0)}function wt(t,e,n){return n==="x"?{x:t.x,y:e.y}:n==="y"?{x:e.x,y:t.y}:e}function q(t,e,n){return t.visibleElements.filter(o=>n.intersect?o.inRange(e.x,e.y):pt(o,e,n.axis))}function xt(t,e,n){let o=Number.POSITIVE_INFINITY;return q(t,e,n).reduce((r,i)=>{const s=i.getCenterPoint(),a=wt(e,s,n.axis),d=fe(e,a);return d<o?(r=[i],o=d):d===o&&r.push(i),r},[]).sort((r,i)=>r._index-i._index).slice(0,1)}const St=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,v=.001,F=(t,e,n)=>Math.min(n,Math.max(e,t));function Mt(t,e,n){for(const o of Object.keys(t))t[o]=F(t[o],e,n);return t}function Ct(t,e,n,o){if(!t||!e||n<=0)return!1;const r=o/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(n+r,2)}function Je(t,{x:e,y:n,x2:o,y2:r},i,s){const a=s/2,d=t.x>=e-a-v&&t.x<=o+a+v,l=t.y>=n-a-v&&t.y<=r+a+v;return i==="x"?d:(i==="y"||d)&&l}function E(t,e){const{centerX:n,centerY:o}=t.getProps(["centerX","centerY"],e);return{x:n,y:o}}function Pt(t,e,n,o=!0){const r=n.split(".");let i=0;for(const s of e.split(".")){const a=r[i++];if(parseInt(s,10)<parseInt(a,10))break;if(St(a,s)){if(o)throw new Error(`${t} v${n} is not supported. v${e} or newer is required.`);return!1}}return!0}const Ue=t=>typeof t=="string"&&t.endsWith("%"),qe=t=>parseFloat(t)/100,Ke=t=>F(qe(t),0,1);function be(t,e){return e==="start"?0:e==="end"?t:Ue(e)?Ke(e)*t:t/2}function C(t,e,n=!0){return typeof e=="number"?e:Ue(e)?(n?Ke(e):qe(e))*t:t}function kt(t,e){const{x:n,width:o}=t,r=e.textAlign;return r==="center"?n+o/2:r==="end"||r==="right"?n+o:n}function ge(t,e="center"){return B(t)?{x:z(t.x,e),y:z(t.y,e)}:(t=z(t,e),{x:t,y:t})}function Qe(t){return t&&(p(t.xValue)||p(t.yValue))}function H(t,e,n,o=!1){const r=n.init;if(r){if(r===!0)return Fe(e,o)}else return;return jt(e,o,he(r,[{chart:t,properties:e,options:n}]))}function Ge(t,e,n){let o=!1;return e.forEach(r=>{I(t[r])?(o=!0,n[r]=t[r]):p(n[r])&&delete n[r]}),o}function Fe({centerX:t,centerY:e},n){return n?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}function jt(t,e,n){if(n===!0)return Fe(t,e);if(B(n))return n}const re=new Map,vt=t=>isNaN(t)||t<=0,At=t=>t.reduce(function(e,n){return e+=n.string,e},"");function Z(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object HTMLImageElement]"||e==="[object HTMLCanvasElement]"}}function me(t,{x:e,y:n},o){o&&(t.translate(e,n),t.rotate(w(o)),t.translate(-e,-n))}function P(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function W(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function pe(t,e){const n=e.content;if(Z(n))return{width:C(n.width,e.width),height:C(n.height,e.height)};const o=e.font,r=A(o)?o.map(d=>K(d)):[K(o)],i=e.textStrokeWidth,s=A(n)?n:[n],a=s.join()+At(r)+i+(t._measureText?"-spriting":"");return re.has(a)||re.set(a,Rt(t,s,r,i)),re.get(a)}function Ze(t,e,n){const{x:o,y:r,width:i,height:s}=e;t.save(),W(t,n);const a=P(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),yt(t,{x:o,y:r,w:i,h:s,radius:Mt(bt(n.borderRadius),0,Math.min(i,s)/2)}),t.closePath(),t.fill(),a&&(t.shadowColor=n.borderShadowColor,t.stroke()),t.restore()}function Dt(t,e,n){const o=n.content;if(Z(o)){t.save(),t.globalAlpha=Lt(n.opacity,o.style.opacity),t.drawImage(o,e.x,e.y,e.width,e.height),t.restore();return}const r=A(o)?o:[o],i=n.font,s=A(i)?i.map(u=>K(u)):[K(i)],a=n.color,d=A(a)?a:[a],l=kt(e,n),c=e.y+n.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=n.textAlign,Tt(t,n)&&Et(t,{x:l,y:c},r,s),Wt(t,{x:l,y:c},r,{fonts:s,colors:d}),t.restore()}function Tt(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}function It(t,e,n,o){const{radius:r,options:i}=e,s=i.pointStyle,a=i.rotation;let d=(a||0)*$e;if(Z(s)){t.save(),t.translate(n,o),t.rotate(d),t.drawImage(s,-s.width/2,-s.height/2,s.width,s.height),t.restore();return}vt(r)||Ot(t,{x:n,y:o,radius:r,rotation:a,style:s,rad:d})}function Ot(t,{x:e,y:n,radius:o,rotation:r,style:i,rad:s}){let a,d,l,c;switch(t.beginPath(),i){default:t.arc(e,n,o,0,gt),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Ce,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Ce,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),t.closePath();break;case"rectRounded":c=o*.516,l=o-c,a=Math.cos(s+X)*l,d=Math.sin(s+X)*l,t.arc(e-a,n-d,c,s-b,s-J),t.arc(e+d,n-a,c,s-J,s),t.arc(e+a,n+d,c,s,s+J),t.arc(e-d,n+a,c,s+J,s+b),t.closePath();break;case"rect":if(!r){l=Math.SQRT1_2*o,t.rect(e-l,n-l,2*l,2*l);break}s+=X;case"rectRot":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+d,n-a),t.lineTo(e+a,n+d),t.lineTo(e-d,n+a),t.closePath();break;case"crossRot":s+=X;case"cross":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"star":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a),s+=X,a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"line":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d);break;case"dash":t.moveTo(e,n),t.lineTo(e+Math.cos(s)*o,n+Math.sin(s)*o);break}t.fill()}function Rt(t,e,n,o){t.save();const r=e.length;let i=0,s=o;for(let a=0;a<r;a++){const d=n[Math.min(a,n.length-1)];t.font=d.string;const l=e[a];i=Math.max(i,t.measureText(l).width+o),s+=d.lineHeight}return t.restore(),{width:i,height:s}}function Et(t,{x:e,y:n},o,r){t.beginPath();let i=0;o.forEach(function(s,a){const d=r[Math.min(a,r.length-1)],l=d.lineHeight;t.font=d.string,t.strokeText(s,e,n+l/2+i),i+=l}),t.stroke()}function Wt(t,{x:e,y:n},o,{fonts:r,colors:i}){let s=0;o.forEach(function(a,d){const l=i[Math.min(d,i.length-1)],c=r[Math.min(d,r.length-1)],u=c.lineHeight;t.beginPath(),t.font=c.string,t.fillStyle=l,t.fillText(a,e,n+u/2+s),s+=u,t.fill()})}function Lt(t,e){const n=Pe(t)?t:e;return Pe(n)?F(n,0,1):1}const je={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function O(t,e,n){return e=typeof e=="number"?e:t.parse(e),Ve(e)?t.getPixelForValue(e):n}function D(t,e,n){const o=e[n];if(o||n==="scaleID")return o;const r=n.charAt(0),i=Object.values(t).filter(s=>s.axis&&s.axis===r);return i.length?i[0].id:r}function et(t,e){if(t){const n=t.options.reverse,o=O(t,e.min,n?e.end:e.start),r=O(t,e.max,n?e.start:e.end);return{start:o,end:r}}}function tt(t,e){const{chartArea:n,scales:o}=t,r=o[D(o,e,"xScaleID")],i=o[D(o,e,"yScaleID")];let s=n.width/2,a=n.height/2;return r&&(s=O(r,e.xValue,r.left+r.width/2)),i&&(a=O(i,e.yValue,i.top+i.height/2)),{x:s,y:a}}function we(t,e){const n=t.scales,o=n[D(n,e,"xScaleID")],r=n[D(n,e,"yScaleID")];if(!o&&!r)return{};let{left:i,right:s}=o||t.chartArea,{top:a,bottom:d}=r||t.chartArea;const l=ve(o,{min:e.xMin,max:e.xMax,start:i,end:s});i=l.start,s=l.end;const c=ve(r,{min:e.yMin,max:e.yMax,start:d,end:a});return a=c.start,d=c.end,{x:i,y:a,x2:s,y2:d,width:s-i,height:d-a,centerX:i+(s-i)/2,centerY:a+(d-a)/2}}function nt(t,e){if(!Qe(e)){const n=we(t,e);let o=e.radius;(!o||isNaN(o))&&(o=Math.min(n.width,n.height)/2,e.radius=o);const r=o*2,i=n.centerX+e.xAdjust,s=n.centerY+e.yAdjust;return{x:i-o,y:s-o,x2:i+o,y2:s+o,centerX:i,centerY:s,width:r,height:r,radius:o}}return Xt(t,e)}function Yt(t,e){const{scales:n,chartArea:o}=t,r=n[e.scaleID],i={x:o.left,y:o.top,x2:o.right,y2:o.bottom};return r?_t(r,i,e):zt(n,i,e),i}function ot(t,e,n){const o=we(t,e);return o.initProperties=H(t,o,e,n),o.elements=[{type:"label",optionScope:"label",properties:Nt(t,o,e),initProperties:o.initProperties}],o}function Xt(t,e){const n=tt(t,e),o=e.radius*2;return{x:n.x-e.radius+e.xAdjust,y:n.y-e.radius+e.yAdjust,x2:n.x+e.radius+e.xAdjust,y2:n.y+e.radius+e.yAdjust,centerX:n.x+e.xAdjust,centerY:n.y+e.yAdjust,radius:e.radius,width:o,height:o}}function ve(t,e){const n=et(t,e)||e;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function _t(t,e,n){const o=O(t,n.value,NaN),r=O(t,n.endValue,o);t.isHorizontal()?(e.x=o,e.x2=r):(e.y=o,e.y2=r)}function zt(t,e,n){for(const o of Object.keys(je)){const r=t[D(t,n,o)];if(r){const{min:i,max:s,start:a,end:d,startProp:l,endProp:c}=je[o],u=et(r,{min:n[i],max:n[s],start:r[a],end:r[d]});e[l]=u.start,e[c]=u.end}}}function Bt({properties:t,options:e},n,o,r){const{x:i,x2:s,width:a}=t;return rt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.x,padding:{start:r.left,end:r.right},adjust:e.label.xAdjust,size:n.width})}function Ht({properties:t,options:e},n,o,r){const{y:i,y2:s,height:a}=t;return rt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.y,padding:{start:r.top,end:r.bottom},adjust:e.label.yAdjust,size:n.height})}function rt(t,e){const{start:n,end:o,borderWidth:r}=t,{position:i,padding:{start:s,end:a},adjust:d}=e,l=o-r-n-s-a-e.size;return n+r/2+d+be(l,i)}function Nt(t,e,n){const o=n.label;o.backgroundColor="transparent",o.callout.display=!1;const r=ge(o.position),i=G(o.padding),s=pe(t.ctx,o),a=Bt({properties:e,options:n},s,r,i),d=Ht({properties:e,options:n},s,r,i),l=s.width+i.width,c=s.height+i.height;return{x:a,y:d,x2:a+l,y2:d+c,width:l,height:c,centerX:a+l/2,centerY:d+c/2,rotation:o.rotation}}function T(t,e,n){const o=Math.cos(n),r=Math.sin(n),i=e.x,s=e.y;return{x:i+o*(t.x-i)-r*(t.y-s),y:s+r*(t.x-i)+o*(t.y-s)}}const ie=["enter","leave"],xe=ie.concat("click");function Vt(t,e,n){e.listened=Ge(n,xe,e.listeners),e.moveListened=!1,e._getElements=ye,ie.forEach(o=>{I(n[o])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(o=>{!e.listened&&I(o.click)&&(e.listened=!0),e.moveListened||ie.forEach(r=>{I(o[r])&&(e.listened=!0,e.moveListened=!0)})})}function $t(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Jt(t,e,n);case"click":return Ut(t,e,n)}}function Jt(t,e,n){if(!t.moveListened)return;let o;e.type==="mousemove"?o=ye(t,e,n.interaction):o=[];const r=t.hovered;t.hovered=o;const i={state:t,event:e};let s=Ae(i,"leave",r,o);return Ae(i,"enter",o,r)||s}function Ae({state:t,event:e},n,o,r){let i;for(const s of o)r.indexOf(s)<0&&(i=it(s.options[n]||t.listeners[n],s,e)||i);return i}function Ut(t,e,n){const o=t.listeners,r=ye(t,e,n.interaction);let i;for(const s of r)i=it(s.options.click||o.click,s,e)||i;return i}function it(t,e,n){return he(t,[e.$context,n])===!0}const Q=["afterDraw","beforeDraw"];function qt(t,e,n){const o=e.visibleElements;e.hooked=Ge(n,Q,e.hooks),e.hooked||o.forEach(r=>{e.hooked||Q.forEach(i=>{I(r.options[i])&&(e.hooked=!0)})})}function De(t,e,n){if(t.hooked){const o=e.options[n]||t.hooks[n];return he(o,[e.$context])}}function Kt(t,e,n){const o=en(t.scales,e,n);let r=Te(e,o,"min","suggestedMin");r=Te(e,o,"max","suggestedMax")||r,r&&I(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Qt(t,e){for(const n of t)Ft(n,e)}function Te(t,e,n,o){if(Ve(e[n])&&!Gt(t.options,n,o)){const r=t[n]!==e[n];return t[n]=e[n],r}}function Gt(t,e,n){return p(t[e])||p(t[n])}function Ft(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const o=D(e,t,n);o&&!e[o]&&Zt(t,n)&&console.warn(`No scale found with id '${o}' for annotation '${t.id}'`)}}function Zt(t,e){if(e==="scaleID")return!0;const n=e.charAt(0);for(const o of["Min","Max","Value"])if(p(t[n+o]))return!0;return!1}function en(t,e,n){const o=e.axis,r=e.id,i=o+"ScaleID",s={min:z(e.min,Number.NEGATIVE_INFINITY),max:z(e.max,Number.POSITIVE_INFINITY)};for(const a of n)a.scaleID===r?Ie(a,e,["value","endValue"],s):D(t,a,i)===r&&Ie(a,e,[o+"Min",o+"Max",o+"Value"],s);return s}function Ie(t,e,n,o){for(const r of n){const i=t[r];if(p(i)){const s=e.parse(i);o.min=Math.min(o.min,s),o.max=Math.max(o.max,s)}}}class L extends R{inRange(e,n,o,r){const{x:i,y:s}=T({x:e,y:n},this.getCenterPoint(r),w(-this.options.rotation));return Je({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return E(this,e)}draw(e){e.save(),me(e,this.getCenterPoint(),this.options.rotation),Ze(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return ot(e,n)}}L.id="boxAnnotation";L.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};L.defaultRoutes={borderColor:"color",backgroundColor:"color"};L.descriptors={label:{_fallback:!0}};const st=["left","bottom","top","right"];class N extends R{inRange(e,n,o,r){const{x:i,y:s}=T({x:e,y:n},this.getCenterPoint(r),w(-this.rotation));return Je({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return E(this,e)}draw(e){const n=this.options,o=!p(this._visible)||this._visible;!n.display||!n.content||!o||(e.save(),me(e,this.getCenterPoint(),this.rotation),nn(e,this),Ze(e,this,n),Dt(e,cn(this),n),e.restore())}resolveElementProperties(e,n){let o;if(Qe(n))o=tt(e,n);else{const{centerX:a,centerY:d}=we(e,n);o={x:a,y:d}}const r=G(n.padding),i=pe(e.ctx,n),s=tn(o,i,n,r);return{initProperties:H(e,s,n),pointX:o.x,pointY:o.y,...s,rotation:n.rotation}}}N.id="labelAnnotation";N.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};N.defaultRoutes={borderColor:"color"};function tn(t,e,n,o){const r=e.width+o.width+n.borderWidth,i=e.height+o.height+n.borderWidth,s=ge(n.position,"center"),a=Oe(t.x,r,n.xAdjust,s.x),d=Oe(t.y,i,n.yAdjust,s.y);return{x:a,y:d,x2:a+r,y2:d+i,width:r,height:i,centerX:a+r/2,centerY:d+i/2}}function Oe(t,e,n=0,o){return t-be(e,o)+n}function nn(t,e){const{pointX:n,pointY:o,options:r}=e,i=r.callout,s=i&&i.display&&dn(e,i);if(!s||un(e,i,s))return;if(t.save(),t.beginPath(),!P(t,i))return t.restore();const{separatorStart:d,separatorEnd:l}=on(e,s),{sideStart:c,sideEnd:u}=sn(e,s,d);(i.margin>0||r.borderWidth===0)&&(t.moveTo(d.x,d.y),t.lineTo(l.x,l.y)),t.moveTo(c.x,c.y),t.lineTo(u.x,u.y);const f=T({x:n,y:o},e.getCenterPoint(),w(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}function on(t,e){const{x:n,y:o,x2:r,y2:i}=t,s=rn(t,e);let a,d;return e==="left"||e==="right"?(a={x:n+s,y:o},d={x:a.x,y:i}):(a={x:n,y:o+s},d={x:r,y:a.y}),{separatorStart:a,separatorEnd:d}}function rn(t,e){const{width:n,height:o,options:r}=t,i=r.callout.margin+r.borderWidth/2;return e==="right"?n+i:e==="bottom"?o+i:-i}function sn(t,e,n){const{y:o,width:r,height:i,options:s}=t,a=s.callout.start,d=an(e,s.callout);let l,c;return e==="left"||e==="right"?(l={x:n.x,y:o+C(i,a)},c={x:l.x+d,y:l.y}):(l={x:n.x+C(r,a),y:n.y},c={x:l.x,y:l.y+d}),{sideStart:l,sideEnd:c}}function an(t,e){const n=e.side;return t==="left"||t==="top"?-n:n}function dn(t,e){const n=e.position;return st.includes(n)?n:ln(t,e)}function ln(t,e){const{x:n,y:o,x2:r,y2:i,width:s,height:a,pointX:d,pointY:l,centerX:c,centerY:u,rotation:f}=t,h={x:c,y:u},y=e.start,x=C(s,y),Y=C(a,y),g=[n,n+x,n+x,r],m=[o+Y,i,o,i],k=[];for(let j=0;j<4;j++){const ne=T({x:g[j],y:m[j]},h,w(f));k.push({position:st[j],distance:fe(ne,{x:d,y:l})})}return k.sort((j,ne)=>j.distance-ne.distance)[0].position}function cn({x:t,y:e,width:n,height:o,options:r}){const i=r.borderWidth/2,s=G(r.padding);return{x:t+s.left+i,y:e+s.top+i,width:n-s.left-s.right-r.borderWidth,height:o-s.top-s.bottom-r.borderWidth}}function un(t,e,n){const{pointX:o,pointY:r}=t,i=e.margin;let s=o,a=r;return n==="left"?s+=i:n==="right"?s-=i:n==="top"?a+=i:n==="bottom"&&(a-=i),t.inRange(s,a)}const Se=(t,e,n)=>({x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}),se=(t,e,n)=>Se(e,n,Math.abs((t-e.y)/(n.y-e.y))).x,Re=(t,e,n)=>Se(e,n,Math.abs((t-e.x)/(n.x-e.x))).y,_=t=>t*t,fn=(t,e,{x:n,y:o,x2:r,y2:i},s)=>s==="y"?{start:Math.min(o,i),end:Math.max(o,i),value:e}:{start:Math.min(n,r),end:Math.max(n,r),value:t},Ee=(t,e,n,o)=>(1-o)*(1-o)*t+2*(1-o)*o*e+o*o*n,ae=(t,e,n,o)=>({x:Ee(t.x,e.x,n.x,o),y:Ee(t.y,e.y,n.y,o)}),We=(t,e,n,o)=>2*(1-o)*(e-t)+2*o*(n-e),Le=(t,e,n,o)=>-Math.atan2(We(t.x,e.x,n.x,o),We(t.y,e.y,n.y,o))+.5*b;class V extends R{inRange(e,n,o,r){const i=this.options.borderWidth/2;if(o!=="x"&&o!=="y"){const s={mouseX:e,mouseY:n},{path:a,ctx:d}=this;if(a){P(d,this.options);const{chart:c}=this.$context,u=e*c.currentDevicePixelRatio,f=n*c.currentDevicePixelRatio,h=d.isPointInStroke(a,u,f)||de(this,s,r);return d.restore(),h}const l=_(i);return gn(this,s,l,r)||de(this,s,r)}return hn(this,{mouseX:e,mouseY:n},o,{hBorderWidth:i,useFinalPosition:r})}getCenterPoint(e){return E(this,e)}draw(e){const{x:n,y:o,x2:r,y2:i,cp:s,options:a}=this;if(e.save(),!P(e,a))return e.restore();W(e,a);const d=Math.sqrt(Math.pow(r-n,2)+Math.pow(i-o,2));if(a.curve&&s)return Pn(e,this,s,d),e.restore();const{startOpts:l,endOpts:c,startAdjust:u,endAdjust:f}=at(this),h=Math.atan2(i-o,r-n);e.translate(n,o),e.rotate(h),e.beginPath(),e.moveTo(0+u,0),e.lineTo(d-f,0),e.shadowColor=a.borderShadowColor,e.stroke(),le(e,0,u,l),le(e,d,-f,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){const o=Yt(e,n),{x:r,y:i,x2:s,y2:a}=o,d=yn(o,e.chartArea),l=d?bn({x:r,y:i},{x:s,y:a},e.chartArea):{x:r,y:i,x2:s,y2:a,width:Math.abs(s-r),height:Math.abs(a-i)};if(l.centerX=(s+r)/2,l.centerY=(a+i)/2,l.initProperties=H(e,l,n),n.curve){const u={x:l.x,y:l.y},f={x:l.x2,y:l.y2};l.cp=Cn(l,n,fe(u,f))}const c=mn(e,l,n.label);return c._visible=d,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}V.id="lineAnnotation";const Ye={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};V.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},Ye),fill:!1,length:12,start:Object.assign({},Ye),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},N.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};V.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};V.defaultRoutes={borderColor:"color"};function hn(t,{mouseX:e,mouseY:n},o,{hBorderWidth:r,useFinalPosition:i}){const s=fn(e,n,t.getProps(["x","y","x2","y2"],i),o);return s.value>=s.start-r&&s.value<=s.end+r||de(t,{mouseX:e,mouseY:n},i,o)}function yn({x:t,y:e,x2:n,y2:o},{top:r,right:i,bottom:s,left:a}){return!(t<a&&n<a||t>i&&n>i||e<r&&o<r||e>s&&o>s)}function Xe({x:t,y:e},n,{top:o,right:r,bottom:i,left:s}){return t<s&&(e=Re(s,{x:t,y:e},n),t=s),t>r&&(e=Re(r,{x:t,y:e},n),t=r),e<o&&(t=se(o,{x:t,y:e},n),e=o),e>i&&(t=se(i,{x:t,y:e},n),e=i),{x:t,y:e}}function bn(t,e,n){const{x:o,y:r}=Xe(t,e,n),{x:i,y:s}=Xe(e,t,n);return{x:o,y:r,x2:i,y2:s,width:Math.abs(i-o),height:Math.abs(s-r)}}function gn(t,{mouseX:e,mouseY:n},o=v,r){const{x:i,y:s,x2:a,y2:d}=t.getProps(["x","y","x2","y2"],r),l=a-i,c=d-s,u=_(l)+_(c),f=u===0?-1:((e-i)*l+(n-s)*c)/u;let h,y;return f<0?(h=i,y=s):f>1?(h=a,y=d):(h=i+f*l,y=s+f*c),_(e-h)+_(n-y)<=o}function de(t,{mouseX:e,mouseY:n},o,r){const i=t.label;return i.options.display&&i.inRange(e,n,r,o)}function mn(t,e,n){const o=n.borderWidth,r=G(n.padding),i=pe(t.ctx,n),s=i.width+r.width+o,a=i.height+r.height+o;return wn(e,n,{width:s,height:a,padding:r},t.chartArea)}function pn(t){const{x:e,y:n,x2:o,y2:r}=t,i=Math.atan2(r-n,o-e);return i>b/2?i-b:i<b/-2?i+b:i}function wn(t,e,n,o){const{width:r,height:i,padding:s}=n,{xAdjust:a,yAdjust:d}=e,l={x:t.x,y:t.y},c={x:t.x2,y:t.y2},u=e.rotation==="auto"?pn(t):w(e.rotation),f=xn(r,i,u),h=Sn(t,e,{labelSize:f,padding:s},o),y=t.cp?ae(l,t.cp,c,h):Se(l,c,h),x={size:f.w,min:o.left,max:o.right,padding:s.left},Y={size:f.h,min:o.top,max:o.bottom,padding:s.top},g=ze(y.x,x)+a,m=ze(y.y,Y)+d;return{x:g-r/2,y:m-i/2,x2:g+r/2,y2:m+i/2,centerX:g,centerY:m,pointX:y.x,pointY:y.y,width:r,height:i,rotation:ut(u)}}function xn(t,e,n){const o=Math.cos(n),r=Math.sin(n);return{w:Math.abs(t*o)+Math.abs(e*r),h:Math.abs(t*r)+Math.abs(e*o)}}function Sn(t,e,n,o){let r;const i=Mn(t,o);return e.position==="start"?r=_e({w:t.x2-t.x,h:t.y2-t.y},n,e,i):e.position==="end"?r=1-_e({w:t.x-t.x2,h:t.y-t.y2},n,e,i):r=be(1,e.position),r}function _e(t,e,n,o){const{labelSize:r,padding:i}=e,s=t.w*o.dx,a=t.h*o.dy,d=s>0&&(r.w/2+i.left-o.x)/s,l=a>0&&(r.h/2+i.top-o.y)/a;return F(Math.max(d,l),0,.25)}function Mn(t,e){const{x:n,x2:o,y:r,y2:i}=t,s=Math.min(r,i)-e.top,a=Math.min(n,o)-e.left,d=e.bottom-Math.max(r,i),l=e.right-Math.max(n,o);return{x:Math.min(a,l),y:Math.min(s,d),dx:a<=l?1:-1,dy:s<=d?1:-1}}function ze(t,e){const{size:n,min:o,max:r,padding:i}=e,s=n/2;return n>r-o?(r+o)/2:(o>=t-i-s&&(t=o+i+s),r<=t+i+s&&(t=r-i-s),t)}function at(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,o=e.arrowHeads&&e.arrowHeads.end;return{startOpts:n,endOpts:o,startAdjust:Be(t,n),endAdjust:Be(t,o)}}function Be(t,e){if(!e||!e.display)return 0;const{length:n,width:o}=e,r=t.options.borderWidth/2,i={x:n,y:o+r};return Math.abs(se(0,i,{x:0,y:r}))}function le(t,e,n,o){if(!o||!o.display)return;const{length:r,width:i,fill:s,backgroundColor:a,borderColor:d}=o,l=Math.abs(e-r)+n;t.beginPath(),W(t,o),P(t,o),t.moveTo(l,-i),t.lineTo(e+n,0),t.lineTo(l,i),s===!0?(t.fillStyle=a||d,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=o.borderShadowColor,t.stroke()}function Cn(t,e,n){const{x:o,y:r,x2:i,y2:s,centerX:a,centerY:d}=t,l=Math.atan2(s-r,i-o),c=ge(e.controlPoint,0),u={x:a+C(n,c.x,!1),y:d+C(n,c.y,!1)};return T(u,{x:a,y:d},l)}function He(t,{x:e,y:n},{angle:o,adjust:r},i){!i||!i.display||(t.save(),t.translate(e,n),t.rotate(o),le(t,0,-r,i),t.restore())}function Pn(t,e,n,o){const{x:r,y:i,x2:s,y2:a,options:d}=e,{startOpts:l,endOpts:c,startAdjust:u,endAdjust:f}=at(e),h={x:r,y:i},y={x:s,y:a},x=Le(h,n,y,0),Y=Le(h,n,y,1)-b,g=ae(h,n,y,u/o),m=ae(h,n,y,1-f/o),k=new Path2D;t.beginPath(),k.moveTo(g.x,g.y),k.quadraticCurveTo(n.x,n.y,m.x,m.y),t.shadowColor=d.borderShadowColor,t.stroke(k),e.path=k,e.ctx=t,He(t,g,{angle:x,adjust:u},l),He(t,m,{angle:Y,adjust:f},c)}class $ extends R{inRange(e,n,o,r){const i=this.options.rotation,s=this.options.borderWidth;if(o!=="x"&&o!=="y")return kn({x:e,y:n},this.getProps(["width","height","centerX","centerY"],r),i,s);const{x:a,y:d,x2:l,y2:c}=this.getProps(["x","y","x2","y2"],r),u=s/2,f=o==="y"?{start:d,end:c}:{start:a,end:l},h=T({x:e,y:n},this.getCenterPoint(r),w(-i));return h[o]>=f.start-u-v&&h[o]<=f.end+u+v}getCenterPoint(e){return E(this,e)}draw(e){const{width:n,height:o,centerX:r,centerY:i,options:s}=this;e.save(),me(e,this.getCenterPoint(),s.rotation),W(e,this.options),e.beginPath(),e.fillStyle=s.backgroundColor;const a=P(e,s);e.ellipse(r,i,o/2,n/2,b/2,0,2*b),e.fill(),a&&(e.shadowColor=s.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return ot(e,n,!0)}}$.id="ellipseAnnotation";$.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},L.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};$.defaultRoutes={borderColor:"color",backgroundColor:"color"};$.descriptors={label:{_fallback:!0}};function kn(t,e,n,o){const{width:r,height:i,centerX:s,centerY:a}=e,d=r/2,l=i/2;if(d<=0||l<=0)return!1;const c=w(n||0),u=o/2||0,f=Math.cos(c),h=Math.sin(c),y=Math.pow(f*(t.x-s)+h*(t.y-a),2),x=Math.pow(h*(t.x-s)-f*(t.y-a),2);return y/Math.pow(d+u,2)+x/Math.pow(l+u,2)<=1.0001}class ee extends R{inRange(e,n,o,r){const{x:i,y:s,x2:a,y2:d,width:l}=this.getProps(["x","y","x2","y2","width"],r),c=this.options.borderWidth;if(o!=="x"&&o!=="y")return Ct({x:e,y:n},this.getCenterPoint(r),l/2,c);const u=c/2,f=o==="y"?{start:s,end:d,value:n}:{start:i,end:a,value:e};return f.value>=f.start-u&&f.value<=f.end+u}getCenterPoint(e){return E(this,e)}draw(e){const n=this.options,o=n.borderWidth;if(n.radius<.1)return;e.save(),e.fillStyle=n.backgroundColor,W(e,n);const r=P(e,n);It(e,this,this.centerX,this.centerY),r&&!Z(n.pointStyle)&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore(),n.borderWidth=o}resolveElementProperties(e,n){const o=nt(e,n);return o.initProperties=H(e,o,n,!0),o}}ee.id="pointAnnotation";ee.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};ee.defaultRoutes={borderColor:"color",backgroundColor:"color"};class te extends R{inRange(e,n,o,r){if(o!=="x"&&o!=="y")return this.options.radius>=.1&&this.elements.length>1&&vn(this.elements,e,n,r);const i=T({x:e,y:n},this.getCenterPoint(r),w(-this.options.rotation)),s=this.elements.map(l=>o==="y"?l.bY:l.bX),a=Math.min(...s),d=Math.max(...s);return i[o]>=a&&i[o]<=d}getCenterPoint(e){return E(this,e)}draw(e){const{elements:n,options:o}=this;e.save(),e.beginPath(),e.fillStyle=o.backgroundColor,W(e,o);const r=P(e,o);let i=!0;for(const s of n)i?(e.moveTo(s.x,s.y),i=!1):e.lineTo(s.x,s.y);e.closePath(),e.fill(),r&&(e.shadowColor=o.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,n){const o=nt(e,n),{sides:r,rotation:i}=n,s=[],a=2*b/r;let d=i*$e;for(let l=0;l<r;l++,d+=a){const c=jn(o,n,d);c.initProperties=H(e,o,n),s.push(c)}return o.elements=s,o}}te.id="polygonAnnotation";te.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};te.defaultRoutes={borderColor:"color",backgroundColor:"color"};function jn({centerX:t,centerY:e},{radius:n,borderWidth:o},r){const i=o/2,s=Math.sin(r),a=Math.cos(r),d={x:t+s*n,y:e-a*n};return{type:"point",optionScope:"point",properties:{x:d.x,y:d.y,centerX:d.x,centerY:d.y,bX:t+s*(n+i),bY:e-a*(n+i)}}}function vn(t,e,n,o){let r=!1,i=t[t.length-1].getProps(["bX","bY"],o);for(const s of t){const a=s.getProps(["bX","bY"],o);a.bY>n!=i.bY>n&&e<(i.bX-a.bX)*(n-a.bY)/(i.bY-a.bY)+a.bX&&(r=!r),i=a}return r}const M={box:L,ellipse:$,label:N,line:V,point:ee,polygon:te};Object.keys(M).forEach(t=>{ct.describe(`elements.${M[t].id}`,{_fallback:"plugins.annotation.common"})});const An={update:Object.assign},Dn=xe.concat(Q),Ne=(t,e)=>B(e)?ue(t,e):t,ce=t=>t==="color"||t==="font";function Me(t="line"){return M[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function Tn(t,e,n,o){const r=On(t,n.animations,o),i=e.annotations,s=Wn(e.elements,i);for(let a=0;a<i.length;a++){const d=i[a],l=dt(s,a,d.type),c=d.setContext(En(t,l,d)),u=l.resolveElementProperties(t,c);u.skip=In(u),"elements"in u&&(Rn(l,u.elements,c,r),delete u.elements),p(l.x)||Object.assign(l,u),Object.assign(l,u.initProperties),u.options=lt(c),r.update(l,u)}}function In(t){return isNaN(t.x)||isNaN(t.y)}function On(t,e,n){return n==="reset"||n==="none"||n==="resize"?An:new mt(t,e)}function Rn(t,e,n,o){const r=t.elements||(t.elements=[]);r.length=e.length;for(let i=0;i<e.length;i++){const s=e[i],a=s.properties,d=dt(r,i,s.type,s.initProperties),l=n[s.optionScope].override(s);a.options=lt(l),o.update(d,a)}}function dt(t,e,n,o){const r=M[Me(n)];let i=t[e];return(!i||!(i instanceof r))&&(i=t[e]=new r,Object.assign(i,o)),i}function lt(t){const e=M[Me(t.type)],n={};n.id=t.id,n.type=t.type,n.drawTime=t.drawTime,Object.assign(n,ue(t,e.defaults),ue(t,e.defaultRoutes));for(const o of Dn)n[o]=t[o];return n}function ue(t,e){const n={};for(const o of Object.keys(e)){const r=e[o],i=t[o];ce(o)&&A(i)?n[o]=i.map(s=>Ne(s,r)):n[o]=Ne(i,r)}return n}function En(t,e,n){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:n.id,type:"annotation"}))}function Wn(t,e){const n=e.length,o=t.length;if(o<n){const r=n-o;t.splice(o,0,...new Array(r))}else o>n&&t.splice(n,o-n);return t}var Ln="2.2.1";const S=new Map,Yn=xe.concat(Q);var Bn={id:"annotation",version:Ln,beforeRegister(){Pt("chart.js","3.7",oe.version)},afterRegister(){oe.register(M)},afterUnregister(){oe.unregister(M)},beforeInit(t){S.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,n){const o=S.get(t),r=o.annotations=[];let i=n.annotations;B(i)?Object.keys(i).forEach(s=>{const a=i[s];B(a)&&(a.id=s,r.push(a))}):A(i)&&r.push(...i),Qt(r,t.scales)},afterDataLimits(t,e){const n=S.get(t);Kt(t,e.scale,n.annotations.filter(o=>o.display&&o.adjustScaleRange))},afterUpdate(t,e,n){const o=S.get(t);Vt(t,o,n),Tn(t,o,n,e.mode),o.visibleElements=o.elements.filter(r=>!r.skip&&r.options.display),qt(t,o,n)},beforeDatasetsDraw(t,e,n){U(t,"beforeDatasetsDraw",n.clip)},afterDatasetsDraw(t,e,n){U(t,"afterDatasetsDraw",n.clip)},beforeDraw(t,e,n){U(t,"beforeDraw",n.clip)},afterDraw(t,e,n){U(t,"afterDraw",n.clip)},beforeEvent(t,e,n){const o=S.get(t);$t(o,e.event,n)&&(e.changed=!0)},afterDestroy(t){S.delete(t)},_getState(t){return S.get(t)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!Yn.includes(t)&&t!=="init",annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${M[Me(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:ce,_fallback:!0},_indexable:ce}},additionalOptionScopes:[""]};function U(t,e,n){const{ctx:o,chartArea:r}=t,i=S.get(t);n&&ft(o,r);const s=Xn(i.visibleElements,e).sort((a,d)=>a.element.options.z-d.element.options.z);for(const a of s)_n(o,r,i,a);n&&ht(o)}function Xn(t,e){const n=[];for(const o of t)if(o.options.drawTime===e&&n.push({element:o,main:!0}),o.elements&&o.elements.length)for(const r of o.elements)r.options.display&&r.options.drawTime===e&&n.push({element:r});return n}function _n(t,e,n,o){const r=o.element;o.main?(De(n,r,"beforeDraw"),r.draw(t,e),De(n,r,"afterDraw")):r.draw(t,e)}const Hn=(t,e,n)=>{if(typeof t=="string")return t;const o=Number.parseInt(t.toString());return o>999999?`${o/1e6}M`:o>999?`${o/1e3}k`:o};export{Bn as a,Hn as f};
|
|
6
|
+
*/const Pe={modes:{point(t,e){return q(t,e,{intersect:!0})},nearest(t,e,n){return xt(t,e,n)},x(t,e,n){return q(t,e,{intersect:n.intersect,axis:"x"})},y(t,e,n){return q(t,e,{intersect:n.intersect,axis:"y"})}}};function ye(t,e,n){return(Pe.modes[n.mode]||Pe.modes.nearest)(t,e,n)}function pt(t,e,n){return n!=="x"&&n!=="y"?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,n,!0)}function wt(t,e,n){return n==="x"?{x:t.x,y:e.y}:n==="y"?{x:e.x,y:t.y}:e}function q(t,e,n){return t.visibleElements.filter(o=>n.intersect?o.inRange(e.x,e.y):pt(o,e,n.axis))}function xt(t,e,n){let o=Number.POSITIVE_INFINITY;return q(t,e,n).reduce((r,i)=>{const s=i.getCenterPoint(),a=wt(e,s,n.axis),d=fe(e,a);return d<o?(r=[i],o=d):d===o&&r.push(i),r},[]).sort((r,i)=>r._index-i._index).slice(0,1)}const St=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,D=.001,F=(t,e,n)=>Math.min(n,Math.max(e,t));function Mt(t,e,n){for(const o of Object.keys(t))t[o]=F(t[o],e,n);return t}function Ct(t,e,n,o){if(!t||!e||n<=0)return!1;const r=o/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(n+r,2)}function Je(t,{x:e,y:n,x2:o,y2:r},i,s){const a=s/2,d=t.x>=e-a-D&&t.x<=o+a+D,l=t.y>=n-a-D&&t.y<=r+a+D;return i==="x"?d:(i==="y"||d)&&l}function E(t,e){const{centerX:n,centerY:o}=t.getProps(["centerX","centerY"],e);return{x:n,y:o}}function kt(t,e,n,o=!0){const r=n.split(".");let i=0;for(const s of e.split(".")){const a=r[i++];if(parseInt(s,10)<parseInt(a,10))break;if(St(a,s)){if(o)throw new Error(`${t} v${n} is not supported. v${e} or newer is required.`);return!1}}return!0}const Ue=t=>typeof t=="string"&&t.endsWith("%"),qe=t=>parseFloat(t)/100,Ke=t=>F(qe(t),0,1);function be(t,e){return e==="start"?0:e==="end"?t:Ue(e)?Ke(e)*t:t/2}function C(t,e,n=!0){return typeof e=="number"?e:Ue(e)?(n?Ke(e):qe(e))*t:t}function Pt(t,e){const{x:n,width:o}=t,r=e.textAlign;return r==="center"?n+o/2:r==="end"||r==="right"?n+o:n}function ge(t,e="center"){return B(t)?{x:z(t.x,e),y:z(t.y,e)}:(t=z(t,e),{x:t,y:t})}function Ge(t){return t&&(p(t.xValue)||p(t.yValue))}function H(t,e,n,o=!1){const r=n.init;if(r){if(r===!0)return Fe(e,o)}else return;return vt(e,o,he(r,[{chart:t,properties:e,options:n}]))}function Qe(t,e,n){let o=!1;return e.forEach(r=>{T(t[r])?(o=!0,n[r]=t[r]):p(n[r])&&delete n[r]}),o}function Fe({centerX:t,centerY:e},n){return n?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}function vt(t,e,n){if(n===!0)return Fe(t,e);if(B(n))return n}const re=new Map,Dt=t=>isNaN(t)||t<=0,At=t=>t.reduce(function(e,n){return e+=n.string,e},"");function Z(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object HTMLImageElement]"||e==="[object HTMLCanvasElement]"}}function me(t,{x:e,y:n},o){o&&(t.translate(e,n),t.rotate(w(o)),t.translate(-e,-n))}function k(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function W(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function pe(t,e){const n=e.content;if(Z(n))return{width:C(n.width,e.width),height:C(n.height,e.height)};const o=e.font,r=A(o)?o.map(d=>K(d)):[K(o)],i=e.textStrokeWidth,s=A(n)?n:[n],a=s.join()+At(r)+i+(t._measureText?"-spriting":"");return re.has(a)||re.set(a,Rt(t,s,r,i)),re.get(a)}function Ze(t,e,n){const{x:o,y:r,width:i,height:s}=e;t.save(),W(t,n);const a=k(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),yt(t,{x:o,y:r,w:i,h:s,radius:Mt(bt(n.borderRadius),0,Math.min(i,s)/2)}),t.closePath(),t.fill(),a&&(t.shadowColor=n.borderShadowColor,t.stroke()),t.restore()}function jt(t,e,n){const o=n.content;if(Z(o)){t.save(),t.globalAlpha=Lt(n.opacity,o.style.opacity),t.drawImage(o,e.x,e.y,e.width,e.height),t.restore();return}const r=A(o)?o:[o],i=n.font,s=A(i)?i.map(u=>K(u)):[K(i)],a=n.color,d=A(a)?a:[a],l=Pt(e,n),c=e.y+n.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=n.textAlign,It(t,n)&&Et(t,{x:l,y:c},r,s),Wt(t,{x:l,y:c},r,{fonts:s,colors:d}),t.restore()}function It(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}function Tt(t,e,n,o){const{radius:r,options:i}=e,s=i.pointStyle,a=i.rotation;let d=(a||0)*Ve;if(Z(s)){t.save(),t.translate(n,o),t.rotate(d),t.drawImage(s,-s.width/2,-s.height/2,s.width,s.height),t.restore();return}Dt(r)||Ot(t,{x:n,y:o,radius:r,rotation:a,style:s,rad:d})}function Ot(t,{x:e,y:n,radius:o,rotation:r,style:i,rad:s}){let a,d,l,c;switch(t.beginPath(),i){default:t.arc(e,n,o,0,gt),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Ce,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Ce,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),t.closePath();break;case"rectRounded":c=o*.516,l=o-c,a=Math.cos(s+_)*l,d=Math.sin(s+_)*l,t.arc(e-a,n-d,c,s-b,s-J),t.arc(e+d,n-a,c,s-J,s),t.arc(e+a,n+d,c,s,s+J),t.arc(e-d,n+a,c,s+J,s+b),t.closePath();break;case"rect":if(!r){l=Math.SQRT1_2*o,t.rect(e-l,n-l,2*l,2*l);break}s+=_;case"rectRot":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+d,n-a),t.lineTo(e+a,n+d),t.lineTo(e-d,n+a),t.closePath();break;case"crossRot":s+=_;case"cross":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"star":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a),s+=_,a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"line":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d);break;case"dash":t.moveTo(e,n),t.lineTo(e+Math.cos(s)*o,n+Math.sin(s)*o);break}t.fill()}function Rt(t,e,n,o){t.save();const r=e.length;let i=0,s=o;for(let a=0;a<r;a++){const d=n[Math.min(a,n.length-1)];t.font=d.string;const l=e[a];i=Math.max(i,t.measureText(l).width+o),s+=d.lineHeight}return t.restore(),{width:i,height:s}}function Et(t,{x:e,y:n},o,r){t.beginPath();let i=0;o.forEach(function(s,a){const d=r[Math.min(a,r.length-1)],l=d.lineHeight;t.font=d.string,t.strokeText(s,e,n+l/2+i),i+=l}),t.stroke()}function Wt(t,{x:e,y:n},o,{fonts:r,colors:i}){let s=0;o.forEach(function(a,d){const l=i[Math.min(d,i.length-1)],c=r[Math.min(d,r.length-1)],u=c.lineHeight;t.beginPath(),t.font=c.string,t.fillStyle=l,t.fillText(a,e,n+u/2+s),s+=u,t.fill()})}function Lt(t,e){const n=ke(t)?t:e;return ke(n)?F(n,0,1):1}const ve={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function O(t,e,n){return e=typeof e=="number"?e:t.parse(e),$e(e)?t.getPixelForValue(e):n}function j(t,e,n){const o=e[n];if(o||n==="scaleID")return o;const r=n.charAt(0),i=Object.values(t).filter(s=>s.axis&&s.axis===r);return i.length?i[0].id:r}function et(t,e){if(t){const n=t.options.reverse,o=O(t,e.min,n?e.end:e.start),r=O(t,e.max,n?e.start:e.end);return{start:o,end:r}}}function tt(t,e){const{chartArea:n,scales:o}=t,r=o[j(o,e,"xScaleID")],i=o[j(o,e,"yScaleID")];let s=n.width/2,a=n.height/2;return r&&(s=O(r,e.xValue,r.left+r.width/2)),i&&(a=O(i,e.yValue,i.top+i.height/2)),{x:s,y:a}}function we(t,e){const n=t.scales,o=n[j(n,e,"xScaleID")],r=n[j(n,e,"yScaleID")];if(!o&&!r)return{};let{left:i,right:s}=o||t.chartArea,{top:a,bottom:d}=r||t.chartArea;const l=De(o,{min:e.xMin,max:e.xMax,start:i,end:s});i=l.start,s=l.end;const c=De(r,{min:e.yMin,max:e.yMax,start:d,end:a});return a=c.start,d=c.end,{x:i,y:a,x2:s,y2:d,width:s-i,height:d-a,centerX:i+(s-i)/2,centerY:a+(d-a)/2}}function nt(t,e){if(!Ge(e)){const n=we(t,e);let o=e.radius;(!o||isNaN(o))&&(o=Math.min(n.width,n.height)/2,e.radius=o);const r=o*2,i=n.centerX+e.xAdjust,s=n.centerY+e.yAdjust;return{x:i-o,y:s-o,x2:i+o,y2:s+o,centerX:i,centerY:s,width:r,height:r,radius:o}}return _t(t,e)}function Yt(t,e){const{scales:n,chartArea:o}=t,r=n[e.scaleID],i={x:o.left,y:o.top,x2:o.right,y2:o.bottom};return r?Xt(r,i,e):zt(n,i,e),i}function ot(t,e,n){const o=we(t,e);return o.initProperties=H(t,o,e,n),o.elements=[{type:"label",optionScope:"label",properties:Nt(t,o,e),initProperties:o.initProperties}],o}function _t(t,e){const n=tt(t,e),o=e.radius*2;return{x:n.x-e.radius+e.xAdjust,y:n.y-e.radius+e.yAdjust,x2:n.x+e.radius+e.xAdjust,y2:n.y+e.radius+e.yAdjust,centerX:n.x+e.xAdjust,centerY:n.y+e.yAdjust,radius:e.radius,width:o,height:o}}function De(t,e){const n=et(t,e)||e;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function Xt(t,e,n){const o=O(t,n.value,NaN),r=O(t,n.endValue,o);t.isHorizontal()?(e.x=o,e.x2=r):(e.y=o,e.y2=r)}function zt(t,e,n){for(const o of Object.keys(ve)){const r=t[j(t,n,o)];if(r){const{min:i,max:s,start:a,end:d,startProp:l,endProp:c}=ve[o],u=et(r,{min:n[i],max:n[s],start:r[a],end:r[d]});e[l]=u.start,e[c]=u.end}}}function Bt({properties:t,options:e},n,o,r){const{x:i,x2:s,width:a}=t;return rt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.x,padding:{start:r.left,end:r.right},adjust:e.label.xAdjust,size:n.width})}function Ht({properties:t,options:e},n,o,r){const{y:i,y2:s,height:a}=t;return rt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.y,padding:{start:r.top,end:r.bottom},adjust:e.label.yAdjust,size:n.height})}function rt(t,e){const{start:n,end:o,borderWidth:r}=t,{position:i,padding:{start:s,end:a},adjust:d}=e,l=o-r-n-s-a-e.size;return n+r/2+d+be(l,i)}function Nt(t,e,n){const o=n.label;o.backgroundColor="transparent",o.callout.display=!1;const r=ge(o.position),i=Q(o.padding),s=pe(t.ctx,o),a=Bt({properties:e,options:n},s,r,i),d=Ht({properties:e,options:n},s,r,i),l=s.width+i.width,c=s.height+i.height;return{x:a,y:d,x2:a+l,y2:d+c,width:l,height:c,centerX:a+l/2,centerY:d+c/2,rotation:o.rotation}}function I(t,e,n){const o=Math.cos(n),r=Math.sin(n),i=e.x,s=e.y;return{x:i+o*(t.x-i)-r*(t.y-s),y:s+r*(t.x-i)+o*(t.y-s)}}const ie=["enter","leave"],xe=ie.concat("click");function $t(t,e,n){e.listened=Qe(n,xe,e.listeners),e.moveListened=!1,e._getElements=ye,ie.forEach(o=>{T(n[o])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(o=>{!e.listened&&T(o.click)&&(e.listened=!0),e.moveListened||ie.forEach(r=>{T(o[r])&&(e.listened=!0,e.moveListened=!0)})})}function Vt(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Jt(t,e,n);case"click":return Ut(t,e,n)}}function Jt(t,e,n){if(!t.moveListened)return;let o;e.type==="mousemove"?o=ye(t,e,n.interaction):o=[];const r=t.hovered;t.hovered=o;const i={state:t,event:e};let s=Ae(i,"leave",r,o);return Ae(i,"enter",o,r)||s}function Ae({state:t,event:e},n,o,r){let i;for(const s of o)r.indexOf(s)<0&&(i=it(s.options[n]||t.listeners[n],s,e)||i);return i}function Ut(t,e,n){const o=t.listeners,r=ye(t,e,n.interaction);let i;for(const s of r)i=it(s.options.click||o.click,s,e)||i;return i}function it(t,e,n){return he(t,[e.$context,n])===!0}const G=["afterDraw","beforeDraw"];function qt(t,e,n){const o=e.visibleElements;e.hooked=Qe(n,G,e.hooks),e.hooked||o.forEach(r=>{e.hooked||G.forEach(i=>{T(r.options[i])&&(e.hooked=!0)})})}function je(t,e,n){if(t.hooked){const o=e.options[n]||t.hooks[n];return he(o,[e.$context])}}function Kt(t,e,n){const o=en(t.scales,e,n);let r=Ie(e,o,"min","suggestedMin");r=Ie(e,o,"max","suggestedMax")||r,r&&T(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Gt(t,e){for(const n of t)Ft(n,e)}function Ie(t,e,n,o){if($e(e[n])&&!Qt(t.options,n,o)){const r=t[n]!==e[n];return t[n]=e[n],r}}function Qt(t,e,n){return p(t[e])||p(t[n])}function Ft(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const o=j(e,t,n);o&&!e[o]&&Zt(t,n)&&console.warn(`No scale found with id '${o}' for annotation '${t.id}'`)}}function Zt(t,e){if(e==="scaleID")return!0;const n=e.charAt(0);for(const o of["Min","Max","Value"])if(p(t[n+o]))return!0;return!1}function en(t,e,n){const o=e.axis,r=e.id,i=o+"ScaleID",s={min:z(e.min,Number.NEGATIVE_INFINITY),max:z(e.max,Number.POSITIVE_INFINITY)};for(const a of n)a.scaleID===r?Te(a,e,["value","endValue"],s):j(t,a,i)===r&&Te(a,e,[o+"Min",o+"Max",o+"Value"],s);return s}function Te(t,e,n,o){for(const r of n){const i=t[r];if(p(i)){const s=e.parse(i);o.min=Math.min(o.min,s),o.max=Math.max(o.max,s)}}}class L extends R{inRange(e,n,o,r){const{x:i,y:s}=I({x:e,y:n},this.getCenterPoint(r),w(-this.options.rotation));return Je({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return E(this,e)}draw(e){e.save(),me(e,this.getCenterPoint(),this.options.rotation),Ze(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return ot(e,n)}}L.id="boxAnnotation";L.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};L.defaultRoutes={borderColor:"color",backgroundColor:"color"};L.descriptors={label:{_fallback:!0}};const st=["left","bottom","top","right"];class N extends R{inRange(e,n,o,r){const{x:i,y:s}=I({x:e,y:n},this.getCenterPoint(r),w(-this.rotation));return Je({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return E(this,e)}draw(e){const n=this.options,o=!p(this._visible)||this._visible;!n.display||!n.content||!o||(e.save(),me(e,this.getCenterPoint(),this.rotation),nn(e,this),Ze(e,this,n),jt(e,cn(this),n),e.restore())}resolveElementProperties(e,n){let o;if(Ge(n))o=tt(e,n);else{const{centerX:a,centerY:d}=we(e,n);o={x:a,y:d}}const r=Q(n.padding),i=pe(e.ctx,n),s=tn(o,i,n,r);return{initProperties:H(e,s,n),pointX:o.x,pointY:o.y,...s,rotation:n.rotation}}}N.id="labelAnnotation";N.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};N.defaultRoutes={borderColor:"color"};function tn(t,e,n,o){const r=e.width+o.width+n.borderWidth,i=e.height+o.height+n.borderWidth,s=ge(n.position,"center"),a=Oe(t.x,r,n.xAdjust,s.x),d=Oe(t.y,i,n.yAdjust,s.y);return{x:a,y:d,x2:a+r,y2:d+i,width:r,height:i,centerX:a+r/2,centerY:d+i/2}}function Oe(t,e,n=0,o){return t-be(e,o)+n}function nn(t,e){const{pointX:n,pointY:o,options:r}=e,i=r.callout,s=i&&i.display&&dn(e,i);if(!s||un(e,i,s))return;if(t.save(),t.beginPath(),!k(t,i))return t.restore();const{separatorStart:d,separatorEnd:l}=on(e,s),{sideStart:c,sideEnd:u}=sn(e,s,d);(i.margin>0||r.borderWidth===0)&&(t.moveTo(d.x,d.y),t.lineTo(l.x,l.y)),t.moveTo(c.x,c.y),t.lineTo(u.x,u.y);const f=I({x:n,y:o},e.getCenterPoint(),w(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}function on(t,e){const{x:n,y:o,x2:r,y2:i}=t,s=rn(t,e);let a,d;return e==="left"||e==="right"?(a={x:n+s,y:o},d={x:a.x,y:i}):(a={x:n,y:o+s},d={x:r,y:a.y}),{separatorStart:a,separatorEnd:d}}function rn(t,e){const{width:n,height:o,options:r}=t,i=r.callout.margin+r.borderWidth/2;return e==="right"?n+i:e==="bottom"?o+i:-i}function sn(t,e,n){const{y:o,width:r,height:i,options:s}=t,a=s.callout.start,d=an(e,s.callout);let l,c;return e==="left"||e==="right"?(l={x:n.x,y:o+C(i,a)},c={x:l.x+d,y:l.y}):(l={x:n.x+C(r,a),y:n.y},c={x:l.x,y:l.y+d}),{sideStart:l,sideEnd:c}}function an(t,e){const n=e.side;return t==="left"||t==="top"?-n:n}function dn(t,e){const n=e.position;return st.includes(n)?n:ln(t,e)}function ln(t,e){const{x:n,y:o,x2:r,y2:i,width:s,height:a,pointX:d,pointY:l,centerX:c,centerY:u,rotation:f}=t,h={x:c,y:u},y=e.start,x=C(s,y),Y=C(a,y),g=[n,n+x,n+x,r],m=[o+Y,i,o,i],P=[];for(let v=0;v<4;v++){const ne=I({x:g[v],y:m[v]},h,w(f));P.push({position:st[v],distance:fe(ne,{x:d,y:l})})}return P.sort((v,ne)=>v.distance-ne.distance)[0].position}function cn({x:t,y:e,width:n,height:o,options:r}){const i=r.borderWidth/2,s=Q(r.padding);return{x:t+s.left+i,y:e+s.top+i,width:n-s.left-s.right-r.borderWidth,height:o-s.top-s.bottom-r.borderWidth}}function un(t,e,n){const{pointX:o,pointY:r}=t,i=e.margin;let s=o,a=r;return n==="left"?s+=i:n==="right"?s-=i:n==="top"?a+=i:n==="bottom"&&(a-=i),t.inRange(s,a)}const Se=(t,e,n)=>({x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}),se=(t,e,n)=>Se(e,n,Math.abs((t-e.y)/(n.y-e.y))).x,Re=(t,e,n)=>Se(e,n,Math.abs((t-e.x)/(n.x-e.x))).y,X=t=>t*t,fn=(t,e,{x:n,y:o,x2:r,y2:i},s)=>s==="y"?{start:Math.min(o,i),end:Math.max(o,i),value:e}:{start:Math.min(n,r),end:Math.max(n,r),value:t},Ee=(t,e,n,o)=>(1-o)*(1-o)*t+2*(1-o)*o*e+o*o*n,ae=(t,e,n,o)=>({x:Ee(t.x,e.x,n.x,o),y:Ee(t.y,e.y,n.y,o)}),We=(t,e,n,o)=>2*(1-o)*(e-t)+2*o*(n-e),Le=(t,e,n,o)=>-Math.atan2(We(t.x,e.x,n.x,o),We(t.y,e.y,n.y,o))+.5*b;class $ extends R{inRange(e,n,o,r){const i=this.options.borderWidth/2;if(o!=="x"&&o!=="y"){const s={mouseX:e,mouseY:n},{path:a,ctx:d}=this;if(a){k(d,this.options);const{chart:c}=this.$context,u=e*c.currentDevicePixelRatio,f=n*c.currentDevicePixelRatio,h=d.isPointInStroke(a,u,f)||de(this,s,r);return d.restore(),h}const l=X(i);return gn(this,s,l,r)||de(this,s,r)}return hn(this,{mouseX:e,mouseY:n},o,{hBorderWidth:i,useFinalPosition:r})}getCenterPoint(e){return E(this,e)}draw(e){const{x:n,y:o,x2:r,y2:i,cp:s,options:a}=this;if(e.save(),!k(e,a))return e.restore();W(e,a);const d=Math.sqrt(Math.pow(r-n,2)+Math.pow(i-o,2));if(a.curve&&s)return kn(e,this,s,d),e.restore();const{startOpts:l,endOpts:c,startAdjust:u,endAdjust:f}=at(this),h=Math.atan2(i-o,r-n);e.translate(n,o),e.rotate(h),e.beginPath(),e.moveTo(0+u,0),e.lineTo(d-f,0),e.shadowColor=a.borderShadowColor,e.stroke(),le(e,0,u,l),le(e,d,-f,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){const o=Yt(e,n),{x:r,y:i,x2:s,y2:a}=o,d=yn(o,e.chartArea),l=d?bn({x:r,y:i},{x:s,y:a},e.chartArea):{x:r,y:i,x2:s,y2:a,width:Math.abs(s-r),height:Math.abs(a-i)};if(l.centerX=(s+r)/2,l.centerY=(a+i)/2,l.initProperties=H(e,l,n),n.curve){const u={x:l.x,y:l.y},f={x:l.x2,y:l.y2};l.cp=Cn(l,n,fe(u,f))}const c=mn(e,l,n.label);return c._visible=d,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}$.id="lineAnnotation";const Ye={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};$.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},Ye),fill:!1,length:12,start:Object.assign({},Ye),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},N.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};$.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};$.defaultRoutes={borderColor:"color"};function hn(t,{mouseX:e,mouseY:n},o,{hBorderWidth:r,useFinalPosition:i}){const s=fn(e,n,t.getProps(["x","y","x2","y2"],i),o);return s.value>=s.start-r&&s.value<=s.end+r||de(t,{mouseX:e,mouseY:n},i,o)}function yn({x:t,y:e,x2:n,y2:o},{top:r,right:i,bottom:s,left:a}){return!(t<a&&n<a||t>i&&n>i||e<r&&o<r||e>s&&o>s)}function _e({x:t,y:e},n,{top:o,right:r,bottom:i,left:s}){return t<s&&(e=Re(s,{x:t,y:e},n),t=s),t>r&&(e=Re(r,{x:t,y:e},n),t=r),e<o&&(t=se(o,{x:t,y:e},n),e=o),e>i&&(t=se(i,{x:t,y:e},n),e=i),{x:t,y:e}}function bn(t,e,n){const{x:o,y:r}=_e(t,e,n),{x:i,y:s}=_e(e,t,n);return{x:o,y:r,x2:i,y2:s,width:Math.abs(i-o),height:Math.abs(s-r)}}function gn(t,{mouseX:e,mouseY:n},o=D,r){const{x:i,y:s,x2:a,y2:d}=t.getProps(["x","y","x2","y2"],r),l=a-i,c=d-s,u=X(l)+X(c),f=u===0?-1:((e-i)*l+(n-s)*c)/u;let h,y;return f<0?(h=i,y=s):f>1?(h=a,y=d):(h=i+f*l,y=s+f*c),X(e-h)+X(n-y)<=o}function de(t,{mouseX:e,mouseY:n},o,r){const i=t.label;return i.options.display&&i.inRange(e,n,r,o)}function mn(t,e,n){const o=n.borderWidth,r=Q(n.padding),i=pe(t.ctx,n),s=i.width+r.width+o,a=i.height+r.height+o;return wn(e,n,{width:s,height:a,padding:r},t.chartArea)}function pn(t){const{x:e,y:n,x2:o,y2:r}=t,i=Math.atan2(r-n,o-e);return i>b/2?i-b:i<b/-2?i+b:i}function wn(t,e,n,o){const{width:r,height:i,padding:s}=n,{xAdjust:a,yAdjust:d}=e,l={x:t.x,y:t.y},c={x:t.x2,y:t.y2},u=e.rotation==="auto"?pn(t):w(e.rotation),f=xn(r,i,u),h=Sn(t,e,{labelSize:f,padding:s},o),y=t.cp?ae(l,t.cp,c,h):Se(l,c,h),x={size:f.w,min:o.left,max:o.right,padding:s.left},Y={size:f.h,min:o.top,max:o.bottom,padding:s.top},g=ze(y.x,x)+a,m=ze(y.y,Y)+d;return{x:g-r/2,y:m-i/2,x2:g+r/2,y2:m+i/2,centerX:g,centerY:m,pointX:y.x,pointY:y.y,width:r,height:i,rotation:ut(u)}}function xn(t,e,n){const o=Math.cos(n),r=Math.sin(n);return{w:Math.abs(t*o)+Math.abs(e*r),h:Math.abs(t*r)+Math.abs(e*o)}}function Sn(t,e,n,o){let r;const i=Mn(t,o);return e.position==="start"?r=Xe({w:t.x2-t.x,h:t.y2-t.y},n,e,i):e.position==="end"?r=1-Xe({w:t.x-t.x2,h:t.y-t.y2},n,e,i):r=be(1,e.position),r}function Xe(t,e,n,o){const{labelSize:r,padding:i}=e,s=t.w*o.dx,a=t.h*o.dy,d=s>0&&(r.w/2+i.left-o.x)/s,l=a>0&&(r.h/2+i.top-o.y)/a;return F(Math.max(d,l),0,.25)}function Mn(t,e){const{x:n,x2:o,y:r,y2:i}=t,s=Math.min(r,i)-e.top,a=Math.min(n,o)-e.left,d=e.bottom-Math.max(r,i),l=e.right-Math.max(n,o);return{x:Math.min(a,l),y:Math.min(s,d),dx:a<=l?1:-1,dy:s<=d?1:-1}}function ze(t,e){const{size:n,min:o,max:r,padding:i}=e,s=n/2;return n>r-o?(r+o)/2:(o>=t-i-s&&(t=o+i+s),r<=t+i+s&&(t=r-i-s),t)}function at(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,o=e.arrowHeads&&e.arrowHeads.end;return{startOpts:n,endOpts:o,startAdjust:Be(t,n),endAdjust:Be(t,o)}}function Be(t,e){if(!e||!e.display)return 0;const{length:n,width:o}=e,r=t.options.borderWidth/2,i={x:n,y:o+r};return Math.abs(se(0,i,{x:0,y:r}))}function le(t,e,n,o){if(!o||!o.display)return;const{length:r,width:i,fill:s,backgroundColor:a,borderColor:d}=o,l=Math.abs(e-r)+n;t.beginPath(),W(t,o),k(t,o),t.moveTo(l,-i),t.lineTo(e+n,0),t.lineTo(l,i),s===!0?(t.fillStyle=a||d,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=o.borderShadowColor,t.stroke()}function Cn(t,e,n){const{x:o,y:r,x2:i,y2:s,centerX:a,centerY:d}=t,l=Math.atan2(s-r,i-o),c=ge(e.controlPoint,0),u={x:a+C(n,c.x,!1),y:d+C(n,c.y,!1)};return I(u,{x:a,y:d},l)}function He(t,{x:e,y:n},{angle:o,adjust:r},i){!i||!i.display||(t.save(),t.translate(e,n),t.rotate(o),le(t,0,-r,i),t.restore())}function kn(t,e,n,o){const{x:r,y:i,x2:s,y2:a,options:d}=e,{startOpts:l,endOpts:c,startAdjust:u,endAdjust:f}=at(e),h={x:r,y:i},y={x:s,y:a},x=Le(h,n,y,0),Y=Le(h,n,y,1)-b,g=ae(h,n,y,u/o),m=ae(h,n,y,1-f/o),P=new Path2D;t.beginPath(),P.moveTo(g.x,g.y),P.quadraticCurveTo(n.x,n.y,m.x,m.y),t.shadowColor=d.borderShadowColor,t.stroke(P),e.path=P,e.ctx=t,He(t,g,{angle:x,adjust:u},l),He(t,m,{angle:Y,adjust:f},c)}class V extends R{inRange(e,n,o,r){const i=this.options.rotation,s=this.options.borderWidth;if(o!=="x"&&o!=="y")return Pn({x:e,y:n},this.getProps(["width","height","centerX","centerY"],r),i,s);const{x:a,y:d,x2:l,y2:c}=this.getProps(["x","y","x2","y2"],r),u=s/2,f=o==="y"?{start:d,end:c}:{start:a,end:l},h=I({x:e,y:n},this.getCenterPoint(r),w(-i));return h[o]>=f.start-u-D&&h[o]<=f.end+u+D}getCenterPoint(e){return E(this,e)}draw(e){const{width:n,height:o,centerX:r,centerY:i,options:s}=this;e.save(),me(e,this.getCenterPoint(),s.rotation),W(e,this.options),e.beginPath(),e.fillStyle=s.backgroundColor;const a=k(e,s);e.ellipse(r,i,o/2,n/2,b/2,0,2*b),e.fill(),a&&(e.shadowColor=s.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return ot(e,n,!0)}}V.id="ellipseAnnotation";V.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},L.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};V.defaultRoutes={borderColor:"color",backgroundColor:"color"};V.descriptors={label:{_fallback:!0}};function Pn(t,e,n,o){const{width:r,height:i,centerX:s,centerY:a}=e,d=r/2,l=i/2;if(d<=0||l<=0)return!1;const c=w(n||0),u=o/2||0,f=Math.cos(c),h=Math.sin(c),y=Math.pow(f*(t.x-s)+h*(t.y-a),2),x=Math.pow(h*(t.x-s)-f*(t.y-a),2);return y/Math.pow(d+u,2)+x/Math.pow(l+u,2)<=1.0001}class ee extends R{inRange(e,n,o,r){const{x:i,y:s,x2:a,y2:d,width:l}=this.getProps(["x","y","x2","y2","width"],r),c=this.options.borderWidth;if(o!=="x"&&o!=="y")return Ct({x:e,y:n},this.getCenterPoint(r),l/2,c);const u=c/2,f=o==="y"?{start:s,end:d,value:n}:{start:i,end:a,value:e};return f.value>=f.start-u&&f.value<=f.end+u}getCenterPoint(e){return E(this,e)}draw(e){const n=this.options,o=n.borderWidth;if(n.radius<.1)return;e.save(),e.fillStyle=n.backgroundColor,W(e,n);const r=k(e,n);Tt(e,this,this.centerX,this.centerY),r&&!Z(n.pointStyle)&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore(),n.borderWidth=o}resolveElementProperties(e,n){const o=nt(e,n);return o.initProperties=H(e,o,n,!0),o}}ee.id="pointAnnotation";ee.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};ee.defaultRoutes={borderColor:"color",backgroundColor:"color"};class te extends R{inRange(e,n,o,r){if(o!=="x"&&o!=="y")return this.options.radius>=.1&&this.elements.length>1&&Dn(this.elements,e,n,r);const i=I({x:e,y:n},this.getCenterPoint(r),w(-this.options.rotation)),s=this.elements.map(l=>o==="y"?l.bY:l.bX),a=Math.min(...s),d=Math.max(...s);return i[o]>=a&&i[o]<=d}getCenterPoint(e){return E(this,e)}draw(e){const{elements:n,options:o}=this;e.save(),e.beginPath(),e.fillStyle=o.backgroundColor,W(e,o);const r=k(e,o);let i=!0;for(const s of n)i?(e.moveTo(s.x,s.y),i=!1):e.lineTo(s.x,s.y);e.closePath(),e.fill(),r&&(e.shadowColor=o.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,n){const o=nt(e,n),{sides:r,rotation:i}=n,s=[],a=2*b/r;let d=i*Ve;for(let l=0;l<r;l++,d+=a){const c=vn(o,n,d);c.initProperties=H(e,o,n),s.push(c)}return o.elements=s,o}}te.id="polygonAnnotation";te.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};te.defaultRoutes={borderColor:"color",backgroundColor:"color"};function vn({centerX:t,centerY:e},{radius:n,borderWidth:o},r){const i=o/2,s=Math.sin(r),a=Math.cos(r),d={x:t+s*n,y:e-a*n};return{type:"point",optionScope:"point",properties:{x:d.x,y:d.y,centerX:d.x,centerY:d.y,bX:t+s*(n+i),bY:e-a*(n+i)}}}function Dn(t,e,n,o){let r=!1,i=t[t.length-1].getProps(["bX","bY"],o);for(const s of t){const a=s.getProps(["bX","bY"],o);a.bY>n!=i.bY>n&&e<(i.bX-a.bX)*(n-a.bY)/(i.bY-a.bY)+a.bX&&(r=!r),i=a}return r}const M={box:L,ellipse:V,label:N,line:$,point:ee,polygon:te};Object.keys(M).forEach(t=>{ct.describe(`elements.${M[t].id}`,{_fallback:"plugins.annotation.common"})});const An={update:Object.assign},jn=xe.concat(G),Ne=(t,e)=>B(e)?ue(t,e):t,ce=t=>t==="color"||t==="font";function Me(t="line"){return M[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function In(t,e,n,o){const r=On(t,n.animations,o),i=e.annotations,s=Wn(e.elements,i);for(let a=0;a<i.length;a++){const d=i[a],l=dt(s,a,d.type),c=d.setContext(En(t,l,d)),u=l.resolveElementProperties(t,c);u.skip=Tn(u),"elements"in u&&(Rn(l,u.elements,c,r),delete u.elements),p(l.x)||Object.assign(l,u),Object.assign(l,u.initProperties),u.options=lt(c),r.update(l,u)}}function Tn(t){return isNaN(t.x)||isNaN(t.y)}function On(t,e,n){return n==="reset"||n==="none"||n==="resize"?An:new mt(t,e)}function Rn(t,e,n,o){const r=t.elements||(t.elements=[]);r.length=e.length;for(let i=0;i<e.length;i++){const s=e[i],a=s.properties,d=dt(r,i,s.type,s.initProperties),l=n[s.optionScope].override(s);a.options=lt(l),o.update(d,a)}}function dt(t,e,n,o){const r=M[Me(n)];let i=t[e];return(!i||!(i instanceof r))&&(i=t[e]=new r,Object.assign(i,o)),i}function lt(t){const e=M[Me(t.type)],n={};n.id=t.id,n.type=t.type,n.drawTime=t.drawTime,Object.assign(n,ue(t,e.defaults),ue(t,e.defaultRoutes));for(const o of jn)n[o]=t[o];return n}function ue(t,e){const n={};for(const o of Object.keys(e)){const r=e[o],i=t[o];ce(o)&&A(i)?n[o]=i.map(s=>Ne(s,r)):n[o]=Ne(i,r)}return n}function En(t,e,n){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:n.id,type:"annotation"}))}function Wn(t,e){const n=e.length,o=t.length;if(o<n){const r=n-o;t.splice(o,0,...new Array(r))}else o>n&&t.splice(n,o-n);return t}var Ln="2.2.1";const S=new Map,Yn=xe.concat(G);var Bn={id:"annotation",version:Ln,beforeRegister(){kt("chart.js","3.7",oe.version)},afterRegister(){oe.register(M)},afterUnregister(){oe.unregister(M)},beforeInit(t){S.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,n){const o=S.get(t),r=o.annotations=[];let i=n.annotations;B(i)?Object.keys(i).forEach(s=>{const a=i[s];B(a)&&(a.id=s,r.push(a))}):A(i)&&r.push(...i),Gt(r,t.scales)},afterDataLimits(t,e){const n=S.get(t);Kt(t,e.scale,n.annotations.filter(o=>o.display&&o.adjustScaleRange))},afterUpdate(t,e,n){const o=S.get(t);$t(t,o,n),In(t,o,n,e.mode),o.visibleElements=o.elements.filter(r=>!r.skip&&r.options.display),qt(t,o,n)},beforeDatasetsDraw(t,e,n){U(t,"beforeDatasetsDraw",n.clip)},afterDatasetsDraw(t,e,n){U(t,"afterDatasetsDraw",n.clip)},beforeDraw(t,e,n){U(t,"beforeDraw",n.clip)},afterDraw(t,e,n){U(t,"afterDraw",n.clip)},beforeEvent(t,e,n){const o=S.get(t);Vt(o,e.event,n)&&(e.changed=!0)},afterDestroy(t){S.delete(t)},_getState(t){return S.get(t)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!Yn.includes(t)&&t!=="init",annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${M[Me(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:ce,_fallback:!0},_indexable:ce}},additionalOptionScopes:[""]};function U(t,e,n){const{ctx:o,chartArea:r}=t,i=S.get(t);n&&ft(o,r);const s=_n(i.visibleElements,e).sort((a,d)=>a.element.options.z-d.element.options.z);for(const a of s)Xn(o,r,i,a);n&&ht(o)}function _n(t,e){const n=[];for(const o of t)if(o.options.drawTime===e&&n.push({element:o,main:!0}),o.elements&&o.elements.length)for(const r of o.elements)r.options.display&&r.options.drawTime===e&&n.push({element:r});return n}function Xn(t,e,n,o){const r=o.element;o.main?(je(n,r,"beforeDraw"),r.draw(t,e),je(n,r,"afterDraw")):r.draw(t,e)}const Hn=(t,e,n)=>{if(typeof t=="string")return t;const o=Number.parseInt(t.toString(),10);return o>999999?`${o/1e6}M`:o>999?`${o/1e3}k`:o};export{Bn as a,Hn as f};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg width="82" height="82" viewBox="0 0 82 82" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
2
|
+
<rect width="82" height="82" fill="url(#pattern0_1227_73918)"/>
|
|
3
|
+
<defs>
|
|
4
|
+
<pattern id="pattern0_1227_73918" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
5
|
+
<use xlink:href="#image0_1227_73918" transform="scale(0.00110988)"/>
|
|
6
|
+
</pattern>
|
|
7
|
+
<image id="image0_1227_73918" width="901" height="901" preserveAspectRatio="none" xlink:href="data:image/png;base64,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cRFZqWddqlreM7eElLOEAFoRFAIAAFSigMwaN2Fl7yYn+CuVZxnLrF8UGFrrRvsBgAxBIQAAgMMKrpRRENnYiax0NCoLjdalnBRAj2uXl5f8xgEAsEFvPHrvrWmanubPZnxKd9KM1aCmfs06v3j9f/vvpk9dfPTc/wgyDx976eXb294icDhkCgEAABZQnyX0sozZrML911420SttpXQUQC+6jwIAACxI7SoaXaeuoYzAAIAMQSEAAIDAOrtXB2Hl65NxjrB+v74ve62kniX85G/cZE4hgBDlowAA4Gy1lFp6IySs9+uOot5aWUOa+rWW/VJGCkBFphAAAMBRN3KJxkt41MH10Xr7ktI68LTKRQkGAbQiKAQAAGfNO4enDKC37mkp+/Seo5wVVNbZeecHj+g+CiBEUAgAAM5WFMB5mThPWeJZNovxzhF6z6zV61prLTHyAsD54kwhAACAoyW4KktMlaH3SidRdch9tM7PG80AQIBMIQAAQMIaHF8rM3leljFrPONRzg0yngJALzKFAAAAomygvDUmorzGK/v07o86mJa8oJGmMwAUBIUAAAAGdQ5g9Hq2bnm/FSAuEdTtGs0AQOTa5eUlv0EAAGzQG4/ee2uapqf5szm+rFw0ygjW16glp/XXUYmo143Uetanv//d6aMMr888fOyll29ve4vA4XCmEAAA4MCsANHqVuqdQSwDxJbh9pwpBKCgfBQAAKCSneXzykmzck8vwxidLbSuV/cDAAqCQgAAgEA2FmIKzv/VwZqVCcwCUCv7F5WOEiACaMWZQgAANoozheurM3vROcHyvezMofK+crZQWYszhRLOFOKskSkEAABweMGXRRlIn70erZsFgl5wSfdRABkazQAAAASUwLDOIGbZvz3lTKJVGlprPdsIACUyhQAAAKLW83/1614jGe9MYja7cP91FAR+8jdu8scLIERQCAAAUFEGx9clnFHAmGUQ62utpjE9HUlpNgNAQVAIAADQKBodMTkZPOW8YU9XUYI/AHMRFAIAABiUc3q9jWTK970sozK70MpoZgErANRoNAMAAFDJAsJsJEV0TRYwWs/yAr8I2UMAKjKFAAAAV1rOEUavRxm8bK06i2j927t+opwUQAcyhQAAAElAqJSDKlnAvbLE07pXWUe5ZrfuP/v7f1vaE4DzRVAIAADQSBkeH2X1ykDQOwMY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9nMv/ekLL36e8tGN6ckMqkFUNkaiXsvL/NWveV1FW4fqdwSDZAqBAZApBABsntqERTljmJWdRu/3NIuxykK9z0PWcCxeiWd23q+lOUx0bk/plpo1qGkZiG89X70WwLZ9iD8fAMAIdgFTFMxl709Vg5r6Xut1696W93avZ6Wj+2us964azeDArA6d+388u0DIC/ayDGHLqApvD8qzrM9QB5nePV7X0tYSVQBjICgEAAzLC6j26vfrEtGWe0tRAJoFp3Wg2LInLE8N5BRZF8/6GVlX0WgvLXssnx1lCJXgru6w6n0OAGPhTCGAk8WZwvMQnf/LBsh7703GulFX0boctLdbaf0e3UePo+WsXGvwqA6T7+lympWvZntp2UPrswqcKQQGQKYQADC03rLS/evZvVMwnzA6w7h/L3p2NAh/99733vz24/yv8/BaMl2tZZfWveU92TUW7zlRiedkZPa8TKVSFps9C8BYaDQDABiOMqNwSprNeO/3niucjCDS2mfrM7E9WfMWSzbYPuo4at3rBZRqYxslQI1GU8wd1QFgWygfBXCyKB89Tb3lotZ12YxBq3Oo113UWs8rK62v8db9zLOfYSTFSnpKNdUgSbluiTOO9To1L8CMRlx0oHwUGABBIYCTRVA4PnXu315LUKjc670W3auuobxGULieqARzmhEwZevW1y4ZEGazC719zERQCAyAoBDAySIoHJ8a5C0haiRT6hmGH11nISjcFmVwfMTLKLYEiJNTTpoNpM8ynN6swWgQfrRHA0EhMAAazQAANisbRD+JYxz210QNY7z76mYx5XlBb10lIPQa3USzC3EYWbMUdfSCMt+vHm5frl/fY63jvW89axLODkaNZWqcHwROF41mAACbppwNbFFn8spzf0r2zrtO3YvyDKszKQ6jp3tmdo+VnSszg1Zg2PK8qGmN+nnUOYXW5wBweggKAQCb0To7sCV4ijqDqgGfN14iu8+61zubeOgyWei80kqv9DPrKpp17GzpYDo1dhXNgtAjnC0EsGEEhQCAzaiDPC8YKzt7tp7dmzPKwlqvvMfqOOpd571GhvC4Wga913o6iPYGbVlWLzvvF52LjJ5j7ZFRFMDpISgEAGyKMkx+6sjoqaJsoMXKBnpjKrL7sR1RVs8KyHrKOL3AzgraouY00ezC8hpluL2yPwCnh6AQALBpPQGeVxrq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"/>
|
|
8
|
+
</defs>
|
|
9
|
+
</svg>
|