@webiny/ai-powerups 0.0.0-unstable.7be00a75a9
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/AiPowerups.d.ts +2 -0
- package/AiPowerups.js +11 -0
- package/AiPowerups.js.map +1 -0
- package/LICENSE +36 -0
- package/README.md +11 -0
- package/admin/Extension.d.ts +2 -0
- package/admin/Extension.js +33 -0
- package/admin/Extension.js.map +1 -0
- package/admin/domain/errors.d.ts +12 -0
- package/admin/domain/errors.js +21 -0
- package/admin/domain/errors.js.map +1 -0
- package/admin/features/feature.d.ts +1 -0
- package/admin/features/feature.js +22 -0
- package/admin/features/feature.js.map +1 -0
- package/admin/features/generatePageContent/GeneratePageContentGateway.d.ts +12 -0
- package/admin/features/generatePageContent/GeneratePageContentGateway.js +45 -0
- package/admin/features/generatePageContent/GeneratePageContentGateway.js.map +1 -0
- package/admin/features/generatePageContent/GeneratePageContentUseCase.d.ts +11 -0
- package/admin/features/generatePageContent/GeneratePageContentUseCase.js +18 -0
- package/admin/features/generatePageContent/GeneratePageContentUseCase.js.map +1 -0
- package/admin/features/generatePageContent/abstractions.d.ts +24 -0
- package/admin/features/generatePageContent/abstractions.js +6 -0
- package/admin/features/generatePageContent/abstractions.js.map +1 -0
- package/admin/features/generatePageContent/feature.d.ts +1 -0
- package/admin/features/generatePageContent/feature.js +13 -0
- package/admin/features/generatePageContent/feature.js.map +1 -0
- package/admin/features/generatePageContent/index.d.ts +3 -0
- package/admin/features/generatePageContent/index.js +2 -0
- package/admin/features/listModels/ListModelsGateway.d.ts +12 -0
- package/admin/features/listModels/ListModelsGateway.js +34 -0
- package/admin/features/listModels/ListModelsGateway.js.map +1 -0
- package/admin/features/listModels/ListModelsRepository.d.ts +13 -0
- package/admin/features/listModels/ListModelsRepository.js +27 -0
- package/admin/features/listModels/ListModelsRepository.js.map +1 -0
- package/admin/features/listModels/ListModelsUseCase.d.ts +10 -0
- package/admin/features/listModels/ListModelsUseCase.js +18 -0
- package/admin/features/listModels/ListModelsUseCase.js.map +1 -0
- package/admin/features/listModels/abstractions.d.ts +28 -0
- package/admin/features/listModels/abstractions.js +7 -0
- package/admin/features/listModels/abstractions.js.map +1 -0
- package/admin/features/listModels/feature.d.ts +3 -0
- package/admin/features/listModels/feature.js +21 -0
- package/admin/features/listModels/feature.js.map +1 -0
- package/admin/features/listModels/index.d.ts +2 -0
- package/admin/features/listModels/index.js +2 -0
- package/admin/features/settings/getSettings/GetSettingsGateway.d.ts +12 -0
- package/admin/features/settings/getSettings/GetSettingsGateway.js +29 -0
- package/admin/features/settings/getSettings/GetSettingsGateway.js.map +1 -0
- package/admin/features/settings/getSettings/GetSettingsRepository.d.ts +14 -0
- package/admin/features/settings/getSettings/GetSettingsRepository.js +31 -0
- package/admin/features/settings/getSettings/GetSettingsRepository.js.map +1 -0
- package/admin/features/settings/getSettings/GetSettingsUseCase.d.ts +11 -0
- package/admin/features/settings/getSettings/GetSettingsUseCase.js +18 -0
- package/admin/features/settings/getSettings/GetSettingsUseCase.js.map +1 -0
- package/admin/features/settings/getSettings/abstractions.d.ts +22 -0
- package/admin/features/settings/getSettings/abstractions.js +7 -0
- package/admin/features/settings/getSettings/abstractions.js.map +1 -0
- package/admin/features/settings/getSettings/feature.d.ts +3 -0
- package/admin/features/settings/getSettings/feature.js +21 -0
- package/admin/features/settings/getSettings/feature.js.map +1 -0
- package/admin/features/settings/getSettings/index.d.ts +2 -0
- package/admin/features/settings/getSettings/index.js +2 -0
- package/admin/features/settings/shared/SettingsCache.d.ts +10 -0
- package/admin/features/settings/shared/SettingsCache.js +19 -0
- package/admin/features/settings/shared/SettingsCache.js.map +1 -0
- package/admin/features/settings/shared/abstractions.d.ts +50 -0
- package/admin/features/settings/shared/abstractions.js +5 -0
- package/admin/features/settings/shared/abstractions.js.map +1 -0
- package/admin/features/settings/shared/feature.d.ts +3 -0
- package/admin/features/settings/shared/feature.js +17 -0
- package/admin/features/settings/shared/feature.js.map +1 -0
- package/admin/features/settings/shared/index.d.ts +2 -0
- package/admin/features/settings/shared/index.js +2 -0
- package/admin/features/settings/updateSettings/UpdateSettingsGateway.d.ts +12 -0
- package/admin/features/settings/updateSettings/UpdateSettingsGateway.js +45 -0
- package/admin/features/settings/updateSettings/UpdateSettingsGateway.js.map +1 -0
- package/admin/features/settings/updateSettings/UpdateSettingsRepository.d.ts +13 -0
- package/admin/features/settings/updateSettings/UpdateSettingsRepository.js +23 -0
- package/admin/features/settings/updateSettings/UpdateSettingsRepository.js.map +1 -0
- package/admin/features/settings/updateSettings/UpdateSettingsUseCase.d.ts +11 -0
- package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js +18 -0
- package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js.map +1 -0
- package/admin/features/settings/updateSettings/abstractions.d.ts +22 -0
- package/admin/features/settings/updateSettings/abstractions.js +7 -0
- package/admin/features/settings/updateSettings/abstractions.js.map +1 -0
- package/admin/features/settings/updateSettings/feature.d.ts +3 -0
- package/admin/features/settings/updateSettings/feature.js +21 -0
- package/admin/features/settings/updateSettings/feature.js.map +1 -0
- package/admin/features/settings/updateSettings/index.d.ts +2 -0
- package/admin/features/settings/updateSettings/index.js +2 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.d.ts +4 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js +50 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.d.ts +26 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js +148 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/abstractions.d.ts +18 -0
- package/admin/presentation/AiPowerUpsSettings/abstractions.js +5 -0
- package/admin/presentation/AiPowerUpsSettings/abstractions.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/feature.d.ts +3 -0
- package/admin/presentation/AiPowerUpsSettings/feature.js +25 -0
- package/admin/presentation/AiPowerUpsSettings/feature.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/index.d.ts +3 -0
- package/admin/presentation/AiPowerUpsSettings/index.js +3 -0
- package/admin/presentation/AiPowerUpsSettings/settingsGroup.d.ts +17 -0
- package/admin/presentation/AiPowerUpsSettings/settingsGroup.js +5 -0
- package/admin/presentation/AiPowerUpsSettings/settingsGroup.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.d.ts +4 -0
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js +27 -0
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js.map +1 -0
- package/admin/presentation/ProjectsSettings.d.ts +11 -0
- package/admin/presentation/ProjectsSettings.js +56 -0
- package/admin/presentation/ProjectsSettings.js.map +1 -0
- package/admin/presentation/ProvidersSettings.d.ts +16 -0
- package/admin/presentation/ProvidersSettings.js +46 -0
- package/admin/presentation/ProvidersSettings.js.map +1 -0
- package/admin/presentation/ReaderPersonasSettings.d.ts +11 -0
- package/admin/presentation/ReaderPersonasSettings.js +37 -0
- package/admin/presentation/ReaderPersonasSettings.js.map +1 -0
- package/admin/presentation/WbContentGeneration/Extension.d.ts +2 -0
- package/admin/presentation/WbContentGeneration/Extension.js +22 -0
- package/admin/presentation/WbContentGeneration/Extension.js.map +1 -0
- package/admin/presentation/WbContentGeneration/GenerateContentButton.d.ts +2 -0
- package/admin/presentation/WbContentGeneration/GenerateContentButton.js +19 -0
- package/admin/presentation/WbContentGeneration/GenerateContentButton.js.map +1 -0
- package/admin/presentation/WbContentGeneration/GenerateContentDialog.d.ts +21 -0
- package/admin/presentation/WbContentGeneration/GenerateContentDialog.js +105 -0
- package/admin/presentation/WbContentGeneration/GenerateContentDialog.js.map +1 -0
- package/admin/presentation/WbContentGeneration/GenerateContentPresenter.d.ts +38 -0
- package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js +228 -0
- package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js.map +1 -0
- package/admin/presentation/WbContentGeneration/PROCESS_IDEA.md +190 -0
- package/admin/presentation/WbContentGeneration/abstractions.d.ts +30 -0
- package/admin/presentation/WbContentGeneration/abstractions.js +5 -0
- package/admin/presentation/WbContentGeneration/abstractions.js.map +1 -0
- package/admin/presentation/WbContentGeneration/decompressGzipBase64.d.ts +1 -0
- package/admin/presentation/WbContentGeneration/decompressGzipBase64.js +13 -0
- package/admin/presentation/WbContentGeneration/decompressGzipBase64.js.map +1 -0
- package/admin/presentation/WbContentGeneration/feature.d.ts +3 -0
- package/admin/presentation/WbContentGeneration/feature.js +17 -0
- package/admin/presentation/WbContentGeneration/feature.js.map +1 -0
- package/admin/presentation/WriterPersonasSettings.d.ts +11 -0
- package/admin/presentation/WriterPersonasSettings.js +37 -0
- package/admin/presentation/WriterPersonasSettings.js.map +1 -0
- package/admin/routes.d.ts +4 -0
- package/admin/routes.js +10 -0
- package/admin/routes.js.map +1 -0
- package/api/Extension.d.ts +4 -0
- package/api/Extension.js +37 -0
- package/api/Extension.js.map +1 -0
- package/api/constants.d.ts +1 -0
- package/api/constants.js +4 -0
- package/api/constants.js.map +1 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.d.ts +11 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js +27 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js.map +1 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentTask.d.ts +34 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js +140 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js.map +1 -0
- package/api/features/AiImageEnrichment/feature.d.ts +4 -0
- package/api/features/AiImageEnrichment/feature.js +13 -0
- package/api/features/AiImageEnrichment/feature.js.map +1 -0
- package/api/features/AiPromptContext/AiPromptContextBuilder.d.ts +12 -0
- package/api/features/AiPromptContext/AiPromptContextBuilder.js +103 -0
- package/api/features/AiPromptContext/AiPromptContextBuilder.js.map +1 -0
- package/api/features/AiPromptContext/ProjectFileAssembler.d.ts +22 -0
- package/api/features/AiPromptContext/ProjectFileAssembler.js +76 -0
- package/api/features/AiPromptContext/ProjectFileAssembler.js.map +1 -0
- package/api/features/AiPromptContext/ProjectFileCache.d.ts +16 -0
- package/api/features/AiPromptContext/ProjectFileCache.js +61 -0
- package/api/features/AiPromptContext/ProjectFileCache.js.map +1 -0
- package/api/features/AiPromptContext/ProjectSection.d.ts +4 -0
- package/api/features/AiPromptContext/ProjectSection.js +35 -0
- package/api/features/AiPromptContext/ProjectSection.js.map +1 -0
- package/api/features/AiPromptContext/ReadProjectFileTool.d.ts +3 -0
- package/api/features/AiPromptContext/ReadProjectFileTool.js +36 -0
- package/api/features/AiPromptContext/ReadProjectFileTool.js.map +1 -0
- package/api/features/AiPromptContext/ReaderPersonaSection.d.ts +4 -0
- package/api/features/AiPromptContext/ReaderPersonaSection.js +10 -0
- package/api/features/AiPromptContext/ReaderPersonaSection.js.map +1 -0
- package/api/features/AiPromptContext/WriterPersonaSection.d.ts +4 -0
- package/api/features/AiPromptContext/WriterPersonaSection.js +10 -0
- package/api/features/AiPromptContext/WriterPersonaSection.js.map +1 -0
- package/api/features/AiPromptContext/abstractions.d.ts +68 -0
- package/api/features/AiPromptContext/abstractions.js +7 -0
- package/api/features/AiPromptContext/abstractions.js.map +1 -0
- package/api/features/AiPromptContext/feature.d.ts +4 -0
- package/api/features/AiPromptContext/feature.js +15 -0
- package/api/features/AiPromptContext/feature.js.map +1 -0
- package/api/features/AiPromptContext/index.d.ts +1 -0
- package/api/features/AiPromptContext/index.js +1 -0
- package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.d.ts +11 -0
- package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.js +34 -0
- package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.js.map +1 -0
- package/api/features/ExtractFrontmatter/feature.d.ts +4 -0
- package/api/features/ExtractFrontmatter/feature.js +11 -0
- package/api/features/ExtractFrontmatter/feature.js.map +1 -0
- package/api/features/GetSettings/GetSettingsRepository.d.ts +16 -0
- package/api/features/GetSettings/GetSettingsRepository.js +40 -0
- package/api/features/GetSettings/GetSettingsRepository.js.map +1 -0
- package/api/features/GetSettings/GetSettingsUseCase.d.ts +10 -0
- package/api/features/GetSettings/GetSettingsUseCase.js +18 -0
- package/api/features/GetSettings/GetSettingsUseCase.js.map +1 -0
- package/api/features/GetSettings/abstractions.d.ts +16 -0
- package/api/features/GetSettings/abstractions.js +6 -0
- package/api/features/GetSettings/abstractions.js.map +1 -0
- package/api/features/GetSettings/feature.d.ts +4 -0
- package/api/features/GetSettings/feature.js +13 -0
- package/api/features/GetSettings/feature.js.map +1 -0
- package/api/features/GetSettings/index.d.ts +1 -0
- package/api/features/GetSettings/index.js +1 -0
- package/api/features/Projects/ProjectsHandler.d.ts +31 -0
- package/api/features/Projects/ProjectsHandler.js +103 -0
- package/api/features/Projects/ProjectsHandler.js.map +1 -0
- package/api/features/Projects/feature.d.ts +4 -0
- package/api/features/Projects/feature.js +11 -0
- package/api/features/Projects/feature.js.map +1 -0
- package/api/features/Projects/types.d.ts +50 -0
- package/api/features/Projects/types.js +0 -0
- package/api/features/Providers/ProvidersGraphQLMapper.d.ts +21 -0
- package/api/features/Providers/ProvidersGraphQLMapper.js +39 -0
- package/api/features/Providers/ProvidersGraphQLMapper.js.map +1 -0
- package/api/features/Providers/ProvidersHandler.d.ts +26 -0
- package/api/features/Providers/ProvidersHandler.js +79 -0
- package/api/features/Providers/ProvidersHandler.js.map +1 -0
- package/api/features/Providers/feature.d.ts +4 -0
- package/api/features/Providers/feature.js +13 -0
- package/api/features/Providers/feature.js.map +1 -0
- package/api/features/Providers/index.d.ts +1 -0
- package/api/features/Providers/index.js +0 -0
- package/api/features/Providers/types.d.ts +29 -0
- package/api/features/Providers/types.js +0 -0
- package/api/features/ReaderPersonas/ReaderPersonasHandler.d.ts +20 -0
- package/api/features/ReaderPersonas/ReaderPersonasHandler.js +43 -0
- package/api/features/ReaderPersonas/ReaderPersonasHandler.js.map +1 -0
- package/api/features/ReaderPersonas/feature.d.ts +4 -0
- package/api/features/ReaderPersonas/feature.js +11 -0
- package/api/features/ReaderPersonas/feature.js.map +1 -0
- package/api/features/ReaderPersonas/index.d.ts +2 -0
- package/api/features/ReaderPersonas/index.js +1 -0
- package/api/features/ReaderPersonas/types.d.ts +24 -0
- package/api/features/ReaderPersonas/types.js +0 -0
- package/api/features/UpdateSettings/UpdateSettingsRepository.d.ts +16 -0
- package/api/features/UpdateSettings/UpdateSettingsRepository.js +71 -0
- package/api/features/UpdateSettings/UpdateSettingsRepository.js.map +1 -0
- package/api/features/UpdateSettings/UpdateSettingsUseCase.d.ts +13 -0
- package/api/features/UpdateSettings/UpdateSettingsUseCase.js +30 -0
- package/api/features/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
- package/api/features/UpdateSettings/abstractions.d.ts +36 -0
- package/api/features/UpdateSettings/abstractions.js +8 -0
- package/api/features/UpdateSettings/abstractions.js.map +1 -0
- package/api/features/UpdateSettings/errors.d.ts +10 -0
- package/api/features/UpdateSettings/errors.js +14 -0
- package/api/features/UpdateSettings/errors.js.map +1 -0
- package/api/features/UpdateSettings/events.d.ts +10 -0
- package/api/features/UpdateSettings/events.js +21 -0
- package/api/features/UpdateSettings/events.js.map +1 -0
- package/api/features/UpdateSettings/feature.d.ts +4 -0
- package/api/features/UpdateSettings/feature.js +13 -0
- package/api/features/UpdateSettings/feature.js.map +1 -0
- package/api/features/UpdateSettings/index.d.ts +1 -0
- package/api/features/UpdateSettings/index.js +1 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.d.ts +33 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js +75 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js.map +1 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.d.ts +21 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js +106 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js.map +1 -0
- package/api/features/WbGeneratePageContent/abstractions.d.ts +28 -0
- package/api/features/WbGeneratePageContent/abstractions.js +5 -0
- package/api/features/WbGeneratePageContent/abstractions.js.map +1 -0
- package/api/features/WbGeneratePageContent/buildPrompt.d.ts +1 -0
- package/api/features/WbGeneratePageContent/buildPrompt.js +143 -0
- package/api/features/WbGeneratePageContent/buildPrompt.js.map +1 -0
- package/api/features/WbGeneratePageContent/feature.d.ts +4 -0
- package/api/features/WbGeneratePageContent/feature.js +13 -0
- package/api/features/WbGeneratePageContent/feature.js.map +1 -0
- package/api/features/WbGeneratePageContent/index.d.ts +1 -0
- package/api/features/WbGeneratePageContent/index.js +1 -0
- package/api/features/WriterPersonas/WriterPersonasHandler.d.ts +20 -0
- package/api/features/WriterPersonas/WriterPersonasHandler.js +43 -0
- package/api/features/WriterPersonas/WriterPersonasHandler.js.map +1 -0
- package/api/features/WriterPersonas/feature.d.ts +4 -0
- package/api/features/WriterPersonas/feature.js +11 -0
- package/api/features/WriterPersonas/feature.js.map +1 -0
- package/api/features/WriterPersonas/index.d.ts +2 -0
- package/api/features/WriterPersonas/index.js +1 -0
- package/api/features/WriterPersonas/types.d.ts +24 -0
- package/api/features/WriterPersonas/types.js +0 -0
- package/api/features/shared/SettingsCache.d.ts +12 -0
- package/api/features/shared/SettingsCache.js +22 -0
- package/api/features/shared/SettingsCache.js.map +1 -0
- package/api/features/shared/abstractions.d.ts +33 -0
- package/api/features/shared/abstractions.js +7 -0
- package/api/features/shared/abstractions.js.map +1 -0
- package/api/features/shared/index.d.ts +3 -0
- package/api/features/shared/index.js +1 -0
- package/api/graphql/AiPowerUpsSettingsGraphQLMapper.d.ts +13 -0
- package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js +44 -0
- package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js.map +1 -0
- package/api/graphql/BaseGraphQLSchema.d.ts +8 -0
- package/api/graphql/BaseGraphQLSchema.js +133 -0
- package/api/graphql/BaseGraphQLSchema.js.map +1 -0
- package/api/graphql/abstractions.d.ts +9 -0
- package/api/graphql/abstractions.js +5 -0
- package/api/graphql/abstractions.js.map +1 -0
- package/api/types.d.ts +5 -0
- package/api/types.js +3 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
2
|
+
export interface ProjectFileItem {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
size: number;
|
|
6
|
+
mimeType: string;
|
|
7
|
+
src: string;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ProjectPreset {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
instructions?: string;
|
|
16
|
+
defaultReaderPersonaId?: string;
|
|
17
|
+
defaultWriterPersonaId?: string;
|
|
18
|
+
files?: ProjectFileItem[];
|
|
19
|
+
version: number;
|
|
20
|
+
}
|
|
21
|
+
declare module "~/api/types.js" {
|
|
22
|
+
interface IAiPowerUpsSettings {
|
|
23
|
+
projects: {
|
|
24
|
+
presets: ProjectPreset[];
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export type ProjectsSettings = IAiPowerUpsSettings["projects"];
|
|
29
|
+
export interface PersistedProjectFileItem {
|
|
30
|
+
id: string;
|
|
31
|
+
name: string;
|
|
32
|
+
size: number;
|
|
33
|
+
mimeType: string;
|
|
34
|
+
src: string;
|
|
35
|
+
width?: number;
|
|
36
|
+
height?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface PersistedProjectPreset {
|
|
39
|
+
id: string;
|
|
40
|
+
name: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
instructions?: string;
|
|
43
|
+
defaultReaderPersonaId?: string;
|
|
44
|
+
defaultWriterPersonaId?: string;
|
|
45
|
+
files?: PersistedProjectFileItem[];
|
|
46
|
+
version: number;
|
|
47
|
+
}
|
|
48
|
+
export interface PersistedProjects {
|
|
49
|
+
presets: PersistedProjectPreset[];
|
|
50
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AiPowerUpsSettingsGroupGraphQLMapper } from "../../../api/features/shared/index.js";
|
|
2
|
+
import type { ProvidersSettings } from "./types.js";
|
|
3
|
+
interface ApiProviderPreset {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
model: string;
|
|
8
|
+
apiKey: string | null;
|
|
9
|
+
}
|
|
10
|
+
interface ApiProviders {
|
|
11
|
+
presets: ApiProviderPreset[];
|
|
12
|
+
}
|
|
13
|
+
declare class ProvidersGraphQLMapperImpl implements AiPowerUpsSettingsGroupGraphQLMapper.Interface {
|
|
14
|
+
readonly name = "providers";
|
|
15
|
+
toApi(internal: unknown): ApiProviders;
|
|
16
|
+
fromApi(api: unknown): ProvidersSettings;
|
|
17
|
+
}
|
|
18
|
+
declare const _default: typeof ProvidersGraphQLMapperImpl & {
|
|
19
|
+
__abstraction: import("@webiny/di").Abstraction<import("../shared/abstractions.js").IAiPowerUpsSettingsGroupGraphQLMapper>;
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AiPowerUpsSettingsGroupGraphQLMapper } from "../shared/index.js";
|
|
2
|
+
class ProvidersGraphQLMapperImpl {
|
|
3
|
+
toApi(internal) {
|
|
4
|
+
const data = internal;
|
|
5
|
+
return {
|
|
6
|
+
presets: data.presets.map((p)=>({
|
|
7
|
+
id: p.id,
|
|
8
|
+
name: p.name,
|
|
9
|
+
description: p.description,
|
|
10
|
+
model: p.model,
|
|
11
|
+
apiKey: p.apiKeyMasked ?? null
|
|
12
|
+
}))
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
fromApi(api) {
|
|
16
|
+
const data = api;
|
|
17
|
+
return {
|
|
18
|
+
presets: data.presets.map((p)=>({
|
|
19
|
+
id: p.id,
|
|
20
|
+
name: p.name,
|
|
21
|
+
description: p.description,
|
|
22
|
+
model: p.model,
|
|
23
|
+
apiKey: p.apiKey,
|
|
24
|
+
apiKeyMasked: "",
|
|
25
|
+
apiKeyEncrypted: ""
|
|
26
|
+
}))
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
constructor(){
|
|
30
|
+
this.name = "providers";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const ProvidersGraphQLMapper = AiPowerUpsSettingsGroupGraphQLMapper.createImplementation({
|
|
34
|
+
implementation: ProvidersGraphQLMapperImpl,
|
|
35
|
+
dependencies: []
|
|
36
|
+
});
|
|
37
|
+
export default ProvidersGraphQLMapper;
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=ProvidersGraphQLMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/Providers/ProvidersGraphQLMapper.js","sources":["../../../../src/api/features/Providers/ProvidersGraphQLMapper.ts"],"sourcesContent":["import { AiPowerUpsSettingsGroupGraphQLMapper } from \"~/api/features/shared/index.js\";\nimport type { ProvidersSettings } from \"./types.js\";\n\ninterface ApiProviderPreset {\n id: string;\n name: string;\n description?: string;\n model: string;\n apiKey: string | null;\n}\n\ninterface ApiProviders {\n presets: ApiProviderPreset[];\n}\n\ninterface ApiInputProviderPreset {\n id: string;\n name: string;\n description?: string;\n model: string;\n apiKey?: string;\n}\n\ninterface ApiInputProviders {\n presets: ApiInputProviderPreset[];\n}\n\nclass ProvidersGraphQLMapperImpl implements AiPowerUpsSettingsGroupGraphQLMapper.Interface {\n readonly name = \"providers\";\n\n toApi(internal: unknown): ApiProviders {\n const data = internal as ProvidersSettings;\n return {\n presets: data.presets.map(p => ({\n id: p.id,\n name: p.name,\n description: p.description,\n model: p.model,\n apiKey: p.apiKeyMasked ?? null\n }))\n };\n }\n\n fromApi(api: unknown): ProvidersSettings {\n const data = api as ApiInputProviders;\n return {\n presets: data.presets.map(p => ({\n id: p.id,\n name: p.name,\n description: p.description,\n model: p.model,\n apiKey: p.apiKey,\n apiKeyMasked: \"\",\n apiKeyEncrypted: \"\"\n }))\n };\n }\n}\n\nexport default AiPowerUpsSettingsGroupGraphQLMapper.createImplementation({\n implementation: ProvidersGraphQLMapperImpl,\n dependencies: []\n});\n"],"names":["ProvidersGraphQLMapperImpl","internal","data","p","api","AiPowerUpsSettingsGroupGraphQLMapper"],"mappings":";AA2BA,MAAMA;IAGF,MAAMC,QAAiB,EAAgB;QACnC,MAAMC,OAAOD;QACb,OAAO;YACH,SAASC,KAAK,OAAO,CAAC,GAAG,CAACC,CAAAA,IAAM;oBAC5B,IAAIA,EAAE,EAAE;oBACR,MAAMA,EAAE,IAAI;oBACZ,aAAaA,EAAE,WAAW;oBAC1B,OAAOA,EAAE,KAAK;oBACd,QAAQA,EAAE,YAAY,IAAI;gBAC9B;QACJ;IACJ;IAEA,QAAQC,GAAY,EAAqB;QACrC,MAAMF,OAAOE;QACb,OAAO;YACH,SAASF,KAAK,OAAO,CAAC,GAAG,CAACC,CAAAA,IAAM;oBAC5B,IAAIA,EAAE,EAAE;oBACR,MAAMA,EAAE,IAAI;oBACZ,aAAaA,EAAE,WAAW;oBAC1B,OAAOA,EAAE,KAAK;oBACd,QAAQA,EAAE,MAAM;oBAChB,cAAc;oBACd,iBAAiB;gBACrB;QACJ;IACJ;;aA5BS,IAAI,GAAG;;AA6BpB;AAEA,+BAAeE,qCAAqC,oBAAoB,CAAC;IACrE,gBAAgBL;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Encryption } from "@webiny/api-core/features/encryption/index.js";
|
|
3
|
+
import { Masker } from "@webiny/api-core/features/masker/index.js";
|
|
4
|
+
import { AiPowerUpsSettingsGroupHandler } from "../../../api/features/shared/index.js";
|
|
5
|
+
import type { PersistedProviders, ProvidersSettings } from "./types.js";
|
|
6
|
+
declare class ProvidersHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {
|
|
7
|
+
private encryption;
|
|
8
|
+
private masker;
|
|
9
|
+
readonly name = "providers";
|
|
10
|
+
readonly inputSchema: z.ZodObject<{
|
|
11
|
+
presets: z.ZodArray<z.ZodObject<{
|
|
12
|
+
id: z.ZodString;
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
description: z.ZodOptional<z.ZodString>;
|
|
15
|
+
model: z.ZodString;
|
|
16
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
constructor(encryption: Encryption.Interface, masker: Masker.Interface);
|
|
20
|
+
mapFromStorage(persisted: unknown): ProvidersSettings;
|
|
21
|
+
mapToStorage(internal: unknown, existing: unknown | null): Promise<PersistedProviders>;
|
|
22
|
+
}
|
|
23
|
+
declare const _default: typeof ProvidersHandlerImpl & {
|
|
24
|
+
__abstraction: import("@webiny/di").Abstraction<import("../shared/abstractions.js").IAiPowerUpsSettingsGroupHandler>;
|
|
25
|
+
};
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Encryption } from "@webiny/api-core/features/encryption/index.js";
|
|
3
|
+
import { Masker } from "@webiny/api-core/features/masker/index.js";
|
|
4
|
+
import { AiPowerUpsSettingsGroupHandler } from "../shared/index.js";
|
|
5
|
+
const inputSchema = z.object({
|
|
6
|
+
presets: z.array(z.object({
|
|
7
|
+
id: z.string().min(1),
|
|
8
|
+
name: z.string().min(1),
|
|
9
|
+
description: z.string().optional(),
|
|
10
|
+
model: z.string().min(1),
|
|
11
|
+
apiKey: z.string().optional()
|
|
12
|
+
}))
|
|
13
|
+
});
|
|
14
|
+
class ProvidersHandlerImpl {
|
|
15
|
+
constructor(encryption, masker){
|
|
16
|
+
this.encryption = encryption;
|
|
17
|
+
this.masker = masker;
|
|
18
|
+
this.name = "providers";
|
|
19
|
+
this.inputSchema = inputSchema;
|
|
20
|
+
}
|
|
21
|
+
mapFromStorage(persisted) {
|
|
22
|
+
if (!persisted || "object" != typeof persisted) return {
|
|
23
|
+
presets: []
|
|
24
|
+
};
|
|
25
|
+
const data = persisted;
|
|
26
|
+
const presets = (data.presets ?? []).map((p)=>({
|
|
27
|
+
id: p.id,
|
|
28
|
+
name: p.name,
|
|
29
|
+
description: p.description,
|
|
30
|
+
model: p.model,
|
|
31
|
+
apiKeyMasked: p.apiKeyMasked ?? "",
|
|
32
|
+
apiKeyEncrypted: p.apiKeyEncrypted ?? ""
|
|
33
|
+
}));
|
|
34
|
+
return {
|
|
35
|
+
presets
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async mapToStorage(internal, existing) {
|
|
39
|
+
const input = internal;
|
|
40
|
+
const existingData = existing;
|
|
41
|
+
const existingPresets = existingData?.presets ?? [];
|
|
42
|
+
const presets = await Promise.all(input.presets.map(async (preset)=>{
|
|
43
|
+
const existingMatch = existingPresets.find((ep)=>ep.id === preset.id);
|
|
44
|
+
let apiKeyEncrypted;
|
|
45
|
+
let apiKeyMasked;
|
|
46
|
+
if (preset.apiKey && preset.apiKey !== existingMatch?.apiKeyMasked) {
|
|
47
|
+
apiKeyEncrypted = await this.encryption.encrypt(preset.apiKey);
|
|
48
|
+
apiKeyMasked = this.masker.mask(preset.apiKey, [
|
|
49
|
+
8,
|
|
50
|
+
4
|
|
51
|
+
]);
|
|
52
|
+
} else {
|
|
53
|
+
apiKeyEncrypted = existingMatch?.apiKeyEncrypted ?? "";
|
|
54
|
+
apiKeyMasked = existingMatch?.apiKeyMasked ?? "";
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
id: preset.id,
|
|
58
|
+
name: preset.name,
|
|
59
|
+
description: preset.description,
|
|
60
|
+
model: preset.model,
|
|
61
|
+
apiKeyEncrypted,
|
|
62
|
+
apiKeyMasked
|
|
63
|
+
};
|
|
64
|
+
}));
|
|
65
|
+
return {
|
|
66
|
+
presets
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const ProvidersHandler = AiPowerUpsSettingsGroupHandler.createImplementation({
|
|
71
|
+
implementation: ProvidersHandlerImpl,
|
|
72
|
+
dependencies: [
|
|
73
|
+
Encryption,
|
|
74
|
+
Masker
|
|
75
|
+
]
|
|
76
|
+
});
|
|
77
|
+
export default ProvidersHandler;
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=ProvidersHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/Providers/ProvidersHandler.js","sources":["../../../../src/api/features/Providers/ProvidersHandler.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Encryption } from \"@webiny/api-core/features/encryption/index.js\";\nimport { Masker } from \"@webiny/api-core/features/masker/index.js\";\nimport { AiPowerUpsSettingsGroupHandler } from \"~/api/features/shared/index.js\";\nimport type { PersistedProviderPreset, PersistedProviders, ProvidersSettings } from \"./types.js\";\n\nconst inputSchema = z.object({\n presets: z.array(\n z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n model: z.string().min(1),\n apiKey: z.string().optional()\n })\n )\n});\n\nclass ProvidersHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {\n readonly name = \"providers\";\n readonly inputSchema = inputSchema;\n\n constructor(\n private encryption: Encryption.Interface,\n private masker: Masker.Interface\n ) {}\n\n mapFromStorage(persisted: unknown): ProvidersSettings {\n if (!persisted || typeof persisted !== \"object\") {\n return { presets: [] };\n }\n\n const data = persisted as PersistedProviders;\n const presets = (data.presets ?? []).map(p => ({\n id: p.id,\n name: p.name,\n description: p.description,\n model: p.model,\n apiKeyMasked: p.apiKeyMasked ?? \"\",\n apiKeyEncrypted: p.apiKeyEncrypted ?? \"\"\n }));\n\n return { presets };\n }\n\n async mapToStorage(internal: unknown, existing: unknown | null): Promise<PersistedProviders> {\n const input = internal as ProvidersSettings;\n const existingData = existing as ProvidersSettings | null;\n const existingPresets = existingData?.presets ?? [];\n\n const presets: PersistedProviderPreset[] = await Promise.all(\n input.presets.map(async preset => {\n const existingMatch = existingPresets.find(ep => ep.id === preset.id);\n\n let apiKeyEncrypted: string;\n let apiKeyMasked: string;\n\n if (!preset.apiKey || preset.apiKey === existingMatch?.apiKeyMasked) {\n // Carry forward existing encrypted key\n apiKeyEncrypted = existingMatch?.apiKeyEncrypted ?? \"\";\n apiKeyMasked = existingMatch?.apiKeyMasked ?? \"\";\n } else {\n // New plaintext key — encrypt and mask\n apiKeyEncrypted = await this.encryption.encrypt(preset.apiKey);\n apiKeyMasked = this.masker.mask(preset.apiKey, [8, 4]);\n }\n\n return {\n id: preset.id,\n name: preset.name,\n description: preset.description,\n model: preset.model,\n apiKeyEncrypted,\n apiKeyMasked\n };\n })\n );\n\n return { presets };\n }\n}\n\nexport default AiPowerUpsSettingsGroupHandler.createImplementation({\n implementation: ProvidersHandlerImpl,\n dependencies: [Encryption, Masker]\n});\n"],"names":["inputSchema","z","ProvidersHandlerImpl","encryption","masker","persisted","data","presets","p","internal","existing","input","existingData","existingPresets","Promise","preset","existingMatch","ep","apiKeyEncrypted","apiKeyMasked","AiPowerUpsSettingsGroupHandler","Encryption","Masker"],"mappings":";;;;AAMA,MAAMA,cAAcC,EAAE,MAAM,CAAC;IACzB,SAASA,EAAE,KAAK,CACZA,EAAE,MAAM,CAAC;QACL,IAAIA,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,MAAMA,EAAE,MAAM,GAAG,GAAG,CAAC;QACrB,aAAaA,EAAE,MAAM,GAAG,QAAQ;QAChC,OAAOA,EAAE,MAAM,GAAG,GAAG,CAAC;QACtB,QAAQA,EAAE,MAAM,GAAG,QAAQ;IAC/B;AAER;AAEA,MAAMC;IAIF,YACYC,UAAgC,EAChCC,MAAwB,CAClC;aAFUD,UAAU,GAAVA;aACAC,MAAM,GAANA;aALH,IAAI,GAAG;aACP,WAAW,GAAGJ;IAKpB;IAEH,eAAeK,SAAkB,EAAqB;QAClD,IAAI,CAACA,aAAa,AAAqB,YAArB,OAAOA,WACrB,OAAO;YAAE,SAAS,EAAE;QAAC;QAGzB,MAAMC,OAAOD;QACb,MAAME,UAAWD,AAAAA,CAAAA,KAAK,OAAO,IAAI,EAAC,EAAG,GAAG,CAACE,CAAAA,IAAM;gBAC3C,IAAIA,EAAE,EAAE;gBACR,MAAMA,EAAE,IAAI;gBACZ,aAAaA,EAAE,WAAW;gBAC1B,OAAOA,EAAE,KAAK;gBACd,cAAcA,EAAE,YAAY,IAAI;gBAChC,iBAAiBA,EAAE,eAAe,IAAI;YAC1C;QAEA,OAAO;YAAED;QAAQ;IACrB;IAEA,MAAM,aAAaE,QAAiB,EAAEC,QAAwB,EAA+B;QACzF,MAAMC,QAAQF;QACd,MAAMG,eAAeF;QACrB,MAAMG,kBAAkBD,cAAc,WAAW,EAAE;QAEnD,MAAML,UAAqC,MAAMO,QAAQ,GAAG,CACxDH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAMI;YACpB,MAAMC,gBAAgBH,gBAAgB,IAAI,CAACI,CAAAA,KAAMA,GAAG,EAAE,KAAKF,OAAO,EAAE;YAEpE,IAAIG;YACJ,IAAIC;YAEJ,IAAI,AAACJ,OAAO,MAAM,IAAIA,OAAO,MAAM,KAAKC,eAAe,cAIhD;gBAEHE,kBAAkB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACH,OAAO,MAAM;gBAC7DI,eAAe,IAAI,CAAC,MAAM,CAAC,IAAI,CAACJ,OAAO,MAAM,EAAE;oBAAC;oBAAG;iBAAE;YACzD,OARqE;gBAEjEG,kBAAkBF,eAAe,mBAAmB;gBACpDG,eAAeH,eAAe,gBAAgB;YAClD;YAMA,OAAO;gBACH,IAAID,OAAO,EAAE;gBACb,MAAMA,OAAO,IAAI;gBACjB,aAAaA,OAAO,WAAW;gBAC/B,OAAOA,OAAO,KAAK;gBACnBG;gBACAC;YACJ;QACJ;QAGJ,OAAO;YAAEZ;QAAQ;IACrB;AACJ;AAEA,yBAAea,+BAA+B,oBAAoB,CAAC;IAC/D,gBAAgBlB;IAChB,cAAc;QAACmB;QAAYC;KAAO;AACtC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import ProvidersHandler from "./ProvidersHandler.js";
|
|
3
|
+
import ProvidersGraphQLMapper from "./ProvidersGraphQLMapper.js";
|
|
4
|
+
const ProvidersFeature = createFeature({
|
|
5
|
+
name: "AiPowerUpsProviders",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(ProvidersHandler);
|
|
8
|
+
container.register(ProvidersGraphQLMapper);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { ProvidersFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/Providers/feature.js","sources":["../../../../src/api/features/Providers/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport ProvidersHandler from \"./ProvidersHandler.js\";\nimport ProvidersGraphQLMapper from \"./ProvidersGraphQLMapper.js\";\n\nexport const ProvidersFeature = createFeature({\n name: \"AiPowerUpsProviders\",\n register(container) {\n container.register(ProvidersHandler);\n container.register(ProvidersGraphQLMapper);\n }\n});\n"],"names":["ProvidersFeature","createFeature","container","ProvidersHandler","ProvidersGraphQLMapper"],"mappings":";;;AAIO,MAAMA,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { ProviderPreset, ProvidersSettings } from "./types.js";
|
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
2
|
+
export interface ProviderPreset {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
model: string;
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
apiKeyMasked: string;
|
|
9
|
+
apiKeyEncrypted: string;
|
|
10
|
+
}
|
|
11
|
+
declare module "~/api/types.js" {
|
|
12
|
+
interface IAiPowerUpsSettings {
|
|
13
|
+
providers: {
|
|
14
|
+
presets: ProviderPreset[];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export type ProvidersSettings = IAiPowerUpsSettings["providers"];
|
|
19
|
+
export interface PersistedProviderPreset {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
model: string;
|
|
24
|
+
apiKeyEncrypted: string;
|
|
25
|
+
apiKeyMasked: string;
|
|
26
|
+
}
|
|
27
|
+
export interface PersistedProviders {
|
|
28
|
+
presets: PersistedProviderPreset[];
|
|
29
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiPowerUpsSettingsGroupHandler } from "../../../api/features/shared/index.js";
|
|
3
|
+
import type { PersistedReaderPersonas, ReaderPersonasSettings } from "./types.js";
|
|
4
|
+
declare class ReaderPersonasHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {
|
|
5
|
+
readonly name = "readerPersonas";
|
|
6
|
+
readonly inputSchema: z.ZodObject<{
|
|
7
|
+
presets: z.ZodArray<z.ZodObject<{
|
|
8
|
+
id: z.ZodString;
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
description: z.ZodString;
|
|
11
|
+
style: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
12
|
+
}, z.core.$strip>>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
mapFromStorage(persisted: unknown): ReaderPersonasSettings;
|
|
15
|
+
mapToStorage(internal: unknown): Promise<PersistedReaderPersonas>;
|
|
16
|
+
}
|
|
17
|
+
declare const _default: typeof ReaderPersonasHandlerImpl & {
|
|
18
|
+
__abstraction: import("@webiny/di").Abstraction<import("../shared/abstractions.js").IAiPowerUpsSettingsGroupHandler>;
|
|
19
|
+
};
|
|
20
|
+
export default _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiPowerUpsSettingsGroupHandler } from "../shared/index.js";
|
|
3
|
+
const inputSchema = z.object({
|
|
4
|
+
presets: z.array(z.object({
|
|
5
|
+
id: z.string().min(1),
|
|
6
|
+
name: z.string().min(1),
|
|
7
|
+
description: z.string().min(1),
|
|
8
|
+
style: z.string().nullish().optional()
|
|
9
|
+
}))
|
|
10
|
+
});
|
|
11
|
+
class ReaderPersonasHandlerImpl {
|
|
12
|
+
mapFromStorage(persisted) {
|
|
13
|
+
if (!persisted || "object" != typeof persisted) return {
|
|
14
|
+
presets: []
|
|
15
|
+
};
|
|
16
|
+
const data = persisted;
|
|
17
|
+
return {
|
|
18
|
+
presets: data.presets ?? []
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async mapToStorage(internal) {
|
|
22
|
+
const input = internal;
|
|
23
|
+
return {
|
|
24
|
+
presets: input.presets.map((p)=>({
|
|
25
|
+
id: p.id,
|
|
26
|
+
name: p.name,
|
|
27
|
+
description: p.description,
|
|
28
|
+
style: p.style
|
|
29
|
+
}))
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
constructor(){
|
|
33
|
+
this.name = "readerPersonas";
|
|
34
|
+
this.inputSchema = inputSchema;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const ReaderPersonasHandler = AiPowerUpsSettingsGroupHandler.createImplementation({
|
|
38
|
+
implementation: ReaderPersonasHandlerImpl,
|
|
39
|
+
dependencies: []
|
|
40
|
+
});
|
|
41
|
+
export default ReaderPersonasHandler;
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=ReaderPersonasHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/ReaderPersonas/ReaderPersonasHandler.js","sources":["../../../../src/api/features/ReaderPersonas/ReaderPersonasHandler.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { AiPowerUpsSettingsGroupHandler } from \"~/api/features/shared/index.js\";\nimport type { PersistedReaderPersonas, ReaderPersonasSettings } from \"./types.js\";\n\nconst inputSchema = z.object({\n presets: z.array(\n z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n description: z.string().min(1),\n style: z.string().nullish().optional()\n })\n )\n});\n\nclass ReaderPersonasHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {\n readonly name = \"readerPersonas\";\n readonly inputSchema = inputSchema;\n\n mapFromStorage(persisted: unknown): ReaderPersonasSettings {\n if (!persisted || typeof persisted !== \"object\") {\n return { presets: [] };\n }\n\n const data = persisted as PersistedReaderPersonas;\n return { presets: data.presets ?? [] };\n }\n\n async mapToStorage(internal: unknown): Promise<PersistedReaderPersonas> {\n const input = internal as ReaderPersonasSettings;\n return {\n presets: input.presets.map(p => ({\n id: p.id,\n name: p.name,\n description: p.description,\n style: p.style\n }))\n };\n }\n}\n\nexport default AiPowerUpsSettingsGroupHandler.createImplementation({\n implementation: ReaderPersonasHandlerImpl,\n dependencies: []\n});\n"],"names":["inputSchema","z","ReaderPersonasHandlerImpl","persisted","data","internal","input","p","AiPowerUpsSettingsGroupHandler"],"mappings":";;AAIA,MAAMA,cAAcC,EAAE,MAAM,CAAC;IACzB,SAASA,EAAE,KAAK,CACZA,EAAE,MAAM,CAAC;QACL,IAAIA,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,MAAMA,EAAE,MAAM,GAAG,GAAG,CAAC;QACrB,aAAaA,EAAE,MAAM,GAAG,GAAG,CAAC;QAC5B,OAAOA,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ;IACxC;AAER;AAEA,MAAMC;IAIF,eAAeC,SAAkB,EAA0B;QACvD,IAAI,CAACA,aAAa,AAAqB,YAArB,OAAOA,WACrB,OAAO;YAAE,SAAS,EAAE;QAAC;QAGzB,MAAMC,OAAOD;QACb,OAAO;YAAE,SAASC,KAAK,OAAO,IAAI,EAAE;QAAC;IACzC;IAEA,MAAM,aAAaC,QAAiB,EAAoC;QACpE,MAAMC,QAAQD;QACd,OAAO;YACH,SAASC,MAAM,OAAO,CAAC,GAAG,CAACC,CAAAA,IAAM;oBAC7B,IAAIA,EAAE,EAAE;oBACR,MAAMA,EAAE,IAAI;oBACZ,aAAaA,EAAE,WAAW;oBAC1B,OAAOA,EAAE,KAAK;gBAClB;QACJ;IACJ;;aAtBS,IAAI,GAAG;aACP,WAAW,GAAGP;;AAsB3B;AAEA,8BAAeQ,+BAA+B,oBAAoB,CAAC;IAC/D,gBAAgBN;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import ReaderPersonasHandler from "./ReaderPersonasHandler.js";
|
|
3
|
+
const ReaderPersonasFeature = createFeature({
|
|
4
|
+
name: "AiPowerUpsReaderPersonas",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(ReaderPersonasHandler);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { ReaderPersonasFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/ReaderPersonas/feature.js","sources":["../../../../src/api/features/ReaderPersonas/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport ReaderPersonasHandler from \"./ReaderPersonasHandler.js\";\n\nexport const ReaderPersonasFeature = createFeature({\n name: \"AiPowerUpsReaderPersonas\",\n register(container) {\n container.register(ReaderPersonasHandler);\n }\n});\n"],"names":["ReaderPersonasFeature","createFeature","container","ReaderPersonasHandler"],"mappings":";;AAGO,MAAMA,wBAAwBC,cAAc;IAC/C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./types.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
2
|
+
export interface ReaderPersonaPreset {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
style?: string;
|
|
7
|
+
}
|
|
8
|
+
declare module "~/api/types.js" {
|
|
9
|
+
interface IAiPowerUpsSettings {
|
|
10
|
+
readerPersonas: {
|
|
11
|
+
presets: ReaderPersonaPreset[];
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export type ReaderPersonasSettings = IAiPowerUpsSettings["readerPersonas"];
|
|
16
|
+
export interface PersistedReaderPersonaPreset {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
style?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface PersistedReaderPersonas {
|
|
23
|
+
presets: PersistedReaderPersonaPreset[];
|
|
24
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { KeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
|
|
3
|
+
import { AiPowerUpsSettingsGroupHandler, AiPowerUpsSettingsCache } from "../../../api/features/shared/index.js";
|
|
4
|
+
import { UpdateSettingsRepository } from "./abstractions.js";
|
|
5
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
6
|
+
declare class UpdateSettingsRepositoryImpl implements UpdateSettingsRepository.Interface {
|
|
7
|
+
private keyValueStore;
|
|
8
|
+
private handlers;
|
|
9
|
+
private cache;
|
|
10
|
+
constructor(keyValueStore: KeyValueStore.Interface, handlers: AiPowerUpsSettingsGroupHandler.Interface[], cache: AiPowerUpsSettingsCache.Interface);
|
|
11
|
+
execute(input: IAiPowerUpsSettings): Promise<Result<IAiPowerUpsSettings, Error>>;
|
|
12
|
+
}
|
|
13
|
+
export declare const UpdateSettingsRepositoryImplementation: typeof UpdateSettingsRepositoryImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateSettingsRepository>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { KeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
|
|
3
|
+
import { AiPowerUpsSettingsCache, AiPowerUpsSettingsGroupHandler } from "../shared/index.js";
|
|
4
|
+
import { UpdateSettingsRepository } from "./abstractions.js";
|
|
5
|
+
import { SettingsValidationError } from "./errors.js";
|
|
6
|
+
import { AI_POWER_UPS_SETTINGS } from "../../constants.js";
|
|
7
|
+
class UpdateSettingsRepositoryImpl {
|
|
8
|
+
constructor(keyValueStore, handlers, cache){
|
|
9
|
+
this.keyValueStore = keyValueStore;
|
|
10
|
+
this.handlers = handlers;
|
|
11
|
+
this.cache = cache;
|
|
12
|
+
}
|
|
13
|
+
async execute(input) {
|
|
14
|
+
const cached = this.cache.get();
|
|
15
|
+
let raw;
|
|
16
|
+
if (cached) raw = cached.raw;
|
|
17
|
+
else {
|
|
18
|
+
const storeResult = await this.keyValueStore.get(AI_POWER_UPS_SETTINGS);
|
|
19
|
+
raw = storeResult.isOk() && storeResult.value ? storeResult.value : {};
|
|
20
|
+
}
|
|
21
|
+
const existingInternal = {};
|
|
22
|
+
for (const handler of this.handlers)existingInternal[handler.name] = handler.mapFromStorage(raw[handler.name]);
|
|
23
|
+
const newSettings = input;
|
|
24
|
+
const invalidFields = {};
|
|
25
|
+
for (const handler of this.handlers){
|
|
26
|
+
const parseResult = await handler.inputSchema.safeParseAsync(newSettings[handler.name]);
|
|
27
|
+
if (!parseResult.success) for (const issue of parseResult.error.issues){
|
|
28
|
+
const fieldPath = [
|
|
29
|
+
handler.name,
|
|
30
|
+
...issue.path.map(String)
|
|
31
|
+
].join(".");
|
|
32
|
+
invalidFields[fieldPath] = {
|
|
33
|
+
code: issue.code,
|
|
34
|
+
message: issue.message,
|
|
35
|
+
data: {
|
|
36
|
+
path: issue.path
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (Object.keys(invalidFields).length > 0) return Result.fail(new SettingsValidationError(invalidFields));
|
|
42
|
+
const persisted = {
|
|
43
|
+
...raw
|
|
44
|
+
};
|
|
45
|
+
for (const handler of this.handlers)persisted[handler.name] = await handler.mapToStorage(newSettings[handler.name], existingInternal[handler.name]);
|
|
46
|
+
const writeResult = await this.keyValueStore.set(AI_POWER_UPS_SETTINGS, persisted);
|
|
47
|
+
if (writeResult.isFail()) return Result.fail(new Error(String(writeResult.error)));
|
|
48
|
+
const result = {};
|
|
49
|
+
for (const handler of this.handlers)result[handler.name] = handler.mapFromStorage(persisted[handler.name]);
|
|
50
|
+
for (const key of Object.keys(persisted))if (!(key in result)) result[key] = persisted[key];
|
|
51
|
+
const mapped = result;
|
|
52
|
+
this.cache.set(persisted, mapped);
|
|
53
|
+
return Result.ok(mapped);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const UpdateSettingsRepositoryImplementation = UpdateSettingsRepository.createImplementation({
|
|
57
|
+
implementation: UpdateSettingsRepositoryImpl,
|
|
58
|
+
dependencies: [
|
|
59
|
+
KeyValueStore,
|
|
60
|
+
[
|
|
61
|
+
AiPowerUpsSettingsGroupHandler,
|
|
62
|
+
{
|
|
63
|
+
multiple: true
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
AiPowerUpsSettingsCache
|
|
67
|
+
]
|
|
68
|
+
});
|
|
69
|
+
export { UpdateSettingsRepositoryImplementation };
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=UpdateSettingsRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateSettings/UpdateSettingsRepository.js","sources":["../../../../src/api/features/UpdateSettings/UpdateSettingsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { KeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport type { OutputErrors } from \"@webiny/utils/createZodError.js\";\nimport {\n AiPowerUpsSettingsGroupHandler,\n AiPowerUpsSettingsCache\n} from \"~/api/features/shared/index.js\";\nimport { UpdateSettingsRepository } from \"./abstractions.js\";\nimport { SettingsValidationError } from \"./errors.js\";\nimport type { IAiPowerUpsSettings } from \"~/api/types.js\";\nimport { AI_POWER_UPS_SETTINGS } from \"~/api/constants.js\";\n\nclass UpdateSettingsRepositoryImpl implements UpdateSettingsRepository.Interface {\n constructor(\n private keyValueStore: KeyValueStore.Interface,\n private handlers: AiPowerUpsSettingsGroupHandler.Interface[],\n private cache: AiPowerUpsSettingsCache.Interface\n ) {}\n\n async execute(input: IAiPowerUpsSettings): Promise<Result<IAiPowerUpsSettings, Error>> {\n const cached = this.cache.get();\n let raw: Record<string, unknown>;\n\n if (cached) {\n raw = cached.raw;\n } else {\n const storeResult =\n await this.keyValueStore.get<Record<string, unknown>>(AI_POWER_UPS_SETTINGS);\n raw = storeResult.isOk() && storeResult.value ? storeResult.value : {};\n }\n\n const existingInternal: Record<string, unknown> = {};\n for (const handler of this.handlers) {\n existingInternal[handler.name] = handler.mapFromStorage(raw[handler.name]);\n }\n\n const newSettings = input as unknown as Record<string, unknown>;\n const invalidFields: OutputErrors = {};\n\n for (const handler of this.handlers) {\n const parseResult = await handler.inputSchema.safeParseAsync(newSettings[handler.name]);\n if (!parseResult.success) {\n for (const issue of parseResult.error.issues) {\n const fieldPath = [handler.name, ...issue.path.map(String)].join(\".\");\n invalidFields[fieldPath] = {\n code: issue.code,\n message: issue.message,\n data: { path: issue.path }\n };\n }\n }\n }\n\n if (Object.keys(invalidFields).length > 0) {\n return Result.fail(new SettingsValidationError(invalidFields));\n }\n\n const persisted: Record<string, unknown> = { ...raw };\n for (const handler of this.handlers) {\n persisted[handler.name] = await handler.mapToStorage(\n newSettings[handler.name],\n existingInternal[handler.name]\n );\n }\n\n const writeResult = await this.keyValueStore.set(AI_POWER_UPS_SETTINGS, persisted);\n if (writeResult.isFail()) {\n return Result.fail(new Error(String(writeResult.error)));\n }\n\n const result: Record<string, unknown> = {};\n for (const handler of this.handlers) {\n result[handler.name] = handler.mapFromStorage(persisted[handler.name]);\n }\n\n for (const key of Object.keys(persisted)) {\n if (!(key in result)) {\n result[key] = persisted[key];\n }\n }\n\n const mapped = result as unknown as IAiPowerUpsSettings;\n this.cache.set(persisted, mapped);\n\n return Result.ok(mapped);\n }\n}\n\nexport const UpdateSettingsRepositoryImplementation = UpdateSettingsRepository.createImplementation(\n {\n implementation: UpdateSettingsRepositoryImpl,\n dependencies: [\n KeyValueStore,\n [AiPowerUpsSettingsGroupHandler, { multiple: true }],\n AiPowerUpsSettingsCache\n ]\n }\n);\n"],"names":["UpdateSettingsRepositoryImpl","keyValueStore","handlers","cache","input","cached","raw","storeResult","AI_POWER_UPS_SETTINGS","existingInternal","handler","newSettings","invalidFields","parseResult","issue","fieldPath","String","Object","Result","SettingsValidationError","persisted","writeResult","Error","result","key","mapped","UpdateSettingsRepositoryImplementation","UpdateSettingsRepository","KeyValueStore","AiPowerUpsSettingsGroupHandler","AiPowerUpsSettingsCache"],"mappings":";;;;;;AAYA,MAAMA;IACF,YACYC,aAAsC,EACtCC,QAAoD,EACpDC,KAAwC,CAClD;aAHUF,aAAa,GAAbA;aACAC,QAAQ,GAARA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QAAQC,KAA0B,EAA+C;QACnF,MAAMC,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG;QAC7B,IAAIC;QAEJ,IAAID,QACAC,MAAMD,OAAO,GAAG;aACb;YACH,MAAME,cACF,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAA0BC;YAC1DF,MAAMC,YAAY,IAAI,MAAMA,YAAY,KAAK,GAAGA,YAAY,KAAK,GAAG,CAAC;QACzE;QAEA,MAAME,mBAA4C,CAAC;QACnD,KAAK,MAAMC,WAAW,IAAI,CAAC,QAAQ,CAC/BD,gBAAgB,CAACC,QAAQ,IAAI,CAAC,GAAGA,QAAQ,cAAc,CAACJ,GAAG,CAACI,QAAQ,IAAI,CAAC;QAG7E,MAAMC,cAAcP;QACpB,MAAMQ,gBAA8B,CAAC;QAErC,KAAK,MAAMF,WAAW,IAAI,CAAC,QAAQ,CAAE;YACjC,MAAMG,cAAc,MAAMH,QAAQ,WAAW,CAAC,cAAc,CAACC,WAAW,CAACD,QAAQ,IAAI,CAAC;YACtF,IAAI,CAACG,YAAY,OAAO,EACpB,KAAK,MAAMC,SAASD,YAAY,KAAK,CAAC,MAAM,CAAE;gBAC1C,MAAME,YAAY;oBAACL,QAAQ,IAAI;uBAAKI,MAAM,IAAI,CAAC,GAAG,CAACE;iBAAQ,CAAC,IAAI,CAAC;gBACjEJ,aAAa,CAACG,UAAU,GAAG;oBACvB,MAAMD,MAAM,IAAI;oBAChB,SAASA,MAAM,OAAO;oBACtB,MAAM;wBAAE,MAAMA,MAAM,IAAI;oBAAC;gBAC7B;YACJ;QAER;QAEA,IAAIG,OAAO,IAAI,CAACL,eAAe,MAAM,GAAG,GACpC,OAAOM,OAAO,IAAI,CAAC,IAAIC,wBAAwBP;QAGnD,MAAMQ,YAAqC;YAAE,GAAGd,GAAG;QAAC;QACpD,KAAK,MAAMI,WAAW,IAAI,CAAC,QAAQ,CAC/BU,SAAS,CAACV,QAAQ,IAAI,CAAC,GAAG,MAAMA,QAAQ,YAAY,CAChDC,WAAW,CAACD,QAAQ,IAAI,CAAC,EACzBD,gBAAgB,CAACC,QAAQ,IAAI,CAAC;QAItC,MAAMW,cAAc,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAACb,uBAAuBY;QACxE,IAAIC,YAAY,MAAM,IAClB,OAAOH,OAAO,IAAI,CAAC,IAAII,MAAMN,OAAOK,YAAY,KAAK;QAGzD,MAAME,SAAkC,CAAC;QACzC,KAAK,MAAMb,WAAW,IAAI,CAAC,QAAQ,CAC/Ba,MAAM,CAACb,QAAQ,IAAI,CAAC,GAAGA,QAAQ,cAAc,CAACU,SAAS,CAACV,QAAQ,IAAI,CAAC;QAGzE,KAAK,MAAMc,OAAOP,OAAO,IAAI,CAACG,WAC1B,IAAI,CAAEI,CAAAA,OAAOD,MAAK,GACdA,MAAM,CAACC,IAAI,GAAGJ,SAAS,CAACI,IAAI;QAIpC,MAAMC,SAASF;QACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAACH,WAAWK;QAE1B,OAAOP,OAAO,EAAE,CAACO;IACrB;AACJ;AAEO,MAAMC,yCAAyCC,yBAAyB,oBAAoB,CAC/F;IACI,gBAAgB3B;IAChB,cAAc;QACV4B;QACA;YAACC;YAAgC;gBAAE,UAAU;YAAK;SAAE;QACpDC;KACH;AACL"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
+
import { UpdateSettingsUseCase, UpdateSettingsRepository } from "./abstractions.js";
|
|
3
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
4
|
+
declare class UpdateSettingsUseCaseImpl implements UpdateSettingsUseCase.Interface {
|
|
5
|
+
private eventPublisher;
|
|
6
|
+
private repository;
|
|
7
|
+
constructor(eventPublisher: EventPublisher.Interface, repository: UpdateSettingsRepository.Interface);
|
|
8
|
+
execute(input: IAiPowerUpsSettings): UpdateSettingsUseCase.Return;
|
|
9
|
+
}
|
|
10
|
+
export declare const UpdateSettingsUseCaseImplementation: typeof UpdateSettingsUseCaseImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateSettingsUseCase>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
|
+
import { UpdateSettingsRepository, UpdateSettingsUseCase } from "./abstractions.js";
|
|
3
|
+
import { AiPowerUpsSettingsAfterUpdateEvent, AiPowerUpsSettingsBeforeUpdateEvent } from "./events.js";
|
|
4
|
+
class UpdateSettingsUseCaseImpl {
|
|
5
|
+
constructor(eventPublisher, repository){
|
|
6
|
+
this.eventPublisher = eventPublisher;
|
|
7
|
+
this.repository = repository;
|
|
8
|
+
}
|
|
9
|
+
async execute(input) {
|
|
10
|
+
await this.eventPublisher.publish(new AiPowerUpsSettingsBeforeUpdateEvent({
|
|
11
|
+
input
|
|
12
|
+
}));
|
|
13
|
+
const result = await this.repository.execute(input);
|
|
14
|
+
if (result.isFail()) return result;
|
|
15
|
+
await this.eventPublisher.publish(new AiPowerUpsSettingsAfterUpdateEvent({
|
|
16
|
+
settings: result.value
|
|
17
|
+
}));
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const UpdateSettingsUseCaseImplementation = UpdateSettingsUseCase.createImplementation({
|
|
22
|
+
implementation: UpdateSettingsUseCaseImpl,
|
|
23
|
+
dependencies: [
|
|
24
|
+
EventPublisher,
|
|
25
|
+
UpdateSettingsRepository
|
|
26
|
+
]
|
|
27
|
+
});
|
|
28
|
+
export { UpdateSettingsUseCaseImplementation };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=UpdateSettingsUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateSettings/UpdateSettingsUseCase.js","sources":["../../../../src/api/features/UpdateSettings/UpdateSettingsUseCase.ts"],"sourcesContent":["import { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { UpdateSettingsUseCase, UpdateSettingsRepository } from \"./abstractions.js\";\nimport type { IAiPowerUpsSettings } from \"~/api/types.js\";\nimport {\n AiPowerUpsSettingsBeforeUpdateEvent,\n AiPowerUpsSettingsAfterUpdateEvent\n} from \"./events.js\";\n\nclass UpdateSettingsUseCaseImpl implements UpdateSettingsUseCase.Interface {\n constructor(\n private eventPublisher: EventPublisher.Interface,\n private repository: UpdateSettingsRepository.Interface\n ) {}\n\n async execute(input: IAiPowerUpsSettings): UpdateSettingsUseCase.Return {\n await this.eventPublisher.publish(new AiPowerUpsSettingsBeforeUpdateEvent({ input }));\n\n const result = await this.repository.execute(input);\n\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new AiPowerUpsSettingsAfterUpdateEvent({ settings: result.value })\n );\n\n return result;\n }\n}\n\nexport const UpdateSettingsUseCaseImplementation = UpdateSettingsUseCase.createImplementation({\n implementation: UpdateSettingsUseCaseImpl,\n dependencies: [EventPublisher, UpdateSettingsRepository]\n});\n"],"names":["UpdateSettingsUseCaseImpl","eventPublisher","repository","input","AiPowerUpsSettingsBeforeUpdateEvent","result","AiPowerUpsSettingsAfterUpdateEvent","UpdateSettingsUseCaseImplementation","UpdateSettingsUseCase","EventPublisher","UpdateSettingsRepository"],"mappings":";;;AAQA,MAAMA;IACF,YACYC,cAAwC,EACxCC,UAA8C,CACxD;aAFUD,cAAc,GAAdA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,KAA0B,EAAgC;QACpE,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAIC,oCAAoC;YAAED;QAAM;QAElF,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACF;QAE7C,IAAIE,OAAO,MAAM,IACb,OAAOA;QAGX,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,mCAAmC;YAAE,UAAUD,OAAO,KAAK;QAAC;QAGpE,OAAOA;IACX;AACJ;AAEO,MAAME,sCAAsCC,sBAAsB,oBAAoB,CAAC;IAC1F,gBAAgBR;IAChB,cAAc;QAACS;QAAgBC;KAAyB;AAC5D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
4
|
+
export interface IUpdateSettingsRepository {
|
|
5
|
+
execute(input: IAiPowerUpsSettings): Promise<Result<IAiPowerUpsSettings, Error>>;
|
|
6
|
+
}
|
|
7
|
+
export declare const UpdateSettingsRepository: import("@webiny/di").Abstraction<IUpdateSettingsRepository>;
|
|
8
|
+
export declare namespace UpdateSettingsRepository {
|
|
9
|
+
type Interface = IUpdateSettingsRepository;
|
|
10
|
+
type Return = Promise<Result<IAiPowerUpsSettings, Error>>;
|
|
11
|
+
}
|
|
12
|
+
export interface IUpdateSettingsUseCase {
|
|
13
|
+
execute(input: IAiPowerUpsSettings): Promise<Result<IAiPowerUpsSettings, Error>>;
|
|
14
|
+
}
|
|
15
|
+
export declare const UpdateSettingsUseCase: import("@webiny/di").Abstraction<IUpdateSettingsUseCase>;
|
|
16
|
+
export declare namespace UpdateSettingsUseCase {
|
|
17
|
+
type Interface = IUpdateSettingsUseCase;
|
|
18
|
+
type Return = Promise<Result<IAiPowerUpsSettings, Error>>;
|
|
19
|
+
type Params = IAiPowerUpsSettings;
|
|
20
|
+
}
|
|
21
|
+
export interface AiPowerUpsSettingsBeforeUpdatePayload {
|
|
22
|
+
input: IAiPowerUpsSettings;
|
|
23
|
+
}
|
|
24
|
+
export interface AiPowerUpsSettingsAfterUpdatePayload {
|
|
25
|
+
settings: IAiPowerUpsSettings;
|
|
26
|
+
}
|
|
27
|
+
export declare const AiPowerUpsSettingsBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<AiPowerUpsSettingsBeforeUpdatePayload>>>;
|
|
28
|
+
export declare namespace AiPowerUpsSettingsBeforeUpdateEventHandler {
|
|
29
|
+
type Interface = IEventHandler<DomainEvent<AiPowerUpsSettingsBeforeUpdatePayload>>;
|
|
30
|
+
type Event = DomainEvent<AiPowerUpsSettingsBeforeUpdatePayload>;
|
|
31
|
+
}
|
|
32
|
+
export declare const AiPowerUpsSettingsAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<AiPowerUpsSettingsAfterUpdatePayload>>>;
|
|
33
|
+
export declare namespace AiPowerUpsSettingsAfterUpdateEventHandler {
|
|
34
|
+
type Interface = IEventHandler<DomainEvent<AiPowerUpsSettingsAfterUpdatePayload>>;
|
|
35
|
+
type Event = DomainEvent<AiPowerUpsSettingsAfterUpdatePayload>;
|
|
36
|
+
}
|