UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

84 lines 4.8 kB
import type { IStrategy } from '../../types/stores/strategy-store.js'; import { type IAuditUser, type IFeatureStrategy, type IFeatureStrategySegment, type IUnleashConfig, type IUnleashStores, type IFeatureLinksReadModel } from '../../types/index.js'; import type { ExportQuerySchema, ExportResultSchema, ImportTogglesSchema, ImportTogglesValidateSchema } from '../../openapi/index.js'; import type { IUser } from '../../types/user.js'; import type { IUnleashServices } from '../../services/index.js'; import { type Mode } from './import-permissions-service.js'; import type { IDependentFeaturesReadModel } from '../dependent-features/dependent-features-read-model-type.js'; import type { ISegmentReadModel } from '../segment/segment-read-model-type.js'; export type IImportService = { validate(dto: ImportTogglesSchema, user: IUser): Promise<ImportTogglesValidateSchema>; import(dto: ImportTogglesSchema, user: IUser, auditUser: IAuditUser): Promise<void>; importFromFile(file: string, project: string, environment: string): Promise<void>; }; export type IExportService = { export(query: ExportQuerySchema, auditUser: IAuditUser): Promise<ExportResultSchema>; }; export default class ExportImportService implements IExportService, IImportService { private logger; private toggleStore; private featureStrategiesStore; private importTogglesStore; private tagTypeStore; private featureEnvironmentStore; private featureTagStore; private flagResolver; private featureToggleService; private contextFieldStore; private strategyService; private contextService; private accessService; private eventService; private tagTypeService; private segmentReadModel; private featureTagService; private importPermissionsService; private dependentFeaturesReadModel; private dependentFeaturesService; private featureLinksReadModel; private featureLinkService; constructor(stores: Pick<IUnleashStores, 'importTogglesStore' | 'featureStrategiesStore' | 'featureToggleStore' | 'featureEnvironmentStore' | 'tagTypeStore' | 'featureTagStore' | 'contextFieldStore'>, { getLogger, flagResolver, }: Pick<IUnleashConfig, 'getLogger' | 'flagResolver'>, { featureToggleService, strategyService, contextService, accessService, eventService, tagTypeService, featureTagService, dependentFeaturesService, featureLinkService, }: Pick<IUnleashServices, 'featureToggleService' | 'strategyService' | 'contextService' | 'accessService' | 'eventService' | 'tagTypeService' | 'featureTagService' | 'dependentFeaturesService' | 'featureLinkService'>, dependentFeaturesReadModel: IDependentFeaturesReadModel, segmentReadModel: ISegmentReadModel, featureLinksReadModel: IFeatureLinksReadModel); validate(dto: ImportTogglesSchema, user: IUser, mode?: Mode): Promise<ImportTogglesValidateSchema>; importVerify(dto: ImportTogglesSchema, user: IUser, mode?: Mode): Promise<void>; fileImportVerify(dto: ImportTogglesSchema): Promise<void>; importFeatureData(dto: ImportTogglesSchema, auditUser: IAuditUser): Promise<void>; import(dto: ImportTogglesSchema, user: IUser, auditUser: IAuditUser): Promise<void>; importFromFile(file: string, project: string, environment: string): Promise<void>; private processImport; importEnvironmentData(dto: ImportTogglesSchema, user: IUser, auditUser: IAuditUser): Promise<void>; private importLinks; private importDependencies; private importToggleStatuses; private importStrategies; private deleteStrategies; private importTags; private importContextFields; private importTagTypes; private importToggleVariants; private createOrUpdateToggles; private getUnsupportedSegments; private getMissingDependencies; private verifySegments; private verifyDependencies; private verifyContextFields; private verifyFeatures; private cleanData; private remapSegments; removeArchivedFeatures(dto: ImportTogglesSchema): Promise<ImportTogglesSchema>; private verifyStrategies; private getInvalidFeatureNames; private getFeatureLimit; private getUnsupportedStrategies; private getUsedCustomStrategies; isCustomStrategy: (supportedStrategies: IStrategy[]) => ((x: string) => boolean); private getUnsupportedContextFields; private getArchivedFeatures; private getOtherProjectFeatures; private getExistingProjectFeatures; private getDuplicateFeatures; private getNewTagTypes; private getNewContextFields; export(query: ExportQuerySchema, auditUser: IAuditUser): Promise<ExportResultSchema>; addSegmentsToStrategies(featureStrategies: IFeatureStrategy[], strategySegments: IFeatureStrategySegment[]): void; } //# sourceMappingURL=export-import-service.d.ts.map